Trong đề tài này, mình xây dựng các mô hình Object Detection tiên tiến như Yolov5, Efficientdet-Lite3 và so sánh với mô hình Yolov3-tiny được tác giả xây dựng trong bài báo này. Sau đó, mình sử dụng Flask-SocketIO và OpenSSL để xây dựng Website cho người dùng sử dụng chức năng phát hiện người đeo/không đeo khẩu trang qua Camera trong thời gian thực. Cuối cùng, mình đóng gói server bằng docker để dễ dàng triển khai ứng trên máy mới.
Các thư viện sử dụng
Yêu cầu (chạy trên CPU)
- Docker Engine: 20.10.17
- Ubuntu: 20.04 (Thêm WSL2 nếu cài trên Window)
Yêu cầu thêm (nếu chạy trên GPU)
Run
docker pull liemkg1234/fmdetection:mytag
docker run -d -p 5000:5000 liemkg1234/fmdetection:mytag (CPU)
docker run --gpus all -d -p 5000:5000 --ulimit memlock=-1 --ulimit stack=67108864 liemkg1234/fmdetection:mytag (GPU)
https://(Your IPv4 Address):5000
Môi trường
- Google Colaboratory
- Pycharm
- Python 3.9.2
- CUDA Version: 11.2
Run demo
git clone https://github.com/liemkg1234/Websocket_FaceMaskDetection
cd Websocket_FaceMaskDetection
pip install -r requirements.txt
python app.py
- Moxa3K: Gồm 3000 hình ảnh được chia tỷ lệ Train/Validation/Test là 2400/400/200
- Face Mask Detection: Gồm 853 hình ảnh được chia tỷ lệ Train/Validation/Test là 600/200/53
Các thông số chung:
- Img_size: 416x416
- Batch_size: 16
- Epochs: 100
Moxa3k
Model | Size (MB) | [email protected] (%) | AP@[0.5:0.05:0.95] (%) | ||
---|---|---|---|---|---|
All | No_mask | Mask | |||
Yolov3-tiny | 33.2 | 56.3 | 38.8 | 72.6 | _ |
Yolov5s | 13.6 | 73.1 | 59.4 | 86.8 | 30.9 |
Yolov5x | 165.0 | 71.1 | 57.9 | 84.3 | 30.3 |
EfficientDet-Lite3 | 11.2 | 67.9 | _ | _ | 26.5 |
Face Mask Detection
Model | Size (MB) | [email protected] (%) | AP@[0.5:0.05:0.95] (%) | ||
---|---|---|---|---|---|
All | No_mask | Mask | |||
Yolov3-tiny | 33.2 | 72.6 | 62.3 | 82.8 | _ |
Yolov5s | 13.6 | 84.9 | 79.5 | 90.3 | 47.8 |
Yolov5x | 165.0 | 82.5 | 75.5 | 89.5 | 48.1 |
EfficientDet-Lite3 | 11.2 | 82.1 | _ | _ | 53.7 |
https://www.youtube.com/watch?v=76KhB_ZdmHE
Email: [email protected]