चेहरे की छवियों के एक डेटाबेस में दिए गए चेहरे का पता लगाना


110

मैं अपने प्रोफ़ाइल चित्रों के माध्यम से ट्विटर उपयोगकर्ताओं के चेहरे को शामिल करने वाली एक छोटी परियोजना पर काम कर रहा हूं।

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

उन्हें फ़िल्टर करने के लिए, मैं प्रोग्रामेटिक रूप से कैसे बता सकता हूं कि क्या एक तस्वीर जस्टिन बीबर की है?


17
आपका विकास मंच क्या है? यह आसानी से .NET में किया जा सकता है क्योंकि यह अन्य सभी प्रोग्रामिंग वातावरणों से बेहतर है। बस Page.EradicateBieber () फ़ंक्शन को कॉल करें। Microsoft ने इस आवश्यकता की पूर्ति की और इसे हमारे लिए .NET 4.5 में आउट-ऑफ-द-बॉक्स प्रदान किया। (पुराने संस्करणों में आप में से किसी को इंतजार करना होगा।) (वह, निश्चित रूप से, सभी जीभ-में-गाल है।)

32
मुझे लगता है कि मैं सुरक्षित रूप से दावा कर सकता हूं कि एसओ को एक [justin-bieber]टैग की आवश्यकता नहीं है ।
स्केफमैन

2
मैं सुरक्षित रूप से यह कह सकता हूं कि लोग टिप्पणियों और इस सवाल पर करीबी विकल्प (वोट पाने के लायक) की तुलना में अधिक खर्च करते हैं ।

20
जस्टिन बीबर का एक ऑडियो फ़िल्टर भी अच्छा होगा

जवाबों:


49

एक बेहतर विचार उन सभी छवियों को रद्दी करना हो सकता है जो एक से अधिक उपयोगकर्ता के फ़ीड में दिखाई देती हैं - किसी भी मान्यता की आवश्यकता नहीं है।


2
हाँ, शायद आप एक तस्वीर को अस्वीकार करने से पहले 2-4 संभावित दोहराव (नए-बच्चे के मामले को संभालने के लिए) की सीमा निर्धारित करें। आप फोटो के साथ क्या करने जा रहे हैं, इस पर निर्भर करता है, मुझे लगता है।
मार्क बेसे

3
सरल, सुरुचिपूर्ण समाधान। +1।
रॉबर्ट हार्वे

13
लोग एक ही व्यक्ति के विभिन्न चित्रों का उपयोग कर सकते थे।
रेबेका चेर्नॉफ़

(+1) रेबेका में और (-1) @ पीपीपीपीपीपी: यह समस्या को हल करता है।
स्टीफन

4
वे कर सकते थे, लेकिन ज्यादातर मामलों में वे छवियों के अपेक्षाकृत छोटे पूल से चुनने वाले थे, इसलिए यह शायद अभी भी काम करेगा। किनारे के मामलों को धिक्कार है - आप सभी जानते हैं कि मेरी तस्वीर वैसे भी मेरे चाचा की है।
n

16

मुझे लग रहा है कि http://www.tineye.com/com Commercial_api यहां समाधान हो सकता है। बस ट्विटर प्रोफ़ाइल छवि को Tineye पर फेंक दें, देखें कि क्या यह उन छवियों (और संबद्ध URL) को लौटाता है जिन्हें स्पष्ट रूप से पहचाना जा सकता है (या स्वचालित रूप से सरल शब्द-गणना तर्क का उपयोग करके) संबंधित है (या) जो कि * * से कम है।

साधारण!


1
Google ने हाल ही में छवि खोज की घोषणा की: youtube.com/watch?v=t99BfDnBZcI मुझे नहीं पता कि उसके पास अभी तक एपीआई है, लेकिन यह एक विकल्प हो सकता है।
10

11

