Hoe computervisie voedsel herkent: de technologie achter AI-calorietracking

Ontdek hoe convolutionele neurale netwerken en beeldclassificatie AI-voedselherkenning mogelijk maken, waardoor apps zoals Nutrola een simpele foto kunnen omzetten in nauwkeurige caloriegegevens.

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

Elke keer dat je de camera van je telefoon op een bord eten richt en direct een calorieoverzicht ontvangt, wordt er achter de schermen een geavanceerde keten van kunstmatige-intelligentieprocessen geactiveerd. Wat aanvoelt als een simpele tik omvat convolutionele neurale netwerken, multi-label beeldclassificatie en jarenlang onderzoek op het gebied van computervisie. Begrijpen hoe deze technologie werkt, helpt te verklaren waarom AI-gestuurde calorietracking zo nauwkeurig is geworden en waarom deze blijft verbeteren.

Dit artikel ontleedt de kerntechnologie achter AI-voedselherkenning, van de fundamentele bouwstenen van neurale netwerken tot de specifieke technische uitdagingen bij het identificeren van wat er op je bord ligt.

Wat is computervisie en waarom is het belangrijk voor voeding?

Computervisie is een tak van kunstmatige intelligentie die machines traint om visuele informatie uit de echte wereld te interpreteren en te begrijpen. Terwijl mensen moeiteloos een kom havermout van een bord pasta onderscheiden, vereist het aanleren van hetzelfde aan een computer het verwerken van miljoenen gelabelde afbeeldingen en het bouwen van wiskundige modellen van visuele patronen.

Voor voedingsregistratie lost computervisie het grootste pijnpunt bij dieetmonitoring op: het probleem van handmatige gegevensinvoer. Onderzoek gepubliceerd in het Journal of the Academy of Nutrition and Dietetics heeft aangetoond dat handmatige voedselregistratie leidt tot onderrapportage van calorie-inname met 10 tot 45 procent. Door getypte beschrijvingen te vervangen door een foto, neemt computervisie de wrijving weg die ervoor zorgt dat de meeste mensen voedseltracking binnen de eerste twee weken opgeven.

De omvang van het probleem

Voedselherkenning wordt beschouwd als een van de moeilijkere uitdagingen op het gebied van beeldclassificatie vanwege de enorme variatie die ermee gemoeid is:

  • Er zijn duizenden verschillende gerechten in keukens wereldwijd
  • Hetzelfde voedsel kan er dramatisch anders uitzien afhankelijk van de bereidingswijze
  • Verlichting, hoek en presentatie beïnvloeden allemaal het uiterlijk
  • Meerdere voedingsmiddelen delen vaak een bord, waardoor gelijktijdige identificatie nodig is
  • Portiegroottes variëren continu in plaats van in nette categorieën te vallen

Ondanks deze uitdagingen bereiken moderne voedselherkenningssystemen top-5-nauwkeurigheidspercentages van meer dan 90 procent op standaardbenchmarks, wat betekent dat het juiste voedselitem in meer dan negen van de tien gevallen voorkomt in de top vijf suggesties van het systeem.

Convolutionele neurale netwerken: de basis van voedselherkenning

In het hart van bijna elk voedselherkenningssysteem bevindt zich een type deep learning-architectuur dat een convolutioneel neuraal netwerk wordt genoemd, ofwel CNN. Het begrijpen van CNN's is essentieel om te begrijpen hoe je telefoon naar een foto kan kijken en je kan vertellen dat je chicken tikka masala met basmatirijst eet.

Hoe een CNN een afbeelding verwerkt

Een CNN verwerkt een afbeelding via een reeks lagen, die elk ontworpen zijn om steeds complexere visuele kenmerken te detecteren:

Laag 1 - Randdetectie: De eerste convolutielaag leert eenvoudige randen en kleurgradiënten te detecteren. Het kan de gebogen rand van een kom herkennen of de grens tussen een stuk vlees en de saus.

Laag 2 - Textuurherkenning: Diepere lagen combineren randen tot texturen. Het netwerk begint het korrelige oppervlak van bruine rijst te onderscheiden van het gladde oppervlak van witte rijst, of de vezelige textuur van gegrilde kip van de glanzende laag van gebakken kip.

