Kuinka tekoäly arvioi annoskokoja valokuvista: Syvällinen tekninen katsaus

Yksityiskohtainen katsaus siihen, miten tekoäly käyttää syvyysarviointia, viiteobjekteja ja tilavuusmallinnusta arvioidakseen ruokaan liittyviä annoskokoja yhdestä valokuvasta.

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

Ruokasi tunnistaminen lautaseltasi on vain osa tekoälypohjaista kalorien seurantaa. Toinen, ja kenties vaikeampi, osa on selvittää, kuinka paljon ruokaa on. Esimerkiksi annos pastaa voi sisältää 200 kaloria tai 800 kaloria riippuen annoksen koosta. Oikean arvion saaminen on se, mikä erottaa hyödyllisen ravitsemusseurantatyökalun muista.

Tässä artikkelissa tarkastellaan syvällisesti, miten tekoälyjärjestelmät arvioivat annoskokoja valokuvista, käsitellen syvyysarviointia, viiteobjektien skaalausta, tilavuusmallinnusta ja jatkuvia haasteita, joita tutkijat ja insinöörit kohtaavat näiden arvioiden tarkkuuden parantamiseksi.

Miksi annoskokoarviointi on vaikeampaa kuin ruoan tunnistus

Ruoan tunnistus on periaatteessa luokittelutehtävä. Järjestelmän on valittava rajatusta ruokakategorioiden joukosta. Sen sijaan annoskokoarviointi on regressiotehtävä, jossa järjestelmän on ennustettava jatkuva arvo (grammoina tai millilitroina) pelkästään visuaalisen tiedon perusteella.

Useat tekijät tekevät tästä erityisen haastavaa:

  • 2D-3D-ongelma: Valokuva tiivistää kolmiulotteisen todellisuuden kahteen ulottuvuuteen. Syvyystieto katoaa, mikä vaikeuttaa erottamista ohuen ruoan ja paksun kasan välillä.
  • Muuttuva tiheys: Kuppi lehtivihanneksia ja kuppi granolaa voivat olla saman kokoisia, mutta niiden painot ja kaloripitoisuudet vaihtelevat suuresti. Järjestelmän on arvioitava sekä tilavuus että tiheys.
  • Perspektiivivääristymä: Valokuvan ottokulma vaikuttaa siihen, kuinka suurilta ruoka-aineet näyttävät. Lautasen kuvaaminen suoraan ylhäältä näyttää erilaiselta kuin sama lautanen kuvattuna 45 asteen kulmassa.
  • Epäselvä skaalaus: Ilman tunnettua viiteobjektia kuvassa ei voida määrittää absoluuttista kokoa. Lähikuva pienestä kekseistä voi näyttää identtiseltä kuvalle suuresta pizzasta, joka on otettu kauempaa.

Syvyysarviointi yhdestä kuvasta

Yksi keskeisistä läpimurroista, joka mahdollistaa annoskokoarvioinnin valokuvista, on monokulaarinen syvyysarviointi, eli kyky päätellä syvyystietoja yhdestä kuvasta sen sijaan, että tarvittaisiin stereokameroita tai erikoislaitteita.

Kuinka monokulaarinen syvyysarviointi toimii

Ihmisen näköjärjestelmä päättelee syvyyttä useista vihjeistä: objektien päällekkäisyys (lähempänä olevat objektit peittävät kauempana olevia), suhteellinen koko (pienemmät objektit ovat yleensä kauempana), tekstuurigradientit (tekstuurit hienonevat suuremmilla etäisyyksillä) ja ilmaperspektiivi (kaukaiset objektit näyttävät sumeilta).

Syväoppimismallit voivat oppia nämä samat vihjeet suurista kuvadataseteista, joissa on paritettu syvyyskarttoja. Kun näitä malleja sovelletaan ruokavalokuvaukseen, ne voivat arvioida, mitkä osat ruoka-aineesta ovat lähempänä kameraa ja mitkä kauempana, käytännössä rekonstruoiden ruoan kolmiulotteisen muodon litteästä kuvasta.

