Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja PlatoBlockchaini süvaõppe abil. Vertikaalne otsing. Ai.

Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

Kas soovite automatiseerida andmete väljavõtmist kviitungitest? Tutvuge Nanonetsi eelkoolitusega Kviitung OCR or ehitada ise kohandatud kviitungi OCR. Sa saad ka ajakava demo meie AP kasutusjuhtude kohta lisateabe saamiseks!


Kviitung OCR või kviitungi digiteerimine lahendab kviitungilt teabe automaatse eraldamise väljakutse. Selles artiklis käsitlen kviitungite digiteerimise teooriat ja rakendan OpenCV-d ja otspunktidevahelist konveieri. Tesseract. Vaatan üle ka mõned olulised dokumendid, mis käsitlevad kviitungite digiteerimist süvaõppe abil.

Mis on kviitungite digiteerimine?

Kviitungid sisaldavad teavet, mis on vajalik ettevõtetevaheliseks kauplemiseks ja suur osa sellest on paberil või poolstruktureeritud vormingus, nagu PDF-failid ja paber-/paberkoopiate kujutised. Selle teabe tõhusaks haldamiseks võtavad ettevõtted välja ja säilitavad nendes dokumentides sisalduva asjakohase teabe. Traditsiooniliselt on see saavutatud asjakohase teabe käsitsi väljavõtmise ja andmebaasi sisestamisega, mis on töömahukas ja kulukas protsess.

Kviitungi digiteerimine käsitleb väljakutset kviitungilt teabe automaatseks eraldamiseks.

Kviitungitest võtmeteabe eraldamine ja nende struktureeritud dokumentideks teisendamine võib teenindada paljusid rakendusi ja teenuseid, nagu tõhus arhiveerimine, kiire indekseerimine ja dokumendianalüüs. Nad mängivad olulist rolli dokumendimahukate protsesside sujuvamaks muutmisel ja kontori automatiseerimisel paljudes finants-, raamatupidamis- ja maksuvaldkondades.

Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

Vaja robustset kviitung OCR or kviitungi skanner kviitungitest andmeid välja võtta? Vaadake Nanonetsit kviitung OCR API!


Kellele on kviitungite digiteerimine kasulik?

Siin on mõned valdkonnad, kus kviitungite digiteerimisel võib olla tohutu mõju.

Ostjate ja võlgnevuste automatiseerimine

Ostuvõlgade (AP) ja võlgnevuste (AR) käsitsi arvutamine on kulukas, aeganõudev ja võib tekitada segadust juhtide, klientide ja hankijate vahel. Digitaliseerimisega saavad ettevõtted need puudused kõrvaldada ja neil on rohkem eeliseid – suurem läbipaistvus, andmeanalüüs, täiustatud käibekapital ja lihtsam jälgimine.

Tarneahela optimeerimine

Tarneahelad on paljude ettevõtete nõuetekohase toimimise selgroog. Ülesannete, teabevoogude ja tootevoogude juhtimine on tarne ja tootmise täieliku kontrolli tagamise võti. See on oluline, kui organisatsioonid peavad järgima tarneaegu ja kontrollima tootmiskulusid.

Tänapäeval tõeliselt edukatel ettevõtetel on midagi olulist ühist: digiteeritud tarneahel. 89% ettevõtetest digitaalsete tarneahelatega saate rahvusvahelistelt tarnijatelt täiuslikke tellimusi, tagades õigeaegse kohaletoimetamise. Järgmise põlvkonna digitaalse tarneahela 4.0 realiseerimise üks põhielemente on andmete kogumise ja haldamise automatiseerimine ning suur osa neist andmetest on kviitungite ja arved. Kviitungite käsitsi sisestamine toimib kitsaskohana kogu tarneahelas ja põhjustab tarbetuid viivitusi. Kui kviitungite töötlemine digiteeritakse, võib see kaasa tuua märkimisväärse aja ja tõhususe kasu.


Kas teil on OCR-probleem meeles? Tahad digitaliseerida arved, PDF-id või numbrimärgid? Suunduge poole Nanonetid ja looge OCR-mudeleid tasuta!


