Automating Receipt Digitization with OCR and Deep Learning PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

Want to automate data extraction from receipts? Check out Nanonets' pre-trained OCR potrdila or zgraditi svoje customized receipt OCR. You can also načrtuj predstavitev to learn more about our AP use cases!


OCR potrdila or receipt digitization addresses the challenge of automatically extracting information from a  receipt. In this article, I cover the theory behind receipt digitization and implement an end-to-end pipeline using OpenCV and Teseract. Pregledam tudi nekaj pomembnih dokumentov, ki izvajajo digitalizacijo potrdil z uporabo globokega učenja.

Kaj je digitalizacija prejemkov?

Prejemki vsebujejo informacije, ki so potrebne za trgovino med podjetji, velik del pa je na papirju ali v polstrukturirani obliki, kot so PDF-ji in slike iz papirja / tiskane kopije. Za učinkovito upravljanje teh informacij podjetja izvlečejo in shranijo ustrezne informacije iz teh dokumentov. Tradicionalno je bilo to doseženo z ročnim pridobivanjem ustreznih informacij in vnosom v bazo podatkov, kar je dolgotrajen in drag proces.

Digitalizacija potrdil obravnava izziv samodejnega pridobivanja informacij iz potrdila.

Izvleček ključnih informacij iz prejemkov in pretvorba v strukturirane dokumente lahko služi mnogim aplikacijam in storitvam, kot so učinkovito arhiviranje, hitro indeksiranje in analitika dokumentov. Imajo kritično vlogo pri racionalizaciji dokumentov intenzivnih procesov in pisarniške avtomatizacije na številnih finančnih, računovodskih in davčnih področjih.

Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

Potrebujete robusten prejem OCR or skener potrdil to extract data from receipts? Check out Nanonets receipt OCR API!


Kdo se bo digitalizaciji prejemkov zdel uporaben?

Tu je nekaj področij, kjer lahko digitalizacija prejemanja močno vpliva:

Avtomatizacija zapadlih in zapadlih terjatev

Ročno izračunavanje zapadlih računov (AP) in terjatev (AR) je drago, zamudno in lahko povzroči zmedo med upravljavci, strankami in prodajalci. Podjetja lahko z digitalizacijo odpravijo te pomanjkljivosti in imajo lahko več prednosti - večjo preglednost, analitiko podatkov, izboljšan obratni kapital in lažje sledenje.

Optimizacija dobavne verige

Dobavne verige so temelj mnogih funkcij delovanja podjetja. Upravljanje nalog, pretokov informacij in pretokov izdelkov je ključnega pomena za popoln nadzor ponudbe in proizvodnje. To je nujno, če organizacije izpolnjujejo dobavne roke in nadzorujejo proizvodne stroške.

Podjetja, ki danes resnično uspevajo, imajo nekaj skupnega: digitalizirano dobavno verigo. 89% podjetij z digitalnimi dobavnimi verigami prejema popolna naročila mednarodnih dobaviteljev, kar zagotavlja pravočasno dostavo. Eden ključnih elementov uresničevanja digitalne dobavne verige naslednje generacije 4.0 je avtomatizacija zajema in upravljanja podatkov, veliko teh podatkov pa je v obliki potrdil in računi. Ročni vnos računov deluje kot ozko grlo v dobavni verigi in vodi do nepotrebnih zamud. Če je ta obdelava računov digitalizirana, lahko povzroči znatne dobičke v času in učinkovitosti.


Imate v mislih težavo z OCR? Želite digitalizirati računi, PDF ali registrske tablice? Pojdite na Nanoneti in gradite OCR modele brezplačno!


Zakaj je to težaven problem?

Digitalizacija potrdil je težka, saj imajo računi veliko različic in so včasih nizke kakovosti. Skeniranje potrdil v našo digitalno kopijo vnese tudi več predmetov. Ti artefakti predstavljajo številne izzive berljivosti.

Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

Tu je seznam nekaj stvari, zaradi katerih je težko razbiti

  • Rokopisno besedilo
  • Majhne pisave
  • Hrupne slike
  • Izbledele slike
  • Kamera se premika in trese
  • Vodne oznake
  • gube
  • Besedilo zbledelo

Tradicionalni cevovod za digitalizacijo prejema

Tipičen cevovod za takšen pristop od konca do konca vključuje:

  • Predobdelava
  • Optično prepoznavanje znakov
  • Izvleček informacij
  • Izpis podatkov
Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

