Hogyan azonosítja az ételeket a számítógépes látás: Az AI kalóriaszámlálás mögötti technológia

Fedezd fel, hogyan működnek a konvolúciós neurális hálózatok és a képosztályozás az AI ételazonosításában, lehetővé téve olyan alkalmazások számára, mint a Nutrola, hogy egy egyszerű fénykép alapján pontos kalóriainformációt nyújtsanak.

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

Minden alkalommal, amikor a telefonod kameráját egy tányér ételre irányítod, és azonnali kalóriabontást kapsz, egy bonyolult mesterséges intelligencia folyamatok láncolata működik a háttérben. Ami elsőre egy egyszerű érintésnek tűnik, valójában konvolúciós neurális hálózatokat, többcímkés képosztályozást és évek kutatását foglalja magában a számítógépes látás terén. Az, hogy megértsük, hogyan működik ez a technológia, segít megmagyarázni, miért vált az AI-alapú kalóriaszámlálás olyan pontosá, és miért folyamatosan fejlődik.

Ez a cikk részletezi az ételazonosító AI mögötti alapvető technológiát, a neurális hálózatok alapvető építőelemeitől kezdve a tányéron lévő ételek azonosításának konkrét mérnöki kihívásaiig.

Mi az a számítógépes látás, és miért fontos a táplálkozás szempontjából?

A számítógépes látás a mesterséges intelligencia egy ága, amely arra tanítja a gépeket, hogy értelmezzék és megértsék a valóságból származó vizuális információkat. Míg az emberek könnyedén megkülönböztetik a zabkását a tésztától, egy számítógépnek ugyanezt megtanítani rengeteg címkézett kép feldolgozását és vizuális minták matematikai modelljeinek felépítését igényli.

A táplálkozás követésében a számítógépes látás megoldja a diétás önellenőrzés legnagyobb problémáját: a manuális adatbevitel nehézségeit. A Journal of the Academy of Nutrition and Dietetics-ben megjelent kutatás kimutatta, hogy a manuális étkezési naplózás 10-45%-kal aluljelenti a kalóriabevitelt. A gépelés helyett egy fénykép használatával a számítógépes látás eltávolítja azt a frikciót, ami miatt a legtöbb ember az első két hét után feladja az étkezések nyomon követését.

A probléma mértéke

Az ételazonosítás az egyik legnehezebb képosztályozási kihívásnak számít a benne rejlő hatalmas változatosság miatt:

  • Több ezer különböző étel létezik a világ különböző konyháiban
  • Ugyanaz az étel drámaian eltérően nézhet ki a készítési módtól függően
  • A világítás, a szög és a tálalás mind befolyásolják a megjelenést
  • Gyakran több étel osztozik egy tányéron, ami egyidejű azonosítást igényel
  • A porciók mérete folyamatosan változik, nem esik tiszta kategóriákba

Ezek ellenére a modern ételazonosító rendszerek a standard benchmarkokon 90% feletti top-5 pontossági arányt érnek el, ami azt jelenti, hogy a helyes étel a rendszer legjobb öt tippje között több mint kilencszer jelenik meg tízből.

Konvolúciós neurális hálózatok: Az ételazonosítás alapja

Szinte minden ételazonosító rendszer szívében egy mélytanulási architektúra található, amelyet konvolúciós neurális hálózatnak, vagy CNN-nek neveznek. A CNN-ek megértése kulcsfontosságú ahhoz, hogy megértsük, hogyan képes a telefonod egy fényképre nézve megmondani, hogy csirke tikka masalát eszel basmati rizzsel.

Hogyan dolgozza fel a CNN a képet

A CNN egy képet egy rétegek sorozatán keresztül dolgoz fel, amelyek mindegyike egyre összetettebb vizuális jellemzők észlelésére szolgál:

1. réteg - Élszűrés: Az első konvolúciós réteg megtanulja észlelni az egyszerű éleket és színátmeneteket. Felismerheti például egy tál görbe szélét vagy a hús és a szósz közötti határt.

