El objetivo del trabajo presentado en este artículo es desarrollar tecnología para el reconocimiento automatizado de alimentos y bebidas a partir de imágenes tomadas por dispositivos móviles. La tecnología consta de dos enfoques diferentes: el primero realiza el reconocimiento de imágenes de alimentos, mientras que el segundo realiza la segmentación de imágenes alimentarias.
Debido a los problemas y costos asociados con los enfoques manuales de evaluación dietética, se requieren soluciones automatizadas para facilitar y acelerar el trabajo y aumentar su calidad. Hoy en día, las soluciones automatizadas son capaces de registrar la ingesta dietética de una persona de una manera mucho más simple, por ejemplo, tomando una imagen con una cámara de teléfono inteligente. En este artículo, nos centraremos en estos enfoques basados en imágenes para la evaluación dietética. Para el problema del reconocimiento de imágenes alimentarias, las redes neuronales profundas han alcanzado el estado de la técnica en los últimos años, y presentamos nuestro trabajo en este campo. En particular, primero describimos el método para el reconocimiento de imágenes de alimentos y bebidas utilizando una arquitectura de red neuronal profunda, llamada NutriNet. Este método, como la mayoría de las investigaciones realizadas en los primeros días de reconocimiento profundo de imágenes de alimentos basados en el aprendizaje, se limita a una salida por imagen y, por lo tanto, no es adecuado para imágenes con múltiples alimentos o bebidas. Es por eso que los enfoques que realizan la segmentación de imágenes de alimentos son considerablemente más robustos, ya que son capaces de identificar cualquier número de alimentos o bebidas en la imagen. Por lo tanto, también presentamos dos métodos para la segmentación de imágenes alimentarias: uno se basa en redes totalmente convolucionales (FCN) y el otro en redes residuales profundas (ResNet).
La evaluación dietética es un paso crucial en la determinación de áreas procesables de la dieta de un individuo. Sin embargo, realizar una evaluación dietética utilizando enfoques tradicionalmente manuales se asocia con costos considerables. Estos enfoques también son propensos a errores, ya que a menudo se basan en la auto-notificación por parte del individuo. La evaluación dietética automatizada aborda estos problemas proporcionando una manera más sencilla de cuantificar y calificar la ingesta de alimentos. Este enfoque también puede aliviar algunos de los errores presentes en los enfoques manuales, como las comidas perdidas, la incapacidad de evaluar con precisión el volumen de alimentos, etc. Por lo tanto, hay claros beneficios para automatizar la evaluación dietética mediante el desarrollo de soluciones que identifiquen diferentes alimentos y bebidas y cuantifiquen la ingesta de alimentos1. Estas soluciones también se pueden utilizar para permitir una estimación de los valores nutricionales de los alimentos y bebidas (en adelante , “alimentos”). En consecuencia, la evaluación dietética automatizada es útil para múltiples aplicaciones, desde usos estrictamente médicos, como permitir a los dietistas realizar un seguimiento más fácil y preciso y analizar las dietas de sus pacientes, hasta el uso dentro de aplicaciones de bienestar dirigidas a la población general.
Reconocer automáticamente los alimentos de las imágenes es un problema de visión por computadora desafiante. Esto se debe a que los alimentos suelen ser objetos deformables, y debido al hecho de que una gran cantidad de la información visual del alimento se puede perder durante su preparación. Además, diferentes alimentos pueden parecer muy similares entre sí, y los mismos alimentos pueden parecer sustancialmente diferentes en múltiples imágenes2. Además, la precisión del reconocimiento depende de muchos más factores, como la calidad de la imagen, si el alimento está obstruido por otro artículo, la distancia a partir de la cual se tomó la imagen, etc. Reconocer los artículos de bebidas presenta su propio conjunto de desafíos, siendo el principal la cantidad limitada de información visual que está disponible en una imagen. Esta información podría ser el color de la bebida, el color y la estructura del recipiente de bebidas, y, en condiciones óptimas de imagen, la densidad de bebidas2.
Para reconocer con éxito los alimentos a partir de imágenes, es necesario aprender características de cada clase de alimentos y bebidas. Esto se hacía tradicionalmente utilizando extractores de características definidos manualmente3,4,5,6 que realizan reconocimiento basado en características específicas del artículo como color, textura, tamaño, etc., o una combinación de estas características. Algunos ejemplos de estos extractores de características son el aprendizaje de múltipleskernels 4,las características locales emparejadas5 y el modelo6de la bolsa de características. Debido a la complejidad de las imágenes de alimentos, estos enfoques lograron en su mayoría una baja precisión de clasificación – entre 10% y 40%3,4,5. La razón de esto es que el enfoque manual no es lo suficientemente robusto como para ser lo suficientemente preciso. Debido a que un alimento puede variar significativamente en apariencia, no es factible abarcar todas estas variaciones manualmente. Se puede lograr una mayor precisión de clasificación con extractores de características definidos manualmente cuando el número de clases de alimentos se reduce5,o se combinan diferentes características de imagen6,lo que indica que es necesario soluciones más complejas a este problema.
Esta es la razón por la que el aprendizaje profundo demostró ser tan eficaz para el problema del reconocimiento de la imagen alimentaria. El aprendizaje profundo, o redes neuronales profundas, se inspiró en cerebros biológicos, y permite que los modelos computacionales compuestos por múltiples capas de procesamiento aprendan automáticamente las características a través del entrenamiento en un conjunto de imágenes de entrada7,8. Debido a esto, el aprendizaje profundo ha mejorado sustancialmente el estado de la técnica en una variedad de campos de investigación7,con visión computarizada, y posteriormente reconocimiento de imágenes de alimentos, siendo uno de ellos2.
En particular, las redes neuronales convolucionales profundas (DCNN) son más populares para el reconocimiento de imágenes de alimentos – estas redes se inspiran en el sistema visual de los animales, donde las neuronas individuales tratan de obtener una comprensión de la entrada visual reaccionando a las regiones superpuestas en el campo visual9. Una red neuronal convolucional toma la imagen de entrada y realiza una serie de operaciones en cada una de las capas de red, las más comunes de las cuales son capas convolucionales, totalmente conectadas y de agrupación. Las capas convolucionales contienen filtros aprendebles que responden a ciertas entidades de los datos de entrada, mientras que las capas totalmente conectadas componen datos de salida de otras capas para obtener conocimiento de nivel superior de los demás. El objetivo de agrupar capas es muestrear hacia abajo los datos de entrada2. Hay dos enfoques para usar modelos de aprendizaje profundo que resultaron populares: tomar una definición de red neuronal profunda existente10,11, conocida como una arquitectura de aprendizaje profundo en este artículo, o definir una nueva arquitectura de aprendizaje profundo12,13,y entrenar cualquiera de estos en un conjunto de datos de imagen de alimentos. Hay fortalezas y debilidades en ambos enfoques: al utilizar una arquitectura de aprendizaje profundo existente, se puede elegir una arquitectura que tenga un buen desempeño para otros problemas y ajustarse al problema deseado, ahorrando así tiempo y asegurándose de que se ha elegido una arquitectura validada. Definir una nueva arquitectura de aprendizaje profundo, por otro lado, es más intensivo en tiempo, pero permite el desarrollo de arquitecturas que se hacen específicamente para tener en cuenta los detalles de un problema y por lo tanto teóricamente funcionan mejor para ese problema.
En este artículo, presentamos ambos enfoques. Para el problema de reconocimiento de imágenes de alimentos, desarrollamos una nueva arquitectura DCNN llamada NutriNet2, que es una modificación de la conocida arquitectura AlexNet14. Hay dos diferencias principales en comparación con AlexNet: NutriNet acepta imágenes de 512×512 píxeles como entrada (a diferencia de las imágenes de 256×256 píxeles para AlexNet), y NutriNet tiene una capa convolucional adicional al principio de la red neuronal. Estos dos cambios se introdujeron con el fin de extraer tanta información de las imágenes del conjunto de datos de reconocimiento como sea posible. Tener imágenes de mayor resolución significaba que hay más información presente en las imágenes y tener capas más convolucionales significaba que se podía extraer conocimiento adicional de las imágenes. En comparación con los alrededor de 60 millones de parámetros de AlexNet, NutriNet contiene menos parámetros: aproximadamente 33 millones. Esto se debe a la diferencia de dimensionalidad en la primera capa totalmente conectada causada por la capa convolucionaladicional 2. La Figura 1 contiene un diagrama de la arquitectura NutriNet. Las imágenes de alimentos que se utilizaron para entrenar el modelo NutriNet fueron recogidas de Internet – el procedimiento se describe en el texto del protocolo.
Para el problema de segmentación de imágenes alimentarias, utilizamos dos arquitecturas existentes diferentes: redes totalmente convolucionales (FCN)15 y redes residuales profundas (ResNet)16,las cuales representaban el estado de la técnica para la segmentación de imágenes cuando las usamos para desarrollar sus respectivas soluciones de segmentación de imágenes de alimentos. Hay múltiples variantes FCN que fueron introducidas por Long et al.: FCN-32s, FCN-16s y FCN-8s15. FCN-32s genera un mapa de píxeles basado en las predicciones de la capa final del FCN, mientras que la variante FCN-16s combina estas predicciones con las de una capa anterior. FCN-8s considera las predicciones de otra capa y por lo tanto es capaz de hacer predicciones en el grano más fino, por lo que es adecuado para el reconocimiento de imágenes de alimentos. Los FCN-8 que usamos fueron pre-entrenados en el conjunto de datos PASCAL Visual Object Classes (PASCAL VOC)17 y entrenados y probados en imágenes de réplicas de alimentos (en adelante ‘comida falsa’)18 debido a su parecido visual con los alimentos reales y debido a la falta de imágenes anotadas de alimentos reales en un nivel de píxeles. La comida falsa se utiliza en diferentes estudios conductuales y se toman imágenes para todos los platos de todos los participantes del estudio. Dado que se conoce el contenido de los alimentos de estas imágenes, hace que el dataset de imágenes sea útil para el entrenamiento de modelos de aprendizaje profundo. Los pasos de procesamiento del conjunto de datos se describen en el texto del protocolo.
La solución basada en ResNet se desarrolló en el ámbito del Desafío de Reconocimiento Alimentario (FRC)19. Utiliza el método Hybrid Task Cascade (HTC)20 con una estructura básica ResNet-10116. Este es un enfoque de vanguardia para el problema de segmentación de imágenes que puede utilizar diferentes extractores de características o columnas vertebrales. También consideramos otras redes troncales, particularmente otras variantes de ResNet como ResNet-5016,pero ResNet-101 era la más adecuada debido a su profundidad y capacidad para representar imágenes de entrada de una manera lo suficientemente compleja. El conjunto de datos utilizado para entrenar el modelo HTC ResNet-101 era el dataset FRC con imágenes aumentadas añadidas. Estos aumentos se presentan en el texto del protocolo.
Este artículo está destinado como un recurso para expertos en aprendizaje automático que buscan información sobre qué arquitecturas de aprendizaje profundo y pasos de aumento de datos funcionan bien para los problemas de reconocimiento y segmentación de imágenes de alimentos, así como para los investigadores de nutrición que buscan utilizar nuestro enfoque para automatizar el reconocimiento de imágenes de alimentos para su uso en la evaluación dietética. En los párrafos siguientes, se presentan soluciones de aprendizaje profundo y conjuntos de datos del campo de reconocimiento de imágenes de alimentos. En el texto del protocolo, detallamos cómo se utilizó cada uno de los tres enfoques para entrenar modelos de red neuronal profunda que se pueden utilizar para la evaluación dietética automatizada. Además, cada sección de protocolo contiene una descripción de cómo se adquirieron y procesaron los conjuntos de datos de imágenes de alimentos utilizados para el entrenamiento y las pruebas.
Las DCNN generalmente lograron resultados sustancialmente mejores que otros métodos para el reconocimiento y la segmentación de imágenes alimentarias, razón por la cual la gran mayoría de las investigaciones recientes sobre el terreno se basan en estas redes. Kawano et al. utilizaron DCNNs para complementar los enfoques manuales21 y lograron una precisión de clasificación del 72,26 % en el conjunto de datos UEC-FOOD10022. Christodoulidis et al. los utilizó exclusivamente para lograr una mayor precisión del 84,90% en un conjunto de datos autocomplotado23. Tanno et al. desarrollado DeepFoodCam – una aplicación para teléfonos inteligentes para el reconocimiento de imágenes de alimentos que utiliza DCNNs24. Liu et al. presentaron un sistema que realiza una evaluación dietética basada en internet de las cosas utilizando DCNNs25. Martinel et al. introdujeron un enfoque basado en DCNN que explota los detalles de las imágenes de alimentos26 e informaron de una precisión del 90,27% en el conjunto de datos Food-10127. Zhou et al. es autor de una revisión de las soluciones de aprendizaje profundo en el dominio alimentario28.
Recientemente, Zhao et al. propuso una red específicamente para el reconocimiento de imágenes de alimentos en aplicaciones móviles29. Este enfoque utiliza una red de “estudiantes” más pequeña que aprende de una red de “profesores” más grande. Con él, lograron una precisión del 84% en el UEC-FOOD25630 y una precisión del 91,2% en el conjunto de datos Food-10127. Hafiz et al. utilizaron DCNNs para desarrollar una solución de reconocimiento de imágenes solo para bebidas e informaron de una precisión muy alta de 98.51%31. Shimoda et al. describieron un método novedoso para detectar regiones de placas en imágenes de alimentos sin el uso de anotación en píxeles32. Ciocca et al. introdujeron un nuevo conjunto de datos que contenía alimentos de 20 clases de alimentos diferentes en 11 estados diferentes (pasta sólida, en rodajas, cremosa, etc.) y presentaron su enfoque para modelos de reconocimiento de capacitación que son capaces de reconocer el estado alimentario, además de la clase de alimentos33. Knez et al. evaluaron las soluciones de reconocimiento de imágenes de alimentos para dispositivos móviles34. Por último, Furtado et al. llevaron a cabo un estudio sobre cómo el sistema visual humano se compara con el rendimiento de los DCNN y encontró que el reconocimiento humano todavía supera a los DCNN con una precisión del 80% frente al 74,5%35. Los autores señalaron que con un pequeño número de clases de alimentos, los DCNN funcionan bien, pero en un conjunto de datos con cientos de clases, la precisión del reconocimiento humano es mayor35,destacando la complejidad del problema.
A pesar de sus resultados de última generación, el aprendizaje profundo tiene un inconveniente importante: requiere un gran conjunto de datos de entrada para entrenar el modelo. En el caso del reconocimiento de imágenes de alimentos, se requiere un conjunto de datos de imagen de alimentos grande y este conjunto de datos debe abarcar tantos escenarios diferentes del mundo real como sea posible. En la práctica, esto significa que para cada artículo individual de alimentos o bebidas, se requiere una gran colección de imágenes y tantos artículos diferentes como sea posible deben estar presentes en el conjunto de datos. Si no hay suficientes imágenes para un elemento específico en el conjunto de datos, es poco probable que ese elemento se reconozca correctamente. Por otro lado, si sólo un pequeño número de elementos está cubierto por el conjunto de datos, la solución tendrá un alcance limitado y solo podrá reconocer un puñado de alimentos y bebidas diferentes.
Varios conjuntos de datos se pusieron a disposición en el pasado. El Pittsburgh Fast-Food Image Dataset (PFID)3 fue introducido para fomentar más investigación en el campo del reconocimiento de imágenes de alimentos. La Universidad de Electro-Communications Food 100 (UEC-FOOD100)22 y la Universidad de Electro-Communications Food 256 (UEC-FOOD256)30 conjuntos de datos contienen platos japoneses, ampliados con algunos platos internacionales en el caso del conjunto de datos UEC-FOOD256. El conjunto de datos Food-101 contiene platos populares adquiridos en un sitio web27. Food-5036 y Video Retrieval Group Food 172 (VireoFood-172)37 conjuntos de datos son colecciones chinas de imágenes de alimentos. El conjunto de datos de la Universidad de Milán-Bicocca 2016 (UNIMIB2016) se compone de imágenes de bandejas de alimentos de una cantina italiana38. Recipe1M es un conjunto de datos a gran escala de recetas de cocina e imágenes de alimentos39. El conjunto de datos Food-47540 recoge cuatro conjuntos de datos de imágenes de alimentos publicados anteriormente27,30,36,37 en uno. La Beijing Technology and Business University Food 60 (BTBUFood-60) es un conjunto de datos de imágenes destinadas a la detección de alimentos41. Recientemente, se puso a disposición el conjunto de datos ISIA Food-50042 de imágenes de alimentos varios. En comparación con otros conjuntos de datos de imágenes de alimentos disponibles públicamente, contiene un gran número de imágenes, divididas en 500 clases de alimentos, y está destinado a avanzar en el desarrollo de soluciones multimedia de reconocimiento de alimentos42.
En los últimos años, las redes neuronales profundas han sido validadas varias veces como una solución adecuada para reconocer imágenes de alimentos10,11,12,21,23,25,26,29,31,33. Nuestro trabajo presentado en este artículo sirve para probar aún más este1,2. El enfoque de reconocimiento de imágenes de alimentos de una sola salida es sencillo y se puede utilizar para aplicaciones sencillas en las que se esperan imágenes con un solo artículo de alimentos o bebidas2.
El enfoque de segmentación de imágenes alimentarias parece particularmente adecuado para reconocer imágenes de alimentos en general, sin ninguna restricción en el número de alimentos1. Dado que funciona clasificando cada píxel individual de la imagen, no solo es capaz de reconocer ningún número de alimentos de la imagen, sino también especificar dónde se encuentra un elemento alimenticio, así como qué tan grande es. Este último se puede utilizar para realizar la estimación del peso de los alimentos, especialmente si se utiliza con un objeto de referencia o una cámara de distancia fija.
Se ha hecho algún trabajo con respecto a la disponibilidad de conjuntos de datos de imágenes de alimentos3,22,27,30,36,37,38,39,40,41,42,y esperamos que se haga más en el futuro, particularmente cuando se trata de agregar conjuntos de datos de imágenes de alimentos de diferentes regiones del mundo, lo que permitiría desarrollar soluciones más robustas. Actualmente, la precisión de las soluciones automáticas de reconocimiento de imágenes de alimentos aún no ha alcanzado la precisión a nivel humano35,y esto es probable en gran parte debido al uso de conjuntos de datos de imágenes de alimentos de tamaño y calidad insuficientes.
En el futuro, nuestro objetivo será evaluar aún más los procedimientos desarrollados sobre imágenes del mundo real. En general, los datasets de este campo a menudo contienen imágenes tomadas en entornos controlados o imágenes optimizadas manualmente para el reconocimiento. Esta es la razón por la que es importante reunir un conjunto de datos de imágenes de alimentos grandes y diversos del mundo real para abarcar todos los diferentes alimentos y bebidas que las personas podrían querer reconocer. El primer paso hacia esto fue proporcionado por el Desafío de Reconocimiento Alimentario, que incluía un conjunto de datos de imágenes de alimentos del mundo real19,pero es necesario seguir trabajando para validar este enfoque en imágenes de alimentos de todo el mundo y en cooperación con dietistas.
The authors have nothing to disclose.
Los autores quieren agradecer a Tamara Bucher de la Universidad de Newcastle, Australia, por proporcionar el conjunto de datos de imágenes de comida falsa. Este trabajo fue apoyado por los programas de investigación e innovación Horizonte 2020 de la Unión Europea (números de subvención 863059 – FNS-Cloud, 769661 – SAAM); y la Agencia eslovena de investigación (número de subvención P2-0098). La Unión Europea y la Agencia eslovena de investigación no tuvieron ningún papel en el diseño, análisis o escritura de este artículo.
HARDWARE | |||
NVIDIA GPU | NVIDIA | N/A | An NVIDIA GPU is needed as some of the software frameworks below will not work otherwise. https://www.nvidia.com |
SOFTWARE | |||
Caffe | Berkeley AI Research | N/A | Caffe is a deep learning framework. https://caffe.berkeleyvision.org |
CLoDSA | Jónathan Heras | N/A | CLoDSA is a Python image augmentation library. https://github.com/joheras/CLoDSA |
Google API Client | N/A | Google API Client is a Python client library for Google's discovery based APIs. https://github.com/googleapis/google-api-python-client | |
JavaScript Segment Annotator | Kota Yamaguchi | N/A | JavaScript Segment Annotator is a JavaScript image annotation tool. https://github.com/kyamagu/js-segment-annotator |
MMDetection | Multimedia Laboratory, CUHK | N/A | MMDetection is an object detection toolbox based on PyTorch. https://github.com/open-mmlab/mmdetection |
NVIDIA DIGITS | NVIDIA | N/A | NVIDIA DIGITS is a wrapper for Caffe that provides a graphical web interface. https://developer.nvidia.com/digits |
OpenCV | Intel | N/A | OpenCV is a library for computer vision. https://opencv.org |
Python | Python Software Foundation | N/A | Python is a programming language. https://www.python.org |
PyTorch | Facebook AI Research | N/A | PyTorch is a machine learning framework. https://pytorch.org |
Ubuntu OS | Canonical | N/A | Ubuntu 14.04 is the OS used by the authors and offers compatibility with all of the software frameworks and tools above. https://ubuntu.com |