ओसीआर और डीप लर्निंग प्लेटोब्लॉकचैन डेटा इंटेलिजेंस के साथ स्वचालित रसीद डिजिटलीकरण। लंबवत खोज। ऐ.

ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

प्राप्तियों से डेटा निष्कर्षण को स्वचालित करना चाहते हैं? नैनोनेट्स के पूर्व-प्रशिक्षित देखें रसीद ओसीआर or अपना खुद का बनाओ अनुकूलित रसीद ओसीआर। आप भी कर सकते हैं एक डेमो अनुसूची हमारे एपी उपयोग के मामलों के बारे में अधिक जानने के लिए!


रसीद ओसीआर या रसीद डिजिटलीकरण रसीद से स्वचालित रूप से जानकारी निकालने की चुनौती को संबोधित करता है। इस लेख में, मैं रसीद डिजिटलीकरण के पीछे के सिद्धांत को कवर करता हूं और ओपनसीवी और . का उपयोग करके एंड-टू-एंड पाइपलाइन को लागू करता हूं Tesseract. मैं कुछ महत्वपूर्ण पेपरों की भी समीक्षा करता हूं जो डीप लर्निंग का उपयोग करके रसीद डिजिटलीकरण करते हैं।

रसीद डिजिटलीकरण क्या है?

रसीदें व्यापार के लिए आवश्यक सूचना कंपनियों के बीच होती हैं और इसका अधिकांश भाग कागज पर या अर्ध-संरचित स्वरूपों में होता है जैसे कि PDF और कागज़ / हार्ड कॉपी। इस जानकारी को प्रभावी ढंग से प्रबंधित करने के लिए, कंपनियां इन दस्तावेजों में निहित प्रासंगिक जानकारी को निकालती हैं और संग्रहीत करती हैं। परंपरागत रूप से यह प्रासंगिक जानकारी को मैन्युअल रूप से निकालने और इसे एक डेटाबेस में इनपुट करके प्राप्त किया गया है जो एक श्रम-गहन और महंगी प्रक्रिया है।

रसीद डिजिटलीकरण एक रसीद से स्वचालित रूप से जानकारी निकालने की चुनौती को संबोधित करता है।

प्राप्तियों से महत्वपूर्ण जानकारी निकालना और उन्हें संरचित दस्तावेजों में परिवर्तित करना कई अनुप्रयोगों और सेवाओं की सेवा कर सकता है, जैसे कि कुशल संग्रह, तेज़ अनुक्रमण और दस्तावेज़ विश्लेषण। वे कई वित्तीय, लेखांकन और कराधान क्षेत्रों में दस्तावेज़-गहन प्रक्रियाओं और कार्यालय स्वचालन को कारगर बनाने में महत्वपूर्ण भूमिका निभाते हैं।

ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

एक मजबूत चाहिए रसीद OCR or रसीद स्कैनर प्राप्तियों से डेटा निकालने के लिए? नैनोनेट देखें रसीद ओसीआर एपीआई!


रसीद डिजिटलीकरण कौन उपयोगी होगा?

यहां कुछ क्षेत्र हैं जहां रसीद डिजिटलीकरण एक बड़ा प्रभाव डाल सकता है:

देय खातों और प्राप्य स्वचालन

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

आपूर्ति श्रृंखला अनुकूलन

आपूर्ति श्रृंखलाएं कंपनी के कई उचित कामकाज की रीढ़ हैं। आपूर्ति और उत्पादन के पूर्ण नियंत्रण को सुनिश्चित करने के लिए प्रबंधन कार्य, सूचना प्रवाह और उत्पाद प्रवाह की कुंजी है। यह आवश्यक है अगर संगठनों को प्रसव के समय को पूरा करना और उत्पादन लागत को नियंत्रित करना है।

इन दिनों सही मायने में संपन्न होने वाली कंपनियों में कुछ महत्वपूर्ण हैं: एक डिजीटल आपूर्ति श्रृंखला। कंपनियों का 89% डिजिटल आपूर्ति श्रृंखलाओं के साथ अंतरराष्ट्रीय आपूर्तिकर्ताओं से सही ऑर्डर प्राप्त होते हैं, जो समय पर डिलीवरी सुनिश्चित करते हैं। अगली पीढ़ी की डिजिटल आपूर्ति श्रृंखला 4.0 को साकार करने के प्रमुख तत्वों में से एक, डेटा कैप्चरिंग और प्रबंधन को स्वचालित करना है और इस डेटा का एक बहुत कुछ प्राप्तियों का रूप है और चालान. रसीदों की मैन्युअल प्रविष्टि आपूर्ति श्रृंखला में एक अड़चन के रूप में कार्य करती है और अनावश्यक देरी की ओर ले जाती है। यदि इस रसीद प्रसंस्करण को डिजीटल किया जाता है तो इससे समय और दक्षता में पर्याप्त लाभ हो सकता है।


