Thư viện nhận dạng khuôn mặt [đã đóng]


169

Tôi đang tìm kiếm một thư viện nhận dạng khuôn mặt miễn phí cho một dự án đại học. Tôi không tìm kiếm sự phát hiện khuôn mặt . Tôi đang tìm kiếm sự công nhận thực tế. Điều đó có nghĩa là tìm hình ảnh có chứa các khuôn mặt hoặc thư viện được chỉ định để tính khoảng cách giữa các khuôn mặt cụ thể.

Tôi hiện đang sử dụng OpenCV để phát hiện các khuôn mặt và thuật toán Eigenface thô để nhận dạng. Nhưng tôi nghĩ nên có một cái gì đó ngoài kia với hiệu suất tốt hơn thuật toán Eigenface tự viết. Tôi không nói về tốc độ như hiệu suất, tôi đang tìm kiếm một thư viện có kết quả tốt hơn so với cách tiếp cận Eigenface đơn giản.

Tôi đã xem qua Faint , nhưng có vẻ như thư viện không thể tái sử dụng cho các ứng dụng của riêng tôi.

Tôi hài lòng với một thư viện bằng Python, Java, C ++, C hoặc đại loại như thế. Điều tốt nhất sẽ là nếu nó có thể chạy trên máy Windows vì hiện tại tôi đang dựa vào một số mã chỉ dành cho Windows bên ngoài.


1
Có cần phải được tự do vì lý do chính trị hoặc thực tế? Nếu đó là một dự án nghiên cứu thuần túy, bạn có thể có được giấy phép học tập miễn phí từ một trong những nhà cung cấp thương mại.
Christoffer

2
Tôi đã nhận được kết quả tương đối tốt chỉ với cách tiếp cận eigenfaces nhưng có vẻ như một api phát hiện khuôn mặt tốt miễn phí sử dụng là điều còn thiếu ở thời điểm hiện tại
Janusz



4
Mặc dù hoàn toàn có thể chấp nhận được trong năm 2009, câu hỏi này không còn được xem xét theo chủ đề: Các câu hỏi yêu cầu chúng tôi đề xuất hoặc tìm một công cụ, thư viện hoặc tài nguyên ngoài trang yêu thích nằm ngoài chủ đề cho Stack Overflow. Xem lý do ngoài chủ đề được xác định trước là gì đối với Stack Overflow?
JDB vẫn còn nhớ Monica

Câu trả lời:


85

Dưới đây là danh sách các nhà cung cấp thương mại cung cấp các gói sẵn có để nhận dạng khuôn mặt chạy trên Windows:

  1. Cybula - Thông tin về SDK nhận dạng khuôn mặt của họ . Đây là một công ty được thành lập bởi một giáo sư đại học và như vậy trang web của họ trông không chuyên nghiệp. Không có thông tin về giá hoặc bản demo mà bạn có thể tải xuống. Bạn sẽ cần liên hệ với họ để biết thông tin về giá cả.

  2. Công nghệ thần kinh - Thông tin về SDK nhận dạng khuôn mặt của họ . Công ty này có cả thông tin về giá trước cũng như bản dùng thử 30 ngày thực tế của SDK của họ .

  3. Nhận dạng mẫu Pittsburgh - ( Được Google mua lại ) Thông tin về SDK theo dõi và nhận dạng khuôn mặt của họ . Các bản demo mà họ cung cấp giúp bạn đánh giá công nghệ của họ chứ không phải SDSK của họ. Bạn sẽ cần liên hệ với họ để biết thông tin về giá cả.

  4. Sensible Vision - Thông tin trên SDK của họ . Trang web của họ cho phép bạn dễ dàng nhận được báo giá và bạn cũng có thể đặt hàng một bộ đánh giá sẽ giúp bạn đánh giá công nghệ của họ.


5
Cảm ơn các liên kết nhưng hiện tại tôi cần tìm một thư viện miễn phí
Janusz

