ये केवल विचार हैं जो मैंने समस्या के बारे में सोचते हैं, कभी कोशिश नहीं की लेकिन मुझे इस तरह की समस्याओं के बारे में सोचना पसंद है!
आरंभ करने से पहले
चित्रों को सामान्य, अगर एक अन्य की तुलना में एक उच्च संकल्प है, इसलिए संकल्प का आकार छोटा करने पर विचार प्रदान कर सकते हैं विकल्प पर विचार कि उनमें से एक दूसरे के एक संपीड़ित संस्करण है अधिक सटीक परिणाम।
छवि के विभिन्न संभावित क्षेत्रों को स्कैन करने पर विचार करें जो छवि के ज़ूम किए गए हिस्सों और विभिन्न स्थितियों और घूर्णन का प्रतिनिधित्व कर सकते हैं। यह मुश्किल हो रहा है अगर छवियों में से एक दूसरे के एक तिरछे संस्करण हैं, तो ये ऐसी सीमाएं हैं जिन्हें आपको पहचानना चाहिए और समझौता करना चाहिए।
Matlab छवियों का परीक्षण और मूल्यांकन करने के लिए एक उत्कृष्ट उपकरण है।
एल्गोरिदम
आप (कम से कम) का परीक्षण करना चाहिए एक बड़ी मानव परीक्षण डाटा जहां मैचों पहले से जाना जाता है के सेट पर विश्लेषण परीक्षण। यदि उदाहरण के लिए आपके टेस्ट डेटा में आपके पास 1,000 छवियां हैं, जिनमें से 5% मेल खाते हैं, तो अब आपके पास एक विश्वसनीय विश्वसनीय बेंचमार्क है। एक एल्गोरिदम जो 10% सकारात्मक पाता है वह उतना अच्छा नहीं है जितना हमारे परीक्षण डेटा में 4% पॉजिटिव पाता है। हालांकि, एक एल्गोरिदम सभी मैचों को पा सकता है, लेकिन इसमें 20% झूठी सकारात्मक दर भी है, इसलिए आपके एल्गोरिदम को रेट करने के कई तरीके हैं।
परीक्षण डेटा को यथासंभव कई प्रकार की गतिशीलता को कवर करने के लिए डिज़ाइन किया जाना चाहिए ताकि आप वास्तविक दुनिया में खोज सकें।
यह ध्यान रखना महत्वपूर्ण है कि प्रत्येक एल्गोरिदम उपयोगी होने के लिए यादृच्छिक अनुमान से बेहतर प्रदर्शन करना चाहिए, अन्यथा यह हमारे लिए बेकार है!
फिर आप अपने सॉफ़्टवेयर को वास्तविक दुनिया में नियंत्रित तरीके से लागू कर सकते हैं और इसके परिणाम उत्पन्न करने का विश्लेषण करना शुरू कर सकते हैं। यह सॉफ़्टवेयर प्रोजेक्ट की तरह है जो इन्फिनिटम के लिए जा सकती है, हमेशा आपके द्वारा किए जा सकने वाले बदलाव और सुधार होते हैं, इसे ध्यान में रखना महत्वपूर्ण है क्योंकि इसे डिजाइन करते समय इसे कभी खत्म होने वाली परियोजना के जाल में गिरना आसान नहीं होता है।
रंग बाल्टी
दो चित्रों के साथ, प्रत्येक पिक्सेल स्कैन और रंग गिनती। उदाहरण के लिए आपके पास 'बाल्टी' हो सकती है:
white
red
blue
green
black
(जाहिर है कि आपके पास काउंटर का उच्च रिज़ॉल्यूशन होगा)। हर बार जब आप 'लाल' पिक्सेल पाते हैं, तो आप लाल काउंटर को बढ़ाते हैं। प्रत्येक बाल्टी रंगों के स्पेक्ट्रम का प्रतिनिधि हो सकती है, उच्च रिज़ॉल्यूशन अधिक सटीक होता है लेकिन आपको स्वीकार्य अंतर दर के साथ प्रयोग करना चाहिए।
एक बार आपके पास योग होने के बाद, दूसरी छवि के लिए कुल योग की तुलना करें। आप पाएंगे कि प्रत्येक छवि में एक बिल्कुल अद्वितीय पदचिह्न है, जो मैचों की पहचान करने के लिए पर्याप्त है।
एज का पता लगाने
कैसे Edge Detection उपयोग के बारे में। alt text http://upload.wikimedia.org/wikipedia/en/thumb/8/8e/EdgeDetectionMathematica.png/500px-EdgeDetectionMathematica.png
दो समान चित्रों के साथ किनारे का पता लगाने से आपको एक उपयोगी और काफी विश्वसनीय अद्वितीय पदचिह्न प्रदान करना चाहिए।
दोनों चित्र लें, और किनारे का पता लगाएं। शायद किनारों की औसत मोटाई को मापें और फिर संभावना को गणना करें कि छवि को स्केल किया जा सकता है, और यदि आवश्यक हो तो पुनर्विक्रय करें। नीचे विभिन्न घूर्णन में लागू Gabor Filter (किनारे का पता लगाने का एक प्रकार) का एक उदाहरण है।
पिक्सेल के लिए चित्रों पिक्सेल की तुलना करें, मैच और गैर मैचों गिनती। अगर वे त्रुटि की एक निश्चित दहलीज के भीतर हैं, तो आपके पास एक मैच है। अन्यथा, आप एक निश्चित बिंदु तक संकल्प को कम करने का प्रयास कर सकते हैं और देख सकते हैं कि एक मैच की संभावना में सुधार होता है या नहीं।
ब्याज
कुछ छवियों के क्षेत्र हित के विशिष्ट क्षेत्रों/क्षेत्रों पड़ सकता है। ये क्षेत्र शायद शेष छवि के साथ अत्यधिक विपरीत हैं, और मिलान खोजने के लिए आपकी अन्य छवियों में खोजने के लिए एक अच्छी वस्तु है। उदाहरण के लिए इस छवि को लें:
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 कदम का एक सेट के माध्यम से दूसरे में एक छवि को बदलने की प्रक्रिया है:
ध्यान दें, यह दूसरे में एक छवि fading करने के लिए अलग है !
कई सॉफ़्टवेयर पैकेज हैं जो छवियों को मोर्फ़ कर सकते हैं। यह परंपरागत रूप से एक संक्रमणकालीन प्रभाव के रूप में प्रयोग किया जाता है, दो छवियां आम तौर पर आधे रास्ते में मोर्चे नहीं होती हैं, अंतिम परिणाम के रूप में अन्य चरम पर एक चरम मोर्फ़।
यह क्यों उपयोगी हो सकता है? आपके द्वारा उपयोग किए जाने वाले मॉर्फिंग एल्गोरिदम पर निर्भर, छवियों की समानता, और मॉर्फिंग एल्गोरिदम के कुछ पैरामीटर के बीच एक रिश्ता हो सकता है।
एक व्यापक रूप से सरलीकृत उदाहरण में, कम परिवर्तन होने पर एक एल्गोरिदम तेजी से निष्पादित हो सकता है।हम तब जानते हैं कि एक उच्च संभावना है कि ये दो छवियां एक दूसरे के साथ गुण साझा करती हैं।
यह तकनीक घुमावदार, विकृत, तिरछे, ज़ूम किए गए सभी प्रकार की प्रतिलिपि बनाई गई छवियों के लिए अच्छी तरह से काम कर सकती है। फिर यह सिर्फ एक विचार है जो मैंने किया है, यह किसी भी शोध किए गए अकादमिक पर आधारित नहीं है, जहां तक मुझे पता है (हालांकि मुझे कड़ी मेहनत नहीं है), इसलिए यह आपके लिए सीमित/कोई परिणाम नहीं हो सकता है।
ज़िप किया जा रहा
इस सवाल में Ow के जवाब उत्कृष्ट है, मैं अध्ययन कर ऐ तकनीक के इन प्रकार के बारे में पढ़ याद है। कॉर्पस लेक्सिकॉन की तुलना में यह काफी प्रभावी है।
कॉर्पस की तुलना करते समय एक दिलचस्प अनुकूलन यह है कि आप बहुत आम मानते शब्दों को हटा सकते हैं, उदाहरण के लिए 'द', 'ए', 'और' आदि। ये शब्द हमारे परिणाम को पतला करते हैं, हम काम करना चाहते हैं कि कैसे अलग दो कॉर्पस हैं इसलिए इन्हें प्रोसेसिंग से पहले हटाया जा सकता है। शायद छवियों में समान सामान्य सिग्नल हैं जिन्हें संपीड़न से पहले छीन लिया जा सकता है? यह देखने लायक हो सकता है।
संपीड़न अनुपात यह निर्धारित करने का एक बहुत तेज़ और उचित प्रभावी तरीका है कि डेटा के दो सेट कितने हैं। how compression works के बारे में पढ़ना आपको एक अच्छा विचार देगा कि यह इतना प्रभावी क्यों हो सकता है। एल्गोरिदम को रिलीज़ करने के लिए तेज़ी से यह शायद एक अच्छा प्रारंभिक बिंदु होगा।
पारदर्शिता
फिर मैं अनिश्चित हूं कैसे पारदर्शिता डेटा निश्चित छवि प्रकार, GIF png आदि के लिए भंडारित किया जाता है, लेकिन यह निकाला जा सकता हो जाएगा और एक प्रभावी सरलीकृत काट अपने डेटा पारदर्शिता सेट के साथ तुलना करने के लिए रूप में काम करेगा ।
Inverting सिग्नल
एक छवि सिर्फ एक संकेत है। यदि आप एक स्पीकर से शोर खेलते हैं, और आप एक ही स्पीकर में एक ही स्पीकर में एक ही स्पीकर में विपरीत शोर खेलते हैं, तो वे एक दूसरे को रद्द कर देते हैं।
alt text http://www.themotorreport.com.au/wp-content/uploads/2008/07/noise-cancellation.gif
छवियों के पर उलटा है, और अपने अन्य छवि पर जोड़ें। जब तक आप एक सकारात्मक मिलान, या आंशिक मिलान प्रदान करने के लिए एक परिणामस्वरूप छवि नहीं पाते हैं, जहां तक आपको पिक्सेल पर्याप्त सफेद (या काला? मैं इसे तटस्थ कैनवास के रूप में संदर्भित करता हूं) को तब तक स्केल करें।
उनमें से एक Inverting, तो अन्य में जोड़ने से एक का कारण नहीं बनेगा:
हालांकि, दो छवियों कि बराबर हैं, उनमें से एक को छोड़कर पर विचार एक रोशन प्रभाव लागू किए गए तटस्थ कैनवास जो हम लक्ष्य कर रहे हैं। हालांकि, दोनों मूल छवियों से पिक्सेल की तुलना करते समय, हम निश्चित रूप से दोनों के बीच स्पष्ट संबंध देख सकते हैं।
मैंने कुछ वर्षों से रंग का अध्ययन नहीं किया है, और अगर रंग स्पेक्ट्रम रैखिक पैमाने पर है, तो मुझे यकीन नहीं है, लेकिन यदि आपने दोनों चित्रों के बीच रंग अंतर का औसत कारक निर्धारित किया है, तो आप इस मान का उपयोग सामान्यीकृत करने के लिए कर सकते हैं इस तकनीक के साथ प्रसंस्करण से पहले डेटा।
ट्री डाटा संरचनाओं
पहले इन पर समस्या के लिए फिट करने के लिए नहीं है, लेकिन मुझे लगता है कि वे काम कर सकता था।
आप किसी छवि के कुछ गुणों (उदाहरण के लिए रंगीन डिब्बे) निकालने और huffman tree या समान डेटा संरचना उत्पन्न करने के बारे में सोच सकते हैं। आप समानता के लिए दो पेड़ों की तुलना करने में सक्षम हो सकते हैं। यह फोटोग्राफिक डेटा के लिए अच्छी तरह से काम नहीं करेगा उदाहरण के लिए रंग के बड़े स्पेक्ट्रम के साथ, लेकिन कार्टून या अन्य कम रंग सेट छवियां यह काम कर सकती हैं।
यह शायद काम नहीं करेगा, लेकिन यह एक विचार है। trie datastructure लेक्सिकॉन संग्रहित करने में बहुत अच्छा है, उदाहरण के लिए एक उपन्यास। यह एक उपसर्ग पेड़ है। शायद एक त्रिभुज के बराबर एक छवि बनाना संभव है, (फिर से मैं केवल रंगों के बारे में सोच सकता हूं) एक त्रिभुज बनाने के लिए। यदि आप 300x300 छवि को 5x5 वर्गों में कम करते हैं, तो प्रत्येक 5x5 वर्ग को रंगों के अनुक्रम में विघटित करें जिससे आप परिणामी डेटा से ट्राई बना सकते हैं। एक 2x2 वर्ग में शामिल हैं:
FFFFFF|000000|FDFD44|FFFFFF
हम बढ़ रही है/घटते स्तर (आईई को कम करने/हमारे उप वर्ग के आकार में वृद्धि) अधिक सटीक परिणाम उपज सकता है एक काफी अद्वितीय trie कोड है कि 24 के स्तर को बढ़ाता है है,।
ट्राई पेड़ों की तुलना करना उचित रूप से आसान होना चाहिए, और संभवतः प्रभावी परिणाम प्रदान कर सकते हैं।
अधिक विचारों
मैं classification of satellite imagery के बारे में संक्षिप्त एक दिलचस्प कागज करवाते हैं ठोकर खाई है, यह रूपरेखा:
बनावट उपायों पर विचार कर रहे हैं: cooccurrence मैट्रिक्स, ग्रे-स्तरीय अंतर, बनावट टोन विश्लेषण, सुविधाओं फूरियर स्पेक्ट्रम से लिया गया, और गैबर फ़िल्टर। कुछ फूरियर फीचर्स और कुछ गैबर फ़िल्टर अच्छे विकल्प पाए जाते थे, विशेष रूप से जब वर्गीकरण के लिए एक आवृत्ति बैंड का उपयोग किया जाता था।
उन मापों की अधिक विस्तार से जांच करना उचित हो सकता है, हालांकि उनमें से कुछ आपके डेटा सेट से प्रासंगिक नहीं हो सकते हैं।
अन्य बातों पर विचार करना
शायद बात की इस तरह पर पेपर्स की एक बहुत हैं, तो पढ़ने उनमें से कुछ की मदद करनी चाहिए, हालांकि वे बहुत तकनीकी हो सकता है। यह कंप्यूटिंग में एक बेहद मुश्किल क्षेत्र है, जिसमें कई लोगों द्वारा समान काम करने का प्रयास करने वाले कई बेकार घंटे काम किए जाते हैं। इसे सरल रखना और उन विचारों पर निर्माण करना सबसे अच्छा तरीका होगा। यादृच्छिक मिलान दर से बेहतर के साथ एक एल्गोरिदम बनाने के लिए यह एक कठिन मुश्किल चुनौती होनी चाहिए, और उस पर सुधार शुरू करने के लिए वास्तव में हासिल करना मुश्किल हो जाता है।
प्रत्येक विधि को शायद जांचने की आवश्यकता होगी और पूरी तरह से tweaked की जरूरत है, अगर आपके पास तस्वीर के प्रकार के बारे में कोई जानकारी है, तो आप भी उपयोगी होंगे। उदाहरण के लिए विज्ञापन, उनमें से कई में उनके पास टेक्स्ट होगा, इसलिए पाठ पहचान करना एक आसान और संभवतः मैचों को खोजने का बहुत विश्वसनीय तरीका होगा, खासकर जब अन्य समाधानों के साथ मिल जाए। जैसा कि पहले उल्लेख किया गया है, अपने डेटा सेट के सामान्य गुणों का फायदा उठाने का प्रयास करें।
वैकल्पिक माप और तकनीकों का संयोजन जिसमें प्रत्येक भारित वोट (उनकी प्रभावशीलता पर निर्भर) हो, एक ऐसा तरीका होगा जिससे आप एक प्रणाली बना सकें जो अधिक सटीक परिणाम उत्पन्न करे।
यदि इस उत्तर की शुरुआत में उल्लिखित कई एल्गोरिदम नियोजित करते हैं, तो कोई भी सभी सकारात्मक पाया जा सकता है लेकिन 20% की झूठी सकारात्मक दर है, यह गुण/शक्तियों/अन्य एल्गोरिदम की कमजोरियों का अध्ययन करने में रूचि होगी क्योंकि एक और एल्गोरिदम किसी अन्य से लौटे झूठी सकारात्मकताओं को समाप्त करने में प्रभावी हो सकता है।
कभी खत्म होने वाली परियोजना को पूरा करने के प्रयास में न आने के लिए सावधान रहें, शुभकामनाएँ!
आप कैसे निर्धारित करते हैं कि मूल कौन सा है? – jfs
मुझे लगता है कि उसके पास मूल है और यह सत्यापित करने की आवश्यकता है कि कोई विदेशी फ़ाइल एक प्रतिलिपि बनाई गई प्रतिलिपि है या मूल से संबंधित नहीं है। – unfa