Hi mọi người , Covic-19 đã trở lại nước ta nên mình thấy đeo khẩu trang là một điều cần thiết trước khi ra đường nhé ! Vừa có lợi cho mình vừa có lợi cho xã hội. Hôm nay mình chia sẻ về nhận diện đeo khẩu trang áp dụng vào hệ thống cảnh báo đeo khẩu trang nhé ! Bài toán nhận diện đeo khẩu trang thực ra là bài toán đơn giản nhất của machine learning !

I . Chuẩn bị

  • Sử dụng Anaconda để cài môi trường cho project :
conda create --name face_mask
conda activate face_mask
conda install tensorflow
conda install keras
conda install opencv

Như vậy là chuẩn bị đã xong rồi ! . Tiếp Theo mình tiến hành nhé !

II . Tiến Hành

  • Clone github của mình về :
git clone https://github.com/sonrasa2k/hongtin_facemask
cd hongtin_facemask
  • Mở thư mục hongtin_face_mask bằng visual code :
file train
  • Xem file train.py thì mình đã giải thích code trong đó rồi ! . File này sẽ tạo ra một model H5 . File này là file model của keras dùng để detect sau này .
  • Tiếp theo là file face_mask_realtime.py . File này dùng để detect khẩu trang realtime qua camera . Chúng ta sẽ chạy file này nhé !
file face_mask_realtime.py
  • Trong file face_mask_realtime.py chúng ta cần chú ý :
    • Load lại model keras đã có sẵn : model = load_model(“model_face_mask.h5”)
    • Detect khuôn mặt và xuất ra 4 output là tọa độ x,y min cũng như chiều cao , và chiều dài của khuôn mặt: face = face_cascade.detectMultiScale(img, scaleFactor=1.1, minNeighbors=4)
    • Cắt những hình có chứa khuôn mặt với opencv và lưu lại tại 1 ảnh tạm:
for (x, y, w, h) in face:
        face_img = img[y:y + h, x:x + w]
        cv2.imwrite('temp.jpg', face_img)
  • Chuyển ảnh về dạng mảng tensorflow :
test_image = image.load_img('temp.jpg', target_size=(150, 150, 3))
        test_image = image.img_to_array(test_image)
        test_image = np.expand_dims(test_image, axis=0)
  • Model đưa ra dự đoán ở đây nó sẽ cho ra 0 hoặc 1 tại vì chỉ đơn giản là có hoặc không mà thôi : pred = model.predict_classes(test_image)[0][0]
  • Tiếp theo các bạn chạy file face_mask_realtime.py bằng cmd đã chuẩn bị trước :
python face_mask_realtime.py
  • Kết quả thu được :
co khau trang

Như vậy đã xong project đơn giản rồi nè !

III . KẾT LUẬN

  • Có rất nhiều cách có thể detect được khẩu trang , ở đây mình chọn cách cơ bản dễ hiểu nhất là dùng keras .Các bạn có thể tìm hiểu thêm cách khác và so sánh độ chính xác
  • Project có thể mở rộng và làm được nhiều việc trong thời covic này!
  • Model mình đã train sẵn rồi ! . Các bạn có thể tùy chỉnh lại các lớp train cũng như tìm data ngon hơn cho project nhé !
  • Để biết thêm về project hay ho có thể tham gia group của mình :https://www.facebook.com/groups/164371998723215
  • Có câu hỏi hay có đề tài hay muốn mình làm liên hệ qua fanpage hoặc facebook cá nhân : https://www.facebook.com/sonnguyen16032000/
  • Cảm ơn các bạn đã quan tâm theo dõi , hẹn các bạn ở bài lần tới vào ngày tiếp theo ! See You Again!