क्या आपके मन में OCR समस्या है? डिजिटाइज़ करना चाहते हैं चालान, PDF या नंबर प्लेट? वहां जाओ नैनोनेट्स और मुक्त करने के लिए ओसीआर मॉडल का निर्माण!


यह एक कठिन समस्या क्यों है?

रसीद डिजिटलीकरण मुश्किल है क्योंकि प्राप्तियों में बहुत अधिक विविधताएं हैं और कभी-कभी निम्न गुणवत्ता वाले होते हैं। स्कैनिंग रसीदें भी हमारे डिजिटल कॉपी में कई कलाकृतियों का परिचय देती हैं। इन कलाकृतियों ने कई पठनीयता चुनौतियों का सामना किया।

ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

यहां कुछ चीजों की एक सूची दी गई है, जो इसे दरार करना एक कठिन समस्या है

  • हस्तलिखित पाठ
  • छोटे फोंट
  • शोर करने वाली छवियां
  • फीकी छवियां
  • कैमरा मोशन और शेक
  • वॉटरमार्किंग
  • झुर्रियाँ
  • फीका पाठ

एक पारंपरिक रसीद डिजिटलीकरण पाइपलाइन

इस तरह की एंड-टू-एंड एप्रोच के लिए एक विशिष्ट पाइपलाइन शामिल है:

  • preprocessing
  • ऑप्टिकल कैरेक्टर पहचान
  • सूचना निकालना
  • डेटा फेंका गया
ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

चलो पाइप लाइन के प्रत्येक भाग में गहराई से गोता लगाएँ। प्रक्रिया का पहला चरण प्रीप्रोसेसिंग है।

preprocessing

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

ग्रेस्केलिंग बस RGB इमेज को ग्रेस्केल इमेज में परिवर्तित कर रहा है।

शोर हटाने में आमतौर पर नमक और काली मिर्च का शोर या गौसियन का शोर शामिल होता है।

ज्यादातर OCR इंजन ब्लैक एंड व्हाइट इमेज पर अच्छा काम करते हैं। इसे थ्रॉल्डिंग द्वारा प्राप्त किया जा सकता है, जो प्रदान की गई थ्रेशोल्ड वैल्यू के संबंध में पिक्सेल मूल्यों का असाइनमेंट है। प्रत्येक पिक्सेल मूल्य की तुलना थ्रेशोल्ड मान से की जाती है। यदि पिक्सेल मान थ्रेशोल्ड से छोटा है, तो इसे 0 पर सेट किया जाता है, अन्यथा, यह अधिकतम मान (आमतौर पर 255) पर सेट है।

ओपनसीवी विभिन्न थ्रेसहोल्डिंग विकल्प प्रदान करता है - सरल थ्रेसहोल्डिंग, अनुकूली थ्रेसहोल्डिंग

ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

ऑप्टिकल कैरेक्टर पहचान

पाइपलाइन में अगला कदम है ओसीआर। इसका उपयोग स्कैन किए गए दस्तावेज़ या चित्र जैसी छवियों से पाठ पढ़ने के लिए किया जाता है। इस तकनीक का उपयोग परिवर्तित करने के लिए किया जाता है, वस्तुतः किसी भी प्रकार की छवियां जिसमें लिखित पाठ (टाइप किया हुआ, हस्तलिखित या मुद्रित) होता है, मशीन-पठनीय पाठ डेटा में होता है. OCR में 2 चरण शामिल हैं - टेक्स्ट डिटेक्शन और टेक्स्ट रिकग्निशन।

ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

ओसीआर के लिए कई दृष्टिकोण हैं। पारंपरिक कंप्यूटर विजन दृष्टिकोण है

  • वर्णों को पृष्ठभूमि से अलग करने के लिए फ़िल्टर का उपयोग करना
  • फ़िल्टर किए गए वर्णों को पहचानने के लिए समोच्च पहचान लागू करें
  • पात्रों की पहचान करने के लिए दाना वर्गीकरण का उपयोग करें

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

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

ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

सीआरएनएन और STN-ओसीआर (स्थानिक ट्रांसफार्मर नेटवर्क) अन्य लोकप्रिय कागजात हैं जो ओसीआर का प्रदर्शन करते हैं।