Miks on see keeruline probleem?

Kviitungite digiteerimine on keeruline, kuna kviitungid on palju varieeruvad ja mõnikord madala kvaliteediga. Kviitungite skaneerimine toob meie digitaalsesse koopiasse ka mitmeid artefakte. Need artefaktid kujutavad endast palju loetavuse probleeme.

Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

Siin on nimekiri mõnest asjast, mis muudavad probleemi lahendamise keeruliseks

  • Käsitsi kirjutatud tekst
  • Väikesed fondid
  • Mürarikkad pildid
  • Pleekinud pildid
  • Kaamera liikumine ja värisemine
  • Vesimärgid
  • Kortsud
  • Pleekinud tekst

Traditsiooniline kviitungite digiteerimise torustik

Sellise täieliku lähenemise tüüpiline torustik hõlmab järgmist:

  • Eeltöötlus
  • OCR
  • Teabe väljavõtmine
  • Andmete tühjendamine
Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

Sukeldume torujuhtme igasse ossa sügavamale. Protsessi esimene samm on eeltöötlus.

Eeltöötlus

Enamik skaneeritud kviitungeid on mürarikkad ja neil on artefakte, mistõttu on optilise tekstituvastuse ja teabe väljavõtusüsteemide hea töö tagamiseks vaja kviitungeid eeltöödelda. Levinud eeltöötlusmeetodid on – halltoonimine, lävimine (binariseerimine) ja müra eemaldamine.

Halltoonimine on lihtsalt RGB-pildi teisendamine halltoonides kujutiseks.

Müra eemaldamine hõlmab tavaliselt soola ja pipra või Gaussi müra eemaldamist.

Enamik OCR-mootoreid töötab hästi mustvalgete piltide puhul. Seda saab saavutada läve määramisega, mis on piksliväärtuste määramine esitatud läviväärtuse suhtes. Iga piksli väärtust võrreldakse läviväärtusega. Kui piksli väärtus on lävest väiksem, seatakse selle väärtuseks 0, vastasel juhul seatakse see maksimaalsele väärtusele (tavaliselt 255).

OpenCV pakub erinevaid lävestamisvõimalusi – lihtne lävi, adaptiivne lävi

Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

OCR

Järgmine samm protsessis on OCR. Seda kasutatakse teksti lugemiseks piltidelt (nt skannitud dokument või pilt). Seda tehnoloogiat kasutatakse peaaegu igasuguste kirjalikku teksti sisaldavate piltide (tipitud, käsitsi kirjutatud või trükitud) teisendamiseks masinloetavateks tekstiandmeteks. OCR koosneb kahest etapist – tekstituvastus ja tekstituvastus.

Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

OCR-ile on mitmeid lähenemisviise. Tavaline arvutivisiooni lähenemisviis on

  • Filtrite kasutamine märkide eraldamiseks taustast
  • Rakendage filtreeritud märkide tuvastamiseks kontuurituvastust
  • Kasutage tegelaste tuvastamiseks maagi klassifikatsiooni

Filtrite ja kujutiste klassifitseerimise rakendamine on üsna lihtne (mõelge MNIST-i klassifikatsioonile SVN-i abil), kuid kontuuride sobitamine on väga keeruline probleem ja nõuab palju käsitsi pingutusi ega ole üldistatav.

Järgmisena tulevad süvaõppe lähenemisviisid. Süvaõpe üldistab väga hästi. Üks populaarsemaid tekstituvastusviise on EAST. EAST (Efficient täpne stseeni tekstidetektor) on lihtne, kuid võimas lähenemisviis teksti tuvastamiseks. EAST-võrk on tegelikult tuntud U-Neti versioon, mis on hea erineva suurusega funktsioonide tuvastamiseks.

Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

CRNN ja STN-OCR (Spatial Transformer Networks) on teised populaarsed dokumendid, mis teostavad OCR-i.

Teabe väljavõtmine

