Forskningen bakom Nutrolas teknik för livsmedelsigenkänning

Hur identifierar Nutrola mat från ett foto på mindre än tre sekunder? En djupdykning i forskningen inom datorsyn, djupinlärning och näringsvetenskap som driver vår AI.

Medically reviewed by Dr. Emily Torres, Registered Dietitian Nutritionist (RDN)

När du tar en bild av din middag och Nutrola ger en komplett näringsanalys på mindre än tre sekunder, ligger det årtionden av forskning inom datorsyn, näringsvetenskap och AI-teknik bakom. Det som verkar vara ett ögonblick av igenkänning är i själva verket en kedja av specialiserade modeller, där varje modell löser ett specifikt vetenskapligt problem. Från det ögonblick då kamerans slutare klickar till dess att makronutrientvärdena visas på skärmen, passerar din bild genom en pipeline byggd på grundläggande forskning från institutioner som Stanford, MIT, Google DeepMind och ETH Zürichs datorsynslabb.

Denna artikel följer den processen steg för steg och refererar till den verkliga forskningen och de tekniska koncept som gör Nutrolas livsmedelsigenkänning möjlig.

Datorsynspipeline

Nutrolas livsmedelsigenkänning är inte en enda modell. Det är en flerleds pipeline där varje steg hanterar en specifik uppgift, och resultatet från ett steg matas in i nästa.

Steg 1 -- Bildförbehandling. Innan någon neuronnätverk ser din bild genomgår den råa bilden normalisering. Detta inkluderar att ändra storlek till en standardupplösning, justera vitbalans och exponering, samt tillämpa dataförstärkningsmetoder under träningen. Forskning av Krizhevsky, Sutskever och Hinton i deras banbrytande artikel från 2012 om ImageNet visade att förbehandling och förstärkning dramatiskt förbättrar generaliseringen i djupa konvolutionella neuronnät (CNN). Moderna pipelines utökar detta med tekniker som CutMix (Yun et al., 2019) och RandAugment (Cubuk et al., 2020), som lär modellen att vara robust mot skuggning och färgförändringar som är vanliga inom matfotografi.

Steg 2 -- Livsmedelsdetektering och segmentering. När bilden har förbehandlats passerar den genom en objektidentifieringsmodell som identifierar och lokaliserar varje enskild livsmedelsartikel på tallriken. Detta steg bygger tungt på forskning inom regionbaserade konvolutionella neuronnät. Faster R-CNN (Ren et al., 2015) etablerade paradigmet för regionförslagsnätverk, medan nyare arkitekturer som DETR (Carion et al., 2020) från Facebook AI Research använder transformerbaserad uppmärksamhet för att helt eliminera handdesignade komponenter som ankarkartor. För pixelnivåprecision tilldelar semantiska segmenteringsmodeller baserade på arkitekturer som DeepLab (Chen et al., 2017) varje pixel i bilden till en livsmedelskategori, vilket är avgörande för blandade rätter där ingredienser överlappar.

Steg 3 -- Livsmedelsklassificering. Varje detekterad livsmedelsregion klassificeras sedan. Stommen i moderna livsmedelsklassificerare härstammar från arkitekturer som validerats på ImageNet (Deng et al., 2009), datasetet med 14 miljoner märkta bilder som katalyserade djupinlärningsrevolutionen. Livsmedelsspecifika dataset som Food-101 (Bossard et al., 2014), som innehåller 101 000 bilder över 101 kategorier, och UECFOOD-256 (Kawano och Yanai, 2015), som täcker 256 livsmedelskategorier med fokus på japansk mat, ger den domänspecifika träningsdata som behövs för att finjustera dessa allmänna arkitekturer för livsmedelsigenkänning.

Steg 4 -- Portionsuppskattning. Efter att ha identifierat vad som finns på tallriken uppskattar systemet hur mycket av varje artikel som är närvarande. Detta är det svåraste olösta problemet inom forskningen om livsmedelsigenkänning och involverar djupuppskattning och volymberäkning från en enda 2D-bild.

Steg 5 -- Näringsmapping. Slutligen kopplas den klassificerade livsmedelsartikeln och dess uppskattade portionsstorlek till en verifierad näringsdatabas för att producera värden för kalorier, protein, kolhydrater, fett och mikronäringsämnen.

Varje av dessa steg representerar ett distinkt område av aktiv forskning. Avsnitten nedan undersöker de mest tekniskt utmanande stegen i detalj.

Livsmedelsklassificering: Mer än "Det är en sallad"

