2009-08-14 14 views
13

मैंने मज़े के लिए एक परियोजना करने का फैसला किया जहां मैं एक बजाने वाले कार्ड की छवि इनपुट के रूप में लेना चाहता हूं और अपना रैंक और सूट वापस कराना चाहता हूं। मुझे लगता है कि मुझे केवल ऊपरी-बाएं कोने को देखने की ज़रूरत है, क्योंकि इसमें सारी जानकारी है। यह मजबूत होना चाहिए - अगर मेरे पास हीरे के ऐस की एक बड़ी छवि है, तो मुझे इसे 20 से 200% तक कहीं भी स्केल करने में सक्षम होना चाहिए और अभी भी सही उत्तर प्राप्त करना चाहिए।ओसीआर बजाना कार्ड

पहला प्रश्न - क्या पहले से ही कुछ लिखा गया है जो यह करता है? यदि ऐसा है तो मुझे ओसीआर के लिए कुछ और मिल जाएगा, इसलिए मैं प्रयासों को डुप्लिकेट नहीं करता हूं।

दूसरा - ऐसा करने के लिए जाने का सबसे अच्छा तरीका क्या है? तंत्रिका नेटवर्क? कुछ हाथ से कोडित? क्या कोई भी पॉइंटर्स दे सकता है? (0xCAAF9452 स्वीकार्य उत्तर नहीं है)।

+11

कैसे 0xCAAF9460 के बारे में उपयोग करें? – MitMaro

+0

आपको एक टिप्पणी अपवॉट –

+2

लगता है जैसे आप पोकर बॉट बना रहे हैं, कुछ बौद्धिक अभ्यास नहीं कर रहे हैं। –

उत्तर

2

http://d-touch.org/ देखें, आपको अपने स्वयं के खेल कार्ड डिजाइन करना होगा।

आपको ocropus में रुचि भी हो सकती है।

+0

आप इसे विपरीत तरीके से ले रहे हैं - मुझे कार्ड खेलने के लिए दिया गया है और उन्हें ओसीआर करना है, मुझे ओसीआर-एबी = 0 –

3

मुझे नहीं लगता कि आप जो कुछ भी पूरा करने की कोशिश कर रहे हैं उसके लिए कुछ लिखा है (कम से कम ओपन सोर्स और पायथन में)।

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

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

एक खिलौना ओसीआर उदाहरण here है जो आपको दिलचस्प लगेगा। प्रयोग किया जाता है कि lib (LibSVM) में एक पायथन संस्करण भी है, जिसका मैंने उपयोग किया है, और साथ काम करने के लिए बहुत आसान पाया है।

उम्मीद है कि यह मदद करता है।

1

यह उतना मजबूत नहीं है, लेकिन आप कार्ड पर 3 या 4 स्थानों के रंग देख सकते हैं ताकि यदि वे सफेद हों या यदि वे रंग हैं, तो आप यह निर्धारित कर सकते हैं कि यह कौन सा कार्ड और सूट है। जाहिर है यह काम नहीं करेगा यदि आपके पास हमेशा एक ही कार्ड नहीं होते हैं।

1

व्यक्तिगत रूप से मैं इस के साथ मशीन सीखने का मार्ग जाऊंगा।

+0

कार्ड खेलने की आवश्यकता नहीं है, जब समस्या इतनी विशिष्ट हो तो आपको मशीन सीखने की आवश्यकता क्यों होगी? –

+3

शायद मैंने समस्या को गलत समझा, लेकिन ओपी कार्ड की फोटोग्राफिक छवियां ले रहा है और अपने रैंक और सूट को सही करने की कोशिश कर रहा है? – DevDevDev

+0

मैं सहमत हूं। आप दूसरों को क्षतिपूर्ति करने के लिए एक उपेक्षा प्राप्त करते हैं:)। –

1

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

4
+0

लिंक के लिए धन्यवाद! –

+0

+1 ओपनसीवी निश्चित रूप से एक अच्छा टूलबॉक्स प्रदान करता है। – kenny

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