2012-04-22 9 views
28

पर फेस पहचान मैं आईफोन पर चेहरे की पहचान कैसे कर सकता हूं। क्या कोई मुझे सही दिशा में इंगित करने के लिए मुझे संदर्भ/लेख प्रदान कर सकता है? मैंने शोध किया है और महसूस किया है कि मुझे छवि निकालने के लिए पहले चेहरे का पता लगाने की आवश्यकता है और फिर डेटाबेस के भीतर अन्य छवियों के साथ तुलना करके चेहरे की पहचान करना है।आईफोन

मुझे एहसास हुआ है कि मैंने ओपनसीवी का उपयोग करके या चेहरे का पता लगाने के लिए आईओएस 5.0 और ऊपर का उपयोग करके चेहरे का पता लगाया है। मैं चेहरे की पहचान पर अनिश्चित हूं (मैं दूरस्थ डेटाबेस पर छवियों को संग्रहीत करने और फिर दूरस्थ डेटाबेस के साथ तुलना करने की योजना बना रहा हूं)।

+1

[ओपनसीवी में फेस पहचान) के संभावित डुप्लिकेट (http://stackoverflow.com/questions/4856929/face-recognition-in-opencv) – karlphillip

+1

भी संभव डुप्लिकेट [ओपनसीवी का उपयोग करके चेहरा पहचान कैसे करें?] (Http : //stackoverflow.com/questions/7949494/how-to-do-face-recognition-using-opencv) और बहुत कुछ। – karlphillip

+1

संभावित डुप्लिकेट [मैं आईओएस पर चेहरे की पहचान कैसे कर सकता हूं?] (Http://stackoverflow.com/questions/8020842/how-can-i-perform-facial-recogntion-on-ios) – Monolo

उत्तर

14

चेहरा पहचान

मैं Haarcascades खुला सीवी में उपलब्ध का प्रयोग करेंगे त्वरित और सटीक चेहरे का पता लगाने प्रदर्शन करने के लिए।

http://opencv.willowgarage.com/wiki/FaceDetection

चेहरा मान्यता

मैं ऐसे प्रधानाचार्य घटक विश्लेषण (पीसीए) Eigenfaces a.k.a के रूप में एक विधि का प्रयोग करेंगे। मैं इस सी के लिए लिखा है लगता है, लेकिन मुझे यकीन है कि आप इसे का मूल jist प्राप्त कर सकते हैं कर रहा हूँ -

http://www.cognotics.com/opencv/servo_2007_series/part_5/index.html

कि लिंक कैसे OpenCV के साथ काम है कि प्राप्त करने के लिए पर एक ट्यूटोरियल दिखाता है।

आप भी इसे अपने आप को लागू करने पर दिखाई दे सकता है अगर आप बहादुर (यह बहुत बुरा नहीं है) लग रहा है ...

http://www.face-rec.org/algorithms/PCA/jcn.pdf

http://blog.zabarauskas.com/eigenfaces-tutorial/

डाटाबेस

मैं वास्तव में कुछ किया एक पीसी पर यद्यपि आपके जैसा ही नहीं है लेकिन यह अभी भी वही अवधारणा है। मैंने डेटाबेस में अपनी सभी छवियों को ब्लॉब डेटा प्रकारों के रूप में संग्रहीत किया, फिर आवश्यक होने पर उन्हें अपने प्रोग्राम में लोड किया।

संपादित

डेटाबेस के रूप में इस जगह है जहाँ सबसे बड़ी अड़चन है प्रणाली का एक विशेष रूप से मुश्किल हिस्सा है। अपने आवेदन में, मैं निम्नलिखित चरणों का पालन करना होगा ... डेटाबेस से

  1. ओपन आवेदन और हड़पने प्रशिक्षण छवियों
  2. उत्पन्न इन चित्रों के आधार पर प्रशिक्षण सेट
  3. एक बार 1 और 2 प्रणाली पूरी हो चुकी हैं बहुत तेज़ है क्योंकि यह सिर्फ प्रशिक्षण सेट के खिलाफ मान्यता करता है।

सौभाग्य से मेरे लिए, मेरा डेटाबेस सर्वर लैन पर स्थित था इसलिए गति एक समस्या नहीं थी, हालांकि मैं देख सकता हूं कि मोबाइल डिवाइस पर आपके पास सीमित डेटा कनेक्शन क्यों है (गति/बैंडविड्थ)। छवि छवियों में कमी के कारण आप छवियों को संकुचित कर सकते हैं, हालांकि इससे खराब पहचान दर हो सकती है और आपको डिवाइस पर डीकोड करना होगा। एप्लिकेशन में रिमोट डेटाबेस का पर्दाफाश करने का मुद्दा भी है, हालांकि मुझे विश्वास है कि PHP और JSON (और अन्य तकनीकों का उपयोग करके यह संभव है)।

Retrieving data from a remote database

शायद तुम डाटाबेस के साथ एक प्रारंभिक सिंक्रनाइज़ ताकि छवियों फोन पर कैश नहीं किया जाता कर सकता है? एक तरफ या दूसरा मुझे लगता है कि आपको शायद किसी भी समय फोन पर छवियों को ध्यान में रखना होगा।

डेटाबेस में मान्यता डेटा/छवियों को संग्रहीत करने का सबसे अच्छा तरीका पता लगाने में मुझे सबसे बड़ी चुनौतियों में से एक था इसलिए मुझे यह जानने में दिलचस्पी होगी कि आपको कोई अच्छी विधि मिलती है या नहीं।

+0

प्रतिक्रिया के लिए बहुत धन्यवाद । डेटाबेस के संबंध में, क्या प्रोग्राम डेटाबेस से कनेक्ट होता है और फिर सभी छवियों को डाउनलोड करता है और फिर प्रत्येक के लिए मान्यता करता है?यह मेरे लिए बहुत अधिक उपयोग होगा क्योंकि यह सीमित क्षमताओं वाला एक मोबाइल डिवाइस होगा। (शायद मैं गलत हूं इसलिए कृपया मुझे सही करें, मैं मंच पर हूं जहां मैं बाद में चीजों से संपर्क करने के तरीके पर एल्गोरिदम/psudo कोड को समझने की कोशिश कर रहा हूं)। –

+0

@RoryLester हाय, मैंने आपके कुछ सवालों के जवाब देने के लिए उत्तर अपडेट किया है। शुभ लाभ! – TomP89

+0

@ टॉमपी 8 9 फेस पहचान लिंक अब काम नहीं कर रहे हैं ... यदि आप चेहरा पहचान के लिए कुछ नए लिंक जानते हैं तो जवाब अपडेट करना बहुत अच्छा होगा। – Dave

2

चेहरा पहचान मशीन सीखने एल्गोरिदम के रूप में कार्यान्वित किया जा सकता है। This book में एक अध्याय है जो इस कार्य का वर्णन करता है और इसे कैसे कार्यान्वित करता है। पढ़ने के लायक!

यह एकल मूल्य अपघटन (एसवीडी) का उपयोग करता है, विशेष रूप से Tensor SVD method

12

जैसा कि आपने बताया, पहला कदम (चेहरे का पता लगाना) आईओएस 5 और CoreImage.framework के साथ आसान है। त्वरित उदाहरण:

CIImage *image = [CIImage imageWithCGImage:image_ref]; 
NSDictionary *options = [NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh forKey:CIDetectorAccuracy]; 
CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeFace context:nil options:options]; 
NSArray *features = [detector featuresInImage:image]; 

for (CIFaceFeature *feature in features) 
{ 
    CGRect face_bounds = [feature bounds]; 
    CGPoint mouth_position = [feature mouthPosition]; 
    // do something with these values 
} 

के साथ अपने प्रश्न (अर्थात चेहरे मान्यता) के दूसरे भाग के संबंध में, मैं किसी से अपने आप को जवाब देने के लिए अधिक योग्य है कि छोड़ जाएगा। :)

+10

यह चेहरा ** पहचान ** है, ** ** पहचान ** नहीं है। – UIAdam

+1

@UIAdam: उत्कृष्ट बिंदु, मैंने अपने उत्तर में यह स्पष्ट करने के लिए संपादित किया है। सवाल इंगित करता है कि ओपी कार्य के लिए दो भागों को समझता है और मैंने तदनुसार जवाब संशोधित किया है। –

9

शायद आप पेड्रो सेंटीइरो द्वारा midian प्रोजेक्ट को देखना चाहते हैं, जो ओपनसीवी के साथ आईओएस 5 पर फेस रिकग्निशन करता है। ,

यह मेरी libfacerec के कुछ हिस्सों का उपयोग करता है तो यह Eigenfaces, Fisherfaces और स्थानीय बाइनरी पैटर्न चेहरा पहचानने के लिए Histograms का समर्थन करता है: यह पर GitHub पर है।

1

हम चेहरा पहचानने एपीआई निम्नलिखित हैं: -

1. OpenCV 

2. Kairos 

3. CraftarAR 

4. AAFaceDetection 

5. MoodMe 

और मेरी राय में CraftAR अच्छा है आप ऑफ़लाइन आवेदन में उपयोग करना चाहते हैं और मामले में आप ऑनलाइन का उपयोग करना चाहते तो Kairos सबसे अच्छा है। जबकि OpenCV भी एक प्रसिद्ध और विश्वसनीय विकल्प है।

और OPENCV का सबसे अच्छा लाभ यह है कि यह खुला स्रोत है।

कृपया अधिक जानकारी प्राप्त करने के लिए Google पर इन्हें खोजें और यह देखने के लिए कि ये एपीआई कैसे काम करते हैं, जीथब उदाहरण देखें।