[C#] Nhận diện khuôn mặt – face recognition

Nhận diện khuôn mặt là từ ảnh khuôn mặt đã crop trả về kết quả là người nào. Nhận diện khuôn mặt gồm rút trích ra những đặc trưng của người nào đó như mắt, mũi, miệng, đường nét khuôn mặt. Kết quả trả về là nhãn giống như phân lớp và kèm theo giá trị confident. Giá trị confident càng thấp là càng chính xác.

Có nhiều thuật toán nhận diện như Eigen, Fisher, LBPH. Bài viết này giới thiệu 1 chương trình sử dụng thuật toán Eigen. Chương trình viết bằng C# có ưu điểm là viết code dễ dàng, nhanh chóng nhưng bù lại tốc độ chậm.

Chương trình viết bằng C#, sử dụng thư viện EmguCV. Giao diện của chương trình

Nhận diện khuôn mặt - face recognition

Các bước sử dụng:
– Click vào nút “1. Detect and recognize” để chương trình bắt đầu capture webcam và detect khuôn mặt
– Gõ tên người đang được nhận diện và ấn nút “2. Add face”
– Khi chương trình nhận diện được khuôn mặt thì chương trình sẽ hiện ra tên như trong ảnh

Giải thích thuật toán

  1. Đầu tiên tìm vị trí khuôn mặt trong ảnh bằng haar cascade
  2. Gán nhãn cho khuôn mặt rồi training
  3. Sau khi training thì tìm vị trí khuôn mặt rồi nhận diện

Download

Nguồn

Source code

Chương trình demo

Ngoài ra còn 1 chương trình khác sử dụng cả 3 thuật toán nhận diện, bạn có thể xem nó ở đây:
http://www.codeproject.com/Articles/261550/EMGU-Multiple-Face-Recognition-using-PCA-and-Paral

29 Responses to [C#] Nhận diện khuôn mặt – face recognition

  1. Lộc says:

    Hên quá, tìm tìm trên mạng ra được cái blog của anh.
    Em là người hỏi anh vụ nhận diện hình ảnh mấy bữa nay à.

    Cảm ơn anh nhiều vì những bài viết bổ ích.

  2. vohungvi says:

    hì, không có chi

  3. thảo says:

    A ơi cho e hỏi chút.emguCV có áp dụng được cho nhận dạng vân tay không ạ,và nếu như sử dụng EmguCV thì e có thể áp dụng thuật toán trên cho nhận dạng vân tay được không ạ

  4. thảo says:

    A ơi cho e hỏi emguCV cũng áp dụng cho nhận dạng vân tay được phải không ạ,và nếu áp dụng được thì sử dụng thuật toán như nhận diện khuôn mặt được không ạ

    • vohungvi says:

      EmguCV chẳng qua là cross-platform của opencv thôi, tức là chức năng giống hệt nhau, chỉ khác là emguCV hỗ trợ .NET. Cho nên những gì openCV làm được thì emguCV cũng làm được. Do đó emgucv nhận dạng được vân tay và khuôn mặt đều được hết

    • vohungvi says:

      đúng rồi, mình lấy từ đó ra, mình có ghi rõ nguồn mà

    • cuong says:

      Chào bạn vohungvi cái link code project là nó xử dụng cùng 1 lúc 3 giải thuật để nhận dạng khuôn mặt hả bạn

    • vohungvi says:

      Họ có viết code cho 3 giải thuật, còn mỗi lần xử lý chỉ sử dụng 1 giải thuật thôi

  5. Trần Hiển says:

    Bạn Vohungvi thân mếm,
    Hiển tại mình đang làm để tài ve nhận diện khuôn mặt người (Face Recognition), tuy nhiên, mình không thể tài nào huấn luyện nó được. Mình gửi code được viết trên Matlab để bạn xem giúp mình với.
    Bạn có đề tài nào liên quan đến FR không cho mình xin.
    Hãy để số điện thoại, tôi sẽ gọi điện cho bạn. Mong sớm nhận được hồi âm của bạn.

    • vohungvi says:

      mình không biết về Matlab nên không hiểu code ở trên. Trong bài có link chương trình demo, bạn download về chạy thử xem

    • Dong says:

      bạn ơi cho mình hỏi sao mình chạy demo của bạn bằng visua studio lại k đc vậy

    • vohungvi says:

      nó báo lỗi gì vậy bạn?

  6. NT Tòng says:

    Bạn ơi mình chạy trên visual studio, chương trình ko đọc được camera, chỉ hiện toàn màu đen, bạn hỗ trợ mình với ,

  7. Hai Tran says:

    Tôi muốn bạn hướng dẫn hướng nhận dạng khuôn mặt trong việc điểm danh. Hôm trước tôi đã kết bạn trong Skype nhưng không thấy bạn trả lời. Bạn có thể cho tôi xin số điện thoại để hẹn gặp trao đổi được không (Mail: trhai2005@gmail.com). Cảm ơn

  8. Master DLF says:

    E chào a vohungvi!
    Hiện tại e có đề tài tốt nghiệp là nhận dạng khuôn mặt với LBP, a cho e hỏi dùng với LBP làm cách nào ạ 🙁

    • vohungvi says:

      LBP cascade chỉ dùng để phát hiện, còn Eigen, Fisher và LBPH dùng để nhận diện. Bạn có nhầm khái niệm không?

  9. trang le thi says:

    Bạn ơi, cho mình hỏi sao mình mở source này mà cứ bị unavailable, mình reload mà k đc?

  10. Phan Huy Hoàng says:

    Anh có bộ data k ạ , share em với.

  11. A ơi, bài này nhận dạng theo phương pháp truyền thống hay nhận dạng 3D hay phân tích kết cấu đa hình vậy ạ.

    • vohungvi says:

      phương pháp truyền thống thôi, bài này là dạng cơ bản nhất

  12. Tong Son says:

    Anh ơi cho em hỏi là em chạy code định add khuôn mặt huấn luyện nhưng phần hiện hình ảnh camera của em cứ đen xì ạ ?

Leave a Reply