OCR pentru PDF-uri

Nodul sursă: 879686

Introducere

De la utilizarea pe scară largă a computerelor în anii 1970, urmată de invenția PDF-urilor în 1993, stocarea fișierelor text în formate digitale a dominat treptat, dar constant, față de hârtiile tradiționale. Acest avantaj imbatabil a fost creat și îmbunătățit în continuare prin folosirea în autostopul a confortului internetului, care permite trimiterea cu ușurință a fișierelor text digitale în întreaga lume în câteva secunde. Astăzi, nu numai că textele codificate de mașină sunt salvate și partajate prin PDF-uri, ci chiar și hârtiile de documente scrise de mână sunt scanate în astfel de formate pentru procesare și distribuire ulterioară.

Această tendință emergentă, totuși, a aruncat lumină asupra unui domeniu de cercetare nou și în curs de desfășurare – PDF Optical Character Recognition (OCR). OCR este procesul de conversie a textului scanat sau scris de mână în text codificat de mașină, astfel încât să poată fi utilizat în continuare de programe pentru procesare și analiză ulterioară. În timp ce aplicarea OCR este largă (de la imagini ale indicatoarelor rutiere până la documente text oficiale), acest articol se apropie în mod specific de domeniul PDF OCR, în special PDF-uri de hârtie scanată și scrisă de mână, și discută despre tehnologia și programele în diferite limbi pentru a efectua sarcină. O prezentare detaliată și o comparație între mai multe software-uri de pe piață pentru PDF OCR sunt prezentate în continuare pentru referință.


Căutați o soluție OCR pentru a extrage informații din PDF-uri? Dă Nanonetso rotire pentru o precizie mai mare, o flexibilitate mai mare, post-procesare și un set larg de integrări!


Progrese în soluțiile OCR

Înainte de a discuta despre codurile, detaliile și beneficiile OCR, mai întâi explicăm conceptul despre modul în care funcționează OCR prin introducerea progreselor în tehnologia implicată.

OCR tradițional

Conversia electronică a documentelor scanate pentru calcule ulterioare, înainte de învățarea profundă a îndeplinirii preciziei necesare pentru astfel de sarcini, se realizează de obicei cu patru pași simpli:

  1. Colectați o bază de date cu personaje cunoscute.
  2. Utilizați fotosenzori pentru a aduna și separa scrisorile individuale de documentele scanate.
  3. Comparați setul de atribute preluate de la fotosenzori cu atributele fizice din baza de date.
  4. Convertiți fiecare set de atribute în mod corespunzător în caracterul cunoscut cu cea mai mare similitudine.

În timp ce abordarea tradițională pare a fi eficientă în majoritatea timpului, este vulnerabilă la restricțiile sale inerente bazate pe reguli. Un pas intermediar crucial al OCR este extragerea cu succes a unor litere sau semne individuale dintr-un set/grup de texte. Această extragere necesită anumite șabloane sau reguli (adică dimensiuni/stiluri de font presetate) pentru a fi foarte precisă. Impunerea din ce în ce mai multe reguli pentru a crește acuratețea va crea o dilemă a supraadaptării OCR, sau corectarea numai pe anumite stiluri de scrieri. Orice inconsecvență de iluminare în timpul procesului de scanare ar duce, de asemenea, la erori atunci când OCR este complet bazat pe reguli.

În plus, comparațiile de atribute bazate pe reguli sunt, de asemenea, insuficiente atunci când se ocupă de scrierile de mână. Fonturile generate de computer sunt în mare parte fixate cu atribute adesea evidente și ușor de comparat încrucișat – fonturile scrise de mână sunt exact opusul, cu variații nelimitate și, prin urmare, sunt mult mai dificil de clasificat. Deoarece de fiecare dată un personaj realizat manual este ușor diferit, nu este posibil să fie incluse pe toate ca parte a bazei de date. Acest lucru necesită adesea ca OCR să realizeze algoritmi mai sofisticați pe lângă potrivirea naivă a atributelor.

În cele din urmă, bariera mai multor limbi există și în abordarea tradițională. Numeroase limbi adoptă simboluri similare sau chiar identice; dacă stocăm toate simbolurile în baza de date, nu am fi capabili să facem diferența dintre două simboluri prin simpla potrivire a atributelor, ceea ce face ca abordarea tradițională să fie adesea limitată la o singură limbă per model.

