Das Neuronale Netz Hat Den Nährwert Eines Gerichts Direkt Anhand Eines Fotos Bestimmt

Video: Das Neuronale Netz Hat Den Nährwert Eines Gerichts Direkt Anhand Eines Fotos Bestimmt

Video: Das Neuronale Netz Hat Den Nährwert Eines Gerichts Direkt Anhand Eines Fotos Bestimmt
Video: Neuronale Netze [014] - Delta-Lernregel Implementation 2023, März
Das Neuronale Netz Hat Den Nährwert Eines Gerichts Direkt Anhand Eines Fotos Bestimmt
Das Neuronale Netz Hat Den Nährwert Eines Gerichts Direkt Anhand Eines Fotos Bestimmt
Anonim
Image
Image

Deutsche Forscher haben einen Algorithmus entwickelt, der anhand eines Fotos den Nährwert von Gerichten ermittelt: ihren Kaloriengehalt und den Gehalt an Proteinen, Kohlenhydraten und Fetten. Im Gegensatz zu vielen anderen ähnlichen Algorithmen ermittelt der neue diese Indikatoren direkt, anstatt sich auf eine Datenbank über den Nährwert verschiedener Produkte zu beziehen. Außerdem versucht der Algorithmus, die Zutaten der Gerichte vorherzusagen. Ein Bericht zum Algorithmus wird auf der IKSR 2020 Konferenz vorgestellt, der Preprint ist unter arXiv.org verfügbar.

Manche Menschen, die abnehmen oder auf dem gleichen Niveau bleiben, schreiben Mahlzeiten auf und notieren ihren Nährwert. Es gibt sogar Anwendungen, bei denen dieser Prozess teilautomatisiert ist: Hat eine Person Lebensmittel aus dem Laden gegessen, kann man die Kamera auf deren Verpackung richten, und die Anwendung selbst trägt alle Daten in das Verbrauchstagebuch ein. Dies ist jedoch nicht für selbst zubereitetes Essen und Café-Mahlzeiten geeignet. Im ersten Fall kann ein Mensch den Nährwert noch berechnen, da er alle Bestandteile kennt, im zweiten nur sehr grob.

Computer-Vision-Forscher versuchen seit mehreren Jahren, dieses Problem zu lösen. In der Regel funktionieren Algorithmen zur Nährwertberechnung ähnlich: Sie erkennen ein Gericht in einem Bild und geben die entsprechenden Werte aus der Datenbank zurück. Sie können auch die Größe des Gerichts berücksichtigen, um die Kalorien genauer zu berechnen, obwohl einige der neueren Algorithmen davon ausgehen, dass sich die Kamera vor der Standardportion befindet. Solche mehrstufigen Algorithmen seien schwer zu entwickeln und nicht sehr genau, stellen die Autoren der neuen Arbeit um Rainer Stiefelhage vom Karlsruher Institut für Technologie fest. Sie nutzten einen anderen Ansatz, bei dem ein neuronales Netz in einem Schritt den Nährwert aus einem Foto berechnet.

Der Algorithmus basiert auf einem konvolutionellen neuronalen Netz zur Objekterkennung (die Autoren verwendeten die beliebten Netze ResNet und DenseNet), das auf einem riesigen Datensatz verschiedener ImageNet-Fotografien trainiert wurde. Die Verwendung eines vortrainierten neuronalen Faltungsnetzes ist eine beliebte Methode, die es Ihnen ermöglicht, einen Algorithmus zugrunde zu legen, der bereits recht gut in der Bestimmung von Merkmalen in Bildern ist, und seine letzten Schichten für Ihre spezifische Aufgabe neu zu trainieren. In diesem Fall haben die Autoren nicht nur die letzte Schicht umgeschult, sondern ihre Struktur verändert: Statt der Klassifikation löst sie das Problem der Regression, also die Auswahl eines bestimmten Wertes, und nicht die Zuordnung des Originalfotos zu einem feste Klasse von Objekten. Vier Neuronen der letzten Schicht geben den Kaloriengehalt des Gerichts und den Gehalt an Grundbestandteilen (Proteine, Fette, Kohlenhydrate) an und weitere 100 Neuronen geben die 100 wahrscheinlichsten Zutaten wieder.

Image
Image

Algorithmusdiagramm

Die Entwickler haben unabhängig voneinander einen Datensatz für das Training des Algorithmus erstellt und dabei zwei Quellen verwendet: eine Rezeptseite, auf der die meisten Rezepte eine Zutatenliste und ein Foto des fertigen Gerichts enthalten, und die Nährwertbasis verschiedener Produkte. Da Rezepte von unterschiedlichen Personen geschrieben werden und unnötige Daten enthalten (z musste die Daten halbautomatisch verarbeiten. Insbesondere haben sie unnötige Wörter entfernt und ungefähre Werte (zum Beispiel "ein Esslöffel") in konkrete Werte umgewandelt. Anschließend stellten sie die Daten aus zwei vorverarbeiteten Datensätzen zusammen und fügten sie zu einem mit 70.000 Rezepturen und 308.000 Fotografien zusammen.

Image
Image

Nährwertkarte, erstellt durch den Algorithmus aus dem Foto links

Image
Image

Nährwertkarte, erstellt durch den Algorithmus aus dem Foto links

Image
Image

Nährwertkarte, erstellt durch den Algorithmus aus dem Foto links

Image
Image

Nährwertkarte, erstellt durch den Algorithmus aus dem Foto links

Das Testen des Algorithmus an Rezepten, die er während des Trainings nicht getroffen hat, zeigte, dass seine Genauigkeit, berechnet pro 100 Gramm eines Gerichts, 46,7 Kalorien, 2,51 Gramm Protein, 3,88 Gramm Fett und 6,97 Gramm Kohlenhydrate beträgt. Die Autoren weisen darauf hin, dass die Ergebnisse verbessert werden können, indem fortschrittlichere Algorithmen zur Vorverarbeitung von Texten aus Rezepten verwendet werden. Sie konnten den Datensatz selbst aufgrund von Lizenzbeschränkungen nicht veröffentlichen, veröffentlichten aber den Code zu seiner Bildung und den Code des neuronalen Netzes selbst auf GitHub.

Zuvor haben wir über andere "kulinarische" neuronale Netze gesprochen. Zum Beispiel über einen Algorithmus, der ein Rezept für ein Gericht aus seinem Foto zusammenstellt und ein anderer, der die entgegengesetzte Aufgabe ausführt - ein Foto eines Gerichts gemäß seinem Rezept erstellt.

Beliebt nach Thema