Kõige levinum lähenemine teabe hankimise probleemile on reeglipõhine, kus reeglid kirjutatakse pärast OCR-i, et nõutud teave eraldada. See on võimas ja täpne lähenemine, kuid see nõuab uut tüüpi dokumendi jaoks uute reeglite või mallide kirjutamist.

Mitmed reeglipõhised arve kirjanduses on analüüsisüsteemid.

  • DocuWare'i Intellix nõuab asjakohaste väljadega kommenteeritud malli.
  • SmartFix kasutab iga malli jaoks spetsiaalselt loodud konfiguratsioonireegleid

Reeglipõhised meetodid tuginevad suurel määral eelmääratletud mallireeglitele, et hankida teavet konkreetsetest arvepaigutustest

Üks viimastel aastatel väga levinud lähenemisviis on kasutada väljade tuvastamiseks standardset objektituvastuse raamistikku, nagu YOLO, Faster R-CNN. Nii et puhta tekstituvastuse asemel teostatakse väljatuvastus ja tekstituvastus samaaegselt. See muudab konveieri väiksemaks (Teksti tuvastamine → Tuvastamine → Ekstraheerimine tuvastamiseks → Tuvastamine). Reegleid pole vaja kirjutada, kuna objektidetektor õpib neid välju ära tundma.

Data Dump

Kui olete teabe välja võtnud, saab andmete väljavõtet teha vastavalt meie kasutusjuhtumile. Sageli on JSON-vorming väljade teabe salvestamiseks mugav. Neid JSON-faile saab hõlpsasti teisendada XML-failideks, Exceli lehtedeks, CSV-failideks või lihttekstifailideks, olenevalt sellest, kes ja kuidas soovib andmetega töötada.

Kviitungi digiteerimine kasutades Tesseract

Nüüd, kui meil on torujuhtmest idee, rakendame seda näidiskviitungil. See on kviitung, millega me töötame. Meie eesmärk on selle lõpus välja võtta restorani nimi, ostetud kaubad koos nende koguse ja maksumusega, ostukuupäev ja kogusumma.

Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

Eeltöötlus

Kuna meie kviitung on juba halltoonides ja müra pole palju, teen ainult läve, rakendades läve 210. Õige väljundi saamiseks saate väärtust muuta. Liiga vähem ja jääte paljust ilma. Liiga lähedal 255-le teeb kõik mustaks.

Esmalt peame installima OpenCV.

pip install opencv-python

Siin on künnise kood.

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

Selline näeb välja väljund.

Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

Teksti tuvastamine

Teksti tuvastamiseks kasutan avatud lähtekoodiga teeki nimega Tesseract. See on lõplik OCR-teek ja Google on seda välja töötanud alates 2006. aastast. Tesseracti uusim väljalase (v4) toetab sügavat õppimispõhist OCR-i, mis on oluliselt täpsem. Selle aluseks olev OCR-mootor ise kasutab pika lühiajalise mälu (LSTM) võrku.

Esmalt installime Tesseracti uusima versiooni.

Ubuntu jaoks

sudo apt install tesseract-ocr

MacOS-i jaoks

brew install tesseract --HEAD

Windowsi jaoks saate binaarfailid siit alla laadida lehekülg

Kontrollige oma tesserakti versiooni.

tesseract -v

Väljund -

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

Installige oma Tesseracti + Pythoni sidemed

Nüüd, kui meil on installitud Tesseracti binaarfail, peame nüüd installima Tesseract + Pythoni sidemed, et meie Pythoni skriptid saaksid Tesseractiga suhelda. Peame installima ka saksa keelepaketi, kuna kviitung on saksa keeles.

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

Nüüd, kui oleme Tesseracti installinud, alustame tekstiväljade tuvastamist.Tesseract on sisseehitatud funktsioonid tekstikastide tuvastamiseks.

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

Siin on tekstituvastuskoodi väljund.

Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

Teksti äratundmine

Tesseract teostame OCR-i. Tesseact 4 kasutab süvaõppe lähenemisviisi, mis toimib oluliselt paremini kui enamik teisi avatud lähtekoodiga rakendusi.

Siin on tekstituvastuse kood. Kuigi see on väga lihtne ühekihiline vooder, mahub kapoti alla palju.

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

