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

[Face Recognize] Thử làm hệ thống chấm công bằng nhận dạng khuôn mặt

By Chủ tiệm Mì
August 13, 2019 4 Min Read
39

Hi xin chào các bạn, rất vui lại được gặp lại các bạn tại Mì AI Blog. Vậy là sau 02 bài đầu trong lĩnh vực Computer Vision, chúng ta đã cùng nhau tìm hiểu về Yolo về cách train Yolo để nhận dạng các đối tượng đặc thù theo nhu cầu.Hôm nay, để tiếp nối chủ đề về Computer Vision mình sẽ cùng các bạn ăn bát mì ăn liền về nhận dạng khuôn mặt nhá. Chúng ta sẽ làm ở mức đơn giản, mì ăn liền cho đúng vơi tôn chỉ của Mì AI nhé.

Công nghệ chúng ta sẽ sử dụng gồm có:

  • Phát hiện khuôn mặt – face detection bằng haarcascade detector.
  • Nhận diện khuôn mặt bằng LBPH Face Recognizer. Viết đầy đủ thì LBPH là Local Binary Patterns Histogram.

Ở đây các bạn cần làm rõ 2 việc riêng biệt nhé:

  • Phát hiện khuôn mặt là chỉ đơn thuần phát hiện xem trong ảnh có bao nhiêu khuôn mặt hoặc không có khuôn mặt nào.
  • Nhận diện khuôn mặt là biết được mặt đó là của ai, mã nhân viên nào.

Để cho bài toán có tính thực tế, hấp dẫn, chúng ta sẽ làm hệ thống chấm công bằng khuôn mặt thay cho chấm công bằng vân tay như truyền thông nhé. Thôi dài dòng đủ rồi, cùng bắt tay vào làm việc nhé!

Tổng quan các bước cần làm

  • Bước 1.Chuẩn bị một cơ sở dữ liệu để lưu trữ thông tin chấm công của mỗi người như: tên, tuổi, chức danh… và các thông tin khác tùy các bạn, mình ví dụ nên chỉ làm đơn giản nhé.
  • Bước 2. Thực hiện chụp ảnh cho cán bộ nhân viên mới.
  • Bước 3. Train model để nhận diện được cán bộ nhân viên mới từ ảnh vừa chụp
  • Bước 4. Tiến hành nhận dạng khuôn mặt trong hình để chấm công.

Chúng ta hãy cùng bắt tay vào làm nào!

Bước 1. Chuẩn bị cơ sở dữ liệu và mã nguồn

Về vấn đề này các bạn có thể dùng bất cứ CSDL nào bạn có như: mysql, MS SQL, Oracle,…. Ở đây để tiện triển khai trên các micro device nên mình dùng sqllite cho tiện. Trong quá trình chạy, các bạn sẽ thấy trong folder xuất hiện 1 file FaceBaseNew.db là file sqllite nhé.

Các bạn hãy tạo thư mục MiAI_Face_Recognize, sau đó chuyển vào thư mục đó bằng lệnh cd nhé. Bây giờ các bạn có thể vào github của mình tại https://github.com/thangnch/face_recognizer để lấy source về thủ công hoặc gõ lệnh sau:

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

Sau đó chờ 1 lúc và nếu thành công thì các bạn sẽ có 1 folder face_recognizer trong thư mục hiện tại. Tiếp tục chuyển vào thư mục đó bằng lệnh cd face_recognizer nhe.

Bước 2. Thực hiện chụp ảnh cho người mới

Bây giờ các bạn mở file NewUser.py đọc qua sẽ thấy trong file này mình sẽ làm các việc:

  • Tạo CSDL sqllite tại thư mục hiện tại
  • Yêu cầu người dùng nhập và ID và Name, sau đó lưu vào DB
  • Yêu cầu ng dùng đưa mặt vào camera, chụp khoảng 100 ảnh của người dùng và tiến hành lưu trữ tại thư mục dataSet với cấu trúc User.<mã nhân viên>.<số thứ tự>.jpg