Syvyyskartat ja ruoan tilavuus

Syvyyskartta määrittää etäisyysarvon jokaiselle pikselille kuvassa. Ruoan arvioinnissa tämä tarkoittaa, että järjestelmä voi määrittää, että keiton keskikohta on yhdessä syvyydessä, kun taas kulhon reuna on toisessa syvyydessä. Näiden syvyyksien välinen ero yhdistettynä havaittuihin ruoan rajoihin mahdollistaa tilavuuden arvioimisen.

Nykyiset älypuhelimien kamerat, joissa on LiDAR-antureita (saatavilla uusimmissa iPhone Pro- ja iPad Pro -malleissa), voivat tallentaa todellista syvyystietoa värikuvan rinnalla, tarjoten paljon tarkempaa syvyystietoa kuin pelkkä algoritminen arviointi. Ruoan seurantasovellukset voivat hyödyntää tätä laitteistoa, kun se on saatavilla, ja turvautua monokulaariseen arviointiin laitteilla, joissa ei ole syvyysantureita.

Viiteobjektien skaalaus

Ilman tunnettua viitepistettä valokuvassa olevien objektien absoluuttinen koko on epäselvä. Viiteobjektien skaalaus ratkaisee tämän ongelman käyttämällä tunnetun koon omaavia objekteja kokoasteikon määrittämiseksi koko kuvalle.

Yleisimmät viiteobjektit

Viiteobjekti Tunnettu ulottuvuus Tarkkuusetu
Vakiokokoinen illallislautanen 25-27 cm halkaisija Määrittää koko aterian yleisen mittakaavan
Haarukka tai lusikka ~19 cm pituus Tarjoaa mittakaavan jopa lähikuvissa
Luottokortti 8.56 x 5.4 cm Tarkka ja yleisesti standardoitu
Älypuhelin Mallista riippuen, mutta tunnettu Voidaan havaita ja mitata algoritmisesti
Käsi Vaihtelee, mutta voidaan arvioida demografisten tietojen perusteella Suunnilleen mittakaava, kun muita viitteitä ei ole saatavilla

Automaattinen viiteobjektien tunnistus

Sen sijaan, että käyttäjiltä vaadittaisiin viitekortin asettamista ruoan viereen (mikä lisää kitkaa ja vähentää käyttöä), nykyaikaiset järjestelmät pyrkivät automaattisesti havaitsemaan yleisiä viiteobjekteja. Lautaset, kulhot, ruokailuvälineet ja pöydät esiintyvät usein ruokavalokuvissa ja voivat toimia koko viitepisteinä, jos järjestelmä pystyy tunnistamaan ne.

Nutrolan annoskokoarviointijärjestelmä etsii automaattisesti lautasia, kulhoja ja ruokailuvälineitä kuvasta mittakaavan määrittämiseksi. Kun nämä objektit havaitaan, järjestelmä käyttää niiden tyypillisiä mittoja ruoka-aineiden koon kalibroimiseen. Jos viiteobjektia ei löydy, järjestelmä luottaa opittuihin oletuksiin tyypillisistä ruoka-annoksista ja voi pyytää käyttäjää vahvistamaan.

Lautaspohjainen kalibrointi

Erityisen tehokas lähestymistapa on lautaspohjainen kalibrointi. Useimmissa maissa standardikokoiset illallislautaset ovat melko kapealla kokovälillä (25-27 cm halkaisija). Havaitsemalla lautasen ellipsin muoto kuvassa ja olettaen standardikoon, järjestelmä voi määrittää luotettavan mittakaavan kaikelle lautasella olevalle.

Tämä lähestymistapa toimii hyvin, koska lautaset ovat lähes aina läsnä aterian valokuvissa, niiden ellipsin muoto on helppo havaita riippumatta kameran kulmasta, ja ellipsin perspektiivivääristymä koodaa itse asiassa tietoa kameran kulmasta, mikä auttaa korjaamaan ruoan perspektiivivaikutuksia.

Tilavuusarviointitekniikat

