2012-04-22 11 views
7

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

"समान" से मेरा मतलब है कि सटीक डुप्लिकेट जो घुमाए गए हैं (90 डिग्री वृद्धि), रंग समायोजित, और/या फिर से सहेजे गए (हानिकारक जेपीईजी संपीड़न)।

मैं छवियों के "fingerprint" के साथ आने की कोशिश कर रहा हूं जैसे कि मैं उन्हें जल्दी देख सकता हूं।

सबसे अच्छा मैं अब तक आया हूं generate a grayscale histogram है। ग्रे के 16 डिब्बे और 256 रंगों के साथ, मैं आसानी से 16-बाइट फिंगरप्रिंट बना सकता हूं। यह काफी अच्छी तरह से काम करता है, लेकिन यह उतना मजबूत नहीं है जितना मैं चाहता हूं।

मैंने कोशिश की एक और समाधान छवियों का आकार बदलना था, rotate them ताकि वे सभी उसी तरह उन्मुख हो जाएं, उन्हें ग्रेस्केल करें, हिस्टोग्राम को सामान्य करें, और फिर उन्हें लगभग 8x8 तक कम करें, और रंगों को ग्रे के 16 रंगों में कम करें । हालांकि लघु छवियां बहुत समान थीं, लेकिन आमतौर पर वे एक पिक्सेल या दो से बंद होते थे, जिसका अर्थ है कि सटीक मिलान काम नहीं कर सकता है।

सटीक मिलान के बिना, मुझे विश्वास नहीं है कि समान तस्वीरों को समूहित करने का कोई भी प्रभावी तरीका है (हर तस्वीर को हर दूसरी तस्वीर की तुलना किए बिना, यानी, ओ (एन^2))।

तो, (1) मैं कैसे बना सकता हूं मैं एक फिंगरप्रिंट/हस्ताक्षर तैयार करता हूं जो ऊपर उल्लिखित आवश्यकताओं के लिए परिवर्तनीय है? या, (2) यदि यह संभव नहीं है, तो मैं एकल छवि देकर अन्य मीट्रिक का उपयोग कैसे कर सकता हूं, मुझे हजारों के डेटाबेस में यह सर्वोत्तम मिलान मिल सकता है?

+0

क्या आपको एक रैखिक हैश की आवश्यकता है (क्योंकि आपका डेटाबेस केवल btree सूचकांक का समर्थन करता है?) या आप एक जीएसटीटी संगत समाधान का उपयोग कर सकते हैं? (देखें: http://www.postgresql.org/docs/9.1/static/gist.html) – SingleNegationElimination

+0

@TokenMacGuy: मैंने अभी तक कुछ भी तय नहीं किया है। मैं इसके साथ EntityFramework का उपयोग करना पसंद करूंगा, जो मुझे विश्वास है कि मुझे इन्हें सीमित करता है: http://msdn.microsoft.com/en-us/data/dd363565 – mpen

+0

एनीम में एक मंगा समुदाय वास्तव में एक समाधान है जो आपको देता है प्रतिशत में छवियों के लिए निकटता। http://saucenao.com/ और iqdb प्रोजेक्ट http://iqdb.org/ इसका उपयोग करें। आप उनसे पूछ सकते हैं। हालांकि वे एक कस्टम डेटाबेस का उपयोग कर रहे हैं! – sinni800

उत्तर

4

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

TinEye आम तौर पर इसी तरह की छवियों नहीं मिल रहा है (यानी एक अलग एक ही विषय वस्तु के साथ छवि); इसे सटीक मिलान मिलते हैं जिनमें फसल, संपादित या आकार बदल दिया गया है।

अब, यह कहा गया है कि, मैं आपको यह जानकर जा रहा हूं कि आप क्या पूछ रहे हैं, और आप वास्तव में सभी समान छवियों को ढूंढने में सक्षम होना चाहते हैं, न केवल सटीक प्रतियों को संपादित करें।

यदि आप कोशिश करना चाहते हैं और विस्तार से इसमें शामिल होना चाहते हैं, तो मैं Sivic, Zisserman और Nister, Stewenius द्वारा कागजात ढूंढने का सुझाव दूंगा। इन दो कागजात (साथ ही हाल ही में कुछ अन्य लोगों) का विचार यह है कि छवि डेटाबेस में टेक्स्ट-सर्चिंग तकनीकों को आजमाकर लागू करना है और उसी तरह से छवि डेटाबेस को खोजना है, Google उसी दस्तावेज़ को खोजेगा (वेब ​​पेज) डेटाबेस।

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

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

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

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

+0

यदि आप मेरा दूसरा पैराग्राफ पढ़ते हैं, तो मैं वही बात बताता हूं (टिनई के रूप में)। यही वही है जो मेरा मतलब है "समान" (समान रूप से विरोध करने के लिए, जिसका अर्थ है * नहीं * फसल, संपादित, आकार बदलना, कभी भी 'विषय वस्तु' को ध्यान में रखना नहीं है)। यहां टिनई थोड़ा अस्पष्ट है, क्योंकि वे "सटीक" मिलान नहीं हैं; यही कारण है कि मैंने उस शब्द को नहीं चुना और विस्तृत करने का फैसला किया। – mpen

+0

इसके अलावा, मैं पाठ-आधारित खोज नहीं चाहता हूं। कम से कम वर्तमान में नहीं। मुझे बाद में उन कागजात पर एक नज़र रखना होगा और देखें कि क्या मैं अपनी कुछ भी प्रासंगिक खींच सकता हूं, लेकिन जो भी आप कह रहे हैं, उससे ऐसा नहीं लगता है कि मैं क्या कर रहा हूं। – mpen

+0

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