Introducere în recunoașterea optică a caracterelor [OCR] pentru începători

Publicat: 2021-02-08

OCR sau recunoașterea optică a caracterelor (OCR) este utilizată pentru a extrage informații din imaginile facturilor și chitanțelor sau orice are conținut scris pe ele. Pentru a dezvolta această soluție, OpenCV poate fi utilizat pentru a procesa imaginile care pot fi introduse în continuare într-un motor Tesseract OCR care poate extrage textul din acele imagini.

Cu toate acestea, procesul de eliminare a textului poate fi eficient doar dacă imaginea este clară și textele sunt suficient de vizibile. În aplicațiile de vânzare cu amănuntul, pentru extragerea de texte din facturi, factura poate fi inundată cu filigrane sau poate exista o umbră pe factură care împiedică captarea informațiilor.

Capturarea informațiilor din pagini mai lungi de texte poate fi, de asemenea, o sarcină grea. Pentru a aborda aceste probleme, este prudent ca în conducta de extragere a informațiilor să existe un loc din modulul de procesare a imaginii care se ocupă de dificultățile menționate mai sus.

Acesta cuprinde mai multe subprocese, adică localizarea textelor, segmentarea caracterelor și recunoașterea acelor caractere. Deși puține sisteme se descurcă fără segmentare. Astfel de metode sunt produse utilizând mai multe proceduri, cum ar fi aplicarea metodei celor mai mici pătrate pentru a reduce rata de eroare și suporta mașinile vectoriale pentru a se potrivi cu caracterele.

Totuși, adesea pentru a identifica ocuparea unui personaj într-o imagine, sunt folosite rețelele neuronale convoluționale (CNN). Textele pot fi privite ca o secvență consistentă de caractere. Detectarea și identificarea acestor caractere cu o mai mare acuratețe este o dificultate care poate fi rezolvată prin utilizarea unui tip special de rețea neuronală, și anume, rețele neuronale recurente (RNN) și memoria pe termen lung (LSTM).

Cuvintele sunt colectate prin ajustarea textelor în blobs. În plus, aceste linii și regiuni sunt examinate pentru text echivalent. Liniile de text sunt împărțite în cuvinte numai în funcție de felul de spațiere dintre ele. Metoda de identificare este împărțită în două etape. În primul rând, fiecare cuvânt este identificat. Fiecare cuvânt perfect sau corect identificat este trecut suplimentar la un clasificator adaptiv ca date de antrenament.

Imaginea care este primită ca intrare este examinată și procesată în părți. Textul este introdus în modelul LSTM linie cu linie. Tesseract, care este un motor optic de recunoaștere a caracterelor, este disponibil pentru diferite sisteme de operare. Utilizează o combinație de arhitectură CNN și LSTM pentru a identifica și a deriva cu precizie texte din datele imaginii. Cu toate acestea, imaginile cu zgomot sau umbre împiedică acuratețea regăsirii.

Pentru a minimiza zgomotul sau pentru a îmbunătăți calitatea imaginii, preprocesarea imaginii poate fi efectuată folosind biblioteca OpenCV. Astfel de etape de preprocesare pot cuprinde descoperirea ROI sau a regiunii de interes, decuparea imaginii, eliminarea zgomotului (sau a regiunilor nedorite), limitarea, dilatarea și eroziunea, detectarea contururilor sau marginilor. După ce acești pași sunt finalizați, motoarele OCR pot citi imaginea și pot extrage perfect textele relevante din ea.

Cuprins

Instrumente folosite

1. OpenCV

OpenCV este o bibliotecă compatibilă inițial cu limbajele C/C++ și python. Este folosit în mod obișnuit pentru procesarea datelor cu mostre de imagini. O multitudine de funcții utile predefinite sunt prezente în bibliotecă care implementează transformările necesare pe mostrele de imagine. Toate funcțiile menționate mai sus, cum ar fi dilatarea, eroziunea, tăierea, detectarea marginilor și multe altele pot fi realizate cu ușurință folosind această bibliotecă.

2. Tesseract OCR Engine

Lansată de Google, este o bibliotecă open-source care este utilizată pe scară largă pentru recunoașterea textului. Poate fi folosit pentru a detecta și identifica texte în diferite limbi. Procesarea este destul de rapidă și oferă rezultatul textual al unei imagini aproape imediat. Multe aplicații de scanare folosesc această bibliotecă și se bazează pe tehnicile sale de extracție.

Etapele implicate în procesul de extragere a textului

