• No se han encontrado resultados

Detecció d'ungles en imatges mèdiques

N/A
N/A
Protected

Academic year: 2020

Share "Detecció d'ungles en imatges mèdiques"

Copied!
101
0
0

Texto completo

(1)Treball Final de Grau. GRAU D’ENGINYERIA INFORMÀTICA. Detecció d’ungles en imatges mèdiques. BERNAT GALMÉS RUBERT. Biel Moyà Alcover. Tutors Pedro Bibiloni Serrano. Escola Politècnica Superior Universitat de les Illes Balears Palma, juliol del 2017.

(2)

(3) S UMARI. Sumari. i. Índex de figures. v. Acrònims. vii. Resum 1. 2. 3. ix. Introducció 1.1 Projecte . . . . . . . . . . . . . . . . . . . . . . . 1.1.1 Aplicacions pràctiques . . . . . . . . . 1.2 Equip . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Objectius . . . . . . . . . . . . . . . . . . . . . . 1.3.1 Estudi de la colorimetria de les ungles 1.3.2 Identificació de la posició de l’ungla . 1.4 Motivació . . . . . . . . . . . . . . . . . . . . . . Arquitectura del sistema 2.1 Planificació . . . . . . . . . . . . . . 2.1.1 Requisits . . . . . . . . . . . 2.1.2 Restriccions . . . . . . . . . 2.1.3 Desenvolupament . . . . . 2.2 Software usat . . . . . . . . . . . . . 2.2.1 Llenguatge de programació 2.2.2 Llibreries . . . . . . . . . . . 2.2.3 Sincronització . . . . . . . . 2.3 Construcció del Sistema . . . . . . 2.3.1 Divideix i guanyaràs . . . . 2.3.2 Comunicació del sistema . 2.4 Conclusions . . . . . . . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. 1 1 1 2 3 3 3 3. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. 5 5 5 6 6 7 7 8 9 9 10 10 11. El Procés 3.1 Normalització espacial de la imatge . 3.1.1 La plantilla . . . . . . . . . . . 3.1.2 Les passes . . . . . . . . . . . . 3.2 Cerca de l’ungla . . . . . . . . . . . . . 3.2.1 Identificació de la zona de pell. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. 13 13 15 15 16 17. i. . . . . . . . . . . . ..

(4) ii. SUMARI. 3.3 4. 5. 3.2.2 Identificació de l’ungla . . . . . . . . . . . . . . . . . . . . . . . . Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. Estudi dels colors 4.1 Funcionalitat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 Recopilació de dades . . . . . . . . . . . . . . . . . . . . . 4.1.2 Obtenció d’estadístics . . . . . . . . . . . . . . . . . . . . . 4.1.3 Realització d’un estudi del seu comportament estadístic 4.2 Resultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1 Primer estudi . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2 Incidència . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.3 Segon estudi . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Avaluació resultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.1 Comportament de les dades . . . . . . . . . . . . . . . . . 4.4.2 Resultats col·laterals . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. 17 18. . . . . . . . . . . . .. 19 19 20 20 21 21 21 23 23 26 27 27 28. Transformada de Hough 5.1 Fonaments teòrics . . . . . . . . . . . . . . 5.1.1 Detector de contorns de Canny . 5.1.2 Transformada de Hough . . . . . . 5.2 Primera versió . . . . . . . . . . . . . . . . 5.2.1 Implementació . . . . . . . . . . . 5.2.2 Dificultats . . . . . . . . . . . . . . 5.2.3 Resultats . . . . . . . . . . . . . . . 5.3 Segona versió . . . . . . . . . . . . . . . . . 5.3.1 Implementació . . . . . . . . . . . 5.3.2 Dificultats . . . . . . . . . . . . . . 5.3.3 Resultats . . . . . . . . . . . . . . . 5.4 Versió final . . . . . . . . . . . . . . . . . . 5.4.1 Implementació . . . . . . . . . . . 5.4.2 Dificultats . . . . . . . . . . . . . . 5.4.3 Resultats . . . . . . . . . . . . . . . 5.4.4 Avaluació dels resultats obtinguts 5.4.5 Tecnologies utilitzades . . . . . . 5.5 Conclusions . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . .. 29 29 30 30 32 32 34 36 37 39 41 43 45 45 48 50 55 57 57. Conclusions 6.1 Desenvolupament . . . . . . . . . . . . 6.1.1 Planificació . . . . . . . . . . . 6.1.2 Generació de codi . . . . . . . 6.1.3 Comunicació amb tot l’equip 6.2 Sistema . . . . . . . . . . . . . . . . . . 6.3 Experiments . . . . . . . . . . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. 59 59 60 60 60 61 62. A Resultats estudi colors A.1 Estadístics obtenguts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 65 65. 6. . . . . . .. . . . . . ..