Siin on toorväljund.

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

Siin on vormindatud väljund

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

Vaja digiteerida dokumendid, kviitungid või arved aga liiga laisk, et kodeerida? Suunduge poole Nanonetid ja looge OCR-mudeleid tasuta!


Teabe väljavõtmine

Nagu ma varem mainisin, on teabe hankimiseks kõige levinum reeglipõhine lähenemine.

Kõik selle hotelli kviitungid järgivad kindlat struktuuri ja teave kuvatakse erinevatel ridadel. See kajastub OCR-i väljundis, kus reavahetust tähistab 'n'. Kirjutame neid kasutades teabe eraldamiseks reeglite komplekti. Seda reeglistikku saab rakendada mis tahes selle hotelli kviitungile, kuna need järgivad sama vormingut.

Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

Ma eraldan lihtsate pythoni käskude ja regulaaravaldiste abil restorani nime, tehingu kuupäeva, ostetud kaubad, nende koguse, kauba kogumaksumuse ja kogusumma.

See on sõnastik, kuhu salvestan väljavõetud teabe.

receipt _ocr = {}

Esimene samm on restorani nime ekstraheerimine. Restorani nime asukoht jääb kõikides kviitungites konstantseks ja see on kahel esimesel real. Kasutame seda reegli loomiseks.

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

Järgmisena eraldame tehingu kuupäeva. Kuupäeva regex on üsna lihtne.


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)

Väljund -

‘30.10.2007’

Järgmisena eraldame kogu teabe, mis on seotud kaupade ja maksumusega.

Üksused sisaldavad CHF-i, mis on Šveitsi frank. Tuvastame kõik CHF-i esinemised. Nüüd saame tuvastada ridu, tuvastades tähemärgid vahemikus 2 n ja sisaldavad CHF-i. Tuvastan ka siin kogusumma.

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

Väljund -

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

Kui märkate, jäi Tesseractil üks üksus välja, kuna tuvastas CHF asemel CH. Järgmises jaotises käsitlen traditsiooniliste OCR-süsteemide väljakutseid.

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

Meie JSON-väljundi printimine –

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

Kogu põhiteave on ekstraktitud ja sisestatud kausta Receive_json..

Probleemid tavapärase lähenemisega

Kuigi me hankisime teabe välja, jätab ülaltoodud konveieri mõned asjad kahe silma vahele ja pole optimaalne. Iga uue kviitungi jaoks peame kirjutama uue reeglistiku ja seega ei ole see skaleeritav.

Paigutustes, fondi- ja fondisuurustes, käsitsi kirjutatud dokumentides jne võib olla palju variatsioone. Erinevused paigutustes mõjutavad reeglipõhiseid lähenemisviise ja nendega tuleb arvestada, mis muutub väga tüütuks. Fontide ja fondi suuruste erinevused muudavad teabe tuvastamise ja eraldamise keeruliseks.

Miks on täielik süvaõppe torujuhe parem?

Standardkäsitluse üks suuremaid probleeme on üldistuse puudumine. Reeglipõhised lähenemisviisid ei saa üldistada ja iga uue malli jaoks tuleb kirjutada uued reeglid. Arvestada tuleb ka kõigi olemasoleva malli muudatuste või variatsioonidega.

Süvaõppe lähenemisviis võimaldab neid reegleid õppida ja hõlpsasti üldistada erinevate paigutuste vahel, eeldusel, et need on meie koolituse andmekogus.

Süvaõpe ja teabe ammutamine

Siin vaatan üle mõned artiklid, mis kasutavad täielikku süvaõppe lähenemisviisi.

KALLI

CUTIE: õppige mõistma dokumente konvolutsioonilise universaalse tekstiteabe ekstraktori abil

See artikkel teeb ettepaneku õppepõhine võtmeteabe hankimise meetod, mille inimressursside vajadus on piiratud. See ühendab dokumentides sisalduva teabe nii semantilisest tähendusest kui ka tekstide ruumilisest jaotusest. Nende pakutud mudel Convolutional Universal Text Information Extractor (CUTIE) rakendab konvolutsioonilisi närvivõrke ruudustikuga tekstidele, kuhu tekstid on manustatud semantiliste konnotatsioonidega tunnustena.

Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