Potopimo se globlje v vsak del plinovoda. Prvi korak postopka je predobdelava.

Predobdelava

Večina skeniranih potrdil je hrupna in ima artefakte, zato je za pravilno delovanje OCR in sistemov za odvzem informacij potrebno predhodno obdelati potrdila. Običajne metode predhodne obdelave vključujejo - sivo skaliranje, pragove (binarnost) in odstranjevanje hrupa.

Sive barve je preprosto pretvorba RGB slike v sivo sliko.

Odstranjevanje hrupa običajno vključuje odstranjevanje hrupa iz soli in popra ali gausovega hrupa.

Večina OCR motorjev dobro deluje na črno-belih slikah. To lahko dosežemo s pragom, ki je dodelitev vrednosti slikovnih pik glede na določeno vrednost praga. Vsaka vrednost slikovnih pik se primerja z mejno vrednostjo. Če je vrednost slikovnih pik manjša od praga, je nastavljena na 0, sicer pa na največjo vrednost (običajno 255).

OpenCV ponuja različne možnosti določanja praga – preprosto določanje praga, prilagodljivo določanje praga

Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

Optično prepoznavanje znakov

Naslednji korak v plinovodu je OCR. Uporablja se za branje besedila s slik, kot je skeniran dokument ali slika. Ta tehnologija se uporablja za pretvorbo skoraj vseh slik, ki vsebujejo napisano besedilo (vtipkano, ročno napisano ali natisnjeno), v besedilo, ki ga lahko berejo strojno.. OCR vključuje dva koraka - zaznavanje besedila in prepoznavanje besedila.

Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

Obstaja več pristopov k OCR. Konvencionalni pristop računalniškega vida je

  • S filtri ločite znake od ozadja
  • Uporabite zaznavanje konture, da prepoznate filtrirane znake
  • Za identifikacijo znakov uporabite klasifikacijo mag

Uporaba filtrov in razvrščanja slik je precej preprosta (pomislite na MNIST klasifikacijo z uporabo SVN), vendar je ujemanje kontur zelo težaven problem in zahteva veliko ročnega napora in ni posplošljivo.

Sledijo pristopi globokega učenja. Globoko učenje zelo dobro posplošuje. Eden najbolj priljubljenih pristopov za zaznavanje besedila je EAST. EAST (Učinkovit natančen detektor besedila scene) je preprost, a zmogljiv pristop za zaznavanje besedila. Omrežje EAST je pravzaprav različica dobro znane mreže U-Net, ki je dobra za odkrivanje značilnosti različnih velikosti.

Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

CRNN in STN-OCR (Prostorska transformatorska omrežja) so drugi priljubljeni dokumenti, ki izvajajo OCR.

Izvleček informacij

Najpogostejši pristop k problemu pridobivanja informacij temelji na pravilih, kjer so pravila napisana po OCR za pridobivanje zahtevanih informacij. To je močan in natančen pristop, ki pa zahteva, da napišete nova pravila ali predloge za novo vrsto dokumenta.

Na podlagi več pravil računa sistemi analize obstajajo v literaturi.

  • DolixWare Intellix zahteva predlogo, označeno z ustreznimi polji.
  • SmartFix uporablja posebej oblikovana pravila konfiguracije za vsako predlogo

Metode, ki temeljijo na pravilih, se v veliki meri opirajo na vnaprej določena pravila predloge za črpanje informacij iz določenih postavitev računov

Eden od pristopov, ki se je v zadnjih nekaj letih zelo razširil, je uporaba standardnega okvira za zaznavanje objektov, kot je YOLO, hitrejši R-CNN, za prepoznavanje polj. Namesto zaznavanja čistega besedila se hkrati izvajata prepoznavanje polja in zaznavanje besedila. S tem je cevovod manjši (zaznavanje besedila → prepoznavanje → ekstrakcija do zaznavanja → prepoznavanje). Pravila ni treba pisati, ker se detektor predmetov nauči prepoznavati ta polja.

Izpis podatkov

Ko izvlečete svoje podatke, lahko kopiranje podatkov opravite tako, kot to zahteva naš primer uporabe. Pogosto je format JSON za shranjevanje informacij o poljih priročen. Te datoteke JSON je mogoče zlahka pretvoriti v datoteke XML, Excel liste, datoteke CSV ali datoteke v preprostih tekstih, odvisno od tega, kdo želi delati s podatki in kako.

Uporaba digitalizacije računa Teseract

