Journal
/
/
Djupa neurala nätverk för bildbaserad kostbedömning
Deep Neural Networks for Image-Based Dietary Assessment
JoVE Journal
Engineering
Author Produced
This content is Free Access.
JoVE Journal Engineering
Deep Neural Networks for Image-Based Dietary Assessment

Djupa neurala nätverk för bildbaserad kostbedömning

Please note that all translations are automatically generated. Click here for the English version.

8,877 Views

13:19 min

March 13, 2021

DOI:

13:19 min
March 13, 2021

30 Views
,

Transcript

Automatically generated

På grund av de problem och kostnader som är förknippade med manuella kostbedömningsmetoder krävs automatiserade lösningar för att underlätta och påskynda arbetet och öka dess kvalitet. Idag kan automatiserade lösningar spela in en persons kostintag på ett mycket enklare sätt, till exempel genom att ta en bild med en smartphone-kamera. I den här artikeln kommer vi att fokusera på sådana bildbaserade metoder för kostbedömning med hjälp av djupa neurala nätverk, som representerar den senaste tekniken på fältet.

I synnerhet kommer vi att presentera tre lösningar, en för erkännande av livsmedelsbilder, en för bildsegmentering av livsmedelsrepliker eller falsk mat och en för bildsegmentering av riktig mat. Samla en lista över olika livsmedel och drycker som kommer att vara utdata från matbildigenkänningsmodellen. Spara mat- och dryckeslistan i en textfil, till exempel TXT eller CSV.

Observera att textfilen som används av författarna till denna artikel finns i tilläggsfilerna under livsmedel prick TXT och innehåller en lista över 520 slovenska livsmedel. Skriv eller ladda ned ett Python-skript som använder Googles anpassade sök-API för att ladda ned bilder av varje matobjekt från listan och sparar dem i en separat mapp för varje matställe. Observera att Python-skriptet som används av författarna till den här artikeln finns i tilläggsfilerna under nedladdningsbilder dot pi.

Om det här skriptet används måste nyckelrad åtta för utvecklare i Python-skriptkoden och den anpassade sökmotor-ID-variabeln CX rad 28 i Python-skriptkoden ersättas med värden som är specifika för Det Google-konto som används. Kör Python-skriptet från steg 1.1.3. Skapa en ny version av varje bild från matbildsdatauppsättningen genom att rotera den med 90 grader med hjälp av CLoDSA-biblioteket.

Observera att Python-skriptet som innehåller alla CLoDSA-kommandon som används av författarna till den här artikeln finns i en fil som ingår i tilläggsfilerna under NutriNet-understrecket augmentation dot pi. Skapa en ny version av varje bild från matbildsdatauppsättningen genom att rotera den med 180 grader med hjälp av CLoDSA-biblioteket. Skapa en ny version av varje bild från matbildsdatauppsättningen genom att rotera den med 270 grader med hjälp av CLoDSA-biblioteket.

Skapa en ny version av varje bild från matbildsdatauppsättningen genom att vända den vågrätt med hjälp av CLoDSA-biblioteket. Skapa en ny version av varje bild från matbildsdatauppsättningen genom att lägga till slumpmässigt färgljud i den med hjälp av CLoDSA-biblioteket. Skapa en ny version av varje bild från matbildsdatauppsättningen genom att zooma in den med 25 % med CLoDSA-biblioteket.

Spara bilder från steg 1.3.1 till 1.3.6 tillsammans med originalbilderna i en ny datauppsättning för matbilder. Totalt sju varianter per matbild. Importera datauppsättningen för livsmedelsbilder från steg 1.3.7 till NVIDI-siffermiljön och dela upp datauppsättningen i delmängder för utbildning, validering och testning.

Kopiera och klistra in definitionstexten för NutriNet-arkitekturen i NVIDIA-siffror. Observera att NutriNet-arkitekturdefinitionen finns i tilläggsfilerna under NutriNet dot proto TXT. Du kan också definiera utbildningshyperparametrar i NVIDIA-siffror eller använda standardvärdena.

De hyperparametrar som används av författarna till den här artikeln finns i en fil som ingår i tilläggsfilerna under NutriNet understryker hyperparametrar punkt proto TXT. Kör träningen av NutriNet-modellen. När träningen är klar bör du ta den bäst presterande NutriNet-modell iterationen.

Den här modellen används sedan för att testa prestanda för den här metoden. Observera att det finns flera sätt att avgöra den bäst presterande modell iterationen. Se artikeltexterna för mer information.

Få en datauppsättning falska matbilder. Observera att författarna till den här artikeln fick bilder av falsk mat som samlades in i en labbmiljö. Kommentera varje matbild manuellt på pixelnivå.

Varje pixel i bilden måste innehålla information om vilken matklass den tillhör. Observera att det finns många verktyg för att uppnå detta. Författarna till den här artikeln använde JavaScript-segmentanteckningsanteckning.

Resultatet av det här steget är en anteckningsbild för varje bild från matbildsdatauppsättningen, där varje pixel representerar en av matklasserna. Utför samma steg som i avsnitt 1.3, men bara på bilder från träningsundergruppen i datauppsättningen för matbilder. Observera att med undantag för steg 1.3.5 måste alla dataförstoringssteg också utföras på motsvarande anteckningsbilder.

Utför samma steg som i avsnitt 1.4 med undantag för steg 1.4.2. I stället för det steget utför steg 2.3.2 och 2.3.3. Observera att de utbildningshyperparametrar som används av författarna till den här artikeln finns i filen som ingår i tilläggsfilerna under FCN-8S-understreck hyperparametrar prick proto TXT.