1
Nó có thể không phải là nhận dạng khuôn mặt mỗi se , nhưng numenta.com có thể được bạn quan tâm.
RCIX

7
bạn có thể thêm API REST miễn phí của Face.com vào danh sách đó
Omry Yadan

@Omry, bạn nên thêm dưới dạng câu trả lời hoặc chỉnh sửa phần này để thêm face.com
Scott


54

Cập nhật

OpenCV 2.4.2 bây giờ đi kèm với cv :: FaceRecognizer rất mới . Xin vui lòng xem tài liệu rất chi tiết tại:

Bài gốc

Tôi đã phát hành libfacerec , một thư viện nhận dạng khuôn mặt hiện đại cho API OpenCV C ++ (giấy phép BSD). libfacerec không có phụ thuộc bổ sung và thực hiện phương pháp Eigenfaces, phương thức Fisherfaces và Biểu đồ mô hình nhị phân cục bộ. Các phần của thư viện sẽ được đưa vào OpenCV 2.4.

Bản sửa đổi mới nhất của libfacerec có sẵn tại:

Thư viện được viết cho OpenCV 2.3.1 với ý tưởng OpenCV 2.4 sắp tới, vì vậy tôi không hỗ trợ các phiên bản OpenCV sớm hơn 2.3.1. Dự án này là một dự án CMake với API tài liệu tốt, cũng có một hướng dẫn về phân loại giới tính. Bạn có thể xem phiên bản HTML của tài liệu tại:

Nếu bạn muốn hiểu cách các thuật toán đó hoạt động, bạn có thể muốn đọc Hướng dẫn nhận diện khuôn mặt của tôi (bao gồm các ví dụ Python và GNU Octave / MATLAB):

Ngoài ra còn có triển khai Python và GNU Octave / MATLAB của các thuật toán trong kho github của tôi . Cả hai dự án trong facerec cũng bao gồm một số phương thức xác thực chéo để đánh giá các thuật toán:

Các ấn phẩm có liên quan là:

  • Turk, M. và Pentland, A. Eigenfaces để được công nhận.. Tạp chí khoa học thần kinh nhận thức 3 (1991), 71 cạn86.
  • Belhumeur, PN, Hespanha, J. và Kriegman, D. Eigenfaces vs. Fisherfaces: Công nhận sử dụng phép chiếu tuyến tính cụ thể của lớp.. Giao dịch của IEEE về Phân tích mẫu và Thông minh máy 19, 7 (1997), 711 Tắt720.
  • Ahonen, T., Hadid, A., và Pietikainen, M. Nhận dạng khuôn mặt với mô hình nhị phân địa phương. . Thị giác máy tính - ECCV 2004 (2004), 469 Hay481.


19

pam-face-xác thực Mô-đun PAM để Xác thực khuôn mặt: nhưng nó sẽ yêu cầu một số công việc để có được những gì bạn muốn. Một thử nghiệm nhanh cho thấy, tỷ lệ nhận dạng không tốt bằng VeriLook từ NeuroT Technology.

Malic là một phần mềm nhận dạng khuôn mặt mã nguồn mở khác, sử dụng các mô tả Gabor Wavelet. Nhưng bản cập nhật cuối cùng cho nguồn là 3 năm.

Từ trang web: " Malic là một phần mềm nhận dạng khuôn mặt mã nguồn mở sử dụng sóng con gabor. Đây là hệ thống nhận dạng khuôn mặt thời gian thực dựa trên Hệ thống đánh giá nhận dạng khuôn mặt của Malib và CSU (csuFaceIdEval). Sử dụng thư viện Malib để xử lý hình ảnh thời gian thực và một số csuFaceId công nhận. "

Hơn nữa điều này có thể được quan tâm:

gaborboosting : Một chương trình khoa học được áp dụng trên Nhận dạng khuôn mặt với Thuật toán Gabor Wavelet và AdaBoost

Thư viện trích xuất tính năng - FELib đề cập đến "Chú thích khuôn mặt bởi sự phân biệt đối xử hạt nhân Fisher",