Pakutud mudel, lahendab põhiteabe hankimise probleemi

  • Esmalt looge pakutavaga ruudustikuga tekstid ruudustiku asukoha kaardistamise meetod. Konvolutsioonilise närvivõrgu võrguandmete genereerimiseks töötleb skannitud dokumendi pilti OCR-mootor, et hankida tekstid ja nende absoluutsed/suhtelised positsioonid. Tekstid kaardistatakse originaalsest skannitud dokumendikujutisest sihtvõrku, nii et kaardistatud ruudustik säilitab tekstide algse ruumilise suhte, mis on veelgi sobivam konvolutsioonilise närvivõrgu sisendina kasutamiseks.
  • Seejärel rakendatakse ruudustikuga tekstidele CUTIE mudelit. Rikkalik semantiline teave on kodeeritud ruudustikuga tekstidest konvolutsioonilise närvivõrgu alguses koos sõna manustamiskihiga.

CUTIE võimaldab üheaegselt vaadata skannitud dokumendikujutises olevate tekstide semantilist teavet ja ruumiteavet ning jõuda võtmeteabe eraldamiseks uue tipptasemeni.

CUTIE mudel

Neil on 2 mudelit CUTIE-A ja CUTIE-B. kavandatav CUTIE-A on suure võimsusega konvolutsiooniline närvivõrk, mis ühendab mitme eraldusvõimega funktsioone ilma kõrge eraldusvõimega funktsioone kaotamata. CUTIE-B on terava keerdkäiguga võrk vaatevälja suurendamiseks ja Atrous Spatial Pyramid Pooling (ASPP) moodul mitmemõõtmeliste kontekstide jäädvustamiseks. Nii CUTIE-A kui ka CUITE-B viivad alguses läbi semantilise tähenduse kodeerimise protsessi sõna manustamiskihiga.

CUTIE ülesanne on sarnane semantilise segmenteerimise ülesandega. Vastandina pikslitega jaotatud piltidele sisaldab kaardistatud ruudustik hajutatud andmepunkte (tekstimärke). Võrgustiku asukohaga kaardistatud võtmetekstid on erinevat tüüpi dokumendipaigutuste tõttu üksteisele kas lähedal või üksteisest kaugel. Seetõttu on mitmetasandilise kontekstitöötluse võimaluse kaasamine võrgule kasulik.

Andmebaas

Pakutud meetodit hinnatakse ICDAR 2019 jõulise lugemise väljakutsega SROIE andmestikul ja see on ka kolme tüüpi skannitud dokumendikujutistega iseehitatud andmekogumis.

. ICDAR 2019 SROIE andmekogum kasutatakse, mis sisaldab 1000 tervet skannitud kviitungi pilti. Iga kviitungi pilt sisaldab umbes nelja peamist tekstivälja, nagu kauba nimi, ühiku hind, kuupäev ja kogumaksumus. Andmekogus annoteeritud tekst koosneb peamiselt numbritest ja ingliskeelsetest tähemärkidest.

Isekoostatud andmekogum sisaldab 4 484 märkustega skannitud Hispaania kviitungite dokumenti, sealhulgas taksotšekke, meelelahutuse söögikviitungeid (ME) ja hotellitšekke, 9 erineva põhiteabe klassiga.

Tulemused

Üldist jõudlust hinnatakse keskmise täpsuse (AP – ja mõõdetuna klasside täpsuse järgi 9 klassi lõikes) ja pehme keskmise täpsuse (softAP) abil, kus põhiteabe klassi ennustus määratakse õigeks, kui positiivsed põhitõed. ennustatakse õigesti isegi siis, kui lõplikus ennustuses on mõned valepositiivsed. AP ja softAP ühine analüüs annab mudeli jõudlusest parema ülevaate.

Tulemusi näete allolevas tabelis.

Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

GCN-id VRD-de jaoks

