2016-03-27 20 views
7

का उपयोग करके एक साधारण छवि खोज बनाना, मुझे टेंसरफ्लो का उपयोग करके अपने ऐप में एक साधारण छवि खोज को कार्यान्वित करने की आवश्यकता है। आवश्यकताओं ये हैं:टेंसरफ्लो

  1. डाटासेट एक लाख चित्र के चारों ओर होता है, एक ही आकार के सभी, प्रत्येक युक्त एक अद्वितीय वस्तु और केवल कि आपत्ति है।
  2. खोज पैरामीटर एक ऐसी वस्तु है जो किसी ऑब्जेक्ट के फ़ोन कैमरे से लिया जाता है जो संभावित रूप से डेटासेट में होता है।

मैं कैमरा तस्वीर से छवि निकालने और आयताकार फार्म के लिए और एक परिणाम के रूप में यह सीधा करने के लिए प्रबंधित किया है, TinEye की तरह एक रिवर्स खोज छवि इंडेक्सर एक मैच खोजने के लिए सक्षम था।

अब मैं अपने डेटा-सेट के आधार पर एक मॉडल बनाने के लिए टेंसरफ्लो का उपयोग कर उस इंडेक्सर को पुन: पेश करना चाहता हूं (प्रत्येक छवि का फ़ाइल नाम एक अद्वितीय अनुक्रमणिका बनाएं)।

क्या कोई मुझे ट्यूटोरियल्स/कोड पर इंगित कर सकता है जो बताएगा कि इस तरह की चीज को कंप्यूटर दृष्टि शब्दावली में डाइविंग के बिना कैसे प्राप्त किया जाए?

बहुत सराहना की!

+0

TensorFlow का उपयोग क्यों करें? जबकि कई कंप्यूटर दृष्टि समस्याओं के लिए गहरी शिक्षा एक महान उपकरण है, यह शायद छवि खोज के लिए सही समाधान नहीं है। –

+0

मैं सुझावों के लिए खुला हूं :) – reflog

+0

मानक दृष्टिकोण है: स्थानीय सुविधाओं (एसआईएफटी या एसआईएफटी जैसे) निकालें -> दृश्य शब्द गणना करें -> समान दृश्य शब्दों (दस्तावेज़ खोज के समान) वाली छवियां खोजें। वैकल्पिक रूप से होमोग्राफी (या अन्य ज्यामितीय मॉडल) का उपयोग करके मिलान सत्यापित करें। आप बैग-ऑफ-शब्द छवि खोज –

उत्तर

8

Wikipedia article on TinEye कहता है कि Perceptual Hashing टिनई के समान परिणाम देगा। वे this detailed description of the algorithm संदर्भित करते हैं। लेकिन TinEye refuses to comment.


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

टेंसरफ्लो को गहरे तंत्रिका जाल के लिए बहुत अच्छा समर्थन है जो आपको बेहतर परिणाम दे सकता है। इस समस्या को हल करने के लिए आप टेंसरफ्लो में गहरे तंत्रिका नेट का उपयोग कैसे कर सकते हैं:

प्री-प्रशिक्षित एनएन (जैसे गूगलेनेट) से शुरू करें या ImageNet जैसे डेटासेट पर स्वयं को प्रशिक्षित करें। अब हमें एक नई तस्वीर दी गई है जिसे हम पहचानने की कोशिश कर रहे हैं। एनएन में फ़ीड करें। एनएन में काफी गहरी परत की सक्रियताओं को देखें। सक्रियण का यह वेक्टर छवि के लिए 'फिंगरप्रिंट' जैसा है। निकटतम फिंगरप्रिंट के साथ अपने डेटाबेस में तस्वीर पाएं। यदि यह पर्याप्त रूप से करीब है, तो शायद यह वही वस्तु है।

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


तुम भी this 2012 paper on image retrieval जो वस्तु समोच्च टुकड़े ऐसे झारना के रूप में विशेष रूप से चुनी सुविधाओं, क्षेत्रीय रंग क्षणों और के एक धसान का उपयोग करता है की तरह कुछ की कोशिश कर सकते। यह शायद बहुत अधिक काम है और यह नहीं है कि टेंसरफ्लो सबसे अच्छा क्या है।

Image in the database Image from the user. Should match something in the database.

यहाँ इसी तरह की छवियों के उस जोड़ी पर the demo on the pHash.org website का उपयोग करने का परिणाम हैं:


अद्यतन

ओपी अपने आवेदन से छवियों का एक उदाहरण जोड़ी प्रदान की गई है साथ ही पूरी तरह से असमान छवियों की एक जोड़ी पर।

मूली (रेडियल हैश): pHash determined your images are not similar with PCC = 0.518013

डीसीटी हैश: pHash determined your images are not similar with hamming distance = 32.000000.

मार/मैक्सिकन टोपी तरंगिका: pHash determined your images are not similar with normalized hamming distance = 0.480903.

ओपी द्वारा प्रदान की दो छवियों की तुलना करना मेरी मशीन से एक यादृच्छिक छवि के साथ अपनी छवियों की तुलना करना:

मूली (रेडियल हैश): pHash determined your images are not similar with PCC = 0.690619.

डीसीटी हैश: pHash determined your images are not similar with hamming distance = 27.000000.

मार/मैक्सिकन टोपी तरंगिका: pHash determined your images are not similar with normalized hamming distance = 0.519097.

निष्कर्ष

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

+1

के लिए ऑनलाइन देख सकते हैं, मुझे आश्चर्य है कि वे किस संकल्पनात्मक हैश का उपयोग कर रहे हैं, क्योंकि मैंने पीएचएएस ओपन सोर्स प्रोजेक्ट की कोशिश की और यह अत्याचारी परिणाम दिए ... – reflog

+0

क्या आप एक लिंक, कोड या अधिक जानकारी साझा कर सकते हैं आपने जो बनाया है और आपको क्या परिणाम मिले? – rafaelcosman

+1

यहां: http://imgur.com/a/be89U पहली छवि डेटाबेस में से एक है, दूसरा वह है जिसे मैं – reflog

0

https://github.com/wuzhenyusjtu/VisualSearchServer यह टेंसरफ्लो और इनसेप्शनवी 3 मॉडल का उपयोग कर समान छवि खोज का एक सरल कार्यान्वयन है। कोड दो विधियों को लागू करता है, एक सर्वर जो छवि खोज को संभालता है, और एक साधारण इंडेक्सर जो पूल 3 सुविधाओं के आधार पर निकटतम पड़ोसी मिलान करता है। enter image description here

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