Zdaj, ko imamo idejo o plinovodu, jo izvedemo na primeru prejema. To je potrdilo, s katerim bomo sodelovali. Naš cilj na koncu je izluščiti ime restavracije, izdelke, kupljene z njihovo količino in stroški, datumom nakupa in skupno količino.

Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

Predobdelava

Ker je naše potrdilo že v sivih barvah in ni veliko hrupa, bom določil prag le z uporabo praga 210. Vrednost lahko prilagodite, da dobite pravi izhod. Premalo in veliko boste zgrešili. Preveč blizu 255 bo vse črno.

Najprej bomo morali namestiti OpenCV.

pip install opencv-python

Tu je koda za določanje pragov.

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’)

Tako izgleda izhodni rezultat.

Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

Zaznavanje besedila

Za zaznavanje besedila bom uporabil knjižnico odprtega izvora, imenovano Teseract. To je dokončna knjižnica OCR, ki jo Google razvija od leta 2006. Najnovejša izdaja Tesseract (v4) podpira OCR z globokim učenjem, ki je bistveno natančnejši. Osnovni motor OCR sam uporablja omrežje za dolgoročni pomnilnik (LSTM).

Najprej namestimo najnovejšo različico Tesseract-a.

Za ubuntu

sudo apt install tesseract-ocr

Za macOS

brew install tesseract --HEAD

Za okna lahko iz tega prenesete binarne datoteke Stran

Preverite svojo različico tesseract.

tesseract -v

Izhod -

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

Namestite svoje vezi Tesseract + Python

Zdaj, ko imamo nameščen binarni zapis Tesseract, moramo zdaj namestiti vezi Tesseract + Python, da lahko naši skripti Python komunicirajo s Tesseractom. Namestiti moramo tudi paket nemškega jezika, saj je potrdilo v nemščini.

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

Zdaj, ko smo namestili Tesseract, začnimo zaznavati besedilna polja.Teseract ima vgrajeno funkcijo za zaznavanje besedilnih polj.

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')

Tu je izhod kode za zaznavanje besedila.

Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

Prepoznavanje besedila

Tesseract bomo izvedli OCR. Tesseract 4 uporablja pristop globokega učenja, ki deluje bistveno bolje kot večina drugih odprtokodnih izvedb.

Tu je koda prepoznavanja besedila. Čeprav gre za zelo preprosto enoprostornico, je pod pokrovom veliko.

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

Tukaj je surova proizvodnja.

'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'

Tukaj je oblikovani izhod

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

Potreba po digitalizaciji dokumentov, potrdil oz računi a prelen za kodiranje? Pojdite na Nanoneti in gradite OCR modele brezplačno!


Izvleček informacij

Kot sem že omenil, je najpogostejši način pridobivanja informacij pristop, ki temelji na pravilih.

Vsi prejemki tega hotela bodo sledili fiksni strukturi, informacije pa so prikazane v različnih vrsticah. To se odraža v izhodu OCR, kjer so nove vrstice predstavljene z „n“. Z njimi napišemo niz pravil za pridobivanje informacij. Ta sklop pravil je mogoče uporabiti za vsako potrdilo tega hotela, saj bodo v isti obliki.

Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

Izvlekel bom ime restavracije, datum transakcije, kupljene izdelke, njihovo količino, skupne stroške na kos in skupni znesek z uporabo preprostih ukazov pythona in rednih izrazov.

To je slovar, kamor bom shranjeval izvlečene podatke.

receipt _ocr = {}

Prvi korak je pridobiti ime restavracije. Lokacija imena restavracije bo v vseh prejemkih nespremenjena in to v prvih dveh vrsticah. Uporabite to za ustvarjanje pravila.

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

Nato izvlečemo datum transakcije. Regex datumov je precej preprost.


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)

Izhod -

‘30.10.2007’

Nato izvlečemo vse podatke, povezane s predmeti in stroški.

The items contain a CHF which is the swiss franc. Let's detect all occurrences of CHF. Now we can detect lines by recognizing the characters between 2 n and containing a CHF.  I’m detecting the total here also.

# 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)

Izhod -

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

Če opazite, je Tesseract izpustil en element, ker je namesto CHF zaznal CH. V naslednjem razdelku bom obravnaval izzive v tradicionalnih sistemih 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)

Tiskanje izhoda 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'}

Vsi ključni podatki so bili izvlečeni in naloženi v prejemni_json ..

Težave s konvencionalnim pristopom