Graafikakonvolutsioon multimodaalse teabe ekstraheerimiseks visuaalselt rikkalikest dokumentidest

Selles artiklis tutvustatakse graafiku konvolutsioonil põhinevat mudelit, mis ühendab visuaalselt rikkalikes dokumentides (VRD) esitatud tekstilise ja visuaalse teabe. Graafiku manustamist õpetatakse kokku võtma dokumendi tekstisegmendi konteksti ja neid kombineeritakse olemi ekstraktimiseks täiendavalt teksti manustamisega.

Selles artiklis nimetatakse dokumenti VRD-ks ja ma jään selle juurde.

Iga dokument on modelleeritud tekstilõikude graafikuna, kus iga tekstisegment koosneb segmendi asukohast ja selles olevast tekstist. Graafik koosneb sõlmedest, mis esindavad teksti segmente, ja servadest, mis esindavad visuaalseid sõltuvusi, nagu suhteline kuju ja kaugus kahe sõlme vahel.

Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

Graafiku konvolutsiooni abil loodud graafiku manustused võtavad kokku dokumendi tekstisegmendi konteksti, mida täiendavalt kombineeritakse tekstimanustustega olemi ekstraheerimiseks, kasutades standardset BiLSTM-CRF mudelit.

MUDEL

Mudel kodeerib esmalt iga dokumendi tekstisegmendi graafiku manustamiseks, kasutades mitut graafiku konvolutsiooni kihti. Manustamine esindab tekstisegmendis olevat teavet, võttes arvesse selle visuaalset ja tekstilist konteksti. Visuaalne kontekst on dokumendi paigutus ja üksiku segmendi suhteline asukoht teiste segmentide suhtes. Tekstikontekst on tekstiteabe kogum dokumendis üldiselt; Mudel õpib määrama naabersegmentide tekstidele suuremat kaalu. Seejärel ühendab paber graafiku manustused teksti manustamisega ja rakendab olemi ekstraheerimiseks standardset BiLSTM-CRF mudelit.

Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

Andmebaas

Kasutatakse kahte reaalmaailma andmestikku. Need on käibemaksuarved (VATI) ja rahvusvahelised ostutšekid (IPR). VATI koosneb 3000 kasutaja üles laaditud pildist ja sellel on täpselt 16 üksust. Näidisüksused on ostja/müüja nimi, kuupäev ja maksusumma. Arved on hiina keeles ja sellel on fikseeritud mall, kuna tegemist on riikliku standardarvega.

Intellektuaalomandi õigus on 1500 ingliskeelse skannitud kviitungidokumendi andmekogum, millel on 4 täpsemat üksust (arve number, hankija nimi, maksja nimi ja kogusumma). Kviitungite jaoks on 146 malli.

Tulemused

F1 skoori kasutatakse mudeli jõudluse hindamiseks kõigis katsetes. Allolevas tabelis on tulemused kahe andmestiku kohta.

Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

Alusjoon I rakendab BiLSTM-CRF-i igale tekstilõigule, kus iga tekstilõik on individuaalne lause.

Baasjoon II rakendab sildistamismudelit ühendatud tekstisegmentidele.

Kiirem-RCNN + AED

Kviitungi tunnustamise sügav õppimisviis

See artikkel tutvustab sügavat õppimisviisi skannitud kviitungite tuvastamiseks. Tuvastamissüsteemil on kaks põhimoodulit: tekstituvastus, mis põhineb Connectionist Text Proposal Networkil ja tekstituvastus, mis põhineb tähelepanupõhisel kodeerijal-dekooderil. Süsteem saavutas tuvastamise ja tuvastamise ülesande F71.9 skoorist 1%.

Teksti tuvastamine

CTPN-i struktuur sarnaneb Faster R-CNN-iga, millele on lisatud LSTM-kiht. Võrgumudel koosneb peamiselt kolmest osast: funktsioonide eraldamine VGG16 abil, kahesuunaline LSTM ja piirdekasti regressioon

Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

Teksti äratundmine

AED-d kasutatakse tekstiridade tuvastamiseks. AED-l on kaks peamist moodulit: DenseNet tekstipildist funktsioonide eraldamiseks ja LSTM koos tähelepanumudeliga väljundteksti ennustamiseks.

Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

