Automatic Number Plate Recognition (ANPR) System
Real-time ANPR system using YOLOv8, OpenCV, EasyOCR, and Tkinter for plate recognition.

We developed a real-time Automatic Number Plate Recognition (ANPR) system in Python by integrating YOLOv8, OpenCV, EasyOCR, and Tkinter. Our objective was to create a complete pipeline capable of detecting, tracking, and identifying vehicles and their license plates from a live video feed. A pretrained YOLOv8 model was used to detect vehicles in real-time. To improve plate recognition performance, we fine-tuned a separate YOLOv8 model specifically for license plate detection, allowing for precise localization of plates even in varied lighting and angle conditions. For vehicle tracking across consecutive frames, we implemented the SORT (Simple Online and Realtime Tracking) algorithm. This helped maintain consistent identity tracking of each detected vehicle, which is critical for associating license plate information with the correct vehicle. To extract textual information from the detected license plates, EasyOCR was used, an open-source Optical Character Recognition tool that supports multilingual recognition and works well with natural scene text. This enabled us to retrieve license plate numbers from the localized regions. The user interface was developed using Tkinter, providing a lightweight and responsive front end. The interface displays the live video feed, bounding boxes for tracked vehicles, license plate detection, and the recognized plate numbers in real time, offering full visibility into the ANPR pipeline as it operates. This system is designed to be modular and can be adapted for use in traffic monitoring, access control, and public safety applications. The combination of object detection, tracking, OCR, and a GUI framework makes it a practical and extensible solution for real-world deployment.