Věda za AI sledováním kalorií: Jak funguje rozpoznávání fotografií

Technické vysvětlení počítačového vidění za AI sledováním kalorií: klasifikace obrázků, detekce objektů, segmentace, odhad hloubky, odhad objemu a porovnání s databází. Obsahuje tabulky přesnosti podle techniky a odkazy na publikovaný výzkum.

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

Když vyfotíte své jídlo a aplikace pro sledování kalorií identifikuje potraviny a odhaduje jejich nutriční obsah během několika sekund, výsledkem je výstup z vícestupňového procesu počítačového vidění, který zahrnuje klasifikaci obrázků, detekci objektů, odhad velikosti porcí a porovnání s databází. Každá fáze přináší své vlastní omezení přesnosti a zdroje chyb. Porozumění tomu, jak tento proces funguje a kde může selhat, je klíčové pro posouzení, zda je sledování kalorií pomocí AI spolehlivým nástrojem pro monitorování stravy.

Tento článek poskytuje technickou analýzu procesu počítačového vidění za rozpoznáváním potravin, pokrývá architektury strojového učení, publikované benchmarky přesnosti, klíčovou roli nutriční databáze za AI a aktuální stav vědy.

Proces sledování kalorií pomocí AI: Šest fází

Rozpoznávání potravin pomocí AI není jediná technologie. Je to proces sekvenčních zpracovatelských fází, z nichž každá musí fungovat dostatečně dobře, aby konečný odhad kalorií měl smysl.

Fáze Technický úkol Klíčová výzva Příspěvek k chybě
1. Předzpracování obrázku Normalizace osvětlení, rozlišení, orientace Proměnlivé podmínky fotografování v reálném světě Nízký (dobře vyřešeno)
2. Detekce potravin Lokalizace oblastí s potravinami na obrázku Více potravin, překrývající se položky, částečné zakrytí Mírné
3. Klasifikace potravin Identifikace, co každá potravina je Vizualní podobnost mezi potravinami (odrůdy rýže, sýry) Mírné až vysoké
4. Odhad porcí Určení, kolik každé potraviny je přítomno Většina fotografií postrádá absolutní měřítko Vysoké
5. Porovnání s databází Propojení identifikované potraviny s položkou v nutriční databázi Nejednoznačné shody, variace v metodách přípravy Nízký až mírný (závisí na databázi)
6. Výpočet živin Násobení porce × živiny na jednotku Složená chyba ze všech předchozích fází Závisí na přesnosti procesu

Fáze 1: Předzpracování obrázku

Než dojde k jakémukoli rozpoznávání potravin, musí být surový fotografický snímek normalizován. To zahrnuje úpravy pro:

  • Variabilitu osvětlení. Fotografie pořízené pod fluorescenčním, žárovkovým, přirozeným nebo bleskovým osvětlením produkují různé barevné profily pro stejnou potravinu. Moderní předzpracovatelské procesy používají algoritmy pro barevnou stálost a naučenou normalizaci, aby snížily chyby klasifikace závislé na osvětlení.
  • Rozlišení a formát. Obrázky z různých zařízení mají různá rozlišení. Předzpracovatelský proces mění velikost obrázků na standardní vstupní rozměr (typicky 224×224 nebo 384×384 pixelů pro klasifikační modely, vyšší pro detekční modely).
  • Orientaci. Fotografie mohou být pořízeny přímo shora (shora dolů, ideální pro odhad porcí) nebo z úhlů. Geometrická normalizace upravuje úhel pohledu, když je to možné.

Tato fáze je současnou technologií dobře vyřešena a přispívá k minimální chybě v celkovém procesu.

Fáze 2: Detekce potravin (Detekce objektů)

Detekce potravin odpovídá na otázku: "Kde na tomto obrázku se nacházejí potraviny?" To je problém detekce objektů, který se stává složitým, když jedna fotografie obsahuje více potravin na jednom talíři nebo napříč více pokrmy.

Používané architektury

