# đźš— Egyptian License Plate Detection & OCR System
A complete system for detecting and reading Egyptian license plates using YOLOv11 for detection and PaddleOCR for Arabic text recognition.
## Project Structure
```
Egyptian-Plate-OCR/
├── train_detection.ipynb # Training notebook (download dataset + train)
├── inference.ipynb # Test on images/video
├── detect.py # CLI inference script
├── plate_ocr.py # OCR utilities
├── requirements.txt # Dependencies
├── data/ # Dataset (after download)
├── test_images/ # Test images/videos
└── runs/ # Training runs
```
## Quick Start
### 1. Install Dependencies
```bash
cd C:\Users\Admin\Egyptian-Plate-OCR
pip install -r requirements.txt
```
### 2. Get Dataset
1. Create free account at
app.roboflow.com
2. Go to:
app.roboflow.com
3. Click "Download" → select "YOLOv11" format
4. Copy your Roboflow API key
### 3. Train Model
Open `train_detection.ipynb` in VS Code:
- Add your Roboflow API key
- Run all cells
- Best model saved to `best.pt`
### 4. Run Inference
```bash
# Single image
python detect.py --source test_images/test.jpg
# Video
python detect.py --source test_images/test.mp4
```
Or use `inference.ipynb` for interactive testing.
## Egyptian Plate Format
Egyptian plates typically contain:
- **2-3 digits** (Arabic numerals: ١٢٣)
- **Arabic letter** (governor code)
- **2-3 digits** (serial number)
Example: `١٢٣ هـ ٤٥٦` → `123H456`
## Model Performance
| Metric | Score |
|-----------|--------|
| Precision | 99.94% |
| Recall | 99.49% |
| mAP@50 | 99.50% |
## Dependencies
- Ultralytics YOLOv11
- PaddleOCR (Arabic support)
- OpenCV
- NumPy
- Matplotlib