Tutkimus Nutrolan Ruokantunnistusteknologian Taustalla

Miten Nutrola tunnistaa ruoan valokuvasta alle kolmessa sekunnissa? Syvennytään tietokonenäön, syväoppimisen ja ravitsemustieteen tutkimukseen, joka tukee tekoälyämme.

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

Kun otat valokuvan illallisestasi ja Nutrola palauttaa täydellisen ravintosisältöanalyysin alle kolmessa sekunnissa, taustalla on vuosikymmenten tutkimus tietokonenäöstä, ravitsemustieteestä ja tekoälyn kehittämisestä. Se, mikä näyttää yhdeltä hetkeltä tunnistusta, on itse asiassa erikoistuneiden mallien ketju, joista jokainen ratkaisee oman tieteellisen ongelmansa. Siitä hetkestä, kun kamerasi suljin laukaisee, siihen hetkeen, kun makroravinteiden arvot ilmestyvät näytölle, kuvasi kulkee putken läpi, joka perustuu perustutkimukseen instituutioilta kuten Stanford, MIT, Google DeepMind ja ETH Zürichin tietokonenäkölaboratorio.

Tässä artikkelissa jäljitetään tätä putkea askel askeleelta, viitaten todellisiin tutkimuksiin ja teknisiin käsitteisiin, jotka tekevät Nutrolan ruokantunnistuksesta mahdollisen.

Tietokonenäköputki

Nutrolan ruokantunnistus ei ole yksi malli. Se on monivaiheinen putki, jossa jokainen vaihe käsittelee erillistä tehtävää, ja yhden vaiheen tulos syötetään seuraavaan.

Vaihe 1 -- Kuvan esikäsittely. Ennen kuin mikään neuroverkko näkee valokuvasi, raaka kuva käy läpi normalisoinnin. Tämä sisältää koon muuttamisen standardiksi syöttöresoluutioksi, valkoisen tasapainon ja valotuksen säätämisen sekä datan augmentoinnin muunnosten soveltamisen koulutuksen aikana. Krizhevskyn, Sutskeverin ja Hintonin vuonna 2012 julkaisema merkittävä ImageNet-tutkimus osoitti, että esikäsittely ja augmentointi parantavat merkittävästi syväkonvoluutioverkkojen (CNN) yleistämistä. Nykyiset putket laajentavat tätä tekniikoilla kuten CutMix (Yun et al., 2019) ja RandAugment (Cubuk et al., 2020), jotka opettavat mallille kestävyyttä ruoan valokuvauksen yleisille peitto- ja värihäiriöille.

Vaihe 2 -- Ruoan tunnistus ja segmentointi. Kun kuva on esikäsitelty, se kulkee objektitunnistusmallin läpi, joka tunnistaa ja paikallistaa jokaisen erillisen ruoka-aineen lautasella. Tämä vaihe perustuu voimakkaasti aluepohjaisiin konvoluutioverkkoihin. Faster R-CNN (Ren et al., 2015) loi alueen ehdotusten verkkojen paradigman, kun taas uudemmat arkkitehtuurit kuten DETR (Carion et al., 2020) Facebookin tekoälytutkimuksesta käyttävät transformeri-pohjaista huomiota poistaakseen täysin käsin suunnitellut komponentit, kuten ankkurilaatikot. Pikselitason tarkkuuden saavuttamiseksi semanttiset segmentointimallit, jotka perustuvat arkkitehtuureihin kuten DeepLab (Chen et al., 2017), määrittävät jokaisen pikselin kuvassa ruokalajikategoriaan, mikä on kriittistä sekoitetuissa annoksissa, joissa ainesosat päällekkäin.

