Method Article
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 512x512-Pixel-Bilder als Eingabe (im Gegensatz zu 256x256-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.
1. Lebensmittelbilderkennung mit NutriNet
2. Lebensmittelbildsegmentierung mit FCNs
3. Lebensmittelbild-Segmentierung mit HTC ResNet
NutriNet wurde mit drei populären Deep Learning-Architekturen der damaligen Zeit getestet: AlexNet14, GoogLeNet51 und ResNet16. Außerdem wurden mehrere Trainingsparameter für alle Architekturen getestet, um die optimalen Werte2zu definieren. Dazu gehört die Wahl des Solver-Typs, der bestimmt, wie die Verlustfunktion minimiert wird. Diese Funktion ist die primäre Qualitätsmaßnahme für das Training neuronaler Netzwerke, da sie besser für die Optimierung während des Trainings geeignet ist als die Klassifizierungsgenauigkeit. Wir haben drei Solver getestet: Stochastic Gradient Descent (SGD)52, Nesterov es Accelerated Gradient (NAG)53 und den Adaptive Gradient algorithm (AdaGrad)54. Der zweite Parameter ist die Batchgröße, die die Anzahl der Bilder definiert, die gleichzeitig verarbeitet werden. Die Tiefe der Deep Learning-Architektur bestimmte den Wert dieses Parameters, da tiefere Architekturen mehr Platz im GPU-Speicher benötigen - die Folge dieses Ansatzes war, dass der Speicher vollständig mit Bildern für alle Architekturen gefüllt war, unabhängig von der Tiefe. Der dritte Parameter ist die Lernrate, die die Geschwindigkeit definiert, mit der die neuronalen Netzwerkparameter während des Trainings geändert werden. Dieser Parameter wurde im Einvermelden mit der Batchgröße festgelegt, da die Anzahl der gleichzeitig verarbeiteten Bilder die Konvergenzrate vorgibt. AlexNet-Modelle wurden mit einer Batchgröße von 256 Bildern und einer Basislernrate von 0,02 trainiert. NutriNet verwendete eine Batchgröße von 128 Bildern und eine Rate von 0,01; GoogLeNet 64 Bilder und eine Rate von 0.005; und ResNet 16 Bilder und eine Rate von 0.00125. Drei weitere Parameter wurden für alle Architekturen festgelegt: Lernrate-Policy (Step-down), Schrittgröße (30%) und Gamma (0,1). Diese Parameter beschreiben gemeinsam, wie sich die Lernrate in jeder Epoche verändert. Die Idee hinter diesem Ansatz ist, dass die Lernrate schrittweise gesenkt wird, um das Modell zu optimieren, je näher es dem optimalen Verlustwert kommt. Schließlich wurde auch die Anzahl der Ausbildungsepochen für alle Deep-Learning-Architekturen auf 150 festgelegt2.
Das beste Ergebnis unter allen getesteten Parametern, die NutriNet erreichte, war eine Klassifizierungsgenauigkeit von 86,72% auf dem Erkennungs-Dataset, das rund 2% über dem besten Ergebnis für AlexNet und etwas höher als googLeNets bestes Ergebnis war. Die insgesamt leistungsstärkste Architektur war ResNet (um ca. 1%), die Trainingszeit für ResNet ist jedoch wesentlich höher als bei NutriNet (um den Faktor fünf), was wichtig ist, wenn Modelle kontinuierlich umgeschult werden, um die Genauigkeit und die Anzahl der erkennbaren Lebensmittel zu verbessern. NutriNet, AlexNet und GoogLeNet erzielten ihre besten Ergebnisse mit dem AdaGrad-Solver, während Das beste Modell von ResNet den NAG-Solver verwendete. NutriNet wurde auch auf dem öffentlich zugänglichen UNIMIB2016 Food Image Datensatz38getestet. Dieser Datensatz enthält 3.616 Bilder von 73 verschiedenen Lebensmitteln. NutriNet erreichte eine Erkennungsgenauigkeit von 86,39 % in diesem Dataset und übertraf damit das Basiserkennungsergebnis der Autoren des Datensatzes, das 85,80 % betrug, leicht. Zusätzlich wurde NutriNet auf einem kleinen Datensatz von 200 realen Bildern von 115 verschiedenen Nahrungsmitteln und Getränken getestet, wobei NutriNet eine Spitzengenauigkeit von 55% erreichte.
Um das MODELL der FAKE-Food-Bildsegmentierung FCN-8s zu trainieren, haben wir Adam55 als Solver-Typ verwendet, da wir festgestellt haben, dass es für diese Aufgabe optimal abgespielt hat. Die Basislernrate wurde sehr niedrig eingestellt - auf 0,0001. Der Grund für die niedrige Zahl ist die Tatsache, dass jeweils nur ein Bild verarbeitet werden konnte, was eine Folge des Klassifizierungsprozesses auf Pixelebene ist. Die GPU-Speicheranforderungen für diesen Ansatz sind deutlich höher als die Klassifizierung auf Bildebene. Die Lernrate musste daher niedrig eingestellt werden, damit die Parameter nicht zu schnell verändert werden und zu weniger optimalen Werten konvergieren. Die Anzahl der Trainingsepochen wurde auf 100 festgelegt, während die Lernrate-Politik, die Schrittgröße und das Gamma auf Schritt-down eingestellt wurden, 34% bzw. 0,1, da diese Parameter die genauesten Modelle produzierten.
Genauigkeitsmessungen des FCN-8-Modells wurden mit dem Pixelgenauigkeitsmaß15durchgeführt, das der Klassifizierungsgenauigkeit herkömmlicher Deep Learning-Netzwerke entspricht, wobei der Hauptunterschied darin besteht, dass die Genauigkeit auf der Pixelebene und nicht auf der Bildebene berechnet wird:
wobei PA die Pixelgenauigkeitsmessung ist, nij die Anzahl der Pixel aus Klasse i, die der Klasse j vorhergesagt wurde, und ti = j nij ist die Gesamtzahl der Pixel aus der Klasse in den Bodenwahrheitsbeschriftungen1. Mit anderen Worten, die Pixelgenauigkeitsmessung wird berechnet, indem korrekt vorhergesagte Pixel durch die Gesamtzahl der Pixel dividiert werden. Die endliche Genauigkeit des trainierten FCN-8s Modells betrug 92,18%. Abbildung 2 zeigt drei Beispielbilder aus dem Fake-Food-Bild-Dataset (eines aus jeder der Trainings-, Validierungs- und Test-Teilmengen) sowie die entsprechenden Boden-Wahrheits- und Modellvorhersage-Etiketten.
Die Parameter zum Trainieren des HTC20 ResNet-101 Modells für die Segmentierung von Lebensmittelbildern wurden wie folgt festgelegt: Der verwendete Solvertyp war SGD, da er andere Solver-Typen übertraf. Die Basislernrate wurde auf 0,00125 und die Batchgröße auf 2 Bilder festgelegt. Die Anzahl der Trainingsepochen wurde auf 40 pro Trainingsphase festgelegt, und mehrere Trainingsphasen wurden durchgeführt - zuerst auf dem ursprünglichen FRC-Datensatz ohne Augmented Images, dann auf dem 8x-augmented und 4x-augmented FRC-Datensatz mehrmals abwechselnd, wobei jedes Mal das leistungsstärkste Modell und die Feinabstimmung in der nächsten Trainingsphase durchgeführt wurden. Weitere Einzelheiten zu den Ausbildungsphasen finden Sie in Abschnitt 3.3 des Protokolltextes. Schließlich wurde die Step-down-Lernpolitik verwendet, mit festen Epochen für den Zeitpunkt, zu dem die Lernrate sank (Epochen 28 und 35 für die erste Ausbildungsphase). Wichtig ist, dass diese Abfolge von Trainingsphasen zwar die besten Ergebnisse in unseren Tests im Rahmen des FRC lieferte, die Verwendung eines anderen Datasets jedoch möglicherweise eine andere Sequenz erfordert, um optimale Ergebnisse zu erzielen.
Diese ResNet-basierte Lösung für die Segmentierung von Lebensmitteln wurde mit folgendem Präzisionsmaß19bewertet:
wobei P Genauigkeit ist, TP die Anzahl der echten positiven Vorhersagen durch das Modell der Lebensmittelbildsegmentierung, FP ist die Anzahl falsch positiver Vorhersagen und IoU ist Schnittpunkt über Union, die mit dieser Gleichung berechnet wird:
wobei Area of Overlap die Anzahl der Vorhersagen nach dem Modell darstellt, die sich mit der Bodenwahrheit überlappen, und Area of Union die Gesamtzahl der Vorhersagen durch das Modell zusammen mit der Bodenwahrheit darstellt, sowohl auf Pixelebene als auch für jede einzelne Lebensmittelklasse. Der Rückruf wird als sekundäre Kennzahl verwendet und in ähnlicher Weise unter Verwendung der folgenden Formel19berechnet:
wobei R zurückgerufen wird und FN die Anzahl der falschen negativen Vorhersagen durch das Modell der Segmentierung des Lebensmittelbildes. Die Präzisions- und Rückrufmaßnahmen werden dann in der Bodenwahrheit über alle Klassen gemittelt. Mit diesen Maßnahmen erreichte unser Modell eine durchschnittliche Genauigkeit von 59,2 % und einen durchschnittlichen Rückruf von 82,1 %, der in der zweiten Runde der Food Recognition Challenge19den zweiten Platz belegte. Dieses Ergebnis lag 4,2 % hinter dem ersten Platz und 5,3 % über dem dritten Platz in Bezug auf die durchschnittliche Präzisionsmessung. Tabelle 1 enthält die Ergebnisse für die Besten-4-Teilnehmer des Wettbewerbs.
Abbildung 1:Diagramm der NutriNet Deep Neural Network Architektur. Diese Zahl wurde in Mezgec et al.2veröffentlicht. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzuzeigen.
Abbildung 2:Bilder aus dem Fake-Food-Bild-Dataset. Originalbilder (links), manuell beschriftete Boden-Wahrheits-Etiketten (Mitte) und Vorhersagen aus dem FCN-8s-Modell (rechts). Diese Zahl wurde in Mezgec et al.1veröffentlicht. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzuzeigen.
Teamname | Platzierung | Durchschnittliche Präzision | Durchschnittlicher Rückruf |
rssfete | 1 | 63.4% | 88.6% |
simon_mezgec | 2 | 59.2% | 82.1% |
arimboux | 3 | 53.9% | 73.5% |
latentvec | 4 | 48.7% | 71.1% |
Tabelle 1: Top-4-Ergebnisse aus der zweiten Runde der Food Recognition Challenge. Die durchschnittliche Genauigkeit wird als primäre Leistungsmessung und der durchschnittliche Rückruf als sekundäre Kennzahl hergenommen. Die Ergebnisse stammen aus der offiziellen Wettbewerbsrangliste19.
Ergänzende Dateien. Bitte klicken Sie hier, um diese Datei herunterzuladen.
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.
Die Autoren haben nichts zu verraten.
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.
Name | Company | Catalog Number | Comments |
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 |
Genehmigung beantragen, um den Text oder die Abbildungen dieses JoVE-Artikels zu verwenden
Genehmigung beantragenThis article has been published
Video Coming Soon
Copyright © 2025 MyJoVE Corporation. Alle Rechte vorbehalten