(1) În primul rând, tehnicile posibile de procesare a imaginii, cum ar fi detectarea conturului, eliminarea zgomotului și funcțiile de eroziune și dilatare, sunt aplicate probei de imagine zgomotoasă primită.

(2) După acest pas, se face eliminarea filigranelor și a umbrelor din bancnotă.

(3) În plus, factura este segmentată în părți.

(4) Părțile segmentate sunt trecute prin motorul Tesseract OCR pentru a obține textul complet.

(5) În cele din urmă, folosind Regex, obținem toate informațiile vitale, cum ar fi suma totală, data achiziției și cheltuielile per articol.

permiteți-mi să vorbesc despre o anumită imagine cu texte – facturi și facturi. De obicei au filigrane pe ele, majoritatea companiei care emite facturile. După cum am menționat mai devreme, aceste filigrane sunt impedimente în calea extragerii eficiente a textului. Adesea, aceste filigrane conțin textul.

Acestea pot fi considerate zgomote, deoarece motorul Tesseract recunoaște texte de orice dimensiune într-o linie. La fel ca filigranele, umbrele inhibă, de asemenea, precizia motorului de a extrage texte în mod eficient. Umbrele sunt eliminate prin îmbunătățirea contrastului și a luminozității imaginii.

Pentru imaginile care au autocolante sau filigrane, se efectuează un proces în mai mulți pași. Procesul presupune conversia unei imagini în tonuri de gri, aplicarea transformărilor morfologice, aplicarea de prag (poate fi o inversare binară sau o transformare otsu), extragerea pixelilor mai întunecați în regiunea mai întunecată și, în sfârșit, lipirea pixelilor mai întunecați în regiunea filigranului. Revenind la procesul de îndepărtare a umbrelor.

În primul rând, se aplică dilatarea imaginii în tonuri de gri. Deasupra acestuia, un albastru mediu cu un nucleu adecvat suprimă textul. Rezultatul acestui pas este o imagine care conține porțiuni de umbre și orice alte decolorări prezente. Acum se calculează o operație simplă de diferență între imaginea originală și imaginea obținută. În cele din urmă, după aplicarea pragului, ceea ce obținem este o imagine fără umbre.

Recunoașterea și extragerea textului

Un model de rețea neuronală convoluțională poate fi construit și antrenat pe textul imprimat găsit în imagini. Modelul poate fi folosit în continuare pentru detectarea textului din alte imagini similare cu același font. Un motor Tesseract OCR este utilizat pentru a recupera textul din imaginile care au fost procesate folosind algoritmii de viziune computerizată.

Pentru recunoașterea optică a caracterelor, trebuie să facem localizarea textului, urmată de segmentarea caracterelor și apoi recunoașterea caracterelor. Toți acești pași sunt efectuati de Tesseract OCR. Motorul Tesseract OCR se dovedește a fi foarte precis atunci când este utilizat pe text tipărit, mai degrabă decât pe text scris de mână.

Obținerea de informații relevante

Vorbind despre facturi în mod specific, din tot textul extras, informații vitale precum data achiziției, suma totală etc. pot fi obținute cu ușurință folosind mai multe expresii regulate. Suma totală care este imprimată pe factură poate fi extrasă prin aplicarea expresiilor regulate datorită faptului că apare de obicei la sfârșitul facturii. Multe astfel de informații utile pot fi stocate în funcție de datele lor, astfel încât să fie ușor accesibile.

Precizie

Precizia pentru regăsirea textului poate fi definită ca raportul dintre numărul corect de informații care sunt obținute de Tesseract OCR și care sunt deja în factură și numărul cumulat de cuvinte prezente efectiv în imaginea textuală. O precizie mai mare înseamnă o eficiență mai mare a tehnicilor de preprocesare și capacitatea Tesseract OCR de a extrage informații.

Ce urmează?

Dacă sunteți interesat să aflați mai multe despre învățarea automată, consultați Diploma PG de la IIIT-B și upGrad în Învățare automată și AI, care este concepută pentru profesioniști care lucrează și oferă peste 450 de ore de formare riguroasă, peste 30 de studii de caz și sarcini, IIIT- B Statut de absolvenți, peste 5 proiecte practice practice și asistență pentru locuri de muncă cu firme de top.

Învață cursul ML de la cele mai bune universități din lume. Câștigă programe de master, Executive PGP sau Advanced Certificate pentru a-ți accelera cariera.

Conduceți revoluția tehnologică condusă de inteligența artificială

Aplicați pentru Programul de certificat avansat în Învățare automată și NLP