दिलचस्प पोस्ट
सी # में सेलेनियम वेबड्राइवर का उपयोग करके जावास्क्रिप्ट निष्पादित करें *, /, +, -,% ऑपरेटरों का उपयोग किए बिना 3 से संख्या विभाजित करें लाइब्रेरी फ़ाइलों और मॉड्यूल के बीच क्या अंतर है? ऊपरी कैसे एक स्ट्रिंग में शब्द के प्रत्येक पहले अक्षर का केस? IEnumerable <struct> को IEnumerable <object> के रूप में क्यों नहीं डाला जा सकता? ईमेल भेजने के लिए WAMP सर्वर को कॉन्फ़िगर करें खिड़की.क्योंकि क्रोम में काम नहीं कर रहा है एंड्रॉइड: संपादनटेक्स्ट सूची में सूची स्क्रॉल पर खो देता है? जावा में फ्लोटिंग पॉइंट की तुलना करना और तुलना करना जावास्क्रिप्ट में प्रोग्रामाइक्स एक्सटेक्ट कमी (उर्फ टेक्स्ट सामान्यीकरण या बिना असमान) प्रतिनिधियों का उद्देश्य पायथन में रिवर्स ऑर्डर में एक सूची को पार करते हैं कैसे linq अभिव्यक्ति के साथ नेस्टेड ऑब्जेक्ट को समतल करना मैं Bootstrap में ScrollSpy के लिए ऑफसेट कैसे सेट करूं? WPF में रेडियो बटन की तरह कार्य करने के लिए टॉगल बटन के समूह को कैसे प्राप्त करें?

ओसीआर और चरित्र समानता

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

एम ( http://img.hiwab.com/math/oRfSOsJ.png (फ़ॉन्ट) और http://img.hiwab.com/math/UDEJZyV.png (स्कैन किए गए))

के ( http://img.hiwab.com/math/PluXtDz.png (फ़ॉन्ट) और http://img.hiwab.com/math/TRuDXSx.png (स्कैन किए गए))

सी ( http://img.hiwab.com/math/wggsX6M.png (फ़ॉन्ट) और http://img.hiwab.com/math/GF9vClh.png (स्कैन किए गए))

इन सभी छवियों के लिए मेरे पास पहले से ही एक प्रकार का बाइनरी मैट्रिक्स है (1 ब्लैक के लिए, सफेद के लिए 0) मैं अब सोच रहा था कि इन मैट्रिक्स के बीच समानता को देखने के लिए किसी प्रकार का गणितीय प्रक्षेपण सारण सूत्र था। मैं एक पुस्तकालय पर भरोसा नहीं करना चाहता, क्योंकि यह मेरे लिए दिया गया काम नहीं था।

मुझे पता है कि यह प्रश्न थोड़ा अस्पष्ट लग सकता है और समान प्रश्न हैं, लेकिन मैं इस पद्धति की तलाश कर रहा हूं, पैकेज के लिए नहीं, और अब तक मुझे विधि के बारे में कोई टिप्पणी नहीं मिली। यह सवाल अस्पष्ट होने का कारण यह है कि मेरे पास वास्तव में शुरू करने का कोई मतलब नहीं है। मैं क्या चाहता हूं वास्तव में विकिपीडिया पर यहां वर्णित है:

मैट्रिक्स मिलान में पिक्सेल-बाय-पिक्सेल आधार पर एक छवि की तुलना एक संग्रहीत ग्लिफ़ में होती है; इसे "पैटर्न मिलान" या "पैटर्न पहचान" के रूप में भी जाना जाता है। [9] यह इनपुट ग्लाइफ पर निर्भर करता है जो छवि के बाकी हिस्सों से सही ढंग से अलग है, और संग्रहीत ग्लिफ़ पर एक समान फ़ॉन्ट में और समान पैमाने पर है। यह तकनीक टंकित पाठ के साथ सबसे अच्छा काम करती है और नए फोंट का सामना करते समय अच्छी तरह से काम नहीं करती। यह तकनीक है जिसे प्रारंभिक भौतिक फोटोकेल आधारित ओसीआर लागू किया गया है, बल्कि सीधे। ( http://en.wikipedia.org/wiki/Optical_character_recognition#Character_recognition )

अगर कोई इस पर मेरी सहायता कर सकता है, तो मैं इसकी बहुत सराहना करता हूं।

वेब के समाधान से एकत्रित समाधान "ओसीआर और चरित्र समानता"

मान्यता या वर्गीकरण के लिए अधिकांश ओसीआर का उपयोग तंत्रिका नेटवर्क

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

पैटर्न की तुलना करने के अन्य तरीके भी हैं

  1. वेक्टर दृष्टिकोण

    • बहुभुज छवि (किनारों या सीमा)
    • बहुभुज समानता की तुलना करें (सतह क्षेत्र, परिधि, आकार, ….)
  2. पिक्सेल दृष्टिकोण

    आप निम्न आधार पर चित्रों की तुलना कर सकते हैं:

    • हिस्टोग्राम
    • डीएफटी / डीसीटी स्पेक्ट्रल विश्लेषण
    • आकार
    • प्रत्येक पंक्ति प्रति कब्जे वाले पिक्सेल की संख्या
    • प्रत्येक पंक्ति में कब्जा किए गए पिक्सेल की शुरूआत (बाएं से)
    • प्रत्येक पंक्ति में कब्जा किए गए पिक्सेल की अंतिम स्थिति (रिघ से)
    • इन 3 पैरामीटर को पंक्तियों के लिए भी किया जा सकता है
    • ब्याज सूची के अंक (अंक जहां तीव्रता की टक्कर, किनारे, जैसे कुछ बदलाव हैं …)

    आप प्रत्येक परीक्षण वाले चरित्र के लिए फीचर सूची बनाते हैं और इसकी तुलना आपके फ़ॉन्ट में करते हैं और फिर निकटतम मैच आपका चरित्र है। इसके अलावा इन फीचर सूची को कुछ निश्चित आकार (जैसे 64x64 ) के लिए बढ़ाया जा सकता है ताकि मान्यता स्केलिंग पर अपरिवर्तनीय हो।

    यहां मैं ओसीआर के लिए उपयोग की जाने वाली सुविधाओं का नमूना है

    ओसीआर चरित्र विशेषताएं

    इस मामले में (फीचर आकार को NxN में फिट करने के लिए स्केल किया गया है) ताकि प्रत्येक अक्षर में N नंबर जैसे 6 एरेज़ हैं:

     int row_pixels[N]; // 1nd image int lin_pixels[N]; // 2st image int row_y0[N]; // 3th image green int row_y1[N]; // 3th image red int lin_x0[N]; // 4th image green int lin_x1[N]; // 4th image red 

    अब: अपने फ़ॉन्ट में प्रत्येक चरित्र के लिए और प्रत्येक पढ़े गए वर्ण के लिए सभी सुविधाओं का पूर्व-गणना करें। फ़ॉन्ट से सबसे करीबी मिलान ढूंढें

    • सभी फीचर वैक्टर / एरेज़ के बीच न्यूनतम दूरी
    • कुछ सीमा अंतर से अधिक नहीं

    यह रोटेशन पर आंशिक अपरिवर्तनीय है और एक बिंदु तक तिरछा है मैं भरी हुई वर्णों के लिए ओसीआर करता हूं ताकि रेखांकित फोंट के लिए इसका इस्तेमाल कुछ tweaking हो

[टिप्पणियाँ]

तुलना के लिए आप दूरी या सहसंबंध गुणांक का उपयोग कर सकते हैं