Vaihe 3 -- Ruoan luokittelu. Jokainen tunnistettu ruoka-alue luokitellaan sitten. Nykyisten ruokaluokittajien selkäranka perustuu arkkitehtuureihin, jotka on validoitu ImageNetissä (Deng et al., 2009), 14 miljoonan merkittyä kuvaa sisältävään tietokantaan, joka käynnisti syväoppimisvallankumouksen. Ruokakohtaiset tietokannat, kuten Food-101 (Bossard et al., 2014), joka sisältää 101 000 kuvaa 101 kategoriasta, ja UECFOOD-256 (Kawano ja Yanai, 2015), joka kattaa 256 ruokalajia keskittyen japanilaiseen ruokakulttuuriin, tarjoavat alan erityisiä koulutusdataa, jota tarvitaan näiden yleiskäyttöisten arkkitehtuurien hienosäätämiseen ruokantunnistusta varten.

Vaihe 4 -- Annosarviointi. Kun ruoan sisältö on tunnistettu, järjestelmä arvioi, kuinka paljon kutakin ainesosaa on läsnä. Tämä on vaikein ratkaisematon ongelma ruokantunnistustutkimuksessa ja vaatii syvyyden arvioimista ja tilavuusajattelua yhdestä 2D-kuvasta.

Vaihe 5 -- Ravintosisältöjen kartoitus. Lopuksi luokiteltu ruoka-aine ja sen arvioitu annoskoko kartoitetaan vahvistettuun ravintotietokantaan, jotta saadaan kalori-, proteiini-, hiilihydraatti-, rasva- ja mikroravintoainearvot.

Jokainen näistä vaiheista edustaa erillistä aktiivisen tutkimuksen aluetta. Seuraavat osiot tarkastelevat teknisesti haastavimpia vaiheita yksityiskohtaisesti.

Ruoan luokittelu: Enemmän kuin "Se on salaatti"

Salaatin erottaminen pihvistä on nykyaikaiselle luokittajalle yksinkertaista. Todellinen haaste alkaa, kun järjestelmän on erotettava visuaalisesti samankaltaiset ruoat: kana tikka masala versus voikanaa, pad thai versus juopuneet nuudelit, tai kreikkalainen salaatti versus fattoush. Nämä ruoat jakavat värejä, tekstuureja ja rakenteellisia kuvioita, mutta niiden ainesosat ja kaloritiheys eroavat merkittävästi.

Siirtoulearn ja alueellinen mukautuminen

Standardi lähestymistapa ruokaluokittelussa perustuu siirtoulearn, tekniikkaan, jonka Yosinski et al. (2014) virallisti, jossa malli, joka on esikoulutettu suurella yleisellä tietokannalla kuten ImageNet, hienosäädetään ruokakohtaisilla tiedoilla. Verkon alemmat kerrokset, jotka tunnistavat reunoja, tekstuureja ja perusmuotoja, siirtyvät hyvin eri alueiden välillä. Korkeammat kerrokset, jotka koodavat semanttista merkitystä, koulutetaan uudelleen oppimaan ruokakohtaisia piirteitä, kuten eron paistetun pinnan kiillon ja höyrytetyn pinnan mattaisuuden välillä.

Hassannejad et al. (2016) osoittivat, että hienosäätämällä InceptionV3:ta Food-101:ssä saavutettiin 88,28 prosentin tarkkuus, mikä on merkittävä hyppy aikaisempiin käsin tehtyihin piirteisiin verrattuna. Uudemmat työt, joissa käytetään Vision Transformersia (Dosovitskiy et al., 2020) ja niiden ruokakohtaisia variantteja, ovat nostaneet tarkkuuden Food-101:ssä yli 93 prosenttiin.

Monilabel-luokittelu monimutkaisille lautasille

Reaalitodelliset ateriat harvoin sisältävät vain yhden ainesosan. Tyypillisellä illallislautasella voi olla grillattua lohta, paahdettuja parsakaaleja, kvinoaa ja sitruunavoi-kastiketta. Monilabel-luokittelu, jossa yhdelle kuvalle voidaan antaa useita itsenäisiä etikettejä, ratkaisee tämän ongelman. Wang et al. (2016) tutkivat CNN-RNN-arkkitehtuureita monilabel-kuvaluokittelussa ja loivat kehyksiä, jotka tallentavat etikettien esiintymismalleja. Ruoan alueella tämä tarkoittaa, että malli oppii, että riisi ja curry esiintyvät usein yhdessä, mikä toimii kontekstuaalisena signaalina, joka parantaa yksittäisten ruoka-aineiden tarkkuutta.