सूचना निकालना

सूचना निष्कर्षण की समस्या के लिए सबसे आम तरीका नियम-आधारित है, जहां आवश्यक जानकारी निकालने के लिए नियमों को OCR लिखा जाता है। यह एक शक्तिशाली और सटीक दृष्टिकोण है, लेकिन इसके लिए आपको नए प्रकार के दस्तावेज़ के लिए नए नियम या टेम्प्लेट लिखने होंगे।

कई नियम-आधारित बीजक साहित्य में विश्लेषण प्रणाली मौजूद है।

नियम-आधारित तरीके विशिष्ट चालान लेआउट से जानकारी निकालने के लिए पूर्वनिर्धारित टेम्पलेट नियमों पर बहुत अधिक निर्भर करते हैं

एक दृष्टिकोण जो पिछले कुछ वर्षों में बहुत आम हो गया है वह खेतों को पहचानने के लिए YOLO, Faster R-CNN जैसे मानक ऑब्जेक्ट डिटेक्शन फ्रेमवर्क का उपयोग करना है। इसलिए शुद्ध पाठ पहचान के बजाय, क्षेत्र की पहचान और पाठ का पता लगाने का प्रदर्शन एक साथ किया जाता है। यह पाइपलाइन को छोटा बनाता है (टेक्स्ट डिटेक्शन → रिकग्निशन → एक्सट्रैक्शन टू डिटेक्शन → रिकॉग्निशन)। इन क्षेत्रों को पहचानने के लिए ऑब्जेक्ट डिटेक्टर के सीखने के बाद से कोई नियम लिखने की आवश्यकता नहीं है।

डेटा फेंका गया

एक बार जब आप अपनी जानकारी निकाल लेते हैं, तो डेटा डंप किया जा सकता है क्योंकि हमारे उपयोग के मामले की आवश्यकता होती है। खेतों की जानकारी संग्रहीत करने के लिए अक्सर एक JSON प्रारूप सुविधाजनक होता है। ये JSON फाइलें आसानी से XML फाइल, एक्सेल शीट, CSV फाइल या प्लेनटेक्स्ट फाइल में परिवर्तित हो सकती हैं, जो इस बात पर निर्भर करती है कि कौन डेटा और कैसे काम करना चाहता है।

रसीद डिजिटलीकरण का उपयोग कर Tesseract

अब चूंकि हमारे पास पाइपलाइन का एक विचार है, आइए इसे एक उदाहरण रसीद पर लागू करें. यह वह रसीद है जिसके साथ हम काम करेंगे। इसके अंत में हमारा लक्ष्य रेस्तरां का नाम, उनकी मात्रा और लागत, खरीद की तारीख और कुल के साथ खरीदी गई वस्तुओं को निकालना है।

ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

preprocessing

चूंकि हमारी रसीद पहले से ही ग्रेस्केल में है और बहुत अधिक शोर नहीं है, मैं केवल 210 की सीमा को लागू करके थ्रेशोल्ड करने जा रहा हूं। आप सही आउटपुट प्राप्त करने के लिए मूल्य को ट्विक कर सकते हैं। बहुत कम और आप बहुत याद करेंगे। 255 के करीब बहुत कुछ काला कर देगा।

हमें पहले OpenCV इंस्टॉल करना होगा।

pip install opencv-python

यहाँ थ्रेसहोल्ड के लिए कोड है।

import cv2
import numpy as np
from matplotlib import pyplot as plt # Read the image
img = cv2.imread('receipt.jpg',0)
# Simple thresholding
ret,thresh1 = cv2.threshold(img,210,255,cv2.THRESH_BINARY)
cv2.imshow(thresh1,’gray’)

यह वही है जो आउटपुट दिखता है।

ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

पाठ का पता लगाना

पाठ का पता लगाने के लिए मैं एक ओपन-सोर्स लाइब्रेरी का उपयोग करूंगा, जिसे बुलाया जाएगा Tesseract। यह निश्चित OCR लाइब्रेरी है और इसे 2006 से Google द्वारा विकसित किया गया है। Tesseract (v4) की नवीनतम रिलीज़ गहन शिक्षण-आधारित OCR का समर्थन करती है जो कि अधिक सटीक है। अंतर्निहित OCR इंजन ही एक लॉन्ग शॉर्ट-टर्म मेमोरी (LSTM) नेटवर्क का उपयोग करता है।

सबसे पहले Tesseract का नवीनतम संस्करण स्थापित करते हैं।

Ubuntu के लिए

sudo apt install tesseract-ocr

