Jak počítačové vidění identifikuje jídlo: Technologie za sledováním kalorií pomocí AI

Objevte, jak konvoluční neuronové sítě a klasifikace obrázků pohánějí rozpoznávání jídla pomocí AI, což umožňuje aplikacím jako Nutrola převést jednoduchou fotografii na přesná data o kaloriích.

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

Kdykoliv namíříte kameru svého telefonu na talíř s jídlem a okamžitě obdržíte přehled kalorií, za tímto zdánlivě jednoduchým úkonem stojí složitý řetězec procesů umělé inteligence. To, co vypadá jako pouhé kliknutí, zahrnuje konvoluční neuronové sítě, klasifikaci obrázků s více štítky a roky výzkumu v oblasti počítačového vidění. Pochopení toho, jak tato technologie funguje, pomáhá vysvětlit, proč je sledování kalorií pomocí AI tak přesné a jak se stále zlepšuje.

Tento článek se zaměřuje na základní technologie za AI rozpoznáváním jídla, od základních stavebních bloků neuronových sítí až po konkrétní inženýrské výzvy při identifikaci toho, co máte na talíři.

Co je počítačové vidění a proč je důležité pro výživu?

Počítačové vidění je odvětví umělé inteligence, které školí stroje, aby interpretovaly a chápaly vizuální informace z reálného světa. Zatímco lidé bez námahy rozlišují misku ovesné kaše od talíře těstovin, naučit počítač to samé vyžaduje zpracování milionů označených obrázků a vytváření matematických modelů vizuálních vzorů.

Pro sledování výživy počítačové vidění řeší největší problém v oblasti sebehodnocení stravy: problém ručního zadávání dat. Výzkum publikovaný v Journal of the Academy of Nutrition and Dietetics ukázal, že ruční zaznamenávání jídla vede k podhodnocení příjmu kalorií o 10 až 45 procent. Nahrazením psaných popisů fotografií počítačové vidění odstraňuje překážky, které způsobují, že většina lidí přestává sledovat jídlo během prvních dvou týdnů.

Rozsah problému

Rozpoznávání jídla je považováno za jednu z nejtěžších výzev klasifikace obrázků kvůli obrovské rozmanitosti:

  • Existují tisíce různých pokrmů napříč světovými kuchyněmi
  • To samé jídlo může vypadat dramaticky jinak v závislosti na způsobu přípravy
  • Osvětlení, úhel a servírování ovlivňují vzhled
  • Na jednom talíři se často nachází více jídel, což vyžaduje současnou identifikaci
  • Velikosti porcí se neustále mění, místo aby spadaly do jasně definovaných kategorií

Navzdory těmto výzvám moderní systémy rozpoznávání jídla dosahují přesnosti nad 90 procent v top-5 odhadech na standardních benchmarkových testech, což znamená, že správný pokrm se objeví mezi pěti nejlepšími odhady více než devětkrát z deseti.

Konvoluční neuronové sítě: Základ rozpoznávání jídla

V srdci téměř každého systému rozpoznávání jídla je typ architektury hlubokého učení nazývaný konvoluční neuronová síť, nebo CNN. Pochopení CNN je klíčové pro to, abyste chápali, jak váš telefon dokáže na fotografii rozpoznat, že jíte kuřecí tikka masala s basmati rýží.

Jak CNN zpracovává obrázek

CNN zpracovává obrázek prostřednictvím série vrstev, z nichž každá je navržena tak, aby detekovala stále složitější vizuální prvky:

Vrstva 1 - Detekce hran: První konvoluční vrstva se učí detekovat jednoduché hrany a barevné přechody. Může rozpoznat zakřivenou hranu misky nebo hranici mezi kusem masa a jeho omáčkou.

Vrstva 2 - Rozpoznávání textur: Hlubší vrstvy kombinují hrany do textur. Síť začíná rozlišovat zrnitou texturu hnědé rýže od hladkého povrchu bílé rýže, nebo vláknitou texturu grilovaného kuřete od lesklého vzhledu smaženého kuřete.

Vrstva 3 - Rozpoznávání tvarů a vzorů: Vyšší vrstvy skládají textury do rozpoznatelných tvarů a vzorů. Kulatý tvar s konkrétní texturou může být klasifikován jako tortilla, zatímco podlouhlý tvar s jinou texturou se stává chlebovou tyčinkou.

Vrstva 4 - Rozpoznávání objektů: Poslední konvoluční vrstvy kombinují všechny předchozí informace, aby rozpoznaly celé potravinové položky. Síť se naučila, že konkrétní kombinace barvy, textury, tvaru a kontextu odpovídá specifickému jídlu.

Úloha pooling a mapy vlastností