Nutrola laajentaa tätä hierarkkisella luokitusjärjestelmällä. Sen sijaan, että ennustettaisiin tasainen etiketti, järjestelmä ensin luokittelee laajan ruokalajikategorian (vilja, proteiini, vihannes, kastike) ja sitten tarkentaa tiettyyn tuotteeseen kyseisessä kategoriassa. Tämä kaksivaiheinen lähestymistapa vähentää hämmennystä visuaalisesti samankaltaisten tuotteiden välillä eri kategorioista ja heijastaa sitä, miten ravintotietokannat on järjestetty.

Annosarviointi: 3D-haaste

Ruoan tunnistaminen lautasella ratkaisee vain puolet ongelmasta. 100 gramman annos kananrintaa sisältää 165 kaloria. 250 gramman annos sisältää 412 kaloria. Ilman tarkkaa annosarviointia jopa täydellinen ruoan tunnistus tuottaa epäluotettavia kalorilaskelmia.

Monokulaarinen syvyysarviointi

Ruokamäärän arvioiminen yhdestä 2D-valokuvasta vaatii järjestelmän päättelemään syvyyttä, ongelmaa, jota kutsutaan monokulaariseksi syvyysarvioinniksi. Eigen, Puhrsch ja Fergus (2014) julkaisi perustutkimusta, joka osoitti, että CNN:t voivat ennustaa pikselikohtaisia syvyyskarttoja yhdestä kuvasta. Uudempi tutkimus Ranftl et al. (2021) esitteli MiDaS-mallin, joka on koulutettu sekoitetuilla tietokannoilla ja tuottaa luotettavia suhteellisia syvyysarvioita eri kohtauksissa.

Ruoan sovelluksissa syvyysarviointi mahdollistaa järjestelmän erottavan ohuen kastikeruiskutuksen lautasella ja syvän keiton kulhon. Yhdistettynä tunnettuihin geometrisiin viiteobjekteihin, kuten lautaset, kulhot ja ruokailuvälineet, syvyyskartat voidaan muuntaa arvioiduiksi tilavuuksiksi.

Geometriset lähestymistavat tilavuusarviointiin

Tokion yliopiston tutkimus (Okamoto ja Yanai, 2016) osoitti, että ruoan tilavuutta voidaan arvioida sovittamalla geometrisia perusmuotoja, kuten sylintereitä, puoli-palloja ja suorakulmaisia prismoja, segmentoituihin ruoka-alueisiin. Riisimäen muoto vastaa puoli-ellipsoidia. Maitolasillinen vastaa sylinteriä. Leipäviipale vastaa suorakulmaista prismaa.

Nämä geometriset approksimaatiot yhdessä opittujen tiheyspriorien kanssa (järjestelmä tietää, että tietty tilavuus muusia painaa enemmän kuin sama tilavuus popcornia) tuottavat painoarvioita, joiden tutkimus on osoittanut olevan 15–20 prosenttia todellisuudesta useimmille yleisille ruoille. Nutrola tarkentaa näitä arvioita edelleen omalla yhdistelmämenettelyllään, joka yhdistää geometrisen päättelyn ja opitut regressiomallit, jotka on koulutettu kymmenillä tuhansilla tunnetuilla ruoka-kuvilla.

Viiteobjektin kalibrointi

Jotkut ruokantunnistusjärjestelmät käyttävät tunnettuja viiteobjekteja kohtauksen mittakaavan kalibroimiseksi. Tyypillisen illallislautasen halkaisija on noin 26 senttimetriä. Luottokortti mittaa 85,6 x 53,98 millimetriä. Kun järjestelmä havaitsee tällaisia objekteja, se voi määrittää todellisen mittakaavan, mikä parantaa merkittävästi tilavuus- ja painoarvioita. Purdue-yliopiston Fang et al. (2016) tutkimus osoitti, että lautaspohjainen kalibrointi vähensi annosarvioinnin virhettä noin 25 prosenttia verrattuna kalibroimattomiin lähestymistapoihin.

