AI_DL_Assignment / 21. TensorFlow Object Detection API /4. How to Train a TFOD Model.srt
Prince-1's picture
Add files using upload-large-folder tool
e62bc71 verified
1
00:00:00,700 --> 00:00:01,040
OK.
2
00:00:01,050 --> 00:00:03,310
So welcome to twenty one point three.
3
00:00:03,510 --> 00:00:09,060
Well actually talk about and tell you how to go about creating a custom tensor for up to detection module
4
00:00:09,260 --> 00:00:10,220
model.
5
00:00:10,890 --> 00:00:17,490
So training the tens of the action the training process of tensile flow of detection is honestly a bit
6
00:00:17,490 --> 00:00:23,970
messy and this is probably one of the best of the detection Well most mature object libraries on the
7
00:00:23,970 --> 00:00:25,600
market today market.
8
00:00:25,640 --> 00:00:33,540
But an open source market you can say and it's explained fairly well it actually is bit tricky to use.
9
00:00:34,020 --> 00:00:36,530
So this is a step I broke down from looking at it.
10
00:00:36,570 --> 00:00:40,310
So first we prepare a data set in the T.F. record format.
11
00:00:40,380 --> 00:00:41,440
That's a specific record.
12
00:00:41,460 --> 00:00:43,500
I'll show you in the next few slides.
13
00:00:43,950 --> 00:00:48,570
Then we need to create a class label file that's a dog P.B. text file.
14
00:00:48,570 --> 00:00:53,760
Then we need to download a pre-trained Kokoo model and we need to set up the correct file that actually
15
00:00:53,760 --> 00:00:58,490
structure configured the object action pipeline and then start training.
16
00:00:58,500 --> 00:01:00,690
So let's go step by step.
17
00:01:00,720 --> 00:01:03,220
So what does it T.F. record format.
18
00:01:03,270 --> 00:01:07,650
So it tends to flow because the action expects so it treating and test data to be in this T.F. or the
19
00:01:07,650 --> 00:01:09,220
school record format.
20
00:01:09,300 --> 00:01:11,460
This is pretty much what it looks like here.
21
00:01:11,910 --> 00:01:17,220
Luckily though we can convert existing data sets that's like in the past SQL View see data set which
22
00:01:17,220 --> 00:01:22,260
is stored in Exod. Mosha directly to ATF records file by using the script.
23
00:01:22,290 --> 00:01:24,300
They provide this for the here.
24
00:01:24,690 --> 00:01:26,790
So it's quite myself.
25
00:01:27,510 --> 00:01:30,030
And no we talk about a classily files.
26
00:01:30,030 --> 00:01:32,910
So basically this is what the castable file looks like.
27
00:01:33,850 --> 00:01:41,350
It's basically just on a dictionary Shukria where we have the IDs and label names.
28
00:01:41,350 --> 00:01:44,660
So that's pretty much what we need to do with redefining.
29
00:01:44,830 --> 00:01:50,560
If we're training a detector to detect let's say London underground tube signs you'll just put the name
30
00:01:50,560 --> 00:01:56,740
of the class here and it's I.D. and you keep adding more and more items all objects here.
31
00:02:00,660 --> 00:02:03,510
So now we have to use pre-trained model.
32
00:02:03,840 --> 00:02:04,250
OK.
33
00:02:04,380 --> 00:02:11,860
So we don't train this model and this is like the resonant model that we use in the previous chapter.
34
00:02:12,240 --> 00:02:13,890
So we don't have one here.
35
00:02:13,920 --> 00:02:20,490
So tensile flow who has several pre-treat models and one Ko-Ko and Coko is basically a large scale object
36
00:02:20,490 --> 00:02:26,020
protection segmentation and captioning data set and basically has a lot of features here.
37
00:02:26,370 --> 00:02:31,320
You can go to the Web site this Cocco decision it and you will find it.
38
00:02:31,900 --> 00:02:33,950
And so you don't live with the models here.
39
00:02:34,230 --> 00:02:38,620
This link carries you to all the models that are available on tensor.
40
00:02:39,030 --> 00:02:44,560
And basically just use it downloaded onto mental health and on target here.
41
00:02:44,730 --> 00:02:46,470
So that's what we do.
42
00:02:47,100 --> 00:02:50,180
And this is a list of all the models of healable here.
43
00:02:50,280 --> 00:02:55,620
It gives the speed and the map scope which is quite useful helps you choose which model is most appropriate
44
00:02:55,620 --> 00:02:56,590
for your application.
45
00:02:58,530 --> 00:03:05,310
So now we get to configure object detection pipeline said abjection pipeline configuration file is composed
46
00:03:05,310 --> 00:03:07,780
of five sections.
47
00:03:07,800 --> 00:03:12,610
Basically we have a model that we define here to configuration here.
48
00:03:13,110 --> 00:03:15,310
Then we have the training config here.
49
00:03:15,480 --> 00:03:23,350
So we add this through here and the in part Real talk about soon the valuation config and evaluation
50
00:03:23,370 --> 00:03:24,090
in podrida.
51
00:03:24,090 --> 00:03:26,760
So let's take a look at this file in more detail.
52
00:03:26,790 --> 00:03:31,400
So this is a sample of the model file the model section here.
53
00:03:31,890 --> 00:03:34,900
What it looks like is this is the model config.
54
00:03:35,130 --> 00:03:35,720
I should say.
55
00:03:35,820 --> 00:03:36,340
OK.
56
00:03:36,690 --> 00:03:42,330
So we basically what we have to note is that we have some templates already that we can use inside of
57
00:03:42,470 --> 00:03:43,240
of flow.
58
00:03:43,530 --> 00:03:49,530
So we just basically make sure that all classes match up to the classes that enable custom are being
59
00:03:49,530 --> 00:03:50,910
attacked to Dexter.
60
00:03:51,420 --> 00:03:53,850
So this one was taken from the president one on one.
61
00:03:54,480 --> 00:03:56,940
And those Treen in the Pascrell VRC dataset.
62
00:03:57,330 --> 00:04:01,950
So as I said you don't need to rewrite this file just edit to one belonging to the preacher and model
63
00:04:02,070 --> 00:04:06,750
to be using Dymo defines the model defines all unnecessary.
64
00:04:06,850 --> 00:04:15,300
Our Or our CNN and as the parameters and when using pretreated models as best we leave this configuration
65
00:04:15,360 --> 00:04:19,170
configuration file unchanged unchanged just a bit.
66
00:04:19,170 --> 00:04:26,320
This red box here with the classes and notices that trade input Greedo and the yvel config and involved
67
00:04:26,360 --> 00:04:27,900
in podrida sections.
68
00:04:27,900 --> 00:04:31,990
So this is what we have to try and change these in red.
69
00:04:32,070 --> 00:04:33,840
Basically directory mappings.
70
00:04:33,840 --> 00:04:38,010
So we have to make sure that they're actually correct and pointing to the correct files that you want
71
00:04:38,010 --> 00:04:38,780
to use.
72
00:04:38,820 --> 00:04:40,740
This will be your label file.
73
00:04:40,800 --> 00:04:44,440
This will be your record file you're treating UTF record file.
74
00:04:44,670 --> 00:04:46,270
This is what disappoints do here.
75
00:04:46,500 --> 00:04:50,930
So for validation and for record for training and for validation.
76
00:04:51,510 --> 00:04:53,990
And this is Leavell parts of boat as well.
77
00:04:54,110 --> 00:04:54,680
OK.
78
00:04:54,910 --> 00:04:59,450
So remember the labels are the same ideas will be the same it's the same file.
79
00:04:59,890 --> 00:05:00,350
OK.
80
00:05:04,360 --> 00:05:06,870
So now here's the directory structure of the project.
81
00:05:06,910 --> 00:05:09,560
So this is how and where we put our files.
82
00:05:09,850 --> 00:05:14,860
So the PBX ex-felon label file that goes inside a directory called data.
83
00:05:15,250 --> 00:05:22,270
Then we have a record files which is a train and evaluation of record files or validation whatever you
84
00:05:22,270 --> 00:05:24,230
want to call it same thing.
85
00:05:24,640 --> 00:05:29,820
And then we have a new directory here models and then we have subdirectory model here.
86
00:05:30,160 --> 00:05:32,360
This is where we put our pipeline config file.
87
00:05:32,500 --> 00:05:33,990
That's this file here.
88
00:05:34,390 --> 00:05:40,330
And then we just have the trained directory and the evaluation directory here as well under the model
89
00:05:40,660 --> 00:05:46,340
inside the model form which is inside of the models for the here.
90
00:05:46,350 --> 00:05:48,820
So now this is how we start the training process.
91
00:05:48,890 --> 00:05:56,810
So we go to basically terminal and we just copy this line of code here and make sure to code the lines
92
00:05:56,810 --> 00:05:57,970
in a read here.
93
00:05:58,280 --> 00:06:03,090
These correspond to the model you are using and the directory that we just created here.
94
00:06:03,260 --> 00:06:03,710
OK.
95
00:06:03,890 --> 00:06:10,010
This is the day that actually it needs to be pointing to and it doesn't do that.
96
00:06:10,010 --> 00:06:16,200
And then you can actually bring up tents board to monitor your treating progress which is pretty cool.
97
00:06:16,700 --> 00:06:18,770
It's going to be district directory here.
98
00:06:19,030 --> 00:06:22,230
That again does your data directly at the specified here.
99
00:06:25,340 --> 00:06:30,590
And then before that I should have mentioned this earlier but it's important when you're labeling it
100
00:06:30,590 --> 00:06:35,450
images use a software that actually produces it in the correct format.
101
00:06:35,450 --> 00:06:38,120
So this is how we use annotations here.
102
00:06:38,150 --> 00:06:43,710
So this is my wife with my dog Samuel and software we use as a label.
103
00:06:43,800 --> 00:06:50,190
AMG I think this is two elves they have here this really label I am the label image obviously.
104
00:06:50,540 --> 00:06:52,200
So download it if you want to do it.
105
00:06:52,220 --> 00:06:55,910
It's available for Windows Mac and Linux.
106
00:06:55,910 --> 00:07:01,690
And this is the format that Pascal VRC Exham a format that we use now.
107
00:07:01,820 --> 00:07:09,380
It is not what we used us but we generate the image anti-Chavez in this format using the software.
108
00:07:09,410 --> 00:07:11,160
It actually does it automatically for you.
109
00:07:11,630 --> 00:07:17,420
And we can use our tents for a script I mentioned earlier to convert this file directly back to the
110
00:07:17,420 --> 00:07:20,170
text of the record files.
111
00:07:20,270 --> 00:07:21,910
So this is a summary here.
112
00:07:22,010 --> 00:07:24,890
We didn't do a full project here for the following reasons.
113
00:07:25,160 --> 00:07:30,390
Training and SSTO even a faster are CNN One is you is very impractical.
114
00:07:30,440 --> 00:07:31,630
It is going to take forever.
115
00:07:31,700 --> 00:07:38,840
So you definitely need a GP or a cloud to use to effectively train this A.F. all the data sets are there
116
00:07:38,870 --> 00:07:46,190
huge there are quite a few gigs of storage and also to setting up a GPU when a local system is a nightmare
117
00:07:46,190 --> 00:07:46,790
sometimes.
118
00:07:46,880 --> 00:07:53,660
It's a very scary task but once you get it working it's good you feel very happy because it's so much
119
00:07:53,660 --> 00:07:54,950
faster.
120
00:07:55,620 --> 00:07:58,150
So I've of all time general steps here.
121
00:07:58,220 --> 00:08:05,040
The Trina's model there are also some good tutorials I found online that do this as well.
122
00:08:05,090 --> 00:08:10,430
Basically try to make it as simple as possible if you going through all the steps telling you what to
123
00:08:10,430 --> 00:08:13,210
pay attention to and what's important.
124
00:08:13,220 --> 00:08:16,880
I've actually tried this on my system as well so I know what works.
125
00:08:16,910 --> 00:08:23,150
So I wish you all the best of luck when making your own object to actual text detectors.
126
00:08:23,300 --> 00:08:23,610
Thank you.