Automatic License Plate Recognition (ALPR) system tailored for Bangladeshi vehicles.
It combines YOLOv8 for plate detection with a hybrid recognition pipeline using EfficientNetB0 and EasyOCR, supported by preprocessing and confidence-based voting mechanisms.
License plate recognition is a crucial component in traffic management, automated toll collection, parking systems, and vehicle surveillance.
Unlike English or numeric plates, Bangla license plates present unique challenges due to:
- Complex Bangla script morphology (consonants, vowels, compound characters).
- Inconsistent fonts and plate designs.
- Lighting variations, noise, and occlusion in real-world scenarios.
This project addresses these challenges through a robust, deep-learning-based pipeline.
- Input Image → Raw vehicle image.
- Detection Module → YOLOv8 detects the license plate region.
- Plate Extraction → Cropped region passed to preprocessing.
- Preprocessing Pipelines → Thresholding (Otsu, Adaptive Gaussian, Adaptive Mean).
- Dual Recognition →
- EfficientNetB0 CNN (character recognition).
- EasyOCR (end-to-end text extraction).
- Confidence-Based Voting → Final license plate prediction.
- Small variant (
yolov8s
) trained on 785 annotated images. - Achieved 99% detection accuracy.
- EfficientNetB0 trained on ~17,000 cropped character images across 29 Bangla classes.
- EasyOCR used as a complementary OCR method for robustness.
- Final results fused using confidence-based voting.
- Image Enhancement (unsharp masking, bilateral filtering).
- Grayscale & contrast adjustment (top-hat, black-hat filtering).
- Multi-thresholding (Otsu, Adaptive Gaussian, Adaptive Mean).
- Noise removal & morphological operations.
- Character segmentation & resizing (64×64).
Tested using 722 unseen vehicle images.
-
YOLOv8 Detection:
- mAP@0.5: 98.79%
- Precision: 96.13%
- Recall: 98.73%
-
EfficientNetB0 CNN:
- Character classification accuracy: 99%
- Full plate recognition: 73.84%
-
EasyOCR:
- Full plate recognition: 74.79%
-
Hybrid Ensemble (CNN + EasyOCR):
- Full plate recognition: 94.90%
-
Detection:
-
Cropping using detected bounding box:
-
Preprocessing steps for EfficientNet:
-
Contour detection and classification:
-
Preprocessing and Recongition for EasyOCR
-
Ensemble voting between EfficientNetB0 and EasyOCR
-
Final Text Extraction:
The system was trained and tested using publicly available Bangladeshi license plate datasets:
- Bangladeshi Vehicle License Plate (Kaggle)
- Bangla License Plate Dataset with Annotations
- Bangladeshi Bus & Truck Plates
- Expand dataset with more diverse conditions (rain, night, low quality).
- Adaptive preprocessing selection based on input quality.
- Transformer-based OCR to directly predict full plates (reducing segmentation dependency).
- Kaggle contributors for open datasets.
- Ultralytics YOLO & EasyOCR community.