MacOS के लिए

brew install tesseract --HEAD

खिड़कियों के लिए, आप बायनेरिज़ को इससे डाउनलोड कर सकते हैं पृष्ठ

अपने टेसरेक्ट संस्करण की पुष्टि करें।

tesseract -v

आउटपुट -

tesseract 4.0.0-beta.3
leptonica-1.76.0
libjpeg 9c : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11
Found AVX512BW
Found AVX512F
Found AVX2
Found AVX
Found SSE

अपने टेसरैक्ट + पायथन बाइंडिंग स्थापित करें

अब जब हमारे पास टेसरैक्ट बाइनरी स्थापित हो गई है, तो हमें अब टेसरैक्ट + पायथन बाइंडिंग स्थापित करने की आवश्यकता है ताकि हमारे पायथन स्क्रिप्ट टेसरैक्ट के साथ संवाद कर सकें। हम भी जर्मन भाषा पैक स्थापित करने की आवश्यकता है क्योंकि रसीद जर्मन में है।

pip install pytesseract
sudo apt-get install tesseract-ocr-deu

अब जब हमने Tesseract को स्थापित कर लिया है तो चलिए टेक्स्ट बॉक्स का पता लगाना शुरू करते हैं।Tesseract टेक्स्ट बॉक्स का पता लगाने के लिए अंतर्निहित कार्यक्षमता है।

import pytesseract
from pytesseract import Output
import cv2 img = cv2.imread('receipt.jpg')
d = pytesseract.image_to_data(img, output_type=Output.DICT)
n_boxes = len(d['level'])
for i in range(n_boxes): (x, y, w, h) = (d['left'][i], d['top'][i], d['width'][i], d['height'][i]) img = cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 2) cv2.imshow(img,'img')

यहां टेक्स्ट डिटेक्शन कोड का आउटपुट दिया गया है।

ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

पाठ मान्यता

हम ओसीआर प्रदर्शन करने के लिए टेसरैक्ट करेंगे। Tesseract 4 एक गहन शिक्षण दृष्टिकोण का उपयोग करता है जो कि अन्य खुले स्रोत कार्यान्वयन की तुलना में काफी बेहतर प्रदर्शन करता है।

यहां टेक्स्ट रिकग्निशन का कोड दिया गया है। हालांकि यह एक बहुत ही सरल वन-लाइनर है, बहुत कुछ है जो हुड के नीचे जाता है।

extracted_text = pytesseract.image_to_string(img, lang = 'deu')

यहाँ कच्चे उत्पादन है।

'BerghotelnGrosse Scheideggn3818 GrindelwaldnFamilie R.MüllernnRech.Nr. 4572 30.07.2007/13:29: 17nBar Tisch 7/01n2xLatte Macchiato &ä 4.50 CHF 9,00n1xGloki a 5.00 CH 5.00n1xSchweinschnitzel ä 22.00 CHF 22.00nIxChässpätz 1 a 18.50 CHF 18.50nnTotal: CHF 54.50nnIncl. 7.6% MwSt 54.50 CHF: 3.85nnEntspricht in Euro 36.33 EURnEs bediente Sie: UrsulannMwSt Nr. : 430 234nTel.: 033 853 67 16nFax.: 033 853 67 19nE-mail: grossescheidegs@b luewin. ch'

यहाँ स्वरूपित आउटपुट है

Berghotel
Grosse Scheidegg
3818 Grindelwald
Familie R.Müller Rech.Nr. 4572 30.07.2007/13:29: 17
Bar Tisch 7/01
2xLatte Macchiato &ä 4.50 CHF 9,00
1xGloki a 5.00 CH 5.00
1xSchweinschnitzel ä 22.00 CHF 22.00
IxChässpätz 1 a 18.50 CHF 18.50 Total: CHF 54.50 Incl. 7.6% MwSt 54.50 CHF: 3.85 Entspricht in Euro 36.33 EUR
Es bediente Sie: Ursula MwSt Nr. : 430 234
Tel.: 033 853 67 16
Fax.: 033 853 67 19
E-mail: grossescheidegs@b luewin. ch

दस्तावेजों, रसीदों को डिजिटाइज़ करने की आवश्यकता है या चालान लेकिन कोड के लिए बहुत आलसी? वहां जाओ नैनोनेट्स और मुक्त करने के लिए ओसीआर मॉडल का निर्माण!


सूचना निकालना

जैसा कि मैंने उल्लेख किया है कि जानकारी निकालने का सबसे आम तरीका एक नियम-आधारित दृष्टिकोण है।