Kun järjestelmä on tunnistanut ruoan, arvioinut syvyyden ja määrittänyt mittakaavan, sen on yhdistettävä tämä tieto arvioidakseen jokaisen ruoka-aineen tilavuutta.

Geometriset primitiivit

Yksi lähestymistapa on arvioida ruoka-aineet yksinkertaisten geometristen muotojen yhdistelminä:

  • Sylinterit korkeille ruoille, kuten juomille, pinoille pannukakkuja tai kerroksille kakkuja
  • Puolipallot pyöreille ruoille, kuten riisipalloille, perunamuusimöykyille tai jäätelöannoksille
  • Suorakulmaiset prismaat viipaloidulle leivälle, juustopaloille tai patukoille
  • Leikattuja kartioita keitto- tai muroannoksille (kulhon muoto auttaa määrittämään tilavuutta)
  • Säännöttömät polyhedrat monimutkaisille muodoille, kuten kanan reisille tai kokonaisille hedelmille

Järjestelmä sovittaa yhden tai useamman näistä primitiiveistä havaittuun ruoka-alueeseen ja laskee tilavuuden sovitetuista muodoista ja määritetystä mittakaavasta.

Voxel-pohjainen rekonstruointi

Kehittyneempi lähestymistapa sisältää voxel-pohjaisen rekonstruoinnin, jossa ruoka-aine mallinnetaan kolmiulotteisena pienen kuution (voxel) verkostona. Jokainen voxel luokitellaan joko ruoan sisältäväksi tai tyhjäksi syvyyskartan ja segmentointimaskin perusteella. Kokonaisvolyymi on sitten kaikkien ruoan sisältävien voxelien summa.

Tämä menetelmä käsittelee säännöttömiä muotoja paremmin kuin geometriset primitiivit, mutta vaatii enemmän laskentatehoa. Se on erityisen hyödyllinen ruoille, jotka eivät noudata yksinkertaisia muotoja, kuten repäisty pala leipää tai epäsäännöllisesti viipaloitu hedelmä.

Neuroverkkopohjainen tilavuusarviointi

Uusin lähestymistapa ohittaa täysin eksplisiittisen geometrisen mallinnuksen. Sen sijaan neuroverkko koulutetaan end-to-end ennustamaan ruoan tilavuutta suoraan kuvasta. Nämä mallit oppivat implisiittisiä esityksiä ruoan geometriasta suurista ruokakuvadataseteista, joissa on paritettu todellisia painomittauksia.

Tämä lähestymistapa on osoittanut lupaavia tuloksia, koska se voi vangita hienovaraisia visuaalisia vihjeitä, jotka korreloivat tilavuuden kanssa, kuten se, miten valo heijastuu nesteen pinnasta tai varjon kuvio, jonka ruoka-aineen kasa heittää. Se välttää myös virheiden kertymistä, joka voi tapahtua, kun syvyysarviointi, segmentointi ja geometrinen sovitus suoritetaan erillisinä vaiheina.

Tilavuudesta painoon ja kaloreihin

Tilavuuden arviointi ei ole lopullinen vaihe. Kalorien laskemiseksi järjestelmän on muunnettava tilavuus painoksi (käyttäen ruoan tiheyttä) ja paino kaloreiksi (käyttäen ravintosisältötietoja).

Ruoan tiheystietokannat

Eri ruoilla on hyvin erilaiset tiheydet. Kuppi öljyä painaa noin 220 grammaa, kun taas kuppi jauhoja painaa noin 120 grammaa ja kuppi popcornia vain noin 8 grammaa. Tarkka tiheystieto on olennaista tilavuusarvioiden muuttamiseksi painoarvioiksi.

Tuotantojärjestelmät ylläpitävät tietokantoja, jotka kartoittavat ruoka-aineet niiden tiheyksiin, ottaen huomioon valmistustavan (kypsennetty vs. raaka, pilkottu vs. kokonainen) ja yleiset tarjoilutyylit.

