हर के संकेत, जिनके बारे में मैं बात करूंगा, ज्यादातर लोग ऐसे हैं जो किसी न किसी तरह से मान्यता प्रणालियों और मशीन सीखने से जुड़े हैं, लेकिन, जाहिर है, कुछ लोग मानक दायरे से बाहर की समस्याओं को हल करने के लिए उनका उपयोग करते हैं। लेख निकट चित्रों की तुलना करने के लिए Haar कैस्केड के उपयोग के लिए समर्पित है, एक वीडियो के आसन्न फ्रेम के बीच किसी ऑब्जेक्ट को ट्रैक करने के कार्यों में, कई तस्वीरों में एक मैच ढूंढना, एक छवि में एक छवि की खोज करना, और इसी तरह के अन्य कार्यों के लिए।
ज्यादातर मामलों में, जब आपको किसी छवि के दो समान टुकड़ों की एक सरल तुलना की आवश्यकता होती है, तो यह उनके
सह-अस्तित्व (या कुछ समान) के माध्यम से महसूस किया जाता है। एक नमूना लिया जाता है (फोटो में एक फूल) और बिंदु की तलाश में एक्स और वाई के साथ छवि के चारों ओर घूमता है जहां छवि (
I ) से नमूना (
जे ) का अंतर:

अपने न्यूनतम तक पहुँचता है।
इस विधि को लागू करने के लिए बहुत तेज़ है, सहज और अच्छी तरह से जाना जाता है। शायद मैं एक भी विकास समूह से नहीं मिला जहाँ भी इसका इस्तेमाल किया गया। बेशक, हर कोई उसकी खामियों को आश्चर्यजनक रूप से जानता है:
- प्रकाश व्यवस्था बदलते समय अस्थिरता
- छवि को ज़ूम या घुमाते समय अस्थिरता
- अस्थिरता अगर छवि का हिस्सा एक बदलती पृष्ठभूमि है
- कम गति - यदि आपको m * m छवि में n * n क्षेत्र का पता लगाने की आवश्यकता है, तो संचालन की संख्या n2 to (mn) 2 के आनुपातिक होगी।
हर कोई इन कमियों से निपटना भी जानता है।
- प्रकाश को सामान्यीकरण या क्षेत्र के द्वैतकरण के लिए संक्रमण द्वारा निष्प्रभावित किया जाता है ।
- सहसंबंध के दौरान परिवर्तन में स्केल परिवर्तन और छोटे घुमाव बेअसर होते हैं।
- इस दृष्टिकोण के साथ, कोई भी इस दृष्टिकोण से नहीं लड़ता है।
- गति को बड़े चरणों में या कम रिज़ॉल्यूशन में खोजकर अनुकूलित किया जाता है।
उन स्थितियों में जहां सहसंबंध के परिणाम पर्याप्त नहीं होते हैं, वे अधिक जटिल तरीकों पर स्विच करते हैं, जैसे कि फीचर पॉइंट मैप्स (
एसयूआरएफ ), बॉर्डर या सीधे वस्तुओं का चयन करना। लेकिन ये एल्गोरिदम पूरी तरह से अलग हैं: ज्यादातर मामलों में वे धीमी गति से हैं, उन्हें खरोंच से लिखना मुश्किल है (विशेषकर कुछ डीएसपी प्रोसेसर पर), छवि संरचना पर सीमाएं हैं।
कुछ बिंदु पर, अगली परियोजना के बारे में सोचते हुए, मैं एक समस्या में भाग गया, जहां छवि में कई चर क्षेत्रों की तुलना करना आवश्यक था। और मैंने सोचा, जब तक कि मैं
शिकारी एल्गोरिदम को याद नहीं करता, एक बार हबर पर उल्लेख किया गया था, जहां वीडियो में तेज और स्थिर ऑब्जेक्ट ट्रैकिंग दिखाई गई थी। थोड़े विचार के साथ, मैंने महसूस किया कि समस्याओं के एक बड़े वर्ग को हल करने की अनुमति देने वाले इस पूरे दृष्टिकोण ने मुझे पास कर दिया।
मैं आपको याद दिलाता हूं कि हर के लक्षण क्या हैं।
सुविधाओं के कैस्केड को आमतौर पर जटिल वस्तुओं जैसे कि
चेहरे , हाथ या
अन्य वस्तुओं को भेद करने के लिए सिस्टम के निर्माण के आधार के रूप में संदर्भित किया जाता है। अधिकांश लेखों में, यह दृष्टिकोण
AdaBoosta सीखने के
एल्गोरिथ्म से अटूट रूप से जुड़ा हुआ है। Haar cascade अपने आप में प्राइमेटीज़ का एक सेट है, जिसके लिए एक इमेज के साथ उनके कनवल्शन को माना जाता है। सरलतम प्राइमिटिव्स का उपयोग किया जाता है, जिसमें आयताकार होते हैं और केवल दो स्तर होते हैं, +1 और -1। इसके अलावा, प्रत्येक आयत का उपयोग कई बार विभिन्न आकारों में किया जाता है। यहाँ समझाने से हमारा मतलब है
s = XY , जहां
Y अंधेरे क्षेत्र में छवि तत्वों का योग है, और
X उज्ज्वल क्षेत्र में छवि तत्वों का योग है (आप ज़ूम करते समय
X / Y भी ले सकते हैं, फिर ज़ूम होने पर स्थिरता होगी)।