Vahvistettu tietokantakerros

Pelkkä tekoälyn tunnistus ei riitä tuottamaan tarkkoja kalorilaskelmia. Vaikka malli saavuttaisi 99 prosentin tarkkuuden grillatun kananrinnan tunnistamisessa, lopullinen ravintosisältö riippuu täysin siitä, kuinka laadukas tietokanta, johon se kartoitetaan, on.

Tässä Nutrolan lähestymistapa eroaa monista kilpailijoista. Useimmat ruokaseurantapalvelut nojaavat joukkosijoitettuihin tietokantoihin, joihin kuka tahansa käyttäjä voi syöttää ravitsemustietoja. Tutkimukset ovat osoittaneet, että joukkosijoitetuissa ruokadatabankeissa virheprosentti vaihtelee 15–30 prosentin välillä, ja jotkut merkinnät eroavat laboratoriovahvistetuista arvoista yli 50 prosenttia tärkeiden makroravinteiden osalta.

Nutrola ylläpitää 100 prosentin vahvistettua ravintotietokantaa. Jokainen merkintä on ristiviitattu auktoritatiivisten lähteiden, kuten USDA FoodData Centralin, UK National Health Servicen käyttämien McCance ja Widdowsonin koostumustaulukoiden sekä vertaisarvioitujen ravitsemusanalyysien kanssa. Tämä tarkoittaa, että vaikka tekoälyn tunnistuskerros tuottaisi pienen virhemarginaalin ruoan tunnistuksessa tai annosarvioinnissa, siihen kartoitettu ravintotieto on luotettavaa.

Vahvistuskerros käsittelee myös hienovaraisuuden, jonka puhtaat tekoälylähestymistavat ohittavat: valmistustapa vaikuttaa ravintosisältöön. 150 gramman grillattu kananrinta sisältää noin 165 kaloria, mutta sama rinta paistettuna oliiviöljyssä sisältää noin 230 kaloria. Nutrolan tietokanta tallentaa nämä valmistustavasta riippuvat vaihtelut, ja tunnistusmalli on koulutettu erottamaan kypsennysmenetelmät, kun visuaalisia vihjeitä on saatavilla, kuten ero grillatun pinnan ja paistetun pinnan välillä.

Jatkuva oppiminen ja parantaminen

Ruokantunnistus ei ole ongelma, joka ratkaistaan kerran ja otetaan käyttöön. Ruokakulttuurit kehittyvät, uusia ruokia syntyy ja käyttäjien odotukset kasvavat. Nutrolan järjestelmä on suunniteltu jatkuvaan parantamiseen useiden koneoppimiseen perustuvien mekanismien kautta.

Aktiivinen oppiminen

Aktiivinen oppiminen, jonka Settles (2009) virallisti, on strategia, jossa malli tunnistaa esimerkit, joista se on vähiten varma, ja priorisoi ne ihmisen tarkastettavaksi ja merkitsemiseksi. Kun Nutrolan järjestelmä kohtaa ruoan, jota se ei voi luokitella korkealla varmuudella, kuva merkitään asiantuntijatarkastusta varten. Kun se on merkitty, se siirtyy koulutusputkeen ja malli paranee juuri niissä tapauksissa, joissa se oli heikoimmillaan.

Tämä lähestymistapa on huomattavasti datatehokkaampaa kuin satunnaisesti kerätä lisää koulutuskuvia. Tutkimukset ovat johdonmukaisesti osoittaneet, että aktiivinen oppiminen voi saavuttaa vastaavan mallin tarkkuuden 30–60 prosenttia vähemmällä merkittyä dataa verrattuna satunnaiseen otokseen.

Uusien ruokien ja alueellisten ruokakulttuurien käsittely

