
Learn to build an end-to-end number plate recognition system using YOLO v8, covering data collection, labeling, training, OCR with easyocr, and a streamlit web app.
Explore what object detection is, how it locates objects with bounding boxes using CNNs and deep learning, and its real world uses in surveillance, security, and self-driving cars.
Explore the rapid advancements in object detection from traditional methods like Viola-Jones and hog to deep learning with one-stage and two-stage detectors, including yolo, ssd, and r-cnn family.
Explore the YOLO object detection framework, a single-stage detector that treats detection as regression in a single forward pass, predicting location and class labels at 45 fps on a GPU.
Explain how YOLO works by dividing an image into an s by s grid, predicting multiple bounding boxes, confidence scores, and class probabilities per cell.
Explore the YOLO architecture, a convolutional neural network inspired by GoogLeNet, with 20 convolutional layers and two fully connected layers, processing 448x448x3 inputs to a 7x7x30 output.
Trace the evolution of YOLO versions from v1 to v8, highlighting speed and accuracy gains, and note Ultralytics’ v8 capabilities for object detection, classification, segmentation, pose estimation, and tracking.
Install Miniconda to set up a lightweight, project-specific environment. Create a conda virtual environment named Yolo V8, list environments, and activate or deactivate as needed.
Install required packages for the yolov8 number plate project, including label studio, Ultralytics, easy OCR, streamlit, OpenCV, scikit-learn, and Yaml, after activating the environment and preparing for Cuda and cuDNN.
Enable gpu-accelerated training for YOLOv8 by installing cuda and cudnn via Miniconda, configuring drivers, and setting environment variables.
Explore the project structure for a custom yolov8 license plate workflow, including datasets and car number plate folders, preprocessing.py, train/val/test split, and the web app with App.py.
Gather data to train the YOLOv8 model for number plate recognition by illustrating three options—web scraping, public datasets, and manual Google image searches—and annotate bounding boxes for training.
Gather a diverse dataset of car number plates from Flickr by downloading about 200 images with an image downloader, then manually remove non-plate images to prepare for labeling and OCR.
Draw boxes around number plates in images with Label Studio and export annotations in yolo format, detailing normalized center x, center y, width, and height for single class number plate.
Split the data into training, validation, and testing sets using a 70/10/20 ratio with a Python script and train test split.
Create a yaml configuration with train, valid, and test paths and the number plate class, then write the dictionary to number plate.yaml using Python and yaml.
Train the yolo v8 s model for number plate detection after splitting data into training, validation and testing sets and validating the yaml config.
Install ultralytics in a notebook, configure a yolo v8 s model with a number plate data yaml, and train detect for 50 epochs.
Apply a trained YOLOv8 model to detect number plates in images, save bounding boxes for later OCR with easyOCR, and build a reusable Detect and Recognize.py script for inference.
Process videos frame by frame with OpenCV to detect number plates using the detect number plates function, then write and display the output video as output.mp4 with fps annotations.
Crop detected number plates and recognize their text with OCR, using an EasyOCR reader, and optionally save results to CSV to build a complete number plate recognition system.
Integrate the number plate recognition with video frames to detect plates as vehicles approach. Tackle jittering and optical character recognition fluctuations with image processing techniques and object tracking across frames.
Create a Streamlit web app to upload a vehicle image and output the recognized number plate, install streamlit with pip, and run streamlit run App.py to test.
Add an image upload feature with streamlit file uploader to accept png, jpg, and jpeg files and set up imports for detect and recognise number plates.
Integrate the number plate recognition system with the Streamlit app by using detect and recognize number plates to perform detection and recognition.
In this comprehensive course, you'll learn everything you need to know to master YOLOv8. With detailed explanations, practical examples, and step-by-step tutorials, this course will help you build your understanding of YOLOv8 from the ground up.
Discover how to train the YOLOv8 model to accurately detect and recognize license plates in images and real-time videos.
From data collection to deployment, master every step of building an end-to-end ANPR system with YOLOv8.
What you'll get:
Here's what you'll get with this course:
3 hour of HD video tutorials
Source code used in the course
Hands-on coding experience and real-world implementation.
Step-by-step guide with clear explanations and code examples.
Gain practical skills that can be applied to real-world projects.
Lifetime access to the course
Priority support
What is covered in this course:
Just so that you have some idea of what you will learn in this course, these are the topics that we will cover:
Set Up Your Environment for Object Detection
Collect the Data for Training the Model
Train the YOLO Model and Learn How to Use it to Detect Number Plates in Images and Video Streams
Learn How to Recognize Number Plates in Images and Videos Using OCR
Integrate the Number Plate Recognition System with a Streamlit Web Application