Andmebaas

Kasutatakse SROIE 2019 andmestikku. Nad jagasid koolituse andmed koolituseks, valideerimiseks ja testimiseks ning valisid juhuslikult 80% koolituse kviitungitest, 10% valideerimise kviitungitest ja ülejäänud testimiseks. Tulemuseks on 500 kviitungit koolituse, 63 kviitungi kinnitamise ja 63 testimise kohta.

Tulemused

Teksti tuvastamiseks kasutab paber tekstituvastuseks Tightness-aware Intersection-over-Union (TIoU) funktsiooni F1 , Precision ja Recall.

Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

Tabelis I on näidatud CTPN-i tulemus kolme tingimusega: CTPN originaalpiltidel; eeltöötlus + CTPN, eeltöötlus + CTPN + OCR kontrollimine. Tabelis 2 on näidatud AED võrgu tulemused.

Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

Muidugi on selleks lihtsam ja intuitiivsem viis.


Vaja robustset kviitung OCR kviitungitest andmeid välja võtta? Vaadake Nanonetsit kviitung OCR API!


OCR nanovõrkudega

Värskendus nr 1: avaldasime just oma kviitung OCR eelkoolitatud modell. Minge aadressile https://app.nanonets.com ja alustage testimist!

Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

. Nanonets OCR API võimaldab hõlpsasti luua OCR-mudeleid. OCR-mudeli täpsuse suurendamiseks ei pea te muretsema oma piltide eeltöötlemise pärast ega muretsema mallide sobitamise pärast või reeglipõhiseid mootoreid ehitama.

Saate oma andmed üles laadida, märkmeid teha, mudelit treenima panna ja oodata ennustuste saamist brauseripõhise kasutajaliidese kaudu, kirjutamata ühtki koodirida, muretsemata GPU-de pärast või oma süvaõppemudelite jaoks õigeid arhitektuure otsimata. Samuti saate hankida iga ennustuse JSON-i vastused, et integreerida see oma süsteemidega ja luua masinõppe toega rakendusi, mis põhinevad nüüdisaegsetel algoritmidel ja tugeval infrastruktuuril.

GUI kasutamine: https://app.nanonets.com/

Võite kasutada ka Nanonets-OCR API-d, järgides alltoodud samme.

1. samm: kloonige Repo, installige sõltuvused

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

2. samm: hankige oma tasuta API võti
Hankige oma tasuta API võti aadressilt http://app.nanonets.com/#/keys

Kviitungite digiteerimise automatiseerimine optilise tekstituvastuse ja süvaõppega

3. samm: määrake API võti keskkonnamuutujaks

export NANONETS_API_KEY=YOUR_API_KEY_GOES_HERE

4. samm: looge uus mudel

python ./code/create-model.py

Märge: See genereerib MODEL_ID, mida vajate järgmiseks sammuks

5. samm: lisage keskkonnamuutujana mudeli ID

export NANONETS_MODEL_ID=YOUR_MODEL_ID

Märge: saate eelmisest sammust YOUR_MODEL_ID

6. samm: laadige üles koolitusandmed
Treeningu andmed leiate aadressilt images (pildifailid) ja annotations (märkused pildifailide jaoks)

python ./code/upload-training.py

7. samm: treenige mudel
Kui pildid on üles laaditud, alustage mudeli treenimist

python ./code/train-model.py

8. toiming: hankige mudeli olek
Modelli treenimiseks kulub ~2 tundi. Kui modell on koolitatud, saate meili. Vahepeal kontrollite mudeli olekut

python ./code/model-state.py

9. samm: ennustage
Kui modell on koolitatud. Mudelit kasutades saate teha ennustusi

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

Lisalugemist

Värskenda:
‌ Lisatud on rohkem lugemismaterjali viimaste edusammude kohta kviitungite digiteerimise automatiseerimisel optilise tekstituvastuse ja süvaõppe abil.

Ajatempel:

Veel alates Tehisintellekt ja masinõpe