Laag 3 - Vorm- en patroonherkenning: Hogere lagen assembleren texturen tot herkenbare vormen en patronen. Een cirkelvorm met een specifieke textuur kan worden geclassificeerd als een tortilla, terwijl een langwerpige vorm met een andere textuur een soepstengel wordt.

Laag 4 - Objectherkenning: De laatste convolutielagen combineren alle voorgaande informatie om volledige voedselitems te herkennen. Het netwerk heeft geleerd dat een bepaalde combinatie van kleur, textuur, vorm en context overeenkomt met een specifiek voedingsmiddel.

De rol van pooling en feature maps

Tussen convolutielagen verminderen poolinglagen de ruimtelijke dimensies van de gegevens terwijl de belangrijkste kenmerken behouden blijven. Dit dient twee doelen: het maakt de berekening beheersbaar en het biedt een mate van translatie-invariantie, wat betekent dat het netwerk een voedselitem kan herkennen ongeacht waar het in het beeld verschijnt.

De uitvoer van elke convolutielaag wordt een feature map genoemd. Vroege feature maps vangen informatie op laag niveau vast, zoals randen en kleuren, terwijl latere feature maps concepten op hoog niveau coderen, zoals "deze regio bevat spaghetti." Een typisch voedselherkenningsmodel genereert honderden van deze feature maps bij elke laag.

Populaire CNN-architecturen gebruikt in voedselherkenning

Architectuur Jaar Belangrijkste innovatie Typisch gebruik in voedsel-AI
AlexNet 2012 Bewees dat diepe CNN's op schaal werken Vroeg onderzoek naar voedselherkenning
VGGNet 2014 Toonde aan dat diepte ertoe doet Feature-extractie voor voedseldatasets
GoogLeNet/Inception 2014 Multi-schaalverwerking Efficiënte mobiele voedselherkenning
ResNet 2015 Residuele verbindingen voor zeer diepe netwerken Hoge nauwkeurigheid bij voedselclassificatie
EfficientNet 2019 Gebalanceerde schaling van diepte, breedte, resolutie Moderne mobiele voedselherkenningsapps
Vision Transformers 2020 Self-attention voor beeldfragmenten Geavanceerd onderzoek naar voedselherkenning

Van classificatie naar multi-label detectie

Vroege voedselherkenningssystemen behandelden de taak als een eenvoudig classificatieprobleem: gegeven één afbeelding, voorspel één voedsellabel. Maar echte maaltijden zijn zelden zo simpel. Een typische lunch kan een hoofdeiwit, een bijgerecht van groenten, een graanproduct en een saus bevatten, allemaal op één bord.

Objectdetectie voor complexe borden

Moderne voedselherkenningssystemen gebruiken objectdetectieframeworks die meerdere voedselitems binnen één afbeelding kunnen identificeren en lokaliseren. Deze systemen tekenen begrenzingskaders rond elk afzonderlijk voedselitem en classificeren ze onafhankelijk.

Architecturen zoals YOLO (You Only Look Once) en Faster R-CNN zijn aangepast voor voedseldetectie. Deze modellen verdelen de afbeelding in een raster en voorspellen tegelijkertijd zowel de locatie als de klasse van voedselitems, waardoor real-time verwerking op mobiele apparaten mogelijk wordt.

Semantische segmentatie voor precieze grenzen

Voor nog grotere precisie gebruiken sommige systemen semantische segmentatie, waarbij elke pixel in de afbeelding wordt geclassificeerd als behorend tot een specifieke voedselcategorie. Dit is bijzonder nuttig voor gemengde gerechten zoals salades of roerbakgerechten, waar verschillende ingrediënten overlappen en door elkaar lopen.

De Snap & Track-functie van Nutrola gebruikt een combinatie van deze benaderingen. Wanneer je je maaltijd fotografeert, detecteert het systeem eerst individuele voedselregio's, classificeert vervolgens elk ervan en schat ten slotte de hoeveelheid van elk aanwezig item. Deze meerfasige pijplijn stelt het systeem in staat om alles te verwerken, van een simpele banaan tot een complexe maaltijd met meerdere gangen.

