| 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. | |