The aim of this project is to detect license plate given an input and recognise the plate number using deep learning.
The data used for training and testing in this project are collected from video footage of a car dashcam.
The dataset is from a private server of NeounAI, which is not open source.
In this section, I will give a brief description of how the data is prepared to be used for training and testing.
Use any free frame extraction software to extract frames from your dashcam footage. Either capture a frame every second or extract a total number of frames from a single footage.
The software that I used to extract frames from the dataset is Free Video to JPG Converter from DVDVideoSoft.
Data Annotation using labelImg
Extracted frames with visible license plate(s) were then filtered out and annotated using labelImg in PascalVOC format.
A total of 382 frames were annotated and to be used for training the deep learning model (Darkflow).
Model Training using Darkflow
I used Darkflow to train the license-plate detection model. The model is a YOLOv2 model (You Only Look Once).
I used a pretrained model from Theophilebuyssens.
I fine-tuned the model by training the model again with our own self-annotated dataset.
The notebook can be found in the notebook directory.
The training configuration parameters are as followed:
- Batch size: 8
- Learning rate: 0.00001
- Epoch number: 100
The license-plate numbers recognition is done using the pytesseract library from PyPI.
I fed the model with 10 test images and the bounding boxes detected are compared with the ground truths to compute the mean average precision (mAP) score.
The mAP score that I achieve is 76.8% with IoU of 0.3.