algorithm दो छवियों की तुलना करने के लिए एल्गोरिदम




image image-processing (8)

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

क्या आप इस तरह की नौकरी करने के लिए कोई एल्गोरिदम जानते हैं?


ऐसा लगता है कि यह वास्तव में बहुत कम सरल है :-) निक का सुझाव एक अच्छा है।

शुरू करने के लिए, ध्यान रखें कि किसी भी सार्थक तुलना विधि अनिवार्य रूप से छवियों को एक अलग रूप में परिवर्तित करके काम करेगी - एक ऐसा फॉर्म जो समान सुविधाओं को चुनना आसान बनाता है। आमतौर पर, यह सामान बहुत हल्के पढ़ने के लिए नहीं बनाता है ...


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

http://en.wikipedia.org/wiki/RGB_color_space
http://upvector.com/index.php?section=tutorials&subsection=tutorials/colorspace


एक और उदाहरण में हफ़ ट्रांसफॉर्म नामक कुछ शामिल है। यह परिवर्तन अनिवार्य रूप से एक छवि को लाइनों के एक सेट में विघटित करता है। फिर आप प्रत्येक छवि में कुछ 'सबसे मजबूत' रेखाएं ले सकते हैं और देख सकते हैं कि वे लाइन अप करते हैं या नहीं। आप रोटेशन और स्केलिंग के लिए भी कोशिश करने और क्षतिपूर्ति करने के लिए कुछ अतिरिक्त काम कर सकते हैं - और इस मामले में, कुछ लाइनों की तुलना करने से पूरी छवियों में ऐसा करने से बहुत कम कम्प्यूटेशनल काम होता है - यह इतना बुरा नहीं होगा।

http://homepages.inf.ed.ac.uk/amos/hough.html
http://rkb.home.cern.ch/rkb/AN16pp/node122.html
http://en.wikipedia.org/wiki/Hough_transform


यदि आप अपनी छवियों की अवैध प्रतियों का पता लगाने के लिए पूरी तरह से एक अलग दृष्टिकोण पर विचार करने के इच्छुक हैं, तो आप watermarking विचार कर सकते हैं। (1.4 से)

... गुणवत्ता के नुकसान के बिना डिजिटल ऑब्जेक्ट में कॉपीराइट जानकारी डालें। जब भी एक डिजिटल ऑब्जेक्ट का कॉपीराइट प्रश्न में है, तो यह जानकारी सही मालिक की पहचान करने के लिए निकाली जाती है। कॉपीराइट धारक की पहचान के साथ मूल खरीदार की पहचान को एन्कोड करना भी संभव है, जो किसी भी अनधिकृत प्रतियों का पता लगाने की अनुमति देता है।

हालांकि यह एक जटिल क्षेत्र भी है, ऐसी तकनीकें हैं जो वॉटरमार्क जानकारी को सकल छवि परिवर्तन के माध्यम से जारी रखने की अनुमति देती हैं: (1.9 से)

... उचित ताकत का कोई सिग्नल ट्रांसफॉर्म वॉटरमार्क को हटा नहीं सकता है। इसलिए वॉटरमार्क को हटाने के इच्छुक एक समुद्री डाकू तब तक सफल नहीं होगा जब तक वे दस्तावेज़ को वाणिज्यिक हित के लिए बहुत ज्यादा न चूकें।

बेशक, एफएक इस दृष्टिकोण को लागू करने के लिए कहता है: "... बहुत चुनौतीपूर्ण" लेकिन यदि आप इसके साथ सफल होते हैं, तो आप इस बात पर भरोसा करते हैं कि छवि एक प्रतिलिपि है या नहीं, प्रतिशत की संभावना के बजाय।