Att skilja en sallad från en biff är enkelt för vilken modern klassificerare som helst. Den verkliga utmaningen börjar när systemet måste särskilja mellan visuellt liknande rätter: kyckling tikka masala versus smörkyckling, pad thai versus berusade nudlar, eller en grekisk sallad versus fattoush. Dessa rätter delar färger, texturer och strukturella mönster men skiljer sig avsevärt i ingredienser och kaloritäthet.

Överföringsinlärning och domänanpassning

Den vanliga metoden för livsmedelsklassificering bygger på överföringsinlärning, en teknik som formaliserades av Yosinski et al. (2014), där en modell som förtränats på ett stort allmänt dataset som ImageNet finjusteras på livsmedelsspecifika data. De lägre lagren av nätverket, som upptäcker kanter, texturer och grundläggande former, överförs väl mellan domäner. De högre lagren, som kodar semantisk betydelse, tränas om för att lära sig livsmedelsspecifika funktioner som skillnaden mellan glansen hos en stekt yta och den matta ytan hos en ångad.

Forskning av Hassannejad et al. (2016) visade att finjustering av InceptionV3 på Food-101 uppnådde en top-1 noggrannhet på 88,28 procent, en betydande ökning jämfört med tidigare handgjorda funktionsmetoder. Nyare arbete med Vision Transformers (Dosovitskiy et al., 2020) och deras livsmedelsspecifika varianter har drivit noggrannheten på Food-101 över 93 procent.

Fleretikettklassificering för komplexa tallrikar

Riktiga måltider innehåller sällan en enda artikel. En typisk middagstallrik kan innehålla grillad lax, rostad sparris, quinoa och en citronsmörsås. Fleretikettklassificering, där en enda bild kan få flera oberoende etiketter, löser detta problem. Forskning av Wang et al. (2016) om CNN-RNN-arkitekturer för fleretikettklassificering av bilder etablerade ramverk som fångar etikettens samförekomstmönster. Inom livsmedelsområdet innebär detta att modellen lär sig att ris och curry ofta förekommer tillsammans, vilket fungerar som en kontextuell signal som förbättrar noggrannheten för individuella livsmedelsartiklar.

Nutrola utökar detta med ett hierarkiskt klassificeringssystem. Istället för att förutsäga en platt etikett klassificerar systemet först den breda livsmedelskategorin (spannmål, protein, grönsak, sås), och smalnar sedan ner till den specifika artikeln inom den kategorin. Denna tvåstegsmetod minskar förvirringen mellan visuellt liknande artiklar från olika kategorier och speglar hur näringsdatabaser är organiserade.

Portionsuppskattning: 3D-utmaningen

Att identifiera vilken mat som finns på en tallrik löser bara hälften av problemet. En 100-gram portion av kycklingbröst innehåller 165 kalorier. En 250-gram portion innehåller 412 kalorier. Utan noggrann portionsuppskattning ger även perfekt livsmedelsidentifiering opålitliga kaloriberäkningar.

Monokulär djupuppskattning

Att uppskatta volymen av mat från ett enda 2D-foto kräver att systemet drar slutsatser om djup, ett problem som kallas monokulär djupuppskattning. Eigen, Puhrsch och Fergus (2014) publicerade grundläggande arbete som visade att CNN kunde förutsäga pixelvisa djupkartor från enskilda bilder. Nyare forskning från Ranftl et al. (2021) introducerade MiDaS, en modell som tränats på blandade dataset och som producerar robusta relativa djupuppskattningar över olika scener.

För livsmedelsapplikationer gör djupuppskattning att systemet kan särskilja mellan ett tunt lager sås som spridits över en tallrik och en djup skål med soppa. Tillsammans med den kända geometrin av vanliga referensobjekt som tallrikar, skålar och bestick kan djupkartor omvandlas till ungefärliga volymuppskattningar.

Geometriska metoder för volymuppskattning

Forskning från Tokyos universitet (Okamoto och Yanai, 2016) visade att livsmedelsvolym kunde uppskattas genom att passa geometriska primitiva, såsom cylindrar, halvkuglor och rektangulära prismor, till segmenterade livsmedelsregioner. En hög med ris approximera en halvelipsoid. Ett glas mjölk approximera en cylinder. En skiva bröd approximera ett rektangulärt prisma.

Dessa geometriska approximationer, tillsammans med inlärda densitetspriorer (systemet vet att en viss volym av potatismos väger mer än samma volym popcorn), ger viktuppskattningar som forskning har visat ligger inom 15 till 20 procent av den verkliga vikten för de flesta vanliga livsmedel. Nutrola förfinar dessa uppskattningar ytterligare med en egen ensemblemetod som kombinerar geometrisk resonemang med inlärda regressionsmodeller tränade på tiotusentals livsmedelsbilder med kända vikter.

Kalibrering av referensobjekt

