title
Object Detection 101 Course - Including 4xProjects | Computer Vision

description
Win a 3080 Ti by Registering using the link below and attending one of the conference sessions.(20 to 23 March 2023) https://nvda.ws/3HnZEPM πŸš€πŸš€ My Urdu/Hindi AI YouTube Channel πŸš€πŸš€ https://www.youtube.com/@murtazahassan01 Download Code and Files (Make sure to sign up for free to get access): https://www.computervision.zone/courses/object-detection-course/ Premium Courses: βœ”οΈ Computer Vision Web Development: http://bit.ly/3EmdhNB βœ”οΈ Computer Vision Game Development Course: https://bit.ly/3ttLZ2s βœ”οΈ Computer Vision with Arduino Course: https://bit.ly/3wzLB4m βœ”οΈ Advanced Drone Programming Course: https://bit.ly/3qs3v5g βœ”οΈ Learn to Build Computer Vision Mobile Apps: https://bit.ly/3uioY1J βœ”οΈ Jetson Nano Premium Course: https://bit.ly/3L8uIlF βš™οΈβš™οΈβš™οΈβ€”-My Gear β€” βš™οΈβš™οΈβš™οΈ πŸ‘‰ Complete Gear πŸ’ˆ: https://www.computervision.zone/tech-gear/ πŸ‘‰ My PC Specs πŸ–₯️: https://www.computervision.zone/tech-gear/filter/tax/tgcat:285/ πŸ‘‰ My Video Shooting GearπŸ“½οΈ : https://www.computervision.zone/tech-gear/filter/tax/tgcat:284/ πŸ‘‰ My Laptops πŸ’»: https://www.computervision.zone/tech-gear/filter/tax/tgcat:290/ πŸ‘‰ Educational ProductsπŸ§‘β€πŸŽ“: https://www.computervision.zone/tech-gear/filter/tax/tgcat:295/ πŸ‘‰ Youtube Starter Kit πŸ”΄: https://www.computervision.zone/tech-gear/filter/tax/tgcat:299/ Follow Me: TikTok: https://bit.ly/3Vo76OQ Facebook Group: https://bit.ly/3irDcb7 Discord: https://bit.ly/3JvyxAM Facebook Page: https://bit.ly/3IvpU7W Instagram: https://bit.ly/3NdGME3 Website: https://bit.ly/3ICFTS0 GitHub: https://bit.ly/3woU6PS #ComputerVision #OpenCV #CVZone 00:00 Introduction 02:08 Chapter 1 - What is Object Detection? 03:30 Chapter 2 - A Brief History 06:16 Chapter 3 - Performance Evaluation Metrics 09:07 Chapter 4 - Installations 19:23 Chapter 4.1 - Package Installations 25:45 Chapter 5 - Running Yolo 37:14 Chapter 6 - Yolo with Webcam 01:08:17 Chapter 7 - Yolo with GPU 01:21:39 Premium Courses 01:23:51 Project 1 - Car Counter 02:17:58 Project 2 - People Counter 02:31:41 Project 3 - PPE Detection (Custom Training) 03:06:19 Project 4 - Poker Hand Detector

