mAP és IoU: Mélyreható elemzés a számítógépes látás benchmarkjairól az ételek felismerésében

Mennyire pontos az AI ételek felismerése valójában? Megvizsgáljuk a lényeges metrikákat, az mAP-t és az IoU-t, elmagyarázzuk, mit jelentenek a kalóriaszámlálás pontosságára nézve, és bemutatjuk, hogyan kezelik a modern architektúrák az ételek AI legnehezebb problémáját: az átfedő elemeket egy tányéron.

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

Amikor egy táplálkozási alkalmazás azt állítja, hogy az AI képes „azonosítani az ételeidet egy fényképről”, mit is jelent ez valójában mérhető szempontból? Mennyire pontos az azonosítás? Hogyan kezeli a rendszer, ha egy tányéron hat különböző étel érintkezik egymással? És hogyan lehet összehasonlítani az egyes ételek felismerő rendszereit?

A válaszok két metrikában rejlenek, amelyeket a számítógépes látás kutatói használnak az objektum-észlelési modellek értékelésére: mAP (mean Average Precision) és IoU (Intersection over Union). Ezek a számok határozzák meg, hogy egy ételek AI valóban pontos-e, vagy csupán lenyűgöző egy bemutatón.

Az IoU megértése: Az alapmetric

Az Intersection over Union méri, hogy egy előre jelzett keret vagy szegmentációs maszk mennyire fedi le a valóságot, azaz az étel tényleges helyét és formáját, ahogyan azt egy emberi annotátor megjelölte.

A számítás egyszerű:

IoU = Átfedés területe / Unió területe

Az IoU 1.0 azt jelenti, hogy a jóslat tökéletesen megfelel a valóságnak. Az IoU 0.0 azt jelenti, hogy nincs átfedés. A gyakorlatban az ételek felismerésében a „helyes” észlelés standard küszöbe az IoU 0.5 vagy magasabb, ami legalább 50 százalékos átfedést jelent a jósolt és a tényleges ételterület között.

Miért fontos az IoU a táplálkozás szempontjából

Az IoU közvetlen hatással van a porciók becslésére. Ha a modell kerete csak a tányéron lévő rizs 60 százalékát fedi le (IoU az éles szegmentációs küszöb alatt), a porciós becslés alulbecsült lesz. Ezzel szemben, ha a keret túl nagy, és magában foglalja a szomszédos curry egy részét, a rizs kalória becslése a curry tápanyagtartalmával meg fog nőni.

Egyszerű tányérok esetén, ahol egyetlen étel van középen, az IoU viszonylag könnyen optimalizálható. A kihívás drámaian nő a komplex, több ételt tartalmazó tányérok esetén.

Az mAP megértése: A rendszer szintű metrik

A Mean Average Precision összegzi az észlelési pontosságot az összes étel kategória és bizalmi küszöb között egyetlen pontszámban. Megválaszolja a kérdést: az összes ételtípus közül, amelyet ez a modell képes felismerni, mennyire megbízhatóan észleli és osztályozza őket?

A számítás a következőket foglalja magában:

  1. Pontosság: Az összes észlelés közül, amit a modell végzett, hány volt helyes?
  2. Visszahívás: Az összes tényleges étel közül, hányat talált meg a modell?
  3. Átlagos pontosság (AP): A pontosság-visszahívás görbe alatti terület egyetlen étel kategóriára
  4. mAP: Az AP értékek átlaga az összes étel kategória között

Egy olyan modell, amelynek mAP@0.5 értéke 0.85, helyesen észleli és osztályozza az ételek 85 százalékát az IoU 0.5 küszöbén, minden kategóriában. Az mAP@0.5:0.95 egy szigorúbb metrik, amely az IoU küszöbök 0.5 és 0.95 közötti teljesítményét átlagolja, büntetve azokat a modelleket, amelyek laza észleléseket érnek el, de nem teljesítenek jól a szoros szegmentációnál.

A különbség a bemutató és a valóság között

A legtöbb ételek AI bemutató egyetlen ételt, jól megvilágított, felülnézeti fényképeket mutat be: egy tál ramen, egy tányér sushi, egy saláta. Ezekben a körülmények között a modern modellek mAP@0.5 pontszáma meghaladja a 0.90-et. A szám jelentősen csökken a valós körülmények között.

A mAP-t rontó tényezők a gyakorlatban:

  • Több átfedő elem: Egy tányér rizs, dal, sabzi és roti, amelyek érintkeznek egymással
  • Részleges takarás: Egy étel részben el van rejtve egy másik mögött
  • Változó világítás: Homályos étterem világítás szemben a fényes konyhai világítással
  • Nem szabványos szögek: Oldalról készült fényképek, nem közvetlenül felülről
  • Vizualitás hasonlóság: Barna rizs és quinoa, vagy különböző típusú dal, amelyek szinte azonosak