Trainingsdata: de brandstof achter nauwkeurige voedselherkenning

Een voedselherkenningsmodel is slechts zo goed als de gegevens waarop het is getraind. Het opbouwen van een hoogwaardige dataset met voedselafbeeldingen is een van de meest uitdagende en arbeidsintensieve aspecten van het ontwikkelen van voedsel-AI.

Openbare benchmarkdatasets

Verschillende openbare datasets hebben de vooruitgang in voedselherkenningsonderzoek aangedreven:

  • Food-101: Bevat 101.000 afbeeldingen verdeeld over 101 voedselcategorieën, veelgebruikt als benchmark
  • ISIA Food-500: Bestrijkt 500 voedselcategorieën met 400.000 afbeeldingen en biedt bredere dekking
  • UEC Food-256: Een Japanse voedseldataset met 256 categorieën, belangrijk voor dekking van de Aziatische keuken
  • Nutrition5k: Koppelt voedselafbeeldingen aan precieze voedingswaarden uit een laboratoriumomgeving

De uitdaging van diversiteit in de echte wereld

Openbare datasets zijn waardevol voor onderzoek, maar vertegenwoordigen niet volledig de verscheidenheid aan voedsel dat mensen wereldwijd eten. Een model dat voornamelijk is getraind op de westerse keuken zal moeite hebben met Zuidoost-Aziatische gerechten, en vice versa. Dit is waarom productie-voedselherkenningssystemen openbare datasets aanvullen met eigen gegevens die zijn verzameld via hun gebruikersbasis.

Nutrola bedient gebruikers in meer dan 50 landen, wat betekent dat het systeem dagelijks een enorme diversiteit aan keukens tegenkomt. Deze wereldwijde gebruikersbasis biedt een continue stroom van voedselafbeeldingen uit de echte wereld die het model helpt zijn herkenning over alle keukens te verbeteren.

Technieken voor data-augmentatie

Om trainingsgegevens kunstmatig uit te breiden en de robuustheid van het model te verbeteren, passen engineers verschillende data-augmentatietechnieken toe:

  • Rotatie en spiegeling: Zorgt ervoor dat het model voedsel vanuit elke hoek herkent
  • Kleurvariatie: Simuleert verschillende lichtomstandigheden
  • Willekeurig bijsnijden: Leert het model gedeeltelijke weergaven van voedsel te herkennen
  • Cutout en mixup: Geavanceerde technieken die het model dwingen zich te richten op meerdere onderscheidende regio's in plaats van te vertrouwen op één enkel visueel kenmerk

Hoe de Snap & Track-technologie van Nutrola werkt

De Snap & Track-functie van Nutrola brengt al deze technologieën samen in een naadloze gebruikerservaring. Dit is wat er gebeurt in de circa twee seconden tussen het nemen van een foto en het zien van je calorieoverzicht:

  1. Beeldvoorverwerking: De foto wordt vergroot of verkleind en genormaliseerd naar het formaat dat het neurale netwerk verwacht. Licht- en kleurcorrecties worden toegepast om de invoer te standaardiseren.

  2. Voedseldetectie: Een objectdetectiemodel identificeert afzonderlijke voedselregio's in de afbeelding en tekent begrenzingskaders rond elk ervan.

  3. Classificatie: Elke gedetecteerde regio wordt door een classificatienetwerk geleid dat het specifieke voedselitem identificeert. Het systeem houdt rekening met de beste kandidaten en hun betrouwbaarheidsscores.

  4. Portieschatting: Een apart model schat het volume en gewicht van elk geïdentificeerd voedselitem op basis van visuele aanwijzingen en referentiematen (meer hierover in ons begeleidende artikel over portieschatting).

  5. Voedingswaarden opzoeken: De geïdentificeerde voedingsmiddelen en geschatte porties worden vergeleken met een uitgebreide voedingsdatabase om calorieën, macronutriënten en micronutriënten te berekenen.

  6. Gebruikersverificatie: De resultaten worden aan de gebruiker gepresenteerd, die de identificaties kan bevestigen of corrigeren. Deze feedbackloop verbetert het model continu.