चूंकि आप केवल उन लोगों को फ़िल्टर कर सकते हैं जो स्पष्ट चित्र फ़ोटो हैं, इसलिए मैं मान रहा हूं कि आपके पास कच्ची छवियों को उन विशेषताओं में बदलने के लिए फ़ीचर पीढ़ी की कुछ विधि है जो मशीन सीखने के उद्देश्यों के लिए उपयोगी हैं। यदि यह सच है, तो आप एल्गोरिथ्म को ज्ञात बीबर तस्वीरों का एक गुच्छा और साथ ही ज्ञात गैर-बीबर्स का एक गुच्छा खिलाकर एक वर्गीकरण एल्गोरिदम (उनमें से बहुत सारे: तंत्रिका नेटवर्क, आदि) को प्रशिक्षित करने का प्रयास कर सकते हैं। एक बार जब आप मॉडल को प्रशिक्षित कर लेते हैं, तो यह भविष्यवाणी करने के लिए इस्तेमाल किया जा सकता है कि क्या एक नई छवि बीबर है या नहीं।

इस तरह की निगरानी की गई सीखने की तकनीक से आपको डेटा प्राप्त करने की आवश्यकता होती है जहां आप सही उत्तर (बीबर या नहीं) जानते हैं, लेकिन वे संभवतः Google छवि खोज से पाए जा सकते हैं। इसके लिए यह भी आवश्यक है कि आपके पास सही प्रकार की सुविधाएँ हों, और मैं इमेज प्रोसेसिंग या आपके एल्गोरिदम के बारे में पर्याप्त नहीं जानता कि क्या यह एक बड़ी कमी है।


2
दुर्भाग्य से, फीचर जेनरेशन स्टेप सबसे कठिन और महत्वपूर्ण दोनों है :(।
स्टिफेन

@steffen कुछ सुझाव है कि ओपी चेहरे के साथ खिलवाड़ कर रहा है, इसलिए कुछ डिस्क्रिप्टर जनरेटर है।

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

1
राइट, फीचर जनरेशन स्टेप हार्ड पार्ट है। मैं मान रहा था कि ओपी ऐसा कर सकता है क्योंकि उसके पास पहले से ही छवियों के प्रसंस्करण के लिए कुछ तंत्र है। भले ही वह करता है, लेकिन वे केवल चेहरे का पता लगाने के लिए उपयोगी विशेषताएं हो सकते हैं / जो कि Bieber के बजाय चेहरा हो / नहीं ... यह वास्तव में सुविधाओं पर निर्भर करता है।
माइकल मैकगोवन

7

आप eigenfaces, http://en.wikipedia.org/wiki/Eigenface जैसी पद्धति का उपयोग कर सकते हैं । निम्नलिखित प्रक्रिया के माध्यम से एक अच्छा चलना है और साथ ही विभिन्न कार्यान्वयनों के लिए लिंक है।

http://www.pages.drexel.edu/~sis26/Eigenface%20Tutorial.htm

यहां से एक वर्गीकरण दृष्टिकोण में इसका उपयोग करना, एक मॉडल को प्रशिक्षित करना और फिर मामलों की भविष्यवाणी करना आम है। आप जानी-मानी हस्तियों के एक समूह को प्रशिक्षित करके ऐसा कर सकते हैं और यदि आप अपने सेलेब्रिटी के प्रशिक्षित मॉडल के रूप में ट्विटर से चेहरे की भविष्यवाणी करते हैं, तो इसे हटा दें। इसके समान है http://blog.cordiner.net/2010/12/02/eigenfaces-face-recognition-matlab/

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




3

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

लेकिन चेहरे की पहचान पर काम करने वाली एक बहुत अच्छी परियोजना है http://opencv-code.com/Opencv_Face_Detection


1
AFAIK OpenCV और लिंक की गई साइट केवल फेस डिटेक्शन लागू करती है (चित्र में कहीं एक इंसानी चेहरा है?) जो केवल फेस रिकग्निशन (जिसका चेहरा है?) के लिए पहला कदम है
f3lix

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.