detail
{'title': 'Object Detection 101 Course - Including 4xProjects | Computer Vision', 'heatmap': [{'end': 994.143, 'start': 823.832, 'weight': 0.872}, {'end': 1316.55, 'start': 1148.692, 'weight': 1}, {'end': 1976.109, 'start': 1472.928, 'weight': 0.937}, {'end': 2641.045, 'start': 2293.977, 'weight': 0.724}, {'end': 4438.957, 'start': 4266.902, 'weight': 0.877}, {'end': 9694.448, 'start': 9197.071, 'weight': 0.729}, {'end': 10515.682, 'start': 10345.335, 'weight': 0.765}], 'summary': "Learn object detection 101 with practical projects and custom yolo model training, including a chance to win nvidia's 3080 ti graphics card by registering for nvidia's gtc 2023 conference. explore the evolution of object detection techniques, installation and running of yolo, implementing yolo with webcam, version 8 implementation, computer vision applications, real-time object tracking, video processing, yolo model training, and customization for object detection models, along with poker hand classification and analysis.", 'chapters': [{'end': 120.32, 'segs': [{'end': 82.738, 'src': 'embed', 'start': 43.58, 'weight': 0, 'content': [{'end': 50.885, 'text': 'Later we will learn how to train a custom YOLO model using our own dataset and create two projects using our own training.', 'start': 43.58, 'duration': 7.305}, {'end': 57.787, 'text': 'the first one will be personal protective equipment detector and the second one will be poker hand detector,', 'start': 51.545, 'duration': 6.242}, {'end': 64.11, 'text': 'where we will first detect the playing cards and then create a classifier to classify the correct poker hands.', 'start': 57.787, 'duration': 6.323}, {'end': 67.111, 'text': "if you are a beginner, don't worry, this course is for you.", 'start': 64.11, 'duration': 3.001}, {'end': 69.652, 'text': 'we will go step by step, so it is easy to follow.', 'start': 67.111, 'duration': 2.541}, {'end': 74.895, 'text': 'This is an information dense course that will provide you with maximum knowledge without wasting your time.', 'start': 69.972, 'duration': 4.923}, {'end': 82.738, 'text': 'Learning custom object detection is a superpower that can allow you to solve real world problems and it can be easily completed over a weekend.', 'start': 75.255, 'duration': 7.483}], 'summary': 'Learn to train a custom yolo model for ppe and poker hand detection, suitable for beginners. gain maximum knowledge in a weekend.', 'duration': 39.158, 'max_score': 43.58, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ843580.jpg'}, {'end': 120.32, 'src': 'embed', 'start': 99.928, 'weight': 3, 'content': [{'end': 109.934, 'text': "and all you have to do is register to Nvidia's GTC 2023 conference through my link in the description and attend one of their sessions to enter the giveaway automatically.", 'start': 99.928, 'duration': 10.006}, {'end': 114.056, 'text': 'The conference will be held from 20 to 23rd March 2023.', 'start': 110.114, 'duration': 3.942}, {'end': 118.078, 'text': 'This is a great place to learn new things and keep up with the new trends in technology.', 'start': 114.056, 'duration': 4.022}, {'end': 120.32, 'text': 'So sign up today and I will see you there.', 'start': 118.599, 'duration': 1.721}], 'summary': "Register for nvidia's gtc 2023 conference through the provided link and attend a session to enter the giveaway. conference dates: 20-23 march 2023.", 'duration': 20.392, 'max_score': 99.928, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ899928.jpg'}], 'start': 0.229, 'title': 'Object detection 101 course', 'summary': "Covers the object detection 101 course, including theory, practical projects, custom yolo model training, and the opportunity to win nvidia's 3080 ti graphics card by registering for nvidia's gtc 2023 conference.", 'chapters': [{'end': 120.32, 'start': 0.229, 'title': 'Object detection 101 course', 'summary': "Covers the object detection 101 course, including theory, practical projects, custom yolo model training, and the opportunity to win nvidia's 3080 ti graphics card by registering for nvidia's gtc 2023 conference.", 'duration': 120.091, 'highlights': ['The course covers theory, practical projects, and custom YOLO model training, providing maximum knowledge without wasting time. The course offers comprehensive coverage of theory, practical projects, and custom YOLO model training, emphasizing maximum knowledge in minimal time.', "Opportunity to win Nvidia's 3080 Ti graphics card by registering for Nvidia's GTC 2023 conference and attending one of their sessions. Attendees have the chance to win Nvidia's 3080 Ti graphics card by registering for Nvidia's GTC 2023 conference and attending a session.", 'The course includes practical projects such as CarCounter, PeopleCounter, personal protective equipment detector, and poker hand detector. The course encompasses practical projects including CarCounter, PeopleCounter, personal protective equipment detector, and poker hand detector.', 'The course emphasizes the ease of following for beginners and the potential to complete it over a weekend. The course is designed for beginners and ensures ease of following, with the potential to be completed over a weekend.', "The course will utilize Nvidia's 3080 Ti graphics card, and the opportunity to win one is available by registering for Nvidia's GTC 2023 conference. The course will use Nvidia's 3080 Ti graphics card, and the opportunity to win one is linked to registering for Nvidia's GTC 2023 conference."]}], 'duration': 120.091, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ8229.jpg', 'highlights': ['The course offers comprehensive coverage of theory, practical projects, and custom YOLO model training, emphasizing maximum knowledge in minimal time.', 'The course encompasses practical projects including CarCounter, PeopleCounter, personal protective equipment detector, and poker hand detector.', 'The course is designed for beginners and ensures ease of following, with the potential to be completed over a weekend.', "Attendees have the chance to win Nvidia's 3080 Ti graphics card by registering for Nvidia's GTC 2023 conference and attending a session."]}, {'end': 1493.156, 'segs': [{'end': 320.45, 'src': 'embed', 'start': 293.139, 'weight': 0, 'content': [{'end': 297.441, 'text': 'This was a very inefficient approach, so soon after came the RCNN.', 'start': 293.139, 'duration': 4.302}, {'end': 303.583, 'text': 'regions with cnn that used selective regions to apply the classifiers.', 'start': 298.081, 'duration': 5.502}, {'end': 306.264, 'text': 'this gave good results, but it was slow.', 'start': 303.583, 'duration': 2.681}, {'end': 312.947, 'text': 'so then came the fast rcnn and the foster rcnn, which were faster but still not real time.', 'start': 306.264, 'duration': 6.683}, {'end': 316.328, 'text': 'in 2015 came the breakthrough of yolo.', 'start': 312.947, 'duration': 3.381}, {'end': 320.45, 'text': 'this outperformed all the other models and ran object detection in real time.', 'start': 316.328, 'duration': 4.122}], 'summary': 'Yolo outperformed previous models, achieving real-time object detection in 2015.', 'duration': 27.311, 'max_score': 293.139, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ8293139.jpg'}, {'end': 416.998, 'src': 'embed', 'start': 389.587, 'weight': 1, 'content': [{'end': 394.709, 'text': 'One is to evaluate how good is the location and the other is how good is the classification.', 'start': 389.587, 'duration': 5.122}, {'end': 401.693, 'text': 'First is the IOU to measure the localization and the second is the MAP for classification.', 'start': 395.29, 'duration': 6.403}, {'end': 412.056, 'text': "iou stands for intersection over union it tells us how close the predicted bounding box is to the ground truth it's a value between 0 and 1.", 'start': 402.413, 'duration': 9.643}, {'end': 416.998, 'text': "if the boxes overlap then it's a perfect detection with an iou of 1.", 'start': 412.056, 'duration': 4.942}], 'summary': 'Evaluate location and classification using iou and map metrics.', 'duration': 27.411, 'max_score': 389.587, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ8389587.jpg'}, {'end': 645.1, 'src': 'embed', 'start': 614.616, 'weight': 2, 'content': [{'end': 617.438, 'text': 'Now you can have multiple versions of Python as well.', 'start': 614.616, 'duration': 2.822}, {'end': 622.042, 'text': 'So you can have the same project running on different Python versions.', 'start': 617.899, 'duration': 4.143}, {'end': 625.744, 'text': 'So you can see which one is more stable, which one gives you better results.', 'start': 622.402, 'duration': 3.342}, {'end': 630.397, 'text': 'So I will show you how you can do that because I already have Python 3.7.', 'start': 626.165, 'duration': 4.232}, {'end': 633.25, 'text': '6, which I have been using for the longest time period.', 'start': 630.397, 'duration': 2.853}, {'end': 638.774, 'text': 'And I will also show you how you can use Python 3.10 in this case.', 'start': 633.81, 'duration': 4.964}, {'end': 645.1, 'text': 'So we will be using Python 3.10, but if we had to downgrade, I will show you how you can do that.', 'start': 639.075, 'duration': 6.025}], 'summary': 'Learn to manage multiple python versions for project stability and comparison.', 'duration': 30.484, 'max_score': 614.616, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ8614616.jpg'}, {'end': 811.101, 'src': 'embed', 'start': 786.884, 'weight': 3, 'content': [{'end': 796.477, 'text': 'what you do is you have the actual Python and you copy that basically and you create a virtual environment that is separate to everything else.', 'start': 786.884, 'duration': 9.593}, {'end': 803.427, 'text': 'So this project will have its own environment and whatever you install will be installed in this environment.', 'start': 796.938, 'duration': 6.489}, {'end': 807.538, 'text': 'So this is based on a specific version of Python.', 'start': 804.335, 'duration': 3.203}, {'end': 811.101, 'text': 'So here, the base interpreter you have to mention.', 'start': 808.058, 'duration': 3.043}], 'summary': 'Create a separate virtual environment for a python project to ensure isolated installations and specific version usage.', 'duration': 24.217, 'max_score': 786.884, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ8786884.jpg'}, {'end': 994.143, 'src': 'heatmap', 'start': 823.832, 'weight': 0.872, 'content': [{'end': 827.675, 'text': 'Python 3.7 and Python 3.10.', 'start': 823.832, 'duration': 3.843}, {'end': 829.837, 'text': 'So I can choose between these two.', 'start': 827.675, 'duration': 2.162}, {'end': 832.639, 'text': "So for now, I'm going to choose, for example, this one.", 'start': 830.358, 'duration': 2.281}, {'end': 841.707, 'text': "So what I will do is when I'm creating the environment, I'm putting down the name and I can write environment and I can write 310.", 'start': 833.2, 'duration': 8.507}, {'end': 844.489, 'text': 'So this has a version as well.', 'start': 841.707, 'duration': 2.782}, {'end': 850.294, 'text': "So here we'll just name it Python project and we are going to hit create.", 'start': 844.91, 'duration': 5.384}, {'end': 861.197, 'text': 'so we will use the same window to create this project and here we have our python project and that is created with the main file and you can see the virtual environment.', 'start': 851.388, 'duration': 9.809}, {'end': 864.4, 'text': '3.10 has been created.', 'start': 861.197, 'duration': 3.203}, {'end': 872.346, 'text': 'so what i can do is i can remove all this and i can simply write print hello world.', 'start': 864.4, 'duration': 7.946}, {'end': 878.908, 'text': "So let's go ahead and right click and we are going to run main and this will give us hello world.", 'start': 873.365, 'duration': 5.543}, {'end': 883.19, 'text': 'So this is running Python 3.10.', 'start': 879.788, 'duration': 3.402}, {'end': 887.672, 'text': 'How do I know this is because you can see here we have Python 3.10.', 'start': 883.19, 'duration': 4.482}, {'end': 893.362, 'text': "We don't have Python 3.7.", 'start': 887.672, 'duration': 5.69}, {'end': 898.724, 'text': 'So what we will do is we are going to go to file and any package that we want to install.', 'start': 893.362, 'duration': 5.362}, {'end': 904.986, 'text': "we can go to settings and then we will go to project Python project and we'll go to Python interpreter.", 'start': 898.724, 'duration': 6.262}, {'end': 914.309, 'text': "And here we can add any package that we want, whether it's open CV, whether it's CV zone, whether it's ultra latex, whatever it is,", 'start': 905.586, 'duration': 8.723}, {'end': 915.25, 'text': 'you can install here.', 'start': 914.309, 'duration': 0.941}, {'end': 918.851, 'text': 'So for example, we can go ahead and install numpy.', 'start': 915.75, 'duration': 3.101}, {'end': 930.496, 'text': 'numpy. so we will click on install package and it will take a while, and you can also specify which version of numpy do you want to install.', 'start': 920.188, 'duration': 10.308}, {'end': 935.26, 'text': 'we are installing the latest one that is available right now, so we can hit close.', 'start': 930.496, 'duration': 4.764}, {'end': 940.121, 'text': 'and here you can see now in the packages we have numpy installed.', 'start': 935.78, 'duration': 4.341}, {'end': 944.982, 'text': 'this is the current version and this is the latest version, so they are up to date.', 'start': 940.121, 'duration': 4.861}, {'end': 948.343, 'text': "so these three are already installed, so you don't have to worry about those.", 'start': 944.982, 'duration': 3.361}, {'end': 949.483, 'text': 'then we can simply click.', 'start': 948.343, 'duration': 1.14}, {'end': 962.167, 'text': 'ok, so here, if i write imports numpy and if i run this, it will not give me any error, which means numpy has been installed.', 'start': 949.483, 'duration': 12.684}, {'end': 970.768, 'text': 'if i write anything else, it will give me an error, because there is no library called numpy2y, right?', 'start': 962.167, 'duration': 8.601}, {'end': 972.809, 'text': "So that's the basic idea.", 'start': 971.368, 'duration': 1.441}, {'end': 974.59, 'text': 'So this is import numpy.', 'start': 973.249, 'duration': 1.341}, {'end': 982.035, 'text': 'Now, if I go to file, and if I go to settings, I can create a new virtual environment.', 'start': 975.131, 'duration': 6.904}, {'end': 986.318, 'text': 'If I wanted to use two different Pythons, I could create a new virtual environment.', 'start': 982.455, 'duration': 3.863}, {'end': 994.143, 'text': 'To do that, you can click here, you can go to show all, and over here, we can click on add.', 'start': 986.918, 'duration': 7.225}], 'summary': 'Creating python project, environment, installing numpy and running python 3.10.', 'duration': 170.311, 'max_score': 823.832, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ8823832.jpg'}, {'end': 1316.55, 'src': 'heatmap', 'start': 1148.692, 'weight': 1, 'content': [{'end': 1151.194, 'text': 'so then In that case we are going to downgrade.', 'start': 1148.692, 'duration': 2.502}, {'end': 1158.66, 'text': 'So now that we understand how to install PyCharm and how to install Python, you can add more Python versions.', 'start': 1151.854, 'duration': 6.806}, {'end': 1162.604, 'text': 'Now we can simply go ahead and start working on our project.', 'start': 1159.181, 'duration': 3.423}, {'end': 1176.663, 'text': 'So here we are going to create our PyChamp project, which is object detection YOLO, and we are creating a new virtual environment,', 'start': 1168.737, 'duration': 7.926}, {'end': 1182.456, 'text': 'and the environment is based on the base interpreter of Python, version 3.1..', 'start': 1176.663, 'duration': 5.793}, {'end': 1184.548, 'text': '0, so 3.10.', 'start': 1182.456, 'duration': 2.092}, {'end': 1187.01, 'text': 'So it is up to you which Python version you want to use.', 'start': 1184.548, 'duration': 2.462}, {'end': 1189.131, 'text': 'So we are using 3.10.', 'start': 1187.67, 'duration': 1.461}, {'end': 1195.076, 'text': "If you have a newer version, you can use that too, but don't use the latest one because it might yield some errors.", 'start': 1189.131, 'duration': 5.945}, {'end': 1199.883, 'text': "So what we'll do is we'll simply hit on create.", 'start': 1196.281, 'duration': 3.602}, {'end': 1203.686, 'text': 'And there you go.', 'start': 1203.065, 'duration': 0.621}, {'end': 1205.507, 'text': 'We have our project.', 'start': 1203.806, 'duration': 1.701}, {'end': 1208.008, 'text': 'And here we have a main file.', 'start': 1206.287, 'duration': 1.721}, {'end': 1212.011, 'text': 'So what we can do is we can use this main file to test our code.', 'start': 1208.729, 'duration': 3.282}, {'end': 1220.236, 'text': 'We can simply write print, print hello world, and we can run it.', 'start': 1212.671, 'duration': 7.565}, {'end': 1224.468, 'text': "just to see if everything is working and it's working fine.", 'start': 1221.226, 'duration': 3.242}, {'end': 1232.213, 'text': 'So in order to get started, what we have to do is we have to do some installations on this virtual environment.', 'start': 1225.269, 'duration': 6.944}, {'end': 1236.316, 'text': 'So if you look at this folder, we have the virtual environment.', 'start': 1232.754, 'duration': 3.562}, {'end': 1240.098, 'text': 'If you click on that in the libraries, these are the site packages.', 'start': 1236.376, 'duration': 3.722}, {'end': 1244.601, 'text': 'We need to install some packages in order to run our project.', 'start': 1240.699, 'duration': 3.902}, {'end': 1246.683, 'text': 'So how can you do that?', 'start': 1245.222, 'duration': 1.461}, {'end': 1258.069, 'text': 'You can go to file settings and in the project python interpreter you can click on add, you can type in the version, for example,', 'start': 1246.723, 'duration': 11.346}, {'end': 1265.353, 'text': 'you can type in the site package name, for example cv zone, and you can hit install.', 'start': 1258.069, 'duration': 7.284}, {'end': 1271.198, 'text': "Now, when we are working with object detection, there's a lot of libraries that are working at the backend.", 'start': 1266.133, 'duration': 5.065}, {'end': 1274.622, 'text': 'So installing them one by one will take a lot of time.', 'start': 1271.859, 'duration': 2.763}, {'end': 1283.551, 'text': 'So what you can do is a simple way of doing this is copying a requirements file, or you can create your own file as well.', 'start': 1275.162, 'duration': 8.389}, {'end': 1286.644, 'text': 'So here, this is a standard version.', 'start': 1284.181, 'duration': 2.463}, {'end': 1288.706, 'text': 'This is a standard way of doing this.', 'start': 1286.664, 'duration': 2.042}, {'end': 1295.514, 'text': 'So what you can do is you can simply paste requirements.txt in this project.', 'start': 1289.187, 'duration': 6.327}, {'end': 1302.787, 'text': 'So where do you get this requirements.txt? You can download it from our website, computervision.zone.', 'start': 1296.485, 'duration': 6.302}, {'end': 1304.427, 'text': 'It is free to download.', 'start': 1303.187, 'duration': 1.24}, {'end': 1305.867, 'text': 'All you have to do is sign up.', 'start': 1304.567, 'duration': 1.3}, {'end': 1309.928, 'text': 'If you already have signed up, just sign in with your account,', 'start': 1306.327, 'duration': 3.601}, {'end': 1315.09, 'text': 'go to the course page and there you can download everything related to the course absolutely free.', 'start': 1309.928, 'duration': 5.162}, {'end': 1316.55, 'text': "So you don't have to pay anything.", 'start': 1315.39, 'duration': 1.16}], 'summary': 'The transcript discusses installing pycharm, creating a project, and installing required packages for object detection using python version 3.10.', 'duration': 167.858, 'max_score': 1148.692, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ81148692.jpg'}, {'end': 1184.548, 'src': 'embed', 'start': 1151.854, 'weight': 4, 'content': [{'end': 1158.66, 'text': 'So now that we understand how to install PyCharm and how to install Python, you can add more Python versions.', 'start': 1151.854, 'duration': 6.806}, {'end': 1162.604, 'text': 'Now we can simply go ahead and start working on our project.', 'start': 1159.181, 'duration': 3.423}, {'end': 1176.663, 'text': 'So here we are going to create our PyChamp project, which is object detection YOLO, and we are creating a new virtual environment,', 'start': 1168.737, 'duration': 7.926}, {'end': 1182.456, 'text': 'and the environment is based on the base interpreter of Python, version 3.1..', 'start': 1176.663, 'duration': 5.793}, {'end': 1184.548, 'text': '0, so 3.10.', 'start': 1182.456, 'duration': 2.092}], 'summary': 'Installing pycharm and python, creating a yolo project with python version 3.10', 'duration': 32.694, 'max_score': 1151.854, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ81151854.jpg'}], 'start': 134.031, 'title': 'Evolution and implementation of object detection techniques', 'summary': 'Covers the evolution of object detection techniques from viola jones to yolo, discusses evaluation metrics such as iou and map, emphasizes the importance of python version selection, provides a detailed guide on pycharm installation, and explains the process of setting up and managing python virtual environments.', 'chapters': [{'end': 366.796, 'start': 134.031, 'title': 'Evolution of object detection', 'summary': 'Discusses the concept of object detection, including its differences from object classification and segmentation, the history of object detection techniques, and the evolution from viola jones to yolo, emphasizing the efficiency and real-time performance of yolo in object detection.', 'duration': 232.765, 'highlights': ['YOLO outperformed previous models and enabled real-time object detection, processing the input image in a single pass, making it more efficient than predecessors such as RCNN and Fast RCNN.', 'Convolutional Neural Networks (CNN) gained popularity in object detection, leading to the development of RCNN, Fast RCNN, and ultimately YOLO, which revolutionized real-time object detection in 2015.', 'Viola Jones algorithm, based on sliding windows to search for features, became popular for real-time object detection, initially used for face detection in smartphones and cameras.', 'Object detection provides bounding box information and object classification, while object segmentation identifies and separates distinct objects on a pixel level, with image detection being the preferred choice for most computer vision applications due to its lower computational expense.', 'The history of object detection dates back to the 1970s, with researchers initially developing automated methods based on simple features such as edges and corners, followed by the release of algorithms like Viola Jones and Histogram of Oriented Gradients (HOG) focusing on shape and features of the object.']}, {'end': 564.638, 'start': 367.096, 'title': 'Object detection model evaluation', 'summary': 'Discusses the evaluation metrics for object detection models, including iou for localization and map for classification, as well as the process of calculating precision and recall, culminating in the mean average precision (map) for multi-class models. it also mentions the process of downloading python for further implementation.', 'duration': 197.542, 'highlights': ['The chapter discusses the evaluation metrics for object detection models, including IOU for localization and MAP for classification. It explains the importance of IOU (intersection over union) for measuring the proximity of predicted bounding boxes to the ground truth, with a range of 0 to 1, and introduces MAP (mean average precision) for classification evaluation.', 'The process of calculating precision and recall, culminating in the mean average precision (MAP) for multi-class models. It describes the calculation of precision and recall, and how they are combined to form the precision average, followed by the computation of mean average precision (MAP) for multi-class models.', 'Mention of the process of downloading Python for further implementation. It briefly mentions the process of downloading Python for further implementation, directing to python.org for the latest version.']}, {'end': 786.884, 'start': 564.638, 'title': 'Python version management & pycharm installation', 'summary': 'Discusses the importance of choosing the right python version for stability and support, emphasizes the process of downloading python 3.10 instead of the latest version, and provides a detailed guide on installing pycharm community edition on windows.', 'duration': 222.246, 'highlights': ['The chapter discusses the importance of choosing the right Python version for stability and support Emphasizes the significance of selecting a stable and supported Python version for projects, highlighting the potential errors and bug fixes that may arise from using the latest version.', 'Emphasizes the process of downloading Python 3.10 instead of the latest version Advises users to opt for Python 3.10 over the latest version, citing long-term support and stability as key factors in making this decision.', 'Provides a detailed guide on installing PyCharm Community Edition on Windows Offers a step-by-step walkthrough of the installation process for PyCharm Community Edition on Windows, including associating .py files, adding bin folder to the paths, and creating a desktop icon.']}, {'end': 974.59, 'start': 786.884, 'title': 'Setting up python virtual environment', 'summary': 'Explains the process of setting up a virtual environment in python, including selecting the base interpreter, creating the environment, installing packages like numpy, and verifying the installation through code execution.', 'duration': 187.706, 'highlights': ['The process involves creating a virtual environment separate from the actual Python installation, allowing for project-specific dependencies. For example, Python 3.7 and Python 3.10 are available for selection. Creating a separate virtual environment allows for project-specific dependencies, such as choosing between different Python versions like 3.7 and 3.10.', 'Demonstrating the installation of the numpy package and specifying the version, resulting in successful installation and verification through code execution. Illustrating the installation of the numpy package, specifying the version, and verifying the successful installation through code execution.', 'Explanation of adding and installing packages like open CV, CV zone, or ultra latex, and verifying their installation and functionality through code execution. Explaining the process of adding and installing packages such as open CV, CV zone, or ultra latex, and verifying their installation and functionality through code execution.']}, {'end': 1493.156, 'start': 975.131, 'title': 'Managing python virtual environments in pycharm', 'summary': 'Explains how to create and manage virtual environments in pycharm, highlighting the importance of managing libraries and dependencies for different python versions and providing guidance on using a requirements file for efficient library installation.', 'duration': 518.025, 'highlights': ['The chapter explains the process of creating a new virtual environment in PyCharm and selecting the Python version, emphasizing the significance of managing libraries for different Python versions. Process of creating a new virtual environment, selecting Python version.', 'The importance of managing libraries in different virtual environments is emphasized, highlighting the impact of using different Python versions on library installations. Impact of using different Python versions on library installations.', 'Guidance is provided on using a requirements file for efficient library installations, with a detailed explanation of the syntax and its significance in managing library versions. Guidance on using a requirements file for efficient library installations.']}], 'duration': 1359.125, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ8134031.jpg', 'highlights': ['YOLO outperformed previous models and enabled real-time object detection, processing the input image in a single pass, making it more efficient than predecessors such as RCNN and Fast RCNN.', 'The chapter discusses the evaluation metrics for object detection models, including IOU for localization and MAP for classification. It explains the importance of IOU (intersection over union) for measuring the proximity of predicted bounding boxes to the ground truth, with a range of 0 to 1, and introduces MAP (mean average precision) for classification evaluation.', 'The chapter discusses the importance of choosing the right Python version for stability and support Emphasizes the significance of selecting a stable and supported Python version for projects, highlighting the potential errors and bug fixes that may arise from using the latest version.', 'The process involves creating a virtual environment separate from the actual Python installation, allowing for project-specific dependencies. For example, Python 3.7 and Python 3.10 are available for selection. Creating a separate virtual environment allows for project-specific dependencies, such as choosing between different Python versions like 3.7 and 3.10.', 'The chapter explains the process of creating a new virtual environment in PyCharm and selecting the Python version, emphasizing the significance of managing libraries for different Python versions.']}, {'end': 2191.087, 'segs': [{'end': 1605.026, 'src': 'embed', 'start': 1515.907, 'weight': 0, 'content': [{'end': 1518.71, 'text': 'And it will download the YOLO weights for us as well.', 'start': 1515.907, 'duration': 2.803}, {'end': 1521.794, 'text': 'So we will be using version 8 of YOLO.', 'start': 1519.131, 'duration': 2.663}, {'end': 1527.761, 'text': 'And if later versions come up, you can use those too, depending on whether they are.', 'start': 1522.494, 'duration': 5.267}, {'end': 1532.847, 'text': 'are related to ultra analytics or not.', 'start': 1529.626, 'duration': 3.221}, {'end': 1537.708, 'text': "so all of these packages are being installed and let's wait for it to finish.", 'start': 1532.847, 'duration': 4.861}, {'end': 1540.108, 'text': 'so all the packages have now been installed.', 'start': 1537.708, 'duration': 2.4}, {'end': 1544.149, 'text': 'as you can see, all of them are installed and we are good to go.', 'start': 1540.108, 'duration': 4.041}, {'end': 1567.573, 'text': 'so what we can do is we are going to create a new folder and we are going to call it chapter 5, and within chapter 5 we are going to say running yolo.', 'start': 1544.149, 'duration': 23.424}, {'end': 1577.182, 'text': 'so then we will right click and we will create a new python file and we will call it yolo basics, basics.', 'start': 1567.573, 'duration': 9.609}, {'end': 1579.163, 'text': 'So there you go.', 'start': 1578.442, 'duration': 0.721}, {'end': 1588.612, 'text': 'we have our first file and all we have to do is we have to test whether the YOLO will work or not, and how exactly can we run it?', 'start': 1579.163, 'duration': 9.449}, {'end': 1592.657, 'text': 'So in order to test YOLO, we need to have some images.', 'start': 1589.233, 'duration': 3.424}, {'end': 1595.76, 'text': 'So we are going to run it on images first.', 'start': 1593.357, 'duration': 2.403}, {'end': 1600.184, 'text': 'Once we know it works, then we are going to try it with webcam in the next chapter.', 'start': 1596.16, 'duration': 4.024}, {'end': 1602.485, 'text': 'So we have some images.', 'start': 1600.985, 'duration': 1.5}, {'end': 1605.026, 'text': 'Again, you will find this on our website.', 'start': 1602.726, 'duration': 2.3}], 'summary': 'Installing yolo version 8, creating folder, testing with images, then webcam in next chapter.', 'duration': 89.119, 'max_score': 1515.907, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ81515907.jpg'}, {'end': 1680.148, 'src': 'embed', 'start': 1632.703, 'weight': 1, 'content': [{'end': 1637.744, 'text': 'So once we have that, now, what we have to do is first of all, we have to import Ultralytics.', 'start': 1632.703, 'duration': 5.041}, {'end': 1644.926, 'text': 'So we are going to write from Ultralytics imports Yolo.', 'start': 1638.124, 'duration': 6.802}, {'end': 1653.658, 'text': 'so that is what we are going to import, and then we also need to import cv2 and i will tell you why.', 'start': 1646.894, 'duration': 6.764}, {'end': 1657.8, 'text': "okay, let's just run it and i will tell you why later on.", 'start': 1653.658, 'duration': 4.142}, {'end': 1661.537, 'text': 'so It is very simple, with only two lines of code.', 'start': 1657.8, 'duration': 3.737}, {'end': 1663.538, 'text': 'You can simply run your model.', 'start': 1661.657, 'duration': 1.881}, {'end': 1665.9, 'text': 'So first of all, we are going to create the model.', 'start': 1664.019, 'duration': 1.881}, {'end': 1668.761, 'text': "We'll call model equals YOLO.", 'start': 1666.44, 'duration': 2.321}, {'end': 1671.963, 'text': 'And then we are going to give in the weights.', 'start': 1669.482, 'duration': 2.481}, {'end': 1674.384, 'text': 'So there are different types of weights.', 'start': 1672.844, 'duration': 1.54}, {'end': 1677.586, 'text': 'You have the nano, the medium, the large.', 'start': 1674.865, 'duration': 2.721}, {'end': 1680.148, 'text': "It's based on you, which you want to use.", 'start': 1678.187, 'duration': 1.961}], 'summary': 'Import ultralytics and yolo model, run with two lines of code, choose weights: nano, medium, or large.', 'duration': 47.445, 'max_score': 1632.703, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ81632703.jpg'}, {'end': 2015.624, 'src': 'embed', 'start': 1990.336, 'weight': 2, 'content': [{'end': 2001.533, 'text': 'so you have lots of cars being detected, some with confidence of 0.88, some with 0.85, some with 0.67..', 'start': 1990.336, 'duration': 11.197}, {'end': 2006.577, 'text': 'You can see the pattern, the closer it is to the camera, it actually detects it very well.', 'start': 2001.533, 'duration': 5.044}, {'end': 2010.04, 'text': 'The further it is from the camera, it might not detect.', 'start': 2006.777, 'duration': 3.263}, {'end': 2015.624, 'text': 'So basically the idea is how clear is the sight of viewing.', 'start': 2010.84, 'duration': 4.784}], 'summary': 'High confidence detection closer to camera, reduces further away. sight clarity matters.', 'duration': 25.288, 'max_score': 1990.336, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ81990336.jpg'}], 'start': 1493.276, 'title': 'Installing and running yolo object detection', 'summary': 'Covers the installation of ultralytics library for yolo package version 8, including downloading yolo weights, and running yolo on images of a school bus, cars, and motorbikes. it also demonstrates how to run yolo object detection model, including importing ultralytics, creating the model, downloading different weights, and adjusting the detection results based on confidence levels and versions.', 'chapters': [{'end': 1632.122, 'start': 1493.276, 'title': 'Installing yolo and running object detection', 'summary': 'Details the installation of ultralytics library for yolo package version 8, including downloading yolo weights, and creating a new folder for running yolo on images of a school bus, cars, and motorbikes.', 'duration': 138.846, 'highlights': ['The main library used is Ultralytics, providing the YOLO package version 8 and downloading the YOLO weights.', 'The chapter covers the creation of a new folder for running YOLO on images of a school bus, cars, and motorbikes.', 'Instructions for installing the required packages and testing YOLO on images are provided, with plans to later test it with a webcam in the next chapter.']}, {'end': 2191.087, 'start': 1632.703, 'title': 'Running yolo object detection model', 'summary': 'Demonstrates how to run yolo object detection model, including importing ultralytics, creating the model, downloading different weights, and adjusting the detection results based on confidence levels and versions.', 'duration': 558.384, 'highlights': ['You can simply run your model with only two lines of code. Running the YOLO model only requires two lines of code, making it simple and efficient.', 'Different weights such as nano, medium, and large can be chosen for the model. The model allows for the selection of different weights like nano, medium, and large, providing flexibility based on user preferences.', 'Results show the detection of various objects with their confidence levels. The model displays detected objects along with their confidence levels, providing valuable information about the accuracy of the detections.']}], 'duration': 697.811, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ81493276.jpg', 'highlights': ['The main library used is Ultralytics, providing the YOLO package version 8 and downloading the YOLO weights.', 'Different weights such as nano, medium, and large can be chosen for the model. The model allows for the selection of different weights like nano, medium, and large, providing flexibility based on user preferences.', 'Results show the detection of various objects with their confidence levels. The model displays detected objects along with their confidence levels, providing valuable information about the accuracy of the detections.', 'You can simply run your model with only two lines of code. Running the YOLO model only requires two lines of code, making it simple and efficient.', 'The chapter covers the creation of a new folder for running YOLO on images of a school bus, cars, and motorbikes.', 'Instructions for installing the required packages and testing YOLO on images are provided, with plans to later test it with a webcam in the next chapter.']}, {'end': 3843.89, 'segs': [{'end': 2272.73, 'src': 'embed', 'start': 2239.525, 'weight': 0, 'content': [{'end': 2243.008, 'text': 'So now in chapter number six, we are going to run YOLO with our webcam.', 'start': 2239.525, 'duration': 3.483}, {'end': 2245.85, 'text': "So let's see how we can do that.", 'start': 2243.668, 'duration': 2.182}, {'end': 2258.179, 'text': 'So we are going to need the help of OpenCV in this case and we are going to put bounding box ourselves manually so that it is easier for us to decide what to display and what not to display.', 'start': 2246.19, 'duration': 11.989}, {'end': 2272.73, 'text': "So what we'll do is, first of all we'll go to new and directory and then we are going to write chapter six, and chapter six is yolo with webcam.", 'start': 2258.9, 'duration': 13.83}], 'summary': 'Chapter 6 demonstrates running yolo with webcam using opencv for manual bounding box placement.', 'duration': 33.205, 'max_score': 2239.525, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ82239525.jpg'}, {'end': 2641.045, 'src': 'heatmap', 'start': 2293.977, 'weight': 0.724, 'content': [{'end': 2312.284, 'text': 'So we will write from Ultralytics import YOLO, and then we will write import CV2, and then we will also import cv zone.', 'start': 2293.977, 'duration': 18.307}, {'end': 2316.609, 'text': 'so cv zone we will be using to actually display all these.', 'start': 2312.284, 'duration': 4.325}, {'end': 2319.513, 'text': 'um, what you call detections.', 'start': 2316.609, 'duration': 2.904}, {'end': 2325.179, 'text': "it will make it a little bit easier, you don't have to, but it will make a little bit easier.", 'start': 2319.513, 'duration': 5.666}, {'end': 2328.443, 'text': 'so the first thing we will do, we will create the webcam object.', 'start': 2325.179, 'duration': 3.264}, {'end': 2329.945, 'text': "so we'll write cap equals.", 'start': 2328.443, 'duration': 1.502}, {'end': 2334.186, 'text': 'uh, CV two dot video capture.', 'start': 2331.684, 'duration': 2.502}, {'end': 2336.808, 'text': 'So this is what I was referring to earlier.', 'start': 2334.866, 'duration': 1.942}, {'end': 2340.45, 'text': 'So if you are not getting any suggestions?', 'start': 2337.428, 'duration': 3.022}, {'end': 2349.657, 'text': "so if you write dot video and you don't get any suggestions, then it means you probably are using a newer version of Python, uh, of open CV.", 'start': 2340.45, 'duration': 9.207}, {'end': 2354.26, 'text': 'So, and this is the issue that we are getting with the newer versions.', 'start': 2350.738, 'duration': 3.522}, {'end': 2358.704, 'text': 'So where is it? Open CV, open CV.', 'start': 2355.682, 'duration': 3.022}, {'end': 2363.856, 'text': 'There you go.', 'start': 2363.476, 'duration': 0.38}, {'end': 2372.621, 'text': 'So OpenCV, as you can see, we are using version 4.60, whereas 6.8 is the latest version, but still 6.8 has this issue.', 'start': 2364.136, 'duration': 8.485}, {'end': 2374.942, 'text': "That's why we are using 6.0.", 'start': 2372.761, 'duration': 2.181}, {'end': 2378.944, 'text': 'So we will write cv2.videocapture and the video capture ID.', 'start': 2374.942, 'duration': 4.002}, {'end': 2382.186, 'text': 'Basically, you have to give in the ID number for your webcam.', 'start': 2379.344, 'duration': 2.842}, {'end': 2385.888, 'text': "I'm using multiple webcams, so I will give the ID number one.", 'start': 2382.586, 'duration': 3.302}, {'end': 2387.669, 'text': 'because that is what I am going to use.', 'start': 2386.308, 'duration': 1.361}, {'end': 2394.396, 'text': "But if you are using only one webcam, if you don't have multiple webcams installed, then you should write zero instead of one.", 'start': 2387.99, 'duration': 6.406}, {'end': 2399.589, 'text': 'So I will write here one and then you can specify cap dot set.', 'start': 2395.546, 'duration': 4.043}, {'end': 2402.191, 'text': 'You are going to set the width and the height.', 'start': 2400.09, 'duration': 2.101}, {'end': 2406.755, 'text': 'So the width basically is prop ID number three.', 'start': 2402.612, 'duration': 4.143}, {'end': 2408.056, 'text': 'So you can write 1280.', 'start': 2407.156, 'duration': 0.9}, {'end': 2411.899, 'text': 'This is the width and cap dot set.', 'start': 2408.056, 'duration': 3.843}, {'end': 2414.361, 'text': 'That is the prop ID number four.', 'start': 2412.6, 'duration': 1.761}, {'end': 2415.162, 'text': 'That is 720.', 'start': 2414.542, 'duration': 0.62}, {'end': 2420.72, 'text': "So this is the height and we're going to set it at 720.", 'start': 2415.162, 'duration': 5.558}, {'end': 2423.062, 'text': 'so this is the basic idea.', 'start': 2420.72, 'duration': 2.342}, {'end': 2429.628, 'text': "and again, if you wanted to, there's another one which is mostly used in webcam 640 by 480.", 'start': 2423.062, 'duration': 6.566}, {'end': 2434.733, 'text': "these dimensions are commonly used, so it's up to you which one you want to use.", 'start': 2429.628, 'duration': 5.105}, {'end': 2446.555, 'text': 'then we are going to write while true and we are going to write success and the image equals cap dot read.', 'start': 2434.733, 'duration': 11.822}, {'end': 2449.817, 'text': 'and then we are going to write cv2 dot, im show.', 'start': 2446.555, 'duration': 3.262}, {'end': 2451.358, 'text': 'we want to show the image.', 'start': 2449.817, 'duration': 1.541}, {'end': 2454.38, 'text': 'so we will write image and img.', 'start': 2451.358, 'duration': 3.022}, {'end': 2461.245, 'text': 'that is the image we want to show and cv2 dot wait key, because we want to give it one millisecond delay.', 'start': 2454.38, 'duration': 6.865}, {'end': 2464.727, 'text': 'so this should run our webcam by default.', 'start': 2461.245, 'duration': 3.482}, {'end': 2470.487, 'text': 'so if we right click and run, we should have our webcam running.', 'start': 2464.727, 'duration': 5.76}, {'end': 2471.407, 'text': 'there you go.', 'start': 2470.487, 'duration': 0.92}, {'end': 2472.487, 'text': 'so this is the webcam.', 'start': 2471.407, 'duration': 1.08}, {'end': 2475.588, 'text': "as you can see me, it's running live.", 'start': 2472.487, 'duration': 3.101}, {'end': 2479.669, 'text': 'so we can close this and if you wanted to, you can write 1280 by 640 and oh not 640 720.', 'start': 2475.588, 'duration': 4.081}, {'end': 2483.53, 'text': 'my bad, 1280 by 720, and that should work as well.', 'start': 2479.669, 'duration': 3.861}, {'end': 2491.254, 'text': 'There you go.', 'start': 2490.714, 'duration': 0.54}, {'end': 2495.337, 'text': 'So now you have a bit more area to work with.', 'start': 2491.274, 'duration': 4.063}, {'end': 2498.119, 'text': "So again, it's up to you which one you want to use.", 'start': 2495.978, 'duration': 2.141}, {'end': 2503.183, 'text': "So we'll keep it on this and let's go ahead and create our model.", 'start': 2498.88, 'duration': 4.303}, {'end': 2513.07, 'text': 'So the model, as we have seen earlier, if you go to YOLO basics here you can see this is how you can create your YOLO model,', 'start': 2503.804, 'duration': 9.266}, {'end': 2515.472, 'text': 'and then you can find the results like this', 'start': 2513.07, 'duration': 2.402}, {'end': 2521.552, 'text': 'So here we are going to write model equals.', 'start': 2516.493, 'duration': 5.059}, {'end': 2527.577, 'text': 'uh, we are going to write yolo and then we have to give in the weights.', 'start': 2521.552, 'duration': 6.025}, {'end': 2528.137, 'text': 'so the weights.', 'start': 2527.577, 'duration': 0.56}, {'end': 2530.699, 'text': 'we are going to use nano for this purpose.', 'start': 2528.137, 'duration': 2.562}, {'end': 2532.56, 'text': 'so we will go back.', 'start': 2530.699, 'duration': 1.861}, {'end': 2542.103, 'text': 'we will write yolo, yolo, dash weights and then we will write the version.', 'start': 2532.56, 'duration': 9.543}, {'end': 2546.324, 'text': 'so this is yolo version 8 and nano.', 'start': 2542.103, 'duration': 4.221}, {'end': 2553.205, 'text': 'so yolo version 8 and nano.', 'start': 2546.324, 'duration': 6.881}, {'end': 2556.366, 'text': 'so i wrote one y extra.', 'start': 2553.205, 'duration': 3.161}, {'end': 2560.587, 'text': 'so version 8 and nano dot pt.', 'start': 2556.366, 'duration': 4.221}, {'end': 2566.108, 'text': 'so here we will go down and we will write the results equals model,', 'start': 2560.587, 'duration': 5.521}, {'end': 2574.102, 'text': 'and we are going to give in our image and we are going to write stream equals true.', 'start': 2567.276, 'duration': 6.826}, {'end': 2582.829, 'text': 'Now, if you write stream equals two, it will use generators and that will be a bit more efficient than without it.', 'start': 2574.902, 'duration': 7.927}, {'end': 2585.811, 'text': 'So it is recommended to use stream equals true.', 'start': 2583.329, 'duration': 2.482}, {'end': 2590.275, 'text': "So if we run this now, let's see what happens.", 'start': 2586.412, 'duration': 3.863}, {'end': 2594.56, 'text': 'so we should not get any errors.', 'start': 2592.199, 'duration': 2.361}, {'end': 2595.7, 'text': "that's what we are trying to check.", 'start': 2594.56, 'duration': 1.14}, {'end': 2603.923, 'text': 'if you are getting any errors, it means we are heading in the wrong direction.', 'start': 2595.7, 'duration': 8.223}, {'end': 2608.765, 'text': 'there you go, we are not getting any error, so that is good.', 'start': 2603.923, 'duration': 4.842}, {'end': 2618.628, 'text': 'so now, once we have the result, what we can do is we can check for individual bounding boxes and see how well it performs.', 'start': 2608.765, 'duration': 9.863}, {'end': 2622.191, 'text': 'So here, once we get the results, we are going to loop through them.', 'start': 2619.089, 'duration': 3.102}, {'end': 2626.154, 'text': 'So we are going to write for R in results.', 'start': 2622.451, 'duration': 3.703}, {'end': 2632.939, 'text': 'We are going to get the bounding box of each of the results.', 'start': 2628.896, 'duration': 4.043}, {'end': 2641.045, 'text': 'So we will write here box is equals R dot boxes.', 'start': 2632.999, 'duration': 8.046}], 'summary': 'Creating a yolo model and setting up a webcam with opencv, including setting parameters and displaying live feed.', 'duration': 347.068, 'max_score': 2293.977, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ82293977.jpg'}, {'end': 2532.56, 'src': 'embed', 'start': 2503.804, 'weight': 1, 'content': [{'end': 2513.07, 'text': 'So the model, as we have seen earlier, if you go to YOLO basics here you can see this is how you can create your YOLO model,', 'start': 2503.804, 'duration': 9.266}, {'end': 2515.472, 'text': 'and then you can find the results like this', 'start': 2513.07, 'duration': 2.402}, {'end': 2521.552, 'text': 'So here we are going to write model equals.', 'start': 2516.493, 'duration': 5.059}, {'end': 2527.577, 'text': 'uh, we are going to write yolo and then we have to give in the weights.', 'start': 2521.552, 'duration': 6.025}, {'end': 2528.137, 'text': 'so the weights.', 'start': 2527.577, 'duration': 0.56}, {'end': 2530.699, 'text': 'we are going to use nano for this purpose.', 'start': 2528.137, 'duration': 2.562}, {'end': 2532.56, 'text': 'so we will go back.', 'start': 2530.699, 'duration': 1.861}], 'summary': 'Creating a yolo model using nano for weights.', 'duration': 28.756, 'max_score': 2503.804, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ82503804.jpg'}, {'end': 2632.939, 'src': 'embed', 'start': 2603.923, 'weight': 3, 'content': [{'end': 2608.765, 'text': 'there you go, we are not getting any error, so that is good.', 'start': 2603.923, 'duration': 4.842}, {'end': 2618.628, 'text': 'so now, once we have the result, what we can do is we can check for individual bounding boxes and see how well it performs.', 'start': 2608.765, 'duration': 9.863}, {'end': 2622.191, 'text': 'So here, once we get the results, we are going to loop through them.', 'start': 2619.089, 'duration': 3.102}, {'end': 2626.154, 'text': 'So we are going to write for R in results.', 'start': 2622.451, 'duration': 3.703}, {'end': 2632.939, 'text': 'We are going to get the bounding box of each of the results.', 'start': 2628.896, 'duration': 4.043}], 'summary': 'Successful execution with no errors. results will be looped through to obtain bounding boxes.', 'duration': 29.016, 'max_score': 2603.923, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ82603923.jpg'}, {'end': 2802.612, 'src': 'embed', 'start': 2771.974, 'weight': 4, 'content': [{'end': 2772.974, 'text': 'there you go.', 'start': 2771.974, 'duration': 1}, {'end': 2775.576, 'text': "so let's run it and see if it works.", 'start': 2772.974, 'duration': 2.602}, {'end': 2777.62, 'text': 'So there you go.', 'start': 2776.98, 'duration': 0.64}, {'end': 2778.901, 'text': 'Now we are getting the values.', 'start': 2777.7, 'duration': 1.201}, {'end': 2783.823, 'text': 'You can see here, we are getting the actual values that we can use with OpenCV.', 'start': 2779.081, 'duration': 4.742}, {'end': 2791.167, 'text': "So let's go ahead and create a rectangle to actually find out if we are getting the correct bounding boxes or not.", 'start': 2784.304, 'duration': 6.863}, {'end': 2799.751, 'text': "So here we will write CV2.rectangle rectangle, and we'll give in our image.", 'start': 2792.147, 'duration': 7.604}, {'end': 2802.612, 'text': 'And then we have the points.', 'start': 2800.531, 'duration': 2.081}], 'summary': 'Testing successful; obtaining values for opencv, creating rectangle to verify bounding boxes.', 'duration': 30.638, 'max_score': 2771.974, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ82771974.jpg'}, {'end': 2879.079, 'src': 'embed', 'start': 2846.278, 'weight': 5, 'content': [{'end': 2856.001, 'text': "so let's run it and see if it works.", 'start': 2846.278, 'duration': 9.723}, {'end': 2857.002, 'text': 'and there you go.', 'start': 2856.001, 'duration': 1.001}, {'end': 2858.462, 'text': 'so we are detecting.', 'start': 2857.002, 'duration': 1.46}, {'end': 2866.949, 'text': "so if i bring in my phone, you will see there's a bounding box around it and it shows that it is working fine.", 'start': 2858.462, 'duration': 8.487}, {'end': 2870.732, 'text': "So let's try a pen.", 'start': 2867.87, 'duration': 2.862}, {'end': 2873.475, 'text': 'Can it detect a pen? Yeah, it detects a pen as well.', 'start': 2870.953, 'duration': 2.522}, {'end': 2877.638, 'text': "It detects the phone and let's try the remote.", 'start': 2874.115, 'duration': 3.523}, {'end': 2879.079, 'text': 'It detects the remote as well.', 'start': 2877.998, 'duration': 1.081}], 'summary': 'Object detection system successfully detects phone, pen, and remote.', 'duration': 32.801, 'max_score': 2846.278, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ82846278.jpg'}, {'end': 3126.762, 'src': 'embed', 'start': 3098.577, 'weight': 6, 'content': [{'end': 3111.17, 'text': 'If you click on the control and click on corner rectangle here, you will see, uh, where is it? Is it corner rectangle? There you go.', 'start': 3098.577, 'duration': 12.593}, {'end': 3117.596, 'text': 'So it will show you, this is the length and this is the color for the corner, the color for the rectangle.', 'start': 3111.59, 'duration': 6.006}, {'end': 3126.762, 'text': 'and the rectangle thickness and the thickness of the corner and all of these details are given here.', 'start': 3118.36, 'duration': 8.402}], 'summary': 'Demonstrates how to view corner rectangle details and dimensions in the control.', 'duration': 28.185, 'max_score': 3098.577, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ83098577.jpg'}, {'end': 3203.062, 'src': 'embed', 'start': 3162.052, 'weight': 8, 'content': [{'end': 3167.155, 'text': "so let's print that out and see if it works.", 'start': 3162.052, 'duration': 5.103}, {'end': 3171.877, 'text': 'so if we go down and there you go, you can see the confidence values.', 'start': 3167.155, 'duration': 4.722}, {'end': 3173.678, 'text': 'but we want it to be rounded.', 'start': 3171.877, 'duration': 1.801}, {'end': 3177.963, 'text': 'so what you can do is you can use math.', 'start': 3174.821, 'duration': 3.142}, {'end': 3189.029, 'text': 'so imports, import math and then over here you can change this value.', 'start': 3177.963, 'duration': 11.066}, {'end': 3194.913, 'text': 'so here we can write math dot, you can write ceiling or floor.', 'start': 3189.029, 'duration': 5.884}, {'end': 3196.013, 'text': "it's up to you.", 'start': 3194.913, 'duration': 1.1}, {'end': 3203.062, 'text': "so seal and that's it, or we.", 'start': 3196.013, 'duration': 7.049}], 'summary': 'Using math functions to round confidence values in the code.', 'duration': 41.01, 'max_score': 3162.052, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ83162052.jpg'}, {'end': 3264.692, 'src': 'embed', 'start': 3235.536, 'weight': 7, 'content': [{'end': 3237.038, 'text': 'the bracket should be here.', 'start': 3235.536, 'duration': 1.502}, {'end': 3244.082, 'text': 'so you are doing the ceiling for this and then you are dividing it by hundred.', 'start': 3237.038, 'duration': 7.044}, {'end': 3244.703, 'text': 'there you go.', 'start': 3244.082, 'duration': 0.621}, {'end': 3245.443, 'text': "so now you're getting 0.94.", 'start': 3244.703, 'duration': 0.74}, {'end': 3245.944, 'text': 'so that is good.', 'start': 3245.443, 'duration': 0.501}, {'end': 3250.297, 'text': 'Now we can display it.', 'start': 3249.075, 'duration': 1.222}, {'end': 3253.42, 'text': 'So to display we are going to use CV zone.', 'start': 3250.857, 'duration': 2.563}, {'end': 3258.906, 'text': 'Now what exactly are we going to display? We are going to display the confidence and the class name.', 'start': 3254.541, 'duration': 4.365}, {'end': 3264.692, 'text': 'So we need a box, a rectangle on top of which we can display this.', 'start': 3259.427, 'duration': 5.265}], 'summary': 'Ceiling calculation resulted in 0.94 for displaying confidence and class name using cv zone.', 'duration': 29.156, 'max_score': 3235.536, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ83235536.jpg'}, {'end': 3308.47, 'src': 'embed', 'start': 3283.334, 'weight': 9, 'content': [{'end': 3290.839, 'text': "Now, if we create a rectangle using OpenCV and then we put the text on it, then it won't be centered.", 'start': 3283.334, 'duration': 7.505}, {'end': 3296.402, 'text': 'If the text is bigger, it will move away, it will move out of the box and things like that.', 'start': 3291.739, 'duration': 4.663}, {'end': 3302.566, 'text': 'So, in order to fix that, we have a function in CVZone that will create the rectangle.', 'start': 3296.942, 'duration': 5.624}, {'end': 3308.47, 'text': 'it will put the text on the rectangle and it will center it based on the length of the text.', 'start': 3302.566, 'duration': 5.904}], 'summary': 'Cvzone function centers text on rectangle for opencv.', 'duration': 25.136, 'max_score': 3283.334, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ83283334.jpg'}, {'end': 3572.757, 'src': 'embed', 'start': 3543.509, 'weight': 10, 'content': [{'end': 3545.93, 'text': 'So we need to know what class are we detecting.', 'start': 3543.509, 'duration': 2.421}, {'end': 3552.211, 'text': 'Is it a person? Is it a car? Is it a bike? What exactly are we detecting? So this is based on the Cocoa data set.', 'start': 3546.03, 'duration': 6.181}, {'end': 3555.312, 'text': 'And what we can do is we can get the class names for that.', 'start': 3552.791, 'duration': 2.521}, {'end': 3563.034, 'text': "So I've already created what you called a list and you can get this list from our website.", 'start': 3555.792, 'duration': 7.242}, {'end': 3564.914, 'text': 'Again, you can download it for free.', 'start': 3563.274, 'duration': 1.64}, {'end': 3572.757, 'text': "Now, if you don't want to do that, the other thing you can do is you can simply type it from here.", 'start': 3565.534, 'duration': 7.223}], 'summary': 'Identify classes such as person, car, or bike in cocoa dataset using downloadable list.', 'duration': 29.248, 'max_score': 3543.509, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ83543509.jpg'}, {'end': 3814.372, 'src': 'embed', 'start': 3785.143, 'weight': 11, 'content': [{'end': 3790.285, 'text': "here you can write scale and you can give in, let's say, 0.5.", 'start': 3785.143, 'duration': 5.142}, {'end': 3793.626, 'text': 'so that will squeeze everything down and make it smaller.', 'start': 3790.285, 'duration': 3.341}, {'end': 3799.14, 'text': 'This will be helpful in case you have a lot of detections.', 'start': 3796.478, 'duration': 2.662}, {'end': 3804.785, 'text': 'For example, you have a lot of cars on a highway or you have a lot of people being detected.', 'start': 3799.481, 'duration': 5.304}, {'end': 3806.406, 'text': 'So this will make it easier.', 'start': 3805.105, 'duration': 1.301}, {'end': 3807.367, 'text': 'So there you go.', 'start': 3806.766, 'duration': 0.601}, {'end': 3809.829, 'text': "But then it's a little bit harder to read.", 'start': 3807.667, 'duration': 2.162}, {'end': 3814.372, 'text': "So you have to change, let's say we'll put 0.7.", 'start': 3810.669, 'duration': 3.703}], 'summary': 'Adjust scale to 0.5 for smaller size, useful for high detections. consider 0.7 for readability.', 'duration': 29.229, 'max_score': 3785.143, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ83785143.jpg'}], 'start': 2191.087, 'title': 'Implementing yolo with webcam', 'summary': 'Details the process of implementing yolo with a webcam using opencv and cv zone, covering the setup of the webcam, creation of yolo model, real-time webcam feed display, detecting bounding boxes, visualization, display of confidence and class names, and adjusting position for object detection with specific achievements and improvements.', 'chapters': [{'end': 2603.923, 'start': 2191.087, 'title': 'Chapter 6: implementing yolo with webcam', 'summary': 'Details the process of implementing yolo with a webcam using opencv and cv zone, covering the setup of the webcam, creation of yolo model, and the display of real-time webcam feed with yolo model results.', 'duration': 412.836, 'highlights': ['The chapter details the process of implementing YOLO with a webcam using OpenCV and CV Zone The chapter provides a detailed guide on implementing YOLO with a webcam using OpenCV and CV Zone, offering practical insights into the process.', 'The setup of the webcam and creation of YOLO model are explained in detail The transcript delves into the setup of the webcam, specifying the width and height, and the creation of the YOLO model using YOLO version 8 and nano weights.', 'The display of real-time webcam feed with YOLO model results is demonstrated The process of displaying real-time webcam feed with YOLO model results is explained, including the use of stream equals true for more efficient results.']}, {'end': 2846.278, 'start': 2603.923, 'title': 'Detecting bounding boxes with opencv', 'summary': 'Demonstrates how to extract and process bounding box coordinates from detection results, convert them to integers, and create rectangles using opencv, resulting in accurate bounding boxes for further analysis.', 'duration': 242.355, 'highlights': ['Looping through detection results to extract bounding box coordinates The speaker iterates through the detection results to extract the bounding box coordinates, enabling further analysis and processing.', 'Converting bounding box coordinates to integers for use with OpenCV The transcript outlines the process of converting extracted bounding box coordinates to integers, facilitating their usage with OpenCV for accurate bounding box visualization.', 'Creating rectangles using OpenCV to visualize bounding boxes The chapter explains the utilization of OpenCV to create rectangles based on the extracted bounding box coordinates, aiding in visualizing and verifying the accuracy of the bounding boxes for subsequent analysis.']}, {'end': 3126.762, 'start': 2846.278, 'title': 'Object detection and visualization', 'summary': 'Demonstrates the implementation of object detection and visualization using bounding boxes for different objects like phones, pens, and remotes in real-time, along with the utilization of cvzone package for creating fancy rectangles.', 'duration': 280.484, 'highlights': ['The chapter demonstrates the real-time detection of objects like phones, pens, and remotes, along with the implementation of bounding boxes.', 'The implementation includes the utilization of the cvzone package for creating fancy rectangles and modifying colors and styles for the bounding boxes and inner rectangles.', 'The detailed information provided includes the specifications for corner rectangles, such as length, color, rectangle thickness, and corner thickness.']}, {'end': 3335.792, 'start': 3126.842, 'title': 'Display confidence and class name', 'summary': 'Discusses the process of obtaining and rounding confidence values to two decimal places, then displaying them alongside the class name using cvzone to improve visibility and clarity of object detection results. it also explains the automatic centering of text within the rectangle for better presentation.', 'duration': 208.95, 'highlights': ['The process involves obtaining confidence values by rounding them to two decimal places, enhancing the clarity of object detection results.', 'CVZone is utilized to display the confidence and class name within a rectangle, ensuring improved visibility and automatic centering of the text for better presentation.', 'The confidence values are rounded using math functions, such as ceiling or floor, and further adjusted for display clarity, leading to enhanced visual representation of object detection outcomes.']}, {'end': 3843.89, 'start': 3335.792, 'title': 'Adjusting position and displaying class names', 'summary': 'Discusses adjusting the position of a bounding box and displaying class names for object detection using a cocoa dataset with a list of 80 classes, achieving a 0.96 confidence level, and converting class ids to names, enhancing display readability by adjusting scale and thickness.', 'duration': 508.098, 'highlights': ['Adjusting position of bounding box and resolving display issue by using max function and adjusting values by -20 or 35 to achieve proper display within the image. The position of the bounding box is adjusted by using the max function and modifying values by -20 or 35 to ensure proper display within the image, resolving the issue of text going out of the desired display area.', 'Displaying class names by referring to a list of 80 classes from a Cocoa dataset and converting class IDs to names, achieving a 0.96 confidence level for object detection. The chapter explains the process of displaying class names by referring to a list of 80 classes from a Cocoa dataset, achieving a 0.96 confidence level for object detection, and converting class IDs to names to enhance the accuracy and clarity of the displayed information.', 'Enhancing display readability by adjusting scale and thickness to improve visibility of labels, particularly useful for scenarios with multiple detections. The display readability is enhanced by adjusting the scale and thickness to improve the visibility of labels, which is particularly useful for scenarios with multiple detections, providing ease of interpretation for the displayed information.']}], 'duration': 1652.803, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ82191087.jpg', 'highlights': ['The chapter provides a detailed guide on implementing YOLO with a webcam using OpenCV and CV Zone, offering practical insights into the process.', 'The setup of the webcam and creation of YOLO model are explained in detail, specifying the width and height, and the creation of the YOLO model using YOLO version 8 and nano weights.', 'The process of displaying real-time webcam feed with YOLO model results is explained, including the use of stream equals true for more efficient results.', 'Looping through detection results to extract bounding box coordinates, enabling further analysis and processing.', 'The chapter explains the utilization of OpenCV to create rectangles based on the extracted bounding box coordinates, aiding in visualizing and verifying the accuracy of the bounding boxes for subsequent analysis.', 'The chapter demonstrates the real-time detection of objects like phones, pens, and remotes, along with the implementation of bounding boxes.', 'The detailed information provided includes the specifications for corner rectangles, such as length, color, rectangle thickness, and corner thickness.', 'CVZone is utilized to display the confidence and class name within a rectangle, ensuring improved visibility and automatic centering of the text for better presentation.', 'The confidence values are rounded using math functions, such as ceiling or floor, and further adjusted for display clarity, leading to enhanced visual representation of object detection outcomes.', 'The position of the bounding box is adjusted by using the max function and modifying values by -20 or 35 to ensure proper display within the image, resolving the issue of text going out of the desired display area.', 'The chapter explains the process of displaying class names by referring to a list of 80 classes from a Cocoa dataset, achieving a 0.96 confidence level for object detection, and converting class IDs to names to enhance the accuracy and clarity of the displayed information.', 'The display readability is enhanced by adjusting the scale and thickness to improve the visibility of labels, particularly useful for scenarios with multiple detections, providing ease of interpretation for the displayed information.']}, {'end': 5021.366, 'segs': [{'end': 3869.596, 'src': 'embed', 'start': 3843.89, 'weight': 2, 'content': [{'end': 3849.853, 'text': "So, if we put it as 1, hopefully, we'll be able to read it.", 'start': 3843.89, 'duration': 5.963}, {'end': 3857.535, 'text': "even if it's a bit smaller, because we have a drastically reduced the scale from 3 to 0.7.", 'start': 3850.793, 'duration': 6.742}, {'end': 3858.676, 'text': 'so the thickness?', 'start': 3857.535, 'duration': 1.141}, {'end': 3861.737, 'text': "well, I don't think we can go below 1, I'm not sure.", 'start': 3858.676, 'duration': 3.061}, {'end': 3862.317, 'text': 'so there you go.', 'start': 3861.737, 'duration': 0.58}, {'end': 3865.778, 'text': 'now you can actually read percent 0.9, 0.6.', 'start': 3862.317, 'duration': 3.461}, {'end': 3869.596, 'text': 'so if you bring in the remote, you can actually read it.', 'start': 3865.778, 'duration': 3.818}], 'summary': 'Reduced scale from 3 to 0.7, enabling readability at 0.9 and 0.6 percent.', 'duration': 25.706, 'max_score': 3843.89, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ83843890.jpg'}, {'end': 4079.628, 'src': 'embed', 'start': 4047.443, 'weight': 4, 'content': [{'end': 4052.57, 'text': "okay, and then let's put it back to nano and the people.", 'start': 4047.443, 'duration': 5.127}, {'end': 4061.241, 'text': "let's try people, p-e-o-p-l-e people, and let's run that there you go.", 'start': 4052.57, 'duration': 8.671}, {'end': 4065.526, 'text': "so we are detecting people as well, and that's pretty good.", 'start': 4061.241, 'duration': 4.285}, {'end': 4072.625, 'text': 'So this is the basic idea of how you can use webcam with Yolo version eight to detect these different objects.', 'start': 4066.403, 'duration': 6.222}, {'end': 4076.587, 'text': 'And this is quite an efficient way to do it.', 'start': 4073.706, 'duration': 2.881}, {'end': 4079.628, 'text': 'So later on, we are going to use it.', 'start': 4077.227, 'duration': 2.401}], 'summary': 'Using yolo version 8 to efficiently detect people with a webcam.', 'duration': 32.185, 'max_score': 4047.443, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ84047443.jpg'}, {'end': 4159.143, 'src': 'embed', 'start': 4130.537, 'weight': 1, 'content': [{'end': 4137.962, 'text': "When we are using nano version, it's fine, but when it comes to large or medium version, then it lags very much.", 'start': 4130.537, 'duration': 7.425}, {'end': 4149.893, 'text': 'So, as you can see here, if we run it right now, we are detecting a video and then we are we are running a video with yolo version 8, large model,', 'start': 4138.563, 'duration': 11.33}, {'end': 4159.143, 'text': 'and you can see the lag is very much so it takes almost 300 milliseconds to run an inference.', 'start': 4149.893, 'duration': 9.25}], 'summary': 'Using yolo version 8 large model, video inference takes 300 milliseconds, experiencing significant lag.', 'duration': 28.606, 'max_score': 4130.537, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ84130537.jpg'}, {'end': 4225.517, 'src': 'embed', 'start': 4199.389, 'weight': 0, 'content': [{'end': 4205.772, 'text': 'you will be able to run your GPU and you will be able to run your YOLO version 8 in real time.', 'start': 4199.389, 'duration': 6.383}, {'end': 4208.773, 'text': 'And that is something that is very good to know.', 'start': 4206.172, 'duration': 2.601}, {'end': 4210.693, 'text': "So I've listed down everything in detail.", 'start': 4209.053, 'duration': 1.64}, {'end': 4212.554, 'text': "So let's go ahead and follow those steps.", 'start': 4210.933, 'duration': 1.621}, {'end': 4215.154, 'text': 'The first thing you will need is Visual Studio.', 'start': 4213.094, 'duration': 2.06}, {'end': 4217.835, 'text': 'So you have to install Visual Studio.', 'start': 4215.615, 'duration': 2.22}, {'end': 4222.336, 'text': 'This is the requirement for the CUDA toolkit.', 'start': 4218.255, 'duration': 4.081}, {'end': 4225.517, 'text': 'So this is the CUDA toolkit.', 'start': 4223.056, 'duration': 2.461}], 'summary': 'Achieve real-time yolo v8 with gpu using visual studio and cuda toolkit.', 'duration': 26.128, 'max_score': 4199.389, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ84199389.jpg'}, {'end': 4438.957, 'src': 'heatmap', 'start': 4266.902, 'weight': 0.877, 'content': [{'end': 4271.965, 'text': "So for example, I have the Nvidia's RTX 3080 Ti.", 'start': 4266.902, 'duration': 5.063}, {'end': 4275.066, 'text': 'So I will select the GeForce.', 'start': 4272.945, 'duration': 2.121}, {'end': 4277.207, 'text': 'In GeForce, I will select the 30 series.', 'start': 4275.547, 'duration': 1.66}, {'end': 4284.73, 'text': "and then GeForce RTX 3080 Ti and I'm using Windows 10 so I will select that.", 'start': 4278.388, 'duration': 6.342}, {'end': 4290.172, 'text': 'You will select the studio driver and English and you will search and you are going to download it.', 'start': 4285.07, 'duration': 5.102}, {'end': 4296.333, 'text': 'Now this is a simple wizard you have to click next next next and it should install quite easily.', 'start': 4290.652, 'duration': 5.681}, {'end': 4301.275, 'text': 'Once that is installed you will go ahead and install CUDA toolkit.', 'start': 4297.054, 'duration': 4.221}, {'end': 4307.88, 'text': 'So to the, uh, to not to the CUDA toolkit, you can install by going to their website.', 'start': 4302.236, 'duration': 5.644}, {'end': 4315.425, 'text': 'So this is, uh, for the Nvidia developer, you will click on windows then X 86 64.', 'start': 4308.34, 'duration': 7.085}, {'end': 4320.008, 'text': 'Then you will click on 11 and then you will download the local version.', 'start': 4315.425, 'duration': 4.583}, {'end': 4321.89, 'text': 'So I have, I believe CUDA 11.6.', 'start': 4320.449, 'duration': 1.441}, {'end': 4322.49, 'text': 'Let me check.', 'start': 4321.89, 'duration': 0.6}, {'end': 4330.276, 'text': 'so once you download, it will install and i will check my version as well.', 'start': 4325.592, 'duration': 4.684}, {'end': 4338.544, 'text': 'so it will install in program files and if you go down nvidia gpu computing toolkit and if you go to cuda, this is 11.5.', 'start': 4330.276, 'duration': 8.268}, {'end': 4344.787, 'text': 'so i have 11.5 based on the latest version you can download as well.', 'start': 4338.544, 'duration': 6.243}, {'end': 4346.807, 'text': "So here it's 11.5.", 'start': 4345.327, 'duration': 1.48}, {'end': 4351.529, 'text': 'We will open that up and you can see, again, this will be an installer.', 'start': 4346.807, 'duration': 4.722}, {'end': 4352.469, 'text': 'It will be a wizard.', 'start': 4351.649, 'duration': 0.82}, {'end': 4356.07, 'text': 'You have to click next, next, next, install it in C.', 'start': 4352.769, 'duration': 3.301}, {'end': 4358.791, 'text': 'And in C, this is where you will find all the files.', 'start': 4356.07, 'duration': 2.721}, {'end': 4367.273, 'text': 'So keep this folder open because next we are going to install CUDA DNN, which stands for Deep Neural Networks.', 'start': 4359.491, 'duration': 7.782}, {'end': 4369.594, 'text': 'cuda deep neural networks.', 'start': 4367.913, 'duration': 1.681}, {'end': 4379.722, 'text': 'so again you have to click on download uh, the cuda dnn and this will need, uh, what you call the registration on their website.', 'start': 4369.594, 'duration': 10.128}, {'end': 4383.104, 'text': 'so make sure you have registered and it is free to download.', 'start': 4379.722, 'duration': 3.382}, {'end': 4390.189, 'text': 'so just make sure that you have registered and it will let you download, uh, the cuda.', 'start': 4383.104, 'duration': 7.085}, {'end': 4394.291, 'text': 'So, once you download that, this is what you will get.', 'start': 4391.97, 'duration': 2.321}, {'end': 4397.252, 'text': 'So, make sure the versions are compatible.', 'start': 4395.111, 'duration': 2.141}, {'end': 4403.914, 'text': 'So, right now, this is for 11.5, which I installed as the toolkit.', 'start': 4397.652, 'duration': 6.262}, {'end': 4409.916, 'text': 'So, I have to download it for 11.5 CUDA DNN.', 'start': 4404.234, 'duration': 5.682}, {'end': 4411.697, 'text': 'So, this is what you will get.', 'start': 4410.436, 'duration': 1.261}, {'end': 4424.112, 'text': 'So if we open up our folder to install this, all you have to do is you have to open up your folder here.', 'start': 4412.317, 'duration': 11.795}, {'end': 4426.473, 'text': 'so you will see, here you have a bin folder.', 'start': 4424.112, 'duration': 2.361}, {'end': 4429.474, 'text': 'so this is the cuda toolkit.', 'start': 4426.473, 'duration': 3.001}, {'end': 4432.135, 'text': "i don't know why it's so hard to pronounce this.", 'start': 4429.474, 'duration': 2.661}, {'end': 4434.776, 'text': 'so this is the cuda toolkit.', 'start': 4432.135, 'duration': 2.641}, {'end': 4438.957, 'text': 'so this is that and this is the dnn.', 'start': 4434.776, 'duration': 4.181}], 'summary': 'Guide on installing nvidia rtx 3080 ti, geforce, cuda toolkit, and cuda dnn on windows 10.', 'duration': 172.055, 'max_score': 4266.902, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ84266902.jpg'}], 'start': 3843.89, 'title': 'Implementing yolo version 8', 'summary': 'Covers implementing yolo version 8 with webcam and videos, adjusting scale, and demonstrating the performance difference between cpu and gpu processing, achieving 300 milliseconds for inference with the large model. it also details setting up nvidia gpu for real-time yolo v8 and installing cuda toolkit and pytorch for gpu acceleration to achieve 30x faster inference speed and enable real-time yolo implementation.', 'chapters': [{'end': 4159.143, 'start': 3843.89, 'title': 'Using yolo version 8 with webcam and videos', 'summary': 'Demonstrates how to use yolo version 8 with webcam and videos, showcasing the process of adjusting scale, running detections on various videos, and highlighting the difference in performance between cpu and gpu processing, with the large model taking 300 milliseconds for inference.', 'duration': 315.253, 'highlights': ['The large version of YOLO version 8 takes almost 300 milliseconds to run an inference, showcasing the performance difference between CPU and GPU processing.', 'The chapter demonstrates adjusting the scale from 3 to 0.7, enabling improved readability at smaller sizes.', 'Different videos such as bikes, cars, motorbikes, people, PPE2, and PPE3 are used for running detections with YOLO version 8, showcasing the versatility of the model.', 'The chapter highlights the limitation of CPU processing, as even a Core i9 12th generation CPU struggles to handle real-time processing for the large version of YOLO version 8.', 'The process of using YOLO version 8 with webcam and videos is showcased, emphasizing its efficient object detection capabilities.']}, {'end': 4490.229, 'start': 4159.143, 'title': 'Setting up nvidia gpu for real time yolo v8', 'summary': "Explains the detailed steps for setting up nvidia's gpu, including the installation of visual studio for cuda toolkit, downloading and installing nvidia drivers, cuda toolkit, and cuda dnn, aiming to achieve real-time yolo version 8 performance.", 'duration': 331.086, 'highlights': ['Downloading and installing Nvidia drivers, CUDA toolkit, and CUDA DNN is essential for achieving real-time YOLO version 8 performance. This process involves installing Visual Studio for the CUDA toolkit, downloading and installing Nvidia drivers, installing CUDA toolkit, and then CUDA DNN, aiming to achieve real-time YOLO version 8 performance.', "The importance of checking the GPU level and compute capability on Nvidia's website before installation, as it impacts the performance. The GPU level and compute capability need to be checked on Nvidia's website, as it significantly impacts the performance of the GPU.", 'The installation of Visual Studio and the CUDA toolkit is necessary, with the requirement of the development with C++ for installation. The installation of Visual Studio is necessary for the CUDA toolkit, and the development with C++ is also required for installation.']}, {'end': 5021.366, 'start': 4491.553, 'title': 'Installing cuda toolkit and pytorch for gpu acceleration', 'summary': 'Covers the installation of cuda toolkit, cuda deep neural networks, and pytorch for gpu acceleration, achieving 30x faster inference speed, enabling real-time yolo implementation, and offering various computer vision courses on cvzone.', 'duration': 529.813, 'highlights': ['The installation of CUDA toolkit, CUDA DNN, and PyTorch for GPU acceleration enables 30x faster inference speed, allowing real-time YOLO implementation. The installation of CUDA toolkit, CUDA DNN, and PyTorch for GPU acceleration results in 30x faster inference speed, facilitating real-time YOLO implementation.', 'CVZone offers computer vision courses with over 100,000 users in 80+ countries, including web development, drone programming, mobile apps, Arduino integration, game development, and Jetson Nano projects. CVZone provides computer vision courses with a broad user base and diverse offerings, including web development, drone programming, mobile apps, Arduino integration, game development, and Jetson Nano projects.']}], 'duration': 1177.476, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ83843890.jpg', 'highlights': ['The installation of CUDA toolkit, CUDA DNN, and PyTorch for GPU acceleration enables 30x faster inference speed, allowing real-time YOLO implementation.', 'The large version of YOLO version 8 takes almost 300 milliseconds to run an inference, showcasing the performance difference between CPU and GPU processing.', 'The chapter demonstrates adjusting the scale from 3 to 0.7, enabling improved readability at smaller sizes.', 'Downloading and installing Nvidia drivers, CUDA toolkit, and CUDA DNN is essential for achieving real-time YOLO version 8 performance.', 'The process of using YOLO version 8 with webcam and videos is showcased, emphasizing its efficient object detection capabilities.']}, {'end': 6265.087, 'segs': [{'end': 5046.493, 'src': 'embed', 'start': 5021.626, 'weight': 0, 'content': [{'end': 5027.072, 'text': 'All these courses have a clear path from basics to advance with maximum knowledge in a short amount of time.', 'start': 5021.626, 'duration': 5.446}, {'end': 5031.316, 'text': 'So check out the links in the description to get started with your computer vision journey today.', 'start': 5027.392, 'duration': 3.924}, {'end': 5043.271, 'text': 'So now that we understand how to run YOLO and how can we run using GPU, we are going to create some projects out of this.', 'start': 5036.826, 'duration': 6.445}, {'end': 5046.493, 'text': 'So the first project that we are going to do is a car counter.', 'start': 5043.751, 'duration': 2.742}], 'summary': 'Courses offer clear path from basics to advanced, maximizing knowledge in short time. learn computer vision with practical projects like car counter.', 'duration': 24.867, 'max_score': 5021.626, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ85021626.jpg'}, {'end': 5297.822, 'src': 'embed', 'start': 5247.757, 'weight': 1, 'content': [{'end': 5251.063, 'text': "Or let's put it three because we don't want a huge offset.", 'start': 5247.757, 'duration': 3.306}, {'end': 5254.669, 'text': 'We want the cars to be visible.', 'start': 5252.044, 'duration': 2.625}, {'end': 5258.266, 'text': 'there you go.', 'start': 5257.366, 'duration': 0.9}, {'end': 5260.207, 'text': "so now it's much better.", 'start': 5258.266, 'duration': 1.941}, {'end': 5264.168, 'text': 'you can see, we have the offset and we can see the cars coming in.', 'start': 5260.207, 'duration': 3.961}, {'end': 5265.708, 'text': 'looks good, okay.', 'start': 5264.168, 'duration': 1.54}, {'end': 5269.93, 'text': 'so this is the basic idea that we have these cars coming in.', 'start': 5265.708, 'duration': 4.222}, {'end': 5273.931, 'text': 'now the thing is that it might not be a car, it might be a truck.', 'start': 5269.93, 'duration': 4.001}, {'end': 5276.892, 'text': 'but then what exactly are we trying to find?', 'start': 5273.931, 'duration': 2.961}, {'end': 5281.073, 'text': "so if you just want to do cars, you can add a if statement that if it's a car, then detect it.", 'start': 5276.892, 'duration': 4.181}, {'end': 5285.515, 'text': 'otherwise we can find out what are the vehicles that we want to find.', 'start': 5281.713, 'duration': 3.802}, {'end': 5294.5, 'text': "for example, in our case, let's say we will detect the car, we'll detect motorbike, we'll detect bus and then we will detect truck.", 'start': 5285.515, 'duration': 8.985}, {'end': 5297.822, 'text': 'so these are the four categories that we are going to detect.', 'start': 5294.5, 'duration': 3.322}], 'summary': 'Developing a system to detect cars, motorbikes, buses, and trucks in a given scenario.', 'duration': 50.065, 'max_score': 5247.757, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ85247757.jpg'}, {'end': 5513.442, 'src': 'embed', 'start': 5470.647, 'weight': 3, 'content': [{'end': 5476.932, 'text': "So that's what we are writing here that if the confidence is greater than 0.3 and it's a car, then only you can detect it.", 'start': 5470.647, 'duration': 6.285}, {'end': 5479.074, 'text': 'So we have four categories.', 'start': 5477.673, 'duration': 1.401}, {'end': 5481.516, 'text': 'So we will write for all four of them.', 'start': 5479.374, 'duration': 2.142}, {'end': 5482.877, 'text': "So we'll write here.", 'start': 5482.097, 'duration': 0.78}, {'end': 5486.841, 'text': "It's a car or it's a truck.", 'start': 5483.938, 'duration': 2.903}, {'end': 5492.846, 'text': "Uh, or it's a bus.", 'start': 5488.842, 'duration': 4.004}, {'end': 5510.26, 'text': "or it's a motorbike, so let's go down, or it's a motorbike.", 'start': 5496.73, 'duration': 13.53}, {'end': 5511.921, 'text': 'we have motorbike, right?', 'start': 5510.26, 'duration': 1.661}, {'end': 5513.442, 'text': 'yeah, we have motorbike.', 'start': 5511.921, 'duration': 1.521}], 'summary': 'Creating detection rules for four vehicle categories with confidence threshold of 0.3.', 'duration': 42.795, 'max_score': 5470.647, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ85470647.jpg'}, {'end': 5628.239, 'src': 'embed', 'start': 5601.058, 'weight': 5, 'content': [{'end': 5607.899, 'text': 'at the very back it might not classify properly, but at the middle it should detect and classify properly.', 'start': 5601.058, 'duration': 6.841}, {'end': 5610.862, 'text': 'So that is the region where we should count.', 'start': 5608.539, 'duration': 2.323}, {'end': 5613.985, 'text': 'So this is where it gives us the idea.', 'start': 5611.502, 'duration': 2.483}, {'end': 5622.774, 'text': "So if you're trying to find that position, try to loop through these images and try to find that correct position where the detections are correct.", 'start': 5614.025, 'duration': 8.749}, {'end': 5628.239, 'text': "So that's how you can tell the good position where the good position is.", 'start': 5624.195, 'duration': 4.044}], 'summary': 'Focus on the middle region for proper detection and classification to find the correct position in images.', 'duration': 27.181, 'max_score': 5601.058, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ85601058.jpg'}, {'end': 5677.348, 'src': 'embed', 'start': 5650.194, 'weight': 4, 'content': [{'end': 5653.817, 'text': 'We just want to detect at this point on the main road.', 'start': 5650.194, 'duration': 3.623}, {'end': 5658.041, 'text': 'So you have to constrain your values to get good results.', 'start': 5654.378, 'duration': 3.663}, {'end': 5664.285, 'text': "Otherwise, if it's completely open, it's not constrained at all, you might not get the best results.", 'start': 5658.421, 'duration': 5.864}, {'end': 5666.786, 'text': 'Okay, so how can we constrain this?', 'start': 5664.685, 'duration': 2.101}, {'end': 5672.287, 'text': 'How can we make sure that only this region you detect?', 'start': 5667.026, 'duration': 5.261}, {'end': 5677.348, 'text': 'what do you call the cars or whatever the object is?', 'start': 5672.287, 'duration': 5.061}], 'summary': 'Constrain values to detect on the main road for accurate results.', 'duration': 27.154, 'max_score': 5650.194, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ85650194.jpg'}, {'end': 6008.305, 'src': 'embed', 'start': 5976.756, 'weight': 7, 'content': [{'end': 5978.697, 'text': "If they're not of the same size, it will not work.", 'start': 5976.756, 'duration': 1.941}, {'end': 5982.32, 'text': "Right now, I know it's 1280 by 720.", 'start': 5979.578, 'duration': 2.742}, {'end': 5986.083, 'text': "That's why we have created the image of 1280 by 720 of the mask.", 'start': 5982.32, 'duration': 3.763}, {'end': 5987.124, 'text': 'Otherwise it will not work.', 'start': 5986.183, 'duration': 0.941}, {'end': 5988.044, 'text': 'So there you go.', 'start': 5987.504, 'duration': 0.54}, {'end': 5988.765, 'text': 'This is your mask.', 'start': 5988.084, 'duration': 0.681}, {'end': 5990.986, 'text': 'This is the image region.', 'start': 5990.066, 'duration': 0.92}, {'end': 5994.129, 'text': 'And as you can see, it will only detect in this region.', 'start': 5991.387, 'duration': 2.742}, {'end': 5995.069, 'text': "That's what we need now.", 'start': 5994.169, 'duration': 0.9}, {'end': 5997.731, 'text': 'So we want to detect only in this part.', 'start': 5995.83, 'duration': 1.901}, {'end': 5999.513, 'text': 'Actually, the mask is wrong.', 'start': 5998.372, 'duration': 1.141}, {'end': 6008.305, 'text': "um, it's, it's not perfect, because this car is is not visible.", 'start': 6001.221, 'duration': 7.084}], 'summary': 'Image size 1280x720 used to create mask for detection.', 'duration': 31.549, 'max_score': 5976.756, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ85976756.jpg'}, {'end': 6104.248, 'src': 'embed', 'start': 6069.657, 'weight': 6, 'content': [{'end': 6075.318, 'text': 'Okay, so now we will send only this image to our system.', 'start': 6069.657, 'duration': 5.661}, {'end': 6080.079, 'text': 'So in terms of computation, it will be more efficient as well.', 'start': 6075.378, 'duration': 4.701}, {'end': 6084.039, 'text': 'So instead of image, we will send image region.', 'start': 6080.799, 'duration': 3.24}, {'end': 6085.04, 'text': "That's how simple it is.", 'start': 6084.219, 'duration': 0.821}, {'end': 6087.42, 'text': "So let's run that.", 'start': 6086.42, 'duration': 1}, {'end': 6093.862, 'text': 'And there you go.', 'start': 6093.322, 'duration': 0.54}, {'end': 6100.846, 'text': 'So based on our image region, as you can see, only this area is being detected as cars.', 'start': 6094.463, 'duration': 6.383}, {'end': 6104.248, 'text': 'So within this region, we are detecting cars behind it.', 'start': 6101.527, 'duration': 2.721}], 'summary': 'Sending image region for efficient computation. detected cars in specified area.', 'duration': 34.591, 'max_score': 6069.657, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ86069657.jpg'}, {'end': 6188.855, 'src': 'embed', 'start': 6162.557, 'weight': 8, 'content': [{'end': 6166.98, 'text': 'But in the next frame, we do not know where the car has gone.', 'start': 6162.557, 'duration': 4.423}, {'end': 6170.082, 'text': 'So what we need is a tracking ID.', 'start': 6167.801, 'duration': 2.281}, {'end': 6179.008, 'text': 'So if we detect a car in the first frame, we need to know where did that car go in the next frame so that we can assign it the same ID.', 'start': 6170.563, 'duration': 8.445}, {'end': 6185.012, 'text': "So in the first one, if it's ID number one, in the second frame, it should remain ID number one.", 'start': 6179.488, 'duration': 5.524}, {'end': 6188.855, 'text': 'It should not go to ID number two or three or four or five.', 'start': 6185.332, 'duration': 3.523}], 'summary': 'Tracking id needed to assign same id to car in consecutive frames.', 'duration': 26.298, 'max_score': 6162.557, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ86162557.jpg'}], 'start': 5021.626, 'title': 'Computer vision applications', 'summary': 'Covers creating a car counting project using yolo on a gpu, optimizing vehicle detection and classification, and creating a mask to detect cars within a specific region, achieving real-time detection and bounding box information with a 3080 ti, adjusting thresholds, and using the sort tracker for car counting and tracking.', 'chapters': [{'end': 5124.282, 'start': 5021.626, 'title': 'Computer vision: car counter project', 'summary': 'Introduces a clear path for computer vision learning and demonstrates the process of creating a car counting project using yolo on a gpu, achieving real-time detection and bounding box information with a 3080 ti.', 'duration': 102.656, 'highlights': ['The chapter introduces a clear path for computer vision learning with a focus on a maximum knowledge transfer in a short duration of time.', 'Demonstrates the process of creating a car counting project using YOLO on a GPU, achieving real-time detection and bounding box information, and running on a 3080 ti.', 'The first project involves counting the number of cars passing a specified region within a video, with the process involving creating a new folder, copying YOLO webcam code, and setting it up to run cars.mp4.', 'The project involves running YOLO on a 3080 ti GPU, achieving real-time detection of cars, their bounding box information, class, and confidence.']}, {'end': 5790.042, 'start': 5124.282, 'title': 'Optimizing vehicle detection and classification', 'summary': 'Demonstrates optimizing vehicle detection and classification by adjusting the size, offset, and confidence level thresholds, as well as constraining the detection to a specific region and identifying the optimal position for accurate classification.', 'duration': 665.76, 'highlights': ['Adjusting size and offset for vehicle detection The length of the corner rectangle is adjusted to alter the size of the green part, with examples of different length values such as 15, 5, 8, and 9 provided for comparison.', 'Defining and detecting specific vehicle categories Instructions are given to detect specific vehicle categories like cars, motorbikes, buses, and trucks, using class names and if statements to filter and display only the specified categories.', 'Setting confidence level thresholds for detection The confidence level is used as a criterion for displaying detected vehicles, with a threshold of 0.3 specified to control the visibility of the detected vehicles based on confidence values.', 'Constraining detection to a specific region The concept of constraining detection to a specific region is introduced, emphasizing the importance of defining the region of interest and using a rectangle to constrain the detection to that region.', 'Identifying the optimal position for accurate classification The importance of identifying the correct position for accurate vehicle detection and classification is highlighted, with a focus on finding the region where detections are most accurate and suggestions to loop through images to identify the optimal position.']}, {'end': 6265.087, 'start': 5791.027, 'title': 'Creating mask to detect cars', 'summary': 'Discusses creating a mask to detect cars within a specific region, overlaying the mask on the main image, and using the sort tracker for car counting and tracking in consecutive frames with the aim of detecting only the specified region and assigning unique ids to the cars.', 'duration': 474.06, 'highlights': ['Creating a mask to detect cars within a specific region The process involves creating a mask to define a specific region for car detection, enabling efficient computation and detection within the specified area.', 'Overlaying the mask on the main image to limit detection to the specified region Overlaying the mask on the main image allows for exclusive detection within the defined region, enhancing the efficiency of the detection process.', 'Using the SORT tracker for car counting and tracking in consecutive frames The SORT tracker, a tracking algorithm, is utilized for car counting and tracking in consecutive frames, ensuring the assignment of unique IDs to the cars for efficient tracking.']}], 'duration': 1243.461, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ85021626.jpg', 'highlights': ['Creating a car counting project using YOLO on a GPU for real-time detection and bounding box information on a 3080 ti.', 'Adjusting size and offset for vehicle detection to alter the size of the green part with different length values.', 'Defining and detecting specific vehicle categories like cars, motorbikes, buses, and trucks using class names and if statements.', 'Setting confidence level thresholds for detection with a specified threshold of 0.3 to control the visibility of detected vehicles.', 'Constraining detection to a specific region by defining the region of interest and using a rectangle to constrain the detection.', 'Identifying the optimal position for accurate vehicle detection and classification by finding the region where detections are most accurate.', 'Creating a mask to detect cars within a specific region for efficient computation and detection within the specified area.', 'Overlaying the mask on the main image to limit detection to the specified region, enhancing the efficiency of the detection process.', 'Using the SORT tracker for car counting and tracking in consecutive frames, ensuring the assignment of unique IDs to the cars for efficient tracking.']}, {'end': 8033.154, 'segs': [{'end': 6614.803, 'src': 'embed', 'start': 6584.257, 'weight': 4, 'content': [{'end': 6587.94, 'text': 'So if you want to add it to the list, you just write append.', 'start': 6584.257, 'duration': 3.683}, {'end': 6590.082, 'text': 'It goes down, it goes down, it goes down like that.', 'start': 6588.02, 'duration': 2.062}, {'end': 6593.165, 'text': "But in a NumPy array, we don't write append.", 'start': 6590.522, 'duration': 2.643}, {'end': 6594.786, 'text': 'What we do is we stack.', 'start': 6593.705, 'duration': 1.081}, {'end': 6597.028, 'text': 'So we will do a vertical stack.', 'start': 6595.226, 'duration': 1.802}, {'end': 6598.349, 'text': "That's how simple it is.", 'start': 6597.588, 'duration': 0.761}, {'end': 6605.415, 'text': "So we'll write detections equals NumPy dot vertical stack.", 'start': 6598.769, 'duration': 6.646}, {'end': 6614.803, 'text': 'And we have to give in our current detect the old detections that we already had and the current array.', 'start': 6606.856, 'duration': 7.947}], 'summary': 'In numpy, instead of using append, we use vertical stack to add to the array.', 'duration': 30.546, 'max_score': 6584.257, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ86584257.jpg'}, {'end': 6810.551, 'src': 'embed', 'start': 6775.937, 'weight': 2, 'content': [{'end': 6777.999, 'text': 'where is the tracking part?', 'start': 6775.937, 'duration': 2.062}, {'end': 6781.662, 'text': 'so how well the tracker detects the bounding box.', 'start': 6777.999, 'duration': 3.663}, {'end': 6784.584, 'text': "so let's let's try to find that.", 'start': 6781.662, 'duration': 2.922}, {'end': 6788.259, 'text': "so what we'll do is, uh, again what.", 'start': 6784.584, 'duration': 3.675}, {'end': 6792.121, 'text': 'uh, we will simply use these values.', 'start': 6788.259, 'duration': 3.862}, {'end': 6793.282, 'text': 'are they integers?', 'start': 6792.121, 'duration': 1.161}, {'end': 6794.863, 'text': 'yeah, they seem to be integers.', 'start': 6793.282, 'duration': 1.581}, {'end': 6800.327, 'text': 'so what we can do is we can simply, uh, create our corner rectangle.', 'start': 6794.863, 'duration': 5.464}, {'end': 6810.551, 'text': 'so we will write here cv zone dots corner rectangle image and we have to give in the bounding box information.', 'start': 6800.327, 'duration': 10.224}], 'summary': 'Tracking part location and bounding box detection with integer values for corner rectangle creation.', 'duration': 34.614, 'max_score': 6775.937, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ86775937.jpg'}, {'end': 7164.912, 'src': 'embed', 'start': 7138.257, 'weight': 0, 'content': [{'end': 7146.383, 'text': 'we can make a line here and whenever that line crosses, whenever that ID crosses that line, we are going to detect it as a count.', 'start': 7138.257, 'duration': 8.126}, {'end': 7150.326, 'text': "Now, how can we do that? It's very simple.", 'start': 7147.124, 'duration': 3.202}, {'end': 7154.002, 'text': 'All we have to do is we have to, first of all, create the line.', 'start': 7151.3, 'duration': 2.702}, {'end': 7164.912, 'text': "So we are going to write here that our line equals So this value should be, actually there's image region coming here.", 'start': 7154.762, 'duration': 10.15}], 'summary': 'Line crossing detection for counting implemented in the transcript.', 'duration': 26.655, 'max_score': 7138.257, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ87138257.jpg'}, {'end': 7595.724, 'src': 'embed', 'start': 7545.769, 'weight': 1, 'content': [{'end': 7551.331, 'text': 'So you will have this region in which if it lies, then it is detected as a count.', 'start': 7545.769, 'duration': 5.562}, {'end': 7569.943, 'text': 'So what we can do is we can simply write that limits at 1 plus 20, or for this instance, minus 20.', 'start': 7552.331, 'duration': 17.612}, {'end': 7576.69, 'text': 'For the next one, we can say plus 20.', 'start': 7569.943, 'duration': 6.747}, {'end': 7582.716, 'text': 'So if it falls in that region, then only it will detect it as detected.', 'start': 7576.69, 'duration': 6.026}, {'end': 7594.523, 'text': 'So then we are going to say that total count plus equals 1.', 'start': 7583.117, 'duration': 11.406}, {'end': 7595.724, 'text': "we didn't define total count.", 'start': 7594.523, 'duration': 1.201}], 'summary': 'Region detection: set limits at 1 plus/minus 20 for count, total count increments by 1.', 'duration': 49.955, 'max_score': 7545.769, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ87545769.jpg'}], 'start': 6266.434, 'title': 'Implementing real-time object tracking', 'summary': 'Discusses implementing a real-time object tracker, covering tracking parameters, object detection, troubleshooting, and counting. it includes importing code, updating the tracker, troubleshooting errors, and adjusting parameters for accurate counting.', 'chapters': [{'end': 6331.261, 'start': 6266.434, 'title': 'Real-time tracker implementation', 'summary': 'Discusses the implementation of a real-time tracker in a project, including importing the necessary code and creating an instance for the tracker.', 'duration': 64.827, 'highlights': ["Importing the necessary code by using 'from sort import everything' to facilitate working with the tracker.", "Creating an instance for the tracker by defining 'Tracker equals sort' in the implementation process."]}, {'end': 6900.335, 'start': 6333.622, 'title': 'Tracking parameters and updating the tracker', 'summary': 'Discusses the parameters for object tracking, such as maximum age and minimum hits, and elaborates on updating the tracker with detections using numpy arrays and corner rectangles to display the tracking results.', 'duration': 566.713, 'highlights': ['Explaining the parameters for object tracking The chapter discusses the parameters for object tracking, including the maximum age set at 20, minimum hits set at 2, and the IOU threshold at 0.3.', "Updating the tracker with detections using NumPy arrays The process involves creating a list of detections in NumPy array format, stacking the current and old detections using NumPy's vertical stack, and continuously updating the tracker with these detections.", 'Displaying tracking results using corner rectangles and IDs The chapter demonstrates the use of corner rectangles and IDs to display the tracking results, showcasing the bounding box information and the associated IDs for each tracked object.']}, {'end': 7457.615, 'start': 6900.335, 'title': 'Object detection and tracking with opencv', 'summary': 'Covers troubleshooting an error in object detection, converting values to integers, adjusting text size and thickness for better visibility, ensuring consistent object tracking, and creating a line for object detection. it also includes finding the center points of objects and marking them for tracking purposes.', 'duration': 557.28, 'highlights': ["Troubleshooting an error in object detection by identifying and converting floating values to integers, ensuring proper functionality (e.g., 'X one' check).", "Adjusting text size and thickness for better visibility during object tracking (e.g., setting 'text rect id max' scale to 2 and thickness to 3).", 'Ensuring consistent object tracking by converting object IDs to integers and verifying their stability throughout the tracking process.', "Creating a line for object detection to count objects that cross the line, including adjusting the line's position for accurate detection."]}, {'end': 8033.154, 'start': 7457.615, 'title': 'Object detection and counting', 'summary': 'Discusses the process of object detection and counting in a region, outlining the use of limits for x and y, creating a region for detection, tracking a total count, preventing duplicate counts, and adjusting detection parameters for accurate counting.', 'duration': 575.539, 'highlights': ['Creating a region for object detection by setting limits for x and y, with x limits at 0 and 400, and y limits at 1 and 673.', 'Implementing a region-based detection approach by defining a region around the object and setting parameters for detection within the region, such as +/- 20 pixels for accurate counting.', 'Tracking and updating a total count of detected objects, with the initial count set to zero and incremented by one for each valid detection.', "Applying a list-based approach to prevent duplicate counts by checking the presence of the detected object's ID in the total count list before incrementing the count."]}], 'duration': 1766.72, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ86266434.jpg', 'highlights': ["Creating a line for object detection to count objects that cross the line, including adjusting the line's position for accurate detection.", 'Tracking and updating a total count of detected objects, with the initial count set to zero and incremented by one for each valid detection.', 'Displaying tracking results using corner rectangles and IDs The chapter demonstrates the use of corner rectangles and IDs to display the tracking results, showcasing the bounding box information and the associated IDs for each tracked object.', 'Implementing a region-based detection approach by defining a region around the object and setting parameters for detection within the region, such as +/- 20 pixels for accurate counting.', "Updating the tracker with detections using NumPy arrays The process involves creating a list of detections in NumPy array format, stacking the current and old detections using NumPy's vertical stack, and continuously updating the tracker with these detections."]}, {'end': 9062.843, 'segs': [{'end': 8065.584, 'src': 'embed', 'start': 8033.535, 'weight': 0, 'content': [{'end': 8039.957, 'text': "So what we can do now is we can go down and we can put it as one and let's see the magic happen.", 'start': 8033.535, 'duration': 6.422}, {'end': 8046.615, 'text': 'So there you go.', 'start': 8046.055, 'duration': 0.56}, {'end': 8048.116, 'text': "It's really fast.", 'start': 8047.256, 'duration': 0.86}, {'end': 8050.497, 'text': "And it's detecting all those counts.", 'start': 8048.836, 'duration': 1.661}, {'end': 8053.078, 'text': "And of course, it's using the GPU.", 'start': 8051.717, 'duration': 1.361}, {'end': 8053.978, 'text': "That's why it's so fast.", 'start': 8053.098, 'duration': 0.88}, {'end': 8058.28, 'text': '62, 63, 64, 75, blah, blah, blah, blah, blah.', 'start': 8056.6, 'duration': 1.68}, {'end': 8059.661, 'text': "So that's good.", 'start': 8059.161, 'duration': 0.5}, {'end': 8065.584, 'text': 'So now everything seems to work fine.', 'start': 8063.343, 'duration': 2.241}], 'summary': 'The gpu-based system detected counts fast, reaching 64 and 75.', 'duration': 32.049, 'max_score': 8033.535, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ88033535.jpg'}, {'end': 8333.684, 'src': 'embed', 'start': 8303.327, 'weight': 1, 'content': [{'end': 8312.414, 'text': 'and we have a look at the mp4, you can see that we have an escalator that has two directions one is going up and the other one is going down.', 'start': 8303.327, 'duration': 9.087}, {'end': 8315.296, 'text': 'so there are people going down, there are people going up.', 'start': 8312.414, 'duration': 2.882}, {'end': 8320.02, 'text': 'so we are going to count how many people went up and how many people went down.', 'start': 8315.296, 'duration': 4.724}, {'end': 8323.062, 'text': 'so that will be the task for this project.', 'start': 8320.02, 'duration': 3.042}, {'end': 8333.684, 'text': 'so what we will do is, first of all, we will copy which is the best thing ever, will copy and paste our complete project.', 'start': 8323.062, 'duration': 10.622}], 'summary': 'Analyzing an escalator with two directions to count people going up and down.', 'duration': 30.357, 'max_score': 8303.327, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ88303326.jpg'}, {'end': 8482.964, 'src': 'embed', 'start': 8454.065, 'weight': 2, 'content': [{'end': 8458.968, 'text': 'So what we can do is we can simply replace this graphics right away so that we have one less thing to worry about.', 'start': 8454.065, 'duration': 4.903}, {'end': 8465.271, 'text': 'So here in the graphics, we have graphics.png and we will not put it at 00.', 'start': 8459.508, 'duration': 5.763}, {'end': 8469.693, 'text': "What we'll do instead is let me check the exact values.", 'start': 8465.271, 'duration': 4.422}, {'end': 8472.835, 'text': "It's 730, 730 and 260.", 'start': 8470.334, 'duration': 2.501}, {'end': 8478.058, 'text': 'So this is the exact position where it should be.', 'start': 8472.835, 'duration': 5.223}, {'end': 8482.964, 'text': 'So if we run this now, we will have the graphics being shifted.', 'start': 8478.638, 'duration': 4.326}], 'summary': 'Replace graphics with new position values: 730, 730, 260.', 'duration': 28.899, 'max_score': 8454.065, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ88454065.jpg'}, {'end': 8540.394, 'src': 'embed', 'start': 8513.081, 'weight': 3, 'content': [{'end': 8516.962, 'text': 'If the current class is person and the confidence is greater than 0.3.', 'start': 8513.081, 'duration': 3.881}, {'end': 8525.666, 'text': 'So now it should give us the detections, but we will have the issue of the mask because as you can see, the mask is around here.', 'start': 8516.962, 'duration': 8.704}, {'end': 8528.147, 'text': "So it's only detecting in this region.", 'start': 8526.306, 'duration': 1.841}, {'end': 8530.008, 'text': 'So the mask is completely wrong.', 'start': 8528.627, 'duration': 1.381}, {'end': 8534.471, 'text': 'So what do we need to do? We need to go ahead and create our new mask.', 'start': 8531.57, 'duration': 2.901}, {'end': 8535.752, 'text': "So let's go ahead and do that.", 'start': 8534.731, 'duration': 1.021}, {'end': 8538.093, 'text': 'So we are back here in Canva.', 'start': 8536.432, 'duration': 1.661}, {'end': 8540.394, 'text': "And as you can see, it's the same file.", 'start': 8538.753, 'duration': 1.641}], 'summary': 'Issues with current mask detection, creating new mask in canva.', 'duration': 27.313, 'max_score': 8513.081, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ88513081.jpg'}], 'start': 8033.535, 'title': 'Video processing and people counting projects', 'summary': 'Covers fast video processing with a count speed of 62-75, overlaying graphics, and an ai-powered people counter project for accurately counting individuals on an escalator, along with optimization steps for the people counter project.', 'chapters': [{'end': 8246.309, 'start': 8033.535, 'title': 'Graphics overlay for fast video processing', 'summary': 'Demonstrates fast video processing using gpu, overlaying a graphics file on the main video, and displaying the count, achieving a speed of 62-75 counts and overlaying graphics for a visually appealing output.', 'duration': 212.774, 'highlights': ['The process achieves a speed of 62-75 counts, utilizing GPU for fast video processing.', 'Overlaying a graphics file on the main video to enhance visual appeal and user experience.', 'Demonstration of the code for overlaying the graphics file and displaying the count on the video.']}, {'end': 8431.055, 'start': 8246.41, 'title': 'Ai-powered people counter project', 'summary': 'Introduces a new project to build a people counter using ai, with the goal of accurately counting the number of people going up and down an escalator in a video, and adapting the previous car counter project for this new purpose.', 'duration': 184.645, 'highlights': ['The project aims to accurately count the number of people going up and down an escalator in a video, expanding from the previous car counter project to include multiple directions, such as people going up and down.', 'The process involves copying and pasting the complete previous project to use the existing code as a basis, then adjusting it to fit the new video and purpose, ensuring the detection of people as the new class to be counted.', 'The challenge is to accurately detect and count people along with the required adjustments in mask and graphics for the new purpose, ensuring that the system can effectively count people going up and down the escalator.']}, {'end': 9062.843, 'start': 8432.116, 'title': 'People counter project optimization', 'summary': 'Details the optimization steps for a people counter project, including adjusting graphics position, modifying detections, creating a new mask, setting up limit lines, and configuring count display for people going up and down in a given region.', 'duration': 630.727, 'highlights': ['Adjusting graphics position The speaker demonstrates how to replace the graphics and adjust its position to 730, 730, and 260, resulting in improved visualization.', 'Creating a new mask The process of creating a new mask using Canva and adjusting its position is explained, ensuring accurate detection in the specified region.', 'Setting up limit lines and count display The steps for setting up two limit lines and configuring count display for people going up and down in a given region are detailed, resulting in accurate counting and visualization.', "Modifying detections The process of modifying detections to focus on identifying 'Person' with a confidence level above 0.3 is described, ensuring precise detection."]}], 'duration': 1029.308, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ88033535.jpg', 'highlights': ['The process achieves a speed of 62-75 counts, utilizing GPU for fast video processing.', 'The project aims to accurately count the number of people going up and down an escalator in a video, expanding from the previous car counter project to include multiple directions, such as people going up and down.', 'Adjusting graphics position The speaker demonstrates how to replace the graphics and adjust its position to 730, 730, and 260, resulting in improved visualization.', 'Creating a new mask The process of creating a new mask using Canva and adjusting its position is explained, ensuring accurate detection in the specified region.']}, {'end': 10276.269, 'segs': [{'end': 9090.528, 'src': 'embed', 'start': 9064.215, 'weight': 3, 'content': [{'end': 9070.418, 'text': "So, as you can see, it's very easy to actually change the code a little bit and cater it to your own project.", 'start': 9064.215, 'duration': 6.203}, {'end': 9073.079, 'text': 'And it is very fun to play around with these values.', 'start': 9070.998, 'duration': 2.081}, {'end': 9082.523, 'text': 'And because this is something that you can implement in real time and it is something you can implement it as a real world application.', 'start': 9074.279, 'duration': 8.244}, {'end': 9085.504, 'text': "that's why it's really informative and fun to do as well.", 'start': 9082.523, 'duration': 2.981}, {'end': 9090.528, 'text': 'and in the next part we are going to learn how to create your own custom model,', 'start': 9086.244, 'duration': 4.284}], 'summary': 'Easy code customization, real-time implementation, and creation of custom models.', 'duration': 26.313, 'max_score': 9064.215, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ89064215.jpg'}, {'end': 9143.642, 'src': 'embed', 'start': 9113.413, 'weight': 4, 'content': [{'end': 9121.038, 'text': 'But now we are going to create custom trained models with our own data set and we are going to use it in our projects.', 'start': 9113.413, 'duration': 7.625}, {'end': 9130.124, 'text': "So how can we do that? So we can do that by using either Nvidia's graphic card or we can use it by running Google Collab online.", 'start': 9121.658, 'duration': 8.466}, {'end': 9135.748, 'text': "So we will be using Google Collab since everyone has access to it and it's free to use.", 'start': 9130.604, 'duration': 5.144}, {'end': 9143.642, 'text': 'And if you have your own graphics card installed, you can do pretty much the same thing offline as well.', 'start': 9136.508, 'duration': 7.134}], 'summary': "Create custom trained models using google collab or nvidia's graphic card.", 'duration': 30.229, 'max_score': 9113.413, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ89113413.jpg'}, {'end': 9694.448, 'src': 'heatmap', 'start': 9164.571, 'weight': 5, 'content': [{'end': 9167.514, 'text': 'we are going to save that now.', 'start': 9164.571, 'duration': 2.943}, {'end': 9175.179, 'text': 'before we actually go and write some code on how to train your custom model, we need to know what kind of data set that we need.', 'start': 9167.514, 'duration': 7.665}, {'end': 9181.544, 'text': 'so the project that we are going to do today is called the ppe detection or the personal protective equipment,', 'start': 9175.179, 'duration': 6.365}, {'end': 9185.807, 'text': 'basically the hard hat and the construction jacket and the mask.', 'start': 9181.544, 'duration': 4.263}, {'end': 9188.729, 'text': 'so we need to find whether a person is wearing that or not.', 'start': 9185.807, 'duration': 2.922}, {'end': 9197.071, 'text': 'so we have this data set available on roboflow and you can see we have the version yolo 8 as well.', 'start': 9189.449, 'duration': 7.622}, {'end': 9199.172, 'text': 'you can simply download it from here.', 'start': 9197.071, 'duration': 2.101}, {'end': 9208.435, 'text': 'so if you click on that and you can download zip to computer and you can press continue now by doing this,', 'start': 9199.172, 'duration': 9.263}, {'end': 9217.714, 'text': 'what will happen is that you will get the data set as well as the yaml file that will allow you to run with yolo version 8..', 'start': 9208.435, 'duration': 9.279}, {'end': 9224.079, 'text': "Now, if you don't have a dataset available online and if you wanted to create your own dataset,", 'start': 9217.714, 'duration': 6.365}, {'end': 9229.023, 'text': 'then you actually need to know what is the format in which the dataset should be.', 'start': 9224.079, 'duration': 4.944}, {'end': 9234.168, 'text': 'So, in order to understand that, we are going to open up this construction dataset.', 'start': 9229.624, 'duration': 4.544}, {'end': 9237.317, 'text': 'So here is that dataset.', 'start': 9235.836, 'duration': 1.481}, {'end': 9243.981, 'text': 'If you download it in a zip format, and if you extract it, you will have test, train, and valid.', 'start': 9237.577, 'duration': 6.404}, {'end': 9248.083, 'text': 'These are the three folders, and then you will have a data file.', 'start': 9244.381, 'duration': 3.702}, {'end': 9251.666, 'text': 'So in the test file, you will have images and labels.', 'start': 9248.764, 'duration': 2.902}, {'end': 9257.63, 'text': 'in the train file you will have images and labels and valid also images and labels.', 'start': 9252.526, 'duration': 5.104}, {'end': 9264.214, 'text': 'so if you open up test file, if you open up images, you will see all of these different images that you have,', 'start': 9257.63, 'duration': 6.584}, {'end': 9272.991, 'text': 'and each image will have a corresponding text file, and in that text file you will see all the different classifications.', 'start': 9264.214, 'duration': 8.777}, {'end': 9280.098, 'text': 'So for example, you will find the class number eight at these coordinates.', 'start': 9273.592, 'duration': 6.506}, {'end': 9282.66, 'text': 'So these are basically normalized values.', 'start': 9280.518, 'duration': 2.142}, {'end': 9286.264, 'text': 'It means they are from zero to one in between those values.', 'start': 9282.941, 'duration': 3.323}, {'end': 9290.508, 'text': 'If you multiply it with the actual image size, you will get the pixel values.', 'start': 9287.005, 'duration': 3.503}, {'end': 9294.873, 'text': 'So these are the four values, X1, Y1, and the width and the height.', 'start': 9290.809, 'duration': 4.064}, {'end': 9300.456, 'text': 'so you can find all these values for all these different classes, for all these different images.', 'start': 9295.453, 'duration': 5.003}, {'end': 9308.041, 'text': 'so if you go to, for example, train, you will find images and within these images you will find these labels,', 'start': 9300.456, 'duration': 7.585}, {'end': 9313.125, 'text': 'and within the labels you will find all these corresponding coordinates.', 'start': 9308.041, 'duration': 5.084}, {'end': 9319.729, 'text': 'so this is the file format, and then the important thing to have is the data, so the data yaml file.', 'start': 9313.125, 'duration': 6.604}, {'end': 9331.296, 'text': 'basically, it gathers all this information into one place and if you open that up, you will see that you have train validation and test folders,', 'start': 9319.729, 'duration': 11.567}, {'end': 9334.157, 'text': 'so you have to mention where these folders are,', 'start': 9331.296, 'duration': 2.861}, {'end': 9342.642, 'text': 'and then you have the number of classes that is equal to 10 in this case and you have the names of all these classes.', 'start': 9334.157, 'duration': 8.485}, {'end': 9352.787, 'text': 'so you have hardhat mask, no hardhat, no mask, no safety vest person and safety cone safety vest machinery and so on.', 'start': 9342.642, 'duration': 10.145}, {'end': 9357.394, 'text': 'So, and uh, the rest of this is not very important.', 'start': 9354.232, 'duration': 3.162}, {'end': 9361.477, 'text': 'Uh, this is just for the copyrights, uh, and all that.', 'start': 9357.915, 'duration': 3.562}, {'end': 9367.481, 'text': "So what you can do is, and there's one more thing we need to add when we bring it to Google collab.", 'start': 9362.198, 'duration': 5.283}, {'end': 9371.304, 'text': 'So what we will do is we will copy all of this data to Google drive.', 'start': 9367.882, 'duration': 3.422}, {'end': 9378.529, 'text': 'So if you go to my drive right now, I have a data sets folder and within that data set, we have construction safety.', 'start': 9371.844, 'duration': 6.685}, {'end': 9382.872, 'text': 'So this is the exact same folder you can see here.', 'start': 9379.209, 'duration': 3.663}, {'end': 9386.826, 'text': 'You can see here, construction safety.', 'start': 9384.844, 'duration': 1.982}, {'end': 9391.89, 'text': 'So you have readme, readme, and then you have the data.yaml.', 'start': 9387.246, 'duration': 4.644}, {'end': 9395.633, 'text': 'And then you have the test, train, and valid.', 'start': 9392.611, 'duration': 3.022}, {'end': 9396.915, 'text': 'These are the three folders.', 'start': 9395.934, 'duration': 0.981}, {'end': 9402.139, 'text': 'If you open that up, each folder will have labels and images inside of it.', 'start': 9397.035, 'duration': 5.104}, {'end': 9402.96, 'text': 'There you go.', 'start': 9402.579, 'duration': 0.381}, {'end': 9405.787, 'text': 'So this is the basic idea.', 'start': 9404.266, 'duration': 1.521}, {'end': 9411.05, 'text': 'If we go back to our data sets, construction safety, and this is the main thing.', 'start': 9405.947, 'duration': 5.103}, {'end': 9415.012, 'text': 'So here data.yaml, we have to make some changes here.', 'start': 9411.21, 'duration': 3.802}, {'end': 9419.735, 'text': "So here in the file, you'll go to the text editor.", 'start': 9415.733, 'duration': 4.002}, {'end': 9425.422, 'text': 'If you remember, Here, our file contains train, validate, and test.', 'start': 9420.796, 'duration': 4.626}, {'end': 9427.625, 'text': 'These are the folders that we have.', 'start': 9425.763, 'duration': 1.862}, {'end': 9432.15, 'text': 'But we need to define the path where these are present.', 'start': 9428.185, 'duration': 3.965}, {'end': 9440.191, 'text': 'So we have to write here, path, and then we have to define the path in our drive, in the Google Drive.', 'start': 9432.73, 'duration': 7.461}, {'end': 9442.652, 'text': 'So that is what we have done here.', 'start': 9441.091, 'duration': 1.561}, {'end': 9452.637, 'text': 'So you will open that up, and you will write here path, and inside that, you will write drive, my drive, and then whatever your folder is.', 'start': 9443.012, 'duration': 9.625}, {'end': 9456.179, 'text': 'So for me, inside my drive, I have the folder datasets.', 'start': 9452.797, 'duration': 3.382}, {'end': 9458.68, 'text': 'Inside that, I have the construction safety.', 'start': 9456.639, 'duration': 2.041}, {'end': 9461.682, 'text': 'And inside that, we have train, valid, and test.', 'start': 9459.14, 'duration': 2.542}, {'end': 9464.071, 'text': 'So you have to write this path.', 'start': 9462.83, 'duration': 1.241}, {'end': 9466.131, 'text': 'The rest of it remains the same.', 'start': 9464.491, 'duration': 1.64}, {'end': 9476.656, 'text': 'So this is the basic idea of how you can upload your files to Google Drive and how you can edit it to run it using Google Colab.', 'start': 9466.772, 'duration': 9.884}, {'end': 9478.377, 'text': "So that's the only thing you have to do.", 'start': 9476.856, 'duration': 1.521}, {'end': 9483.239, 'text': 'You have to write here path and you have to give in the path file.', 'start': 9478.777, 'duration': 4.462}, {'end': 9487.521, 'text': 'I will show you this again once we go into our Google Drive.', 'start': 9483.339, 'duration': 4.182}, {'end': 9493.822, 'text': "okay, that's done, but what if you have your own images and you want to create this?", 'start': 9488.556, 'duration': 5.266}, {'end': 9496.766, 'text': 'uh, if you want to label it, what can you do then?', 'start': 9493.822, 'duration': 2.944}, {'end': 9507.639, 'text': 'now? to do that, we have a very famous label img project that is available on github and you can see it is by heart, uh, ex labs.', 'start': 9496.766, 'duration': 10.873}, {'end': 9513.143, 'text': 'So thanks to all the contributors and the creators.', 'start': 9508.96, 'duration': 4.183}, {'end': 9518.667, 'text': 'So what you have to do is you have to go to the releases, you can click on binary.', 'start': 9513.943, 'duration': 4.724}, {'end': 9521.689, 'text': 'And here you can download the zip file.', 'start': 9519.507, 'duration': 2.182}, {'end': 9525.071, 'text': 'Once you download the zip file, you can extract it.', 'start': 9522.709, 'duration': 2.362}, {'end': 9528.293, 'text': 'And once you extract that you will get something like this.', 'start': 9525.751, 'duration': 2.542}, {'end': 9530.315, 'text': 'label image.exe.', 'start': 9528.854, 'duration': 1.461}, {'end': 9539.643, 'text': 'Now, for example, if you were to find the poker chips, if you were detecting poker chips, here in the data, you will go to predefined classes.', 'start': 9530.936, 'duration': 8.707}, {'end': 9543.607, 'text': 'And here I have given 5, 10, 20, 50, and 100.', 'start': 9540.404, 'duration': 3.203}, {'end': 9544.968, 'text': 'These are our five classes.', 'start': 9543.607, 'duration': 1.361}, {'end': 9552.815, 'text': 'In case of construction safety, we have hard hat, no hard hat, jacket, no jacket, and stuff like that.', 'start': 9545.388, 'duration': 7.427}, {'end': 9558.054, 'text': 'So you will do that and then you will go back and click on label image.exe.', 'start': 9554.09, 'duration': 3.964}, {'end': 9561.858, 'text': 'Once you open that up, you can open directory.', 'start': 9558.575, 'duration': 3.283}, {'end': 9568.184, 'text': 'You can select, for example, these are the images I want to label or whatever.', 'start': 9562.699, 'duration': 5.485}, {'end': 9570.407, 'text': 'So for example, these are the images.', 'start': 9568.845, 'duration': 1.562}, {'end': 9583.714, 'text': 'So then you can press R, sorry, you can press W to actually select and you can define, for example, this is class number five and hit OK.', 'start': 9571.948, 'duration': 11.766}, {'end': 9585.876, 'text': 'So this will create this label.', 'start': 9584.115, 'duration': 1.761}, {'end': 9590.158, 'text': "Then you'll press W again, and this is, for example, for 100.", 'start': 9586.356, 'duration': 3.802}, {'end': 9591.779, 'text': "You'll click on 100 and press OK.", 'start': 9590.158, 'duration': 1.621}, {'end': 9598.664, 'text': 'Now the easy way to do this is do all the fives first, then all the tens, then all the hundreds, all the 20s, things like that.', 'start': 9592.22, 'duration': 6.444}, {'end': 9607.029, 'text': "And once you want to export, you will make sure that this here, it's YOLO format, and you will click on Save.", 'start': 9599.404, 'duration': 7.625}, {'end': 9609.414, 'text': 'And here it will save the file.', 'start': 9608.052, 'duration': 1.362}, {'end': 9614.459, 'text': 'If you hit save, it will save the file in that location.', 'start': 9609.914, 'duration': 4.545}, {'end': 9619.344, 'text': 'So if we open the directory, so here we have this directory.', 'start': 9614.899, 'duration': 4.445}, {'end': 9622.648, 'text': "So let's say we save this one.", 'start': 9620.265, 'duration': 2.383}, {'end': 9625.091, 'text': "So if we open that up, you can see it's the same format.", 'start': 9622.728, 'duration': 2.363}, {'end': 9627.613, 'text': 'So zero is for, I think, five.', 'start': 9625.551, 'duration': 2.062}, {'end': 9629.402, 'text': "That's for five.", 'start': 9628.721, 'duration': 0.681}, {'end': 9632.107, 'text': 'So the location of this is at this point.', 'start': 9630.124, 'duration': 1.983}, {'end': 9633.81, 'text': 'So these are the coordinates for that.', 'start': 9632.387, 'duration': 1.423}, {'end': 9636.073, 'text': 'Then class number one is present here.', 'start': 9634.21, 'duration': 1.863}, {'end': 9639.339, 'text': 'Class number two you have here and so on.', 'start': 9636.794, 'duration': 2.545}, {'end': 9641.82, 'text': 'So this is how you can label these images.', 'start': 9639.898, 'duration': 1.922}, {'end': 9644.803, 'text': 'So the data.yaml file you can create yourself.', 'start': 9642.26, 'duration': 2.543}, {'end': 9646.824, 'text': "As I've mentioned, it's very easy to do.", 'start': 9645.203, 'duration': 1.621}, {'end': 9652.37, 'text': 'All you have to do is you have to write the path, the train, the validation, and the test folders.', 'start': 9647.685, 'duration': 4.685}, {'end': 9656.173, 'text': 'And then you have to write number of classes and the names of the classes.', 'start': 9652.91, 'duration': 3.263}, {'end': 9656.654, 'text': "That's it.", 'start': 9656.353, 'duration': 0.301}, {'end': 9658.235, 'text': 'And you will save the file.', 'start': 9657.034, 'duration': 1.201}, {'end': 9662.259, 'text': "It's a simple text file basically by the format .", 'start': 9658.315, 'duration': 3.944}, {'end': 9669.124, 'text': 'yaml So once you have done that, Now, we can simply go ahead and upload everything.', 'start': 9662.259, 'duration': 6.865}, {'end': 9676.609, 'text': 'For example, in this case, we can download it from here, the construction safety image dataset.', 'start': 9669.825, 'duration': 6.784}, {'end': 9681.652, 'text': 'And once we have that, we can upload it to our Google Drive.', 'start': 9677.149, 'duration': 4.503}, {'end': 9688.377, 'text': "Once Google Drive, these are basically the files, we'll select all and drag, but I will not do that now.", 'start': 9682.073, 'duration': 6.304}, {'end': 9694.448, 'text': 'Then once you have that, because it will take some time, then we have Yolo version eight.', 'start': 9689.4, 'duration': 5.048}], 'summary': 'Creating a custom model for ppe detection using yolo 8 with a dataset available on roboflow or creating and labeling your own dataset using labelimg project on github.', 'duration': 53.143, 'max_score': 9164.571, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ89164571.jpg'}, {'end': 9290.508, 'src': 'embed', 'start': 9244.381, 'weight': 7, 'content': [{'end': 9248.083, 'text': 'These are the three folders, and then you will have a data file.', 'start': 9244.381, 'duration': 3.702}, {'end': 9251.666, 'text': 'So in the test file, you will have images and labels.', 'start': 9248.764, 'duration': 2.902}, {'end': 9257.63, 'text': 'in the train file you will have images and labels and valid also images and labels.', 'start': 9252.526, 'duration': 5.104}, {'end': 9264.214, 'text': 'so if you open up test file, if you open up images, you will see all of these different images that you have,', 'start': 9257.63, 'duration': 6.584}, {'end': 9272.991, 'text': 'and each image will have a corresponding text file, and in that text file you will see all the different classifications.', 'start': 9264.214, 'duration': 8.777}, {'end': 9280.098, 'text': 'So for example, you will find the class number eight at these coordinates.', 'start': 9273.592, 'duration': 6.506}, {'end': 9282.66, 'text': 'So these are basically normalized values.', 'start': 9280.518, 'duration': 2.142}, {'end': 9286.264, 'text': 'It means they are from zero to one in between those values.', 'start': 9282.941, 'duration': 3.323}, {'end': 9290.508, 'text': 'If you multiply it with the actual image size, you will get the pixel values.', 'start': 9287.005, 'duration': 3.503}], 'summary': 'Data folders contain images, labels, and text files with classifications and normalized values.', 'duration': 46.127, 'max_score': 9244.381, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ89244381.jpg'}, {'end': 9658.235, 'src': 'embed', 'start': 9628.721, 'weight': 9, 'content': [{'end': 9629.402, 'text': "That's for five.", 'start': 9628.721, 'duration': 0.681}, {'end': 9632.107, 'text': 'So the location of this is at this point.', 'start': 9630.124, 'duration': 1.983}, {'end': 9633.81, 'text': 'So these are the coordinates for that.', 'start': 9632.387, 'duration': 1.423}, {'end': 9636.073, 'text': 'Then class number one is present here.', 'start': 9634.21, 'duration': 1.863}, {'end': 9639.339, 'text': 'Class number two you have here and so on.', 'start': 9636.794, 'duration': 2.545}, {'end': 9641.82, 'text': 'So this is how you can label these images.', 'start': 9639.898, 'duration': 1.922}, {'end': 9644.803, 'text': 'So the data.yaml file you can create yourself.', 'start': 9642.26, 'duration': 2.543}, {'end': 9646.824, 'text': "As I've mentioned, it's very easy to do.", 'start': 9645.203, 'duration': 1.621}, {'end': 9652.37, 'text': 'All you have to do is you have to write the path, the train, the validation, and the test folders.', 'start': 9647.685, 'duration': 4.685}, {'end': 9656.173, 'text': 'And then you have to write number of classes and the names of the classes.', 'start': 9652.91, 'duration': 3.263}, {'end': 9656.654, 'text': "That's it.", 'start': 9656.353, 'duration': 0.301}, {'end': 9658.235, 'text': 'And you will save the file.', 'start': 9657.034, 'duration': 1.201}], 'summary': 'Instructions for creating data.yaml file for labeling images with paths, train, validation, test folders, and number of classes.', 'duration': 29.514, 'max_score': 9628.721, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ89628721.jpg'}, {'end': 9696.391, 'src': 'embed', 'start': 9669.825, 'weight': 10, 'content': [{'end': 9676.609, 'text': 'For example, in this case, we can download it from here, the construction safety image dataset.', 'start': 9669.825, 'duration': 6.784}, {'end': 9681.652, 'text': 'And once we have that, we can upload it to our Google Drive.', 'start': 9677.149, 'duration': 4.503}, {'end': 9688.377, 'text': "Once Google Drive, these are basically the files, we'll select all and drag, but I will not do that now.", 'start': 9682.073, 'duration': 6.304}, {'end': 9694.448, 'text': 'Then once you have that, because it will take some time, then we have Yolo version eight.', 'start': 9689.4, 'duration': 5.048}, {'end': 9696.391, 'text': 'This is our Google collab file.', 'start': 9694.608, 'duration': 1.783}], 'summary': 'Process involves downloading construction safety image dataset, uploading to google drive, and using yolo version eight in google colab.', 'duration': 26.566, 'max_score': 9669.825, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ89669825.jpg'}, {'end': 9979.477, 'src': 'embed', 'start': 9950.58, 'weight': 2, 'content': [{'end': 9955.703, 'text': "predict there is training as well, there's validation as well.", 'start': 9950.58, 'duration': 5.123}, {'end': 9958.745, 'text': 'but right now we are using the mode as predict.', 'start': 9955.703, 'duration': 3.042}, {'end': 9959.725, 'text': 'then the model.', 'start': 9958.745, 'duration': 0.98}, {'end': 9961.026, 'text': 'so which model we are using?', 'start': 9959.725, 'duration': 1.301}, {'end': 9962.787, 'text': 'we are using yolo 8 version.', 'start': 9961.026, 'duration': 1.761}, {'end': 9966.409, 'text': 'uh, yolo version 8, which is large.', 'start': 9962.787, 'duration': 3.622}, {'end': 9971.992, 'text': 'so we are using the large model And the confidence level minimum should be 0.25..', 'start': 9966.409, 'duration': 5.583}, {'end': 9975.234, 'text': 'And what is the source? The source is basically the image.', 'start': 9971.992, 'duration': 3.242}, {'end': 9979.477, 'text': 'So it can be here in your drive or you can give an online source.', 'start': 9975.294, 'duration': 4.183}], 'summary': 'Using yolo 8 for prediction with confidence level at 0.25, source can be local or online.', 'duration': 28.897, 'max_score': 9950.58, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ89950580.jpg'}, {'end': 10052.386, 'src': 'embed', 'start': 10024.489, 'weight': 0, 'content': [{'end': 10030.952, 'text': "it's downloading the image and the image has been downloaded and it has executed everything.", 'start': 10024.489, 'duration': 6.463}, {'end': 10040.056, 'text': 'so, as you can see, this is now done, and you can see it downloaded the file and then it gave us the result that there were five people detected,', 'start': 10030.952, 'duration': 9.104}, {'end': 10042.618, 'text': 'one bicycle and one bus.', 'start': 10040.056, 'duration': 2.562}, {'end': 10052.386, 'text': 'so if we open this up, uh, it will not actually show you the bounding boxes and all that, but we will need to write some code for that.', 'start': 10042.618, 'duration': 9.768}], 'summary': 'Image download complete, detected 5 people, 1 bicycle, and 1 bus.', 'duration': 27.897, 'max_score': 10024.489, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ810024489.jpg'}, {'end': 10127.848, 'src': 'embed', 'start': 10091.654, 'weight': 1, 'content': [{'end': 10105.443, 'text': 'so once we have confirmed that the installations are done one, what we need is a simple one line code to actually, uh, do our custom custom training?', 'start': 10091.654, 'duration': 13.789}, {'end': 10110.767, 'text': 'oh, custom data training.', 'start': 10105.443, 'duration': 5.324}, {'end': 10116.281, 'text': "so that's it.", 'start': 10113.799, 'duration': 2.482}, {'end': 10117.862, 'text': 'and then what we will do?', 'start': 10116.281, 'duration': 1.581}, {'end': 10120.963, 'text': "we will add our code and I'm going to paste it here.", 'start': 10117.862, 'duration': 3.101}, {'end': 10125.526, 'text': 'so now we have a similar command like before.', 'start': 10120.963, 'duration': 4.563}, {'end': 10127.848, 'text': 'we have Yolo, then we have task.', 'start': 10125.526, 'duration': 2.322}], 'summary': 'Confirm installations, then use one-line code for custom data training.', 'duration': 36.194, 'max_score': 10091.654, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ810091654.jpg'}], 'start': 9064.215, 'title': 'Yolo model training and implementation', 'summary': 'Covers creating custom trained models with yolo for real-time applications, ppe detection, image labeling using google drive, and object detection setup, with specific focus on training a custom model for ppe detection and testing yolo model functionality with detection of 5 people, 1 bicycle, and 1 bus.', 'chapters': [{'end': 9164.571, 'start': 9064.215, 'title': 'Creating custom trained models with yolo', 'summary': "Covers the process of creating custom trained models using yolo, including implementing real-time applications, utilizing pre-trained models, and choosing between offline and online methods, such as nvidia's graphic card or google collab.", 'duration': 100.356, 'highlights': ['The chapter emphasizes the ease of modifying the code to suit individual projects and the potential for real-time implementation, making it informative and enjoyable.', 'Explains the transition from using pre-trained models to creating custom trained models with a personal data set for project application.', "Details the options for custom model training, including utilizing NVIDIA's graphic card offline or utilizing Google Collab online, highlighting the accessibility and cost-effective nature of Google Collab."]}, {'end': 9334.157, 'start': 9164.571, 'title': 'Custom model training for ppe detection', 'summary': 'Discusses the process of training a custom model for ppe detection using a specific dataset format and the importance of the data yaml file, highlighting the key steps and components involved in the process.', 'duration': 169.586, 'highlights': ['The project focuses on PPE detection, specifically identifying hard hats, construction jackets, and masks on individuals.', 'The dataset for training is available on Roboflow, including the version YOLO 8, facilitating easy access and download.', 'The dataset format consists of three main folders - test, train, and valid - each containing images and corresponding labels for classification.', 'The label text files within the dataset provide normalized coordinates for different classes, facilitating accurate pixel values for the identified objects.']}, {'end': 9785.535, 'start': 9334.157, 'title': 'Google drive for image labeling', 'summary': 'Explains how to upload image datasets to google drive, label images using label img project, and prepare data.yaml file for running a yolo model in google colab.', 'duration': 451.378, 'highlights': ['The chapter explains how to upload image datasets to Google Drive and prepare data.yaml file for running a YOLO model in Google Colab. Explanation of uploading image datasets to Google Drive and preparing data.yaml file for YOLO model', 'Instructions on using the label img project to label images and create a data.yaml file with the number and names of classes. Process of using label img project to label images and create data.yaml file for YOLO model']}, {'end': 9975.234, 'start': 9785.955, 'title': 'Setting up yolo for object detection', 'summary': 'Demonstrates setting up yolo for object detection, including checking for gpu usage, installing ultralytics, importing yolo, and running yolo to detect objects on an image using specific parameters.', 'duration': 189.279, 'highlights': ["Checking for GPU usage by running 'nvidia-smi' and confirming the usage of 15360 mbs for Tesla T4.", "Installing Ultralytics by executing 'pip install Ultralytics'.", 'Importing Yolo from Ultralytics and defining the parameters to run YOLO for object detection on an image.']}, {'end': 10276.269, 'start': 9975.294, 'title': 'Yolo model training process', 'summary': 'Details the process of testing the yolo model on an image, confirming its functionality with the detection of 5 people, 1 bicycle, and 1 bus, followed by the steps for custom data training and the use of pre-trained weights.', 'duration': 300.975, 'highlights': ['The Yolo model successfully detected 5 people, 1 bicycle, and 1 bus in the test image. The model accurately detected 5 people, 1 bicycle, and 1 bus in the test image, demonstrating its functionality.', 'The process of setting up the Yolo model for custom data training and using pre-trained weights was explained. The transcript details the process of setting up the Yolo model for custom data training, including the use of pre-trained weights and defining parameters such as the number of epochs and image size.', 'The estimated training time was provided as 150 minutes. The estimated training time for the Yolo model was mentioned to be approximately 150 minutes, based on the calculation of individual epoch durations.']}], 'duration': 1212.054, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ89064215.jpg', 'highlights': ['The Yolo model accurately detected 5 people, 1 bicycle, and 1 bus in the test image, demonstrating its functionality.', 'The process of setting up the Yolo model for custom data training, including the use of pre-trained weights and defining parameters such as the number of epochs and image size, was explained.', 'The estimated training time for the Yolo model was mentioned to be approximately 150 minutes, based on the calculation of individual epoch durations.', 'The chapter emphasizes the ease of modifying the code to suit individual projects and the potential for real-time implementation, making it informative and enjoyable.', "Details the options for custom model training, including utilizing NVIDIA's graphic card offline or utilizing Google Collab online, highlighting the accessibility and cost-effective nature of Google Collab.", 'The project focuses on PPE detection, specifically identifying hard hats, construction jackets, and masks on individuals.', 'The dataset for training is available on Roboflow, including the version YOLO 8, facilitating easy access and download.', 'The dataset format consists of three main folders - test, train, and valid - each containing images and corresponding labels for classification.', 'The label text files within the dataset provide normalized coordinates for different classes, facilitating accurate pixel values for the identified objects.', 'Instructions on using the label img project to label images and create a data.yaml file with the number and names of classes were provided.', 'The chapter explains how to upload image datasets to Google Drive and prepare data.yaml file for running a YOLO model in Google Colab.']}, {'end': 11414.105, 'segs': [{'end': 10339.237, 'src': 'embed', 'start': 10276.269, 'weight': 0, 'content': [{'end': 10283.314, 'text': 'the training is completed and if you go to runs this is basically in our content.', 'start': 10276.269, 'duration': 7.045}, {'end': 10293.027, 'text': 'if you go to runs and in detect, you go to train you will see all these files generated.', 'start': 10283.314, 'duration': 9.713}, {'end': 10301.292, 'text': 'So the main thing that we need to look at is the best.pt, these are the weights, and this is the last weight.pt.', 'start': 10293.608, 'duration': 7.684}, {'end': 10308.736, 'text': 'So, and the rest of these are basically the parameters, the response of our model.', 'start': 10301.932, 'duration': 6.804}, {'end': 10312.978, 'text': 'So for example, you can see over here results.png.', 'start': 10309.096, 'duration': 3.882}, {'end': 10333.795, 'text': 'You also have the so here you can see the mean average position values and you also have the recall and the precision values and you have the training loss for the class and also for the box and then you also have the confusion matrix.', 'start': 10314.258, 'duration': 19.537}, {'end': 10335.815, 'text': 'So all of these things you can download.', 'start': 10334.275, 'duration': 1.54}, {'end': 10337.416, 'text': 'You can click here and download.', 'start': 10335.896, 'duration': 1.52}, {'end': 10339.237, 'text': 'It will be easier to see.', 'start': 10338.116, 'duration': 1.121}], 'summary': 'After completing training, various files are generated including weights, response parameters, and performance metrics like mean average position, recall, precision, and training loss.', 'duration': 62.968, 'max_score': 10276.269, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ810276269.jpg'}, {'end': 10515.682, 'src': 'heatmap', 'start': 10345.335, 'weight': 0.765, 'content': [{'end': 10352.358, 'text': 'so here you can see the confusion matrix of how well it responded to the training.', 'start': 10345.335, 'duration': 7.023}, {'end': 10362.236, 'text': 'so then what you will do is you will download the best file and once that is downloaded, you are going to bring it to our project.', 'start': 10352.358, 'duration': 9.878}, {'end': 10365.178, 'text': 'So here we are going to name our projects.', 'start': 10362.677, 'duration': 2.501}, {'end': 10369.961, 'text': "So we will copy YOLO with webcam, because that's pretty much what we're doing.", 'start': 10365.899, 'duration': 4.062}, {'end': 10371.202, 'text': 'We are running it with webcam.', 'start': 10369.981, 'duration': 1.221}, {'end': 10376.905, 'text': 'And what we will do is we will remove all of this and we will write project three.', 'start': 10371.962, 'duration': 4.943}, {'end': 10381.248, 'text': 'And here we will write PPE detection.', 'start': 10377.786, 'duration': 3.462}, {'end': 10386.773, 'text': 'So this is our project three and it says Yolo webcam.', 'start': 10383.47, 'duration': 3.303}, {'end': 10395.139, 'text': 'So we will double click that and right click and rename, and we will write PPE detection.', 'start': 10387.173, 'duration': 7.966}, {'end': 10397, 'text': 'There you go.', 'start': 10396.5, 'duration': 0.5}, {'end': 10402.044, 'text': 'So now what we can do is we can use the PPE videos.', 'start': 10397.641, 'duration': 4.403}, {'end': 10409.51, 'text': 'So if we go here, we can open in our Explorer and you can see, we have these three videos.', 'start': 10402.524, 'duration': 6.986}, {'end': 10411.191, 'text': 'This is the first one.', 'start': 10410.27, 'duration': 0.921}, {'end': 10414.788, 'text': 'This is the second one.', 'start': 10413.427, 'duration': 1.361}, {'end': 10418.171, 'text': 'And this is the third one.', 'start': 10416.389, 'duration': 1.782}, {'end': 10420.412, 'text': 'So we are going to test on all three.', 'start': 10418.631, 'duration': 1.781}, {'end': 10421.933, 'text': "And we'll also test on the webcam.", 'start': 10420.492, 'duration': 1.441}, {'end': 10426.137, 'text': "I do have a hard hat and I'm pretty sure we can find a mask.", 'start': 10422.234, 'duration': 3.903}, {'end': 10428.538, 'text': 'And I also have the construction jacket.', 'start': 10426.697, 'duration': 1.841}, {'end': 10430.62, 'text': "So maybe we'll try that as well.", 'start': 10429.039, 'duration': 1.581}, {'end': 10434.723, 'text': "So let's write here PPE-1.", 'start': 10431.16, 'duration': 3.563}, {'end': 10436.104, 'text': "I believe that's the name.", 'start': 10435.043, 'duration': 1.061}, {'end': 10438.926, 'text': "And yeah, that's good.", 'start': 10437.105, 'duration': 1.821}, {'end': 10442.049, 'text': 'And then we have to change the model.', 'start': 10439.026, 'duration': 3.023}, {'end': 10446.519, 'text': 'so here we are just simply going to drag and drop.', 'start': 10442.938, 'duration': 3.581}, {'end': 10448.659, 'text': 'so here this is the model.', 'start': 10446.519, 'duration': 2.14}, {'end': 10453.74, 'text': 'so we are going to drop it here and we are going to call it ppe.', 'start': 10448.659, 'duration': 5.081}, {'end': 10460.262, 'text': 'so here we will change it to ppe and we will remove all of this.', 'start': 10453.74, 'duration': 6.522}, {'end': 10463.163, 'text': "so let's go ahead and run it.", 'start': 10460.262, 'duration': 2.901}, {'end': 10467.804, 'text': "so let's uh, actually one more thing i forgot.", 'start': 10463.163, 'duration': 4.641}, {'end': 10469.304, 'text': 'we do have to change the class names.', 'start': 10467.804, 'duration': 1.5}, {'end': 10480.015, 'text': 'So if we open up our files, that we got the data.yaml file, we have the names of all the classes.', 'start': 10470.512, 'duration': 9.503}, {'end': 10482.096, 'text': 'So we can simply copy it from there.', 'start': 10480.456, 'duration': 1.64}, {'end': 10487.358, 'text': 'So this is in the data.yaml file and we can replace it with our class names.', 'start': 10482.776, 'duration': 4.582}, {'end': 10490.899, 'text': 'There you go.', 'start': 10490.479, 'duration': 0.42}, {'end': 10495.941, 'text': 'So these are the class names and now if we run it, it should work fine.', 'start': 10491.579, 'duration': 4.362}, {'end': 10501.492, 'text': 'There you go.', 'start': 10501.052, 'duration': 0.44}, {'end': 10510.138, 'text': "So it's detecting the person, it's detecting the hardhat, no mask, and you can see it also detects safety or no safety vest.", 'start': 10501.933, 'duration': 8.205}, {'end': 10515.682, 'text': "So it's not the most accurate, but it is giving us some good readings.", 'start': 10510.498, 'duration': 5.184}], 'summary': 'Trained model responded well, renamed project to ppe detection, tested on videos and webcam, detected person, hardhat, and safety vest.', 'duration': 170.347, 'max_score': 10345.335, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ810345335.jpg'}, {'end': 10402.044, 'src': 'embed', 'start': 10369.981, 'weight': 1, 'content': [{'end': 10371.202, 'text': 'We are running it with webcam.', 'start': 10369.981, 'duration': 1.221}, {'end': 10376.905, 'text': 'And what we will do is we will remove all of this and we will write project three.', 'start': 10371.962, 'duration': 4.943}, {'end': 10381.248, 'text': 'And here we will write PPE detection.', 'start': 10377.786, 'duration': 3.462}, {'end': 10386.773, 'text': 'So this is our project three and it says Yolo webcam.', 'start': 10383.47, 'duration': 3.303}, {'end': 10395.139, 'text': 'So we will double click that and right click and rename, and we will write PPE detection.', 'start': 10387.173, 'duration': 7.966}, {'end': 10397, 'text': 'There you go.', 'start': 10396.5, 'duration': 0.5}, {'end': 10402.044, 'text': 'So now what we can do is we can use the PPE videos.', 'start': 10397.641, 'duration': 4.403}], 'summary': 'Setting up ppe detection project using yolo webcam', 'duration': 32.063, 'max_score': 10369.981, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ810369981.jpg'}, {'end': 11007.143, 'src': 'embed', 'start': 10978.325, 'weight': 4, 'content': [{'end': 10983.629, 'text': "But you can see that when the hard hat is detecting, it's showing us green.", 'start': 10978.325, 'duration': 5.304}, {'end': 10985.97, 'text': "When it's not, it's showing us red.", 'start': 10984.269, 'duration': 1.701}, {'end': 10988.392, 'text': "Let's try it.", 'start': 10987.531, 'duration': 0.861}, {'end': 10991.414, 'text': 'Actually, the scale is very small.', 'start': 10989.312, 'duration': 2.102}, {'end': 10993.075, 'text': "So let's try one.", 'start': 10992.094, 'duration': 0.981}, {'end': 10994.776, 'text': "And let's try another video.", 'start': 10993.635, 'duration': 1.141}, {'end': 10996.877, 'text': 'The first one was the most clear.', 'start': 10994.936, 'duration': 1.941}, {'end': 11000.179, 'text': "Let's try that one out.", 'start': 10996.897, 'duration': 3.282}, {'end': 11003.08, 'text': 'There you go.', 'start': 11002.62, 'duration': 0.46}, {'end': 11007.143, 'text': 'So we have the hard hat, we have the person, no mask and safety vest.', 'start': 11003.201, 'duration': 3.942}], 'summary': 'Hard hat detection: 1 clear video, showing green when detected, red when not.', 'duration': 28.818, 'max_score': 10978.325, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ810978325.jpg'}, {'end': 11122.826, 'src': 'embed', 'start': 11078.936, 'weight': 5, 'content': [{'end': 11087.092, 'text': "and we also need to give in maybe a threshold so that we don't get a lot of wrong detections.", 'start': 11078.936, 'duration': 8.156}, {'end': 11095.475, 'text': "If the confidence level is greater than 0.5, let's say, then only we'll do all of that.", 'start': 11088.592, 'duration': 6.883}, {'end': 11099.436, 'text': 'So yeah, we were talking about the color.', 'start': 11097.055, 'duration': 2.381}, {'end': 11100.896, 'text': 'So no hard hat.', 'start': 11099.676, 'duration': 1.22}, {'end': 11105.798, 'text': 'All of this is supposed to be red.', 'start': 11102.377, 'duration': 3.421}, {'end': 11110.54, 'text': 'These are supposed to be green.', 'start': 11108.919, 'duration': 1.621}, {'end': 11116.141, 'text': 'so, and the rest are blue.', 'start': 11113.439, 'duration': 2.702}, {'end': 11121.865, 'text': "let's run that again.", 'start': 11116.141, 'duration': 5.724}, {'end': 11122.826, 'text': 'there you go.', 'start': 11121.865, 'duration': 0.961}], 'summary': 'Threshold set at 0.5 for confidence level in color detection.', 'duration': 43.89, 'max_score': 11078.936, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ811078936.jpg'}, {'end': 11228.846, 'src': 'embed', 'start': 11203.943, 'weight': 6, 'content': [{'end': 11213.71, 'text': 'And the first one is to actually detect the cards which we will do by YOLO and the second one is actually classifying what hand do we have.', 'start': 11203.943, 'duration': 9.767}, {'end': 11216.332, 'text': 'So there will be a little bit of code involved there.', 'start': 11214.13, 'duration': 2.202}, {'end': 11219.058, 'text': 'So where are we getting the data from?', 'start': 11217.256, 'duration': 1.802}, {'end': 11228.846, 'text': 'The data is available on RoboFlow Universe and we are downloading the playing cards image data set and we will download the YOLO version eight.', 'start': 11219.418, 'duration': 9.428}], 'summary': 'Using yolo to detect cards and downloading data from roboflow universe.', 'duration': 24.903, 'max_score': 11203.943, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ811203943.jpg'}, {'end': 11390.557, 'src': 'embed', 'start': 11366.138, 'weight': 3, 'content': [{'end': 11373.384, 'text': 'So it will be content drive, my drive data sets, playing cards, fixed slash data dot Y a M L.', 'start': 11366.138, 'duration': 7.246}, {'end': 11374.966, 'text': 'So this is what we have to do.', 'start': 11373.384, 'duration': 1.582}, {'end': 11377.508, 'text': 'And, uh, we will have 50 epochs.', 'start': 11375.546, 'duration': 1.962}, {'end': 11379.79, 'text': "So right now it's taking a long time.", 'start': 11378.068, 'duration': 1.722}, {'end': 11382.352, 'text': "So meanwhile, it's training.", 'start': 11380.23, 'duration': 2.122}, {'end': 11386.896, 'text': 'We are going to go ahead and understand the basic concepts of poker.', 'start': 11382.732, 'duration': 4.164}, {'end': 11390.557, 'text': 'and how we can create a classifier for poker.', 'start': 11387.396, 'duration': 3.161}], 'summary': 'Using 50 epochs to train data sets for creating a poker classifier.', 'duration': 24.419, 'max_score': 11366.138, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ811366138.jpg'}], 'start': 10276.269, 'title': 'Training and customization of object detection models', 'summary': 'Covers training an object detection model with yolo, model evaluation with various metrics, and customization for testing on new videos. it also explores safety equipment detection, emphasizing the need for more data for accuracy and the use of color coding. additionally, it discusses creating a hard hat detection system and poker hand classification using yolo, with training involving 52 classes and 50 epochs.', 'chapters': [{'end': 10495.941, 'start': 10276.269, 'title': 'Training and testing object detection model', 'summary': "Describes the process of training an object detection model with yolo, evaluating the model's performance with various metrics, and customizing the model for testing on new videos using google colab.", 'duration': 219.672, 'highlights': ["The main files generated after training the object detection model include best.pt (weights) and last weight.pt, along with other parameters and response of the model. After training, the key files generated are best.pt (weights) and last weight.pt, along with other parameters corresponding to the model's response.", "Metrics such as mean average precision, recall, precision values, and training loss for class and box are generated, along with a confusion matrix, which can be downloaded for analysis. The generated metrics include mean average precision, recall, precision values, training loss for class and box, and a confusion matrix, providing insights into the model's performance.", 'The process of customizing the model for testing on new videos involves renaming the project, changing the model, updating class names, and running the model to ensure its functionality. Customizing the model for testing on new videos involves renaming the project, changing the model, updating class names, and running the model to ensure its functionality.']}, {'end': 10977.825, 'start': 10501.052, 'title': 'Safety equipment detection', 'summary': 'Explores the process of detecting safety equipment such as hard hats, masks, and safety vests using a computer vision model, with an emphasis on the need for training with more data to improve accuracy and the use of color coding to distinguish between detected and undetected items.', 'duration': 476.773, 'highlights': ['The need for training the model with more data and longer epochs to improve accuracy is emphasized, highlighting the importance of dataset size and training duration in improving model performance. improvement in accuracy with larger dataset and longer training epochs', "The use of color coding to distinguish between detected and undetected safety equipment items is demonstrated, with green indicating detection and red indicating non-detection, providing a clear visual indication of the model's performance. clear visual indication of model's detection performance through color coding"]}, {'end': 11414.105, 'start': 10978.325, 'title': 'Hard hat detection & poker hand classifier', 'summary': 'Discusses creating a hard hat detection system using color coding and implementing a poker hand detector using yolo for card detection and classification, with the data set containing 52 classes, and training using 50 epochs.', 'duration': 435.78, 'highlights': ['Implementation of hard hat detection using color coding and confidence level threshold of 0.5, distinguishing between red for no hard hat and green for hard hat, and blue for other items. The system uses color coding to indicate hard hat detection, with red representing no hard hat, green representing hard hat, and blue representing other items, with a confidence level threshold set at 0.5.', 'Creation of a poker hand detector using YOLO for card detection and classification, with the data set containing 52 classes and the training process involving 50 epochs. The project involves using YOLO for card detection and classification, with the data set containing 52 classes based on the rank and the suit, and the training process being carried out using 50 epochs.', 'Utilizing the Ultralytics library and training the system with 50 epochs while explaining the basic concepts of poker to create a classifier for poker. The system utilizes the Ultralytics library and undergoes training with 50 epochs, while also diving into the basic concepts of poker to create a classifier for poker, which is crucial to the project.']}], 'duration': 1137.836, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ810276269.jpg', 'highlights': ["Metrics such as mean average precision, recall, precision values, and training loss for class and box are generated, along with a confusion matrix, providing insights into the model's performance.", 'The process of customizing the model for testing on new videos involves renaming the project, changing the model, updating class names, and running the model to ensure its functionality.', "The main files generated after training the object detection model include best.pt (weights) and last weight.pt, along with other parameters corresponding to the model's response.", 'The need for training the model with more data and longer epochs to improve accuracy is emphasized, highlighting the importance of dataset size and training duration in improving model performance.', "The use of color coding to distinguish between detected and undetected safety equipment items is demonstrated, with green indicating detection and red indicating non-detection, providing a clear visual indication of the model's performance.", 'The system uses color coding to indicate hard hat detection, with red representing no hard hat, green representing hard hat, and blue representing other items, with a confidence level threshold set at 0.5.', 'The project involves using YOLO for card detection and classification, with the data set containing 52 classes based on the rank and the suit, and the training process being carried out using 50 epochs.', 'The system utilizes the Ultralytics library and undergoes training with 50 epochs, while also diving into the basic concepts of poker to create a classifier for poker, which is crucial to the project.']}, {'end': 13361.995, 'segs': [{'end': 11442.735, 'src': 'embed', 'start': 11415.407, 'weight': 0, 'content': [{'end': 11424.174, 'text': "So let's go back and try to understand what exactly is a poker game and how we can create a classifier for it.", 'start': 11415.407, 'duration': 8.767}, {'end': 11434.783, 'text': "So to do that, I've created a simple poker hands, what do you call it, classifier or you can see this is the data sheet or the cheat sheet.", 'start': 11424.695, 'duration': 10.088}, {'end': 11438.791, 'text': 'So we have a total of 10 different classes.', 'start': 11436.229, 'duration': 2.562}, {'end': 11442.735, 'text': 'So high card, pair, two pair, three of a kind and so on.', 'start': 11439.412, 'duration': 3.323}], 'summary': 'The transcript discusses creating a poker game classifier with 10 different classes.', 'duration': 27.328, 'max_score': 11415.407, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ811415407.jpg'}, {'end': 11487.274, 'src': 'embed', 'start': 11462.57, 'weight': 2, 'content': [{'end': 11471.955, 'text': 'So what you have to do is you have to check your two cards and you have to check the rest of the cards that are in public domain to find the best possible scenario.', 'start': 11462.57, 'duration': 9.385}, {'end': 11473.616, 'text': 'So the biggest hand.', 'start': 11472.256, 'duration': 1.36}, {'end': 11477.999, 'text': 'So whenever we have these five cards, we call it a hand.', 'start': 11474.237, 'duration': 3.762}, {'end': 11487.274, 'text': 'So we have a total of 10 types of hands and to understand these, we need to understand what is rank and what is suit.', 'start': 11479.269, 'duration': 8.005}], 'summary': 'Analyze 2 cards and public cards to form the best hand. total of 10 hand types based on rank and suit.', 'duration': 24.704, 'max_score': 11462.57, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ811462570.jpg'}, {'end': 11544.031, 'src': 'embed', 'start': 11519.096, 'weight': 3, 'content': [{'end': 11528.042, 'text': 'Some hands are based on just the ranks and some hands are based on just the suits and some of them are a combination.', 'start': 11519.096, 'duration': 8.946}, {'end': 11532.585, 'text': "So let's start with the easiest one, which is a pair.", 'start': 11528.562, 'duration': 4.023}, {'end': 11536.707, 'text': "We will get to the high card later on but let's start with the pair.", 'start': 11533.505, 'duration': 3.202}, {'end': 11540.369, 'text': 'The pair you have same rank of two cards.', 'start': 11537.227, 'duration': 3.142}, {'end': 11544.031, 'text': "So the rest of them they don't match but two of them they match.", 'start': 11540.869, 'duration': 3.162}], 'summary': 'Explains the concept of a pair in poker, where two cards have the same rank.', 'duration': 24.935, 'max_score': 11519.096, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ811519096.jpg'}, {'end': 11702.574, 'src': 'embed', 'start': 11675.428, 'weight': 1, 'content': [{'end': 11681.213, 'text': 'In full house, you have three of a kind, which is you have three cards that are of the same rank.', 'start': 11675.428, 'duration': 5.785}, {'end': 11684.544, 'text': 'then you have a pair.', 'start': 11682.643, 'duration': 1.901}, {'end': 11687.525, 'text': 'so you have two, two, two and then ten, ten.', 'start': 11684.544, 'duration': 2.981}, {'end': 11695.349, 'text': 'it can be five, five, five and seven, seven, so three of a kind plus a single pair.', 'start': 11687.525, 'duration': 7.824}, {'end': 11697.772, 'text': 'That is your full house.', 'start': 11696.451, 'duration': 1.321}, {'end': 11700.493, 'text': 'Then you have four of a kind, which is very simple.', 'start': 11698.512, 'duration': 1.981}, {'end': 11702.574, 'text': 'You have four of the same ranks.', 'start': 11700.813, 'duration': 1.761}], 'summary': 'In poker, a full house is three of a kind and a pair, while four of a kind comprises four cards of the same rank.', 'duration': 27.146, 'max_score': 11675.428, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ811675428.jpg'}, {'end': 12482.19, 'src': 'embed', 'start': 12450.771, 'weight': 4, 'content': [{'end': 12457.873, 'text': 'Now, how can we check for Royal Flush? In Royal Flush, the first thing we need to check is whether it is a flush or not.', 'start': 12450.771, 'duration': 7.102}, {'end': 12467.845, 'text': 'if all of them are same, if all of them are same in the suits, then it is a flush.', 'start': 12458.982, 'duration': 8.863}, {'end': 12471.306, 'text': 'so how can you do that?', 'start': 12467.845, 'duration': 3.461}, {'end': 12482.19, 'text': "so, basically, what you can do is you can check if, or let me just print it so that it's easier to see actually what is happening.", 'start': 12471.306, 'duration': 10.884}], 'summary': 'To check for a royal flush, first verify if all cards are of the same suit.', 'duration': 31.419, 'max_score': 12450.771, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ812450771.jpg'}, {'end': 12787.183, 'src': 'embed', 'start': 12731.186, 'weight': 5, 'content': [{'end': 12736.07, 'text': "So this means this methodology will first of all, tell us whether it's a flush or not.", 'start': 12731.186, 'duration': 4.884}, {'end': 12741.515, 'text': 'So we can check for Royal flush and we can check for straight flush.', 'start': 12736.631, 'duration': 4.884}, {'end': 12745.354, 'text': 'and we can also check for flush.', 'start': 12743.152, 'duration': 2.202}, {'end': 12748.316, 'text': 'So we can check three of these things right away.', 'start': 12745.874, 'duration': 2.442}, {'end': 12755.3, 'text': 'So if we go in, if we have this first condition, if that is true, it means it is a flush.', 'start': 12748.976, 'duration': 6.324}, {'end': 12762.225, 'text': "Now, once we know it is a flush, we can get to the second step checking whether it's a Royal flush or not.", 'start': 12756.061, 'duration': 6.164}, {'end': 12766.648, 'text': 'So in, in the Royal flush, we must have the ranks.', 'start': 12762.705, 'duration': 3.943}, {'end': 12780.077, 'text': 'So, uh but, but the thing is that it might be a of hearts king of hearts, but it might be um sorted wrong.', 'start': 12767.408, 'duration': 12.669}, {'end': 12784.441, 'text': 'so we need to make sure, first of all, that they are sorted properly.', 'start': 12780.077, 'duration': 4.364}, {'end': 12787.183, 'text': 'so the biggest one, the highest rank, should be the first.', 'start': 12784.441, 'duration': 2.742}], 'summary': 'Methodology identifies flush type and checks for royal flush, straight flush, and flush, enabling quick verification of three conditions.', 'duration': 55.997, 'max_score': 12731.186, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ812731186.jpg'}], 'start': 11415.407, 'title': 'Poker hand classification', 'summary': 'Covers the creation of a poker hands classifier, explaining the 10 different classes of hands, the process of comparing five cards to find the best hand, and the definition of various types of hands, such as pair, two pair, three of a kind, straight, flush, full house, four of a kind, straight flush, and royal flush. it also discusses the classification of cards based on ranks and suits, organizing them into separate lists and identifying patterns for identifying ranks and suits, ultimately focusing on checking for a royal flush.', 'chapters': [{'end': 12131.264, 'start': 11415.407, 'title': 'Poker hands classifier', 'summary': 'Covers the creation of a poker hands classifier, explaining the 10 different classes of hands, the process of comparing five cards to find the best hand, and the definition of various types of hands, such as pair, two pair, three of a kind, straight, flush, full house, four of a kind, straight flush, and royal flush.', 'duration': 715.857, 'highlights': ['Explaining the 10 different classes of hands The chapter describes the 10 different classes of hands in poker, including high card, pair, two pair, three of a kind, straight, flush, full house, four of a kind, straight flush, and royal flush.', 'Definition of various types of hands The transcript provides detailed definitions of various types of hands, such as pair, two pair, three of a kind, straight, flush, full house, four of a kind, straight flush, and royal flush, including examples of card combinations for each type of hand.', 'Process of comparing five cards to find the best hand The process of comparing five cards to find the best possible hand, including the importance of ranks and suits, and the differentiation between hands based on ranks, suits, and combinations, is explained in the chapter.']}, {'end': 12507.934, 'start': 12131.264, 'title': 'Card classification and analysis', 'summary': 'Discusses the classification of cards based on ranks and suits, organizing them into separate lists and identifying patterns for identifying ranks and suits, ultimately focusing on checking for a royal flush.', 'duration': 376.67, 'highlights': ['The chapter emphasizes the classification of cards based on ranks and suits, organizing them into separate lists for easy manipulation and analysis.', "The process involves identifying the rank and suit of each card, addressing exceptions such as the representation of 10 as '1' and distinguishing the ranks and suits accordingly.", 'The discussion revolves around the identification of a Royal Flush, emphasizing the significance of a flush in which all the suits are the same for determining a Royal Flush.']}, {'end': 12966.766, 'start': 12507.934, 'title': 'Poker hand analysis', 'summary': 'Explains the process of analyzing poker hands, including identifying flushes, four of a kind, full houses, and sorting ranks to check for a royal flush, with the methodology able to check for three different hand types.', 'duration': 458.832, 'highlights': ['The methodology can determine whether a hand is a flush, with the first condition being true indicating a flush. Methodology can check for a flush. True condition indicates a flush.', 'The process involves sorting ranks to check for a royal flush, ensuring the ranks are properly organized by assigning numerical values to card ranks. Sorting ranks is crucial for checking royal flush. Assigning numerical values to ranks for proper organization.', 'The methodology allows for the checking of three different hand types - flush, royal flush, and straight flush, providing a comprehensive analysis of poker hands. Methodology can check for flush, royal flush, and straight flush, enabling comprehensive hand analysis.']}, {'end': 13361.995, 'start': 12966.766, 'title': 'Poker hand ranking', 'summary': "Explains how to determine the poker hand ranking by checking for specific card combinations, creating a list of possible ranks, and returning the maximum value from the list, ultimately delivering the hand's classification based on the detected combination.", 'duration': 395.229, 'highlights': ['Explaining the process to determine poker hand ranking by checking for specific card combinations, creating a list of possible ranks, and returning the maximum value from the list. N/A', 'Creating a dictionary of poker hand ranks and their corresponding numbers, such as Royal Flush, Straight Flush, Four of a Kind, Full House, Flush, Straight, Three of a Kind, Two Pair, Pair, and iCard. N/A', 'Demonstrating the method of printing the detected hand and its classification based on the detected combination. N/A']}], 'duration': 1946.588, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ811415407.jpg', 'highlights': ['The chapter describes the 10 different classes of hands in poker, including high card, pair, two pair, three of a kind, straight, flush, full house, four of a kind, straight flush, and royal flush.', 'The transcript provides detailed definitions of various types of hands, such as pair, two pair, three of a kind, straight, flush, full house, four of a kind, straight flush, and royal flush, including examples of card combinations for each type of hand.', 'The process of comparing five cards to find the best possible hand, including the importance of ranks and suits, and the differentiation between hands based on ranks, suits, and combinations, is explained in the chapter.', 'The chapter emphasizes the classification of cards based on ranks and suits, organizing them into separate lists for easy manipulation and analysis.', 'The discussion revolves around the identification of a Royal Flush, emphasizing the significance of a flush in which all the suits are the same for determining a Royal Flush.', 'The methodology can determine whether a hand is a flush, with the first condition being true indicating a flush. Methodology can check for a flush. True condition indicates a flush.', 'The process involves sorting ranks to check for a royal flush, ensuring the ranks are properly organized by assigning numerical values to card ranks. Sorting ranks is crucial for checking royal flush. Assigning numerical values to ranks for proper organization.', 'The methodology allows for the checking of three different hand types - flush, royal flush, and straight flush, providing a comprehensive analysis of poker hands.']}, {'end': 15158.659, 'segs': [{'end': 13543.153, 'src': 'embed', 'start': 13508.393, 'weight': 5, 'content': [{'end': 13514.237, 'text': 'okay, so what happens is, in order to check for straight now, we need the sorted ranks.', 'start': 13508.393, 'duration': 5.844}, {'end': 13526.284, 'text': "so, for example, we will have uh, in the sorted ranks we will have, let's say, 10, 11, 12, 13, 14..", 'start': 13514.237, 'duration': 12.047}, {'end': 13528.385, 'text': 'so this is our sorted ranks.', 'start': 13526.284, 'duration': 2.101}, {'end': 13529.766, 'text': 'so what can we do?', 'start': 13528.385, 'duration': 1.381}, {'end': 13540.692, 'text': 'we can take the first element or we can take this element and we can say check the element before this and add 1 to it.', 'start': 13529.766, 'duration': 10.926}, {'end': 13543.153, 'text': 'So right now we are talking about 11.', 'start': 13541.152, 'duration': 2.001}], 'summary': 'To check for a straight, use sorted ranks and add 1 to the previous element.', 'duration': 34.76, 'max_score': 13508.393, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ813508393.jpg'}, {'end': 13845.219, 'src': 'embed', 'start': 13767.987, 'weight': 1, 'content': [{'end': 13771.168, 'text': 'So we can write possible ranks.', 'start': 13767.987, 'duration': 3.181}, {'end': 13772.168, 'text': 'uh, dot append.', 'start': 13771.168, 'duration': 1}, {'end': 13779.73, 'text': 'What is a straight, a straight is number five, number five.', 'start': 13772.488, 'duration': 7.242}, {'end': 13787.672, 'text': "Did we add a straight so far? No, actually let's add all of them because that that's annoying, you know, going back and forth.", 'start': 13780.03, 'duration': 7.642}, {'end': 13789.912, 'text': 'So after flush, we have straight.', 'start': 13787.992, 'duration': 1.92}, {'end': 13799.471, 'text': 'We have straight, then three of a kind, two pair, pair and high card.', 'start': 13792.953, 'duration': 6.518}, {'end': 13800.192, 'text': 'so flush.', 'start': 13799.471, 'duration': 0.721}, {'end': 13818.121, 'text': 'then we have straight, then we have three of a kind, then we have two pair, then we have pair and then we have high card.', 'start': 13800.192, 'duration': 17.929}, {'end': 13819.202, 'text': 'there you go.', 'start': 13818.121, 'duration': 1.081}, {'end': 13821.603, 'text': 'so now we did till flush.', 'start': 13819.202, 'duration': 2.401}, {'end': 13823.344, 'text': 'now we are going to do straight.', 'start': 13821.603, 'duration': 1.741}, {'end': 13829.626, 'text': 'so for straight, we have jack of spades.', 'start': 13823.344, 'duration': 6.282}, {'end': 13832.528, 'text': 'uh, clubs, jack of club.', 'start': 13829.626, 'duration': 2.902}, {'end': 13845.219, 'text': 'then we have ten of hearts, then we have nine of club, then we have eight of club and then we have seven of diamond.', 'start': 13832.528, 'duration': 12.691}], 'summary': 'Creating possible ranks for poker: straight, flush, three of a kind, two pair, pair, high card.', 'duration': 77.232, 'max_score': 13767.987, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ813767987.jpg'}, {'end': 15062.71, 'src': 'embed', 'start': 15035.726, 'weight': 4, 'content': [{'end': 15042.47, 'text': 'If one of the values has four counts, Then it is a four of a kind.', 'start': 15035.726, 'duration': 6.744}, {'end': 15047.092, 'text': 'If one of the values has three counts, then it is full house.', 'start': 15042.79, 'duration': 4.302}, {'end': 15049.373, 'text': 'Same way we are checking the unique values.', 'start': 15047.472, 'duration': 1.901}, {'end': 15052.274, 'text': 'And if the unique values are three, there are two possibilities.', 'start': 15049.813, 'duration': 2.461}, {'end': 15053.875, 'text': 'One of them is three of a kind.', 'start': 15052.655, 'duration': 1.22}, {'end': 15057.037, 'text': 'If the value has.', 'start': 15054.075, 'duration': 2.962}, {'end': 15062.71, 'text': "the count of three, and if the value has a count of two, it means it's two pair.", 'start': 15058.288, 'duration': 4.422}], 'summary': 'Identifying poker hands: 4 counts = four of a kind, 3 counts = full house, 3 unique values = three of a kind, 2 unique values = two pair', 'duration': 26.984, 'max_score': 15035.726, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ815035726.jpg'}, {'end': 15158.659, 'src': 'embed', 'start': 15109.647, 'weight': 0, 'content': [{'end': 15121.75, 'text': 'so this is basically how we can classify our poker hand and now we, once we have written this code, now we can go and use our trained model to find,', 'start': 15109.647, 'duration': 12.103}, {'end': 15130.355, 'text': 'to detect that hand, and then we will send it to our find poker hand and it will give us the output of what type of hand it is.', 'start': 15121.75, 'duration': 8.605}, {'end': 15131.316, 'text': "so let's go ahead and do that.", 'start': 15130.355, 'duration': 0.961}, {'end': 15135.481, 'text': 'Okay, so now our process has been completed.', 'start': 15132.458, 'duration': 3.023}, {'end': 15140.885, 'text': 'The training is done and we had 50 epochs completed in 7.5 hours.', 'start': 15135.501, 'duration': 5.384}, {'end': 15142.627, 'text': 'So, for further details,', 'start': 15141.466, 'duration': 1.161}, {'end': 15150.834, 'text': 'you can look at the precision and recall curves and we also have the confusion matrix and all these training and validation batches.', 'start': 15142.627, 'duration': 8.207}, {'end': 15158.659, 'text': 'so what we will do now is we will download the best one and we are going to use that in our project.', 'start': 15151.897, 'duration': 6.762}], 'summary': 'Trained model completed 50 epochs in 7.5 hours, with precision and recall curves available for analysis.', 'duration': 49.012, 'max_score': 15109.647, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ815109647.jpg'}], 'start': 13362.816, 'title': 'Poker hand analysis', 'summary': 'Discusses the process of checking for royal flush and high card, implementing straight check logic, determining poker hand rankings, including identifying straight, flush, three of a kind, and more, achieving a completion of five out of ten steps, explaining the process of determining poker hand ranks, and classifying poker hands based on their ranks and suits, with a trained model achieving 50 epochs in 7.5 hours and having precision and recall curves, confusion matrix, and validation batches.', 'chapters': [{'end': 13767.035, 'start': 13362.816, 'title': 'Poker hand coding: checking for royal flush and high card', 'summary': 'Discusses the process of checking for royal flush and high card in a poker hand, as well as the implementation of the straight check logic, ultimately leading to the detection of a straight flush, while also emphasizing the need to improve the code efficiency.', 'duration': 404.219, 'highlights': ['The chapter delves into the process of checking for royal flush and high card, with the initial output displaying a royal flush for the first case and high card for subsequent cases, indicating progress in the right direction.', 'The implementation of the straight check logic is outlined, detailing the method of iteratively checking for a straight in the sorted ranks list by comparing adjacent elements to determine if they form a straight sequence.', 'The need to enhance code efficiency is emphasized, leading to the consideration of optimizing the looping process and the evaluation of conditions for detecting a straight in a poker hand.']}, {'end': 14343.781, 'start': 13767.987, 'title': 'Poker hand ranking', 'summary': 'Covers the process of determining poker hand rankings, including identifying straight, flush, three of a kind, two pair, pair, and high card, and discussing the logic for checking four of a kind and full house, achieving a completion of five out of ten steps in the process.', 'duration': 575.794, 'highlights': ['The chapter discusses the process of determining poker hand rankings, including identifying straight, flush, three of a kind, two pair, pair, and high card. The discussion covers the identification and arrangement of poker hand rankings, providing an overview of the steps involved in determining the rankings.', 'The chapter outlines the logic for checking four of a kind and full house, achieving a completion of five out of ten steps in the process. The logic for checking four of a kind and full house is detailed, contributing to the completion of five out of ten steps in the process of determining poker hand rankings.', 'The process involves identifying straight, flush, three of a kind, two pair, pair, and high card, providing a comprehensive understanding of the ranking system. The comprehensive understanding of the ranking system includes the identification of various poker hand combinations and their significance in determining the ranking.']}, {'end': 14911.274, 'start': 14343.781, 'title': 'Poker hand ranking logic', 'summary': 'Explains the process of determining poker hand ranks, including detecting royal flush, straight, four of a kind, full house, three of a kind, two pair, and a pair, using a systematic approach based on card values and occurrences.', 'duration': 567.493, 'highlights': ['The chapter explains the process of determining poker hand ranks, including detecting Royal flush, straight, four of a kind, full house, three of a kind, two pair, and a pair. The chapter covers the process of identifying various poker hand ranks such as Royal flush, straight, four of a kind, full house, three of a kind, two pair, and a pair.', 'The logic involves checking the occurrence of specific card values to determine the poker hand rank. The process involves checking the occurrences of specific card values to determine the poker hand rank, such as determining four of a kind if a value occurs four times, full house if a value occurs three times, and a pair if a value occurs two times.', 'The methodology successfully detects and categorizes different poker hand ranks based on the card values and occurrences. The methodology successfully detects and categorizes different poker hand ranks based on the card values and occurrences, ensuring accurate identification of hand ranks in poker games.']}, {'end': 15158.659, 'start': 14911.274, 'title': 'Poker hand classification', 'summary': 'Explains a system for classifying poker hands based on their ranks and suits, using sorting and checks for flush, straight, and unique values, with a trained model achieving 50 epochs in 7.5 hours and having precision and recall curves, confusion matrix, and validation batches.', 'duration': 247.385, 'highlights': ['The training is done and we had 50 epochs completed in 7.5 hours. The training process for the model was completed, achieving 50 epochs in 7.5 hours, showcasing significant computational effort.', 'Explains a system for classifying poker hands based on their ranks and suits, using sorting and checks for flush, straight, and unique values. The chapter details the process of classifying poker hands through sorting and checks for flush, straight, and unique values, demonstrating a systematic approach to hand classification.', 'The chapter details the process of classifying poker hands through sorting and checks for flush, straight, and unique values. The chapter details a systematic approach to classifying poker hands, emphasizing the importance of sorting and checks for flush, straight, and unique values.']}], 'duration': 1795.843, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ813362816.jpg', 'highlights': ['The training process for the model was completed, achieving 50 epochs in 7.5 hours, showcasing significant computational effort.', 'The chapter details a systematic approach to classifying poker hands, emphasizing the importance of sorting and checks for flush, straight, and unique values.', 'The methodology successfully detects and categorizes different poker hand ranks based on the card values and occurrences, ensuring accurate identification of hand ranks in poker games.', 'The process involves identifying straight, flush, three of a kind, two pair, pair, and high card, providing a comprehensive understanding of the ranking system.', 'The logic for checking four of a kind and full house is detailed, contributing to the completion of five out of ten steps in the process of determining poker hand rankings.', 'The implementation of the straight check logic is outlined, detailing the method of iteratively checking for a straight in the sorted ranks list by comparing adjacent elements to determine if they form a straight sequence.']}, {'end': 16421.312, 'segs': [{'end': 15223.978, 'src': 'embed', 'start': 15188.445, 'weight': 5, 'content': [{'end': 15199.433, 'text': "so let's drag that in and we will call it playing cards dot, pt and over here.", 'start': 15188.445, 'duration': 10.988}, {'end': 15202.735, 'text': 'now we have to make the changes so that it detects these.', 'start': 15199.433, 'duration': 3.302}, {'end': 15205.217, 'text': 'so first of all, the class names we need to change.', 'start': 15202.735, 'duration': 2.482}, {'end': 15207.095, 'text': 'So to change that,', 'start': 15206.195, 'duration': 0.9}, {'end': 15221.578, 'text': 'we can go back to our data.yml file and we can copy all the names and we can simply paste them here and we can just cut this and paste it here.', 'start': 15207.095, 'duration': 14.483}, {'end': 15223.978, 'text': 'There you go.', 'start': 15221.598, 'duration': 2.38}], 'summary': 'Updating class names in data.yml file for detecting playing cards.', 'duration': 35.533, 'max_score': 15188.445, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ815188445.jpg'}, {'end': 15543.71, 'src': 'embed', 'start': 15500.269, 'weight': 1, 'content': [{'end': 15502.649, 'text': 'The ace.', 'start': 15500.269, 'duration': 2.38}, {'end': 15508.758, 'text': 'Ace of spades, hearts, club, and diamond.', 'start': 15505.737, 'duration': 3.021}, {'end': 15513.139, 'text': 'Perfect So we have 100 out of 100 being detected properly.', 'start': 15508.878, 'duration': 4.261}, {'end': 15517.44, 'text': 'Actually 52 out of 52.', 'start': 15514.419, 'duration': 3.021}, {'end': 15526.223, 'text': 'So what we will do now is once we detect, first of all, we are already displaying it.', 'start': 15517.44, 'duration': 8.783}, {'end': 15531.664, 'text': 'We are going to put it in a variable called hands or hand.', 'start': 15526.443, 'duration': 5.221}, {'end': 15533.725, 'text': 'Hand is equal to empty.', 'start': 15532.265, 'duration': 1.46}, {'end': 15543.71, 'text': 'Now, once we have this, we are going to send this hand to our poker hand function.', 'start': 15534.983, 'duration': 8.727}], 'summary': "100% detection rate achieved for 52 cards; detected cards stored in 'hand' variable", 'duration': 43.441, 'max_score': 15500.269, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ815500269.jpg'}, {'end': 15652.389, 'src': 'embed', 'start': 15580.971, 'weight': 3, 'content': [{'end': 15585.012, 'text': 'so we can write poker hand function dot.', 'start': 15580.971, 'duration': 4.041}, {'end': 15586.532, 'text': 'poker hand function dot.', 'start': 15585.012, 'duration': 1.52}, {'end': 15590.733, 'text': 'find poker hand and we will send in our hand.', 'start': 15586.532, 'duration': 4.201}, {'end': 15595.013, 'text': 'So we will check.', 'start': 15592.992, 'duration': 2.021}, {'end': 15597.974, 'text': 'the results equal this', 'start': 15595.013, 'duration': 2.961}, {'end': 15606.777, 'text': 'And what we have to do is we have to, first of all, make sure that, uh, we have five different cards.', 'start': 15600.775, 'duration': 6.002}, {'end': 15610.878, 'text': 'So if there are four or two or three that then it should not work.', 'start': 15606.997, 'duration': 3.881}, {'end': 15613.279, 'text': 'So we should have a total of five.', 'start': 15610.978, 'duration': 2.301}, {'end': 15617.16, 'text': 'So if the length of hands.', 'start': 15613.739, 'duration': 3.421}, {'end': 15626.582, 'text': 'the length of hand equals five, then only we are going to send this.', 'start': 15619.759, 'duration': 6.823}, {'end': 15629.264, 'text': "if it's more or less, we should not send it.", 'start': 15626.582, 'duration': 2.682}, {'end': 15634.566, 'text': 'so once that is done, we can simply print the results.', 'start': 15629.264, 'duration': 5.302}, {'end': 15635.587, 'text': 'we can display it.', 'start': 15634.566, 'duration': 1.021}, {'end': 15638.768, 'text': "we will display it now, but for now we'll do that.", 'start': 15635.587, 'duration': 3.181}, {'end': 15652.389, 'text': 'okay. so once we are actually detecting this, uh, we can put, for example, a limitation, that if the confidence level is greater than 0.5,', 'start': 15638.768, 'duration': 13.621}], 'summary': 'Creating a poker hand function to check for five different cards before sending, and displaying the results.', 'duration': 71.418, 'max_score': 15580.971, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ815580971.jpg'}, {'end': 16381.954, 'src': 'embed', 'start': 16345.64, 'weight': 0, 'content': [{'end': 16354.947, 'text': 'so we have queen, queen and king and the king, and we need another queen.', 'start': 16345.64, 'duration': 9.307}, {'end': 16355.908, 'text': 'there you go.', 'start': 16354.947, 'duration': 0.961}, {'end': 16361.171, 'text': 'so this should be a full house, full house, yep.', 'start': 16355.908, 'duration': 5.263}, {'end': 16367.956, 'text': "and if we remove the queen and put, let's say, two, then it will become two pair.", 'start': 16361.171, 'duration': 6.785}, {'end': 16369.297, 'text': 'there you go.', 'start': 16367.956, 'duration': 1.341}, {'end': 16370.238, 'text': "so that's pretty good.", 'start': 16369.297, 'duration': 0.941}, {'end': 16381.954, 'text': 'So, as you can see, our object detection model is working really good and our poker hand detector is also working very good.', 'start': 16371.229, 'duration': 10.725}], 'summary': 'Object detection model and poker hand detector are performing well.', 'duration': 36.314, 'max_score': 16345.64, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ816345640.jpg'}], 'start': 15158.659, 'title': 'Creating poker hand detection and recognition', 'summary': 'Covers creating a poker hand detector using a webcam, modifying class names and importing a model, achieving 100% accuracy in detecting 52 cards, and developing a real-time poker hand object detection model for various hands.', 'chapters': [{'end': 15254.791, 'start': 15158.659, 'title': 'Creating poker hand detector', 'summary': 'Discusses the process of creating a poker hand detector using a webcam, modifying class names and importing a model.', 'duration': 96.132, 'highlights': ['The chapter demonstrates the process of modifying class names for the poker hand detector by copying and pasting all the names from the data.yml file, including ranks and card types.', "It emphasizes the step of importing a model named 'playing cards dot.pt' and ensuring that the webcam will be used for running the detector.", 'The chapter shows the initial step of creating a poker hand function as part of project 4, setting the foundation for subsequent tasks.']}, {'end': 15857.08, 'start': 15254.791, 'title': 'Playing card detection and recognition', 'summary': 'Details the process of detecting and recognizing playing cards using a webcam, achieving 100% accuracy in detection of 52 cards, and implementing a poker hand function to analyze and display the results in real time.', 'duration': 602.289, 'highlights': ['The system achieved 100% accuracy in detecting and recognizing 52 playing cards, displaying high efficiency and speed.', 'Implemented a poker hand function to analyze the detected cards, ensuring the presence of five different cards before processing the results.', 'Utilized a confidence level threshold of 0.5 to filter and display the recognized playing cards, achieving the desired unique results.', 'Successfully demonstrated the detection of a four of a kind poker hand, showcasing the effectiveness of the implemented recognition system.']}, {'end': 16421.312, 'start': 15857.08, 'title': 'Poker hand object detection', 'summary': 'Explores the development of a poker hand object detection model with real-time output, successfully detecting various poker hands like royal flush, straight flush, four of a kind, full house, flush, straight, three of a kind, two pair, single pair, and high card.', 'duration': 564.232, 'highlights': ['The model successfully detects various poker hands like royal flush, straight flush, four of a kind, full house, flush, straight, three of a kind, two pair, single pair, and high card, providing real-time output.', 'The process involves adjusting parameters such as position, size, height, scale, and thickness to optimize the detection results.', "The chapter emphasizes the project's success and the potential of custom model training in creating useful real-world applications."]}], 'duration': 1262.653, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/WgPbbWmnXJ8/pics/WgPbbWmnXJ815158659.jpg', 'highlights': ['The model successfully detects various poker hands like royal flush, straight flush, four of a kind, full house, flush, straight, three of a kind, two pair, single pair, and high card, providing real-time output.', 'The system achieved 100% accuracy in detecting and recognizing 52 playing cards, displaying high efficiency and speed.', 'Successfully demonstrated the detection of a four of a kind poker hand, showcasing the effectiveness of the implemented recognition system.', 'Implemented a poker hand function to analyze the detected cards, ensuring the presence of five different cards before processing the results.', 'Utilized a confidence level threshold of 0.5 to filter and display the recognized playing cards, achieving the desired unique results.', 'The chapter demonstrates the process of modifying class names for the poker hand detector by copying and pasting all the names from the data.yml file, including ranks and card types.']}], 'highlights': ['The course offers comprehensive coverage of theory, practical projects, and custom YOLO model training, emphasizing maximum knowledge in minimal time.', 'The installation of CUDA toolkit, CUDA DNN, and PyTorch for GPU acceleration enables 30x faster inference speed, allowing real-time YOLO implementation.', 'Creating a car counting project using YOLO on a GPU for real-time detection and bounding box information on a 3080 ti.', 'The model successfully detects various poker hands like royal flush, straight flush, four of a kind, full house, flush, straight, three of a kind, two pair, single pair, and high card, providing real-time output.']}