Želite avtomatizirati pridobivanje podatkov iz računov? Oglejte si predhodno usposabljanje Nanonets OCR potrdila or zgraditi svoje OCR po meri. Lahko tudi načrtuj predstavitev če želite izvedeti več o naših primerih uporabe AP!
OCR potrdila ali digitalizacija računa obravnava izziv samodejnega pridobivanja informacij iz računa. V tem članku obravnavam teorijo za digitalizacijo potrdil in implementacijo cevovoda od konca do konca z uporabo OpenCV in 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.
Potrebujete robusten prejem OCR or skener potrdil črpati podatke iz računov? Oglejte si Nanonets API za OCR potrdila!
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.
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
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
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.
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.
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.
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.
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.
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.
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.
Predmeti vsebujejo CHF, ki je švicarski frank. Zaznajmo vse pojave CHF. Zdaj lahko zaznamo vrstice s prepoznavanjem znakov med 2 n in vsebujejo CHF. Tudi tukaj zaznam skupno.
# 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.
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.
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.
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.
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.
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
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.
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.
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.
Seveda obstaja lažji in bolj intuitiven način za to.
Potrebujete robusten prejem OCR črpati podatke iz računov? Oglejte si Nanonets API za OCR potrdila!
OCR z Nanoneti
Posodobitev #1: Pravkar smo izdali naše prejem OCR predhodno usposobljen model. Pojdite na https://app.nanonets.com in začnite s testiranjem!
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
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
- Mehanizem OCR za ekstrahiranje živil, cen, količine, enot iz slik računov, pristop, ki temelji na pravilih hevristike
- Avtomatizirana identifikacija slike potrdila, obrezovanje in razčlenjevanje
- Hitri koraki do digitalizacije vaših potrdil in računov
Posodobitev:
Dodano več gradiva za branje o najnovejšem napredku pri avtomatizaciji digitalizacije potrdil z uporabo OCR in poglobljenega učenja.
- "
- &
- 11
- 2019
- 39
- 67
- 7
- 9
- O meni
- računovodstvo
- natančna
- doseže
- pridobiti
- čez
- Prednosti
- algoritmi
- vsi
- že
- Čeprav
- med
- znesek
- Analiza
- analitika
- API
- aplikacije
- Uporaba
- pristop
- aplikacije
- APT
- okoli
- Umetnost
- članek
- Avtomatizacija
- povprečno
- Medvedi
- Začetek
- Prednosti
- največji
- črna
- meja
- Pasovi
- brskalnik
- izgradnjo
- klic
- kapaciteta
- Kapital
- CD
- izziv
- izzivi
- kitajski
- Razvrstitev
- Koda
- Skupno
- Podjetja
- v primerjavi z letom
- konfiguracija
- zmeda
- Vsebuje
- Vsebina
- naprej
- nadzor
- stroški
- bi
- Ustvarjanje
- Stranke, ki so
- CVC
- datum
- Podatkovna analiza
- nabor podatkov
- Baze podatkov
- globlje
- zamude
- dostava
- Zaznali
- Odkrivanje
- razvili
- drugačen
- digitalni
- digitalizacija
- digitalizirati
- števk
- razdalja
- distribucija
- Dokumenti
- enostavno
- učinkovitosti
- E-naslov
- Angleščina
- Zabava
- okolje
- bistvena
- Euro
- vse
- Primer
- Excel
- poskus
- FAST
- hitreje
- Feature
- Lastnosti
- Področja
- Filtri
- finančna
- prva
- sledi
- po
- obrazec
- format
- je pokazala,
- Okvirni
- brezplačno
- funkcionalnost
- ustvarjajo
- pridobivanje
- git
- Cilj
- dogaja
- dobro
- blago
- Sivine
- Mreža
- Glava
- tukaj
- visoka
- Hotel
- Kako
- HTTPS
- velika
- Ideja
- Identifikacija
- identificirati
- slika
- vpliv
- izvajati
- Pomembno
- vključujejo
- vključeno
- Vključno
- Povečajte
- povečal
- Indeks
- individualna
- Podatki
- Infrastruktura
- integrirati
- Facebook Global
- intuitivno
- IT
- Ključne
- znano
- jezik
- Zadnji
- vodi
- UČITE
- učenje
- Knjižnica
- Limited
- vrstica
- LINK
- Seznam
- literatura
- kraj aktivnosti
- Long
- si
- stroj
- strojno učenje
- Izdelava
- upravljanje
- upravljanje
- Navodilo
- kar pomeni,
- Spomin
- moti
- Model
- modeli
- Najbolj
- Najbolj popularni
- Imena
- nacionalni
- ostalo
- mreža
- omrežij
- vozlišča
- hrup
- možnosti
- Da
- naročila
- organizacije
- Ostalo
- drugače
- Papir
- Vzorec
- performance
- predstave
- slika
- Predvajaj
- Popular
- močan
- napoved
- Napovedi
- precej
- Cena
- problem
- Postopek
- Procesi
- Proizvedeno
- Izdelek
- proizvodnja
- snubitev
- zagotavlja
- nakup
- kupili
- kakovost
- Surovi
- RE
- reading
- prejeti
- redni
- Razmerje
- predstavlja
- obvezna
- REST
- restavracija
- Rezultati
- pregleda
- pravila
- razširljive
- skeniranje
- segmentacija
- izbran
- Storitve
- nastavite
- Oblike
- pomemben
- Podoben
- Enostavno
- So
- Nekaj
- španski
- posebej
- Razcepi
- Stage
- Začetek
- Država
- trgovina
- močna
- precejšen
- dobavi
- dobavne verige
- Napajalne verige
- Podpira
- Švicarski
- sistem
- sistemi
- ciljna
- Naloge
- davek
- Obdavčitev
- Tehnologija
- Testiranje
- skozi
- čas
- zamudno
- Boni
- Sledenje
- trgovini
- tradicionalna
- usposabljanje
- transakcija
- Preglednost
- ui
- razumeli
- Universal
- uporaba
- vrednost
- prodajalci
- Preverjanje
- Poglej
- Vizija
- W
- Počakaj
- Kaj
- WHO
- okna
- v
- brez
- delo
- deluje
- pisanje
- X
- XML
- let