दिलचस्प पोस्ट
सी ++ में, "_MOVE_H" के बारे में क्या खास है? पैसे से निपटने के लिए क्या मुझे NSDecimalNumber का उपयोग करना चाहिए? समूह की संख्या जानने के बिना कमेन्स? क्या मुझे स्ट्रटस 2 दृश्य परत में डेटाबेस रिकॉर्ड प्राप्त करना चाहिए? पायथन की कच्ची स्ट्रिंग लीलेल्स क्यों एक बैकस्लैश के साथ समाप्त नहीं हो सकती? कैसे जांचने के लिए कि क्या कनेक्शन स्ट्रिंग मान्य है? पायथन ब्रैकेट वाले ब्लॉक एंड्रॉइड में टच इवेंट का अनुकरण कैसे करें? हम तो प्रतिलिपि क्यों चलते हैं? वेब संदर्भ बनाम सेवा संदर्भ Json.net के साथ जेसनऑन ऑब्जेक्ट अर्रे का विवरण देना TypeError: 'कोई भी प्रकार' ऑब्जेक्ट पायथन में चलने योग्य नहीं है क्या प्रोग्रामेटिक रूप से केवल सी # का उपयोग करते हुए X509 प्रमाणपत्र उत्पन्न करना संभव है? Google chrome rehost छवि एक्सटेंशन कैसे जाँचें कि क्या PHP सरणी सहायक या अनुक्रमिक है?

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

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

एम ( 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 )

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

Solutions Collecting From Web of "ओसीआर और चरित्र समानता"

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

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

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

  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 हो

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

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