Hogyan működik az Ételfelismerő AI Pipeline: A fényképtől a tápanyagadatokig
Részletes technikai áttekintés az ételfelismerő AI pipeline teljes folyamatáról: a kamera bemenettől a CNN jellemzők kiemelésén, az étel osztályozásán, a porciók becslésén és a tápanyagdokumentáció keresésén át a végső kalóriaszámításig.
Amikor lefényképezed az ebédedet, és kevesebb mint két másodperc alatt megjelenik a teljes makroelem-elemzés, könnyű elfelejteni, mi áll a háttérben. Az azonnalinak tűnő eredmény mögött azonban egy több lépcsős folyamat húzódik meg, amely a képedet a kamera rögzítésétől kezdve a képfeldolgozáson, a neurális hálózati következtetésen, az osztályozáson, a porciók becslésén, az adatbázis keresésén át a végső kalóriaszámításig vezeti, mielőtt bármi megjelenne a képernyődön. Minden egyes lépés egy külön problémát old meg, saját algoritmusait használja, és egy specifikus kimenetet ad át a következő lépésnek.
Ez a cikk végigkíséri ezt az utat a fényképezőgép gombjának megnyomásától a tápanyagtáblázatig. Útközben megnevezzük azokat az architektúrákat, technikákat és mérnöki kompromisszumokat, amelyek lehetővé teszik, hogy minden szakasz működjön, és kiemeljük, hol vezette be a Nutrola saját innovációit, hogy a pontosságot és a sebességet a piaci normák fölé emelje.
1. szakasz: Kamera bemenet és kép megszerzése
Minden a felhasználó kameranézetének megnyitásával és az ételt ábrázoló kép keretezésével kezdődik. A modern okostelefonok 12-től 48 megapixeles felbontásban rögzítenek képeket, amelyek nyers érzékelő adatokat állítanak elő, amelyek a Bayer szűrő mozaikján keresztül kódolják a színintenzitás értékeket. Az eszköz képkonvertáló processzora (ISP) dekódolja ezeket az adatokat, alkalmazza a fehér egyensúlyt, csökkenti a zajt, és egy töredékszekundum alatt standard JPEG vagy HEIF fájlt állít elő.
Két hardveres jellemző egyre inkább befolyásolja ezt a szakaszt. Először is, a legújabb iPhone Pro és néhány Android csúcsmodell LiDAR érzékelői képesek egy mélységtérképet rögzíteni az RGB kép mellett. Ez a mélységi adat értékes lesz a porciók becslésénél. Másodszor, az időmérő érzékelőkkel rendelkező eszközök hasonló, de durvább mélységi információkat nyújtanak, amelyeket a pipeline még LiDAR hiányában is ki tud használni.
A pipeline az RGB képet és, ha elérhető, a mélységtérképet párba állítva dolgozza fel. Ha az eszköz nem kínál mélységérzékelőt, a pipeline csak RGB-vel folytatja, és később monokuláris mélységbecsléssel kompenzál.
Ennek a szakasznak a kulcsfontosságú kimenete
Egy nagy felbontású RGB kép (és opcionálisan egy mélységtérkép), amely a felhasználó előtt álló jelenetet ábrázolja.
2. szakasz: Kép előkészítése
A nyers kamera kimenet nem alkalmas a neurális hálózati következtetésre. Az előkészítés során a képet egy standardizált tenzorrá alakítják, amelyet a modell elvár.
Méretezés és kivágás
A legtöbb ételfelismerő modell fix felbontású bemenetet fogad el, általában 224x224, 384x384 vagy 512x512 pixelben, az architektúrától függően. A pipeline a képet a célfelbontásra méretezi, miközben megőrzi az arányokat, szükség esetén levélkeretezéssel vagy középkivágással. A bicubikus interpoláció a standard újramintavételezési módszer, mivel jobban megőrzi a finom textúra részleteit, mint a bilineáris alternatívák.
Normalizálás
A pixel értékeket a 0-255 egész szám tartományból lebegőpontos számokká alakítják, majd a csatorna szerinti átlag és szórás alapján normalizálják a tanító adathalmazon. Az ImageNet-en előképzett modellek esetében a kanonikus normalizálási értékeket (átlag: [0.485, 0.456, 0.406], szórás: [0.229, 0.224, 0.225] az R, G és B csatornákra) alkalmazzák. Ez a normalizálás a bemeneti eloszlást a nulla köré központosítja, és egység varianciára skálázza, ami stabilizálja a gradiens áramlását a tanulás során, és biztosítja a következetes következtetési viselkedést.
Színtér és augmentációs artefaktumok
A tanulás során a pipeline kiterjedt adataugmentációt alkalmaz: véletlenszerű forgatásokat, vízszintes tükrözéseket, színjátékot, Gauss-elmosódást és kivágott foltokat. Következtetési időben ezek az augmentációk le vannak tiltva, de a modell megtanulta, hogy invariáns legyen az általuk szimulált vizuális zajokkal szemben. Ez azt jelenti, hogy egy meleg étterem világításában készült fénykép és egy hűvös fluoreszkáló irodai világításban készült fénykép is megbízható jellemzőábrázolásokat fog eredményezni.
Ennek a szakasznak a kulcsfontosságú kimenete
Egy normalizált lebegőpontos tenzor, fix térbeli dimenziókkal, készen a neurális hálózati háttérhez.
3. szakasz: CNN jellemzők kiemelése
Ez a pipeline számítási magja. Egy mély konvolúciós neurális hálózat (vagy egyre inkább egy látás transzformátor) dolgozza fel az előkészített tenzort, és egy sűrű jellemzővektort állít elő, amely a kép vizuális tartalmát kódolja olyan formában, amelyet az alacsonyabb szintű osztályozó és detektáló fejek értelmezni tudnak.
Háttér architektúrák
Több háttér architektúra bizonyult hatékonynak az ételfelismerés terén:
EfficientNet összetett skálázást használ a hálózat mélysége, szélessége és bemeneti felbontása közötti egyensúly megteremtésére. Az EfficientNet-B4 és B5 népszerű választások, mivel erős pontosságot nyújtanak olyan számítási költséggel, amely mobil hardveren is megvalósítható a kvantálással kombinálva. A Nutrola egy EfficientNet-alapú háttérarchitektúrát alkalmaz, amelyet egy saját ételfotó adathalmazon finomhangoltak, kedvező kompromisszumot elérve a késleltetés és a legjobb 1-es pontosság között.
Vision Transformers (ViT) a képet rögzített méretű foltokra (tipikusan 16x16 pixel) osztják, minden foltot egy beágyazásba projektálnak, és a beágyazások sorozatát többfejű önfigyelmi rétegeken keresztül dolgozzák fel. A ViT-ek kiválóan képesek a hosszú távú térbeli kapcsolatok megértésére, például arra, hogy a barna korong a zöld levelek mellett hamburgerhús, nem pedig csokoládés süti, mert a környező kontextusban van egy zsemle és saláta. Az olyan hibrid modellek, mint a DeiT (Adat-hatékony Kép Transzformátor) és a Swin Transzformátor csökkentették a tiszta ViT-k adatigényét és számítási költségeit, így lehetővé téve őket a termelési ételfelismerő rendszerek számára.
MobileNetV3 az eszközön végzett következtetésekhez van optimalizálva mélységi szeparálható konvolúciókkal és hardver-tudatos neurális architektúra kereséssel. Ez a háttér a késleltetés szempontjából kritikus utakon szolgál, ahol a modellt teljesen az eszközön kell futtatni, anélkül, hogy hálózati kört kellene tennie.
Jellemző piramis hálózatok
Mivel az étkezési elemek mérete óriási eltéréseket mutathat egyetlen képen belül (például egy nagy pizza mellett egy kis mártásos csésze), a pipeline egy Jellemző Piramis Hálózatot (FPN) használ a különböző térbeli skálákon történő jellemzők kiemelésére. Az FPN egy felülről lefelé haladó utat épít a háttér köztes jellemző térképeiből, létrehozva egy olyan több-skálás jellemző térképet, amely egyaránt kifejező a kis díszítmények és a nagy főételek észlelésében.
Ennek a szakasznak a kulcsfontosságú kimenete
Egy több-skálás jellemző térképek halmaza (vagy egyetlen összesített jellemző vektor osztályozási feladatokhoz), amely a kép minden területének vizuális szemantikáját kódolja.
4. szakasz: Többcélú étel osztályozás és észlelés
A valódi ételek ritkán tartalmaznak egyetlen étkezési elemet. Egy tipikus vacsora tányéron lehet grillezett lazac, párolt brokkoli, barna rizs és egy citromszelet. A pipeline-nak észlelnie, lokalizálnia és osztályoznia kell minden egyes külön étkezési elemet a keretben.
Objektum észlelés YOLO-val és DETR-rel
A pipeline egy objektum észlelő fejet alkalmaz a kiemelt jellemző térképek fölött. Két fő detektorcsalád dominál ebben a térben:
YOLO (You Only Look Once) egyetlen előrehaladási lépésben végzi az észlelést azáltal, hogy a képet egy rácsra osztja, és egyszerre jósolja meg a keretező dobozokat és az osztály valószínűségeit minden rács cellához. A YOLOv8 és utódai különösen jól alkalmazhatók mobil telepítésre, mivel az egész képet egy lépésben dolgozzák fel, nem pedig területeket javasolnak, majd finomítanak. A Nutrola egy YOLO-alapú észlelő fejet használ, amelyet több mint 15,000 étkezési osztályra hangoltak, amelyek a globális konyhákat ölelik fel.
DETR (Detection Transformer) az objektum észlelést egy halmaz előrejelzési problémaként kezeli, egy transzformátor encoder-decoder architektúrát használva, amely közvetlenül egy észlelési halmazt ad ki, anélkül, hogy szükség lenne horgony dobozokra vagy nem maximális elnyomásra. A DETR jobban kezeli az átfedő ételeket, mint a horgony-alapú módszerek, mivel a halmaz-alapú veszteség természeténél fogva elkerüli a duplikált előrejelzéseket.
Szemantikai szegmentáció vegyes ételekhez
Az olyan összetett ételek esetében, mint a saláták, pirított ételek és gabonás tálak, ahol az egyes összetevők átfedik egymást, a keretező dobozok túl durvák. A pipeline egy szemantikai szegmentációs ágra vált, amely gyakran U-Net vagy DeepLabv3+ architektúrán alapul, amely minden pixel osztályozását végzi a képen. Ez a pixel szintű osztályozás lehetővé teszi a rendszer számára, hogy megbecsülje az egyes összetevők arányát egy vegyes ételben, még akkor is, ha nincsenek világos határok, amelyek elválasztanák őket.
Bizalom értékelés és jelölt rangsorolás
Minden észleléshez tartozik egy bizalmi pontszám. A pipeline egy küszöböt alkalmaz (tipikusan 0.5 és 0.7 között, az alkalmazástól függően), hogy kiszűrje az alacsony bizalmú előrejelzéseket. Amikor a legjobb előrejelzés bizonytalan, a rendszer a felhasználónak bemutathatja a legjobb három-öt jelöltet megerősítésre, csökkentve a hibaarányokat anélkül, hogy manuális bevitelt igényelne.
A Nutrola osztályozó motorja egy felhasználói kontextus modult is tartalmaz, amely figyelembe veszi a felhasználó korábbi étkezéseit, konyhai preferenciáit, földrajzi helyzetét és az időpontot. Ha egy felhasználó gyakran rögzít mexikói ételeket, és a modell bizonytalan a liszt tortillája és a naan között, a kontextus modul a tortillára tereli a valószínűséget. Ez a személyre szabási réteg mérhetően csökkenti a téves osztályozási arányokat az idő múlásával.
Ennek a szakasznak a kulcsfontosságú kimenete
Egy észlelt étkezési elemek listája, mindegyikhez tartozó osztálycímke, keretező doboz vagy pixelmaszk, valamint bizalmi pontszám.
5. szakasz: Porcióméret becslése
Tudni, hogy egy tányér grillezett csirkét és rizst tartalmaz, nem elég. A pipeline-nak meg kell becsülnie, mennyi étel van jelen, mert 100 gramm csirkemell és 300 gramm csirkemell között több mint 300 kalória különbség van.
Monokuláris mélységbecslés
Amikor nincs hardveres mélységérzékelő, a pipeline egy monokuláris mélységbecslő modellt használ (általában a MiDaS vagy DPT architektúrán alapul), hogy a RGB képből egy mélységtérképet inferáljon. Ezek a modellek megtanulják a mélység előrejelzését a kontextuális jelekből, mint például az objektumok átfedése, a relatív méret, a textúra gradiens és a tűnőpontok. Az inferált mélységtérkép, bár kevésbé pontos, mint a LiDAR adatok, elegendő ahhoz, hogy megközelítse az étel háromdimenziós alakját a tányéron.
Referencia objektum skálázás
A fénykép nem tartalmaz inherens skálát. Ezt a pipeline azáltal oldja meg, hogy észleli a keretben a jól ismert dimenziókkal rendelkező referencia objektumokat. A tányérok (tipikusan 25-27 cm átmérőjűek), a standard evőeszközök, a tálak és még a okostelefon szélei is rögzíthetik a skálát. A pipeline egy ellipszist illeszt a detektált tányér pereméhez, és projektív geometriát alkalmaz a nézőszög inferálására, így a pixelmérésekből valós távolságokat rekonstruál.
Térfogat- és súlykonverzió
Miután az étel háromdimenziós alakját megbecsülték, a pipeline a mélységprofilt integrálva számítja ki a térfogatot az étel pixelmaszkján. Ezután a térfogatot súlyra konvertálja az étel-specifikus sűrűségi táblázatok segítségével. Egy csésze leveles spenót sokkal könnyebb, mint egy csésze hummusz, így a sűrűségkeresés elengedhetetlen a pontossághoz.
A Nutrola egy saját sűrűségi adatbázist tart fenn, amely több ezer ételt tartalmaz különböző elkészítési állapotokban (nyers, főtt, turmixolt, fagyasztott), és ezt használja az becsült térfogat grammban történő konvertálásához, magasabb hűséggel, mint a generikus sűrűségi táblázatok.
Ennek a szakasznak a kulcsfontosságú kimenete
Egy becsült súly grammban minden észlelt étkezési elemhez.
6. szakasz: Tápanyagdokumentáció keresés
Miután minden étkezési elemet osztályoztak és megmértek, a pipeline lekérdezi a tápanyagdokumentációt, hogy megkapja a makro- és mikroelemek profilját 100 grammonként.
Adatbázis architektúra
A magas színvonalú tápanyagdokumentációk kormányzati forrásokból származnak, mint például az USDA FoodData Central, az Egyesült Királyság Tápanyagdokumentációs Bankja és a nemzeti megfelelőik több tucat országból. Ezek a források laboratóriumi elemzéssel megállapított tápanyagértékeket biztosítanak több ezer étkezési elemhez standardizált formában.
A Nutrola adatbázisa túlmutat ezeken a kormányzati forrásokon, mivel több mint 1.2 millió márkás termék gyártói által szolgáltatott adatait, étterem menüelemeket, amelyek tápanyaginformációját partnerségek révén ellenőrizték, és közösségi benyújtásokat, amelyek egy többrétegű ellenőrzési folyamaton mentek keresztül, beleértve a kereszt-ellenőrzést, a kiugró értékek észlelését és a dietetikusok átnézését. Az eredmény egy egységes adatbázis több mint 2 millió étkezési elemmel, amelynek tápanyagai egy következetes sémára vannak normalizálva.
Homályos egyezés és entitás megoldás
Az osztályozó modell egy étel címkét, például "grillezett csirkecomb bőrrel" ad ki, amelyet a megfelelő adatbázis-bejegyzéshez kell illeszteni. Ez nem triviális entitás megoldási probléma, mivel ugyanaz az étel több tucat nevet viselhet a régiók és nyelvek között. A pipeline beágyazás-alapú szemantikai keresést használ a legközelebbi adatbázis-bejegyzés megtalálására. Egy finomhangolt szövegkódoló a jósolt étel címkét és az összes adatbázis-bejegyzés nevét ugyanabba a vektortérbe térképezi, és a legközelebbi szomszédot (koszinusz hasonlóság alapján mérve) választja ki.
Amikor több közeli egyezés létezik (például "grillezett csirkecomb bőrrel" és "sült csirkecomb, bőr elfogyasztva"), a rendszer azt a bejegyzést választja, amelynek elkészítési módja a legjobban illeszkedik a képben észlelt vizuális jelekhez.
Ennek a szakasznak a kulcsfontosságú kimenete
Egy teljes tápanyagprofil (kalóriák, fehérjék, szénhidrátok, zsírok, rostok és mikroelemek) 100 grammonként minden észlelt étkezési elemhez.
7. szakasz: Makro- és kalóriaszámítás
Az utolsó számítási szakasz egyszerű aritmetika, de itt minden korábbi szakaszból származó hiba összeadódik. A pipeline a 100 grammonkénti tápanyagértékeket megszorozza az egyes étkezési elemek becsült súlyával, majd összeadja az eredményeket, hogy elkészítse a teljes étkezési bontást.
A számítás
Minden étkezési elem esetében:
- Kalóriák = (becsült gramm / 100) x kalóriák 100 g-onként
- Fehérjék = (becsült gramm / 100) x fehérjék 100 g-onként
- Szénhidrátok = (becsült gramm / 100) x szénhidrátok 100 g-onként
- Zsírok = (becsült gramm / 100) x zsírok 100 g-onként
Ezeket az egyedi értékeket összeadják, hogy megkapják az étkezés összesített értékét.
Hiba terjedés és bizalmi intervallumok
Mivel minden korábbi szakasz bizonyos bizonytalanságot vezet be, a Nutrola nem mutat be egyetlen pontbecslést, mint abszolút igazságot. A rendszer bizalmi intervallumokat számít ki a klasszifikációs bizalmi pontszám és a porcióbecslés bizonytalanságának terjesztésével a számításon keresztül. Ha a klasszifikációs bizalom magas, de a porció becslése bizonytalan (például az étel egy mély tálban van, amely elrejti a térfogatot), a rendszer ezt tükrözi azzal, hogy szélesíti a bizalmi tartományt, és esetleg arra kéri a felhasználót, hogy erősítse meg a porciót.
Ez az átláthatóság tudatos tervezési választás. Ahelyett, hogy hamis érzést keltene a precizitásról, a Nutrola egy tartományt mutat be (például "420-510 kcal"), amikor a mögöttes becslések ezt indokolják, segítve a felhasználókat, hogy reális képet kapjanak a bevitelükről.
Ennek a szakasznak a kulcsfontosságú kimenete
A teljes kalória- és makrotápanyag-bontás az étkezéshez, opcionális bizalmi intervallumokkal.
8. szakasz: Felhasználói megjelenítés és naplózás
Az utolsó szakasz a felhasználói felületen jeleníti meg az eredményeket. Az észlelt étkezési elemeket felsorolják az egyes kalória- és makroértékekkel, és az étkezés összesített értéke kiemelten jelenik meg. A felhasználó bármely elemre koppinthat, hogy javítsa azt vagy módosítsa a porciót, és ezek a korrekciók visszakerülnek a személyre szabási modellekbe, hogy javítsák a jövőbeli előrejelzéseket.
A Nutrolán a megjelenítés tartalmaz egy vizuális átfedést az eredeti fényképen, amely keretező dobozokat vagy szegmensek kiemeléseit mutatja minden észlelt étkezéshez, így azonnal világossá válik, mit azonosított az AI és hol. Ez a vizuális visszajelzés bizalmat épít, és megkönnyíti a hibák észlelését és javítását.
A naplózott étkezés a felhasználó napi tápnaptárában tárolódik, és hozzájárul a kalóriák, fehérjék, szénhidrátok, zsírok és nyomon követett mikroelemek futó összesített értékeihez. Az adatok szinkronizálódnak az Apple Health, Google Fit és más kapcsolódó platformokkal a szabványos egészségügyi adat API-kon keresztül.
Ennek a szakasznak a kulcsfontosságú kimenete
Egy teljesen megjelenített étkezési naplóbejegyzés, az egyes elemek és a teljes tápanyagdokumentáció, vizuális átfedésekkel és szinkronizálással az egészségügyi platformokkal.
Pipeline összefoglaló táblázat
| Szakasz | Alap technológia | Bemenet | Kimenet |
|---|---|---|---|
| 1. Kamera bemenet | Eszköz ISP, LiDAR/ToF érzékelők | Fény a jelenetből | RGB kép + opcionális mélységtérkép |
| 2. Kép előkészítése | Bicubikus méretezés, csatorna normalizálás | Nyers kép | Normalizált tenzor (pl. 384x384x3) |
| 3. Jellemző kiemelés | EfficientNet, ViT, Swin Transformer, FPN | Normalizált tenzor | Több-skálás jellemző térképek |
| 4. Étel osztályozás | YOLOv8, DETR, DeepLabv3+, felhasználói kontextus | Jellemző térképek | Címkézett étkezési elemek keretező dobozokkal/maskokkal |
| 5. Porció becslés | MiDaS mélységbecslés, referencia skálázás, sűrűségi táblázatok | RGB + mélység + étel maszkok | Súly grammban étkezési elemenként |
| 6. Adatbázis keresés | Beágyazás-alapú szemantikai keresés, USDA/márkás adatbázisok | Étel címkék + elkészítési jelek | Tápanyagprofilok 100 g-onként |
| 7. Kalóriaszámítás | Súlyozott aritmetika, bizonytalanság terjesztés | Gramm becslések + tápanyagprofilok | Összes kalória és makrók bizalmi intervallumokkal |
| 8. Felhasználói megjelenítés | UI megjelenítés, egészségügyi adatok szinkronizálása API-kkal | Számított tápanyagdokumentáció | Étkezési naplóbejegyzés vizuális átfedéssel |
Hol illeszkednek a Nutrola innovációi
A fent leírt szakaszok közül több a Nutrola megvalósítására jellemző innovációkat tartalmaz:
Személyre szabott osztályozási kontextus. A felhasználói kontextus modul a 4. szakaszban a korábbi étkezési adatok, konyhai preferenciák, helyszín és időpont figyelembevételével segít a bizonytalan előrejelzések pontosításában. Ez a legtöbb ételfelismerő pipeline-ban nem szokványos, és mérhető javulásokat eredményez a valós világban a kontextus nélküli modellekhez képest.
Saját sűrűségi adatbázis. Az 5. szakaszban a térfogat-súly konverzió egy sűrűségi adatbázison alapul, amely több elkészítési állapotú ételt tartalmaz. A generikus rendszerek gyakran egyetlen átlagos sűrűséget használnak egy ételhez, ami rendszeres hibát vezet be, például főtt és nyers zöldségek vagy lecsöpögtetett és le nem csöpögtetett konzerv ételek esetén.
Bizalom-alapú megjelenítés. Ahelyett, hogy egyetlen kalóriaértéket mutatna, a Nutrola a bizonytalanságot hangsúlyozza, amikor az létezik. Ez az őszinte megközelítés csökkenti a felhasználói frusztrációt, amikor a becslések eltérnek, mert a tartomány önmagában kommunikálja, hogy a rendszer kevésbé biztos egy adott elemről.
Egységes, többforrásos tápanyagdokumentációs adatbázis. A 2 millió bejegyzést tartalmazó adatbázis a 6. szakaszban a kormányzati laboratóriumi adatok, márkás termékadatok és ellenőrzött közösségi benyújtások egyesítésével jött létre egy egységes normalizált sémába, így a pipeline sokkal több étkezési bejegyzéshez fér hozzá, mint bármely egyes forrás.
Folyamatos tanulás a korrekciókból. Minden felhasználói korrekció a 8. szakaszban visszakerül az osztályozási és porciós modellekbe a periódikus újraképzési ciklusok során, létrehozva egy önfenntartó rendszert, amelyben a pontosság javul, ahogy a felhasználói bázis nő.
Késleltetés és eszközön végzett megfontolások
A végponttól végpontig terjedő késleltetés rendkívül fontos a felhasználói élmény szempontjából. Ha a pipeline több mint két-három másodpercet vesz igénybe, a felhasználók lassúnak érzékelik, és visszatérhetnek a manuális naplózáshoz. Számos mérnöki stratégia tartja alacsonyan a késleltetést:
Modell kvantálás a 32 bites lebegőpontos súlyokat 8 bites egész számokká alakítja, körülbelül 4x csökkentve a modell méretét, és felgyorsítva a következtetést mobil neurális feldolgozó egységeken (NPU) minimális pontosságvesztéssel. A Nutrola utólagos kvantálást alkalmaz mind a jellemző kiemelés háttérére, mind az észlelő fejre.
Eszközön végzett következtetés teljesen megszünteti a hálózati kört a számításigényes szakaszok (jellemző kiemelés és észlelés) esetében. Az Apple Core ML és az Android NNAPI hardveres gyorsítást biztosító következtetési utakat kínál, amelyeket a pipeline céloz. Csak a könnyű adatbázis-keresés és kalóriaszámítás szakaszok igényelnek szerverhívást, és ezek is vissza tudnak térni egy helyi gyorsítótárhoz offline működés esetén.
Spekulatív végrehajtás megkezdi az előkészítést és a jellemző kiemelést, miközben a kamera előnézete még aktív, így mire a felhasználó megnyomja a zár gombot, a pipeline már részben feldolgozta a keretet. Ez a technika több száz milliszekundumot csökkent a észlelt késleltetésből.
Pontossági benchmarkok és valós teljesítmény
A Food-101, ISIA Food-500 és Nutrition5k standard akadémiai benchmarkokon a modern pipeline-ok 85 és 92 százalék közötti legjobb 1-es osztályozási pontosságot és 15-25 százalék közötti porcióbecslési hibákat érnek el a valós súlyhoz képest. A valós teljesítmény változó, mivel a felhasználók által benyújtott fényképek zajosabbak, mint a válogatott adathalmazon: a gyenge világítás, a részleges eltakart területek, a szokatlan szögek és a szokatlan regionális ételek mind rontják a pontosságot.
A Nutrola belső tesztelése egy 50,000 valós felhasználói fényképből álló tartalék készleten 89 százalékos legjobb 1-es osztályozási pontosságot és 18 százalékos medián porcióbecslési hibát mutat. Amikor a legjobb 3 jelöltet figyelembe veszik, az osztályozási pontosság 96 százalékra emelkedik, ezért a korrekciós felület kiemelten mutatja az alternatív javaslatokat.
Ezek a számok folyamatosan javulnak minden újraképzési ciklussal, ahogy a korrekciós visszajelzési hurkok egyre több címkézett adatot halmoznak fel a valós világban.
Gyakran Ismételt Kérdések
Mennyire tart az egész pipeline a fényképtől a tápanyagadatokig?
Modern okostelefonokon, amelyek dedikált neurális feldolgozó hardverrel rendelkeznek, a végponttól végpontig terjedő pipeline általában 1.0-2.5 másodperc alatt befejeződik. Ennek a többsége a jellemző kiemelésre és az objektum észlelésre fordítódik a 3. és 4. szakaszban. Az előkészítés és a kalóriaszámítás szinte azonnali, az adatbázis-keresés pedig csak 50-150 milliszekundumot ad hozzá, a hálózati körülményektől vagy attól függően, hogy helyi gyorsítótárat használnak-e. A Nutrola spekulatív végrehajtási rendszere, amely a kamera előnézet feldolgozását a felhasználó zár megnyomása előtt kezdi meg, sok esetben 1 másodpercen belül csökkentheti az észlelt késleltetést.
Mennyire pontos az AI étel osztályozás a manuális naplózáshoz képest?
Az AI étel osztályozás 85 és 92 százalék közötti legjobb 1-es pontosságot ér el a standard benchmarkokon, és a legjobb 3-as pontosság meghaladja a 95 százalékot. A manuális naplózás, bár elméletileg pontos, ha gondosan végzik, 10-45 százalékos rendszeres alábecsülést szenved el a közzétett étrendi kutatások szerint. A gyakorlatban az AI osztályozás, kombinálva egy gyors felhasználói megerősítési lépéssel, általában következetesebb és kevésbé elfogult eredményeket produkál, mint a tisztán manuális bevitel, különösen azok számára, akik naponta több étkezést rögzítenek, és tapasztalják a bevitel fáradtságát.
Mi történik, ha az AI nem tud azonosítani egy étkezési elemet?
Amikor a legmagasabb bizalmi előrejelzés a rendszer küszöbe alá esik, a pipeline egy elegáns visszaesési megközelítést alkalmaz. A legjobb három-öt jelölt azonosítást mutatja be, és kéri a felhasználót, hogy válassza ki a helyeset, vagy gépelje be a nevet manuálisan. Ez a felhasználói korrekció rögzítésre kerül, és visszakerül a tanulási pipeline-ba a következő újraképzési ciklus során, ami azt jelenti, hogy minden hiba egy tanulási jelzéssé válik, amely javítja a jövőbeli előrejelzéseket. Az idő múlásával, ahogy ezek a korrekciók felhalmozódnak, a rendszer lefedettsége a szokatlan és regionális ételek terén folyamatosan bővül.
Működik a pipeline vegyes ételek, például saláták vagy curryk esetében?
Igen. Az olyan vegyes ételek esetében, ahol az egyes összetevők térben nem választhatók el, a pipeline a keretező dobozos észlelésről a szemantikai szegmentációra vált, olyan architektúrák, mint a DeepLabv3+. Ez a pixel szintű osztályozás megbecsüli az egyes összetevők arányát a vegyes területen. Az olyan erősen turmixolt ételek esetében, mint a turmixok vagy a pürésített levesek, ahol a vizuális elválasztás lehetetlen, a pipeline recept-alapú dekompozícióra támaszkodik: azonosítja az étel típusát, majd egy receptmodellt használ, hogy megbecsülje a valószínű összetevő arányokat és azok kombinált tápanyagprofilját.
Hogyan működik a porcióbecslés mélységérzékelő nélkül?
Amikor nincs LiDAR vagy időmérő érzékelő, a pipeline egy monokuláris mélységbecslő modellt (például MiDaS vagy DPT) használ, hogy a RGB képből közelítő mélységet inferáljon. Ezek a modellek több millió kép-mélység párra lettek betanítva, és képesek a háromdimenziós étel alakját a kontextuális jelek, például a tányér geometriája, az árnyék minták és a textúra gradiens alapján megbecsülni. A rendszer emellett észleli a jól ismert méretű referencia objektumokat, különösen a tányérokat és az evőeszközöket, hogy rögzítse a skálát. Bár a monokuláris becslés kevésbé pontos, mint a hardveres mélységérzékelés, a tanult mélységi jelek és a referencia skálázás kombinációja a porcióbecsléseket gyakorlati pontossági tartományon belül tartja a tápanyagkövetéshez.
Kezelheti a pipeline több tányért vagy étkezést egyetlen fényképen?
Az objektum észlelési szakasz úgy van tervezve, hogy tetszőleges számú étkezési elemet kezeljen, függetlenül attól, hogy egy tányéron vagy több tányéron helyezkednek el. A YOLO és a DETR észlelő fejek átvizsgálják az egész képet, és független észleléseket adnak ki minden étkezési elemhez, amelyet találnak, akár egy vacsora tányéron, akár egy asztalon több étkezési elemmel, vagy egy tálcán elrendezve. Minden észlelt elemet függetlenül dolgoznak fel a porcióbecslés és a kalóriaszámítás szakaszok során. A legjobb pontosság érdekében a Nutrola azt javasolja, hogy minden tányért vagy tálat külön-külön fényképezzenek, hogy a referencia skálázás minden tányérra kalibrálható legyen, de a rendszer ügyesen kezeli a több tányéros jeleneteket, amikor ez nem praktikus.
Készen állsz a táplálkozásod nyomon követésének átalakítására?
Csatlakozz ezrekhez, akik a Nutrolával átalakították az egészségügyi útjukat!