A valós világban az ételek felismerésének mAP-ja jellemzően 10-20 ponttal alacsonyabb, mint a kontrollált benchmark teljesítmény.

A több ételes tányér problémája

Az ételek felismerésének legnagyobb kihívása nem egyetlen étel azonosítása, hanem öt vagy hat különböző étel azonosítása egyetlen tányéron, ahol érintkeznek, átfedik egymást és vizuálisan keverednek.

Vegyünk egy tipikus indiai thalit: rizs, két curry, dal, raita, papad és savanyúság, mindez egy tányéron, ahol az ételek érintkeznek. Vagy egy mexikói tál, amely rizst, babot, guacamole-t, salsát, tejfölt és tortillát tartalmaz. Minden egyes ételt külön kell azonosítani, és a porciót függetlenül kell megbecsülni.

Szemantikus szegmentáció vs. Instance szegmentáció

Két fő megközelítés létezik ennek a problémának a megoldására, és a megkülönböztetés fontos.

Szemantikus szegmentáció minden pixelt egy étel kategóriához rendel. Minden „rizs” pixel rizsnek van címkézve, minden „curry” pixel currynek. Ez jól működik, ha az ételek jól el vannak választva, de kudarcot vall, ha két azonos kategóriájú elem van jelen (két különböző curry ugyanazon a tányéron), vagy ha a határok homályosak.

Instance szegmentáció minden egyes ételt külön entitásként azonosít, még akkor is, ha két elem ugyanabba a kategóriába tartozik. Ez a megközelítés szükséges a pontos több ételes tányér elemzéshez, mert lehetővé teszi a rendszer számára, hogy függetlenül becsülje meg az egyes elemek porcióméretét.

A modern instance szegmentációs architektúrák, mint például a Mask R-CNN és utódai, mind a klasszifikációs címkét, mind a pixel szintű maszkot generálják minden észlelt ételhez. E maszkok minősége közvetlenül befolyásolja a porciós becslés pontosságát.

Benchmark teljesítmény: Hol állunk

Az ételek felismerésének területe több standard benchmarkot használ a modell teljesítményének értékelésére. Íme, hogyan teljesítenek a jelenlegi csúcsmodellek.

Food-101

Az eredeti nagyszabású ételek benchmark, amely 101 étel kategóriát tartalmaz, mindegyikhez 1,000 képpel. A jelenlegi legjobb modellek 95 százalék feletti klasszifikációs pontosságot érnek el a Food-101-en. Azonban a Food-101 egy klasszifikációs benchmark (egy étel egy képen), nem észlelési benchmark, így nem teszteli a több ételt tartalmazó tányér helyzeteket.

UECFOOD-256

Egy 256 kategóriás adatbázis, amely keret annotációkat tartalmaz, lehetővé téve az észlelési értékelést. A csúcsmodellek mAP@0.5 értéke körülbelül 0.78 és 0.82 között mozog ezen az adatbázison, tükrözve a több kategóriás észlelés nehézségét.

Nutrition5k

Egy újabb benchmark, amely az étel képeit valós tápanyagadatokkal párosít, amelyeket laboratóriumi elemzés során mértek. Ez az adatbázis lehetővé teszi a végpontok közötti értékelést: nemcsak azt, hogy „a modell helyesen azonosította az ételt?”, hanem azt is, hogy „pontos kalória becslést készített?”. A Nutrition5k teljesítménye feltárja az észlelési hibák kumulatív hatását a tápanyag pontosságára.

ISIA Food-500

Egy nagyszabású adatbázis, amely 500 étel kategóriát tartalmaz, különböző globális konyhákból. Felfedi az ételek felismerésének kulturális elfogultság problémáját: a főként nyugati adatbázisokon betanított modellek jelentős pontosságcsökkenést mutatnak az ázsiai, afrikai és dél-amerikai étel kategóriák esetében.

Architektúra fejlődése: A CNN-től a Vision Transformerig

Az ételek felismerésére használt modell architektúrák jelentősen fejlődtek, és minden generáció javította a több ételes tányérok kezelését.

YOLO család (YOLOv5-től YOLOv10-ig)

A YOLO (You Only Look Once) modellek családja a sebességet helyezi előtérbe. A YOLOv8 és újabb verziók mAP@0.5 értéke 0.75 és 0.82 között mozog az ételek észlelési benchmarkokon, miközben a modern hardveren 50 milliszekundum alatt futtatják az észlelést. Ez alkalmassá teszi őket valós idejű mobilalkalmazásokhoz, ahol a felhasználó 1-2 másodpercen belül várja az eredményeket a fénykép készítése után.

