Jak AI odhaduje velikosti porcí z fotografií: Technický hluboký ponor
Podrobný pohled na to, jak AI využívá odhad hloubky, referenční objekty a modelování objemu k odhadu velikosti porcí jídla z jediné fotografie.
Identifikace jídla na vašem talíři je jen polovinou výzvy, kterou představuje sledování kalorií pomocí AI. Druhá polovina, a pravděpodobně ta obtížnější, spočívá v určení, kolik jídla tam vlastně je. Porce těstovin může mít 200 kalorií nebo 800 kalorií v závislosti na velikosti porce. Správný odhad je tím, co odděluje užitečný nástroj pro sledování výživy od pouhé novinky.
Tento článek se podrobně zabývá tím, jak systémy AI odhadují velikosti porcí z fotografií, a to včetně odhadu hloubky, měřítka referenčních objektů, modelování objemu a trvalých výzev, kterým čelí výzkumníci a inženýři při snaze o zlepšení přesnosti těchto odhadů.
Proč je odhad velikosti porcí obtížnější než rozpoznávání jídla
Rozpoznávání jídla je v zásadě klasifikační problém. Systém musí vybírat z omezené sady kategorií potravin. Odhad velikosti porce je naopak regresní problém. Systém musí předpovědět kontinuální hodnotu (gramy nebo mililitry) pouze na základě vizuálních informací.
Několik faktorů tuto úlohu činí obzvlášť náročnou:
- Problém 2D a 3D: Fotografie zplošťuje trojrozměrnou realitu do dvourozměrného obrazu. Informace o hloubce se ztrácí, což ztěžuje rozlišení mezi tenkou vrstvou jídla a tlustou hromadou.
- Proměnlivá hustota: Hrnek listové zeleniny a hrnek granoly mají stejný objem, ale zcela odlišné hmotnosti a kalorické hodnoty. Systém musí odhadnout jak objem, tak hustotu.
- Perspektivní zkreslení: Úhel, pod kterým je fotografie pořízena, ovlivňuje, jak velké se potraviny zdají. Talíř snímaný přímo shora vypadá jinak než stejný talíř snímaný pod úhlem 45 stupňů.
- Nejasné měřítko: Bez známého referenčního objektu v záběru není možné určit absolutní velikost. Detailní záběr na malou sušenku může vypadat identicky jako fotografie velké pizzy pořízená z větší vzdálenosti.
Odhad hloubky z jediné fotografie
Jedním z klíčových průlomů, které umožňují odhad velikosti porcí z fotografií, je monokulární odhad hloubky, schopnost odvodit informace o hloubce z jediné fotografie namísto použití stereokamer nebo specializovaného hardwaru.
Jak funguje monokulární odhad hloubky
Lidský vizuální systém odvozuje hloubku z mnoha signálů: překrývání objektů (blízké objekty zakrývají vzdálenější), relativní velikost (menší objekty jsou obvykle dál), gradienty textury (textury se na větší vzdálenosti zjemňují) a atmosférická perspektiva (vzdálené objekty se zdají být rozmazané).
Modely hlubokého učení se mohou naučit tyto signály z velkých datových sad obrazů spárovaných s mapami hloubky. Při aplikaci na fotografii jídla mohou tyto modely odhadnout, které části potravin jsou blíže k fotoaparátu a které jsou dál, čímž efektivně rekonstruují trojrozměrný tvar jídla z plochého obrazu.
Mapy hloubky a objem jídla
Mapa hloubky přiřazuje hodnotu vzdálenosti každému pixelu v obraze. Pro odhad jídla to znamená, že systém může určit, že střed misky polévky je v jedné hloubce, zatímco okraj misky je v jiné hloubce. Rozdíl mezi těmito hloubkami, spolu s detekovanými hranicemi jídla, umožňuje systému odhadnout objem.
Moderní chytré telefony s LiDAR senzory (dostupné na nedávných modelech iPhone Pro a iPad Pro) mohou zachytit skutečná data o hloubce spolu s barevným obrazem, což poskytuje mnohem přesnější informace o hloubce než pouze algoritmické odhady. Aplikace pro sledování jídla mohou využít tento hardware, pokud je k dispozici, a v případě zařízení bez senzorů hloubky se vrátit k monokulárnímu odhadu.
Měřítko referenčních objektů
Bez známého referenčního bodu je absolutní velikost objektů na fotografii nejasná. Měřítko referenčních objektů tento problém řeší tím, že používá objekty s známými rozměry k určení měřítka pro celý obraz.
Běžné referenční objekty
| Referenční objekt | Známý rozměr | Přínos přesnosti |
|---|---|---|
| Standardní talíř | 25-27 cm průměr | Určuje celkové měřítko pro jídlo |
| Vidlička nebo lžíce | ~19 cm délka | Poskytuje měřítko i v detailních záběrech |
| Kreditní karta | 8.56 x 5.4 cm | Přesná a univerzálně standardizovaná |
| Chytrý telefon | Liší se podle modelu, ale známý | Může být detekován a měřen algoritmicky |
| Ruka | Liší se, ale lze odhadnout podle demografie | Přibližné měřítko, když není k dispozici jiný referenční objekt |
Automatická detekce referencí
Namísto toho, aby uživatelé museli umisťovat referenční kartu vedle svého jídla (což zvyšuje obtížnost a odrazuje od používání), moderní systémy se snaží automaticky detekovat běžné referenční objekty. Talíře, mísy, příbory a stoly se často objevují na fotografiích jídla a mohou sloužit jako měřítka, pokud je systém dokáže identifikovat.
Systém pro odhad porcí Nutrola automaticky hledá talíře, mísy a příbory v záběru, aby určil měřítko. Když jsou tyto objekty detekovány, systém používá jejich typické rozměry k kalibraci velikosti potravin. Pokud není nalezen žádný referenční objekt, systém se spoléhá na naučené předpoklady o typických porcích jídla a může uživatele požádat o potvrzení.
Kalibrace na základě talíře
Jedním z obzvlášť efektivních přístupů je kalibrace na základě talíře. Standardní talíře na večeři v většině zemí spadají do úzkého rozsahu velikostí (25 až 27 cm v průměru). Detekováním eliptického obrysu talíře v obraze a předpokladem standardní velikosti může systém stanovit spolehlivé měřítko pro všechno na talíři.
Tento přístup funguje dobře, protože talíře jsou téměř vždy přítomny na fotografiích jídel, jejich eliptický tvar je snadno detekovatelný bez ohledu na úhel kamery a perspektivní zkreslení elipsy vlastně kóduje informace o úhlu kamery, což pomáhá korigovat perspektivní efekty na jídle.
Techniky odhadu objemu
Jakmile systém identifikuje jídlo, odhadne hloubku a stanoví měřítko, musí tyto informace zkombinovat, aby odhadl objem každé potraviny.
Geometrické primitivy
Jedním z přístupů je přiblížit potraviny jako kombinace jednoduchých geometrických tvarů:
- Cylindry pro vysoké potraviny jako nápoje, vrstvené palačinky nebo dorty
- Polokoule pro kulaté potraviny jako porce rýže, hromady bramborové kaše nebo zmrzliny
- Obdélníkové hranoly pro plátky chleba, bloky sýra nebo tyčinky
- Zkrácené kužely pro mísy polévky nebo cereálií (tvar mísy pomáhá definovat objem)
- Irregularní polyedry pro potraviny s komplexními tvary jako kuřecí stehna nebo celé ovoce
Systém přizpůsobí jeden nebo více těchto primitivů k detekované oblasti jídla a vypočítá objem na základě přizpůsobených tvarů a stanoveného měřítka.
Rekonstrukce na základě voxelů
Složitější přístup zahrnuje rekonstrukci na základě voxelů, kde je potravina modelována jako trojrozměrná mřížka malých kostek (voxely). Každý voxel je klasifikován jako obsahující jídlo nebo prázdný na základě mapy hloubky a segmentační masky. Celkový objem je pak součtem všech voxelů obsahujících jídlo.
Tato metoda lépe zvládá nepravidelné tvary než geometrické primitivy, ale vyžaduje více výpočetních zdrojů. Je zvláště užitečná pro potraviny, které neodpovídají jednoduchým tvarům, jako je trhaný kus chleba nebo nepravidelně nakrájený kus ovoce.
Odhad objemu pomocí neuronových sítí
Nejnovější přístup zcela vynechává explicitní geometrické modelování. Místo toho je neuronová síť trénována end-to-end, aby přímo předpověděla objem jídla z obrázku. Tyto modely se učí implicitní reprezentace geometrie potravin z velkých datových sad obrazů potravin spárovaných se skutečnými měřeními hmotnosti.
Tento přístup vykazuje slibné výsledky, protože dokáže zachytit jemné vizuální signály, které souvisejí s objemem, jako je způsob, jakým se světlo odráží od povrchu kapaliny nebo vzor stínu vrženého hromadou jídla. Také se vyhýbá akumulaci chyb, která může nastat, když jsou odhad hloubky, segmentace a geometrické přizpůsobení prováděny jako samostatné kroky.
Od objemu k hmotnosti a kaloriím
Odhad objemu není konečným krokem. Aby systém vypočítal kalorie, musí převést objem na hmotnost (pomocí hustoty potravin) a hmotnost na kalorie (pomocí dat o výživovém složení).
Databáze hustoty potravin
Různé potraviny mají velmi odlišné hustoty. Hrnek oleje váží přibližně 220 gramů, zatímco hrnek mouky váží přibližně 120 gramů a hrnek popcornu váží přibližně 8 gramů. Přesná data o hustotě jsou nezbytná pro převod odhadů objemu na odhady hmotnosti.
Výrobní systémy udržují databáze, které mapují potraviny na jejich hustoty, přičemž zohledňují variace v metodě přípravy (vařené vs. syrové, nakrájené vs. celé) a běžné styly servírování.
| Potravina | Hustota (g/mL) | Hmotnost 1 hrnku (g) | Kalorie na hrnek |
|---|---|---|---|
| Voda | 1.00 | 237 | 0 |
| Plnotučné mléko | 1.03 | 244 | 149 |
| Uvařená bílá rýže | 0.74 | 175 | 205 |
| Syrový špenát | 0.13 | 30 | 7 |
| Arašídové máslo | 1.09 | 258 | 1517 |
| Olivový olej | 0.92 | 218 | 1909 |
Výživové složení
Jakmile má systém odhad hmotnosti v gramech, vyhledá výživové složení na gram z komplexní databáze potravin. Tyto databáze jsou obvykle odvozeny z autoritativních zdrojů, jako je USDA FoodData Central, doplněné daty od výrobců potravin a regionálních databází o výživě.
Databáze Nutrola pokrývá více než 1,3 milionu potravin, včetně značkových produktů, položek z menu restaurací a obecných potravin s kompletními profily makro a mikroživin. Tato komplexní pokrytí zajišťují, že jakmile je potravina a porce identifikována, výživový výpočet je přesný.
Výzvy přesnosti a jak jsou řešeny
I přes sofistikovanost těchto technik zůstává odhad velikosti porcí z fotografií nedokonalou vědou. Pochopení zdrojů chyb pomáhá nastavit realistická očekávání a zdůrazňuje trvalé zlepšování v oboru.
Známé zdroje chyb
Variace úhlu kamery: Stejná porce vypadá jinak v závislosti na tom, zda je fotografie pořízena shora, pod úhlem 45 stupňů nebo z úrovně stolu. Fotografie pořízené shora obvykle poskytují nejpřesnější odhady, protože minimalizují perspektivní zkreslení, ale mnoho uživatelů přirozeně drží telefon pod úhlem.
Zakryté jídlo: Jídlo skryté pod omáčkami, sýrem nebo jinými přísadami nelze vizuálně měřit. Systém musí odvodit skrytou porci na základě viditelného typu pokrmu a typické přípravy.
Nepravidelné nádoby: Nestandardní mísy, hrnky a kontejnery činí měřítko na základě talíře méně spolehlivým. Malá porce v velké míse vypadá jinak než velká porce v malé míse, i když se plocha jídla jeví podobně.
Individuální rozdíly v přípravě: Dva lidé, kteří připravují "misku ovesné kaše", mohou použít zcela odlišné množství ovesných vloček a vody, což vede k stejné zjevné velikosti, ale odlišnému obsahu kalorií.
Strategie pro zlepšení přesnosti
Zachycení z více úhlů: Některé systémy žádají uživatele, aby pořídili fotografie z více úhlů, což umožňuje stereo rekonstrukci a přesnější odhad objemu. To výrazně zlepšuje přesnost, ale zvyšuje obtížnost procesu zaznamenávání.
Zpětná vazba od uživatelů: Když uživatelé váží své jídlo a potvrzují nebo opravují odhadovanou porci, vytváří to tréninková data, která zlepšují model v průběhu času. Nutrola povzbuzuje uživatele, aby občas ověřili porce pomocí kuchyňské váhy, aby kalibrovali jak AI, tak vlastní povědomí o porcích.
Kontextové předpoklady: Systém může využít kontextové informace k upřesnění odhadů. Pokud je uživatel v konkrétní restauraci, systém může použít známé velikosti porcí. Pokud uživatel pravidelně zaznamenává konkrétní snídani, systém se může naučit jejich typickou porci.
Odhady s ohledem na důvěru: Místo prezentace jediného čísla poskytují sofistikované systémy interval důvěry. Pokud si systém není jistý ohledně porce, může prezentovat odhad jako rozsah (například 300 až 450 kalorií) a požádat uživatele o poskytnutí dalších informací.
Aktuální standardy přesnosti
Výzkum z Mezinárodní konference o analýze a zpracování obrazů ukázal, že špičkové systémy pro odhad objemu potravin dosahují průměrných absolutních procentuálních chyb mezi 15 a 25 procenty. Pro srovnání, studie ukázaly, že vyškolení dietologové odhadující porce z fotografií dosahují chyb kolem 10 až 15 procent, zatímco neškolení jednotlivci průměrně dosahují chyb 30 až 50 procent.
To znamená, že odhad velikosti porcí pomocí AI je již výrazně lepší než to, co většina lidí dokáže bez pomoci, a blíží se přesnosti vyškolených profesionálů. V kombinaci s výhodou rychlosti a pohodlí představuje sledování s pomocí AI významné zlepšení oproti manuálnímu zaznamenávání pro většinu uživatelů.
Role kalibrace uživatelů
Jedním z málo oceňovaných aspektů odhadu velikosti porcí pomocí AI je role kalibrace uživatelů v průběhu času. Jak uživatel zaznamenává jídla a občas poskytuje opravy, systém vytváří profil jejich typických velikostí porcí a preferencí potravin.
Pro pravidelné uživatele to znamená, že systém se stává postupně přesnějším. Pokud si obvykle servírujete větší porce rýže než průměr, systém se naučí odhadovat výše. Pokud obvykle používáte méně oleje než standardní recept, systém to může zohlednit.
Nutrola využívá tuto personalizaci k poskytování stále přesnějších odhadů porcí, čím déle aplikaci používáte. Noví uživatelé těží z průměrů na úrovni populace, zatímco zkušení uživatelé dostávají personalizované odhady kalibrované na jejich specifické návyky.
Praktické tipy pro přesnější odhady porcí
Zatímco AI zvládá většinu těžké práce, uživatelé mohou zlepšit přesnost dodržováním několika jednoduchých pokynů:
- Fotografujte shora, kdykoli je to možné. Fotografie pořízené shora poskytují nejvíce informací o povrchu jídla a minimalizují perspektivní zkreslení.
- Zahrňte celý talíř do záběru. Okraj talíře slouží jako klíčový referenční objekt pro měřítko.
- Vyhněte se extrémním detailům. Systém potřebuje kontext k posouzení velikosti. Fotografie, která ukazuje pouze jídlo bez okolních objektů, nenabízí žádný referenční bod.
- Fotografujte před mícháním. Salát s viditelnými oddělenými ingrediencemi je snazší analyzovat než ten, který byl smíchán dohromady.
- Používejte dobré osvětlení. Stíny a slabé světlo mohou zakrýt hranice jídla a signály hloubky.
- Občas potvrďte nebo opravte. Použití kuchyňské váhy jednou týdně k ověření odhadu AI pomáhá kalibrovat jak systém, tak vaši vlastní intuici.
Často kladené otázky
Jak přesný je odhad velikosti porcí AI ve srovnání s použitím kuchyňské váhy?
Kuchyňská váha poskytuje přesnost v rozmezí 1 až 2 gramů, což je mnohem přesnější než jakákoliv metoda vizuálního odhadu. Odhad velikosti porcí pomocí AI z fotografií obvykle dosahuje přesnosti v rozmezí 15 až 25 procent skutečné hmotnosti. Nicméně výhoda pohodlí odhadu AI (který trvá 2 sekundy oproti 30 sekundám nebo více s váhou) znamená, že více lidí skutečně sleduje pravidelně, což často znamená více pro dlouhodobé výsledky než dokonalá přesnost.
Ovlivňuje úhel kamery přesnost odhadu porcí?
Ano, významně. Fotografie pořízené shora (pohled přímo dolů na talíř) poskytují nejlepší přesnost, protože ukazují celou plochu jídla s minimálním perspektivním zkreslením. Fotografie pořízené pod úhlem 45 stupňů jsou nejběžnější a stále produkují dobré odhady. Velmi nízké úhly (blízko úrovně stolu) jsou nejméně přesné, protože většina jídla je zakryta předním okrajem talíře.
Může AI odhadovat porce pro tekutiny, jako jsou polévky a smoothie?
Tekutiny představují jedinečnou výzvu, protože jejich objem je určen jejich nádobou, nikoli jejich vlastním tvarem. Systémy AI odhadují porce tekutin identifikací typu nádoby a úrovně naplnění. Miska polévky naplněná po okraj má jiný objem než ta, která je naplněná do poloviny. Přesnost je obecně dobrá, když je nádoba standardního tvaru, ale méně spolehlivá u neobvyklých nádob.
Proč AI někdy nadhodnocuje nebo podhodnocuje moji porci?
Běžné důvody pro nadhodnocení zahrnují husté servírování, které vypadá větší, než ve skutečnosti je, ozdoby, které přidávají vizuální objem bez významných kalorií, a použití velkých talířů, které systém nutí předpokládat, že je přítomno více jídla. Běžné důvody pro podhodnocení zahrnují jídlo skryté pod jiným jídlem, husté kaloricky bohaté potraviny, které vypadají malé, a neobvyklé styly servírování. Poskytování zpětné vazby, když jsou odhady nesprávné, pomáhá systému zlepšovat se.
Potřebuji telefon s LiDAR senzorem pro přesné sledování porcí?
Ne. I když telefony vybavené LiDARem mohou poskytovat přesnější informace o hloubce, moderní modely AI mohou odhadnout hloubku docela dobře pouze z běžného snímku kamery. Rozdíl v přesnosti mezi telefony s LiDARem a standardními telefony se zúžil, jak se zlepšilo softwarové odhadování hloubky. Nutrola funguje přesně na jakémkoli moderním chytrém telefonu.
Jak systém zachází s potravinami, které jsou vrstvené nebo nakupené?
Pro viditelně vrstvené potraviny, jako jsou palačinky nebo sendviče, systém může počítat vrstvy a odhadovat tloušťku z bočního profilu. U potravin s skrytými vrstvami, jako je lasagne nebo burrito, systém spoléhá na naučené modely složení, které odhadují typickou vnitřní strukturu na základě viditelného exteriéru a typu pokrmu.
Připraveni proměnit sledování výživy?
Přidejte se k tisícům, kteří svou cestu ke zdraví proměnili s Nutrola!