इस होटल से सभी प्राप्तियां एक निश्चित संरचना का पालन करेंगी और जानकारी विभिन्न लाइनों पर दिखाई देगी। यह ओसीआर आउटपुट में परिलक्षित होता है, जहां 'एन' द्वारा नई रेखाओं का प्रतिनिधित्व किया जाता है। इनका उपयोग करते हुए जानकारी निकालने के लिए नियमों का एक सेट लिखें। नियमों का यह सेट इस होटल से किसी भी रसीद पर लागू किया जा सकता है क्योंकि वे उसी प्रारूप का पालन करेंगे।

ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

मैं रेस्तरां का नाम, लेन-देन की तारीख, खरीदी गई वस्तुओं, उनकी मात्रा, प्रति आइटम कुल लागत और साधारण अजगर आदेशों और नियमित अभिव्यक्तियों का उपयोग करके कुल राशि निकाल रहा हूं।

यह एक डिक्शनरी है जहां मैं निकाली गई जानकारी संग्रहीत करूंगा।

receipt _ocr = {}

पहला कदम रेस्तरां का नाम निकालना है। रेस्तरां के नाम का स्थान सभी प्राप्तियों में स्थिर रहने वाला है और यह पहली 2 लाइनों में है। एक नियम बनाने के लिए इसका उपयोग करते हैं।

splits = extracted_text.splitlines()
restaurant_name = splits[0] + '' + splits[1]

अगला, हम लेनदेन की तारीख निकालते हैं। दिनांक regex बहुत सीधा है।


import re
# regex for date. The pattern in the receipt is in 30.07.2007 in DD:MM:YYYY date_pattern = r'(0[1-9]|[12][0-9]|3[01])[.](0[1-9]|1[012])[.](19|20)dd'
date = re.search(date_pattern, extracted_text).group()
receipt_ocr['date'] = date
print(date)

आउटपुट -

‘30.10.2007’

आगे हम वस्तुओं और लागत से संबंधित सभी जानकारी निकालते हैं।

आइटम में एक CHF होता है जो स्विस फ़्रैंक होता है। आइए CHF की सभी घटनाओं का पता लगाएं। अब हम 2 n के बीच के वर्णों को पहचानकर और एक CHF युक्त रेखाओं का पता लगा सकते हैं। मैं यहां भी कुल का पता लगा रहा हूं।

# get lines with chf
lines_with_chf = []
for line in splits: if re.search(r'CHF',line): lines_with_chf.append(line) print(lines_with_chf)

आउटपुट -

2xLatte Macchiato &ä 4.50 CHF 9,00
1xSchweinschnitzel ä 22.00 CHF 22.00
IxChässpätz 1 a 18.50 CHF 18.50
Total: CHF 54.50
Incl. 7.6% MwSt 54.50 CHF: 3.85

यदि आप ध्यान दें, तो Tesseract एक आइटम से चूक गया क्योंकि उसने CHF के बजाय CH का पता लगाया था। मैं अगले भाग में पारंपरिक OCR सिस्टम में चुनौतियों को कवर करूंगा।

# get items, total, ignore Incl
items = []
for line in lines_with_chf: print(line) if re.search(r'Incl',line): continue if re.search(r'Total', line): total = line else: items.append(line) # Get Name, quantity and cost all_items = {}
for item in items: details = item.split() quantity_name = details[0] quantity = quantity_name.split('x')[0] name = quantity_name.split('x')[1] cost = details[-1] all_items[name] = {'quantity':quantity, 'cost':cost} total = total.split('CHF')[-1] # Store the results in the dict
receipt_ocr['items'] = all_items
receipt_ocr[‘total’] = total import json receipt_json = json.dumps(receipt_ocr)
print(receipt_json)

हमारे JSON उत्पादन मुद्रण -

{'date': '30.07.2007', 'items': {'Chässpätz': {'cost': '18.50', 'quantity': 'I'}, 'Latte': {'cost': '9,00', 'quantity': '2'}, 'Schweinschnitzel': {'cost': '22.00', 'quantity': '1'}}, 'total': ' 54.50'}

सभी प्रमुख जानकारी निकाली गई है और उसे रसीद में डंप किया गया है।

पारंपरिक दृष्टिकोण के साथ समस्याएं

यद्यपि हमने जानकारी निकाली है, ऊपर की पाइपलाइन कुछ चीजों को याद करती है और उप इष्टतम है। प्रत्येक नई रसीद के लिए हमें नियमों का एक नया सेट लिखना होगा और इस प्रकार मापनीय नहीं होगा।

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

