Một dự án ví dụ nhỏ cho các bài toán nằm trong Thành phố thông minh về Giám sát giao thông thông minh
- Python 3.12: Tải và cài đặt từ https://www.python.org/downloads/
- Tạo virtual environment (khuyến nghị):
python3.12 -m venv myenv source myenv/bin/activate # Linux/Mac myenv\Scripts\activate # Windows PowerShell
pip install --upgrade pip
pip install ultralytics opencv-python numpy(Đảm bảo phiên bản OpenCV và NumPy tương thích với Python 3.12.)
project_root/
├── hi2.mp4 # video đầu vào (hoặc đổi tên khác)
├── best_traffic_nano_yolo.pt # model detect đèn giao thông
├── yolov8n.pt # model COCO để detect ôtô
├── vi_pham/ # (tự động tạo) lưu ảnh vi phạm
└── traffic_light_violation.py # script chính
- Chỉnh biến
VIDEO_SOURCEtrongtraffic_light_violation.pythành đường dẫn đến video (ví dụ:r'D:\Source\hi2.mp4'). - Chạy script:
python traffic_light_violation.py
- Khi cửa sổ
Select Linemở lên:- Nhấn chuột trái để chọn 2 điểm xác định vạch kiểm soát.
- Nhấn
sđể xác nhận hoặcqđể hủy.
- Màn hình
Tracking & Violationsẽ hiển thị:- Bounding box ôtô (xanh dương) và box đèn giao thông (đỏ/xanh/vàng).
- Chữ
Light: <state>(trạng thái đèn) tại góc trên trái. - Số lượng vi phạm (
Violations: N). - Khi ôtô vượt vạch lúc đèn đỏ: box ôtô chuyển thành đỏ, chữ
VI PHAMxuất hiện trong 1 giây và ảnh crop được lưu vàovi_pham/.
- Nhấn
qđể thoát.
- Ngưỡng: thay đổi
conf,ioukhi gọicar_model.track(...)vàtl_model(...). - Logic vi phạm: có thể thay
light_label=='red'thành điều kiện khác (ví dụ chỉyellowhoặcoff). - Vùng detect đèn: cắt ROI để tăng tốc độ nếu cần.