Mezi konvolučními vrstvami pooling vrstvy snižují prostorové rozměry dat, přičemž zachovávají nejdůležitější prvky. To slouží dvěma účelům: usnadňuje výpočty a poskytuje určitou míru translace invariance, což znamená, že síť může rozpoznat potravinovou položku bez ohledu na to, kde se v rámci snímku nachází.

Výstup každé konvoluční vrstvy se nazývá mapa vlastností. Rané mapy vlastností zachycují informace na nízké úrovni, jako jsou hrany a barvy, zatímco pozdější mapy vlastností kódují vysoce úrovňové koncepty, jako je "tato oblast obsahuje špagety." Typický model rozpoznávání jídla generuje stovky těchto map vlastností v každé vrstvě.

Populární architektury CNN používané v rozpoznávání jídla

Architektura Rok Klíčová inovace Typické použití v AI pro jídlo
AlexNet 2012 Prokázal, že hluboké CNN fungují ve velkém měřítku Raný výzkum rozpoznávání jídla
VGGNet 2014 Ukázal, že hloubka je důležitá Extrakce vlastností pro datové sady jídla
GoogLeNet/Inception 2014 Zpracování v několika měřítkách Efektivní mobilní rozpoznávání jídla
ResNet 2015 Reziduální spojení pro velmi hluboké sítě Klasifikace jídla s vysokou přesností
EfficientNet 2019 Vyvážené škálování hloubky, šířky a rozlišení Moderní mobilní aplikace pro rozpoznávání jídla
Vision Transformers 2020 Sebe-pozornost pro obrazové části Nejmodernější výzkum rozpoznávání jídla

Od klasifikace k detekci s více štítky

Ranější systémy rozpoznávání jídla považovaly úkol za jednoduchý klasifikační problém: na základě jednoho obrázku předpovědět jeden štítek jídla. Skutečné jídlo však bývá zřídka tak jednoduché. Typický oběd může obsahovat hlavní bílkovinu, přílohu zeleniny, obilovinu a omáčku, vše na jednom talíři.

Detekce objektů pro složité talíře

Moderní systémy rozpoznávání jídla používají rámce detekce objektů, které dokážou identifikovat a lokalizovat více potravinových položek v jednom obrázku. Tyto systémy kreslí ohraničující rámečky kolem každé jednotlivé potravinové položky a klasifikují je nezávisle.

Architektury jako YOLO (You Only Look Once) a Faster R-CNN byly přizpůsobeny pro detekci jídla. Tyto modely dělí obrázek na mřížku a zároveň předpovídají jak umístění, tak třídu potravinových položek, což umožňuje zpracování v reálném čase na mobilních zařízeních.

Sémantická segmentace pro přesné hranice

Pro ještě větší přesnost některé systémy používají sémantickou segmentaci, která klasifikuje každý pixel v obrázku jako patřící do konkrétní potravinové kategorie. To je obzvlášť užitečné pro smíšená jídla, jako jsou saláty nebo smažené pokrmy, kde se různé ingredience překrývají a mísí.

Funkce Snap & Track od Nutrola využívá kombinaci těchto přístupů. Když vyfotíte své jídlo, systém nejprve detekuje jednotlivé oblasti jídla, poté každou z nich klasifikuje a nakonec odhaduje množství každé položky. Tento vícestupňový proces umožňuje systému zvládat vše od jednoduchého banánu po složité vícechodové jídlo.

Tréninková data: Palivo pro přesné rozpoznávání jídla

Model rozpoznávání jídla je tak dobrý, jaká data byla použita pro jeho trénink. Vytvoření kvalitní datové sady obrázků jídla je jedním z nejnáročnějších a nejvíce zdrojově intenzivních aspektů vývoje AI pro jídlo.

Veřejné benchmarkové datové sady

Několik veřejných datových sad podpořilo pokrok ve výzkumu rozpoznávání jídla:

  • Food-101: Obsahuje 101 000 obrázků napříč 101 kategoriemi jídla, široce používaná jako benchmark
  • ISIA Food-500: Pokrývá 500 kategorií jídla s 400 000 obrázky, nabízí širší pokrytí
  • UEC Food-256: Japonská datová sada jídla se 256 kategoriemi, důležitá pro pokrytí asijské kuchyně
  • Nutrition5k: Páruje obrázky jídla s přesnými nutričními měřeními z laboratorního prostředí

Výzva reálné rozmanitosti

Veřejné datové sady, i když jsou cenné pro výzkum, plně nereprezentují rozmanitost jídla, které lidé jedí po celém světě. Model trénovaný převážně na západní kuchyni bude mít potíže s pokrmy ze jihovýchodní Asie a naopak. Proto systémy pro rozpoznávání jídla doplňují veřejné datové sady o proprietární data shromážděná od své uživatelské základny.