Yksi suurimmista haasteista ruokantunnistuksessa on alueellisten ja kulttuurisesti spesifisten ruokien kattavuus. Malli, joka on koulutettu pääasiassa länsimaiseen ruokakulttuuriin, voi kamppailla kaakkois-aasialaisten jälkiruokien, länsiafrikkalaisten patojen tai skandinaavisten fermentoitujen ruokien kanssa. Nutrola ratkaisee tämän kohdennetuilla datankeruukampanjoilla, jotka keskittyvät aliedustettuihin ruokakulttuureihin, yhdistettynä few-shot-oppimistekniikoihin (Wang et al., 2020), jotka antavat mallille mahdollisuuden oppia uusia ruokalajeja suhteellisen pienistä esimerkkimääristä.

Käyttäjäpalautteella on keskeinen rooli tässä prosessissa. Kun käyttäjä korjaa väärin tunnistetun ruoan, tämä korjaus syötetään takaisin koulutusputkeen. Kun otetaan huomioon miljoonat globaalisti kirjattavat ateriat, nämä korjaukset luovat jatkuvan virran totuustietoa, joka kattaa tarkasti ne ruoat, joita oikeat ihmiset syövät päivittäisessä elämässään.

Miten tämä näkyy lautasellasi

Yllä kuvattu tutkimus tuottaa konkreettisia hyötyjä, joita koet joka kerta, kun avaat Nutrolan.

Kolmen sekunnin kirjaaminen. Koko putki, kuvankäsittelystä ravintotietojen hakemiseen, suoritetaan alle kolmessa sekunnissa nykyaikaisella älypuhelimella. Mallin optimointitekniikat, kuten kvantointi (Jacob et al., 2018) ja neuroarkkitehtuurin haku (Zoph ja Le, 2017), mahdollistavat monimutkaisten mallien tehokkaan toiminnan mobiililaitteilla tarkkuutta uhraamatta.

Monimutkaisten aterioiden käsittely. Monilabel-tunnistus ja semanttinen segmentointi tarkoittavat, että sinun ei tarvitse valokuvata jokaista ruoka-ainetta erikseen. Yksi kuva täyteen ladatusta illallislautasesta tuottaa erilliset ravintosisältöanalyysit jokaiselle komponentille.

Ristiinruokakulttuurien tarkkuus. Jatkuva oppiminen ja kohdennettu datankeruu varmistavat, että järjestelmä toimii, olitpa sitten syömässä sushia Tokiossa, tacoja Mexico Cityssä, injeraa Addis Abebassa tai sunnuntaipihviä Lontoossa. Malli paranee jokaisella aterialla, joka kirjataan Nutrolan globaalilta käyttäjäkunnalta.

Progressiivinen tarkkuuden parantaminen. Mitä enemmän käytät Nutrola, sitä paremmaksi se kehittyy, sekä sinulle henkilökohtaisesti että kaikille käyttäjille yhteisesti. Aktiivinen oppiminen varmistaa, että malli keskittyy parantamaan tarkkuutta juuri niissä tapauksissa, joissa se tarvitsee sitä eniten.

Vahvistetut ravintotiedot. Toisin kuin sovellukset, jotka nojaavat joukkosijoitettuihin tietokantoihin, joiden virheprosentti on tuntematon, jokainen kalorilaskelma, jonka Nutrola palauttaa, perustuu laboratoriovahvistettuihin ravintotietoihin. Tekoäly tunnistaa ruoan; vahvistettu tietokanta varmistaa, että numerot ovat oikeat.

FAQ

Miten Nutrolan tekoäly tunnistaa ruoan valokuvasta?

Nutrola käyttää monivaiheista tietokonenäköputkea. Valokuvasi kulkee ensin kuvankäsittelyn läpi, sitten syväoppimisen tunnistusmallin läpi, joka tunnistaa ja segmentoi jokaisen ruoka-aineen lautasella. Jokainen tuote luokitellaan konvoluutioverkkojen avulla, jotka on hienosäädetty ruokakohtaisilla tietokannoilla, sen annos arvioidaan syvyys- ja tilavuusajattelun avulla, ja tulos kartoitetaan Nutrolan vahvistettuun ravintotietokantaan kalori- ja makroravinteiden arvojen tuottamiseksi.