(5) SUMARI A.2. iii Distribucions dels canals individuals . . . . . . . . . . . . . . . . . . . . . A.2.1 1er estudi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2.2 2on estudi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. B Resultats amb la transformada de Hough B.1 Primera versió . . . . . . . . . . . . . . B.2 Segona versió . . . . . . . . . . . . . . . B.3 Versió final . . . . . . . . . . . . . . . . B.3.1 Resultats globals . . . . . . . . B.3.2 Resultats avaluació . . . . . . . B.3.3 Exemples d’imatges avaluades Bibliografia. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. 67 67 70 73 73 78 78 78 83 83 89.

(6)

(7) Í 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 3.2 3.3 3.4. Diagrama de les passes del procés. Plantilla de captura de imatges. . . Passes de la normalització. . . . . . Passes de la detecció de l’ungla. . .. . . . .. 14 15 16 18. 4.1 4.2. Exemple d’imatge amb els píxels recopilats. . . . . . . . . . . . . . . . . . . Distribució dels colors dels píxels en el primer estudi pels distints models de colors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Distància Euclidea de tots els píxels al color mig de les ungles pel primer estudi en l’espai de color corresponent. . . . . . . . . . . . . . . . . . . . . . Comparació de les imatges de distàncies del data set vell i del nou amb les dades del primer estudi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Distribució dels colors dels píxels en el segon estudi pels distints models de colors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Distàncies dels píxels al color mig de les ungles obtingut al segon estudi. .. 20. 4.3 4.4 4.5 4.6. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. Exemple dels contorns obtinguts amb l’algorisme de Canny. . . . . . . . . . Diagrama de flux de la primera versió. . . . . . . . . . . . . . . . . . . . . . . Resultats amb distints valors pel paràmetre del llindar dels cercles a trobar amb la transformada que ens ofereix OpenCV, cercle seleccionat en verd. . . 5.4 Imatges amb la selecció del cercle més proper al centre de la imatge. . . . . 5.5 Exemple de cercle seleccionat amb el procés definit, acolorit de verd. . . . 5.6 Primer exemple d’imatges de cercles seleccionats, pintats de verd. . . . . . 5.7 Cercles trobats amb la implementació d’skimage en una primera prova. . . 5.8 Diagrama de flux de la segona versió. . . . . . . . . . . . . . . . . . . . . . . . 5.9 Cercles trobats en distintes imatges de contorns, obtingudes variant els paràmetres de l’algorisme de Canny. . . . . . . . . . . . . . . . . . . . . . . . 5.10 Cercles trobats en distintes imatges de contorns, obtingudes variant els paràmetres de l’algorisme de Canny. . . . . . . . . . . . . . . . . . . . . . . . 5.11 Cercles trobats en distintes imatges de contorns, obtingudes variant els paràmetres de l’algorisme de Canny. . . . . . . . . . . . . . . . . . . . . . . . 5.12 Diagrama de flux de la tercera versió. (1) Detalls de la detecció de l’ungla a la figura 5.14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1 5.2 5.3. v. 22 23 24 25 26 30 33 35 35 36 37 38 40 41 42 44 46.