Čeprav smo informacije črpali, zgornji cevovod izpušča nekaj stvari in je premalo optimalen. Za vsako novo potrdilo moramo napisati nov niz pravil in ga zato ni mogoče razširiti.

Razlike v postavitvah, velikosti pisave in pisave, ročno napisanih dokumentih itd. So lahko različne. Razlike v postavitvah bodo vplivale na pristope, ki temeljijo na pravilih, in jih je treba upoštevati, kar postane zelo dolgočasno. Razlike v velikosti pisave in pisave otežujejo prepoznavanje in pridobivanje informacij.

Zakaj je cevovod za poglobljeno učenje boljši?

Ena največjih težav s standardnim pristopom je pomanjkanje posploševanja. Pristopov, ki temeljijo na pravilih, ni mogoče posplošiti, za novo predlogo pa je treba napisati nova pravila. Prav tako je treba upoštevati vse spremembe ali spremembe obstoječe predloge.

S pristopom globljega učenja se bomo lahko naučili teh pravil in jih bomo zlahka posplošili po različnih postavitvah, če jih bomo imeli v svojem naboru usposabljanja.

Globoko učenje in pridobivanje informacij

Tu pregledam nekaj prispevkov, ki uporabljajo pristope poglobljenega učenja do konca.

LJUBKA

CUTIE: Naučimo se razumeti dokumente s Convolutional Universal Text Text Extractor

Ta članek predlaga metoda pridobivanja ključnih informacij na osnovi učenja z omejenimi potrebami po človeških virih. Združuje informacije tako iz semantičnega pomena kot prostorske razporeditve besedil v dokumentih. Njihov predlagani model Convolutional Universal Text Information Extractor (CUTIE) uporablja konvolucijsko nevronske mreže na mrežatih besedilih, kjer so besedila vdelana kot značilnosti s pomenskimi konotacijami.

Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

Predlagani model, obravnava težavo pri pridobivanju ključnih informacij s strani

  • Najprej ustvarite mrežna besedila s predlaganimi metoda kartiranja pozicijske mreže. Za generiranje podatkov mreže za konvolucijsko nevronsko omrežje skenirano sliko dokumenta obdela OCR motor, da pridobi besedila in njihove absolutne / relativne položaje. Besedila so preslikana iz prvotne slike skeniranega dokumenta v ciljno mrežo, tako da preslikana mreža ohrani izvirno prostorsko razmerje med besedili, vendar je bolj primerno za uporabo kot vhod za konvolucijsko nevronsko mrežo.
  • Nato se na rešetke besedil uporabi model CUTIE. Bogata semantična informacija je na samem začetku konvolucijske nevronske mreže kodirana iz mrežnih besedil z vdelano plastjo besed.

CUTIE omogoča sočasno pregledovanje tako semantičnih informacij kot tudi prostorskih informacij besedil v skenirani sliki dokumenta in lahko doseže nov najsodobnejši rezultat za pridobivanje ključnih informacij.

Model CUTIE

Imata 2 modela CUTIE-A in CUTIE-B. predlagani CUTIE-A je konvolucijsko nevronsko omrežje z visoko zmogljivostjo, ki združuje funkcije z več ločljivostmi, ne da bi pri tem izgubilo lastnosti visoke ločljivosti. CUTIE-B je konvolucijsko omrežje z atrotično konvolucijo za povečanje vidnega polja in modulom združevanja prostorske piramide Atrous (ASPP) za zajemanje večstranskih kontekstov. Tako CUTIE-A kot CUITE-B vodita postopek kodiranja pomenskega pomena s slojem vdelave besede v samem začetku.

Naloga CUTIE je podobna nalogi semantične segmentacije. Preslikana mreža vsebuje razpršene podatkovne točke (besedilne žetone) v nasprotju s slikami, prepovedanimi s slikovnimi pikami. Ključna besedila na zemljevidu s pozicioniranimi v mrežo so med seboj blizu ali oddaljena zaradi različnih vrst postavitve dokumentov. Zato vključitev zmožnosti obdelave konteksta v več razredih koristi omrežju.

Podatkovni niz

Predlagana metoda je ovrednotena na zanesljivem bralnem izzivu ICDAR 2019 na naboru podatkov SROIE in je tudi na samozidanem naboru podatkov s 3 vrstami skeniranih slik dokumentov.

O ICDAR 2019 SROIE nabor podatkov , ki vsebuje 1000 celotnih optično prebranih slik potrdil. Vsaka slika računa vsebuje približno štiri ključna besedilna polja, kot so ime blaga, cena na enoto, datum in skupni stroški. Besedilo, označeno v naboru podatkov, je v glavnem sestavljeno iz številk in angleških znakov.