Nutrola slouží uživatelům ve více než 50 zemích, což znamená, že systém denně čelí obrovské rozmanitosti kuchyní. Tato globální uživatelská základna poskytuje nepřetržitý tok reálných obrázků jídla, které pomáhají modelu zlepšovat jeho rozpoznávání napříč všemi kuchyněmi v průběhu času.

Techniky augmentace dat

Aby uměle rozšířili tréninková data a zlepšili robustnost modelu, inženýři aplikují různé techniky augmentace dat:

  • Rotace a převrácení: Zajišťuje, že model rozpozná jídlo z jakéhokoli úhlu
  • Barevné jitterování: Simuluje různé světelné podmínky
  • Náhodné oříznutí: Učí model rozpoznávat částečné pohledy na jídlo
  • Cutout a mixup: Pokročilé techniky, které nutí model soustředit se na více diskriminačních oblastí namísto spoléhání se na jediný vizuální signál

Jak funguje technologie Snap & Track od Nutrola

Funkce Snap & Track od Nutrola spojuje všechny tyto technologie do bezproblémového uživatelského zážitku. Zde je to, co se děje v přibližně dvou sekundách mezi pořízením fotografie a zobrazením vašeho přehledu kalorií:

  1. Předzpracování obrázku: Fotografie je převedena na formát očekávaný neuronovou sítí. Osvětlení a barevné korekce se aplikují pro standardizaci vstupu.

  2. Detekce jídla: Model detekce objektů identifikuje jednotlivé oblasti jídla v obrázku a kreslí kolem každé z nich ohraničující rámečky.

  3. Klasifikace: Každá detekovaná oblast je předána klasifikační síti, která identifikuje konkrétní potravinovou položku. Systém zohledňuje nejlepší kandidáty a jejich skóre důvěry.

  4. Odhad porce: Samostatný model odhaduje objem a hmotnost každé identifikované potravinové položky na základě vizuálních signálů a referenčních velikostí (více o tom v našem doprovodném článku o odhadu velikosti porce).

  5. Nutriční vyhledávání: Identifikované potraviny a odhadované porce jsou porovnány s komplexní nutriční databází pro výpočet kalorií, makroživin a mikroživin.

  6. Ověření uživatele: Výsledky jsou prezentovány uživateli, který může potvrdit nebo opravit identifikace. Tento zpětnovazební cyklus neustále zlepšuje model.

Celý tento proces probíhá za méně než dvě sekundy, což je rychlejší než napsat "grilované kuřecí prso" do vyhledávacího pole a procházet desítkami výsledků.

Výzvy v AI rozpoznávání jídla

Navzdory pozoruhodnému pokroku čelí AI rozpoznávání jídla stále několika výzvám, které se výzkumníci a inženýři snaží aktivně vyřešit.

Vizualně podobná jídla

Některá jídla vypadají na fotografiích téměř identicky, ale mají velmi odlišné nutriční profily. Bílá rýže a květáková rýže, běžné těstoviny a celozrnné těstoviny, a plnotučný a nízkotučný sýr jsou příklady vizuálně podobných jídel, která se výrazně liší v kaloriích a makroživinách.

Současné systémy to řeší kombinací kontextových indicií (co dalšího je na talíři), uživatelské historie (co někdo obvykle jí) a tím, že se uživatele ptají na potvrzení, když je důvěra nízká.

Smíšená a vrstvená jídla

Burrito, sendvič nebo vrstvený zapečený pokrm představují základní problém: většina ingrediencí je skryta před zrakem. AI může vidět tortillu, ale ne fazole, sýr, zakysanou smetanu a rýži uvnitř.

Aby to vyřešily, modely se učí typické složení běžných pokrmů. Když systém identifikuje burrito, může na základě viditelného vnějšího vzhledu a běžných metod přípravy odvodit pravděpodobné vnitřní ingredience. Uživatelé pak mohou podle potřeby upravit konkrétní náplně.

Osvětlení a podmínky prostředí

Světlé osvětlení v restauracích, ostrý blesk a barevné ambientní světlo mohou ovlivnit vzhled jídla. Žluté osvětlení může udělat z bílé rýže rýži se šafránem, zatímco modře tónované osvětlení může udělat z červeného masa hnědé.

Moderní systémy to řeší pomocí augmentace tréninkových dat a vytvářením barevně invariantních vlastností, které se více zaměřují na texturu a tvar než na absolutní hodnoty barev.

Budoucnost technologie rozpoznávání jídla

AI rozpoznávání jídla se rychle vyvíjí. Několik nových trendů naznačuje, že v blízké budoucnosti budou systémy ještě schopnější:

Rozpoznávání na základě videa: Místo analýzy jednoho snímku mohou budoucí systémy analyzovat krátký videoklip jídla, zachycující více úhlů a zlepšující přesnost.

