Skip to content
Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Close

Search

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Close

Search

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Computer Vision

Chung tay chống COVID-19, làm thử hệ thống phát hiện khẩu trang và nhắc nhở nếu không đeo bằng OpenCV

By Chủ tiệm Mì
March 11, 2020 3 Min Read
6

Tình hình là mùa dịch COVID 19 quá căng thẳng nên hôm nay mình xin giới thiệu cùng các bạn cách xây dựng một hệ thống phát hiện đeo khẩu trang và nhắc nhở nếu không đeo bằng OpenCV nhé.

Hệ thống của chúng ta sẽ giám sát quá camera, kiểm tra xem người dùng có đeo khẩu trang hay không để thông báo lên màn hình. Trong thực tế chúng ta có thể kết nối ra hệ thống loa để cảnh báo hoặc thông báo cho lực lượng bảo vệ để yêu cầu đeo khẩu trang trước khi vào tòa nhà.

phát hiện đeo khẩu trang

Đại ý là như vậy, bây giờ bắt tay nào!

Phần 1- Cách làm bài toán

Với bài này có nhièu cách để làm và mỗi cách có ưu nhược điểm khác nhau. Mình không có điều kiện thử đủ các cách nên các bạn có thể thử xem như nào nhé.

Các cách triển khai gồm:

  • Cách 1: Phát hiện khuôn mặt, sau đó detect khẩu trang trên mặt (bằng SSD, YOLO…). Nếu không có khẩu trang thì cảnh báo. . Ưu điểm là độ chính xác khác cao nhưng nhược điểm là cần phải có data về face mask để train
  • Cách 2: Phát hiện khuôn mặt sau đó sử dụng landmark để detect mouth area. Sau đó tính toán average saturation và compare với 1 threshold do chúng ta đặt ra để check xem có đeo khẩu trang hay không. Cách náy có ưu điểm là không cần data, tốc độ chạy cao hơn cách 1 nhưng đôi khi do điều kiện ánh sáng thay đổi thì có thể không detect chuẩn.
facial landmark
Nguồn: pyimagesearch.com

Trong bài này mình chọn Cách 2 vì lý do rất đơn giản….mình chưa có data face mask để train:D

Phần 2 – Tải mã nguồn và cài đặt thư viện

Lý thuyết là như vậy bây giờ chúng ta đào sâu vào code để xem nhé. Đầu tiên các bạn tạo thư mục MiAI_Mask_Detection để lưu trữ project.

Tiếp theo các bạn clone mã nguồn về bằng lệnh git thần thánh:

git clone https://github.com/thangnch/MiAI_Mask_Detection .

Chú ý dấu chấm ở cuối dòng lệnh nhé anh em.

Sau khi đợi một chút cho mã nguồn tải về, anh em tiến hành cài đặt các thư viện cần thiết. Phần này có cài đặt thêm dlib và cmake nên trên window có thể lỗi chút nhé. Nếu cài lỗi thì anh em post lên Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup để được hỗ trợ nhé.

pip install -r setup.txt

Sau khi cài đặt xong các thư viện, các bạn tải file landmark predict tại đây và copy vào thư mục chứa mã nguồn (có file mask_detection.py đấy).

That’s all, bây giờ nghiên cứu mã nguồn và chạy thử thôi!

Phần 3 – Chạy thử chương trình phát hiện đeo khẩu trang

Bây giờ các bạn mở file mask_detection.py sẽ thấy mã nguồn của chương trình khá đơn giản. Tác vụ của file này sẽ là đọc ảnh từ webcam, detect khuôn mặt, capture vùng miệng và tính toán color saturation để xác định xem có đeo khẩu trang hay không.

Cách tính color sat cụ thể như sau:

hsv = cv2.cvtColor(frame[int(boundRect[1]):int(boundRect[1] + boundRect[3]),int(boundRect[0]):int(boundRect[0] + boundRect[2])], cv2.COLOR_RGB2HSV)
sum_saturation = np.sum(hsv[:, :, 1]) # Sum the brightness values
area = int(boundRect[2])*int(boundRect[3])
avg_saturation = sum_saturation / area # Find the average
  • Đầu tiên ta chuyển ảnh vùng miệng về HSV và lấy riêng kênh Saturation để tính toán.
  • Tiếp theo ta tính trung bình cộng saturation của vùng miệng.
  • Ta so sáng giá trị trung bình đó với 1 threshold do ta đặt, mình chọn là 100. Nếu giá trị <100 là có deo khẩu trang (màu trắng nhiều) và ngược lại.

Vậy thôi, giờ bạn chạy file mask_detection.py và sau đó thử đeo và tháo khẩu trang ra xem hệ thống nhận diện có chuẩn không nhé. Đây là video demo của mình:

