Identificarea și traducerea textelor din imagini statice Coordonator Absolvent Conf.dr.ing. Ștefan Alexandru Elena – Ramona Ștefan Mocanu București,… [626925]

Departamentul Automatică și Informatică Industrială
Facultatea Automatică și Calculatoare
Universitatea POLITEHNICA din București

LUCRARE DE DIPLOMĂ

Identificarea și traducerea textelor din imagini
statice

Coordonator Absolvent: [anonimizat].dr.ing. Ștefan Alexandru Elena – Ramona Ștefan
Mocanu

București, 2020

2 Cuprins
1. Introducere ………………………….. ………………………….. ………………………….. ……………… 5
2. Prezentarea domeniu lui din care face parte lucrarea ………………………….. ……………….. 7
2.1 Scurt istoric ………………………….. ………………………….. ………………………….. ………….. 7
2.2 Avantaje ………………………….. ………………………….. ………………………….. ………………. 9
2.3 Opțiuni existente pe piață ………………………….. ………………………….. ………………….. 10
3. Tehnici Optical Character Recognition ………………………….. ………………………….. …… 12
3.1 Localizare zonă text (Location segmentation) ………………………….. ……………………. 14
3.2 Pre -procesare (Pre -processing) ………………………….. ………………………….. …………… 15
3.3 Segmentare caractere (Segmentation) ………………………….. ………………………….. ….. 16
3.4 Extragere trăsături (Feature Extraction) ………………………….. ………………………….. .. 17
3.5 Clasificare (Classification/Recognition) ………………………….. ………………………….. .. 18
3.6 Post -procesare (Post -processing) ………………………….. ………………………….. ………… 19
3.7 Probleme frecvente ………………………….. ………………………….. ………………………….. . 19
3.8 Exemple algoritmi OCR ………………………….. ………………………….. ……………………. 21
4. Descrierea me todelor de rezolvare propuse ………………………….. …………………………. 25
4.1 Vedere artificială ………………………….. ………………………….. ………………………….. …. 25
4.1.1 Re prezentarea imaginii ………………………….. ………………………….. ……………….. 25
4.1.2 Seturi de date ………………………….. ………………………….. ………………………….. … 27
4.1.3 Tehnic i de pre -procesare alese ………………………….. ………………………….. ……… 28
4.2 Inteligență artificială ………………………….. ………………………….. …………………………. 32
4.2.1 Faster R -CNN ………………………….. ………………………….. ………………………….. .. 33
4.2.2 CNN ………………………….. ………………………….. ………………………….. ……………. 36
5. Documentație tehnică ………………………….. ………………………….. ………………………….. 39
5.1 Aplica ția mobilă ………………………….. ………………………….. ………………………….. ….. 40
5.2 Serverul web ………………………….. ………………………….. ………………………….. ………. 41
5.3 Fluxul aplicației ………………………….. ………………………….. ………………………….. …… 45
5.4 Exemple rezultate ………………………….. ………………………….. ………………………….. … 49
6. Concluzii ………………………….. ………………………….. ………………………….. ……………… 57
Bibliografie ………………………….. ………………………….. ………………………….. …………………. 59
Anexe ………………………….. ………………………….. ………………………….. ………………………… 62
Anexa 1 – Rezul tate identificare și recunoaștere text ………………………….. ……………….. 62

3 Listă figuri

Fig. 1 Fluxul de pași în problema OCR ………………………….. ………………………….. ………… 14
Fig. 2 Exemplu descopunere pagi nă, segmentare linie, segmentare cuvinte …………………. 15
Fig. 3 Exemple segmentare caractere ………………………….. ………………………….. ………….. 17
Fig. 4 Structură general rețea neuronală ………………………….. ………………………….. ……….. 18
Fig. 5 E xemple imagini cu fun dal neuniform ………………………….. ………………………….. … 20
Fig. 6 Arhite ctură YOLO ………………………….. ………………………….. ………………………….. 22
Fig. 7 Arhitectură SSD ………………………….. ………………………….. ………………………….. …. 22
Fig. 8 Structură Fully Connected Network pentru EAST ………………………….. …………….. 23
Fig. 9 Arhitect ură CRNN ………………………….. ………………………….. ………………………….. 24
Fig. 10 Spațiul de culori RGB ………………………….. ………………………….. ……………………. 26
Fig. 11 Exemple de text printat lizibil din setul de date COCO -Text ………………………….. 27
Fig. 12 Exemple de caractere din setul de date Chars 74k ………………………….. ……………. 28
Fig. 13 Exemplu de dilatare al unei imagini cu un element structural p ătrat 3×3 …………… 29
Fig. 14 Exemplu de erodare al unei imag ini cu un element structural pătrat 3×3 …………… 29
Fig. 15 E xemplu aplicare „NOT” logic asupra unei imagini ………………………….. ………… 30
Fig. 16 Determinare valoare threshold static vs dinamic (Otsu) ………………………….. …….. 31
Fig. 17 Arhitectură rețea Faster R -CNN ………………………….. ………………………….. ……….. 33
Fig. 18 Centrele ancorelor pent ru imaginea originală ………………………….. ………………….. 34
Fig. 19 Exemplificare IoU ………………………….. ………………………….. ………………………….. 35
Fig. 20 Arhite ctura CNN ………………………….. ………………………….. ………………………….. . 37
Fig. 21 Arhitectură aplicație ………………………….. ………………………….. ……………………….. 39
Fig. 22 Imagine tra nsmisă prin HTTP Request ………………………….. ………………………….. . 41
Fig. 23 Pas 2: Detecție și delimitare cadrane ………………………….. ………………………….. …. 43
Fig. 24 (a) Pași 3.a și 3.b (b) Pași 3.c, 3.d și 3.e ………………………….. …………………………. 43
Fig. 25 Pași 3.g și 3. h ………………………….. ………………………….. ………………………….. ……. 43
Fig. 26 Pași 3.i, 3.j și 3.k: Contururi ident ificate filtrate ………………………….. ………………. 43
Fig. 27 (a) Ecran de întâmpinare (b) Ecran principal ………………………….. …………………. 45
Fig. 28 (a) Încărcarea unei imagine din galerie (b) Fotografierea unei imagini …………… 46
Fig. 29 Decuparea unei imagini ………………………….. ………………………….. …………………… 47
Fig. 30 (a) Ecran de așteptare (b) Ecra n afișare rezultate ………………………….. ……………… 47
Fig. 31 (a) Meniu tra ducere text (b) Traducere în limba română (c) Traducere în limba
portugheză (d) Traducere în limba greacă (e) Traducere în limba turcă ……………………….. 48
Fig. 32 Rezultat identificare și recunoaștere text – Imagine 1 ………………………….. ……….. 49
Fig. 33 Rezultat traducere text – Imagine 1 (a) limba arabă (b) în limba franceză ( c) limba
română (d) limba cehă ………………………….. ………………………….. ………………………….. …… 50
Fig. 34 Rezultat identificare și recunoaștere text – Imagine 2 ………………………….. ……….. 50
Fig. 35 Rezultat traducere text – Imagine 2 (a ) limba română (b) limba olandeză (c) limba
bulgară (d) limba spaniolă ………………………….. ………………………….. ………………………….. 51
Fig. 36 (a) Rezultat identificare și recunoaștere text – Imagine 3. Rezultat traducere text –
Imagine 3 (b) limba japoneză (c) limba franceză (d) limba maghiară (e) limba daneză ….. 51

4 Fig. 37 (a) Rezultat identificare și recunoaștere text – Imagine 4. Rezultat tradu cere text –
Imagine 4 (b) limba română (c) limba germană (d) limba turcă (e) limba spaniolă ……….. 52
Fig. 38 (a) Rezultat identificare și recunoaștere text – Imagine 5. Rezultat traducere text –
Imagine 5 (b) limba portugheză (c) limba greacă (d) limba franceză (e) limba olandeză … 52
Fig. 39 (a) Rezultat identificare și recunoaștere text – Imagine 6. Rezultat traduc ere text –
Imagine 6 (b) limba spaniolă (c) limba română (d) limba germană (e) limba cehă ………… 53
Fig. 40 Exemple rezultate în funcție de poziționarea textului ………………………….. ……….. 55
Fig. 41 (a) Exemple rezultat text orientat oblic (b) Exemplu rezultat text de ns (c) Exemplu
rezultat text orientat vertical ………………………….. ………………………….. ……………………….. 56
Fig. 42 Rezultat identificare și recunoaștere text – Imagine 7 și Imagine 8 ………………….. 62
Fig. 43 Rezultat identificare și recunoaștere text – Imagine 9, Imagine 10, Imagine 11 și
Imagine 12 ………………………….. ………………………….. ………………………….. ………………….. 63
Fig. 44 Rezultat identificare și recunoaștere text – Imagine 13, Imagine 14, Imagine 15 și
Imagine 16 ………………………….. ………………………….. ………………………….. ………………….. 64
Fig. 45 Rezultat id entificare și recunoaștere text – Imagine 17, Imagine 18, Imagine 19 și
Imagine 20 ………………………….. ………………………….. ………………………….. ………………….. 65

Listă tabele
Table 1 Rezultate modele localizare text ………………………….. ………………………….. ………. 37
Table 2 Rezultate modele finale ………………………….. ………………………….. ………………….. 38
Table 3 Probabilități caractere pentru imaginea exemplu ………………………….. ……………… 44

5 1. Introducere
Această lucrare își propune să descrie procesul neces ar dezvoltării aplicației Travel &
Translate , aplicație care urmărește să utilizeze o parte din descoperirile recente din
domeniul inteligenței și vederii artificiale pentru a facilita procesul de înțelegere a textului
dintr -o foto grafie, text scris în limba engleză . Pornind de la o imagine captată cu ca mera
smartphone -ului sau aleas ă din galerie, software -ul proiectat îsi propune să identifice
cuvintele car e apar în fotografie, să le înțeleagă și să ofere o traducere și adaptare
corespunzătoare contextul ui. Scopul aplicației este de a înlocui procesul ma nual realizat de
utilizator ii de telefoane inteligente atunci când se confruntă cu text scris într-un limb aj greu
de înțeles. În mod normal , oamenii ar trebui să recunoască cuvintele, să le caute individual
într-un dicționar și să le pună cap la cap pentru a le înțelege sensul. L a cantități mari de
cuvinte necunoscute, scrise într -o sintaxă mai mult sau mai pu țin familiară, această
abordare nu mai reprezintă o soluție viabilă. Aplicația Travel & Translate realizează
întocmai această funcționalitate, chiar e xtinzând posibilitățile de regăsire ale textului
pentru ca sistemul să poată să fie utilizat în orice situație actuală. Respectiva fotografie
poate să fie o imagine din orice împrejurare din lumea înconj urătoare , ca de exemplu: un
afiș publicitar , o etich etă de produs , o copertă de carte, etc. Posibilitățiile sunt nelimitate ,
asemenea aplicabilității unui astfel de sistem. Astfel, singura restricție pentru ca software –
ul în cauză să funcționeze este ca i maginea pe care un utilizator o selectează să cuprind ă
cel puțin un cuvânt, indiferent de context.
Prin urmare, motivația care a determinat întocmirea acestei lucrări constă în utilitatea
pe care o oferă în principal turiștilor pe parcursul excursiilor în alte țări, dar nu numai. În
secolul XXI, călătoritul dintr -un stat în altul nu mai reprezintă un lucru de osebit, ieșit din
comun sau Science Fiction, fiind accesibil majorității oamenilor. Ca urmare, nu o dată se
întâmplă să ajungem într -o țară unde se vo rbește o limbă necunoscută, unde numele
alimentelor d in magazine sunt de nedescifrat sau bonurile primite la final sunt de neînțeles.
Neînțelegerea limbajului scris poate reprezenta un impediment uriaș în viețile noastre.
Astfel, oricât de banal ar părea l imbajul scris pe care îl folosim în fiecare zi, acest a ne oferă
cantități uriașe de informații, ne provoacă emoții, ne ajută sa comunicăm unii cu alții, să ne
exprimăm sentimentele, nelămuririle, dorințele. Ținând cont de aceste funcții complexe
îndeplinit e prin comunicarea scrisă, înțelegerea mediului încon jurător în momentul în care
nu ne aflăm în țara de or igine, poate fi un proces lung și dificil. La acest nivel intervine
aplicația descrisă, propunându -și să simplifice viața utilizatorilor săi, să le uș ureze procesul
de înțelegere și comunicare într -o lim bă străină prin descifrarea textelor ce îi înconjoară ,
fiind un exemplu clar al tehnologiei care potențează trăirile omului.
Astfel, p e lângă numeroasele avantaje aduse de o astfel de aplicație și de var ietatea
situațiilor vizate , aplicația o feră oportunit atea înțeleger ii paralelei dintre om -mașină prin
replicarea unor funcții aparent simple ale persoanelor: vederea și gândirea. Astfel, lucrarea
de față nu urmărește să abordeze doar aspecte tehnice precum algoritmi, tehnici software
sau tehnologii, ci doreș te evidențierea aspectelor ce reies din compararea ap licației obținute
și a performanțelor acesteia cu cele ale unui exemplar uman, pentru a motiva importanța și
relevanța celei dintâi. De asemenea, ca obiective adiționale pentru această lucrare de

6 diplomă ar fi descoperirea și analiza un or metode de procesare a imaginiilor din computer
vision, aprofundarea noțiunilor de deep learning, neural networks, pattern recognition,
feature extra ction, android app lications și client -server architecture.
Această luc rare este s crisă pe baza structurii următoare:
(1) un capitol introductiv ce susține alegerea temei lucrării și oferă o imagine de
ansamblu a direcțiilor urmărite,
(2) un capitol în care este prezentat succint domeniul din care face parte lucrarea , un
scurt istoric și opțiunile existente pe piață , sco țând în evidență sistemele ce îndeplinesc
funcții similare ,
(3) un capitol care prezintă și exemplifică principiul algoritmului de bază al aplicației
prin analiza metodelor de abordare, a etapelor și a limită rilor acestuia, jus tificând alegerea
tehnicii de rezolvare propusă ,
(4) un capitol ce servește drept suport teoretic pentru conceptele utilizate în dezvoltarea
aplicație i și în care se descrie amănunțit metoda aleasă,
(5) un capitol destinat în exclusivit ate aplicației dezvoltate – prezentare a modului de
funcționare , a tehnologii lor și ustensile lor necesare, implementarea algoritmi lor utili zați,
rezultate le obținute, performanțe le atinse, iar în final
(6) un capitol ce urmărește analiza obiectivă a rezult atelor obținute, propunerea unor
soluții pentru îmbunătățirea problemelor din actuala variantă, prezentarea unor dorințe și
direcții ulterioare de dezvoltare.

7 2. Prezentarea domeniului din care face parte
lucrarea
Aplicația proiectată se încadrează în rândul sistemelor Optical Character Recognition
(OCR), sisteme care adresează o problemă veche de zeci de ani din domeniul recunoașterii
de modele și forme din imagini [22]. Pe scurt, OCR reprezintă o modalitate d e detectare și
recunoaștere a textului tipărit sau scris, etape urmate de transformare a acestuia în text
editabil codat de mașină . Acest capitol urmărește prezentarea și clarificarea ideilor care
stau la baza acest ei metode cu scopul de a zugrăvi o vedere de ansamblu și de a oferi o
înțelegere mai bună a perspectivei prezentate. În cadrul acestei lucrări, accentul o să cadă
pe recunoașterea scrisului de tipar în cadrul imaginilor întrucât este subcomponenta nișată
de către software -ul realizat, fără a uita însă să fie trecute în revi stă toate elementele ce
alcătuiesc universul Optical Character Recognition.
2.1 S curt istoric
Din momentul în care s -a dedus faptul că procesul de citire și înțelegere a unui text de
către oameni nu este unic și că acesta poate avea un echivalent în lumea digitală , a existat o
creștere exponențială a soluțiilor tehnice dezvoltate în acest sens [2]. Procesul analog
descoperit a fost cel de prelucrare a imagini lor și de recunoaștere de linii și curbe de către
calculator, proces ce are capacitatea de a conduce la rezultate similare celor umane .
Asemănările izbitoare care există între calculatoare și creierul uman reprezintă
motivația majoră care stă la baza dezvoltării algoritmilor dedicați detecției de text în
prezent. Mai exact, oamenii sunt capabili să dist ingă litere, cifre și diverse semne de
punctuație cu ajutorul ochiilor care funcționează ca un aparat foto . Aceste organe recunosc
diferite tipare de lumină și întuneric pentru diverse simboluri care alcătuiesc totalitatea
elementelor comunicării scrise. U lterior, creierul uman grupează datele identificate în
cuvinte, grupuri de cuvinte sau propoziții pentru a înțelege informația. La ora actuală,
mașini le au căpătat capacit ăți asemănătoare oamenil or și anume : detectează cuvinte, le
recunosc și încearcă să l e înțeleagă. Ceea ce diferă este modalitatea prin care îndeplinesc
aceste funcționalități. V iteza de recunoaștere a ființelor uman e este mult mai mare decât a
computerelor. Astfel, apar în mod n atural întrebări clasice privind importanța și
performanțele acestor sisteme: „Raportul dintre resurse și rezultate este f avorabil
implementării?”, „Necesitatea acestuia doar pentru a rezolva limitările umane de natură
fizică (ex.: oboseala sau deficiențel e vizuale ) este o motivație destul de puternică pentru a
investi în el?”, „Este o problema importantă pentru dez voltarea societății?”. Toate aceste
nedumeriri își au raspunsul în evoluția OCR -ului de -a lungul vremii, evoluție ce a
influențat comunitatea a ctuală.
Dacă ne întoarcem în trecut, pr imele noțiuni adiacent e recunoașterii caract erelor
printate datează de la sfârșitul secolului al XIX -lea. La acel moment din istorie, motivația
pentru urmărirea unei astfel de direcții era diferită și anume: necesitat ea unui grup social
defavorizat de a se adapta mai ușor în so cietate , fapt specificat și în [22]. Astfel, s -a dorit