Để chạy file này các bạn gõ lệnh:

python NewUser.py

Sau đó nhập ID, Name và lắc lư cái đầu trên camera cho máy chụp ảnh nhé. Như ở cơ quan thì đây là đăng ký khuôn mặt để chấm công đó.

Bước 3. Thực hiện train model để học được các khuôn mặt đã chụp

Bây giờ các bạn hãy mở tiếp file TrainModel.py. File này làm các nhiệm vụ:

  • Đọc thông tin trong CSDL về danh sách CBNV hiện tại
  • Đọc dữ liệu ảnh từ thư mục dataset
  • Train model để nhận dạng khuôn mặt và gán vào các nhân viên.

Các bạn đọc code chi tiết trong file TrainModel.py nhé, còn để chạy file này, các bạn lại gõ:

python TrainModel.py

Và đợi cho đến khi màn hình xuất hiện chữ “Trained” là xong!

Bước 4. Kiểm thử hệ thống

Sau khi đăng ký xong, train xong giờ là lúc tận hưởng thành quả nào. Các bạn mở tiếp file FaceRecognizer.py. File này làm các nhiệm vụ chính:

  • Load dữ liệu nhân viên từ CSDL
  • Load model phát hiện khuôn mặt và nhận diện khuôn mặt đã train ở bước 3
  • Đọc ảnh từ camera và hiển thị tên người có mặt trong camera.

Các bạn chạy lệnh:

python FaceRecognizer.py 

Nếu thành công, các bạn sẽ thấy giống như ảnh bên dưới.

nhận dạng khuôn mặt

Như vậy chúng ta đã làm được một hệ thống chấm công đơn giản bằng khuôn mặt và có thể áp dụng thử nghiệm ở cơ quan, công sở rồi.

Chúc các bạn thành công, nếu vướng gì thì cứ comment chúng ta cùng trao đổi 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:

aicomputer visiondeep learningface recognizehaarcascadeLBPH Facemachine learning
Author

Chủ tiệm Mì

Follow Me
Other Articles
Previous

[Yolo Series] #2 – Cách train Yolo để detect các object đặc thù

Next

[YOLO Series] Cách train Yolo trên Google Colab