Vissa livsmedelsigenkänningssystem använder kända referensobjekt i scenen för skalkalibrering. En standard middagstallrik har en diameter på cirka 26 centimeter. Ett kreditkort mäter 85,6 x 53,98 millimeter. När systemet upptäcker sådana objekt kan det fastställa en verklig skala som avsevärt förbättrar volym- och viktuppskattningar. Forskning av Fang et al. (2016) vid Purdue University visade att tallrikbaserad kalibrering minskade portionsuppskattningsfelet med cirka 25 procent jämfört med okalibrerade metoder.

Den verifierade databaslagret

AI-igenkänning ensam är inte tillräckligt för att ge exakta kaloriberäkningar. Även om en modell uppnår 99 procents noggrannhet i att identifiera grillad kycklingbröst, beror den slutliga näringsinformationen helt och hållet på kvaliteten på den databas den kopplas till.

Här skiljer sig Nutrolas metod från många konkurrenter. De flesta livsmedelsspårningsappar förlitar sig på crowdsourcade databaser där vilken användare som helst kan skicka in näringsinformation. Studier har visat att crowdsourcade livsmedelsdatabaser har felprocent mellan 15 och 30 procent, med vissa poster som skiljer sig från laboratorieverifierade värden med mer än 50 procent för viktiga makronäringsämnen.

Nutrola upprätthåller en 100 procent verifierad näringsdatabas. Varje post korsrefereras med auktoritativa källor inklusive USDA FoodData Central, McCance och Widdowsons sammansättningstabeller som används av Storbritanniens nationella hälsovård, samt peer-reviewed näringsanalyser. Detta innebär att även om AI-igenkänningslagret introducerar en liten felmarginal i livsmedelsidentifiering eller portionsuppskattning, är den näringsdata den kopplar till pålitlig.

Verifieringslagret hanterar också en subtilitet som rena AI-metoder missar: tillagningsmetoden påverkar näringsinnehållet. Ett 150-grams kycklingbröst som grillas innehåller ungefär 165 kalorier, men samma bröst som steks i olivolja innehåller cirka 230 kalorier. Nutrolas databas fångar dessa variationsberoende på tillagning, och igenkänningsmodellen är tränad att särskilja mellan tillagningsmetoder när visuella ledtrådar är närvarande, såsom skillnaden mellan en grillad yta och en stekt yta.

Kontinuerligt lärande och förbättring

Livsmedelsigenkänning är inte ett problem som löses en gång för alla. Kök utvecklas, nya rätter dyker upp och användarnas förväntningar växer. Nutrolas system är utformat för kontinuerlig förbättring genom flera mekanismer grundade i maskininlärningsforskning.

Aktivt lärande

Aktivt lärande, formaliserat av Settles (2009), är en strategi där modellen identifierar de exempel den är minst säker på och prioriterar dessa för mänsklig granskning och märkning. När Nutrolas system stöter på en rätt som det inte kan klassificera med hög säkerhet, flaggas den bilden för expertgranskning. När den har märkts går den in i träningspipen och modellen förbättras exakt där den var svagast.

Denna metod är mycket mer dataeffektiv än att slumpmässigt samla fler träningsbilder. Forskning har konsekvent visat att aktivt lärande kan uppnå motsvarande modellnoggrannhet med 30 till 60 procent mindre märkta data jämfört med slumpmässigt urval.

Hantering av nya livsmedel och regionala kök

En av de största utmaningarna inom livsmedelsigenkänning är att täcka regionala och kulturellt specifika rätter. En modell som tränats främst på västerländsk mat kan ha svårt med sydostasiatiska efterrätter, västafrikanska grytor eller skandinaviska fermenterade livsmedel. Nutrola adresserar detta genom riktade datainsamlingskampanjer fokuserade på underrepresenterade kök, kombinerat med få-skott-lärande tekniker (Wang et al., 2020) som gör att modellen kan lära sig nya livsmedelskategorier från relativt små antal exempel.

Användarfeedback är en kritisk input till denna process. När en användare rättar en felaktigt identifierad mat, matas den korrigeringen tillbaka in i träningspipen. Sammanlagt över miljontals registrerade måltider globalt skapar dessa korrigeringar en kontinuerlig ström av sanningsdata som täcker exakt de livsmedel som riktiga människor äter i sina dagliga liv.

Hur detta översätts till din tallrik

Den forskning som beskrivs ovan ger konkreta fördelar som du upplever varje gång du öppnar Nutrola.

Tre sekunders loggning. Hela pipelinen, från bildförbehandling till näringsuppslag, utförs på mindre än tre sekunder på en modern smartphone. Modelleringsoptimeringstekniker inklusive kvantisering (Jacob et al., 2018) och neural arkitektursökning (Zoph och Le, 2017) gör att komplexa modeller kan köras effektivt på mobil hårdvara utan att kompromissa med noggrannheten.