8 dezvoltarea unor mașini dedicate oameni lor cu deficiențe vizuale cu scopul de a -i ajuta să
citească. Până la apariția primelor astfel de di spozitive, trebuie menționate alte câteva
reperele temporale ce au premers acest eveniment. Conform [ 5], în anul 1914, Emanuel
Goldberg a realizat o mașină ce citea caractere și le transforma în cod telegrafic standard.
Tot în același an, Edmund Fournier d ’Albe a construit un scaner de mână care în funcție de
simbol ul identificat pe pagina tipărită producea diverse tonuri. Ul terior, Emanuel Goldberg
revine cu „Mașina statistică”, preluată de IBM [22]. În anii ’20 -’30, această invenție a fost
utilizată pentr u a căuta arhive de microfilm cu ajutorul unui sistem de recu noaștere a
codurilor optice. Versiunea modernă de OCR apare î n anii ’40. Pași din ce în ce mai mari
au fost făcuți în această direcție, odată cu dezvoltarea calculatoarelor digitale, astfel încât
la sfârșitul secolului XX, recunoașterea textului era, cu mi ci excepții și cu o precizie mai
mare sau mai mică, posibilă indiferent de font. Ray Kurzweil lansează în anul 1976, cu
sprijinul Federației Naționale a Nevăzătorilor, primul program pentru comp utere de
recunoaștere a caracterelor [16]. Acesta era de fapt un computer care putea să citească text
cu voce tare pentru nevăzători, fiind alcătuit dintr -un scaner plat CCD și un sintetizator
text-to-speech.
În perioada următoare, din ce în ce mai multe d omenii de lucru au început să adopte
această tehnologie pentr u diverse probleme. Astfel, de la o abordare simplistă de citire a
textelor cu voce tare , Optical Character Recognition a ajuns să adreseze soluții mult mai
complexe și distincte. Astfel, în prez ent se remarcă o varietate semnificativă de direcții,
printre care: înțelegerea codului Morse, citire plăci de înmatriculare ale autovehicul elor,
digitalizarea de facturi , chitanțe, contracte sau adrese poștale, cartografie automată,
scanarea actelor precu m pașapoarte sau cărți de identitate, citire a formulare lor, verificare a
semnătur ii și identificare persoane . Deși aceste utilizări contemporane pot să pară în
aparență banale , nesesizabile de către majoritatea oamenilor în momentul în care le
folosesc în viața de zi cu zi , diversitatea lor subliniază relevanța și sc alabilitatea
algoritmilor OCR .
Mai mult decât atât, pe măsură ce tehnologia s -a dezvoltat și a condus la utilizarea în
mod constant de către oameni a telefoanelor inteligente, a tabletelor și a ochelariilor
inteligenți, OCR a fost introdus și la acest nive l în aplicații specializate care extrag text
capturat cu camera dispozitivului . În general, pentru realizarea acestei funcțiuni, este
nevoie adiacent de o conexiune la internet ș i de un API OCR care returnează direct textul
identificat înapoi în aplicatie pentru o eventuală procesare ulterioră.
În cele ce urmează, am selectat două dintre categoriile de sisteme în care detecția
textului a avut cele mai mari realizări, fiind utili zat pe scară largă și a vedea care sunt
performanțele atinse:
• Sisteme pentru c itire zone standard de date similare [ 3]. Acestea omit partea de
detectare a textului din pagină, având câteva zone prestabilite unde caută
informații. Pe lângă localizarea limi tată, altă constrângere este faptul că citirea
poate acoperi doar un set limit at de caractere și anume: cifre și simboluri
speciale. Un exemplu de utilizare ar fi reprezentat de aplicațiile bancare care
folosesc OCR pentru a citi date standardizate precum : număr cont, număr
articol, sume de bani. Alt exemplu este reprezentat de sist emul de verificare a
buletinelor din aeroport, care sunt instruite cu coordonatele exacte pentru a

9 căuta informațiile de identificare ale posesorului: serie, număr, nume, cnp.
Utilizarea unui astfel de sistem asigură randament ridicat, viteză ridicată și
erori minime de până la 0.01%;
• Sisteme pentru citire pagini întregi [3]. Spre deosebire de prima categorie, care
ignora orice informație în afara zonelor de interes, aceste siste me permit citirea
întregii pagini în medii de procesare a textului. În mod evi dent, pentru rezultate
bune, există limitări din punct de vedere al font -ului și al calității tipăririi. Ca
utilizare, vorbim despre mediul corporatist, mai precis de munca de bi rou. De
exemplu, un număr foarte mare de firme preferă să păstreze facturile î n format
electronic, apelând la astfel de sisteme care pot reține toată i nformația. Dintre
performanțele atinse de astfel de sisteme, numim erori minime de până la 0.1%
și viteza de citire de ordinul sutelor de caractere pe secundă.
Foarte multe sisteme O CR urmăresc automatizarea unor procese. Astfel, dacă c itirea în
sine este relevantă doar pentru a dicta anumite decizii de control , atunci înlocuirea
factorului uman cu un aparat ar crește cu siguranță performanța . Un exemplu simplu este
tehnologia automa tă utilizată pentru citirea adreselor destinatarilor corespondenței cu
scopul sortării pe baza codului poștal. Estimarea calității rezultatului și a ratei erorilor este
însă destul de dificilă întrucât acest ea depind de lizibilitatea scrisului de mână în
majoritatea cazurilor. Totuși, pentru sisteme existente, se remarcă o viteză de 30
scrisori/oră.
2.2 A vantaje
Deși a avut o răspândire masivă, creditul acordat OCR și recunoașterea beneficiilor
aduse de acesta nu sunt pe măsura impactului acestuia. Astfel, am considerat important să
evidențiem în această lucrare aspectele pozitive determinate de acesta. Raportându -ne la
prezent și la necesitățile omului modern, dintre a vantajele semnificative oferite de OCR,
poate cel mai important este rezolvarea problemei de introducere manuală a datelor din
documentele fizice în documente electronice, fapt menționat anterior. Pe lângă acesta apar
însă și avantajele complementare și an ume: o dată cu transformarea unor documente fizice
în documente editabile, devine posibil ă utilizarea motoarelor de căutare. Astfel, documente
de mari dimensiuni pot fi scanate ș i filtrate într -un timp foarte scurt, de ordinul câtorva
secunde, acțiune impo sibilă pentru forța umană, iar în final să ofere rezultate vaste pentru o
anumită căutare .
Manevrabilitatea conținutului reprezintă, fără îndoială, alt beneficiu al tehnologiei de
detecție a textului, căci oferă posibilitatea de a lucra în timp real cu ac esta. Având această
putere de procesare a textului, acesta poate fi editat imediat în caz de greșeli sintactice sau
erori de exprimare. De asemenea, păstrarea documentelor în format digital în locul celor
fizice conduce la salvare de spațiu, asigurând o ef icientizare a depozitării. Altă
caracteristică a f ișierelor electronice este accesibilita tea, ele având avantajul de a fi ușor d e
editat, transmis și accesat la nevoie din diverse locații. Alt avantaj este reprezentat de
diversitatea input -ului care accept ă mai multe formate: documete scanate sau pdf,
fotografii preluate cu camera foto . Astfel , versatilitatea algoritm ilor dată de condițiile
relaxate le susțin aplicabilitatea diversă. Având acest potențial imens , acest subdomeniu a

10 devenit, în prezent, o ari e de studiu foarte răspândită atât în mediul academic, cât și în cel
practic [4].
Rezumâ nd, utilizarea unui algoritm Optical Character Recognition devine echivalent cu
reducerea timpului de lucru și a spațiului, diminuarea șansei de apariție a erorilor î n ceea
ce privesc documentele, accesul rapid la informație dar și cu creșterea practicabi lității, a
lizibilității și a c omprehensibilității.
2.3 O pțiuni existente pe piață
În prezent, este disponibilă o gamă destul de vastă de sisteme OCR atât comerciale, cât
și open source pentru cele mai comune sisteme de scriere. Prețul acestora este pe mă sura
performanței. Pentru a oferi o perspectivă obiectivă dar amplă a situației actuale, este
important să analizăm opțiunile existente, să menționăm punctele forte și să subliniem
problemele pe care acestea le prezintă. L a ora actuală, se deosebesc două m ari categorii de
sisteme care inte grează algoritmi de detecție și recunoaștere a textului și anume:
• mașini specializate pe diverse probleme de recunoaștere (exclusiv dispozitive
hardware scumpe, dar cu performanțe ridicate). Acestea se utilizează în
aplic ațiile în care viteza este cel mai important factor . Rapiditatea obținută prin
paralelism și rate de transfer mari justi fică costurile ridicate .
• sisteme software (implementate pe computere personale, ieftine). Prețul
accesibilității financiare este plătit prin limitări din punct de vedere al
performanței (numărul de fonturi detectate este mult mai r edus, viteza este mai
scăzută). Acestora li se pot anexa scannere de mână care au, de asemenea,
constrângeri în ceea ce privește numărul restrâns de simboluri re cunoscute.
Acestea funcționează pe principiul de parcurgere linie cu linie, transmițând
informația la o aplicație asocia tă.
Se pot defini doi factori de care depinde calitatea sistemelor OCR și anume: tipul și
numărul de fonturi recunoscute. Astfel, se po ate realiza o scurtă clasificare a sistemelor
OCR și din punct de vedere al calității , bazată pe ideile prezentate în [ 3]:
• sisteme pentru font fix (există fonturi speciale pentru OCR în care fiecare
caracter are o formă unica, fonturi ce au fost concepute pentru evita situațiile
de ambiguitate);
• sisteme multi -font (au rezultate mai bune, recunoscând până la zece dintre
fonturile specifice categoriei întâi);
• sisteme omni -font (au capacitatea de a recunoaște destul de multe fonturi de
data asta prin extrager e de trăsături și nu prin comparație cu exemple din baze
de date);
• sisteme pentru scris de mână standard (spre deosebir e de primele trei categorii,
se adresează scrisului de mână și tratează problema literelor neconectate din
cadrul unui cuvânt; sunt foar te restrictive în ceea ce privește input -ul primit, dar
cu toate astea sunt destul de răspândite pe piața actuală);
• sisteme pentru scenarii (acesta abordează de fapt cea mai dificilă problemă și
anume: citirea oricărui tip de scris de mână cursiv sau nu, c u caractere conectate

11 sau nu, care poate depinde de obicei, stil, educație, temperament, condiții de
scriere șamd).
Deși problema de detecție a caracterelor a suferit numeroase îmbunătățiri și ar părea
rezolvată și de domeniul trecutului, acest proces este de fapt departe de a fi încheiat. Chiar
dacă în prezent identificarea și recunoașterea textului de diverse forme es te posibilă,
rezultatele obținute sunt foarte bune în general doar pe cazuri particulare . Actualmente,
adevărata provocare constă în modul d e implementare al acestui algoritm pentru a obține
concluzii și rezultate cât mai apropiate de realitate și cât mai generale pentru a fi aplicabile
pe variate probleme. Astfel, se urmărește ca dezvoltarea tehnologiei și scăderea
constrângeriilor să determ ine apariția unor noi metode mai sofisticate și mai eficiente. În
schimb, până în acel punct, direcția curent adapta tă conform [ 3] este compunerea
diverselor metode și tehnologii existente pentru a obține soluții hibride (ex.: combinarea
segmentării cu ana liza contextului pentru a reduce rata de apariție a defectelor în momentul
recompunerii cuvintelor). Mai exact, se d orește compensarea punctelor slabe ale unei
metode cu punctele forte ale alteia.
Așa cum am prezentat mai sus, există numeroase sisteme pe piață pentru detecția de
text. O parte dintre acestea au f ost introduse în aplicații cu diverse funcționalități
suplimentare ca traducere, editare sau salvare text. De interes, sunt cele asemănătoare
aplicației proiectate în lucrarea aceasta, Travel & Tran slate , și anume cele centrate pe
traducerea de cuvinte. Fără îndoială, Google Translate este aplicația gratis cea ma i
cunoscută în această direcție și alegerea numărul unu de pe piață în ceea ce privește
traducerea de text. În 2014, Google a cumpărat Word Lens, o aplicație mobilă care putea să
traducă text în timp real. Astfel, chiar dacă inițial procesa doar text tasta t direct de
utilizator sau prin încărcare de documente, acum deține și opțiunea de a traducere cuvinte
în timp real, folosind camera smartp hone -ului. Varianta oferită de Google este singura
care utilizează realitate virtuală, oferind rezultate mulțumitoar e. Google Translate nu este
singurul potențial concurent al aplicației noastre, magazinul virtual de aplicații pentru
Android și IoS oferind și alte opțiuni precum: Translate, iTranslate, Camera Translator,
Triplens: Photo Translator, Scan & Translate. O p arte dintre acestea sunt free, altele
necesită plătirea unui abonament după expirarea perioadei de trial. Spre deosebire de ceea
ce există l a ora actuală pe piață, aplicația Travel & Translate se adresează unui public țintă
mai restrâns, având un scop prec is și personalizat. Această aplicație vizează strict
extragerea și traducerea textului din fotografii cu scene naturale , nu din documente, ș i a
fost proiectată p entru a asista turiștii în călătoriile lor și pentru a -i ghida printre vocabulare
străine. Mai exact, sistemul software îi ajută pe aceștia să înțeleagă tot ce înseamnă
comunicare scrisă din jur: semne de circulație, nume străzi, adres e, nume obiective
turistice, etc. prin simpla captare a unei imagini. După ce se obține text în limba de interes,
utilizatorul are posibilitatea să aprofundeze rezultatul obținut printr -o simplă accesare a
motorului de căutare Google. Astfel, informațiile despre cea mai cunoscută atracție a
orașului în care se află, este doar la un buton distanță. De asemenea, organizar ea și
eficiența sunt elemente cheie în orice vacanță, astfel încât utilizatorii nu doresc să -și piardă
timpul căutând în mod repetat cuvinte complicate. De aceea, o dată ce s -a obținut un
rezultat, acesta poate fi copiat rapid în clipboard pentru a fi păst rat lângă notițele
importante din telefon.

12 3. Tehnici Optical Character Recognition
Așa cum am stabilit în capitolul anterior, au loc continue cercetări p entru construirea
sistemelor OCR de recunoaștere cât mai robuste, perfomante și ieftine. Evoluția siste melor
este ghidată de evoluția metodelor de raportare la problemă.
Înainte de a discuta metoda de rezolvare propusă în această lucrare, vor fi prezentate în
mod succint câteva opțiuni abordate de -a lungul vremi i. Se menționează faptul că au fost
selectat e cele mai importante și relevante abordări pentru aplicația de față întrucât
prezentarea tuturor variantelor nu ar servi scopului lucrării. Astfel, prezentăm:
• Tehnici clasice bazate strict pe computer vision
• Tehnici bazate pe deep learning (specializat și standard) cu suport din computer
vision.
Inițial, OCR a fost asociat cu domeniul vast computer vision, devenind o problemă
clasică a aces tei arii . Însă, cu timpul, modalitățiile de abordare ale acestuia s -au schimbat.
Acestea nu s -au mai rezumat la tehn icile banale de prelucrare a imaginilor, ci s -au extins
către tehnici mai complexe bazate pe inteligență artificială , având și rezultate mai
promițătoare.
Astfel, î n mod evident, cea de -a doua metodă este succesorul primei variante , apărând
în practică în jurul anului 2010, ca urmare a evoluției tehnologiei, dar mai ales ca urmare a
interesului manifestat de oameni pentru ceea ce înseamnă int eligență artificială ( IA). Cu
alte cuvinte, câțiva pași din succesiunea de operații OCR au fost înlocuiți. Înainte d e a
descrie pașii fundamentali necesari pentru problema identificării de text și îmbunătățirile
aduse prin aplicarea algoritmilor de deep le arning în acest sens, ne dorim să motivăm
trecerea de la o tehnică la alta. Pentru acest lucru, se trec în revistă noțiuni elementare de
inteligență artificială care să clarifice avantajele aduse.
Din dorința de a imita mecanismul de gândire umană cu ajuto rul mașinăriilor, acest
domeniu de IA a luat amploare, fiin d divizat în numeroase subdomenii. Relevant pentru
aceast ă lucrare este partea de machine learning (ML) care reprezintă o tehnică de
inteligență artificială prin care computerele capătă abilitatea de a învăța automat și în mod
continuu, din propria experiență, fără să fie programate în mod explicit să rețină anu mite
informații și fără să aibă nevoie de intervenția omului. Mai exact, urmărește dezvoltarea de
programe care odată ce primesc date, știu să învețe pattern -uri pe cont propriu. Avantajul
major este reprezentat de cantitatea masivă de date pe care o poate procesa și analiza un
algoritm din această zonă. ML poate fi categorisit la rândul său în: supervised learning
(învățare supravegheată), u nsupervised learning (învățare nesupravegheată) și
reinforcement learning (învățare cu consolidare) .
Pentru problema detecției de cuvinte, se folosesc în general algoritmi de machine
learning supravegheați. Aceștia se bazează pe un set de date etichetat (p erechi de intrări –
ieșiri corecte) folosit la antrenare, ulterior fiind capabili să aplice ceea ce au învățat în
trecut pentru noi date primite, pentru a prezice evenimente viitoare. Pe baza unui set de
date pentru învățare pe care îl analizează, algoritmul produce o funcție ce face estimări
pentru valorile de ieșire, de forma :
𝑦=𝑓(𝑥)

