से बोगल/स्क्रैबल अक्षरों की पहचान मुझे एक बोगल बोर्ड पर अक्षरों को पहचानने में रुचि है, शायद ओपनसीवी का उपयोग कर। पत्र सभी एक ही फ़ॉन्ट हैं लेकिन घुमाए जा सकते हैं, इसलिए एक मानक पाठ पहचान पुस्तकालय का उपयोग करना एक समस्या है। इसके अतिरिक्त एम और डब्ल्यू ने उन्हें अलग करने के लिए अंडरस्कोर किया है, और क्यू वास्तव में एक प्रश्न है। मुझे काफी विश्वास है कि मैं छवि में अलग-अलग अक्षरों को अलग कर सकता हूं, मैं सिर्फ यह सोच रहा हूं कि पहचान भाग कैसे करें।छवि
छवि
उत्तर
यह इस बात पर निर्भर करता है कि आपको कितनी तेजी से होना चाहिए। आप पत्र के वर्ग को अलग करने और यह इतना बारी बारी से उस पत्र युक्त वर्ग की तरफ क्षैतिज और ऊर्ध्वाधर हैं कर सकते हैं तो मैं तुम्हें सुझाव है:
- पत्र के साथ (काला/सफेद करने के लिए छवियों कन्वर्ट एक रंग और शेष अन्य मर जाते हैं
- सभी चार संभावित उन्मुखीकरणों (यानी सीधे और घूर्णन 90, 180 और 270 डिग्री) में सभी अक्षरों की संदर्भ छवियों का डेटासेट बनाएं
- टेम्पलेट मिलान फ़ंक्शन का उपयोग करें जैसे कि cvMatchTemplate प्रत्येक नई छवि के लिए अपने डेटासेट से सबसे अच्छी मिलान छवि ढूंढने के लिए।
इसमें कुछ समय लगेगा, इसलिए अनुकूलन संभव है, लेकिन मुझे लगता है कि यह आपको उचित परिणाम देगा। यदि उन्हें उचित अभिविन्यास में प्राप्त करना मुश्किल है तो आप फ्लाई पर अपने नए इनपुट के घुमावदार संस्करण भी उत्पन्न कर सकते हैं और उनसे अपने संदर्भ डेटासेट से मिलान कर सकते हैं।
पत्र अलग पैमाने है तो मैं दो विकल्प के बारे में सोच सकते हैं:
- तो उन्मुखीकरण कोई मुद्दा नहीं है (यानी अपने संदेह ब्लॉक का पता लगाने में भी उचित अभिविन्यास में ब्लॉक डाल सकते हैं) तो आप उपयोग कर सकते हैं उस क्षेत्र का बाउंडबॉक्स जिसमें रंगीन रंग आने वाली तस्वीर के पैमाने के किसी न किसी संकेतक के रूप में होता है, और स्केल जो आपकी संदर्भ छवियों पर बाउंडिंगबॉक्स के समान आकार के समान होता है (यह प्रत्येक संदर्भ छवि के लिए अलग हो सकता है)
- यदि अभिविन्यास एक मुद्दा है तो बस अपनी खोज स्थान के पैरामीटर के रूप में स्केलिंग जोड़ें। तो आप सभी रोटेशन (0-360 डिग्री) और सभी उचित आकारों को खोजते हैं (आपको शायद आपके पास छवियों से उचित सीमा का अनुमान लगाने में सक्षम होना चाहिए)।
आप Tesseract जैसे साधारण ओसीआर का उपयोग कर सकते हैं। इसका उपयोग करना आसान है और काफी तेज़ है। हालांकि आपको 4 रोटेशन करना होगा (जैसा कि @jilles de wit के उत्तर में उल्लिखित है)।
मैंने आईओएस-ऐप बनाया जो ओपनसीवी पर आधारित है। इसे SnapSolve कहा जाता है। मैंने blog लिखा था कि पहचान कैसे काम करती है। मूल रूप से, मैं प्रत्येक आकार पर सभी 26x4 संभावित अक्षरों + घूर्णन को ओवरले करता हूं, और देखता हूं कि कौन सा पत्र अधिकतर ओवरलैप करता है। इसके लिए थोड़ा सा झुकाव ओवरले छवि को सुचारु बनाना है, कलाकृतियों से छुटकारा पाने के लिए जहां अक्षरों को लगभग ओवरलैप किया गया है लेकिन काफी नहीं है।
मैंने कुछ वर्षों तक अपनी परियोजना को नहीं देखा है, लेकिन बहुत ही रोचक लेख, धन्यवाद। Javacsript में इसे करने के बारे में ब्लॉग का लिंक भी काफी दिलचस्प है। – eggbert
क्या यह विभिन्न आकारों/ज़ूम की छवियों के लिए काम करेगा? यानी अगर कैमरा टाइल से करीब या आगे है? – eggbert
मैंने आपके प्रश्न के लिए मेरा उत्तर अपडेट किया। –