Note: This repository showcases a project I led during my worktime at company.
This project began as a Django-based web application designed for real-time Automatic Number Plate Recognition (ANPR). The system automates the detection and identification of vehicles. During my time at company, the system is adapted to integrate with barrier control systems for access management. Additionally, the solution was optimized for deployment on Raspberry Pi 5.
Stream real-time video from RTSP-protocol IP cameras directly to the web-based live monitoring
The backend processes video frames from the live stream to detect vehicles and extract key details, including:
- Images of vehicle and license plate
- Vehicle's brand, color, and license plate number
Supported Brands
To ensure reliability, the system processes multiple video frames during license plate recognition, cross-verifying results to achieve a higher accuracy in recognizing license plate number.
Detected license plates are automatically preprocessed to correct perspective distortions, improving the accuracy of recognition results.
Users can define a region of interest to limit detection to a specific area of the video frame. The system also allows filtering out smaller detected vehicles to optimize processing resources.
All detected vehicle details are stored in a database. Users can review and label the data as correct or wrong, providing valuable feedback to improve the system's performance in future.
Note: Django officially supports several databases, including PostgreSQL, MariaDB, MySQL, Oracle, and SQLite. For other databases, third-party backends are available.
This screenshot presents a detailed breakdown of the system's processing workflow. It illustrates how each vehicle and license plate is detected, recognized, and processed step by step.
The database view provides a centralized interface for managing recognized license plate information.
The data labeling interface enables users to review recognition results and label them as either correct or incorrect. This feedback helps improve the system’s accuracy over time by refining the underlying models.
The dashboard interface allows users to review and summarize the recognition system's accuracy after data labeling. Note that, it displays only approved data.