deep learning para la clasificaciÓn y segmentaciÓn de
TRANSCRIPT
DEEP LEARNING PARA LA CLASIFICACIÓN YSEGMENTACIÓN DE IMÁGENES DE
ALIMENTOS
Iago Vidal Luna
Trabajo de Fin de GradoEscuela de Ingeniería de Telecomunicación
Grado en Ingeniería de Tecnologías de Telecomunicación
TutoresJulio Martín Herrero
2018
Escola de Enxeñaría de Telecomunicación
Grao en Enxeñaría de Tecnoloxías de Telecomunicación
Mención: Telemática
Deep Learning para la clasificación y
segmentación de imágenes de alimentos
Autor: Iago Vidal Luna
Tutor: Julio Martín Herrero
Curso: 2017/2018
1
I. Introducción
En el presente informe se expone todo el trabajo realizado para alcanzar los objetivos propuestos en el TFG
(apartado 3), desde la motivación del proyecto (apartado 2) hasta los resultados obtenidos (apartado 4) y
las conclusiones finales extraídas (apartado 5).
Se concentra especial esfuerzo en el apartado de resultados, donde se mostrará la metodología de trabajo y
las decisiones de implementación realizadas, con el objetivo de facilitar la evaluación del proyecto. De
hecho, en un trabajo de inteligencia artificial y deep learning, es necesario una constante toma correcta de
decisiones para alcanzar un resultado de valor.
Cada una de las secciones se complementa con diferentes anexos, los cuales se pueden consultar debajo
del informe ejecutivo, que o bien amplían la información descrita en el apartado correspondiente o, por el
contrario, exponen un conocimiento accesorio que no resulta preciso incluir directamente en este informe
ejecutivo.
Con el fin de obtener centralizadas todas las fuentes, en la bibliografía (apartado 6), se indican todas las
referencias que se han consultado para la realización del proyecto, incluidas las de los anexos
La idea de proyecto es el desarrollo de una solución basada en Deep Learning con el objetivo de detectar
diferentes tipos de alimentos en fotografías de comidas. De este modo, no se ha buscado obtener un
producto cerrado, sino más bien una herramienta que se podrá integrar en múltiples sistemas y que puede
dar forma a diferentes productos. Inmediatamente, en el apartado sucesivo, se expone la motivación que
ha llevado a la concepción de esta idea.
2
II. Motivación del proyecto
La motivación inicial del proyecto surge del evidente potencial de las nuevas herramientas de Deep
Learning. La asignatura LPRO y la estancia en prácticas en Gradiant me descubrieron el mundo de la
inteligencia artificial, las redes neuronales , las CNN (redes neuronales convolucionales) y el Deep
Learning. En LPRO se realizó una App sencilla de seguimiento de dietas por fotografía. Mi trabajo fue el de
implementar con transfer learning la red de clasificación de alimentos. Posteriormente, en Gradiant,
desarrollé una solución también de transfer learning que mejoraba los porcentajes de acierto anteriores e
investigué profundamente sobre las nuevas tecnologías de visión artificial. Todo este conocimiento
adquirido evidenciaba el enorme potencial del Deep Learning y la elección de este proyecto se produjo de
forma natural, con el objetivo de alcanzar una solución tecnológica superior y de interés profesional.
Igualmente, la clasificación de alimentos persiste como un problema de enorme interés y ese es el motivo
por el que se toma la decisión de continuar clasificando alimentos. La alimentación es uno de los asuntos de
mayor importancia a nivel mundial. Obviamente, resulta un tema crucial en los países subdesarrollados
donde por la escasez de recursos es una cuestión de vida o muerte. No obstante, en los países del primer
mundo es también un factor clave en la calidad de vida actual y futura de los individuos. Y todavía hay
mucho camino que recorrer en materia de nutrición. Es por es ello que cualquier desarrollo tecnológico
innovador en este área tendrá un impacto social considerable.
En primer lugar, el seguimiento de una dieta adecuada es una preocupación de la mayor parte de la
población. Además, existen situaciones concretas donde el seguimiento de una dieta adecuada tiene aún
mayor urgencia. Es el caso de enfermedades o condiciones médicas en las cuales la alimentación supone un
factor determinante. El ejemplo más conocido es el de la obesidad. Según el Informe Anual del Sistema
Nacional de Salud Española de 2016 [1], elaborado por el MSSSI (Ministerio de Sanidad, Servicios Sociales e
Igualdad), el 16,9% de la población de 15 y más años es considerada obesa, y el 52,7% de la población de 18
y más años padece obesidad o sobrepeso. Pero hay muchos otras enfermedades muy frecuentes en la
sociedad contemporánea. El MSSSI nos arroja las siguientes cifras [2]: el 6.8% de la población padece
diabetes mellitus y el 18.4% hipertensión arterial. Además, también es clave la dieta en otras condiciones
frecuentes como son las enfermedades coronarias, estomacales, alergias alimenticias y el embarazo.
Asimismo, la nutrición de la población es una cuestión también relevante en el aspecto económico. Un
informe realizado por “The Economist” [3] expone que en 2013 la diabetes representaba el 8% de los costes
sanitarios directos en España. Además, en ese mismo documento se subraya que si bien en 2002 se
calculaba que los costes de la obesidad alcanzaban un 7% de los costes sanitarios, ahora se sospecha que
representan un porcentaje mayor. Es por todo esto que las políticas españolas se centran ya más en la
prevención que en el propio tratamiento.
Por otro lado, es significativo el dato que proporciona la Sociedad Española para el Estudio de la Obesidad
(SEEDO) [4]: el 81% de los españoles fracasa al hacer una dieta. Eso indica que en muchos casos el
problema no está en la iniciativa sino en la capacidad de persistir. Por eso, desarrollar una tecnología que
permita distinguir alimentos únicamente con una foto, puede integrarse en múltiples productos que
proporcionen seguimiento de la dieta, motivación e información alimenticia con un esfuerzo mínimo por
parte del usuario, favoreciendo así la consecución de sus objetivos.
3
III.Objetivos
● El primer objetivo radicó en elaborar un análisis exhaustivo de las soluciones existentes en
seguimiento de dietas y otras soluciones ya centradas en condiciones de salud concretas, con el
propósito de encontrar necesidades insatisfechas.
● A partir de ahí, el objetivo principal consistió en realizar segmentación de imagen y así tener la
capacidad de reconocer y clasificar diferentes tipos de alimentos en una única fotografía. Resulta
de interés conseguir mejorar aún más los ratios de clasificación alcanzados, pero para que el
desarrollo realizado pueda tener impacto profesional es obligado poder reconocer varios alimentos
simultáneamente, pues así es como se presentan habitualmente en la realidad.
● Derivado directamente del punto anterior, el siguiente objetivo residió en encontrar las mejores
técnicas para poder efectuar esa segmentación. Desde 2012, cuando Alex Krizhevsky, Ilya
Sutskever y Geoffrey Hinton ganaron la competición de ImageNet con su “red neuronal
convolucional grande y profunda” [5], deep learning y las CNN se establecieron como la técnica por
excelencia en la clasificación de imagen. Debido a esto, desde el inicio, la decisión siempre fue
encontrar la mejor manera de implementar estas CNN en modelos de segmentación. ● En ese estudio de las diferentes posibilidades de implementación, surgió la necesidad de estudiar el
tipo de licencia de la alternativa elegida. De esa manera, era posible conocer las posibilidades
comerciales que se poseían con el uso de la misma.
● Asimismo, si bien el objetivo principal siempre fue desarrollar un prototipo básico que realizase
unas pocas segmentaciones simples, una posible meta consistió en encontrar los mejores modelos
pre-entrenados con bases de datos públicas, que entre sus categorías incluyeran alimentos. De
esta forma, se podría conseguir realizar la segmentación sobre un extenso número de alimentos.
Como en este caso no es necesario el entrenamiento de la red, se pueden conseguir resultados con
una carga computacional considerablemente inferior, y evitando el costoso proceso de limpiar y
etiquetar fotografías.
● Un objetivo más ambicioso residió en entrenar algún modelo de segmentación basado en CNN y
evitar depender de otras bases de datos. Esto implicaba diseñar la base de datos, obtener las
fotografías, etiquetarlas, cargar un modelo de entrenamiento, configurar los parámetros del mismo
y finalmente exportar el modelo entrenado para realizar la clasificación.
● Dependiente del objetivo anterior, nació la necesidad de repasar conceptos matemáticos básicos
de redes neuronales y convolucionales, con el propósito de obtener una comprensión mínima y
poder ajustar parámetros de entrenamiento como el “learning rate”, “training steps” o “batch
size”. Además, era conveniente tener una soltura mínima en Python o C++. No era necesario un
conocimiento profundo en esta materia, pues el dominio absoluto de estos temas puede requerir
años de investigación y el objetivo fue valorar alternativas y encontrar una solución de forma
eficiente.
4
IV.Resultados
En primer lugar, se elaboró el estado del arte del proyecto. Este se puede consultar en el “Anexo1. Estado
del arte”. En la sección 2 se expone un estudio detallado de los últimos modelos de segmentación con CNN:
R-CNN, Fast R-CNN, Faster R-CNN, YOLO, SSD, R-FCN y Mask R-CNN. A continuación, en las secciones 3 y 4,
se pueden consultar las soluciones existentes en seguimiento de dietas con identificación de alimento y
otras soluciones en condiciones de salud más específicas. De todo este estudio se concluyó que la
tecnología que se pretendía desarrollar de segmentación de imagen en fotografías de alimentos podía ser
una pieza clave en muchos productos de seguimiento de dietas. Especialmente en aquellos que se centren
en condiciones más específicas, como puede ser el embarazo, el posparto, la diabetes gestacional o la
ERGE (enfermedad del reflujo gastroesofágico) durante el embarazo.
En este punto, se conocían los mejores modelos de segmentación en la actualidad, pero era necesario
determinar el modo en el que estos se iban a implementar. Ya era conocida la técnica de transfer learning
ofrecida por Google a través de su biblioteca TensorFlow [6], pero esta solo permite reentrenar la última
capa de Inception v2 para efectuar clasificación de imagen y no ofrece un modelo completo de
segmentación. Es por eso que se buscó una nueva herramienta con la que implementar, en última
instancia, el proyecto. La elegida fue “Tensorflow Object Detection API” [7]. La causa de dicha elección fue
el elevado número de modelos de segmentación basados en CNN que ofrecía, además de que resulta
indudable la potencia de la librería de Google.
Por otro lado, TensorFlow es una librería open source con licencia Apache License Version 2.0 [8]. Esto
quiere decir que se tiene el pleno derecho de usar el software con propósitos comerciales. Esta es una de
las garantías proporcionadas por el código abierto, como se puede consultar en opensource.org [9].
Asimismo, en creativecommons se informa que en una licencia 2.0 genérica se es libre de “mezclar,
transformar y construir sobre el material para cualquier propósito, incluso comercial” [10].
Una vez decidida la API que se iba a usar, fue necesario elegir los recursos computacionales que se iban a
emplear. La inteligencia artificial y en especial en Deep Learning requieren de un gran poder de
computación. En la actualidad es posible que esta sea la limitación más común en proyectos de visión
artificial, junto con la insuficiencia o la baja calidad de los datos de entrada. Las alternativas principales eran
la computación en la nube (Google Cloud Platform, Amazon AWS…) o los recursos físicos. La elección final
fue la de construir un ordenador físico para este propósito, por el interés personal en la materia y por el
aumento del coste de los recursos en la nube.
En la construcción de un ordenador para Deep Learning, la elección más importante es la GPU, debido a la
necesidad de computación paralela (muchos de los cálculos en Deep Learning son operaciones sobre
matrices que se puede ejecutar concurrentemente). La tarjeta elegida fue NVIDIA GeForce GTX 1080 Ti. En
rendimiento era la segunda mejor tarjeta gráfica del mercado, empatada con la Titan X Pascal y justo
debajo de la Titan Xp [11]. Sin embargo, en eficiencia por coste era muy superior a las mencionadas
anteriormente y este es el motivo de la elección. El ordenador se completaba con una placa base MSI X99A
SLI Krait Edition USB 3.1 con 40 PCI Express Lanes, una CPU compatible Intel i7-6850K 3.6Ghz Box, un disco
Samsung 960 EVO NVMe M.2 SSD PCI-e 500GB y 32 GB de RAM. Al finalizar la elección de los componentes,
se usó la web pcpartpicker [12] para comprobar la compatibilidad de los mismos.
5
La definición más conocida de machine learning seguramente es la proporcionada por Arthur Samuel: “es el
campo de estudio que le proporciona a las computadoras la habilidad de aprender sin haber sido
explícitamente programadas” [13]. Pero para aprender, estas necesitan datos de entrenamiento. Y la
calidad de estos datos repercute directamente en el resultado obtenido. Deep Learning es una rama del
machine learning, aplicada masivamente en la actualidad a la visión artificial.
Una vez que se había realizado la construcción del ordenador, era necesario efectuar, con carácter previo a
cualquier implementación, un documento que organizara las principales reglas que se deben seguir al crear
un set de imágenes de entrenamiento. Igualmente, también era importante conocer herramientas de
obtención y etiquetado de imágenes.
En el “Anexo2: Diseño de una base de datos para Deep Learning” se puede consultar un esquema con las
principales conclusiones extraídas de la experiencia y de la investigación acerca de la construcción de una
base de datos.
En este punto, antes de pasar a implementar el modelo de segmentación, se decidió emplear el nuevo
ordenador en un último entrenamiento sobre la base de datos para la clasificación (la diseñada en LPRO y
Gradiant), con categorías con fotografías completamente limpias siguiendo las reglas descritas en el párrafo
anterior. Esta vez, aprovechando la potencia de cómputo, se efectuaron 15.000 iteraciones de
entrenamiento (por defecto son 4000) y se obtuvo un porcentaje de acierto de 98.2% sobre el set de test.
Constituye un extraordinario resultado sobre las 25 categorías consideradas. En el “Anexo3. Resultados” se
expresan los resultados obtenidos con mayor rigor, concretamente en el apartado 1 “Reentrenamiento de
la última capa de Inception para nuevas categorías”.
Inmediatamente a continuación, se procedió a efectuar la instalación necesaria para poder emplear
“TensorFlow Object Detection API” [14] para la segmentación y clasificación. Se decidió realizar la
instalación en Ubuntu [15], debido al mayor soporte existente para este sistema operativo. Es preciso
conocer que, por el carácter reciente de todas las herramientas utilizadas, en ocasiones la instalación
resulta compleja, debido a incompatibilidades entre software o nuevas actualizaciones.
En primer lugar, para hacer uso de la gráfica adquirida, era necesario realizar una instalación de TensorFlow
con soporte para GPU. Para esto, se precisaba instalar el siguiente software de NVIDIA:
● CUDA Toolkit [16]
● Drivers de NVIDIA asociados a CUDA Toolkit.
● CUDNN [17]
Posteriormente, se decidió utilizar pip para la instalación de TensorFlow. Se instalaron 2 versiones
tensoflow-gpu, una para Python 2.7 y otra para Python3.5. La instalación se realizó indicando el url del
paquete TensorFlow Python.
A continuación, fue necesario compilar las liberías Protobuf. Una vez realizado, se procedió a validar la
instalación.
Por último, era prácticamente obligada la instalación del entorno de programación Jupyter Notebook web
[18], con el que ejecutar cómodamente el código Python.
6
Una vez finalizado todo el proceso de instalación de manera satisfactoria, se estaba en condiciones de usar
los diferentes modelos preentrenados para la segmentación y clasificación de las imágenes que se desease
(siempre y cuando estos modelos estuviesen entrenados sobre algunas categorías de alimentos).
TensorFlow proporciona una abundante lista de modelos de segmentación preentrenados en el dataset
Coco [19], el cual contiene algunas categorías de alimentos (plátano, manzana, zanahoria, dónut, naranja,
perrito caliente, brócoli, sandwich, pizza, vaso de vino, tarta, ect.). Los diferentes modelos disponibles
actualmente entrenados en dicho dataset se pueden consultar en “Tensorflow detection model zoo” [20].
Se decidieron cargar y utilizar los siguientes sistemas:
● ssd_mobilenet_v1_coco - Model speed (30 ms) - COCO mAP (21)
● faster_rcnn_inception_v2_coco - Model speed (58 ms) - COCO mAP (28)
● faster_rcnn_nas - Model speed (1833 ms) - COCO mAP (41)
Model speed es el tiempo de ejecución del modelo con una imagen 600x600 en una GTX Titan X.
mAP (Mean Average Precision) es un medidor del rendimiento del modelo sobre un subconjunto del
dataset COCO. Un valor mayor indica mayor precisión.
Como referencia para escribir el código para cargar y usar cada uno de los modelos, se utilizó el siguiente
enlace [21].
A continuación, en la Figura 1 y en la Figura 2, se presentan algunos de los resultados obtenidos. Se pueden
consultar todas las detecciones realizadas en el “Anexo3. Resultados”.
Figura 1: Detección con faster_rcnn_nas
7
Figura 2: Detección con faster_rcnn_inception_v2_coco
Posteriormente, se investigó para encontrar otro sistema pre-entrenado que tuviese aún más alimentos
entre sus categorías. Así, se determinó que faster_rcnn_inception_resnet_v2_atrous_oid (727 ms y 37
mAP), entrenado sobre Open Data Dataset [22] era un candidato ideal, debido a que posee cerca de 70
categorías de alimentos [23].
En la Figura 3 se puede observar uno de los resultados obtenidos. Como siempre, es posible consultar el
conjunto completo de resultados en el Anexo 3.
Figura 3: Detección con faster_rcnn_inception_resnet_v2_atrous_oid
8
Las implementaciones con modelos pre-entrenados deben ser siempre los primeros a ejecutar. El coste de
diseñar y limpiar bases de datos y después entrenarlas es muy alto. Sin embargo, en muchos casos es
posible necesitar determinados tipos de categorías para los que no existen modelos pre-entrenados. Por
este motivo, a continuación se documentan los pasos seguidos para efectuar el entrenamiento de un
sistema de segmentación por redes neuronales convolucionales, en este caso, el modelo SSD, en un par
de categorías de interés.
En primer lugar, es preciso descargar las imágenes y etiquetarlas. Las imágenes deben ser RGB y estar en
formato PNG o JPEG. Para descargar las imágenes se utilizo el plugin de Chrome “I´m a Gentleman” [24].
Después es necesario etiquetar dichas imágenes encuadrando los objetos en cajas delimitadores que
devuelvan las 4 coordenadas de sus vértices. Para ello, se utilizó labelImg [25]. En el Anexo3 se pueden
consultar fotografías que ilustran este proceso.
La API de TensorFlow solo lee datos de entrada que tengan el formato TFRecord file format [26]. Es posible
obtener dicho formato utilizando unos scripts que proporciona TensorFlow, siempre y cuando la base de
datos diseñada esté en formato “PASCAL VOC TFRecord files” u “Oxford-IIIT Pet TFRecord files”. De esta
forma, es posible utilizar los mencionados scripts si se realiza un diseño que replica la misma estructura. Sin
embargo, finalmente se decidió elaborar un script propio que efectuara la transformación al formato
TFRecord.
Una vez constituida la base de datos en el formato correcto se puede proceder a configurar el
entrenamiento y la validación. Para ello, esta API proporciona el “Object Detection Training Pipeline” [27]
con el que se debe configurar el modelo y los parámetros de entrenamiento. Para entrenar, es necesario
además indicar las categorías en un archivo “label map” [28].
El entrenamiento se ejecutó usando un checkpoint para reducir la carga computacional. Una vez finalizado
se exportó a un fichero .pb [29] para posteriormente efectuar con él las pruebas de detección. Un ejemplo
de ello se observa en la Figura 4.
Figura 4: Detección con mi modelo SSD entrenado
9
V.Conclusiones
Las redes neuronales convolucionales profundas son una técnica de enorme poder y su estudio e
investigación en este proyecto han permitido obtener, en un espacio limitado de tiempo, unos resultados
cercanos al nivel de un producto comercial. El Deep Learning es, sin duda, una de las ramas de la
inteligencia artificial con mayor presencia en los últimos desarrollos tecnológicos actuales.
Con el empleo de “TensorFlow Object Detection API” se han conseguido los objetivos marcados, realizando
segmentación y clasificación de diferentes tipos de alimentos. En primer lugar, se usaron diversos
modelos pre-entrenados que permitieron detectar un considerable número de categorías. Después, se
efectuó el entrenamiento de un modelo SSD, documentando todos los pasos necesarios para poder
entrenar en el futuro sobre todas las categorías deseadas.
El trabajo desarrollado en este proyecto es fácilmente integrable en múltiples sistemas. Son de especial
interés en la actualidad los productos que ayudan a realizar un seguimiento de la dieta en condiciones
médicas específicas, como son el embarazo, la diabetes gestacional o la ERGE.
Las líneas futuras a seguir consisten en incorporar más categorías a la detección. Si es posible, utilizando
modelos pre-entrenados, para evitar el cuantioso coste en tiempo y dinero que implica el diseño de bases
de datos, el etiquetado y el entrenamiento. Otra posible vía futura consiste en la estimación del tamaño en
las fotografías, aunque este es un reto de complejidad máxima y seguramente la solución obtenida tendría
que depender de visualizar en la fotografía un objeto conocido, que sirva de referencia.
En una apreciación personal, el desarrollo de proyectos basados en redes neuronales es una experiencia
muy satisfactoria para un ingeniero de telecomunicaciones. Así es como lo he percibido a lo largo de todo
el trabajo realizado para el proyecto.
10
VI.Bibliografía
[1] (2015, diciembre 31). Informe Anual del Sistema Nacional de Salud 2016 - Ministerio de Sanidad,
Servicios Sociales e Igualdad.
[2] (2016, julio 1). La salud y el sistema sanitario en 100 tablas - Ministerio de Sanidad Servicios Sociales e
Igualdad.
[3] (2016) Cómo hacer frente a la obesidad en España - EIU Perspectives.
[4] (2014, febrero 12). Los kilos de más afectan a la hora de encontrar trabajo - Seedo.
[5]Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). Imagenet classification with deep convolutional
neural networks. In Advances in neural information processing systems (pp. 1097-1105).
[6] (n.d.). How to Retrain Inception's Final Layer for New Categories.
[7] (n.d.). Tensorflow Object Detection API - GitHub
[8] (n.d.). tensorflow/LICENSE at master · tensorflow/tensorflow · GitHub
[9] (n.d.). FAQs - Open Source Initiative.
[10] (n.d.). Creative Commons — Attribution 2.0 Generic (CC BY 2.0)
[11] (2017, abril 9). Which GPU(s) to Get for Deep Learning - Tim Dettmers.
[12] (n.d.). PCPartPicker.
[13] Arthur Samuel. (1957) Communications of the ACM.
[14] (n.d.). models/installation.md at master · tensorflow/models · GitHub.
[15] (n.d.). Installing TensorFlow on Ubuntu.
[16](2018, enero 24). Installation Guide Linux :: CUDA Toolkit Documentation - NVIDIA
[17] (n.d.). NVIDIA cuDNN | NVIDIA Developer.
[18] (n.d.). 1. What is the Jupyter Notebook? - Jupyter Notebook quick start guide.
[19] (n.d.). COCO dataset.
[20] (n.d.). models/detection_model_zoo.md at master · tensorflow/models · GitHub.
[21] (n.d.). models/object_detection_tutorial.ipynb at master · tensorflow - GitHub.
[22] (n.d.). The Open Images dataset - GitHub.
[23] (n.d.). Flare Dendrogram.
[24] (n.d.). I'm a Gentleman - Chrome Web Store - Google.
11
[25] (n.d.). tzutalin/labelImg - GitHub.
[26] (n.d.). models/preparing_inputs.md at master · tensorflow/models · GitHub.
[27] (n.d.). models/configuring_jobs.md at master · tensorflow/models · GitHub.
[28] (n.d.). models/research/object_detection/data at master · tensorflow - GitHub.
[29] (n.d.). models/exporting_models.md at master · tensorflow/models · GitHub.
[30] Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). Imagenet classification with deep convolutional
neural networks. In Advances in neural information processing systems (pp. 1097-1105).
[31] Huang, J., Rathod, V., Sun, C., Zhu, M., Korattikara, A., Fathi, A., ... & Murphy, K. (2017, July).
Speed/accuracy trade-offs for modern convolutional object detectors - arXiv
[32] Ross Girshick, Jeff Donahue, Trevor Darrell, Jitendra Malik. (2013, noviembre 11). [1311.2524] Rich
feature hierarchies for accurate object detection and semantic segmentation - arXiv.
[33] Girshick, R. (2015, abril 30). Fast R-CNN - arXiv
[34] Ren, S., He, K., Girshick, R., & Sun, J. (2015, junio 4). Faster r-cnn: Towards real-time object detection
with region proposal networks - arXiv
[35] Redmon, J., Divvala, S., Girshick, R., & Farhadi, A. (2016). You only look once: Unified, real-time object
detection - arXiv
[36] (2016, diciembre 25). YOLO9000: Better, Faster, Stronger - arXiv
[37] (2015, diciembre 8). [1512.02325] SSD: Single Shot MultiBox Detector - arXiv
[38] (2016, mayo 20). R-FCN: Object Detection via Region-based Fully Convolutional Networks - arXiv
[39] (2017, marzo 20). Mask R-CNN - arXiv
[40] (n.d.). Im2Calories: towards an automated mobile vision food diary - Research at Google.
[41] (2016, septiembre 30). Diet App Uses Deep Learning in Automatic Calorie Counter | NVIDIA
[42] (2017, marzo 20). Food Scanner | Horizon Prizes - European Commission
[43] (n.d.). Spectral Engines » Foodscanner
[44] (n.d.). OMS | Diabetes.
[45] (n.d.). Diagnosis and Classification of Diabetes Mellitus - NCBI - NIH.
[46] (n.d.). Gestational diabetes mellitus - NCBI - NIH.
[47] (n.d.). informe mundial sobre la diabetes - World Health Organization.
[48] Vervloet M, van Dijk L, de Bakker DH, Souverein PC, Santen-Reestman J, van Vlijmen B, van Aarle MC,
van der Hoek LS, Bouvy ML. Short- and long-term effects of real-time medication monitoring with short
12
message service (SMS) reminders for missed doses on the refill adherence of people with Type 2 diabetes:
evidence from a randomized controlled trial. - NCBI.
[49](2013, enero 15).The effectiveness of mobile-health technology-based health behaviour change or
disease management interventions for health care consumers: a systematic review.
[50](n.d.). Effect of mobile phone intervention for diabetes on glycaemic control: a meta-analysis. - NCBI.
[51](n.d.). Technologies for Diabetes Management 2017-2027.
[52] Waki, Aizawa, Kato, Fujita, Lee, Kobayashi, Ogawa, Mouri, Kadowaki, Ohe. DialBetics With a
Multimedia Food Recording Tool, FoodLog - NCBI.
[53] (n.d.) Dexcom Continuous Glucose Monitoring | Dexcom CGM.
[54] (2016, septiembre 14). Diet during pregnancy: Women's knowledge of and adherence to food safety
guidelines - NCBI.
[55] (n.d.). Diet During Pregnancy: Healthy Eating While Pregnant.
[56] (2012, febrero 29). Opciones de tratamiento para la ERGE o enfermedad por reflujo del ácido
estomacal - NCBI - NIH.
[57] (n.d.). Instituto de Salud Digestiva y Hepática.
[58] (2016, enero 28). Enfermedad por reflujo gastroesofágico.
[59] (n.d.). LINX® Reflux Management System in chronic gastroesophageal reflux: a novel effective
technology for restoring the natural barrier to reflux - NCBI - NIH.
[60] Jeff Kaufman (2015, diciembre 24). Detecting Tanks.
13
Anexo1: Estado del arte
1. Introducción
Es necesario plantear un estudio del estado del arte desde varias perspectivas. Por un lado, es
indispensable un enfoque desde el punto de vista puramente tecnológico, analizando los diferentes
modelos de CNN (redes neuronales convolucionales) que representan el conocimiento último en la
segmentación y clasificación de imagen. Así, exploro R-CNN, Fast R-CNN, Faster R-CNN, Mask R-CNN, R-FCN,
SSD y YOLO.
Por otro lado, requiero realizar una labor de investigación para encontrar soluciones tecnológicas
existentes en el apoyo y seguimiento de dietas. Existen varias Apps de éxito que proporcionan seguimiento
de dietas y ejercicio, con enormes bases de datos de alimentos y muchas funcionalidades adicionales, como
es el caso de “MyFitnessPal”, “Dietas para adelgazar” y “MyPlate: Contador de Calorías”. Pero estas se
limitan, como máximo, a la introducción manual de los alimentos o al escáner del código de barras. El
estudio profundiza en aquellos otros productos o tecnologías de éxito que ofrecen una detección más veloz
de alimentos o nutrientes, por fotografía u otra vía. Estos son: “Im2Calories”, “LoseIt”, “FatSecret”, “Calorie
Counter-MyNetDiary”, “FOODSCAN (Spectral Engines)”, “SCIO” y “TellSpec”.
Por último, son particularmente interesante aquellas condiciones médicas en las cuales el seguimiento de
una dieta resulta ser un factor decisivo en el tratamiento. Así, algunos de los campos que resultan de
interés son: diabetes, embarazo y enfermedades estomacales como la enfermedad del reflujo
gastroesofágico (ERGE). Se investigan soluciones existentes en estos ámbitos específicos.
14
2. Tecnologías de visión artificial
En 2012, el equipo formado por Alex Krizhevsky, Ilya Sutskever y Geoffrey Hinton ganó la competición de
ImageNet con su “red neuronal convolucional grande y profunda” [30]. Aquello supuso un punto de
inflexión y desde aquel momento, deep learning y las CNN se han establecido como la técnica por
excelencia en la clasificación de imagen, llegando a superar la capacidad de clasificación humana. Es por
ello que la investigación se limita a este área específica del machine learning y al estudio de los sistemas
más exitosos que han sido propuestos en ella en los últimos años. Un buen punto de referencia es el
estudio “Speed/accuracy trade-offs for modern convolutional object detectors” [31].
R-CNN (Regional CNN) -- 2014 [32]
● Problema concreto abordado por la solución
Trató de resolver con CNN problemas complejos de clasificación, identificando diferentes tipos de objetos
en la misma imagen y etiquetando correctamente cada uno de ellos.
● Marco metodológico y conceptual de la solución. ¿Qué enfoque se ha tomado?
Se crea un conjunto de cajas delimitadoras (o propuestas de región) tratando de predecir dónde se
encuentran los objetos. Para ello se usa el proceso “Selective Search”, que básicamente utiliza ventanas de
diferentes tamaños sobre la imagen con el objetivo de, para cada una de ellas, agrupar píxeles por color,
intensidad o textura para identificar objetos.
Después, se utiliza una CNN para generar las características de la imagen (inicialmente se utilizó una versión
modificada de AlexNet-el ganador de ImageNet en 2012-) a la que se le añade en la última capa un SVM
(Support Vector Machine) que determina si, en cada una de las regiones propuestas (que se han deformado
a un tamaño estándar) se identifica un objeto; y en ese caso, resuelve de qué objeto se trata.
Finalmente, se utiliza un modelo de regresión lineal para ajustar mejor la caja a las verdaderas dimensiones
del objeto.
● Conclusiones
○ Resuelve satisfactoriamente el problema de segmentación.
○ Es muy lenta porque requiere pasar por la CNN para cada una de las regiones propuestas.
Además, tiene que entrenar 3 modelos diferentes de forma separada: la red neuronal
convolucional, el SVM y el modelo de regresión lineal.
15
Fast R-CNN -- 2015 [33]
● Problema concreto abordado por la solución
Mejorar las limitaciones de la R-CNN y construir un sistema más eficiente.
● Marco metodológico y conceptual de la solución, ¿qué enfoque se ha tomado?
Utiliza la técnica RoiPool (Region of Interest Pooling), que aprovecha que muchas de las regiones
propuestas se superponen, de forma que no es necesario realizar el paso por la CNN una y otra vez. Con
esta técnica únicamente se ejecuta una vez la CNN para cada imagen y después se comparte la
computación realizada para cada una de las subregiones establecidas.
Usa una única red para computar todo a la vez: CNN, SVM y el modelo de regresión lineal. Esto se consigue
añadiendo dos capas a la CNN, paralelas entre ellas y situadas como últimas de la red. Una de ellas es una
capa de softmax que realiza la clasificación y sustituye al clasificador SVM. La otra es una capa de regresión
lineal.
● Conclusiones
○ Es mucho más eficiente que la R-CNN.
○ El proceso de creación de las subregiones constituye un importante cuello de botella en el
sistema. Selective Search resulta ser una técnica muy lenta.
Faster R-CNN -- 2015 [34]
● Problema concreto abordado por la solución
Desarrollar una nueva arquitectura que solucione el bottleneck de las Fast R-CNN, reduciendo el coste de la
proposición de subregiones.
● Marco metodológico y conceptual de la solución, ¿qué enfoque se ha tomado?
Dado que la proposición de subregiones depende de las características de la imagen, es posible rehusar los
resultados obtenidos tras ejecutar la CNN en lugar de utilizar un algoritmo aparte como era el caso de
Selective Search. De este modo el coste de calcular las subregiones es prácticamente cero.
La implementación consiste a grandes rasgos en añadir, por encima del mapa de características de la CNN,
una FCN (Fully Convolutional Network) llamada Region Proposal Network. Esta trabaja pasando una
ventana deslizante por dicho mapa y generando un conjunto de cajas delimitadoras que es probable que
contengan a un objeto.
● Conclusiones
○ Constituye, a día de hoy, uno de los sistemas situados en el estado del arte de la visión
artificial.
○ No llega a proporcionar como resultado una segmentación de objetos a nivel de píxel.
16
YOLO (You Only Look Once) --2015 [35]
● Problema concreto abordado por la solución
Resolver el problema de segmentación y clasificación aplicando una sola red neuronal a la imagen entera y
mejorar así el rendimiento de los sistemas R-CNN y Fast R-CNN.
● Marco metodológico y conceptual de la solución, ¿qué enfoque se ha tomado?
Los otros sistemas aplican la red a múltiples regiones de la imagen original, con diferentes localizaciones y
escalas. Cuando alguna región alcanza una alta probabilidad se determina que es un objeto detectado. Con
YOLO, sin embargo, la red trabaja con la imagen entera para luego dividirla en regiones y predecir las
“bounding boxes” y la probabilidad asociada a cada una. Este modelo, aparte de ser una arquitectura
unificada, permite que las predicciones de las subregiones tengan en cuenta el contexto global de la
imagen.
A finales de 2016, fue publicado por sus autores una revisión del sistema con varias mejoras conocido como
YOLO9000 [36], para solventar las deficiencias del sistema en comparación con los otras técnicas de
vanguardia. El principal problema era que YOLO tenía un elevado número de errores de localización, pese a
sus altos ratios de detección.
● Conclusiones
○ YOLO se descubrió como un sistema mucho más rápido que R-CNN y Fast R-CNN.
○ Según sus autores, YOLO9000 se sitúa en el estado de arte de la detección de objetos en
tiempo real y puede clasificar entre más de 9000 categorías de objetos diferentes.
○ YOLOv2, el nuevo sistema de detección de YOLO9000, a 67FPS, obtiene 76.8 mAP (Mean
Average Precision) en VOC 2007 y a 40FPS, consigue 78.6 mAP. De este modo, mejora a
Faster RCNN con ResNet y SSD, siendo a la vez un sistema más rápido.
○ Su método de detección y clasificación conjunta permite realizar detecciones de clases de
objetos que no tienen datos de etiquetados.
17
SSD (Single Shot MultiBox Detector) -- v1 Dic-2015, v5 Dic-2016 [37]
● Problema concreto abordado por la solución
Crear un sistema que elimine el típico paso de proposición de regiones y alcance mucha mayor velocidad.
● Marco metodológico y conceptual de la solución, ¿qué enfoque se ha tomado?
Se trata de una arquitectura formada por una única red convolucional que en una única etapa predice las
clases sin necesitar un paso previo de proposición de regiones.
Se discretiza el conjunto de cajas delimitadoras a un set de cajas por defecto de diferentes relaciones de
aspecto y escalas por ubicación del mapa de características. Así, en tiempo de predición, la red estima la
probabilidad de la presencia de un objeto en cada caja por defecto y después ajusta las dimensiones de la
caja para acomodarla mejor a las dimensiones del mismo.
Este modelo es simple en comparación con otros métodos porque elimina la proposición de regiones de
objetos y encapsula toda la computación en una sola red.
● Conclusiones
○ Resultados experimentales en los sets PASCAL VOC y MS COCO confirman que SSD tiene
una precisión comparable a los métodos que utilizan el tradicional paso adicional de
proposición de regiones, siendo mucho más rápido. Y comparándolo con otros métodos
que también son de un solo paso, SSD alcanza muy buenos resultados.
○ Para imágenes de 300x300, SSD alcanza 72.1% mAP en el test VOC2007 test a 58 FPS on
una Nvidia Titan X. Con entradas de 500x500 alcanza 75.1% mAP.
R-FCN -- 2016 [38]
● Problema concreto abordado por la solución
Mejorar la velocidad de ejecución de las Faster R-CNN.
● Marco metodológico y conceptual de la solución, ¿qué enfoque se ha tomado?
Redes completamente convolucionales basadas en proposición de regiones.
En lugar de recortar las características desde la misma capa donde se predicen las regiones, hacerlo desde
la última capa de características anterior a la predicción. De esta manera se minimiza la cantidad de
computación necesaria por región.
● Conclusiones
○ Se ha probado que este modelo puede alcanzar una precisión comparable a la de Faster
R-CNN con tiempos de ejecución más rápidos.
18
Mask R-CNN -- 2017 [39]
● Problema concreto abordado por la solución
Tratar de extender la segmentación a nivel de píxel y localizar píxeles exactos de cada objeto en lugar de
establecer cajas delimitadoras.
● Marco metodológico y conceptual de la solución, ¿qué enfoque se ha tomado?
Teniendo como punto de partida el sistema Faster R-CNN, se implementa una FCN por encima del mapa de
características que devuelve una máscara binaria: retorna una matriz con 1s en las posiciones donde el píxel
pertenece al objeto y 0s cuando no es así.
Es necesario desarrollar el método RoIAlign para ajustar desalineados producidos con RoIPool.
● Conclusiones
○ El resultado proporcionado por la máscara es muy preciso y se obtienen resultados
espectaculares proporcionando, junto a esta segmentación a nivel de píxel, las tradicionales
cajas delimitadoras y la clasificación del objeto.
19
3. Soluciones en seguimiento de dietas con identificación del alimento
En este apartado se analizan los productos, tecnologías y sistemas que afrontan el problema de la
identificación automática de comida y/o de sus nutrientes y calorías.
Im2Calories (Google) [40]
● Problema concreto abordado por la solución
Los preocupantes niveles de obesidad crecientes en la población, derivados sobre todo del consumo de
comida basura y de no seguir una dieta saludable. Existe una necesidad de gran parte de la población de
realizar un seguimiento de su alimentación de forma precisa y rápida.
● Marco metodológico y conceptual de la solución, ¿qué enfoque se ha tomado?
El objetivo es ofrecer un sistema que sólo con una foto sea capaz de reconocer platos de comida que
pueden estar elaborados por varios tipos de alimentos diferentes, prediciendo, además, el contenido
nutricional y el valor energético.
En el enfoque sencillo, trabajan en un contexto donde se conoce el menú, como por ejemplo un
restaurante. En ese caso, recopilan imágenes sin conexión para entrenar una CNN que clasifica entre las
diferentes posibilidades. Junto a la clasificación de la comida, ofrecen el contenido nutricional de la misma
ya que es un dato que conocen.
En el enfoque complicado, desconocen de antemano los alimentos que deberán clasificar y cuyos
nutrientes tendrán que estimar. En este otro caso, no sólo deben clasificar la comida, sino que tienen que
resolver el problema de segmentación para identificar diferentes alimentos en una misma comida; al igual
que el problema de la estimación de la profundidad/volumen a partir de una sola imagen. Afrontan esto
con un planteamiento basado en CNN que presenta, según ellos, resultados preliminares prometedores.
● Conclusiones
○ No ha sido lanzada todavía al mercado, a pesar de que ya fue anunciada en 2015. Incluso
Google dice que la App será lanzada al mercado con una precisión limitada, la justa para
funcionar. Con el tiempo, al ir recopilando muchas más imágenes derivadas del uso de la
App por parte de los usuarios, pretenden ofrecer resultados cada vez más precisos.
○ Es interesante apreciar la enorme dificultad que representa el problema de estimar el
volumen del alimento. Un proyecto desarrollado por Google no ha resuelto todavía
satisfactoriamente el problema en estos dos últimos años.
20
LoseIt [41]
● Problema concreto abordado por la solución
Solucionar la necesidad de mucha gente de llevar un registro de su dieta y de su ejercicio. Están
especialmente focalizados en ayudar a la gente que quiere adelgazar.
● Marco metodológico y conceptual de la solución, ¿qué enfoque se ha tomado?
Desarrollo de una aplicación móvil que ofrece la posibilidad de un seguimiento exhaustivo de dieta y
ejercicio y que pone a disposición de los usuarios una vasta base de datos de comidas. Ofrecen
identificación rápida del alimento usando la cámara del móvil, ya sea para escanear el código de barras o
para sacar una foto directa al plato. Con el código de barras consiguen ofrecer de manera rápida el
contenido calórico con absoluta precisión. Con la foto a la comida, son capaces de detectar múltiples
alimentos en ella y ofrecen una estimación de calorías. Trabajan con muchos restaurantes y ofrecen
recomendaciones de comida, bebida y ejercicio además de otras muchas funcionalidades.
Para la detección de alimentos usaron Deep Learning. Entrenaron la red con NVIDIA DIGITS deep learning
training system, que usa la librería de Deep Learning cuDNN 5.1. Usaron 4 GPUs NVIDIA TITAN.
No han desarrollado ninguna técnica para calcular las calorías. Se trata de una estimación. Aunque los
científicos de datos de Lose It defienden que sus estimaciones son precisas.
● Conclusiones
○ Es una aplicación de éxito con millones de descargas.
○ Disponen de una base de datos colosal. Poseen más de cuatro mil millones de fotos de
alimentos provenientes de sus usuarios.
○ La segmentación e identificación de los alimentos es correcta pero en platos muy sencillos y
entornos controlados.
○ En conjunto, resulta una aplicación muy completa.
21
FatSecret
● Problema concreto abordado por la solución
Al igual que LoseIt, están centrados en ayudar a que la gente pierda peso y proporcionar una forma de
seguimiento de su dieta y de su ejercicio.
● Marco metodológico y conceptual de la solución, ¿qué enfoque se ha tomado?
Desarrollo de una aplicación que posee un diario de dieta y de ejercicio, para llevar un seguimiento de las
calorías ingeridas y quemadas. Atesora una gran base de datos de alimentos, pudiendo proporcionar
información nutricional de cada uno de ellos y detectando marcas. Incluso trabaja con algunos
restaurantes. Tiene muchas dietas que recomienda a sus usuarios. Posee una aplicación móvil y posee
integración con monitorización de ejercicios Fitbit.
Por otro lado, ofrece una versión profesional para su uso por parte de profesionales de la nutrición y la
salud. Con ella pueden monitorizar las dietas de sus usuarios.
Para el rápido registro de alimentos permite el uso de la cámara para escanear el código de barras o para
sacar una fotografía directamente a la comida. Las calorías indicadas en reconocimiento por foto no es más
que una estimación que el usuario puede precisar.
● Conclusiones
○ Muy similar a LoseIt.
○ Es una aplicación de éxito: más de 35 millones de descargas.
○ Muy completa.
○ La identificación por fotografía parece extremadamente limitada, da la sensación de ser
una parte olvidada de la aplicación y poco usada por los usuarios.
22
Calorie Counter - MyNetDiary
● Problema concreto abordado por la solución
Centrada en que los personas alcancen su peso objetivo.
● Marco metodológico y conceptual de la solución, ¿qué enfoque se ha tomado?
Aplicación móvil que actúa como si fuese un entrenador. El usuario introduce sus objetivos y la aplicación
analiza tu diario de comida y te guía con consejos personalizados. El usuario debe realizar un registro
constante de su alimentación y de su ejercicio. Se sincroniza con dispositivos Fitbit, Withings, Jawbone y
Garmin.
Posee una vasta base de datos de alimentos y ofrece la posibilidad de escanear el código de barras de los
alimentos.
Por otro lado, resulta interesante que ofrecen la posibilidad de que los usuarios saquen una foto al
alimento y dicen que “nuestro equipo de FoodTeam introducirá los nutrientes por ti. Nos esforzamos por
hacerlo en 24 horas o más rápido”
● Conclusiones
○ Fue galardonada por la “American Journal of Preventive Medicine” como la mejor app de
dietas. Se destacó lo “rápida, simple y bonita” que es en comparación con las demás.
○ Cuenta con más de 1 millón de descargas.
○ Aunque permite sacar fotos a los alimentos, la identificación que proporcionan sin
inteligencia artificial es muy lenta.
○ Es muy cara.
23
FOODSCAN (Spectral Engines) [42]
● Problema concreto abordado por la solución
Quieren ofrecer un apoyo a todo tipo de problemas relacionados con la alimentación como obesidad,
diabetes, enfermedades cardiovasculares, alergias alimenticias,etc También se enfocan en probar la
autenticidad de la comida en muchos países en vías de desarrollo y en el mantenimiento de los productos
frescos en las cadenas de suministro.
Con NIRONE, su plataforma de escáner espectral, están focalizados además en muchas otras ramas del
bienestar y de la industria además de la alimentación.
● Marco metodológico y conceptual de la solución, ¿qué enfoque se ha tomado?
Desarrollo de una plataforma de detección espectral basada en la espectroscopia del infrarrojo cercano
(NIR) [43] que utiliza el módulo de detección espectral NIR más pequeño del mundo. Tiene conexión
BlueTooht con dispositivos móviles y conexión de datos con un servidor en la nube.
Son capaces de revelar la grasa, proteína, azúcar y el contenido energético total de los alimentos con una
buena precisión
La solución es portátil y fácil de acomodar a otras aplicaciones, tanto industriales como de consumo.
● Conclusiones
○ Fue galardonado con el primer premio de 800.000 euros en el “Food Scanner Horizon
Prize”. Según el jurado, proporciona un importante paso adelante y puede jugar un papel
significativo en el campo emergente del "Internet de la Alimentación" y la nutrición
personal inteligente. Dicen que ofrecen un precio comparativamente bajo.
○ El escáner ofrece resultados con precisión en tiempo real.
○ Conectado con dispositivos móviles.
24
SCIO
● Problema concreto abordado por la solución
Apoyo total a la alimentación diaria de las personas y al seguimiento de su estado físico.
Además más aplicaciones en otros ámbitos aprovechando su tecnología de escáner de objetos y materiales.
● Marco metodológico y conceptual de la solución, ¿qué enfoque se ha tomado?
Es una solución muy similar a la presentada por Spectral Engines. Han desarrollado un micro-espectrómetro
que absorbe la luz reflejada de un objeto, lo divide en un espectro y lo analiza para determinar la
composición química del objeto.
Se proporcionan valores nutricionales de todo tipo de alimentos, tanto sólidos como líquidos. Además,
permite realizar una análisis sobre los analgésicos de venta libre. Por otro lado, ofrece también la
posibilidad de rastrear tu porcentaje de grasa corporal.
● Conclusiones
○ Fue galardonado con el primer premio de 100.000 euros en el “Food Scanner Horizon Prize”
○ Ha sido utilizado durante años en laboratorios científicos.
○ La versión para el consumidor cuesta 299$.
TellSpec
● Problema concreto abordado por la solución
Construir confianza en la alimentación ofreciendo un análisis no destructivo y preciso de alimentos en
tiempo real.
Realización de pruebas de calidad de los alimentos durante toda la cadena de suministro.
● Marco metodológico y conceptual de la solución, ¿qué enfoque se ha tomado?
Han desarrollado un sensor espectroscópico portátil que proporciona análisis de alimentos en tiempo real.
Su solución combina sensore espectrales, técnicas de bio-informática y machine learning.
Además, han elaborado una extensa base de datos de alimentos.
● Conclusiones
○ Similar a FOODSCAN y SCIO.
○ Fue galardonado con el primer premio de 100.000 euros en el “Food Scanner Horizon
Prize”.
25
4. Soluciones en condiciones de salud concretas
Diabetes mellitus (DM)
Según la definición extraída directamente de la OMS, “la diabetes es una enfermedad crónica que aparece
cuando el páncreas no produce insulina suficiente o cuando el organismo no es capaz de utilizar
eficazmente la que produce. La insulina es una hormona que regula el azúcar en la sangre. El efecto de la
diabetes no controlada es la hiperglucemia (aumento del azúcar en la sangre), que con el tiempo daña
gravemente muchos órganos y sistemas, especialmente los nervios y los vasos sanguíneos” [44].
Hay 2 tipos de diabetes [45]. En la diabetes tipo 1 el páncreas no puede producir insulina o lo hace en muy
poca cantidad. Ésta generalmente se desarrolla en la infancia o en una edad temprana. Por el contrario, en
la diabetes tipo 2 el problema subyace en que se hace cada vez más difícil para las células del cuerpo
absorber y utilizar la insulina. Es mucho más común y suele aparecer en edades más avanzadas que la de
tipo 1, aunque por desgracia cada vez se está observando más en niños y adolescentes.
Además, también existe la diabetes gestacional [46], que consiste en la aparición de hiperglucemia durante
el embarazo. Los valores de azúcar son más elevados de lo normal aunque inferiores a los establecidos para
diagnosticar una diabetes. De todos modos, es una condición a tener en cuenta, ya que las mujeres en esta
situación presentan un mayor riesgo de sufrir complicaciones durante el embarazo y el parto, así como de
padecer (tanto ellas como sus hijos) diabetes de tipo 2 en el futuro. La diabetes gestacional constituye la
complicación más común durante el embarazo. En el Informe Mundial sobre la Diabetes de la OMS [47], se
dice que es probable que entre el 10% y el 25% de los embarazos se vean afectados por diabetes
gestacional o diabetes en el embarazo.
Algunos datos destacables y a la vez alarmantes proporcionados por la OMS acerca de la diabetes son:
● El número de personas con diabetes ha aumentado de 108 millones en 1980 a 422 millones en
2014.
● Se estima que en 2015 la diabetes fue la causa directa de 1,6 millones de muertes. Otros 2,2
millones de muertes fueron atribuibles a la hiperglucemia en 2012.
Centrándonos en la alimentación durante la diabetes, que al final es el tema que suscita interés para el
estudio, se ha investigado que ésta resulta ser un factor clave para prevenir o retrasar la aparición de la
diabetes de tipo 2. Simplemente con una dieta adecuada y ejercicio físico y consiguiendo alcanzar y
mantener un peso corporal saludable se puede evitar sufrir esta enfermedad. También es especialmente
importante suprimir el consumo de tabaco.
Es ineludible que hay factores de riesgo de este tipo de diabetes que no se pueden sortear, como la
genética, el origen étnico o la edad. Sin embargo, está demostrado que, sea cual sea el riesgo de una
persona de sufrir diabetes, una alimentación y una actividad física adecuadas son más eficaces que el uso
de fármacos. La propia ADA (American Diabetes Asociation) centra gran parte de su web en proporcionar
muchos planes alimenticios.
En contraste, todavía no se ha conseguido probar que regímenes alimenticios específicos en bebés ayuden
a prevenir la diabetes de tipo 1.
26
Por otro lado, en el tratamiento de la diabetes la dieta y la actividad física siguen siendo claves, junto con el
control y reducción de la glucemia y el control de la presión arterial. Los pacientes con diabetes de tipo 1
requieren de insulina y los pacientes que padecen de tipo 2 pueden tratarse con medicamentos orales,
aunque a veces pueden necesitar también insulina. Otras intervenciones son las pruebas de detección de
retinopatía y el control de los lípidos en sangre.
En el Informe Mundial sobre la Diabetes, la OMS establece una serie de recomendaciones sobre la buena
alimentación que pueden reducir las probabilidades de que una persona llegue a sufrir diabetes de tipo 2 u
otras ENT (enfermedades no transmisibles). Se resume a continuación:
● Consumo de suficiente fibra alimenticia vegetal (20 gramos al día como mínimo) mediante la
ingesta habitual de cereales integrales, legumbres, frutas y verduras.
● Sustitución de los ácidos grasos saturados por ácidos grasos poliinsaturados. Restringir el consumo
de los saturados a menos del 10% de la ingesta calórica total (7% para las personas en riesgo).
● Reducir el consumo de azúcares libres a ,como máximo, el 10% de la ingesta calórica total (un 5%
sería incluso más beneficioso para la salud).
Asimismo, resulta de interés para la investigación que en los últimos tiempos se han volcado muchos
esfuerzos en intervenciones destinadas a mejorar la nutrición en la primera parte de la infancia, con el
objetivo de reducir el riesgo de diabetes de tipo 2. El objetivo es mejorar la salud y el estado nutricional de
la madre y las prácticas de alimentación de los niños pequeños. Se focaliza la atención a los primeros 1000
días tras el comienzo del embarazo.
De igual manera, también es resaltable que últimamente se han llevado a cabo estudios clínicos [48] [49]
[50] que indican que el apoyo a pacientes diabéticos a partir de telefonía móvil provoca una mejora
significativa en el control de la enfermedad y al cumplimiento terapéutico a corto y largo plazo.
En conclusión, la dieta no sólo resulta crucial en el tratamiento de cualquier tipo de diabetes, sino que es
especialmente importante también para la prevención de la diabetes de tipo 2 y gestacional.
Son muchos los esfuerzos que se están poniendo para combatir la diabetes. De hecho, en el informe
“Technologies for Diabetes Management 2017-2027: Forecasts, Players, Opportunities” [51] del doctor
David Pugh, se cubren todos los campos tecnológicos emergentes que aportan soluciones a la diabetes y se
habla de las muchas nuevas oportunidades de financiación. A continuación nos vamos a centrar
especialmente en analizar aquellas aplicaciones y desarrollos tecnológicos que realizan seguimiento y
apoyo de la dieta.
27
DialBetics [52]
● Problema concreto abordado por la solución
Escasa educación en la autogestión de la diabetes y pocas herramientas existentes que ayuden a los
pacientes a hacer frente a la enfermedad.
● Marco metodológico y conceptual de la solución, ¿qué enfoque se ha tomado?
DialBetics es un sistema de autogestión de la diabetes basado en smartphone. Se compone de 4 módulos:
1. Transmisión de datos: dos veces al día son transmitidos al servidor la glucosa en sangre del
paciente, su presión arterial, su peso corporal, etc.
2. Evaluación: siguiendo la JDS (Japan Diabete Society) Se mandan los resultados al teléfono móvil.
3. Ejercicio: el paciente puede enviar al servidor por mensajes de texto o de voz el ejercicio que ha
realizado.
4. Registro de alimentos y evaluación de dieta: los pacientes pueden introducir los alimentos que
comen o usar el sistema FoodLog, disponible en Japón, con el que el usuario puede describir la
comida con texto o incluso simplemente registrarla tomando una fotografía. El usuario toma una
foto de la comida, luego extrae cada alimento presionando en la pantalla del teléfono móvile indica
manualmente el tamaño de cada porción. El sistema busca dentro de la base de datos del usuario
para proporcionar un conjunto de 20 resultados que se presentan ordenados por probabilidad. El
usuario elige el mejor resultado y se le proporciona el valor nutricional.
● Conclusiones
○ Es un sistema muy completo de apoyo a la enfermedad en tiempo real.
○ Ciertas funcionalidad sólo están disponibles en Japón.
○ En Europa y EEUU parece no gozar de mucho reconocimiento.
○ Las funciones del reconocimiento por fotografía no son, en principio, muy
○ precisas.
28
Diabetes:M
● Problema concreto abordado por la solución
Seguimiento y control de la diabetes, ya sea de tipo 1, de tipo 2 o gestacional.
Incorporar a profesionales médicos.
Ofrecer la posibilidad a familiares a ayudar y monitorizar la enfermedad.
● Marco metodológico y conceptual de la solución, ¿qué enfoque se ha tomado?
Aplicación que da la posibilidad de realizar un seguimiento completo de la enfermedad con múltiples
herramientas de control de los niveles de glucosa y con informes y estadísticas que pueden ser compartidos
con el doctor.
Dispone de una enorme base de datos de comidas para poder registrar tu alimentación y además para
ofrecer información nutricional. Es posible también el registro de ejercicio.
Ofrece la posibilidad de analizar los datos reportados desde varios glucómetros y bombas de insulina del
sistema software de manejo de la diabetes del paciente.
● Conclusiones
○ No dispone de reconocimiento de imagen.
○ Es una aplicación de considerable éxito con más de 100.000 descargas.
○ Hay muchas otras Apps que ofrecen funcionalidades similares de seguimiento de la
diabetes. Por ejemplo: “MySugr Diabetes Logbook”, “Glooko”, “Health2Sync” y “Glucose
Buddy : Diabetes Log”.
29
GlucOracle
● Problema concreto abordado por la solución
Proporcionar una herramienta para la autogestión en el tratamiento de la diabetes.
● Marco metodológico y conceptual de la solución, ¿qué enfoque se ha tomado?
Aplicación que permite sacar fotografías de la comida y enviarlas a Amazon Mechanical Turkers (AMT) para
obtener la estimación nutricional. Esto funciona usando inteligencia humana colectiva. Consideran que en
la actualidad en muchos ámbitos de la identificación de imagen nada puede competir con la inteligencia
humana.
A esta aplicación se le ha integrado un algoritmo que predice el impacto de algunos alimentos en los niveles
de azúcar en sangre.
● Conclusiones
○ Poco éxito de momento.
○ Parece poco preciso y con poco futuro al no usar inteligencia artificial.
Dexcom G5 Mobile System [53]
● Problema concreto abordado por la solución
Monitorización continua de los niveles de glucosa.
Ofrecer la posibilidad a familiares de controlar también la situación.
● Marco metodológico y conceptual de la solución, ¿qué enfoque se ha tomado?
Se ofrece un seguimiento continuo de los niveles de glucosa y se envían alertas automáticamente cuando
estos están muy altos o muy bajos. Se ofrece un rastreo exhaustivo del historial y tendencia del nivel de
glucosa en sangre.
La solución está constituida por un sensor pequeño situado debajo de la piel y un transmisor que envía los
datos de forma inalámbrica a un smartphone, en el que se pueden consultar todos los datos
● Conclusiones
○ Parece un sistema que podría complementarse perfectamente con una solución de
reconocimiento de imagen.
30
Pregnant with diabetes
● Problema concreto abordado por la solución
Ofrecer una herramienta de apoyo a la diabetes, especialmente a aquella ocasionada durante el embarazo.
● Marco metodológico y conceptual de la solución, ¿qué enfoque se ha tomado?
Una aplicación móvil que ofrece información y recomendaciones sobre la enfermedad, realizadas por
doctores especializados en el tema del Centro de Mujeres Embarazadas de Copenhague.
● Conclusiones
○ Se limita únicamente a ofrecer información y no ofrece seguimiento de la enfermedad o de
dietas de ningún tipo.
31
Embarazo
Durante el embarazo la dieta adquiere incluso una mayor trascendencia y es importante ajustar los hábitos
alimenticios para asegurarse de que tanto la madre como el feto están recibiendo la nutrición adecuada. Es
preocupante saber que estudios recientes [54] indican que la mayoría de mujeres embarazadas tienen un
conocimiento muy pobre acerca de los alimentos que deben evitar.
La “American Pregnancy Asociation” [55] ha realizado un análisis muy exhaustivo acerca de la alimentación
en el embarazo en el que insiste constantemente en la idea de que el objetivo en el embarazo nunca debe
ser restringir calorías o bajar peso. Además, recomiendan evitar dietas populares como “Atkins”, “South
Beach”, “The Zone”, “Raw Food Diet”, etc. Sus pautas en la nutrición, a modo de resumen, son:
1. Seguir un plan de alimentación que se base en una amplia variedad de grupos de alimentos,
incluyendo frutas y verduras, panes y cereales, fuentes de proteínas y productos lácteos.
2. Es necesario consumir, aproximadamente un extra de 300 calorías por día.
3. Se necesitan diariamente por lo menos 70 mg de vitamina C, que está contenido en frutas como
naranjas, pomelos y melón; y verduras como brócoli, tomates y coles de Bruselas.
4. De 2 a 4 porciones de fruta al día y 4 o más porciones de vegetales, con el objetivo principal de
prevenir los defectos del tubo neural.
5. Consumir suficientes carbohidratos de panes y cereales, que son las fuente principal de energía del
cuerpo durante el embarazo. Estos proporcionan importantes nutrientes como hierro, vitamina B,
fibra e incluso algunas proteínas.
6. El feto en desarrollo necesita muchas proteínas, especialmente en el segundo y en el tercer
trimestre. Además también se necesita hierro, para transportar oxígeno al feto, y vitamina B.
Ambos se consiguen comiendo carne, aves de corral, pescado, huevos y legumbres. Se recomienda
más o menos 27 mg por día.
7. Es necesario al menos 1000 mg de calcio al día. Este se puede encontrar en leche, queso, yogur...
8. Existe la posibilidad de complementar la nutrición con vitaminas prenatales.
La mayoría de las soluciones en el mercado son educativas o centradas fuertemente en el componente
social. En este estudio nos interesan aquellas que de una forma u otra incluyen seguimiento de dieta o
análisis de imagen durante el embarazo.
32
Pregnancy Food Scanner
● Problema concreto abordado por la solución
Control de las elecciones alimenticias durante el embarazo.
● Marco metodológico y conceptual de la solución, ¿qué enfoque se ha tomado?
Ofrece la capacidad de escanear el código de barras de los productos e inmediatamente después indica si
contiene ingredientes que no es recomendable ingerir durante el embarazo.
● Conclusiones
○ Tiene la capacidad de escanear códigos de barras pero carece de la identificación por
imagen directa al alimento.
○ No ha conseguido alcanzar notoriedad en el mercado.
Mi embarazo al día: Seguimiento y control
● Problema concreto abordado por la solución
Ofrecer información a las muchas madres que se sienten abrumadas al quedar embarazadas y
proporcionarles las herramientas que necesitan.
● Marco metodológico y conceptual de la solución, ¿qué enfoque se ha tomado?
Aplicación móvil que permite realizar un seguimiento exhaustivo del embarazo (diario personal, peso,
control de hospitales cercanos...) teniendo un control incluso de las citas médicas.
Además, proporciona consejos sobre alimentación y ejercicio.
● Conclusiones
○ Más de 1 millón de descargas.
○ Es quizás la aplicación más exitosa centrada específicamente en el embarazo pero su fuerza
está centrada en la información y seguimiento del embarazo y no en ofrecer herramientas
en la vanguardia tecnológica.
33
ERGE (enfermedad del reflujo gastroesofágico)
El NCBI (National Center for Biotechnology Information) [56] proporciona la siguiente definición para la
ERGE (o GERD en inglés): “es una condición persistente en la cual el contenido del estómago regresa al
esófago”. Esto es conocido como “reflujo ácido” o “reflujo gastroesofágico”. Se trata de uno de los
problemas de salud más comunes en los adultos. Una probable razón de padecer ERGE se debe a un mal
funcionamiento del esfínter esofágico interior (EEI). Se trata de un anillo de fibras musculares situado en la
parte inferior del esófago que impide que el alimento deglutido retorne al esófago. De regresar, el reflujo
puede dañar el revestimiento del esófago.
El tratamiento del ERGE consiste principalmente en cambiar el estilo de vida y evitar los alimentos que
favorecen a la enfermedad. Así, el Instituto de Salud Digestiva y Hepática de Guadalajara [57] ha fijado los
siguientes alimentos a evitar: patatas fritas, pimienta, leche entera, aceites, chocolate, alimentos con nata,
comida rápida. De este modo, ha establecido las siguientes pautas por grupos alimenticios:
● Lácteos y derivados:
○ Recomendados: leche deslactosada, leche light, yogurt light.
○ Evitar: leche entera, leche de chocolate.
● Vegetales:
○ Recomendados: todos excepto el tomate. No freírlos.
○ Evitar: tomate.
● Frutas:
○ Recomendadas: manzanas, melones, fresas, plátanos, duraznos y peras.
○ Evitar: cítricos (naranjas, uvas y piña).
● Panes y cereales:
○ Recomendados: todos hechos con leche baja en grasas.
○ Evitar: todos hechos con leche entera.
● Carnes:
○ Recomendados: carne baja en grasas, pollo, pescado, pavo.
○ Evitar: carnes frías, tocino, carne grasosa, piel del pollo.
● Grasas y Aceites:
○ Recomendados: ninguno y si se ingieren en poca cantidad.
○ Evitar: aceites animales y vegetales.
● Postres y Dulces:
○ Recomendados: todos hechos con menos de 3 g de grasa.
○ Evitar: chocolate, postres hechos con aceites y grasas.
● Bebidas:
○ Recomendadas: descafeinadas, te (no de menta), jugos (excepto cítricos), agua.
○ Evitar: acohol, café, bebidas minerales, té de menta.
● Sopas:
○ Recomendadas: sopa baja en grasa.
○ Evitar: sopa de pollo o res, leche o con crema.
34
Existen, también, multitud de medicamentos para aliviar los síntomas del ERGE e incluso reparar el daño
del recubrimiento del esófago. Las 2 principales opciones médicas de tratamiento para pacientes crónicos
son la terapia de supresión de ácido o un procedimiento quirúrgico antirreflujo conocido como
funduplicatura.
Por otro lado, resulta muy interesante para nuestro estudio [58] que la acidez gástrica y el reflujo
gastroesofágico pueden aparecer o empeorar durante el embarazo. Además, estos síntomas también
pueden estar causados por ciertos medicamentos.
No hay muchas soluciones tecnológicas para esta enfermedad y la mayoría de ellas se limita a ser apps de
poco éxito como “GERD Tools” [59] y “Acid Reflux Diet Helper” que simplemente informan sobre síntomas
de la enfermedad y alimentos prohibidos.
35
Conclusiones
El estudio realizado revela muchas claves acerca del potencial de un sistema basado en CNN y de los
ámbitos de salud en los cuáles tiene mayor interés.
En primer lugar, el repaso de las principales soluciones en seguimiento de dietas demuestra que es un
campo de muchísimo interés en el que ha habido muchos desarrollos y en el que por lo tanto la
competencia es máxima. Ya existen soluciones de éxito que integran reconocimiento de imagen por
fotografía. A la vez, los avances en espectrografía demuestran un potencial mayor en la identificación
nutricional de la comida. De todos modos, es también claro que todavía hay mucho que mejorar en visión
artificial porque en muchos casos la solución aportada no está al nivel de los últimos avances en CNN.
Asimismo, los espectrómetros son todavía caros para el usuario medio e implican un dispositivo adicional al
teléfono móvil.
Por otro lado, he observado que también hay muchos esfuerzos volcados en la diabetes y en el seguimiento
de una dieta durante la enfermedad, aunque ya sólo unos pocos buscan ofrecer reconocimiento de imagen.
Además, algunos productos se concentran en monitorizar los niveles de glucosa en tiempo real y mandar
datos y estadísticas al móvil, lo que es fácilmente integrable con mi idea.
Por el contrario, en el embarazo y en la ERGE no existen muchas soluciones y las que hay se limitan
mayormente a proporcionar información sobre la condición.
Finalmente, observo como un dato clave el hecho de que tanto la diabetes como la ERGE son
enfermedades que se producen con mucha frecuencia en el embarazo. Además, en la actualidad ya no solo
se concede importancia a la dieta durante la gestación, sino también a los dos años posteriores, puesto que
estos también repercuten enormemente en el estado de salud de la madre y del niño pequeño.
Por todo esto, se constituye que la tecnología que pretendo desarrollar de segmentación de imagen en
fotografías de alimentos puede ser una pieza clave en muchos productos de seguimiento de dietas.
Especialmente en aquellos que se centren en condiciones más específicas, como puede ser el embarazo, el
posparto, la diabetes gestacional o la ERGE durante el embarazo. Esta última es especialmente interesante
ya que el objetivo principal es diferenciar entre alimentos permitidos y alimentos prohibidos, lo que evita
tener que asumir el problema de estimar el tamaño de la comida sólo con una foto, que no se ha resuelto
satisfactoriamente hasta el momento.
La solución como finalmente se ha concebido parece factible ya que se va a utilizar la última tecnología
disponible en clasificación de imagen, con la posibilidad además de emplear novedosas herramientas como
son Tensorflow, TransferLearning y la Tensorflow Object Detection API, que han salido recientemente. Con
esto es posible, como mínimo, competir con las soluciones implementadas específicamente para alimentos.
Además, en el caso de condiciones de salud específicas, en las que no existen muchos desarrollos, el
sistema creado puede realmente aportar una diferencia.
36
Anexo2: Diseño de una base de datos para Deep Learning
Con el objeto de comprender la necesidad de cumplir la regla número 6 “tener fondos variados”, se escribió
una historia titulada “Detecting Tanks” [60] , con la que se pretende ilustrar el motivo de tal necesidad.
En versión resumida, la historia narra lo siguiente:
El ejército estadounidense quería utilizar redes neuronales para detectar automáticamente a los tanques
enemigos camuflados. Los investigadores entrenaron una red neuronal con 50 fotografías de tanques
camuflados en árboles y 50 fotografías de árboles sin tanques. Además, sabiamente, los investigadores
habían tomado otras 100 fotografías que constituían el set de test. De este modo, ejecutaron la red
entrenada en estas 100 nuevas fotografías y… ¡éxito absoluto! La red clasificó correctamente todas las
fotos. Inmediatamente, los investigadores enviaron el trabajo al Pentágono, el cual lo devolvió de
inmediato, quejándose de que la red fallaba muchísimo. Resultó que en el conjunto de datos tomados por
los investigadores, las fotos de tanques camuflados habían sido tomadas en días nublados, mientras que las
fotos del bosque sin tanques habían sido tomadas en días soleados. ¡La red habría aprendido a distinguir
entre día nublado y día soleado, en lugar de discernir entre si la foto tenía un tanque camuflado o no!
37
Anexo3: Resultados
En este anexo se exponen los principales resultados obtenidos. En el primer apartado, se pueden consultar
los resultados del reentrenamiento de la última capa de Inception para las categorías de la base de datos de
clasificación (la diseñada en LPRO y Gradiant). En la segunda sección se muestran los resultados más
importantes, obtenidos tras la implementación de los modelo de segmentación haciendo uso de la
“Tensorflow Object Detection API”.
1.Reentrenamiento de la última capa de Inception para nuevas categorías
Tabla 1: Entrenamientos para la clasificación
Base de datos BDN
(N-categorías)
Precisión Training_steps (default: 4000)
Learning_rate ( default: 0.01)
Batch_size default (100)
Distorsión Tiempo (sin bottleneck)
BD5 100% default default default No Despreciable
BD9 96.4% default default default No Despreciable
BD25 87.8% default default default No Despreciable
BD26. Limpieza exhaustiva
91.7% default default default No Despreciable
BD26 92.0% default default default No Despreciable
BD26 91.7% default default default No Despreciable
BD26 82.3% 100 default default No Despreciable
BD26 89.2% 500 default default No Despreciable
BD26 90.0% 1000 default default No Despreciable
BD26 91.3% 2000 default default No Despreciable
BD26 93.1% 8000 default default No Despreciable
BD26 94.0% 20000 default default No Despreciable
BD26 93.8% 40000 default default No Despreciable
BD26 93.5% 12000 default default No Despreciable
BD26 93.9% 16000 default default No Despreciable
BD26 93.0% default 0.02 20 No Despreciable
BD26 91.9% default default 10 No Despreciable
BD26 92.6% default default default No Despreciable
BD26 92.5% default default default No Despreciable
BD26 92.3% default default default No Despreciable
38
BD26 92.6% default default 50 No Despreciable
BD26 92.3% default default 20 No Despreciable
BD26 91.4% default 0.005 200 No Despreciable
BD26 92.8% default 0.02 50 No Despreciable
BD26 No realizado default default default 5 Interminable
BD26 85.4% 100 default default 5 27 min
BD26 83.4% 100 default default 5 27 min
BD26 88.9% 500 default default 5 2 h 14 min
BD25 (eliminando pistachos)
93.7% default default default No Despreciable
BD24(sin uva) 93.8% default default default No Despreciable
BD23 (sin croissant)
94.9% default default default No Despreciable
BD25 (Gradiant) Limpieza
97.3% default default default No Despreciable
BD25 (TFG) Limpieza
98.2% 15000 default default No Despreciable
● Training steps: número de iteraciones de entrenamiento.
● Batch size: regula el número de imágenes utilizadas en cada iteración de entrenamiento.
● Learning rate: velocidad a la que se minimiza la función de coste. Desde un punto de vista más
intuitivo, cuanto más pequeño sea este valor, más lento será el aprendizaje pero mayor puede ser
la precisión final obtenida (no siempre es el caso).
● Distorsión: consiste en aplicar tres tipos de distorsiones aleatorias a las imágenes de entrada:
deformación, recorte e iluminación. De esta forma se aumenta el tamaño efectivo de la base de
datos añadiendo variaciones de las imágenes de entrada que pueden ser posibles en la realidad. El
valor numérico aplicado indica la magnitud del efecto de la distorsión.
● Tiempo: duración del entrenamiento. Solo se ha indicado en los entrenamientos en los que se
aplicó la distorsión, ya que en el resto de casos el proceso fue muy rápido (sólo se ha reentrenado
la última capa del modelo).
39
2.Tensorflow Object Detection API
SSD_mobilenet_v1_coco
Figura 5: plátanos, manzana y vaso
Figura 6: manzana y plátano
40
Figura 7: zanahoria y manzana
Figura 8: manzanas
41
Faster_rcnn_inception_v2_coco
Figura 9: detección de manzanas, plátanos y naranjas
42
Figura 10: manzana, naranja y plátano
Figura 11: manzana y plátano
43
Faster_rcnn_nas
Figura 12: zanahorias
Figura 13: pizza
44
Faster_rcnn_inception_resnet_v2_atrous_oid
Figura 14: tazá de café
Figura 15: sushi
45
Etiquetado con labelImg
Figura 16: etiquetado de pimientos de padrón
46
Entrenamiento con SSD
Figura 17: detección de pimiento
Figura 18: detección de pimientos
47