Google अपनी "सर्च बाय इमेज" साइट के लिए किस एल्गोरिदम का उपयोग करता है?


45

Google छवि खोज कैसे काम करती है, इसका आपका सबसे अच्छा अनुमान क्या है? मैं एक तस्वीर अपलोड कर सकता हूं और इसी तरह की छवियां खोज सकता हूं। इसी तरह की छवियों की पहचान करने के लिए क्या एल्गोरिथ्म का उपयोग करता है?


वे छवि का हिस्टोग्राम स्टोर कर सकते हैं। यह एक ही छवि के विभिन्न पैमानों और संपीड़न कलाकृतियों या जो भी हो, के कारण छोटे अंतर के लिए काम करता है।
हीलियम

1
हिस्टोग्राम्स स्थानिक जानकारी पर कब्जा नहीं करते हैं; आपको झूठे मेल मिलेंगे।
इमरे

तंत्रिका नेटवर्क: research.googleblog.com/2015/06/…
endolith

जवाबों:


29

मुझे नहीं पता कि Google किस एल्गोरिथ्म का उपयोग करता है। लेकिन, जब से आप एक सर्वश्रेष्ठ अनुमान चाहते हैं, मुझे कुछ विचार देना चाहिए कि एक समान प्रणाली का निर्माण कैसे किया जा सकता है

खोज-छवि-आधार-दर-छवि से निपटने वाले पूरे क्षेत्र को सामग्री आधारित छवि पुनर्प्राप्ति (CBIR) कहा जाता है । यह विचार किसी भी तरह, एक छवि प्रतिनिधित्व का निर्माण करता है (जरूरी नहीं कि मनुष्य द्वारा समझा जा सकता है) जिसमें छवि सामग्री के बारे में जानकारी हो

दो बुनियादी दृष्टिकोण मौजूद हैं:

  • निम्न-स्तरीय (स्थानीय) विशेषताओं का उपयोग करके पुनर्प्राप्ति: छवियों के विशिष्ट भागों में रंग, बनावट, आकार (एक छवि स्थानीय विशेषताओं के वर्णनकर्ताओं का एक संग्रह है)
  • शब्दार्थ दृष्टिकोण जहां एक छवि है, किसी तरह, वस्तुओं और उनके संबंधों के संग्रह के रूप में प्रतिनिधित्व किया जाता है

निम्न-स्तरीय स्थानीय दृष्टिकोण पर बहुत अच्छी तरह से शोध किया गया है। सबसे अच्छा वर्तमान दृष्टिकोण स्थानीय सुविधाओं को निकालता है (यहां शामिल फीचर निष्कर्षण एल्गोरिदम का एक विकल्प है) और छवियों की तुलना करने के लिए अपने स्थानीय डिस्क्रिप्टर (फिर से, डिस्क्रिप्टर की पसंद) का उपयोग करता है।

नए कार्यों में, स्थानीय डिस्क्रिप्टर को पहले क्लस्टर किया जाता है और फिर क्लस्टर्स को दृश्य शब्दों के रूप में माना जाता है - तकनीक तब Google दस्तावेज़ खोज के समान होती है, लेकिन पत्र-शब्दों के बजाय दृश्य शब्दों का उपयोग करना ।

आप दृश्य शब्दों को भाषा में शब्द जड़ों के समतुल्य मान सकते हैं: उदाहरण के लिए, शब्द: काम, काम, काम सभी एक ही शब्द मूल के हैं।

इन प्रकार के तरीकों की कमियों में से एक यह है कि वे आमतौर पर कम बनावट वाली छवियों पर प्रदर्शन करते हैं।

मैंने पहले से ही इन दृष्टिकोणों का विवरण देते हुए बहुत सारे उत्तर दिए और देखे हैं, इसलिए मैं उन उत्तरों के लिंक प्रदान करूंगा:

  • CBIR: 1 , 2
  • सुविधा निष्कर्षण / विवरण: 1 , 2 , 3 , 4

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

जैसा कि मैं वर्तमान में इन दृष्टिकोणों के अनुसंधान के बीच में हूं, मैं कोई निष्कर्ष नहीं निकाल सकता। अब, उस ने कहा, मैंने इस उत्तर में इन तकनीकों के पीछे एक सामान्य विचार समझाया ।

एक बार फिर, शीघ्र ही: सामान्य विचार एक पेड़ के आकार की संरचना के साथ एक छवि का प्रतिनिधित्व करना है, जहां पत्तियों में छवि का विवरण होता है और वस्तुओं को ऐसे पेड़ों की जड़ के करीब नोड्स में पाया जा सकता है। फिर, किसी तरह, आप उप-पेड़ों की तुलना विभिन्न छवियों में निहित वस्तुओं की पहचान करने के लिए करते हैं।