A hátrány az, hogy a YOLO modellek nehezen boldogulnak a szorosan átfedő elemekkel, ahol a pontos határvonalak meghatározása kritikus a porciók becsléséhez.

Vision Transformers (ViT, DINOv2)

A transformer-alapú architektúrák a képeket a foltok sorozataként dolgozzák fel, és önfigyelő mechanizmusokat használnak a globális kontextus megragadására. Az ételek felismerésénél ez azt jelenti, hogy a modell kontextuális nyomokat használhat: ha rizs van jelen, akkor a curry valószínűleg közel van, hogy javítsa a homályos elemek észlelését.

A Vision Transformers magasabb mAP-t érnek el a komplex, több ételes tányérok esetén, mint a CNN-alapú megközelítések, különösen a homályos határokkal rendelkező elemek esetén. A költség a magasabb számítási igény és a lassabb észlelés.

Hibrid megközelítések

A jelenlegi legjobban teljesítő rendszerek a CNN-alapú jellemzők kinyerését kombinálják a transformer-alapú figyelmi mechanizmusokkal. Ezek a hibrid architektúrák mAP@0.5 értéket érnek el 0.85 felett a több ételes ételek észlelésében, miközben fenntartják az észlelési sebességet, amely a mobilalkalmazások számára praktikus.

A Nutrola felismerési folyamata egy hibrid architektúrát használ, amely egyensúlyt teremt a detektálási pontosság és a felhasználók által elvárt 2 másodpercen belüli válaszidő között.

Az észleléstől a táplálkozásig: A pontossági folyamat

Egy ételek felismerő rendszer végső kimenetele nem egy keret vagy egy szegmentációs maszk. Ez egy kalória- és makrobecslés. Az a becslés pontossága egy lépésekből álló folyamaton múlik, mindegyik saját hibaarányával.

  1. Észlelés és klasszifikáció: Helyesen azonosította-e az ételt? (mAP szerint mérve)
  2. Szegmentációs minőség: Elég szoros-e a pixelmaszk a pontos porciós becsléshez? (IoU szerint mérve)
  3. Térfogat becslés: A maszk alapján mennyi étel van valójában? (a valós súlyokkal mérve)
  4. Tápanyagtérkép: Az azonosított étel és a becsült térfogat alapján mik a kalóriák és makrók? (laboratóriumban ellenőrzött tápanyagtartalom alapján mérve)

A hibák minden szakaszban halmozódnak. Egy modell, amely 90 százalékos pontossággal azonosít egy ételt, és a porciók becslésében 15 százalékos pontossággal működik, olyan kalória becsléseket fog produkálni, amelyek összesített hibaaránya szélesebb, mint amit bármelyik egyedi metrika sugall.

Ezért a benchmark metrikák önmagukban nem mondanak el mindent. A tápanyag adatbázis és a térfogat becslési komponensek ugyanolyan fontosak, és itt különböznek a célzott táplálkozási rendszerek a generikus ételek felismerő modellektől.

Mit jelentenek ezek a metrikák a te nyomon követésed számára

A végfelhasználó számára a benchmarkok gyakorlati következményei egyértelműek.

Egyszerű étkezések (egy tál zabkása, egy fehérje turmix, egy gyümölcs) a legtöbb modern ételek AI rendszer által magas pontossággal ismerhetők fel. A hibahatár jellemzően 5-10 százalék között van a tényleges kalóriatartalomhoz képest.

Több ételes tányérok nehezebbek. Jól elválasztott elemek esetén várhatóan 10-20 százalékos pontosságra számíthatunk, míg átfedő vagy kevert elemek esetén 15-25 százalékra. Itt a multimodális bemenet (hang vagy szöveges részletek hozzáadása) jelentősen javítja az eredményeket.

Komplex kevert ételek (pörköltek, rakott ételek, curryk) továbbra is a legnagyobb kihívást jelentik. Itt a rendszer nagymértékben támaszkodik az étel szintű azonosításra és az adatbázis keresésére, nem pedig az összetevő szintű elemzésre. Egy ellenőrzött adatbázis, amely ételspecifikus bejegyzéseket tartalmaz, fontosabbá válik, mint a detektálási pontosság.

A fejlődés iránya világos: a modell architektúrák minden generációja csökkenti a kontrollált benchmark teljesítmény és a valóságos pontosság közötti különbséget. De a legjelentősebb pontossági nyereségek ma már nem csupán a jobb detektáló modellekből származnak, hanem a vizuális AI és a hitelesített tápanyagadatok, valamint a multimodális felhasználói bemenet kombinálásából.