13 După ce este antrenat suficient, modelul creat este capabil să estimeze rezultate pentru
orice dată de intrare cu ajutorul funcției găsite.
Noțiunea de supervised learning poate fi împărțită la rândul ei în algoritmi de
clasificare (classification) și reg resiune (regression). În această lucrare, vor fi folosiți atât
algoritmi de clasificare , cât și de regresiune pentru a identifica textul în imagine, iar
ulterior se va apela din nou la algoritmi de clasificare pentru a asocia fiecărui caracter o
anumită cl asă. Dintre cei mai cunoscuți, enumerăm: Linear Classifiers, Decision Trees, K –
Nearest Neighbor, Random forest, Support Vector Machines și Neural Networks
(NN/rețele neurale ).
Prin urmare, având acces la diferite mijloace cu putere mare și relativ ieftină de calcul,
oamenii au început să se îndrepte către rețele neuronale tot mai complexe pentru a putea
rezolva problema OCR. Rezultatele au devenit instant din ce în ce mai bu ne, iar la
momentul actual, aproximativ toate sistemele OCR se bazează pe machine learning și au
performanțe mai ridicate indiferent de poziție, culoare, orientare, mărime, luminozitate,
font.
OCR face parte din familia tehnicilor de recunoaștere specif ice mașinilor (machine
recognition) care realizează identificare automată (automatic identification ). În funcție de
scopul și formatul aplicației, e xistă o variațiune de tehnici de identificare automată care se
mulează corespunzător pe specificații. Pentru a prezenta în lini i mari ceea ce presupun
aceste tehnici, vom creiona principiu l general de funcționare al unui astfel de sistem OCR .
Din punct de vedere al pașilor parcurși, în linii mari, în ambele cazuri, clasic și actual,
mașina învață ce categorii po t să fie întâlnite și care sunt particularitățiile fiecăruia
(caractere alfanumerice, semne de punctuație) prin studiul unor exemple reprezentative
pentru fiecare clasă. Ulterior compară imaginea nouă cu modele dobândite și asignează
clasa care oferă cea m ai bună potrivire. Astfel, putem defini câțiva pași generali urmăriți,
dar ale căror tehnici sunt particularizate pentru fiecare mod de abordare:
• Localizare zonă text
• Pre-procesare de imagine
• Segmentare caractere
• Extragere trăsături
• Clasificare
• Post-proces are text
În cele ce urmează, vom analiza fiecare pas al procesului pentru a defini rolul acestuia
și pentru a studia modurile de realizare în cazul vederii artificiale, r espectiv al inteligenței
artificiale. Se va observa că o dată cu aplicarea metodelor de învățare inteli gente, etapele
de localizare a textului, extragere a caracteristicilor și clasificare a simbolurilor vor căpăta
comportamentul unor cutii negre, cel puțin pentru utilizator.
Principiul unei cutii negre constă în faptul următor: la intro ducerea unui input, se obține
un output fără a fi știute operațiile aplicate pentru a se ajunge la rezultatul respectiv.
Analog este și modul de funcționare al rețelelor neuronale: pentru o intrare, se obține o
ieșire, dar fără a fi cunoscute proprietățile pe care le -a utili zat modelul pentru a clasifica
obiectul respectiv. Omul nu mai este cel care stabilește clasele de identificare sau

14 șabloanele căutate, totalitatea acestor caracteristici fiind determinate de către mașină a
priori.
Figura anterioară pr ezintă succesiunea e tapelor respectate în orice abordare a
problemel or de detecție de text. Se presupune că input -ul este sub forma unei imagini
digitală, în format RGB. La capătul opus, output -ul este reprezentat de textul returnat de
sistem, organizat în cuvinte și eventul pe baza poziției din imagine.
3.1 Localizare zonă text (Location segmentation)
Prima etapă, cea de găsire a zonelor cu text, este imperios necesară și necesită o atenție
sporită , întrucât trebuie să fie determinate cât mai exact regiuni le de interes din respectiva
imagine. În mod ideal, se urmărește localizarea fiecărui cuvânt în parte, pentru a reduce
riscul erorii de compunere a cuvintelor ce poate surveni la final. Majoritatea algoritmilor
OCR din comp uter vision transformă imaginea î n format grayscale (nuanțe de alb -negru –
gri) și identifică fiecare componentă independent prin următorii pași evidențiați în [ 3] :
• Descompunere pagină (Page decomposition)
o Constă în separare imagine în coloane, tabele, tit lu, text subsol, grafice
șamd;
o Tehnici utilizate: analiză automată pagini (pe baza spațieriilor),
machetă/șablon (ferestre prestabilite de selecție a zonei), ferestre
manuale (utilizatorul indică ce zonă îl interesează);
• Segmentare linie (Line segmentation )
o Se determină zone orizontale de pixeli cu o mulțime de pixeli albi și
care nu conțin niciun/aproape niciun pixel negru.
o Pot să survină o serie de erori cauzate de: caractere care se ating (un
caractecter descendent și unul ascendent) deoarece distanța î ntre linii
este redusă, rânduri s crise oblic („lineskew”), linii c are încep cu o
majusculă de dimensiune mai mare decât cea a liniei („drop letters”)
• Segmentare cuvânt (Word segmentation)
Fig. 1 Fluxul de pa și în problema OCR

15 o Se determină zone verticale de pixeli cu toți pixelii albi dintr -o linie.
Din momentul în care s -au introdus tehnici de machine learning în rândul abordăriilor
problemei O ptical Character Recognition, s -a renunțat la lucrul cu pixeli pentru partea de
segmentare în majoritatea cazurilor. Astfel, au apărut rețelele RPN (Region Proposal
Network) , descrise în [8], care generează o serie de propuneri de zone de obiecte (text în
cazul de față). Pe scurt, c a mod de funcționare, o rețe a de mici dimensiuni este translatată
peste o hartă de caracteristici convoluționale. La finalul unei astfel de proces obținem
coordonatele (x1, y1, x2, y2) ale tuturor cuvintelor detectate în imagine. În mod evident,
RPN trebuie pre -antrenată pe un set de date reprezentativ. Această rețea o să fie analizată
mai în detaliu în capitolul următor.
3.2 Pre-procesare (Pre -processing)
Partea de pre -procesare este comună ambelor abordări și are ca scop îmbunătățirea
calității unei imagini care poate conține divers e artefacte. În cazul în care acest pas este
sărit, defectele prezente pot conduce la rezultate slabe în procesul de recunoaștere . Această
etapă utilizează, aproape exclusiv, imagini de nivel gri (grey -level) întrucât realizarea
operațiilor pe imagini RGB, este mai costisitoare din punct de vedere computațional. De
asemenea, imaginile colore au, aproape fără excepție, fundal neunifo rm, fapt ce
îngreunează extragerea textului. De aceea, pentru a înlătura efectele negative produse pe
cât posibil , se optează p entru imagini binare care sunt mai ușor de gestionat. Alegerea
metodelor de pre -procesare ce trebuie folosite depinde de aplicați a în cauză și de factorii
care afectează calitatea, nefiind neapărat necesară executarea tuturor.
Așa cum este specificat și î n [18], în general, se aplica diverse operații matematice
asupra matric elor imagin ii sub forma unor filtre pentru a evidenția dif erențele între pixelii
caracterelor („pixeli importanti”) și pixelii fundalului („pixeli neimportanți”) și a red uce
estomparea. Astfel, se urmărește obținerea a cât mai multe detalii printr -un contrast cât mai
mare între cele două categorii de pixeli (core cție de contrast). De asemenea, se dorește
înlăturarea eventualului zgomot prezent sau a simbolurilor de waterma rk care pot afecta
pașii următori, în final obținându -se un fundal cât mai uniform. Acest fapt se realizează
prin filtrare (thresholding).
Fig. 2 Exemplu descopunere pagină, segmentare linie, segmentare cuvinte [13] , [34]

16 Altă opera ție ce poate fi executată, specificată și în [4], este netezirea caracterelor , mai
exact subțierea sau umpl erea acestora cu ajutorul unei ferestre ce se mută de -a lungul
matricii fotografiei (operații morfologice utilizate doar dacă prin tehnicile apl icate anterior
s-a schi mbat structura/abundența pixelilor). Prin umplere se elimină eventualele goluri sau
pauze ce apar în caractere, iar prin subțiere se reduce lățimea liniei. Totodată, se aplică o
normalizare prin următoarele tehnici: normalizarea încl inării, normalizarea mărimii sau
netezirea conturului cu scopul de a obține caractere de mărime și rotație uniforme.
Fiind o etapă crucială, pentru obținerea unor rate de identificare mari, este esențial ca
etapa de pre -procesare să fie cât mai eficient ă. Și cum algoritmi eficienți înseamnă sis teme
robuste, este cert faptul că se dorește îmbunătățirea preciziei imaginii, eliminarea
zgomotului, corecția textului oblic, segmentarea corecte a caracterelor, normal izarea
dimensiunii imaginii și prelucrarea morfologică. Se recomandă ca aceste filtre să nu fie
aplicate pe întreaga fotografie, ci pe zonele de interes identificate la primul pas, deoarece
fiecare zonă are nevoie de tratament individualizat. De exemplu, n u toate zonele sunt
afectate de zgomot sau nu toate zonele au același contrast sau luminozitate.
Toate aceste tehnici trebuie aplicate cu grijă pentru a nu produce un efect nedorit și a
pierde date importante prin distorsionarea caracterelor.
3.3 Segmenta re caractere (Segmentation)
Tehnicile de se gmentare influențează precizia rezultatelor unui astfel de algoritm
deoarece acestea sunt cele care identifică pagini, randuri, cuvinte și caractere în fotografii.
Cum au fost realizate deja o parte dintre acestea (fie prin tehnici clasice, fie prin rețele ),
rezultând cadrane de text ce reprezintă cuvinte, la acest pas, accentul cade strict pe izolarea
caracterelor (character segmentation). Deși au fost dezvoltate anumite metode, adevărul
este că se caută în contin uare o rezolvare eficientă a segmentării ca racterelor cursive.
Localizarea unui caracter este bazată pe segmentarea acestuia în elemente care
alcătuiesc un tot unitar. Această divizie în subcomponente este esențială, separarea în
diverse linii și curbe afe ctând direct rata de recunoaștere. La ora a ctuală, există totuși
câteva abordări pentr u realizarea acestei etape , descrise în [4] și anume:
• Segmentare explicită – fiecare segment este identificat pe baza trăsăturilor unui
caracter prin procesul de disecție al unei imagini ( disecția este procesul pr in
care o imagine este împărțită în segmente discrete înainte de a fi procesată).
Acest proces nu folosește informații despre forme sau diverse clase, ci, pentru
rezultate bune, trebuie să existe potriviri între p roprietățiile segmentelor
generale și cele ce alcătuiesc caractere valide. Dintre tehn icile valabile,
amintim: spațiul alb, analiza proiecțiilor verticale, analiza componentelor
conectate.
• Segmentare implicită – se caută în imagine componente care se aseam ănă cu
clasele prestabilite. Această metodă se bazează pe recunoaștere și pe
corectitu dinea semantică a rezultatului. În acest caz, se diferențiază două tipuri
de metode.
Inițial, vorbim de metode care se bazează pe un proces de căutare a unor
elemente car e să se potrivească cu cele preînvățate. Im aginea este tăiată în mai

17 multe bucăți care se suprapun, propuneri de segmente, pentru a se găsi cele cu o
potrivire mare. Segmentarea simbolurilor se face fără a utiliza algoritmi de
disecție și fără a se ține co nt de conținut.
A doua categorie de metode este reprezentată de tehnicile care segmentează
imaginea prin clasificarea subseturilor de trăsături spațiale. Aceasta se
realizează atât prin lanțuri ascunse Markov, cât și prin alte abordări non –
Markov și folos ește concepte precum: relaxare probabilisti că, regularitate,
singularitate și potrivir e înapoi.
• Strategie mixtă – sunt reunite cele două metode prezentate anterior, prin
aplicarea unui algoritm de disecție asupra imaginii caracterului. Scopul este de
a tăia în suficiente locuri pentru ca limitele c orecte de segmentare să fie incluse
printre reducerile efectuate, iar după aceea, sunt verificat e subseturile obținute.
Această strategie hibridă are rezultate mai bu ne decât cele individuale
prezentate anterior și, în general, este însoțită și de tehni ci de corecție.
3.4 Extragere trăsături (Feature Extraction)
A patra etapă, cea de extragere a caracteristicilor se ocupă cu găsirea celor mai
importante informații din tr-o imagine a unui text, informații ce vor fi relevante la pasul
următor. Mai exact, a ceasta presupune o analiză a fiecărui segment de text și o selecție a
caracteristicilor ce pot să fie folosite pentru a identifica unic acea porțiune. Extracția
caracter isticilor a fost desemnată printre cele mai grele probleme de pattern recognition. În
general, se aleg variante clasice ca: utilizarea imaginii raster sau extragerea trăsăturilor
care caracterizeaza simboluri și ignorarea trăsăturilor nerelevante.
În [4] sunt amintite cele mai cunoscute tehnici, dintre care numim: distribuția
punctelor, de zvoltare în serii și distribuții, analize structurale. Trăsăturile extrase sunt
evaluate din punct de vedere al sensibilității la zgomot, al deformării, al facilității d e
implementare și folosire. Astfel, ne raportăm la robustețe în caz de diverse transfor mări și
la performanțele din uz practic. A lte tehnici frecvent întâlnite sunt cele ce impun corelarea
șabloanelor.
Ceea ce este dificil la acest pas este faptul că detecția conturului caracterelor este greu
de generalizat, necesitând foarte multă ajustare fină (fine tuning). Orice modificare a
parametrilor poate rezolva anumite erori, dar cu uș urință poate provoca și al tele. Din
această cauză, tehnicile clasice de co mputer vision pot deveni nefezabile, în prezent fiind
aplicate doar în cazul problemelor si mple de OCR .
Fig. 3 Exemple segmentare caractere [23]

18 3.5 Clasificare (Classification/Recog nition)
Momentul cel mai important al acest ui proces este reprezentat de recunoașterea fiecărui
caracter și clasifi carea acestuia ca literă, cifră, semn de punctuație sau alt simbol. Plecând
de la afirmații le din [ 3], și în acest caz se disting două categorii de metode de clasificare ș i
anume:
• decizii teoretice – pe baza unor vectori de trăsături ce conțin descrierile
simbolurilor. Nu toate trăsăturile sunt ușor de catalogat, un exemplu fiind cele
ce provin din structura fizică a simbolului. Mai exact, atât litera „L”, cât și litera
„T” sunt for mate prin alăturarea a două linii, una verticală și una orizontală.
Relați a dintre acestea este cea care face posibilă distingerea caracterelor. Printre
abordările c lasificării se numără: clasificatori de distanță minimă, clasificatori
statistici și mai no u rețele neuronale
• metode structurale – pe baza unor metode sintactice
Așa cum am subliniat deja, inteligența artificială a intervenit la acest nivel și la nivelul
anterior (Capitolul 3.4) ș i a propus un al mod de realizare al acestor doi pași și anume
rețelele neuronale pre -antrenate. Astfel, pentru o eficiență crescută, extrag erea trăsăturilor
și clasificarea devin o singură cutie neagră ce dă un output la fiecare input primit.
Rețelele neurale reprezintă soluția optimă pentru clasificare robustă și recunoaștere de
modele cât mai ge nerale, astfel încât acestea reprezintă și abordarea aleasă în acestă
lucrare. În linii mari, acestea constau într -o serie de modele m atematice care descriu
proprietățile observate. Sunt, în general, prima opțiune în problemele de clasare, având
avantajul semnificativ de a fi invariabile la distorsiuni ale intrării și capabile de a învăța
foarte multă informație.
Dintr -un punct de vedere detaliat al structurii, acest proces de învățare se bazează pe
colecții de noduri interconectate [1], numiți neuroni arti ficiali între care se stabilesc
conexiuni, numite muchii, asemenea sinapselor, de aici și asocierea cu creierul uman.
Fiecare neuron p oate să primească un semnal, să il prelucreze și să îl transmită mai departe
printr -o conexiune către alt neuron. Acest se mnal, în cadrul algoritmilor de inteligență
artificială, este reprezentat de un număr real, calculat printr -o funcție neliniară aplica tă
Fig. 4 Structură general rețea neuronală