(8) vi. Índex de figures. 5.13 5.14 5.15 5.16 5.17 5.18 5.19. Exemple d’imatge suavitzada. . . . . . . . . . . . . . . . . . . . . . . . . . . . Diagrama de flux de la detecció de l’ungla, tercera versió. . . . . . . . . . . . Diferències als resultats entre la imatge suavitzada i la imatge sense suavitzar. Diferències als resultats entre la imatge suavitzada i la imatge sense suavitzar. Primer exemple de resultats obtinguts amb la tercera versió. . . . . . . . . . Segon exemple de resultats obtinguts amb la tercera versió. . . . . . . . . . Tercer exemple de resultats obtinguts amb la tercera versió. . . . . . . . . .. A.1. Distribució dels colors dels píxels d’ungla amb el model de color Vermell, Verd i Blau (de l’anglès Red, Green, Blue) (RGB), dades del primer estudi. . . Distribució dels colors dels píxels d’ungla amb el model de color Tonalitat, Saturació i Valor (de l’anglès Hue, Saturation, Value) (HSV), dades del primer estudi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Distribució dels colors dels píxels d’ungla amb el model de color CieLab, dades del primer estudi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Distribució dels colors dels píxels d’ungla amb el model de color RGB, dades del segon estudi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Distribució dels colors dels píxels d’ungla amb el model de color HSV, dades del segon estudi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Distribució dels colors dels píxels d’ungla amb el model de color CieLab, dades del segon estudi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. A.2. A.3 A.4 A.5 A.6. Exemple de la imatge1 de cercles seleccionats utilitzant distints atributs amb la primera versió, cercle seleccionat de verd. . . . . . . . . . . . . . . . B.2 Exemple de la imatge5 de cercles seleccionats utilitzant distints atributs amb la primera versió, cercle seleccionat de verd. . . . . . . . . . . . . . . . B.3 Exemple de la imatge9 de cercles seleccionats utilitzant distints atributs amb la primera versió, cercle seleccionat de verd. . . . . . . . . . . . . . . . B.4 Exemple de la imatge11 de cercles seleccionats utilitzant distints atributs amb la primera versió, cercle seleccionat de verd. . . . . . . . . . . . . . . . B.5 Exemple de la imatge1 dels resultats obtinguts en la tercera versió. . . . . . B.6 Exemple de la imatge5 dels resultats obtinguts en la tercera versió. . . . . . B.7 Exemple de la imatge9 dels resultats obtinguts en la tercera versió. . . . . . B.8 Exemple de la imatge11 dels resultats obtinguts en la tercera versió. . . . . . B.9 Exemple de la imatge1 dels resultats obtinguts en la tercera versió. . . . . . B.10 Exemple de la imatge5 dels resultats obtinguts en la tercera versió. . . . . . B.11 Exemple de la imatge9 dels resultats obtinguts en la tercera versió. . . . . . B.12 Exemple de la imatge11 dels resultats obtinguts en la tercera versió. . . . . .. 47 49 51 52 53 54 55. 67. 68 69 70 71 72. B.1. 74 75 76 77 79 80 81 82 84 85 86 87.

(9) A CRÒNIMS API Application Programming Interface BGR Blau, Verd i Vermell (de l’anglès Blue, Green, Red) FNR False Negative Rate FPR False Positive Rate HSV Tonalitat, Saturació i Valor (de l’anglès Hue, 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ès Red, Green, Blue) TFG Treball Final de Grau StDev Desviació Típica (de l’anglès Standard Deviation) TPR True Positive Rate (o recall) UIB Universitat de les Illes Balears XML Extensible Markup Language. vii.

(10)

(11) 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 la transformada de Hough per 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 la transformada 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.. ix.

(12)