एक विचार:

  1. छवि में कुछ बिंदुओं (जैसे सिफ्ट, सुरफ, ग्लो, या एलईएसएच) के स्केल- और ट्रांसफॉर्म-इनवेरिएंट डिस्क्रिप्टर खोजने के लिए कीपॉइंट डिटेक्टरों का उपयोग करें।
  2. दोनों छवियों (जैसे पैनोरामा सिलाई में) के समान वर्णनकर्ताओं के साथ कीपॉइंट्स को संरेखित करने का प्रयास करें, यदि आवश्यक हो तो कुछ छवि परिवर्तनों की अनुमति दें (जैसे स्केल और घुमाएं, या लोचदार खींचें)।
  3. यदि कई कीपॉइंट्स अच्छी तरह संरेखित होते हैं (ऐसे ट्रांसफॉर्म मौजूद हैं, तो किपॉइंट संरेखण त्रुटि कम है; या परिवर्तन "ऊर्जा" कम है, आदि), आपके पास समान छवियां हो सकती हैं।

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

प्रकार:

  • अंक के बजाय किनारों या अन्य विशेषताओं का पता लगाएं।

छवि में कोड एम्बेड करने के लिए आपको वॉटरमार्किंग योजना का उपयोग करने की आवश्यकता होगी। एक कदम वापस लेने के लिए, कुछ लोगों द्वारा सुझाए गए निम्न-स्तर के दृष्टिकोण (किनारे का पता लगाने आदि) के विपरीत, एक वॉटरमार्किंग विधि बेहतर है क्योंकि:

यह सिग्नल प्रोसेसिंग हमलों के लिए प्रतिरोधी है ► सिग्नल एन्हांसमेंट - sharpening, विपरीत, इत्यादि। ► फ़िल्टरिंग - औसत, कम पास, उच्च पास, इत्यादि। ► योजक शोर - गाऊशियन, वर्दी, आदि ► हानिकारक संपीड़न - जेपीईजी, एमपीईजी, आदि।

यह ज्यामितीय हमलों के लिए प्रतिरोधी है ► एफ़िन बदलता है ► डेटा में कमी - फसल, क्लिपिंग इत्यादि। ► यादृच्छिक स्थानीय विकृतियां ► वारिंग

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


पेपर पढ़ें: पोरिक्ली, फतेह, ओनेल तुज़ेल और पीटर मीर। "रिमैनियन मैनिफोल्ड्स पर मीन के आधार पर मॉडल अपडेट का उपयोग कर कॉन्वर्सिस ट्रैकिंग"। (2006) आईईईई कंप्यूटर विजन और पैटर्न पहचान।

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


यह सिर्फ एक सुझाव है, यह काम नहीं कर सकता है और मैं इस पर फोन करने के लिए तैयार हूं।

यह झूठी सकारात्मक उत्पन्न करेगा, लेकिन उम्मीद है कि झूठी नकारात्मक नहीं है।

  1. दोनों छवियों का आकार बदलें ताकि वे एक ही आकार के हों (मुझे लगता है कि चौड़ाई से लेकर लंबाई दोनों के अनुपात दोनों छवियों में समान हैं)।

  2. एक लापरवाह संपीड़न एल्गोरिदम (जैसे gzip) के साथ दोनों छवियों का एक बिटमैप संपीड़ित करें।

  3. उन फाइलों के जोड़े खोजें जिनमें समान फ़ाइल आकार हैं। उदाहरण के लिए, आप बस फाइलों के प्रत्येक जोड़ी को सॉर्ट कर सकते हैं कि फाइल आकार कितने समान हैं और शीर्ष एक्स को पुनर्प्राप्त कर सकते हैं।

जैसा कि मैंने कहा, यह निश्चित रूप से झूठी सकारात्मक उत्पन्न करेगा, लेकिन उम्मीद है कि झूठी नकारात्मक नहीं है। आप इसे पांच मिनट में कार्यान्वित कर सकते हैं, जबकि Porikil et। अल। शायद व्यापक काम की आवश्यकता होगी।


यदि आप लिनक्स चला रहे हैं तो मैं दो टूल्स सुझाऊंगा:

पैकेज hugin-tools से align_image_stack - एक कमांडलाइन प्रोग्राम है जो स्वचालित रूप से रोटेशन, स्केलिंग और अन्य विकृतियों को सही कर सकता है (यह ज्यादातर एचडीआर फोटोग्राफी को कंपोजिट करने के लिए है, लेकिन वीडियो फ्रेम और अन्य दस्तावेजों के लिए भी काम करता है)। अधिक जानकारी: http://hugin.sourceforge.net/docs/manual/Align_image_stack.html

