File size: 2,676 Bytes
eccf2ca
2d21e63
 
5f18f57
 
607d20a
eccf2ca
f7c1359
2d21e63
5f18f57
 
 
 
 
2d21e63
5f18f57
 
 
 
 
2d21e63
 
5f18f57
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
---
title: PlateVision
emoji: πŸš—
colorFrom: indigo
colorTo: pink
sdk: streamlit
pinned: false
sdk_version: 1.50.0
short_description: AI-Powered License Plate Detection & Recognition from Images
---
# πŸš— PlateVision πŸ”  
### AI-Powered License Plate Detection & Recognition from Images and Videos  

---

## 🧠 Overview  

**PlateVision** is an AI-powered web app built with **Streamlit** that detects and recognizes vehicle license plates from **images** and **videos** using a **fine-tuned YOLOv8 model** and **EasyOCR**.  

It seamlessly combines **object detection** and **optical character recognition (OCR)** to deliver a simple, intuitive, and interactive platform where users can upload their media files and get annotated results in seconds β€” complete with **confidence scores** and **recognized text overlays**.  

---

## ✨ Features  

βœ… Detects license plates from both **images** and **videos**  
βœ… Extracts **license numbers** using OCR (EasyOCR)  
βœ… Displays **detection confidence** and recognized text on output  
βœ… Supports multiple formats β€” `.jpg`, `.jpeg`, `.png`, `.mp4`, `.mkv`  
βœ… Shows **real-time progress** while processing videos  
βœ… Provides a **clean Streamlit interface** for easy interaction  
βœ… Outputs processed results with bounding boxes and plate numbers drawn on frames  

---

## βš™οΈ How It Works  

1. **Upload Input File**  
   - The user uploads an image or video through the Streamlit interface.  

2. **License Plate Detection (YOLOv8)**  
   - A **custom fine-tuned YOLOv8 model** detects the position of license plates in the media.  

3. **Text Recognition (EasyOCR)**  
   - The detected plate region is passed through **EasyOCR** to read and extract the license number.  

4. **Annotation & Output**  
   - Detected plates are annotated with bounding boxes, confidence percentages, and extracted text.  
   - For videos, frames are processed sequentially and stitched back together using **MoviePy**.  

5. **Display**  
   - The processed media (image or video) is displayed directly in the Streamlit app.  

---

## 🧩 Tech Stack  

| Component | Technology / Library | Purpose |
|------------|----------------------|----------|
| 🧱 Frontend & UI | **Streamlit** | Builds the interactive web interface |
| 🧠 Object Detection | **YOLOv8 (Ultralytics)** | Detects license plate locations |
| πŸ” OCR Engine | **EasyOCR** | Recognizes alphanumeric text from plates |
| πŸŽ₯ Video Handling | **MoviePy** | Processes and reconstructs video frames |
| πŸ‘οΈ Computer Vision | **OpenCV** | Image manipulation and annotation |
| πŸ’Ύ Language | **Python 3.11+** | Development language |

---