6

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

मुझे लगता है कि समस्या कुछ चित्रों के साथ सबसे अच्छी तरह से समझाया गया है। (, शायद बेहतर है क्योंकि तस्वीर इस एक से उत्पन्न काफी खराब जलाया था)

Pattern 1 Pattern 3

मैं भी तरह एक छवि है यह:: मैं इन दोनों की तरह कुछ पैटर्न है

Picture

(ध्यान दें कि टेम्पलेट को छवि के आकार में फिट करने के लिए कैसे स्केल किया गया था)

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

मैं ओपनसीवी (पायथन बाइंडिंग के साथ) के साथ काम कर रहा हूं और पहले ही सीवीएमच टेम्पलेट और मैचशैप्स की कोशिश की है लेकिन अब तक यह वास्तव में विश्वसनीय रूप से काम नहीं कर रहा है।

मैं केवल अनुमान लगा सकता हूं कि MatchTemplate क्यों विफल रहा लेकिन मुझे लगता है कि एक छोटे से सफेद के साथ एक छोटा पैटर्न पूरी तरह से एक तस्वीर के सफेद क्षेत्र में फिट बैठता है जिससे इस प्रकार सबसे अच्छा मिलान करने वाला कारक बनता है, हालांकि यह स्पष्ट है कि वे वास्तव में वही नहीं देखते हैं।

क्या ओपनसीवी में छिपे कुछ तरीके हैं जो अभी तक पाए गए हैं या क्या उन समस्याओं के लिए एक ज्ञात एल्गोरिदम है जिसे मुझे दोबारा लागू करना चाहिए?

नया साल मुबारक हो।

उत्तर

6

कुछ सरल तकनीकों काम कर सकता था:

  1. binarization और विभाजन के बाद, ब्लॉब (अंक के बीच सबसे लंबी दूरी, या प्रमुख धुरी भी कहा जाता है) की Feret के व्यास पाते हैं।
  2. बिंदु सेट के उत्तल ढक्कन को ढूंढें, बाढ़ इसे भरें, और इसे एक कनेक्टेड क्षेत्र के रूप में देखें। अंगूठे के साथ मूल छवि घटाएं। अंतर अंगूठे और मुट्ठी के बीच का क्षेत्र होगा, और द्रव्यमान के केंद्र से संबंधित उस क्षेत्र की स्थिति आपको घूर्णन का संकेत देनी चाहिए।
  3. ब्लॉब एज पर प्रत्येक बिंदु की दूरी पर वाटरशेड एल्गोरिदम का उपयोग करें। यह जुड़े पतले क्षेत्र (अंगूठे) की पहचान करने में मदद कर सकता है।
  4. ब्लॉब के भीतर सबसे बड़ा सर्कल (या सबसे बड़ा लिखित बहुभुज) फिट करें। इस सर्कल या बहुभुज को तब तक पतला करें जब तक उसके किनारे के कुछ अंश पृष्ठभूमि को ओवरलैप न करें। मूल छवि से इस फैला हुआ आंकड़ा घटाएं; केवल अंगूठे ही रहेगी।
  5. यदि हाथ का आकार संगत (या अपेक्षाकृत सुसंगत) है, तो आप थंब गायब होने तक एन मॉर्फोलॉजिकल ईरोड ऑपरेशंस भी कर सकते हैं, फिर एन मुंह को अपने मूल अनुमानित आकार में वापस बढ़ाने के लिए परिचालित करें। थंब ब्लॉब प्राप्त करने के लिए मूल ब्लॉब से इस मुट्ठी-केवल ब्लॉब को घटाएं। फिर निर्देश निर्धारित करने के लिए अंगूठे ब्लोब केंद्र (द्रव्यमान व्यास) और/या द्रव्यमान के मुट्ठी ब्लोब केंद्र से संबंधित द्रव्यमान का केंद्र का उपयोग करता है।

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

अधिक जटिल तरीकों के लिए, किमिया, सिद्दीकी और ज़ियाओफिंग एमआई जैसे लेखकों द्वारा आकार अपघटन के बारे में कागजात देखें।

1