În lumina recentei ere a învățării profunde, adusă din fericire de capacitățile de calcul hardware în creștere rapidă, OCR-urile mai noi au încorporat modele de învățare atât în ​​timpul procesului de extragere a textului, cât și în faza de interpretare a acestora.

Motoare OCR bazate pe învățare profundă

Învățarea profundă, o ramură majoră a domeniului învățării automate, a câștigat o mare popularitate cu ajutorul a numeroși oameni de știință renumiți care l-au împins în prim-plan. În ingineria tradițională, scopul nostru este de a proiecta un sistem/funcție care generează o ieșire dintr-o intrare dată; învățarea profundă, pe de altă parte, se bazează pe intrări și ieșiri pentru a găsi relația intermediară care poate fi extinsă la date noi nevăzute prin așa-numitele rețele neuronale.

Arhitectura rețelei neuronale

O rețea neuronală, sau un perceptron cu mai multe straturi, imită modul în care creierul uman învață. Fiecare nod, și anume neuronii, din interiorul rețelei sunt ca neuronii biologici, astfel încât primesc informații pentru a se „activa”. Seturi de neuroni formează straturi, iar mai multe straturi se stivuiesc pentru a deveni o rețea, care utilizează informațiile pentru a genera o predicție. Predicția poate fi de toate formele, de la o predicție de clasă pentru probleme de clasificare la casetele de delimitare ale elementelor în sarcinile de detectare a obiectelor – toate acestea au atins stadiul tehnicii în comparație cu literatura anterioară. În sarcina OCR, două tipuri de ieșire, împreună cu două genuri de rețele, sunt aplicate intens.

  • Rețele neuronale convoluționale (CNN) – CNN-urile sunt unul dintre cele mai dominante seturi de rețele folosite astăzi, în special în domeniul viziunii computerizate. Acesta cuprinde mai multe nuclee convoluționale care alunecă prin imagine pentru a extrage caracteristici. Însoțite de straturi tradiționale de rețea la sfârșit, CNN-urile au mare succes în preluarea caracteristicilor dintr-o anumită imagine pentru a efectua predicții. Acest proces poate fi transferat în continuare la sarcina de a găsi casete de delimitare și de a detecta atributele caracterelor pentru o clasificare ulterioară în procesul OCR.
  • Amintiri pe termen lung pe termen scurt (LSTM) – LSTM-urile sunt o familie de rețele aplicate în principal intrărilor secvențe. Intuiția este simplă - pentru orice date secvențiale (de exemplu, vremea, stocurile), rezultatele noi pot depinde în mare măsură de rezultatele anterioare și, prin urmare, ar fi benefic să se anticipeze în mod constant rezultatele anterioare ca parte a caracteristicilor de intrare în efectuarea de noi predicții. . În cazul OCR, literele detectate anterior ar putea fi de mare ajutor pentru a ajuta la prezicerea următoarei, deoarece un set de caractere ar trebui de obicei să aibă sens atunci când sunt puse împreună (de exemplu, o litera engleză „g” este mai probabil să vină după „do” decât un număr „9”, în ciuda atributelor lor similare).

Pe lângă principalele sarcini din OCR care încorporează învățarea profundă, multe etape de pre-procesare pentru a elimina abordările bazate pe reguli au fost, de asemenea, beneficiari ai tehnologiilor înfloritoare ale rețelelor neuronale:

  • Dezgomot – Atunci când un document este scanat necorespunzător, metodele bazate pe reguli pot fi cu ușurință insuficiente. O abordare recentă adoptată de tehnologiile OCR este aplicarea unei rețele generative adversare (GAN) pentru a „denozi” intrarea. GAN cuprinde două rețele, un generator și un discriminator. Generatorul generează în mod constant noi intrări pentru discriminator pentru a distinge între intrările reale și cele generate, permițând generatorului să se îmbunătățească constant în crearea conținutului ideal. În acest caz, GAN este antrenat dintr-o pereche de documente cu zgomot și zgomot, iar scopul generatorului este de a genera un document cu zgomot cât mai aproape de adevărul de la sol. În timpul fazei de aplicare, GAN, dacă este bine instruit, poate fi apoi utilizat la fiecare intrare pentru a ajusta orice document scanat prost.
  • Identificarea documentelor – Sarcinile OCR, în special sarcinile OCR pe PDF-uri, sunt adesea folosite în scopul extragerii corecte a datelor din formulare și documente. Prin urmare, cunoașterea tipului de document pe care aparatul OCR îl procesează în prezent poate crește semnificativ acuratețea extragerii datelor. Artele recente au încorporat o rețea siameză, sau o rețea de comparație, pentru a compara documentele cu formate de documente preexistente, permițând motorului OCR să realizeze în prealabil o clasificare a documentelor. Acest pas suplimentar a fost demonstrat empiric că îmbunătățește acuratețea regăsărilor de text.

