T reba ll F ina l de G rau
GRAU D’ENGINYERIA INFORMÀTICA
Detecció d’ungles en imatges mèdiques
BERNAT GALMÉS RUBERT
Tutors
Biel Moyà Alcover Pedro Bibiloni Serrano
Escola Politècnica Superior
Universitat de les Illes Balears
S UMARI
Sumari i
Índex de figures v
Acrònims vii
Resum ix
1 Introducció 1
1.1 Projecte . . . 1
1.1.1 Aplicacions pràctiques . . . 1
1.2 Equip . . . 2
1.3 Objectius . . . 3
1.3.1 Estudi de la colorimetria de les ungles . . . 3
1.3.2 Identificació de la posició de l’ungla . . . 3
1.4 Motivació . . . 3
2 Arquitectura del sistema 5 2.1 Planificació . . . 5
2.1.1 Requisits . . . 5
2.1.2 Restriccions . . . 6
2.1.3 Desenvolupament . . . 6
2.2 Software usat . . . 7
2.2.1 Llenguatge de programació. . . 7
2.2.2 Llibreries. . . 8
2.2.3 Sincronització. . . 9
2.3 Construcció del Sistema . . . 9
2.3.1 Divideix i guanyaràs . . . 10
2.3.2 Comunicació del sistema . . . 10
2.4 Conclusions . . . 11
3 El Procés 13 3.1 Normalització espacial de la imatge . . . 13
3.1.1 La plantilla . . . 15
3.1.2 Les passes . . . 15
3.2 Cerca de l’ungla . . . 16
3.2.1 Identificació de la zona de pell . . . 17
3.2.2 Identificació de l’ungla . . . 17
3.3 Conclusions . . . 18
4 Estudi dels colors 19 4.1 Funcionalitat . . . 19
4.1.1 Recopilació de dades . . . 20
4.1.2 Obtenció d’estadístics . . . 20
4.1.3 Realització d’un estudi del seu comportament estadístic . . . . 21
4.2 Resultats . . . 21
4.2.1 Primer estudi . . . 21
4.2.2 Incidència . . . 23
4.2.3 Segon estudi. . . 23
4.3 Avaluació resultats. . . 26
4.4 Conclusions . . . 27
4.4.1 Comportament de les dades . . . 27
4.4.2 Resultats col·laterals . . . 28
5 Transformada de Hough 29 5.1 Fonaments teòrics . . . 29
5.1.1 Detector de contorns de Canny . . . 30
5.1.2 Transformada deHough. . . 30
5.2 Primera versió . . . 32
5.2.1 Implementació . . . 32
5.2.2 Dificultats . . . 34
5.2.3 Resultats . . . 36
5.3 Segona versió. . . 37
5.3.1 Implementació . . . 39
5.3.2 Dificultats . . . 41
5.3.3 Resultats . . . 43
5.4 Versió final . . . 45
5.4.1 Implementació . . . 45
5.4.2 Dificultats . . . 48
5.4.3 Resultats . . . 50
5.4.4 Avaluació dels resultats obtinguts . . . 55
5.4.5 Tecnologies utilitzades . . . 57
5.5 Conclusions . . . 57
6 Conclusions 59 6.1 Desenvolupament . . . 59
6.1.1 Planificació . . . 60
6.1.2 Generació de codi . . . 60
6.1.3 Comunicació amb tot l’equip . . . 60
6.2 Sistema . . . 61
6.3 Experiments . . . 62
A Resultats estudi colors 65 A.1 Estadístics obtenguts . . . 65
SUMARI iii
A.2 Distribucions dels canals individuals. . . 67
A.2.1 1er estudi . . . 67
A.2.2 2on estudi . . . 70
B Resultats amb la transformada de Hough 73 B.1 Primera versió . . . 73
B.2 Segona versió. . . 78
B.3 Versió final . . . 78
B.3.1 Resultats globals . . . 78
B.3.2 Resultats avaluació. . . 83
B.3.3 Exemples d’imatges avaluades . . . 83
Bibliografia 89
Í NDEX DE FIGURES
1.1 Exemple d’ungla afectada per fongs. . . 2
2.1 Resultats de les principals passes implicades en la detecció de l’ungla. . . . 10
3.1 Diagrama de les passes del procés. . . 14
3.2 Plantilla de captura de imatges. . . 15
3.3 Passes de la normalització. . . 16
3.4 Passes de la detecció de l’ungla. . . 18
4.1 Exemple d’imatge amb els píxels recopilats. . . 20
4.2 Distribució dels colors dels píxels en el primer estudi pels distints models de colors. . . 22
4.3 Distància Euclidea de tots els píxels al color mig de les ungles pel primer estudi en l’espai de color corresponent. . . 23
4.4 Comparació de les imatges de distàncies deldata setvell i del nou amb les dades del primer estudi. . . 24
4.5 Distribució dels colors dels píxels en el segon estudi pels distints models de colors. . . 25
4.6 Distàncies dels píxels al color mig de les ungles obtingut al segon estudi. . 26
5.1 Exemple dels contorns obtinguts amb l’algorisme de Canny. . . 30
5.2 Diagrama de flux de la primera versió. . . 33
5.3 Resultats amb distints valors pel paràmetre del llindar dels cercles a trobar amb la transformada que ens ofereixOpenCV, cercle seleccionat en verd.. . 35
5.4 Imatges amb la selecció del cercle més proper al centre de la imatge. . . 35
5.5 Exemple de cercle seleccionat amb el procés definit, acolorit de verd. . . . 36
5.6 Primer exemple d’imatges de cercles seleccionats, pintats de verd. . . 37
5.7 Cercles trobats amb la implementació d’skimageen una primera prova.. . 38
5.8 Diagrama de flux de la segona versió. . . 40
5.9 Cercles trobats en distintes imatges de contorns, obtingudes variant els paràmetres de l’algorisme de Canny. . . 41
5.10 Cercles trobats en distintes imatges de contorns, obtingudes variant els paràmetres de l’algorisme de Canny. . . 42
5.11 Cercles trobats en distintes imatges de contorns, obtingudes variant els paràmetres de l’algorisme de Canny. . . 44
5.12 Diagrama de flux de la tercera versió.(1)Detalls de la detecció de l’ungla a la figura 5.14. . . 46
5.13 Exemple d’imatge suavitzada. . . 47
5.14 Diagrama de flux de la detecció de l’ungla, tercera versió. . . 49
5.15 Diferències als resultats entre la imatge suavitzada i la imatge sense suavitzar. 51 5.16 Diferències als resultats entre la imatge suavitzada i la imatge sense suavitzar. 52 5.17 Primer exemple de resultats obtinguts amb la tercera versió. . . 53
5.18 Segon exemple de resultats obtinguts amb la tercera versió. . . 54
5.19 Tercer exemple de resultats obtinguts amb la tercera versió. . . 55
A.1 Distribució dels colors dels píxels d’ungla amb el model de color Vermell, Verd i Blau (de l’anglèsRed, Green, Blue) (RGB), dades del primer estudi. . . 67
A.2 Distribució dels colors dels píxels d’ungla amb el model de color Tonalitat, Saturació i Valor (de l’anglèsHue, Saturation, Value) (HSV), dades del primer estudi. . . 68
A.3 Distribució dels colors dels píxels d’ungla amb el model de colorCieLab, dades del primer estudi. . . 69
A.4 Distribució dels colors dels píxels d’ungla amb el model de color RGB, dades del segon estudi. . . 70
A.5 Distribució dels colors dels píxels d’ungla amb el model de color HSV, dades del segon estudi. . . 71
A.6 Distribució dels colors dels píxels d’ungla amb el model de colorCieLab, dades del segon estudi. . . 72
B.1 Exemple de la imatge1 de cercles seleccionats utilitzant distints atributs amb la primera versió, cercle seleccionat de verd. . . 74
B.2 Exemple de la imatge5 de cercles seleccionats utilitzant distints atributs amb la primera versió, cercle seleccionat de verd. . . 75
B.3 Exemple de la imatge9 de cercles seleccionats utilitzant distints atributs amb la primera versió, cercle seleccionat de verd. . . 76
B.4 Exemple de la imatge11de cercles seleccionats utilitzant distints atributs amb la primera versió, cercle seleccionat de verd. . . 77
B.5 Exemple de la imatge1dels resultats obtinguts en la tercera versió. . . 79
B.6 Exemple de la imatge5dels resultats obtinguts en la tercera versió. . . 80
B.7 Exemple de la imatge9dels resultats obtinguts en la tercera versió. . . 81
B.8 Exemple de la imatge11dels resultats obtinguts en la tercera versió.. . . 82
B.9 Exemple de la imatge1dels resultats obtinguts en la tercera versió. . . 84
B.10 Exemple de la imatge5dels resultats obtinguts en la tercera versió. . . 85
B.11 Exemple de la imatge9dels resultats obtinguts en la tercera versió. . . 86
B.12 Exemple de la imatge11dels resultats obtinguts en la tercera versió.. . . 87
A CRÒNIMS
API Application Programming Interface
BGR Blau, Verd i Vermell (de l’anglèsBlue, Green, Red) FNR False Negative Rate
FPR False Positive Rate
HSV Tonalitat, Saturació i Valor (de l’anglèsHue, Saturation, Value) IC Interval de Confiança
IPU Unitat de procesament d’imatges JSON JavaScript Object Notation
RGB Vermell, Verd i Blau (de l’anglèsRed, Green, Blue) TFG Treball Final de Grau
StDev Desviació Típica (de l’anglèsStandard Deviation) TPR True Positive Rate(orecall)
UIB Universitat de les Illes Balears XML Extensible Markup Language
R ESUM
El treball tractat s’engloba dins d’un projecte software d’anàlisi i tractament d’imatges mèdiques. Concretant, la tasca consisteix en segmentar l’ungla del dit gran del peu, d’una imatge presa en unes condicions concretes, on apareix un peu humà. Per assolir els objectius establerts, s’ha dissenyat un procés que efectua un anàlisi de la imatge.
Per desenvolupar-lo, s’han utilitzat tècniques d’anàlisis dels colors i de les formes que apareixen en la imatge. L’anàlisi dels colors s’ha realitzat mitjançant mètodes estadístics, i el de les formes, amb latransformada de Houghper a cercles, que és un algorisme que detecta figures en imatges, en aquest cas concret cerca figures circulars.
Dins l’anàlisi de les formes és on s’ha aprofundit més, s’han anat ajustant paràmetres dels algorismes d’alt nivell utilitzats, s’han implementat distintes versions amb idees que se’ns han ocorregut i s’han fet molts d’anàlisis dels resultats obtinguts amb cada versió. L’anàlisi de la colorimetria de la imatge no ha servit per identificar què és ungla, ja que els colors de l’ungla són massa semblants als de la pell del peu. Així que la segmentació s’ha duit a terme mitjançant latransformada de Hough, que identifica un cercle a sobre la imatge, definit pel contorn de l’ungla. Aquests resultats poden servir perquè, si algú està interessat en segmentar una ungla, no cometi els mateixos errors i conegui una possible solució per aconseguir-ho. La conclusió més important extreta d’aquest desenvolupament ha estat la dificultat de l’elaboració del procés, ja que no s’ha pogut identificar cap característica comuna entre totes les ungles: n’hi ha de rodones, quadrades, triangulars... dits grans amb ungles petites i d’altres de petits amb ungles gegants. També s’ha conclòs la importància de definir un procés per seleccionar els paràmetres de les funcions de visió, ja que la seva selecció manual suposa una inversió molt alta de temps.
C
APÍTOL1
I NTRODUCCIÓ
El treball tractat en aquest Treball Final de Grau (TFG) s’engloba dins un projecte d’anàlisis i tractament d’imatges mèdiques. Aquest, que ha tengut una durada de quatre mesos, s’ha duit a terme mitjançant l’ús de tècniques de visió per computador.
La tasca concreta presentada en el document consisteix en la identificació dels píxels de la imatge que pertanyen a un determinat element.
Es començarà aquest primer capítol explicant el context on s’emmarca el treball.
També es definirà l’abast global del projecte intentant deixar el més clar possible el que es tractarà al document.
L’objectiu és que el lector situï el context del projecte, per facilitar la comprensió i interpretació de la resta del document.
Les dues primeres seccions defineixen el context global del treball: el projecte i l’equip de feina. La tercera secció especifica el treball concret presentat en aquest document. Per acabar, s’exposen els motius que han duit a treballar en el projecte.
1.1 Projecte
Una empresa privada va contactar amb la Universitat de les Illes Balears (UIB) per la realització d’un assessorament científic en un projecte per a l’avaluació d’ungles.
El projecte consisteix en el desenvolupament d’una Unitat de procesament d’imat- ges (IPU). La qual, donada una imatge de l’hàl·lux d’un pacient, comunament conegut com a dit gran del peu, ha de proporcionar informació sobre quins píxels pertanyen a l’ungla.
1.1.1 Aplicacions pràctiques
El resultat del projecte consisteix en una segmentació dels píxels d’una ungla en una imatge de l’hàl·lux d’un peu. Aquesta segmentació pot esser útil per qualsevol aplicació futura que hagui d’estudiar els píxels d’ungles dels dits grans dels peus.
Una possible aplicació pràctica, on es podria aplicar el sistema resultant, seria un estudi d’ungles afectades per una malaltia. Per exemple, aplicar una post-processament als píxels de l’ungla, amb l’objectiu de segmentar els afectats per una determinada malaltia. D’aquesta manera seria fàcil saber el percentatge de l’ungla que està afectada per la malaltia i quines zones són les més afectades. I fins i tot podria servir per estudiar com evoluciona la forma de l’ungla, amb l’efecte d’aquesta malaltia, ja que variarien els píxels que s’han identificat com a ungla.
Aquesta possible aplicació seria molt útil a l’hora de diagnosticar malalties de les ungles i quantificar-les. També es podria utilitzar per investigar com afecten i com evolucionen les malalties.
A la figura1.1tenim un exemple d’ungles afectades per fongs, malaltia que seria una bona candidata per l’estudi mencionat al paràgraf anterior.
Figura 1.1: Exemple d’ungla afectada per fongs.
1.2 Equip
El desenvolupament del projecte s’ha distribuït en distintes parts. Les principals són:
l’equip de laUIBi el de l’empresa.
Cada una té assignades distintes responsabilitats:
• L’equip de laUIB: Assessorament i creació d’unaIPU.
• L’equip de l’empresa: Desenvolupar la Application Programming Interface (API) del projecte, a partir de laIPU.
El presentTFGs’engloba dins l’equip de laUIB. Més endavant, a l’apartat1.4, s’- explica que un dels motius que dugueren a dur a terme aquestTFGés l’absència de coneixements en el camp de la visió per computador. Com és obvi, no es va assesso- rar un projecte d’un camp que no es domina, sinó que el treball tractat alTFGés el desenvolupament de laIPU.
2
1.3. Objectius
1.3 Objectius
A les seccions anteriors s’ha definit l’abast del projecte on s’engloba elTFG. En aquest apartat, es definirà l’abast concret del treball.
Per complir l’objectiu final del projecte s’ha definit un procés, explicat en detall al capítol3. Una de les passes principals d’aquest procés és aconseguir segmentar els píxels d’ungla. És a dir, ha d’identificar la regió que pertany a l’ungla en la imatge. El presentTFGtracta el desenvolupament d’aquest software.
Per complir amb l’objectiu, s’han realitzat distintes tasques, les quals són definides a continuació.
1.3.1 Estudi de la colorimetria de les ungles
En aquesta tasca es va estudiar la colorimetria de la imatge, amb l’objectiu d’identi- ficar patrons en els colors de les ungles que les diferenciassin dels de la resta de la imatge. Aquest estudi es va dur a terme mitjançant l’ús de tècniques d’anàlisi de dades estadístiques. L’estudi en qüestió és tractat a fons al capítol4.
1.3.2 Identificació de la posició de l’ungla
Una vegada acabat l’estudi de la colorimetria es va utilitzar una altra tècnica per identi- ficar la posició de l’ungla a partir dels contorns que aquesta defineix a la imatge. Per dur a terme la tasca es va utilitzar una tècnica anomenadatransformada de Hough.
Aquesta tasca s’explica en detall al capítol5.
1.4 Motivació
Per acabar amb el capítol es recopilen els motius que ens varen induir a realitzar elTFG aquí presentat.
Adquirir coneixements de visió per computador
El pla d’estudis de l’enginyeria cursada no contempla el camp de la visió per computa- dor. Aquest fet, suposà que el projecte tengués un atractiu especial, ja que servia per adquirir coneixements d’un camp de la informàtica desconegut fins el moment.
Recompensa econòmica
Un altre factor decisiu per l’interès del projecte, va ser l’existència d’una beca per participar en la seva elaboració. Ja que les circumstàncies econòmiques personals no eren massa favorables. Sense la recompensa econòmica no s’hauria pogut permetre realitzar el treball.
Resum
En aquest capítol s’han explicat els fonaments del projecte que bàsicament consisteix en la identificació de l’ungla del dit gran del peu a sobre d’una imatge.
El document segueix amb la següent estructura: el segon capítol explica com s’ha planificat i estructurat el projecte. El tercer defineix com funciona el procés dissenyat per donar solució al problema. Els capítols quart i quint concreten les tasques que s’han duit a terme i el darrer capítol engloba totes les conclusions que s’han extret de l’execució del projecte.
4
C
APÍTOL2
A RQUITECTURA DEL SISTEMA
Pel desenvolupament de qualsevol projecte software és necessari definir amb la màxima precisió possible el que es fa, com es fa i per què es fa d’aquesta manera. També s’han de definir els materials i eines a utilitzar i les metodologies de desenvolupament.
Es començarà el present capítol definint la planificació del projecte que afecta a aquestTFG, donant especial importància als requisits. A més, s’explicaran les tasques que s’havien definit inicialment per a la seva execució. En aquesta primera secció s’intentarà respondre a les preguntes: “Com es fa?” i “Què s’està fent?”.
Una vegada clara la planificació, s’entrarà en detall de tots els aspectes tècnics del treball realitzat. En aquesta part es definiran totes les tecnologies que s’han utilitzat per l’execució, com també les utilitzades per mantenir l’equip sincronitzat i informat de tot el que s’està duent a terme.
Per acabar, s’explicarà com s’ha estructurat el sistema per facilitar el seu desenvolu- pament, donant èmfasi a les metodologies utilitzades.
2.1 Planificació
En aquest apartat s’explica com es va planificar inicialment el treball. La planificació d’aquest va ser laxa degut a la seva naturalesa innovadora, el que suposava que moltes coses en un principi no es sabés com s’havien d’executar. Per tant, no es podia planificar estrictament el temps que duria ni la metodologia a emprar. A conseqüència, la major part del desenvolupament de tot el projecte es va dur a terme mitjançant un procésad hoc.
2.1.1 Requisits
Els requisits de la llibreria no són molt extensos, en aquest apartat únicament s’exposa- ran els que afecten directament alTFG. Aquests requisits es podrien resumir tots en un:identificar la regió de l’ungla gran del peu en una imatge presa en condicions de laboratori.
Els requisits del sistema serien els següents, redactats com a accions que s’han de poder fer amb el sistema:
• RS_1:El sistema ha de permetre consultar els píxels que conformen l’ungla.
• RS_2:El sistema ha de generar una màscara binària dels píxels que pertanyen a l’ungla.
• RS_3:El sistema ha de permetre consultar les transformacions de la imatge que es facin durant el seu processament.
• RS_4:Les transformacions consultades al sistema s’han d’obtenir en un format que permeti la seva avaluació.
2.1.2 Restriccions
Qualsevol projecte presenta una sèrie de restriccions que limiten el seu desenvolupa- ment. Aquest projecte presenta les següents:
1. Les imatges a processar seran preses sobre una plantilla predefinida1.
2. Només s’han d’acceptar imatges d’entrada preses en unes condicions concretes:
• Cap focus ni la llum solar pot il·luminar directament la plantilla predefinida.
• Capturades el més aprop possible, però assegurant que aparegui tota la plantilla.
3. No hi ha restriccions amb les llibreries a utilitzar.
4. El temps de processament és irrellevant.
2.1.3 Desenvolupament
Inicialment, el desenvolupament del projecte s’estructurà en les següents tasques:
1. Prototipus funcional: Desenvolupament d’un sistema capaç d’estimar la localit- zació i l’àrea de l’ungla
2. Segona versió del prototipus: Validació del primer prototipus. S’inclouran totes les millores que siguin necessàries.
3. Versió per posar en producció: Com a resultat de les dues tasques anteriors, es tenen distintes versions del sistema. Aquesta darrera tasca consisteix en avaluar les distintes versions i seleccionar la que obté uns millors resultats. S’integrarà aquesta versió com a definitiva del sistema, aplicant-hi tota l’estructuració que sigui necessària.
1La plantilla predefinida s’explica en detall a l’apartat3.1.1
6
2.2. Software usat
A pesar d’aquest pla inicial, el desenvolupament del projecte no ha consistit en desenvolupar les tasques anteriors com a objectius finits. En lloc d’això, s’ha centrat en assolir l’objectiu final, i a mesura que s’anava avançant s’anaven incorporant tots els canvis oportuns a les tasques predecessores per facilitar l’objectiu. No ha estat així per decisió pròpia, ja que sempre és millor seguir una planificació tancada, però la dificultat del problema afrontat ho ha requerit.
2.2 Software usat
Tot projecte de software informàtic necessita recolzar-se en tecnologies existents per a ser desenvolupat. Ara que ja es coneix la planificació del software que s’ha duit a terme, es definiran quines tecnologies s’han emprat. Es donarà especial èmfasi a la justificació del seu ús.
2.2.1 Llenguatge de programació
La selecció del llenguatge de programació amb el que es desenvoluparà un projecte és una tasca crítica en l’inici de qualsevol projecte. Tots els llenguatges de programació tenen punts forts i febles. S’han d’estudiar aquests punts i seleccionar el que afavoreix més al projecte.
Recordem que el projecte es basa en visió per computador. Llavors el ventall de possibles llenguatges a utilitzar que ens faciliten treballar en aquest camp es redueix pràcticament a tres:Python,C++iMatlab.
Tenint en compte que elMatlabés de pagament, ja queda descartat directament.
Així que ens queden dues opcions:PythoniC++
A la taula2.1es poden observar els avantatge i inconvenients principals de cada un dels dos llenguatges. Una característica fonamental pel projecte és que el llenguatge utilitzat disposi de llibreries i utilitats que ens facilitin el treball amb matrius i algorismes de visió per computador. Podem apreciar que ambdós llenguatges disposen d’aquestes utilitats. Per tant, ambdós són vàlids.
Python C++
Eficiència Ineficient Eficient
Codi generat Poca quantitat Molta quantitat Executable Codi Interpretat Codi Compilat Desenvolupament Àgil (ràpid) Estricte (lent) Llibreries de visió per computador
i tractament d’imatges Sí Sí
Taula 2.1:Taula comparativa entrePythoniC++.
L’eficiència del sistema no és important com s’ha vist a les restriccions del projecte (secció2.1.2). Per tant, seguim sense tenir cap preferència clara.
La característica més important és que el llenguatge utilitzat faciliti una generació àgil de codi. Això es degut a que en el desenvolupament d’aquest tipus de projectes es fan bastantes proves, cosa que suposa la realització de moltes modificacions al codi existent. D’aquesta característica cal destacar-ne els grans avantatges que ens
aportaPythonper assegurar-lo, ja que amb aquest llenguatge es genera poc codi i molt dinàmic. Per exemple, ambPythonsi s’afegeix una variable nova no importa fer la declaració i el codi és més permissiu (un exemple és el tipat de les variables) [1]. Si utilitzàssimC++afegir un canvi al codi suposaria fer molts més canvis a la resta.
Gràcies a aquest atribut, s’ha decidit decantar-se pelPython, que ens facilitarà un desenvolupament dinàmic.
2.2.2 Llibreries
Si simplement s’utilitzàsPythonnatiu, sense cap ampliació, s’hauria de programar tot el que s’utilitzàs, cosa que suposaria moltes hores de feina programant. A més, es generaria un codi molt menys segur que el procedent de tercers, ja que aquest ha estat testejat prèviament. Per això recolzam el nostre projecte amb diferents llibreries que disposaPython.
Un altre factor que potencia l’ús de llibreries externes, és la necessitat que im- posaPythond’utilitzar capes d’abstracció amb codi escrit en altres llenguatges. Ja que algunes funcionalitats programades directament amb aquest llenguatge són molt ineficients.
OpenCV
La bibliotecaOpenCVresulta essencial pel projecte. La implementació de les principals tècniques de visió per computador estan agrupades en la llibreria, també conté tota la funcionalitat necessària de processament d’imatges. Es va decidir utilitzar aquesta i no una altra degut al seu caràcter lliure i a la seva fiabilitat.
Skimage
Llibreria que juntament ambOpenCVofereix totes les funcions de visió per computador i processament d’imatges. És utilitzada perquè hi ha variacions en distints algorismes que ens són útils. A l’article [2] tenim els avantatges, inconvenients i usos d’aquesta llibreria.
Numpy
Numpyés primordial en qualsevol projectePythonque realitzi càlculs amb vectors i matrius, ja que les implementacions natives dePythond’aquestes estructures de dades són molt ineficients.
La llibreria és una capa d’abstracció de totes les operacions sobre matrius imple- mentades per sota amb el llenguatgeC.
Matplotlib
Llibreria de generació de gràfiques 2D. Utilitzada per visualitzar gràficament els resul- tats dels experiments. Tots els gràfics que apareixen en aquest document són generats amb aquesta llibreria.
8
2.3. Construcció del Sistema
Math
Més que una llibreria és un mòdul nadiu dePython. Conté tota la funcionalitat mate- màtica bàsica utilitzada en el projecte.
Scipy
Proporciona tot un ecosistema de funcions usades en ciència, enginyeria y matemàti- ques. S’ha usat en el projecte, entre altres coses, per realitzar càlculs estadístics, com l’obtenció d’intervals de confiança d’un conjunt de dades.
2.2.3 Sincronització
A més de les anteriors tecnologies utilitzades per al desenvolupament del projecte, cal mencionar la tecnologia utilitzada per mantenir l’equip sincronitzat.
Git
Diferents participants del projecte van realitzant modificacions sobre el sistema de manera simultània, així que cada sèrie de temps apareixen noves versions del sistema independents. Aquestes, han de ser sincronitzades d’alguna manera per tenir una única versió conjunta.
Per aconseguir aquesta sincronització es fa servir un sistema de control de versions, concretament elGit. Amb aquest sistema, a mesura que van apareixent noves versions, es poden fusionar fàcilment els canvis que han incorporat als distints desenvolupadors en una única versió.
Conda
A més de canvis sobre el codi, en les distintes versions del software, també se’n produei- xen sobre les dependències del sistema (llibreries, versió dePython...). Per facilitar la gestió d’aquestes, s’utilitza un gestor d’entorns virtuals on s’instal·len les dependències canviants.
El gestor utilitzat s’anomenaConda. Aquest construeix un entorn virtual a partir de les dependències del sistema que estan emmagatzemades en un fitxer. Quan un desenvolupador realitza un canvi sobre les dependències del sistema modifica el fitxer, i inclou els canvis d’aquest a la pròxima versió delGitque genera. A partir d’aquest fitxer, els altres desenvolupadors poden actualitzar o instal·lar l’entorn virtual amb les dependències del projecte de la versió actual.
2.3 Construcció del Sistema
En aquest apartat es pretén explicar tot el relatiu a com s’ha desenvolupat el sistema, des d’un punt de vista tècnic. La secció comença explicant com s’ha estructurat el codi per facilitar el treball de programació i acaba definint el mètode utilitzat per mantenir tot el sistema comunicat.
2.3.1 Divideix i guanyaràs
En la secció1.3s’ha definit el treball que s’ha realitzat. Seguidament, s’especificarà com s’ha elaborat el procés.
Per facilitar el desenvolupament s’ha dividit el projecte en fases que van aproximant a poc a poc a la solució final. La figura2.1exemplifica el resultat de cada una de les fases, i en els següents apartats són introduïdes a alt nivell.
Normalització espacial de la imatge
La primera passa que executa el procés consisteix en preparar la imatge per facilitar la identificació d’objectes dins d’aquesta.
Una vegada es té la imatge preparada, els cantons de la plantilla corresponen als de la imatge. D’aquesta manera es poden calcular fàcilment les diferents posicions en la plantilla. Aquest fet facilita enormement la següent fase de cerca de l’ungla, ja que la imatge tendrà un format estàndard.
A la resta del document es fa referència a la imatge resultant d’aquesta passa com:
la imatge normalitzada. En la figura2.1(b)tenim un exemple d’aquesta.
Cerca de l’ungla
Una vegada que es té la imatge normalitzada, es coneixen les posicions que ens interes- sen de la plantilla a dins la imatge. Aquestes posicions ens ajuden a assolir l’objectiu d’aquesta fase: separar l’ungla del dit gran del peu de la resta de la imatge.
L’objectiu d’aquesta fase és identificar quins píxels de la imatge pertanyen a l’ungla i quins no.
En la figura2.1(c)es té la màscara resultant dels píxels que pertanyen a l’ungla.
(a)Imatge original. (b) Imatge normalitzada. (c)Màscara de l’ungla.
Figura 2.1:Resultats de les principals passes implicades en la detecció de l’ungla.
2.3.2 Comunicació del sistema
A l’apartat anterior s’explica que es té el procés separat en fases independents entre si.
Tot i així, les passes posteriors necessiten obtenir informació calculada en les prèvies.
Per això, totes les dades que es calculen en les distintes passes s’engloben dins una classe que pot ésser consultada a parir de qualsevol punt del procés.
10
2.4. Conclusions
La classe que conté tota aquesta informació s’anomenaSample. És utilitzada per mantenir tot el procés comunicat amb les passes predecessores. Aquesta classe és el nucli de l’aplicació.
2.4 Conclusions
En el present capítol s’ha definit com ha estat planificat i executat el projecte. Pel que fa a la planificació, cal destacar el requisit principal que afecta alTFG,identificar els píxels de la imatge que pertanyen a l’ungla del dit gran del peu. Del software utilitzat, el punt més important és la utilització dePythoncom a llenguatge de programació.
Finalment, també es important la separació del software desenvolupat en dues parts:
la normalització i la identificació de l’ungla.
C
APÍTOL3
E L P ROCÉS
En el capítol anterior, s’ha definit tot el relatiu a com s’ha duit a terme el projecte. En aquest, es definirà el procés on s’engloba el presentTFG. L’objectiu és donar a conèixer tot el software que envolta la nostra aportació al projecte, i d’aquesta manera facilitar la comprensió dels capítols vinents.
Al subapartat2.3.1, s’han introduït les passes del procés que executa el sistema que s’està desenvolupant. En aquest capítol s’explicaran en detall.
La figura3.1mostra l’estructura del procés gràficament, on es destaquen les imatges d’entrada i de sortida d’aquest:
• Entrada: Imatge original, presa directament amb un determinat model de càme- ra. Fotografia en detall d’un peu capturada sobre una plantilla predefinida
• Sortida: Màscara de l’ungla, mapa de bits que ens indica els píxels que pertanyen a l’ungla.
A més, al diagrama es pot apreciar que el procés està format per dues grans passes:
la normalització espacial i la cerca de l’ungla. Aquestes dues, al mateix temps, estan dividides en distintes subpasses. La resta del capítol es dedicarà a explicar en detall aquestes grans passes.
3.1 Normalització espacial de la imatge
La primera fase del procés consisteix en obtenir la imatge original normalitzada. Això s’aconsegueix reubicant el contingut de l’entrada de manera que totes les parts que interessen estiguin situades al mateix lloc de la imatge resultant. Aquesta reubicació del contingut s’aconsegueix corregint la perspectiva en què la imatge ha estat presa, i quedant-se amb la zona d’interès.
Al diagrama3.1, aquesta tasca correspon al primer gran bloc.
Imatge Original
M`ascara dels
Quadrats
Color quadrats
V`ertexs m´es
Imatge normalitzada
M`ascara pell
Imatge
M`ascara
M`ascara
M`ascara ungla del dit del peu
circular sobre l’ungla externs de cada quadrat
identificat quadrats Normalitzaci´o espacial
Cerca de l’ungla enmascarats
Figura 3.1:Diagrama de les passes del procés.
14
3.1. Normalització espacial de la imatge 3.1.1 La plantilla
Per facilitar el procés de normalització, es va definir una plantilla sobre la qual s’han de prendre les imatges. La finalitat d’aquesta plantilla és ajudar amb l’obtenció dels punts d’interès de la imatge.
A la figura3.2es té un exemple d’aquesta plantilla, on es poden veure dos quadrats negres grans que representen la plantilla pel peu dret i pel peu esquerre. A damunt de cada una es tenen diverses figures geomètriques quadrades que són les que ajuden a realitzar la normalització. La creu que està al centre de cada plantilla és l’indicador d’on s’ha de posar el dit gran del peu.
Els quadrats vermell, verd i blau, serveixen per identificar la zona que s’ha de norma- litzar. Aquesta zona ve definida per quatre punts: tres formats pel vèrtex més exterior de cada quadrat i un quart que és calculat a partir dels altres tres. Aquest punts serveixen per establir un quadrat perfecte que defineix la zona de la imatge a normalitzar.
Figura 3.2:Plantilla de captura de imatges.
3.1.2 Les passes
A la figura3.3hi ha representades les passes per les que passa la imatge fins aconseguir la seva normalització.
No s’entrarà en els detalls del funcionament de les passes, ja que aquest és el punt d’inici d’aquestTFG. A continuació s’explicarà cada passa a alt nivell:
• Figura3.3(a): Imatge tal i com ha estat presa amb la càmera.
• Figura3.3(b): Màscara dels quadrats que ens interessen.
• Figura3.3(c): Màscara superimposada sobre la imatge original.
• Figura3.3(d): Imatge representada en l’espai de colorCieLabon es poden identi- ficar clarament els colors dels cantons. A partir dels quals sabem a quina posició pertanyen.
• Figura3.3(e): Punts dels vèrtexs més externs de cada quadrat. Quart punt calculat amb el valor dels altres tres.
• Figura3.3(f ): Contingut de la imatge que està entre els quatre punts obtinguts a la passa anterior. Distorsionada perquè s’ajusti a la forma d’un quadrat perfecte.
(a)Imatge original. (b) Threshold sobre la imat- ge original.
(c) Màscara del pas(b)apli- cada a la imatge.
(d) Dibuix dels cantons de la plantilla.
(e) Punts d’interès identifi- cats a sobre de la imatge.
(f ) Imatge normalitzada fi- nal.
Figura 3.3:Passes de la normalització.
3.2 Cerca de l’ungla
Aquesta passa consisteix en identificar quins píxels de la imatge pertanyen a l’ungla del dit gran del peu. Gràcies a la normalització es té la imatge en un format estàndard per qualsevol entrada que s’hagi pogut normalitzar, un 90 % dels casos.
Per assolir l’objectiu d’aquesta passa, igual que amb l’anterior, se separa el problema en problemes més petits fins arribar a la solució final. En la figura3.4es poden observar les alteracions que es fan sobre la imatge fins que s’aconsegueix una màscara binària amb l’ungla identificada que apareix a la subfigura3.4(f ).
Aquesta tasca correspon al segon gran bloc que apareix al diagrama3.1. Als següents apartats de la secció s’explica en detall cada una de les imatges que apareixen a la figura.
16
3.2. Cerca de l’ungla 3.2.1 Identificació de la zona de pell
Els rangs de possibles valors d’un píxel de pell humana utilitzant el model de colorRGB són coneguts. Aquests, es poden discriminar mitjançant una funció lògica fàcilment computable a partir dels valorsRGBde cada píxel [3].
Avaluant tots els píxels amb la funció lògica anterior es pot crear un mapa de bits dels píxels de color de pell, apareix al diagrama3.1com amàscara de pell, aquesta es pot apreciar en la figura3.4(b). Gràcies a aquesta màscara es poden separar els dits dels peus de la resta de la imatge, obtenint d’aquesta manera laImatge del peu, figura3.4(c).
La màscara binària de la pell serà molt útil per altres operacions que es realitzaran sobre la imatge, com el seu suavitzat del qual es parlarà al capítol5.
3.2.2 Identificació de l’ungla
En aquest instant ja s’ha reduït la zona de cerca de l’ungla a únicament la zona de la imatge que conté pell, però encara s’ha de refinar més la zona d’interès. El resultat ideal seria identificar exactament quins píxels de la imatge pertanyen a l’ungla del dit gran del peu.
Segmentació circular
Per assolir aquesta separació, el primer que es fa és intentar identificar la zona del dit gran del peu que conté l’ungla, que sempre serà l’extrem inferior del dit. Com que aquest té un contorn circular, i se sap cercar figures geomètriques en imatges (mètode que es tracta al capítol5), es pot fer una màscara circular a sobre del dit. Aquesta apareix al diagrama3.1com amàscara del dit, i es pot apreciar gràficament a la figura3.4(d).
Una vegada es té la màscara amb la zona del dit d’interès, s’intenta trobar la posició exacta de l’ungla. A la imatge3.4(e), es veu com s’aconsegueix una altra màscara circular que marca l’ungla.
L’obtenció d’aquestes dues màscares circulars, comentades als dos paràgrafs an- teriors constitueix unes de les grans contribucions delTFGque es presenta en aquest document. L’obtenció d’aquestes es tractada a fons al capítol5del document.
Segmentació colors
Finalment, fent ús d’aquesta darrera màscara sobre l’ungla, es fa una segmentació dels colors de la imatge mitjançant l’algorisme deFelzenszwalb. Aquest algorisme divideix la imatge en parts segons la seva colorimetria i geometria. De tots els trossos obtinguts per l’algorisme, se n’agafen tots els que han caigut totalment o parcialment a dins del cercle de l’ungla (veure la figura3.4(e)). S’ajunten tots aquests trossos i s’obté la imatge 3.4(f )que serveix com a màscara binaria de la zona de l’ungla.
La imatge de la màscara binària de l’ungla, la3.4(f ), no és perfecta. Això és degut a les condicions de presa d’imatge (qualitat de les càmeres) i el nombre d’imatges que s’han disposat per l’aprenentatge han limitat la solució del problema. Tot i així, aquesta imatge es pot post-processar, i així es farà per exportar el sistema a l’entorn industrial.
La realització d’aquesta darrera acció, tot i pertànyer al procés de detecció de l’ungla, no es contempla a la resta del document, ja que surt de l’abast delTFG.
(a)Imatge normalitzada. (b) Màscara binària de la zo- na de pell.
(c)Imatge amb només els dits dels peus.
(d) Zona d’interès del dit. (e) Zona d’interès de dintre del dit.
(f )Màscara de l’ungla.
Figura 3.4:Passes de la detecció de l’ungla.
3.3 Conclusions
En aquest capítol s’ha definit en què consisteix el procés que s’ha elaborat per complir amb els objectius del projecte.
El primer que fa aquest procés és convertir una imatge d’entrada en un format estàndard, a aquesta acció se l’anomena normalització espacial. A la resta del document totes les referències a la imatge normalitzada es referiran a la resultant d’aquesta passa.
Després de l’estandardització de la imatge, se li aplicaran un conjunt de mètodes amb la fi d’identificar la zona que conté l’ungla.
18
C
APÍTOL4
E STUDI DELS COLORS
En els capítols anteriors s’ha definit tot el relatiu al disseny i al funcionament del sistema amb el que es treballa. La primera fase que es va dur a terme amb el projecte va ser la de posar-se al dia de tot el relatiu al sistema que s’ha definit als capítols anteriors, a fi de conèixer l’entorn on es treballaria.
Una vegada superada aquesta primera fase es va procedir a executar un primer experiment. Els detalls de com va ser executat i els resultats que s’obtingueren en aquest experiment son tractats a la resta del present capítol.
A l’apartat3.2es definia que es tenia l’objectiu d’identificar quins píxels pertanyen a l’ungla del dit gran i quins no. En aquest capítol s’exposarà el primer experiment que es va dur a terme per intentar aconseguir-ho. No és la solució final adoptada.
El primer que es va pensar per aconseguir aquesta separació va ser estudiar la colorimetria de l’ungla. A simple vista pareix que els colors de l’ungla són diferents als de la pell dels dits del peu, però no es així, com es veurà a mesura que s’avanci en el capítol.
Per la realització de l’experiment, es van estudiar els colors de l’ungla dels dits grans dels peus en distintes imatges, amb l’objectiu d’observar quines característiques tenien en comú aquests píxels que els pogués diferenciar dels de la resta. En aquest capítol s’explica com es va executar l’estudi, i els resultats que s’obtingueren.
4.1 Funcionalitat
Es comença el capítol explicant tota la funcionalitat que s’ha implementat per poder realitzar l’estudi. Aquestes implementacions tenen l’objectiu de recopilar totes les dades que interessen i avaluar-les. L’avaluació es centra en comprovar si els píxels de l’ungla tenen un comportament distint als de la resta de la imatge.
S’han implementat tres programes independents, d’aquesta manera si en un futur s’ha de fer un estudi semblant serà més fàcil reutilitzar el codi. Aquests tres programes són explicats als següents subapartats.
4.1.1 Recopilació de dades
El primer que s’ha fet per poder començar l’estudi és obtenir un conjunt de dades per estudiar. Aquestes dades s’han obtingut mitjançant unscriptd’elaboració pròpia.
Aquest, permet que donada una imatge es pugui seleccionar amb el ratolí la zona on es desitja recopilar els píxels. A més, amb distintes comandes de teclat facilita modificar característiques d’aquells que es recullen. Per exemple, es pot modificar la distància màxima dels píxels que es recopilen d’on s’ha clicat amb el ratolí. Els seleccionats són mostrats per la mateixa aplicació, així com es mostra a la figura4.1. Gràcies a aquesta imatge és fàcil ajustar els píxels que es desitja recollir, ja que es va modificant en temps d’execució.
Figura 4.1: Exemple d’imatge amb els píxels recopilats.
El programa rep com a paràmetre una carpeta d’imatges i executa el procés explicat al paràgraf anterior per totes les imatges de la carpeta.
Finalment, enregistra el valor de tots els píxels recopilats codificats en els espais de colorsCieLab,RGBiHSVen un fitxer Extensible Markup Language (XML). Aquest, es utilitzat com a entrada pel programa explicat al següent apartat.
4.1.2 Obtenció d’estadístics
De les dades que es tenen al fitxerXMLgenerat pel programa anterior, interessa conèixer diferents valors estadístics. Per obtenir-los, s’ha desenvolupat un programa que té com a entrada el fitxerXML amb la informació dels píxels. I com a sortida escriu un arxiu en format JavaScript Object Notation (JSON) amb la mitjana, la Desviació Típica (de l’anglèsStandard Deviation) (StDev) i els intervals de confiança amb una probabilitat del 85%, 90%, 95%, 99%. Aquestes dades són emmagatzemades per totes les codificacions de píxels que es tenen enregistrats.
20
4.2. Resultats 4.1.3 Realització d’un estudi del seu comportament estadístic
Aquest darrer programa, carrega les dades dels fitxersXMLiJSON, generats pels dos anteriors.
A partir de totes aquestes dades, realitza un estudi del seu comportament. L’objectiu és comprovar si els píxels de l’ungla tenen un comportament distint als de la resta de la imatge.
Per assolir l’objectiu, el primer que fa el programa es comprovar si les dades que es tenen segueixen algun tipus de distribució amb la generació dels histogrames de cada canal que es té enregistrat. Els gràfics que genera són els que es mostren en aquest capítol (per exemple, el4.3). També es generen els histograma de cada canal individualment per facilitar la visualització de les dades, els quals han estat inclosos a la seccióA.2de l’annex com a complement dels que es mostren a aquest capítol.
A més dels histogrames, també genera imatges amb les distàncies de tots els píxels a la mitja d’un o varis canals. Els valors d’aquestes mitges es troben enregistrats al fitxer d’estadístics. Un exemple de les imatges generades són les que apareixen a la figura 4.3. Gràcies a aquestes figures s’ha pogut veure si els píxels de l’ungla s’apropaven molt al valor mig i la resta s’allunya d’aquest valor. Ja que així es podria classificar els píxels d’ungla amb aquest valor.
Finalment, s’han aprofitat els intervals de confiança dels canals que es tenien enregistrats per crear màscares binàries de la imatge dels píxels que estan dins aquest interval. Aquestes imatges no han portat cap informació que no es pogués deduir amb les imatges de distàncies explicades a l’apartat anterior, així que no es presentaran anàlisis amb aquestes imatges al present document.
4.2 Resultats
L’estudi en curs es va haver de realitzar dues vegades. Això va ser degut a que en el primer estudi es va treballar amb poques imatges. Més tard, es va adquirir un conjunt d’imatges noves, i al aplicar els valors obtinguts en el primer estudi, aquests no eren vàlids per les imatges noves.
4.2.1 Primer estudi
Al primer estudi realitzat es varen prendre les mostres d’un conjunt de quinze imatges, més tres recollides a l’atzar d’undata setvell i quatre imatges afectades amb fongs.
Aquestes darreres imatges s’han pres per intentar generalitzar l’estudi a qualsevol tipus d’ungles, ja que l’aplicació del sistema dins l’entorn industrial no té per que fer-se sobre ungles sanes.
La figura4.2mostra com es distribueixen les dades a l’estudi. En la subfigura4.2(a) s’observa la distribució del valor de tots els píxels estudiats codificats ambHSV, a la 4.2(b)tenim el mateix amb la codificacióRGBi a4.2(c)ambCieLab.
A les distribucions, es pot observar com les dades estan molt disperses amb la codificacióRGBi pels canals s i v deHSV, també per el L deCieLab. Els canals que aporten una informació interessant són el H deHSV, que representa la tonalitat dels píxels i els canals a i b deCieLab, que també representen les tonalitats d’aquests. Veiem
0 50 100 150 200 250
Values
0.00 0.05 0.10 0.15
Probability
h s v
(a)Model de colorHSV.
0 50 100 150 200 250
Values
0.00 0.05 0.10 0.15
Probability
b g r
(b) Model de colorRGB.
0 50 100 150 200 250
Values
0.00 0.05 0.10 0.15
Probability
L a b
(c)Model de colorCieLab.
Figura 4.2:Distribució dels colors dels píxels en el primer estudi pels distints models de colors.
que aquests valors estan centrats en un punt. Llavors serà interessant estudiar si aquests canals caracteritzen l’ungla.
Per estudiar si amb cap dels valors calculats es pot identificar què és ungla en la imatge, es va procedir a comprovar la similitud de tots els píxels de la imatge a uns determinats valors. Aquests s’han decidit a partir de l’observació del comportament dels canals, seleccionant els que semblava que aportaven més informació als gràfics de la figura4.2.
Els valors comentats al paràgraf anterior, estan representats a la figura4.3. El valor sobre el que es calcula la distància és l’especificat a continuació::
• Figura4.3(a): Valor mig dels píxels mostrejats codificats ambHSV.
• Figura4.3(b): Valor mig dels píxels mostrejats codificats ambRGB.
• Figura4.3(c): Valor mig dels píxels mostrejats codificats ambCieLab. 22
4.2. Resultats
• Figura4.3(d): Valor mig dels píxels mostrejats dels canalsaibde la codificació CieLab.
• Figura4.3(e): Valor mig dels píxels mostrejats del canalHuede la codificacióHSV.
A les imatges de la figura, es pot apreciar com el que s’havia deduït amb els diagra- mes es compleix. El valor mig de la codificacióRGBno serveix per trobar l’ungla, ja que el valor que agafen els píxels és molt dispers. A la subfigura4.3(e), s’aprecia com el valor mig del canal Hue deHSVidentifica molt bé l’ungla. Ara bé, als diagrames pareixia que la codificacióCieLabera la que més ens assenyalava l’ungla. I com veiem a la imatge, no ha estat tan remarcat com havíem previst amb les dades.
(a)CodificacióHSV. (b) CodificacióRGB. (c)CodificacióCieLab.
(d) Canals a i bCieLab. (e) Canal HueHSV.
Figura 4.3:Distància Euclidea de tots els píxels al color mig de les ungles pel primer estudi en l’espai de color corresponent.
4.2.2 Incidència
Més endavant, es va obtenir un conjunt d’imatges nou per fer proves. A l’executar el codi de l’estudi sobre les noves imatges es va comprovar que els resultats obtinguts no eren generalitzables.
A la figura4.4es pot apreciar la diferència dels resultats amb els dos conjunts, per cada subfigura la imatge de l’esquerra és del primer conjunt de dades i la de la dreta del nou. Es pot observar que a les imatges del conjunt nou, els valors mitjos són iguals de propers a qualsevol píxel de pell que a l’ungla.
4.2.3 Segon estudi
A conseqüència de la incidència es va decidir repetir l’estudi recopilant dades dels dos conjunts d’imatges. L’objectiu era comprovar si els valors convergien en algun punt per
(a)Model de colorHSV.
(b) Model de colorCieLab.
(c)Canals a i b del model de colorCieLab.
(d)Canal Hue del model de colorHSV.
Figura 4.4:Comparació de les imatges de distàncies del data set vell i del nou amb les dades del primer estudi.
alguna codificació de color.
La figura4.5mostra els resultats de les noves distribucions dels colors. Als gràfics es pot observar que s’ha produït una dispersió de les dades molt important, especialment als pics que s’observaven als canalsaibdeCieLab. El picHuedeHSVara és mes alt.
Finalment, es tornaren a generar les imatges de distàncies amb els nous valors obtinguts. A la figura4.6es veuen els nous resultats, per la representació dels resultats s’ha escollit una imatge del conjunt nou, a les altres passa el mateix. Amb aquests nous 24
4.2. Resultats
valors ja no es marca l’ungla com la part més propera per cap imatge. El gran canvi que s’ha produït és que ara es té una aproximació a la mitja dels píxels de pell per les tres codificacions, com podem apreciar a les imatges4.5(a),4.5(b)i4.5(c). Destacar que a l’anterior estudi la codificacióRGBno aportava cap informació, i ara identifica millor els píxels de pell queHSV.
Als apartats4.4.1i4.4.2són analitzades les raons de les discrepàncies entre els dos estudis.
0 50 100 150 200 250
Values 0.00
0.05 0.10 0.15
Probability
h s v
(a)Model de colorHSV.
0 50 100 150 200 250
Values 0.00
0.05 0.10 0.15
Probability
b g r
(b)Model de colorRGB.
0 50 100 150 200 250
Values 0.00
0.05 0.10 0.15
Probability
L a b
(c) Model de colorCieLab.
Figura 4.5:Distribució dels colors dels píxels en el segon estudi pels distints models de colors.
(a)Model de colorHSV. (b) Model de colorRGB. (c)Model de colorCieLab.
(d) Canals a i b del model de colorCieLab.
(e) Canal Hue del model de colorHSV.
Figura 4.6:Distàncies dels píxels al color mig de les ungles obtingut al segon estudi.
4.3 Avaluació resultats
A continuació es mostrarà per què les dades obtingudes no permeten identificar el que és ungla del peu.
La taula4.1, mostra els valors estadístics obtinguts per la codificacióHSV, la qual conté els valors més destacats pels tres canals del model de color. S’utilitzaran els estadístics de la taula per mostrar per què no serveixen els resultats per identificar el que es ungla i el que es pell. Per fer aquesta anàlisis, es compararà el rang de valors que prenen per un determinat Interval de Confiança (IC) els píxels de pell i d’ungla.
Es començarà pel canal H i V, on es pot observar que els possibles valors de pell, és un subconjunt dels de l’ungla, per tant:
Hpell⊆Hungla∧Vpell⊆V Hungla (4.1)
Pel canal S no es té el mateix, però els rangs de la pell i de l’ungla segueixen essent disjunts. Els dos rangs tenen una intersecció entre els seus valors bastant alta. El que significa que tampoc aporta una funció diferenciadora d’ambdós elements.
Llavors, amb els resultats obtinguts, no es pot de diferenciar el que és pell del que és ungla, la colorimetria de les ungles conté tots els colors de pell.
S’ha resumit l’anàlisi de les dades al modelHSVper simplificació, ja que per la resta de codificacions s’han observat els mateixos casos. A la seccióA.1de l’annex s’han inclòs les taules amb els mateixos estadístics pels altres models de colors.
26
4.4. Conclusions
Canal Estadístic Ungla Pell
1er estudi 2on estudi
H
mitja 20.18 27.68 10.66
StDev 40.12 48.85 4.55
IC85 % [ -37.59, 77.94 ] [ -42.65, 98.00 ] [ 4.21, 17.10 ] IC90 % [ -45.83, 86.18 ] [ -52.68, 108.04 ] [ 3.30, 18.01 ] IC95 % [ -58.48, 98.83 ] [ -68.08, 123.44 ] [ 1.89, 19.42 ] IC99 % [ -83.21, 123.57 ] [ -98.18, 153.54 ] [ -0.87, 22.17 ]
S
mitja 58.53 77.60 139.86
StDev 30.89 37.03 26.18
IC85 % [ 14.05, 103 ] [ 24.30, 130.91 ] [ 102.73, 177.41 ] IC90 % [ 7.71, 109.35 ] 16.68, 138.52 ] [ 97.41, 182.74 ] IC95 % [ -2.03, 119.09 ] [ 5.012 150.20 ] [ 89.23, 190.91 ] IC99 % [ -21.07, 138.14 ] [ -17.81, 173.01 ] [ 73.26, 206.89 ]
V
mitja 185.78 198.64 164.57
StDev 20.73 32.69 22.96
IC85 % [ 155.92, 215.64 ] [ 151.58, 245.71 ] [ 131.95, 197.41 ] IC90 % [ 151.66, 219.89 ] [ 144.86, 252.42 ] [ 127.28, 202.08 ] IC95 % [ 145.13, 226.43 ] [ 134.56, 262.73 ] [ 120.12, 209.25 ] IC99 % [ 132.34, 239.22 ] [ 114.41, 282.87 ] [ 106.12, 223.25 ] Taula 4.1:Estadístics obtinguts en l’estudi dels colors per el model de colorsHSV.
4.4 Conclusions
Al capítol s’ha parlat de l’intent d’identificar els píxels que són d’ungla a partir de la colorimetria de la imatge. Aquest intent s’ha duit a terme mitjançant un estudi estadístic del valor del color dels píxels de l’ungla, utilitzant distints models de color. Com que el resultat de l’estudi no ha estat satisfactori, s’ha hagut de procedir a cercar altres mètodes per identificar el que és ungla en la imatge.
4.4.1 Comportament de les dades
Comparant el primer i el segon estudi, s’ha observat que amb la incorporació del nou data seta la codificacióCieLaben lloc de tenir un pic en el canalai un pic al canalb, se’n tenen dos a cada un. D’aquí es pot deduir que cada pic pertany a un grup d’imatges.
Per tant, suposant que cada grup d’imatges s’ha pres en un ambient concret, s’entén que els valors que prenen els canals depèn directament de l’ambient on s’ha pres la imatge. I, per tant, no podem generalitzar l’estudi. Podria passar que si s’agafàs una sèrie d’imatges noves preses en un ambient distint als altres dos conjunts d’imatges, aparegués un tercer pic.
Un altre fet que possiblement influeixi en el resultat, és que al primerdata setla majoria d’imatges han estat preses al peu de la mateixa persona i a altres ungles amb una tonalitat semblant. En canvi al segondata settenim més varietat.
4.4.2 Resultats col·laterals
A la figura4.6s’ha vist com pel segon estudi, el valor mig de les tres codificacions de colors utilitzades, eren molt semblants al color de la pell. Al fitxer on s’emmagatzemaven estadístics teníem enregistrat els intervals de confiança de les tres codificacions. S’ha fet l’experiment d’elaborar una màscara binària pels píxels que pertanyen a l’interval de confiança al 99% i s’ha observat que obtenim una màscara dels píxels que pertanyen als dits dels peus.
Així que, l’experiment no ha servit per trobar el que perseguíem, però s’ha descobert com fer una aproximació a un mapa de bits pels píxels de pell.
28
C
APÍTOL5
T RANSFORMADA DE H OUGH
Després del fracàs de l’experiment tractat al capítol4, es segueix en la cerca de patrons que serveixin per identificar l’ungla en la imatge (passa de l’apartat3.2del procés).
En aquest cas, en lloc d’intentar cercar l’ungla a partir dels seus colors, la cercam mitjançant les formes dels elements de la imatge.
S’ha observat que tots (o almenys la gran majoria) de dits grans dels peus tenen una forma circular. En aquest capítol s’exposa com s’ha aprofitat aquesta característica per assolir un objectiu: identificar la posició estimada de l’ungla. Per dur a terme aquesta tasca s’ha utilitzat una tècnica usada comunament en visió per computador anomenadaTransformada de Hough.
Per arribar a la solució final que identifica la posició exacta de l’ungla, s’han anat desenvolupant diferents aproximacions a la solució, fins que s’ha arribat a la final. En el capítol estan explicades totes aquestes aproximacions, sovint referenciades com a versions, amb l’objectiu d’exemplificar els diferents problemes que s’han trobat i com s’han anat solucionant. Seguint l’explicació de les distintes versions es pot observar quina ha estat l’evolució del sistema.
El capítol segueix la següent estructura: comença amb una secció on s’expliquen els fonaments teòrics necessaris per comprendre la resta del capítol; després, es troba una secció per cada versió que s’ha desenvolupat del sistema, on s’explica el procés dissenyat per la versió, les dificultats que s’han trobat i els resultats obtinguts, i s’acaba amb una secció on es resumeixen les principals conclusions extretes.
5.1 Fonaments teòrics
La tasca que es presenta en aquest capítol es basa en la generació de latransformada de Houghd’una imatge, i la cerca d’un cercle a sobre que assenyali l’ungla. L’obtenció de la transformada no és un procés trivial, és necessari tenir una sèrie de coneixements teòrics previs per saber com funciona i obtenir el resultat que cercam.
En aquest apartat s’explica què és latransformada de Houghi com s’obté. Aquesta és
calculada a partir de la imatge de contorns generada per l’algorisme de Canny. Llavors, és necessari començar explicant aquest per poder entendre el procés.
5.1.1 Detector de contorns de Canny
L’algorisme de Canny[4] transforma una imatge en escala grisos en una de binària, on els píxels que pertanyen a un contorn són 1 i la resta 0.
No es tractarà en profunditat el funcionament de l’algorisme. El que s’ha de saber d’aquest és que els contorns trobats depenen del contrast entre les superfícies que apareixen en la imatge.
La figura5.1mostra un exemple d’una imatge de contorns obtinguda amb l’algorisme de Canny. En aquesta es poden observar dues superfícies principals: el peu i el fons.
Com es pot veure es troba un contorn que defineix la forma del peu, definit per el contrast entre aquestes dues superfícies.
(a)Imatge original. (b)Contorns obtinguts de(a).
Figura 5.1:Exemple dels contorns obtinguts amb l’algorisme de Canny.
Paràmetres
A aquest algorisme, a més de la imatge d’entrada, se li han s’assignar els següents paràmetres que depenen de les característiques de la imatge:
• Sigma: Desviació estàndard del filtre Gaussià. Depèn del renou de la imatge.
• Low threshold: Llindar inferior d’histèresi (per enllaçar els contorns).
• High threshold: Llindar superior d’histèresi (per enllaçar els contorns).
Els paràmetres del llindar inferior i superior són els llindars que s’utilitzen per binaritzar la imatge de gradients, i laSigmaper la supressió del renous de la imatge original.
5.1.2 Transformada deHough
Latransformada de Hough[4,5] és una tècnica que detecta patrons en imatges digitals, limitada en la detecció de figures que es poden parametritzar. Doncs, com és obvi, és 30
5.1. Fonaments teòrics
capaç de detectar les figures circulars (un cercle es pot definir amb una posició i un radi) que ens interessen. Per reduir l’abast al que ens interessa, en la resta de l’apartat totes les referències a la transformada seran per figures circulars.
L’algorisme
L’algorisme de latransformada de Houghconsisteix en una transformació de la imatge en un espai format per les figures que que es cerquen. En el cas dels cercles la transforma a l’espai (x,y,r), onxiysón les coordenades del centre del cercle ir és el radi.
El pseudoalgorisme1representa l’algorisme a alt nivell. Mencionar que no s’imple- menta exactament com està representat en el pseudocodi en qüestió, ja que seria molt ineficient. L’objectiu de la figura és fer-se una idea de com funciona i el que fa, ja que no forma part del projecte entrar al baix nivell de la seva implementació.
Algorisme 1Transformada deHough
Entrada: imatge: Matriu d’una dimensió n*m d’una imatge en escala de grisos Entrada: Conjunt de possibles radis del cercleR AD={r1,r2,rn} no buid.
Sortida: Cercles identificats en la imatge
1: c ann y←imatge de contorns de la imatge
2: houg hTr ans←{}
3: for {x,y}∈i mat g edo
4: for r∈R ADdo
5: accum←0
6: forpos∈contorn del cercle (x,y,r)do
7: ifc ann y(pos) es un contornthen
8: accum←accum+1
9: end if
10: end for
11: ifaccum6=0then
12: cer cl e←(x,y,r,accum)
13: ad d(houg hTr ans,cer cl e)
14: end if
15: end for
16: end for
17: return houg hTr ans
A l’algorisme que s’ha posat d’exemple, per cada píxel (x,y) calcula un cercle per cada radir indicat. Cada figura té definida amb l’acumuladorcom està de marcada per un contorn. En el cas de l’exemple es retornen tots els cercles que almenys tenguin un píxel que pertany a un contorn, aquesta condició no és comuna en quasi cap implementació de les que es poden trobar a la xarxa.
Entrada
Les entrades de l’algorisme varien segons la llibreria d’on s’aprofiti la implementació.
Per a l’elaboració d’aquest treball s’han utilitzat dues implementacions distintes, expli- cades a la secció5.1.2. Els paràmetres d’entrada comuns de qualsevol implementació són els següents: