image चेहरा पहचान पुस्तकालय




image-processing computer-vision (9)

मैं एक विश्वविद्यालय परियोजना के लिए एक मुफ्त चेहरा पहचान पुस्तकालय की तलाश में हूँ। मैं चेहरा पहचान की तलाश नहीं कर रहा हूं । मैं वास्तविक मान्यता की तलाश में हूं। इसका मतलब है उन छवियों को ढूंढना जिनमें विशिष्ट चेहरे या पुस्तकालय शामिल हैं जो विशिष्ट चेहरों के बीच दूरी की गणना करते हैं।

मैं वर्तमान में पहचान के लिए चेहरे का पता लगाने के लिए OpenCV का उपयोग कर रहा हूं और एक मोटा Eigenface एल्गोरिदम का उपयोग कर रहा हूं। लेकिन मैंने सोचा कि एक स्व-लिखित ईजिनफेस एल्गोरिदम की तुलना में बेहतर प्रदर्शन के साथ वहां कुछ होना चाहिए। मैं प्रदर्शन के रूप में गति के बारे में बात नहीं कर रहा हूं, मैं एक साधारण ईजिनफेस दृष्टिकोण से बेहतर परिणामों के साथ एक पुस्तकालय की तलाश में हूं।

मैंने Faint पर एक नज़र Faint , लेकिन ऐसा लगता है कि पुस्तकालय मेरे अपने अनुप्रयोगों के लिए बहुत पुन: प्रयोज्य नहीं है।

मैं पाइथन, जावा, सी ++, सी या उस तरह की कुछ लाइब्रेरी से खुश हूं। सबसे अच्छी बात यह होगी कि यह विंडोज मशीन पर चलाया जा सकता है क्योंकि मैं फिलहाल कुछ बाहरी विंडोज़-केवल कोड पर निर्भर हूं।


अद्यतन करें

ओपनसीवी 2.4.2 अब बहुत ही नए cv::FaceRecognizer साथ आता है। कृपया यहां बहुत विस्तृत दस्तावेज देखें:

मूल पोस्ट

मैंने libfacerec सी ++ एपीआई (बीएसडी लाइसेंस) के लिए एक आधुनिक चेहरा पहचान पुस्तकालय, libfacerec जारी किया है। libfacerec में कोई अतिरिक्त निर्भरता नहीं है और Eigenfaces विधि, फिशरफेस विधि और स्थानीय बाइनरी पैटर्न हिस्टोग्राम लागू करता है। लाइब्रेरी के हिस्सों को ओपनसीवी 2.4 में शामिल किया जा रहा है।

Libfacerec का नवीनतम संशोधन यहां उपलब्ध है:

पुस्तकालय ओपनसीवी 2.3.1 के लिए आगामी ओपनसीवी 2.4 के साथ दिमाग में लिखा गया था, इसलिए मैं 2.3.1 से पहले ओपनसीवी संस्करणों का समर्थन नहीं करता हूं। यह प्रोजेक्ट एक अच्छी तरह से प्रलेखित एपीआई के साथ एक सीएमके परियोजना के रूप में आता है, लिंग वर्गीकरण पर एक ट्यूटोरियल भी है। आप दस्तावेज का एक HTML संस्करण यहां देख सकते हैं:

यदि आप समझना चाहते हैं कि वे एल्गोरिदम कैसे काम करते हैं, तो आप मेरी गाइड टू फेस पहचान पहचानना चाहेंगे (पायथन और जीएनयू ऑक्टेव / MATLAB उदाहरण शामिल हैं):

मेरे जीथब भंडार में एल्गोरिदम के पाइथन और जीएनयू ऑक्टेव / MATLAB कार्यान्वयन भी हैfacerec में दोनों परियोजनाओं में एल्गोरिदम का मूल्यांकन करने के लिए कई क्रॉस सत्यापन विधियां भी शामिल हैं:

प्रासंगिक प्रकाशन हैं:

  • तुर्क, एम।, और पेंटलैंड, पहचान के लिएEigenfaces। । जर्नल ऑफ़ कॉग्निटिव न्यूरोसाइंस 3 (1 99 1), 71-86।
  • Belhumeur, पीएन, हेस्पान्हा, जे।, और क्रेगमन, डी। Eigenfaces बनाम फिशरफेस: कक्षा विशिष्ट रैखिक प्रक्षेपण का उपयोग कर पहचान। । पैटर्न विश्लेषण और मशीन इंटेलिजेंस पर आईईईई लेनदेन 1 9, 7 (1 99 7), 711-720।
  • अहओन, टी।, हदीद, ए, और पिटिकैनन, स्थानीय बाइनरी पैटर्न के साथ एम। फेस रिकग्निशन। । कंप्यूटर विजन - ईसीसीवी 2004 (2004), 46 9-481।