YOLO (You Only Look Once). Rodina detektorů YOLO (YOLOv5, YOLOv8 a další verze) zpracovává celý obrázek v jednom průchodu, přičemž současně produkuje ohraničující rámečky a předpovědi tříd. YOLO je preferováno v produkčních systémech rozpoznávání potravin pro svou rychlost v reálném čase, obvykle dosahuje časů inferencí pod 50 milisekund na mobilním hardwaru.

Faster R-CNN. Dvoustupňový detektor, který nejprve navrhuje oblasti zájmu a poté klasifikuje každou oblast. Faster R-CNN dosahuje mírně vyšší přesnosti než jednofázové detektory na složitých scénách, ale na úkor delšího času inferencí.

DETR (Detection Transformer). Detektor založený na transformátorech od Facebook AI Research používá mechanismy pozornosti k přímému předpovídání ohraničujících rámečků objektů bez návrhů kotvy. DETR lépe zvládá překrývající se a zakryté potraviny než metody založené na kotvách, což ho činí vhodným pro složité scény jídel.

Výzvy detekce v potravinových obrázcích

Detekce potravin představuje jedinečné výzvy ve srovnání s obecnou detekcí objektů:

  • Žádné jasné hranice. Potraviny na talíři se často dotýkají nebo překrývají (omáčka na těstovinách, sýr na salátu). Na rozdíl od aut nebo chodců mají potravinové položky zřídka ostré okraje.
  • Proměnlivá prezentace. Stejná potravina může vypadat dramaticky jinak v závislosti na metodě přípravy, stylu servírování a doprovodných potravinách.
  • Variabilita měřítka. Jediný mandlový ořech a celá pizza se mohou objevit na stejné fotografii jídla, což vyžaduje detekci v širokém rozsahu měřítka objektů.

Aguilar et al. (2018), publikující v Multimedia Tools and Applications, hodnotili modely detekce potravin a zjistili, že přesnost detekce (měřená průměrnou přesností, mAP) se pohybovala od 60 do 85 procent v závislosti na složitosti scény. Fotografie jednotlivých položek dosáhly detekčních sazeb nad 90 procent, zatímco složité pokrmy s pěti nebo více položkami klesly pod 70 procent.

Fáze 3: Klasifikace potravin (Klasifikace obrázků)

Jakmile jsou potravinové položky detekovány a lokalizovány, každá detekovaná oblast musí být klasifikována: je to kuře, ryba, tofu nebo tempeh? To je problém klasifikace obrázků a je to nejvíce zkoumaná fáze procesu rozpoznávání potravin.

Používané architektury

Koncepční neuronové sítě (CNN). Architektury ResNet, EfficientNet a Inception byly hlavními nástroji výzkumu klasifikace potravin. Tyto modely extrahují hierarchické vizuální rysy (textura, tvar, barevné vzory) prostřednictvím po sobě jdoucích konvolučních vrstev. Meyers et al. (2015) ve své práci Im2Calories od Googlu použili architekturu založenou na Inception pro klasifikaci potravin a hlásili přesnost top-1 přibližně 79 procent na datasetu potravin o 2 500 třídách.

Vision Transformers (ViT). Představené Dosovitskiy et al. (2021), Vision Transformers aplikují mechanismus sebe-pozornosti z zpracování přirozeného jazyka na rozpoznávání obrázků. ViTs dělí obrázky na části a zpracovávají je jako sekvence, což umožňuje modelu zachytit globální kontext obrázku, který mohou CNN s omezenými receptivními poli přehlédnout. Nedávné práce na klasifikaci potravin pomocí architektur ViT a Swin Transformer hlásily zlepšení o 3-7 procentních bodů oproti základním CNN na standardních benchmarkech rozpoznávání potravin.

Hybridní architektury. Moderní produkční systémy často kombinují extrakci rysů CNN s reasoningem založeným na transformátorech, čímž využívají silné stránky obou přístupů.

Přesnost klasifikace podle kategorie potravin