एंड-टू-एंड डीप लर्निंग पाइप लाइन बेहतर क्यों है?

मानक दृष्टिकोण के साथ सबसे बड़ी समस्याओं में से एक सामान्यीकरण की कमी है। नियम आधारित दृष्टिकोण सामान्य नहीं हो सकते हैं और किसी भी नए टेम्पलेट के लिए नए नियमों को लिखने की आवश्यकता है। मौजूदा टेम्पलेट में किसी भी बदलाव या बदलाव के लिए भी इसका हिसाब रखने की जरूरत है।

एक डीप लर्निंग दृष्टिकोण इन नियमों को सीखने में सक्षम होगा, और आसानी से विभिन्न लेआउट में सामान्यीकरण करने में सक्षम होगा, बशर्ते कि हमारे पास उनके प्रशिक्षण डेटासेट में हों।

डीप लर्निंग एंड इंफॉर्मेशन एक्सट्रैक्शन

यहां मैं कुछ कागजात की समीक्षा करता हूं जो एंड-टू-एंड डीप लर्निंग दृष्टिकोण का उपयोग करता है.

प्यारी

CUTIE: संकलित सार्वभौमिक पाठ सूचना चिमटा के साथ दस्तावेजों को समझना

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

ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

प्रस्तावित मॉडल, प्रमुख सूचना निष्कर्षण समस्या से निपटता है

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

CUTIE स्कैन किए गए दस्तावेज़ छवि में ग्रंथों की शब्दार्थिक जानकारी और स्थानिक जानकारी दोनों को एक साथ देखने की अनुमति देता है और महत्वपूर्ण सूचना निष्कर्षण के लिए कला परिणाम की एक नई स्थिति तक पहुंच सकता है।

CUTIE मॉडल

उनके पास 2 मॉडल CUTIE-A और CUTIE-B हैं। प्रस्तावित CUTIE-A एक उच्च क्षमता वाला अवक्षेपणीय तंत्रिका नेटवर्क है जो उच्च-रिज़ॉल्यूशन सुविधाओं को खोए बिना बहु-रिज़ॉल्यूशन सुविधाओं को फ्यूज करता है। CUTIE-B बहु-स्तरीय संदर्भों को पकड़ने के लिए दृश्य और Atrous स्थानिक पिरामिड पूलिंग (ASPP) मॉड्यूल के क्षेत्र को बढ़ाने के लिए atrous दृढ़ संकल्प के साथ एक दृढ़ नेटवर्क है। CUTIE-A और CUITE-B दोनों एक शब्द के साथ बहुत प्रारंभिक चरण में एक शब्द एम्बेडिंग परत के साथ शब्दार्थ अर्थ एन्कोडिंग प्रक्रिया का संचालन करते हैं।

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

डेटासेट

प्रस्तावित विधि का मूल्यांकन SROCD डेटासेट पर ICDAR 2019 की मजबूत पठन चुनौती पर किया गया है और यह 3 प्रकार के स्कैन किए गए दस्तावेज़ छवियों के साथ स्व-निर्मित डेटासेट पर भी है।

RSI ICDAR 2019 SROIE डेटा सेट का उपयोग किया जाता है जिसमें 1000 पूरे स्कैन किए गए रसीद चित्र होते हैं। प्रत्येक रसीद की छवि में लगभग चार प्रमुख पाठ फ़ील्ड होते हैं, जैसे कि माल का नाम, इकाई मूल्य, तिथि और कुल लागत। डेटासेट में एनोटेट किए गए पाठ में मुख्य रूप से अंक और अंग्रेजी वर्ण होते हैं।

स्व-निर्मित डेटासेट में 4 अलग-अलग महत्वपूर्ण सूचना वर्गों के साथ टैक्सी रसीदें, भोजन मनोरंजन (एमई) रसीदें, और होटल रसीदें सहित 484, 9 एनोटेट स्कैन किए गए स्पेनिश रसीद दस्तावेज़ शामिल हैं।

परिणाम

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

आप नीचे दी गई तालिका में परिणाम देख सकते हैं।

ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

वीआरडी के लिए जीसीएन

दृष्टिगत रूप से समृद्ध दस्तावेज़ों से मल्टीमॉडल सूचना निष्कर्षण के लिए ग्राफ कन्वेंशन

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

इस पत्र में वे एक दस्तावेज को वीआरडी कहते हैं और मैं इसके साथ चिपका रहूंगा।

