2010-04-08 26 views
13

मैं एक साधारण अनुप्रयोग बनाने की कोशिश कर रहा हूं जो दो 6-पक्षीय पासा के मूल्यों को पहचान लेगा। मैं कुछ सामान्य पॉइंटर्स, या यहां तक ​​कि एक ओपन सोर्स प्रोजेक्ट की तलाश में हूं।पासा चेहरा मूल्य पहचान

क्रमशः सफेद और काले पिप्स के साथ दो पासा काले और सफेद होंगे। कैमरे की उनकी दूरी हमेशा एक जैसी होगी, लेकिन खेल की सतह पर उनकी स्थिति और अभिविन्यास यादृच्छिक होगा।

Dice http://www.freeimagehosting.net/uploads/9160bdd073.jpg
(नहीं सबसे अच्छा उदाहरण, सतह एक अधिक विशिष्ट रंग के होंगे और छाया चला जाएगा)

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

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

अद्यतन:

मैं कुछ आगे Googling किया था और this video में आए जो अजीब पर्याप्त बिल्कुल मैं के लिए क्या देख रहा हूँ है। ऐसा लगता है कि यह OpenCV project अब तक का सबसे अच्छा शर्त है, मैं इसे other project, OpenCVDotNet या Emgu CV के साथ उपयोग करने और इसका उपयोग करने की कोशिश करूंगा।

अद्यतन:
फिर भी संघर्ष, Emgu सीवी काम करने के लिए नहीं कर सकते हैं।

विचार, पॉइंटर्स, विचार इत्यादि अभी भी बहुत स्वागत है!

उत्तर

3

जबकि मेरे पास आपको पेशकश करने के लिए बहुत तकनीकी सहायता है, Dice-O-Matic mark II की निर्माता मदद करने में सक्षम हो सकती है।

+0

हाँ, मुझे उनकी परियोजना पता है जो बहुत बढ़िया है। लेकिन मेरे पास गेंदों को सीधे मदद के लिए उससे पूछने के लिए नहीं है: वह क्लाइंट साइड स्क्रिप्ट के बारे में बहुत खुला है और उसने मशीन कैसे बनाई। लेकिन सॉफ्टवेयर के ब्योरे का कोई जिक्र नहीं है, और निश्चित रूप से इस स्रोत का कोई डाउनलोड नहीं है। मुझे नहीं पता कि वह प्रतिद्वंद्वी की मदद करने के बारे में कैसा महसूस करेगा ...:/ –

+0

ऐसा प्रतीत होता है कि उस बहुत अच्छी मशीन के लिए सॉफ़्टवेयर इस तथ्य का उपयोग करता है कि पाइप के चेहरे के आधार पर पिप्स का एक अलग रंग होता है, इसलिए पीले रंग के पिप्स का मतलब है कि दो को लुढ़काया गया था, नीला छः इत्यादि। –

+0

हां, यह एक सुंदर सुरुचिपूर्ण समाधान है। हालांकि, मेरा परिदृश्य थोड़ा अलग है कि पासा की स्थिति और अभिविन्यास तय नहीं किया गया है। इसके अलावा मैं एक ही पासा का उपयोग नहीं कर सकता क्योंकि वह विभिन्न रंगीन पिप्स के साथ करता है। –

2

छवि पहचान गैर-तुच्छ है। आपको किसी भी तरह से इनपुट डेटा को बाध्य करना होगा, और ऐसा लगता है कि आपने यह कुछ विचार दिया है।

आपके प्रश्न ने मुझे blog post by the author of SudokuGrab की याद दिला दी, जो एक आईफोन ऐप है जो आपको एक समाचार पत्र में सुडोकू पहेली की तस्वीरें लेने की अनुमति देता है, और यह आपके लिए पहेली को हल करता है। इस पद में, उन्होंने आपकी समस्याओं को हल करने में कई मुद्दों पर चर्चा की, और उन्होंने उन्हें कैसे पार किया।

+1

मैं पूरी तरह से सहमत हूं कि यह बिल्कुल गैर-तुच्छ है, हालांकि अवधारणा स्वयं बहुत सरल लगती है। मुझे कुछ विचार है कि यह संभवतः कैसे किया जाएगा, लेकिन मैं पूरी तरह से कैसे शुरू करना है इस पर एक खाली चित्रण कर रहा हूं। हालांकि, उन पेशेवरों के लिए जो दैनिक आधार पर इसके साथ काम करते हैं, मुझे लगता है कि मैंने जो परिस्थितियों को एक आदर्श आदर्श बनाया है, और शायद यह बहुत चुनौती नहीं पेश करता है - अगर आपको पता है कि यह कैसे करना है। :) मैंने आपके द्वारा लिंक किए गए लेख को स्किम किया, यह बहुत रोचक लग रहा है, और मैं इसे बाद में पूरी तरह से पढ़ूंगा। आपका बहुत बहुत धन्यवाद। –

9

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

http://www.computer-vision-software.com/blog/2009/11/faq-opencv-haartraining/

http://www.cognotics.com/opencv/docs/1.0/haartraining.htm

http://note.sonots.com/SciSoftware/haartraining.html

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

http://www.youtube.com/watch?v=07QAhRJmcKQ

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

http://sandarenu.blogspot.com/2009/03/opencv-haar-training-resources.html

3

ठीक है,

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

मैं अपने कार्य से बाहर ले जाने के लिए दो संभव रणनीतियों सुझाव है:

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

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

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

+0

दूसरा दृष्टिकोण बहुत थकाऊ है और डायलिस और प्रक्षेपण परिवर्तनों के घूर्णन के लिए मजबूत नहीं है। – Temak

1

एक और संभावना पहले पासा की स्थिति को पिन करने के लिए एक अधिक सामान्य छवि कुशलता/पहचान एल्गोरिदम का उपयोग कर रही है, फिर छवि को घुमाएं और मानक के कुछ रूपों में स्केल करें (जैसे 512x512 पिक्सेल ग्रेस्केल छवियों को पासा जो घूर्णन किया गया है सीधे रहो)। फिर स्क्रीन पर पासा की विभिन्न संख्याओं को पहचानने के लिए 6 अलग-अलग तंत्रिका जाल प्रशिक्षित करने का प्रयास करें। AForge.Net एक अच्छी ठोस कृत्रिम बुद्धि (तंत्रिका जाल सहित) पुस्तकालय है, और आपको वहां से थोड़ा सा रास्ता मिलना चाहिए।

2

यह Object Recognition from Templates पर एक परिचित प्रश्न है जिस पर मैंने एक उत्तर दिया जो मुझे लगता है कि मेरा उपयोग हो सकता है।

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

नहीं, क्लाइफाइफायर, टेम्पलेट मिलान और तंत्रिका नेटवर्क से दूर रहें यदि समस्या सिम्प्ले छवि प्रसंस्करण विधियों और कुछ गणित का उपयोग करके हल (आसानी से) हल की जा सकती है।

1

this video में आप मुझे जितना चाहें उतना व्यवहार देख सकते हैं। लेखक कई सफेद पासा का उपयोग कर रहा है, लेकिन वह कोड (पायथन/ओपनसीवी) प्रदान कर रहा है और शायद आप उस पर अपनी परियोजना बना सकते हैं।

+0

हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/18 9 60777) –

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