Přesnost klasifikace se výrazně liší podle typu potravin.

Kategorie potravin Typická přesnost top-1 Klíčová výzva
Celé ovoce (jablko, banán, pomeranč) 90–95% Vysoká vizuální rozlišitelnost
Jedno-složkové proteiny (steak, filet z ryby) 80–90% Variace v metodách vaření
Obiloviny a škroby (rýže, těstoviny, chléb) 75–85% Podobný vzhled napříč odrůdami
Smíšená jídla (smažené nudle, zapečené pokrmy, kari) 55–70% Složení ingrediencí není viditelné z povrchu
Nápoje 40–60% Vizuálně identické kapaliny s různými složeními
Omáčky a koření 30–50% Podobný vizuální vzhled, velmi odlišná kalorická hustota

Data shromážděná z Meyers et al. (2015), Bossard et al. (2014) a Thames et al. (2021).

Klasifikační výzva je nejzávažnější pro potraviny, které vypadají podobně, ale mají velmi odlišné nutriční profily. Bílá rýže a květáková rýže jsou vizuálně podobné, ale liší se v kalorické hustotě v poměru 1:5. Plnotučné mléko a odstředěné mléko jsou vizuálně nerozeznatelné. Běžná a dietní soda nemohou být rozlišeny pouze podle vzhledu.

Benchmarkové datové sady

Food-101 (Bossard et al., 2014). 101 kategorií potravin s 1 000 obrázky každé. Nejvíce používaný benchmark pro výzkum klasifikace potravin. Současné špičkové modely dosahují přesnosti top-1 nad 95 procent na tomto benchmarku, i když relativně malý počet kategorií (101) činí tento benchmark méně reprezentativním pro rozmanitost v reálném světě.

ISIA Food-500 (Min et al., 2020). 500 kategorií potravin s přibližně 400 000 obrázky. Více reprezentativní pro rozmanitost potravin v reálném světě. Přesnost top-1 na tomto benchmarku je podstatně nižší, obvykle 65-80 procent.

UEC Food-256 (Kawano a Yanagida, 2015). 256 kategorií japonských potravin. Ukazuje na výzvu kulturně specifického rozpoznávání potravin, protože modely trénované na západních potravinových datech vykazují špatné výsledky na asijských kuchyních a naopak.

Fáze 4: Odhad velikosti porcí

Odhad velikosti porcí je široce uznáván jako nejslabší článek v procesu sledování kalorií pomocí AI. I když je potravina správně identifikována, nesprávný odhad porce se přímo promítá do nesprávného počtu kalorií.

Techniky

Měřítko referenčního objektu. Některé aplikace žádají uživatele, aby do fotografie zahrnuli referenční objekt (kreditní kartu, minci nebo palec uživatele). Známé rozměry referenčního objektu poskytují měřítko pro odhad rozměrů potravin. Dehais et al. (2017) hodnotili metody referenčního objektu a zjistili chyby odhadu porce 15-25 procent, když byl referenční objekt přítomen.

Odhad hloubky. Systémy stereo kamer (dvě čočky) nebo LiDAR senzory (dostupné na některých chytrých telefonech) poskytují informace o hloubce, které umožňují 3D rekonstrukci povrchu potravin. V kombinaci s předpoklady o geometrii nádoby a hustotě potravin umožňuje hloubková data volumetrický odhad. Meyers et al. (2015) hlásili, že odhad na základě hloubky snížil chyby porcí ve srovnání s metodami založenými na jednom obrázku, ale hloubkové senzory nejsou k dispozici na všech zařízeních.

Monokulární odhad hloubky. Modely strojového učení trénované k odhadu hloubky z jednotlivých obrázků mohou přibližně odhadnout 3D geometrii potravin bez specializovaného hardwaru. Přesnost je nižší než u fyzických hloubkových senzorů, ale aplikovatelná na jakoukoli kameru chytrého telefonu.