Ruoka-aine Tiheys (g/mL) 1 kuppipaino (g) Kalorit per kuppi
Vesi 1.00 237 0
Täysmaito 1.03 244 149
Kypsennetty valkoinen riisi 0.74 175 205
Raaka pinaatti 0.13 30 7
Maapähkinävoi 1.09 258 1517
Oliiviöljy 0.92 218 1909

Ravintosisältö

Kun järjestelmällä on painoarvio grammoina, se etsii ravintosisältötiedot grammoittain kattavasta ruokadatasta. Nämä tietokannat perustuvat tyypillisesti auktoriteettitietoihin, kuten USDA FoodData Central, ja niitä täydennetään tietojen avulla ruokatuottajilta ja alueellisista ravitsemustietokannoista.

Nutrolan tietokanta kattaa yli 1.3 miljoonaa ruokaa, mukaan lukien brändituotteet, ravintolamenut ja yleiset ruoka-aineet, joilla on täydelliset makro- ja mikro ravintoprofiilit. Tämä kattava tietopohja varmistaa, että kun ruoka-aine ja annos on tunnistettu, ravitsemuslaskenta on tarkka.

Tarkkuushaasteet ja niiden ratkaiseminen

Huolimatta näiden tekniikoiden kehittyneisyydestä, annoskokoarviointi valokuvista on edelleen epätäydellinen tiede. Virheiden lähteiden ymmärtäminen auttaa asettamaan realistisia odotuksia ja korostaa alan jatkuvia parannuksia.

Tunnetut virhelähteet

Kamerakulman vaihtelu: Sama annos näyttää erilaiselta riippuen siitä, otetaanko kuva ylhäältä, 45 asteen kulmasta tai pöydän tasolta. Suoraan ylhäältä otetut kuvat tuottavat yleensä tarkimmat arviot, koska ne minimoivat perspektiivivääristymän, mutta monet käyttäjät pitävät puhelintaan kulmassa.

Peitetty ruoka: Ruoka, joka on piilossa kastikkeiden, juuston tai muiden täytteiden alla, ei voi näkyvästi mitata. Järjestelmän on pääteltävä piilotettu osuus näkyvän astiatyypin ja tyypillisen valmistustavan perusteella.

Säännöttömät astiat: Epästandardit kulhot, mukit ja astiat tekevät lautaspohjaisesta skaalaamisesta vähemmän luotettavaa. Pieni annos suuressa kulhossa näyttää erilaiselta kuin suuri annos pienessä kulhossa, vaikka ruoan pinta-ala näyttäisi samalta.

Yksilölliset valmistuserot: Kaksi henkilöä, jotka tekevät "kulhollisen kaurapuuroa", voivat käyttää huomattavasti erilaisia määriä kauraa ja vettä, mikä johtaa samaan näennäiseen tilavuuteen, mutta eri kalorisisältöön.

Tarkkuuden parantamisen strategiat

Monikulmainen kuvaus: Jotkut järjestelmät pyytävät käyttäjiä ottamaan kuvia useista kulmista, mikä mahdollistaa stereorekonstruoinnin ja tarkemman tilavuusarvioinnin. Tämä parantaa tarkkuutta merkittävästi, mutta lisää kitkaa kirjaamisprosessiin.

Käyttäjäpalautesilmukat: Kun käyttäjät punnitsevat ruokansa ja vahvistavat tai korjaavat arvioidun annoksen, tämä luo koulutusdataa, joka parantaa mallia ajan myötä. Nutrola kannustaa käyttäjiä vahvistamaan annoksia satunnaisesti keittiövaakalla kalibroidakseen sekä tekoälyn että käyttäjän oman annostietoisuuden.

Kontekstuaaliset oletukset: Järjestelmä voi käyttää kontekstuaalista tietoa arvioiden tarkentamiseen. Jos käyttäjä on tietyssä ravintolaketjussa, järjestelmä voi hyödyntää tunnettuja annoskokoja. Jos käyttäjä kirjaa säännöllisesti tiettyä aamiaista, järjestelmä voi oppia heidän tyypillisen annoksensa.