Pe scurt, progresul OCR a fost bine beneficiat de creșterea exponențială a capabilităților hardware și de învățare profundă. OCR-urile PDF au atins acum acuratețe la un standard uimitor pentru numeroase aplicații.


Căutați o soluție OCR pentru a extrage informații din PDF-uri? Dă Nanonetso rotire pentru o precizie mai mare, o flexibilitate mai mare, post-procesare și un set larg de integrări!


Aplicații ale software-ului PDF OCR

Scopul principal al OCR este de a prelua date din formate nestructurate, fie că sunt cifre numerice sau numere reale. Dacă recuperarea este de succes și foarte precisă, programele pot utiliza OCR pentru sarcini de muncă, cum ar fi recunoașterea și interpretarea textului, în special pentru analiza numerică și contextuală.

Analiza datelor numerice

Când PDF-urile conțin date numerice, OCR ajută la extragerea acestora pentru a efectua analize statistice. Mai exact, OCR cu ajutorul extracțiilor de tabel sau perechi cheie-valoare (KVP) poate fi aplicat pentru a găsi numere semnificative din diferite regiuni ale unui text dat. Apoi putem adopta metode statistice sau chiar de învățare automată (de exemplu, KNN, K-Means, regresie liniară/logistică) la modele de aplicații diferite.

Interpretarea datelor textului

Pe de altă parte, procesarea datelor text poate necesita mai multe etape de calcul, cu scopul final ca programele să înțeleagă „sensurile” din spatele cuvintelor. Un astfel de proces de interpretare a datelor text în semnificațiile sale semantice este denumit Procesarea limbajului natural (NLP).

Beneficiile PDF OCR

PDF OCR servește numeroase scopuri la nivel de aplicație. Următoarele secțiuni descriu câteva exemple de cazuri de utilizare, de la atât de mic ca uz personal până la atât de mare ca cel al unei corporații.

Cazuri personale de utilizare

OCR-urile PDF aduc o comoditate imensă atunci când se confruntă cu sarcini enervante, cum ar fi scanarea ID-urilor și finanțarea personală.

Adesea, este necesar ca ID-urile personale să fie convertite în formate PDF pentru a fi trimise către diferite aplicații. Aceste documente de identificare conțin informații cum ar fi data nașterii și numerele de identificare, care sunt adesea solicitate să fie introduse în mod repetitiv în diferite scopuri și, prin urmare, un OCR PDF foarte precis, care găsește câmpurile care se potrivesc și valorile corespunzătoare în ID-ul ar fi excelent. ajutor în efectuarea unor sarcini manuale banale. Singura forță de muncă necesară ar fi să verificați din nou orice inconsecvență.

Finanțarea personală este un alt proces care necesită tone de muncă manuală. Deși evoluțiile în Excel și foile de calcul au ușurat deja sarcini precum bugetarea personală, OCR și extragerea datelor de pe facturile PDF ar putea accelera și mai mult procesul. Aceste date pot fi introduse automat în foi de calcul pentru analiză, așa cum sa menționat în secțiunile anterioare, care urmează să fie efectuate. Se poate utiliza cu ușurință timpul inițial de introducere a tastei pentru a se gândi la planuri financiare mai bune.

Cazuri de utilizare pentru afaceri

