Ziel der in diesem Artikel vorgestellten Arbeit ist es, Technologien zur automatisierten Erkennung von Lebensmitteln und Getränken aus Bildern mobiler Geräte zu entwickeln. Die Technologie besteht aus zwei verschiedenen Ansätzen – der erste führt die Lebensmittelbilderkennung durch, während der zweite die Segmentierung von Lebensmittelbildern durchführt.
Aufgrund der Probleme und Kosten, die mit manuellen Ernährungsbewertungsansätzen verbunden sind, sind automatisierte Lösungen erforderlich, um die Arbeit zu erleichtern und zu beschleunigen und ihre Qualität zu erhöhen. Heute sind automatisierte Lösungen in der Lage, die Nahrungsaufnahme einer Person auf eine viel einfachere Weise aufzuzeichnen, z. B. indem sie ein Bild mit einer Smartphone-Kamera aufnehmen. In diesem Artikel werden wir uns auf solche bildbasierten Ansätze zur Ernährungsbewertung konzentrieren. Für das Problem der Lebensmittelbilderkennung haben tiefe neuronale Netze in den letzten Jahren den Stand der Technik erreicht, und wir stellen unsere Arbeit in diesem Bereich vor. Insbesondere beschreiben wir zunächst die Methode zur Erkennung von Lebensmitteln und Getränken mit Hilfe einer tiefen neuronalen Netzwerkarchitektur namens NutriNet. Diese Methode ist, wie die meisten Forschungen in den frühen Tagen der Deep Learning-basierten Lebensmittelbilderkennung, auf eine Ausgabe pro Bild beschränkt und daher für Bilder mit mehreren Lebensmitteln oder Getränken ungeeignet. Aus diesem Grund sind Ansätze, die die Segmentierung von Lebensmittelbildern durchführen, wesentlich robuster, da sie in der Lage sind, eine beliebige Anzahl von Lebensmitteln oder Getränken im Bild zu identifizieren. Wir stellen daher auch zwei Methoden zur Segmentierung von Lebensmitteln vor – eine basiert auf vollständig konvolutionalen Netzwerken (FCNs) und die andere auf tiefen Restnetzwerken (ResNet).
Die Ernährungsbewertung ist ein entscheidender Schritt bei der Bestimmung umsetzbarer Bereiche der individuellen Ernährung. Die Durchführung einer Ernährungsbewertung mit traditionell manuellen Ansätzen ist jedoch mit erheblichen Kosten verbunden. Diese Ansätze sind auch fehleranfällig, da sie oft auf selbstgemeldeten Personen beruhen. Die automatisierte Ernährungsbewertung behebt diese Probleme, indem sie eine einfachere Möglichkeit bietet, die Nahrungsaufnahme zu quantifizieren und zu qualifizieren. Ein solcher Ansatz kann auch einige der Fehler lindern, die in manuellen Ansätzen auftreten, wie verpasste Mahlzeiten, Unfähigkeit, das Lebensmittelvolumen genau zu beurteilen usw. Daher bietet die Automatisierung der Ernährungsbewertung klare Vorteile, indem Lösungen entwickelt werden, die verschiedene Lebensmittel und Getränke identifizieren und die Nahrungsaufnahme quantifizieren1. Diese Lösungen können auch verwendet werden, um eine Schätzung der Nährwerte von Lebensmitteln und Getränken (daher “Lebensmittel”) zu ermöglichen. Folglich ist eine automatisierte Ernährungsbewertung für mehrere Anwendungen nützlich – von rein medizinischen Anwendungen, wie z. B. von Diätassistenten, die die Ernährung ihrer Patienten leichter und genauer verfolgen und analysieren können, bis hin zur Nutzung innerhalb von Wohlfühl-Apps, die auf die allgemeine Bevölkerung ausgerichtet sind.
Das automatische Erkennen von Lebensmitteln aus Bildern ist ein schwieriges Computer-Vision-Problem. Dies ist darauf zurückzuführen, dass Lebensmittel in der Regel verformbare Objekte sind, und aufgrund der Tatsache, dass eine große Menge der visuellen Informationen des Lebensmittels während seiner Zubereitung verloren gehen kann. Darüber hinaus können verschiedene Lebensmittel sehr ähnlich zueinander zu sein scheinen, und die gleiche Nahrung kann auf mehreren Bildern erheblich unterschiedlich erscheinen2. Darüber hinaus hängt die Erkennungsgenauigkeit von vielen weiteren Faktoren ab, wie z. B. der Bildqualität, davon, ob das Lebensmittel durch ein anderes Element behindert wird, Entfernung, von der das Bild aufgenommen wurde, usw. Das Erkennen von Getränken stellt seine eigenen Herausforderungen dar, wobei die hauptbegrenzte Menge an visuellen Informationen, die in einem Bild verfügbar ist, die wichtigste ist. Diese Information kann die Getränkefarbe, GetränkebehälterFarbe und -struktur und, unter optimalen Bildbedingungen, die Getränkedichte2sein.
Um Lebensmittel aus Bildern erfolgreich zu erkennen, ist es notwendig, die Funktionen jeder Lebensmittel- und Getränkeklasse zu erlernen. Dies wurde traditionell mit manuell definierten Feature-Extraktoren3,4,5,6, die Erkennung basierend auf bestimmten Element-Features wie Farbe, Textur, Größe, etc. oder eine Kombination dieser Features durchführen. Beispiele für diese Feature-Extraktoren sind mehrere Kernel-Lernen4, paarweise lokale Funktionen5 und die Tasche-of-Features-Modell6. Aufgrund der Komplexität der Lebensmittelbilder erreichten diese Ansätze meist eine geringe Klassifizierungsgenauigkeit – zwischen 10% und 40%3,4,5. Der Grund dafür ist, dass der manuelle Ansatz nicht robust genug ist, um ausreichend genau zu sein. Da ein Lebensmittel im Aussehen erheblich variieren kann, ist es nicht möglich, all diese Abweichungen manuell zu umfassen. Eine höhere Klassifizierungsgenauigkeit kann mit manuell definierten Feature-Extraktoren erreicht werden, wenn entweder die Anzahl der Lebensmittelklassen5reduziert wird oder verschiedene Bildmerkmale kombiniert werden6, was darauf hinweist, dass es einen Bedarf an komplexeren Lösungen für dieses Problem gibt.
Aus diesem Grund hat sich Deep Learning als so effektiv für das Problem der Lebensmittelbilderkennung erwiesen. Deep Learning, oder tiefe neuronale Netzwerke, wurde von biologischen Gehirnen inspiriert und ermöglicht es Rechenmodellen, die aus mehreren Verarbeitungsschichten bestehen, Automatisch Features durch Training auf einer Reihe von Eingabebildern zu erlernen7,8. Aus diesem Grund hat Deep Learning den Stand der Technik in einer Vielzahl von Forschungsbereichen wesentlich verbessert7, mit Computer-Vision, und in der Folge Lebensmittel-Bild-Erkennung, einer von ihnen2.
Insbesondere tiefkonvolutionale neuronale Netzwerke (DCNNs) sind am beliebtesten für die Erkennung von Lebensmittelbildern – diese Netzwerke sind vom visuellen System der Tiere inspiriert, wo einzelne Neuronen versuchen, ein Verständnis des visuellen Inputs zu erlangen, indem sie auf überlappende Bereiche im Gesichtsfeld reagieren9. Ein konvolutionales neuronales Netzwerk nimmt das Eingabebild auf und führt eine Reihe von Operationen in jeder der Netzwerkschichten durch, von denen die häufigsten faltige, voll verbundene und poolierende Schichten sind. Konvolutionale Layer enthalten lernbare Filter, die auf bestimmte Features in den Eingabedaten reagieren, während voll verbundene Layer Ausgabedaten aus anderen Layern zusammenstellen, um mehr Wissen daraus zu gewinnen. Das Ziel des Poolens von Layern besteht darin, die Eingabedaten2herunterzusampeln. Es gibt zwei Ansätze für die Verwendung von Deep Learning-Modellen, die sich als beliebt erwiesen haben: eine vorhandene Tiefe-Neuralnetzwerk-Definition10,11, die in diesem Artikel als Deep Learning-Architektur bezeichnet wird, oder die Definition einer neuen Deep Learning-Architektur12,13, und das Training einer dieser Daten in einem Food-Image-Dataset. Beide Ansätze haben Stärken und Schwächen – bei verwendung einer vorhandenen Deep Learning-Architektur kann eine Architektur ausgewählt und auf das gewünschte Problem abgestimmt werden, wodurch Zeit gespart und sichergestellt wird, dass eine validierte Architektur ausgewählt wurde. Die Definition einer neuen Deep-Learning-Architektur hingegen ist zeitaufwändiger, ermöglicht aber die Entwicklung von Architekturen, die speziell gemacht werden, um die Besonderheiten eines Problems zu berücksichtigen und somit theoretisch besser für dieses Problem zu arbeiten.
In diesem Artikel stellen wir beide Ansätze vor. Für das Problem der Lebensmittelbilderkennung haben wir eine neuartige DCNN-Architektur namens NutriNet2entwickelt, die eine Modifikation der bekannten AlexNet-Architektur14darstellt. Im Vergleich zu AlexNet gibt es zwei Hauptunterschiede: NutriNet akzeptiert 512×512-Pixel-Bilder als Eingabe (im Gegensatz zu 256×256-Pixel-Bildern für AlexNet), und NutriNet hat eine zusätzliche faltige Schicht am Anfang des neuronalen Netzwerks. Diese beiden Änderungen wurden eingeführt, um so viele Informationen wie möglich aus den Bildern des Erkennungsdatensatzes zu extrahieren. Mit bildern mit höherer Auflösung gab es mehr Informationen über Bilder und mehr faltige Schichten bedeutete, dass zusätzliches Wissen aus den Bildern extrahiert werden konnte. Im Vergleich zu den rund 60 Millionen Parametern von AlexNet enthält NutriNet weniger Parameter: rund 33 Millionen. Dies liegt an dem Unterschied in der Dimensionalität an der ersten voll verbundenen Schicht, der durch die zusätzliche Faltschicht2verursacht wird. Abbildung 1 enthält ein Diagramm der NutriNet-Architektur. Die Lebensmittelbilder, die zum Trainieren des NutriNet-Modells verwendet wurden, wurden aus dem Internet gesammelt – das Verfahren wird im Protokolltext beschrieben.
Für das Problem der Lebensmittelbildsegmentierung haben wir zwei verschiedene bestehende Architekturen verwendet: voll konvolutionale Netzwerke (FCNs)15 und Deep Residual Networks (ResNet)16, die beide den Stand der Technik für die Bildsegmentierung darstellten, als wir sie zur Entwicklung ihrer jeweiligen Lösungen zur Segmentierung von Lebensmittelbildern nutzten. Es gibt mehrere FCN-Varianten, die von Long et al. eingeführt wurden: FCN-32s, FCN-16s und FCN-8s15. FCN-32s gibt eine Pixelkarte basierend auf den Vorhersagen des endgültigen Layers des FCN aus, während die FCN-16s-Variante diese Vorhersagen mit denen eines früheren Layers kombiniert. FCN-8s berücksichtigt eine weitere Schicht Vorhersagen und ist daher in der Lage, Vorhersagen in feinstem Korn zu machen, weshalb es für die Erkennung von Lebensmittelbildern geeignet ist. Die FCN-8s, die wir verwendet haben, wurden im PASCAL Visual Object Classes (PASCAL VOC)-Datensatz17 vortrainiert und auf Bildern von Lebensmittelreplikaten (daher “Fake Food”)18 trainiert und getestet, da sie optisch mit echtem Essen und aufgrund des Fehlens von kommentierten Bildern von echtem Essen auf Pixelebene gleichgestellt wurden. Gefälschte Lebensmittel werden in verschiedenen Verhaltensstudien verwendet und Bilder werden für alle Gerichte von allen Studienteilnehmern aufgenommen. Da der Lebensmittelinhalt dieser Bilder bekannt ist, macht es das Bild-Dataset nützlich für Deep Learning-Modellschulungen. Die Verarbeitungsschritte für Datasets werden im Protokolltext beschrieben.
Die ResNet-basierte Lösung wurde im Rahmen der Food Recognition Challenge (FRC)19entwickelt. Es verwendet die Hybrid Task Cascade (HTC)20 Methode mit einem ResNet-10116 Backbone. Dies ist ein state-of-the-art-Ansatz für das Problem der Bildsegmentierung, der verschiedene Feature-Extraktoren oder Backbones verwenden kann. Wir betrachteten auch andere Backbone-Netzwerke, insbesondere andere ResNet-Varianten wie ResNet-5016, aber ResNet-101 war aufgrund seiner Tiefe und Fähigkeit, Eingabebilder auf komplexe Weise darzustellen, am besten geeignet. Das Dataset, das zum Trainieren des HTC ResNet-101-Modells verwendet wurde, war das FRC-Dataset mit zusätzlichen erweiterten Bildern. Diese Erweiterungen werden im Protokolltext dargestellt.
Dieser Artikel ist als Ressource für Machine Learning-Experten gedacht, die nach Informationen suchen, welche Deep Learning-Architekturen und Datenerweiterungsschritte für die Probleme der Lebensmittelbilderkennung und -segmentierung gut funktionieren, sowie für Ernährungsforscher, die unseren Ansatz zur Automatisierung der Lebensmittelbilderkennung für die Ernährungsbewertung nutzen möchten. In den folgenden Absätzen werden Deep Learning-Lösungen und Datensätze aus dem Lebensmittelbilderkennungsfeld vorgestellt. Im Protokolltext beschreiben wir, wie jeder der drei Ansätze verwendet wurde, um tiefe neuronale Netzwerkmodelle zu trainieren, die für die automatisierte Ernährungsbewertung verwendet werden können. Darüber hinaus enthält jeder Protokollabschnitt eine Beschreibung, wie die für Schulungen und Tests verwendeten Food-Image-Datasets erfasst und verarbeitet wurden.
DCNNs erzielten im Allgemeinen wesentlich bessere Ergebnisse als andere Methoden zur Erkennung und Segmentierung von Lebensmitteln, weshalb die überwiegende Mehrheit der jüngsten Forschungen auf diesem Gebiet auf diesen Netzwerken basiert. Kawano et al. verwendeten DCNNs zur Ergänzung manueller Ansätze21 und erreichten eine Klassifizierungsgenauigkeit von 72,26% auf den UEC-FOOD100 Datensatz22. Christodoulidis et al. verwendeten sie ausschließlich, um eine höhere Genauigkeit von 84,90% auf einem selbst erworbenen Datensatz zu erreichen23. Tanno et al. entwickelten DeepFoodCam – eine Smartphone-App zur Erkennung von Lebensmitteln, die DCNNs24verwendet. Liu et al. stellten ein System vor, das eine Internet of Things-basierte Ernährungsbewertung mit DCNNs25durchführt. Martinel et al. führten einen DCNN-basierten Ansatz ein, der die Besonderheiten von Lebensmittelbildern26 ausnutzt und eine Genauigkeit von 90,27% auf den Food-101-Datensatz27meldet. Zhou et al. verfassten eine Rezension von Deep Learning-Lösungen im Lebensmittelbereich28.
Vor kurzem schlugen Zhao et al. ein Netzwerk speziell für die Erkennung von Lebensmitteln in mobilen Anwendungen29vor. Dieser Ansatz verwendet ein kleineres “Schüler”-Netzwerk, das von einem größeren “Lehrer”-Netzwerk lernt. Damit erreichten sie eine Genauigkeit von 84 % auf dem UEC-FOOD25630 und eine Genauigkeit von 91,2 % auf dem Food-101-Datensatz27. Hafiz et al. verwendeten DCNNs, um eine reine Bilderkennungslösung für Getränke zu entwickeln und berichteten von einer sehr hohen Genauigkeit von 98,51%31. Shimoda et al. beschrieben eine neuartige Methode zur Erkennung von Plattenregionen in Lebensmittelbildern ohne die Verwendung von pixelweisenAnmerkungen 32. Ciocca et al. stellten einen neuen Datensatz mit Lebensmitteln aus 20 verschiedenen Lebensmittelklassen in 11 verschiedenen Zuständen (fest, in Scheiben geschnitten, cremige Paste usw.) vor und stellten ihren Ansatz für die Ausbildung von Anerkennungsmodellen vor, die in der Lage sind, den Lebensmittelzustand zu erkennen, zusätzlich zur Lebensmittelklasse33. Knez et al. evaluierten Lebensmittelbilderkennungslösungen für mobile Geräte34. Schließlich führten Furtado et al. eine Studie darüber durch, wie das menschliche visuelle System mit der Leistung von DCNNs verglichen wird, und fanden heraus, dass die menschliche Erkennung DCNNs immer noch mit einer Genauigkeit von 80% gegenüber 74,5%35übertrifft. Die Autoren stellten fest, dass bei einer kleinen Anzahl von Lebensmittelklassen die DCNNs gut abschneiden, aber bei einem Datensatz mit Hunderten von Klassen ist die Genauigkeit der menschlichen Erkennung höher35 ,was die Komplexität des Problems unterstreicht.
Trotz seiner hochmodernen Ergebnisse hat Deep Learning einen großen Nachteil – es erfordert einen großen Eingabedatensatz, um das Modell zu trainieren. Im Falle der Erkennung von Lebensmittelbildern ist ein großes Food-Image-Dataset erforderlich, und dieser Datensatz muss so viele verschiedene reale Szenarien wie möglich umfassen. In der Praxis bedeutet dies, dass für jedes einzelne Lebensmittel- oder Getränkeelement eine große Sammlung von Bildern erforderlich ist und so viele verschiedene Elemente wie möglich im Datensatz vorhanden sein müssen. Wenn nicht genügend Bilder für ein bestimmtes Element im Dataset vorhanden sind, wird dieses Element wahrscheinlich nicht erfolgreich erkannt. Wenn andererseits nur eine kleine Anzahl von Elementen durch den Datensatz abgedeckt wird, wird die Lösung in ihrer Reichweite begrenzt sein und nur eine Handvoll verschiedener Lebensmittel und Getränke erkennen können.
In der Vergangenheit wurden mehrere Datensätze zur Verfügung gestellt. Der Pittsburgh Fast-Food Image Dataset (PFID)3 wurde eingeführt, um mehr Forschung auf dem Gebiet der Lebensmittelbilderkennung zu fördern. Die Datendatensätze der University of Electro-Communications Food 100 (UEC-FOOD100)22 und der University of Electro-Communications Food 256 (UEC-FOOD256)30 enthalten japanische Gerichte, die im Falle des UEC-FOOD256-Datensatzes um einige internationale Gerichte erweitert wurden. Der Food-101-Datensatz enthält beliebte Gerichte, die von einer Website erworben wurden27. Die Datensätze Food-5036 und Video Retrieval Group Food 172 (VireoFood-172)37 sind chinesische Sammlungen von Lebensmittelbildern. Der Datensatz der Universität Mailand-Bicocca 2016 (UNIMIB2016) besteht aus Bildern von Lebensmittelschalen aus einer italienischen Kantine38. Recipe1M ist ein groß angelegter Datensatz von Kochrezepten und Lebensmittelbildern39. Der Food-475-Datensatz40 sammelt vier zuvor veröffentlichte Food-Image-Datasets27,30,36,37 in einem. Die Beijing Technology and Business University Food 60 (BTBUFood-60) ist ein Datensatz von Bildern, die für die Lebensmittelerkennung bestimmt sind41. Kürzlich wurde der ISIA Food-500 Datensatz42 der verschiedenen Lebensmittelbilder zur Verfügung gestellt. Im Vergleich zu anderen öffentlich zugänglichen Food-Image-Datensätzen enthält es eine große Anzahl von Bildern, die in 500 Lebensmittelklassen unterteilt sind, und soll die Entwicklung multimedialer Lebensmittelerkennungslösungen vorantreiben42.
In den letzten Jahren wurden tiefe neuronale Netzwerke mehrfach als geeignete Lösung zur Erkennung von Lebensmittelbildern10,11,12,21,23,25,26,29,31,33validiert. Unsere in diesem Artikel vorgestellte Arbeit dient dazu, dies weiter zu beweisen1,2. Der Single-Output-Lebensmittelbilderkennungsansatz ist einfach und kann für einfache Anwendungen verwendet werden, bei denen Bilder mit nur einem Lebensmittel- oder Getränkeartikel erwartet werden2.
Der Ansatz der Lebensmittelbildsegmentierung scheint besonders geeignet, um Lebensmittelbilder im Allgemeinen zu erkennen, ohne Einschränkung der Anzahl der Lebensmittel1. Da es durch die Klassifizierung jedes einzelnen Pixels des Bildes funktioniert, ist es in der Lage, nicht nur eine beliebige Anzahl von Lebensmitteln im Bild zu erkennen, sondern auch anzugeben, wo sich ein Lebensmittelelement befindet und wie groß es ist. Letzteres kann dann zur Durchführung einer Lebensmittelgewichtsschätzung verwendet werden, insbesondere wenn sie entweder mit einem Referenzobjekt oder einer Kamera mit fester Entfernung verwendet wird.
Es wurde einige Arbeit in Bezug auf die Verfügbarkeit von Lebensmittel-Bild-Datensätze3,22,27,30,36,37,38,39,40,41,42, und wir hoffen, dass in der Zukunft mehr getan werden, vor allem, wenn es um die Aggregation von Lebensmittelbild-Datensätzeaus verschiedenen Regionen auf der ganzen Welt, die robustere Lösungen entwickeln würde. Derzeit hat die Genauigkeit der automatischen Lösungen zur Erkennung von Lebensmittelbildern die Genauigkeit auf menschlicher Ebene noch nicht erreicht35, und dies ist wahrscheinlich zu einem großen Teil auf die Verwendung von Food-Image-Datasets von unzureichender Größe und Qualität zurückzuführen.
In Zukunft wird es unser Ziel sein, die entwickelten Verfahren auf realen Bildern weiter zu evaluieren. Im Allgemeinen enthalten Datasets in diesem Feld häufig Bilder, die in kontrollierten Umgebungen aufgenommen wurden, oder Bilder, die manuell für die Erkennung optimiert wurden. Aus diesem Grund ist es wichtig, einen großen und vielfältigen realen Food Image-Datensatz zu sammeln, um all die verschiedenen Lebensmittel- und Getränkeartikel zu umfassen, die Einzelpersonen vielleicht erkennen möchten. Der erste Schritt dazu war die Food Recognition Challenge, die einen Datensatz mit realen Lebensmittelbildern19enthielt, aber es muss noch weitere Arbeit geleistet werden, um diesen Ansatz auf Lebensmittelbildern aus der ganzen Welt und in Zusammenarbeit mit Ernährungsberatern zu validieren.
The authors have nothing to disclose.
Die Autoren danken Tamara Bucher von der University of Newcastle, Australien, für die Bereitstellung des Fake-Food-Bild-Datensatzes. Diese Arbeit wurde durch die Forschungs- und Innovationsprogramme Horizont 2020 der Europäischen Union unterstützt (Zuschussnummern 863059 – FNS-Cloud, 769661 – SAAM); slowenische Forschungsagentur (Zuschussnummer P2-0098). Die Europäische Union und die slowenische Forschungsagentur spielten bei der Konzeption, Analyse oder Verschreibung dieses Artikels keine Rolle.
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 |