प्रत्येक दस्तावेज़ को टेक्स्ट सेगमेंट के ग्राफ़ के रूप में तैयार किया जाता है, जहाँ प्रत्येक टेक्स्ट सेगमेंट में सेगमेंट की स्थिति और उसके भीतर का टेक्स्ट शामिल होता है। ग्राफ़ में नोड्स शामिल हैं जो पाठ खंडों का प्रतिनिधित्व करते हैं, और किनारों जो दृश्य निर्भरता का प्रतिनिधित्व करते हैं, जैसे रिश्तेदार आकार और दूरी, दो नोड्स के बीच।

ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

ग्राफ कनवल्शन द्वारा निर्मित ग्राफ एम्बेडिंग दस्तावेज़ में एक टेक्स्ट सेगमेंट के संदर्भ को संक्षेप में प्रस्तुत करता है, जो आगे एक मानक BiLSTM-CRF मॉडल का उपयोग करके इकाई निष्कर्षण के लिए पाठ एम्बेडिंग के साथ जोड़ा जाता है।

आदर्श

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

ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

डेटासेट

दो वास्तविक दुनिया डेटासेट का उपयोग किया जाता है। वे ValueAdded कर चालान (VATI) और अंतर्राष्ट्रीय खरीद रसीदें (IPR) हैं। VATI में 3000 उपयोगकर्ता-अपलोड की गई चित्र हैं और सटीक करने के लिए 16 इकाइयाँ हैं। उदाहरण संस्थाएं खरीदार / विक्रेता, तिथि और कर राशि के नाम हैं। चालान चीनी में हैं, और इसका एक निश्चित खाका है क्योंकि यह राष्ट्रीय मानक चालान है।

आईपीआर अंग्रेजी में 1500 स्कैन किए गए रसीद दस्तावेजों का एक डेटा सेट है जिसमें 4 इकाइयां हैं (इनवॉइस नंबर, वेंडर नाम, भुगतानकर्ता नाम और कुल राशि)। रसीदों के लिए 146 टेम्पलेट मौजूद हैं।

परिणाम

सभी प्रयोग में मॉडल के प्रदर्शन का मूल्यांकन करने के लिए एफ 1 स्कोर का उपयोग किया जाता है। नीचे दी गई तालिका में थ्रैट 2 डेटासेट पर परिणाम हैं।

ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

बेसलाइन I प्रत्येक पाठ खंड में BiLSTM-CRF लागू करता है, जहां प्रत्येक पाठ खंड एक व्यक्तिगत वाक्य है।

बेसलाइन II संक्षिप्त पाठ खंडों में टैगिंग मॉडल लागू करता है।

तेज़-आरसीएनएन + एईडी

रसीद मान्यता के लिए गहन शिक्षण दृष्टिकोण

यह पेपर स्कैन की गई रसीदों को पहचानने के लिए एक गहन शिक्षण दृष्टिकोण प्रस्तुत करता है। मान्यता प्रणाली के दो मुख्य मॉड्यूल हैं: कनेक्शनवादी पाठ प्रस्ताव नेटवर्क पर आधारित पाठ का पता लगाना और ध्यान-आधारित एनकोडर-डिकोडर पर आधारित पाठ की पहचान। सिस्टम ने पता लगाने और मान्यता कार्य के लिए एफ 71.9 स्कोर का 1% हासिल किया।

पाठ का पता लगाना

CTPN संरचना LSTM परत के अतिरिक्त Faster R-CNN के समान है। नेटवर्क मॉडल में मुख्य रूप से तीन भाग होते हैं: VGG16, द्विदिश LSTM और बाउंडिंग बॉक्स प्रतिगमन द्वारा सुविधा निष्कर्षण

ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

पाठ मान्यता

AED का उपयोग टेक्स्ट लाइनों को पहचानने में किया जाता है। एईडी के दो मुख्य मॉड्यूल हैं: एक पाठ छवि से सुविधाओं को निकालने के लिए डेंसनेट और आउटपुट टेक्स्ट की भविष्यवाणी के लिए एक ध्यान मॉडल के साथ संयुक्त एक एलएसटीएम।

ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

डेटासेट

SROIE 2019 के डेटासेट का उपयोग किया जाता है। उन्होंने प्रशिक्षण डेटा को प्रशिक्षण, सत्यापन, और परीक्षण में विभाजित किया और प्रशिक्षण के लिए रसीदों का 80% और सत्यापन के लिए प्राप्तियों का 10%, और बाकी परीक्षण के लिए यादृच्छिक रूप से चयनित किया। प्रशिक्षण के लिए 500 प्राप्तियों में परिणाम, सत्यापन के लिए 63 रसीदें, और परीक्षण के लिए 63।