पैकेज इमेजमैजिक से तुलना करें - एक प्रोग्राम जो दो छवियों में विभिन्न पिक्सेल की मात्रा को ढूंढ और गिन सकता है। यहां एक साफ ट्यूटोरियल है: http://www.imagemagick.org/Usage/compare/ -fuzz एन% uising आप त्रुटि सहनशीलता बढ़ा सकते हैं। जितना ऊंचा होगा उतना अधिक त्रुटि सहनशीलता जितनी अधिक होगी उतनी ही दो पिक्सेल की गणना होगी।

align_image_stack को किसी ऑफसेट को सही करना चाहिए ताकि तुलना कमांड को वास्तव में समान पिक्सल का पता लगाने का मौका मिले।


ये केवल विचार हैं जिन्हें मैंने समस्या के बारे में सोचा था, कभी कोशिश नहीं की लेकिन मुझे इस तरह की समस्याओं के बारे में सोचना पसंद है!

शुरू करने से पहले

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

छवि के विभिन्न संभावित क्षेत्रों को स्कैन करने पर विचार करें जो छवि के ज़ूम किए गए हिस्सों और विभिन्न स्थितियों और घूर्णन का प्रतिनिधित्व कर सकते हैं। यह मुश्किल हो रहा है अगर छवियों में से एक दूसरे के एक तिरछे संस्करण हैं, तो ये ऐसी सीमाएं हैं जिन्हें आपको पहचानना चाहिए और समझौता करना चाहिए।

Matlab छवियों का परीक्षण और मूल्यांकन करने के लिए एक उत्कृष्ट उपकरण है।

एल्गोरिदम का परीक्षण

आपको टेस्ट डेटा के बड़े मानव विश्लेषण सेट का परीक्षण करना चाहिए (न्यूनतम) जहां मैचों को पहले से जाना जाता है। यदि उदाहरण के लिए आपके टेस्ट डेटा में आपके पास 1,000 छवियां हैं, जिनमें से 5% मेल खाते हैं, तो अब आपके पास एक विश्वसनीय विश्वसनीय बेंचमार्क है। एक एल्गोरिदम जो 10% सकारात्मक पाता है वह उतना अच्छा नहीं है जितना हमारे परीक्षण डेटा में 4% पॉजिटिव पाता है। हालांकि, एक एल्गोरिदम सभी मैचों को पा सकता है, लेकिन इसमें 20% झूठी सकारात्मक दर भी है, इसलिए आपके एल्गोरिदम को रेट करने के कई तरीके हैं।

परीक्षण डेटा को यथासंभव कई प्रकार की गतिशीलता को कवर करने के लिए डिज़ाइन किया जाना चाहिए ताकि आप असली दुनिया में खोज सकें।

यह ध्यान रखना महत्वपूर्ण है कि प्रत्येक एल्गोरिदम उपयोगी होने के लिए यादृच्छिक अनुमान से बेहतर प्रदर्शन करना चाहिए, अन्यथा यह हमारे लिए बेकार है!

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

रंग बाल्टी

दो चित्रों के साथ, प्रत्येक पिक्सेल स्कैन करें और रंगों की गिनती करें। उदाहरण के लिए आपके पास 'बाल्टी' हो सकती है:

white
red
blue
green
black

(जाहिर है आप काउंटर का उच्च संकल्प होगा)। हर बार जब आप 'लाल' पिक्सेल पाते हैं, तो आप लाल काउंटर को बढ़ाते हैं। प्रत्येक बाल्टी रंगों के स्पेक्ट्रम का प्रतिनिधि हो सकती है, उच्च रिज़ॉल्यूशन अधिक सटीक होता है लेकिन आपको स्वीकार्य अंतर दर के साथ प्रयोग करना चाहिए।

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

किनारे का पता लगाना