Luottamustietoisuus: Sen sijaan, että esitetään yksi luku, kehittyneet järjestelmät tarjoavat luottamusalueen. Jos järjestelmä ei ole varma annoksesta, se voi esittää arvion alueena (esimerkiksi 300–450 kaloria) ja pyytää käyttäjältä lisätietoja.

Nykyiset tarkkuusmittarit

Kansainvälisen kuvantunnistus- ja prosessointikonferenssin tutkimukset ovat osoittaneet, että huipputason ruoan tilavuusarviointijärjestelmät saavuttavat keskimääräiset absoluuttiset prosenttivirheet 15–25 prosenttia. Vertailun vuoksi tutkimukset ovat osoittaneet, että koulutetut ravitsemusterapeutit arvioivat annoksia valokuvista noin 10–15 prosentin virheellä, kun taas kouluttamattomien henkilöiden keskimääräinen virhe on 30–50 prosenttia.

Tämä tarkoittaa, että tekoälyn annoskokoarviointi on jo merkittävästi parempi kuin mitä useimmat ihmiset voivat tehdä ilman apua ja lähestyy koulutettujen ammattilaisten tarkkuutta. Yhdistettynä nopeuteen ja kätevyyteen tämä tekee tekoälyavusteisesta seurannasta merkittävän parannuksen manuaaliseen kirjaamiseen suurimmalle osalle käyttäjistä.

Käyttäjäkalibroinnin rooli

Yksi tekoälyn annoskokoarvioinnin aliarvioitu osa-alue on käyttäjäkalibroinnin merkitys ajan myötä. Kun käyttäjä kirjaa aterioita ja satunnaisesti antaa korjauksia, järjestelmä rakentaa profiilin heidän tyypillisistä annoskokoistaan ja ruokamieltymyksistään.

Säännöllisille käyttäjille tämä tarkoittaa, että järjestelmä tulee vähitellen tarkemmaksi. Jos yleensä annostele suurempia annoksia riisiä kuin keskimäärin, järjestelmä oppii säätämään ylöspäin riisiarvioitaan. Jos käytät yleensä vähemmän öljyä kuin standardireseptissä, järjestelmä voi ottaa sen huomioon.

Nutrola hyödyntää tätä personointia tarjotakseen yhä tarkempia annosarvioita, mitä pidempään käytät sovellusta. Uudet käyttäjät hyötyvät väestötason keskiarvoista, kun taas kokeneet käyttäjät saavat henkilökohtaisia arvioita, jotka on kalibroitu heidän erityisiin tapoihinsa.

Käytännön vinkkejä tarkempien annosarvioiden saamiseksi

Vaikka tekoäly hoitaa suurimman osan työstä, käyttäjät voivat parantaa tarkkuutta noudattamalla muutamia yksinkertaisia ohjeita:

  1. Ota kuva ylhäältä, kun se on mahdollista. Suoraan ylhäältä otetut kuvat tarjoavat eniten tietoa ruoan pinta-alasta ja minimoivat perspektiivivääristymän.
  2. Sisällytä koko lautanen kuvaan. Lautasen reuna toimii tärkeänä viiteobjektina skaalausta varten.
  3. Vältä äärimmäisiä lähikuvia. Järjestelmä tarvitsee kontekstia koon arvioimiseksi. Kuva, joka näyttää vain ruoan ilman ympäröiviä objekteja, ei tarjoa mittakaavaviitettä.
  4. Ota kuva ennen sekoittamista. Salaatti, jossa näkyy erilliset ainesosat, on helpompi analysoida kuin se, joka on sekoitettu yhteen.
  5. Käytä hyvää valaistusta. Varjot ja heikko valo voivat peittää ruoan rajat ja syvyysvihjeet.
  6. Vahvista tai korjaa satunnaisesti. Käyttämällä keittiövaakaa kerran viikossa arvioidaksesi tekoälyn arvioita autat kalibroimaan sekä järjestelmää että omaa intuitiotasi.

UKK

Kuinka tarkka tekoälyn annoskokoarviointi on verrattuna ruokavaakaan?