Lastno sestavljeni nabor podatkov vsebuje 4, 484 opombo skeniranih španskih potrdil o prejemu, vključno s potrdilom o taksiji, prejemom obrokov za zabavo (ME) in potrdilom v hotelu z 9 različnimi ključnimi informacijskimi razredi.

Rezultati

Celotna uspešnost se ovrednoti s povprečno natančnostjo (AP - in izmerjeno z natančnostjo po razredih v 9 razredih ,.) in mehko povprečno natančnostjo (softAP), kjer je napoved ključnega informacijskega razreda določena kot pravilna, če so pozitivne resnice pravilno predvideti, tudi če je v končno napoved vključenih nekaj lažnih pozitivnih rezultatov. skupna analiza AP in softAP omogoča boljše razumevanje delovanja modela.

Rezultate lahko vidite v spodnji tabeli.

Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

GCN za VRD

Koncept grafike za pridobivanje multimodalnih informacij iz vizualno bogatih dokumentov

Ta članek predstavlja model, ki temelji na zamiku grafov za kombiniranje besedilnih in vizualnih informacij, predstavljenih v dokumentih Visual Rich (VRD). Vdelave grafov so usposobljene za povzetek konteksta besedilnega segmenta v dokumentu in nadalje kombinirane z vdelavami besedila za pridobivanje entitete.

V tem dokumentu imenujejo dokument VRD in držal se ga bom.

Vsak dokument je modeliran kot graf besedilnih segmentov, pri čemer je vsak odsek besedila sestavljen iz položaja segmenta in besedila v njem. Graf je sestavljen iz vozlišč, ki predstavljajo besedilne segmente, in robov, ki predstavljajo vizualne odvisnosti, kot so relativne oblike in razdalja, med dvema vozliščema.

Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

Vdelave grafov, ustvarjene z zvijanjem grafa, povzemajo kontekst besedilnega segmenta v dokumentu, ki so dodatno kombinirani z vdelavami besedila za ekstrakcijo entitete s standardnim modelom BiLSTM-CRF.

Model

Model najprej kodira vsak besedilni segment v dokumentu v vdelavo grafa z uporabo več plasti sloja grafa. Vdelava predstavlja informacije v besedilnem segmentu glede na njegov vizualni in besedilni kontekst. Vizualni kontekst je postavitev dokumenta in relativni položaji posameznega segmenta do drugih segmentov. Besedilni kontekst je skup besedilnih informacij v celotnem dokumentu; Model se nauči dodeljevati večje uteži besedilom iz sosednjih segmentov. Nato papir kombinira vdelave grafa z vdelavo besedila in uporabi standardni BiLSTM-CRFmodel za ekstrakcijo entitete.

Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

Podatkovni niz

Uporabljata se dva nabora podatkov iz resničnega sveta. To so davčni računi z dodano vrednostjo (VATI) in mednarodni prejemki nakupov (IPR). VATI sestavlja 3000 slik, ki jih je naložil uporabnik, natančno pa ima 16 oseb. Primer podjetja so imena kupca / prodajalca, datum in znesek davka. Računi so v kitajščini in imajo fiksno predlogo, saj gre za nacionalni standardni račun.

IPR je nabor podatkov iz 1500 skeniranih potrdil o prejemu v angleščini, ki imajo natančno 4 entitete (številka računa, ime dobavitelja, ime plačnika in skupni znesek). Obstaja 146 predlog za potrdila.

Rezultati

F1 ocena se uporablja za oceno zmogljivosti modela v vseh poskusih. Spodnja tabela vsebuje rezultate na 2 zbirki podatkov.

Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

Izhodiščna točka I uporablja BiLSTM-CRF za vsak besedilni segment, kjer je vsak besedilni segment posamičen stavek.

Izhodišče II uporablja model označevanja za povezane segmente besedila.

Hitreje-RCNN + AED

Pristop globljega učenja za prepoznavanje prejemkov

Ta članek predstavlja pristop globokega učenja za prepoznavanje skeniranih prejemkov. Sistem za prepoznavanje ima dva glavna modula: zaznavanje besedila, ki temelji na Connectionist Text Text Network, in prepoznavanje besedila, ki temelji na pozornosti Encoder-dekoder. Sistem je za nalogo odkrivanja in prepoznavanja dosegel 71.9% ocene F1.