अगला कदम फिशरफेस होगा। इसे आज़माएं और जांचें कि वे आपके लिए काम करते हैं या नहीं। Here एक अच्छी तुलना है।


यहां वाणिज्यिक विक्रेताओं की एक सूची दी गई है जो विंडोज़ पर चलने वाली चेहरे की पहचान के लिए ऑफ-द-शेल्फ पैकेज प्रदान करती हैं:

  1. Cybula - उनके चेहरे की पहचान एसडीके पर जानकारी। यह एक विश्वविद्यालय के प्रोफेसर द्वारा स्थापित एक कंपनी है और इस तरह की वेबसाइट गैर-व्यावसायिक दिखती है। कोई मूल्य निर्धारण जानकारी या डेमो नहीं है जिसे आप डाउनलोड कर सकते हैं। मूल्य निर्धारण जानकारी के लिए आपको उनसे संपर्क करने की आवश्यकता होगी।

  2. NeuroTechnology - उनके चेहरे की पहचान एसडीके पर जानकारी। इस कंपनी के पास दोनों के सामने मूल्य निर्धारण जानकारी के साथ-साथ उनके एसडीके का वास्तविक 30 दिन का परीक्षण भी है

  3. पिट्सबर्ग पैटर्न पहचान - ( Google द्वारा प्राप्त ) उनके चेहरे की ट्रैकिंग और पहचान एसडीके पर जानकारी। वे जो डेमो प्रदान करते हैं, वे आपकी तकनीक का मूल्यांकन करने में मदद करते हैं लेकिन उनके एसडीएसके नहीं। मूल्य निर्धारण जानकारी के लिए आपको उनसे संपर्क करने की आवश्यकता होगी।

  4. संवेदनशील दृष्टि - उनके SDK पर जानकारी। उनकी साइट आपको आसानी से मूल्य उद्धरण प्राप्त करने की अनुमति देती है और आप एक मूल्यांकन किट भी ऑर्डर कर सकते हैं जो आपकी तकनीक का मूल्यांकन करने में आपकी सहायता करेगी।


मुझे लगता है कि Eigenface , जो आप पहले से कर रहे हैं, अगर आप चेहरे के बीच की दूरी की गणना करना चाहते हैं तो यह तरीका है। आप समर्थन वेक्टर मशीन या हिडन मार्कोव मॉडल जैसे विभिन्न दृष्टिकोणों को आजमा सकते हैं। मुझे एक ऐसा पृष्ठ मिला जो प्रमुख एल्गोरिदम सूचीबद्ध करता है जिसका उपयोग चेहरे की पहचान के लिए किया जा सकता है: फेस रिकग्निशन होमपेज

साथ ही, जब आप "बेहतर प्रदर्शन" कहते हैं, तो क्या आपका मतलब गति या सटीकता है? आप किस तरह की समस्या कर रहे हैं? डेटा कितना भिन्न है? क्या वे अधिकतर सामने वाले चेहरे हैं या क्या वे प्रोफ़ाइल शामिल करते हैं?


हम OpenCV का उपयोग कर रहे हैं। इसमें बहुत सारी गैर-पहचान-पहचान सामग्री भी है, लेकिन, बाकी आश्वासन दिया है, यह चेहरा पहचान करता है।


आप एमवीजी लाइब्रेरी खोलने का प्रयास कर सकते हैं, इसका इस्तेमाल कई इंटरफेस के लिए भी किया जा सकता है।


मुझे पता है कि यह थोड़ी देर हो गया है, लेकिन किसी और के लिए दिलचस्पी है, वहां Faint प्रोजेक्ट है, जिसने इन सुविधाओं (पहचान, पहचान इत्यादि) को एक अच्छे सॉफ्टवेयर पैकेज में बंडल किया है।


यदि आपकी परियोजना किसी मूवी या टीवी पर है, या किसी भी चीज में स्क्रिप्ट है, तो ऐसा लगता है कि आप निश्चित रूप से मार्क एवरिंगहम et al. के काम को देखना चाहते हैं al. । सॉफ़्टवेयर available , जैसा कि एक बफी एपिसोड पर परिणाम हैं।


आपको http://libccv.org/ पर देखना चाहिए

यह काफी नया है, लेकिन यह चेहरा पहचान के लिए एक मुक्त मुक्त स्रोत उच्च स्तरीय एपीआई प्रदान करता है।

(... और, मुझे हिम्मत है, बहुत सुंदर आश्चर्यजनक है)

संपादित करें: यह भी ध्यान देने योग्य है कि यह कुछ libs में से एक है जो ओपनसीवी पर निर्भर नहीं है, और सिर्फ किक्स के लिए, यहां दस्तावेज़ों के चेहरे का पता लगाने के लिए कोड की प्रतिलिपि है, ताकि आपको इसमें शामिल होने का विचार दिया जा सके:

#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;
} 






face-recognition