एज डिटेक्शन का उपयोग करने के बारे में कैसे। alt text http://upload.wikimedia.org/wikipedia/en/thumb/8/8e/EdgeDetectionMathematica.png/500px-EdgeDetectionMathematica.png

दो समान चित्रों के साथ किनारे का पता लगाना आपको एक उपयोगी और काफी विश्वसनीय अद्वितीय पदचिह्न प्रदान करना चाहिए।

दोनों चित्र ले लो, और किनारे का पता लगाने लागू करें। शायद किनारों की औसत मोटाई को मापें और फिर संभावना को गणना करें कि छवि को स्केल किया जा सकता है, और यदि आवश्यक हो तो पुनर्विक्रय करें। नीचे विभिन्न घूर्णन में एक लागू गैबर फ़िल्टर (किनारे का पता लगाने का एक प्रकार) का एक उदाहरण है।

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

ब्याज के क्षेत्र

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

alt text http://meetthegimp.org/wp-content/uploads/2009/04/97.jpg

नीले रंग का निर्माण कार्यकर्ता ब्याज का एक क्षेत्र है और इसे खोज वस्तु के रूप में उपयोग किया जा सकता है। संभवतः कई तरीकों से आप रुचि के इस क्षेत्र से गुण / डेटा निकाल सकते हैं और अपने डेटा सेट को खोजने के लिए उनका उपयोग कर सकते हैं।

यदि आपके पास ब्याज के 2 से अधिक क्षेत्र हैं, तो आप उनके बीच की दूरी को माप सकते हैं। इस सरलीकृत उदाहरण को लें:

alt text http://www.per2000.eu/assets/images/3_dots_black_03.jpg

हमारे पास ब्याज के 3 स्पष्ट क्षेत्र हैं। क्षेत्र 1 और 2 के बीच की दूरी 200 पिक्सल हो सकती है, 1 और 3 400 पिक्सल और 2 और 3 200 पिक्सेल के बीच।

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

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

morphing

दो छवियों को Morphing करना एक छवि को चरणों के एक सेट के माध्यम से दूसरे में बदलने की प्रक्रिया है:

ध्यान दें, यह एक छवि को दूसरे में लुप्त करने के लिए अलग है!

कई सॉफ़्टवेयर पैकेज हैं जो छवियों को मोर्फ़ कर सकते हैं। यह परंपरागत रूप से एक संक्रमणकालीन प्रभाव के रूप में प्रयोग किया जाता है, दो छवियां आम तौर पर आधे रास्ते में मोर्चे नहीं होती हैं, अंतिम परिणाम के रूप में अन्य चरम पर एक चरम मोर्फ़।

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

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

यह तकनीक घुमावदार, विकृत, तिरछे, ज़ूम किए गए, सभी प्रकार की प्रतिलिपि बनाई गई छवियों के लिए अच्छी तरह से काम कर सकती है । फिर यह सिर्फ एक विचार है जो मैंने किया है, यह किसी भी शोध किए गए अकादमिक पर आधारित नहीं है, जहां तक ​​मुझे पता है (हालांकि मुझे कड़ी मेहनत नहीं है), इसलिए यह आपके लिए सीमित / कोई परिणाम नहीं हो सकता है।

ज़िप की जा रही

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

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

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

पारदर्शिता

फिर से मुझे यकीन नहीं है कि कुछ छवि प्रकारों, जीआईएफ पीएनजी इत्यादि के लिए पारदर्शिता डेटा कैसे संग्रहीत किया जाता है, लेकिन यह निकाला जा सकता है और आपके डेटा सेट पारदर्शीता की तुलना करने के लिए एक प्रभावी सरलीकृत कट आउट के रूप में कार्य करेगा।

संकेतों को बदलना

एक छवि सिर्फ एक सिग्नल है। यदि आप एक स्पीकर से शोर खेलते हैं, और आप एक ही स्पीकर में एक ही स्पीकर में एक ही स्पीकर में विपरीत शोर खेलते हैं, तो वे एक दूसरे को रद्द कर देते हैं।

alt text http://www.themotorreport.com.au/wp-content/uploads/2008/07/noise-cancellation.gif