Kuinka tarkka Nutrolan ruokantunnistusteknologia on?

Nutrolan luokitusmallit saavuttavat yli 90 prosentin tarkkuuden standardeissa ruokantunnistusmittareissa, ja top-5 tarkkuus ylittää 95 prosenttia. Annosarvioinnissa järjestelmä yleensä osuu 15–20 prosentin sisälle todellisesta painosta, mikä on verrattavissa tai parempaa kuin koulutettujen ravitsemusterapeuttien arviointitarkkuus. Yhdistettynä Nutrolan vahvistettuun tietokantaan tämä tuottaa kalorilaskelmia, jotka ovat merkittävästi luotettavampia kuin manuaalinen kirjaaminen, joka tutkimusten mukaan aliraportoi saantia 10–45 prosenttia.

Mitkä tutkimukset ja tietokannat tukevat Nutrolan ruokantunnistus AI:ta?

Nutrolan teknologia perustuu perustavanlaatuiseen tietokonenäön tutkimukseen, mukaan lukien konvoluutioverkot, jotka on validoitu ImageNetissä, objektitunnistusarkkitehtuureihin kuten Faster R-CNN ja DETR, sekä ruokakohtaisiin tietokantoihin, kuten Food-101 ja UECFOOD-256. Järjestelmä hyödyntää myös monokulaarisen syvyysarvioinnin tutkimusta annoskoossa ja aktiivisen oppimisen tutkimusta jatkuvassa mallin parantamisessa. Kaikki ravintotiedot vahvistetaan auktoritatiivisten lähteiden, kuten USDA FoodData Centralin, mukaan.

Voiko Nutrola tunnistaa useita ruokia yhdellä lautasella?

Kyllä. Nutrola käyttää monilabel-tunnistusta ja semanttista segmentointia tunnistaakseen ja analysoidakseen erikseen jokaisen erillisen ruoka-aineen yhdestä valokuvasta. Olipa lautasellasi kaksi tai kahdeksan ainesosaa, järjestelmä eristää jokaisen, luokittelee sen itsenäisesti, arvioi sen annoksen ja palauttaa ravintosisältöanalyysin jokaiselle tuotteelle sekä koko aterialle.

Miten Nutrola käsittelee eri ruokakulttuurien ruokia?

Nutrola yhdistää laajasti kattavan koulutusdatan kohdennettuun datankeruuseen aliedustetuista ruokakulttuureista ja few-shot-oppimistekniikoihin, jotka antavat mallille mahdollisuuden oppia uusia ruokalajeja suhteellisen pienistä esimerkkimääristä. Käyttäjäkorjaukset Nutrolan globaalilta käyttäjäkunnalta syötetään jatkuvasti koulutusputkeen, mikä varmistaa, että tarkkuus paranee niille erityisille ruoille, joita ihmiset todella syövät eri alueilla ja ruokakulttuureissa.

Paraneeko Nutrolan ruokantunnistus ajan myötä?

Kyllä. Nutrola käyttää aktiivista oppimista, koneoppimisstrategiaa, jossa järjestelmä tunnistaa kuvat, joista se on vähiten varma, ja priorisoi ne asiantuntijatarkastusta ja uudelleenkoulutusta varten. Yhdistettynä miljoonista kirjatuista aterioista kerättyyn käyttäjäpalautteeseen tämä tarkoittaa, että malli paranee jatkuvasti. Jokainen kirjattu ateria auttaa tekemään Nutrolan tunnistuksesta tarkempaa kaikille käyttäjille.

Valmis muuttamaan ravitsemusseurantaasi?

Liity tuhansien joukkoon, jotka ovat muuttaneet terveysmatkansa Nutrola avulla!