title
Creating TFRecords - TensorFlow Object Detection API Tutorial p.4

description
Welcome to part 4 of the TensorFlow Object Detection API tutorial series. In this part of the tutorial, we're going to cover how to create the TFRecord files that we need to train an object detection model. Text tutorials and sample code: https://pythonprogramming.net/creating-tfrecord-files-tensorflow-object-detection-api-tutorial/ exact commit: https://github.com/datitran/raccoon_dataset/commit/386a8f4f1064ea0fe90cfac8644e0dba48f0387b https://twitter.com/sentdex https://www.facebook.com/pythonprogramming.net/ https://plus.google.com/+sentdex

detail
{'title': 'Creating TFRecords - TensorFlow Object Detection API Tutorial p.4', 'heatmap': [{'end': 730.097, 'start': 713.119, 'weight': 0.732}, {'end': 769.272, 'start': 746.228, 'weight': 1}], 'summary': 'Tutorial covers image preparation, xml to csv conversion, tensorflow objects api, object labeling, and setting up object detection for tensorflow, including challenges faced and a test dataset of 12 samples out of a total of around 150 images.', 'chapters': [{'end': 260.101, 'segs': [{'end': 54.827, 'src': 'embed', 'start': 20.351, 'weight': 1, 'content': [{'end': 21.691, 'text': 'You should have labeled them all by now.', 'start': 20.351, 'duration': 1.34}, {'end': 23.251, 'text': "And you're ready to proceed.", 'start': 22.391, 'duration': 0.86}, {'end': 25.712, 'text': "So for me, that's in images here.", 'start': 23.352, 'duration': 2.36}, {'end': 26.772, 'text': "And I've got all these.", 'start': 25.752, 'duration': 1.02}, {'end': 29.773, 'text': 'And then go ahead and make a test and a train directory.', 'start': 26.952, 'duration': 2.821}, {'end': 43.809, 'text': 'And then in the test directory, take about 10% of the images along with their matching XML annotation informations and copy them into test.', 'start': 30.513, 'duration': 13.296}, {'end': 47.902, 'text': 'and then take the other 90% and copy them into Train.', 'start': 43.809, 'duration': 4.093}, {'end': 54.827, 'text': 'Now, if you download my pre-uploaded version, it should already be done for you, so they should already be in there.', 'start': 48.363, 'duration': 6.464}], 'summary': 'Prepare test and train directories with 10% for test and 90% for train.', 'duration': 34.476, 'max_score': 20.351, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/kq2Gjv_pPe8/pics/kq2Gjv_pPe820351.jpg'}, {'end': 111.537, 'src': 'embed', 'start': 68.656, 'weight': 0, 'content': [{'end': 73.299, 'text': 'Because, at the end of the day, basically all you need to do to actually get this done to train a model,', 'start': 68.656, 'duration': 4.643}, {'end': 75.681, 'text': 'you need the TF records that match your images.', 'start': 73.299, 'duration': 2.382}, {'end': 78.683, 'text': 'Then you need to set up the configuration file.', 'start': 76.922, 'duration': 1.761}, {'end': 79.543, 'text': 'Boom, you can train.', 'start': 78.843, 'duration': 0.7}, {'end': 82.765, 'text': "It sounds really simple, but there's a bunch of little steps along the way.", 'start': 79.843, 'duration': 2.922}, {'end': 94.212, 'text': "So anyway, once you're ready to proceed, the next thing that we're going to do is we're going to use some helper code basically from dattrans.", 'start': 83.205, 'duration': 11.007}, {'end': 95.613, 'text': 'I hope I pronounced that right.', 'start': 94.572, 'duration': 1.041}, {'end': 103.198, 'text': 'Probably the easiest way to do it is just, I would just look for raccoon object detection.', 'start': 95.633, 'duration': 7.565}, {'end': 105.059, 'text': "I suspect that'll come up right.", 'start': 103.658, 'duration': 1.401}, {'end': 109.256, 'text': 'it is so dataset raccoon detector.', 'start': 106.414, 'duration': 2.842}, {'end': 111.537, 'text': "probably i'm gonna go ahead and click on that.", 'start': 109.256, 'duration': 2.281}], 'summary': 'Training a model requires tf records matching images and configuration setup.', 'duration': 42.881, 'max_score': 68.656, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/kq2Gjv_pPe8/pics/kq2Gjv_pPe868656.jpg'}, {'end': 153.911, 'src': 'embed', 'start': 129.687, 'weight': 5, 'content': [{'end': 136.763, 'text': "now is only two days ago, but since I've been making this tutorial, this has this repository has changed like multiple times.", 'start': 129.687, 'duration': 7.076}, {'end': 141.225, 'text': 'Um, and some of the changes have actually broken the functionality.', 'start': 137.524, 'duration': 3.701}, {'end': 144.487, 'text': "So, um, I'll buy it briefly.", 'start': 141.705, 'duration': 2.782}, {'end': 149.249, 'text': 'I think he fixed, he fixed, uh, cause one of them I think was the, for the actual generate TF record.', 'start': 144.527, 'duration': 4.722}, {'end': 153.911, 'text': 'Um, it broke for Python three when he added support for Python two.', 'start': 149.869, 'duration': 4.042}], 'summary': 'The repository has changed multiple times, leading to broken functionality, with one issue related to support for python 2 breaking the tf record generation for python 3.', 'duration': 24.224, 'max_score': 129.687, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/kq2Gjv_pPe8/pics/kq2Gjv_pPe8129687.jpg'}, {'end': 194.25, 'src': 'embed', 'start': 168.494, 'weight': 2, 'content': [{'end': 172.776, 'text': "So if something doesn't work right, you can go to that exact commit, and it will still at least work.", 'start': 168.494, 'duration': 4.282}, {'end': 174.337, 'text': 'But try to use the updated versions.', 'start': 172.836, 'duration': 1.501}, {'end': 178.74, 'text': 'For example, the most recent update was to fix the multi-box problem.', 'start': 174.397, 'duration': 4.343}, {'end': 181.682, 'text': "So that's, I'm pretty sure, for if you had multiple boxes.", 'start': 178.76, 'duration': 2.922}, {'end': 191.489, 'text': "Labels I'm pretty certain that initially he only handled for if if there would just be one box So he didn't actually allow for multiple boxes.", 'start': 183.403, 'duration': 8.086}, {'end': 194.25, 'text': "So anyway, obviously it's a useful improvement.", 'start': 191.949, 'duration': 2.301}], 'summary': 'Updated versions fix multi-box problem, providing useful improvement.', 'duration': 25.756, 'max_score': 168.494, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/kq2Gjv_pPe8/pics/kq2Gjv_pPe8168494.jpg'}, {'end': 228.047, 'src': 'embed', 'start': 202.776, 'weight': 3, 'content': [{'end': 217.444, 'text': "So I would just go to run and we'll just Copy that and for now I think it will probably good idea to make a new directory and we're gonna call this object dash detection And then I'm just going to drag images into object detection.", 'start': 202.776, 'duration': 14.668}, {'end': 228.047, 'text': "cool, I'm going to go and create a new document and we're just going to call this the same thing XML, underscore to csv.py and Open with.", 'start': 217.444, 'duration': 10.603}], 'summary': 'Setting up a new directory for object detection and converting xml to csv', 'duration': 25.271, 'max_score': 202.776, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/kq2Gjv_pPe8/pics/kq2Gjv_pPe8202776.jpg'}], 'start': 2.267, 'title': 'Tensorflow object detection api and repository updates', 'summary': 'Covers image preparation for training, including creating test and train directories, importance of tf records, and repository challenges due to frequent changes. it also introduces a new tool named xml to csv for object detection.', 'chapters': [{'end': 129.687, 'start': 2.267, 'title': 'Tensorflow object detection api tutorial', 'summary': 'Covers the process of preparing images for training, including creating test and train directories with 10% and 90% images, respectively, and the importance of creating tf records and setting up the configuration file for training a model.', 'duration': 127.42, 'highlights': ['The chapter emphasizes the process of preparing images for training by creating test and train directories with 10% and 90% of the images, respectively. 10% and 90% image distribution', 'The significance of creating TF records and setting up the configuration file for training a model is highlighted, as it is essential to match TF records with images and set up the configuration file to begin training. Importance of TF records and configuration file for model training', 'The use of helper code from dattrans for the process and the specific scripts needed for the tutorial are mentioned, indicating the source of the code and the specific scripts required. Use of helper code from dattrans and specific scripts required']}, {'end': 260.101, 'start': 129.687, 'title': 'Repository updates and version control', 'summary': 'Discusses the challenges faced due to frequent changes in the repository, emphasizing the need to use the latest versions for improved functionality while providing a workaround for older versions, and the introduction of a new tool named xml to csv for object detection.', 'duration': 130.414, 'highlights': ['The tutorial repository has undergone multiple changes in a short period, leading to broken functionality. multiple changes', 'Emphasizes the importance of using the latest versions to ensure functionality and provides a workaround using an exact commit for older versions. importance of using the latest versions', 'Introduction of a new tool named XML to CSV for object detection and the process of setting up the directory and file for its usage. introduction of XML to CSV tool']}], 'duration': 257.834, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/kq2Gjv_pPe8/pics/kq2Gjv_pPe82267.jpg', 'highlights': ['The significance of creating TF records and setting up the configuration file for training a model is highlighted, as it is essential to match TF records with images and set up the configuration file to begin training. Importance of TF records and configuration file for model training', 'The chapter emphasizes the process of preparing images for training by creating test and train directories with 10% and 90% of the images, respectively. 10% and 90% image distribution', 'Emphasizes the importance of using the latest versions to ensure functionality and provides a workaround using an exact commit for older versions. importance of using the latest versions', 'Introduction of a new tool named XML to CSV for object detection and the process of setting up the directory and file for its usage. introduction of XML to CSV tool', 'The use of helper code from dattrans for the process and the specific scripts needed for the tutorial are mentioned, indicating the source of the code and the specific scripts required. Use of helper code from dattrans and specific scripts required', 'The tutorial repository has undergone multiple changes in a short period, leading to broken functionality. multiple changes']}, {'end': 574.125, 'segs': [{'end': 294.663, 'src': 'embed', 'start': 260.101, 'weight': 2, 'content': [{'end': 262.703, 'text': "it is soft, that's for sure.", 'start': 260.101, 'duration': 2.602}, {'end': 267.605, 'text': "so uh, within the xml to csv, basically there's a couple of things we want to change.", 'start': 262.703, 'duration': 4.902}, {'end': 270.126, 'text': "um, actually there's really only one thing.", 'start': 267.605, 'duration': 2.521}, {'end': 275.168, 'text': 'for some reason i think before there was something changing here, but now it would just be in this main loop here.', 'start': 270.126, 'duration': 5.042}, {'end': 276.189, 'text': "let me make sure it's on screen here.", 'start': 275.168, 'duration': 1.021}, {'end': 279.815, 'text': 'add some space here so we can see it.', 'start': 278.272, 'duration': 1.543}, {'end': 283.682, 'text': "So what we're gonna wanna do is put a for loop here.", 'start': 280.396, 'duration': 3.286}, {'end': 294.663, 'text': 'So I would say for directory in train test.', 'start': 283.962, 'duration': 10.701}], 'summary': 'Xml to csv conversion involves adding a for loop for directories in train test.', 'duration': 34.562, 'max_score': 260.101, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/kq2Gjv_pPe8/pics/kq2Gjv_pPe8260101.jpg'}, {'end': 330.555, 'src': 'embed', 'start': 308.753, 'weight': 0, 'content': [{'end': 316.958, 'text': "um anyway, uh so it's going to iterate through the train and test to create those separate csvs, and then from these csvs we create the tf records.", 'start': 308.753, 'duration': 8.205}, {'end': 319.94, 'text': 'so or what would be really nice is in this main loop.', 'start': 316.958, 'duration': 2.982}, {'end': 324.223, 'text': "that way we didn't have to copy all the images, just have like a train test split.", 'start': 319.94, 'duration': 4.283}, {'end': 326.464, 'text': 'that happens in the main function.', 'start': 324.223, 'duration': 2.241}, {'end': 327.345, 'text': 'that would be wonderful.', 'start': 326.464, 'duration': 0.881}, {'end': 330.555, 'text': 'We should make those changes.', 'start': 329.275, 'duration': 1.28}], 'summary': 'Iterating through train and test to create separate csvs and tf records, aiming for train-test split in main function.', 'duration': 21.802, 'max_score': 308.753, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/kq2Gjv_pPe8/pics/kq2Gjv_pPe8308753.jpg'}, {'end': 414.407, 'src': 'embed', 'start': 385.35, 'weight': 4, 'content': [{'end': 392.012, 'text': "So anyway, these are the kind of things I've just found confusing as I was going through this, trying to put everything where it needs to be.", 'start': 385.35, 'duration': 6.662}, {'end': 398.515, 'text': "Anyway, I think that's the only changes that we need to make.", 'start': 393.273, 'duration': 5.242}, {'end': 399.896, 'text': "Let's see, images.", 'start': 398.655, 'duration': 1.241}, {'end': 404.064, 'text': 'No Get current working directory.', 'start': 402.583, 'duration': 1.481}, {'end': 405.304, 'text': "We don't use annotations.", 'start': 404.184, 'duration': 1.12}, {'end': 406.184, 'text': "We're using images.", 'start': 405.324, 'duration': 0.86}, {'end': 410.626, 'text': 'And then it would be images slash trainer test.', 'start': 406.744, 'duration': 3.882}, {'end': 414.407, 'text': 'So again, format directory.', 'start': 411.026, 'duration': 3.381}], 'summary': 'Confusion in organizing files, no annotations used, directory structure discussed.', 'duration': 29.057, 'max_score': 385.35, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/kq2Gjv_pPe8/pics/kq2Gjv_pPe8385350.jpg'}, {'end': 476.629, 'src': 'embed', 'start': 446.276, 'weight': 5, 'content': [{'end': 447.356, 'text': "Oh, it's working, very nice.", 'start': 446.276, 'duration': 1.08}, {'end': 455.761, 'text': "Okay, so now I'm going to run python three, object or no?", 'start': 449.338, 'duration': 6.423}, {'end': 462.824, 'text': 'sorry, uh, xml to csv dot pi.', 'start': 455.761, 'duration': 7.063}, {'end': 464.284, 'text': "oh, we don't have a data directory yet.", 'start': 462.824, 'duration': 1.46}, {'end': 468.846, 'text': "so let's go ahead and create the data directory, a new folder data.", 'start': 464.284, 'duration': 4.562}, {'end': 474.308, 'text': "also, before i forget, i'm just going to create the directory for training because we're also going to need a training directory.", 'start': 468.846, 'duration': 5.462}, {'end': 476.629, 'text': "um, let's try that again.", 'start': 474.308, 'duration': 2.321}], 'summary': 'Setting up data directory and training directory for python script.', 'duration': 30.353, 'max_score': 446.276, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/kq2Gjv_pPe8/pics/kq2Gjv_pPe8446276.jpg'}, {'end': 574.125, 'src': 'embed', 'start': 500.195, 'weight': 3, 'content': [{'end': 507.98, 'text': "By the way, I think I have like 150 total samples, and then 12 of them are the test, and then the rest I use to train because I don't really like..", 'start': 500.195, 'duration': 7.785}, {'end': 509.141, 'text': 'You kind of want to fit..', 'start': 507.98, 'duration': 1.161}, {'end': 515.005, 'text': "Test is just there, just to tell you, in the training steps, but it's almost like a waste otherwise,", 'start': 509.141, 'duration': 5.864}, {'end': 517.626, 'text': 'because the model is trying to fit to the training data anyway.', 'start': 515.005, 'duration': 2.621}, {'end': 521.87, 'text': 'And I already came into this project knowing that..', 'start': 518.568, 'duration': 3.302}, {'end': 523.871, 'text': 'pipeline works.', 'start': 522.73, 'duration': 1.141}, {'end': 528.775, 'text': 'so why would I waste too many images on the testing steps?', 'start': 523.871, 'duration': 4.904}, {'end': 537.421, 'text': "so yeah, anyway, okay, so we've converted them to CSV and now we want to go ahead.", 'start': 528.775, 'duration': 8.646}, {'end': 545.407, 'text': 'and do is grab that TF record script.', 'start': 537.421, 'duration': 7.986}, {'end': 551.316, 'text': 'so back to the GitHub back page, back again.', 'start': 545.407, 'duration': 5.909}, {'end': 556.498, 'text': 'uh, generate TF record, grab that go to raw.', 'start': 551.316, 'duration': 5.182}, {'end': 574.125, 'text': 'And again, just copy object detection, new document, uh, generate TF record dot PI and paste.', 'start': 557.619, 'duration': 16.506}], 'summary': 'Using 150 total samples, 12 for testing, rest for training. focused on efficient model training and conversion to csv and tf record format.', 'duration': 73.93, 'max_score': 500.195, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/kq2Gjv_pPe8/pics/kq2Gjv_pPe8500195.jpg'}], 'start': 260.101, 'title': "Xml to csv conversion and tensorflow's objects api", 'summary': "Discusses xml to csv conversion and code modification, including proposing a for loop for iterating through train and test directories to create separate csvs. it also covers the challenges faced while training object detectors using tensorflow's objects api, with a test dataset of 12 samples out of a total of around 150 images.", 'chapters': [{'end': 359.166, 'start': 260.101, 'title': 'Xml to csv conversion and code modification', 'summary': 'Discusses making changes to the xml to csv conversion code, proposing a for loop for iterating through train and test directories to create separate csvs, and suggesting modifications for creating tf records in the main loop.', 'duration': 99.065, 'highlights': ['Proposing a for loop for iterating through train and test directories to create separate CSVs Suggests using a for loop for iterating through train and test directories to create separate CSVs, potentially streamlining the process and optimizing the code.', 'Suggesting modifications for creating tf records in the main loop Proposes modifying the main loop to streamline the process of creating tf records, aiming for improved efficiency and reduced redundancy in handling images.', 'Discussing changes to the XML to CSV conversion code Mentions the need for making changes to the XML to CSV conversion code, indicating the presence of only one necessary modification and contemplating the possibility of submitting a pull request for further enhancements.']}, {'end': 574.125, 'start': 359.626, 'title': "Training object detectors with tensorflow's objects api", 'summary': "Discusses the challenges faced while training object detectors using tensorflow's objects api, including the confusion in organizing files and directories, the creation of data and training directories, and the conversion of images to csv files, with a test dataset of 12 samples out of a total of around 150 images.", 'duration': 214.499, 'highlights': ['The test dataset consists of 12 samples out of a total of approximately 150 images, with the remaining images used for training.', 'Challenges include confusion in organizing files and directories, the creation of data and training directories, and the conversion of images to CSV files.', 'The need to create a data directory and a training directory for the object detection training process.', 'The process of converting images to CSV files for use in training the object detection model.', 'The utilization of the TF record script for object detection training.']}], 'duration': 314.024, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/kq2Gjv_pPe8/pics/kq2Gjv_pPe8260101.jpg', 'highlights': ['Proposing a for loop for iterating through train and test directories to create separate CSVs potentially streamlining the process and optimizing the code.', 'Suggesting modifications for creating tf records in the main loop aiming for improved efficiency and reduced redundancy in handling images.', 'Discussing changes to the XML to CSV conversion code indicating the presence of only one necessary modification and contemplating the possibility of submitting a pull request for further enhancements.', 'The test dataset consists of 12 samples out of a total of approximately 150 images, with the remaining images used for training.', 'Challenges include confusion in organizing files and directories, the creation of data and training directories, and the conversion of images to CSV files.', 'The need to create a data directory and a training directory for the object detection training process.', 'The process of converting images to CSV files for use in training the object detection model.', 'The utilization of the TF record script for object detection training.']}, {'end': 983.599, 'segs': [{'end': 605.21, 'src': 'embed', 'start': 575.166, 'weight': 0, 'content': [{'end': 583.932, 'text': 'Now in this one, um, I think the only change we need to make will be up here.', 'start': 575.166, 'duration': 8.766}, {'end': 591.859, 'text': "So we're just going to change raccoon to be whatever your label was.", 'start': 584.432, 'duration': 7.427}, {'end': 598.124, 'text': "So whatever label you chose when you were labeling it and then label image, put that in for me, that's Mac and cheese.", 'start': 591.919, 'duration': 6.205}, {'end': 600.346, 'text': 'But for you, that might be other things.', 'start': 599.085, 'duration': 1.261}, {'end': 605.21, 'text': 'Now, if you had multiple objects, you might have many if statements right?', 'start': 600.466, 'duration': 4.744}], 'summary': "Change 'raccoon' to the chosen label in the image. use multiple if statements for multiple objects.", 'duration': 30.044, 'max_score': 575.166, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/kq2Gjv_pPe8/pics/kq2Gjv_pPe8575166.jpg'}, {'end': 649.966, 'src': 'embed', 'start': 621.34, 'weight': 3, 'content': [{'end': 628.545, 'text': "My guess is that's like the label map that you're gonna write Well, we're going to write later, but I really don't know.", 'start': 621.34, 'duration': 7.205}, {'end': 631.008, 'text': 'But eventually this function might totally change.', 'start': 628.605, 'duration': 2.403}, {'end': 634.231, 'text': 'So just be on the lookout for that.', 'start': 631.128, 'duration': 3.103}, {'end': 640.437, 'text': 'If this has changed, you can either use your intuition to kind of figure it out, or you can, like I said before,', 'start': 634.271, 'duration': 6.166}, {'end': 643.079, 'text': "go to the exact commit that i'm using here.", 'start': 640.817, 'duration': 2.262}, {'end': 649.966, 'text': "i just don't want to copy his code and put it up on my github, so i'm not going to do that or on python program.net.", 'start': 643.079, 'duration': 6.887}], 'summary': 'Function may change; use intuition or specific commit for updates.', 'duration': 28.626, 'max_score': 621.34, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/kq2Gjv_pPe8/pics/kq2Gjv_pPe8621340.jpg'}, {'end': 769.272, 'src': 'heatmap', 'start': 713.119, 'weight': 1, 'content': [{'end': 720.707, 'text': 'i wanted to be 100 certain that anybody following along could really follow along um and not have missing stuff all right.', 'start': 713.119, 'duration': 7.588}, {'end': 721.728, 'text': "so i've got it, uh.", 'start': 720.707, 'duration': 1.021}, {'end': 726.853, 'text': 'installed up to the point of of all the stuff that we did basically in part one of this series.', 'start': 721.728, 'duration': 5.125}, {'end': 730.097, 'text': "uh, now there's one more thing we need to add that everybody's going to need to do um,", 'start': 726.853, 'duration': 3.244}, {'end': 738.484, 'text': 'And that is actually install object detection to our machine basically.', 'start': 731.38, 'duration': 7.104}, {'end': 741.466, 'text': 'So from, well, really the models entirely.', 'start': 738.564, 'duration': 2.902}, {'end': 746.148, 'text': "Anyway, from desktop slash models, what we're going to want to do is actually just install this.", 'start': 741.666, 'duration': 4.482}, {'end': 752.692, 'text': "So we're going to do a sudo python3 setup.py install.", 'start': 746.228, 'duration': 6.464}, {'end': 757.214, 'text': "And again, that's from that models directory, the cloned GitHub.", 'start': 753.472, 'duration': 3.742}, {'end': 760.116, 'text': 'And so you should be all set now.', 'start': 758.995, 'duration': 1.121}, {'end': 769.272, 'text': "So, once we've done that, what we're going to go ahead and do is and once you've done that too, you won't have to take the object,", 'start': 761.169, 'duration': 8.103}], 'summary': 'Install object detection to the machine from desktop/models using sudo python3 setup.py install.', 'duration': 39.573, 'max_score': 713.119, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/kq2Gjv_pPe8/pics/kq2Gjv_pPe8713119.jpg'}, {'end': 948.191, 'src': 'embed', 'start': 916.423, 'weight': 2, 'content': [{'end': 925.109, 'text': 'but basically what we had to do is convert from anything that generates data and like I think they would just call it the Pascal VOC data structure,', 'start': 916.423, 'duration': 8.686}, {'end': 925.589, 'text': 'basically.', 'start': 925.109, 'duration': 0.48}, {'end': 931.793, 'text': "And once you take those Pascal VOC files, you've got to convert them to TF record files.", 'start': 926.069, 'duration': 5.724}, {'end': 934.596, 'text': "That's my understanding, correct me if I'm wrong.", 'start': 932.594, 'duration': 2.002}, {'end': 935.858, 'text': 'Anyways, basically,', 'start': 935.137, 'duration': 0.721}, {'end': 948.191, 'text': 'this whole process was the steps that are required to convert from the stuff that we made with label image to TF records where we can actually use them with the object detection API.', 'start': 935.858, 'duration': 12.333}], 'summary': 'Conversion from pascal voc to tf record files for object detection api.', 'duration': 31.768, 'max_score': 916.423, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/kq2Gjv_pPe8/pics/kq2Gjv_pPe8916423.jpg'}, {'end': 983.599, 'src': 'embed', 'start': 963.585, 'weight': 5, 'content': [{'end': 966.988, 'text': "so, in the next tutorial, what we're going to do is set up that configuration file,", 'start': 963.585, 'duration': 3.403}, {'end': 975.355, 'text': "get a pre-trained model and we can actually start training at that point and then see, let's see if we can detect the macaroni or not.", 'start': 966.988, 'duration': 8.367}, {'end': 977.816, 'text': "so anyways, uh, that's it for now.", 'start': 975.355, 'duration': 2.461}, {'end': 983.599, 'text': 'if you have questions, comments concerns whatever, feel free to leave them below, otherwise i will see you in the next tutorial.', 'start': 977.816, 'duration': 5.783}], 'summary': 'Setting up configuration file, using pre-trained model, training to detect macaroni.', 'duration': 20.014, 'max_score': 963.585, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/kq2Gjv_pPe8/pics/kq2Gjv_pPe8963585.jpg'}], 'start': 575.166, 'title': 'Object labeling and image recognition and setting up object detection for tensorflow', 'summary': 'Involves modifying code for object labeling, discussing the use of if statements for multiple objects, and anticipating changes in a function related to label mapping. it also covers setting up object detection for tensorflow, including installing required packages and generating tf records from pascal voc data structure, in order to prepare for model training and evaluation.', 'chapters': [{'end': 643.079, 'start': 575.166, 'title': 'Object labeling and image recognition', 'summary': 'Involves modifying code for object labeling, discussing the use of if statements for multiple objects, and anticipating changes in a function related to label mapping.', 'duration': 67.913, 'highlights': ['The chapter discusses modifying code for object labeling, requiring changes based on the chosen label and image.', 'It also discusses the use of if statements for multiple objects, indicating that each object is assigned a numerical value for identification.', "The chapter anticipates changes in a function related to label mapping, advising users to be prepared for potential alterations in the function's behavior."]}, {'end': 983.599, 'start': 643.079, 'title': 'Setting up object detection for tensorflow', 'summary': 'Covers setting up object detection for tensorflow, including installing required packages and generating tf records from pascal voc data structure, in order to prepare for model training and evaluation.', 'duration': 340.52, 'highlights': ["Installing object detection to the machine by running 'sudo python3 setup.py install' from the cloned GitHub models directory. The process includes installing object detection to the machine by running 'sudo python3 setup.py install' from the cloned GitHub models directory.", 'Generating TF records from Pascal VOC data structure, converting them from train labels to train.record and test labels to test.record. The steps involve generating TF records from Pascal VOC data structure, converting them from train labels to train.record and test labels to test.record.', 'Preparing to set up the configuration file, acquire a pre-trained model, and start training for model evaluation. The next steps involve setting up the configuration file, acquiring a pre-trained model, and starting training for model evaluation.']}], 'duration': 408.433, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/kq2Gjv_pPe8/pics/kq2Gjv_pPe8575166.jpg', 'highlights': ['The chapter discusses modifying code for object labeling, requiring changes based on the chosen label and image.', "Installing object detection to the machine by running 'sudo python3 setup.py install' from the cloned GitHub models directory.", 'Generating TF records from Pascal VOC data structure, converting them from train labels to train.record and test labels to test.record.', "The chapter anticipates changes in a function related to label mapping, advising users to be prepared for potential alterations in the function's behavior.", 'The chapter also discusses the use of if statements for multiple objects, indicating that each object is assigned a numerical value for identification.', 'Preparing to set up the configuration file, acquire a pre-trained model, and start training for model evaluation.']}], 'highlights': ['Importance of TF records and configuration file for model training', '10% and 90% image distribution', 'Importance of using the latest versions', 'Introduction of XML to CSV tool', 'Use of helper code from dattrans and specific scripts required', 'Multiple changes in the tutorial repository', 'Proposing a for loop for iterating through train and test directories to create separate CSVs potentially streamlining the process and optimizing the code', 'Suggesting modifications for creating tf records in the main loop aiming for improved efficiency and reduced redundancy in handling images', 'Discussing changes to the XML to CSV conversion code indicating the presence of only one necessary modification and contemplating the possibility of submitting a pull request for further enhancements', 'The test dataset consists of 12 samples out of a total of approximately 150 images, with the remaining images used for training', 'Challenges include confusion in organizing files and directories, the creation of data and training directories, and the conversion of images to CSV files', 'The need to create a data directory and a training directory for the object detection training process', 'The process of converting images to CSV files for use in training the object detection model', 'The utilization of the TF record script for object detection training', 'The chapter discusses modifying code for object labeling, requiring changes based on the chosen label and image', "Installing object detection to the machine by running 'sudo python3 setup.py install' from the cloned GitHub models directory", 'Generating TF records from Pascal VOC data structure, converting them from train labels to train.record and test labels to test.record', "The chapter anticipates changes in a function related to label mapping, advising users to be prepared for potential alterations in the function's behavior", 'The chapter also discusses the use of if statements for multiple objects, indicating that each object is assigned a numerical value for identification', 'Preparing to set up the configuration file, acquire a pre-trained model, and start training for model evaluation']}