Zaznavanje besedila

Struktura CTPN je podobna hitrejši R-CNN, z dodatkom plasti LSTM. Omrežni model je sestavljen iz treh delov: ekstrakcija funkcij s pomočjo VGG16, dvosmerni LSTM in regresija omejevalnega polja

Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

Prepoznavanje besedila

AED se uporablja za prepoznavanje besedilnih vrstic. AED ima dva glavna modula: DenseNet za pridobivanje funkcij iz besedilne slike in LSTM v kombinaciji z modelom pozornosti za napovedovanje izhodnega besedila.

Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

Podatkovni niz

Uporablja se nabor podatkov iz SROIE 2019. Podatke o usposabljanju so razdelili na usposabljanje, potrjevanje in testiranje ter naključno izbrali 80% prejemkov za usposabljanje, 10% potrdil za potrjevanje in preostanek za testiranje. Rezultat je 500 potrdil za usposabljanje, 63 potrdil za potrjevanje in 63 za testiranje.

Rezultati

Za zaznavanje besedila papir uporablja Prekrižanje, ki se zaveda tesnosti, za zvezo (TIoU) za prepoznavanje besedila, papir uporablja F1, Precision in Recall.

Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

V tabeli I je prikazan rezultat CTPN s tremi pogoji: CTPN na izvirnih slikah; predobdelava + CTPN, predobdelava + CTPN + OCR preverjanje. V tabeli 2 so prikazani rezultati mreže AED.

Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

There's of course, an easier, more intuitive way to do this.


Potrebujete robusten prejem OCR to extract data from receipts? Check out Nanonets receipt OCR API!


OCR z Nanoneti

Update #1: We just released our prejem OCR pre-trained model. Head over to https://app.nanonets.com and start testing!

Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

O Nanonets OCR API omogoča enostavno izdelavo OCR modelov. Ni vam treba skrbeti za predhodno obdelavo slik ali skrbi za ujemanje predlog ali gradnjo motorjev, ki temeljijo na pravilih, da povečate natančnost vašega modela OCR.

Podatke lahko naložite, jih pripisujete, nastavite model za usposabljanje in čakate, da se prek uporabniškega vmesnika, ki temelji na brskalniku, napovedujejo napovedi, ne da bi napisali eno kodo, skrbeli za grafične procesorje ali našli prave arhitekture za svoje modele poglobljenega učenja. Prav tako lahko pridobite odzive JSON vsake napovedi, da jo vključite v svoje sisteme in zgradite aplikacije, ki delujejo na strojni način, zgrajene na najsodobnejših algoritmih in močni infrastrukturi.

Uporaba grafičnega vmesnika: https://app.nanonets.com/

API Nanonets-OCR lahko uporabite tudi tako, da sledite spodnjim korakom:

1. korak: Klonirajte Repo, namestite odvisnosti

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

2. korak: Pridobite brezplačni ključ API
Pridobite brezplačni ključ API http://app.nanonets.com/#/keys

Avtomatizacija digitalizacije prejemkov z OCR in poglobljenim učenjem

3. korak: Ključ API nastavite kot spremenljivko okolja

export NANONETS_API_KEY=YOUR_API_KEY_GOES_HERE

4. korak: Ustvarite nov model

python ./code/create-model.py

Opomba: To ustvari MODEL_ID, ki ga potrebujete za naslednji korak

5. korak: Dodajte ID modela kot spremenljivko okolja

export NANONETS_MODEL_ID=YOUR_MODEL_ID

Opomba: boste prejeli YOUR_MODEL_ID iz prejšnjega koraka

6. korak: Prenesite podatke o vadbi
Podatki o usposabljanju so v images (slikovne datoteke) in annotations (obvestila za slikovne datoteke)

python ./code/upload-training.py

7. korak: Vadite model
Ko so slike naložene, začnite usposabljati Model

python ./code/train-model.py

8. korak: Pridobite stanje modela
Vlak potrebuje približno 2 uri. Ko bo model usposobljen, boste dobili e-pošto. Medtem preverite stanje modela

python ./code/model-state.py

9. korak: Naredite napoved
Ko je model usposobljen. Lahko predvidevate s pomočjo modela

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

Nadaljnje branje

Posodobitev:
‌ Dodano več gradiva za branje o najnovejšem napredku pri avtomatizaciji digitalizacije potrdil z uporabo OCR in poglobljenega učenja.

Časovni žig:

Več od AI in strojno učenje