Full text
Desa ollo de una aplicación en And oid pa a la es imación au omá ica
de ca bohid a os median e un análisis de imágenes y écnicas de
In eligencia A i icial.
Lau a Casas To es
Milag os del Rocío Peña Quineche
José An onio Be nal Pé ez
GRADO EN INGENIERÍA DEL SOFTWARE
FACULTAD DE INFORMÁTICA
DEPARTAMENTO DE ARQUITECTURA DE COMPUTADORES Y
AUTOMÁTICA
UNIVERSIDAD COMPLUTENSE DE MADRID
TRABAJO DE FIN DE GRADO EN INGENIERÍA DEL SOFTWARE
Di ec o : José Ignacio Hidalgo Pé ez
Codi ec o a: Ma ía Guija o Ma a-Ga cía
2
Dedica o ia
Dedicado a nues as amilias que siemp e nos han apoyado a pesa de las di icul ades.
3
Ag adecimien os
Ag adecimien os a odos los p o eso es que nos han ayudado a lo la go de nues as idas
haciendo de sus asigna u as algo más que una me a o ma de ap endizaje. Además ag adece a
Ma ía e Ignacio po su dedicación y apoyo du an e es e abajo.
4
Índice
LISTA DE FIGURAS............................................................................................................................... 7
RESUMEN ............................................................................................................................................ 11
PALABRAS CLAVE .................................................................................................................................... 12
ABSTRACT ........................................................................................................................................... 13
KEYWORDS ........................................................................................................................................... 14
INTRODUCCIÓN .................................................................................................................................. 15
ANTECEDENTES ...................................................................................................................................... 15
Diabe es ........................................................................................................................................ 15
Análisis au omá ico de imágenes ................................................................................................... 17
In eligencia a i icial ...................................................................................................................... 19
OBJETIVOS Y PLAN DE TRABAJO.................................................................................................................. 20
MOTIVACIÓN ........................................................................................................................................ 21
FUNDAMENTOS TEÓRICOS .............................................................................................................. 22
SISTEMA OPERATIVO .............................................................................................................................. 22
DATA-SET Y BASE DE DATOS ..................................................................................................................... 23
SQLi e ............................................................................................................................................ 26
Cloud SQL ...................................................................................................................................... 27
MySQL y Ma iaDB.......................................................................................................................... 27
CLASIFICACIÓN Y SEGMENTACIÓN ............................................................................................................... 28
ALGORITMOS DE SEGMENTACIÓN ............................................................................................................... 29
Algo i mo i e a i o ........................................................................................................................ 29
Algo i mo clásico ........................................................................................................................... 30
Algo i mo KMeans ......................................................................................................................... 31
ALGORITMOS DE CLASIFICACIÓN ................................................................................................................ 34
Bayes ............................................................................................................................................ 34
5
K-Nea es Neighbo s (KNN) ............................................................................................................ 35
IMPLEMENTACIÓN ............................................................................................................................ 37
CLIENTE ............................................................................................................................................... 38
Ja a............................................................................................................................................... 38
And oid Mani es ........................................................................................................................... 45
G adle ........................................................................................................................................... 46
Ac i i ies, In en s y Layou s ............................................................................................................ 48
Gene ación de la Base de Conocimien os ....................................................................................... 51
K – Nea es Neighbo ..................................................................................................................... 56
API de USDA .................................................................................................................................. 61
API de aducción de Google .......................................................................................................... 63
Concu encia, pa alelismo e hilos ................................................................................................... 64
Funcionalidades des acadas .......................................................................................................... 66
SERVIDOR ............................................................................................................................................. 88
Apache .......................................................................................................................................... 88
SEGURIDAD......................................................................................................................................... 90
MANTENIMIENTO .............................................................................................................................. 94
ANÁLISIS DE INGENIERÍA DEL SOFTWARE ................................................................................... 96
RIESGOS ............................................................................................................................................... 96
COSTES Y NEGOCIO ................................................................................................................................. 98
CALIDAD Y RENDIMIENTO ......................................................................................................................... 99
MANUAL DE USUARIO ..................................................................................................................... 102
INICIO DE SESIÓN .................................................................................................................................. 102
OPCIONES DE IMÁGENES ........................................................................................................................ 105
MENÚ SECUNDARIO .............................................................................................................................. 109
MENÚ DE USUARIO ............................................................................................................................... 112
RESULTADOS ..................................................................................................................................... 116
CONTRIBUCIONES ............................................................................................................................ 119
6
CONCLUSIONES ................................................................................................................................. 127
CONCLUSIONS ................................................................................................................................... 130
LISTA DE REFERENCIAS .................................................................................................................. 133
7
Lis a de igu as
FIGURA 1. ETAPAS DEL ANÁLISIS AUTOMÁTICO DE UNA IMAGEN. ........................................ 17
FIGURA 2. VENTA DE TERMINALES EN JUNIO DE 2018 ............................................................... 22
FIGURA 3. SISTEMA OPERATIVO MÁS UTILIZADO A NIVEL MUNDIAL. ................................... 22
FIGURA 4. ESQUEMA GENERAL FUNCIONAMIENTO APLICACIÓN. ........................................... 24
FIGURA 5. ESQUEMA DE FUNCIONAMIENTO SEGMENTACIÓN Y CLASIFICACIÓN. ............... 28
FIGURA 6. REPRESENTACIÓN DEL FUNCIONAMIENTO DE UN ALGORITMO DE
AGRUPACIÓN. REFERENCIADO EN MARAVALL, D. (1993) .......................................................... 32
FIGURA 7. ESQUEMA DE FUNCIONAMIENTO DE LA ARQUITECTURA CLIENTE-SERVIDOR. 38
FIGURA 8. ESQUEMA DE FUNCIONAMIENTO DE LA ARQUITECTURA MVC ............................ 39
FIGURA 9. DIAGRAMA DE CLASES SIMPLIFICADO DE LA CAPA DE PRESENTACIÓN. ........... 41
FIGURA 10. DIAGRAMA DE CLASES SIMPLIFICADO DE LA CAPA DE NEGOCIO. .................... 43
FIGURA 11. DIAGRAMA DE CLASES SIMPLIFICADO DE LA CAPA DE INTEGRACIÓN. ............ 44
FIGURA 12. EXTRACTO DEL ARCHIVO ANDROIDMANIFEST.XML ............................................ 45
FIGURA 13. PLUGIN DEL ARCHIVO BUILD.GRADLE..................................................................... 46
FIGURA 14. ANDROID DEL ARCHIVO BUILD.GRADLE ................................................................. 47
FIGURA 15. DEPENDENCIES DEL ARCHIVO BUILD.GRADLE ...................................................... 47
FIGURA 16. IMÁGENES DE GOOGLE DRIVE ................................................................................... 52
FIGURA 17. ALIMENTO PARA BASE DE CONOCIMIENTOS .......................................................... 53
FIGURA 18. COMPARACIÓN DE KMEANS DE JAVA CON MATLAB ............................................ 53
FIGURA 19. BASE DE CONOCIMIENTOS PARA KNN...................................................................... 54
FIGURA 20. BASE DE CONOCIMIENTOS PARA KNN...................................................................... 55
FIGURA 21. CROPACTIVITY, RECORTAR ALIMENTO DE UNA IMAGEN .................................... 56
FIGURA 22. CÓDIGO DE LA CLASE KNNCLASSIFIER .................................................................... 57
8
FIGURA 23. CÓDIGO DE LA CLASE KNNQUEUE ............................................................................ 58
FIGURA 24. CÓDIGO DE LA CLASE KNNQUEUEELEMENT .......................................................... 59
FIGURA 25. MÉTODO DE CÁLCULO DE PESOS .............................................................................. 59
FIGURA 26. MÉTODO DE VOTOS DE LA CLASE BOXVOTE .......................................................... 60
FIGURA 27. CÓDIGO DE LA CLASE PREDICTION ........................................................................... 61
FIGURA 28. ESQUEMA DE EJECUCIÓN DE LA CLASE ASYNCTASK [30] .................................... 64
FIGURA 29. USO DE ASYNCTASK EN LA APLICACIÓN ................................................................. 65
FIGURA 30. CASOS DE USO EL USUARIO ........................................................................................ 66
FIGURA 31. DIAGRAMA DE ACTIVIDAD DE CALCULAR BOLO PRANDIAL .............................. 71
FIGURA 32. DIAGRAMA DE ACTIVIDAD DE CALCULAR BOLO CORRECTOR ........................... 72
FIGURA 33. DIAGRAMA DE SECUENCIA DE AÑADIR INSULINA ................................................ 73
FIGURA 34. DIAGRAMA DE FLUJO DE AÑADIR PLATO EN USUARIOS DIABÉTICOS .............. 74
FIGURA 35. DIAGRAMA DE SECUENCIA DE AÑADIR PLATO A SUS COMIDAS ........................ 75
FIGURA 36. CASOS DE USO PARA LA IMAGEN .............................................................................. 76
FIGURA 37. DIAGRAMA DE FLUJO DE PROCESAR IMAGEN ........................................................ 77
FIGURA 38. DIAGRAMA DE ACTIVIDAD DE SEGMENTAR Y CLASIFICAR IMAGEN ................ 78
FIGURA 39. DIAGRAMA DE SECUENCIA DE SEGMENTAR IMAGEN........................................... 79
FIGURA 40. DIAGRAMA DE SECUENCIA DE PROCESAR IMAGEN DE USUARIO ...................... 80
FIGURA 41. DIAGRAMA DE CASOS DE USO PARA LA COMIDA .................................................. 81
FIGURA 42. DIAGRAMA DE FLUJO PARA REPORTE DE ALIMENTOS ......................................... 82
FIGURA 43. DIAGRAMA DE ACTIVIDAD PARA REPORTE DE ALIMENTOS ............................... 83
FIGURA 44. DIAGRAMA DE SECUENCIA PARA REPORTE DE ALIMENTOS ............................... 84
FIGURA 45. DIAGRAMA DE FLUJO PARA AÑADIR COMIDA NUEVA A LA BD ......................... 85
FIGURA 46. DIAGRAMA DE ACTIVIDAD PARA AÑADIR COMIDA NUEVA A LA BD ................ 86
FIGURA 47. DIAGRAMA DE SECUENCIA PARA AÑADIR COMIDA NUEVA A LA BD................ 87
9
FIGURA 48. SCRIPTS PHP DEL SERVIDOR ....................................................................................... 89
FIGURA 49. ESQUEMA ENTIDAD-RELACIÓN DE LA BD ............................................................... 89
FIGURA 50. MÉTODOS DE ENCRIPTACIÓN Y DESENCRIPTACIÓN ............................................. 91
FIGURA 51. FUNCIONAMIENTO DEL ESTÁNDAR AES PARA ENCRIPTADO DE TEXTO........... 92
FIGURA 52. FUNCIONAMIENTO DEL SCRIPT DE BACKUP EN CASO DE ERROR ...................... 94
FIGURA 53. BACKUP CORRECTO ..................................................................................................... 94
FIGURA 54. TABLA DE PRIORIZACIÓN DEL RIESGO..................................................................... 97
FIGURA 55. GRÁFICA DE MONITORIZACIÓN AL INICIAR LA APLICACIÓN ............................. 100
FIGURA 56. GRÁFICA DE MONITORIZACIÓN DURANTE EL PROCESAMIENTO DE LA
IMAGEN. ............................................................................................................................................. 101
FIGURA 57. GRÁFICA DE MONITORIZACIÓN DURANTE EL REPORTE NUTRICIONAL DE LOS
ALIMENTOS........................................................................................................................................ 101
FIGURA 58. VISTA DE ACCESO A LA APLICACIÓN ...................................................................... 102
FIGURA 59. VISTA DE MENÚ PRINCIPAL ....................................................................................... 103
FIGURA 60. VISTA DE GALERÍA ...................................................................................................... 103
FIGURA 61. VISTA DE CÁMARA ...................................................................................................... 104
FIGURA 62. VISTA DE MENÚ DE USUARIO SANO ........................................................................ 104
FIGURA 63. VISTA DE MENÚ DE USUARIO DIABÉTICO .............................................................. 105
FIGURA 64. VISTA PARA PROCESAR IMAGEN .............................................................................. 106
FIGURA 65. VISTA CON LISTA DE POSIBLE/S COMIDAS EN LA IMAGEN ................................. 106
FIGURA 66. MENÚ SECUNDARIO .................................................................................................... 107
FIGURA 67. VISTA PARA RECORTAR IMAGEN ............................................................................. 107
FIGURA 68. VISTA PARA AÑADIR NOMBRE A LA NUEVA COMIDA.......................................... 108
FIGURA 69. VISTA PARA AÑADIR NUEVA COMIDA CON NOMBRE E INGREDIENTES ........... 108
FIGURA 70. VISTA PARA AÑADIR INGREDIENTES DE LA NUEVA COMIDA ............................ 109
16
ho mona. No malmen e el pánc eas de las pe sonas que padecen es e ipo de diabe es
iende a disminui la p oducción de insulina paula inamen e. El 80% de las pe sonas que
desa ollan diabe es ipo 2 ienen obesidad y un es ilo de ida muy seden a io. El 20%
es an e suelen ene un de ec o he edi a io que causa esis encia a la insulina.
- Diabe es ges acional: du an e el emba azo se p oduce una in ole ancia o al a la
glucosa que puede se debida a múl iples causas. Es e ipo de diabe es apa ece en una de
cada diez muje es emba azadas.
- O os ipos de diabe es: diabe es MODY (Ma u i y Onse Diabe es in he
Young) que se p oduce po de ec os de las células be a o Diabe es DRFQ (Diabe es
Relacionada con Fib osis Quís ica) que se p oduce po el impac o de la Fib osis Quís ica
en el pánc eas.
En España los da os sob e la diabe es no son nada alen ado es. Un es udio
epidemiológico ealizado po la Sociedad Eu opea de Diabe es mues a que el 13,8% de
los españoles mayo es de 18 años iene diabe es ipo 2, lo que equi ale a más de 5,3
millones de pe sonas. De es os, el 43% desconocía que padecía la en e medad. El e aso
en descub i que se padece diabe es implica que cuando se diagnos ica la mi ad de los
casos ya p esen an alguna complicación. Además, el es udio ha e elado más da os
impo an es elacionados con si uaciones que se elacionan es echamen e con la
diabe es. El 28,2% de la población es obesa y el 12,6% es in ole an e a la glucosa. [3]
17
Análisis au omá ico de imágenes
La isión po compu ado [4] a a de do a a las máquinas del sen ido de la is a
con el obje i o de ex ae in o mación de las imágenes y pode u iliza la en dis in as
p ác icas. Suele gi a en o no al econocimien o de o mas, aunque hay muchas más
ca ac e ís icas que se pueden u iliza de una imagen como, po ejemplo, el colo . Cada
píxel que con o ma una imagen digi al con iene un ec o de es alo es que con iene el
ni el de ojo, azul y e de, espec i amen e.
Figu a 1. E apas del análisis au omá ico de una imagen.
Pa a pode consegui in o mación ú il de una imagen se siguen una se ie de e apas
y p ocesamien os o ien ados a mejo a la calidad de la in o mación que se a a ex ae de
ella, al y como se desc ibe en la Figu a 1. La p ime a e apa consis i á en la oma de la
imagen. En es e abajo se ealiza á a a és de la cáma a del mó il donde es é ins alada
la aplicación.
En la e apa de p e-p ocesado se con emplan innume ables ope aciones de p e-
p ocesamien o de imágenes que ayuden a acili a la a ea a las e apas sucesi as. Den o
de las écnicas de p e-p ocesamien o de imágenes exis en dos g andes á eas:
Imagen P e-p ocesado Segmen ación Cálculo de
ca ac e ís icas Clasi icación
18
p ocesamien o con obse ado humano o p ocesamien o sin obse ado humano. El
p ocesamien o sin obse ado humano iene mayo in e és p ác ico en los sis emas de
isión po compu ado . La écnica más común se ía:
• T ans o mación del his og ama: el his og ama de una imagen es un g á ico que
ep esen a los ni eles de g is en el eje de abscisas y el núme o de pixeles de cada
ni el en el eje de o denadas. Aunque en algunas ocasiones el his og ama solo
o o ga la posibilidad de aumen a o disminui los ni eles de con as e de una
imagen, en o as ocasiones es su icien e pa a sepa a obje os den o de una
imagen acili ando la e apa de in e p e ación.
Después de la e apa de p e-p ocesado la imagen pasa po la e apa de
segmen ación. La segmen ación de una imagen sepa a las dis in as zonas de in e és de
es udio, con i iéndose así en una e apa decisi a po la impo ancia de los esul ados que
p opo ciona. Es a e apa di ie e dependiendo del obje i o que se pe siga con la
in e p e ación de la imagen. En gene al se sepa an en zonas o en obje os indi iduales.
Exis en dis in os ipos de écnicas de segmen ación:
• Ag upación po asgos comunes: segmen a las imágenes median e algo i mos
de ag upación de da os. Es a écnica segmen a las imágenes de o ma au omá ica
y no supe isada sin exigi un conocimien o p e io de las clases de obje os
exis en es.
• Ex acción de bo des: sepa a los obje os a pa i de sus bo des. Es a écnica se
inspi a en un p incipio muy in ui i o y simple pues o que los pixeles si uados en
los bo des de los dis in os obje os p esen an g andes a iaciones en sus
ca ac e ís icas con espec o a los pixeles ecinos. Po ejemplo, un obje o oscu o
si uado en un ondo cla o.
19
Una ez la imagen ha sido segmen ada se pasa a la ase de ex acción de asgos.
Independien emen e de la o ma elegida de segmen ación, los asgos ob enidos han de se
su icien es pa a pode dis ingui los dis in os obje os. Las dis in as ca ac e ís icas
ex aídas de cada obje o o man un ec o que se usa á en la e apa de clasi icación.
An es de pasa a la clasi icación de los obje os es imp escindible habe los
ca alogado p e iamen e. Es deci , un sis ema de isión a i icial basa su conocimien o en
una ba e ía de da os ca gados con an e io idad po un equipo de especialis as. La
complejidad de la ba e ía de da os depende del obje i o de la aplicación pudiendo se
muy sencilla o compleja. [5]
In eligencia a i icial
La in eligencia a i icial [6] es aquella di igida a las máquinas con el obje i o de
“imi a las unciones «cogni i as» que los humanos asocian con o as men es humanas,
como po ejemplo ap ende y esol e p oblemas”.
Es e concep o es conocido desde 1956, año en el que se de e minaba si una
máquina e a capaz de imi a la in eligencia humana con el es de Alan Tu ing y los
axiomas de la Ley de Moo e. [6]
Has a la ac ualidad, el desa ollo y la in es igación de la In eligencia A i icial ha
enido un c ecimien o exponencial que g acias a los p oyec os de inno ación sigue
aumen ando. Po es o, en los úl imos años ha c ecido un nue o concep o de i ado de la
IA, que es el Machine Lea ning [6], cuyo obje i o es cons ui p og amas que mejo en
20
au omá icamen e median e la expe iencia. G acias a es a ama ha e olucionado el
ap endizaje au omá ico de las máquinas y con él, el concep o p incipal que es amos
a ando en es e TFG, que es la Visión po Compu ado o Visión A i icial. Del mismo
modo que la IA p e ende emula la in eligencia humana do ando a las máquinas de la
capacidad de manipula da os senso iales simila es a los empleados po los se es i os, la
Visión A i icial si e a es e p opósi o con el obje i o úl imo de gene a in o mación a
pa i de da os isuales median e el es udio de los p ocesos de econocimien o y
localización de obje os po medio del p ocesamien o de imágenes. [7]
Obje i os y plan de abajo
El obje i o es la cons ucción de una aplicación pa a disposi i os mó iles con
sis ema ope a i o And oid que sea capaz de es ima de o ma au omá ica, con un ni el de
e o bajo, los dis in os alimen os que se le mues an a a és de una imagen digi al,
ex ayendo ca ac e ís icas de colo de cada uno de los pixeles y usando és as pa a
segmen a y clasi ica los alimen os. Además, la aplicación debe p opo ciona y gua da
in o mación nu icional sob e cada alimen o de ec ado.
21
Mo i ación
Va ios han sido los mo i os que nos han impulsado en el desa ollo de es e
p oyec o.
El p ime o de odos ha sido el in e és y mo i ación que nos p opo cionaba
abaja en una aplicación que usa écnicas de in eligencia a i icial con el obje i o de
iden i ica obje os. El campo de la in eligencia a i icial, que se encuen a lejos de o ece
odas las en ajas que es capaz de p opo ciona , supone un e o y un á ea de in es igación
ascinan e donde pode aplica muchos de los conocimien os que hemos adqui ido a lo
la go de nues a ca e a, el G ado en Ingenie ía de So wa e, e incluso más que hemos
adqui ido a aíz de nues o abajo en es e p oyec o.
Además, pa a noso os pode desa olla es a aplicación en una pla a o ma como
And oid suponía un doble e o al e nos en en ados a nue as complicaciones y desa íos
que no hemos enido an p esen es a lo la go de nues os es udios.
Po úl imo, desa olla una aplicación que supone una pequeña apo ación al
mundo de la salud y que, po lo an o, pod ía supone una mejo a de la calidad de ida de
un sec o de la población nos ha mo i ado eno memen e pa a pe ecciona aún más odo
el abajo que se ha ealizado du an e el p oyec o.
22
Fundamen os eó icos
Sis ema Ope a i o
Uno de los p incipales obje i os de es e p oyec o es mejo a la calidad de ida de
la mayo can idad de pe sonas posible. Pa a consegui esa me a ealizamos una
in es igación sob e los e minales más endidos en el año 2018 y el sis ema ope a i o
más u ilizado, ambos a ni el mundial.
Figu a 2. Ven a de e minales en junio de 2018 [8]
Figu a 3. Sis ema Ope a i o más u ilizado a ni el mundial. [9]
23
Como se puede ap ecia en la Figu as 2 las es ma cas más endidas en el mundo
en junio de 2018 e an Samsung con el 30.66%, Apple con el 18.94% y Xiaomi con el
7.01%, de las cuales la p ime a y la e ce a usan el sis ema ope a i o And oid. Además,
en la Figu a 3 exis e un p edominio de dicho sis ema como el más usado ambién a ni el
mundial.
Es o, añadido a la al a de ecu sos del equipo que imposibili aba ealiza una
co ec a ase de p uebas en un disposi i o con sis ema ope a i o iOS y a la mayo
expe iencia en es e e eno, debido a los conocimien os sob e And oid adqui idos a lo
la go de la ca e a, nos hizo decan a nos po ealiza el p oyec o en es a pla a o ma.
Da a-se y Base de da os
La implemen ación de la aplicación cons a de dos pa es a desa olla . La p ime a
pa e es o -line y se enca ga á de gene a un da a-se , o base de conocimien os, pa a que
el algo i mo enca gado de la clasi icación de los alimen os pueda ob ene conocimien os
y ap ende .
Po o o lado, se end á una pa e on-line en la que al oma la decisión e
iden i ica el alimen o, debe á egis a esa in o mación en una base de da os.
24
Figu a 4. Esquema gene al uncionamien o aplicación.
Como se mues a en la Figu a 4 la aplicación di ide su compo amien o en dos
pa es p incipales. La pa e o -line iene como obje i o c ea un da a-se o conjun o de
da os lo más ex enso posible pa a el co ec o uncionamien o de la pa e on-line. Se omó
una ba e ía de imágenes que ue on segmen adas au omá icamen e median e el algo i mo
KMeans [15] y e ique adas manualmen e po el equipo de desa ollo. Toda es a
in o mación ue subida manualmen e a la base de da os p opo cionando así el conjun o
de da os de ap endizaje de la aplicación. La pa e on-line sigue un lujo lineal di idido en
cua o a eas p incipales:
Cap u a de in o mación: es la p ime a e apa con enida en la pa e on-line de la
aplicación. En es e caso, la cap u a de in o mación es la oma en iempo eal de
una o og a ía po pa e del usua io, o la elección de una que haya sido omada
p e iamen e, del pla o de comida que aya a inge i .
Ex acción de la in o mación: una ez el usua io ha p opo cionado una imagen
pasamos a la e apa de ex acción de la in o mación. En es a e apa segmen a emos
po colo los dis in os componen es, en es e caso alimen os, que o man el pla o.
25
Como esul ado de la segmen ación ob enemos los pixeles pe enecien es a cada
alimen o con los que calcula emos su amaño y su media RGB.
Codi icación de la in o mación: as consegui la in o mación de cada alimen o
lo e ique a emos median e un algo i mo de clasi icación. El algo i mo de
clasi icación Knn [20] hace uso de un da a-se c eado p e iamen e en la pa e o -
line. G acias a es e conjun o de da os somos capaces median e el cálculo de
dis ancias euclídeas de p edeci la ca ego ía más posible a la que puede pe enece
el alimen o. Después se mues a al usua io una lis a de múl iple opción de las
ca ego ías más p obables a las que pueden pe enece donde pod á selecciona la
e ique a inal a la que se asigna á cada uno, o c ea una nue a en caso de que no
exis iese.
Iden i icación de la decisión: los dis in os alimen os ya han sido e ique ados
co ec amen e, dicha in o mación se á subida a la base de da os pa a aumen a el
da a-se con el obje i o de que la aplicación con inúe siemp e ap endiendo.
Además, se ealiza á una consul a a la base de da os es adounidense USDA [42],
median e la cual se consiguen los nu ien es, cen ándonos sob e odo en los
ca bohid a os, de cada alimen o.
Pa a es as bases de da os, el equipo decidió in es iga qué bases de da os end ía
mejo endimien o y compa ibilidad con And oid. En un p incipio, se con empló la
opción de u iliza el módulo INTERNAL STORAGE que o ece And oid, pa a pode
gua da la in o mación en el p opio disposi i o. La g an en aja de es e módulo es que
cada usua io iene solo in o mación con espec o a sí mismo siendo ac ible al esquema
elacional de la BD. Sin emba go, la aplicación e mina ía aba cando demasiado espacio
en memo ia y a ec a ía al e minal.
32
Figu a 6. Rep esen ación del uncionamien o de un algo i mo de ag upación.
Re e enciado en Ma a all, D. (1993)
El uncionamien o del algo i mo se ía el siguien e pa iendo de un conjun o de
obje os a clasi ica : [18]
• Paso 1: selecciona alea o iamen e k pun os den o del conjun o de obje os o da a
se . Es os pun os se án conside ados los cen os de las k clases.
• Paso 2: calcula espec i amen e la dis ancia de cada pun o con cada uno de los
cen os. Los pun os pe enece án al cen o con meno dis ancia.
𝑱=∑∑||𝒙𝒏− 𝝁𝒌||𝟐
𝑲
𝒌=𝟏
𝑵
𝒏=𝟏
• Donde k es el núme o de cen os y n el núme o de obse aciones, siendo k
≤ n.
• Siendo ( 𝑥1 ,𝑥2,…,𝑥𝑛 ) el conjun o de obse aciones, en nues o caso,
siendo el conjun o de pixeles.
• Donde 𝝁𝒌 es la media de pun os en el cen o k.
{𝑋1,𝑋2…𝑋𝑝}
Algo i mo
de
Ag upación
∝1:{𝑋12 …𝑋1𝑟}
∝2:{𝑋21 …𝑋2𝑠}
∝𝑘:{𝑋41 …𝑋4𝑡}
33
• Paso 3: una ez se han ag upado los pun os en sus espec i os cen os, es p eciso
ecalcula los cen os de las clases. El obje i o de ecalcula los cen os es
minimiza J. En cada i e ación J i á disminuyendo o al menos no su i á ningún
cambio, pe o nunca aumen a su alo , lo que ga an iza que e en ualmen e
alcanza á su mínimo.
• Paso 4: de acue do con los nue os cen os se uel e a calcula la dis ancia de
cada pun o con cada cen o. Si la dis ancia con el nue o cen o es meno que la
dis ancia con el cen o an e io el pun o pasa a o ma pa e del nue o g upo. Es e
paso se epi e has a que el algo i mo sea es able, es deci , ninguno de los pun os
cambia de cen o.
El algo i mo K-means depende en g an medida de los cen os que se eligen
alea o iamen e en la p ime a i e ación. El p oblema p incipal es que si la clasi icación
inicial que se hace en o no a es os cen os se des ía mucho de la clasi icación óp ima
lle a a esul ados e óneos. Cuan o mayo es el conjun o de da os, po ejemplo, en el caso
de una imagen, mayo es la des iación hacia la clasi icación óp ima. Debido a es o la
imagen debe p ocesa se en a ias ondas de ag upamien o pa a pode log a mejo es
esul ados. U ilizando K-means pa a segmen a una misma imagen a ias eces, los
esul ados conseguidos son di e en es al cambia los cen os de ag upación iniciales. El
algo i mo suele epe i se a ias eces consiguiendo así mejo es esul ados al habe
con emplado más posibilidades.
En conclusión, K-means es un algo i mo que nos pe mi i á segmen a las
imágenes sin un conocimien o p e io de las clases en las que enía que di idi los
dis in os obje os o eciéndonos así la posibilidad de au oma iza la segmen ación de las
imágenes pa a pode consegui los da os de cada uno de los alimen os au omá icamen e.
34
Algo i mos de clasi icación
Una ez las imágenes han sido segmen adas el siguien e paso es clasi ica las
dis in as clases, en el caso de es e p oyec o los dis in os alimen os, que o man pa e de la
imagen. Pa a es o se han in es igado dis in os algo i mos de clasi icación que usan
dis in os mé odos pa a clasi ica da os.
Bayes
El clasi icado bayesiano [19] es un clasi icado p obabilís ico que se undamen a
en el Teo ema de Bayes. Es e clasi icado se basa en que oma como hipó esis que cada
a iable p edic o a es independien e, es deci , ninguna a iable es á in luida po la
exis encia o desapa ición de o a. Debido a la independencia de las a iables el algo i mo
ecibe el apela i o de ingenuo.
El uncionamien o de es e clasi icado se basa en encon a la p obabilidad de
que, conociendo los alo es que desc iben a una mues a, es a pe enezca a una clase u
o a. De es a mane a, cada ca ac e ís ica ayuda independien emen e a la p obabilidad de
que pe enezca a una clase u o a.
Un hecho impo an e y posi i o de es e ipo de clasi icado , es que el “peso” o
“p obabilidad” de una a iable en la clasi icación puede se muy impo an e en elación
con la causa, pe o se además muy común en o as, con lo cual el “peso” inal disminuye.
35
𝑓(𝑥𝑖,𝑤)=𝑝(𝑥𝑖
𝑚,𝐶)
• Donde w = (w1, w2) es el ec o de pa áme os a es ima .
• Siendo p(𝑥𝑖/m) la unción de p obabilidad condicional de la clase 𝑥𝑖 pa a m.
• Donde C es la ma iz de co a ianza.
El clasi icado bayesiano ingenuo suele en ena se de mane a muy e icaz en un
en o no de ap endizaje supe isado, es deci , es ima los pa áme os a pa i de un
conjun o de da os de en enamien o. Es e conjun o de da os no iene po qué se g ande
ya que como se asumen las a iables independien es solo es necesa io calcula las
a ianzas de las a iables de cada clase.
K-Nea es Neighbo s (KNN)
K-Nea es Neighbo s o K- ecinos más ce canos [20] o ma pa e de la amilia de
algo i mos de ap endizaje basado en ins ancias o Ins ance-Based Lea ning. Es e ipo de
algo i mos no ienen un modelo global asociado a los concep os a ap ende , en su luga
las p edicciones se ealizan basándose en los ejemplos más pa ecidos a la ins ancia a
p edeci . Es deci , el ap endizaje en es e ipo de algo i mos consis e simplemen e en
almacena los da os de en enamien o y cuando exis e un nue o da o se ecupe a de
memo ia un conjun o de da os simila es que se án usados pa a clasi ica lo. La en aja de
es e ipo de algo i mos es que son capaces de usa una ep esen ación de los da os más
compleja. Po o o lado, puede llega a se muy cos oso clasi ica nue as ins ancias.
Knn asume que odas las ins ancias o da os co esponden a pun os en un plano de
n dimensiones. Los ecinos más ce canos de cada ins ancia son calculados median e
36
dis ancias euclidianas. De es a mane a la dis ancia en e dos ins ancias 𝑥𝑖 y 𝑥𝑗 se de ine
como:
𝑑(𝑥𝑖,𝑥𝑗)= √∑(𝑥𝑖− 𝑥𝑗)2
𝑛
• Donde 𝑥𝑖 y 𝑥𝑗 son los pun os conside ados pa a calcula la dis ancia euclidea.
• Siendo n el núme o de a ibu os a conside a .
Después de calcula la dis an ica con cada mues a de en enamien o nos
queda emos con K mues as más ce canas. Es a implemen ación puede se op imizada si
pesamos la con ibución que hace cada uno de los k ecinos más ce canos dándole, de
es a o ma, mayo peso al ecino más ce cano. La mayo ía de las a iaciones del
algo i mo KNN conside an sólo los k ecinos más ce canos pa a clasi ica la nue a
ins ancia, pe o al añadi les peso a los da os del conjun o de en enamien o el algo i mo
conside a á odas las mues as. Pe mi i que odas las mues as engan in luencia en el
clasi icado no supone un pelig o pa a el algo i mo ya que las mues as más dis an es
apenas end án peso. Es a modi icación hace que el algo i mo sea más obus o y e ec i o
cuando el conjun o de da os de en enamien o es muy g ande, además puede sua iza el
impac o que ienen los da os de en enamien o más aislados. El p oblema de es a
modi icación es que al conside a odas las mues as el algo i mo se uel e más len o.
El equipo de desa ollo decidió elegi como algo i mo de clasi icación el K-
Nea es Neighbo s ya que es un algo i mo cuyo cos e de ap endizaje es nulo, no necesi a
hace ninguna suposición sob e los concep os a ap ende y es muy ole an e al uido.
37
Implemen ación
Teniendo en cuen a la in es igación y las decisiones omadas a lo la go del
desa ollo, desc i as en el apa ado an e io , e emos a lo la go de es e apa ado en mayo
de alle cómo es la implemen ación de la aplicación.
Nues a aplicación basa su uncionamien o en una a qui ec u a clien e-se ido ,
REST [43], siendo el clien e nues o Sma phone y, el se ido , el p opo cionado po la
Uni e sidad Complu ense de Mad id.
Es a a qui ec u a consis e en el en ío de pe iciones HTTP desde el clien e hacia el
se ido y, en consecuencia, en el en ío de espues as del se ido hacia el clien e. Es a
a qui ec u a pe mi e ene a ios clien es conec ados al mismo se icio al unísono y un
man enimien o de la consis encia de la base de da os ya que, debido a es a si uada en el
p opio se ido , es común a odos los clien es; po an o, pe mi e p ocesa la in o mación
de un modo dis ibuido. [20]
38
Figu a 7. Esquema de uncionamien o de la a qui ec u a clien e-se ido .
Tecnologías y SO
• Debian GNU/Linux 8 (jessie)
• Windows 10 10.0
• mysql Ve . 14.14 Dis ib 5.6.28, o Linux (x86_64) using Edi Line w appe
• Ma lab R2018b Upda e 2(9.5.0.1033004)
• And oid S udio 3.4.1
• JRE: 1.8.0_152- elease-1343-b01 amd64
• JVM: OpenJDK 64-Bi Se e VM by Je B ains s. .o
• Eclipse IDE o En e p ise Ja a De elope s. Ve sion: 2018-12 (4.10.0)
• Pos man 7.1.1
• Sublime Tex 3.2.1
• Gi hub 2.17.0
Clien e
La pa e clien e del sis ema co esponde a la aplicación And oid en sí misma. El
código uen e de és a cons a, p ác icamen e en su o alidad, de código Ja a. También
con iene a chi os xml pa a con igu ación y layou s, incluido el And oidMani es .
Ja a
La a qui ec u a elegida pa a desa olla el código en Ja a ha sido una a qui ec u a
mul icapa basada en el pa ón Modelo-Vis a-Con olado (MVC) [21]. La en aja de es e
39
ipo de a qui ec u as es el aumen o de la man enibilidad, la modula idad y el
desacoplamien o del so wa e, así como p opo ciona una base pa a el desa ollo.
Figu a 8. Esquema de uncionamien o de la a qui ec u a MVC
Es a a qui ec u a sepa a y desacopla el uncionamien o de las pa es de la
aplicación en es módulos:
Modelo: sus componen es con ienen la ep esen ación de los da os del sis ema, la
lógica de negocio, los mecanismos de acceso y pe sis encia de dichos da os.
Vis a: la is a iene como obje i o p incipal maneja las in e acciones en e la
aplicación y el usua io. Las is as con ienen oda la in o mación de alo pa a el
usua io, po lo an o, su p incipal come ido es mos a de o ma in ui i a y cla a
dicha in o mación.
Con olado : se enca ga de maneja las comunicaciones en e el modelo y la
is a; ac úa como un middlewa e en e los dos.
40
En cuan o a la sepa ación ísica de los componen es en paque es, la es uc u a
consis e en es capas di e enciadas:
P esen ación: odo lo elacionado con los elemen os g á icos que el usua io e en
la pan alla de su mó il, así como las in e acciones en e dichos elemen os y con el
usua io de la aplicación. El uncionamien o de la in e az g á ica en And oid se
basa en ac i i ies, y las in e acciones se ealizan median e in en s. Sob e es e
uncionamien o habla emos más adelan e. Es a capa con iene la in e az g á ica y
el con olado , que comunica el modelo con la is a.
Den o de es a capa encon amos a ias di isiones:
- Ac i i ies, componen es de la in e az g á ica; habla emos de ellos más
adelan e.
- Comandos, que son usados po el con olado pa a lle a a cabo un
compo amien o u o o.
- Con olado , que ecibe las pe iciones del usua io y llama al dispa che
con el esul ado pa a ac ualiza la is a.
- Dispa che , se enca ga de ac ualiza la is a según el esul ado del
comando que ha ejecu ado p e iamen e el con olado .
La comunicación en e es as di isiones se puede e en el diag ama de clases
desc i o en la Figu a 9.
41
Figu a 9. Diag ama de clases simpli icado de la capa de p esen ación.
Negocio: es a capa se enca ga de oda la lógica de negocio de la aplicación y la
ep esen ación de los da os del modelo. La capa de p esen ación se comunica con
es a capa de negocio a a és del con olado , dependiendo de la acción del
usua io en la in e az g á ica, el con olado ealiza una ope ación u o a y, con la
espues a, se comunica de nue o con la is a pa a ac ualiza la como p oceda.
Den o de es a capa encon a íamos los dis in os se icios de aplicación de las
dis in as uncionalidades de la aplicación. El uso de se icios de aplicación nos
pe mi e cen aliza la lógica del negocio y p opo ciona una capa de se icio
uni o me. Se han implemen ado los siguien es se icios de aplicación:
• Use sAppSe ice: ealiza odas las ope aciones elacionadas con el
usua io como el egis o/inicio de sesión, ac ualización de da os del
usua io como su peso y con aseña o la bajada de la lis a de alimen os
consumidos po el usua io, así como sus dosis de insulina egis adas.
48
Ac i i ies, In en s y Layou s
Hablábamos an es de las ac i i y [24] como una pa e impo an e del
uncionamien o de la in e az g á ica de And oid. Las ac i i ies son componen es de la
aplicación que con ienen una ep esen ación g á ica con la que los usua ios pueden
in e ac ua pa a ealiza una acción conc e a
Dependiendo de la acción que se dispa e con la in e acción del usua io, puede se
que se necesi e inicia o a ac i i y, manda un mensaje o inicia un se icio conc e o.
Pa a es e in se u ilizan obje os in en [25], que pe mi e comunica y hace pe iciones
desde un componen e de la aplicación hacia o o.
En nues o caso, se han implemen ado a ias ac i i ies:
AddAlimen Ac i i y: pe mi e al usua io añadi alimen os de la base de da os
in e nacional USDA, pidiendo un nomb e y una can idad (g amos) pa a pode
añadi un ing edien e al alimen o que p e ende egis a . Una ez añadidos los
ing edien es, le o ece la opción de egis a el pla o o cancela el p oceso.
Came aAc i i y: maneja las pe iciones elacionadas con la cáma a: oma o os,
e la p e iew de la o o omada y ealiza la pe ición de p ocesamien o de la o o.
Es a ac i i y, a su ez, es á di idida en dos agmen s. Un agmen [26] es un
agmen o del compo amien o y/o in e az de usua io de una ac i i y.
En nues o caso, di idimos la in e az de usua io y el compo amien o en dos:
Came aF agmen , enca gado de mos a lo que e la cáma a en iempo eal y de
oma la o o, y UploadF agmen , enca gado de isualiza la o o omada y
mos a bo ones pa a que el usua io in e ac úe con ella.
49
Co ec i eBolusAc i i y: da la opción al usua io diabé ico de calcula el bolo
co ec o , pe mi iéndole ing esa su dosis ac ual, e y egis a la nue a dosis
co ec o a.
C opAc i i y: pe mi e al usua io hace un eco e pe sonalizado de una comida en
una imagen omada o seleccionada p e iamen e pa a pos e io men e añadi ese
pla o a la base de da os si es que no exis e.
C opImageAc i i y: mues a al usua io el eco e que ha ealizado a una imagen
p e iamen e y le pe mi e añadi un nomb e pe sonalizado al pla o que p e ende
subi , dándole la opción de con inua con la subida si es á con o me con el
eco e.
FoodExplo e Ac i i y: enca gada de mos a en una lis a de selección múl iple las
p edicciones de los dis in os alimen os encon ados en el pla o.
FoodSelec o Ac i i y: enca gada de mos a en una nue a lis a los alimen os
seleccionados en la ac i i y an e io mos ando su nomb e, la can idad en g amos
y los ca bohid a os co espondien es. Es a ac i i y además amplía su
uncionamien o median e el agmen FoodI emF agmen que usa un adap ado ,
FoodAdap e , pa a pode pe sonaliza isualmen e la lis a.
FoodRepo Ac i i y: se enca ga de ecoge y mos a los in o mes de los
alimen os mos ados en la ac i i y an e io mos ando sus nu ien es indicando la
can idad apo ada y la can idad dia ia ecomendada.
50
FoodUse Ac i i y: enca gada de ecoge y mos a las úl imas 30 comidas del
usua io, mos ando un b e e esumen de los componen es del pla o y la
in o mación de es os componen es como los g amos, los ca bohid a os y la
insulina que haya decidido el usua io calcula en esa comida.
InsulinHis o yAc i i y: mues a un esumen de las dosis de insulina del día, una
media de dosis dia ia de los úl imos días y una g á ica que mues a la can idad de
dosis en los días an e io es.
InsulinPa ame e sAc i i y: pe mi e al usua io ing esa sus da os pa a pode
calcula el bolo p andial de la comida que haya p ocesado p e iamen e.
LoginAc i i y: maneja odas las pe iciones del usua io elacionadas con el inicio
de sesión o el egis o de usua io. También se enca ga de mos a e o es en caso
de inicio de sesión inco ec o o allo de conexión.
MenuAc i i y: o ece un menú al usua io que le pe mi e añadi una comida ya
p ocesada a sus comidas, ob ene un epo e gene al y/o especí ico de los
nu ien es de cada alimen o o calcula la insulina de esa comida.
Upda eUse Ac i i y: ges iona la ecogida, alidez y modi icación de los da os que
el usua io quie a cambia sob e su cuen a, es deci , si es diabé ico, su peso y su
azúca en sang e, hipoglucemia, glucosas obje i o, además, de la con aseña y la
echa de nacimien o, pa áme o común de odos los usua ios.
51
Selec o Alimen Ac i i y: mues a una lis a de los alimen os que componen el
pla o que ha p ocesado el usua io, in o mando de los g amos y ca bohid a os que
componen cada alimen o y dando la opción de selecciona alguno pa a ob ene un
epo e nu icional más especí ico sob e el alimen o.
Use Ac i i y: maneja las pe iciones del usua io elacionadas con el cie e de
sesión.
La ep esen ación g á ica de una ac i i y se de ine median e un a chi o layou .
Los layou s son a chi os con o ma o xml que desc iben una ep esen ación g á ica
conc e a, en endiendo po es o los componen es de una in e az g á ica, sus
iden i icado es, su composición y su posición den o del ma co de la in e az.
Gene ación de la Base de Conocimien os
La base de conocimien os es aquella con la cual el algo i mo, en es e caso el Knn
[20], u iliza unos da os egis ados en es a base pa a modela y en ena un conjun o de
soluciones con las que, inalmen e, se ob enga un conjun o de esul ados semejan es al
que se ha solici ado. Pa a es e p oceso se ha u ilizado Google D i e, Ma lab, Eclipse
(Ja a) y la BD.
Es a base de conocimien os ha sido gene ada g acias a un eposi o io de
imágenes, an o de la ca e e ía como pe sonales, c eado en Google D i e con un peso
o al de 726MB.
52
Figu a 16. Imágenes de Google D i e
En un p incipio, se u ilizó pa a la segmen ación de la imagen el algo i mo
KMeans de Ma lab [27], con el que sepa ábamos los alimen os del pla o según los
clus e s gene ados po el algo i mo y ep esen ábamos esos alimen os en una imagen
apa e gene ando ambién un documen o CSV en el que se egis aban las medias de ojo,
e de y azul jun o a los pixeles o ales de cada clus e .
53
Figu a 17. Alimen o pa a base de conocimien os
Como se puede ap ecia en la Figu a 11, pa a ob ene las medias, es e equipo ha
segmen ado la imagen u ilizando el algo i mo KMeans de Ma lab y c eando una capa
pa a cada pa e, en unción del núme o de clus e y así, pos e io men e, calcula las
medias RGB de cada sección y co obo a que se asemeja a las medias ob enidas po
nues o algo i mo KMeans, implemen ado en Ja a, con el in de pode inse a las en la
base de da os.
Figu a 18. Compa ación de KMeans de Ja a con Ma lab
Como ano ación, menciona que las medias no ienen que se exac amen e iguales
sino pa ecidas, ya que el algo i mo de Ja a, ha sido implemen ado po el equipo
ealizando una segmen ación pa ecida a la de Ma lab, pe o no idén ica, debido a que la de
Ma lab es mucho más p ecisa y iene en aja en cuan o al a ance algo í mico y al
p ocesamien o de imágenes; aun así, la di e encia en e un algo i mo y o o ha sido de
unos 25 pun os de media po encima con espec o a la implemen ación de Ma lab.
54
Figu a 19. Base de conocimien os pa a Knn
Es a aplicación no gua da las imágenes en la BD, ya que aba ca ía demasiado
espacio pa a in o mación i ele an e, debido a que cada usua io puede ene imágenes de
la misma comida con los mismos ing edien es y, po an o, se epe i ía la misma
o og a ía pa a muchas pe sonas. Po eso, se queda con las medias RGB pa a la base de
conocimien os y con los pixeles pa a sabe la can idad de comida que hay en el pla o.
Es o es posible ya que la o o sigue siemp e el mismo “es ánda ”, es deci , una imagen
omada desde a iba al pla o con los componen es y el meno ondo posible, como se
puede obse a en la Figu a 20. Si la imagen que ecibe la aplicación se ha hecho desde
es a pe spec i a, da igual la cáma a del disposi i o o la escala a la que se haya p oducido
la o og a ía que siemp e se ealiza á un esize a ni el de sis ema, pa a que la a iación
del núme o de pixeles sea mínima y pode conc e a mejo la can idad de g amos que
exis e de cada alimen o, asignando los g amos en unción de los pixeles ecogidos y los
pixeles de los que cons a ese alimen o en la BD.
55
Figu a 20. Base de conocimien os pa a Knn
Finalmen e, cabe des aca que pa a que el usua io pueda añadi alimen os a la
base de conocimien os que puedan compa i pla o con o os que sí que es án añadidos,
acili amos una is a pa a que se sal a a el paso de segmen ación y pudie a eco a la
sección de mane a pe sonalizada y acili a la ob ención de medias sin mezcla
in o mación con o os elemen os de la imagen.
56
Figu a 21. C opAc i i y, eco a alimen o de una imagen
K – Nea es Neighbo
La co ec a gene ación de la base de conocimien o es indispensable pa a un
uncionamien o adecuado del clasi icado . La implemen ación de es e es ex ensa y hace
uso de dis in as clases que se án explicadas de alladamen e a con inuación.
57
La clase p incipal KnnClassi ie es la enca gada de lle a a cabo la clasi icación,
cuen a con a ios pa áme os, los cuales son necesa ios explica pa a comp ende el
uncionamien o de la clase:
- Knn: es la cons an e usada pa a de ini el núme o de k ecinos.
- Th eshold: ep esen a el po cen aje de umb al pe mi ido pudiendo ale
en e 0 y 1. Nos ayuda á a decidi si un pun o en el lado lími e pe enece a
una clase u a o a.
Figu a 22. Código de la clase KnnClassi ie
El p ime paso que ealiza el clasi icado es calcula las dis ancias euclídeas en e
los pun os a clasi ica , en es e caso los clús e es, y las dis in as ca ego ías. Pa a o dena
los esul ados se hace uso de o a clase, KnnQueue, en la que se ha implemen ado una
cola que o dena las posibles ca ego ías a las que pod ía pe enece el clus e po
p io idad, es deci , de meno a mayo dis ancia euclídea.
64
Concu encia, pa alelismo e hilos
Es os es concep os son de e minan es pa a pode ealiza una aplicación en
And oid que uncione de mane a ápida y e icien e, po lo que, pa a la mejo a de
endimien o de muchos p ocesos, es e equipo ha hecho uso de la clase AsyncTask [30],
una clase que p opo ciona And oid, pa a pode ealiza hilos que abajen pa alelamen e
con o os p ocesos de la aplicación sin que se c ucen en e sí, espe ando los e en os y
espues as del o o pa a pode segui ejecu ando la aplicación sin e o es. Además, sin
ella no sé pueden ealiza pe iciones a un se ido y/o base de da os.
Figu a 28. Esquema de ejecución de la clase AsyncTask [30]
Es a clase es u ilizada en a ias ocasiones en la aplicación, ya que pe mi e c ea
una concu encia que nos ayuda a ecoge y/o p ocesa da os que se necesi an o
necesi a án pa a pode ejecu a dis in as uncionalidades de la aplicación.
65
Casos en los que se u iliza AsyncTask:
Pe iciones al se ido : se ealizan pe iciones HTTP de ipo GET y POST pa a la
inse ción o selección de da os de la BD.
P ocesamien o de una imagen: se p ocesa la imagen en o o hilo con el
algo i mo KMeans y Knn pa a la ob ención de la lis a de comidas p edecidas.
Comunicación con APIs: pa a la aducción de los é minos y la comunicación
con las BD USDA.
Cambio de ac i i y con in o mación: exis en di e en es ac i i ies en los que se
necesi a calcula , p ocesa u ob ene da os ya sea de una comida, de una imagen o
de un usua io, pa a pode ealiza esos p ocesos se hace usos de es os hilos.
Figu a 29. Uso de AsyncTask en la aplicación
66
Funcionalidades des acadas
En es a aplicación hay que des aca es módulos p incipales, los cuales o ecen al
usua io di e sas uncionalidades de las que se compone la aplicación.
Use : es e módulo o ece al usua io las uncionalidades mos adas en la Figu a
30.
Figu a 30. Casos de uso el usua io
Es e es el módulo que más casos de uso con iene ya que es á elacionado con el
módulo Food y el equipo ha decidido implemen a las ope aciones en Use , ya que al
inal es quien se conside a que es á más elacionado con la comida y la insulina,
concep os muy impo an es en es a aplicación.
Pa a el cálculo de la insulina enemos que di e encia en e la dosis de insulina
basal, que si e pa a eemplaza en e el 40% y 50% de la insulina o al du an e la noche
o du an e los pe iodos de ayuno, y la insulina de bolo que ep esen a el an o po cien o
67
es an e y si e como cobe u a de ca bohid a os. A con inuación, se explica
de alladamen e el cálculo de la dosis de bolo p andial, I ( ): [31]
I ( )=Ii( ) + Ic( )
Donde Ii( ) es la insulina necesa ia pa a me aboliza la inges a de ca bohid a os y Ic( ) es
el alo de la insulina co ec o a que puede se posi i a o nega i a.
Pa a empeza el cálculo hay que habla de los siguien es da os:
G( ): can idad de glucosa en sang e en el ins an e .
C( ): ca bohid a os que se an a inge i en el ins an e .
Gp e: glucosa obje i o an es de la comida.
Ghipo: alo de glucosa conside ado como hipoglucemia.
R: a io insulina-ca bohid a os. Es la insulina necesa ia pa a me aboliza una
ación de CH.
S: ac o de sensibilidad a insulina.
P: pe o del pacien e.
Edad del pacien e.
Como en es e p oceso se u iliza á el a io y lo ideal es ob ene el his ó ico de
dosis del pacien e, se pueden calcula ambién a pa i de las siguien es ó mulas:
Requisi o dia io de insulina= 0.55∗ Peso co po al en kg
Cobe u a de CHO= 500
Requisi o dia io de insulina
68
𝑅=𝑢𝑛𝑖𝑑𝑎𝑑𝑒𝑠 𝑑𝑒 𝑖𝑛𝑠𝑢𝑙𝑖𝑛𝑎
𝑐𝑎𝑟𝑏𝑜ℎ𝑖𝑑𝑟𝑎𝑡𝑜𝑠
Exis en 2 condiciones a conside a pa a pode calcula el bolo p andial
co ec amen e:
Si Ghipo < G( ) < Gp e la ecomendación de insulina pa a se á:
I ( )=Ii=C( )∗R
Si G( ) < Gp e ó G( ) > Gp e se calcula á an o Ii( ) como Ic( ). En ambos casos
Ii( ) no a ía y ale lo siguien e:
Ii( )=C( )∗𝑅
Pa a calcula Ic, se necesi a el ac o de sensibilidad a la insulina S, el cual se
puede es ima de una o ma iable si la dosis o al de insulina dia ia es á en e 0,4 y 0,8
u/kg/día a pa i de la egla del “1800”:
S= 1800
Insulina dia ia
Po an o, si G( ) < Gp e, en onces:
Ic( )=Gp e−G( )
S
69
Y si G( ) > Gp e, en onces:
Ic( )=G( )−Gp e
S
Pa a que inalmen e el bolo p andial sea la suma de la insulina cobe u a de CH
y la insulina co ec o a, como se ha mencionado an e io men e.
Po úl imo, especi icamos como calcula el bolo co ec o , del cual ambién hay
que conoce o os concep os además de los que ya se han explicado.
Gesp( + c): glucosa espe ada en el ins an e de iempo
DIA: du ación de la acción de la insulina (Du a ion o he Insulin Ac ion), su alo
po de ec o es 0.0182
IOB: la insulina ac i a (Insulin On Boa d)
Δpos : ecomendación de glucosa pasado c iempo.
u( ): unidades de insulina en el ins an e
Pa a empeza a calcula el bolo co ec o se empieza po :
𝐺𝑒𝑠𝑝(𝑡+𝑡𝑐)=𝐺(𝑡)+Δ𝑝𝑜𝑠𝑡
Δ𝑝𝑜𝑠𝑡=𝐺(𝑡𝑐)−𝐺(𝑡)
Se puede simpli ica el cálculo de Δ𝑝𝑜𝑠𝑡 de la siguien e mane a:
Si c < 90 => Δ𝑝𝑜𝑠𝑡 = G( c) – G( )
Si 90 ≤ c < 105 => Δ𝑝𝑜𝑠𝑡 = 60
Si 105 ≤ c < 125 => Δ𝑝𝑜𝑠𝑡 = 80
Si 125 ≤ c ≤ 140 => Δ𝑝𝑜𝑠𝑡 = 60
Si c > 140 => Δ𝑝𝑜𝑠𝑡 = G( c) – G( )
70
La insulina ac i a se calcula a pa i de las siguien es ecuaciones:
𝐶1(𝑡+1)=𝑢(𝑡)−𝐷𝐼𝐴∗𝐶1(𝑡)+𝐶1(𝑡)
𝐶2(𝑡+1)=𝐷𝐼𝐴∗(𝐶1(𝑡)−𝐶2(𝑡))+𝐶2(𝑡)
𝐼𝑂𝐵=𝐶1(𝑡)+𝐶2(𝑡)
Tomando como casos base C1(0) = 0 y C2(0) = 0. Así es o pe mi i á calcula IOB de
o ma i e a i a pa a ob ene el IOB que nos in e esa en el ins an e . Con es o, pod emos
calcula el bolo co ec o I c.
𝐼𝑟𝑐(𝑡+𝑡𝑐)=𝐺(𝑡+𝑡𝑐)−𝐺𝑒𝑠𝑝(𝑡+𝑡𝑐)
𝑆−𝐼𝑂𝐵
71
Figu a 31. Diag ama de ac i idad de calcula bolo p andial
72
Figu a 32. Diag ama de ac i idad de calcula bolo co ec o
73
Figu a 33. Diag ama de secuencia de añadi insulina
80
Añadimos la Figu a 39, ya que o ma pa e del p oceso pa a añadi una comida
inexis en e en la base de da os. Es a pa e es p imo dial debido a que es necesa io el
cálculo de las medias pa a la base de conocimien o. El es o del p oceso se especi ica más
adelan e.
Figu a 40. Diag ama de secuencia de p ocesa imagen de usua io
81
Food: es e módulo o ece al usua io las uncionalidades mos adas en la Figu a
41.
Figu a 41. Diag ama de casos de uso pa a la comida
Es e módulo cons a de las ope aciones p incipales que se pueden ealiza con las
comidas. Además, es el enca gado de comunica se con las APIs pa a la aducción de los
da os y la ob ención de los epo es nu icionales de cada alimen o que con enga cada
comida, pe o es as ope aciones ya es án implíci as en odos los casos de uso de es e
módulo.
Aun así, hay que des aca una uncionalidad, añadi comidas a la BD, debido a
que g acias a es a uncionalidad se puede amplia la base de conocimien os de los
algo i mos y, po an o, amplia la lis a de p edicciones.
82
A con inuación, se puede obse a cómo ac úan las uncionalidades más
ele an es de es e módulo.
Figu a 42. Diag ama de lujo pa a epo e de alimen os
83
Figu a 43. Diag ama de ac i idad pa a epo e de alimen os
84
Figu a 44. Diag ama de secuencia pa a epo e de alimen os
85
Figu a 45. Diag ama de lujo pa a añadi comida nue a a la BD
86
Figu a 46. Diag ama de ac i idad pa a añadi comida nue a a la BD
87
Figu a 47. Diag ama de secuencia pa a añadi comida nue a a la BD
88
Se ido
La pa e se ido consis e en un se ido que u iliza Apache pa a maneja las
pe iciones y phpMyAdmin pa a adminis a la base de da os, como mencionamos en
apa ados an e io es.
Apache
Apache [31] es el se icio que se ejecu a en el se ido pa a que és e ac úe
p ecisamen e como un se ido web. Es e so wa e se enca ga de maneja las pe iciones
que lleguen desde la pa e clien e y de esponde dichas pe iciones con los da os o
in o mación que co espondan.
Los da os que componen la espues a del se ido a las pe iciones del clien e se
ex aen de la base de da os u ilizando sc ip s esc i os en PHP. Es os sc ip s es án alojados
en el se ido y hacen una pe ición HTTP a la base de da os u ilizando el se icio de
MySQL. Al ecibi los da os, componen la espues a en o ma o JSON y de uel en los
da os al clien e o de uel en un e o en caso de habe ocu ido alguno. Todo es e p oceso
es anspa en e an o a la pa e clien e como al usua io como al.
Además, a es e na egado se le ha añadido el se icio phpMyAdmin, con el cual
se puede ges iona la base de da os u ilizada desde cualquie na egado , es e se icio
abaja de la mano con Apache, po lo que se ha enido que c ea o o a chi o de
con igu ación e ins ala odos los paque es elacionados con PHP pa a que el se icio
uncione co ec amen e.
89
Figu a 48. Sc ip s PHP del se ido
Figu a 49. Esquema En idad-Relación de la BD
96
Análisis de Ingenie ía del So wa e
A pesa de se un equipo compues o po 3 miemb os, se ha in en ado segui el
sis ema de Sp in s que o ece la me odología ágil, Sc um. Con es o, desde que se empezó
el p oyec o se ha ido gene ando y ac ualizando un Backlog con el que se epa ían las
a eas los miemb os del equipo. Además, se ha in en ado hace una es imación de iempo-
es ue zo que se iba a in e i en cada Sp in , aunque es as no malmen e han sido
inco ec as debido a que se ha enido que in e i demasiado iempo y es ue zo en la ase
de in es igación del p oyec o y en la ase de p uebas.
Riesgos
Cuando se habla de iesgos en IS se e ie e a odo aquello que puede a ec a de
o ma nega i a al desa ollo del so wa e, po eso se ealiza un plan de ges ión de iesgos
en el cual se clasi ican los iesgos en unción de su p obabilidad de apa ición y del
es ue zo necesa io pa a mi iga lo y la p io idad que hay que da le a cada uno.
Exis en 3 ipos de iesgos, pe o en es e caso al se un TFG solo se conside a on
los iesgos del p oyec o:
A. En ega a día.
B. Abandono de un miemb o del equipo.
C. Fal a de comunicación en e el equipo.
D. Fal a de implicación po pa e de algún miemb o.
E. Inexpe iencia con las ecnologías.
F. Cambios en los equisi os.
G. Ocupaciones ex a labo ables.
H. Baja de algún miemb o.
97
T as es o, se ealizó un análisis de basado en el SQAS-SET [41] donde la
p obabilidad podía se ecuen e, p obable, ocasional, emo a e imp obable y el g ado
de g a edad podía se ca as ó ico, c í ico, se io, ole able e insigni ican e.
P obabilidad
G a edad
F ecuen e
P obable
Ocasional
Remo a
Imp obable
Ca as ó ica
C í ica
A
B
Se ia
C, D
F
Tole able
E, G, H
Insigni ican e
INTOLERABLE
ALTO
MEDIO
BAJO
TOLERABLE
Figu a 54. Tabla de p io ización del iesgo
Pa a il a es os iesgos se u ilizó la Regla de Pa e o, escogiendo el 20% de los
iesgos iden i icados, con es o, se han elegido 2 iesgos con mayo p io idad, es deci , A
y B. Así, se aplica on las écnicas de educción, supe isión y ges ión del iesgo.
A. En ega a día
1. Reducción: lle a una o ganización del equipo basado en alguna
me odología.
2. Supe isión: comp oba si con lo que se ha hecho has a el momen o se
llega a la en ega inal.
3. Ges ión: implemen a lo máximo posible, aunque en poca can idad y
comunicá selo a los di ec o es.
98
B. Abandono de un miemb o del equipo
1. Reducción: maximiza la comunicación en el equipo pa a conoce las
ci cuns ancias po las que pasa cada miemb o.
2. Supe isión: ayuda en odo lo posible a ese miemb o pa a que siga
abajando.
3. Ges ión: comunicá selo a los di ec o es y es ablece un nue o plan pa a
la o ganización del p oyec o.
Cos es y negocio
Exis en di e en es mane as de es ima cos es a ni el de ha dwa e y so wa e y
cos es a ni el de es ue zo humano y iempo, pa a es e p oyec o el análisis de cos es ue el
siguien e:
Ha dwa e: se u iliza on los po á iles y sma phones de los miemb os del equipo,
de los que se cons aba an es de es e p oyec o. Un se ido cuyo nodo ísico se
encuen a en las ins alaciones de la UCM.
So wa e: he amien as de uso lib e, aunque ambién se incluye la API de Google,
que es á en pe iodo de p ueba y que hay que paga la licencia as un año.
Pe sona: se ha desa ollado po 3 es udian es de la UCM y bajo acue do de
con idencialidad con los di ec o es del p oyec o.
99
Con espec o al negocio, exis en bas an es aplicaciones elacionadas con el
cálculo de los bolos y la c eación de die as pa a come dia iamen e en unción de las
dosis dia ias de insulina que suelen inyec a se [40], al igual que exis en algunas pa a
clasi ica elemen os median e o og a ías o la p opia cáma a, po ejemplo, Google Lens,
pe o, po aho a, no exis e ninguna que p ocese la imagen de un pla o comple o y de
in o mación sob e odos los componen es exis en es en él, además, de o ece un
calculado de bolo p andial y co ec o . Aun así, no se puede desca a que en poco
iempo apa ezca una pa ecida, ya que el campo de la in o má ica es á en cons an e
cambio e inno ación, pe o no se desca a que a co o plazo la aplicación pueda se
incluida en pla a o mas de se icios pa a And oid como PlayS o e de Google.
Calidad y endimien o
En la ase de p uebas es cuando se ga an iza la calidad del so wa e y se ealiza un
análisis de endimien o con el in de mejo a el p oyec o.
Aunque no se han podido ealiza demasiadas p uebas la calidad, el so wa e ha
supe ado las siguien es p uebas:
P uebas de unidad: ya que a cada mé odo ha dado el esul ado espe ado según
una en ada conc e a que el equipo ha ido ing esando.
P uebas de in eg ación: pa a cada uncionalidad se ha u ilizado un conjun o de
clases elacionadas en e sí, y po el mismo mé odo que en el de las p uebas de
unidad, odas han dado los esul ados espe ados según la en ada.
100
P uebas de sis ema: el sis ema comple o ha sido p obado con un ni el de
opacidad denominado “de caja neg a”, el cual ha uncionado co ec amen e y ha
espondido adecuadamen e.
P uebas de acep ación: aquí solo se han podido ealiza p uebas Alpha, es deci ,
lle adas a cabo po los desa ollado es, al supe a las se pod án pasa a los
usua ios inales pa a segui con las p uebas be a y e mina la e i icación y
alidación del so wa e.
Po o o lado, se han ealizado p uebas de endimien o en los cuales se ha
moni o izado el uncionamien o de la RAM, la CPU, la ed y la ene gía del disposi i o
g acias a la he amien a P o ile que o ece And oid S udio pa a e en qué can idad a ec a
la aplicación al ha dwa e disponible en los disposi i os de p ueba.
Figu a 55. G á ica de moni o ización al inicia la aplicación
La pa e en la que más consumía ecu sos e a du an e el p ocesamien o de la
imagen pa a la ob ención de los alimen os, como se puede obse a en la Figu a 56.
101
Figu a 56. G á ica de moni o ización du an e el p ocesamien o de la imagen
En el es o de las ope aciones la aplicación man enía da os pa ecidos a los que se
mues an en la Figu a 55, con muy poca a ianza en e ansiciones.
Figu a 57. G á ica de moni o ización du an e el epo e nu icional de los alimen os
102
Manual de usua io
Inicio de sesión
Pa a pode accede a la aplicación hay que es a egis ado/a e inicia sesión.
Figu a 58. Vis a de acceso a la aplicación
El egis o se ealiza en es a misma is a, pa a ello hay que ing esa un email
álido y una con aseña de mínimo seis ca ac e es. Una ez hecho el egis o
co ec amen e la aplicación lle a á al usua io al menú p incipal, es e o ece es opciones.
103
Figu a 59. Vis a de menú p incipal
Accede a la gale ía y elegi una o o pa a p ocesa la.
Figu a 60. Vis a de gale ía
104
Realiza una o o con la cáma a y p ocesa la.
Figu a 61. Vis a de cáma a
Menú de usua io.
Figu a 62. Vis a de menú de usua io sano
105
Figu a 63. Vis a de menú de usua io diabé ico
Opciones de imágenes
Una ez elegida o ealizada la o og a ía, se da la opción al usua io de cancela la
ope ación, p ocesa la imagen o añadi una nue a comida inexis en e en la BD.
112
Figu a 75. Mensaje de bolo p andial pa a usua io diabé ico
Menú de usua io
En es e menú se le o ece al usua io pode modi ica su usua io, e sus comidas
ecien es, e his og ama de dosis de insulina (en el caso de se diabé ico), calcula
bolo co ec o y ce a sesión.
Figu a 76. Vis a pa a modi ica usua io
113
Figu a 77. Vis a de comidas ecien es
Figu a 78. Vis a de his og ama de dosis de insulina
114
Figu a 79. Vis a pa a calcula bolo co ec o
115
Figu a 80. Mensaje sob e dosis co ec o a
116
Resul ados
Du an e la ase de p uebas se han ob enido di e en es esul ados que ga an izan la
man enibilidad y usabilidad de la aplicación. En es e apa ado las p uebas es án
en ocadas al endimien o y po cen ajes de allo y acie o que p opo ciona on los
algo i mos u ilizados en el p oyec o.
Po una pa e, el iempo de espe a en el algo i mo KMeans e a en un p incipio de
casi 5 minu os, da o que se consiguió educi al 94,4% de lo que du aba en un p incipio,
es deci , que ac ualmen e el iempo medio de espe a es de 2,3 segundos.
Figu a 81. Tiempo de espe a ac ual del kMeans
117
Pa a la ob ención de las asas de acie o y allo, se ealiza on 50 p uebas con
imágenes di e en es en las que algunas enían alimen os en común y se ue on egis ando
los in en os que e an necesa ios pa a ob ene los alimen os co ec os, los alimen os
encon ados y los no encon ados. G acias a es o se ob u ie on los siguien es esul ados:
Tasa de acie o: 91,5% pa a 50 imágenes con un o al 75 alimen os encon ados.
Tasa de allo: 8,5% pa a 50 imágenes con un o al de 6 alimen os no encon ados.
Más in en os: se ob u o un 21,17% más de in en os pa a consegui ob ene odos
los alimen os de la imagen.
Con es os da os se puede deduci que el algo i mo ob iene buenos esul ados,
aunque en algunas ocasiones a a necesi a p ocesa la imagen más de una ez pa a
ob ene los alimen os co ec os.
Finalmen e, se ealiza on p uebas pa a comp oba los iempos de espe a pa a la
conexión con la base de da os, en es e caso es ú il ol e al apa ado de Calidad y
Rendimien o con el in de obse a las g á icas mos adas en él y pode obse a el
compo amien o de la CPU, ya que en odas las igu as se ealizan pe iciones a la BD y
es o ayuda a decidi si se debe op imiza la base de da os.
Pa a ob ene es os iempos se hizo uso de Pos Man, una he amien a que ayuda a
ealiza p uebas con sc ip s php y que de uel e la espues a de la pe ición ealizada jun o
con pa áme os de in e és como es el iempo de espe a de espues a, es deci , lo que se
a da en ealiza la conexión la base de da os, ealiza una pe ición a es a, ob ene un
esul ado y de ol e lo. Con es o, los iempos queda on como se mues a en la Figu a 81
y la media de iempo que se ob u o ue de 44 ms.
118
Figu a 82. Tiempos de espe a en la conexión con la BD
119
Con ibuciones
En el comienzo del p oyec o se ealizó una eunión, no solo pa a asen a las bases
y la es uc u a del abajo que se ealiza ía pos e io men e, sino pa a de ini cla amen e
los equisi os necesa ios de la aplicación. De inimos que e a de máxima impo ancia
an o el abajo de in es igación y codi icación como su co ec a documen ación. La
unión de es as es pa es e a indispensable pa a consegui el esul ado buscado, po lo
que odos los miemb os del equipo han o mado pa e de odas ellas en mayo o meno
medida. A con inuación, se p ocede a explica más de alladamen e la con ibución
indi idual de cada uno de los miemb os del equipo:
LAURA
Como se menciona an e io men e una de las bases sob e las que asen amos
nues o p oyec o ue la in es igación. E a de i al impo ancia in o ma se de los dis in os
mé odos y opciones que eníamos pa a ealiza la aplicación pa a pode elegi cuál de
odos ellos encajaba mejo en el p oyec o. Po lo an o, desde un inicio me cen é más en
la in es igación, en p ime luga , sob e las o mas de segmen a la imagen, y en segundo
luga , sob e como e ique a las y clasi ica las co ec amen e. Ambos campos son muy
ex ensos po lo que ecibí la ayuda de mi compañe a Milag os pa a pode a anza más
ápido.
Den o de la segmen ación de imágenes exis en mul i ud de mé odos ya
desa ollados po lo que mi abajo consis ió en in es iga odos ellos, con sus en ajas y
120
des en ajas, alo ando si su implemen ación e a iable y encajaba con la aplicación.
Toda es a in o mación nos ayudó a decidi qué mé odo elegi íamos pa a la segmen ación.
Una ez decidimos el algo i mo Kmeans comenzó la e apa de codi icación del algo i mo
donde me cen é en que a oja a esul ados e icien es, pe o ambién en implemen a lo
ápidamen e ya que e a necesa io pa a segui el cu so de la aplicación. Mis compañe os
con ibuye on ambién a es a a ea apo ando código e ideas.
Después de ealiza la segmen ación de las imágenes e a necesa io se capaces de
clasi ica las au omá icamen e y que, además, la aplicación con inuase ap endiendo
cons an emen e. Debido a es o comencé la e apa de in es igación sob e algo i mo de
segmen ación y sob e machine lea ning. Pa a oma la decisión sob e que algo i mo
usa íamos pa a la clasi icación e a necesa io encon a un algo i mo que uese compa ible
con los esul ados a ojados po el Kmeans. Es a e apa me esul ó muy complicada po lo
que u imos que acudi a a ias euniones con nues os u o es. Una ez se decidió que
se ía el algo i mo K-nea es neigh bo s pa a la clasi icación comencé a o ma me sob e el
ema. Es e algo i mo nos pe mi ía a a cada uno de los pixeles como pun os en un plano
lo que me pe mi ió encaja lo pe ec amen e al Knn.
Además e a necesa io do a al algo i mo Knn de un conjun o de da os de
en enamien o con los que uese capaz de en ena y ap ende . Con es e obje i o c eamos
una abla en la base de da os en la que almacena íamos odos los da os e e en es al
conjun o de en enamien o. Dicho algo i mo oma mejo es decisiones cuan o mayo es el
conjun o po lo que comencé a calcula los da os necesa ios pa a comple a la BBDD que
u iliza ía pos e io men e el Knn. Los da os ob enidos p o ienen no solo de la p opia
aplicación sino que además u ilicé Ma lab como he amien a auxilia pa a con as a que
los da os ob enidos e an co ec os. Es e código ue con igu ado jun o con mi compañe a
Milag os con el obje i o de consegui da os más iables disminuyendo de es a o ma la
asa de e o es de la aplicación.
121
Mien as yo ealizaba el abajo an e io men e mencionado mis compañe os se
dedica on a es ablece la base de da os necesa ia pa a gua da los esul ados ob enidos
po los algo i mos y a implan a la base de la aplicación. Además, e a necesa io comenza
con el abajo de documen ación ya que debe se pa alelo a la in es igación, po es a
azón comencé a esc ibi la memo ia del p oyec o plan eando la es uc u a que debía
segui . Me he enca gado de la edacción de la pa e p incipal incluyendo no solo la
in o mación necesa ia sob e los algo i mos an e io men e mencionados y su
in es igación p e ia sino además sob e algunos de los conocimien os que nos han sido
necesa ios pa a comp ende el obje i o del p oyec o como la diabe es o la misma
in eligencia a i icial. Además, he ido co igiendo las dis in as e siones que íbamos
edac ando, eniendo en cuen a las ano aciones y co ecciones que nues a di ec o a
Ma ía nos iba p opo cionando.
MILAGROS
Desde un inicio y una ez sabidos los equisi os pa a la c eación de la aplicación,
odos con ibuimos a la iden i icación de los módulos p incipales de los que se componía
la aplicación, es deci , el usua io, las imágenes y la comida, po lo que p opuse u iliza
una a qui ec u a Modelo-Vis a-Con olado (MVC) de ipo ac i o, ya que eníamos
expe iencia p e ia con ese pa ón y po la o ma de ac ua de la aplicación e a ambién
cohe en e elegi un ipo de a qui ec u a así. Una ez acep ada es a p opues a po el
equipo p ocedí a la c eación del modelado de so wa e de la aplicación, ya habían sido
especi icados y alidados los equisi os uncionales y aunque du an e la implemen ación
apa ecie on equisi os eme gen es, es o ue su icien e pa a empeza a c ea los diag amas
que componen el modelo. Empecé po la c eación de los casos de uso, de lujo del
usua io y de ac i idad, pa a así ene aún más idea de cómo debía ac ua cada
128
A pa i de es e abajo y los esul ados ob enidos queda una amplia base de
conocimien o pa a el abajo den o del campo de p ocesamien o de imágenes a a és del
colo . En un u u o pod ía amplia se a, no solo el es udio po colo , sino ambién po
ex u a, lo que p opo ciona ía una mayo can idad de in o mación al clasi icado
haciéndolo más iable y puli ía la segmen ación de la imagen. No se ía el único aspec o a
pode mejo a , pudiendo u iliza algo i mos más complejos como el de Sobel pa a
iden i ica bo des y nos pe mi i ía eco a el pla o au omá icamen e y así ealiza las
mismas a eas mejo ando los esul ados ac uales.
El campo de la ap oximación, no solo de ca bohid a os, sino ambién de die as
añadi ía mayo uncionalidad a la aplicación haciéndola más comple a, pudiendo
p opone al usua io ece as a pa i de los alimen os que ha p opo cionado o dando más
in o mación al usua io median e email o incluso p opo cionándole un ges o nu icional
en unción de su al u a y peso.
También se ía in e esan e el desa ollo de es a aplicación pa a dis in as
pla a o mas, como iOS, ampliando así la cobe u a a una mayo can idad de usua ios.
En cuan o a segu idad, es necesa io cambia las pe iciones a HTTPS pa a e i a
in usiones o obos de sesión en edes que no sean de con ianza, po o o lado, el se ido
debe ía de pe manece en una ex ane pa a pode ga an iza la segu idad de los da os
almacenados en la base de da os y es ingi el acceso al se ido como adminis ado .
Po úl imo, pa a el man enimien o de la aplicación se ía mejo a el sis ema de
moni o ización y de ale as, pa a ello, se u iliza ía un se icio ELK, el cual median e
elas icsea ch accede ía a los logs o a chi os de in e és con el in de ob ene mé icas pa a
inalmen e ob ene una g á ica, abla, e c. que pe mi a plasma esa in o mación en da os
ele an es y mé icas ú iles pa a man ene el sis ema, mien as que, po o o lado, añadi
129
ambién una he amien a de ale as que pueda accede a es a in o mación con el in de
no i ica a las pe sonas esponsables de la aplicación. Además, c ea un sis ema de
disas e eco e y po si se caye a el se ido , que siemp e hubie a o o se ido con los
da os sinc onizados y p epa ado pa a segui dando el se icio.
130
Conclusions
The segmen a ion me hod supplied by he KMeans algo i hm has been p o en
e y success ul in he image segmen a ion a ea. I has no only achie ed a sui able
sepa a ion by colo , i has also made i in an accep able ime. In he o he hand, he esul s
acqui ed by he Knn classi ie h ough he calcula ion o Euclidean dis ances, had
p o ided con enien da a o ake on he classi ica ion o he di e en alimen s.
Fu he mo e, he me hods used o he calculus o he quan i ies and p opo ions
o ca bohyd a es and, he e o e, he calculus o nu ien s and he app op ia e doses o
insulin o each use ha e been e lec ed eliable and secu e.
Likewise, wi h he aim o achie ing o al unc ionali y i has been a ach he
possibili y o add manually alimen s in case o ailu e o he classi ica ion algo i hm. Tha
way, we ha e no only accomplished p o iding use ul nu i ional in o ma ion, bu also
ha , he applica ion con inues lea ning and imp o ing h ough he use i sel .
Las ly, all he in o ma ion gene a ed by he applica ion is conside ed highly use ul
and, he e o e, i will be sa ed dynamically in he DDBB.
We could a i m ha we ha e de eloped a o ally unc ional And oid applica ion
wi h a clien se e s uc u e ha is able o segmen and classi y images h ough colo
s udy.
131
F om his p ojec and he esul s ob ained emains a b oad knowledge base o
wo k wi hin he ield o image p ocessing h ough colo . In he u u e i could be ex end
o, no only o he s udy h ough colo bu h ough ex u e, which would p o ide a la ge
quan i y o in o ma ion o he classi ie making i mo e eliable, and also, would e ine
he image segmen a ion. I wouldn’ be he only aspec o upg ade; we could use mo e
complex algo i hms such as he Sobel algo i hm o iden i y edges and allow us o cu he
pla e au oma ically o imp o e he ac ual esul s.
Besides, i could be in e es ing adding no only he es ima ion o ca bohyd a es
bu also he app oach on die s; making he applica ion mo e complex, including ecipes
con aining he alimen s supplied by he use o gi ing mo e in o ma ion by email o e en
p o iding a nu i ional manage in unc ion o i s heigh o weigh .
Finally, i would be compelling he de elopmen o di e en pla o ms, such as
iOS, inc easing he co e age o use s.
In e ms o secu i y, i ’s necessa y o chague he ype o eques s o HTTPS o
a oid ins usions o he o use sessions on ne wo ks ha a e no us ed, on he o he
hand, he se e should emain on an ex ane in o de o gua an ee he secu i y o he
in o ma ion in he da abase and inally, es ic access o he se e as adminis a os.
Finally, he main enance o he applica ion would be o imp o e he moni o ing
and ale s sys em, o his, an ELK se ice could be he bes op ion, because i uses
elas icsea ch se ice ha access o logs o iles o in e es in o de o ob ain me ics o
inally show e e y impo an da a in a g aphic, able, e c. Wi h ELK, we could ansla e
his in o ma ion in o ele an da a and use ul me ics o main ain he sys em, howe e ,
also add an ale ool ha can access o his in o ma ion wi h he pu pose o no i ying he
people who a e esponsible o he applica ion. In addi ion, c ea e a disas e eco e y
132
sys em o use in case he se e goes down, in his way he e is always ano he se e
wi h he da a synch onized and eady o con inue gi ing he se ice.
133
Lis a de e e encias
[1] J.I.Hidalgo, e al., Modeling glycemia in humans by means o G amma ical
E olu ion, Appl. So Compu J.(2013),h ps://doi.o g/10.1016/j.asoc.2013.11.006
[2] Esme alda Colino. (2015). Fundación pa a la Diabe es: Tipos de diabe es.
Recupe ado de h ps://www. undaciondiabe es.o g/in an il/177/ ipos-de-diabe es-
ninos
[3] Fundación pa a la Diabe es (2016) Fundación pa a la Diabe es: La diabe es en
España. Recupe ado de h ps://www. undaciondiabe es.o g/p ensa/297/la-
diabe es-en-espana
[4] Shapi o, L. & S ockman, G. (2000) Compu e Vision. Sea le, Washing on.
EEUU: P en ice Hall Edi o ial.
[5] Ma a all Gómez-Allende, D. (1993) Reconocimien o de o mas y isión a i icial.
Mad id, España: RA-MA Edi o ial.
[6] Deep Lea ning, In eligencia A i icial y Machine Lea ning. Recupe ado de
h ps://www.blog.andaluciaesdigi al.es/deep-lea ning-in eligencia-a i icial-y-
machine-lea ning/
[7] Suca , L.En ique & Gómez, Gio ani (2011) Visión Compu acional. Ins i u o
Nacional de As o ísica, Óp ica y Elec ónica, México.
h ps://www. esea chga e.ne /p o ile/Luis_Suca /publica ion/267295870_Vision_
Compu acional/links/54d8cae30c 2970e4e7940c1/Vision-Compu acional.pd
[8] S a coun e : Mobile Vendo Ma ke Sha e Wo ldwide
h p://gs.s a coun e .com/ endo -ma ke -sha e/mobile
[9] And oid s iPhone: la gue a de los sma phones en ci as. Recupe ado de
h ps://compu e hoy.com/ epo ajes/indus ia/and oid- s-iphone-gue a-
sma phones-ci as-271447
[10] Cloud SQL. Recupe ado de h ps://cloud.google.com/sql/?hl=es
[11] And oid Documen a ion: De ice S o age. Recupe ado de
h ps://de elope .and oid.com/ aining/da a-s o age/ iles
[12] Abou SQLi e. Recupe ado de h ps://www.sqli e.o g/abou .h ml
[13] MySQL Documen a ion. Recupe ado de h ps://de .mysql.com/doc/
[14] Abou Ma iaDB. Recupe ado de h ps://ma iadb.o g/abou /
[15] Paja es, G & De la C uz, JM (2008) Visión po compu ado : imágenes digi ales y
aplicaciones. Ra-Ma Edi o ial.
134
[16] MacQueen, J. (1867) Some me hods o classi ica ion and analysis o mul i a ia e
obse a ions. Uni e si y o Cail o nia, Los Angeles. EEUU.
[17] Hong Yao & Qingling Duan & Daoliang Li & Jianping Wang (2013)
Ma hema ical and Compu e Modelling. Pekín, China.
h ps://www.jou nals.else ie .com/ma hema ical-and-compu e -modelling
[18] Ma a all Gómez-Allende, D. (1993) Reconocimien o de o mas y isión a i icial.
Mad id, España: RA-MA Edi o ial.
[19] Mi chell, Tom M. (1997) Machine lea ning. Pi sbu gh, Pensil ania. EEUU.
WCB McG aw-Hill Publishe .
[20] A qui ec u a clien e-se ido . Recupe ado de h p://somebooks.es/a qui ec u a-
clien ese ido /
[21] Modelo Vis a Con olado (MVC). Recupe ado de
h ps://si.ua.es/es/documen acion/asp-ne -m c-3/1-dia/modelo- is a-con olado -
m c.h ml
[22] And oid Mani es . Recupe ado de
h ps://de elope .and oid.com/guide/ opics/mani es /mani es -in o?hl=es-419
[23] ¿Qué es el G adle? Recupe ado de
h ps://and oids udio aqs.com/concep os/que-es-g adle-en-and oid-s udio
[24] Ac i i y. Recupe ado de
h ps://de elope .and oid.com/guide/componen s/ac i i ies.h ml?hl=es-419
[25] In en . Recupe ado de
h ps://de elope .and oid.com/guide/componen s/in en s- il e s?hl=es-419
[26] F agmen s. Recupe ado de
h ps://de elope .and oid.com/guide/componen s/ agmen s?hl=es-419
[27] KMeans en Ma lab. Recupe ado de
h ps://es.ma hwo ks.com/help/s a s/kmeans.h ml
[28] NDB API. Recupe ado de
h ps://ndb.nal.usda.go /ndb/doc/index#
[29] Cloud T ansla ion. Recupe ado de
h ps://cloud.google.com/ ansla e/
[30] AsyncTask. Recupe ado de
h ps://co ochann.com/async ask-usage-summa y-341.h ml
[31] Cálculo de la dosis de insulina. Recupe ado de h ps://d c.ucs .edu/es/ ipos-de-
diabe es/diabe es- ipo-2/ a amien o-de-la-diabe es- ipo-2/medicamen os-y-
e apias-2/p esc ipcion-de-insulina-pa a-diabe es- ipo-2/calculo-de-la-dosis-de-
insulina/
135
[32] Abou Apache. Recupe ado de h ps://h pd.apache.o g/ABOUT_APACHE.h ml
h ps://de elope .and oid.com/ aining/a icles/secu i y- ips?hl=es-419
[33] Pa ick Fa e-Bulle (2018) Symme ic Ecn yp ion wi h AES in Ja a and And oid.
Recupe ado de h ps://p oand oidde .com/secu i y-bes -p ac ices-symme ic-
enc yp ion-wi h-aes-in-ja a-7616beaaade9
[34] Wha is a block ciphe ? Recupe ado de h ps://www.wol ssl.com/wha -is-a-block-
ciphe /
[35] ECB – AES elec onic codebook mode enc yp ion. Recupe ado de
h ps://in ocen e .no dicsemi.com/index.jsp? opic=%2Fcom.no dic.in ocen e .n
52832.ps. 1.1%2Fecb.h ml
[36] Ciphe . Recupe ado de
h ps://de elope .and oid.com/ e e ence/ja ax/c yp o/Ciphe
[37] Sec e KeySpec. Recupe ado de
h ps://de elope .and oid.com/ e e ence/ja ax/c yp o/spec/Sec e KeySpec
[38] Suge encias de segu idad And oid. Recupe ado de
h ps://de elope .and oid.com/ aining/a icles/secu i y- ips?hl=es-419
[39] IPC mechanisms. Recupe ado de
h ps://s acko e low.com/ques ions/5740324/wha -a e- he-ipc-mechanisms-
a ailable-in- he-and oid-os
[40] Apps de diabe es. Recupe ado de
h ps:// epublikadiabe es.com/apps-con a - aciones-calculo-dosis- egis o-da os/
[41] Ce i icación SQAS. Recupe ado de
h ps://www.bu eau e i as.es/home/abou -us/ou -business/ou -business-
ce i ica ion/su-sec o / anspo -and-dis ibu ion/ anspo e-sqas
[42] USDA Food Composi ion Da abase. Recupe ado de h ps://ndb.nal.usda.go /ndb/
[43] ¿Qué es REST? Recupe ado de h ps://www.a qui ec u aja a.com/que-es- es /