2. réteg - Textúrafelismerés: A mélyebb rétegek az éleket textúrákká kombinálják. A hálózat elkezdi megkülönböztetni a barna rizs szemcsés textúráját a fehér rizs sima felületétől, vagy a grillezett csirke rostos textúráját a sült csirke fényes fényétől.

3. réteg - Forma és minta felismerés: A magasabb rétegek a textúrákat felismerhető formákká és mintákká állítják össze. Egy kör alakú forma egy adott textúrával például tortilla lehet, míg egy hosszúkás forma más textúrával kenyérstikké válik.

4. réteg - Tárgyfelismerés: Az utolsó konvolúciós rétegek az összes korábbi információt kombinálják, hogy teljes ételitemeket ismerjenek fel. A hálózat megtanulta, hogy egy adott szín-, textúra-, forma- és kontextus-kombináció egy specifikus ételhez tartozik.

A pooling és a jellemzőtérképek szerepe

A konvolúciós rétegek között a pooling rétegek csökkentik az adatok térbeli dimenzióit, miközben megőrzik a legfontosabb jellemzőket. Ennek két célja van: kezelhetővé teszi a számítást, és egyfajta translációs invarianciát biztosít, ami azt jelenti, hogy a hálózat képes felismerni egy ételt, függetlenül attól, hogy hol jelenik meg a keretben.

Minden konvolúciós réteg kimenete jellemzőtérképnek nevezik. A korai jellemzőtérképek alacsony szintű információkat, például éleket és színeket rögzítenek, míg a későbbi jellemzőtérképek magas szintű fogalmakat kódolnak, mint például "ez a terület spagetti". Egy tipikus ételazonosító modell rétegenként több száz ilyen jellemzőtérképet generál.

Népszerű CNN architektúrák az ételazonosításban

Architektúra Év Kulcsinnováció Tipikus felhasználás az étel AI-ban
AlexNet 2012 Bizonyította, hogy a mély CNN-ek nagy léptékben működnek Korai ételazonosító kutatás
VGGNet 2014 Megmutatta, hogy a mélység számít Jellemzők kiemelése ételadatbázisokhoz
GoogLeNet/Inception 2014 Több méretű feldolgozás Hatékony mobil ételazonosítás
ResNet 2015 Maradványkapcsolatok nagyon mély hálózatokhoz Magas pontosságú ételklasszifikáció
EfficientNet 2019 A mélység, szélesség és felbontás kiegyensúlyozott skálázása Modern mobil ételazonosító alkalmazások
Vision Transformers 2020 Önfókusz a képkockákra Csúcstechnológiás ételazonosító kutatás

A klasszifikációtól a többcímkés észlelésig

A korai ételazonosító rendszerek a feladatot egyszerű klasszifikációs problémaként kezelték: egy kép alapján egy étel címkét jósoltak. De a valódi étkezések ritkán ilyen egyszerűek. Egy tipikus ebéd tartalmazhat egy fő fehérjét, egy köret zöldséget, egy gabonát és egy szószt, mindezt egy tányéron.

Tárgyfelismerés összetett tányérokhoz

A modern ételazonosító rendszerek tárgyfelismerési keretrendszereket használnak, amelyek képesek azonosítani és lokalizálni több ételt egyetlen képen belül. Ezek a rendszerek keretező dobozokat rajzolnak minden egyes különálló étel köré, és függetlenül osztályozzák őket.

Olyan architektúrák, mint a YOLO (You Only Look Once) és a Faster R-CNN, alkalmazásra kerültek az ételazonosításhoz. Ezek a modellek felosztják a képet egy rácsra, és egyszerre jósolják az étel helyét és osztályát, lehetővé téve a valós idejű feldolgozást mobil eszközökön.

Szemantikai szegmentáció a pontos határokért

Még nagyobb precizitás érdekében egyes rendszerek szemantikai szegmentációt alkalmaznak, amely minden egyes pixel azonosítását jelenti egy adott étel kategóriához. Ez különösen hasznos a vegyes ételeknél, mint például a saláták vagy a stir-fry, ahol a különböző összetevők átfedik egymást.