(13) CAPÍTOL. 1. 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’imatges (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. 1.

(14) 1. I NTRODUCCIÓ 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 figura 1.1 tenim 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 la UIB i el de l’empresa. Cada una té assignades distintes responsabilitats: • L’equip de la UIB: Assessorament i creació d’una IPU. • L’equip de l’empresa: Desenvolupar la Application Programming Interface (API) del projecte, a partir de la IPU. El present TFG s’engloba dins l’equip de la UIB. Més endavant, a l’apartat 1.4, s’explica que un dels motius que dugueren a dur a terme aquest TFG és l’absència de coneixements en el camp de la visió per computador. Com és obvi, no es va assessorar un projecte d’un camp que no es domina, sinó que el treball tractat al TFG és el desenvolupament de la IPU. 2.

(15) 1.3. Objectius. 1.3 Objectius A les seccions anteriors s’ha definit l’abast del projecte on s’engloba el TFG. 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ítol 3. 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 present TFG tracta 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’identificar 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ítol 4.. 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 identificar 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 anomenada transformada de Hough. Aquesta tasca s’explica en detall al capítol 5.. 1.4 Motivació Per acabar amb el capítol es recopilen els motius que ens varen induir a realitzar el TFG aquí presentat.. Adquirir coneixements de visió per computador El pla d’estudis de l’enginyeria cursada no contempla el camp de la visió per computador. 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. 3.

(16) 1. I NTRODUCCIÓ 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.

(17) CAPÍTOL. 2. 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 aquest TFG, 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 desenvolupament, 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és ad hoc.. 2.1.1 Requisits Els requisits de la llibreria no són molt extensos, en aquest apartat únicament s’exposaran els que afecten directament al TFG. 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. 5.

(18) 2. A RQUITECTURA DEL SISTEMA 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 desenvolupament. 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 localització 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. 1 La plantilla predefinida s’explica en detall a l’apartat 3.1.1. 6.

(19) 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++ i Matlab. Tenint en compte que el Matlab és de pagament, ja queda descartat directament. Així que ens queden dues opcions: Python i C++ A la taula 2.1 es 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.. Eficiència Codi generat Executable Desenvolupament Llibreries de visió per computador i tractament d’imatges. Python Ineficient Poca quantitat Codi Interpretat Àgil (ràpid). C++ Eficient Molta quantitat Codi Compilat Estricte (lent). Sí. Sí. Taula 2.1: Taula comparativa entre Python i C++.. 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 7.

(20) 2. A RQUITECTURA DEL SISTEMA aporta Python per assegurar-lo, ja que amb aquest llenguatge es genera poc codi i molt dinàmic. Per exemple, amb Python si 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àssim C++ afegir un canvi al codi suposaria fer molts més canvis a la resta. Gràcies a aquest atribut, s’ha decidit decantar-se pel Python, que ens facilitarà un desenvolupament dinàmic.. 2.2.2 Llibreries Si simplement s’utilitzàs Python natiu, 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 disposa Python. Un altre factor que potencia l’ús de llibreries externes, és la necessitat que imposa Python d’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 biblioteca OpenCV resulta 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 amb OpenCV ofereix 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 projecte Python que realitzi càlculs amb vectors i matrius, ja que les implementacions natives de Python d’aquestes estructures de dades són molt ineficients. La llibreria és una capa d’abstracció de totes les operacions sobre matrius implementades per sota amb el llenguatge C. Matplotlib Llibreria de generació de gràfiques 2D. Utilitzada per visualitzar gràficament els resultats dels experiments. Tots els gràfics que apareixen en aquest document són generats amb aquesta llibreria. 8.

(21) 2.3. Construcció del Sistema. Math Més que una llibreria és un mòdul nadiu de Python. Conté tota la funcionalitat matemàtica bàsica utilitzada en el projecte. Scipy Proporciona tot un ecosistema de funcions usades en ciència, enginyeria y matemàtiques. 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 el Git. 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 produeixen sobre les dependències del sistema (llibreries, versió de Python...). 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’anomena Conda. 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ó del Git que 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. 9.

(22) 2. A RQUITECTURA DEL SISTEMA. 2.3.1 Divideix i guanyaràs En la secció 1.3 s’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 figura 2.1 exemplifica 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 figura 2.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 interessen 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 figura 2.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.

(23) 2.4. Conclusions La classe que conté tota aquesta informació s’anomena Sample. É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 al TFG, 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ó de Python com a llenguatge de programació. Finalment, també es important la separació del software desenvolupat en dues parts: la normalització i la identificació de l’ungla.. 11.

(24)

(25) CAPÍTOL. 3. 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 present TFG. 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 subapartat 2.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 figura 3.1 mostra 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àmera. 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 diagrama 3.1, aquesta tasca correspon al primer gran bloc. 13.

(26) 3. E L P ROCÉS. Imatge Original Normalització espacial Màscara dels quadrats Quadrats enmascarats Color quadrats identificat Vèrtexs més externs de cada quadrat Imatge normalitzada Cerca de l’ungla Màscara pell. Imatge del peu. Màscara del dit Màscara circular sobre l’ungla. Màscara ungla Figura 3.1: Diagrama de les passes del procés.. 14.

(27) 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 figura 3.2 es 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 normalitzar. 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 figura 3.3 hi 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’aquest TFG. A continuació s’explicarà cada passa a alt nivell: • Figura 3.3(a): Imatge tal i com ha estat presa amb la càmera. • Figura 3.3(b): Màscara dels quadrats que ens interessen. • Figura 3.3(c): Màscara superimposada sobre la imatge original. 15.

(28) 3. E L P ROCÉS • Figura 3.3(d): Imatge representada en l’espai de color CieLab on es poden identificar clarament els colors dels cantons. A partir dels quals sabem a quina posició pertanyen. • Figura 3.3(e): Punts dels vèrtexs més externs de cada quadrat. Quart punt calculat amb el valor dels altres tres. • Figura 3.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- (c) Màscara del pas (b) aplige original. cada a la imatge.. (d) Dibuix dels cantons de la plantilla.. (e) Punts d’interès identifi- (f ) Imatge normalitzada ficats a sobre de la imatge. 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 figura 3.4 es 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 subfigura 3.4(f). Aquesta tasca correspon al segon gran bloc que apareix al diagrama 3.1. Als següents apartats de la secció s’explica en detall cada una de les imatges que apareixen a la figura. 16.

(29) 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 color RGB són coneguts. Aquests, es poden discriminar mitjançant una funció lògica fàcilment computable a partir dels valors RGB de 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 diagrama 3.1 com a màscara de pell, aquesta es pot apreciar en la figura 3.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 la Imatge del peu, figura 3.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ítol 5.. 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ítol 5), es pot fer una màscara circular a sobre del dit. Aquesta apareix al diagrama 3.1 com a màscara del dit, i es pot apreciar gràficament a la figura 3.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 imatge 3.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 anteriors constitueix unes de les grans contribucions del TFG que es presenta en aquest document. L’obtenció d’aquestes es tractada a fons al capítol 5 del 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 de Felzenszwalb. 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 figura 3.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, la 3.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 del TFG. 17.

