This project focuses on developing a robust number plate recognition system capable of detecting and recognizing "fancy" number plates, which include number plates with different fonts sizes and languages in a single image. The project components are designed to work together as an integrated system, encompassing both number plate detection and recognition. In the first phase, a custom dataset is curated, consisting of approximately 3000 images collected. from various sources and manually labeled.
Our Grand Collection of Dataset: https://drive.google.com/drive/folders/195oOIbT3DTY7M3rYSPOF-i6mzdiqGavD?usp=sharing
The training of the Yolov8 model is performed using Google Colab, as it provides free GPU T4 for processing. which really helps in reducing the training time. Below is the link to the ipynb file used for training the model.
Training code (ipynb file): https://drive.google.com/file/d/173VmMsJE6cUL4oJjTwjR8nayL47s6Vf1/view?usp=sharing
The YOLOv8 object detection model is trained on this dataset using Google Colab. The model is specifically trained to handle the nuances of fancy number plates, including variations in font. sizes and languages. Preprocessing techniques, such as grayscale scaling and image contouring, are employed with the aid of OpenCV to improve the detection accuracy. After 100 epochs of training, The model achieves an impressive accuracy of 80% and is validated using separate training and testing. datasets. The trained model is then employed to detect number plates in video frames from sources such as YouTube videos, webcam feeds, and CCTV footage.
The second phase of the project focuses on number plate recognition. The integration of EasyOCR combined with OpenCV, allows for accurate text extraction from the detected number plates. Preprocessing steps, including grayscale conversion, are implemented to optimize the text. extraction process. Moreover, additional libraries such as Tesseract, Pytesseract, and OpenALPR are utilized to further refine the recognition process and enhance the accuracy of character. extraction from the fancy number plates. The recognized text, accompanied by confidence scores, is displayed, and bounding boxes are overlaid on the corresponding images.
Python code (ipynb file) for the accurate and efficient recognition of the characters with different designs and fonts and style can be accessed using the link: https://drive.google.com/file/d/1aJ-tBY15iENVxpEH1YdFgW4eHYrgoN93/view?usp=sharing
This project offers a comprehensive solution for detecting and recognizing fancy numbers. plates with varying font sizes and languages in a single image. The seamless integration of YOLOv8 for detection and EasyOCR, along with other supporting libraries, demonstrate an effective approach to handle the intricacies associated with such challenging scenarios.
To execute this model, perform the following steps:
link- https://drive.google.com/file/d/1RcztMZuoEyDXHxizxFPe1Rj5pmfx4Q94/view?usp=sharing
To execute the model with a webcam, use the following command:
python predict.py model=bestn.pt source=0
To process a video footage, use the following command:
python predict.py model=bestn.pt source="test video.mp4"