Xin chào và hẹn gặp lại trong các bài tiếp theo.

Chúc các bạn thành công!

Hãy join cùng cộng đồng Mì AI nhé!

Fanpage: http://facebook.com/miaiblog
Group trao đổi, chia sẻ: https://www.facebook.com/groups/miaigroup
Website: https://miai.vn/
Youtube: http://bit.ly/miaiyoutube

Tags:

coronacovid-19đeo khẩu trangface maskface mask detectionkhẩu trangncovynhận biết khẩu trang
Author

Chủ tiệm Mì

Follow Me
Other Articles
Previous

Kết hợp Object Detection và Object Tracking – Chương 3. Thử làm hệ thống đo tốc độ xe hơi trên cao tốc

Next

[TIPS] Cách cài dlib trên Windows nhanh gọn không bị lỗi

6 Comments
  1. Mì AI cho ra mắt chatbot hỗ trợ thông tin COVID-19 (COVID chatbot) says:
    March 17, 2020 at 4:26 am

    […] Sản phẩm nằm trong chuỗi ứng dụng đẩy lùi covid 19 tại đây: https://miai.vn/2020/03/11/chung-tay-chong-covid-19-lam-thu-he-thong-nhac-deo-khau-trang-bang-op&#8230; […]

    Reply
  2. Re-implement nhận diện đeo khẩu trang (FaceMaskDetection) bằng YOLO - Mì AI says:
    April 27, 2020 at 8:14 am

    […] đã có 1 bài về nhận diện đeo khẩu trang bằng OpenCV đơn giản hơn tại đây. Các bạn có thể tham […]

    Reply
  3. Nhận diện đeo khẩu trang (Face Mask Detection) bằng YOLO - Mì AI says:
    May 4, 2020 at 5:51 am

    […] có 1 bài về nhận diện đeo khẩu trang/Face Mask Detection bằng OpenCV đơn giản hơn tại đây. Các bạn có thể tham […]

    Reply
  4. Lê says:
    December 3, 2020 at 7:36 am

    Ad cho em hỏi nếu mình kết nối ra hệ thống loa để cảnh báo thì mình làm như thế nào ạ? Em thử cho câu lệnh phát âm thanh vào mục check và cảnh báo với threshold nhưng kết quả nhận được là đeo khẩu trang thì nó phát âm thanh và ngược lại ạ.

    Reply
    1. Nguyễn Chiến Thắng says:
      December 3, 2020 at 8:38 am

      Thì em chỉ cần kết nối loa và thêm lệnh phát âm thanh vào thôi. Em cần thêm gì post lên Group trao đổi, chia sẻ: https://www.facebook.com/groups/miaigroup nhé!

      Reply
  5. Tổng hợp 8+ thông tin [Nhận diện khuôn mặt khi đeo khẩu trang python], hướng dẫn chi tiết từ A-Z – VPN Miễn Phí says:
    May 16, 2022 at 2:42 pm

    […] Làm thử hệ thống phát hiện đeo khẩu trang bằng OpenCV – Mì AI […]

    Reply
Show Comments

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Tìm hiểu và cài đặt OpenClaw – trợ lý ảo 24/7 thông minh đa chức năng – Mì Ai
  • Dùng thử Pika – robot học Tiếng Anh cho trẻ cực đỉnh – Mì AI
  • TopView.AI 4.0 – nền tảng tạo AI video cộng tác bá đạo – Mì AI
  • Storm MCP – giải pháp nhanh gọn nhẹ để có MCP Server trong 5 phút – Mì AI
  • VoxCPM thử voice cloning với checkpoint finetune Tiếng Việt – Mì AI

Recent Comments

  1. Chủ tiệm Mì on Thử xây dựng hệ thống Agentic AI với LangGraph – Mì AI
  2. Nguyễn Chiến Thắng on [Nhận diện biển số xe] Chương 3 – Phát hiện biển số bằng OpenCV thuần
  3. Trần Sơn Dương on [Nhận diện biển số xe] Chương 3 – Phát hiện biển số bằng OpenCV thuần
  4. Salomon on [CV] Thử làm model cảnh báo ngủ gật cho tài xế oto bằng Dlib và Resnet
  5. khang on Xây dựng hệ thống nhận diện thủ ngữ – ngôn ngữ ký hiệu tay – để giao tiếp với người khuyết tật

Categories

  • Basic
  • Computer Vision
  • Data Science – Data Analysis
  • Generative AI
  • MÌ ÚP
  • Natural Language Processing
  • RNN-LSTM-GRU
  • Share Data

Là người đi trước, hãy biết đưa tay lại phía sau.

Nguyễn Chiến Thắng
Cảm ơn các bạn đã ủng hộ Mì AI!