(30) 3. E L P ROCÉS. (a) Imatge normalitzada.. (b) Màscara binària de la zo- (c) Imatge amb només els dits na de pell. 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.

(31) CAPÍTOL. 4. 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’apartat 3.2 es 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. 19.

(32) 4. E STUDI DELS COLORS. 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 un script d’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 figura 4.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 colors CieLab, RGB i HSV en 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 fitxer XML generat pel programa anterior, interessa conèixer diferents valors estadístics. Per obtenir-los, s’ha desenvolupat un programa que té com a entrada el fitxer XML 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ès Standard 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.

(33) 4.2. Resultats. 4.1.3 Realització d’un estudi del seu comportament estadístic Aquest darrer programa, carrega les dades dels fitxers XML i JSON, 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, el 4.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.2 de 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’un data set vell 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 figura 4.2 mostra com es distribueixen les dades a l’estudi. En la subfigura 4.2(a) s’observa la distribució del valor de tots els píxels estudiats codificats amb HSV, a la 4.2(b) tenim el mateix amb la codificació RGB i a 4.2(c) amb CieLab. A les distribucions, es pot observar com les dades estan molt disperses amb la codificació RGB i pels canals s i v de HSV, també per el L de CieLab. Els canals que aporten una informació interessant són el H de HSV, que representa la tonalitat dels píxels i els canals a i b de CieLab, que també representen les tonalitats d’aquests. Veiem 21.

(34) 4. E STUDI DELS COLORS. h s v. Probability. 0.15. 0.10. 0.05. 0.00 0. 50. 100. 150. 200. 250. Values. (a) Model de color HSV.. b g r. Probability. 0.15. 0.10. 0.05. 0.00 0. 50. 100. 150. 200. 250. Values. (b) Model de color RGB.. L a b. Probability. 0.15. 0.10. 0.05. 0.00 0. 50. 100. 150. 200. 250. Values. (c) Model de color CieLab. 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 figura 4.2. Els valors comentats al paràgraf anterior, estan representats a la figura 4.3. El valor sobre el que es calcula la distància és l’especificat a continuació:: • Figura 4.3(a): Valor mig dels píxels mostrejats codificats amb HSV. • Figura 4.3(b): Valor mig dels píxels mostrejats codificats amb RGB. • Figura 4.3(c): Valor mig dels píxels mostrejats codificats amb CieLab. 22.