Gyakran Ismételt Kérdések

Mi az mAP az ételek felismerésében?

A Mean Average Precision (mAP) az a standard metrika, amely az objektum-észlelési modellek pontosságát méri, hogy mennyire pontosan azonosítják és helyezik el az elemeket a képeken. Az ételek felismerésében az mAP azt méri, hogy az AI mennyire megbízhatóan észleli és osztályozza a különböző ételeket az összes kategóriában, amelyre betanították. A magasabb mAP jobb általános észlelési teljesítményt jelez. A metrika figyelembe veszi mind a pontosságot (a detektálások helyesek voltak-e), mind a visszahívást (minden elemet megtaláltak-e), átfogó mérést biztosítva a rendszer pontosságáról. A jelenlegi csúcs ételek felismerő modellek mAP@0.5 pontszáma 0.78 és 0.88 között mozog a standard benchmarkokon.

Mennyire pontos az AI kalóriaszámlálás a fényképekről?

A pontosság jelentősen változik az étkezések összetettségétől függően. Egyszerű étkezések esetén, ahol az étel jól látható, a modern AI 5-10 százalékos kalória becsléseket ér el a tényleges értékekhez képest. Több ételes tányérok esetén, ahol az összetevők jól el vannak választva, a pontosság 10-20 százalékra csökken. A komplex kevert ételek és a rejtett összetevőkkel rendelkező ételek, mint például a főzőolajok, jelentik a legnagyobb kihívást, ahol a potenciális hibák 20-30 százalékosak lehetnek, ha csupán a fénykép elemzésére támaszkodunk. Azok a rendszerek, amelyek a fényképészeti felismerést felhasználói kontextussal kombinálják a készítési módszerekről és a rejtett összetevőkről, érik el a legjobb valós pontosságot.

Mi a különbség a szemantikus és az instance szegmentáció között az ételek AI-jában?

A szemantikus szegmentáció minden pixelt egy étel kategóriához rendel, de nem különbözteti meg az azonos kategóriájú különálló példányokat. Az instance szegmentáció minden egyes ételt külön entitásként azonosít, saját maszkkal, még akkor is, ha több elem azonos kategóriába tartozik. A kalóriaszámlálás szempontjából az instance szegmentáció elengedhetetlen, mert lehetővé teszi a rendszer számára, hogy függetlenül becsülje meg az egyes elemek porcióméreteit. Instance szegmentáció nélkül egy tányér, amelyen két különböző curry van, egyetlen curry területként lenne kezelve, ami pontatlan tápanyagbecslést eredményezne.

Miért nem tükrözik az ételek AI benchmarkok a valós teljesítményt?

A standard benchmarkok, mint a Food-101 és az UECFOOD-256, gondosan válogatott képeket használnak, amelyek jellemzően jól megvilágított, egyetlen ételt, felülnézeti fényképeket mutatnak be. A valós világban készült ételfotók változó világításban, nem egységes szögekből, több átfedő elemmel és gyakran részleges takarással készülnek. Ezenkívül a benchmark adatbázisok túlnyomórészt nyugati középpontúak, ami azt jelenti, hogy azokon tesztelt modellek pontossága felfújt lehet, ami nem általánosítható a globálisan sokszínű konyhákra. A valós világban az mAP jellemzően 10-20 ponttal alacsonyabb, mint a benchmark teljesítmény, ezek miatt a disztribúciós különbségek miatt.

Melyik modellarchitektúra a legjobb az ételek felismerésére?

A jelenlegi legjobb eredmények hibrid architektúrákból származnak, amelyek a konvolúciós neurális hálózat (CNN) jellemzők kinyerését kombinálják a transformer-alapú figyelmi mechanizmusokkal. A tiszta CNN modellek, mint a YOLO család, gyors észlelést kínálnak, amely alkalmas mobilalkalmazásokhoz, míg a Vision Transformers jobb pontosságot nyújtanak a komplex, több ételes tányérok esetén. A hibrid megközelítések egyensúlyt teremtenek mindkét előny között, mAP@0.5 értéket érnek el 0.85 felett a több ételes ételek észlelésében, miközben fenntartják a 2 másodpercen belüli válaszidőket, amelyek a gyakorlati mobilhasználathoz szükségesek. Az architektúra választása a telepítési kontextustól is függ: a mobilalkalmazások a könnyebb modelleket részesítik előnyben, míg a felhőalapú feldolgozás nagyobb transformer architektúrákat használhat ki.

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!