Crearea modelelor OCR personalizate de recunoaștere a scrisului de tipar și de mâna
Ce este OCR și unde poate fi utilizat?
Introducere
OCR(Optical character recognition) ne oferă diferite modalități de a întelege conținutul unei imagine, de a găsi și de a recunoaște textul în ea. Când ne gândim la OCR, ne gândim inevitabil la o mulțime de documente - cecuri bancare și documente legale, cărți de identitate și indicatoare stradale.
Ceea ce avem de-a face este un algoritm de recunoaștere a caracterelor optice, care folosește învățarea automata(AI) și mecanismul de atenție pentru a face predicții despre unde este un anumit cuvânt într-o imagine, dacă există unul deloc. O mulțime de cuvinte mari aruncate în propoziția precedentă, așa că o vom lua pas cu pas și vom explora starea tehnologiei OCR și diferitele abordări utilizate pentru aceste sarcini.
OCR - Recunoaștere optică a caracterelor
Recunoașterea optică a caracterelor sau OCR se referă la un set de probleme de viziune a computerului care ne impun să convertim imagini cu text digital sau scris de mână în text care poate fi citit automat, într-o formă pe care computerul o poate prelucra, stoca și edita ca fișier text sau ca parte a unui software de introducere și manipulare a datelor. Imaginile pot include documente, facturi, formulare legale, cărți de identitate sau OCR în sălbăticie, cum ar fi citirea indicatoarelor stradale, numerele containerului sau plăcuțele cu număr de vehicul.
Cercetatorii au încercat să rezolve problema OCR cu mai multe tehnici convenționale de vizionare a computerului, cum ar fi filtre de imagine, detectarea conturului și clasificarea imaginilor, care au funcționat bine pe seturi de date înguste, bazate pe șabloane, care nu variau foarte mult în orientarea lor, calitatea imaginii etc., dar pentru a face modelele noastre robuste la aceste variante pentru ca o afacere să își poată desfășura aplicațiile de învățare automată la scară, trebuie explorate noi metode. Există o mulțime de servicii și programe software ocr care efectuează diferit pe diferite tipuri de sarcini OCR.
Învățare profundă(Deep learning) și OCR
Abordările de învățare profundă s-au îmbunătățit în ultimii ani, reînnoind interesul pentru problema OCR, unde rețelele neuronale pot fi folosite pentru a combina sarcinile de localizare a textului într-o imagine, împreună cu înțelegerea textului. Utilizarea arhitecturilor neuronale profunde convoluționale și a mecanismelor de atenție și a rețelelor recurente a parcurs un drum lung în această privință.
Una dintre aceste abordări de învățare profundă este pe baza atenției.
Conducerea generală pentru multe arhitecturi pentru recunoașterea textului din imagini urmează acest șablon - o rețea convoluțională pentru extragerea caracteristicilor imaginii ca vectori codificați, urmată de o rețea recurentă care folosește aceste funcții codate pentru a prezice unde pot fi fiecare literele din textul imaginii și care sunt acestea.
Mecanisme de atenție
S-ar putea să fi auzit de RNN-uri sau LSTM-uri, arhitecturi de rețele neuronale care prezic litera la fiecare pas, după cum avem nevoie pentru a prezice o secvență de caractere. Această arhitectură de rețele neuronale destinate să învețe tiparele în date secvențiale modificând starea lor curentă pe baza intrării curente și a stărilor anterioare în mod iterativ. Dar datorită limitărilor de memorie și a problemelor precum gradienții dispăruți, am descoperit că RNN-urile și LSTM-urile nu sunt capabile să înțeleagă cu adevărat influența cuvintelor în context mai lung.
Mecanismul de atenție încearcă să remedieze acest lucru. Este o modalitate de a face modelul tău să învețe dependențe pe distanțe lungi într-o secvență și a găsit mai multe aplicații în procesarea limbajului natural și traducerea automată.