Hệ thống phát hiện và theo dõi người đeo khẩu trang theo thời gian sử dụng YOLO và ByteTrack
- README.md
- Giới thiệu đề tài
- Hướng dẫn cài đặt & chạy hệ thống
- Mô tả cấu trúc project
- requirements.txt
- Danh sách thư viện cần cài
- Cài bằng:
- pip install -r requirements.txt
- .gitignore
- Bỏ qua file không cần push (dataset lớn, cache, log…)
- configs/
- config.py
- Chứa tham số hệ thống:
- ALERT_TIME = 30
- CONFIDENCE_THRESHOLD = 0.5
- Chứa tham số hệ thống:
- config.py
- tracker.yaml
- Cấu hình cho ByteTrack:
- ngưỡng tracking
- IOU threshold
- buffer size
- Cấu hình cho ByteTrack:
- data/
- raw/
- Dữ liệu gốc:
- video quay
- ảnh chưa xử lý
- Dữ liệu gốc:
- processed/
- Dữ liệu đã tiền xử lý:
- resize
- clean
- chuẩn hóa
- Dữ liệu đã tiền xử lý:
- images/
- Ảnh dùng để train YOLO
- images/train/ → ảnh train
- images/val/ → ảnh validation
- Ảnh dùng để train YOLO
- labels/
- Nhãn tương ứng với ảnh
- labels/train/ → label train
- labels/val/ → label val
- Nhãn tương ứng với ảnh
- dataset.yaml
- File config dataset cho YOLO:
-
train: images/train
-
val: images/val
-
names:
- 0: mask
- 1: no_mask
-
- File config dataset cho YOLO:
- raw/
- scripts/
- extract_frames.py
- Cắt video → ảnh
- preprocess.py
- Resize, normalize ảnh
- split_dataset.py
- Chia train / validation
- extract_frames.py
- models/
- weights/
- Chứa model đã train:
- best.pt
- Chứa model đã train:
- train_logs/
- Log quá trình train:
- loss
- accuracy
- biểu đồ
- Log quá trình train:
- weights/
- src/
- 🔹 detection/ (Quốc Trường)
- yolo_detector.py
- Load model YOLO
- Detect mask / no_mask
- Output: -bounding box -class
- 🔹 tracking/ (Kim Ngân – CORE)
- tracker.py
- Tracking bằng ByteTrack
- Gán ID cho từng người
- 🔹 timer/ (Kim Ngân)
- timer.py
- Đếm thời gian theo từng ID
- Reset khi mất tracking
- 🔹 alert/ (Duy Hưng)
- alert.py
- Xử lý cảnh báo:
- 30s → alert
- hiển thị text / âm thanh
- alert.py
- 🔹 visualization/ (Duy Hưng)
- draw.py
- Vẽ:
- bounding box
- ID
- timer
- alert
- Vẽ:
- draw.py
- 🔹 main.py ⭐
- File chạy chính của hệ thống
- Kết nối toàn bộ:
- YOLO → Tracking → Timer → Alert → Hiển thị
- demo/
- input_videos/
- Video đầu vào để test
- output_videos/
- Video sau khi detect + tracking
- demo_app.py
- Chạy demo:
- OpenCV hoặc Streamlit
- Chạy demo:
- input_videos/
- evaluation/
- metrics.py
- Tính:
- Precision
- Recall
- mAP
- Tính:
- confusion_matrix.py
- Vẽ confusion matrix
- results/
- Lưu:
- bảng kết quả
- biểu đồ
- metrics.py
- notebooks/
- data_analysis.ipynb( (Hồng Ngọc) -Phân tích dữ liệu
- training.ipynb( Quốc Trường) -Train thử model 📄 10. reports/ – Báo cáo
- figures: chứa hình ảnh
- bib: chứa nguồn tham khảo
- .tex: code latex