Želite pridobiti podatke iz skeniranih dokumentov? poskusite Nanoneti™ napredno OCR skener na osnovi umetne inteligence za pridobivanje in organiziranje informacij skeniranih dokumentov samodejno.
Predstavitev
Ko se je svet zaradi udobja preusmeril s papirjev in rokopisov na digitalne dokumente, je pomembnost pretvorbe slik in skeniranih dokumentov v pomembne podatke skokovito narasla.
Da bi sledili potrebi po zelo natančnem pridobivanju podatkov iz dokumentov, so se številne raziskovalne ustanove in korporacije (npr. Google, AWS, Nanonets itd.) globoko osredotočile na tehnologije na področju računalniškega vida in obdelave naravnega jezika (NLP).
Razcvet tehnologij globokega učenja je zagotovil ogromen preskok v vrsti podatkov, ki jih je mogoče ekstrahirati; nismo več omejeni samo na ekstrahiranje besedila, ampak tudi drugih podatkovnih struktur, kot so tabele in pari ključ-vrednost. Številne rešitve zdaj ponujajo različne izdelke za izpolnjevanje potreb posameznikov in lastnikov podjetij pri pridobivanju podatkov iz dokumentov.
Ta članek se poglobi v trenutno tehnologijo, ki se uporablja za pridobivanje podatkov iz skeniranih dokumentov, sledi pa mu kratka praktična vadnica v Pythonu. Ogledali si bomo tudi nekatere trenutno priljubljene rešitve na trgu, ki zagotavljajo najboljše ponudbe na tem področju.
Kaj je pridobivanje podatkov?
Pridobivanje podatkov je proces pretvorbe nestrukturiranih podatkov v informacije, ki jih lahko razlagajo programi, da omogočijo nadaljnjo obdelavo podatkov s strani ljudi. Tukaj navajamo nekaj najpogostejših vrst podatkov, ki jih je treba izvleči iz skeniranih dokumentov.
Besedilni podatki
Najpogostejše in najpomembnejše opravilo pri pridobivanju podatkov iz skeniranih dokumentov je pridobivanje besedila. Čeprav se ta postopek zdi preprost, je v resnici zelo težaven, saj so skenirani dokumenti pogosto predstavljeni v obliki slik. Poleg tega so metode ekstrakcije močno odvisne od vrste besedila. Medtem ko je besedilo večino časa prisotno v gosto natisnjenih formatih, je enako pomembna zmožnost ekstrahiranja redkega besedila iz manj dobro optično prebranih dokumentov ali iz ročno napisanih črk z drastično različnimi slogi. Tak postopek bo programom omogočil pretvorbo slik v strojno kodirano besedilo, kjer jih bomo lahko nadalje organizirali iz nestrukturiranih podatkov (brez določenega oblikovanja) v strukturirane podatke za nadaljnjo analizo.
Mize
Tabelarni obrazci so najbolj priljubljen pristop za shranjevanje podatkov, saj je format zlahka razložljiv s človeškimi očmi. Postopek pridobivanja tabel iz optično prebranih dokumentov zahteva tehnologijo, ki presega zaznavanje znakov – zaznati je treba črte in druge vizualne značilnosti, da lahko izvedemo pravilno ekstrakcijo tabele in nadalje pretvorimo te informacije v strukturirane podatke za nadaljnje računanje. Metode računalniškega vida (podrobno opisane v naslednjih razdelkih) se pogosto uporabljajo za doseganje visoko natančnosti ekstrakcije tabel.
Pari ključ-vrednost
Alternativni format, ki ga pogosto sprejmemo v dokumentih za shranjevanje podatkov, so pari ključ-vrednost (KVP).
KVP sta v bistvu dva podatkovna elementa – ključ in vrednost – povezana kot eno. Ključ se uporablja kot edinstveni identifikator za vrednost, ki jo je treba pridobiti. Klasičen primer KVP je slovar, kjer so besednjaki ključi, ustrezne definicije pa vrednosti. Čeprav so ti pari običajno neopaženi, se v dokumentih dejansko uporabljajo zelo pogosto: vprašanja v anketah, kot so ime, starost in cene elementov na računih, so implicitno KVP.
Vendar za razliko od tabel KVP pogosto obstajajo v neznanih oblikah in so včasih celo delno ročno napisani. Na primer, ključi so lahko vnaprej natisnjeni v škatlah, vrednosti pa so ročno napisane ob izpolnjevanju obrazca. Zato je iskanje osnovnih struktur za samodejno izvajanje ekstrakcije KVP stalen raziskovalni proces tudi za najnaprednejše naprave in laboratorije.
Številke
Nenazadnje je zelo pomembno tudi pridobivanje oz zajemanje podatkov iz številk v skeniranem dokumentu. Statistični kazalniki, kot so tortni in palični grafikoni, pogosto vključujejo ključne informacije za dokumente. Dober postopek pridobivanja podatkov bi moral omogočati sklepanje iz legend in številk za delno pridobivanje podatkov iz številk za nadaljnjo uporabo.
Želite pridobiti podatke iz skeniranih dokumentov? Daj Nanonets™ vrtenje za večjo natančnost, večjo prilagodljivost, naknadno obdelavo in širok nabor integracij!
Tehnologije za ekstrakcijo podatkov
Ekstrakcija podatkov se vrti okoli dveh glavnih procesov: Optično prepoznavanje znakov (OCR) sledi obdelava naravnega jezika (NLP).
Ekstrakcija OCR je postopek pretvorbe besedilnih slik v strojno kodirano besedilo, medtem ko je slednje analiza besed za sklepanje pomenov. OCR pogosto spremljajo druge tehnike računalniškega vida, kot je zaznavanje okvirjev in vrstic za ekstrahiranje zgoraj omenjenih vrst podatkov, kot so tabele in KVP za bolj celovito ekstrakcijo.
Osnovne izboljšave v ozadju cevovoda za ekstrakcijo podatkov so tesno povezane z napredkom v poglobljenem učenju, ki je veliko prispevalo k področju računalniškega vida in obdelave naravnega jezika (NLP).
Kaj je globoko učenje?
Globoko učenje ima pomembno vlogo v ozadju razburjenja dobe umetne inteligence in je bilo nenehno potisnjeno v ospredje v številnih aplikacijah. V tradicionalnem inženirstvu je naš cilj oblikovati sistem/funkcijo, ki ustvari izhod iz danega vhoda; po drugi strani pa se globoko učenje opira na vhode in izhode, da najde vmesno razmerje, ki ga je mogoče razširiti na nove nevidne podatke prek t.i. nevronska mreža.
Nevronska mreža ali večplastni perceptron (MLP), je arhitektura strojnega učenja, ki se zgleduje po tem, kako se učijo človeški možgani. Mreža vsebuje nevrone, ki posnemajo biološke nevrone in se »aktivirajo«, ko dobijo drugačne informacije. Nizi nevronov tvorijo plasti, več plasti pa je zloženih skupaj, da tvorijo mrežo, ki služi za namene napovedovanja več oblik (tj. klasifikacije slik ali omejevalnih okvirjev za zaznavanje predmetov).
Na področju računalniškega vida se močno uporablja vrsta variacije nevronske mreže - konvolucijska nevronska mreža (CNN). Namesto tradicionalnih plasti CNN sprejme konvolucijska jedra, ki drsijo skozi tenzorje (ali visokodimenzionalne vektorje) za ekstrakcijo funkcij. Skupaj s tradicionalnimi omrežnimi plastmi so na koncu CNN-ji zelo uspešni pri nalogah, povezanih s slikami, in so nadalje tvorili osnovo za ekstrakcijo OCR in zaznavanje drugih funkcij.
Po drugi strani pa je NLP odvisen od drugega niza omrežij, ki se osredotoča na podatke časovnih vrst. V nasprotju s slikami, kjer je ena slika neodvisna druga od druge, lahko predvidevanje besedila zelo koristi, če se upoštevajo tudi besede pred in za. V zadnjih nekaj letih družina omrežij, in sicer dolgi kratkoročni spomini (LSTM), ki vzame prejšnje rezultate kot vhodne podatke za napoved trenutnih rezultatov. Dvostranski LSTM so bili prav tako pogosto sprejeti za izboljšanje rezultatov napovedi, pri čemer so bili upoštevani tako rezultati pred kot pozneje. V zadnjih letih pa se koncept transformatorjev, ki uporabljajo mehanizem pozornosti, začenja dvigovati zaradi svoje večje prilagodljivosti, ki vodi do boljših rezultatov kot tradicionalna omrežja, ki obravnavajo zaporedne časovne serije.
Aplikacije za pridobivanje podatkov
Glavni cilj pridobivanja podatkov je pretvorba podatkov iz nestrukturiranih dokumentov v strukturirane formate, v katerih je lahko zelo natančen priklic besedila, slik in podatkovnih struktur zelo koristen za numerično in kontekstualno analizo. Te analize so lahko zelo koristne zlasti za podjetja:
ŽELITE POSTATI PARTNER
Poslovne korporacije in velike organizacije se dnevno ukvarjajo s tisoči papirologije s podobnimi formati — velike banke prejmejo številne enake vloge, raziskovalne skupine pa morajo analizirati kupe obrazcev, da lahko izvedejo statistično analizo. Zato avtomatizacija začetnega koraka pridobivanja podatkov iz dokumentov bistveno zmanjša redundanco človeških virov in omogoča delavcem, da se namesto na vnašanje informacij osredotočijo na analizo podatkov in pregledovanje aplikacij.
- Preverjanje aplikacij — Podjetja prejmejo na tone prijav, ne glede na to, ali so ročno napisane ali samo prek prijavnih obrazcev. V večini primerov lahko te aplikacije spremljajo osebne izkaznice za namene preverjanja. Optično prebrani osebni dokumenti, kot so potni listi ali izkaznice, so običajno v serijah podobnih formatov. Zato lahko dobro napisan ekstraktor podatkov hitro pretvori podatke (besedila, tabele, slike, KVP) v strojno razumljiva besedila, kar bi lahko bistveno zmanjšalo delovne ure za te naloge in se osredotočilo na izbiro aplikacij namesto na ekstrakcijo.
- Usklajevanje plačil — Usklajevanje plačil je postopek primerjave bančnih izpiskov, da se zagotovi ujemanje številk med računi, ki se v veliki meri vrti okoli pridobivanja podatkov iz dokumentov, kar je zahtevno vprašanje za podjetje s precejšnjo velikostjo in različnimi viri dohodka. Pridobivanje podatkov lahko olajša ta postopek in zaposlenim omogoči, da se osredotočijo na napačne podatke in raziščejo morebitne goljufive dogodke o denarnem toku.
- Statistična analiza — Korporacije in organizacije uporabljajo povratne informacije strank ali udeležencev poskusa za izboljšanje svojih izdelkov in storitev, za celovito oceno povratnih informacij pa bo običajno potrebna statistična analiza. Vendar pa lahko anketni podatki obstajajo v številnih formatih ali skriti med besedilom z različnimi formati. Ekstrakcija podatkov bi lahko olajšala postopek z izpostavljanjem očitnih podatkov iz dokumentov v serijah, olajšala postopek iskanja uporabnih procesov in na koncu povečala učinkovitost.
- Deljenje preteklih zapisov — Od zdravstva do zamenjave bančnih storitev, velike industrije pogosto zahtevajo nove informacije o strankah, ki morda že obstajajo drugje. Na primer, pacient, ki zamenja bolnišnico zaradi selitve, ima lahko že obstoječo zdravstveno kartoteko, ki bi lahko bila v pomoč novi bolnišnici. V takih primerih pride prav dobra programska oprema za pridobivanje podatkov, saj mora posameznik v novo bolnišnico prinesti skenirano zgodovino kartotek, da samodejno izpolni vse informacije. Ne samo, da bi bilo to priročno, lahko bi se tudi izognili obsežnim tveganjem, zlasti v zdravstveni industriji, spregledanih pomembnih kartotek bolnikov.
Želite pridobiti podatke iz skeniranih dokumentov? Daj Nanonets™ vrtenje za večjo natančnost, večjo prilagodljivost, naknadno obdelavo in širok nabor integracij!
Vaje
Da bi zagotovili jasnejši pogled na to, kako izvesti ekstrakcijo podatkov, prikazujemo dva sklopa metod za izvajanje ekstrakcije podatkov iz skeniranih dokumentov.
Gradnja iz nič
Preprost mehanizem OCR za pridobivanje podatkov lahko zgradite prek mehanizma PyTesseract na naslednji način:
try: from PIL import Image
except ImportError: import Image
import pytesseract # If you don't have tesseract executable in your PATH, include the following:
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'
# Example tesseract_cmd = r'C:Program Files (x86)Tesseract-OCRtesseract' # Simple image to string
print(pytesseract.image_to_string(Image.open('test.png'))) # List of available languages
print(pytesseract.get_languages(config='')) # French text image to string
print(pytesseract.image_to_string(Image.open('test-european.jpg'), lang='fra')) # In order to bypass the image conversions of pytesseract, just use relative or absolute image path
# NOTE: In this case you should provide tesseract supported images or tesseract will return error
print(pytesseract.image_to_string('test.png')) # Batch processing with a single file containing the list of multiple image file paths
print(pytesseract.image_to_string('images.txt')) # Timeout/terminate the tesseract job after a period of time
try: print(pytesseract.image_to_string('test.jpg', timeout=2)) # Timeout after 2 seconds print(pytesseract.image_to_string('test.jpg', timeout=0.5)) # Timeout after half a second
except RuntimeError as timeout_error: # Tesseract processing is terminated pass # Get bounding box estimates
print(pytesseract.image_to_boxes(Image.open('test.png'))) # Get verbose data including boxes, confidences, line and page numbers
print(pytesseract.image_to_data(Image.open('test.png'))) # Get information about orientation and script detection
print(pytesseract.image_to_osd(Image.open('test.png'))) # Get a searchable PDF
pdf = pytesseract.image_to_pdf_or_hocr('test.png', extension='pdf')
with open('test.pdf', 'w+b') as f: f.write(pdf) # pdf type is bytes by default # Get HOCR output
hocr = pytesseract.image_to_pdf_or_hocr('test.png', extension='hocr') # Get ALTO XML output
xml = pytesseract.image_to_alto_xml('test.png')
Za več informacij o kodi lahko preverite njihov uradnik dokumentacija.
Preprosto povedano, koda iz dane slike izvleče podatke, kot so besedila in omejevalni okvirji. Čeprav je dokaj uporaben, motor ni nikjer tako močan kot tisti, ki jih ponujajo napredne rešitve zaradi njihove znatne računske moči za usposabljanje.
Uporaba API-ja Google Document
def async_detect_document(gcs_source_uri, gcs_destination_uri):
"""OCR with PDF/TIFF as source files on GCS""" import json import re from google.cloud import vision from google.cloud import storage # Supported mime_types are: 'application/pdf' and 'image/tiff' mime_type = 'application/pdf' # How many pages should be grouped into each json output file. batch_size = 2 client = vision.ImageAnnotatorClient() feature = vision.Feature( type_=vision.Feature.Type.DOCUMENT_TEXT_DETECTION) gcs_source = vision.GcsSource(uri=gcs_source_uri) input_config = vision.InputConfig( gcs_source=gcs_source, mime_type=mime_type) gcs_destination = vision.GcsDestination(uri=gcs_destination_uri) output_config = vision.OutputConfig( gcs_destination=gcs_destination, batch_size=batch_size) async_request = vision.AsyncAnnotateFileRequest( features=[feature], input_config=input_config, output_config=output_config) operation = client.async_batch_annotate_files( requests=[async_request]) print('Waiting for the operation to finish.') operation.result(timeout=420) # Once the request has completed and the output has been # written to GCS, we can list all the output files. storage_client = storage.Client() match = re.match(r'gs://([^/]+)/(.+)', gcs_destination_uri) bucket_name = match.group(1) prefix = match.group(2) bucket = storage_client.get_bucket(bucket_name) # List objects with the given prefix. blob_list = list(bucket.list_blobs(prefix=prefix)) print('Output files:') for blob in blob_list: print(blob.name) # Process the first output file from GCS. # Since we specified batch_size=2, the first response contains # the first two pages of the input file. output = blob_list[0] json_string = output.download_as_string() response = json.loads(json_string) # The actual response for the first page of the input file. first_page_response = response['responses'][0] annotation = first_page_response['fullTextAnnotation'] # Here we print the full text from the first page. # The response contains more information: # annotation/pages/blocks/paragraphs/words/symbols # including confidence scores and bounding boxes print('Full text:n') print(annotation['text'])
Navsezadnje vam Googlova umetna inteligenca za dokumente omogoča pridobivanje številnih informacij iz dokumentov z visoko natančnostjo. Poleg tega je storitev na voljo tudi za posebne namene, vključno z ekstrakcijo besedila za običajne in divje slike.
Prosimo, glejte tukaj več.
Trenutne rešitve, ki ponujajo ekstrakcijo podatkov
Poleg velikih korporacij z API-ji za pridobivanje podatkov iz dokumentov obstaja več rešitev, ki zagotavljajo visoko natančnost PDF OCR storitve. Predstavljamo več možnosti PDF OCR, ki so specializirane za različne vidike, kot tudi nekaj nedavnih raziskovalnih prototipov, za katere se zdi, da zagotavljajo obetavne rezultate*:
*Stranska opomba: Obstaja več storitev OCR, ki so namenjene nalogam, kot so slike v naravi. Te storitve smo preskočili, saj se trenutno osredotočamo le na branje dokumentov PDF.
- Googlovi API-ji — Kot eden največjih ponudnikov spletnih storitev Google ponuja osupljive rezultate pri ekstrakciji dokumentov s svojo pionirsko tehnologijo računalniškega vida. Njihove storitve lahko uporabljate brezplačno, če je uporaba precej nizka, vendar se cena zvišuje, ko se klici API-ja povečujejo.
- Globok bralec — Deep Reader je raziskovalno delo, objavljeno na konferenci ACCV 2019. Vključuje več najsodobnejših omrežnih arhitektur za izvajanje nalog, kot so ujemanje dokumentov, iskanje besedila in odstranjevanje šumov slik. Obstajajo dodatne funkcije, kot so tabele in ekstrakcija parov ključ-vrednost, ki omogočajo organizirano pridobivanje in shranjevanje podatkov.
- Nanonets ™ — Z zelo spretno ekipo za globoko učenje je Nanonets™ PDF OCR popolnoma neodvisen od predlog in pravil. Zato lahko Nanonets™ deluje ne samo na določenih vrstah PDF-jev, ampak ga je mogoče uporabiti tudi na kateri koli vrsti dokumenta za iskanje besedila.
Želite pridobiti podatke iz skeniranih dokumentov? Daj Nanonets™ vrtenje za večjo natančnost, večjo prilagodljivost, naknadno obdelavo in širok nabor integracij!
zaključek
Na koncu ta članek predstavlja temeljito razlago pridobivanja podatkov iz skeniranih dokumentov, vključno z izzivi za tem in tehnologijo, potrebno za ta proces.
Predstavljeni sta dve vadnici različnih metod, za referenco pa so predstavljene tudi trenutne rešitve, ki jih ponujajo takoj.
- 2019
- O meni
- absolutna
- Račun
- natančna
- Doseči
- Poleg tega
- Dodatne
- napredno
- napredek
- AI
- algoritmi
- vsi
- že
- alternativa
- analizirati
- Analiza
- Še ena
- API
- API-ji
- uporaba
- aplikacije
- pristop
- Arhitektura
- okoli
- članek
- umetni
- Umetna inteligenca
- pozornosti
- Avtomatizacija
- Na voljo
- AWS
- ozadje
- Banka
- Banke
- Osnova
- počutje
- BEST
- Poleg
- največji
- meja
- Pasovi
- izgradnjo
- poslovni
- podjetja
- Kartice
- primeri
- Denar
- denarni tok
- nekatere
- izzivi
- izziv
- Charts
- Na blagajno
- klasična
- Cloud
- CNN
- Koda
- kako
- Skupno
- Podjetja
- podjetje
- popolnoma
- dokončanje
- celovito
- računanje
- računalnik
- Koncept
- Konferenca
- zaupanje
- povezane
- nenehno
- Vsebuje
- prispevali
- udobje
- Priročen
- konverzije
- Core
- Korporacije
- Ustrezno
- bi
- ključnega pomena
- Trenutna
- Trenutno
- stranka
- Stranke, ki so
- datum
- obdelava podatkov
- shranjevanje podatkov
- ponudba
- opisano
- Oblikovanje
- Podatki
- Odkrivanje
- drugačen
- težko
- digitalni
- Dokumenti
- enostavno
- učinkovitosti
- Zaposleni
- Motor
- Inženiring
- zlasti
- v bistvu
- ocene
- itd
- Ocena
- dogodki
- Primer
- Razen
- poskus
- raziskuje
- obsežen
- Izvlečki
- družina
- Feature
- Lastnosti
- povratne informacije
- Področja
- iskanje
- prva
- prilagodljivost
- Pretok
- Osredotočite
- osredotočena
- Osredotoča
- osredotoča
- po
- ospredju
- obrazec
- format
- Obrazci
- brezplačno
- francosko
- Izpolnite
- polno
- nadalje
- Cilj
- dobro
- več
- zelo
- Ravnanje
- hands-on
- Glava
- zdravstveno varstvo
- zdravstvena industrija
- pomoč
- tukaj
- visoka
- več
- zelo
- zgodovina
- bolnišnice
- Kako
- Kako
- Vendar
- HTTPS
- človeškega
- Človeški viri
- Ljudje
- slika
- Pomembnost
- Pomembno
- izboljšanje
- vključujejo
- Vključno
- prihodki
- Povečajte
- individualna
- posamezniki
- industrij
- Industrija
- Podatki
- vhod
- navdih
- Intelligence
- vprašanje
- IT
- Job
- Ključne
- tipke
- Labs
- jezik
- jeziki
- velika
- vodi
- UČITE
- učenje
- vrstica
- Seznam
- Long
- stroj
- strojno učenje
- velika
- Večina
- moški
- Način
- Tržna
- Stave
- ujemanje
- medicinski
- Metode
- več
- Najbolj
- Najbolj popularni
- premikanje
- več
- in sicer
- naravna
- potrebe
- mreža
- omrežij
- normalno
- številke
- številne
- ponudba
- ponujen
- ponujanje
- Ponudbe
- Ponudbe
- Uradni
- v teku
- na spletu
- Delovanje
- možnosti
- Da
- organizacije
- Organizirano
- Ostalo
- Lastniki
- Udeleženci
- Plačilo
- izvajati
- Obdobje
- Osebni
- Pionirstvo
- Popular
- potencial
- moč
- napovedati
- napoved
- predstaviti
- precej
- prejšnja
- Cena
- Postopek
- Procesi
- obravnavati
- Izdelki
- Program
- programi
- obetaven
- zagotavljajo
- zagotavljanje
- namene
- hitro
- RE
- Bralec
- reading
- prejeti
- sprava
- evidence
- zmanjša
- o
- Razmerje
- zahteva
- zahteva
- obvezna
- zahteva
- Raziskave
- viri
- Odgovor
- Rezultati
- vrnitev
- tveganja
- skeniranje
- sekund
- Storitev
- Storitve
- nastavite
- več
- Kratke Hlače
- kratkoročno
- Podoben
- Enostavno
- saj
- Velikosti
- Software
- trdna
- rešitve
- nekaj
- specializirani
- Spin
- state-of-the-art
- Izjave
- Statistično
- shranjevanje
- tok
- močna
- strukturirano
- precejšen
- uspešno
- Podprti
- Anketa
- ciljno
- Naloge
- skupina
- tehnike
- Tehnologije
- Tehnologija
- Test
- svet
- zato
- tisoče
- skozi
- čas
- krat
- skupaj
- Tone
- proti
- tradicionalna
- usposabljanje
- vaje
- Vrste
- razumeli
- edinstven
- uporaba
- navadno
- vrednost
- različnih
- Preverjanje
- Poglej
- Vizija
- ali
- medtem
- v
- brez
- besede
- delo
- delavci
- svet
- bi
- XML
- let