(35) 4.2. Resultats • Figura 4.3(d): Valor mig dels píxels mostrejats dels canals a i b de la codificació CieLab. • Figura 4.3(e): Valor mig dels píxels mostrejats del canal Hue de la codificació HSV. A les imatges de la figura, es pot apreciar com el que s’havia deduït amb els diagrames es compleix. El valor mig de la codificació RGB no serveix per trobar l’ungla, ja que el valor que agafen els píxels és molt dispers. A la subfigura 4.3(e), s’aprecia com el valor mig del canal Hue de HSV identifica molt bé l’ungla. Ara bé, als diagrames pareixia que la codificació CieLab era 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.. (d) Canals a i b CieLab.. (b) Codificació RGB.. (c) Codificació CieLab.. (e) Canal Hue HSV.. 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 figura 4.4 es 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 23.

(36) 4. E STUDI DELS COLORS. (a) Model de color HSV.. (b) Model de color CieLab.. (c) Canals a i b del model de color CieLab.. (d) Canal Hue del model de color HSV. 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 figura 4.5 mostra 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 canals a i b de CieLab. El pic Hue de HSV ara és mes alt. Finalment, es tornaren a generar les imatges de distàncies amb els nous valors obtinguts. A la figura 4.6 es 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.

(37) 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 imatges 4.5(a), 4.5(b) i 4.5(c). Destacar que a l’anterior estudi la codificació RGB no aportava cap informació, i ara identifica millor els píxels de pell que HSV. Als apartats 4.4.1 i 4.4.2 són analitzades les raons de les discrepàncies entre els dos estudis.. h s v. Probability. 0.15. 0.10. 0.05. 0.00 0. 50. 100. 150. 200. 250. Values. (a) Model de color HSV.. b g r. Probability. 0.15. 0.10. 0.05. 0.00 0. 50. 100. 150. 200. 250. Values. (b) Model de color RGB.. L a b. Probability. 0.15. 0.10. 0.05. 0.00 0. 50. 100. 150. 200. 250. Values. (c) Model de color CieLab. Figura 4.5: Distribució dels colors dels píxels en el segon estudi pels distints models de colors.. 25.

(38) 4. E STUDI DELS COLORS. (a) Model de color HSV.. (b) Model de color RGB.. (d) Canals a i b del model de color CieLab.. (c) Model de color CieLab.. (e) Canal Hue del model de color HSV.. 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 taula 4.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 model HSV per simplificació, ja que per la resta de codificacions s’han observat els mateixos casos. A la secció A.1 de l’annex s’han inclòs les taules amb els mateixos estadístics pels altres models de colors. 26.

(39) 4.4. Conclusions. Canal. H. S. V. Estadístic mitja StDev IC 85 % IC 90 % IC 95 % IC 99 % mitja StDev IC 85 % IC 90 % IC 95 % IC 99 % mitja StDev IC 85 % IC 90 % IC 95 % IC 99 %. Ungla 1er estudi 2on estudi 20.18 27.68 40.12 48.85 [ -37.59, 77.94 ] [ -42.65, 98.00 ] [ -45.83, 86.18 ] [ -52.68, 108.04 ] [ -58.48, 98.83 ] [ -68.08, 123.44 ] [ -83.21, 123.57 ] [ -98.18, 153.54 ] 58.53 77.60 30.89 37.03 [ 14.05, 103 ] [ 24.30, 130.91 ] [ 7.71, 109.35 ] 16.68, 138.52 ] [ -2.03, 119.09 ] [ 5.012 150.20 ] [ -21.07, 138.14 ] [ -17.81, 173.01 ] 185.78 198.64 20.73 32.69 [ 155.92, 215.64 ] [ 151.58, 245.71 ] [ 151.66, 219.89 ] [ 144.86, 252.42 ] [ 145.13, 226.43 ] [ 134.56, 262.73 ] [ 132.34, 239.22 ] [ 114.41, 282.87 ]. Pell 10.66 4.55 [ 4.21, 17.10 ] [ 3.30, 18.01 ] [ 1.89, 19.42 ] [ -0.87, 22.17 ] 139.86 26.18 [ 102.73, 177.41 ] [ 97.41, 182.74 ] [ 89.23, 190.91 ] [ 73.26, 206.89 ] 164.57 22.96 [ 131.95, 197.41 ] [ 127.28, 202.08 ] [ 120.12, 209.25 ] [ 106.12, 223.25 ]. Taula 4.1: Estadístics obtinguts en l’estudi dels colors per el model de colors HSV.. 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 set a la codificació CieLab en lloc de tenir un pic en el canal a i un pic al canal b, 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 primer data set la majoria d’imatges han estat preses al peu de la mateixa persona i a altres ungles amb una tonalitat semblant. En canvi al segon data set tenim més varietat. 27.

