Có ai có thể chỉ cho tôi đúng hướng của một số thư viện nhận dạng khuôn mặt & các thuật toán không? Tôi đã thử tìm kiếm/googling nhưng tôi chủ yếu là tìm thấy những phần mềm thực sự và rất ít.Nhận dạng khuôn mặt/phần mềm hợp nhất
Trả lời
Làm thế nào về Eigenfaces? Sử dụng toán học đơn giản để lưu trữ eigenvector dễ nhận biết của khuôn mặt và tái tạo lại khuôn mặt bằng cách sử dụng nhiều vectơ.
Mã sẵn có bằng Python cũng như here.
Có thể bạn sẽ không tìm thấy phần mềm hoàn chỉnh để nhận dạng khuôn mặt. Nếu bạn muốn làm điều đó, cơ hội tốt nhất của bạn là để thực hiện một cái gì đó mà là trong luận án của một ai đó.
Khoảng 4 năm trước, một người ở CMU, tôi tin rằng, đã viết một thuật toán là thuật toán nhận diện khuôn mặt thành công nhất mà tôi từng thấy ... Tôi sẽ cố gắng tìm nó cho bạn, trừ khi ai đó biết tôi là gì nói về.
Nếu trước đây bạn chưa từng triển khai mã thị giác máy tính, thì bạn có thể giải quyết vấn đề bằng cách chia nhỏ vấn đề thành một vấn đề đơn giản hơn. Bạn đang tìm kiếm bao nhiêu người? Nếu đó là một nhóm nhỏ người, thuật toán nhận dạng không gian màu có thể hoạt động không? Nếu những người có tông màu da khác nhau, và màu tóc khác nhau, sau đó bạn chỉ có thể sử dụng công nhận không gian màu cơ bản để có được kết quả tốt.
Nếu không, bạn đang ở trong một dự án lớn.
EDIT: here's a list of some CMU articles that may point you in the right direction
Nếu tôi là bạn, tôi sẽ đọc một số những bài viết, và theo dõi trên tài liệu tham khảo.
Loại nhiệm vụ này thường được thực hiện bằng cách sử dụng mạng nơron. Đây là hướng chính của bạn để xem xét. Ngoài ra một số loại mạng cụ thể hơn để bạn có thể xem là Mạng lưới Thần kinh Kohonen. Đây là mạng công nhận hình ảnh đơn giản nhất, cũng có thể được sử dụng trong các nhiệm vụ nhận diện khuôn mặt. Bạn sẽ không đạt được bất kỳ kết quả tốt bằng cách sử dụng chỉ một loại lưới, nhưng kết nối vài người trong số họ lại với nhau. Tôi không thể cung cấp thêm chi tiết, vì tôi biết điều này chỉ theo lý thuyết, nhưng không có kỹ năng thực tế trong lĩnh vực này.
Btw, tôi không nghĩ bạn sẽ tìm thấy bất kỳ thư viện nào cho tác vụ đó, như thường lệ nếu bạn có thư viện như vậy - tại sao không tạo ra một sản phẩm và bán nó?
Thật sao? Hầu hết các phương pháp thành công mà tôi đã đọc về đã không sử dụng mạng nơron. Có, họ đã sử dụng một số loại đào tạo, nhưng tôi nghĩ rằng gọi chúng là "mạng thần kinh" là một cá trích đỏ. –
Tại sao bạn chắc chắn như vậy? Ít googling đã cho tôi ngay cả một thuật toán mạng thần kinh chính xác được sử dụng chủ yếu cho mục đích nhận dạng khuôn mặt. Đó là thuật toán backpropagation. Ví dụ: dll này cung cấp chức năng Nhận dạng khuôn mặt và không sử dụng lưới thần kinh: http://www.research-lab.com/facerecognition.htm – bezmax
OpenCV là thư viện hình ảnh máy tính tuyệt vời.
Ngoài Eigenfaces, tôi sẽ xem Fisherfaces. Đây là một bài báo học thuật so sánh hiệu suất của cả hai thuật toán Eigenfaces vs. Fisherfaces. Nó cho thấy hiệu suất tốt hơn với Fisherfaces. Tôi cũng đồng ý với tfinniga rằng OpenCV xứng đáng với thời gian của bạn, tôi đã sử dụng nó trước đây để phát hiện khuôn mặt.
Cuối cùng, bạn nên cụ thể hơn. Bạn có muốn phát hiện khi có khuôn mặt trong ảnh và sau đó xác định vị trí hoặc bạn muốn phát hiện một khuôn mặt cụ thể trong ảnh không? Các giải pháp được liệt kê ở đây là cho câu hỏi thứ hai. Nếu bạn muốn giải quyết câu hỏi cũ, tôi khuyên bạn nên tìm kiếm tài liệu cho các tính năng adaboost và haar.
tôi đã viết một hướng dẫn và demo chương trình toàn với mã nguồn miễn phí để thực hiện nhận diện khuôn mặt và nhận diện khuôn mặt trong thời gian thực từ một webcam (dựa trên Eigenfaces trong OpenCV):
Tôi tìm thấy Luxand Facesdk cách tốt nhất để nhận diện khuôn mặt và nhận dạng.
Cuộc gọi tốt! Chấp nhận câu trả lời này! –