Documen :
Memò ia i Annexos
TREBALL DE FI D’ESTUDIS
De ecció i econeixemen de
ma ícules pe isió a i icial
Au o /Au o a:
Xa ie Ma í Jo ell
Di ec o /Di ec o a - Codi ec o /Codi ec o a:
Jose An onio So ia Pe ez
Ti ulació:
Màs e Uni e si a i en Enginye ia de Sis emes
Au omà ics i Elec ònica Indus ial
Con oca ò ia:
P ima e a, 2023.
i
Resum
El p opòsi d’aques eball i de màs e és el desen olupamen d’un sis ema de
econeixemen au omà ic de ma ícules a pa i d’un model d’in el·ligència a i icial, u ili zan
isió a i icial i ap enen a ge p o und. El sis ema desen olupa és capaç de e la lec u a en
emps eal de la ma ícula d’un co xe a pa i d’una ima ge desconeguda. D’aques a mane a,
es p e én il·lus an les possibles ècniques de isió a i icial que an se i els sis emes de
con ol en ca e es o en espais d’apa camen .
Pe e -ho, s’ha en ena el model de de ecció d’objec es, You Only Look Once (YOLO)
o ma pe una xa xa neu onal con olucional CNN, a pa i d’un conjun d’ima ges
conegudes i ob ingudes pe la esolució d’aques eball. En les di e en s ima ges es oben
an ehicles es aciona s com en ci culació, amb la egió de les di e en s ma ícules
e ique ades i ma cades. Un cop en ena el model, aques és e se i pe de ec a la
ma ícula i pode -ne ex eu e-la de la ima ge o iginal. Amb aques a no a ima ge, es eali za
la lec u a del codi u ili zan la ècnica de econeixemen de ca àc e s en objec es (OCR).
Pel desen olupamen de l’OCR s’ha e ús de l’algo isme EasyOCR el qual ha pe mès llegi
els di e en s nomb es i lle es pe al de po a a cap un pos p ocessamen i cons ui el
codi de la ma ícula segons la legislació espanyola.
Abs ac
The pu pose o his mas e 's hesis is he de elopmen o an au oma ic numbe pla e
ecogni ion (ANPR) sys em based on an a i icial in elligence model, using a i icial ision
and deep lea ning. The de eloped sys em is capable o ead he license pla e o a ca in
eal ime om an unknown image, p e ending o illus a e he possible a i icial ision
echniques used in oad con ol sys ems o pa king lo con ol sys ems o de ec ca pla es.
To do his, he objec de ec ion model, You Only Look Once (YOLO), o med by a CNN
con olu ional neu al ne wo k, has been ained om a se o known images ob ained o
sol ed his wo k. In he di e en images he e a e bo h pa ked ehicles and in ci cula ion,
wi h he egion o he di e en numbe pla es labeled. Once he model has been ained, i
is used o de ec he numbe pla e and ex ac i om he o iginal image. Wi h his new
license pla e image, he code is hen ead using he objec cha ac e ecogni ion (OCR)
echnique. Fo he de elopmen o he OCR, has been used he EasyOCR algo i hm, which
made possible o ead he di e en names and le e s in o de o ca y ou a pos -p ocessing
and build he Spanish egis a ion code acco ding o Spanish legisla ion.
De ecció i econeixemen de ma ícules pe isió a i icial
ii
iii
Suma i
RESUM ......................................................................................................................................................... I
ABSTRACT .................................................................................................................................................... I
SUMARI ..................................................................................................................................................... III
ÍNDEX DE TAULES ........................................................................................................................................ V
ÍNDEX DE FIGURES ..................................................................................................................................... VI
1. INTRODUCCIÓ ......................................................................................................................................... 1
1.1 CONTEXT ............................................................................................................................................. 1
1.2 OBJECTIU ............................................................................................................................................ 1
1.3 MARC DEL TREBALL ............................................................................................................................... 1
1.4 ESPECIFICACIONS .................................................................................................................................. 3
1.5 MOTIVACIÓ PERSONAL ........................................................................................................................... 3
1.6 CONTINGUT DE LA MEMÒRIA I LLIURAMENTS DEL PROJECTE ........................................................................... 4
2 ESTAT DE L’ART ................................................................................................................................... 5
2.1 PROCESSAMENT D’IMATGES .................................................................................................................... 5
2.2 XARXES NEURONALS .............................................................................................................................. 6
2.3 XARXES NEURONALS CONVOLUCIONALS ..................................................................................................... 9
2.3.1 Capa de con olució .................................................................................................................... 10
2.3.2 Capa de educció ....................................................................................................................... 10
2.3.3 Capa d’aplanamen ................................................................................................................... 11
2.3.4 Algo isme de e op opagació ................................................................................................... 11
2.4 FASES DEL RECONEIXEMENT AUTOMÀTIC DE MATRÍCULES ............................................................................. 11
2.5 EXTRACCIÓ DE LA MATRÍCULA DE LA IMATGE ............................................................................................. 12
2.6 SEGMENTACIÓ DE LA MATRÍCULA ............................................................................................................ 13
2.7 RECONEIXEMENT DELS CARÀCTERS .......................................................................................................... 14
2.8 APLICACIONS ...................................................................................................................................... 15
3 DETECCIÓ DE LA MATRÍCULA EN LA IMATGE ..................................................................................... 16
3.1 DESCRIPCIÓ DEL SET DE DADES ............................................................................................................... 16
3.2 ALGORISME DE DETECCIÓ USAT .............................................................................................................. 19
3.3 ARQUITECTURA DE YOLO ..................................................................................................................... 20
3.4 VERSIONS DE YOLO ............................................................................................................................ 22
3.4.1 YOLO 2 ...................................................................................................................................... 22
3.4.2 YOLO 3 ...................................................................................................................................... 22
3.4.3 YOLO 4 ...................................................................................................................................... 22
3.4.4 YOLO 5 ...................................................................................................................................... 22
3.4.5 YOLO 6 ...................................................................................................................................... 23
3.4.6 YOLO 7 ...................................................................................................................................... 23
3.4.7 YOLO 8 ...................................................................................................................................... 23
3.5 DESCRIPCIÓ DE L’ENTRENAMENT ............................................................................................................ 23
3.6 AVALUACIÓ DEL MODEL OBTINGUT ......................................................................................................... 27
3.7 AVALUACIÓ DE LA INFERÈNCIA................................................................................................................ 29
4 RECONEIXEMENT ÒPTIC DE CARÀCTERS (OCR) ................................................................................. 33
4.1 ESTRUCTURA D’EASYOCR .................................................................................................................... 34
4.2 TIPUS DE MATRÍCULES .......................................................................................................................... 35
4.3 PROCEDIMENT SEGUIT EN EL RECONEIXEMENT DE CARÀCTERS ...................................................................... 36
4.4 AVALUACIÓ DELS RESULTATS DE L’OCR .................................................................................................... 40
5 DISCUSSIÓ DELS RESULTATS OBTINGUTS ........................................................................................... 44
De ecció i econeixemen de ma ícules pe isió a i icial
i
6 ANÀLISI ECONÒMICA ........................................................................................................................ 46
7 CONCLUSIONS .................................................................................................................................. 47
8 REFERÈNCIES .................................................................................................................................... 48
ANNEX ...................................................................................................................................................... 52
8.1 PART PRINCIPAL DE L’ALGORISME ANPR .................................................................................................. 52
8.2 ALGORISME DE DETECCIÓ DE MATRÍCULES ................................................................................................ 55
8.3 ALGORISME DE RECONEIXEMENT DE CARÀCTERS EN LA MATRÍCULA ................................................................ 57
Índex de aules
TAULA 1. Compa a i a dels esul a s de la de ecció, segons la dimensió de la xa xa ............
26
TAULA 2. In e sec ion O e Union, IOU, del model de de ecció ..............................................
27
TAULA 3. Mè iques d’a aluació de la in e ència de la de ecció de ma ícules .........................
28
TAULA 4. Mè iques d’a aluació de la in e ència d’EasyOCR ..................................................
41
TAULA 5. Exemple d’un inco ec e econeixemen de la ma ícula ........................................
41
TAULA 6. Al es inco ec es econeixemen s de ma ícula ob ingu s .....................................
41
TAULA 7. Mè iques ob ingudes al inal del econeixemen dels ca àc e s de la ma ícula ......
44
TAULA 8. Cos os de ecu sos humans .....................................................................................
46
TAULA 9. Cos os de béns imma e ials ....................................................................................
46
TAULA 10. Cos os o al ............................................................................................................
46
De ecció i econeixemen de ma ícules pe isió a i icial
4
eball, es oba en una sè ie de peces conegudes en una zona delimi ada. Seguidamen ,
a pa i d’un b aç obò ic que en la se a eina enia di e en s pinces i un pe i o dinado amb
una càme a, aig desen olupa un sis ema que classi ica a les di e en s peces segons el
seu colo i o ma desp és d’una de ecció i locali zació a pa i d’una ima ge.
En aques eball es ol con inua en l’ap enen a ge d’aques a ècnica pe ò en aques cas
usan in el·ligència a i icial. Es enia cons ància de la u ili zació de la IA en el econeixemen
d’objec e en ima ges, pe ò se’n desconeixia el com. A pa i de la g an capaci a d’aques a
ècnica i de l’in e ès que em despe a a, he decidi e se i -la en el desen olupamen del
eball pe al de pode conèixe els seus mè odes en una aplicació eal i quo idiana.
1.6 Con ingu de la memò ia i lliu amen s del p ojec e
En aques documen , memò ia del eball, s’explica.
- En el capí ol 2. Es a de l’a , es desc iu les di e en s ècniques i es a ègies que
ac ualmen s’u ili zen o que s’han e se i pe desen olupa el econeixemen
au omà ic de ca àc e s en ma ícules. Sepa an les usades en la de ecció i
locali zació de la ma ícula, com les que es an se i en el econeixemen de
ca àc e s.
- En el capí ol 3. De ecció de la ma ícula en la ima ge, s’explica com s’ha aconsegui
la de ecció de la ma ícula en la ima ge. Quin algo isme s’ha e se i , la desc ipció
d’aques algo isme, com s’ha en ena aques algo isme i com s’implemen a. També,
s’a aluen els esul a s ob ingu s an desp és de l’en enamen com desp és de la
in e ència en l’aplicació.
- En el capí ol 4. Reconeixemen òp ic de ca àc e s (OCR), es desc iu el mè ode
u ili za pe econèixe els di e en s ca àc e s de la ma ícula, es eali za una
discussió de les p incipals llib e ies d’OCR en codi obe , s’explica l’es uc u a de la
llib e ia seleccionada i es desc iu el pos p ocessamen desen olupa desp és de la
de ecció. També, s’a aluen els di e en s esul a s ob ingu s an desp és de la
p edicció pe pa de la llib e ia, com desp és del pos p ocessamen .
- Finalmen , en el capí ol 5. Discussió dels esul a s ob ingu s, es posa en comú els
esul a s ob ingu s en els apa a s an e io s i s’a aluen de o ma conjun a.
A pa de la memò ia, ambé es a l’en ega dels i xe s de l’en o n de desen olupamen
c ea i els di e en s algo ismes desen olupa s. En el lliu amen , en la ca pe a de
“s udysession” es oben les di e en s ca pe es amb les llib e ies necessà ies pe e có e
la solució. El documen “_commands_ o_ac i a e. x ” indica les di e en s o d es a in odui
en la consola pe ac i a l’en o n i ual. També, es oben els algo ismes desen olupa s,
“Ca ac Recogni ion.py” el qual eali za l’OCR, “Pla eDe ec ion.py” que de ec a i locali za la
ma ícula en la ima ge, i “main.py”, pa p incipal que ca ega les ima ges, eali za el
“Ca ac Recogni ion.py” i el “Pla eDe ec ion.py”, comp o a si la de ecció s’ha eali za de
o ma co ec a i gua da els di e en s esul a s. Aques s esul a s es gua den en el i xe
“ esul . x ” on un cop l’algo isme “main.py” acaba, esc iu els esul a s indican el nom de la
ima ge, la ma ícula eal d’aquell ehicle, la de ecció ob inguda i si les ma ícules
coincideixen o no. El documen “main.py” sap si el econeixemen a se el co ec e g àcies
a la lec u a del i xe “ ex . x ” que elaciona el nom de les ima ges amb el codi de la
ma ícula. Finalmen , es oben di e en s ima ges pe pode p o a els di e en s algo ismes,
la locali zació de la ma ícula, el econeixemen de ca àc e s o els dos p ocessos jun s.
5
2 Es a de l’a
El econeixemen au omà ic d’una ma ícula és l’ex acció de la in o mació de la ma ícula
del ehicle con inguda en una ima ge o en un conjun d’ima ges. L’ANPR ambé és conegu
amb al es noms, iden i icació au omà ica de ehicles, econeixemen de ma ícules de
co xes, econeixemen au omà ic dels nomb es de la ma ícula, o econeixemen òp ic de
ca àc e s OCR en ehicles.
L’ex acció d’aques a in o mació po se eali zada usan un se de dades pe una
compa ació o a pa i del p ocessamen de la ima ge. Pel econeixemen són u ili zades
an , ima ges en colo , en blanc i neg e o càme es in a oges, aques es úl imes pe me en
edui els can is de condicions p o ocades pe la inse ció dels aigs de llum. Sen la quali a
de les ima ges un ac o clau pe ob eni o no un esul a sa is ac o i. A més, les di e ències
en el colo de ons i dels ca àc e s de les ma ícules, sen en la g an majo ia el ons blanc,
pe ò ambé n’hi ha de ons blau o g oc, augmen a la di icul a de la lec u a. En aques
apa a es desc iuen les p incipals ècniques i esul a s que p è iamen al es han e se i
pe esold e el p oblema.
En el econeixemen au omà ic de ehicles en ma ícules, s’usen di e en s ècniques, la
de ecció d’objec e en ima ges, el p ocessamen d’ima ges i la iden i icació de pa ons, en
són algunes d’elles. To segui se’n desc iuen algunes pe conèixe millo el seu
uncionamen . Seguidamen , s’especi ica les di e en s pa s i esolucions de la solució de
la p oblemà ica.
2.1 P ocessamen d’ima ges
El p ocessamen d’ima ges és una ècnica u ili zada en la esolució del p ocessamen
d’ima ges. Aques a ècnica és l’acció de ans o ma una ima ge, que es oba en o ma
digi al, i eali za de e minades ope acions pe ob eni -ne in o mació ú il [11]. El sis ema de
p ocessamen d’ima ges ac a o es les ima ges com ma ius de dues dimensions on se li
apliquen ce s mè ode de p ocessamen . Un dels mè odes més usa s en el p ocessamen
d’ima ges, són els il es. Els il es es an se e pe modi ica o millo a la quali a de la
ima ge, pe exemple, pe elimina el so oll de la ima ge me e es man é la ima ge
p ese ada. La selecció d’un il e es basa en la na u alesa de la asca i el ipus i
compo amen de les dades. Uns exemples de il e, són el il e de mi jana o el il e gaussià
[12].
Exemple de il a ge de mi jana, sen l’en ada una ma iu 7x7 i el ke nel una ma iu 3x3
mul iplicada pe 1/9 que a eco en la ma iu d’en ada.
Figu a 3. Exemple en aplica un il e de mi jana a una ma iu (Fon : p òpia)
Exemple de il a ge gaussià, sen l’en ada una ma iu 7x7 i el ke nel una ma iu 3x3
mul iplicada pe 1/16, sen sigma igual 1, que a eco en la ma iu d’en ada mul iplican
els di e en s alo s. La unció gaussiana es mos ada en la següen equació.
De ecció i econeixemen de ma ícules pe isió a i icial
6
𝐺(𝑥,𝑦)= 1
2𝜋𝜎2 𝑒−𝑥2+𝑦2
2𝜎2
(1)
Figu a 4. Exemple en aplica un il e de gaussià a una ma iu (Fon : p òpia)
2.2 Xa xes neu onals
Una xa xa neu onal a i icial és un model compu acional que é la capaci a de millo a el
seu esul an a base d’un en enamen a pa i d’un conjun d’exemples. Les xa xes
neu onals a i icials simulen un sis ema ne iós humà en ús d’una g an quan i a de
neu ones a i icials pe me en així esold e p oblemes complexos [13].
Figu a 5. Esquema d’una xa xa neu onal (Fon : p òpia)
Les xa xes neu onals a i icials es an o mades pe una capa d’en ada, capes ocul es i una
capa de so ida. La capa d’en ada ep esen a els pa àme es d’en ada, pe una ima ge
les en ades se ien els di e en s píxels sense eali za cap càlcul. Les capes ocul es són en
les quals es p odueixen la majo ia dels càlculs. Aques conjun de capes ep esen a el
compo amen de la xa xa neu onal, com més capes ocul es la xa xa neu onal és més
p o unda. La capa de so ida és una capa ocul a amb la di e ència que é an es neu ones
com so ides de la xa xa neu onal a i icial.
Les neu ones de les xa xes neu onals a i icials in en en modela les neu ones del nos e
sis ema ne iós. Aques ipus de neu ona a i icial a se p oposada el 1943 pe McCulloch-
Pi s, la qual la se a so ida és el esul a de la suma ponde ada de les en ades i la següen
mul iplicació pe una unció no lineal o d’ac i ació. També po disposa d’una en ada
addicional pe manen men ac i ada que se l’anomena pola i zació o “bias”. En la següen
igu a, es mos a una ima ge de la neu onal a i icial de McCulloch-Pi s i l’equació que se
n’ex eu [14].
7
Figu a 6. Neu onal a i icial de McCulloch-Pi s (Fon : p òpia)
Les di e en s neu ones a i icials disposen d’una unció d’ac i ació, les quals són u ili zades
pe dona la so ida dins un ang de alo s conegu s. Les p incipals uncions d’ac i ació són
la unció esglaó, la unció sigmoide, la unció angen hipe bòlica ( anh), i la unció
ec i icado a (ReLU), en e al es. A con inuació, es mos a un exemple, la unció
ec i icado a (RELU) [15].
Figu a 7. Funció d’ac i ació RELU (Fon : p òpia)
També exis eix un al e ipus de xa xa neu onal, les xa xes neu onals de biaix [14]. Les
xa xes neu ones de biaix pe me en desplaça la unció d’ac i ació cap a l’esque a o cap a
la d e a de les neu ones de la capa pos e io a pa i de l’addició 𝑏. Aques ipus de neu onal
pe me pode ob eni millo s esul a s en l’en enamen quan no malmen se’n oba una
pe capa ocul a. A con inuació es mos a l’equació d’una neu ona amb biaix.
𝜙(𝑧)= 𝜙(∑𝑤𝑖
𝑛
𝑖=1 𝑥𝑖+𝑏)
(2)
L’algo isme de e op opagació, en anglès backp opaga ion, pe me a les xa xes neu onals
ap end e [16]. A con inuació es mos a un exemple pe mos a com unciona ia un
algo isme de e op opagació. Pe un millo càlcul es desc iu la unció d’ac i ació de o ma
ma icial, es de ineix una ma iu de pes 𝑤𝑙, aques a ma iu ep esen a els pesos que es
connec en a la capa 𝑙, és a di , la posició de la ila 𝑗 i la columna 𝑘, és 𝑤𝑗𝑘
𝑙. En la Figu a 5,
se’n po eu e l’ano ació. De la ma eixa o ma, pe a cada capa es de ineix un ec o de
biaix 𝑏𝑙, que pe cada posició 𝑗 es ep esen a 𝑏𝑗𝑙. Pe úl im, ambé es de ineix un ec o
d’ac i ació 𝑎𝑙, que unciona igual que al ec o de biaix 𝑎𝑗𝑙. Pe an , la unció d’ac i ació
s’exp essa com.
𝑎𝑙= 𝜙( 𝑤𝑙𝑎𝑙−𝑖+𝑏𝑙)
(3)
Si es mi a de enimen la unció, es é que la ma iu d’ac i ació en la capa 𝑙 𝑎𝑙, és el esul a
d’aplica la unció d’ac i ació sob e la ma iu esul an de mul iplica la ma iu de pesos de
De ecció i econeixemen de ma ícules pe isió a i icial
8
la capa 𝑙 𝑤𝑙 pe la ma iu d’ac i acions en la capa 𝑙− 1, 𝑎𝑙−1, suman el ec o de biaixos
de la capa 𝑙 𝑏𝑙.
Un cop es é el esul a de la so ida de la xa xa neu onal, pe compa a els esul a s
ob ingu s amb els espe a , es u ili zada la unció de cos . L’objec iu de l’algo isme de
e op opagació es conèixe com can ien els esul a s de la unció de cos , espec e als
can is en qualse ol pes o biaix. Una de les uncions de cos més u ili zades, és la unció
de cos quad à ic.
𝐶=1
2 ∑(𝑦(𝑥)−𝑎𝐿(𝑥))2
(4)
On x són els exemples d’en enamen indi iduals, sen 𝑦(𝑥) el ec o de so ida desi ja i
𝑎𝐿(𝑥) és el ec o de so ida d’ac i ació de la capa 𝐿.
La e op opagació busca modi ica els pesos i els biaixos amb l’objec iu de minimi za
l’e o que dona la unció de cos . Pe sabe com a ia la unció de cos 𝐶, espec e el pesos
i els biaixos, es eali za mi jançan a iables pa cials. En el cas de la a iació dels pesos
com 𝜕𝐶/𝜕𝑤 i pe als biaixos 𝜕𝐶/𝜕𝑏. Saben això, es de ineix l’e o d’una neu ona 𝑗 de la
capa 𝑙 com 𝛿𝑗𝑙.
𝛿𝑗𝑙= 𝜕𝐶/𝜕𝑧𝑗𝑙
(5)
Aques alo indica la implicació que ha ingu la neu ona j de la capa 𝑙 en l’e o del esul a
inal. Pe aplica l’algo isme de e op opagació es con enien p opaga els e o s de les
neu ones en e les capes. Si no es eali zes, no es ind ia en comp e que l’e o que es à
enin una neu ona po se causa pe un e o que li es a passan una neu ona an e io .
Pe p opaga aques e o d’una o ma e icien s’u ili zen les següen ó mules.
L’e o en la capa de so ida, s’exp essa com.
𝛿𝑗𝑙= ∇𝑎𝐶⊙𝜙′(𝑧𝐿)
(6)
El p ime e me ∇𝑎𝐶 a e e ència a la eloci a en que can ia la unció de cos amb
l’ac i ació de la neu ona 𝑎. El segon, 𝜙′(𝑧𝐿), ep esen a la eloci a en que can ia la unció
d’ac i ació.
L’e o 𝛿𝑙 en e mes d’e o en la següen capa 𝛿𝑙+1.
𝛿𝑗𝑙=((𝑤𝑙+1)𝑇𝛿𝑙+1)⊙𝜙′(𝑧𝐿)
(7)
Aques a equació dona l’e o en la capa 𝑙 , p opaga de la capa 𝑙+1 . Ob enin aques
esul a es é l’e o 𝛿𝑙+1 i aplican la ansposició (𝑤𝑙+1)𝑇, exp essa el desplaçamen de
l’e o en la xa xa. Desp és el p oduc e Hadama d ⊙𝜙′(𝑧𝐿), asllada l’e o en e e a a es
de la unció d’ac i ació en la capa 𝑙.
G adien de can i del cos espec e a un biaix de la xa xa.
𝜕𝐶
𝜕𝑏𝑗𝑙 = 𝛿𝑗𝑙
(8)
L’e o 𝛿𝑗𝑙 es igual al g adien de can i 𝜕𝐶/𝜕𝑏𝑗𝐿.
G adien de can i de cos espec e qualse ol pes de la xa xa és.
𝜕𝐶
𝜕𝑤𝑗𝑘
𝑙= 𝑎𝑘
𝑙−1𝛿𝑗𝑙
(9)
9
Aques a equació pe me calcula les de i ades pa cials 𝜕𝐶/𝜕𝑤𝑗𝑘
𝑙 en e mes de 𝛿𝑙 i 𝑎𝑙−1 que
es saben calcula . Un cop es coneixen les di e en s equacions onamen als, a con inuació
s’enume en els passos de l’algo isme de e op opagació.
- P ime pas. El p ime pas lògic es dona una en ada pe comença l’algo isme.
- Segon pas. Consis eix en calcula la ma iu de pesos, ac i acions i biaixos pe cada.
- Te ce pas. Un cop es é el esul a de so ida, es calcula l’e o en la capa de so ida
u ili zan la unció de cos (5).
- Qua pas. Re op opagació de l’e o cap a cada capa, es calculen els ec o de
l’e o 𝛿𝐿 ins a a iba a la penúl ima capa.
- Cinquè pas. Es calculen les de i ades pa cials pe conèixe com la unció de cos
a ia en unció dels pesos i els biaixos. Amb aques g adien i aplican un algo isme
de g adien descenden [17], s’ajus en els pesos i els biaixos pe a iba al pun òp im
de la unció (7) i (8).
2.3 Xa xes neu onals con olucionals
A l’ho a de eali za la de ecció d’objec es en ima ges, les xa xes neu onals con encionals
no eali zen el ma eix anàlisis que els humans a l’ho a de de ec a objec es. Un humà pe
econèixe un gos, és ixa en els seus e s ca ac e ís ics, les o elles, la cua, el musell, la
se a o ma, en e al es. Pe con a la xa xa neu onal no dis ingeix l’objec e de la ma eixa
mane a, sen el ma eix una ima ge amb els píxels o dena s com deso dena s. A més, la
in oducció d’una ima ge en una xa xa neu onal necessi a una g an quan i a d’en ades,
una pe cada píxel i colo , causan unes necessi a s de càlculs mol ele ada [18].
Pe soluciona aques p oblema, exis eixen les xa xes neu onals con olucionals. Una xa xa
neu onal con olucional a egeix a un model adicional una sè ie de passos p e is a la capa
d’en ada amb la in enció què el model sigui capaç de dis ingi pa ons complexos.
Figu a 8. Esquema d’una xa xa neu onal con olucional (Fon : p òpia)
Les xa xes con olucionals inco po en la capa de con olució, la capa de educció i la capa
d’aplanamen , on aques a úl ima es a à connec ada di ec amen a la capa d’en ada. En
les xa xes neu onals con olucionals se solen e combinacions de capes de con olució i
capes de educció, n egades pe ob eni una millo de ecció.
De ecció i econeixemen de ma ícules pe isió a i icial
10
2.3.1 Capa de con olució
En la capa de con olució és eali za l’ope ació ma emà ica de con olució en la ima ge [19].
Aques a és an impo an que dona nom a la capa i a la xa xa, ja que es l’ope ació que
pe me oba pa ons en la ima ge.
La con olució consis eix a ecó e pe la ima ge una pe i a ma iu anomenada ke nel,
aques a ma iu eali za el p oduc e escala amb el g up de píxels de la ima ge ob enin la
no a ma iu [20]. La ó mula de la capa de con olució és.
𝑌𝑗=𝑔(𝐾𝑖𝑗 ⊗ 𝑌 𝑖
′)
(9)
Sen 𝑌 𝑖
′ la ma iu d’en ada mul iplicada pe un ke nel 𝐾𝑖𝑗, sen 𝑗 el nomb e del ke nel, i
mul iplica pe una unció d’ac i ació 𝑔, no malmen ReLu. En la següen igu a, es mos a
un exemple de càlcul de con olució [21].
Figu a 9. Exemple de con olució 1 (Fon : p òpia)
Sen els càlculs:
P ime cas: 0 ∗ 0 +0 ∗ 0+ 0 ∗ 0+ 0 ∗ 1+ 0 ∗1 + 1∗ 0 + 0∗ 0 + 0∗ 0 +0 ∗ 1 +0 ∗ 1=0
Segon cas: 0 ∗ 0 +0 ∗ 0+ 0 ∗ 0+ 0 ∗ 1+ 0 ∗1 + 1 ∗0 + 0∗ 0 + 0∗ 0 +0 ∗ 1 +0 ∗ 1=0
Com a esul a de o s els càlculs s’ob é la ma iu de so ida.
Figu a 10. Exemple de con olució 2, ma iu esul a (Fon : p òpia)
La eali zació de con olucions combinades amb di e en s ke nels és el que li pe me a la
xa xa neu onal con olucional oba pa ons. Pe sabe quin és el ke nel que pe me ob eni
millo s esul a s se à el model l’enca ega de oba -lo.
2.3.2 Capa de educció
Com el seu nom indica, la capa de educció edueix les ma ius a ma ius més pe i es,
man enin els ma eixos pun s ca ac e ís iques pe edui càlculs innecessa is. Una ècnica
u ili zada és el “max-pooling”, el qual causa que la ma iu de so ida és queda amb el alo
màxim de cada egió p è iamen ha en sepa a la ma iu d’en ada en di e en s egions
[22]. En la següen igu a sen mos a un exemple.
11
Figu a 11. Exemple de educció (Fon : p òpia)
2.3.3 Capa d’aplanamen
La capa d’aplanamen l’únic que eali za es con e i la ma iu esul an de les capes
an e io s i con e i -la en una llis a plana pe al de pode -la in odui en la xa xa neu onal
con encional.
2.3.4 Algo isme de e op opagació
Pe en ena les xa xes neu onals con olucionals es eali za de o ma mol simila a les
con encionals. Els di e en s alo s de la ma iu de ke nel son ac a s com pesos de les
neu ones que s’han d’ajus a pe disminui l’e o , di d’al a mane a, els ke nels son
anali za s com si ossin una neu onal més de la xa xa, una a iable més [23].
Un cop es coneix l’es uc u a de la xa xa neu onals, pe al d’ob eni un bon esul a , és an
impo an eni un bon model com eali za un bon en enamen . Aques depèn de di e en s
ac o s, el se de dades, un conjun ele a de dades és impo an així com la se a di e si a
i l’equilib i en e les di e en s classes. Un al e aspec e és l’augmen de dades, l’augmen
de dades consis eix a c ea no es ima ges a pa i d’exis en s eali zan o acions o aplican
il es en elles pe gene a més condicions di e en s. Finalmen , el nomb e d’èpoques en
l’en enamen del model, passa una sola egada el se de dades pel model, no
s’aconsegueix ob eni un bon esul a , pe an , el se de dades s’ha de passa un nomb e
de egades pel model ins a ob eni un millo esul a .
2.4 Fases del econeixemen au omà ic de ma ícules
Pe conèixe millo la p oblemà ica del econeixemen au omà ic de ma ícules, es
desc iuen els p incipals handicapa s pe ob eni una bona solució.
- Va iacions en la ma ícula. Les ma ícules es poden oba en di e en s zones de les
ima ges, en la ima ge es poden oba més d’una ma ícula i amb dimensions
di e en s. El colo de la ma ícula po se di e en , així com el on dels ca àc e s. A
més, la ma ícula ambé es po oba pa cialmen amagada o amb una ce a
inclinació pe culpa de la pe spec i a de la ima ge.
- Va iacions ambien als. El can i d’il·luminació és un dels majo s hàndicaps del
ac amen d’ima ges, di e en s condicions me eo ològiques p o oquen di icul a s
en la se a lec u a. Al es elemen s en la ima ge, com poden se ca ells publici a is
o è ols de bo igues poden di icul a -ne la iden i icació de la ma ícula.
Pe al de esold e el p oblema plan eja , aques po se di idi en di e en s ases. Les
p incipals ases pe la esolució de l’ANPR són:
- La p ime a ase consis eix en l’ob enció de la ima ge. En aques p ime p océs són
impo an s la esolució de la càme a, el ipus d’ima ge que s’ob é, cada quan
s’ob enen les ima ges i com s’ob enen les ima ges.
De ecció i econeixemen de ma ícules pe isió a i icial
12
- La segona ase consis eix en l’ex acció de la ma ícula de la ima ge. En aques a
ase depenen del ipus d’ima ges s’u ili zen unes ècniques o al es, amb l’objec iu
de dis ingi les ma ícules de la es a d’objec es de la ima ge pe mi jà de les
ca ac e ís iques que enen les ma ícules.
- El e ce p océs adica en la segmen ació de les lle es i núme os de la ma ícula
pe al d’ob eni una ima ge sepa ada de cada ca àc e pe pode aplica l’úl im
p océs.
- L’úl im p océs a e e ència al econeixemen de ca àc e s. A pa i de l’an e io
segmen ació elaciona el con o n amb el ca àc e co esponen pe acaba en una
bona lec u a de la ma ícula.
2.5 Ex acció de la ma ícula de la ima ge
L’ex acció de la ma ícula in luencia en la p ecisió del sis ema ANPR, on els inpu s són les
ima ges dels co xes i els ou pu s una po ció de la ima ge que con é una po encial ma ícula
del co xe. Pe la esolució d’aques a ase s’u ili zen di e en s ècniques.
Aques es ècniques són u ili zades en el p ocessamen de les ima ges, on es ixa en
ca ac e ís iques de les ma ícules pe ex eu e-les de la ima ge ob inguda, com són:
- Ca ac e ís iques geomè iques, la se a o ma ec angula o les di e en s línies
pa al·leles són buscades pe iden i ica ma ícules en la ima ge.
- In o mació global de la ima ge pe ex eu e la ma ícula. Pe exemple, Connec ed
componen analysis (CCA) u ili za en ima ges binà ies [24], o mesu es espacials,
com a a l'à ea i la elació d'aspec e ambé són e s se i .
- L’ex acció de ma ícules pe la ce ca de ca ac e ís iques de ex u es. Aques
mè ode busca els ca àc e s de la ma ícula en la ima ge, buscan un can i
signi ica iu en el ni ell d’escala de g isos en e el colo dels ca àc e s i el colo de
ons de la ma ícula. La ce ca de pics en un His og ama, la u ili zació de la
eqüència especial mi jançan la ans o mada disc e a de Fou ie [25], les ones de
Haa , [26], o la Wa ele ans o m [27], ambé són usa s pe ans o ma la
in o mació de la ima ge de al mane a de pode iden i ica aspec es conc e s que
dis ingeixin la ma ícula de la es a d’elemen s en la ima ge.
- Ex acció de ma ícules mi jançan ca ac e ís iques de colo . La idea p incipal en
aques cas és que la combinació de colo s de la placa en e els ca àc e s i el seu
ons és única. Aques a combinació es p odueix gai ebé només en una egió de la
ima ge. Pe e -ho s’usen algo ismes genè ics [28], pe de e mina els lími s
supe io s i in e io s de la sa u ació de la ima ge o el ni ell de b illan o . També, les
in e seccions en un his og ama ponde a gaussià son e es se i pe de ec a la
ma ícula en coincidi els seus colo s. O el model de colo HSI [29], que di e encia
més els elemen s pel seu colo , és una ècnica que ajuda a selecciona les egions
candida es a pa i d’uns llinda s es adís ics.
- Iden i icació de ma ícules en se i les ca ac e ís iques dels ca àc e s. Aques
mè ode de e mina la ma ícula en la ima ge pe la p esència de ca àc e s en ella. Si
es oben ca àc e s, aquella egió és ex e a com la egió de la ma ícula.
13
Finalmen , la combinació de la ce ca de més d’una de les an e io s ca ac e ís iques ambé
és u ili zada, així i o , amb el hàndicap d’un majo cos compu acional. Si l’aplicació no
eque eix un ex emadamen al g au de p ecisió, amb el emps ex a su icien que causa
la combinació, la u ili zació de només un dels an e io s mè odes és més que su icien .
D’al a banda, pe ex eu e la ma ícula de la ima ge ambé s’u ili zen xa xes neu onals
con olucions CNN. Da e amen a casa de l’augmen de la capaci a de compu acional dels
o dinado s disponibles [30]. Tècniques d’ap enen a ge p o und són usades pe esold e
p oblemes simila s. En la u ili zació d’aques a ècnica són necessà ies majo s se s
d’ima ges i un emps d’en enamen supe isa p e i, pe al, d’ob eni els pesos de
l’es uc u a que se i an pe classi ica i ex eu e les ma ícules de la es a dels elemen s
de la ima ge. Un exemple d’ell és l’a icle [31] Me hodology o an Au oma ic License Pla e
Recogni ion Sys em using Con olu ional Neu al Ne wo k o a Pe u ian Case S udy.
En l’an e io a icle u ili za l’a qui ec u a MTCNN la qual es di ideix en un mòdul de de ecció
i un mòdul de econeixemen . El p ime mòdul, en el qual eali za l’ex acció de la ma ícula
en la ima ge, disposa de es xa xes, la p ime a, P-Ne xa xa de p opos es, la qual ob é el
quad a delimi ado i a se i supe isió no màxima (NMS) pe ob eni la millo de ecció pe
la ma ícula. La segona, R-Ne , xa xa de e inamen que il a els candida s nega ius que
enen de ec es, op imi zan la p edicció dels candida s selecciona s. Finalmen , O-ne ,
xa xa de so ida que iden i ica els è ex de la placa.
2.6 Segmen ació de la ma ícula
A con inuació, la ma ícula aïllada és segmen ada pe ex eu e els ca àc e s pe al
econeixemen . Una ma ícula ex e a de l’e apa an e io po eni alguns p oblemes, com
a a la inclinació, dimensions di e en s a causa del zoom de la càme a, a més d’una possible
b illan o no uni o me. Els algo ismes de segmen ació han de supe a o s aques s
p oblemes en el p ep ocessamen . Escolli un llinda inadequa pe a la bina i zació de la
ma ícula ex e a po dona lloc a ca àc e s uni s. Les p incipals ècniques que s’u ili zen
pe millo a la quali a de la ima ge són l’eliminació de so oll, l’equali zació d’his og ama i la
millo a de con as . Pe soluciona aques p oblema, en l’a icle [32], es oba que la mida
dels ca àc e s ep esen en ap oximadamen el 20% de la ma ícula, a con inuació ajus a
l’escala de g isos en e 0 i 100, desp és el 20% més g an de píxels són mul iplica s pe
2,55 des acan d’aques a mane a els ca àc e s en la ima ge. D’al a banda, al es mè odes
com la bina i zació adap a i a són no malmen usa s. A con inuació, es ca ego i zen els
exis en s mè odes de segmen acions de ma ícula segons les se es ca ac e ís iques.
- Segmen ació de la placa de llicència mi jançan la connec i i a de píxels [33].
S’anali zen els píxels e ique a s i els que enen una mida simila . Seguidamen , a
pa i d’una elació d’aspec e els di e en s ca àc e s són sepa a s.
- Segmen ació de ma ícula mi jançan pe ils de p ojecció. Pe mi jà de les
p ojeccions ho i zon al i e ical en e els píxels dels ca àc e s i el ons, s’ob enen
els di e en s ca àc e s [24].
- Segmen ació de ma ícules pe pics en el eco egu . En aques mè ode el que es
a es eco e ho i zon almen les ma ícules pe eu e on comença i on acaba cada
ca àc e [34]. A pa i d’aquí es sepa en els pics, sen cada un d’ells un ca àc e
di e en .
- Segmen ació de ma ícules mi jançan con o ns [35]. La locali zació del ca àc e es
eali za a pa i d’un g adien de cu a u a i d’in ensi a pe al de sepa a els
di e en s ca àc e s.
De ecció i econeixemen de ma ícules pe isió a i icial
20
de ecció disposa de di e en s e sions i des del 2016 el seu desen olupamen ha
augmen a mol àpidamen .
3.3 A qui ec u a de YOLO
L’algo isme YOLO aga a una ima ge com en ada i desp és u ili za simplemen una xa xa
neu onal con olucional p o unda i en de ec a els di e en s objec es en la ima ge.
L’a qui ec u a de la xa xa neu onal con olucional CNN, es mos a en la igu a de
con inuació.
Figu a 14. A qui ec u a de l’algo isme YOLO (Fon : [45])
Com es mos a en l’an e io ima ge, YOLO é un o al de 24 capes con olucionals, qua e
capes d'ag upació màxima, maxpool laye , i dues capes comple amen connec ades en la
pa inal.
Les p ime es 20 capes con olucionals del model són en enades p è iamen mi jançan la
base de dades ImageNe [46], a a és de la connexió de la mi jana empo al d’una
ag upació i una capa comple amen connec ada. A egi con olució en una capa connec ada
amb una xa xa en enada amb an e io i a en millo a el endimen . Aques model en ena
és u ili za pe eali za la de ecció.
P ime amen YOLO, di ideix la ima ge en una quad ícula de cel·les de S x S. Pe cada
objec e que es obi en la ima ge, la cel·la que con ingui l’objec e se à la esponsable de
p edi -lo. Cada cel·la de la quad ícula p ediu el quad e delimi ado B així com la p obabili a
d’una sola classe C. En la p edicció el quad e delimi ado indica (x, y, w, h, con iança), sen
x i y el cen e de coo denades de l’objec e, w i h l’amplada i l’alçada del quad e delimi ado
de l’objec e, i la con iança el g au de p obabili a que la p edicció sigui la classe.
El càlcul de la con iança es po eu e en la següen ó mula, sen IOU, la in e secció sob e
la unió del quad e delimi ado p edi espec e el eal. D’aques a mane a s’aconsegueix que
el seu alo pe cel·les que no enen objec e sigui igual a ze o i no penali zi en la unció de
pè dues.
P ( 𝑜𝑏𝑗𝑒𝑐𝑡𝑒) ∗ 𝐼𝑂𝑈( 𝑝𝑟𝑒𝑑,𝑟𝑒𝑎𝑙)
(10)
Saben que s’ob é un ec o de lla gada 5 pe cada cel·la, el esul a se à un ec o de S x
S x (B * 5 + C). Un cop les p ediccions són codi icades, s’u ili za aques a pe la CNN amb
una ma iu de con olució u ili zan max pooling, segui de 2 capes o almen connec ades
al inal. Si en una casella no es oba en cap objec e, la llis a de so ida amb la p obabili a
de la de ecció, les dimensions del quad e delimi ado i la classe de ec ada, es a à buida.
En can i, si es de ec a dos objec es o més, se’n conca ena an els di e en s esul a s.
21
YOLO p ediu múl iples egions po encials pe cada quad ícula. En en enamen , només es
ol una sola egió po encial pe cada objec e de la ima ge. YOLO assigna una p edicció de
les egions po encials que se à la que inalmen ep esen i com a més p obable o e dade a.
Pe e -ho, selecciona aquella p edicció po encial que é un majo g au de ce esa a a és
de la mè ica d’in e secció sob e la unió (IOU).
Finalmen , YOLO u ili za la sup essió no màxima (NMS), en anglès non-maximum
supp ession. NMS és un pas de pos p ocessamen que s’usa pe millo a la p ecisió i
l’e iciència de la de ecció d’objec es. En la de ecció d’objec es és habi ual que es gene in
di e sos quad es delimi ado s pe a un únic objec e d’una ima ge. Aques s equad es
delimi ado s es poden supe posa o si ua en di e en s posicions, pe ò o s ep esen en el
ma eix objec e. NMS es a se i pe iden i ica i elimina quad es delimi ado s edundan s
o inco ec es, i pe gene a una única quad ícula delimi ado a pe a cada objec e de la
ima ge. Aques a úl ima quad ícula delimi ado a, se à el esul a de la p edicció pe l’objec e.
Du an l’en enamen pe calcula la di e ència en e el esul a p edi i el eal, s’u ili za una
unció de pè dues que calcula l’e o . Aques a unció de pè dues que s’u ili za a e e ència
a la di e ència en e els cen es dels objec es. El p ocedimen mos a és del model o iginal.
𝜆𝑐𝑜𝑜𝑟𝑑∑∑1𝑖𝑗
𝑜𝑏𝑗
𝐵
𝑗=0 (𝑥𝑖−𝑥𝑖)2+(𝑦𝑖−𝑦𝑖)2
𝑆2
𝑖=0
(11)
Aques a equació eali za la suma de les di e ències. Sen (𝑥,𝑦) les posicions del quad e
delimi ado p edi es i (𝑥,𝑦) les posicions del quad e delimi ado de les eals, u ili zades en
l’en enamen . Pe cada quad e delimi ado p edi (𝑗=0,…,𝐵) i pe cada cel·la de la
quad ícula (𝑖=0,…,𝑆2). D’al a banda, 1𝑜𝑏𝑗 é un alo igual a 1 si el cen e de l’objec e es
oba en la cel·la de la quad ícula 𝑖𝑗 i el seu alo és igual a 0 si no s’hi oba. 𝜆𝑐𝑜𝑜𝑟𝑑 és una
cons an . La segona unció de pè dues que es a se i a e e ència a l’amplada i a l’alçada.
𝜆𝑐𝑜𝑜𝑟𝑑∑∑1𝑖𝑗
𝑜𝑏𝑗
𝐵
𝑗=0 (√𝑤𝑖−√𝑤𝑖)2+(√ℎ𝑖−√ℎ
𝑖)2
𝑆2
𝑖=0
(12)
Aques a equació és simila a l’an e io i es calcula l’e o espec e a l’amplada 𝑤 i l’alçada
ℎ del quad e delimi ado . En aques cas és u ili zada la di e encies de l’a el quad ada,
pe què es ol pa cialmen aconsegui que les di e ències en quad es delimi ado s pe i s
inguin majo pes que les ma eixes di e ències en quad e delimi ado s g ans. La e ce a
unció de pè dues a e e ència a la con iança de la p edicció.
∑∑1𝑖𝑗
𝑜𝑏𝑗
𝐵
𝑗=0 (𝐶𝑖−𝐶𝑖)2+ 𝜆𝑛𝑜𝑜𝑏𝑗∑∑1𝑖𝑗
𝑛𝑜𝑜𝑏𝑗
𝐵
𝑗=0 (𝐶𝑖−𝐶𝑖)2
𝑆2
𝑖=0
𝑆2
𝑖=0
(13)
En l’equació 𝐶 és la pun uació de con iança i 𝐶 la in e secció sob e la unió del quad e
delimi ado p edi espec e al eal u ili za en l’en enamen . 1𝑖𝑗
𝑜𝑏𝑗 é el ma eix alo que en
els casos an e io s. I 1𝑖𝑗
𝑛𝑜𝑜𝑏𝑗 és el con a i de 1𝑖𝑗
𝑜𝑏𝑗 . La cons an 𝜆 usada en les an e io s
uncions, se eix pe ponde a les pè dues i augmen a l’es abili a del model. Pe la unció
de pè dues de coo denades es a se i una 𝜆=5, pe con a, pe la unció de pè dues en
la con iança, en eni menys pes s’usa una 𝜆=0,5. Finalmen , es eali za la classi icació
de les pè dues.
∑1𝑖𝑜𝑏𝑗
𝑆2
𝑖=0 ∑(𝑝𝑖(𝑐)−𝑝𝑖(𝑐))
𝑐∈𝑐𝑙𝑎𝑠𝑠𝑒𝑠
2
(14)
Aques a unció s’u ili za pe no penali za l’e o de classi icació quan no hi ha cap objec e
en la cel·la de la quad ícula.
De ecció i econeixemen de ma ícules pe isió a i icial
22
Ac ualmen , YOLO disposa de di e en s e sions que han ana millo an l’an e io , [9]. A
con inuació es desc iuen b eumen pe conèixe les millo es que s’han ana eali zan en el
model.
3.4 Ve sions de YOLO
3.4.1 YOLO 2
YOLO 2, ambé anomena YOLO900, a se publica el 2016 com una millo a de
l’algo isme o iginal de YOLO, amb la inali a d’augmen a la apidesa i la p ecisió del codi
o iginal a la egada de se capaç de de ec a més classes. Pe e -ho YOLO 2 u ili za una
CNN di e en com a columna e eb al, anomenada Da kne -19. Al es millo es in oduïdes
són la u ili zació d’ima ges amb di e en s escales de la ma eixa en el seu en enamen i una
pos e io no mali zació, millo an així la de ecció en egions pe i es. Finalmen , YOLO a
se i una no a unció de pè dua o de cos .
3.4.2 YOLO 3
YOLO 3, és la e ce a e sió de YOLO. Pe millo a -ne els esul a s s’u ili za una no a
CNN, anomenada Da kne .53 la qual é 53 capes con olucionals. A més, en aques a e sió
s’usen les egions po encials p è iamen de inides de l’an e io e sió, pe ò en aques cas
amb escales i elacions d’aspec e di e en s, millo an així la de ecció d’objec es de di e en s
mides i o mes. També s’in odueix el concep e de xa xa pi amidal de ca ac e ís iques, en
anglès ea u e py amid ne wo ks (FPN), on cada ni ell de la pi àmide és e se i pe
de ec a objec es de di e en s escales, pe me en així pode eballa amb un majo ang
de dimensions d’objec es.
A pa i de la e sió YOLO 4, el c eado de YOLO Joseph Redmond a deixa de eballa
en l’algo isme, causan que les u u es e sions no siguin o icials i siguin majo i à iamen
eali zades pe al es coau o s.
3.4.3 YOLO 4
YOLO 4 és la qua a e sió, publicada el 2020 pe Bochko skiy e aI. com a millo a de la
YOLO 3. I p ime a e sió no publica pe Joseph Redmond.
La millo a p incipal és la u ili zació d’una no a a qui ec u a de CNN, anomenada CSPNe .
CSPNe p o é de C oss S age Pa ial Ne wo k, en ca alà es pod ia adui com xa xa pa cial
d’es a s c ea s. CSPNe és una a ian de ResNe amb 54 capes con olucionals, poc
p o unda.
YOLO 4 ambé u ili za les egions po encials p è iamen de inides. En YOLO 4
s’in odueix un nou mè ode pe gene a aques es egions po encials p è iamen de inides,
anomena K-means clus e iong, ag upació pe k mi jana. Aques mè ode a se i un
algo isme d’ag upació pe ajun a les caixes delimi ades en g ups i desp és emp a els
cen oides dels g ups com a quad es delimi ado s. Això pe me que els quad es
delimi ado s es iguin més alinea s amb la mida i la o ma dels objec es de ec a s.
També s’in odueix un nou e me de unció de pè dua anomena GHM loss, el qual és usa
pe millo a els esul a s pe bases de dades desequilib ades.
3.4.4 YOLO 5
YOLO 5 a se publica el 2022 pel ma eix equip que a desen olupa l’algo isme o iginal
de YOLO com un p ojec e de codi obe i man ingu pe Ul aly ics. En aques a e sió de
23
l’algo isme, com a xa xa es uc u al es a u ili za la CNN E icien Ne . A més, a di e ència
del p ime YOLO, s’en ena les p ime es capes amb el se de dades D5 con o mada pe
600 ca ego ies d’objec es. Respec e a les caixes d’anco a ge, YOLO usa un nou mè ode
pe gene a les caixes anomenades dynamic ancho boxes. També, es millo a espec e
YOLO o iginal en se i un nou concep e de la pi àmide d’ag upació espacial, en anglès
spa ial py amid pooling (SPP), usa pe edui la esolució espacial dels mapes de o ma.
YOLO 5 ambé in odueix un nou e me anomena CIoU loss sen una a ian de la unció
de pè dues de IoU.
3.4.5 YOLO 6
YOLO 6 a se p oposa el 2022 pe Li e aI. Com a millo a espec e a les e sions
an e io s, una de les p incipals di e ències en e YOLO 5 i YOLO 6 és l’a qui ec u a CNN
u ili zada. YOLO 6 u ili za una a ian de l’a qui ec u a E icien Ne anomenada
E icien Ne -L2. És una a qui ec u a més e icien que E icien Ne u ili zada a YOLO 5, amb
menys pa àme es i una majo e iciència compu acional, ob enin esul a s d’úl ima
gene ació en di e sos pun s de e e ència de la de ecció d’objec es. YOLO 6 ambé
in odueix un nou mè ode pe gene a quad es delimi ado s, anomena quad es
delimi ado s densos, en anglès dense ancho boxes.
3.4.6 YOLO 7
La p incipal millo a de YOLO 7 espec e a les an e io s e sions és en la u ili zació dels
quad es delimi ado s. Els quad es delimi ado s són un conjun de quad es p è iamen
de ini s amb di e en s p opo cions d’aspec e que s’u ili zen pe de ec a objec es de
di e en s o mes. YOLO 7 u ili za nou quad es delimi ado s amb un nou model que li
pe me de ec a una àmplia gamma de o mes i mides d’objec es, en compa ació amb
e sions an e io s, ajudan així a edui el nomb e de alsos posi ius. També, u ili za una
no a unció de pè dues anomenada ocal loss. Aques a úl ima unció pe me cen a -se en
aquells casos més complica s pe ob eni el màxim endimen . YOLO 7 ambé é una
esolució més al a que les e sions an e io s. P ocessa ima ges a una esolució de 608 x
608 píxels, que és supe io a la esolució de 416 x 416 píxels u ili zada en YOLO 3.
3.4.7 YOLO 8
En el momen que s’es à esc i in aques documen , YOLO 8 es à disponible a Ul aly ics,
pe ò enca a no s’ha publica cap documen .
3.5 Desc ipció de l’en enamen
Un cop es é un se de dades e ique ada i un algo isme de xa xa neu onal ia , es desc iu
el p ocedimen u ili za pe en ena la xa xa pel conjun d’ima ges pe sonali za .
Pe e l’en enamen és necessà ia una GPU, no malmen una pe sonal ísica no es
disposa de a ge es disponibles pe eali za un en enamen . Així, pe ò, exis eixen llocs
web i aplica ius que pe me en en ena el model. Un exemple és el lloc web Robo low [48],
web que inicialmen s’ha e se i pe en ena i p o a els p ime s models, o ambé es po
u ili za el ma eix lloc web que dona supo a YOLO, Ul aly ics [49]. En aques cas, s’ha
oba més adien usa la e sió de pagamen de Google Colab, u ili zan l’opció
d’accele ado de p og ama i la GPU A100. Pujan el se de dades a Google D i e i en
se i els seus se ido s s’ha en ena el model a pa i de l’algo isme que es mos a en el
següen equad e.
De ecció i econeixemen de ma ícules pe isió a i icial
24
P ime de o , el que es a és connec a el Google Colab amb el Google D i e, indican el
di ec o i on es é el se de dades, això és eali za en les línies 2, 3 i 4 del codi. Seguidamen ,
s’ins al·la Ul alyc ics i s’impo a la llib e ia de l’algo isme YOLO, línies 5 i 8. To segui és
necessa i ia a pa i de quin model es ol en ena . Si és la p ime a egada, com és el
cas, es ia un model p è iamen en ena que supo a Ul aly ics, línia 11. Si no, es po
en ena a pa i d’un al e p opi model p è iamen en ena , línia 13. Pe aques cas s’ha
ia el model "yolo 8m.yaml", aques model és un model de de ecció de mida mi jana.
YOLO disposa de models de de ecció, segmen ació, classi icació i posició.
El model de de ecció de YOLO e o na la posició i la classe de l’objec e, el model de
segmen ació e o na el conjun de píxels i la classe a la qual pe anyen, el model de
classi icació e o na la classe de l’objec e suposan que solamen hi ha una classe pe
objec e i inalmen el model de posició e o na les posicions on es oben la classe.
En aques cas, s’ha p e e i e us de la de ecció, ja que es ol e la segmen ació de o ma
manual, desp és d’una a aluació de la de ecció. Cal ema ca que en la de ecció ambé
se’n e o na la se a locali zació. A més, pe cada un dels models an e io s exis eixen 5
dimensions de xa xes neu onals, pe aques cas, la YOLO 8n amb una dimensió nano, la
YOLO 8s amb una dimensió small, la YOLO 8m amb una dimensió medium, la YOLO 8l
amb una dimensió la ge, i la YOLO 8x amb una dimensió ex a la ge. Pe aques cas s’ha
u ili za la YOLO 8m, més enda an es compa en els esul a s pe les al es xa xes.
Finalmen , s’en ena el model, línia 15, pe al conjun d’ima ges. En l’en enamen s’ha
decidi u ili za 80 èpoques. Pe acaba , es gua den els esul a s en un di ec o i de Google
D i e, línies 18, 19 i 20.
1 # Connec ion wi h Google D i e di .
2 om google.colab impo d i e
3 d i e.moun ('/con en /gd i e')
4 ROOT_DIR = '/con en /gd i e/My D i e'
5 !pip ins all ul aly ics
6 impo os
7
8 om ul aly ics impo YOLO
9
10 # Load a model i i is he i s ime
11 model = YOLO("yolo 8m.yaml")
12 # Load a p e ain model
13 # model = YOLO( os.pa h.join(ROOT_DIR, "Las _ ained_model/bes _0417.p "))
14 # T ain he cus omized model
15 esul s = model. ain(da a=os.pa h.join(ROOT_DIR, "Da ase /da a.yaml"), epochs=30)
16
17 # Sa e he esul s
18 impo locale
19 locale.ge p e e edencoding = lambda: "UTF-8"
20 !scp - /con en / uns '/con en /gd i e/My D i e'
Cal e esmen especí ic que el alo de 80 èpoques s’ha ob ingu a pa i d’expe iència.
Pe e -ho, s’ha en ena el model pe un nomb e ele a d’èpoques. Desp és d’aques
en enamen i a aluan el esul a , Figu a 15, es mos a que a pa i d’un ce nomb e
d’èpoques l’a aluació del model, p ecisió i ecall, en unció del nomb e d’èpoques ja no
millo a. El ecall, mè ica en anglès, en ca alà se l’anomena eclam o sensibili a com a
a iable es adís ica. A pa i del esul a , desp és d’un en enamen de 300 èpoques,
25
Figu a_15, s’ha decidi u ili za les 80 èpoques com a nomb e d’èpoques a pa i del qual
el model ja no millo a.
Figu a 15. A aluació de l’en enamen del model al lla g de 300 èpoques eix x, i la mè ica en l’eix
y (Fon : p òpia)
Pel que a a p es acions u ili zades, Google Colab P o disposa de 25,5 GB de RAM del
sis ema, 16,0 GB de RAM de GPU i 166,8 GB disponibles de Disc. En la següen igu a,
Figu a 16, es mos a les g à iques del consum du an l’en enamen amb els seus pics
màxim.
Figu a 16. Consum ob ingu du an l’en enamen (Fon : p òpia)
En quan als pics de consum, s’ha ob ingu un màxim de 7,5 GB de RAM del sis ema, 2,2
GB màxims de GPU i s’han u ili za 24,7 GB de Disk. A pa i de l’en enamen , en se i
els ecu sos an e io s s’ha aconsegui els següen s esul a s, aques s esul a s es mos en
en el següen equad e.
80 epochs comple ed in 3.098 hou s.
Op imize s ipped om uns/de ec / ain/weigh s/las .p , 52.0MB
Op imize s ipped om uns/de ec / ain/weigh s/bes .p , 52.0MB
Valida ing uns/de ec / ain/weigh s/bes .p ...
Ul aly ics YOLO 8.0.91 🚀 Py hon-3.10.11 o ch-2.0.0+cu118 CPU
YOLO 8m summa y ( used): 218 laye s, 25840339 pa ame e s, 0 g adien s, 78.7
GFLOPs
Class Images Ins ances Box(P R mAP50 mAP50-95):
all 107 139 0.939 0.902 0.955 0.805
Speed: 1.9ms p ep ocess, 2.1ms in e ence, 0.0ms loss, 4.4ms pos p ocess pe image
Resul s sa ed o uns/de ec / ain
De ecció i econeixemen de ma ícules pe isió a i icial
26
En els esul a s s’obse a que l’en enamen ha du a 3,098 ho es i el esul a s’ha gua da
en el i xe uns/de ec / ain/weigh s/bes .p i é una dimensió de 52,0 MB. La xa xa neu onal
ob inguda es à o mada pe 218 capes, 25840339 pa àme es i 78,7 GFLOPs. Un GFLPs,
Giga Floa ing Poin Ope a ions pe second, és una mesu a de endimen d’un compu ado
u ili za en el càlcul cien í ic on es eque eix un g an ús d’ope acions de coma lo an .
Aques a mè ica es basa en el endimen o al del sis ema CPU i GPU, i a associada en
la ia del model p è iamen en ena de YOLO "yolo 8m.yaml" que de e mina en pa
alguns pa àme es de la xa xa neu onal.
Pe cada època, és a di , desp és de l’a aluació de o es les ima ges de la ca pe a de ain,
s’a alua el model ob ingu a pa i de les ima ges de la ca pe a de alid. Aques a alidació
es eali za a 160 ima ges, que enen 193 ins àncies, és a di , ma ícules, p è iamen
e ique ades pe ò no u ili zades pe c ea el model. Les mè iques de l’a aluació que
desc iuen el model esul a indiquen que é una p ecisió de de ecció del 93,9%, un ecall
del 90,2%, un 95,5% mAP50 i un 80,5% de mAP50-95. Quan a l’a aluació, les mè iques
més u ili zades en models de de ecció d’objec es són mAP50 i mAP50-90. mAP signi ica,
mean A e age P ecision, pe exemple, mAP50 és usa pe la compe ició in e nacional
PASCAL VOC i mAP50-90 és a se i en la compe ició COCO. 50 o més g an i en e 50-
90 són els llinda s de IOU en la de ecció u ili za s pos e io men pe a alua i gene a la
mè ica de p ecisió.
An e io men s’ha comen a que s’ha e se i el model YOLO amb una dimensió mi jana.
En la següen aula, es mos en els esul a s an e io s pe cada una de les dimensions de
xa xa disponible.
Taula 1. Compa a i a dels esul a s de la de ecció, segons la dimensió de la xa xa
Model
P ecisió
ecall
mAP50
mAP50-90
yolo 8n
0,939
0,900
0,933
0,741
yolo 8s
0,920
0,911
0,950
0,792
yolo 8m
0,939
0,902
0,955
0,805
yolo 8l
0,935
0,908
0,943
0,795
yolo 8x
0,926
0,892
0,939
0,786
Com s’obse a en l’an e io aula, en el cas d’es udi, les dimensions d’una xa xa o al a no
mos en una g an di e ència en el esul a de la de ecció.
Al es mè iques que s’ob enen desp és de l’en enamen , es mos en en la següen igu a,
Figu a 17. En ella es mos a ain/box_loss i alid/box_loss, box_loss són la di e ència en e
l’à ea de ec ada de la ma ícula i l’à ea eal de la ma ícula al lla g de les di e en s èpoques
de l’en enamen . Pe an , com més p ope sigui el alo a 0, més simila se an les à ees
de les ma ícules de ec ades. També es mos a ain/cls_loss i alid/cls_loss, cls_loss és la
di e ència en el o al de les classes de ec ades, la ma ícula, i les eals. Pe an , com més
p ope aques alo sigui a 0, meno s males de eccions de ma ícules s’hau an eali za .
Les següen s mè iques ain/d l_loss i alid/d l_loss, sen d l_loss, daul ocal loss, una
mè ica simila a cls_loss pe ò que ambé a alua el desequilib i de la base de dades on es
oba una classe mol més que al a. Com més p ope a ze o sigui la elació, millo se an
els esul a s. Finalmen , ambé calcula la p ecisió, el ecall, mAP50 i mAP50-90 al lla g de
les di e en s èpoques. Com més p ope s siguin a 1 aques es úl imes mè iques, indica un
millo esul a en la de ecció.
27
Figu a 17. Mè iques ob ingudes desp és de l’en enamen (Fon : p òpia)
3.6 A aluació del model ob ingu
En aques subapa a es o na a a alua el model ob ingu en l’en enamen , pe ò aques
cop calculan les di e en s mè iques un cop ob ingu el i xe del model i eali zan la
in e ència en la màquina on ambé es eali za à la següen pa del eball, l’OCR. En
l’a aluació s’ha u ili za una sè ie d’ima ges del se de dades ob ingu i desconegudes pe
l’en enamen . S’ha e se i la ca pe a de es , amb 107 ima ges i s’ha augmen a ins a
un alo de 186 ima ges pe duu a e me una millo a aluació.
A di e ència dels esul a s ob ingu s en l’en enamen , on s’a alua en o es les ma ícules
que es oba en en la ima ge. En aques cas, i a causa del e que s’ha posa com a equisi
eali za la de ecció d’una sola ma ícula en la ima ge. Es calculen una sè ie de mè iques
pe aquella ma ícula més g an, cen ada i que es obi en la se a o ali a en la ima ge.
Es calcula la IOU, in e sec ion o e union de les ima ges de es , la qual indica quan de
simila és l’à ea de ec ada espec e a la eal. IOU s’ob é di idin pe cada una de les
ima ges, l’à ea de supe posició en e l’à ea d’unió. Els esul a s aconsegui s són.
Taula 2. In e sec ion O e Union, IOU, del model de de ecció
Valo mi jà IOU
0,7558
Valo màxim IOU
0,9788
Valo mínim IOU
0,0932
Des iació es ànda d de IOU
0,2135
Valo medià IOU
0,8303
Com més p ope a 1 sigui el alo , més simila l’à ea de de ecció a l’à ea eal és. Pe an ,
sen 0,8303 la mediana, s’ob é una simili ud del 83,03% de l’à ea de ec ada espec e a la
eal. En aques cas a di e ència de les mè iques mAP50 i mAP50-90 no s’u ili za cap llinda
de IOU, es c eu que només a aluan una sola ma ícula els esul a s ja hau ien de se p ou
bons.
Pe a alua el model, ambé se’n calcula la ma iu de con usió no mali zada. Sen 1 la
p esència de ma ícula i 0 la no p esència en la ima ge. La ma iu de con usió a di e ència
d’un alo de p ecisió pe me a alua el esul a pe bases de dades desequilib ades o no
del o equilib ades.
De ecció i econeixemen de ma ícules pe isió a i icial
28
Figu a 18. Ma iu de con usió no mali zada del model de de ecció. 1 p esència de ma ícula 0 no
p esència (Fon : p òpia)
A pa i de l’an e io ma iu, Figu a 18, es é que els T ue Posi i e TP són 146, els False
Posi i e FP són 2, els False Nega i e FN 5 i els T ue Nega i e TN són 33. És a di , del o al
de les 186 ima ges, 146 enien ma ícula i s’han de ec a de o ma co ec a, 33 no enien
ma ícula i s’han de ec a de o ma co ec a, 2 no enien ma ícula pe ò se n’ha de ec a i 5
ima ges del o al es enien ima ges, pe ò no s’han locali za .
Amb els an e io s alo s es calcula els següen s indicado s.
Taula 3. Mè iques d’a aluació de la in e ència de la de ecció de ma ícules
Mesu a
Valo
Equació
Exac i ud
0,9623
E = ( TP + TN) / (TP + TN + FP + FN)
P ecisió
0,9864
P = TP / (TP + FP)
Sensibili a
0,9668
R = TP / (TP + FN)
Pun uació F1
0,9765
F = 2 * (P * R) / (P + R)
De ca a a a alua els di e en s esul a s, cal eni p esen que l’exac i ud és u ili zada
majo i à iamen pe conjun s de dades equilib ades on els bons posi ius i els bons nega ius
són més impo a s. La p ecisió, es u ili zada pe a alua aquells casos en què els alsos
posi ius són els més impo an s, i la sensibili a pe aquells on els alsos nega ius són els
més impo a s. Finalmen , la pun uació 1, es u ili zada pe bases de dades desequilib ades
on els alsos nega ius i els alsos posi ius són elle an s.
En el cas d’es udi les mesu es que millo desc iuen el model segons el se de dades que
es é, és la pun uació F1 pel e de eni un se de dades conside ablemen desequilib a
amb més posi ius que nega ius, més ima ges amb ma ícules que no. L’al a mesu a
impo an a eni en comp e és la sensibili a . Es conside a elle an la sensibili a , pel e
de se més impo an els alsos nega ius que els alsos posi ius. En el cas d’es udi un als
posi iu semp e es po desca a si no es oben símbols o l’es uc u a d’una ma ícula en
ella. D’al a banda, un als nega iu mai s’acaba à d’a alua pe la pa de l’OCR i la
in o mació de la ma ícula se à pe duda.
29
3.7 A aluació de la in e ència
Un cop en ena el model, es desca ega el documen , bes .p , que gua da YOLO en la
ca pe a de esul a s. En aques documen es gua den els pesos de la xa xa neu al quan
s’han ob ingu els millo s esul a s desp és de l’a aluació pe cada època.
La in e ència s’ha eali za en un o dinado pe sonal a pa i de la c eació d’un en o n i ual
de Py hon. En ell es desca eguen la p incipal llib e ia Ul aly ics que dona el supo de
YOLO. S’ha du a e me d’aques a mane a, ja que és ecomanable a l’ho a d’u ili za -la, pel
e d’e i a con lic es en e e sions de llib e ies p è iamen ins al·lades. Aques en o n es
c ea amb les següen s ins uccions.
py hon -m en s udysession
s udysession Sc ip s ac i a e
pip ins all ul aly ics
pip ins all openc -py hon
Un cop c ea l’en o n i ual, la in e ència del model en ena en una ima ge desconeguda
es eali za de la següen o ma. En el codi de con inuació, p ime s’impo en les di e en s
llib e ies d’Ul aly ics i la llib e ia OpenCV, e e en en el p ocessamen d’ima ges, línies 2 i
3. Seguidamen , s’ob é el model YOLO a pa i de la lec u a del i xe bes _0419.p , línies
6 i 7, es llegeix la ima ge a a alua u ili zan la llib e ia OpenCV, línies 10 i 11, i inalmen
es eali za la p edicció a pa i del model, línia 14.
1 # Lib a ies
2 om ul aly ics impo YOLO
3 impo c 2
4
5 # Load model
6 model_pa h = “D:/xma i/Desk op/TFM/TFM_code/ul aly ics/bes _0419.p ”
7 model = YOLO(model_pa h)
8
9 # Load image
10 ca _pa h = "D:/xma i/Desk op/TFM/TFM_code/ul aly ics/ca _1.jpg"
11 image_ca = c 2.im ead(ca _pa h)
12
13 # In e ence
14 p edic ion = model.p edic (image_ca )
Pel que a al emps de p ocessamen , s’ha e se i la llib e ia “ ime” pe al de eu e els
di e en s emps en ca ega el model, en llegi una ima ge i en eali za la p edicció. També,
es compa a à aques s esul a s amb el emps que dona com a esul a el model desp és
de la in e ència. En el següen equad e, es mos a el codi usa .
1 # Lib a ies
2 om ul aly ics impo YOLO
3 impo c 2
4 impo ime
5 inicio = ime. ime()
De ecció i econeixemen de ma ícules pe isió a i icial
36
que els ehicles han de eni an una ma ícula da an i da e e del ehicle, i les ma ícules
han de se cla es i llegibles an de dia com de ni .
Les ma ícules dels es a s memb es de la Unió Eu opea són una placa me àl·lica o de
me ac ila de 520 mm x 110 mm gene almen , o mades començan pe l’esque a, pe una
anja bla a on hi ha la bande a de la UE i el codi del país pe anyen . Desp és a la se a
d e a es oba el codi al anumè ic. El codi al anumè ic can ia segons el país pe anyen ,
sen a l’Es a Espanyol, des de l’any 2000, una combinació de qua e dígi s i es lle es
consonan s, a excepció de la Ñ i la Q. En la següen igu a, Figu a 25, es mos a en la pa
supe io un exemple de ma ícula espanyola egis ades des del 1987 al 2000 i en la pa
in e io del 2000 a l’ac uali a .
Figu a 25. Úl ims dos ipus de ma ícules majo i à ies a l’Es a Espanyol (Fon : p òpia)
És impo an des aca que des del 2018 exis eix dos ipus de ma ícules o dinà ies pe
co xes. Les ma ícules pe ehicles en gene al, aques ipus de ma ícules són les que més
es oben en les ies públiques amb el ons de colo blanc, i els nomb es i lle es de colo
neg e. I les ma ícules pe axis i VTC que enen el ons de colo blau i les lle es de colo
blanc.
També exis eixen al es ma ícules. Les ma ícules de mo ocicle es que són iguals que les
ma ícules gene als dels ehicles pe ò amb dimensions di e en s, 220 mm x 166 mm. Al es
ma ícules di e en s són les dels ciclomo o s, o mada pe una lle a, un nomb e, es
nomb es i es lle es, en aques o d e, amb el ons g oc i les lle es neg es. Les ma ícules
dels emolcs, o mades pe una lle a, qua e nomb es i es lle es, amb el ons oig i lle es
neg es. I al es ma ícules especials com les ma ícules u ís iques i les ma ícules
diplomà iques amb codis i colo s di e en s.
En la esolució eali zada, la qual es desc iu en els següen s subapa a s, s’ha
desen olupa una solució pe de ec a i econèixe les ma ícules o dinà ies i més comuns
de l’Es a Espanyol.
4.3 P ocedimen segui en el econeixemen de ca àc e s
En aques apa a es desc iu el p ocedimen eali za pe al d’ex eu e la combinació
al anumè ica de la ima ge que con é la ma ícula. En aques p océs es é com a en ada la
ima ge e allada que només con é la ma ícula, i com a so ida un llis a de ca àc e s amb el
codi de la ma ícula.
Figu a 26. Ima ge inpu del OCR (Fon : p òpia)
37
L’an e io ima ge, Figu a 26, és la ima ge a pa i de la qual es comença a aplica els
di e en s p ocedimen s pe eali za l’OCR. P ime amen i des de l’inici, el que es a és du
a e me di ec amen la p edicció de la lec u a de ex u ili zan la llib e ia EasyOCR. Es a
a alua , com en mol es aplicacions es a, passa un il e passabaix, pos e io men eali za
una bina i zació adap a i a, i inalmen eali za un ac amen mo ològic pe acaba de
eu e el so oll. El esul a de la lec u a dels di e en s ca àc e s a se més dolen que sense
un p e i ac amen . Aques e , com s’ha comen a és a causa p incipalmen de la u ili zació
pe pa d’EasyOCR del algo isme CRAFT, a més, del e que els di e en s algo ismes que
es an se i són en ena s amb ima ges en colo . En el equad e de con inuació, en la línia
1 es mos a com es ca ega el model pe l’al abe espanyol, i com es eali za la p edicció
dels ca àc e s en la ima ge en la línia 2. La p edicció dels ca àc e s é com a en ada la
ima ge “pla e_image”, què, en el cas que es desc iu, se ia la ima ge de la Figu a 26. Pel
que a a l’al abe a usa , s’han p o a o s els al abe s disponibles pe EasyOCR i pe o s
aquells que en el seu al abe con enien o s els ca àc e s que s’u ili zen en la combinació
de la ma ícula, s’han ob ingu el ma eix esul a . Pe an , an pe l’al abe espanyol, com
l’anglès, com el ancès, en e al es, s’ha aconsegui el ma eix esul a .
1 eade = easyoc .Reade ( ['es'])
2 esul = eade . ead ex ( pla e_image)
Desp és d’aplica la lec u a, el esul a que s’ob é en la línia 2 de l’an e io equad e sen
“pla e_image” la ima ge de la Figu a 26 es mos a en el següen equad e i sob e esc i en
la ima ge de la Figu a 27. En el següen equad e s’ap ecia que pe cada econeixemen
es e o na una llis a o mada pels qua e pun s que en ol en la cadena econeguda, pel
conjun de ca àc e s de ec a s en la llis a, a més de la p obabili a del esul a de la de ecció
en an pe 1. Pe an , s’ha aconsegui la lec u a del conjun de ca àc e s, ‘E’, ‘9832’, ‘GVB’,
‘Ho o so lmpon’ i ‘nnoe’.
[
([[31, 91], [67, 91], [67, 131], [31, 131]], 'E', 0.9197586096151191),
([[107.91938723474023, 7.03437958542165], [451.5009764964854, 56.91126246104787],
[423.0806127652598, 197.96562041457835], [79.4990235035146, 149.08873753895213]],
'9832', 0.9237759528688555),
([[478.8539644141305, 50.038673329131335], [742.1026714827343, 91.54986503661299],
[713.1460355858695, 231.96132667086866], [449.89732851726563, 190.450134963387]],
'GVB', 0.9998833416630581),
([[87.34920862654403, 157.07143881944813], [265.0, 182.0], [259.65079137345595,
207.92856118055187], [82.0, 182.0]], 'Ho o so Impon', 0.22034594092672347),
([[292.2572186472918, 187.14304661822948], [350.9974195387433, 199.89843629464016],
[347.7427813527082, 215.85695338177052], [288.0025804612567, 203.10156370535984]],
'nneo', 0.0273610670119524)
]
En la següen igu a, Figu a 27, es mos a els esul a s sob e esc i s en la ima ge de la
Figu a 26.
De ecció i econeixemen de ma ícules pe isió a i icial
38
Figu a 27. Resul a d’EasyOCR de la Figu a 26 (Fon : p òpia)
Al es esul a s de di e en s ma ícules es mos en en la següen igu a, Figu a 28.
Figu a 28. Resul a s d’EasyOCR pe di e en s ma ícules (Fon : p òpia)
Amb el esul a ob ingu en l’an e io equad e, equad e supe io de la Figu a 28, se
segueixen una sè ie de p ocedimen s pe al d’ob ia aquells econeixemen s que no donen
in o mació, a més d’o dena i ajun a les di e en s lec u es quan s’obse en espais o
sepa ació de pa s del codi de la ma ícula en el econeixemen .
Pe an , p ime s’ex euen aquells ex os que no són elle an s en la ma ícula. Pe e -ho
es mi a l’à ea que ocupen aques es lec u es espec e a l’à ea de la ima ge o al. Si la
ma ícula é una ce a inclinació, aques a egió no és l’à ea de la ma ícula sinó de la ima ge.
S’ha anali za , que aquelles lec u es que ep esen en un alo in e io al 10% de l’à ea o al
de la ima ge, són lec u es que no an e e ència a la ma ícula i que solen se noms del
cen e de dis ibució o del concessiona i.
En el següen equad e es mos a com s’eliminen les egions pe i es, sen “bbox” el esul a
de la p edicció i “gene al_ esul ” el nou conjun de esul a s de la p edicció que es oben
pe sob e el llinda .
1 posx = in (bbox[0][0])
2 a ea = ound( abs((bbox[2][0] - bbox[0][0]) * (bbox[2][1] - bbox[0][1])), 2)
3 a ea_ ela ion = a ea / (c op_img_dim[0] * c op_img_dim[1])
4 i a ea_ ela ion > 0.10:
5 gene al_ esul .append([ ex , p obabili y, a ea, a ea_ ela ion, posx])
Seguidamen , s’ajun en les di e en s de eccions en una cadena de ca àc e s o s jun s
segons la se a posició x en la ima ge, d’esque a a d e a. En el p ime dels següen s
equad es es mos a com s’o denen la llis a “ ex ” i “p obabili y” segons la se a posició en
x “posx”.
39
1 # O de he ex
2 ex = [x o _,x in so ed( zip( posx, ex ))]
3 p obabili y = [x o _,x in so ed( zip( posx, p obabili y))]
4 # Pu oge he he ex
5 ex = ''.join( ex )
A con inuació, es euen aquells ca àc e s que en algunes ocasions es de ec en i que no
o men pa de la ma ícula, com poden se espais en blanc, pun s lo an s ‘ · ’, ‘ ] ‘, ‘ [ ‘, ‘ _
‘, ‘ – ‘, en e al es. Aques s alo s són ob ingu s pe una mala de ecció. En el següen
equad e es mos a l’algo isme e se i pe eu e alguns dels ca àc e s menciona s.
1 # Remo e -
2 ex = ex . eplace("-", "")
3 # Remo e .
4 ex = ex . eplace(".", "")
5 # Remo e _
6 ex = ex . eplace("_", "")
Desp és d’ex eu e aquells ca àc e s que no o men pa de l’al abe de la ma ícula. Se
solucionen p oblemà iques que es epe eixen desp és de la de ecció. Algunes di icul a s
que s’han oba i que s’han ana mi igan són:
- En el econeixemen EasyOCR sol con ond e el nomb e 4, pe la lle a L. Pe
soluciona aques p oblema i saben que les ma ícules són o mades pe un conjun
de lle es i seguidamen un conjun de nomb es. Si en el conjun de nomb es es
oba la lle a L, aques a és subs i uïda pel nomb e 4.
- També es oba que es de ec en al es ca àc e s que no exis eixen en la pa inal
de la ma ícula, on l’algo isme EasyOCR con on la zona de l’úl ima lle a i la o a
de la ma ícula com un ca àc e més. El que es a, és con a el nomb e de lle es
que con o men la ma ícula i si es con a que hi ha una lle a més de les que hi hau ia
d’ha e , s’elimina l’úl im alo de ec a .
- El ma eix de l’an e io pun , es eali za pels nomb es en la pa on al de la ma ícula,
on es oben males lec u es en la zona en e la o a de la ma ícula i el p ime
nomb e que con o ma la ma ícula.
Un cop ha en eali za les an e io s accions ja s’ob ind ia el alo del codi de la ma ícula
de o ma co ec a. En la següen igu a, Figu a 29, es mos a un esul a de colo blau sob e
esc i en la ma ícula.
Figu a 29. Resul a de l’OCR de la Figu a 26 (Fon : p òpia)
Al es esul a s es mos en en la següen igu a, Figu a 30.
De ecció i econeixemen de ma ícules pe isió a i icial
40
Figu a 30. Al es esul a s ob ingu s desp ès de l’OCR (Fon : p òpia)
4.4 A aluació dels esul a s de l’OCR
En aques subapa a s’a aluen els di e en s esul a s del sis ema de econeixemen
d’objec es desen olupa . Pe e -ho s’ha ag upa un conjun d’ima ges de l’an e io p océs,
de ecció de la ma ícula en la ima ge, amb la ma ícula ja e allada. En o al s’han
selecciona 195 ima ges desconegudes pel model. Seguidamen , s’a alua la in e ència de
l’algo isme EasyOCR ob enin les ima ges de les igu es, Figu a 27 i Figu a 28. Resul a s
aconsegui s abans de eali za el pos p ocessamen .
Pe anali za els esul a s de la p edicció d’EasyOCR s’ha c ea una ma iu de con usió.
Aques a ma iu s’ha desen olupa ixan -se amb el econeixemen de cadascun dels
ca àc e s que o men la ma ícula, ob ian la sepa ació que en alguns casos es oba en e
el conjun de nomb es i el conjun de lle es, a pa dels espais que s’acos umen a ob eni
en emig. Pe gene a la ma iu de con usió, es é que els T ue Posi i e TP són ca àc e s
que es oben i que s’han econegu de o ma co ec a, en o al se n’ha ob ingu 1225. Els
False Posi i e són aquells ca àc e s que s’han de ec a quan ealmen no exis eixen, se
n’ha ob ingu 83. Els False Nega i e FN són aquells que s’ha de ec a un ca àc e que no
co esponia al eal o que no se n’ha de ec a cap, en o al es é 57 FN. I inalmen els T ue
Nega i e en aques cas o es les ima ges e en una ma ícula i, pe an , el seu alo és igual
a 0. La ma iu calculada es mos a en la següen igu a, Figu a 31.
Figu a 31. Ma iu de con usió de la in e ència d’EasyOCR (Fon : p òpia)
41
Amb els an e io s alo s es calcula els següen s indicado s.
Taula 4. Mè iques d’a aluació de la in e ència d’EasyOCR
Mesu a
Valo
Equació
Exac i ud
0,8974
E = ( TP + TN) / (TP + TN + FP + FN)
P ecisió
0,9365
P = TP / (TP + FP)
Sensibili a
0,9555
R = TP / (TP + FN)
Pun uació F1
0,9459
F = 2 * (P * R) / (P + R)
Amb els esul a s ob ingu s en l’an e io aula, s’ob é que el econeixemen dels di e en s
ca àc e s, sense eni en comp e les sepa acions i els di e en s espais en blanc, és
sa is ac ò ia. Aconseguin una pun uació F1 del 94,59%, alo ele a i simila a la pun uació
ob inguda en la in e ència de la de ecció de ma ícules. A més, abans del pos p ocessamen
s’ha enume a els co ec es econeixemen s de la ma ícula, com a conjun del
econeixemen dels di e en s ca àc e s i ambé sense eni en comp e la sepa ació i els
espais. El pe cen a ge de co ec es de eccions i, a di e ència dels alo s ob ingu s en la
in e ència dels ca àc e s, les ma ícules només han es a econegudes co ec amen en el
73,33% dels casos.
Un cop eali za el pos p ocessamen que es desc iu en el supe io subapa a , s’ha o na
a a alua la p ecisió de l’OCR. Amb el ma eix nomb e de ma ícules, en un 91,08% de les
ocasions la ma ícula de ec ada, els qua e nomb es i les es lle es, coincideix amb la eal.
En algunes ma ícules s’ha eali za la co ec a lec u a en la majo ia dels seus ca àc e s
pe ò en al es no. Si es mi a el nomb e de ca àc e s o als on la lec u a s’ha e co ec amen ,
i saben que cada ma ícula es à o mada pe 7 ca àc e s, 4 nomb es i 3 lle es, es é que
s’ha eali za una mala de ecció en 36 ca àc e s. Això ep esen a que en un 97,36% dels
ca àc e s s’han econegu de o ma co ec a. En les aules de con inuació es mos en
alguns dels di e en s e o s ob ingu s.
Taula 5. Exemple d’un inco ec e econeixemen de la ma ícula
Nom de la ma ícula
Codi eal
Codi de ec a
Compa a i a
pla e_05
7703FWJ
7703FU
inco ec a
Al es inco ec es econeixemen s ob ingudes són:
Taula 6. Al es inco ec es econeixemen s de ma ícula ob ingu s
pla e_05
7703FWJ
7703FU
pla e_104
2259CWK
2259CHK
pla e_06
5751HWT
5751HXT
pla e_129
9105HTN
8105HTN
pla e_18
EK310ZZ
EK31OZZ
pla e_148
7873FWJ
7873FW4
pla e_33
7351JNW
7351JN
pla e_151
5839HGW
5839HGY
pla e_37
7895HVM
7895VM
pla e_152
1242JKZ
1242JZ
pla e_50
7988DVW
7988DVH
pla e_153
7818JWT
7818JHT
pla e_58
2135DGW
2135DG
pla e_154
7818JWT
7818JHT
pla e_76
1170LRH
1174RH
pla e_162
1241GJM
1216J4
pla e_80
2626KMN
2626KHN
pla e_185
4488GNV
LL88GNV
pla e_91
7134JTM
7134JTH
pla e_191
2299FWK
2299FHK
pla e_95
6665HZW
8665HZI
pla e_192
4386FDP
2386EDP
De ecció i econeixemen de ma ícules pe isió a i icial
42
Obse an els di e en s e o s ob ingu s, s’ap ecia que hi ha algunes males de eccions que
es epe eixen, sob e o amb el ca àc e W. La lle a W, se ia la lle a més complicada de
econèixe pe l’algo isme d’EasyOCR. Pe soluciona aques p oblema, es coneix que es
pod ia e un en enamen sob e EasyOCR pe a ina els esul a s. Així i o , no s’ha acaba
de eali za .
Pel que a al emps de p ocessamen , en el equad e de con inuació, es mos a l’algo isme
u ili za pe aconsegui el emps de p ocessamen de l’OCR.
1 impo easyoc
2 impo ime
3 impo c 2
4
5 # Read pla e image
6 pla e_pa h = "D:/xma i/Desk op/TFM/TFM_code/ul aly ics/pla e_01.jpg"
7 image_pla e = c 2.im ead(pla e_pa h)
8
9 s a _oc = ime. ime()
10
11 # Impo model
12 s a _impo _model = ime. ime()
13 eade = easyoc .Reade (['es'])
14 end_impo _model = ime. ime()
15
16 # In e ence EasyOCR
17 s a _in e ence_easyoc = ime. ime()
18 esul = eade . ead ex (pla e_image)
19 end_in e ence_easyoc = ime. ime()
20
21 # P ocessing esul s
22 s a _p ocessing_ esul s = ime. ime()
23 pla e_de ec ion = un ion_oc ( esul )
24 end_p ocessing_ esul s = ime. ime()
25
26 end_oc = ime. ime()
27
28 p in ("Temps o al del OCR: ", end_oc - s a _oc )
29 p in ("Temps impo a model OCR: ", end_impo _model - s a _impo _model)
30 p in ("Temps in e ència de EasyOCR: ", i_oc - inici_oc )
31 p in ("Temps de pos p ocessamen : ", s a _p ocessing_ esul s - end_p ocessing_ esul s)
Els emps ob ingu s en segons, es mos en en el següen equad e. En ell s’obse a que el
emps pe impo a el model d’EasyOCR pe l’al abe ia , en aques cas l’espanyol, a da
1,74 segons. Pe e la in e ència del model d’EasyOCR a la ima ge, es a da un o al de
0,2574 segons, i en e el pos p ocessamen 7,2 ms. Aques s esul a s s’han ob ingu en
l’o dinado pe sonal u ili za pe desen olupa el p ojec e. Cal comen a que el emps eal
de l’OCR se ia de 0,264614820 segons, ob ingu com la suma del emps d’in e ència i del
emps de pos p ocessamen , ja que el emps en impo a el model, només se ia necessà ia
eali za un sol cop i pod ia se en qualse ol momen p e i.
Temps impo a model OCR: 1.7438156604766846
43
Temps in e ència de EasyOCR: 0.2574186325073242
Temps de pos p ocessamen : 0.0071961879730224
Temps o al del OCR: 2.0084304809570312
De ecció i econeixemen de ma ícules pe isió a i icial
44
5 Discussió dels esul a s ob ingu s
Un cop desc i els di e en s p ocedimen s i els esul a s de la de ecció de ma ícules i del
econeixemen de ca àc e s. En aques apa a s’a aluen els di e en s esul a s i els
p ocedimen s du s a e me.
Pel que a a mè iques en la pa de la de ecció de ma ícules, es eco da que s’ha ob ingu
una p ecisió del 93,9% i un ecall de 90,2%. Pel que a als emps, la du ada en la cà ega
del model a se de 0,0625 segons, els emps en la cà ega de la ima ge a se de 0,0897
segons i el emps de la in e ència a se de 0,8219 segons.
Respec e al econeixemen dels ca àc e s en la ima ge. Es eco da que s’ha de ec a
co ec amen les ma ícules en un 91,08% de les ocasions. Pel que a als emps, la du ada
en impo a el model a se d’1,7438 segons, el emps en po a a cap la in e ència
d’EasyOCR a se de 0,2574 segons i el emps de pos p ocessamen a se de 0,0071 segons.
Conjun amen , eali zan el econeixemen de ca àc e s desp és de la de ecció de la
ma ícula en la ima ge, sense eni cap p océs en emig, s’ha ob ingu una p ecisió del 88,20%
en el millo dels casos, alo simila al 85,52% eò ic, calcula com la mul iplicació de les
p ecisions dels dos p ocedimen s.
En els di e en s emps compu acionals consumi s, p ime amen s’ob ien els dos emps de
cà ega del model. Els 0,0625 segons de cà ega del model YOLO i els 1,7438 segons de
cà ega del model d’EasyOCR. Això es du a e me pel e que només és necessa i ca ega
una sola egada els di e en s models pe al de de ec a i econèixe les di e en s ma ícules.
Pe an , els emps compu acionals es a an o ma s pel emps d’in e ència i el emps de
pos p ocessamen . Els emps d’in e ència són de 0,8219 en el cas de la ma ícula i de
0,2574 segons en el cas del econeixemen dels ca àc e s. Con an ambé els emps de
pos p ocessamen s’ob é un cos d’1,1761 segons, pe passa de la cà ega de la ima ge
al esul a en ex .
Taula 7. Mè iques ob ingudes al inal del econeixemen dels ca àc e s de la ma ícula
Pe cen a ge de ma ícules econegudes
88,20%
Temps compu acional consumi
1,17 segons
Amb els an e io s esul a s, i desp és d’ha e eali za els di e en s p ocedimen s, es po
a alua que. P ime amen , el emps dedica a l’en enamen del model és mol co ec e,
amb ap oximadamen 3 ho es ja s’ob é un model de de ecció de ma ícules en ena a pa i
de 672 ima ges. A més g àcies a Ul aly ics la implemen ació del esul a és du a e me de
mane a àpida i poc complexa pe una màquina Py hon.
Respec e a l’OCR, EasyOCR ha dona una al a p ecisió, del 91%, in oduin la ima ge en
colo de la ma ícula. La se a implemen ació ambé a se senzilla, a més els millo s esul a s
s’han aconsegui quan no s’ha e cap p ocessamen p e i en la ima ge. A di e ència de
Tesse ac OCR, al a llib e ia d’OCR, els esul a s ob ingu s són conside ablemen més
bons pe l’aplicació eali zada. Desp és del p ocedimen du a e me es c eu que la p ecisió
de l’OCR hau ia pogu augmen a en un en enamen especí ic amb EasyOCR, així i o ,
aques en enamen no acaba de se del o àcil. Amb aques en enamen es c eu que
EasyOCR es pod ia e se i pe a una aplicació eal on la p ecisió eque ida sigui mol
ele ada.
Pel que a a les mè iques, una p ecisió del 88,02% amb el conjun d’ima ges ob ingu , les
375 ho es des inades a la eali zació del eball i sense e un en enamen especí ic pel
econeixemen de ca àc e s, es conside a un esul a o ça co ec e amb el emps i els
ecu sos des ina s.
45
Sen el emps compu acional de la solució, 1,17 segons, pe aplicacions com la egulació
d’en ada de ehicles en un pà quing, el con ol de segu e a d’unes ins al·lacions o la
supe isió de l’es a d’es acionamen de ehicles, el emps compu acional ob ingu es o ça
aonable. D’al a banda, pe una aplicació com la lec u a de les ma ícules en ehicles que
ci culen pe una au opis a a g an eloci a , el emps ob ingu se ia bas an c í ic i
segu amen no es pod ia acaba d’implemen a . Pe an , se ia necessa i una compu ado a
més po en i especí ica que la u ili zada en aques eball.
De ecció i econeixemen de ma ícules pe isió a i icial
52
Annex
8.1 Pa p incipal de l’algo isme ANPR
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
# *******************************************************
# This ile is he main pa o he p ojec , APR and OCR
# Copy igh (C) 2022 Xa ie Ma í Jo ell
# Au ho : Xa ie Ma í Jo ell
# Da e: 2023-04-05
# *******************************************************
# Impo he necessa y packages
om ul aly ics impo YOLO
impo numpy
om ul aly ics.yolo. 8.de ec .p edic impo De ec ionP edic o
impo c 2
om PIL impo Image
impo easyoc
impo os
impo Pla eDe ec ion
impo Ca ac Recogni ion
# Ge he solu ion o ANPR o alida e he code esul
de alidTex ():
alid_ x = ''
wi h open(' es . x ', ' ') as ile:
alid_ x = ile. eadlines()
e u n alid_ x
# W i es he esul o all de ec ions and ecogni ions, o he ex ile
de esul sO ANPR( numbe _co ec s, numbe _inco ec s, esul a _ x ):
pe cen age_co ec s = numbe _co ec s / (numbe _co ec s +
numbe _inco ec s)*100
esul a _ x = esul a _ x + "pe cen age_co ec s " + s ( pe cen age_co ec s)
p in _de ( "pe cen age_co ec s", pe cen age_co ec s)
a chi o = open( ' esul . x ', 'a')
a chi o.w i e( esul a _ x )
a chi o.close()
# Valida ion o he esul s
de alida ion( esul a _ ex , alid_ x , ca _name):
# Read con en s o ile in o a s ing
line = in ( ca _name. eplace("ca _", ""))
con en s = alid_ x [ line-1]
con en s = con en s.spli ( ' ')
# P in con en s o he ile
ca _name_ x = con en s[0]
ca _pla e_ x = con en s[1]
ca _pla e_ x = ca _pla e_ x . eplace( " ", "")
ca _pla e_ x = ca _pla e_ x . eplace( " n", "")
53
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
# W i e in a . x ile he esul s
i len( esul a _ ex ) > 0:
pla e_ esul a = esul a _ ex [0]
i len( pla e_ esul a ) < 7:
o i in ange( 1, 7-len( pla e_ esul a )):
pla e_ esul a += " "
else:
pla e_ esul a = " "
ex _ ile = ''
esul a = ''
i ca _name == ca _name_ x :
my_lis = [ 'ca _1', 'ca _2', 'ca _3', 'ca _4', 'ca _5', 'ca _6', 'ca _7', 'ca _8', 'ca _9']
i ca _name in my_lis :
ins = in ( ca _name. eplace("ca _", ""))
ca _name = "ca _" + "0" + s (ins)
i pla e_ esul a == ca _pla e_ x :
esul a = "co ec "
ex _ ile = "ca _name" + " " + ca _name + " " + ca _pla e_ x + " " +
pla e_ esul a + " " + "co ec " + " " + s ( c op_img_dim[0] * c op_img_dim[1])
else:
esul a = "inco ec "
ex _ ile = "ca _name" + " " + ca _name + " " + ca _pla e_ x + " " +
pla e_ esul a + " " + "inco ec " + " " + s ( c op_img_dim[0] * c op_img_dim[1])
e u n esul a , ex _ ile
de showImageC 2( image):
# img_ gb = c 2.c Colo ( image, c 2.COLOR_BGR2RGB)
# C ea e a PIL Image objec
# img_pil = Image. oma ay(img_ gb)
# img_pil.show()
e u n
de p in _de ( x , x 2):
#p in ( x , x 2)
e u n
i __name__ == '__main__':
# Impo he model
model_pa h = 'D:/xma i/Desk op/TFM/TFM_code/ul aly ics/bes _0419.p '
model = YOLO(model_pa h)
# Impo he OCR
eade = easyoc .Reade (['es'])
# Read he alida ion . x images
alid_ ex = alidTex ()
De ecció i econeixemen de ma ícules pe isió a i icial
54
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# Global a iables o he esul s
numbe _co ec s = 0
numbe _inco ec s = 0
pe cen age_co ec s = 0
# Read he images om he alida ion olde
esul a _ x = " n"
o i in ange(1, 196): # 1, 196
ca _name = "ca _" + s (i)
pla e_image, c op_img_dim = Pla eDe ec ion.APR(ca _name, model)
i pla e_image is None:
con inue
# OCR
esul a _ ex , esul a _p ediccio = Ca ac Recogni ion.OCR( eade , pla e_image,
c op_img_dim)
# Valida ion
esul a , ex _ ile = alida ion( esul a _ ex , alid_ ex , ca _name)
esul a _ x = esul a _ x + ex _ ile + " n"
i esul a == "co ec ":
numbe _co ec s += 1
else:
numbe _inco ec s += 1
# W i es de he esul s in he ile esul s. x o he di ec o y
i numbe _co ec s > 0 o numbe _inco ec s > 0:
esul sO ANPR( numbe _co ec s, numbe _inco ec s, esul a _ x )
55
8.2 Algo isme de de ecció de ma ícules
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
# *******************************************************
# This ile does he pla e de ec ion and ecogni ion (APR)
# Copy igh (C) 2022 Xa ie Ma í Jo ell
# Au ho : Xa ie Ma í Jo ell
# Da e: 2023-04-05
# *******************************************************
# Impo s he necessa y packages
impo c 2
impo os
om ul aly ics impo YOLO
impo numpy
om ul aly ics.yolo. 8.de ec .p edic impo De ec ionP edic o
om PIL impo Image
impo ime
# Does he APR
de APR( ca _name, model):
# Upload image
ca _pa h = "D:/xma i/Desk op/TFM/TFM_code/ul aly ics/ es _images_1/" +
ca _name + ".jpg"
# Checks i he image exis s
i os.pa h.exis s(ca _pa h):
img_o in = c 2.im ead(ca _pa h)
else:
e u n
# Does he de ec ion
p edic ion = model.p edic (img_o in)
lis _ esul s_x1 = []
lis _ esul s_y1 = []
lis _ esul s_x2 = []
lis _ esul s_y2 = []
lis _ esul s_a ea = []
lis _ esul s_ ela ion = []
# Pu s he esul in he lis s
o i in ange(len(p edic ion[0].boxes.xyxy)):
xy = p edic ion[0].boxes.xyxy[0]
x1, y1, x2, y2 = xy.numpy()
lis _ esul s_x1.append( in (x1))
lis _ esul s_y1.append( in (y1))
lis _ esul s_x2.append( in (x2))
lis _ esul s_y2.append( in (y2))
lis _ esul s_a ea.append( abs(lis _ esul s_x2[i] - lis _ esul s_x1[i]) *
abs(lis _ esul s_y2[i]-lis _ esul s_y1[i]))
De ecció i econeixemen de ma ícules pe isió a i icial
56
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
lis _ esul s_ ela ion.append( 4.72 - (abs(lis _ esul s_x2[i] -
lis _ esul s_x1[i])/abs(lis _ esul s_y2[i]-lis _ esul s_y1[i])))
i len( lis _ esul s_x1) > 0:
lis _ esul s_a ea.so ( e e se = T ue)
lis _ esul s_ ela ion.so ()
# Ge s he highe wo
i ( len(lis _ esul s_a ea) > 1):
lis _ esul s_a ea = lis _ esul s_a ea[0:2]
lis _ esul s_ ela ion = lis _ esul s_ ela ion[0:2]
# 60% pe cen ela ion 40% a ea
esul _1 = lis _ esul s_a ea[0] * 0.4 + lis _ esul s_ ela ion[0] * 0.6
esul _2 = lis _ esul s_a ea[1] * 0.4 + lis _ esul s_ ela ion[1] * 0.6
# Selec s he mos simila
i ( esul _1 > esul _2):
i = lis _ esul s_a ea.index( lis _ esul s_a ea[0])
else:
i = lis _ esul s_a ea.index( lis _ esul s_a ea[1])
else:
i = 0
x = in ( lis _ esul s_x1[i])
y = in ( lis _ esul s_y1[i])
x1 = in ( lis _ esul s_x2[i])
y1 = in ( lis _ esul s_y2[i])
# C op he mos impo an pla e
c opped_image = img_o in[y:y1, x:x1]
c opped_dim = c opped_image.shape
e u n c opped_image, c opped_dim
else:
e u n None, None
i __name__ == '__main__':
# Impo s he model
model_pa h = 'D:/xma i/Desk op/TFM/TFM_code/ul aly ics/bes _0419.p '
model = YOLO(model_pa h)
ca _name = "ca _1"
inici_ap = ime. ime()
pla e_image, c op_img_dim = APR(ca _name, model)
i_ap = ime. ime()
p in ("Temps o al del OCR: ", i_ap - inici_ap )
img_ gb = c 2.c Colo ( pla e_image, c 2.COLOR_BGR2RGB)
img_pil = Image. oma ay(img_ gb)
img_pil.show()
57
8.3 Algo isme de econeixemen de ca àc e s en la ma ícula
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
# *******************************************************
# This ile does he objec cha ac e ecogni ion (OCR)
# Copy igh (C) 2022 Xa ie Ma í Jo ell
# Au ho : Xa ie Ma í Jo ell
# Da e: 2023-04-05
# *******************************************************
# Impo s lib a ies
impo easyoc
impo c 2
impo ime
# Does he OCR
de OCR( eade , pla e_image, c op_img_dim):
# Wi hou p e-p ocess eads he pla e ca ac e s
esul = eade . ead ex (pla e_image)
"""
# W i es he esul s on he image
o i in ange( len( esul )):
# ex
ex = esul [i][1]
# bounding box
bbox = esul [i][0]
# con idence
p obabili y = esul [i][2]
# D aw he bounding box
c 2. ec angle(pla e_image, ( in (bbox[0][0]), in (bbox[0][1])), (in (bbox[2][0]),
in (bbox[2][1])), (0, 255, 0), 2)
# D aws he ex
c 2.pu Tex (pla e_image, ex , ( in (bbox[0][0]), in (bbox[0][1]) + 20),
c 2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)
showImageC 2( pla e_image)
"""
# I is used o emo e small ex de ec ions
gene al_ esul = []
# Gene al alue
o i in ange( len( esul )):
ex = esul [i][1]
p obabili y = ound( esul [i][2], 2)
bbox = esul [i][0]
posx = in ( bbox[0][0])
a ea = ound( abs(( bbox[2][0] - bbox[0][0]) * ( bbox[2][1] - bbox[0][1])), 2)
a ea_ ela ion = a ea / (c op_img_dim[0] * c op_img_dim[1])
i a ea_ ela ion > 0.10:
gene al_ esul .append( [ ex , p obabili y, a ea, a ea_ ela ion, posx])
# O de and pu oge he all he ex
De ecció i econeixemen de ma ícules pe isió a i icial
58
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
i ( len(gene al_ esul ) > 1):
ex = []
p obabili y = []
posy = []
o i in ange(len(gene al_ esul )):
ex .append(gene al_ esul [i][0])
p obabili y.append(gene al_ esul [i][1])
posy.append(gene al_ esul [i][4])
# O de s he ex
ex = [x o _,x in so ed( zip( posy, ex ))]
p obabili y = [x o _,x in so ed( zip( posy, p obabili y))]
# Pu s oge he he ex
ex = ''.join( ex )
p obabili y = sum(p obabili y)/len(p obabili y)
gene al_ esul = [[ ex , p obabili y]]
# Va iables o sa e he esul s
esul a _ ex = []
esul a _p ediccio = []
o i in ange(len(gene al_ esul )):
ex = gene al_ esul [i][0]
p obabili y = gene al_ esul [i][1]
# Remo e " "
ex = ex . eplace(" ", "")
# Remo e -
ex = ex . eplace("-", "")
# Remo e .
ex = ex . eplace(".", "")
# Remo e #
ex = ex . eplace("#", "")
# Remo e _
ex = ex . eplace("_", "")
# Remo e /
ex = ex . eplace("/", "")
# Remo e
ex = ex . eplace(" ", "")
# Remo e (
ex = ex . eplace("(", "")
# Remo e )
ex = ex . eplace(")", "")
# Remo e [
ex = ex . eplace("[", "")
# Remo e ]
ex = ex . eplace("]", "")
# Remo e |
ex = ex . eplace("|", "")
# Remo e '
ex = ex . eplace("'", "")
# Remo e :
59
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
ex = ex . eplace(":", "")
# Remo e {
ex = ex . eplace("{", "")
# Remo e }
ex = ex . eplace("}", "")
# Remo e @
ex = ex . eplace("@", "")
# Sol ing p oblems wi h he numbe 4, i is no ecognized co ec ly,
# ecognized a L
con ado _nomb es = 0
nombe _coun _ i s _ alues = 0
nombe _coun _las _ alues = 0
o i in ange(len( ex )):
i ex [i].isdigi ():
con ado _nomb es += 1
i i in ange(0, 3):
nombe _coun _ i s _ alues += 1
eli i in ange(len( ex ) - 3, len( ex )):
nombe _coun _las _ alues += 1
i con ado _nomb es >= 3:
pos_l = ex . ind("L")
leng h = len( ex )
i nombe _coun _ i s _ alues >= 2:
i pos_l <= 4:
pa 1 = ex [:4]
pa 1 = pa 1. eplace("L", "4")
pa 2 = ex [4:]
ex = pa 1 + pa 2
eli nombe _coun _las _ alues >= 2:
i pos_l <= leng h - 4:
pa 1 = ex [:4]
pa 2 = ex [4:]
pa 2 = pa 2. eplace("L", "4")
ex = pa 1 + pa 2
# All le e in capi al
ex = ex .uppe ()
# Remo e aw alues
con ado _nomb es = 0
con ado _lle es = 0
indexos_nomb es = []
indexos_lle es = []
o i in ange(len( ex )):
i ex [i].isdigi ():
con ado _nomb es += 1
indexos_nomb es.append(i)
else:
De ecció i econeixemen de ma ícules pe isió a i icial
60
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
con ado _lle es += 1
indexos_lle es.append(i)
# I is used o c ea e spanish pla es, wi h 4 numbe s and 3 le e s
# Res ics he de ec ion o spanish pla es
con ado _ o al = con ado _nomb es + con ado _lle es
index = 0
i con ado _ o al > 7:
i con ado _nomb es > 4:
o i in ange(len( ex )-2):
i ex [i].isdigi () != T ue and ex [i+1].isdigi () != T ue and ex [i+2].isdigi () !=
T ue:
index = i
b eak
ex = ex [index-4:index+3]
i con ado _lle es > 3:
o i in ange(len( ex )-3):
i ex [i].isdigi () == T ue and ex [i+1].isdigi () == T ue and ex [i+2].isdigi ()
== T ue and ex [i+3].isdigi () == T ue:
index = i
b eak
ex = ex [index:index+7]
# Appends ex
esul a _ ex .append( ex )
# Append p edic ion
esul a _p ediccio.append(p obabili y)
# I no esul , e u ns emp y
i len( esul a _ ex ) > 0:
i esul a _ ex [0] == "":
i len(gene al_ esul ) > 0:
esul a _ ex = gene al_ esul [0][0]
else:
esul a _ ex = ""
e u n esul a _ ex , esul a _p ediccio
i __name__ == '__main__':
# Impo s he model
eade = easyoc .Reade (['es'])
pla e_pa h = "D:/xma i/Desk op/TFM/TFM_code/ul aly ics/pla e_1.jpg"
pla e_image = c 2.im ead( pla e_pa h)
inici_oc = ime. ime()
esul a _ ex , esul a _p ediccio = OCR( eade , pla e_image, pla e_image.shape)
i_oc = ime. ime()
p in ("Temps o al del OCR: ", i_oc - inici_oc )
p in ( esul a _ ex , esul a _p ediccio)