Update README.md
Browse files
README.md
CHANGED
@@ -15,4 +15,75 @@ tags:
|
|
15 |
- self-driving
|
16 |
new_version: yasirfaizahmed/license-plate-object-detection
|
17 |
library_name: ultralytics
|
18 |
-
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
- self-driving
|
16 |
new_version: yasirfaizahmed/license-plate-object-detection
|
17 |
library_name: ultralytics
|
18 |
+
---
|
19 |
+
|
20 |
+
|
21 |
+
---
|
22 |
+
|
23 |
+
|
24 |
+
# YOLOv8 License Plate Detection
|
25 |
+
This project uses the **YOLOv8** object detection model to detect license plates. The dataset used is **Keremberke's License Plate Object Detection** , and the model is trained using the **Ultralytics YOLOv8 framework** .
|
26 |
+
## Installation
|
27 |
+
|
28 |
+
Ensure you have the required dependencies installed:
|
29 |
+
|
30 |
+
|
31 |
+
```bash
|
32 |
+
pip install datasets ultralytics opencv-python numpy pandas matplotlib
|
33 |
+
```
|
34 |
+
|
35 |
+
## Dataset
|
36 |
+
The dataset is loaded from Hugging Face's `datasets` library:
|
37 |
+
|
38 |
+
```python
|
39 |
+
from datasets import load_dataset
|
40 |
+
ds = load_dataset("keremberke/license-plate-object-detection", "full")
|
41 |
+
```
|
42 |
+
|
43 |
+
The dataset is split into:
|
44 |
+
|
45 |
+
- **Training Set**
|
46 |
+
|
47 |
+
- **Validation Set**
|
48 |
+
|
49 |
+
- **Test Set**
|
50 |
+
|
51 |
+
## Data Preprocessing
|
52 |
+
|
53 |
+
- Images are extracted from the dataset and saved locally.
|
54 |
+
|
55 |
+
- Bounding box annotations are converted into **YOLO format** (normalized coordinates).
|
56 |
+
|
57 |
+
- The dataset is structured into:
|
58 |
+
|
59 |
+
```kotlin
|
60 |
+
dataset/
|
61 |
+
βββ images/
|
62 |
+
β βββ train/
|
63 |
+
β βββ val/
|
64 |
+
βββ labels/
|
65 |
+
β βββ train/
|
66 |
+
β βββ val/
|
67 |
+
```
|
68 |
+
|
69 |
+
## Model Training
|
70 |
+
A pre-trained **YOLOv8** model (`yolov8n.pt`) is fine-tuned on the dataset:
|
71 |
+
|
72 |
+
```python
|
73 |
+
from ultralytics import YOLO
|
74 |
+
|
75 |
+
model = YOLO('yolov8n.pt') # Load a small YOLOv8 model
|
76 |
+
results = model.train(data="dataset.yaml", epochs=75, imgsz=640, batch=16)
|
77 |
+
```
|
78 |
+
|
79 |
+
## Training Configuration
|
80 |
+
|
81 |
+
- **Epochs** : 75
|
82 |
+
|
83 |
+
- **Image Size** : 640x640
|
84 |
+
|
85 |
+
- **Batch Size** : 16
|
86 |
+
|
87 |
+
|
88 |
+
|
89 |
+
---
|