
Learn the basics of YOLOv4 object detection, install Python and OpenCV, compile Darknet, run image and video scripts, and build a webcam-based social distancing monitor.
Join the private Facebook group for this YOLOv4 course and learn to get help, verify your code against provided solutions, and use GitHub, readmes, and the Q&A forums to troubleshoot.
Explore the YOLOv4 theory, detailing fast, accurate real-time object detection, backbone and neck architectures, bag of freebies and bag of specials training tricks, data augmentation, and oblation studies.
Follow ten steps to install the Windows prerequisites for YOLOv4, including Python 2.7, CUDA, cuDNN, OpenCV, NVIDIA drivers, and Visual Studio 2019.
Implement YOLOv4 object detection on images and videos by configuring darknet with OpenCV and Python, downloading weights, and running detections in Visual Studio.
Learn to run YOLOv4 with darknet on a webcam or video file by loading cfg, weights, and metadata, processing frames with OpenCV, and drawing bounding boxes.
Develop a social distancing monitoring app using YOLOv4 detections to compute Euclidean distances between person boxes, flag at-risk pairs, and visualize red and green bounding boxes with risk text.
Develop a simple car counting app using YOLOv4 object detection to analyze images, count cars, and display the total with bounding boxes, while guiding input image handling and testing.
Copy folder “Deep-SORT-YOLOv4_TF_2X ”
Download or copy yolov4.weights trained on coco. to “Deep-SORT-YOLOv4_TF_2X/”
Copy Model data (YOLOv4.h5) and yolov4.weights file from here:
Or Download section of this Lecture
Run in folder’s cmd: python -m pip install -r requirements.txt
Run in folder’s cmd: python convert.py
Run python object_tracking.py
Combine YOLOv4 detection with DeepSORT to achieve robust, real-time vehicle tracking for highway surveillance. Learn setup, handle detections, apply non maximal suppression, and enable async video for higher frame rates.
Train and infer a YOLOv5 chess piece detector in under 15 minutes using Roboflow and Google Colab, with dataset augmentation, health checks, and one-click training, plus exporting weights for deployment.
This bonus lecture guides you to build a Bernie Sanders detector using YOLO, from Roboflow data labeling to training on Google Colab or local hardware and real-time webcam deployment.
Assess the YOLOv5 controversy, weighing claims of 144 fps, 27 MB size, and higher speed against YOLOv4, Ultralytics' results, and community evaluations.
Trace the evolution of YOLO from v1 to v3, showing how a single convolutional network treats object detection as regression on a 7 by 7 grid with anchor boxes. Learn how YOLO v3 with Darknet 53 backbone adds three predictions across scales and improves small-object localization for fast, real-time detection with strong accuracy.
Learn to prepare and annotate image and video data for YOLOv4, using bounding boxes and other annotation methods, and apply semi-automated labeling to train a mask detector.
Learn to prepare data in YOLO format for image labeling by creating per-image text files named like the image, containing normalized class, center coordinates, and dimensions.
Discover free, easy to use image labeling tools for bounding boxes, including label Angi and others, with features like bulk upload, YOLO format export, and video tracking for rapid annotation.
Learn to build a dataset for yolov4 object detection by web-scraping with a chrome extension and Google image search, balancing classes: person with a mask and person without a mask.
Label objects in your image dataset with the LabelImg tool, draw bounding boxes, ensure every image has a label and remove irrelevant images, then convert annotations to yolo format.
practice labeling images in YOLOv4 format using the label IMG Tool, then report how many objects you labeled and what labels you gave them in the comments.
Transform video into frames, extract at 15 fps, and label with labelImg by drawing bounding boxes for faces with or without masks and for glasses to build a YOLOv4 dataset.
Use darklabel to label long videos efficiently by applying a semi-autonomous tracking workflow with yolo ground-truth annotations, interpolation, and keyboard shortcuts for rapid labeling.
Convert the video into image frames per second, label objects for two classes: mosque and without mosque, using the YOLO labeling workflow, and compare two labeling tools.
Create a dataset by collecting images and videos, edit with img or darktable, and annotate; define mosque and non-mosque classes, apply web scraping and data augmentation for YOLO labels.
Summarize data annotation for YOLOv4 object detection by labeling with binding boxes in yellow v4 format on images and videos, and outsourcing work to freelancers or third parties.
Learn to create custom datasets for yolov4 by extracting target classes from open images and converting annotations to V4 format for efficient detector training.
Learn to install and use the OOIDA Toolkit to download selective image classes from large datasets for object detection, enabling multi-class downloads with minimal effort.
Download images and annotations for specific classes from the open images dataset using a python tool with the --classes flag, using underscores for multiword names, and verify with the visualizer.
Practice using the Open Images dataset toolkit to download ten images per class into separate folders, and review commands, class naming rules, and dataset selection.
Convert downloaded csv annotations to YOLOv4 format by creating per-image text files with center-based bounding boxes, and verify results with labelImg.
Boost YOLOv4 training with rotational data augmentation, expanding images and annotations via a rotation script. Configure input, run the script, and verify augmented results in the rotational dataset.
Downloading labeled images with a toolkit, converting annotations to v4 format, and applying data augmentation boost your dataset to tenfold, preparing for training and real-time deployment.
Train a YOLOv4 object detector with the Darknet framework, preparing data and configuration files for CPU or GPU deployment, and test mask-detection on images, video, and webcam.
Configure the training files for a custom YOLO model in step one, adapting the Darknet config for two classes and creating a Drain and Distort metadata file.
Create the obj.names file to host class names for training, using the Sublime Text editor, saving as obj.names; the model will reference it during training before adding annotated image datasets.
Import edited and downloaded images with their label files into the darknet training dataset, creating a dataset folder and setting up metadata for train and test files.
Automatically generate train and test metafiles that list image paths, with an 80/20 train-test split, by running a Python script in the darknet data folder to prepare for training.
Train a YOLOv4 model by preparing the Darknet data folder with train and test images, configuring names and backup, and running Darknet to generate checkpoints and monitor GPU usage.
Experiment with training checkpoints to minimize loss, then test YOLOv4 on images and videos for mask detection using darknet commands, and save results to an output video.
Train on your own dataset by configuring sets one to five and the metafile, then test in real time on video or image to report detected classes and frame rate.
Set total iterations, such as 2000 per class, for efficient training. Monitor validation loss to prevent overfitting and use mean average precision to select the best weights for detection.
Review training of custom YOLOv4 models, adjust configuration files for number of glasses in the models, and edit or download datasets to train and test from scratch.
Explore building a graphical user interface for object detection with PyQt, using python bindings for the Cuty application development framework, install the toolkit, and add simple widgets for interactivity.
This lecture walks you through installing PyQt5 and Qt Designer tools, setting up the development environment, and launching Qt Designer to design user interfaces for your bike duty app.
Design a graphical user interface for an object detection app using a GUI designer, adding a main window with browse and run buttons, and a video path field.
Learn to implement real-time object detection with YOLOv4 using PyQt in the Cuty framework, including setup, file preparation, GUI integration, and running the app.
Explore how five Python files power a YOLOv4 object detection UI, detailing the UI dialogue window, file handling, start video, frame updates, and drawing bounding boxes.
Add gui widgets to display per-frame object counts from real-time detections, linking the interface to the detection code and showing counts on an lcd for cars, trucks, and people.
Add a horizontal slider to the YOLOv4 app to adjust the detection threshold in real time, map slider values to 0–1, and observe how detections respond.
Add a checkbox widget to filter detections by class in the YOLOv4 app, enabling on-the-fly filtering to show only people or cars, with adjustable detection sensitivity via a slider.
Add a real-time plot graph widget to visualize object counts over time in a YOLOv4 detection workflow, with custom Python logic updating live x and y data.
Integrate the social distancing script into the PyQt app, link widgets to show people at risk and results over time, and adjust the detection threshold for real-time monitoring.
Conclude the course by showing how to integrate python object detection code, deploy cross-platform apps, and train custom models for covid-19 projects and Facebook applications.
Build a real-time facial recognition attendance GUI in PyQt, featuring clock-in and clock-out with confirmation dialogs, live status, date and time displays, and a user-friendly interface designed with Qt Designer.
I started out wanting to learn AI Object Detection in Computer Vision...
... I used to check a lot of GitHub repos, they were very vague and required for me to be competent in software development/programming and understand all of the jargon –
Now even though I have a masters degree in electronic engineering (M.Eng). It was still challenging for me to figure out. I had a lot of questions like...
...What to do to get my code working?
Do I have the right hardware
Windows or Linux – If linux, do I use Ubuntu, Red Hat, CentOS, ROS
If Ubuntu, what version 16.04, 18.04, What kernel do I need?
If I am training, what format does my dataset need to be in?
Do I use Python or C++
If python What dependencies do I need?
Which frameworks do I use? PyTorch, TensorFlow 1.0 or 2.0
What commands do I type to infer or train a convolutional neural network
How big my dataset needs to be?
How do I run on GPU, and does my GPU support the framework?
How to train YOLOv4
How create cross platform apps using Yolov4 and PyQt
I was unsure of what to do. Sometimes I would look at the instructions and because the instructions were so vague, I would skip to the next repo and the next, until I found one that resonates with me or one that had a clear set of instructions that I could understand and follow, or had a video tutorial on it. And video tutorials on this particular topic are very scarce.
The other problem was, I would follow the instructions, but I would run in trivial issues, like not having the correct dependencies or I did not have the correct hardware or OS etc. When things don’t work. This would beat me down and make me loose confidence of whether or not this repository would work. Now I had 2 options, I could either spend tons of hours searching the web to debug the issue or move on to the next repo which also may or may not work.
Then, I thought, if me with a masters degree in electronic engineering had all these issues with getting started in AI, surely other people would be having this same issue as me. People such as:
non-programmers/non computer science ,
Hobbyists, Students, researcher, employees.
People starting out in AI....
The YOLOv4 Object Detection Course
When YOLOv4 was released in April 2020, my team and I worked effortlessly to create a course in which will help you implement YOLOv4 with ease. We created this Nano course in which you will learn the basics and get started with YOLOv4. This is all about getting object detection working with YOLOv4 in your windows 10 PC.
You will learn how to install all the dependencies, including Python, CUDA and OpenCV. Once you’ve managed to compile it successfully, we go on to execute YOLOv4 on images and videos. Then to ensure that you understand whats going on, we delve deeper into the darknet python script and show you how to also run YOLOv4 on a webcam.
Within this nano-course, we shall also create our first weapon against COVID-19 which is our social distancing monitoring app. Which essentially monitors the physical distance between people to ensure that they’re keeping safe distancing from each other. It also displays the number of people at risk at any given time
The YOLOv4 Course provides you with a gentle introduction to the world of computer vision with YOLOv4, first by learning how to install darknet, building libraries for YOLOv4 all the way to implementing YOLOv4 on images and videos in real-time.
From here you will even solve current and relevant real-world problems by building your own social-distancing monitoring app.
Requirements
Please ensure that you have the following:
Basic understanding of Computer Vision
Python Programming Skills
Mid to high range PC/ Laptop
Windows 10
CUDA-enabled GPU - Important*
Forward Thinking
Imagine, if a week from now, once you have completed this course, that you are able to implement and implement your own Convolutional Neural Networks (CNN's) with YOLOv4 object detection pre-trained model. Imagine all the applications you could do with these skills!
You could be take your new found expertise and be:
Solving real world problems,
Freelancing AI projects,
Getting that job/opportunity in AI,
Tackling your research guns blazing!
Saving time, money, &
Wishing you had done this course sooner.
The world is your oyster... Ask yourself...What cool things would you do once you have skills in AI?
So what are you waiting for?