scieee Open visual document viewer

Desarrollo de una aplicación en Android para la estimación automática de carbohidratos mediante un análisis de imágenes y técnicas de Inteligencia Artificial

Casas Torres, Laura; Peña Quineche, Milagros del Rocío; Bernal Pérez, José Antonio

Abstract

Este trabajo de fin de grado tiene como objetivo desarrollar una aplicación para dispositivos móviles, concretamente para aquellos dispositivos con sistema operativo Android. Esta aplicación, será capaz, mediante una fotografía tomada con el propio dispositivo, de reconocer los distintos alimentos presentes en la imagen a través de técnicas de visión por computador y de Inteligencia Artificial. La finalidad de esta aplicación es proporcionar una herramienta sencilla e intuitiva a las personas que sufren diabetes para ayudarles en la estimación y monitorización de nutrientes, consiguiendo así que puedan aplicar un plan de alimentación saludable que les ayude a controlar los síntomas de la enfermedad. En primer lugar, la aplicación segmentará la imagen proporcionada por el usuario mediante el algoritmo de agrupamiento KMeans. Los resultados proporcionados por este algoritmo serán usados por el clasificador que, mediante el algoritmo K-Nearest Neighbors, etiquetará los distintos alimentos. Una vez los alimentos han sido etiquetados en la categoría correcta, la aplicación hace uso de una base de datos externa USDA para conseguir los valores nutricionales de cada alimento haciendo especial énfasis en los carbohidratos. Toda la información recopilada es mostrada al usuario y después es guardada en su propio historial. Cada usuario cuenta con un historial de comidas donde se guarda información de las fotos de las comidas que ha subido y todos los valores nutricionales de éstas. De esta forma queda una aplicación capaz de identificar diferentes alimentos en una misma imagen usando técnicas de visión por computador y de Inteligencia Artificial facilitando la tarea a las personas que sufren de diabetes de estimar la cantidad de insulina diaria necesaria, logrando así un mejor control sobre la enfermedad y sus síntomas.

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 /