14

वर्तमान में मैं एंड्रॉइड फोन के लिए ऐप पर काम कर रहा हूं। हम एक चेहरे की विशेषताओं का पता लगाना चाहते हैं। कार्यक्रम आंखों, नाक, मुंह और चेहरे के किनारे की स्थिति का पता लगाने में सक्षम होना चाहिए।एंड्रॉइड - फेस फीचर डिटेक्शन

शुद्धता ठीक होना चाहिए लेकिन इसे परिपूर्ण होने की आवश्यकता नहीं है। चीजों को गति देने के लिए कुछ सटीकता खोना ठीक है। सभी चेहरे सामने आएंगे और हम पहले सुविधाओं की अनुमानित स्थिति जानेंगे। हमें लाइव पहचान की आवश्यकता नहीं है। सुविधाओं को सहेजी गई छवियों से निकाला जाना चाहिए। पहचान का समय केवल तब तक होना चाहिए जब तक कि यह उपयोगकर्ता अनुभव को परेशान न करे। तो शायद 2 या 3 सेकंड भी ठीक है।

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

मैंने बहुत गुस्सा किया और मुझे कई रोचक चीज़ें मिलीं। एंड्रॉइड एपीआई में एक चेहरा पहचान भी है। लेकिन लौटा चेहरा वर्ग (http://developer.android.com/reference/android/media/FaceDetector.Face.html) केवल आंखों की स्थिति में शामिल है। यह हमारे आवेदन के लिए कम है। फिर एंड्रॉइड या जावासीवी के लिए ओपनसीवी भी है। आपको क्या लगता है कि काम करने का अच्छा विचार है? किस पुस्तकालय के लिए अच्छे दस्तावेज हैं, ट्यूटोरियल?

+1

कृपया आप अपने शोध में किसी भी सफलता है? मैं कुछ ऐसा करने की कोशिश कर रहा हूं। कृपया मुझे बताओ! –

उत्तर

8

ओपनसीवी में a tutorial for this purpose है, दुर्भाग्य से सी ++ केवल इसलिए है कि आपको इसे एंड्रॉइड में परिवर्तित करना होगा।

यदि आप ड्रॉइंग या एसडीकार्ड छवियों से छवियों का पता लगा रहे हैं तो आप एंड्रॉइड, this is a simple example में फेसडिएक्शन एपीआई भी आज़मा सकते हैं। या अधिक हालिया Camera.Face API जो कैमरा छवि के साथ काम करता है।

यदि आप How to take picture from camera. को पहले पढ़ने के बजाय गतिशील समय पर अपने कैमरे से छवि चाहते हैं, लेकिन मैं आपको आधिकारिक ओपनसीवी एंड्रॉइड नमूने की जांच करने और उनका उपयोग करने की सलाह दूंगा।

अपडेट किया गया:

मैड हैटर उदाहरण SurfaceView साथ कैमरा के दृष्टिकोण का उपयोग करें। यह आशाजनक तेजी से। Mad Hatter पर एक नज़र डालें।

प्रासंगिक कोड, मामले में लिंक नीचे चला जाता है, यह है:

public class FaceDetectionListener implements Camera.FaceDetectionListener { 
    @Override 
    public final void onFaceDetection(Face[] faces, Camera camera) { 
     if (faces.length > 0) { 
      for (Face face : faces) { 
       if (face != null) { 
        // do something 
       } 
      } 
     } 
    } 
} 
+0

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

+1

फेसडेटेक्शन एपीआई दूरी बीडब्ल्यू आंखों और इस तरह की अन्य फीचर के आधार पर चेहरे का पता लगाता है। तो अन्वेषण करने का प्रयास करें। अगर कोई भाग्य नहीं मिलता है तो ओपनसीवी – Sameer

+0

के लिए जाएं, मैंने प्रलेखन में देखा था। लेकिन मैं सोच रहा था कि अगर मैं आंखों की स्थिति जानता हूं तो अन्य सुविधाओं को निकालना वास्तव में आसान है। एंड्रॉइड 4 आपको पतंग के लिए भी कॉर्ड देता है। तो मैं उस तरह की खोज कर रहा था – tschoartschi

4

मैं एक ऐसी ही परियोजना पर काम कर रहा हूँ। मैंने FaceDetection API के साथ कुछ परीक्षण किया है और आपको बता सकता है कि अगर आप आंखों, नाक, मुंह और किनारों का पता लगाना चाहते हैं तो यह आपकी मदद नहीं करेगा। यह एपीआई केवल आपको आंखों का पता लगाने की अनुमति देता है। यदि आप चेहरे की पहचान को कार्यान्वित करना चाहते हैं तो यह बेकार है क्योंकि चेहरे का पता लगाने के दौरान आपको केवल आंखों की तुलना में अधिक सुविधाएं चाहिए।

आपके पहले उत्तर पर एक टिप्पणी: आपको वास्तव में चेहरे का पता लगाने की आवश्यकता है। फीचर्स फीचर्स फेस डिटेक्शन का हिस्सा है और ये फीचर्स चेहरे पहचान एप में पहला कदम है। ओपनसीवी के साथ आप इन सुविधाओं (आंखों, नाक, मुंह इत्यादि) प्राप्त करने के लिए हायर जैसी सुविधाओं का उपयोग कर सकते हैं।

हालांकि मुझे इसे अलग-अलग .cpp फ़ाइल के साथ ओपनसीवी कार्यों का उपयोग करने के लिए कुछ जटिल पाया गया है। जेएनआईएक्सपोर्ट नामक एक चीज है जो आपको एक .cpp फ़ाइल के अंदर ओपनसीवी कार्यों के साथ एक एंड्रॉइड गैलरी छवि को संपादित करने की अनुमति देती है। ओपनसीवी में एक नमूना हैर-जैसी सुविधा का पता लगाने .cpp फ़ाइल जिसका उपयोग चेहरे का पता लगाने के लिए किया जा सकता है (और अन्य एल्गोरिदम के साथ दूसरे चरण के रूप में मान्यता)।

क्या आप विंडोज या लिनक्स पर विकास कर रहे हैं? मैं विंडोज़ का उपयोग कर रहा हूं और इसके साथ ओपनसीवी सेट अप करने के लिए आपके द्वारा लिंक किए गए ट्यूटोरियल का उपयोग करने में कामयाब नहीं रहा हूं। हालांकि मेरे पास एक्लिप्स में एक काम करने वाली विंडोज ओपनसीवी पर्यावरण है और ओपनसीवी 2.3.1 से सभी नमूने मिलते हैं। शायद हम एक दूसरे की मदद कर सकते हैं और कुछ जानकारी/परिणाम साझा कर सकते हैं? कृपया मुझे बताओ।

+0

फेसडिएक्शन एपीआई के लिए, यह केवल आंखों और दूरी के बीच का पता लगाने लगता है उनके बीच, लेकिन क्या व्यक्तिगत आंखों को प्राप्त करना संभव है? या यह जानना संभव है कि चेहरा मोटा हुआ है? –

0

यह एक अच्छी क्वेरी है। मुझे लगता है कि अगर आपको आंखों के लिए फीचर पॉइंट मिलते हैं तो हम आंखों से अन्य बिंदुओं की अनुमानित दूरी को जानकर अन्य बिंदुओं की गणना भी कर सकते हैं।

इस पत्र मैं क्या कहने की कोशिश कर रहा हूँ के बारे में अधिक जानने के लिए देखें: http://klucv2.googlecode.com/svn/trunk/docs/detection%20of%20facial%20feature%20points%20using%20anthropometric%20face%20model.pdf

मुझे आशा है कि इस मदद करता है।

2

मैं इस माइक्रोसॉफ्ट एपीआई द्वारा प्रदान चेहरा भावना का पता लगाने के लिए एक अच्छा समाधान पाया है: वहाँ एक ट्यूटोरियल यहाँ है। यह एपीआई एक JSON प्रतिक्रिया और भावना ग्राफ देता है। आप अच्छे एपीआई के लिए इस एपीआई को आजमा सकते हैं।

जज्बात एपीआई

जज्बात मान्यता भावनाओं एक छवि में एक या अधिक लोगों के साथ-साथ रिटर्न चेहरे के लिए एक सीमांकन बॉक्स द्वारा व्यक्त की पहचान करता है। पता लगाई गई भावनाएं खुशी, उदासी, आश्चर्य, क्रोध, डर, अवमानना, और घृणित या तटस्थ हैं।

  • समर्थित इनपुट छवि प्रारूपों में जेपीईजी, पीएनजी, जीआईएफ (पहला फ्रेम), बीएमपी शामिल है। छवि फ़ाइल का आकार 4 एमबी से बड़ा नहीं होना चाहिए।
  • एक उपयोगकर्ता पहले से ही चेहरा एपीआई का आह्वान किया है, तो वे एक वैकल्पिक इनपुट के रूप में चेहरे आयतों प्रस्तुत कर सकते हैं। अन्यथा, भावना एपीआई पहले आयतों की गणना करेगा।
  • पता लगाने योग्य चेहरा आकार सीमा 4096x4096 पिक्सल के लिए 36x36 है। इस सीमा से बाहर का सामना नहीं किया जाएगा।
  • प्रत्येक छवि के लिए, चेहरे की अधिकतम संख्या 64 है और चेहरे को आयत क्रम में चेहरे आयताकार आकार द्वारा क्रमबद्ध किया जाता है। यदि चेहरे का पता चला है, तो एक खाली सरणी वापस कर दी जाएगी।
  • कुछ चेहरे तकनीकी चुनौतियों का सामना करता है, उदा के कारण का पता नहीं किया जा सकता है बहुत बड़े चेहरे के कोण (सिर-मुद्रा), बड़े प्रकोप। फ्रंटल और निकट-सामने के चेहरे के सर्वोत्तम परिणाम हैं। भावनाओं की अवमानना ​​और घृणित प्रयोगात्मक हैं।

https://www.microsoft.com/cognitive-services/en-us/emotion-api

+0

हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/1216040 9) –

+1

धन्यवाद @ लुकाडेटोमी –

संबंधित मुद्दे