19 intrărilor. Fiecare element din rețea, fie nod sau muchie, este caracterizat de o pondere care
este ajustată la fiecare pas, în momentul antrenării și este un factor foarte important pentru
întreg procesul. Respectiva valoare poate să mărească sau să di minueze intensitatea unui
semnal și implicit a informației reprezentate de acesta. În general, neuronii sunt organizați
în straturi, fiecărui strat fiindu -i asignată câte o transformare.
Când numărul straturilor crește semnificativ , în cazuri excepționale ajungând chiar la
ordinul zecilor, putem vorbi de ceea ce se numește deep learning (învățare aprofundată). În
principiu, un număr ridicat de straturi poate să crească performanțele rețelei întrucât
aceasta poate să învețe mai multe trăsături pentru fiecar e clasă cunoscută, dar aceasta
eficiență este însoțită de un cost destul de important și anume necesitatea unei puteri mar i
de procesare și durata ridicată de antrenare a unui model.
Nodurile dintre două straturi pot să fie fully -connected (fiecare nod di ntr-un strat este
conectat la fiecare nod din stratul următor) sau pooling ( un grup de noduri dintr -un strat
este conectat la un singur nod din stratul următor). Există și un al treilea caz, în care
neuronii din același strat sunt conectați cu neuroni din straturile anterioare sau chiar între
ei, moment în care vorbim despre rețele recurente .
3.6 Post-procesare (Post -processing)
Toate aceste etape pot să fie urmate, opțional, și de câteva tehnici de post -procesare ce
au ca rol îndepărtarea eventualelor ero ri survenite anterior și corectarea acestora. Mai
exact, în general, se identifică simboluri individuale care nu c onțin suficientă informație pe
cont propriu, ci prin asocieri formează cuvinte sau numere. Această grupare se face pe baza
localizării în docu ment. Eventualele corecturi se bazează pe două tehnici și anume:
verificarea posibilității ca anumite caractere să apară împreună folosind diverse reguli de
sintaxă specifice unui anumit limbaj (de exemplu: în limba engleză, litera „h” nu va apărea
nicioda tă înainte de litera „k”) sau verificarea existenței cuvântului pe baza unui dicționar
(în cazul în care cuvântul nu este găsit, cuvântul returnat este cel mai similar din dicționar),
cea din urmă fiind cea mai eficientă metodă. Pe de altă parte, a doua me todă presupune
consum de timp și resurse. [3]
3.7 Probleme frecvente
În mod evident, indiferent de abordarea aleas ă, acest proces poate fi afectat de o
multitudine de probleme care să afecteze rezultatul. R ezultatele aplicării unui algoritm
destinat proble mei OCR este influențat de mai mulți factori specificați în [ 15], printre care:
• densitat ea textului (ex.:document e text vs. text din mediul înconjurător),
• organizarea textului (ex.: pe mai multe coloane, pe diagonală, pe verticală),
• fontul (ex.: Calibra , Monotype Corsive),
• tipul de caractere (ex.: caractere din alfabetul englez, japonez, român),
• artefactele prezente în imagine,
• localizarea textului (ex.: text poziționat în colț, text tăiat la jumătate).
De exemplu, o categorie de erori care pot să su rvină cu o probabilita te ridicată în cadrul
tuturor sistemelor OCR sunt cele cauzate de calitatea pozelor sau de scanarea defectuoasă.

20 Acestea determină extrageri de caracteristici necorespunzătoare, declanșând o serie de
neconcordanțe ce conduc la rezulta te slabe. Clasificarea eronată poate fi cauzată și de
folosirea unui sistem cu un design necuprinzător. Dacă setul de date folosit pentru
stabilirea șabloanelor fiecărei clase nu este destul de variat (insuficiente exemple/exemple
suficiente ca număr dar nu și ca diversitate a cazurilor) sau complexitatea modelului nu
este adecvată (model prea simplu sau din contră, prea complex pentru problema abordată),
apare fenomenul de overfitting.
Alte erori apar în partea de post -procesare și anume când simbolurile identificate
individu al sunt alăturate pentru a forma cuvinte. Nu rar se întâmplă ca grupările rezultate
să nu respecte adevaratele cuvinte, fapt cauzat de spațieriile identice dintre literele unui
cuvânt și dintre cuvinte. Astfel, este cert că partea de izolare a fiecărui si mbol rămâne o
etapă predispusă la probleme pentru toate sistemele existente . Având în vedere ca fiecare
sistem adoptă propria strategie pentru a îndeplini această funcție, este dificil de definit o
soluție general valabilă.
Alte pro bleme și obstacole întâmpinate în abordarea OCR, de care ne lovim și în cadrul
acestei lucrări, sunt: manevrarea unor seturi de date de dimensiuni uriașe comparativ cu
puterea de calcul disponibilă , confruntarea cu date incomple te, afectate de zgomot, care nu
respectă anumite standarde, fundal neuniform/complex, integrarea algoritmului ales cu
diverse tehnologii și dispozitive media. De asemenea, se pune problema scalabilității
tehnicilor software alese și a complexității timpulu i și a spațiului. Aceste asp ecte sunt
tratate prin reducerea datelor și a dimensiunii, prin partiționarea datelor.
Așa cum am menționat anterior, calitatea este cea care generează erorile, și, implicit, în
același timp cea care afectează performanța. Astfel încât, dacă am vorbit de spre problemele
care survin în sistemele OCR, trebuie să comparăm aceste categorii și din punct de vedere
al rezultatelor. Performanța este greu de definit și analizat dacă nu este găsit un substrat
comun, astfe l încât, se definesc trei indici în raport cu care pot să fie investigate acuratețea
și eficiența. Mai exact, acest indici sunt:
• rate de recunoaștere: reprezintă numărul de simboluri corect identificate din
totalitatea simbolurilor identificate într-o ima gine;
• rata de respingere: reprezintă numărul de simboluri pe care sistemul nu le
recunoaște din totalitatea simbolurilor prezente într -o imagine;
• rata de eroare: reprezintă numărul de simboluri greșit identificate din totalitatea
de simboluri identificate într-o imagine.
Fig. 5 Exemple imagini cu fu ndal neuniform [18]

21 Din punct de vedere al eficie nței costurilor, rata de eroare este considerată a fi cea mai
importantă în procesul de evaluare a sistemelor OCR întrucât timpul necesar pentru a
detecta și corecta erori este destul de mare. O valoare mare pen tru această rată poate
însemna performanțe ma i scăzute decât o rată de respingere mare (multe caractere
negăsite/nerecunoscute) sau o rată de recunoaștere mică (puține caractere identificate
corect). Cu toate că, de exemplu, rata de respingere nu joacă un rol atât de relevant, nu este
de ajuns să ne ocupăm exclusiv de rata de eroare. Astfel, în general există un compromis
între cele trei care definește o performanță cât mai ridicată.
3.8 Exemple algoritmi OCR
Acest subcapitol are rolul de a exemplifica câte va structuri diferite ale unor algoritmi
OCR ce înglobează IA -ul ca element esențial. Vom observa că există numeroase tehnici
descoperite, atât în sfera algoritmilor specializați, cât și a celor mai generali. Pentru mai
multe detalii se pot consulta lucrăr ile de specialitate [14], [19], [24], [35] .
Prin aplicarea îmbunătățirilor aduse de inteligența artificială menționate la nivel pașilor
3.1, 3. 4 și 3.5, am descris, în mare, algoritmii de deep learning standard. Mai exact,
algoritmii care îndeplinesc funcționalitatea OCR prin doi pași esențiali: d etectare cadra ne
cuvinte și recunoaștere de caractere individuale. În general se folosesc două rețele
neuronale pentru pașii respectivi, dar nu este o regulă. Există anumite limitări în cazul
pozelor cu text dens.
În continuare, vom descrie foarte succint doi astfel de algoritmi de localizare . Astfel,
menționăm:

• YOLO (You Only Look Once)
YOLO constă într -o singură rețea neurală ce p rezice printr -o singură evaluare casetele
de delimitare și probabilitățile asociate. În [19] este prezentat a cest tip de algo ritm ce
permite antrenarea de la un capăt la altul (end -to-end training) și conferă o precizie medie
ridicată.
Cele douăzeci și patru de straturi convoluționale inițiale sunt responsabile de extrasul
trăsăturilor din imagine, în timp ce ultimele două str aturi complet conectate prezic
probabilitățile de ieșire și coordonatele găsite.
Din punct de vedere al fu ncționării, sistemul divizează imaginea primită într -o grilă.
Dacă centrul unui obiect aparține grilei, acea celula grilă va fi cea care va detecta ob iectul,
estimând cadrane și scoruri de apartenență. Acest punctaj descrie cât de precise sunt
coordonatele cadranului și cât de sigur este pe clasa de obiect estimată. Matematic,
reprezintă intersecția dintre caseta găsită și cea reală ( Intersection of Uni on-IoU). Dacă
obiectul nu aparține celulei, acest scor ar trebui sa fie nul.
Datorită arhitecturii continu e, poate fi optimizat de la un capăt la altul pe baza
performanțelor de detectare. De asemenea, viteza a cestei metode este foarte mare,
procesând în t imp real 45 cadre/secunda. Pe de altă parte, viteza mare îl face predispus la
erori de localizare.

22 • SSD (Single Shot MultiBox Detector)
Algoritmul se abate puțin de la flow -ul standard, folosind o singură DNN pentru
discretizarea spațiului de cadrane de ieșire într -un set de căsuțe implicite de diferite
proporții. Așa cum es te menționat în [14], primele straturi convoluționale ale rețelei au un
design standard și servesc clasificării imaginilor de mare rezoluție și înaltă calitate. În
contrast, ultimele s traturi formează o structură auxiliară cu funcții multiple: servește la
detectarea obiectelor de dimensiuni variate, contribuie la realizarea de predicții pentru
detecție și la stabilirea unui set de casete.
În timpul antrenării, fiecare căsuță din aceas tă colecție de casete de delimitare va primi
câte un scor pentru fiecare categorie de obiect și va avea dimensiunile ajustate în funcție de
forma obiectului. Rețeaua combină predicții de la mai multe hărți de caracteristici cu
diferite rezoluții pentru o m ai bună gestiune a obiect elor de diverse mărimi. Finalul constă
într-o etapă de suprimare maximală. Ceea ce particularizează SSD este simplitatea sa
întrucât etapa de propuneri de regiuni este îndepărtată , folosindu -se valori implicite.
Antrenarea devine mai facilă, iar algoritmu l simplu de integrat în sistemele complexe ce
necesită o componentă de detectare.
Rezultatele obținute pe seturile de date standard confirmă faptul că SSD are o precizie
competitivă cu metodele care utilizează o etapă suplimentară de propunere de obiect, dar
este mult mai rapid.
Excluzând modelele standard, mai există o categorie de algoritmi și anume cei bazați
pe modele de deep learning specializat. Aceste metode au fost construite strict pentru text,
fiind un mod de abord are care comasează puncte le 3.3, 3.4, 3.5 într -unul singur. Mai exact,
dispare etapa de izolare a caracterelor și recunoașterea acestora, fiecare cuvânt fiind
Fig. 6 Arhitectură YOLO [19]
Fig. 7 Arhitectură SSD [14]

23 clasificat direct. Deși această abordare pare să fie mai facilă, există anumite limitări în ceea
ce privește setul de date care îi diminuează din performanță. Mai exact, acesta trebuie să
conțină o multitudine de cuvinte în diferite formate pentru ca modelul rezultat să aibă o
precizie bună . Se va putea observa prin a lgoritmii descriși varietatea de abordări . Pentru
detalii mai amănunțite, se pot studia articolele științifice aferente. Dintre aceștia, amintim :

• EAST (Efficient Accuracy Scene Text detector)
Conform [ 35], Acesta conține o rețea conectată complet (Fully Connected Network –
FCN) care, aș a cum am mențion at mai sus, produce direct predicții de cuvinte, eliminând
pașii intermediari înceți și redundanți ca: propunerile de candidați, despărțirea cuvintelor
sau formarea regiunilor de text.
Se apli că ulterior și o filtrare a fiecărei regiuni cu ajutorul tehnicii Non -Maximum
Suppression pentru a obține rezultatele finale sub formă de casete de text. Comparativ cu
alte metode existente specializate, acest algoritm prezintă o performanță îmbunătățită ș i un
timp de rulare mai mic, conform experime ntelor calitative și cantitative efectuate pe
seturile de date standard . De asemenea, se diferențiază prin robustețea sa.
• CRNN (Convolutional -recurrent neural network)
Pornind de la enunțurile prezentate în [ 24], din punct de vedere structural, CRNN este o
rețea hibridă alcătuită din trei părți: straturi convoluționale, straturi recurente și un strat de
transcripție.
Straturile convoluționale au rolul de a extrage o secvența de trăsături pentru fiecare
imagine d e intrare. Partea recurentă este responsabilă pentru a face predicții pentru fiecare
cadru al secvenței de trăsături. Ultimul strat este utilizat pentru a traduce predicțiile într -o
serie de etichete pentru cadranele identificate.
Fig. 8 Structură Fully Connected Network pentru EAST [35]

24 Arhitectura acestui algoritm este, de asemenea, antrenabilă de la un capăt la altul spre
deosebire de majoritatea algoritmilo r existenți ale căror componente sunt antrenate și
tunate separat . De asemenea, poate gestiona secvențe de lungimi arbitrare, fără să includă
segmentări de caractere sau chiar normalizări. Această ar hitectură nu are un lexic
prestabilit, obținând rezultate remarcabile atât în activiăți de recunoaștere a textului din
mediu l înconjurător fără lexic, cât și în bazele acestuia. Alt avantaj ar fi faptul că modelul
rezultat are dimensiuni mai mici, fiind ma i practic pentru aplicațiile din lumea reală.
Metodele prezentate anterior se concentrează în principal pe caractere printa te
transformate în text editabil. Acestea au rezultate și pentru caracterele scrise de mână, dar
mai slabe întrucât cea de -a doua ra mură presupune un nivel de dificultate mai ridicat.
Această lucrare are ca obiectiv studiu l detecției caracterelor tipărite din cauza limitărilor
impuse de setul de date. Astfel, subiectul principal este strict detecția textului sub formă de
caractere prin tate din imagini cu scene naturale , recunoașterea acestuia, iar în final
traducerea acestuia în diverse limbi.

Fig. 9 Arhitectură CRN N [24]

25 4. Descrierea metodelor de rezolvare propu se
Așa cum a fost evidențiat în capitolele anterioare, identificarea textului este o problemă
de actualitate care a fost privită de -a lungul timpului prin diverse perspective. La ora
actuală, este cert faptul că nu ex istă un sistem perfect de recunoaștere și chiar dacă
cercetătorii caută noi metode de reinventare a tehnologiei pentru a ajunge în ac el punct, nu
există rezultate concludente. Astfel, în această lucrare vom aborda această problematică cu
scopul de a studia modalitățile de procesare a imaginilor și a analiza cu scop didactic
abordările bazate pe tehnici de inteligență artificială ale une i probleme clasice de computer
vision.
Contextul în care integrăm detecția de text este aplicația Travel & Translate , o aplicație
destinată identificării informației scrise din mediul înconjurător, fie că este vorba de o
adresă de pe un panou, un afiș publicitar sau un nume de magazin. Rezultatul fotografierii
poate să fie ulterior folosit pentru a obține traduceri, pentru c ăutări cu ajutorul unui motor
de căutare pe Internet sau poate fi salvat pentru utilizări ulterioare. Pe lângă studiul
aprofundat a ceea ce înseamnă recunoaștere de text, prin această lucrare de diplomă se
dorește obținerea unui produs viabil minim (MVP) c are să ilustreze funcționalitățiile
dorite, urmând să fie îmbunătățit ulterior.
Acest capitol urmărește prezentarea elementelor principale și a metodelor de rezolvare
alese care împreună alcătuiesc această aplicație.
4.1 Vedere artificială
4.1.1 Reprezent area imaginii
În mod evident, într -o aplicație de computer vision, elementul central este imaginea.
Calitatea acesteia este un factor care influențează rezultatele oricărui sistem care conține o
componentă de procesare a fotografiilor, deci implicit și ale sistemului nostru OCR. Având
în vedere că imaginile intervin în mai multe puncte cheie ale aplicației noastre: atât în
momentul antrenării modelelor, cât și ca elemente inițiale în fluxul dezvoltat, se optează
pentru aplicarea de diverse transformă ri asupra imaginilor cu scopul de a le îmbunătăți
calitatea, ceea ce conduce implicit și la îmbunătățirea rezultatelor.
În cele ce urmează va fi realizată o scurtă prezentare a modului de gestiune a
imaginilor în cadrul sistemului de calcul, iar ul terior vor fi prezentate operațiile de pre –
procesare aplicate. Astfel, dacă ne raportăm la modul în care computerele „văd” și
„înțeleg” această componentă, o imagine este definită ca o funcție bidimensională:

𝑓:𝑍2→𝑍 𝑓(𝑥,𝑦)=𝑣

unde (x,y) = coordonate spațiale
v = culoarea în punctul respectiv.

26 Reprezentarea cea mai des întâlnită este cea sub formă de matrice unde fiecare intersecție
dintre o linie i și o coloană j este un pixel . Fiecare valoare din matrice este aferentă unui
punct d e coordonate (i,j) și reprezintă intensitate a imaginii în acel punct .
În general, o imagine color este formată prin combinarea unor imagini individuale. În
cazul spațiului de reprezentare al culorilor ales și anume RGB, pozele rezultă prin
alăturarea a trei imagini primare : roșu, verde și albastru. Acest sistem de cul ori se inspiră
de la modelul ochiului uman ce răspunde la lumina aflată în regiunea 380 -750 nm a
lungimii de undă cu ajutorul a trei tipuri de celule receptoare de culoare. Receptivitate a lor
maximă este la 420 nm (albastru), 540 nm (verde) și 570 nm (roș u). De asem enea, spațiul
RGB evidențiază principiul tricromaticii care afirmă că pentru orice densitate de energie
spectrală, oricât de complicată, este posibil să construim o altă densit ate de energie
spectrală alcătuită din trei culori astfel încât un om să nu sesizeze vreo diferență între ele.
De altfel, acest fapt a condus la faptul că majoritatea tehnicilor de procesare a imaginilor
monocromatice au fost extinse și la imaginile color prin procesarea individuală a celor trei
niveluri. [21]
În cadr ul algoritmilor utilizati, se vor utiliza și imagini în format grayscale. Pentru a
obține o imagine din format RGB în format grayscale, se realizează o operație de egalizare
a celor trei componente de culori. Aici, se alege medierea celor trei valori pentr u a obține
un ton de gri:
𝑅𝑔=𝐺𝑔=𝐵𝑔=𝑅𝑟𝑔𝑏+𝐺𝑟𝑔𝑏+𝐵𝑟𝑔𝑏
3

