Xây dựng hệ thống nhận diện khuôn mặt real-time từ video, sử dụng YOLOv8 để phát hiện và DeepFace để nhận diện, có giao diện GUI trực quan bằng PyQt5.
| Dev | Module | Nhiệm vụ chính |
|---|---|---|
| Hán Chí Vũ | Tiền xử lý (Preprocessing) | - Phát hiện & cắt khuôn mặt từ 500 ảnh bằng YOLOv8 - Chuẩn hóa kích thước 160x160 pixel - Lưu vào data/processed/person1/- Xử lý lỗi ảnh không hợp lệ |
| Tạ Quốc Tuấn | Trích xuất Embeddings | - Dùng DeepFace để trích xuất embeddings từ ảnh - Lưu vào person1_embeddings.npz- Viết hàm so sánh embeddings - Test độ chính xác trên mẫu nhỏ |
| Nguyễn Văn Ước | Phát hiện khuôn mặt (Detection) | - Viết hàm phát hiện mặt từ ảnh/video bằng YOLOv8 - Xử lý trường hợp khó: mặt nhỏ, nghiêng, mờ - Trả về ảnh mặt và tọa độ |
| Nguyễn Cao Nam | Nhận diện (Recognition) | - So sánh embedding đầu vào với Person 1 - Xử lý lỗi embedding không hợp lệ - Trả nhãn (Person 1/Khác) và tọa độ |
| Nguyễn Long Vũ | Xử lý video (Video Processing) | - Xử lý video real-time bằng OpenCV - Tích hợp Detection & Recognition - Đếm số lần xuất hiện, theo dõi tọa độ - Lưu kết quả CSV |
| Dev 6 | Giao diện (GUI) | - Xây dựng GUI bằng PyQt5 - Tích hợp video, nhãn, nút chức năng - Hiển thị kết quả nhận diện trong thời gian thực |
| Mối quan hệ | Nội dung phối hợp |
|---|---|
| Dev 1 ➡ Dev 2 | Cung cấp ảnh đã cắt khuôn mặt để trích xuất |
| Dev 2 ➡ Dev 4 | Cung cấp embeddings để so sánh |
| Dev 3 ➡ Dev 4,5 | Cung cấp hàm phát hiện khuôn mặt |
| Dev 4 ➡ Dev 5,6 | Cung cấp nhãn & tọa độ để xử lý video và GUI |
| Dev 5 ↔ Dev 6 | Tích hợp GUI với luồng video và phân tích kết quả |
| Mốc thời gian | Nội dung |
|---|---|
| Ngày 1 | Phân công nhóm, thiết lập repo, chia module, mỗi Dev setup môi trường riêng |
| Ngày 2 | - Hoàn thành từng module cơ bản - Chuyển dữ liệu giữa các Dev - Mock dữ liệu nếu cần thiết - Họp nhóm cuối ngày 2 để cập nhật tiến độ & fix lỗi phối hợp |
| Ngày 3 | Tích hợp toàn bộ hệ thống, test trên video, fix lỗi cuối cùng, hoàn thiện GUI & báo cáo |
| Dev | Kết quả |
|---|---|
| Dev 1 | Thư mục dataset/person1/ với ảnh 160x160 |
| Dev 2 | File person1_embeddings.npz và hàm so sánh |
| Dev 3 | Hàm phát hiện khuôn mặt |
| Dev 4 | Hàm nhận diện danh tính |
| Dev 5 | Module xử lý video sơ bộ |
| Dev 6 | Giao diện cơ bản hiển thị video, khung, nhãn |
python src/preprocessing/preprocess.py --input data/raw/person1/ --output data/processed/person1/
python src/embeddings/extract_embeddings.py --input data/processed/person1/ --output data/embeddings/person1_embeddings.npz
- YOLOv8 (phát hiện khuôn mặt)
- DeepFace (embedding & nhận diện)
- OpenCV (xử lý ảnh/video)
- PyQt5 (giao diện)
- Python 3.9