इस तरह के दृढ़ संकल्प वस्तु की संरचनात्मक जानकारी पर जोर देते हैं: उदाहरण के लिए, निम्नलिखित दृढ़ संकल्प हमेशा किसी व्यक्ति के चेहरे के केंद्र के लिए नकारात्मक होंगे:


उनके बीच के क्षेत्र की तुलना में आँखें अधिक गहरी होंगी, जैसे कि मुंह का क्षेत्र माथे से गहरा होगा। जितने अधिक प्राइमिटिव का उपयोग किया जाता है, उतनी ही सटीक रूप से आप किसी वस्तु को वर्गीकृत कर सकते हैं। इसके अलावा, अगर एक सटीक वर्गीकरण की आवश्यकता नहीं है - आप कम आदिम का उपयोग कर सकते हैं।
यहां हम यह उल्लेख कर सकते हैं कि ऑब्जेक्ट मान्यता समस्या में, परीक्षण नमूने से विशेषताओं के सेट का निर्माण करने के बाद, प्रशिक्षण एल्गोरिदम (
AdaBoost ,
SVM ) ऑब्जेक्ट के अनुरूप
संकल्पों के अनुक्रम (कैस्केड) का निर्धारण करते हैं। जब किसी वस्तु को छवि में पहचाना जाता है, तो उसकी तुलना परीक्षण छवि से की जाती है।
हैर प्लस क्या है, और कोई भी इस तरह के अद्भुत और भौतिक घटता का उपयोग क्यों नहीं कर सकता है, उदाहरण के लिए, इन बदसूरत आयतों के बजाय साइनसोइड्स और गॉसियन।
प्लस यह है कि हैर कैस्केड को बहुत जल्दी
छवियों के
अभिन्न प्रतिनिधित्व के माध्यम से गिना जाता है। इसका वर्णन यहां और अधिक विस्तार से किया गया है, और यहां मैं केवल संक्षेप में कहूंगा कि एकीकृत छवि को इस रूप में दर्शाया गया है:

मूल छवि (
I ) से प्राप्त मैट्रिक्स (
II ) के
X, Y बिंदु पर मान आयत (0,0, X, Y) के सभी बिंदुओं का योग है। तब छवि में किसी भी आयत (ABCD) पर अभिन्न को इस रूप में दर्शाया जा सकता है:
SumOfRect (ABCD) = II (A) + II (C) - II (B) - II (D)क्या स्मृति के लिए केवल 4 पहुंच प्रदान करता है और इसके आकार के बावजूद एक आयत के सभी तत्वों की राशि की गणना के लिए 3 गणितीय संचालन। जब Haar आदिम के संकल्पों के अलावा अन्य संकल्पों की गणना की जाती है, तो कई क्रियाओं को आदिम के आकार के वर्ग के समानुपातीकरण की आवश्यकता होती है (यदि आप FFT के माध्यम से गणना नहीं करते हैं, जो किसी भी पैटर्न के लिए संभव नहीं है)।
आइए हम अपनी समस्या पर वापस आते हैं। मान लीजिए हम एक बड़ी छवि (
I ) में एक छोटा सा टुकड़ा (
J ) खोजना चाहते हैं। ऐसा करने के लिए, प्रशिक्षण की आवश्यकता नहीं है। एक टुकड़ा अभी भी उत्पादन करना असंभव है। हार की प्रधानता
जे की छवि प्राप्त करने और
आई पर देखने के लिए मदद करेगी
। हार के संकेतों के एक सेट के साथ कनवल्शन
जे प्राप्त करने के लिए यह पर्याप्त है और एक छोटी सी टुकड़े के आनुपातिक रूप से विंडोज में
I पर गणना की गई समान प्राइमेटिव्स के दृढ़ संकल्प के साथ तुलना करें।
पेशेवरों:
- प्रकाश के परिवर्तन का प्रतिरोध, भले ही यह प्रकाश का स्थानीय परिवर्तन हो, शोर के प्रतिरोध (आदिम सबसे सरल बैंड-पास फिल्टर हैं )।
- यदि आदिम बहुत छोटे नहीं थे, तो पैमाने को बदलते समय सहसंबंध बहुत अधिक स्थिर होता है (आदिम का आकार एक छोटे कदम के साथ दरकिनार होने पर सटीकता को प्रभावित नहीं करेगा)।
- यदि एक बड़ी छवि के संकेतों की गणना अग्रिम में की जाती है, और जब खोज विंडो को स्थानांतरित किया जाता है, तो यह पहले से ही इसके लिए गणना और प्रासंगिक है - खोज सहसंबंध की तुलना में बहुत तेज होगी (आपको कम तत्वों की तुलना करने की आवश्यकता है)।
इसी समय, यह स्पष्ट है कि कई सरल अनुकूलन किए जा सकते हैं जो इस दृष्टिकोण को तेज और परिष्कृत करेंगे।
अगर कोई खेलना चाहता था, तो मैंने एक छोटा सा
कार्यक्रम लिखा, जिसमें इस एल्गोरिथम का सबसे सरल संस्करण लागू किया गया। कार्यक्रम वीडियो स्ट्रीम में चयनित खंड को बनाए रखता है। कैमरा
हुकिंग और सरल छवि परिवर्तन (मैन्युअल रूप से किए गए Haar) के लिए
EmguCV ।