Atât marile corporații, cât și organizațiile mai mici trebuie să se ocupe de mii de documente urmând formate similare, care necesită o forță mare de muncă și totuși neproductive (adică toată munca este folosită pentru ceva care necesită mai puțin brainstorming). Clasificările automate ale documentelor și colecțiile/analizele de sondaje sunt acolo unde OCR este util.

OCR-urile permit computerelor să convertească textele scanate în texte codificate de mașină. Conținutul textelor convertite poate fi apoi folosit pentru clasificarea documentelor, fie că este vorba de cereri pentru diferite roluri sau de formulare care așteaptă să fie aprobate. Dacă sunt bine instruite, OCR-urile pot duce la erori minime care ar putea fi frecvente din cauza oboselii umane inevitabile. Din perspectiva afacerilor, cheltuielile cu forța de muncă pot fi, de asemenea, reduse considerabil.

În ceea ce privește sondajele sau feedback-ul, care sunt adesea solicitate de către organizații pentru a-și îmbunătăți produsul sau planurile actuale, OCR joacă, de asemenea, un rol vital. Datele pot fi extrase rapid și evaluate pe larg pentru analize statistice. Dacă este proiectat bine, chiar și textul scris de mână poate fi extras și analizat automat.


Căutați o soluție OCR pentru a extrage informații din PDF-uri? Dă Nanonetso rotire pentru o precizie mai mare, o flexibilitate mai mare, post-procesare și un set larg de integrări!


Un tutorial simplu

OCR-urile PDF pot fi de fapt programate cu ușurință personal. Următorul este un canal simplu pentru a efectua OCR pe PDF-uri.

Conversia PDF în imagini

Există numeroase biblioteci și API-uri în mai multe limbi care acceptă OCR-uri preantrenate. Cu toate acestea, majoritatea procesează cu imagini și nu direct PDF-uri. Prin urmare, pentru a simplifica următorii pași, putem preprocesa PDF-urile în formate de imagine înainte de a efectua recunoașterea caracterelor.

Una dintre cele mai frecvent utilizate biblioteci pentru a face acest lucru este pdf2imagine bibliotecă pentru Python, care poate fi instalată pur și simplu prin următoarea comandă:

pip install pdf2image

Ulterior, se poate importa biblioteca și se poate folosi oricare dintre cele două linii de cod pentru a obține o imagine în format PIL după cum urmează:

from pdf2image import convert_from_path, convert_from_bytes
from pdf2image.exceptions import ( PDFInfoNotInstalledError, PDFPageCountError, PDFSyntaxError
) images = convert_from_path('/home/belval/example.pdf')
images = convert_from_bytes(open('/home/belval/example.pdf','rb').read())

Pentru mai multe informații despre cod, puteți consulta documentația oficială din https://pypi.org/project/pdf2image/

OCR imagine

Există numeroase API-uri de la marile companii de tehnologie cu OCR-uri foarte precise. Datorită prezumției că PDF-urile sunt de obicei foarte împachetate cu date text dense, cel mai potrivit mod de a efectua un astfel de OCR ar fi utilizarea API-ului Google Vision, în special Document_Text_Adnotation funcţionează deoarece este special conceput pentru astfel de scopuri. Specific, Document_Text_Adnotation trimite codul către motorul OCR pe care Google l-a proiectat pentru texte dense, inclusiv scrieri de mână în diferite limbi.

Întreaga interfață API Google Vision este ușor de configurat, puteți consulta ghidul său oficial https://cloud.google.com/vision/docs/quickstart-client-libraries pentru procedura de configurare detaliată.

După aceea, putem folosi următoarele coduri pentru recuperarea OCR:

def detect_document(path): """Detects document features in an image.""" from google.cloud import vision import io client = vision.ImageAnnotatorClient() with io.open(path, 'rb') as image_file: content = image_file.read() image = vision.Image(content=content) response = client.document_text_detection(image=image) for page in response.full_text_annotation.pages: for block in page.blocks: print('nBlock confidence: {}n'.format(block.confidence)) for paragraph in block.paragraphs: print('Paragraph confidence: {}'.format( paragraph.confidence)) for word in paragraph.words: word_text = ''.join([ symbol.text for symbol in word.symbols ]) print('Word text: {} (confidence: {})'.format( word_text, word.confidence)) for symbol in word.symbols: print('tSymbol: {} (confidence: {})'.format( symbol.text, symbol.confidence)) if response.error.message: raise Exception( '{}nFor more info on error messages, check: ' 'https://cloud.google.com/apis/design/errors'.format( response.error.message))