Deze hele pijplijn draait in minder dan twee seconden, waardoor het sneller is dan het typen van "gegrilde kipfilet" in een zoekbalk en het scrollen door tientallen resultaten.

Uitdagingen in voedselherkennings-AI

Ondanks de opmerkelijke vooruitgang staat voedselherkennings-AI nog steeds voor verschillende uitdagingen waar onderzoekers en engineers actief aan werken.

Visueel vergelijkbare voedingsmiddelen

Sommige voedingsmiddelen zien er op foto's bijna identiek uit, maar hebben zeer verschillende voedingsprofielen. Witte rijst en bloemkoolrijst, gewone pasta en volkoren pasta, en volle en magere kaas zijn allemaal voorbeelden van visueel vergelijkbare voedingsmiddelen die aanzienlijk verschillen in calorieën en macronutriënten.

Huidige systemen pakken dit aan door een combinatie van contextuele aanwijzingen (wat staat er nog meer op het bord), gebruikersgeschiedenis (wat iemand doorgaans eet) en door de gebruiker om bevestiging te vragen wanneer het vertrouwen laag is.

Gemengde en gelaagde gerechten

Een burrito, een sandwich of een gelaagde ovenschotel vormt een fundamenteel probleem: de meeste ingrediënten zijn aan het zicht onttrokken. De AI kan de tortilla zien, maar niet de bonen, kaas, zure room en rijst erin.

Om dit aan te pakken, leren modellen de typische samenstelling van veelvoorkomende gerechten. Wanneer het systeem een burrito identificeert, kan het de waarschijnlijke interne ingrediënten afleiden op basis van het zichtbare uiterlijk en gangbare bereidingswijzen. Gebruikers kunnen vervolgens de specifieke vullingen naar behoefte aanpassen.

Verlichting en omgevingsomstandigheden

Schemerige restaurantverlichting, harde flits en gekleurde omgevingsverlichting kunnen allemaal het uiterlijk van voedsel beïnvloeden. Geel licht kan witte rijst eruitzien als saffraanrijst, terwijl blauwachtige verlichting rood vlees bruin kan laten lijken.

Moderne systemen pakken dit aan door data-augmentatie bij de training en door kleurinvariante kenmerken te bouwen die meer nadruk leggen op textuur en vorm dan op absolute kleurwaarden.

De toekomst van voedselherkenningtechnologie

Voedselherkennings-AI evolueert snel. Verschillende opkomende trends wijzen op nog capabelere systemen in de nabije toekomst:

Videogebaseerde herkenning: In plaats van een enkele foto te analyseren, kunnen toekomstige systemen een korte videoclip van een maaltijd analyseren, waarbij meerdere hoeken worden vastgelegd en de nauwkeurigheid wordt verbeterd.

Augmented reality-overlays: AR zou real-time voedingsinformatie kunnen bieden terwijl je een buffet of restaurantmenu scant, waardoor je weloverwogen keuzes kunt maken voordat je eet.