Kopiera och klistra in definitionstexten för FCN-8S-arkitekturen i NVIDIA-siffror. Ange de förtränade FCN-8S-modellvikterna i NVIDIA-siffror. Observera att dessa modellvikter var förtränade på Pascal visuella objektklasser datauppsättning och finns på internet.

Ladda ner datauppsättningen för matbilder från food recognition challenge-webbplatsen. Utför steg 1.3.1 till 1.3.4. Observera att Python-skriptet som innehåller alla CLoDSA-kommandon som används av författarna till den här artikeln finns i filen som ingår i tilläggsfilerna under FRC-understrecksförstoringspunkt pi.

Skapa en ny version av varje bild från matbildsdatauppsättningen genom att lägga till gaussisk oskärpa i den med hjälp av CLoDSA-biblioteket. Skapa en ny version av varje bild från matbildsdatauppsättningen genom att skärpa den med hjälp av CLoDSA-biblioteket. Skapa en ny version av varje bild från mat avbildningsdatauppsättningen genom att tillämpa gammakorrigering på den med hjälp av CLoDSA-biblioteket.

Spara bilder från steg 3.2.1 till 3.2.4 tillsammans med originalbilderna i en ny datauppsättning för matbilder. Totalt åtta varianter per matbild. Spara bilder från steg 3.2.2 till 3.2.4 tillsammans med originalbilderna i en ny datauppsättning för matbilder.

Totalt fyra varianter per matbild. Ändra den befintliga HTC ResNet 101-arkitekturdefinitionen från MM Detection-biblioteket så att den accepterar matavbildningsdatauppsättningarna från steg 3.1.1, 3.2.5 och 3.2.6. Du kan också ändra ARKITEKTURDEFINITIONEN FÖR HTC ResNet 101 från steg 3.3.1 för att definiera träningshyperparametrar eller använda standardvärdena.

Observera att den modifierade HTC ResNet 101-arkitekturdefinitionen finns i tilläggsfilerna under HTC-understrecket ResNet 101 dot pi. Kör utbildningen av HTC ResNet 101-modellen på matbildsdatauppsättningarna från steg 3.1.1 med hjälp av MM Detection-biblioteket. När träningen från steg 3.3.3 är klar, ta den bäst presterande HTC ResNet 101-modell iterationen och finjustera den genom att köra nästa fas av träningen på matbildsdatauppsättningen från steg 3.2.5.

Observera att det finns flera sätt att avgöra den bäst presterande modell iterationen. Se artikeltexterna för mer information. Detta är också relevant för nästa steg.

När träningen från steg 3.3.4 är klar, ta den bäst presterande HTC ResNet 101-modell iterationen och finjustera den genom att köra nästa fas av träningen på matbildsdatauppsättningen från steg 3.2.6. När träningen från steg 3.3.5 är klar, ta den bäst presterande HTC ResNet 101-modell iterationen och finjustera den genom att återigen köra nästa fas av träningen på matbildsdatauppsättningen från steg 3.2.5. När utbildningen från steg 3.3.6 är klar, ta den bäst presterande HTC ResNet 101-modell iterationen.

Den här modellen används sedan för att testa prestanda för den här metoden. Observera att steg 3.3.3 till 3.3.7 gav de bästa resultaten för de ändamål som definieras av författarna till denna artikel. Experiment behövs för varje data uppsättning för att hitta den optimala sekvensen av utbildnings-och data förstärknings steg.

Efter att ha testat trendmodellen uppnådde NutriNet en klassificeringsnoggrannhet på 86,72%på igenkänningsdatauppsättningen, vilket var cirka 2% högre än AlexNet och något högre än GoogLeNet, som var populära djupa neurala nätverksarkitekturer på den tiden. För att mäta noggrannheten hos FCN-8S-modellen för falska matbildssegmentering användes pixelnoggrannhetsmåttet. Noggrannheten hos den utbildade FCN-8S-modellen var 92,18%Den ResNet-baserade lösningen för segmentering av livsmedelsbilder utvärderades med hjälp av precisionsmåttet som definieras i Food Recognition Challenge.

Med hjälp av detta mått uppnådde tågmodellen en genomsnittlig precision på 59,2%som rankades som tvåa i Food Recognition Challenge. Under de senaste åren har djupa neurala nätverk validerats flera gånger som en lämplig lösning för att känna igen matbilder. Vårt arbete som presenteras i den här artikeln tjänar till att ytterligare bevisa detta.

Metoden med igenkänning av en enda utgång för livsmedelsbilder är enkel och kan användas för enkla applikationer. Medan metoden för segmentering av matbilder kräver mer arbete med att förbereda kommenterade bilder, men det är mycket mer tillämpligt på verkliga bilder. I framtiden kommer vårt mål att vara att ytterligare utvärdera de utvecklade procedurerna för verkliga bilder.

Det första steget mot verklig validering tillhandahölls av Food Recognition Challenge, som inkluderade en datauppsättning med verkliga matbilder. Men ytterligare arbete måste göras för att validera detta tillvägagångssätt på matbilder från hela världen och i samarbete med dietister.

Summary

Automatically generated

Målet med det arbete som presenteras i denna artikel är att utveckla teknik för automatiserad igenkänning av mat och dryck från bilder tagna av mobila enheter. Tekniken består av två olika metoder - den första utför matbildsigenkänning medan den andra utför segmentering av matbilder.

Related Videos

Read Article