scieee Open visual document viewer

Detecció i reconeixement de matrícules per visió artificial

Martí Jovell, Xavier

Abstract

El propòsit d’aquest treball fi de màster és el desenvolupament d’un sistema de reconeixement automàtic de matrícules a partir d’un model d’intel·ligència artificial, utilitzant visió artificial i aprenentatge profund. El sistema desenvolupat és capaç de fer la lectura en temps real de la matrícula d’un cotxe a partir d’una imatge desconeguda. D’aquesta manera, es pretén il·lustrant les possibles tècniques de visió artificial que fan servir els sistemes de control en carretes o en espais d’aparcament. Per fer-ho, s’ha entrenat el model de detecció d’objectes, You Only Look Once (YOLO) format per una xarxa neuronal convolucional CNN, a partir d’un conjunt d’imatges conegudes i obtingudes per la resolució d’aquest treball. En les diferents imatges es troben tant vehicles estacionats com en circulació, amb la regió de les diferents matrícules etiquetades i marcades. Un cop entrenat el model, aquest és fet servir per detectar la matrícula i poder-ne extreure-la de la imatge original. Amb aquesta nova imatge, es realitza la lectura del codi utilitzant la tècnica de reconeixement de caràcters en objectes (OCR). Pel desenvolupament de l’OCR s’ha fet ús de l’algorisme EasyOCR el qual ha permès llegir els diferents nombres i lletres per tal de portar a cap un postprocessament i construir el codi de la matrícula segons la legislació espanyola

Full text

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)