Hantering av komplexa måltider. Fleretikettidentifiering och semantisk segmentering innebär att du inte behöver fotografera varje livsmedelsartikel separat. En enda bild av en fullpackad middagstallrik ger individuella näringsanalyser för varje komponent.

Kors-kök noggrannhet. Kontinuerligt lärande och riktad datainsamling säkerställer att systemet fungerar oavsett om du äter sushi i Tokyo, tacos i Mexico City, injera i Addis Abeba eller en söndagsstek i London. Modellen förbättras med varje måltid som registreras av Nutrolas globala användarbas.

Progressiv noggrannhetsförbättring. Ju mer du använder Nutrola, desto bättre blir den, både för dig individuellt och för alla användare kollektivt. Aktivt lärande säkerställer att modellen fokuserar sin förbättring på just de fall där den behöver det mest.

Verifierad näringsdata. Till skillnad från appar som förlitar sig på crowdsourcade databaser med okända felprocent, är varje kaloriberäkning som Nutrola returnerar stödd av laboratorieverifierad näringsdata. AI:n identifierar maten; den verifierade databasen säkerställer att siffrorna är korrekta.

FAQ

Hur känner Nutrolas AI igen mat från ett foto?

Nutrola använder en flerleds datorsynspipeline. Din bild passerar först genom bildförbehandling, sedan genom en djupinlärningsdetektionsmodell som identifierar och segmenterar varje livsmedelsartikel på tallriken. Varje artikel klassificeras med hjälp av konvolutionella neuronnät som finjusterats på livsmedelsspecifika dataset, dess portion uppskattas med hjälp av djup- och volymberäkning, och resultatet kopplas till Nutrolas verifierade näringsdatabas för att producera värden för kalorier och makronäringsämnen.

Hur noggrann är Nutrolas teknik för livsmedelsigenkänning?

Nutrolas klassificeringsmodeller uppnår top-1 noggrannhetsgrader över 90 procent på standarder för livsmedelsigenkänning, med top-5 noggrannhet som överstiger 95 procent. För portionsuppskattning ligger systemet vanligtvis inom 15 till 20 procent av den faktiska vikten, vilket är jämförbart med eller bättre än noggrannheten hos utbildade dietister. Tillsammans med Nutrolas verifierade databas ger detta kaloriberäkningar som är betydligt mer pålitliga än manuellt loggande, vilket forskning visar underskattar intaget med 10 till 45 procent.

Vilken forskning och vilka dataset driver Nutrolas AI för livsmedelsigenkänning?

Nutrolas teknik bygger på grundläggande forskning inom datorsyn, inklusive konvolutionella neuronnät som validerats på ImageNet, objektidentifieringsarkitekturer som Faster R-CNN och DETR, samt livsmedelsspecifika dataset inklusive Food-101 och UECFOOD-256. Systemet drar också nytta av forskning om monokulär djupuppskattning för portionsstorlekar och forskning om aktivt lärande för kontinuerlig förbättring av modellen. All näringsdata verifieras mot auktoritativa källor som USDA FoodData Central.

Kan Nutrola känna igen flera livsmedel på en enda tallrik?

Ja. Nutrola använder fleretikettidentifiering och semantisk segmentering för att identifiera och separat analysera varje enskild livsmedelsartikel i en enda bild. Oavsett om din tallrik innehåller två artiklar eller åtta, isolerar systemet var och en, klassificerar dem oberoende, uppskattar deras portion och returnerar en näringsanalys per artikel samt totalsumman för måltiden.

Hur hanterar Nutrola livsmedel från olika kök och kulturer?

Nutrola kombinerar bred täckning av träningsdata med riktad datainsamling för underrepresenterade kök och få-skott-lärande tekniker som gör att modellen kan lära sig nya livsmedelskategorier från relativt små antal exempel. Användarkorrigeringar från Nutrolas globala användarbas matas kontinuerligt tillbaka in i träningspipen, vilket säkerställer att noggrannheten förbättras för de specifika rätter som människor faktiskt äter i varje region och matkultur.

Förbättras Nutrolas livsmedelsigenkänning över tid?

Ja. Nutrola använder aktivt lärande, en maskininlärningsstrategi där systemet identifierar de bilder det är minst säkert på och prioriterar dessa för expertgranskning och omträning. Tillsammans med aggregerad användarfeedback från miljontals registrerade måltider globalt innebär detta att modellen kontinuerligt förbättras. Varje måltid du loggar bidrar till att göra Nutrolas igenkänning mer exakt för alla användare.

Redo att förvandla din näringsspårning?

Gå med tusentals som har förvandlat sin hälsoresa med Nutrola!