DEIMv2 Nano — License Plate Detection
Overview
Mô hình phát hiện biển số xe thời gian thực, fine-tune từ DEIMv2 Nano (backbone HGNetv2-B0, pretrained COCO) trên bộ dữ liệu License Plate Recognition của Roboflow Universe.
- Kiến trúc: DETR thời gian thực, không cần NMS khi suy luận
- Kích thước ảnh đầu vào: 640 × 640
- Hỗ trợ export ONNX / TensorRT
- Mã nguồn train, inference, export: kienkk-0808/DEIMv2-nano-custom
Model Details
|
|
| Kiến trúc |
DEIMv2 Nano (HGNetv2-B0) |
| Tác vụ |
Object detection (bounding box) |
| Khởi tạo |
Checkpoint COCO pretrained |
| Dataset |
Roboflow Universe — license-plate-recognition-rxg4e |
| Định dạng nhãn |
YOLO (class_id cx cy w h, chuẩn hóa 0–1) |
| Framework |
PyTorch 2.x |
| Giấy phép |
MIT (mã nguồn gốc: Apache-2.0) |
Performance
| Split |
Precision |
Recall |
mAP@50 |
mAP@50:95 |
| Validation |
đang cập nhật |
đang cập nhật |
đang cập nhật |
đang cập nhật |
Chỉ số được tính bằng COCO mAP qua lệnh --test-only (xem mục Evaluation).
How to use
1. Cài đặt
git clone https://github.com/kienkk-0808/DEIMv2-nano-custom.git
cd DEIMv2-nano-custom
pip install -r requirements.txt
2. Inference
python tools/inference/torch_inf.py \
-c configs/deimv2_nano_custom.yml \
-r best_stg1.pth \
-i path/to/image.jpg
3. Export ONNX
python tools/deployment/export_onnx.py \
-c configs/deimv2_nano_custom.yml \
-r best_stg1.pth \
--check --simplify
Tham số chính xác của từng script: chạy với --help.
Training
Dữ liệu. Tải dataset từ Roboflow Universe ở định dạng YOLO và sắp xếp:
mydata/
├── data.yaml
├── images/{train,val}
└── labels/{train,val}
Đặt num_classes trong configs/dataset/custom_detection.yml khớp với data.yaml.
Huấn luyện.
python train.py --data mydata/data.yaml
| Siêu tham số |
Mặc định |
| Epochs |
100 |
| Batch size |
32 |
| Learning rate |
2e-4 |
| Mixed precision (AMP) |
Bật |
| Khởi tạo |
COCO pretrained (head không khớp số lớp được bỏ qua) |
Kết quả lưu tại --output-dir: best_stg1.pth, last.pth, log.txt, summary/ (TensorBoard). Tiếp tục train với -r last.pth.
Evaluation
python train.py --data mydata/data.yaml --epochs 100 -r best_stg1.pth --test-only
Cần truyền lại --data và --epochs giống lúc train.
Applications
- Bãi đỗ xe thông minh: phát hiện biển số tại làn vào/ra
- Giám sát giao thông: trích xuất vùng biển số từ camera
- Tiền xử lý cho OCR: cắt vùng biển số để đọc ký tự ở bước sau
Limitations
- Biển số nhỏ hoặc ở xa: tăng
eval_spatial_size và Resize trong config.
- Chất lượng phụ thuộc vào dataset; điều kiện ánh sáng, góc chụp và kiểu biển số ngoài phân phối dữ liệu huấn luyện có thể giảm độ chính xác.
- Mô hình chỉ phát hiện vị trí biển số, không đọc ký tự.
- Dataset nhỏ (dưới vài trăm ảnh): giảm lr và/hoặc số epoch để tránh overfit.
Acknowledgements