COVID tạm lắng ở Việt Nam nhưng nhiều nơi khác vẫn còn diễn biến phức tạp. Để an toàn thì cách đơn giản, hiệu quả nhất để ngăn ngừa đó là đeo khẩu trang.
Thực tế thì có nơi nhắc nhở đeo, có nơi thì không, do đó có 1 thiết bị tự động nhắc nhở sẽ giúp tỉ lệ người đeo khẩu trang cao hơn. Bài viết này chia sẻ source code viết bằng Python có thể phát hiện được người không đeo khẩu trang.
Source code viết bằng Python, sử dụng Tensorflow để phát hiện người ra vào có đeo khẩu trang hay không.
1. Nguyên lý hoạt động
Bước 1: phát hiện khuôn mặt trong ảnh
Bước này phát hiện cả khuôn mặt có đeo lẫn không đeo khẩu trang, sau đó crop lại và qua bước 2. Bước này sử dụng LBP cascade để phát hiện, phương thức này khá cũ nhưng vẫn còn hiệu quả.
Bước 2: phân loại khuôn mặt để biết có đeo khẩu trang hay không
Bước này phân loại (classification) để phát hiện khuôn mặt thuộc trường hợp nào:
- Mask: có đeo khẩu trang
- No mask: không đeo khẩu trang
- Wrong: đeo khẩu trang chừa mũi hoặc miệng
- Hand: lấy tay che khẩu trang
- Nothing: do bước 1 phát hiện nhầm vùng không có khuôn mặt
Có đeo & đeo đúng
Không đeo
Đeo sai (hở mũi)
Trong các class trên chỉ có Mask là hợp lệ, các trường hợp còn lại cần phải nhắc nhở đeo khẩu trang. Để phân loại chúng tôi sử dụng model Mobile Net để training và predict.
2. Download mã nguồn
Source code được upload lên GitHub, sau khi pull/download source code thì các bạn cần cài đặt thêm để có thể chạy được.
- Cài đặt Python 3.7.3 x64
- Cài package cần thiết bằng lệnh: pip3 install -r requirements.txt
- Chạy file FaceMaskDetector.py
Nếu thành công thì chương trình sẽ hiện lên hình ảnh từ webcam và vẽ khuôn mặt lên đó. Các bạn có thể code thêm để chương trình hoàn chỉnh hơn như phát ra âm thanh nhắc nhở, ghi nhận người không đeo khẩu trang,…
Link download: https://mega.nz/file/GMAjjQoD#zaRyK6OtmIS8bSxksXBHVilXHc2xvn65X7sh-1lM3IE
Nguồn tham khảo bài viết: https://thigiacmaytinh.com/