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.
Link demo online
https://face.viscomsolution.com/facemask/
Lưu ý: chỉ chạy tốt trên PC, chạy trên mobile sẽ giật/lag
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.
Download
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://github.com/thigiacmaytinh/DetectFacemask
trowj giup mih voi da lam den day
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
Phan cai này mình chưa làm đc
Cài package cần thiết bằng lệnh: pip3 install -r requirements.txt
mong bạn chia sẻ giúp
Hello, mình đã thêm script install_python_library.bat, chỉ cần double-click vào file đó là cài được package nhé
chào bạn , mình đã tải code về và chạy nhưng nó chỉ phát hiện được có và không đeo khẩu trang , còn đeo sai hay lấy tay che mặt nó ko phát hiện được. Bạn có thể giải đáp giúp mình được không hay là do Laptop mình không có GPU ?
Các trường hợp không phát hiện được (phát hiện nhầm) là do bộ data training không có hình của các trường hợp đó. Để có thể phát hiện đủ thì cần training lại, bổ sung thêm các trường hợp detect không chính xác.
Mình là người mới , hay nói cách khác là kẻ ăn sổi ở thì , mới học về Computer vision nên muốn tìm 1 project kiểu như này để học hỏi , mình chưa biết làm thế nào để tranning dữ liệu , cụ thể là trong bài này thì mình phải làm thế nào nhỉ? bạn có Tips nào hay hoặc có biết kênh youtube , trang web nào hướng dẫn về tranning dữ liệu thì chia sẻ giúp mình với nhé
Để training model thì dùng cái này: https://thigiacmaytinh.com/teachablemachine-cong-cu-huan-luyen-phan-loai-anh/
Sau khi training xong thì download file h5 về, thay thế file có sẵn trong code là được, chúc thành công
Cho mình hỏi, trong khung hình có nhiều người thì có detect được không bạn, độ chính xác khi detect trong khung có nhiều người có cao không bạn?
Độ chính xác không cao do đây chỉ là example thôi, muốn dùng được thực tế còn phải làm nhiều bước nữa
Mong ad trợ giúp mình với!
– Mình đã download source code
– Mình cũng đã tải về và cài đặt Python 3.7.3 x64
Nhưng khi cài package cần thiết mình đã double-click vào file install_python_library.bat thì thông báo như sau: ‘pip’ is not recognized as an internal or external command, operable program or batch file.
Mong ad hỗ trợ cho mình với, cảm ơn!
Hi bạn, sau khi cài xong Python thì restart lại máy tính nhé
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,…
Em chào anh ạ, em có đang làm project về phát hiện người không đeo khẩu trang
Anh có thể hướng dẫn em code phần nhắc nhở khi không đeo, đeo sai, thống kê số lượng người đeo, không đeo, đeo sai tại 1 khoảng thời gian nhất định không ạ?
Em cảm ơn a.
mình thì không có hướng dẫn code nên bạn chịu khó tìm hiểu thôi, học lập trình python khá nhanh chứ không hề khó
Bị lỗi phần GenerateRandomString thì sửa sao ạ?
Mong được giải đáp
Cảm ơn ạ!
Bạn bị lỗi như thế nào? Mình check trong file FaceMaskDetector.py thì hàm đó vẫn bình thường