MatchTemplate आपके द्वारा वर्णित समस्या के लिए एक अच्छा फिट लगता है। यह आपके लिए किस तरह से असफल रहा है? यदि आप वास्तव में अंगूठे-अप/अंगूठे-नीचे/अंगूठे के बीच-साथ-साथ लक्षणों के बीच मुखौटा कर रहे हैं जैसा कि आप अपनी नमूना छवि में दिखाते हैं तो आप पहले से ही सबसे कठिन हिस्सा कर चुके हैं।

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

[संपादित करें] MatchTemplate के लिए परिणाम सरणी में एक पूर्णांक मान होता है जो निर्दिष्ट करता है कि उस स्थान पर छवि में टेम्पलेट का फिट कितना अच्छा है। यदि आप CV_TM_SQDIFF का उपयोग करते हैं तो परिणाम सरणी में निम्नतम मूल्य सबसे अच्छा फिट स्थान है, यदि आप CV_TM_CCORR या CV_TM_CCOEFF का उपयोग करते हैं तो यह उच्चतम मान है। यदि आपकी स्केल और घुमावदार टेम्पलेट छवियों में सभी की समान संख्या में सफेद पिक्सेल हैं तो आप सभी अलग-अलग टेम्पलेट छवियों के लिए सर्वोत्तम फिट के मूल्य की तुलना कर सकते हैं, और टेम्पलेट छवि जिसमें समग्र रूप से सर्वोत्तम फिट है, वह वह है जिसे आप चुनना चाहते हैं।

कई घूर्णन/स्केलिंग स्वतंत्र पहचान कार्यों हैं जो आपकी मदद कर सकते हैं, लेकिन MatchTemplate के साथ काम करने के लिए आपकी समस्या को सामान्य बनाना सबसे आसान है।

अधिक उन्नत सामान के लिए, SIFT, Haar feature based classifiers, या one of the others available in OpenCV

+0

हाँ, प्रदान की गई छवियां मूल छवियां हैं। उदाहरण के लिए नमूना छवि की तुलना में दूसरी पैटर्न छवि का सर्वोत्तम मिलान मूल्य नहीं है। यहां तक ​​कि जब उनके पास छवि में लगभग समान आकार होता है। क्या आप एक विशेष matchtemplate विधि (CV_TM_SQDIFF, ...) की अनुशंसा करते हैं? मुझे क्या मूल्य मिल रहा है? पूरी तस्वीर के लिए त्रुटि? दूरी प्रति पिक्सेल (ताकि मुझे इसे छवि आकार या इस तरह से कुछ विभाजित करना चाहिए?) – Nicolas

+0

मैंने आपके सवालों के समाधान के लिए अपना उत्तर अपडेट किया। –

+0

एक मुट्ठी जैसे "खिंचाव" आकार के लिए, मैच टेम्पलेट्स हमेशा काम नहीं कर सकते हैं और साथ ही आप चाहें। घूर्णन, स्केलिंग और एफ़िन एक साथ बदलते हैं, टुकड़े की रोटेशन और व्यक्तिगत घटकों को खींचने के लिए खाते नहीं हैं। यदि मोर्फोलॉजिकल और सेगमेंटेशन तकनीकों का संयोजन काम नहीं करता है, तो "आकृति अपघटन" पर कागजात खोजने पर विचार करें। – Rethunk

1

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

आप सफेद क्षेत्र पर अंक नमूना करके और Floyd-Warshall का उपयोग करके आसानी से ऐसा कर सकते हैं।

+0

यह एक दिलचस्प दृष्टिकोण की तरह लगता है लेकिन क्या आप शायद आगे विस्तार कर सकते हैं? मुझे समझ में नहीं आता कि "सफेद क्षेत्र पर नमूना बिंदु" और आप हमारी समस्या को हल करने के लिए ग्राफ के लिए इस तरह के एल्गोरिदम का उपयोग कैसे कर सकते हैं – Nicolas

+1

इस पेपर को देखें, जो तकनीक का वर्णन करता है: "आकार का उपयोग करके आकार वर्गीकरण -डिस्टेंस "लिंग और जैकब्स द्वारा www.cs.umd.edu/~djacobs/pubs_files/ID-pami-8.pdf – Rethunk

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