Ønsker du at udtrække data fra scannede dokumenter? Prøve Nanonetter™ fremskreden AI-baseret OCR-scanner at udtrække og organisere information fra scannede dokumenter automatisk.
Introduktion
Efterhånden som verden er vendt fra papirer og håndskrifter til digitale dokumenter for nemheds skyld, er vigtigheden af at konvertere billeder og scannede dokumenter til meningsfulde data steget i vejret.
For at holde trit med behovet for meget nøjagtig dokumentdataudtrækning fokuserede adskillige forskningsfaciliteter og virksomheder (dvs. Google, AWS, Nanonets osv.) dybt ind i teknologierne inden for computersyn og Natural Language Processing (NLP).
Opblomstringen af deep learning-teknologier har sikret et kæmpe spring til den slags data, der kan udvindes; vi er ikke længere begrænset til kun at udtrække tekst, men også andre datastrukturer såsom tabeller og nøgleværdi-par. Mange løsninger tilbyder nu forskellige produkter til at opfylde behovene hos enkeltpersoner og virksomhedsejere inden for udtræk af dokumentdata.
Denne artikel dykker ned i den aktuelle teknologi, der bruges til dataudtræk fra scannede dokumenter, efterfulgt af en kort praktisk vejledning i Python. Vi vil også se på nogle af de populære løsninger, der i øjeblikket er på markedet, som giver de bedste tilbud på dette område.
Hvad er dataudtræk?
Dataudtræk er processen med at konvertere ustrukturerede data til fortolkelig information af programmer for at tillade yderligere databehandling af mennesker. Her lister vi flere af de mest almindelige typer data, der skal udtrækkes fra scannede dokumenter.
Tekstdata
Den mest almindelige og vigtigste opgave i dataudtræk fra scannede dokumenter er udtrækning af tekst. Denne proces, selvom den tilsyneladende er ligetil, er faktisk meget vanskelig, da scannede dokumenter ofte præsenteres i billedformat. Derudover er udtrækningsmetoderne meget afhængige af teksttyperne. Mens tekst er til stede i tætte trykte formater størstedelen af tiden, er evnen til at udtrække sparsom tekst fra mindre velscannede dokumenter eller fra håndskrevne breve med drastisk varierende stilarter lige så vigtig. En sådan proces vil tillade programmer at konvertere billeder til maskinkodet tekst, hvor vi kan organisere dem yderligere fra ustrukturerede data (uden bestemt formatering) til strukturerede data til yderligere analyse.
tabeller
Tabelformularer er den mest populære tilgang til datalagring, da formatet er let at fortolke med menneskelige øjne. Processen med at udtrække tabeller fra scannede dokumenter kræver teknologi ud over tegndetektion - man skal detektere linjerne og andre visuelle funktioner for at udføre en ordentlig tabeludtrækning og yderligere konvertere disse oplysninger til strukturerede data til yderligere beregning. Computer vision-metoder (beskrevet i detaljer i de følgende afsnit) er i høj grad brugt til at opnå høj nøjagtighed af bordudtræk.
Nøgle-værdi-par
Et alternativt format, som vi ofte anvender i dokumenter til datalagring, er nøgleværdipar (KVP'er).
KVP'er er i det væsentlige to dataelementer - en nøgle og en værdi - knyttet sammen som én. Nøglen bruges som en unik identifikator for den værdi, der skal hentes. Et klassisk KVP-eksempel er ordbogen, hvor ordforrådene er nøglerne og de tilsvarende definitioner er værdierne. Selvom disse par normalt ikke bemærkes, bliver de faktisk brugt meget hyppigt i dokumenter: spørgsmål i undersøgelser såsom navn, alder og priser på varer i fakturaer er alle implicit KVP'er.
Men i modsætning til tabeller eksisterer KVP'er ofte i ukendte formater og er nogle gange endda delvist håndskrevne. For eksempel kan nøgler være fortrykt i kasser, og værdier er håndskrevne, når formularen udfyldes. Derfor er det en løbende forskningsproces at finde de underliggende strukturer til automatisk at udføre KVP-ekstraktion, selv for de mest avancerede faciliteter og laboratorier.
tal
Endelig er det også meget vigtigt at udtrække eller indsamle data fra figurer i et scannet dokument. Statistiske indikatorer såsom cirkeldiagrammer og søjlediagrammer indeholder ofte vigtige oplysninger for dokumenter. En god dataudtrækningsproces bør være i stand til at udlede af forklaringer og numre til delvist at udtrække data fra figurer til videre brug.
Ønsker du at udtrække data fra scannede dokumenter? Giv nanonetter™ et spin for højere nøjagtighed, større fleksibilitet, efterbehandling og et bredt sæt af integrationer!
Teknologier bag dataudtræk
Dataudtræk kredser om to hovedprocesser: Optisk tegngenkendelse (OCR) efterfulgt af Natural Language Processing (NLP).
OCR-ekstraktion er processen med at konvertere tekstbilleder til maskinkodet tekst, mens sidstnævnte er analyserne på ordene for at udlede betydninger. Ofte ledsaget af OCR er andre computervisionsteknikker såsom boks- og linjedetektion til at udtrække førnævnte datatyper såsom tabeller og KVP'er for mere omfattende udtræk.
Kerneforbedringerne bag dataekstraktionspipelinen er tæt forbundet med fremskridtene inden for dyb læring, der bidrog i høj grad til områderne computersyn og naturlig sprogbehandling (NLP).
Hvad er deep learning?
Dyb læring, har en stor rolle bag hypen fra den kunstige intelligens-æra, og er konstant blevet skubbet i front i adskillige applikationer. I traditionel teknik er vores mål at designe et system/funktion, der genererer et output fra et givet input; deep learning er derimod afhængig af input og output for at finde det mellemliggende forhold, der kan udvides til nye usete data gennem den såkaldte neurale netværk.
Et neuralt netværk eller en flerlagsperceptron (MLP), er en maskinlæringsarkitektur inspireret af, hvordan menneskelige hjerner lærer. Netværket indeholder neuroner, som efterligner biologiske neuroner og "aktiverer", når de får forskellig information. Sæt af neuroner danner lag, og flere lag stables sammen for at danne et netværk, der tjener forudsigelsesformålene for flere former (dvs. billedklassifikationer eller afgrænsningsfelter til objektdetektering).
Inden for computersyn anvendes en type neural netværksvariation i høj grad - konvolutionelle neurale netværk (CNN'er). I stedet for traditionelle lag anvender en CNN foldningskerner, der glider gennem tensorer (eller højdimensionelle vektorer) til udtræk af funktioner. Ledsaget med traditionelle netværkslag i sidste ende, er CNN'er meget succesfulde i billedrelaterede opgaver og dannede yderligere grundlaget for OCR-ekstraktion og anden funktionsdetektion.
På den anden side er NLP afhængig af et andet sæt netværk, som fokuserer på tidsseriedata. I modsætning til billeder, hvor ét billede er uafhængigt af hinanden, kan tekstforudsigelse i vid udstrækning være fordelagtigt, hvis ord før eller efter også tages i betragtning. I de sidste par år, en familie af netværk, nemlig lange kortsigtede minder (LSTM'er), som tager tidligere resultater som input til at forudsige de aktuelle resultater. Bilaterale LSTM'er blev også ofte vedtaget for at forbedre forudsigelsesoutput, hvor både resultater før og efter blev overvejet. I de senere år er et koncept med transformere, der bruger en opmærksomhedsmekanisme, imidlertid begyndt at stige på grund af dets højere fleksibilitet, hvilket fører til bedre resultater end traditionelle netværk, der håndterer sekventielle tidsserier.
Anvendelser af dataekstraktion
Hovedmålet med dataudtræk er at konvertere data fra ustrukturerede dokumenter til strukturerede formater, hvor en meget nøjagtig genfinding af tekst, figurer og datastrukturer kan være meget nyttig til numerisk og kontekstuel analyse. Disse analyser kan være meget nyttige for især virksomheder:
Forretning
Erhvervsselskaber og store organisationer håndterer tusindvis af papirarbejde med lignende formater på daglig basis - Store banker modtager adskillige identiske ansøgninger, og forskerhold skal analysere bunker af formularer for at udføre statistisk analyse. Derfor reducerer automatisering af det indledende trin med at udtrække data fra dokumenter markant redundansen af menneskelige ressourcer og giver medarbejdere mulighed for at fokusere på at analysere data og gennemgå applikationer i stedet for at indtaste information.
- Bekræftelse af applikationer — Virksomheder modtager tonsvis af ansøgninger, hvad enten de er håndskrevne eller kun via ansøgningsskemaer. På de fleste tidspunkter kan disse applikationer være ledsaget af personlige ID'er til verifikationsformål. Scannede dokumenter af ID'er, såsom pas eller kort, kommer normalt i partier med lignende formater. Derfor kan en velskrevet dataudtrækker hurtigt konvertere dataene (tekster, tabeller, figurer, KVP'er) til maskinforståelige tekster, hvilket kan reducere mandetimerne væsentligt på disse opgaver og fokusere på applikationsvalg i stedet for udtræk.
- Betalingsafstemning — Betalingsafstemning er processen med at sammenligne kontoudtog for at sikre matchning af tal mellem konti, som i høj grad drejer sig om dataudtræk fra dokumenter - et udfordrende problem for en virksomhed med betydelig størrelse og forskellige indtægtskilder. Dataudtræk kan lette denne proces og give medarbejderne mulighed for at fokusere på defekte data og udforske potentielle svigagtige hændelser om pengestrømmen.
- Statistisk analyse — Feedback fra kunder eller eksperimentdeltagere bruges af virksomheder og organisationer til at forbedre deres produkter og service, og en omfattende feedback-evaluering vil normalt kræve en statistisk analyse. Undersøgelsesdata kan dog eksistere i adskillige formater eller skjult mellem tekst med forskellige formater. Dataudtræk kan lette processen ved at pege på åbenlyse data fra dokumenter i batches, lette processen med at finde nyttige processer og i sidste ende øge effektiviteten.
- Deling af tidligere optegnelser — Fra sundhedspleje til at skifte banktjenester kræver store industrier ofte nye kundeoplysninger, som måske allerede har eksisteret andre steder. For eksempel kan en patient, der skifter hospital på grund af flytning, have allerede eksisterende journaler, som kunne være nyttige for det nye hospital. I sådanne tilfælde kommer en god dataekstraktionssoftware til nytte, da det eneste, der kræves, er, at den enkelte bringer en scannet historie med journaler til det nye hospital, så de automatisk kan udfylde alle oplysninger. Ikke alene ville dette være bekvemt, det kunne også undgå omfattende risici, især i sundhedssektoren, hvor vigtige patientjournaler bliver overset.
Ønsker du at udtrække data fra scannede dokumenter? Giv nanonetter™ et spin for højere nøjagtighed, større fleksibilitet, efterbehandling og et bredt sæt af integrationer!
Vejledninger
For at give et klarere overblik over, hvordan man udfører dataudtræk, viser vi to sæt metoder til udførelse af dataudtræk fra scanning af dokumenter.
Byg fra bunden
Man kan bygge en simpel dataudtrækkende OCR-motor via PyTesseract-motoren som følgende:
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')
For mere information om koden, kan du tjekke deres officielle dokumentation.
Med enkle ord udtrækker koden data såsom tekster og afgrænsningsrammer fra et givet billede. Selvom det er ret nyttigt, er motoren ikke så stærk som dem, der leveres af avancerede løsninger på grund af deres betydelige regnekraft til træning.
Bruger Google Document API
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'])
I sidste ende giver Googles dokument-AI dig mulighed for at udtrække adskillige oplysninger fra dokumenter med høj nøjagtighed. Derudover tilbydes tjenesten også til specifikke anvendelser, herunder tekstudtræk til både normale og vilde billeder.
Vær sød at henvise til link. for mere.
Nuværende løsninger, der tilbyder dataudtræk
Udover store virksomheder med API'er til udtræk af dokumentdata, er der flere løsninger, der giver meget nøjagtige PDF OCR tjenester. Vi præsenterer flere muligheder for PDF OCR, der er specialiseret i forskellige aspekter, såvel som nogle nyere forskningsprototyper, der ser ud til at give lovende resultater*:
*Sidebemærkning: Der er flere OCR-tjenester, der er målrettet mod opgaver som f.eks. billeder i naturen. Vi sprang disse tjenester over, da vi i øjeblikket fokuserer på kun at læse PDF-dokumenter.
- Google API'er — Som en af de største onlinetjenesteudbydere tilbyder Google fantastiske resultater i dokumentudtrækning med deres banebrydende computervisionsteknologi. Man kan bruge deres tjenester gratis, hvis forbruget er ret lavt, men prisen stiger i takt med, at API-kaldene stiger.
- Dyb læser — Deep Reader er et forskningsværk udgivet i ACCV Conference 2019. Det inkorporerer flere state-of-the-art netværksarkitekturer til at udføre opgaver som f.eks. dokumentmatchning, tekstgenfinding og denoising billeder. Der er yderligere funktioner såsom tabeller og nøgle-værdi-par-udtrækning, der gør det muligt at hente og gemme data på en organiseret måde.
- Nanonets™ — Med et yderst dygtigt deep learning-team er Nanonets™ PDF OCR fuldstændig skabelon- og regeluafhængig. Derfor kan Nanonets™ ikke kun fungere på specifikke typer PDF'er, det kan også anvendes på enhver dokumenttype til tekstgenfinding.
Ønsker du at udtrække data fra scannede dokumenter? Giv nanonetter™ et spin for højere nøjagtighed, større fleksibilitet, efterbehandling og et bredt sæt af integrationer!
Konklusion
Afslutningsvis præsenterer denne artikel en grundig forklaring på dataudtræk fra scannede dokumenter, herunder udfordringerne bag og den teknologi, der kræves til denne proces.
To tutorials af forskellige metoder præsenteres, og aktuelle løsninger, der tilbyder det ud af boksen, præsenteres også som reference.
- 2019
- Om
- absolutte
- Konto
- præcis
- opnå
- Desuden
- Yderligere
- fremskreden
- fremskridt
- AI
- algoritmer
- Alle
- allerede
- alternativ
- analysere
- analyse
- En anden
- api
- API'er
- Anvendelse
- applikationer
- tilgang
- arkitektur
- omkring
- artikel
- kunstig
- kunstig intelligens
- opmærksomhed
- Automation
- til rådighed
- AWS
- baggrund
- Bank
- Banker
- grundlag
- være
- BEDSTE
- Beyond
- Største
- grænse
- Boks
- bygge
- virksomhed
- virksomheder
- Kort
- tilfælde
- Kontanter
- pengestrøm
- vis
- udfordringer
- udfordrende
- Diagrammer
- Betaling
- Classic
- Cloud
- CNN
- kode
- Kom
- Fælles
- Virksomheder
- selskab
- fuldstændig
- færdiggøre
- omfattende
- beregning
- computer
- Konceptet
- Konference
- tillid
- tilsluttet
- konstant
- indeholder
- bidrog
- bekvemmelighed
- Praktisk
- konverteringer
- Core
- Selskaber
- Tilsvarende
- kunne
- afgørende
- Nuværende
- For øjeblikket
- kunde
- Kunder
- data
- databehandling
- data opbevaring
- deal
- beskrevet
- Design
- detail
- Detektion
- forskellige
- svært
- digital
- dokumenter
- nemt
- effektivitet
- medarbejdere
- Engine (Motor)
- Engineering
- især
- væsentlige
- skøn
- etc.
- evaluering
- begivenheder
- eksempel
- Undtagen
- eksperiment
- udforske
- omfattende
- Uddrag
- familie
- Feature
- Funktionalitet
- tilbagemeldinger
- Fields
- finde
- Fornavn
- Fleksibilitet
- flow
- Fokus
- fokuserede
- fokuserer
- fokusering
- efter
- forkant
- formular
- format
- formularer
- Gratis
- Fransk
- Opfylde
- fuld
- yderligere
- mål
- godt
- større
- stærkt
- Håndtering
- hands-on
- hoved
- sundhedspleje
- sundhedssektoren
- hjælpsom
- link.
- Høj
- højere
- stærkt
- historie
- sygehuse
- Hvordan
- How To
- Men
- HTTPS
- menneskelig
- Human Resources
- Mennesker
- billede
- betydning
- vigtigt
- Forbedre
- omfatter
- Herunder
- Indkomst
- Forøg
- individuel
- enkeltpersoner
- industrier
- industrien
- oplysninger
- indgang
- inspirerede
- Intelligens
- spørgsmål
- IT
- Job
- Nøgle
- nøgler
- Labs
- Sprog
- Sprog
- stor
- førende
- LÆR
- læring
- Line (linje)
- Liste
- Lang
- maskine
- machine learning
- større
- Flertal
- mand
- måde
- Marked
- Match
- matchende
- medicinsk
- metoder
- mere
- mest
- Mest Populære
- flytning
- flere
- nemlig
- Natural
- behov
- netværk
- net
- normal
- numre
- talrige
- tilbyde
- tilbydes
- tilbyde
- tilbud
- Tilbud
- officiel
- igangværende
- online
- drift
- Indstillinger
- ordrer
- organisationer
- Organiseret
- Andet
- ejere
- deltagere
- betaling
- udfører
- periode
- personale
- Banebrydende
- Populær
- potentiale
- magt
- forudsige
- forudsigelse
- præsentere
- smuk
- tidligere
- pris
- behandle
- Processer
- forarbejdning
- Produkter
- Program
- Programmer
- lovende
- give
- leverer
- formål
- hurtigt
- RE
- Læser
- Læsning
- modtage
- forsoning
- optegnelser
- reducere
- om
- forhold
- anmode
- kræver
- påkrævet
- Kræver
- forskning
- Ressourcer
- svar
- Resultater
- afkast
- risici
- scanning
- sekunder
- tjeneste
- Tjenester
- sæt
- flere
- Kort
- kort sigt
- lignende
- Simpelt
- siden
- Størrelse
- Software
- solid
- Løsninger
- nogle
- specialiserede
- Spin
- state-of-the-art
- udsagn
- statistiske
- opbevaring
- strøm
- stærk
- struktureret
- væsentlig
- vellykket
- Understøttet
- Kortlægge
- målrettet
- opgaver
- hold
- teknikker
- Teknologier
- Teknologier
- prøve
- verdenen
- derfor
- tusinder
- Gennem
- tid
- gange
- sammen
- tons
- mod
- traditionelle
- Kurser
- tutorials
- typer
- forstå
- enestående
- brug
- sædvanligvis
- værdi
- forskellige
- Verifikation
- Specifikation
- vision
- hvorvidt
- mens
- inden for
- uden
- ord
- Arbejde
- arbejdere
- world
- ville
- XML
- år