(40) 4. E STUDI DELS COLORS. 4.4.2 Resultats col·laterals A la figura 4.6 s’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.

(41) CAPÍTOL. 5. T RANSFORMADA DE H OUGH Després del fracàs de l’experiment tractat al capítol 4, es segueix en la cerca de patrons que serveixin per identificar l’ungla en la imatge (passa de l’apartat 3.2 del 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 anomenada Transformada 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 la transformada de Hough d’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 la transformada de Hough i com s’obté. Aquesta és 29.

(42) 5. T RANSFORMADA DE H OUGH 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 figura 5.1 mostra 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 la Sigma per la supressió del renous de la imatge original.. 5.1.2 Transformada de Hough La transformada 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.

(43) 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 la transformada de Hough consisteix 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 ), on x i y són les coordenades del centre del cercle i r és el radi. El pseudoalgorisme 1 representa l’algorisme a alt nivell. Mencionar que no s’implementa 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 1 Transformada de Hough Entrada: imatge: Matriu d’una dimensió n*m d’una imatge en escala de grisos Entrada: Conjunt de possibles radis del cercle R AD = {r 1 , r 2 , r n } 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 e do 4: for r ∈ R AD do 5: accum ← 0 6: for pos ∈ contorn del cercle (x, y, r ) do 7: if cann y(pos) es un contorn then 8: accum ← accum + 1 9: end if 10: end for 11: if accum 6= 0 then 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 radi r indicat. Cada figura té definida amb l’acumulador com 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, explicades a la secció 5.1.2. Els paràmetres d’entrada comuns de qualsevol implementació són els següents: 31.

Figure

Figura 1.1: Exemple d’ungla afectada per fongs.
Figura 2.1: Resultats de les principals passes implicades en la detecció de l’ungla.
Figura 4.2: Distribució dels colors dels píxels en el primer estudi pels distints models de colors.
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.
+7

Referencias

Documento similar

document que sigués adreçat únicament per l’escola i pels professors per tal de que tinguessin eines per tal de saber tractar de forma correcta a l’infant amb

Per aquest motiu, s’ha portat a terme un estudi comparatiu dels valors de massa d’aigua precipitable i columna total d’oz´ o d’ambd´ os perfils est` andard amb els valors

Degut a la necessitat de purificació per cromatografia en columna d’un dels intermedis en aquesta síntesi, ens plantejàrem si no seria més viable, a gran escala, realitzar

Respostes sobre la conducta dels traductors jurats amb els clients __ 384 Figura 31. Percepció de la posició social i econòmica dels traductors jurats ___ 385

b) S'escriu amb d, darrere vocal, en les paraules planes els femenins i derivats de les quals porten una d: àcid (amb d, per àcida), òxid (per òxida).. c) S'lescnu amb d, darrere

Spinler SA et al 64 publiquen un estudi retrospectiu dels pacients obesos i els que presenten insuficiència renal greu tractats amb enoxaparina o HNF dels estudis

We have created this abstract to give non-members access to the country and city rankings — by number of meetings in 2014 and by estimated total number of participants in 2014 —

Amb aquest projecte es pretén agilitzar la gestió dels equips del departament, automatitzar tasques, fer un pas en la gestió del material entre les delegacions i fer el primer