unde 𝑅𝑔 = componenta roșu în format grayscale;
𝐺𝑔 = componenta verde în format graysc ale;
𝐵𝑔 = componenta albastru în format grayscale;
𝑅𝑟𝑔𝑏 = componenta roșu în format RGB;
𝐺𝑟𝑔𝑏 = componenta verde în format RGB;
𝐵𝑟𝑔𝑏 = componenta albastru în format RGB;
În cazul în care imaginea este monocromă, intensitatea p oartă numele de nivel de gri (gray
level). O reprezentare pentru acest tip de imagine poate fi cea sub formă de histogramă Fig. 10 Spațiul d e culori RGB [9]

27 care pune accent pe intensitatea pixelului și nu pe relațiile spațiale. În cazul de față, se
alege totuși prima opțiune, sub formă de matrice.
4.1.2 Seturi de date
Înainte de a prezenta operațiile de pre -procesare utilizate, am considerat important
prezentarea seturilor de date utilizate pentru a exemplifica tipul de imagini asupra cărora se
vor aplica tehnicile următoare. Mai exact, pentru partea de detecție și recunoaștere de text
în imagini, am utilizat setul de date COCO -Text, iar pentru recunoaștere de caractere am
utilizat Chars74K. Ambele seturi de date sunt disponibile gratuit online.
• COCO -Text :
Acest set conține pest e 173.000 de adnotări de text în peste 64.000 de imagini.
COCO -Text însumează adnot ări pentru patru categorii de text și anume: text printat
lizibil, text printat ilizibil, text scris de mână lizibil și tex t de scris de mână ilizibil.
Fiecare imagine este însoțită de informa ții precum: nume fișier, coordonatele
căsuțelor de text (x, y, width, height), clasa cadranului (machine printed,
handwritten), tipul textului din cadran (legible, illegible). Având în ve dere că
scopul nostru este nu doar de a identifica textul din mediul înconjurător, ci și a
determina înțelesul acestuia, vom folosi doar imagini care conțin text printat lizibil.
Astfel setul de date folosit pentru antrenare, validare, respectiv testare cu prinde
doar 14.000 de imagini de acest tip. Acest set se bazează pe setul COCO Microsoft
creat inițial pentru detecția de obiecte din mediul înconjurător. Opțiunea pentru
această colecție de date se bazează pe faptul că imaginile din acest set nu au fost
colectate cu gândul la textul suprins, ci în funcț ie de alte obiecte, prezentând foarte
bine diverse situații din realitate în care apare textul în jur. Astfel, acesta este mai
puțin părtinitor decât alte seturi de date disponibile online, după cum se poat e
observa în figura 11.
Fig. 11 Exemple de text printat lizibil din setul de date COCO -Text [33]

28 • Chars 74K:
Acest set co nține imagini individuale cu toate caracterele limbii engleze. Mai exact,
în limba engleză se folosesc simbolurile latine a – z, respectiv A – Z (cu excepția
accentelor) și cifrele arabe 0 – 9. Setul de date conține 7.705 de imagini cu caractere
obținute d in imagini din mediul natural și 62.992 de imagini cu caractere sintetizate
din fonturi de calculator, având în total 70.697 imagini. Fiecar e imagine din set
conține o etichetă care indică clasa din care face parte.
4.1.3 Tehnici de pre -procesare alese
Modul în care prelucrăm aceste seturi de date ne poate conduce la performanțe mai
ridicate. Astfel, metodele de procesare a imaginilor sunt extrem de diversificate și
ofertante. Operațiile morfologice aplicate în această lucrare pentru imbunătățirea calității
unei poze și evidențierea trăsăturilor de interes sunt operații de nivel scăzut (atât intrarea
cât și ieșirea este o imagine) sau opera ții de nivel mediu (partiționare imagine în regiuni) .
• Tehnici de n ivel scăzut
Tehnicile de nivel scăzut o să fie prezentate în paralel cu elemente din teoria mulțim ilor
pentru a exemplifica mai clar cum este determinată valoarea unui pixel din imagine în
funcție de valorile veciniilor săi. Dintre aceste operații, cele mai importante sunt dilatarea
și erodare a.
(a) Dilatarea este operația care îngroașă contururile și imp licit, obiectele dintr -o
imagine. Modul de aplicare al acestui procedeu constă în translatarea unui
element structural pe tot domeniul imaginii. Prin element structural se înțelege o
grupare de pi xeli adiacenți de valoare 1 organizați într -o anumită formă – în
cazul nostru această formă este una de pătrat. La fiecare translație efectuată, se
verifică dacă elementul structural intersectează vreun pixel de valoare 1 în
imaginea originală. Dacă da, at unci pixelul corespunzător originii translației din
imaginea corespunzătoare va căpăta valoarea 1. În caz contrar, acesta ia
valoarea 0.

Fig. 12 Exemple de caractere din setul de date Chars 74k [32]

29 Din punct de vedere al teoriei mulțimilor, a șa cum este menționat în [ 9], putem
scrie dilatarea ca fiind:

𝐴 ⨁𝐵={𝑧|(ℬ)𝑧∩𝐴 ≠∅ }

unde A = imaginea originală;
B = elementul structural;
⨁ = operația de dilatare
ℬ = reflecția lui B
(ℬ)𝑧 = translația lui B cu z
(b) Erodarea este, în schimb, procesul invers al dilatării, cu ajutorul căruia se
subțiază contururi și obiecte. Procedeul de funcționare și proporțiile alese sunt
asemănătoare operației opuse, cu diferența că la fiecare transl ație, valoarea
corespunzatoare originii elementului structural din imaginea originală își va
păstra valoarea 1 doar dacă respectivul filtru nu intersectează niciun pixel de
valoarea 0. În caz contrar, pixelul ia valoarea 0.
Și această operație este expli cată în [ 9] și poate fi transpusă în teoria mulțimilor,
ca fiind:

𝐴 ⊖𝐵={𝑧|(𝐵)𝑧⊆ 𝐴𝑐 ≠∅ }

unde A = imagin ea originală;
Fig. 13 Exemplu de dilatare al unei imagini cu un element structural pătrat 3×3
Fig. 14 Exemplu de erodare al unei imagini cu un element structural pătrat 3×3

30 B = elementul structural;
⊖ = operația de erodare
(𝐵)𝑧 = translația lui B cu z
𝐴𝑐 = complementul lui A
(c) Operațiile logice la nivel de biți sunt utilizate asupra pixelilor din imagini
binare ca elemente ajutătoare în obținerea u nei imagini cât mai facil de „citit”.
Mai exact, scopul este reprezentat de o foto grafie cu text negru pe fundal alb și
cu cât mai puține pete (zgomot) în jur. Astfel, în funcție de raportul dintre
pixelii închiși la culoare și cei deschiși la culoare din imagine, se execută sau nu
o operație de „NOT” logic (NEGARE logică). Daca numărul de pixeli negri
este mai mare decât jumătate din numarul de pixeli total din fotografie, atunci
valoarea fiecărui pixel este negată din 0 în 1, respectiv din 1 în 0. Altă op erație
logică la nivel de bit utilizată este „AND” logic (ȘI logic), operație folo sită în
momentul aplicării thresholding pentru filtrare.
• Tehnici de nivel mediu – Segmentare
Dintre tehnicile de nivel mediu, cea mai importantă metodă, fiind și cea u tilizată în
aplicația în cauză, este segmentarea. Segmentarea se bazează pe discon tinuitate și se
realizează pe baza schimbăriilor bruște de intensitate și implicit prin detectarea muchiilor.
Am considerat că marginile identificate delimitează caractere d e interes din imagine. Este
necesar să menționăm faptul că segmentarea devine o s arcină foarte dificilă în momentul
în care nu ai nicio informație despre imaginile primite. Acesta este și cazul de față
întrucât vom aplica segmentarea în momentul în care am identificat un cuvânt pe care
urmează să îl separăm în caractere. Imaginile car e vor fi primite de către aplicație, pot
avea orice orientare, orice calitate, orice formă, nu au un standard pe care să îl respecte.
În această lucrare , segmentarea se reali zează prin aplicarea unui threshol d, urmat de
identificarea contururilor. Acesta presupune urmărirea a trei pași simpli:
1. Netezirea imaginii cu un filtru Gaussian
Această transformare de nivel scăzut este executată atât în cadrul segmentării cât și
individu al și are scopul de a elimina zgomotul și detaliile suplimen tare care pot
conduce la rezultate confuze. Mai exact, ne dorim ca imagine să fie cât mai simplă
pentru ca detectarea muchiilor să fie cât mai precisă. În acest scop, se opteză pentru un
filtru Ga uss care se aplică prin operația de convoluție cu un nucleu de convoluție [21]:

𝑓𝑠(𝑥,𝑦)=𝐺(𝑥,𝑦)∗𝑓(𝑥,𝑦)
Fig. 15 Exemplu aplicare „NOT” logic asupra unei imagini

31 𝐺(𝑥,𝑦)= 1
2𝜋𝜎2 𝑒𝑥2 + 𝑦2
2𝜎2

unde f (x,y) = imaginea originală
𝑓𝑠(𝑥,𝑦) = imaginea rezultată
∗ = operația de convoluție
G(x,y) = filtru Gaussian
𝜎 = deviația standard
Acest filtru trebuie să aibă o dimensiune corespunzătoare pentru a elimina în mod
corect zgomotul – am ales 5×5 . Modul de aplicare este unul simplu și anume: un pixel
capătă valoa rea rezultată în urma calculării unei medii ponderate a vecinilor săi.

