Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Bài Tập Lớn về AI + Yolov8 phát hiện người vi phạm tham gia giao thông Sinh Viên Nguyễn Quốc Huy-MSV:1571020117

Notifications You must be signed in to change notification settings

nqhuizz03/BTL-TPTM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HỆ THỐNG PHÁT HIỆN GIAN LẬN TRONG THI CỬ BẰNG TRÍ TUỆ NHÂN TẠO

DaiNam University Logo

AIoTLab Khoa CNTT Đại học Đại Nam

🚦 Hệ Thống Giám Sát An Toàn Giao Thông Bằng YOLOv8

🎯 Mục tiêu đề tài

Phát triển hệ thống giám sát người điều khiển xe máy có đội mũ bảo hiểm hay không, phát hiện vi phạm chở quá số người trên xe máy. Hệ thống có thể:

  • Phân tích ảnh, video hoặc stream từ ESP32-CAM.
  • Ghi log vi phạm vào file CSV.
  • Lưu ảnh người vi phạm.
  • Hiển thị thống kê và số liệu theo thời gian thực.

🛠️ Công nghệ sử dụng

Thành phần Công nghệ
Nhận diện YOLOv8
Web server Flask (Python)
Stream video ESP32-CAM hoặc video upload
Giao diện HTML, Bootstrap, JavaScript
Log & Thống kê CSV + Pandas

📂 Cấu trúc thư mục

├── app.py                 # Flask app chính
├── best.pt               # Mô hình YOLOv8 đã huấn luyện
├── templates/            # HTML frontend
│   ├── index.html
│   ├── stream.html
│   ├── video.html
│   └── stats.html
├── static/
│   ├── uploads/          # Ảnh/video gốc
│   └── outputs/          # Ảnh/video đã xử lý
├── logs/
│   ├── violations.csv    # Log vi phạm
│   └── images/           # Ảnh người vi phạm (crop từ khung hình)
└── requirements.txt      # Danh sách thư viện

▶️ Cách chạy hệ thống

1. Tạo môi trường ảo (khuyến khích)

python -m venv venv
venv\Scripts\activate   # Windows
source venv/bin/activate  # Linux/macOS

2. Cài thư viện cần thiết

pip install -r requirements.txt

3. Chạy server Flask

python app.py

Truy cập tại: http://127.0.0.1:5000


⚙️ Các chức năng chính

Chức năng URL Mô tả
Trang chính / Giao diện chính upload ảnh/video
Upload & xử lý ảnh/video /upload Xử lý bằng YOLOv8
Xem ảnh kết quả /image/<filename> Hiển thị ảnh đã nhận diện
Xem video kết quả /video/<filename> Hiển thị video đã nhận diện
Stream trực tiếp (ESP32-CAM) /stream/video_feed Nhận ảnh từ camera
Thống kê vi phạm /stats/stats_json Biểu đồ số lượng theo ngày
Thống kê thời gian thực /stats_stream Cập nhật real-time

📌 Ghi log vi phạm

  • Khi phát hiện người không đội mũ bảo hiểm (class_id == 1) hoặc vi phạm, hệ thống:

    • Lưu ảnh crop phần người vi phạm vào logs/images/

    • Ghi vào logs/violations.csv gồm:

      • time: thời gian vi phạm
      • violation: loại vi phạm ("No Helmet", "With Helmet")
      • image: tên ảnh crop

🧠 Huấn luyện mô hình YOLOv8

Bạn có thể tự huấn luyện mô hình best.pt với dữ liệu nhãn đội mũ bảo hiểm:

yolo task=detect mode=train model=yolov8n.pt data=data.yaml epochs=100 imgsz=640

📊 Giao diện

  • index.html: Giao diện chính để upload ảnh/video
  • stream.html: Hiển thị camera ESP32-CAM
  • stats.html: Biểu đồ thống kê số lượng người vi phạm

📷 Ví dụ

demo1 demo2


📌 Yêu cầu

  • Python 3.8+
  • OpenCV, Flask, Ultralytics, Pandas

About

Bài Tập Lớn về AI + Yolov8 phát hiện người vi phạm tham gia giao thông Sinh Viên Nguyễn Quốc Huy-MSV:1571020117

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published