traffic-sign-recognition-and-classification
Dự án giúp tài xế nhận biết kịp thời các yêu cầu và hạn chế trên đường, tích hợp vào ô tô tự lái, hệ thống giám sát giao thông theo thời gian thực. Dự án sử sử dụng mô hình YOLOv5 với tốc độ xử lý cao, độ chính xác cao và lĩnh hoạt dễ dàng triển khai trên nhiều nền tảng khác nhau để nhận diện và phân loại biển báo giao thông.
https://github.com/tienhung198/traffic-sign-recognition-and-classification
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (3.9%) to scientific vocabulary
Repository
Dự án giúp tài xế nhận biết kịp thời các yêu cầu và hạn chế trên đường, tích hợp vào ô tô tự lái, hệ thống giám sát giao thông theo thời gian thực. Dự án sử sử dụng mô hình YOLOv5 với tốc độ xử lý cao, độ chính xác cao và lĩnh hoạt dễ dàng triển khai trên nhiều nền tảng khác nhau để nhận diện và phân loại biển báo giao thông.
Basic Info
- Host: GitHub
- Owner: tienhung198
- License: agpl-3.0
- Language: Python
- Default Branch: main
- Size: 13 MB
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
🚦 Nhận Diện Biển Báo Giao Thông với YOLOv5
Dự án này sử dụng mô hình YOLOv5 để nhận diện các loại biển báo giao thông trong ảnh và video, phục vụ cho các ứng dụng hỗ trợ giao thông thông minh.
📂 Mục lục
- Giới thiệu
- Thu thập và xử lý dữ liệu
- Cấu hình huấn luyện
- Huấn luyện mô hình
- Phát hiện và đánh giá
- Giao diện người dùng (GUI)
- Kết quả
- Hướng dẫn chạy demo
📌 Giới thiệu
Mục tiêu của dự án là phát triển một mô hình có thể nhận diện chính xác các biển báo giao thông trong nhiều điều kiện khác nhau (ánh sáng, thời tiết, góc chụp), ứng dụng trong hệ thống giao thông thông minh.
📸 Thu thập và xử lý dữ liệu
- Nguồn dữ liệu: ảnh biển báo tự chụp, internet (Google, Kanggle...).
- Tiền xử lý:
- Resize ảnh về kích thước chuẩn (640x640).
- Chuẩn hóa pixel về [0, 1].
- Gắn nhãn theo định dạng YOLO (bounding box và class).
- Phân chia dữ liệu:
- Train: 80%
- Validation: 10%
- Test: 10%
⚙️ Cấu hình huấn luyện
- Mô hình:
YOLOv5s - Tham số:
- Epochs: 50
- Batch size: 4
- Learning rate: 0.001
- Công cụ: Sử dụng GPU và framework PyTorch
🧠 Huấn luyện mô hình
Sử dụng lệnh sau để huấn luyện:
bash
python train.py --img 640 --batch 4 --epochs 50 \
--data data.yaml --weights yolov5s.pt --device 0
🔍 Phát hiện và đánh giá
- Dự đoán ảnh:
bash
python detect.py --source data/trafficsign/test/images \
--weights runs/train/exp3/weights/last.pt --data data.yaml --conf 0.7
- Dự đoán video:
bash
python detect.py --source traffic-sign-to-test.mp4 \
--weights runs/train/exp3/weights/last.pt --data data.yaml
- Đánh giá hiệu suất:
bash
python val.py --weights runs/train/exp3/weights/last.pt \
--data data.yaml --verbose
Các chỉ số quan trọng: Precision, Recall, mAP50, Confusion Matrix.
🖥️ Giao diện người dùng (GUI)
Giao diện đơn giản giúp người dùng chọn ảnh và hiển thị kết quả nhận diện:
- Chạy GUI:
bash
python GUI.py
- Tính năng:
- Upload ảnh
- Nhận dạng đối tượng
- Hiển thị ảnh và kết quả ngay trên giao diện
📊 Kết quả
- Mô hình hoạt động tốt với các ảnh rõ nét, biển báo đơn lẻ.
- Hiệu suất giảm với ảnh có nhiều biển báo chồng lấp, nhiễu hoặc ánh sáng yếu.
- Các biểu đồ theo dõi: loss, precision, recall, mAP...
▶️ Hướng dẫn chạy demo
- Cài đặt các thư viện:
bash
pip install -r requirements.txt
- Cấu trúc thư mục:
project/
│
|──yolov5
| |── data/
│ ├── train/
│ ├── test/
│ └── valid/
│
| |── runs/
| |── data.yaml
| |── GUI.py
└───── README.md
- Huấn luyện mô hình hoặc sử dụng trọng số có sẵn để phát hiện.
- Chạy GUI.py để thử nghiệm nhận diện ảnh.
📌 Lưu ý: Đảm bảo bạn có GPU để tăng tốc độ huấn luyện. Mô hình YOLOv5 được clone từ https://github.com/ultralytics/yolov5.
📬 Liên hệ
Email: hungtvt218@gmail.com
Owner
- Login: tienhung198
- Kind: user
- Repositories: 1
- Profile: https://github.com/tienhung198
Citation (CITATION.cff)
cff-version: 1.2.0
preferred-citation:
type: software
message: If you use YOLOv5, please cite it as below.
authors:
- family-names: Jocher
given-names: Glenn
orcid: "https://orcid.org/0000-0001-5950-6979"
title: "YOLOv5 by Ultralytics"
version: 7.0
doi: 10.5281/zenodo.3908559
date-released: 2020-5-29
license: AGPL-3.0
url: "https://github.com/ultralytics/yolov5"
GitHub Events
Total
- Push event: 2
Last Year
- Push event: 2
Dependencies
- pytorch/pytorch 2.0.0-cuda11.7-cudnn8-runtime build
- PyYAML >=5.3.1
- gitpython >=3.1.30
- matplotlib >=3.3
- numpy >=1.23.5
- opencv-python >=4.1.1
- pandas >=1.1.4
- pillow >=10.3.0
- psutil *
- requests >=2.23.0
- scipy >=1.4.1
- seaborn >=0.11.0
- setuptools >=65.5.1
- thop >=0.1.1
- torchvision >=0.9.0
- tqdm >=4.64.0
- ultralytics >=8.0.232
- wheel >=0.38.0