Naučený odhad objemu. Modely trénované na datech potravinových obrázků spárovaných se známými objemy mohou přímo předpovědět velikost porce bez explicitní 3D rekonstrukce. Thames et al. (2021) hodnotili takové modely a hlásili průměrné chyby odhadu porce 20-40 procent.

Tabulka přesnosti odhadu porcí

Metoda Průměrná absolutní chyba Vyžaduje speciální hardware Odkaz
Referenční objekt (kreditní karta) 15–25% Ne (jen referenční objekt) Dehais et al. (2017)
Hloubka stereo kamery 12–20% Ano (duální kamera) Meyers et al. (2015)
Hloubka LiDAR 10–18% Ano (telefon s LiDAR) Nedávné nepublikované benchmarky
Monokulární odhad hloubky (ML) 20–35% Ne Thames et al. (2021)
Naučený objem (end-to-end) 20–40% Ne Thames et al. (2021)
Sebe-odhady uživatele (bez AI) 20–50% Ne Williamson et al. (2003)

Tabulka ukazuje, že všechny automatizované metody překonávají neomezené lidské odhady (Williamson et al., 2003, Obesity Research), ale žádná z nich nedosahuje chyb pod 10 procent konzistentně. Pro kontext, 25 procentní chyba odhadu porce na jídle s 400 kaloriemi se promítá do odchylky 100 kalorií, což je dost na to, aby negovalo mírný kalorický deficit, pokud se nahromadí přes více jídel.

Fáze 5: Porovnání s databází — Kritický krok

Toto je fáze, která dostává nejméně pozornosti v technických diskusích, ale má největší dopad na konečnou přesnost. Poté, co AI identifikuje potravinu a odhadne její porci, musí propojit identifikovanou potravinu s položkou v nutriční databázi, aby získala hodnoty kalorií a živin.

Kvalita tohoto propojení závisí výhradně na kvalitě podkladové databáze. Pokud AI správně identifikuje "grilované kuřecí prso, 150 gramů", ale propojí ho s položkou v crowdsourced databázi, která uvádí 130 kalorií na 100 gramů (oproti hodnotě 165 kalorií na 100 gramů analyzované USDA), konečný odhad kalorií bude o 27 procent příliš nízký, ne proto, že by AI selhala, ale protože databáze za ní je nepřesná.

Toto je základní poznatek, který odděluje různé aplikace pro sledování kalorií pomocí AI: Přesnost identifikace potravin AI je užitečná pouze v takové míře, jaká je kvalita nutriční databáze za ní.

Porovnání s databází

Aplikace pro sledování AI Identifikace potravin Databázové zázemí Celková spolehlivost
Nutrola AI rozpoznávání fotografií + hlas 1.8M položek ověřených nutričními specialisty, založených na USDA Vysoká identifikace + vysoká přesnost dat
Cal AI Odhad pomocí AI fotografií Proprietární databáze (omezená transparentnost) Mírná identifikace + nejistá přesnost dat
Aplikace přidávající AI k crowdsourced DB Rozpoznávání potravin pomocí AI Crowdsourced, neověřené položky Mírná identifikace + nízká přesnost dat

Architektura Nutrola je speciálně navržena tak, aby řešila tuto kritickou závislost. Funkce rozpoznávání fotografií a hlasového logování AI zajišťují fáze identifikace a odhadu porcí, zatímco backendová databáze s 1,8 milionu položek ověřených nutričními specialisty, získaných z USDA FoodData Central, zajišťuje, že nutriční data spojená s každou identifikovanou potravinou jsou vědecky přesná. Toto oddělení úkolů znamená, že zlepšení v rozpoznávání potravin AI se přímo promítá do zlepšení přesnosti sledování, aniž by byla podkopána chybami databáze níže.

Požadavky na tréninková data

Trénink modelu pro rozpoznávání potravin vyžaduje velké, označené datové sady potravinových obrázků. Kvalita a rozmanitost tréninkových dat přímo ovlivňuje výkon modelu.