39 Comments
  1. Hoàng Anh says:
    August 14, 2019 at 6:38 am

    Cảm ơn anh đã chia sẻ.

    Reply
    1. Nguyễn Chiến Thắng says:
      August 14, 2019 at 6:50 am

      Không có gì bạn. Chúc bạn thành công!

      Reply
  2. Trần Thiện Hòa says:
    August 14, 2019 at 7:29 am

    Mọi người có ai nhận diện được không? Mình thử nhưng chưa thể nhận diện được khuôn mặt của mình. :((

    Reply
    1. Nguyễn Chiến Thắng says:
      August 14, 2019 at 11:32 am

      Bạn bị vướng chỗ nào thế. Bạn có thể liên hệ với mình hoặc post bài vào group Hội Mì AI Blog để trao đổi cho tiện nhé.

      Link group: https://www.facebook.com/groups/miaigroup/?ref=share

      Reply
      1. Tuan says:
        December 11, 2019 at 9:34 am

        mình chạy được nhưng lúc nhận được lúc ko là sao nhỉ!?
        dist thường là >25%. không biết có cách nào khắc phục không

        Reply
        1. Nguyễn Chiến Thắng says:
          December 12, 2019 at 2:50 am

          Bạn search bài số 2 dùng MTCNN và Facenet ấy. Độ chính xác cao hơn.

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

          Reply
    2. Trần Lâm Khánh Tường says:
      September 4, 2019 at 2:31 am

      Mình cũng bị giống vậy

      Reply
      1. Nguyễn Chiến Thắng says:
        September 4, 2019 at 2:38 am

        Bạn bị lỗi như nào. Bạn có thể join Group Mì AI và chụp màn hình up lên đó để tiện trao đổi hơn nhé.

        Link Group: Group trao đổi, chia sẻ: https://www.facebook.com/groups/miaigroup

        Cảm ơn bạn!

        Reply
  3. Phạm minh tuấn says:
    August 16, 2019 at 10:54 am

    Cảm ơn anh đã chia sẻ

    Reply
    1. Nguyễn Chiến Thắng says:
      August 17, 2019 at 1:24 am

      Welcome em! Chúc em thành công!

      Reply
  4. Quoc Ng says:
    August 17, 2019 at 12:16 pm

    Cảm ơn a đã chia sẽ rất hy vọng được a dạy thêm nhiều bài nữa! Có thể làm demo scan CMND ko a?

    Reply
    1. Nguyễn Chiến Thắng says:
      August 18, 2019 at 2:02 am

      Cảm ơn em. Anh còn nhiều bài về OpenCV sẽ ra sau. Trong đó a sẽ có 1 bài về CMND nhé!

      Reply
  5. Hung says:
    August 22, 2019 at 7:23 am

    Cua a dang chạy python may ah

    Reply
    1. Nguyễn Chiến Thắng says:
      August 22, 2019 at 7:58 am

      Anh dùng 3.7!

      Reply
  6. Hùng says:
    August 22, 2019 at 4:26 pm

    Chào Anh,
    Em chưa thể thực hiện setup được, anh có thể quay màn hình cách thực hiện được không ạ

    Reply
    1. Nguyễn Chiến Thắng says:
      August 22, 2019 at 4:38 pm

      Bạn đợi chút thời gian nhé. Kênh Youtube của mình đang setup, sẽ launch sớm thôi.

      Bạn đang vướng đâu có thể post lên group xem nhé!

      #MìAI
      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

      Reply
  7. [Face Recog 2.0] Nhận diện khuôn mặt trong video bằng MTCNN và Facenet – Mì AI says:
    September 11, 2019 at 3:35 am

    […] chào các anh em Mì AI Blog, sau bài đầu tiên về nhận diện khuôn mặt tại đây https://miai.vn/2019/08/13/face-recognize-thu-lam-he-thong-cham-cong-bang-nhan-dang-khuon-mat/, rất nhiều anh em có comment là phương pháp triển khai, thuật toán trong bài đó […]

    Reply
  8. Chống giả mạo bằng ảnh/video trong nhận diện khuôn mặt - Face Anti spoofing - Mì AI says:
    September 19, 2019 at 3:19 am

    […] [Face Recognize] Thử làm hệ thống chấm công bằng nhận dạng khuôn mặt […]

    Reply
  9. luan nguyen says:
    November 27, 2019 at 8:25 am

    anh ơi cho em hỏi tỉ lệ nhận diện khuôn mặt của em khoảng 50…60 thì là do ảnh chụp hay sao

    Reply
    1. Nguyễn Chiến Thắng says:
      November 28, 2019 at 2:29 am

      Em nâng lên bản dùng MT CNN và Facenet nhé: https://miai.vn/2019/09/11/face-recog-2-0-nhan-dien-khuon-mat-trong-video-bang-mtcnn-va-facenet/

      Cần trao đổi gì em lên group cho tiện: Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup

      Cảm ơn em!

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

      Reply
  10. Nghi says:
    November 29, 2019 at 4:20 am

    chào anh, cảm ơn anh nhiều nha, bài này rất hữu ích :3, mà anh cho em hỏi bh em ko muốn xài cam usb mà xài luôn camere của con rasp pi thì chỉnh chỗ nào lại ạ @@ , em cảm ơn

    Reply
    1. Nghi says:
      November 29, 2019 at 6:50 am

      á em chưa enable cam, em làm đc rồi, mà sao train hơi khó nhận mặt mình :< thử chục lần lâu lâu nó nhá lên cái xong nó lại k nhận diện đc nữa
      :<

      Reply
      1. Nguyễn Chiến Thắng says:
        November 30, 2019 at 12:38 am

        Chào em. Em chuyển lên bản 2.0 cho chính xác nhé (https://miai.vn/2019/09/11/face-recog-2-0-nhan-dien-khuon-mat-trong-video-bang-mtcnn-va-facenet/)

        Có gì cần trao đổi em cứ comment trên group ấy, tiện hơn. Link Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup

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

        Reply
        1. Nghi says:
          December 1, 2019 at 3:26 pm

          dạ cảm ơn anh :3

          Reply
  11. Do Mạnh Hùng says:
    February 18, 2020 at 9:40 am

    Traceback (most recent call last):
    File “TrainModel.py”, line 6, in
    recognizer = cv2.face.LBPHFaceRecognizer_create()
    AttributeError: module ‘cv2.cv2’ has no attribute ‘face’
    lỗi gì đây anh

    Reply
    1. Nguyễn Chiến Thắng says:
      February 18, 2020 at 9:42 am

      Bạn post lên group cho tiện theo dõi vì có chụp màn hình nhé.

      Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup

      Reply
  12. Tổng hợp các tuyệt chiêu chống giả mạo khuôn mặt - Mì AI says:
    July 8, 2020 at 6:09 am

    […] [Face Recognize] Thử làm hệ thống chấm công bằng nhận dạng khuôn mặt […]

    Reply
  13. Phong Đoàn says:
    July 21, 2020 at 4:27 am

    E chạy được rồi. A Thắng cho e hỏi, e muốn build chạy thử trên web local, thì deploy thế nào ạ. E cảm ơn

    Reply
  14. Phong Đoàn says:
    July 21, 2020 at 4:28 am

    Cảm ơn a đã chia sẻ. E chạy được rồi. A Thắng cho e hỏi, e muốn build chạy thử trên web local, thì deploy thế nào ạ. E cảm ơn

    Reply
    1. Nguyễn Chiến Thắng says:
      July 21, 2020 at 6:03 am

      Em có thể tìm bài về Flask trên Blog Mì Ai nhé!

      Reply
      1. Phong Đoàn says:
        July 21, 2020 at 7:14 am

        Em cảm ơn a ạ

        Reply
  15. Dương Anh Tú says:
    March 4, 2021 at 10:48 am

    E đã làm theo hết các bước nhưng đến khi chạy file FaceRecognizer.py để nhận diện thì nó vẫn hiện là UnKnow . không biết là đã bị lỗi hay thiếu bước nào.

    Reply
    1. Nguyễn Chiến Thắng says:
      March 4, 2021 at 4:25 pm

      Em post lên Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup nha cho tiện trao đổi!

      Reply
  16. phuoc says:
    May 16, 2021 at 11:33 am

    em da cai dat open cv roi nhung van bao loi ạ
    ModuleNotFoundError: No module named ‘cv2’
    anh giup e voi

    Reply
    1. Nguyễn Chiến Thắng says:
      May 19, 2021 at 5:29 pm

      Em post lên Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup nhé!

      Reply
  17. Nguyễn Hải says:
    July 31, 2021 at 10:52 am

    có cách nào điểm danh xong nó tích vào 1 ứng dụng chứa danh sách mọi người trong lớp không anh

    Reply
    1. Nguyễn Chiến Thắng says:
      August 2, 2021 at 9:48 pm

      Có em. Em viết thêm đoạn insert vào MySQL là okie!

      Reply
  18. đỗ ngọc duyên says:
    January 15, 2022 at 7:57 am

    Anh ơi cái này có video hướng dẫn không anh

    Reply
    1. Nguyễn Chiến Thắng says:
      January 23, 2022 at 9:41 am

      Cái này có em. Em lên Youtube: https://youtube.com/c/MiAIblog nhé!

      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!