Så fungerar AI-pipelinen för livsmedelsigenkänning: Från foto till näringsdata
En detaljerad teknisk genomgång av hela AI-pipelinen för livsmedelsigenkänning: från kamerainmatning genom CNN-funktionsextraktion, livsmedelsklassificering, portionsuppskattning och uppslagning av näringsdatabas till slutlig kaloriberäkning.
När du tar en bild av din lunch och ser en fullständig makroöversikt dyka upp på mindre än två sekunder, är det lätt att ta resultatet för givet. Men bakom den till synes omedelbara avläsningen finns en flerledad pipeline som förflyttar din bild genom kamerainmatning, förbehandling, neurala nätverksinferenser, klassificering, portionsuppskattning, databasuppslagning och slutlig kaloriberäkning innan något når din skärm. Varje steg löser ett distinkt problem, förlitar sig på sina egna algoritmer och överlämnar ett specifikt resultat till nästa steg.
Denna artikel spårar hela resan från att trycka på avtryckaren till näringsetiketten. Under vägen kommer vi att namnge de arkitekturer, tekniker och ingenjörsval som gör varje steg möjligt, och vi kommer att lyfta fram där Nutrola har introducerat sina egna innovationer för att öka noggrannheten och hastigheten bortom branschstandarder.
Steg 1: Kamerainmatning och bildförvärv
Allt börjar i det ögonblick en användare öppnar kamerans sökare och ramar in en tallrik mat. Moderna smartphones fångar bilder med upplösningar på 12 till 48 megapixlar, vilket ger rådata från sensorn som kodar färgintensitetsvärden över en Bayer-filtermosaik. Enhetens bildsignalprocessor (ISP) demosaikar dessa data, tillämpar vitbalans, minskar brus och ger ut en standard JPEG- eller HEIF-fil på en bråkdel av en sekund.
Två hårdvarufunktioner påverkar alltmer detta steg. För det första kan LiDAR-sensorer på senaste iPhone Pro och vissa Android-flaggskepp fånga en komplementär djupkarta tillsammans med RGB-bilden. Dessa djupdata blir värdefulla längre fram under portionsuppskattningen. För det andra ger enheter med tid-i-flyg-sensorer liknande men grövre djupinformation som pipelinen fortfarande kan utnyttja när LiDAR inte är tillgängligt.
Pipelinen tar emot RGB-bilden och, när det är tillgängligt, djupkartan som ett parat indata. Om enheten inte har någon djupsensor fortsätter pipelinen med endast RGB och kompenserar senare med hjälp av monokulär djupuppskattning.
Nyckelutdata för detta steg
En högupplöst RGB-bild (och eventuellt en djupkarta) som representerar scenen framför användaren.
Steg 2: Bildförbehandling
Råkamerautdata är inte redo för neurala nätverksinferenser. Förbehandling omvandlar bilden till en standardiserad tensor som modellen förväntar sig.
Ändring av storlek och beskärning
De flesta modeller för livsmedelsigenkänning accepterar indata med en fast upplösning, vanligtvis 224x224, 384x384 eller 512x512 pixlar beroende på arkitekturen. Pipelinen ändrar storlek på bilden till denna målupplysning samtidigt som den bevarar bildförhållandet, genom att tillämpa letterboxing eller centrumbeskärning vid behov. Bicubisk interpolation är den standardmetod för omprovning eftersom den bevarar fina texturdetaljer bättre än bilineära alternativ.
Normalisering
Pixlar omvandlas från intervallet 0-255 till flyttal och normaliseras sedan med hjälp av medelvärdet och standardavvikelsen för träningsdatasetet. För modeller som är förtränade på ImageNet tillämpas de kanoniska normaliseringsvärdena (medelvärde på [0.485, 0.456, 0.406] och standardavvikelse på [0.229, 0.224, 0.225] för R-, G- och B-kanalerna respektive). Denna normalisering centrerar indatafördelningen runt noll och skalar den till enhetlig varians, vilket stabiliserar gradientflödet under träning och säkerställer konsekvent inferensbeteende.
Färgrum och augmentationsartefakter
Under träningen tillämpar pipelinen omfattande dataaugmentation: slumpmässiga rotationer, horisontella vändningar, färgjusteringar, Gaussisk oskärpa och bortklippta områden. Vid inferenstid är dessa augmentationer inaktiverade, men modellen har lärt sig att vara invariant mot den typ av visuell brus de simulerar. Detta innebär att ett foto taget under varmt restaurangljus och ett foto taget under kallt fluorescerande kontorsljus båda kommer att producera pålitliga funktionsrepresentationer.
Nyckelutdata för detta steg
En normaliserad flyttalstensor med fasta rumsliga dimensioner, redo för det neurala nätverksryggraden.
Steg 3: CNN-funktionsextraktion
Detta är den beräkningsmässiga kärnan i pipelinen. Ett djupt konvolutionellt neuralt nätverk (eller allt mer en vision transformer) bearbetar den förbehandlade tensorn och producerar en tät funktionsvektor som kodar det visuella innehållet i bilden i en form som de nedströms klassificerings- och detektionshuvudena kan tolka.
Ryggverksarkitekturer
Flera ryggverksarkitekturer har visat sig vara effektiva för livsmedelsigenkänning:
EfficientNet använder sammansatt skalning för att balansera nätverksdjup, bredd och indataupplösning. EfficientNet-B4 och B5 är populära val eftersom de ger stark noggrannhet till en beräkningskostnad som är genomförbar på mobil hårdvara när de kombineras med kvantisering. Nutrola använder en EfficientNet-baserad ryggrad som har finjusterats på ett proprietärt dataset av livsmedelsbilder, vilket uppnår en fördelaktig balans mellan latens och top-1 noggrannhet.
Vision Transformers (ViT) delar upp bilden i fasta storlekar av patchar (vanligtvis 16x16 pixlar), projicerar varje patch till en inbäddning och bearbetar sekvensen av inbäddningar genom lager av flerhuvud självuppmärksamhet. ViTs är utmärkta på att fånga långväga rumsliga relationer, till exempel att förstå att den bruna skivan bredvid de gröna bladen är en hamburgare snarare än en chokladkaka, eftersom den omgivande kontexten inkluderar ett bröd och sallad. Hybridmodeller som DeiT (Data-efficient Image Transformer) och Swin Transformer har minskat datakraven och beräkningskostnaden för rena ViTs, vilket gör dem genomförbara för produktionssystem för livsmedelsigenkänning.
MobileNetV3 är optimerad för inferens på enheten med djupseparerade konvolutioner och hårdvaru-anpassad neural arkitektursökning. Den fungerar som ryggraden i latenskritiska vägar där modellen måste köras helt på enheten utan nätverksanrop.
Funktionspyramidnätverk
Eftersom livsmedelsobjekt kan variera enormt i uppenbar storlek inom en och samma bild (en stor pizza bredvid en liten skål med dipp), använder pipelinen ett Funktionspyramidnätverk (FPN) för att extrahera funktioner på flera rumsliga skalor. FPN bygger en top-down-väg med laterala kopplingar från ryggverks mellanliggande funktionskartor, vilket producerar en uppsättning av fler-skala funktionskartor som är lika uttrycksfulla för att upptäcka små garneringar och stora huvudrätter.
Nyckelutdata för detta steg
En uppsättning av fler-skala funktionskartor (eller en enda poolad funktionsvektor för klassificeringsuppgifter) som kodar de visuella semantiken för varje region i bilden.
Steg 4: Multi-label livsmedelsklassificering och detektion
Riktiga måltider innehåller sällan en enda livsmedelsartikel. En typisk middagstallrik kan innehålla grillad lax, ångad broccoli, brunt ris och en citronskiva. Pipelinen måste upptäcka, lokalisera och klassificera varje distinkt livsmedelsartikel i ramen.
Objektigenkänning med YOLO och DETR
Pipelinen tillämpar ett objektigenkänningshuvud ovanpå de extraherade funktionskartorna. Två familjer av detektorer dominerar detta område:
YOLO (You Only Look Once) utför detektion i ett enda framåtriktat steg genom att dela upp bilden i ett rutnät och förutsäga begränsningslådor och klassprobabiliteter för varje rutnätscell samtidigt. YOLOv8 och dess efterföljare är särskilt väl lämpade för mobilutplacering eftersom de bearbetar hela bilden i ett enda steg snarare än att föreslå och sedan förfina områden. Nutrola använder ett YOLO-baserat detektionshuvud som är justerat på över 15 000 livsmedelsklasser som spänner över globala kök.
DETR (Detection Transformer) behandlar objektigenkänning som ett uppsättningsprediktionsproblem, med hjälp av en transformator-encoder-decoder-arkitektur för att direkt ge en uppsättning detektioner utan behov av ankarlådor eller icke-maximal undertryckning. DETR hanterar överlappande livsmedel mer elegant än ankardrivna metoder eftersom dess uppsättningsbaserade förlust naturligt undviker dubblettprediktioner.
Semantisk segmentering för blandade rätter
För sammansatta rätter som sallader, wokade rätter och kornskålar där distinkta ingredienser överlappar och blandas, är begränsningslådor för grova. Pipelinen växlar till en semantisk segmenteringsgren, ofta baserad på en U-Net eller DeepLabv3+-arkitektur, som klassificerar varje pixel i bilden. Denna pixelnivåklassificering gör det möjligt för systemet att uppskatta andelen av varje ingrediens i en blandad rätt även när inga tydliga gränser separerar dem.
Konfidensbedömning och kandidatranking
Varje detektion kommer med en konfidenspoäng. Pipelinen tillämpar en tröskel (vanligtvis 0,5 till 0,7 beroende på tillämpningen) för att filtrera bort lågkonfidenta förutsägelser. När den högsta förutsägelsen är osäker kan systemet presentera de tre till fem bästa kandidaterna för användaren för bekräftelse, vilket minskar felaktighetsgrader utan att kräva manuell inmatning.
Nutrolas klassificeringsmotor inkluderar en användarkontextmodul som tar hänsyn till användarens tidigare måltider, kökspreferenser, geografiska plats och tid på dagen. Om en användare ofta loggar mexikansk mat och modellen är osäker mellan en mjöl tortilla och en naan, justerar kontextmodulen sannolikheten mot tortillan. Detta personaliseringslager minskar mätbart felklassificeringsgrader över tid.
Nyckelutdata för detta steg
En lista över upptäckta livsmedelsartiklar, var och en med en klassetikett, en begränsningslåda eller pixelmask, och en konfidenspoäng.
Steg 5: Portionsstorleksuppskattning
Att veta att en tallrik innehåller grillad kyckling och ris är inte tillräckligt. Pipelinen måste uppskatta hur mycket av varje livsmedel som finns, eftersom 100 gram kycklingbröst och 300 gram kycklingbröst skiljer sig med mer än 300 kalorier.
Monokulär djupuppskattning
När ingen hårdvarudjupsensor är tillgänglig använder pipelinen en monokulär djupuppskattningsmodell (vanligtvis baserad på MiDaS eller DPT-arkitekturen) för att härleda en djupkarta från RGB-bilden ensam. Dessa modeller lär sig att förutsäga djup från kontextuella ledtrådar som objektöverlappar, relativ storlek, texturgradienter och försvinnande punkter. Den härledda djupkartan, även om den är mindre exakt än LiDAR-data, är tillräcklig för att approximera den tredimensionella formen av mat på en tallrik.
Referensobjektskala
Ett fotografi har ingen inneboende skala. Pipelinen löser detta genom att upptäcka referensobjekt med kända dimensioner i ramen. Tallrikar (vanligtvis 25 till 27 cm i diameter), standardbestick, skålar och till och med kanter på smartphones kan ankra skalan. Genom att passa en ellips till den upptäckta tallrikens kant och tillämpa projektiv geometri för att härleda betraktningsvinkeln, rekonstruerar pipelinen verkliga avstånd från pixelmått.
Volym-till-vikt-konvertering
Med livsmedlets tredimensionella form uppskattad beräknar pipelinen volymen genom att integrera djupprofilen över livsmedlets pixelmask. Den konverterar sedan volymen till vikt med hjälp av livsmedelsspecifika densitetstabeller. En kopp bladspenat väger mycket mindre än en kopp hummus, så densitetsuppslaget är avgörande för noggrannhet.
Nutrola upprätthåller en proprietär densitetsdatabas som täcker tusentals livsmedel i olika beredningstillstånd (rå, tillagad, blandad, fryst) och använder den för att konvertera uppskattade volymer till gramvikter med högre noggrannhet än generiska densitetstabeller.
Nyckelutdata för detta steg
En uppskattad vikt i gram för varje upptäckt livsmedelsartikel.
Steg 6: Uppslagning av näringsdatabas
När varje livsmedelsartikel har klassificerats och vägts, frågar pipelinen en näringsdatabas för att hämta makronärings- och mikronäringsprofilen per 100 gram av det livsmedlet.
Databasarkitektur
Högkvalitativa näringsdatabaser hämtar information från statliga källor som USDA FoodData Central, UK Nutrient Databank och nationella motsvarigheter från dussintals länder. Dessa källor tillhandahåller laboratorieanalyserade näringsvärden för tusentals livsmedelsartiklar i standardiserad form.
Nutrolas databas går längre än dessa statliga källor genom att inkludera tillverkarens data från över 1,2 miljoner varumärkesprodukter, restaurangmenyartiklar med näringsinformation verifierad genom partnerskap, och gemenskapsinlämningar som passerar en flerledad verifieringspipeline inklusive korsreferenser, avvikelseupptäckter och dietistgranskning. Resultatet är en enhetlig databas med över 2 miljoner livsmedelsinlägg med näringsdata normaliserad till ett konsekvent schema.
Fuzzy Matching och entitetsupplösning
Klassificeringsmodellen ger en livsmedelsetikett som "grillad kycklinglår med skinn" som måste matchas med rätt databaspost. Detta är ett icke-trivialt entitetsupplösningsproblem eftersom samma livsmedel kan ha dussintals namn över regioner och språk. Pipelinen använder inbäddningsbaserad semantisk sökning för att hitta den närmaste databasposten. En finjusterad textencoder kartlägger både den förutsagda livsmedelsetiketten och varje databaspostnamn till samma vektorrum, och den närmaste grannen (mätt med kosinuslikhet) väljs.
När flera nära matchningar finns (till exempel "grillad kycklinglår med skinn" kontra "grillad kycklinglår, rostad, skinnet ätet"), väljer systemet den post vars tillagningsmetod bäst matchar de visuella ledtrådar som upptäckts i bilden.
Nyckelutdata för detta steg
En komplett näringsprofil (kalorier, protein, kolhydrater, fett, fiber och mikronäringsämnen) per 100 gram för varje upptäckt livsmedelsartikel.
Steg 7: Makro- och kaloriberäkning
Det sista beräkningssteget är enkel aritmetik, men det är där fel från varje föregående steg samlas. Pipelinen multiplicerar näringsvärdena per 100 gram med den uppskattade vikten av varje livsmedelsartikel, och summerar sedan resultaten över alla artiklar för att producera en total måltidsöversikt.
Beräkningen
För varje livsmedelsartikel:
- Kalorier = (uppskattade gram / 100) x kalorier per 100 g
- Protein = (uppskattade gram / 100) x protein per 100 g
- Kolhydrater = (uppskattade gram / 100) x kolhydrater per 100 g
- Fett = (uppskattade gram / 100) x fett per 100 g
Dessa värden per artikel summeras för att producera måltidens totala värde.
Felpropagering och konfidensintervall
Eftersom varje föregående steg introducerar viss osäkerhet, presenterar Nutrola inte en enda punktuppskattning som absolut sanning. Systemet beräknar konfidensintervall genom att propagera klassificeringskonfidenspoängen och osäkerheten i portionsuppskattningen genom beräkningen. Om klassificeringskonfidensen är hög men portionsuppskattningen är osäker (till exempel, om maten är hopad i en djup skål som döljer volymen), återspeglar systemet detta genom att bredda konfidensintervallet och kan be användaren bekräfta portionen.
Denna transparens är ett medvetet designval. Istället för att ge en falsk känsla av precision visar Nutrola ett intervall (till exempel "420 till 510 kcal") när de underliggande uppskattningarna motiverar det, vilket hjälper användare att utveckla en realistisk förståelse för sitt intag.
Nyckelutdata för detta steg
Totala kalorier och makronäringsöversikt för måltiden, med valfria konfidensintervall.
Steg 8: Användarvisning och loggning
Det sista steget renderar resultaten i användargränssnittet. De upptäckta livsmedelsartiklarna listas med sina individuella kalorier och makrovärden, och måltidens total visas tydligt. Användaren kan trycka på vilken artikel som helst för att korrigera den eller justera portionen, och dessa korrigeringar matas tillbaka i personaliseringsmodellerna för att förbättra framtida förutsägelser.
På Nutrola inkluderar visningen ett visuellt överlägg på det ursprungliga fotot som visar begränsningslådor eller segmentmarkeringar för varje upptäckt livsmedel, vilket gör det omedelbart klart vad AI identifierade och var. Denna visuella återkoppling bygger förtroende och gör fel lätta att upptäcka och korrigera.
Den loggade måltiden lagras i användarens dagliga näringsdagbok och bidrar till löpande totalsummor för kalorier, protein, kolhydrater, fett och spårade mikronäringsämnen. Data synkroniseras till Apple Health, Google Fit och andra anslutna plattformar genom standardiserade hälso-data-API:er.
Nyckelutdata för detta steg
En fullständigt renderad måltidsloggpost med per-artikel och total näringsdata, visuella överlägg och synkronisering till hälso-plattformar.
Sammanfattning av pipelinen
| Steg | Kärnteknologi | Inmatning | Utdata |
|---|---|---|---|
| 1. Kamerainmatning | Enhetens ISP, LiDAR/ToF-sensorer | Ljus från scenen | RGB-bild + valfri djupkarta |
| 2. Bildförbehandling | Bicubisk ändring av storlek, kanalnormalisering | Rå bild | Normaliserad tensor (t.ex. 384x384x3) |
| 3. Funktionsextraktion | EfficientNet, ViT, Swin Transformer, FPN | Normaliserad tensor | Fler-skala funktionskartor |
| 4. Livsmedelsklassificering | YOLOv8, DETR, DeepLabv3+, användarkontext | Funktionskartor | Märkta livsmedelsartiklar med begränsningslådor/masker |
| 5. Portionsuppskattning | MiDaS djupuppskattning, referensskalning, densitetstabeller | RGB + djup + livsmedelsmasker | Vikt i gram per livsmedelsartikel |
| 6. Databasuppslagning | Inbäddningsbaserad semantisk sökning, USDA/varumärkesdatabaser | Livsmedelsetiketter + tillagningsledtrådar | Näringsprofiler per 100 g |
| 7. Kaloriberäkning | Viktad aritmetik, osäkerhetspropagering | Gramm uppskattningar + näringsprofiler | Totala kalorier och makron med konfidensintervall |
| 8. Användarvisning | UI-rendering, hälso-data-synkroniserings-API:er | Beräknad näringsdata | Måltidsloggpost med visuellt överlägg |
Var Nutrolas innovationer passar in
Flera av de steg som beskrivs ovan inkluderar innovationer specifika för Nutrolas implementering:
Personlig klassificeringskontext. Användarkontextmodulen i Steg 4 använder historiska måldata, kökspreferenser, plats och tid på dagen för att avkoda osäkra förutsägelser. Detta är inte standard i de flesta livsmedelsigenkänningspipelines och ger mätbara förbättringar i verklig noggrannhet jämfört med kontextfria modeller.
Proprietär densitetsdatabas. Volym-till-vikt-konverteringen i Steg 5 förlitar sig på en densitetsdatabas som täcker livsmedel över flera beredningstillstånd. Generiska system använder ofta en enda genomsnittlig densitet per livsmedel, vilket introducerar systematiska fel för artiklar som tillagade kontra råa grönsaker eller avrunna kontra icke-avrunna konserverade varor.
Konfidensmedveten visning. Istället för att visa ett enda kalorinummer, lyfter Nutrola fram osäkerhet när den finns. Denna ärliga metod minskar användarens frustration när uppskattningar verkar fel, eftersom intervallet i sig kommunicerar att systemet är mindre säkert om en viss artikel.
Enhetlig multi-källors näringsdatabas. Den 2-miljoner-inläggsdatabasen i Steg 6 slår samman statliga laboratoriedata, varumärkesprodukter och verifierade gemenskapsinlämningar till ett enda normaliserat schema, vilket ger pipelinen tillgång till mycket fler livsmedelsinlägg än någon enskild källa tillhandahåller.
Kontinuerligt lärande från korrigeringar. Varje användarkorrigering i Steg 8 matas tillbaka i klassificerings- och portionsmodeller under periodiska omträningscykler, vilket skapar en cykel där noggrannheten förbättras i takt med att användarbasen växer.
Latens och on-device överväganden
End-to-end-latens är av stor betydelse för användarupplevelsen. Om pipelinen tar mer än två till tre sekunder uppfattar användarna den som långsam och kan återgå till manuell loggning. Flera ingenjörsstrategier håller latensen låg:
Modellkvantisering konverterar 32-bitars flyttalsvikter till 8-bitars heltal, vilket minskar modellens storlek med ungefär 4x och påskyndar inferens på mobila neurala processorenheter (NPU) med minimal noggrannhetsförlust. Nutrola tillämpar efterträning kvantisering på både funktionsutvinningsryggraden och detektionshuvudet.
Inferens på enheten eliminerar nätverksanrop helt för de beräkningsintensiva stegen (funktionsutvinning och detektion). Apples Core ML och Androids NNAPI tillhandahåller hårdvaruaccelererade inferensvägar som pipelinen riktar sig mot. Endast de lätta databasuppslags- och kaloriberäkningsstegen kräver ett serveranrop, och även dessa kan falla tillbaka på en lokal cache för offline-användning.
Spekulativ exekvering påbörjar förbehandling och funktionsutvinning medan kameraförhandsvisningen fortfarande är aktiv, så när användaren trycker på avtryckaren har pipelinen redan delvis bearbetat ramen. Denna teknik sparar flera hundra millisekunder av den upplevda latensen.
Noggrannhetsmått och verklig prestanda
På standardakademiska mått som Food-101, ISIA Food-500 och Nutrition5k uppnår moderna pipeliner top-1 klassificeringsnoggrannhet mellan 85 och 92 procent och portionsuppskattningsfel inom 15 till 25 procent av den verkliga vikten. Verklig prestanda varierar eftersom användarsubmitterade foton är brusigare än kuraterade dataset: dålig belysning, partiell skymning, ovanliga vinklar och ovanliga regionala rätter försämrar noggrannheten.
Nutrolas interna tester på en uppsättning av 50 000 verkliga användarfoton visar en top-1 klassificeringsnoggrannhet på 89 procent och ett medianfel för portionsuppskattning på 18 procent. När de tre bästa kandidaterna beaktas ökar klassificeringsnoggrannheten till 96 procent, vilket är anledningen till att korrigeringsgränssnittet tydligt visar alternativa förslag.
Dessa siffror fortsätter att förbättras med varje omträningscykel när korrigeringsfeedbackcykeln ackumulerar fler märkta data från verklig användning.
Vanliga frågor
Hur lång tid tar hela pipelinen från foto till näringsdata?
På moderna smartphones med dedikerad neurala processingshårdvara slutförs pipelinen vanligtvis på 1,0 till 2,5 sekunder. Den största delen av den tiden spenderas på funktionsutvinning och objektigenkänning i Steg 3 och 4. Förbehandling och kaloriberäkning är nästan omedelbara, och databasuppslagning tillför endast 50 till 150 millisekunder beroende på nätverksförhållanden eller om en lokal cache används. Nutrolas spekulativa exekveringssystem, som påbörjar bearbetning av kameraförhandsvisningen innan användaren trycker på avtryckaren, kan minska den upplevda latensen till under en sekund i många fall.
Hur noggrann är AI-livsmedelsklassificering jämfört med manuell loggning?
AI-livsmedelsklassificering uppnår top-1 noggrannhet mellan 85 och 92 procent på standardmått, och top-3 noggrannhet över 95 procent. Manuell loggning, även om den teoretiskt är exakt när den görs noggrant, lider av systematisk underrapportering på 10 till 45 procent enligt publicerad kostnadsforskning. I praktiken tenderar AI-klassificering kombinerat med ett snabbt användarbekräftelsesteg att producera mer konsekventa och mindre partiska resultat än enbart manuell inmatning, särskilt för användare som loggar flera måltider per dag och upplever inmatningströtthet.
Vad händer om AI inte kan identifiera en livsmedelsartikel?
När den högsta konfidensförutsägelsen ligger under systemets tröskel tar pipelinen en smidig fallback-approach. Den presenterar de tre till fem bästa kandidatidentifieringarna och ber användaren att välja den korrekta, eller att skriva ett namn manuellt. Denna användarkorrigering loggas och matas tillbaka i träningspipen under nästa omträningscykel, vilket innebär att varje misslyckande blir en träningssignal som förbättrar framtida förutsägelser. Med tiden, när dessa korrigeringar ackumuleras, expanderar systemets täckning av ovanliga och regionala livsmedel stadigt.
Fungerar pipelinen annorlunda för blandade rätter som sallader eller curryrätter?
Ja. För blandade rätter där individuella ingredienser inte är rumsligt separerbara växlar pipelinen från begränsningslådsdetektion till semantisk segmentering med hjälp av arkitekturer som DeepLabv3+. Denna pixelnivåklassificering uppskattar andelen av varje ingrediens inom det blandade området. För kraftigt blandade rätter som smoothies eller puréer där visuell separation är omöjlig, förlitar sig pipelinen på receptbaserad nedbrytning: den identifierar rätstypen och använder sedan en receptmodell för att uppskatta de sannolika ingrediensproportionerna och deras sammanlagda näringsprofil.
Hur fungerar portionsuppskattning utan en djupsensor?
När ingen LiDAR- eller tid-i-flyg-sensor är tillgänglig använder pipelinen en monokulär djupuppskattningsmodell (såsom MiDaS eller DPT) för att härleda ungefärligt djup från RGB-bilden ensam. Dessa modeller har tränats på miljontals bild-djuppar och kan uppskatta den tredimensionella formen av mat från kontextuella ledtrådar som tallrikens geometri, skuggmönster och texturgradienter. Systemet upptäcker också referensobjekt med kända storlekar, särskilt tallrikar och bestick, för att ankra skalan. Även om monokulär uppskattning är mindre exakt än hårdvarudjupssensorer, håller kombinationen av lärda djupledtrådar och referensskalning portionsuppskattningarna inom ett praktiskt noggrannhetsområde för näringsspårning.
Kan pipelinen hantera flera tallrikar eller måltider i en enda bild?
Objektigenkänningssteget är utformat för att hantera godtyckligt antal livsmedelsartiklar oavsett om de ligger på en tallrik eller flera. YOLO- och DETR-detekteringshuvudena skannar hela bilden och ger oberoende detektioner för varje livsmedelsartikel som hittas, oavsett om de är på en enda middagstallrik, spridda över ett bord med flera rätter eller arrangerade på en bricka. Varje upptäckt artikel bearbetas oberoende genom portionsuppskattning och kaloriberäkning. För bästa noggrannhet rekommenderar Nutrola att fotografera varje tallrik eller skål individuellt så att referensskalningen kan kalibreras per tallrik, men systemet hanterar multi-tallriksscener smidigt när det inte är praktiskt.
Redo att förvandla din näringsspårning?
Gå med tusentals som har förvandlat sin hälsoresa med Nutrola!