Augmentované reality: AR by mohla poskytovat informace o výživě v reálném čase, když skenujete bufet nebo jídelní lístek, což vám pomůže učinit informovaná rozhodnutí před jídlem.

Více modalitní modely: Kombinování vizuálního rozpoznávání s textem (jídelní lístky, seznamy ingrediencí) a dokonce i zvukem (ptaní uživatele "přidal jsi zálivku?") pro komplexnější porozumění jídlu.

Zpracování na zařízení: Jak se mobilní procesory stávají výkonnějšími, více AI zpracování může probíhat přímo na telefonu bez odesílání obrázků na server, což zlepšuje rychlost a soukromí.

Rozpoznávání na úrovni ingrediencí: Přesun od klasifikace na úrovni pokrmu k identifikaci jednotlivých ingrediencí a jejich přibližných množství, což umožňuje přesnější nutriční výpočty.

Proč se přesnost neustále zlepšuje

Jedním z nejvíce povzbudivých aspektů AI rozpoznávání jídla je její zabudovaný mechanismus zlepšování. Kdykoliv uživatel pořídí fotografii a potvrdí nebo opraví výsledek, systém získá označený datový bod. S miliony uživatelských záznamů o jídle každý den systémy jako Nutrola shromažďují tréninková data tempem, které akademický výzkum nemůže překonat.

To vytváří pozitivní cyklus: lepší přesnost vede k více uživatelům, více uživatelů generuje více dat, více dat umožňuje lepší přesnost. Proto je rozpoznávání jídla, které dnes zažíváte, výrazně lepší než to, co bylo dostupné ještě před rokem, a bude se nadále zlepšovat.

Často kladené otázky

Jak přesné je rozpoznávání jídla pomocí AI ve srovnání s ručním zaznamenáváním?

Studie ukázaly, že rozpoznávání jídla pomocí AI může dosáhnout přesnosti nad 90 procent pro běžná jídla, což je srovnatelné nebo lepší než přesnost vyškolených dietologů, kteří ručně odhadují porce. Ruční zaznamenávání od neodborníků obvykle podhodnocuje příjem kalorií o 10 až 45 procent, což činí zaznamenávání s pomocí AI spolehlivějším pro většinu lidí.

Může rozpoznávání jídla pomocí AI fungovat s kuchyněmi z celého světa?

Ano, i když se přesnost liší podle kuchyně v závislosti na dostupných tréninkových datech. Systémy jako Nutrola, které slouží globální uživatelské základně ve více než 50 zemích, neustále zlepšují své rozpoznávání různých kuchyní, jak shromažďují více dat od uživatelů z celého světa. Čím více je kuchyně zastoupena v tréninkových datech, tím přesnější rozpoznávání se stává.

Funguje AI rozpoznávání jídla offline?

Záleží na implementaci. Některé aplikace zpracovávají obrázky na zařízení pomocí optimalizovaných modelů, což funguje offline, ale může obětovat určitou přesnost. Jiné odesílají obrázky na cloudové servery k zpracování, což vyžaduje internetové připojení, ale mohou používat větší, přesnější modely. Mnoho moderních aplikací používá hybridní přístup, provádí počáteční rozpoznávání na zařízení a vylepšuje výsledky cloudovým zpracováním, když je to možné.

Jak AI zvládá domácí jídla, která se neshodují s pokrmy v restauracích?

Moderní systémy rozpoznávání jídla jsou trénovány na obrázcích jídla z restaurací i domácí kuchyně. Identifikují jednotlivé komponenty, místo aby se snažily přiřadit celé jídlo k položce v databázi. Takže domácí smažené jídlo by bylo rozloženo na jeho viditelné komponenty (kuřecí, brokolice, rýže, omáčka) namísto přiřazení k jediné položce v jídelním lístku.

Jsou moje data o fotografiích jídla uchovávána v soukromí?

Zásady ochrany soukromí se liší podle aplikace. Nutrola se zavazuje k ochraně soukromí uživatelů a používá obrázky jídla výhradně pro účely nutriční analýzy a zlepšení modelu. Obrázky jsou zpracovávány bezpečně a nejsou sdíleny s třetími stranami. Uživatelé si mohou prohlédnout zásady ochrany soukromí pro podrobnosti o praktikách zpracování dat.

Co se stane, když AI špatně identifikuje jídlo?

Když AI nesprávně identifikuje jídlo, uživatelé mohou výsledek opravit výběrem správné položky ze seznamu nebo napsáním správného jídla. Tato oprava slouží jako cenný tréninkový datový bod, který pomáhá modelu zlepšovat se v průběhu času. Čím více oprav systém obdrží pro konkrétní jídlo, tím rychleji se jeho přesnost pro tuto položku zlepšuje.

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

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