Powerful ALPR with YOLOv8, ESRGAN & EasyOCR! ⚡️ Detect & read license plates in images/videos. ✨ High accuracy, real-time performance, flexible & open-source. Optimized for accuracy and speed. Detect and read plates effectively!. Code, docs, contribute! #ALPR #YOLOv8 #ESRGAN #EasyOCR
Automatic License Plate Recognition (ALPR) System with YOLOv8, ESRGAN, and EasyOCR
This repository presents a real-time, highly accurate ALPR system trained on a combination of YOLOv8, ESRGAN, and EasyOCR models. It can detect and recognize license plates of various shapes and sizes, even in challenging environments like low-light conditions.
Our ALPR solution employs a combination of custom-trained YOLOv8, EasyOCR, and pre-trained ESRGAN models. The methodology involves:
- Training the YOLOv8 algorithm to detect license plates in images.
- Using ESRGAN to enhance the quality of low-resolution images, resulting in high-quality output.
- Sharing this output with YOLOv8, which detects the license plate in images by mapping the license plate coordinates.
- Transferring the output of YOLOv8 to EasyOCR, which detects the characters in the license plate and finally displays the output.
Real-time performance: Handles video streams and images with minimal latency. High accuracy: Achieves 97% F1 score and 98.5% mean average precision on diverse datasets. Versatility: Operates in complex environments like low-light conditions. Open-source and adaptable: The code is readily available for customization and improvement. System Architecture:
YOLOv8 Detection: A custom-trained YOLOv8 model identifies license plates within images or video frames. ESRGAN Super-Resolution: For blurry or low-resolution images, ESRGAN enhances the quality before feeding it back to YOLOv8 for improved accuracy.
EasyOCR Recognition: Based on YOLOv8's output, EasyOCR extracts and recognizes the characters on the license plate.
result_compressed.mp4
Enhanced security and surveillance: Track vehicles, enforce traffic regulations, and improve security systems. Automated data collection: Extract license plate information for research, toll booths, or vehicle access control. Streamlined workflows: Eliminate manual data entry and human errors associated with license plate reading. Getting Started:
Clone the repository and install the required dependencies. Download the pre-trained models for YOLOv8 and ESRGAN, and import the EasyOCR library. train the YOLOv8 model, you can get the dataset from roboflow.com make sure that yolo is version 8.0.0 otherwise train the YOLOv8 from Ultralytics official repository in GitHub and run the model with integrated YOLOv8 and ESRGAN
In the future, there is potential to enhance ALPR systems by incorporating more parameters such as driver facial recognition and vehicle speed. Additionally, it would be beneficial to create a user-friendly interface for the system. one can also custom-train an ESRGAN instead of a pre-trained model or use a more advanced super-resolution model for improving license plate detection quality but remember it should be able to detect in Real-time