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
Last synced: 6 months ago · JSON representation ·

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
Created 7 months ago · Last pushed 7 months ago
Metadata Files
Readme Contributing License Citation

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

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

  1. Cài đặt các thư viện:

bash pip install -r requirements.txt

  1. Cấu trúc thư mục:

project/ │ |──yolov5 | |── data/ │ ├── train/ │ ├── test/ │ └── valid/ │ | |── runs/ | |── data.yaml | |── GUI.py └───── README.md

  1. Huấn luyện mô hình hoặc sử dụng trọng số có sẵn để phát hiện.
  2. 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

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

utils/docker/Dockerfile docker
  • pytorch/pytorch 2.0.0-cuda11.7-cudnn8-runtime build
pyproject.toml pypi
requirements.txt pypi
  • 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