A Nutrola Snap & Track funkciója ezeknek a megközelítéseknek a kombinációját használja. Amikor lefényképezed az étkezésedet, a rendszer először észleli az egyes ételterületeket, majd osztályozza őket, végül pedig megbecsüli az egyes tételek mennyiségét. Ez a többlépcsős folyamat lehetővé teszi a rendszer számára, hogy mindent kezeljen, a egyszerű banántól kezdve a bonyolult, többfogásos étkezésig.

Képzési adatok: Az pontos ételazonosítás üzemanyaga

Egy ételazonosító modell csak annyira jó, amennyire az adatok, amelyeken képezték. Egy magas minőségű ételfotó adatbázis létrehozása a legnagyobb kihívások egyike az étel AI fejlesztésében.

Nyilvános benchmark adatbázisok

Több nyilvános adatbázis is elősegítette az ételazonosítási kutatás fejlődését:

  • Food-101: 101,000 képet tartalmaz 101 étel kategóriában, széles körben használt benchmarkként
  • ISIA Food-500: 500 étel kategóriát fed le 400,000 képpel, szélesebb lefedettséget biztosít
  • UEC Food-256: Egy japán étel adatbázis 256 kategóriával, fontos az ázsiai konyha lefedettsége szempontjából
  • Nutrition5k: Ételképeket párosít pontos tápanyagmérésekkel laboratóriumi környezetben

A valós világ sokféleségének kihívása

A nyilvános adatbázisok, bár értékesek a kutatás szempontjából, nem képviselik teljes mértékben az emberek által világszerte fogyasztott ételek változatosságát. Egy modellt, amelyet elsősorban nyugati konyhán képeztek, nehézségekbe ütközik a délkelet-ázsiai ételek azonosításában, és fordítva. Ezért a gyártási ételazonosító rendszerek kiegészítik a nyilvános adatbázisokat a felhasználói bázisból gyűjtött saját adatokkal.

A Nutrola több mint 50 országban szolgálja a felhasználókat, ami azt jelenti, hogy a rendszer naponta hatalmas étkezési sokféleséggel találkozik. Ez a globális felhasználói bázis folyamatosan biztosít egy valós idejű ételfotó áramlást, amely segít a modellnek javítani az összes konyhára vonatkozó azonosítását az idő múlásával.

Adatnövelési technikák

A képzési adatok mesterséges bővítése és a modell robusztusságának javítása érdekében a mérnökök különböző adatnövelési technikákat alkalmaznak:

  • Forgatás és tükrözés: Biztosítja, hogy a modell bármilyen szögből felismerje az ételeket
  • Színváltoztatás: Szimulálja a különböző világítási körülményeket
  • Véletlenszerű kivágás: Megtanítja a modellt, hogy felismerje az ételek részleges nézeteit
  • Cutout és mixup: Fejlettebb technikák, amelyek arra kényszerítik a modellt, hogy több megkülönböztető területre összpontosítson, ahelyett, hogy egyetlen vizuális jelre támaszkodna

Hogyan működik a Nutrola Snap & Track technológiája

A Nutrola Snap & Track funkciója mindezeket a technológiákat egy zökkenőmentes felhasználói élménybe integrálja. Íme, mi történik a fénykép készítése és a kalóriabontás megjelenítése közötti körülbelül két másodpercben:

  1. Kép előfeldolgozás: A fényképet átméretezik és normalizálják a neurális hálózat által elvárt formátumra. Világítási és színkorrekciókat alkalmaznak a bemenet standardizálására.

  2. Étel észlelés: Egy tárgyfelismerő modell azonosítja a képen lévő különböző ételterületeket, és keretező dobozokat rajzol mindegyik köré.

  3. Klasszifikáció: Minden észlelt területet egy klasszifikáló hálózaton keresztül küldenek, amely azonosítja a konkrét ételt. A rendszer figyelembe veszi a legjobb jelölteket és azok bizalmi pontszámait.

  4. Porcióbecslés: Egy külön modell megbecsüli az egyes azonosított ételek térfogatát és súlyát vizuális jelek és referencia méretek alapján (erről többet olvashatsz a porciók becsléséről szóló kísérő cikkünkben).

  5. Tápanyagtáblázat: Az azonosított ételeket és a megbecsült porciókat egy átfogó tápanyagdátbázissal párosítják, hogy kiszámolják a kalóriákat, makrotápanyagokat és mikrotápanyagokat.

  6. Felhasználói megerősítés: Az eredményeket a felhasználónak mutatják be, aki megerősítheti vagy javíthatja az azonosítást. Ez a visszacsatoló kör folyamatosan javítja a modellt.