Multi-modale modellen: Het combineren van visuele herkenning met tekst (menu's, ingrediëntenlijsten) en zelfs audio (de gebruiker vragen "heb je dressing toegevoegd?") voor een completer begrip van de maaltijd.

Verwerking op het apparaat: Naarmate mobiele processors krachtiger worden, kan meer van de AI-verwerking direct op de telefoon plaatsvinden zonder afbeeldingen naar een server te sturen, wat de snelheid en privacy verbetert.

Herkenning op ingrediëntniveau: Verder gaan dan classificatie op gerechtniveau om individuele ingrediënten en hun geschatte hoeveelheden te identificeren, waardoor nauwkeurigere voedingsberekeningen mogelijk worden.

Waarom de nauwkeurigheid blijft verbeteren

Een van de meest bemoedigende aspecten van voedselherkennings-AI is het ingebouwde verbeteringsmechanisme. Elke keer dat een gebruiker een foto maakt en het resultaat bevestigt of corrigeert, ontvangt het systeem een gelabeld datapunt. Met miljoenen gebruikers die dagelijks maaltijden registreren, verzamelen productiesystemen zoals Nutrola trainingsgegevens in een tempo dat academisch onderzoek niet kan evenaren.

Dit creëert een positieve spiraal: betere nauwkeurigheid leidt tot meer gebruikers, meer gebruikers genereren meer gegevens, meer gegevens maakt betere nauwkeurigheid mogelijk. Dit is waarom de voedselherkenning die je vandaag ervaart aanzienlijk beter is dan wat zelfs een jaar geleden beschikbaar was, en deze zal blijven verbeteren.

Veelgestelde vragen

Hoe nauwkeurig is AI-voedselherkenning vergeleken met handmatige registratie?

Studies hebben aangetoond dat AI-voedselherkenning nauwkeurigheidspercentages van meer dan 90 procent kan bereiken voor veelvoorkomende voedingsmiddelen, wat vergelijkbaar is met of beter dan de nauwkeurigheid van getrainde diëtisten die handmatig porties schatten. Handmatige registratie door niet-experts rapporteert doorgaans 10 tot 45 procent te weinig calorieën, waardoor AI-ondersteunde registratie voor de meeste mensen betrouwbaarder is.

Kan AI-voedselherkenning werken met keukens van over de hele wereld?

Ja, hoewel de nauwkeurigheid varieert per keuken, afhankelijk van de beschikbare trainingsgegevens. Systemen zoals Nutrola die een wereldwijde gebruikersbasis bedienen in 50 of meer landen, verbeteren continu hun herkenning van diverse keukens naarmate ze meer gegevens van gebruikers over de hele wereld verzamelen. Hoe meer een keuken vertegenwoordigd is in de trainingsgegevens, hoe nauwkeuriger de herkenning wordt.

Werkt voedselherkennings-AI offline?

Dat hangt af van de implementatie. Sommige apps verwerken afbeeldingen op het apparaat met geoptimaliseerde modellen, wat offline werkt maar mogelijk enige nauwkeurigheid opoffert. Andere sturen afbeeldingen naar cloudservers voor verwerking, wat een internetverbinding vereist maar grotere, nauwkeurigere modellen kan gebruiken. Veel moderne apps gebruiken een hybride aanpak, waarbij de eerste herkenning op het apparaat plaatsvindt en de resultaten worden verfijnd met cloudverwerking wanneer beschikbaar.

Hoe gaat AI om met zelfgemaakte maaltijden die niet overeenkomen met restaurantgerechten?

Moderne voedselherkenningssystemen zijn getraind op zowel restaurant- als zelfgemaakte voedselafbeeldingen. Ze identificeren individuele componenten in plaats van te proberen een compleet gerecht te matchen met een database-item. Een zelfgemaakte roerbak zou dus worden opgesplitst in de zichtbare componenten (kip, broccoli, rijst, saus) in plaats van gematcht te worden met één enkel menu-item.

Worden mijn voedselfoto's privé gehouden?

Privacybeleid varieert per app. Nutrola zet zich in voor de privacy van gebruikers en gebruikt voedselafbeeldingen uitsluitend voor het doel van voedingsanalyse en modelverbetering. Afbeeldingen worden veilig verwerkt en worden niet gedeeld met derden. Gebruikers kunnen het privacybeleid raadplegen voor volledige details over gegevensverwerking.

Wat gebeurt er wanneer de AI een voedselidentificatie fout heeft?

Wanneer de AI een voedingsmiddel verkeerd identificeert, kunnen gebruikers het resultaat corrigeren door het juiste item uit een lijst te selecteren of het juiste voedingsmiddel in te typen. Deze correctie dient als waardevolle trainingsgegevens die het model in de loop van de tijd helpen verbeteren. Hoe meer correcties een systeem ontvangt voor een bepaald voedingsmiddel, hoe sneller de nauwkeurigheid voor dat item verbetert.

Klaar om je voedingstracking te transformeren?

Sluit je aan bij duizenden die hun gezondheidsreis hebben getransformeerd met Nutrola!

Hoe computervisie voedsel herkent: AI-calorietrackingtechnologie | Nutrola