यहां विभिन्न वृक्ष अभ्यावेदन के लिए कुछ संदर्भ दिए गए हैं। मैंने उन सभी को नहीं पढ़ा, और उनमें से कुछ सीबीआईआर के बजाय विभाजन के लिए इस तरह के प्रतिनिधित्व का उपयोग करते हैं, लेकिन फिर भी, वे यहां हैं:


22

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

अवधारणात्मक हैशिंग

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

इसके सबसे बुनियादी रूप में, आप इसे इस प्रकार लागू कर सकते हैं:

  1. छवि को ग्रेस्केल में बदलें

  2. अपनी छवि को शून्य बनाओ

  3. अपनी छवि को थंबनेल आकार में क्रश करें, [32x32]
  4. दो आयामी असतत कोसाइन ट्रांसफॉर्म चलाएं
  5. सबसे महत्वपूर्ण कम आवृत्ति घटकों को ऊपर [8 x 8] बाईं ओर रखें
  6. घटकों के संकेत के आधार पर, ब्लॉक को बायनेरीज़ करें

परिणाम एक लचीला 64 बिट हैश है, क्योंकि यह छवि के कम आवृत्ति घटकों पर आधारित है। इस विषय पर एक संस्करण प्रत्येक छवि को 64 सबब्लॉक्स में विभाजित करना होगा और वैश्विक छवि का मतलब स्थानीय सबब्लॉक माध्य से तुलना करना होगा और तदनुसार 1 या 0 लिखना होगा।

अवधारणात्मक हैशिंग को फ़ैश द्वारा उदाहरण के लिए लागू किया जाता है

बैग-ऑफ-वर्ड मॉडल

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

अपने सबसे सरल रूप में, कोई भी चित्र निम्नानुसार कर सकता है:

  1. उदाहरण के लिए, तथाकथित विफ़ल्ट लाइब्रेरी का उपयोग करते हुए, SIFT सुविधाओं को तैनात करें , जो SIFT फ़ीचर पॉइंट्स और एक SIFT डिस्क्रिप्टर प्रति बिंदु का पता लगाएगा। यह वर्णनकर्ता मूल रूप से उस सुविधा बिंदु के आस-पास की छवि पैच का एक स्मार्ट तरीके से निर्मित टेम्पलेट है। ये वर्णनकर्ता आपके कच्चे शब्द हैं।
  2. सभी संबंधित छवियों के लिए SIFT विवरणों को इकट्ठा करें

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

  1. सभी SIFT डिस्क्रिप्टर लें और उन्हें क्लस्टर करें, उदाहरण के लिए k- साधन जैसे एल्गोरिथ्म के साथ। यह आपके डिस्क्रिप्टर डेटा में सेंट्रोइड के साथ समूहों की एक पूर्व निर्धारित संख्या पाएगा। ये केन्द्रक आपके नए दृश्य शब्द हैं।
  2. अब प्रति चित्र और इसके मूल पाए गए विवरणों के अनुसार, आप उन विवरणों को देख सकते हैं जिन्हें इन विवरणकों को सौंपा गया था। इससे, आपको पता चलता है कि आपकी छवि में 'सेंट' कौन हैं। ये केन्द्रक या दृश्य शब्द आपकी छवि के नए शब्दार्थक विवरणक बन जाते हैं जिन्हें एक उल्टे फ़ाइल में संग्रहीत किया जा सकता है।

एक छवि क्वेरी, उदाहरण के लिए मुझे क्वेरी-छवि के समान चित्र मिलते हैं, फिर निम्नानुसार हल किया जाता है:

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

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

1
@penelope मैंने वास्तव में वर्षों पहले लेख में पढ़ा है, जहां लेखक मनमाने त्रिकोण में एक छवि को विभाजित करते हैं। और ट्रेस-ट्रांसफ़ॉर्म है जिसे एक अवधारणात्मक हैश के आधार के रूप में भी इस्तेमाल किया गया है। मैं तुम्हारे पास वापस मिलने आऊँगा।
मौरिस 22:15 '22

इस बारे में मैं जो कुछ भी आपसे पूछना चाहता हूं, वह इस सवाल के दायरे से बहुत परे है, इसलिए मैंने एक नई शुरुआत की है । बुनियादी तकनीक के बारे में कोई भी अधिक जानकारी / संदर्भ अभी भी बहुत अच्छा होगा, या तो इस उत्तर में या वह भी। आगे
देखिए

2

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

इस संबंध में सुझाए गए कागज:

और ओपन सोर्स डीप लर्निंग इमेज रिट्रीवल इंप्लीमेंटेशन (बाद के पेपर): https://github.com/paucarre/tiefvision

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