Source code phần mềm phát hiện không đeo khẩu trang

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

14 thoughts on “Source code phần mềm phát hiện không đeo khẩu trang

  1. 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

    1. Hello, mình đã thêm script install_python_library.bat, chỉ cần double-click vào file đó là cài được package nhé

  2. 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 ?

    1. 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.

  3. 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é

    1. 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?

    2. Độ 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

  4. 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!

    1. Hi bạn, sau khi cài xong Python thì restart lại máy tính nhé

  5. 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.

    1. 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ó

    1. 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

Leave a Reply