2. Aplicare thresholding
Acest pas presupune setarea unei limit e în intervalul (0,255) pentru clasificarea
pixelilor în fundal sau prim -plan. Relația aplicată pentru transform area dintr -o imagine
grayscale într -una binară este următoarea :
𝑏𝑖𝑛𝑎𝑟 ă(𝑥,𝑦)={1,𝑑𝑎𝑐ă 𝑔𝑟𝑎𝑦𝑠𝑐𝑎𝑙𝑒 (𝑥,𝑦) > 𝑙𝑖𝑚𝑖𝑡 ă
0,𝑎𝑙𝑡𝑓𝑒𝑙
Problema dificilă a fost alegerea valorii de threshold astfel încât acest pas să se
realizeze corect pentru o varietate cât mai largă de imagini. Prima încercare și cea mai
simplă de altfel a fost alegerea unei valori limită statice. În mod evident, este dificil,
dacă nu chiar imposibil alegerea unei valori general valabile , astfel încât această
abordarea nu a fost viabilă . Aceeași limită putea să aibă pentru imagini diferite
rezultate foarte bune sau rezultate foarte slabe, cu foarte mult zgomot sau cu pierdere
de detalii importante . A doua soluție încercată a fost stabilir ea unui threshold în mod
dinamic, în funcție de media valorilor pixelilor din fiecare imagine. Rezultatele au fost
vizibil îmbunătățite, majoritatea zgomotului fiind înlăturat. Pentru acest pas, s -a utiliza t
algoritmul lui Otsu care determină valoarea limi tă optimă pentru o imagine în mod
automat prin minimizarea variației de intensitate într -o clasă.
Metoda Otsu a fost cea aleasă în final, dar trebuie menționat faptul că performanțele nu
sunt la fel de bune dacă histograma imaginii nu este bimodală (grafic ul are două
vârfuri). Astfel, dacă de exemplu, zona prim -plan este foarte mică în comparație cu
zona de fundal , atunci segmentarea este incorect realizată.

Fig. 16 Determinare valoare threshold static vs dinamic (Otsu)

32 3. Identificare contururi
Un contur este o curb ă închisă obținută pe baza marginilor și face referire la silueta
unui caracter. Acest pas s e realizează pe baza algoritmului lui Suzuki și Abe, descris
amănunțit în [ 29]. În linii mari, imaginea este scanată din colțul superior stâng până în
cel inferior drept până se găsesc pixeli negri ai obiectului. Pe ba za unor criterii
prestabilite, se deci de dacă este vorba de un contur exterior sau de o gaură din interior
și se urmărește marginea. La final rezulta o listă de contururi peste care am aplicat o
etapă suplimentară de filtrare. Criteriile aplicate sunt urmă toarele: raportul de aspect ,
raportul dintre numărul pixelilor negri, respectiv albi și suprafața pe care o reprezintă
din imagine a cuvântului . Astfel, se încearcă asigurarea extragerii cât mai precise a
caracterelor de interes și nu a altor elemente din fundal. Valorile aflate la extreme sun t
înlăturate.
4.2 Inteligență artificială
Acest subcapitol reunește alegerile făcute în ceea ce privește modul de realizare a
detecției și identificării. Așa cum am menționat în capitolele anterioare, o abordare m ai
nouă în recunoașterea textului din poze se bazează pe modele de rețele neuronale. Acestea
preiau sarcina de a extrage așa -numitele trăsături deep ale unei imagini prin învățarea de
filtre ce se activează la diverși stimuli vizuali (texturi, unghiuri, co lțuri, o zonă de culoare),
trăsături p e baza cărora se realizează clasificări [21].
Rețelele convoluționale pentru această lucrare oferă câteva avantaje: țin cont de
relațiile spațiale dintre pixeli (pixeli vecini vs pixeli îndepărtați) și presupun un număr
redus de parametri la antren are, spre deosebire de rețelele complet conecta te. Conform
[17], arhitecturile unor astfel de rețele se bazează pe unul sau mai multe straturi
convoluționale, straturi de activare ReLU, straturi de pooling și la final straturi fully
connected. Dintre toate acestea, cel convoluțional este cel mai import ant, conținând un
număr de filtre ce pot fi învățate. Aceste filtre au o lățime, respectiv înălțime mult mai
mică decât cea a imaginii de intrare (F << height, F << width). Din punct de vedere al
funcționării, straturile convoluționale realizează produsul dintre filtrele de dimensiune FxF
și fiecare fereastră din imagine de dimensiune egală cu cea a filtrului și aflată la o distanță
de S (stride) față de fereastra anterioară. Ieșirea este reprezentată de un set de hărți
bidimensionale de activare, corespunz atoare fiecărui filtru.
Stratul de pooling are rolul de a reduce numărul parametrilor din rețea și automat și
numărul calculelor necesare antrenării rețelei. Acesta se inserează de regulă între straturi
convoluționale succesive. În funcție de tipul de pooling realizat, păstrează maximul,
respectiv media valorilor pentru fiecare fereastră. În general, se optează pentru un strat de
max-pooling cu F = 2, respectiv S = 2, ce înjumătățește fiecare felie de ad âncime de -a
lungul lățimii și înălțimii, îndepă rtând până la ¾ dintre activări. Deși este demonstrat că
valori mici pentru hiperparametrii F și S determină performanțe mai bune, trebuie să se
țină cont și de memoria disponibilă, întrucât valori mici pentr u S și F determină un volum
mare de date de int rare, respectiv ieșire pentru fiecare strat.
În continuare, vor fi detaliate cele două rețele ce au fost antrenate pentru această
aplicație .

33 4.2.1 Faster R -CNN
Pentru acest pas s -a implementat o rețea pe ntru detecția și recunoașterea cadranelor de
text ce delimitează cuvinte. Aceasta urmărește arhitectura complexă Faster R -CNN, fiind
urmașul lui Fast R -CNN. În general, este utilizată pentru detecția de obiecte în imagini
color, dar în această lucrare, i -am extins funcționalitatea la de tecția de text prin antrenarea
cu imagini corespunzătoare. În linii mari, această rețea primește o imagine și returnează o
listă de căsuțe de delimitare, etichete și probabilități atribuite fiecărei casete. În continuare,
vom descrie modul de obținere al a cestor informații , preluat din [ 20], precum și parametri
de reglare aleși.
Sistemul de detecție Faster R -CNN este compus de fapt din două module și anume: o
rețea deep convoluționară care propune regiuni (RPN) și un detecto r care utilizează
regiunile propuse, clasificându -le (Fast R -CNN). Având în vedere că scopul primei rețele
este de a furniza informații pentru cea de -a doua componentă, s -a decis ca ambele elemente
să împărtășească un set comun de straturi convol uționale ( CNN).
Pentru zona comună, am ales arhitectura VGG -16, propusă de către Simonyan și
Zisserman [ 36]. Ceea ce ne interesează din topologia VGG -16 sunt primele 13 straturi
convoluționale și 4 straturi de pooling. Plecând de la premiza că fiecare str at convolu țional
contribuie la învățarea unor trăsături, vom utiliza ieșirea ultimului strat de acest tip pentru
extragerea de informații. Harta caracteristicilor rezultate are o dimensiune mult mai mică
decât imaginea de la bază datorită straturilor de po oling apli cate între cele convoluționale,
dar o adâncime mai mare ca urmare a numărului de filtre pe care acestea le învață.
Ceea ce propune diferit această rețea față de toți predecesorii săi este modul de
determinare a cadranelor ce delimiteaza obiectul identific at.
• RPN (Region Proposal Network) , este o rețea care propun e o serie de regiuni ,
pornind de la harta caracteristicilor de ieșire . Pe lângă straturile preluate din VGG,
RPN mai adaugă trei straturi convoluționale: un strat comun cu 512 canale și nucleu
3×3 și două straturi paralele cu nucleu 1×1 și număr de canale 9, respectiv 36 pentru
clasificare și regresie a cutiei.
Cea mai difi cilă problemă în momentul în care utilizăm tehnici de învățare
aprofundată pentru detecție, este definirea acestor liste de ca drane de lungimi
variabile. Această problemă este rezolvată prin intermediul ancorelor. O ancoră Fig. 17 Arhitectură rețea Faster R -CNN

34 reprezintă un cadran de delimitar e fix, de diverse di mensiuni și rapoarte de aspect
(lățime/înălțime). Acestea sunt folosite pe post de cadrane de referință
(𝑥𝑟𝑒𝑓,𝑦𝑟𝑒𝑓,𝑤𝑟𝑒𝑓,ℎ𝑟𝑒𝑓) pentru a determina un prim set de căsuțe de delimitare. Mai
exact, se prezic offset -uri (Δ𝑥𝑟𝑒𝑓,Δ𝑦𝑟𝑒𝑓,Δ𝑤𝑟𝑒𝑓,Δℎ𝑟𝑒𝑓) fața de acestea pentru a
încadra mai bine, pe baza lor obținându -se coordonatele finale.
Ancorele sunt definite pe baza hărții de caracteristici, de aceea definim un set de
ancore pentru fiecare punct din aceasta. Dim ensiunile hărții vor fi mai mici decât
dimensiunile imaginii inițiale cu un raport de eșantionare, r :

𝑟= 𝑤𝑖𝑑𝑡 ℎ𝑖𝑚𝑎𝑔𝑒
𝑤𝑖𝑑𝑡 ℎ𝑚𝑎𝑝=ℎ𝑒𝑖𝑔ℎ𝑡𝑖𝑚𝑎𝑔𝑒
ℎ𝑒𝑖𝑔ℎ𝑡𝑚𝑎𝑝

Astfel, un set de ancore definite în cadrul hărții este echivalent cu un set de ancore
pentru imaginea originală distanțiante la r pixeli.
Pentru fieca re ancoră, încercăm să determinăm dacă aceasta conține un text
relevant și dacă am putea ajusta anc ora pentru a încadra mai bine. Setul de ancore ales
în final este [128px, 256px, 512px], iar setul de rapoarte de aspect este [1, 0.7, 1.4].
Folosind toate c ombinațiile posibile de mărimi și raporturi pentru fiecare punct, RPN
produce setul de propuneri pr in cele două ieșiri ale sale: probabilitatea ca o ancoră să
delimiteze text și deviațiile casetei de limitare. Prima ieșire e utilizată pentru o primă
filtrare a predicțiilor, iar a doua pentru reglarea casetelor.
În cazul în care există propuneri c are se suprapun, se aplică algoritmul de supresie
non-maximală (NMS). Pentru asta, definim intersecția peste uniune IoU ca fiind:
Fig. 18 Centrele ancorelor pe ntru imaginea originală

35
𝐼𝑜𝑈 = 𝑎𝑟𝑖𝑎 𝑖𝑛𝑡𝑒𝑟𝑠𝑒𝑐 ț𝑖𝑒𝑖 𝑑𝑖𝑛𝑡𝑟𝑒 𝑐𝑎𝑑𝑟𝑎𝑛𝑢𝑙 𝑟𝑒𝑎𝑙 ș𝑖 𝑐𝑒𝑙 𝑝𝑟𝑒𝑧𝑖𝑠
𝑎𝑟𝑖𝑎 𝑢𝑛𝑖𝑢𝑛𝑖𝑖 𝑑𝑖𝑛𝑡𝑟𝑒 𝑐𝑎𝑑𝑟𝑎𝑛𝑢𝑙 𝑟𝑒𝑎𝑙 ș𝑖 𝑐𝑒𝑙 𝑝𝑟𝑒𝑧𝑖𝑠
NMS înlocuiește propunerile care au raportul IoU mai mare decât un prag predefinit,
0.5, cu propunerea cu cel mai mare scor dintre cele care se intersectează.
În momentul antrenării, se iau ancorele și se pun în două categorii: cele care se
suprapun peste text cu o intersecție de uniune IoU > 0.5, fiind considerate în prim
plan/pozitive și cele care nu se suprapun peste text sau au IoU < 0.1, fiind considerate
fundal/negative. Celelalte ancore nu contribuie la antrenare. Organizăm aceste ancore
astfel încât să obținem un minibatch de 256 de imagini, echilibrat între cele două
categorii. RPN folosește toate ancorele din minibatch pentru a calcula pierderea
clasif icării folosind entropie încrucișată binară (entropie încrucișată categorică pentru
cazul particular în care numărul de clase învățate este egal cu 2) și ancorele marcate ca
prim -plan pentru pierderea de regresie. Pierderea totală pentru RPN este determina tă
prin:
L({𝑝𝑖},{𝑡𝑖}) = ∑𝐿𝑐𝑙𝑠
𝑖(𝑝𝑖,𝑝𝑖∗ ) + ∑𝑝𝑖∗ 𝐿𝑟𝑒𝑔
𝑖(𝑡𝑖,𝑡𝑖∗ )

𝐿𝑐𝑙𝑠(𝑝𝑖,𝑝𝑖∗ ) = − ∑(𝑝𝑖∗ ∗log(𝑝𝑖)
𝑖)

𝐿𝑟𝑒𝑔({𝑡𝑖},{𝑡𝑖∗ })= ∑ 𝑠𝑚𝑜𝑜𝑡 ℎ𝐿1
𝑖 ∊{𝑥,𝑦,𝑤,ℎ}(𝑡𝑖− 𝑡𝑖∗ )

unde 𝑠𝑚𝑜𝑜𝑡 ℎ𝐿1(x )= {0.5∗ 𝑥2,𝑑𝑎𝑐𝑎 |𝑥|<1
|𝑥|=0.5,𝑎𝑙𝑡𝑓𝑒𝑙

unde i = index ancoră din minibatch
𝑝𝑖 = probabilitatea ca ancora i să fie text
𝑝𝑖∗ = probabilitatea adevărată pentru ancora i: 1 (ancoră pozitivă) sau
0(altfel)
Fig. 19 Exemplificare IoU

36 𝑡𝑖 = vector parametrizat cu cele 4 coordonate prezise
𝑡𝑖∗ = vector cu cele 4 coordonate reale (pentru 𝑝𝑖∗ = 1 )
În acest moment, avem o listă de coordonate care definesc zone de text de interes
din imaginea originală. Pe baza acestora și a caracteris ticilor extrase din CNN, se
aplica algoritmul ROI (Region of Interest) pentru a extrage cara cteristicile relevante
pentru ceea ce se caută. Mai exact, se extrage din harta de trăsături inițială o mini hartă
aferentă fiecărei zone propuse care va fi redim ensionată la o dimensiune fixă 7 x 7 x
𝐷𝑐𝑜𝑛𝑣 folosind interpolare.
• Acesta este punc tul în care intervine a două componentă a arhitecturii, R-CNN , care
folosește aceste zone pentru atingerea a două obiective: clasificarea propunerilor în
text/fundal pentru eliminarea variantelor ce nu conțin text și ajustarea casetelor de
delimitare pentr u propunere. R-CNN preia harta caracteristicilor pentru fieca re
propunere, o aplatizează și folosește două straturi complet conectate de dimensiuni
4096 cu activare ReLU. Apoi, prezintă două straturi complet diferite de tip fully
connected pentru fiecare i eșire. Stratul pentru clasificare are 2 unităti (valoare dată de
numărul de clase: text și fundal), iar cel pentru obținerea offset -ului are 8 unități
((Δ𝑥𝑟𝑒𝑓,Δ𝑦𝑟𝑒𝑓,Δ𝑤𝑟𝑒𝑓,Δℎ𝑟𝑒𝑓) pentru fiecare din cele 2 clase).
Se reia același r aționament bazat pe raportul IoU și se construiește un minibatch de
64 de imagini cu 16 imagini prim -plan și 48 fundal. De data asta sunt păstrate cele cu
valoare mai mare de 0.5, cele cu o valoare mai mică le catalogăm ca fundal și le
ignorăm pe cele făr ă nicio intersecție. Ca în cazul RPN , se aplică același procedeu și
acele ași formule pentru calculul pierderii totale.
Pentru antrenare, s -a abordat instruire comună de la un capăt la altul. Rețelele RPN
și R-CNN au fost antrenate în paralel, terminând cu suma celor 4 pierderi diferite,
două pentru RPN și două pentru R -CNN. Av ând în vedere că rețeaua de bază a fost
antrenată pentru detecția de obiecte și nu de text, aceasta a fost inițializată cu niste
valori preantrenate pe setul de date ImageNet și reant renată. Optimizatorul utilizat
este Adam, iar rata de învățare are valoar ea 1e -5.
4.2.2 CNN
Odată obținut e regiuni le de text ce delimitează cuvinte, se prelucrează imaginile așa
cum am menționat anterior, cu scopul de a le îmbunătăți calitatea pentru a fa ce extragerea
contururilor mai facilă. Pentru recunoașterea caracterelor dintr -un cuvânt se folosește în
schimb o rețea convoluțională (CNN) cu o arhitectură asemănătoare VGG -16.
Mai exact, arhitectura pe care o propunem, are un strat de input, urmat de 6 straturi
convoluționale, unele cu activare ReLU (Rectified Linear Unit) intercalate cu 3 straturi de
max-pooling. Alegerea straturilor cu activare ReLu conduce la un timp de antrenare mai
mic. La final, sunt utilizate 2 straturi fully conected intercalate cu 2 straturi de activa re
ReLU și 2 straturi dropout. Straturile de tip dropout sunt utilizate pentru a evita fenomenul
de „overfitting” întruc ât prin utilizarea lor, o parte din ponderile unui strat fully connected
au fost ignorate. La final, avem un str at de activare softmax care atribuie imaginii input,
conform trăsăturilor extrase cu ajutorul straturilor anterioare, câte o probabilitate de
apartenență la fiecare dintre cele 62 de clase.

37 Pentru antrenare s -a utilizat un optimizator de tip gradient d escendent stocastic de tip
batch (SGD/ Stochastic Gradient Descendent), cu o rată de învățare de 0.003, momentul de
0.9 și „weight decay” de 1e -4. Pierderea calculată este de tip entropie încrucișată
categorica (categorica crossentropy), determinându -se cu aceeași formulă pr ezentată
anterior.
În cadrul antrenării ambelor rețele, am divizat setul de date disponibil într -o mulțime de
antrenare (60%), o mulțime de validare (20%) și o mulțime de testare (20%). Rezultatele
obținute sunt redate în cele ce urmează . Pentru etapa de l ocalizare, s-a încercat antren area
cu două seturi de ancore de dimensiuni diferite , rezultatele fiind:

Table 1 Rezultate modele localizare text

Faster R -CNN
AR=[1, 0.7, 1.4]
S=[128px,256px,512 px] AR = [1, 0 .7, 1.41, 2.8]
S=[64px,128px,256px,512px,1024px]
Antrenare Pierdere 1.573 1.127
Acuratețe 80.55% 77.52%
Validare Pierdere 1.669 1.205
Acuratețe 77.39% 76.55%
Testare Pierdere 1.715 1.271
Acuratețe 77.95% 73.92% Fig. 20 Arhitectura CNN

38 unde AR = raport de aspect ancoră;
S = dimensiune latură ancoră;
Deși se poate observa o pierdere mai mică în cazul al doilea în care ancorele sunt de
dimensiuni mai diverse , adică valorile coordonatelor cadranelor obținute sunt mai
apropiate de cele setate ca scop, acu ratețea este puțin mai scăzută decât în primul caz. De
asemenea, mai multe ancore de verificat înseamnă timp mai ridicat necesar localizării.
Astfel, având în vedere faptul că rezultatele în cel de -al doilea caz nu au prezentat valori
mult mai bune , s-a optat pentru variant a cu un timp mai scăzut de rulare.
Modelele utilizate în continuare în aplicație sunt cele rezumate în următorul tabel:

Table 2 Rezultate modele finale

Rețea Antrenare Validare Testare
Pierdere Acuratețe Pierdere Acuratețe Pierdere Acuratețe
Faster R –
CNN 1.573 80.55% 1.669 77.39 % 1.715 77.95%
CNN 0.0181 98.81 % 0.991 88.39 % 1.076 87.29 %

39 5. Documentație tehnică
Aplicația software mobilă Travel & Translate își propune să își ajute utilizatorii să
înțeleagă informația ce îi înconjoară din p unct de vedere vizual, prin încărca rea în aplicație
a unei fotografii cu text. În plus, nu doar că poate afla ce scrie într -o imagine, dar
utilizatorul se află la un buton dist anță de o traducere a textului, de un apel la un motor de
căutare, de copiere a textului pentru folosirea ulterioară. Mai mult decât atât, se urmărește
integrarea a diverse tehnologii actuale într -o aplicație care are capacitatea de a ajuta
oamenii să comu nice în călătoriilor lor, contribuind la r educerea barierei lingvistice.
Din punct de vedere al arhitecturii , aplicația are la bază un model de tip client -server.
Modul de funcționare al unui astfel de model este următorul: serverul se află într -o stare de
așteptare permanentă, iar clientul iniția ză sesiuni de comunicare pentru a permite partajarea
de resurse de la furnizor. Severul poate respinge sau accepta această conexiune . În cazul în
care acesta acceptă procesul solicitat, urmează livrarea pachetelor de date cerute înapoi
clientului.
Din pun ctul de vedere al comunicației efective ce are loc între cele două instanțe,
aceasta se realizează prin schimburi de mesaje de tip request -response. Mai exact, clientul
cunoaște adresa IP a serverului web, către care trimite o solicitare HTTP, în cazul no stru,
respectiva cerere fiind prelucrarea unei fotografii. Serverul primește această solicitare su b
formă de imagine, o procesează și trimite înapoi un răspuns ce constă în textul identificat,
precum și o nouă imagine cu cadranele identificate. Aceste rezu ltate sunt trimise în format
JSON și parsate pentru extragerea datelor de interes.
Cele două componente ale modelului sunt:
– Clientul reprezentat de aplicația Android mobilă propriu -zisă: constituie
componenta cu care utilizatorul interacționează în mod dir ect și care solicită resurse
de la furnizorul de servicii;
– Server ul web reprezentat de un calculator local : constituie componenta care
recepționează cererile trimise de aplicația mobilă, realizează computațiile necesare
procesării imagini și trimite înap oi un raspuns cu informația extrasă .
Fig. 21 Arhitectură aplicație

40 Am ales această structu ră a aplicației datorită avantajelor oferite, dintre care cel mai
important este eficiența din punct de vedere al timpului și al costului. Mai exact, operațiile
consumatoare de resurse materiale și temporale vor fi astfel executate de mașinăria mai
puterni că, calculatorul, pentru a avea un timp minim de funcționare. De asemenea, alt
beneficiu important este faptul că funcționalitățiile serverului, respectiv clientului nu
depind unele de altele, pu tând să fie modificate separat.
5.1 Aplicația mobilă
Aplicați a mobilă Travel & Translate a fost realizată cu ajutorul mediului de dezvoltare
Android Studio. Acesta oferă suport tehnic atât pentru partea de front -end a unei aplicații,
cât și pentru back -end. Combinația acestor două elemente a permi s dezvoltarea unui
software complex destinat telefoanelor mobile, accesibil utilizatorului printr -o interfață
grafică intuitivă .
Interfatața cu utilizatorul s -a construit cu ajutorul Android Studio Layout Editor c a o
ierarhie de layout -uri și widget -uri prin scrierea de fișiere XML (Extensible Markup
Language) ce conțin descrierea acestor componente. Funcționalitățiile elementelor grafice
se realizează prin utilizarea unor limbaje de programare de nivel înalt precu m Java sau
Kotlin. În cazul de față, am opt at pentru Java, fiind un limbaj variat cu foarte multe resurse.
Astfel, aplicația mobilă are sarcina de a colecționa toată informația primită de la utilizator
referitoare la imagine prin componentele din interfață și a o trimite către server. După ce
prime ște un răspuns de la furnizor, aplicația Android continuă să fie o punte cu utilizatorul,
oferindu -i câteva opțiuni de gestionare a textului afișat implementate cu suportul
bibliotecilor specifice Android sau prin API-uri. Mai exact, funcționalitățiile asi gurate de
aplicața mobilă sunt: încărcare imagine, afișare imagine rezultat, afișare text, traducere
text, copiere text, căutare pe Internet text rezultat.
Pentru funcționalitate a de traducere , s-a utilizat servi ciul cloud IBM Watson™
Language Translator care permite tradu cerea textului din tr-o limbă în alta . Acesta oferă
mai multe modele de traducere furnizate de IBM care pot să fie personaliza te pe baza
terminologiei și a limbajului . Am utilizat de asemenea IBM Cloud Identity and Access
Management (IAM) ca metod ă de autentificare la API -ul serviciului de traducere pe baza
cheii API (apikey) generate la crearea instanței de serviciu. Pentru fiecare cerere de
traducere, se setează textul ce urmează a fi tradus, lim ba sursă și limba destinație, după
care est e trimis un request de tip POST către API -ul serviciului. Dacă limba sursă nu este
specificată, serviciul încearcă să o detecteze. În cazul nostru, aceasta va fi mereu limba
engleză. Pentru aplica ția Travel & Tran slate am selectat o listă de 14 limbi țintă din care
utilizatorul poate s ă aleag ă pentru a traduce textul de interes și anume: araba, bulgară,
cehă, daneză, olandeză, francez ă, german ă, greacă, japoneză, maghiar ă, română,
portugheză, spaniolă și turcă. Rezultatul primit este în format J SON , aplicația Android
interpretându -l și afișându -l.

41 5.2 Serverul web
Rolul de server web este jucat în cazul de față de un laptop cu procesore core i7 și placă
video Nvidia Geforce care execută toate operațiile cu matrici d e mari dimensiuni necesare
prelucrăr ii imaginilor. Așa cum a fost menționat în descrierea modelului client -server, cel
din urmă se află într -o stare continuă de așteptare. În momentul în care a primit o solicitare
de conexiune și prelucrare a unei imagini de la client pe baza adresei sale IP , acesta va rula
un script care este responsabil de întregul set de operații aplicat imaginii.
Limbajul de programate utilizat pentru crearea scriptului este Python, un limbaj de
nivel înalt însoțit de o bibliotecă ma re și robustă de module ce se mulează pe diverse
necesități precum : suportul pentru operații cu matrici sau operații cu string -uri, s uportul
pentru aplicații web sau lucrul cu Internet Protocol. Mai mult decât atât, pe lângă aceste
ustensilele disponibile , Python oferă acces și suport de integrare a numeroase framework –
uri open -source. De altfel, acesta este și principalul motiv pentru care l -am ales și anume
interoperabilitatea cu Tensorflow, un framework destinat integrării inteligenței artificiale în
programe. Așadar, acesta are suport pentru machine learning și deep learning, oferind
posibilitatea construirii, antrenării și utilizări i de modele de rețele neuronale cu ajutorul
API-ului de nivel înalt Keras. Este în general utilizat în probleme de clasifi care, percepție,
înțelegere, descoperire, predicție și creare. În cadrul acestei lucrări de diplome, a fost
utilizat pentru antrenarea modelelor a priori și pentru predicția în timp real din aplicația
finală.
Pentru a explica etapele parcurse în scriptul proiectat, vom alege imagine a din figura 22
pe care vor fi exemplificate o parte dintre cele mai importante operații realizate. Astfel ,
presupunem ca un utilizator a trimis către server un mesaj de tip request în care solicită
textul din fotografia respect ivă. Ca un rezumat a ceea ce am explicat în capitolele
anteriorare, pașii parcurși sunt cei din schema următoare:

Fig. 22 Imagine transmisă prin HTTP Request

42

43 Primul pas este determinarea tipului de imagine primit și anume: imagine cu un singur
cuvânt ce nu necesită localizare sau imagin e cu zone de text ce necesită localizare. Am ales
o imagine ce se încadrează în a doua categorie dr ept exemplu deoarece aceasta înglobează
și prima categorie. În continuare se realizează pre -procesarea și segmenatrea, r ezultatele
intermediare p utând să fie observate în figurile următoare:
Fig. 26 Pași 3.i, 3.j și 3.k: Contururi identificate filtrate
(a) (b)
Fig. 23 Pas 2: Detecție și delimitare cadrane
Fig. 24 (a) Pași 3.a și 3.b (b) Pași 3.c, 3.d și 3.e
Fig. 25 Pa și 3.g și 3.h

44 Probabilitățiile obținute pentru caracterele din acest exem plu sunt:

Table 3 Probabilități caractere pentru imaginea exemplu

Tickets Trains
„T” 99.93% „T” 95.39%
„I” 87.31% „r” 99.99%
„c” 86.53 % „a” 99.99%
„K” 97.48% „I” 97.34%
„e” 99.99% „n” 100%
„t” 99.37% „s” 79.64%
„s” 70.11%

Pentru a remedia neconcordanțele care pot apărea, î n momentul în care s -a obținut o
predicție pentru un cuvânt, urmează o etapă de postprocesa re a rezultatului . Aceasta are ca
scop uniformizarea formei cuvântului și înlăturarea posibilelor erori ce au apărut: fie
caractere neidentificate, fie caractere identificate greșit. În acest sens, au fost aplicate două
tehnici. Prima constă în stabiliarea formei cuvântului: scris cu litere mici, scris cu litere
mari sau scris cu majusculă. Acest pas de uniformizare a cuvântului este necesar deoarece
există câteva caractere de tipar care au forme foarte asemănătoare ca majusculă, respectiv
minusculă, fiind greu de descifrat , De exemplu , mașinile confundă în multe cazuri cele
două forme ale literel or: „c”, „s”, „ i”, „o”, „v” , „p”. Pentru a remedia acest lucru, sunt luate
câteva decizii asupra form ei finale a cuvântului atât pe baza numărul ui de litere identi ficate
ca fiind majuscule și a numărul ui de litere identificate ca fiind minuscule, precum și ținând
cont de poziția lor în cuvânt. Dacă prima literă este majusculă, iar din caracterele rămase
numărul de litere minuscule este mai mare decât numărul de maju scule, atunci cuvântul o
să fie capitalizat. În schimb, dacă prima condiție nu este îndeplinită ș i anume prima literă
nu este majusculă, toate literele vor fi trecute în forma lor de minusculă . În orice alt caz,
literele cuvintelor sunt transformate în maj uscule.
Ulterior, se utilizează o bibliotecă oferită de Python, denumită pyspellchecker, ca re
verifică dacă cuvântul identificat aparține dicționarului englez. În caz contra r, returnează
cel mai apropiat cuvânt din dicționar de cel primit. Ca mod de funcționare, aceasta
utilizează algoritm ul Levenshtein ce folosește ca metrică distanța cu acelaș i nume pentru
măsurarea diferenței între două secvențe de caractere. Se obține o listă de permutații prin
maxim două editări de tip: inserții, ștergeri, înloc uiri, transpuneri care este comparată cu un
set de cuvinte cunoscute și reținute intr-o listă de frecvențe de cuvinte. Cuvintele găsite
mai des în lista de frecvențe reprezintă corecția. Fiind o resursă gratuită, există și o serie de
limitări și anume: dac ă cuvântul identificat este afectat de multe erori sau lipsesc multe
litere din el , biblioteca re spectivă nu reușește să le rezolve, neputând găsi o variantă de
corecție cu o probabilitate mare . De asemenea, există riscul ca noțiunea sugerată să nu fie
cea așteptată de utilizator. Erorile cauzate de aceste puncte slabe sunt reduse la minim dacă
caract erele sunt identificate cu o acuratețe cât mai ridicată în etapele anterioare .
Odată identificate cuvintele, acestea sunt trimise înapoi către aplicația m obilă, alături de
imaginea finală cu cadrane.

45 5.3 Fluxul aplicației
Acest capitol prezintă opțiunile accesibile din aplicație, funcționalitatea acesteia
precum și interacțiunea utilizatorului cu a ceasta. Capturile de ecran au fost realizate pe un
smart phone cu versiunea 9 de Android, dispozitiv pe care a fost și testată aplicația.
În momentul deschiderii aplicației, apare un ecran de întâmpinare a utilizatorului, urmat
de ecranul principal ce pre zintă două opțiuni. Persoana care utilizează această apli cație
poate încărca o imagine din telefonul pe care aplicația rulează, folosind butonul „Choose
from gallery”. Astfel, aceasta are posibilitatea de a naviga prin galerie și previzualiza
pozele candid at până cand se decide asupra unei poze. A doua opțiune p osibilă este
reprezentată de fotografierea direct din aplicație a textului țintă prin apăsarea butonului
„Take a photo”. Utilizatorul este trimis către aplicația de fotografiat a telefonului cu
ajuto rul căreia capturează zona dorită, având posibilitatea să refacă fotografia, ori de câte
ori are nevoie până când este mulțumit cu rezultatul obținut. Indiferent de opțiunea aleasă,
pentru rezultate optim e, imaginea ar trebui să conțină măcar o zonă de tex t pentru care se
dorește obținerea informației în format electronic . De asemenea, altă restricție pentru
funcționarea corectă este ca textul să aibă o dimensiune și un font lizibil și să fie orientat
orizontal. Acest ă limit are de orientare a apărut datorit ă setului de date pe care a fost
antrenat modelul de dete cție a textului , set de date care conține doar astfel de imagini de
învățare. Fig. 27 (a) Ecran de întâmpinare (b) Ecran principal
(a) (b)

46 După ce s -a luat o decizie privind imaginea de interes, utilizatorul are opțiunea de a
decupa poza respectivă pentru a păstra doar elementele de interes, fie că este vorba doa r de
un sin gur cuvânt sau de mai multe zonă de text. Mai exact, p rin redimensionarea
cadranului ce apare, se stabilește noua dimensiune a fotografiei. Dacă nu se dorește tăierea
imaginii, se păstrează cadranul cu aceeași dimensiune a imaginii originale și se poate tr ece
la pasul următor prin apăsarea butonului „Efectuat” . Totodată, se poate renunța în orice
moment la poza selectată, prin apăsarea opțiunii „Anulare”, care întoarce utilizatorul la
ecranul principal. Se recomandă decuparea imaginii astfel încâ t să fie în lăturate elementele
ce nu reprezintă interes, acest pas conducând la creșterea probabilității de identificare și
încadrare corectă. A lt avantaj al unei tăieri adecvate a imaginii este dat de reduce rea timpul
de așteptare al rezultatului de către utilizator , întrucât operațiile menționate anterior
urmează să fie executate pe o matrice de dimensiuni mai mici.
Dacă imaginea decupată este de dimensiuni reduse, lățimea mai mică de 250px sau
înălțimea mai mică de 250px, atunci sistemul presupune ca f otografia r eprezintă un singur
cuvânt și omite etapa de localizare, executând doar partea de recunoaștere a acestuia. În
acest caz, pentru a asigura faptul că această decizie este corectă, utilizatorul este întrebat
daca zona respectivă chiar conține un si ngur cuvânt sau mai multe, acesta având
posibilitatea să confirme sau să infirme. Fig. 28 (a) Încărcarea unei imagine din galerie (b) Fotografierea unei imagini
(a) (b)

47
Fig. 2 9 Decuparea unei imagini
(a) (b)
Fig. 30 (a) Ecran de așteptare (b) Ecran afișare rezultate

48 Dupa ce aplicația primește un răspuns, pachetul cu informațiile importante este trimis
către server , iar aplicația mobilă rămâne într -o stare de stand -by cu un ecran de așteptare.
Serverul realizează toți pașii descriși anterior de procesare a fotografiei și returnează un
pachet de răspuns. Aplicația mobilă afișează imaginea cu zonele identificate și lista de
cuvinte regăsite într-un nou ecran. Se poate observa c ă, pentr u acest exemplu, aplicația a
identificat corect toate cuvintele din imagine, le -a încadrat și segmentat corect. De
asemenea, predicția caracterelor alături de operațiile de post -procesare au condus la un
rezultat foarte precis, atât ca conținut cât și ca p oziție în poză.
De asemenea, sunt vizibile op țiunile menționate anterior pentru folosirea cuvintelor
identificate de aplicație . Astfel, prin ap ăsarea butonului „Copy to clipboard” , textul este
reținut de către telefon pentru utilizarea ulterioară prin l ipire. Opțiunea „Search on
internet” oferă utilizatorului șansa de a căuta direct pe internet textul identificat. Al treilea
buton, „Translate” ar e rolul de a traduce cuvintele identificate. Astfel, în momentul
apăsării , apare un meniu cu toate limbiile of erite de aplicație din care utilizatorul poate
alege pe rând : araba, bulgară, cehă, daneză, olandeză, francez ă, german ă, greacă, japoneză,
maghia ră, română, portugheză, spaniolă sau turcă . După ce a fost aleasă limba țință, este
trimisă o cerere către serv iciul cloud descris anterior care returnează imediat echivelentul
textului în limba dorită .
(e)
(d)
(c)
(b)
(a)
Fig. 31 (a) Meniu tra ducere text (b) Traducere în limba română (c) Traduce re în limba
portugheză (d) Traducere în limba greacă (e) Traducere în limba turcă

49 Pentru a ne asigura că aplicația este capabilă să returneze o traducere pentru text, am
apelat și la o bibliotecă din python, denumită googletrans. Aceasta este o b ibliotecă
gratuită care a implementat API -ul de la Google Translate, dar care nu garantează
stabilitate. Prin urmare, este folosită doar în ca zul în care serviciul cloud nu este capabil să
găsească o tran spunere corespunzătoare. Dacă niciuna din cele două metode nu găsește o
traducere disponibilă pentru un cuvânt, atunci acesta își va păstra forma din limba engleză.
5.4 Exemple rezultate
În acest subcapitol, urmează să fie prezentate c âteva exemple de rezultate ale aplicației,
pentru a putea realiza u lterior o analiză obiectivă a performanțelor. S -au ales pentru
exemplificare, atât imagini care conțin un singur cuvânt ce trebuie descifrat, dar și imagini
cu mai multe zone de text care trebuiau identificate, separate și recunoscute. Astfel se
identifică două cazuri relevante :
• Imaginea este un unic cuvânt sau conține mai multe cuvinte, dar este de interes unul
singur, astfel încât , utilizatorul decupează cuvântul dorit. Pentru acest caz, este
executată doar etapa de recunoaștere, nu și cea de localizare .
Fig. 32 Rezultat identificare și recunoaștere text – Imagine 1

50
(a)
(b)
(c)
(d)
Fig. 33 Rezultat traducere text – Imagine 1 (a) limba arabă (b) în limba franceză (c) limba română
(d) limba cehă
Fig. 34 Rezultat identificare și recunoaștere text – Imagine 2

51
(a)
(e)
(d)
(c)
(b)
• Imagine a conține unul sau mai multe cuvinte care trebuie localizate și recunoscute
individual.

(a)
(b)
(c)
(d)
Fig. 35 Rezultat traducere text – Imagine 2 (a) limba română (b) limba olandeză (c) limba bulgară
(d) limba spaniolă

Fig. 36 (a) Rezultat i dentificare și recunoaștere text – Imagine 3. Rezultat traducere text –
Imagine 3 (b) limba japoneză (c) limba franceză (d) limba maghiară (e) limba daneză

52
(e)
(d)
(c)
(b)
(a)
Fig. 38 (a) Rezultat identificare și recunoaștere text – Imagine 5. Rezultat traducere text –
Imagine 5 (b) limba portugheză (c) limba greacă (d) limba france ză (e) limba olandeză

(e)
(d)
(c)
(b)
(a)
Fig. 37 (a) Rezultat identificare și recunoaștere text – Imagine 4. Rezultat t raducere text –
Imagine 4 (b) limba română (c) limba germană (d) limba turcă (e) limba spaniolă

53 Mai multe exemple de rezultate de detecție și recunoaștere text pot să fie consultate în
anex a 1. Pentru exemplificarea rezultatelor aplicației, au fost utilizate imagini din arhiva
personală, capturi de pe Google Map Street View sau fotografii preluate de la [6], [7], [10],
[11], [12], [25], [26], [27], [28], [30], [31], [33].
Din punct de vedere al performanțelor, a tât timpul de obținere al rezultatelor, cât și
acuratețea lor depinde de caracteristicile imaginii și de cantitatea de text care există în
cadrul acesteia. Astfel, în ceea ce privește timpul, aplicația conține câteva activități care au
o durată de desfăș urare relativ constantă, precum:
(a) pre-procesarea cuvânt prin operații morfologice – aproximativ 1.4 s;
(b) detec ție și filtrare contururi dintr -un cuvânt – aproximativ 0.5 s;
(c) determinarea clasei unui caracter cu ajutorul rețelei convoluționale –
aproximativ 0.005 s;
(d) post-procesare cuvânt obținut – aproximativ 0.004 s;
(e) traducere cuvânt: 1 s;
În realitate, durata aces tor operații p oate varia în funcție de rezoluția imaginii, dar este o
variație nesemnificativă, de ordinul milisecundelor, pe care am neglijat -o. Valorile totale
ale timpilor se calculează prin însumare în funcție de numărul de caractere al fiecărui
cuvânt (exemplul (c)), respectiv în funcție de numărul de cuvinte (exemplele (a), (b), (d),
(e)).
(e)
(d)
(c)
(b)
(a)
Fig. 39 (a) Rezultat identificare și recunoaștere text – Imagine 6. Rezultat traducere text –
Imagine 6 (b) limba spaniolă (c) limba română (d) limba germană (e) limba cehă

54 O etapă foarte costisitoare din punct de vedere temporal , influenț ată puternic de
numărul de cuvinte din poză și de dimensiunea pozei este cea de localizare a textului .
Acest fapt era de așteptat deoarece arhitectura Faster R -CNN față de alte structuri de rețele
convoluționale sacrifică timpul în favoarea acurateții. De exemplu , dacă s -ar consider a o
imagine cu o rezoluție de 1728×2304, atunci rezul tă o hartă de caracteristici de dimensiune
18×25 . În etapa de identificare a textului, p entru fiecare punct din harta de caracteristici
sunt verificate 9 ancore, ajungându -se la un total de 18 * 25 * 9 = 4.050 de ancore pentru
întreaga imagine . Având în ve dere că o ancoră este corespunzătoare unei bucăți din
imaginea inițială , gestionarea unui număr atât de mare conduce la un timp crescut de
execuție. Totodată , dacă există mult text în imagine, rezult ând un set de cadrane ce are
mari dimensiuni , etapele de supresie non -maximală și extragere ROI sunt mai costisitoare
din punct de vedere al timpului . Totuși, c um scopul aplicației este recunoașterea și
înțelegerea textului, am consi derat că precizia încadrării fiecărui cuvânt reprezintă un
factor mai important decât componenta temporală . Câteva exemple de timpi pentru acest
pas, măsurate pe calculatorul personal ce are rol de server, sunt:
(a) aproximativ 20 s pentru detecția unui singur cuvânt dintr -o imagine cu o
rezoluție de 1074×806 px;
(b) aproximativ 21 s pentru detecția a trei cuvinte dintr -o imagine cu o rezoluție de
640×480 px;
(c) aproximativ 19 s pentru detecția a două cuvinte dintr -o imagine cu o rezoluție
de 376×499 px;
(d) aproximativ 24 s pentru detecția a cinci cuvinte dintr -o imagine cu o rezoluție
de 40 0x300 px;
(e) aproximativ 15 s pentru detecția unui singur cuvânt dintr -o imagine cu o
rezoluție de 778×761 px;
Se poate observa imediat dependența direct proporțională dintre timp și dimensiunea
imaginii, respectiv cantitatea de text. Pentru ca textul să fie lizibil, este imposibilă
reducerea dimensiunii imaginii până la valori ale timpului de execuție apropriate de o
execuție în timp real.
La aceste durate de timp se adaugă timpul de trimitere de mesaje lor de tip request și
response care depinde de conexiunea la internet , timpul de construcție a imaginii cu
cadrane, timpul de afișare al rezultatelor, precum și timpul în care se solicită și se așteaptă
raspunsul utilizatorul ul dacă este cazul. Astfel, câteva exemple de timpi tot ali de utilizare a
aplicației sunt:
(a) aproximativ 1 0 s pentru o poză de rezoluție 364×134 cu un singur cuvânt;
(b) aproximativ 25 s pentru o poză de rezoluție 378×318 cu un cuvânt de localizat și
recunoscut;
(c) aproximativ 3 2 s pentru o poză de rezoluție 754×501 cu două cuvinte de localizat și
recunoscut;
(d) aproximativ 38 s pentru o poză de rezoluție 400×300 cu cinci cuvinte de localizat și
recunoscut;
În același timp, n umărul limitat de fonturi și cazuri î n care textul poate să apară în
scene naturale din set ul de date este principalul motiv pentru care rezultatele obținute nu
sunt întotdeauna cele mai fericite. Dacă rețeaua convoluțională de localizare utilizată nu a

55 întâlnit acel caz sau un caz asemănător în momentul antrenării, atunci cel mai probabil nu
va reuși să identifice textul în imagine. La acest lucru se adaugă și faptul că etapele
localizarea și de recunoaștere sunt influențat e de înfățișarea sau poziționarea textului în
poză, precum și de orien tare și de direcție . Un exemplu în acest sens este rep rezentat în
figura următoare ce înfățișează o încadrare diferită a textului și pe cale de consecință
rezultat e diferite . În ambele imagini, textul este localizat corect, dar în a doua poză ce are
prima literă incompletă, textul identificat este „ha nacy”, corectat în „fancy”.
De asemenea, modelul utilizat nu a fost antrenat pentru a detecta text scris vertical sau
oblic sau text foarte dens. În cazul textului oblic, localizarea nu es te corect r ealizată, iar în
cazul celui vertical, sunt localizate litere independente considerate cuv inte. Textul dens nu
are rezultate mulțumitoare deoarece cadranele se intersectează într -o măsura mare, în faza
de suprimare non -maximală pierzându -se cuvinte. Pentru exemplificare, figura 41
surprinde rezultatele eronate obținute în aceste cazuri.

Fig. 40 Exemple rezultate în funcție de poziționarea te xtului

56
(a)
(b)
(c)
Fig. 41 (a) Exemple rezultat text orientat oblic (b) Exemplu rezultat text dens (c) Exemplu
rezultat text orientat vertical

57 6. Concluzii
Aplicația descrisă în capitolul anterior își propune să ușureze viața utilizatorilor săi prin
oferirea unei modalități facile și rapide de a tran duce diverse cuvinte din limba engleză,
plecând de la o informație vizuală.
În urma studiului modului de abordare și implementare al unui sistem de detecție și
recunoaștere de text compatibil cu telefoanele inte ligente, am dezvoltat o aplica ție mobilă
cu rezultate promițătoare. Mai exact, pent ru partea de detecție de text s -a atins o acuratețe
de 77.95% mAP, valoare mai mare decât cea propusă în lucrarea de prezentare a
arhitecturii Faster R -CNN și anume 73.2% m AP. Acest fapt este de aștepta t întrucât în
soluția propusă rețeau a este utilizată pentru a identifica două clase (text și fundal ), în timp
ce în soluția originală, acuratețea este determinată pentru un număr mai ridicat de clase de
obiecte. Pentru etapa d e clasificare a caracterelor i dentificate, rețeaua convoluțională
propusă atinge o acuratețe de 87.29% maP pentru setul de validare, o valoare destul de
ridicată ținând cont de faptul că sunt 62 de clase în care pot să fie clasificate.
Rezultatele bu ne au fost exemplificate prin testarea aplicației pe diverse categorii de
poze cu rezoluții variabile, cu număr atât mic, cât și mai mare de zone de text. S-a putut
observa aplicabilitatea software -ului dezvoltat în diverse ipostaze din viața de zi cu zi ș i
utilitatea obținerii unei tr anduceri rapide în astfel de situații. Totuși, sistemele OCR sunt
departe de perfecțiune, iar aplicația în cauză nu este excepția. Există câteva dezavantaje
inerente, dar și modalități de îmbunătățire ce urmează a fi descrise în continuare.
Alegerea între a utiliza Travel & Translate sau a realiza lunga procedur ă clasică de
tranducere se rezumă la sacrificarea fie a efortul ui economisit prin folosirea aplicației,
respectiv accesul la o gamă variată de traduceri , fie a precizi ei de neegalat a ochiului uman.
Deși domeni ul inteligenței artificiale și al vederii artificiale a evoluat considerabil în
ultimii ani, mașinile încă nu au o înțelegere pe deplin a cunoștiințelor dintr -o imagine, ci
doar analizează pixeli căutând șabl oane comune. Astfel, n u se poa te vorbi despre o
înțelegere a textului dintr -o imagine dincolo de filtre și similitudini. Din acest motiv,
căutarea este sensibilă și ușor altera bilă de o serie de factori comuni OCR, printre care:
densitatea textului, organi zarea textului, fontul, tipul de caractere, artefactele prezente în
imagine, localizarea textului. Aceste dezavantaje sunt determinate de stadiul actual de
dezvoltare al tehnologiei și v or putea să fie depășit e o dată cu înaintarea acesteia.
Alte l imitări ce există sunt cele da te de timp și puterea de procesare. Mai exact, deși
creșterea calității imaginilor, implicit creșterea rezoluției, poate crește acuratețea
rezultatelor, se mărește automat și timpul de execuție. Astfel încât, trebuie făcut un
compromis în ceea ce privește calitatea imaginii și durata de procesare. O variantă ce este
posibil să îmbunătățească aplicația și timpul de utilizare este reprezentată de plasarea părții
de procesare a imaginilor pe un server cloud, astfel încât utilizar ea ei să nu necesite
computați i de lungă durată din partea calculatorului propriu. Această variantă ar mări
gradul de utilitate al aplicației întrucât ar diminua considerabil perioada de așteptare a
aplicației mobile. De asemenea, dacă continuăm raportarea la timp, antrenarea modelel or
de mari dimensiuni a fost o etapă de durată destul de mare și costisitoare, fapt care a limitat
din acest punct de vedere acuratețea rezultatel or posibil accesibile. În plus , obstacol ul

58 principal întâ mpinat în cadrul acestei lucrări a fost manevrarea un or seturi de date de
dimensiuni uriașe comparativ cu puterea de calcul disponibilă . Acest aspect a fost tratat
prin partiționarea datelor și reducerea dimensiunii imaginilor . Un timp de antrenare și mai
mic s -ar putea obține prin optarea pentru soluții mai eficien te de încărcare în memorie a
imaginilor precum încărcarea progresivă sau utilizarea unei baze de date relaționale .
Această îmbunătățire ar permite mărirea setului de date de antrenare pentru a ac operi o
gamă și mai largă de exemple, fapt ce ar cond uce ulterior la un software cu o acuratețe mai
ridicată.
Chiar și în stadiul actual al acestei aplicații destinate turiștilor , rezultatele obținute sunt
destul de apropiate de realitate și permit o traducere corespunzătoare. Timpul necesar
recunoaș terii unor cuvinte și obținerii unui echivalent din limba engleză în limba vorbită
este mai redus față de abordarea clasică . De asemenea, aplicația permite realizarea
automată a unei adaptări la context, în funcție de restul cuvintelor prezente, astfel în cât
sensul obținut să fie cel potrivit.
Direcți ile de dezvoltare pe termen lung a proiectului se axează pe creșterea
aplicabilității aplicației astfel încât să vizeze un număr mai larg de utilizat ori. Astfel , prima
cale urmată este extinderea vocabu larului recunoscut de aplicație. Mai exact, se dorește
introducerea posibilității de recunoaștere și traducere d e cuvinte și din alte limbi, pe lângă
limba engleză. Acest fapt este posibil prin antrenare a unui model de rețea convoluțională
care să poată să clasifice și alte caractere pe lângă cele din alfabetul englez și cifrele 0 -9,
cum ar fi: litere le cu accent din limba franceză , literele cu semne diacritice din limba
română sau chiar litere le alfabetului arab. Pentru acest pas, trebuie introduse noi set uri de
date care acoperă și aceste cazuri sau crearea unui set propriu cu un număr suficient de
exemplare. De asemenea, lărgirea s etului de date de localizare cu imagini cu text orientat
altfel decât orizontal ar aduce un plus de precizie și ar înlătura li mitările existente . O altă
direcție care ar crește gradul de g eneralitate și utilitate al aplicației este reprezentată de
adoptare a unei componente de recunoaștere a unor fonturi apropiate de scrisul de mână
care ar putea gestiona caracterele unite. Astfel , un număr ridicat de etichete de alimente sau
semne stradale cu nume de localuri ce adoptă acest stil de text ar intra în aria ac operită de
această aplicație.

59 Bibliografie
1. Artificial Neural Networks for Machine Learning – Every aspect you n eed to know
about. Documentație Internet – https://data -flair.training/blogs/artificial -neural –
networks -for-machine -learning/ Accesat: 2020
2. Bunke, H., Wang , P.S.P. (1997). Handbook of Character Recogni tion and
Document Image Analysis . World Scientifi, 1997
3. Chaudhuri , A., Mandaviya , K., Badelia , P., Ghosh , S.K. (2017). Optical Character
Recognition Systems for Different Languages with Soft Computing. Spring er,
August 2017, ISSN 1434 -9922
4. Cheriet, M., Kharma, N., Liu, C -L., Suen, C.Y. (2007). CHARACTER
RECOGNITION SYSTEMS A Guide for Students and Practioners. John Wile y &
Sons, Inc. 2007. ISBN 978 -0-471-41570 -1
5. Dhavale, S .V. (2017). Advanced Image -Based Spam Detection and Fi ltering
Techniques . Hershey, PA: IGI Global. pag. 91. ISBN 9781683180142
6. English Provender – Very lazy g inger . Mackenzies Farm Shop.
https://mackenziesyorkshirefarmshop.co.uk/products/english -provender -very-lazy-
ginger . Accesat: 2020.
7. Full-page ads in The St ar and Sun. Irish Central.
https://www.irishcentra l.com/news/politics/paddy -power -brexit -ad. Accesat: 2020.
8. Gao, H. (2017). Faster R -CNN Explained . Documentație Internet –
https://medium.com/@smallfishbigsea/faster -r-cnn-explained -864d 4fb7e3f8
Accesat: 2020
9. Gonzalez , R., Woods , R. (2017). Digital Image Processing (4th Edition). Pearson
Education International. 30 Martie 2017. ISBN: 9780133356724
10. Good vibes only sign. Pinterest.
https://www.pinterest.co.uk/pin/64739313377430570/ . Accesat: 2020.
11. Karatzas , D., Shafait , F., Uchida , S., Iwamura , M., Gomez i Bigorda , L., Mestre ,
S.R., Mas , J., Mota , D.F., Almazan , J., de las Heras , L.P. (2013). ICDAR 2013
Robust Reading Compe tition . Documentație Internet:
http://refbase.cvc.uab .es/files/KSU2013.pdf . Set de date –
https://rrc.cvc.uab.es/?ch=2&com=downloads . Accesat: 2020
12. Library and shoppers direction. Unsplash. https://unsplash.com/photos/8iT8yp –
lfhc. Accesat: 2020.
13. Lines, Lineskew And Drop Letters . Documentație Internet – http://www.how -ocr-
works.com/OCR/line -segmentation.html Accesat: 2020
14. Liu, W., Anguelov, D., Erhan, D., Szegedy , C., Reed, S. , Fu, C -Y, Berg, A.C.
(2016). SSD: Single Shot Mul tiBox Detector . Documentație Internet –
arXiv:1512.02325 [cs.CV] Accesat: 2020.
15. Lu, T., Palaiahnakote, S., Tan, C.L., Liu, W. (2014). Video Text Detection.
Springer, Aprilie 2014, ISSN 2191 -658
16. Merrit t, T. (2012). Chronology of Tech Hi story . Creative Commons, 2012. ISBN:
978-1-300-25307 -5

60 17. Michelucci , U. (2019). Advanced Applied Deep Learning Convolutional Neural
Networks and Object Detection . Apress Media. 2019. ISBN -13: 978 -1-4842 -4976 –
5
18. Mori , M. (2010) . Character Recognition. Sciyo, Septembrie 2010, ISBN 978 -953-
307-105-3
19. Redmon , J., Divvala , S., Girshick , R., Farhadi , A. (2016). You Only Look Once:
Unified, Real -Time Object Detection. Documentatie Internet –
arXiv:1506.02640 [cs.CV] Accesat: 2020.
20. Ren, S. , Kaiming , H., Girshick , R., Sun , J. (2016). Faster R -CNN: Towards Real –
Time Object Detection with Region Proposal Networks . Documentație Internet:
arXiv:1506.01497 [cs.CV]. Accesat: 2020
21. Russell , S., Norvig , P. (2010). Artificial Intelligence. A Modern Approach. Third
Edition . Prentice Hall. 2010. ISBN 978 -0-13-604259 -4
22. Schantz, H .F. (1982). The history of OCR, optical character recognition .
[Manchester Center, Vt.]: Recognition Technologies Users
Association. ISBN 9780943072012
23. Segmenting Words and Character. Documentație Internet – http://www.how -ocr-
works.com/OCR/word -character -segmentation.html Accesat: 2020
24. Shi, B., Xiang , B., Yao, C. (2015). An End -to-End Trainable Neural Network for
Image -based Sequence Recognition and Its Application to Scene Text Recognition.
Documentatie Internet – arXiv:1507.05717 [cs.CV ] Accesat: 2020.
25. Slowly please. Unsplash. https://unsplash.com/photos/4F7mMziOfgY . Accesat:
2020.
26. Smart Stop Sign. Forbes.
https://www.forbes.com/sites/tanyamohn/2019/03/30/solar -powered -smart -stop-
sign-developed -to-curb-rural -traffic -crashes/#5b6d44b61dfc . Accesat: 2020 .
27. Stay on the path. Unsplash. https://unsplash.com/photos/U5y077qrMdI . Accesat:
2020.
28. Stop sign . Oregon City. https://www.orcity.or g/publicworks/stop -sign-brochure .
Accesat: 2020.
29. Suzuki , S., Abe , K. (1985). Topological Structural Analysis of Digitized Binary
Images by Border Following . Elsevier Inc. 1985
30. Ticket sign. Tracy’s Travel in Tim e. https://tracystravelsintime.com/2019/09/28/uk –
train-travel/ . Accesat: 2020.
31. Train station sign . Pinterest. https:// ro.pinterest.com/pin/193021534000856745/ .
Accesat: 2020.
32. Varma , M., de Campos , T.E., Babu , B.R. (2009). Character Recognition in natural
images. Documentație Internet –
http://personal.ee.surrey .ac.uk/Personal/T.Decampos/papers/decampos_etal_visapp
2009.pdf . Set de date – http://www.ee.surrey.ac.uk/CVSSP/demos/chars74k/ .
Accesat: 2020.
33. Veit, A., Matera , T., Neumann , L., Matas , J., Belongie , S. (2016). COCO -Text:
Dataset and Benchmark for Text Detection and Recognition in Natural Images .

61 Documentație Internet – arXiv:1601.07140 [cs.CV]. Set de date –
https://bgshih.github.io/cocotext/ . Accesat: 2020
34. What Gets Read And What Doesn’t . Documentaț ie Internet – http://www.how -ocr-
works.com/OCR/page -analysis.html Accesa t: 2020
35. Zhou , X., Yao, C., Wen, H. , Wang, Y. , Zhou , S., He, W. , Liang, J. (2017). EAST:
An Efficient and Accurate Scene Text Detector. Documentatie Internet –
arXiv:1704.03155 [cs.CV] Accesat: 2020.
36. Zisserman , A., Simonyan , K. (2015). Very deep convolutional networks for large –
scale image recognition. Documentație Internet – arXiv:1409.1556v6 [cs.CV] .
Accesat: 2020

62 Anexe
Anexa 1 – Rezultate identificare și recunoaștere
text

Fig. 42 Rezultat identificare și r ecunoaștere text – Imagine 7 și Imagine 8

63
Fig. 43 Rezultat identificare și recunoaștere text – Imagine 9, Imagine 10, Imagine 11 și Imagine 12

64

Fig. 44 Rezultat identificare și recunoaștere text – Imagine 13, Imagine 14, Imagine 15 și Imagine 16

65
Fig. 45 Rezultat identificare și recunoaștere text – Imagine 17, Imagine 18, Imagine 19 și Imagine 20

Similar Posts