Ez az egész folyamat kevesebb mint két másodperc alatt zajlik, gyorsabb, mint beírni a "grillezett csirkemell" kifejezést egy keresőmezőbe és végigscrollozni a tucatnyi találat között.

Kihívások az ételazonosító AI-ban

A figyelemre méltó előrehaladás ellenére az ételazonosító AI még mindig számos kihívással néz szembe, amelyeken a kutatók és mérnökök aktívan dolgoznak.

Vizuálisan hasonló ételek

Néhány étel szinte azonosnak tűnik a fényképeken, de nagyon eltérő tápanyagtartalommal bír. A fehér rizs és a karfiolrizs, a hagyományos tészta és a teljes kiőrlésű tészta, valamint a teljes zsírtartalmú és az alacsony zsírtartalmú sajt mind olyan példák, amelyek vizuálisan hasonlóak, de jelentősen eltérnek a kalóriákban és makrotápanyagokban.

A jelenlegi rendszerek ezt a kontextuális nyomok (mi van még a tányéron), a felhasználói előzmények (mit eszik valaki általában) és a felhasználótól való megerősítés kérésének kombinációjával kezelik, amikor a bizalom alacsony.

Vegyes és réteges ételek

Egy burrito, egy szendvics vagy egy réteges rakott étel alapvető problémát jelent: a legtöbb összetevő rejtve van a szem elől. Az AI látja a tortillát, de nem a babot, sajtot, tejfölt és rizst, ami belül van.

Ennek kezelésére a modellek megtanulják a közönséges ételek tipikus összetételét. Amikor a rendszer azonosít egy burritót, képes következtetni a valószínű belső összetevőkre a látható külső és a gyakori elkészítési módszerek alapján. A felhasználók ezután szükség szerint módosíthatják a konkrét töltelékeket.

Világítási és környezeti feltételek

A gyenge étteremvilágítás, a harsány vaku és a színtónusú környezeti fény mind befolyásolhatják az étel megjelenését. A sárga világítás a fehér rizst sáfrányos rizsnek tüntetheti fel, míg a kék tónusú világítás a vörös húst barna színűnek mutathatja.

A modern rendszerek ezt a képzési adatok bővítésével és színinvariáns jellemzők kiépítésével kezelik, amelyek inkább a textúrára és a formára összpontosítanak, mint az abszolút színértékekre.

Az ételazonosító technológia jövője

Az ételazonosító AI gyorsan fejlődik. Számos új trend mutat arra, hogy a közeljövőben még képesebb rendszerek várhatóak:

Videóalapú azonosítás: A jövőbeli rendszerek nem egyetlen fényképet elemeznek, hanem egy rövid videoklipet az étkezésről, több szögből rögzítve, javítva a pontosságot.

Kiterjesztett valóság (AR) rétegek: Az AR valós idejű tápanyaginformációkat nyújthat, miközben egy büfé vagy étterem menüjét vizsgálod, segítve a tájékozott döntések meghozatalában, mielőtt ennél.

Többmodalitású modellek: A vizuális azonosítást ötvözve szöveggel (menük, összetevők listái) és akár hanggal (megkérdezve a felhasználót, "tettél-e hozzá öntetet?") a teljes étkezés megértéséhez.

Eszközön belüli feldolgozás: Ahogy a mobilprocesszorok egyre erősebbé válnak, az AI feldolgozásának egy része közvetlenül a telefonon történhet, anélkül, hogy képeket kellene küldeni egy szerverre, javítva a sebességet és a magánélet védelmét.

Összetevő szintű azonosítás: Túlmutatva az étel szintű klasszifikáción, az egyes összetevők és azok hozzávetőleges mennyiségeinek azonosítása, lehetővé téve a pontosabb tápanyag-számításokat.