Velikost datové sady. Špičkové modely rozpoznávání potravin jsou obvykle trénovány na datových sadách o velikosti 100 000 až několika milionů označených obrázků. Im2Calories od Googlu (Meyers et al., 2015) použil proprietární datovou sadu milionů obrázků potravin. Veřejně dostupné datové sady jako Food-101 (101 000 obrázků) a ISIA Food-500 (400 000 obrázků) jsou podstatně menší.

Kvalita štítků. Každý tréninkový obrázek musí být přesně označen kategorií potraviny. Chybně označená tréninková data produkují modely, které se učí nesprávným asociacím. Pro obrázky potravin vyžaduje označování odborné znalosti, protože podobně vypadající potraviny (jasmínová rýže vs. basmati rýže, skupina vs. treska) jsou pro neodborníky obtížně rozlišitelné.

Požadavky na rozmanitost. Tréninková data musí reprezentovat plnou rozmanitost prezentace potravin: různé kuchyně, styly servírování, podmínky osvětlení, úhly kamery a velikosti porcí. Modely trénované převážně na fotografiích západních potravin vykazují špatné výsledky na asijských, afrických nebo blízkovýchodních kuchyních.

Štítky porcí. Pro trénink odhadu porcí musí být obrázky spárovány se skutečnými měřeními hmotnosti. Vytváření těchto štítků vyžaduje fotografování potravin před a po jejich zvážení, což je pracný proces, který omezuje velikost tréninkových sad pro odhad porcí.

Problém složené chyby

Nejdůležitějším technickým konceptem v AI sledování kalorií je složená chyba. Každá fáze procesu přináší nejistotu a tyto nejistoty se násobí.

Zvažte jídlo z grilovaného lososa s rýží a brokolicí:

  1. Přesnost detekce: 90% (každá potravina správně lokalizována).
  2. Přesnost klasifikace: 85% (každá potravina správně identifikována).
  3. Přesnost odhadu porcí: 75% (porce v rámci 25% skutečnosti).
  4. Přesnost porovnání s databází: 95% (pro ověřenou databázi) nebo 80% (pro crowdsourced databázi).

Kombinovaná pravděpodobnost, že všechny fáze uspějí pro všechny tři potravinové položky:

  • S ověřenou databází: (0.90 × 0.85 × 0.75 × 0.95)^3 = 0.548^3 = 16.5% šance, že všechny tři položky budou plně přesné.
  • S crowdsourced databází: (0.90 × 0.85 × 0.75 × 0.80)^3 = 0.459^3 = 9.7% šance, že všechny tři položky budou plně přesné.

Tyto výpočty ilustrují, proč je složená chyba činí dokonalou přesnost nedosažitelnou s aktuální technologií. Ukazují však také, že zlepšení jakékoli jednotlivé fáze zlepšuje celkový proces. Fáze porovnání s databází je nejjednodušší k optimalizaci (použít ověřenou databázi namísto crowdsourced) a poskytuje smysluplné zlepšení přesnosti u každého jídla.

Aktuální stav a omezení

Co funguje dobře

  • Rozpoznávání jednotlivých položek. Identifikace jediné, jasně vyfocené potravinové položky z dobře reprezentované kuchyně dosahuje přesnosti nad 90 procent s moderními architekturami.
  • Běžné potraviny. Nejčastěji konzumované potraviny mají hojné tréninkové data a jsou spolehlivě rozpoznávány.
  • Doplnění čárového kódu. Když může být balená potravina identifikována podle čárového kódu namísto fotografie, přesnost identifikace se blíží 100 procentům (omezená pouze čitelností čárového kódu).