परिणाम

टेक्स्ट डिटेक्शन के लिए, पेपर टाइटनेस-अवेयर इंटरसेक्शन-ओवर-यूनियन (TIoU) का उपयोग करता है। टेक्स्ट रिकग्निशन के लिए, पेपर F1, प्रेसिजन और रिकॉल का उपयोग करता है।

ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

तालिका I तीन स्थितियों के साथ CTPN का परिणाम दिखाता है: मूल छवियों पर CTPN; प्री-प्रोसेसिंग + CTPN, प्री-प्रोसेसिंग + CTPN + OCR वेरिफिकेशन। तालिका 2 AED नेटवर्क के परिणाम दिखाती है।

ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

बेशक, ऐसा करने का एक आसान, अधिक सहज तरीका है।


एक मजबूत चाहिए रसीद OCR प्राप्तियों से डेटा निकालने के लिए? नैनोनेट देखें रसीद ओसीआर एपीआई!


नैनोसेट्स के साथ ओसीआर

अद्यतन # 1: हमने अभी-अभी अपना जारी किया है रसीद OCR पूर्व प्रशिक्षित मॉडल। https://app.nanonets.com पर जाएं और परीक्षण शुरू करें!

ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

RSI नैनोनेट्स ओसीआर एपीआई आपको आसानी से ओसीआर मॉडल बनाने की अनुमति देता है। आपको अपनी छवियों के पूर्व-प्रसंस्करण के बारे में चिंता करने या मिलान टेम्पलेट्स के बारे में चिंता करने या अपने ओसीआर मॉडल की सटीकता बढ़ाने के लिए नियम आधारित इंजन बनाने की आवश्यकता नहीं है।

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

GUI का उपयोग करना: https://app.nanonets.com/

आप नीचे दिए गए चरणों का पालन करके नैनोनेट्स-ओसीआर एपीआई का भी उपयोग कर सकते हैं:

चरण 1: रेपो को क्लोन करें, निर्भरताएं स्थापित करें

git clone https://github.com/NanoNets/nanonets-ocr-sample-python.git
cd nanonets-ocr-sample-python
sudo pip install requests tqdm

चरण 2: अपनी मुफ्त एपीआई कुंजी प्राप्त करें
से अपनी मुफ्त एपीआई कुंजी प्राप्त करें http://app.nanonets.com/#/keys

ओसीआर और डीप लर्निंग के साथ ऑटोमेशन रसीद डिजिटलीकरण

चरण 3: एक पर्यावरण चर के रूप में एपीआई कुंजी सेट करें

export NANONETS_API_KEY=YOUR_API_KEY_GOES_HERE

चरण 4: एक नया मॉडल बनाएँ

python ./code/create-model.py

नोट: यह एक MODEL_ID बनाता है जिसे आपको अगले चरण के लिए आवश्यक है

चरण 5: पर्यावरण चर के रूप में मॉडल आईडी जोड़ें

export NANONETS_MODEL_ID=YOUR_MODEL_ID

नोट: आपको पिछले चरण से आपका_मॉडल_आईडी मिलेगा

चरण 6: प्रशिक्षण डेटा अपलोड करें
प्रशिक्षण डेटा में पाया जाता है images (छवि फ़ाइलें) और annotations (छवि फ़ाइलों के लिए एनोटेशन)

python ./code/upload-training.py

चरण 7: ट्रेन मॉडल
छवियाँ अपलोड हो जाने के बाद, मॉडल का प्रशिक्षण शुरू करें

python ./code/train-model.py

चरण 8: मॉडल राज्य प्राप्त करें
मॉडल को प्रशिक्षण के लिए ~ 2 घंटे लगते हैं। मॉडल प्रशिक्षित होने के बाद आपको एक ईमेल मिलेगा। इस बीच आप मॉडल की स्थिति की जांच करते हैं

python ./code/model-state.py

चरण 9: भविष्यवाणी करें
एक बार मॉडल को प्रशिक्षित किया जाता है। आप मॉडल का उपयोग करके भविष्यवाणियां कर सकते हैं

python ./code/prediction.py ./images/151.jpg

इसके अलावा पढ़ना

अपडेट:
ओसीआर और डीप लर्निंग का उपयोग करके रसीद डिजिटलीकरण को स्वचालित करने में नवीनतम प्रगति के बारे में अधिक पठन सामग्री को जोड़ा गया।

समय टिकट:

से अधिक एअर इंडिया और मशीन लर्निंग