Miért folyamatosan javul a pontosság

Az ételazonosító AI egyik legbátorítóbb aspektusa a beépített fejlesztési mechanizmusa. Minden alkalommal, amikor egy felhasználó fényképet készít és megerősíti vagy javítja az eredményt, a rendszer egy címkézett adatpontot kap. Milliók naponta étkezéseket naplózó felhasználóval a gyártási rendszerek, mint a Nutrola, olyan ütemben halmoznak fel képzési adatokat, amit az akadémiai kutatás nem tud lépést tartani.

Ez egy virtuos körforgást teremt: a jobb pontosság több felhasználót vonz, több felhasználó több adatot generál, több adat jobb pontosságot tesz lehetővé. Ezért az ételazonosítás, amit ma tapasztalsz, jelentősen jobb, mint ami még egy évvel ezelőtt elérhető volt, és folyamatosan javulni fog.

GYIK

Mennyire pontos az AI ételazonosítása a manuális naplózáshoz képest?

A kutatások kimutatták, hogy az AI ételazonosítás a gyakori ételek esetében 90% feletti pontosságot érhet el, ami összehasonlítható vagy jobb, mint a képzett dietetikusok manuális porcióbecslésének pontossága. A nem szakértők által végzett manuális naplózás általában 10-45%-kal aluljelenti a kalóriabevitelt, így az AI-alapú naplózás megbízhatóbb a legtöbb ember számára.

Működik az AI ételazonosítás a világ különböző konyháival?

Igen, bár a pontosság a konyhától függően változik, attól függően, hogy milyen képzési adatok állnak rendelkezésre. Az olyan rendszerek, mint a Nutrola, amelyek globális felhasználói bázist szolgálnak több mint 50 országban, folyamatosan javítják a különböző konyhák azonosítását, ahogy egyre több adatot gyűjtenek a világ felhasználóitól. Minél inkább képviselteti magát egy konyha a képzési adatokban, annál pontosabbá válik az azonosítás.

Működik az ételazonosító AI offline?

Ez a megvalósítástól függ. Néhány alkalmazás a képeket eszközön belül, optimalizált modellek segítségével dolgozza fel, ami offline működik, de némi pontosságot feláldozhat. Mások képeket küldenek a felhő szerverekre feldolgozásra, ami internetkapcsolatot igényel, de nagyobb, pontosabb modelleket használhat. Sok modern alkalmazás hibrid megközelítést alkalmaz, kezdeti azonosítást végez eszközön, és finomítja az eredményeket, amikor elérhető a felhőfeldolgozás.

Hogyan kezeli az AI a házi készítésű ételeket, amelyek nem egyeznek az éttermek ételeivel?

A modern ételazonosító rendszerek mind étterem, mind házi készítésű étel képeken képeztek. Az egyes összetevőket azonosítják, ahelyett, hogy egy teljes ételt próbálnának egy adatbázis bejegyzéshez illeszteni. Tehát egy házi készítésű stir-fry-t a látható összetevőire (csirke, brokkoli, rizs, szósz) bontanak le, nem pedig egyetlen menüponthoz illesztik.

A fényképem adatai titokban maradnak?

A magánélet védelmére vonatkozó irányelvek alkalmazásonként változnak. A Nutrola elkötelezett a felhasználók magánélete mellett, és az ételfotókat kizárólag táplálkozási elemzés és a modell fejlesztése céljából használja. A képeket biztonságosan dolgozzák fel, és nem osztják meg harmadik felekkel. A felhasználók áttekinthetik a magánélet védelmére vonatkozó irányelveket a teljes adatkezelési gyakorlatok részleteiért.

Mi történik, ha az AI tévesen azonosít egy ételt?

Ha az AI tévesen azonosít egy ételt, a felhasználók kijavíthatják az eredményt, ha kiválasztják a helyes elemet egy listából, vagy beírják a helyes ételt. Ez a javítás értékes képzési adatként szolgál, amely segít a modellnek javulni az idő múlásával. Minél több javítást kap egy rendszer egy adott ételre, annál gyorsabban javul a pontossága az adott tétel esetében.

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!