छवियों में उलटा, और इसे अपनी दूसरी छवि में जोड़ें। जब तक आप एक सकारात्मक मिलान, या आंशिक मिलान प्रदान करने के लिए एक परिणामस्वरूप छवि नहीं पाते हैं, जहां तक ​​आपको पिक्सेल पर्याप्त सफेद (या काला? मैं इसे तटस्थ कैनवास के रूप में संदर्भित करता हूं) को तब तक स्केल करें।

हालांकि, दो छवियों पर विचार करें जो बराबर हैं, सिवाय इसके कि उनमें से एक को चमकदार प्रभाव लागू होता है:

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

मैंने कुछ वर्षों से रंग का अध्ययन नहीं किया है, और अगर रंग स्पेक्ट्रम रैखिक पैमाने पर है, तो मुझे यकीन नहीं है, लेकिन यदि आपने दोनों चित्रों के बीच रंग अंतर का औसत कारक निर्धारित किया है, तो आप इस मान का उपयोग डेटा से सामान्य करने के लिए डेटा को सामान्य करने के लिए कर सकते हैं यह तकनीक

वृक्ष डेटा संरचनाएं

सबसे पहले यह समस्या के लिए उपयुक्त नहीं लगता है, लेकिन मुझे लगता है कि वे काम कर सकते हैं।

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

यह शायद काम नहीं करेगा, लेकिन यह एक विचार है। ट्राई डेटास्ट्रक्चर लेक्सिकॉन को स्टोर करने में बहुत अच्छा है, उदाहरण के लिए एक डिक्शनरी। यह एक उपसर्ग पेड़ है। शायद एक त्रिभुज के बराबर एक छवि बनाना संभव है, (फिर से मैं केवल रंगों के बारे में सोच सकता हूं) एक त्रिभुज बनाने के लिए। यदि आप 300x300 छवि को 5x5 वर्गों में कम करते हैं, तो प्रत्येक 5x5 वर्ग को रंगों के अनुक्रम में विघटित करें जिससे आप परिणामी डेटा से ट्राई बना सकते हैं। यदि 2x2 वर्ग में शामिल हैं:

FFFFFF|000000|FDFD44|FFFFFF

हमारे पास एक बिल्कुल अनूठा त्रिज्या कोड है जो 24 स्तरों को बढ़ाता है, स्तरों को बढ़ाने / घटाने (आईई को हमारे उप वर्ग के आकार को कम करने / बढ़ाने) अधिक सटीक परिणाम प्राप्त कर सकता है।

त्रिभुज पेड़ों की तुलना करना उचित रूप से आसान होना चाहिए, और संभवतः प्रभावी परिणाम प्रदान कर सकते हैं।

अधिक विचार

मैं उपग्रह इमेजरी के वर्गीकरण के बारे में एक दिलचस्प पेपर ब्रीफ में ठोकर खाई, यह रूपरेखा:

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

उन मापों की अधिक विस्तार से जांच करना उचित हो सकता है, हालांकि उनमें से कुछ आपके डेटा सेट से प्रासंगिक नहीं हो सकते हैं।

विचार करने के लिए अन्य चीजें

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

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

वैकल्पिक माप और तकनीकों का संयोजन जिसमें प्रत्येक भारित वोट (उनकी प्रभावशीलता पर निर्भर) हो, एक ऐसा तरीका होगा जिससे आप एक प्रणाली बना सकें जो अधिक सटीक परिणाम उत्पन्न करे।

यदि इस उत्तर की शुरुआत में उल्लिखित कई एल्गोरिदम नियोजित करते हैं, तो सभी को सकारात्मक पाया जा सकता है लेकिन 20% की झूठी सकारात्मक दर है, यह अन्य एल्गोरिदम के गुण / शक्तियों / कमजोरियों का अध्ययन करने में रूचि होगी क्योंकि एक और एल्गोरिदम किसी अन्य से लौटे झूठे सकारात्मक को खत्म करने में प्रभावी हो।

कभी खत्म होने वाली परियोजना को पूरा करने के प्रयास में न आने के लिए सावधान रहें, शुभकामनाएँ!







image-recognition