|
--- |
|
license: mit |
|
datasets: |
|
- 0xnu/uk-licence-plate |
|
tags: |
|
- uk |
|
- united-kingdom |
|
- transport |
|
- transportation |
|
- computer-vision |
|
- object-detection |
|
- license-plate-recognition |
|
- ocr |
|
language: |
|
- en |
|
--- |
|
|
|
## UKLPR: United Kingdom License Plate Recognition |
|
|
|
UKLPR is a computer-vision model architecture purpose-built for detecting, reading, and recognizing United Kingdom license plates. It is optimized for speed and accuracy across diverse UK plate formats. |
|
|
|
### Model Performance |
|
|
|
- **Detection Rate**: 100.0% |
|
- **Text Extraction Rate**: 100.0% |
|
- **Processing Speed**: 8.1 FPS |
|
- **Model Size**: YOLOv8 Nano (~12.3MB) |
|
|
|
### Supported Languages |
|
|
|
- English (en) |
|
|
|
### Quick Start |
|
|
|
#### Installation |
|
|
|
```python |
|
pip install ultralytics easyocr opencv-python pillow torch torchvision huggingface_hub |
|
``` |
|
|
|
#### Usage |
|
|
|
```python |
|
import cv2 |
|
import numpy as np |
|
from ultralytics import YOLO |
|
import easyocr |
|
from PIL import Image |
|
from huggingface_hub import hf_hub_download |
|
import warnings |
|
|
|
# Suppress warnings |
|
warnings.filterwarnings('ignore') |
|
|
|
# Download models from HuggingFace |
|
print("Downloading model from HuggingFace...") |
|
model_path = hf_hub_download(repo_id="0xnu/uk-license-plate-recognition", filename="model.onnx") |
|
config_path = hf_hub_download(repo_id="0xnu/uk-license-plate-recognition", filename="config.json") |
|
|
|
# Load models with explicit task specification |
|
yolo_model = YOLO(model_path, task='detect') |
|
ocr_reader = easyocr.Reader(['en'], gpu=False, verbose=False) |
|
|
|
# Process image |
|
def recognize_license_plate(image_path): |
|
# Load image |
|
image = cv2.imread(image_path) |
|
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) |
|
|
|
# Detect license plates |
|
results = yolo_model(image_rgb, conf=0.5, verbose=False) |
|
|
|
plates = [] |
|
for result in results: |
|
boxes = result.boxes |
|
if boxes is not None: |
|
for box in boxes: |
|
# Get coordinates |
|
x1, y1, x2, y2 = box.xyxy[0].cpu().numpy() |
|
|
|
# Crop plate |
|
plate_crop = image_rgb[int(y1):int(y2), int(x1):int(x2)] |
|
|
|
# Extract text |
|
ocr_results = ocr_reader.readtext(plate_crop) |
|
if ocr_results: |
|
text = ocr_results[0][1] |
|
confidence = float(ocr_results[0][2]) # Convert to native Python float |
|
plates.append({'text': text, 'confidence': confidence}) |
|
|
|
return plates |
|
|
|
# Usage Example |
|
results = recognize_license_plate('sample_car_with_license.jpeg') |
|
print(results) |
|
``` |
|
|
|
### Model Architecture |
|
|
|
#### Detection Model (YOLOv8n) |
|
- **Architecture**: YOLOv8 Nano |
|
- **Parameters**: ~3M |
|
- **Input Size**: 640x640 pixels |
|
- **Output**: Bounding boxes for license plates |
|
|
|
#### OCR Model (EasyOCR) |
|
- **Engine**: Deep learning-based OCR |
|
- **Languages**: English |
|
- **Character Set**: Alphanumeric + common symbols |
|
|
|
### Training Details |
|
|
|
- **Dataset**: UK License Plate Dataset ([0xnu/uk-licence-plate](https://huggingface.co/datasets/0xnu/uk-licence-plate)) |
|
- **Training Epochs**: 10 |
|
- **Batch Size**: 16 |
|
- **Image Size**: 640x640 |
|
- **Optimizer**: AdamW |
|
- **Framework**: Ultralytics YOLOv8 |
|
|
|
### Use Cases |
|
|
|
- Traffic monitoring systems |
|
- Automated parking management |
|
- Law enforcement applications |
|
- Toll collection systems |
|
- Vehicle access control |
|
|
|
### Limitations |
|
|
|
- Optimized for United Kingdom license plate formats |
|
- Performance may vary with extreme weather conditions |
|
- Requires good image quality for optimal text recognition |
|
- Real-time performance depends on hardware capabilities |
|
|
|
### License |
|
|
|
This project is licensed under the [Modified MIT License](./LICENSE). |
|
|
|
### Citation |
|
|
|
If you use this model in your research or product, please cite: |
|
|
|
```bibtex |
|
@misc{uklpr2025, |
|
title={UKLPR: United Kingdom License Plate Recognition}, |
|
author={Finbarrs Oketunji}, |
|
year={2025}, |
|
publisher={Hugging Face}, |
|
howpublished={\url{https://huggingface.co/0xnu/uk-license-plate-recognition}} |
|
} |
|
``` |
|
|
|
### Copyright |
|
|
|
Copyright (C) 2025 Finbarrs Oketunji. All Rights Reserved. |