Alternativ, Google Vision API acceptă și mai multe limbi, cum ar fi Java și Go. Mai multe coduri referitoare la utilizarea Google API pot fi preluate aici: https://cloud.google.com/vision  

Există, de asemenea, alte servicii/API-uri OCR de la Amazon și Microsoft și puteți utiliza oricând PyTesseract bibliotecă pentru a vă instrui pe modelul dvs. în scopuri specifice.


Căutați o soluție OCR pentru a extrage informații din PDF-uri? Dă Nanonetso rotire pentru o precizie mai mare, o flexibilitate mai mare, post-procesare și un set larg de integrări!


Comparaţie

Există numeroase OCR PDF disponibile în prezent pe piață. În timp ce unele sunt gratuite, rapide și pot fi utilizate instantaneu online, altele oferă produse mai precise și mai bine concepute pentru uz profesional. Aici descriem câteva opțiuni, precum și avantajele și dezavantajele acestora.

OCR PDF online

Când utilizați PDF OCR pentru uz personal pentru conversii rapide, gratuit și rapid poate fi mai de dorit decât acuratețea. Există numeroase servicii PDF OCR online care răspund acestor nevoi. Se pot încărca pur și simplu documente PDF și pot fi transformate în text scris într-un mod rapid și convenabil.

Principala problemă cu aceasta este însă controlul calității OCR. Aceste software OCR online gratuit, deși funcționează bine de cele mai multe ori, nu sunt obligați să ofere de fiecare dată cea mai bună calitate, în comparație cu alte software-uri offline care necesită întreținere constantă.

Software offline

În prezent, există mai multe companii care oferă servicii PDF OCR foarte precise. Aici analizăm mai multe opțiuni de OCR PDF care sunt specializate în diferite aspecte, precum și câteva prototipuri recente de cercetare care par să ofere rezultate promițătoare:

Există mai multe servicii OCR care sunt direcționate către sarcini precum imagini în sălbăticie. Am omis aceste servicii, deoarece în prezent ne concentrăm doar pe citirea documentelor PDF.

  • ABBYY – ABBYY FineReader PDF este un OCR dezvoltat de ABBYY. Software-ul are o interfață de utilizare prietenoasă folosită pentru citirea PDF-urilor și conversia textului. Cu toate acestea, având în vedere natura sa non-inginerească (clienții țintă sunt specialiști non-tech în alte domenii care au nevoie de PDF OCR), ar fi mai dificil să îl încorporăm în alte programe pentru prelucrare ulterioară.
  • cofax – Similar cu ABBYY, Kofax este un cititor PDF prietenos care necesită achiziție. Pretul este fix pentru utilizare individuala, cu reduceri pentru marile corporatii. Asistență 24/7 este disponibilă și în cazul oricăror dificultăți tehnice.
  • Reader profund – Deep Reader este o lucrare de cercetare publicată în Conferința ACCV 2019. Încorporează mai multe arhitecturi de rețea de ultimă generație pentru a îndeplini sarcini precum potrivirea documentelor, recuperarea textului și eliminarea zgomotului imaginilor. Există funcții suplimentare, cum ar fi tabelele și extragerile perechi cheie-valoare, care permit recuperarea și salvarea datelor într-un mod organizat.
  • Nanonets™ – Nanonets™ PDF OCR folosește învățarea profundă și, prin urmare, este complet independent de șablon și reguli. Nanonets nu numai că poate funcționa pe anumite tipuri de PDF-uri, ci poate fi aplicat și pe orice tip de document pentru recuperarea textului.

Concluzie

În concluzie, în acest articol am parcurs elementele de bază ale modului în care funcționează un OCR, precum și cronologia dezvoltării OCR, urmată de tutoriale simple și cazuri de utilizare. De asemenea, am prezentat un set de opțiuni viabile pentru OCR PDF, precum și avantajele și dezavantajele acestora pentru utilizare ulterioară.

Sursa: https://nanonets.com/blog/pdf-ocr/

Timestamp-ul:

Mai mult de la AI și învățarea automată