Co zůstává náročné

  • Smíšená jídla. Dušené pokrmy, zapečené pokrmy, smažené nudle a další smíšená jídla, kde nelze vizuálně oddělit jednotlivé ingredience, zůstávají obtížné. Model může odhadnout celkové jídlo, ale ne jeho konkrétní složení.
  • Skryté ingredience. Oleje, máslo, cukr a omáčky přidané během vaření jsou kaloricky významné, ale často neviditelné v konečném servírovaném pokrmu. Smažená zelenina uvařená ve 2 polévkových lžících oleje vypadá podobně jako ta, která byla uvařena ve spreji na vaření, ale rozdíl v kaloriích je přibližně 240 kalorií.
  • Přesnost porcí. Volumetrický odhad z 2D obrázků zůstává nejslabším článkem, přičemž chyby 20-40 procent jsou typické pro aktuální metody.
  • Kulturní rozmanitost potravin. Modely trénované na západní kuchyni vykazují slabé výsledky na asijských, afrických, blízkovýchodních a latinskoamerických potravinách, které představují významnou část globální spotřeby potravin.

Často kladené otázky

Jak přesné je sledování kalorií na základě fotografií AI?

Současné systémy rozpoznávání potravin AI dosahují přesnosti identifikace potravin 75-95 procent pro jednotlivé položky z dobře reprezentovaných kategorií potravin. Nicméně, odhad porcí přidává významnou chybu (20-40 procent podle Thames et al., 2021). Konečná přesnost odhadu kalorií závisí na složeném efektu přesnosti identifikace, přesnosti porcí a přesnosti databáze za shodou. Aplikace jako Nutrola, které kombinují rozpoznávání AI s ověřenou databází založenou na USDA, minimalizují komponentu chyby databáze.

Jaké modely strojového učení používají aplikace pro rozpoznávání potravin?

Většina produkčních systémů rozpoznávání potravin používá konvoluční neuronové sítě (ResNet, EfficientNet) nebo Vision Transformers (ViT, Swin Transformer) pro klasifikaci, YOLO nebo DETR pro detekci a samostatné modely pro odhad porcí. Specifické architektury a detaily trénování jsou pro většinu komerčních aplikací proprietární.

Může AI rozlišit mezi podobnými potravinami, jako je bílá rýže a květáková rýže?

To zůstává významnou výzvou. Vizuálně podobné potraviny s různými nutričními profily jsou známým omezením rozpoznávání potravin pomocí počítačového vidění. Modely se mohou naučit jemné vizuální náznaky (textura, struktura zrn), které některé podobné potraviny odlišují, ale přesnost v těchto případech výrazně klesá. To je jeden z důvodů, proč by identifikace AI měla být spojena s potvrzením uživatele a ověřenou databází, namísto toho, aby byla používána jako plně autonomní systém.

Proč je databáze za rozpoznáváním potravin AI důležitá?

Identifikace potravin AI určuje, co potravina je. Databáze určuje nutriční hodnoty spojené s touto potravinou. I když dokonalá identifikace potravin produkuje nepřesné odhady kalorií, pokud je položka databáze špatná. Ověřená databáze založená na USDA FoodData Central (jako Nutrola's 1,8 milionu položek) zajišťuje, že správně identifikované potraviny jsou spojeny se vědecky přesnými nutričními daty. To je důvod, proč je kvalita databáze stejně důležitá jako kvalita modelu AI pro celkovou přesnost sledování.

Jak se v budoucnu zlepší sledování kalorií pomocí AI?

Tři oblasti aktivního výzkumu povedou k zlepšením: (1) větší a rozmanitější tréninkové datové sady zlepší přesnost klasifikace napříč globálními kuchyněmi; (2) LiDAR a vícerozměrné hloubkové snímání na chytrých telefonech zlepší odhad porcí; (3) multimodální modely kombinující vizuální rozpoznávání s textovým/hlasovým kontextem (co uživatel říká, že jí) sníží nejednoznačnost. Kombinace rozpoznávání fotografií AI a hlasového logování Nutrola již implementuje tento multimodální přístup, využívající jak vizuální, tak jazykové vstupy pro zlepšení přesnosti identifikace potravin.

Připraveni proměnit sledování výživy?

Přidejte se k tisícům, kteří svou cestu ke zdraví proměnili s Nutrola!