13

Tôi nghĩ rằng Eigenface , mà bạn đang làm, là cách để đi nếu bạn muốn tính khoảng cách giữa các khuôn mặt. Bạn có thể thử các cách tiếp cận khác nhau như Support Vector Machine hoặc Hidden Markov Model . Tôi tìm thấy một trang liệt kê các thuật toán chính có thể được sử dụng để nhận dạng khuôn mặt: Trang chủ Nhận dạng khuôn mặt .

Ngoài ra, khi bạn nói "hiệu suất tốt hơn", bạn có nghĩa là tốc độ hoặc độ chính xác? Bạn đang gặp vấn đề gì? Làm thế nào khác nhau là dữ liệu? Họ chủ yếu là mặt trước hoặc họ bao gồm hồ sơ?


5
Với hiệu suất tôi phát hiện chính xác. Eigenfaces là tốt nhưng những gì tôi đang tìm kiếm là một gói sẵn sàng để nhận diện khuôn mặt vì tôi không muốn phát minh lại bánh xe và tôi không có thời gian
Janusz


7

Bạn nên xem http://libccv.org/

Nó khá mới, nhưng nó cung cấp API cấp cao nguồn mở miễn phí để nhận diện khuôn mặt.

(... Và, tôi dám nói, thật đáng kinh ngạc)

Chỉnh sửa: Đáng chú ý, đây là một trong số ít các lib không phụ thuộc vào opencv và chỉ để đá, đây là một bản sao của mã để phát hiện khuôn mặt khỏi trang tài liệu, để cho bạn biết về những gì liên quan:

#include <ccv.h>
int main(int argc, char** argv)
{
    ccv_dense_matrix_t* image = 0;
    ccv_read(argv[1], &image, CCV_IO_GRAY | CCV_IO_ANY_FILE);
    ccv_bbf_classifier_cascade_t* cascade = ccv_load_bbf_classifier_cascade(argv[2]);         ccv_bbf_params_t params = { .interval = 8, .min_neighbors = 2, .accurate = 1, .flags = 0, .size = ccv_size(24, 24) };
    ccv_array_t* faces = ccv_bbf_detect_objects(image, &cascade, 1, params);
    int i;
    for (i = 0; i < faces->rnum; i++)
    {
        ccv_comp_t* face = (ccv_comp_t*)ccv_array_get(faces, i);
        printf("%d %d %d %d\n", face->rect.x, face->rect.y, face->rect.width, face->rect.y);
    }
    ccv_array_free(faces);
    ccv_bbf_classifier_cascade_free(cascade);
    ccv_matrix_free(image);
    return 0;
} 

5

Tôi biết đã được một thời gian, nhưng đối với bất kỳ ai khác quan tâm, có dự án Faint , đã tích hợp rất nhiều các tính năng này (phát hiện, nhận dạng, v.v.) vào một gói phần mềm đẹp.


4

Chúng tôi đang sử dụng OpenCV . Nó cũng có rất nhiều thứ không nhận diện khuôn mặt, nhưng, yên tâm, nó thực hiện nhận diện khuôn mặt.


2
Tôi nghĩ rằng không có thuật toán trực tiếp trong OpenCV để nhận dạng khuôn mặt. Nhận diện khuôn mặt từ Thư viện OpenCV hoạt động tốt
Janusz

3
Vâng bạn đã đúng. Tôi bối rối nhận diện khuôn mặt và nhận diện khuôn mặt.
Paul J. Lucas

Cũng như một ghi chú bên cạnh, hiện có cv :: FaceRecognizer, có thể được sử dụng để nhận dạng.
huesforalice

1

Bạn có thể thử mở thư viện MVG, Nó cũng có thể được sử dụng cho nhiều giao diện.


0

Bước tiếp theo sẽ là FisherFaces. Hãy thử nó và kiểm tra xem họ làm việc cho bạn. Đây là một so sánh tốt đẹp.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.