Ruokavaaka tarjoaa tarkkuuden 1–2 gramman sisällä, mikä on paljon tarkempaa kuin mikään visuaalinen arviointimenetelmä. Tekoälyn annoskokoarviointi valokuvista saavuttaa tyypillisesti tarkkuuden 15–25 prosenttia todellisesta painosta. Kuitenkin tekoälyarvioinnin kätevyys (joka vie 2 sekuntia verrattuna 30 sekuntiin tai enemmän vaa'an kanssa) tarkoittaa, että enemmän ihmisiä seuraa säännöllisesti, mikä usein on tärkeämpää pitkän aikavälin tulosten kannalta kuin täydellinen tarkkuus.

Vaikuttaako kamerakulma annoskokoarvioinnin tarkkuuteen?

Kyllä, merkittävästi. Suoraan ylhäältä otetut kuvat (katsoen suoraan lautaselle) tarjoavat parhaan tarkkuuden, koska ne näyttävät ruoan koko pinta-alan vähäisellä perspektiivivääristymällä. 45 asteen kulmassa otetut kuvat ovat yleisimpiä ja tuottavat edelleen hyviä arvioita. Erittäin matalat kulmat (lähellä pöydän tasoa) ovat vähiten tarkkoja, koska suurin osa ruoasta on peitetty lautasen etureunalla.

Voiko tekoäly arvioida annoksia nesteille, kuten keitoille ja smoothieille?

Nesteet esittävät ainutlaatuisen haasteen, koska niiden tilavuus määräytyy astian mukaan eikä niiden oman muodon perusteella. Tekoälyjärjestelmät arvioivat nestemäisiä annoksia tunnistamalla astiatyypin ja täyttötason. Kulho, joka on täytetty reunaan asti, on eri tilavuudeltaan kuin kulho, joka on täytetty puoliväliin. Tarkkuus on yleensä hyvä, kun astia on standardimuotoinen, mutta vähemmän luotettava epätavallisilla astioilla.

Miksi tekoäly joskus yliarvioi tai aliarvioi annokseni?

Yliarvioinnin yleisiä syitä ovat tiheä annostelu, joka näyttää suuremmalta kuin se on, koristeet, jotka lisäävät visuaalista massaa ilman merkittäviä kaloreita, ja suurten lautasten käyttö, mikä saa järjestelmän olettamaan, että ruokaa on enemmän. Aliarvioinnin yleisiä syitä ovat ruoka, joka on piilossa muiden ruokien alla, tiheät kaloreita sisältävät ruoat, jotka näyttävät pieniltä, ja epätavalliset tarjoilutyylit. Palautteen antaminen, kun arviot ovat virheellisiä, auttaa järjestelmää parantamaan.

Tarvitseeko minun olla puhelin, jossa on LiDAR-anturi tarkkaa annosseurantaa varten?

Ei. Vaikka LiDAR- varustetut puhelimet voivat tarjota tarkempaa syvyystietoa, nykyaikaiset tekoälymallit voivat arvioida syvyyttä melko hyvin myös tavallisesta kamerakuvasta. LiDAR- varustettujen ja tavallisten puhelimien tarkkuusero on kaventunut ohjelmistopohjaisen syvyysarvioinnin parantuessa. Nutrola toimii tarkasti millä tahansa nykyaikaisella älypuhelimella.

Kuinka järjestelmä käsittelee pinoja tai kerroksia?

Näkyvästi pinottujen ruokien, kuten pannukakkujen tai kerroksellisten voileipien, osalta järjestelmä voi laskea kerrokset ja arvioida paksuuden sivuprofiilista. Ruoille, joissa on piilotettuja kerroksia, kuten lasagnelle tai burritoille, järjestelmä luottaa opittuihin koostumismalleihin, jotka arvioivat tyypillistä sisäistä rakennetta näkyvän ulkopinnan ja astiatyypin perusteella.

Valmis muuttamaan ravitsemusseurantaasi?

Liity tuhansien joukkoon, jotka ovat muuttaneet terveysmatkansa Nutrola avulla!