Badania stojące za technologią rozpoznawania żywności Nutrola

Jak Nutrola identyfikuje jedzenie na zdjęciu w mniej niż 3 sekundy? Głęboka analiza badań z zakresu wizji komputerowej, uczenia głębokiego i nauki o żywieniu, które napędzają naszą sztuczną inteligencję.

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

Kiedy robisz zdjęcie swojego obiadu, a Nutrola zwraca pełną analizę wartości odżywczych w mniej niż trzy sekundy, za kulisami działa dekady badań z zakresu wizji komputerowej, nauki o żywieniu i inżynierii AI. To, co wydaje się być jedną chwilą rozpoznania, jest w rzeczywistości kaskadą wyspecjalizowanych modeli, z których każdy rozwiązuje odrębny problem naukowy. Od momentu, gdy migawka aparatu się zamyka, do chwili, gdy wartości makroskładników pojawiają się na ekranie, twoje zdjęcie przechodzi przez pipeline zbudowany na podstawowych badaniach z instytucji takich jak Stanford, MIT, Google DeepMind i ETH Zurich Computer Vision Lab.

Niniejszy artykuł śledzi ten proces krok po kroku, przytaczając rzeczywiste badania i techniczne koncepcje, które umożliwiają rozpoznawanie żywności przez Nutrola.

Pipeline Wizji Komputerowej

Rozpoznawanie żywności przez Nutrola to nie pojedynczy model. To wieloetapowy proces, w którym każdy etap zajmuje się odrębnym zadaniem, a wyniki jednego etapu są przekazywane do następnego.

Etap 1 -- Wstępne przetwarzanie obrazu. Zanim jakakolwiek sieć neuronowa zobaczy twoje zdjęcie, surowy obraz przechodzi normalizację. Obejmuje to zmianę rozmiaru do standardowej rozdzielczości wejściowej, dostosowanie balansu bieli i ekspozycji oraz zastosowanie transformacji augmentacyjnych podczas treningu. Badania Krizhevsky'ego, Sutskevera i Hintona z ich przełomowego artykułu z 2012 roku na temat ImageNet wykazały, że wstępne przetwarzanie i augmentacja znacznie poprawiają generalizację w głębokich sieciach neuronowych (CNN). Nowoczesne pipeline'y rozszerzają to o techniki takie jak CutMix (Yun i in., 2019) oraz RandAugment (Cubuk i in., 2020), które uczą model, jak być odpornym na zasłanianie i zmiany kolorów, które są powszechne w fotografii żywności.

Etap 2 -- Wykrywanie i segmentacja żywności. Po wstępnym przetworzeniu obraz przechodzi przez model detekcji obiektów, który identyfikuje i lokalizuje każdy odrębny element żywności na talerzu. Ten etap opiera się na badaniach dotyczących regionowych sieci konwolucyjnych. Faster R-CNN (Ren i in., 2015) ustanowił paradygmat sieci propozycji regionów, podczas gdy nowsze architektury, takie jak DETR (Carion i in., 2020) z Facebook AI Research, wykorzystują oparte na transformatorach mechanizmy uwagi, eliminując całkowicie ręcznie zaprojektowane komponenty, takie jak kotwice. Dla precyzji na poziomie pikseli modele segmentacji semantycznej oparte na architekturach takich jak DeepLab (Chen i in., 2017) przypisują każdy piksel w obrazie do kategorii żywności, co jest kluczowe w przypadku potraw mieszanych, gdzie składniki się nakładają.

Etap 3 -- Klasyfikacja żywności. Każdy wykryty obszar żywności jest następnie klasyfikowany. Kręgosłup nowoczesnych klasyfikatorów żywności wywodzi się z architektur zweryfikowanych na ImageNet (Deng i in., 2009), zbiorze danych zawierającym 14 milionów oznakowanych obrazów, który zainicjował rewolucję w uczeniu głębokim. Specyficzne dla żywności zbiory danych, takie jak Food-101 (Bossard i in., 2014), który zawiera 101 000 obrazów w 101 kategoriach, oraz UECFOOD-256 (Kawano i Yanai, 2015), który obejmuje 256 kategorii żywności z naciskiem na kuchnię japońską, dostarczają danych do treningu, które są niezbędne do dostosowania tych ogólnych architektur do rozpoznawania żywności.

Etap 4 -- Szacowanie porcji. Po zidentyfikowaniu, co znajduje się na talerzu, system szacuje, ile każdego elementu jest obecne. To najtrudniejszy nierozwiązany problem w badaniach nad rozpoznawaniem żywności i obejmuje szacowanie głębokości oraz rozumowanie objętościowe na podstawie pojedynczego obrazu 2D.

Etap 5 -- Mapowanie wartości odżywczych. Na koniec sklasyfikowany element żywności i jego oszacowana wielkość porcji są mapowane do zweryfikowanej bazy danych wartości odżywczych, aby uzyskać wartości kalorii, białka, węglowodanów, tłuszczu i mikroskładników.

Każdy z tych etapów reprezentuje odrębną dziedzinę aktywnych badań. Poniższe sekcje szczegółowo omawiają najbardziej technicznie wymagające etapy.

Klasyfikacja Żywności: Więcej niż "To jest Sałatka"

Rozróżnienie sałatki od steku jest proste dla każdego nowoczesnego klasyfikatora. Prawdziwe wyzwanie zaczyna się, gdy system musi odróżnić wizualnie podobne potrawy: chicken tikka masala od butter chicken, pad thai od drunken noodles, czy grecką sałatkę od fattoush. Te dania dzielą kolory, tekstury i wzory strukturalne, ale znacznie różnią się składnikami i gęstością kalorii.

Uczenie Transferowe i Adaptacja Domeny

Standardowe podejście do klasyfikacji żywności opiera się na uczeniu transferowym, technice sformalizowanej przez Yosinski'ego i in. (2014), gdzie model wstępnie wytrenowany na dużym ogólnym zbiorze danych, takim jak ImageNet, jest dostosowywany do danych specyficznych dla żywności. Niższe warstwy sieci, które wykrywają krawędzie, tekstury i podstawowe kształty, dobrze przenoszą się między domenami. Wyższe warstwy, które kodują znaczenie semantyczne, są retrenowane, aby nauczyć się cech specyficznych dla żywności, takich jak różnica między błyszczącą powierzchnią smażoną a matową powierzchnią gotowaną na parze.

Badania Hassannejad i in. (2016) wykazały, że dostosowanie InceptionV3 na Food-101 osiągnęło dokładność top-1 na poziomie 88,28 procent, co stanowi znaczący skok w porównaniu do wcześniejszych podejść opartych na ręcznie zaprojektowanych cechach. Nowsze prace wykorzystujące Vision Transformers (Dosovitskiy i in., 2020) i ich specyficzne dla żywności warianty podniosły dokładność na Food-101 powyżej 93 procent.

Klasyfikacja Wieloetykietowa dla Złożonych Potraw

Prawdziwe posiłki rzadko składają się z jednego elementu. Typowy talerz obiadowy może zawierać grillowanego łososia, pieczoną szparag, quinoa i sos cytrynowo-maślany. Klasyfikacja wieloetykietowa, w której pojedynczy obraz może otrzymać wiele niezależnych etykiet, rozwiązuje ten problem. Badania Wang i in. (2016) nad architekturami CNN-RNN dla klasyfikacji obrazów wieloetykietowych ustanowiły ramy, które uchwycają wzorce współwystępowania etykiet. W dziedzinie żywności oznacza to, że model uczy się, że ryż i curry często występują razem, co stanowi kontekstowy sygnał poprawiający dokładność poszczególnych elementów żywności.

Nutrola rozszerza to o hierarchiczny system klasyfikacji. Zamiast przewidywać płaską etykietę, system najpierw klasyfikuje szeroką kategorię żywności (zboża, białka, warzywa, sos), a następnie zawęża do konkretnego elementu w tej kategorii. To podejście dwustopniowe redukuje zamieszanie między wizualnie podobnymi elementami z różnych kategorii i odzwierciedla sposób, w jaki zorganizowane są bazy danych wartości odżywczych.

Szacowanie Porcji: Wyzwanie 3D

Identyfikacja, co znajduje się na talerzu, rozwiązuje tylko połowę problemu. 100-gramowa porcja piersi z kurczaka zawiera 165 kalorii. 250-gramowa porcja zawiera 412 kalorii. Bez dokładnego szacowania porcji, nawet idealne rozpoznawanie żywności prowadzi do niepewnych wartości kalorycznych.

Szacowanie Głębokości Monokularnej

Szacowanie objętości żywności na podstawie pojedynczego zdjęcia 2D wymaga od systemu wnioskowania o głębokości, problemu znanego jako szacowanie głębokości monokularnej. Eigen, Puhrsch i Fergus (2014) opublikowali fundamentalne prace, które wykazały, że CNN mogą przewidywać mapy głębokości na poziomie pikseli z pojedynczych obrazów. Nowsze badania Ranftl i in. (2021) wprowadziły MiDaS, model wytrenowany na mieszanych zbiorach danych, który produkuje solidne szacunki głębokości względnej w różnych scenach.

W zastosowaniach związanych z żywnością, szacowanie głębokości pozwala systemowi odróżnić cienką warstwę sosu rozłożoną na talerzu od głębokiej miski z zupą. W połączeniu z znaną geometrią typowych obiektów odniesienia, takich jak talerze, miski i sztućce, mapy głębokości mogą być przekształcane w przybliżone szacunki objętości.

Geometriczne Podejścia do Szacowania Objętości

Badania z Uniwersytetu Tokijskiego (Okamoto i Yanai, 2016) wykazały, że objętość żywności można oszacować, dopasowując prymitywy geometryczne, takie jak cylindry, półkule i prostopadłościany, do segmentowanych obszarów żywności. Stos ryżu przybliża pół-ellipsoidę. Szklanka mleka przybliża cylinder. Kawałek chleba przybliża prostopadłościan.

Te przybliżenia geometryczne, w połączeniu z nauczonymi priorytetami gęstości (system wie, że dany objętość puree ziemniaczanego waży więcej niż ta sama objętość popcornu), produkują szacunki wagi, które badania wykazały, że mieszczą się w granicach 15 do 20 procent rzeczywistej wartości dla większości powszechnych produktów spożywczych. Nutrola dodatkowo udoskonala te szacunki, stosując autorskie podejście zespołowe, które łączy rozumowanie geometryczne z nauczonymi modelami regresji wytrenowanymi na dziesiątkach tysięcy obrazów żywności o znanej wadze.

Kalibracja Obiektów Odniesienia

Niektóre systemy rozpoznawania żywności wykorzystują znane obiekty odniesienia w scenie do kalibracji skali. Standardowy talerz obiadowy ma średnicę około 26 centymetrów. Karta kredytowa mierzy 85,6 na 53,98 milimetrów. Gdy system wykrywa takie obiekty, może ustalić rzeczywistą skalę, co znacznie poprawia szacunki objętości i wagi. Badania Fang i in. (2016) na Uniwersytecie Purdue wykazały, że kalibracja oparta na talerzu zmniejszyła błąd szacowania porcji o około 25 procent w porównaniu do podejść niekalibrowanych.

Warstwa Zweryfikowanej Bazy Danych

Sama rozpoznawanie AI nie wystarcza, aby dostarczyć dokładne wartości kaloryczne. Nawet jeśli model osiąga 99 procent dokładności w identyfikacji grillowanej piersi z kurczaka, ostateczny wynik wartości odżywczych zależy całkowicie od jakości bazy danych, do której jest mapowany.

Tutaj podejście Nutrola różni się od wielu konkurentów. Większość aplikacji do śledzenia żywności polega na bazach danych opartych na crowdsourcingu, gdzie każdy użytkownik może przesłać informacje o wartościach odżywczych. Badania wykazały, że bazy danych żywności opartych na crowdsourcingu zawierają wskaźniki błędów między 15 a 30 procent, a niektóre wpisy różnią się od wartości zweryfikowanych w laboratoriach o więcej niż 50 procent dla kluczowych makroskładników.

Nutrola utrzymuje 100 procent zweryfikowaną bazę danych wartości odżywczych. Każdy wpis jest krzyżowo sprawdzany z autorytatywnymi źródłami, w tym USDA FoodData Central, tabelami kompozycyjnymi McCance i Widdowson używanymi przez UK National Health Service oraz recenzowanymi analizami wartości odżywczych. Oznacza to, że nawet jeśli warstwa rozpoznawania AI wprowadza niewielką marżę błędu w identyfikacji żywności lub szacowaniu porcji, dane żywieniowe, do których jest mapowana, są wiarygodne.

Warstwa weryfikacji zajmuje się również subtelnością, której czyste podejścia AI nie dostrzegają: metoda przygotowania wpływa na zawartość odżywczą. 150-gramowa pierś z kurczaka grillowana zawiera około 165 kalorii, ale ta sama pierś smażona na oliwie z oliwek zawiera około 230 kalorii. Baza danych Nutrola uwzględnia te zależności od metody przygotowania, a model rozpoznawania jest szkolony, aby odróżniać metody gotowania, gdy obecne są wskazówki wizualne, takie jak różnica między powierzchnią grillowaną a smażoną.

Ciągłe Uczenie i Poprawa

Rozpoznawanie żywności to nie problem, który można rozwiązać raz na zawsze. Kuchnie ewoluują, nowe dania się pojawiają, a oczekiwania użytkowników rosną. System Nutrola jest zaprojektowany do ciągłego doskonalenia poprzez kilka mechanizmów opartych na badaniach z zakresu uczenia maszynowego.

Aktywne Uczenie

Aktywne uczenie, sformalizowane przez Settlesa (2009), to strategia, w której model identyfikuje przykłady, co do których ma najmniej pewności, i priorytetowo traktuje je do przeglądu i oznaczania przez ludzi. Gdy system Nutrola napotyka danie, którego nie może sklasyfikować z dużą pewnością, to zdjęcie jest oznaczane do przeglądu przez ekspertów. Po oznaczeniu trafia do pipeline'u treningowego, a model poprawia się w dokładnie tych przypadkach, w których był najsłabszy.

To podejście jest znacznie bardziej efektywne pod względem danych niż losowe zbieranie kolejnych obrazów do treningu. Badania konsekwentnie wykazały, że aktywne uczenie może osiągnąć równoważną dokładność modelu przy 30 do 60 procent mniej oznakowanych danych w porównaniu do losowego próbkowania.

Radzenie sobie z Nowymi Potrawami i Regionalnymi Kuchniami

Jednym z największych wyzwań w rozpoznawaniu żywności jest pokrycie regionalnych i kulturowo specyficznych potraw. Model wytrenowany głównie na kuchni zachodniej może mieć trudności z deserami azjatyckimi, gulaszami afrykańskimi czy skandynawskimi potrawami fermentowanymi. Nutrola radzi sobie z tym poprzez ukierunkowane kampanie zbierania danych skoncentrowane na niedostatecznie reprezentowanych kuchniach, w połączeniu z technikami uczenia się z niewielką ilością przykładów (Wang i in., 2020), które pozwalają modelowi uczyć się nowych kategorii żywności z relatywnie małej liczby przykładów.

Opinie użytkowników są kluczowym wkładem w ten proces. Gdy użytkownik poprawia błędnie zidentyfikowaną żywność, ta korekta trafia z powrotem do pipeline'u treningowego. Zgromadzone w milionach posiłków zarejestrowanych na całym świecie, te poprawki tworzą ciągły strumień danych prawdziwych, które obejmują dokładnie te potrawy, które rzeczywiści ludzie jedzą na co dzień.

Jak To Przekłada się na Twój Talerz

Powyższe badania przynoszą konkretne korzyści, które odczuwasz za każdym razem, gdy otwierasz Nutrola.

Rejestrowanie w trzy sekundy. Cały proces, od wstępnego przetwarzania obrazu po wyszukiwanie wartości odżywczych, wykonuje się w mniej niż trzy sekundy na nowoczesnym smartfonie. Techniki optymalizacji modelu, w tym kwantyzacja (Jacob i in., 2018) oraz wyszukiwanie architektury neuronowej (Zoph i Le, 2017), pozwalają skomplikowanym modelom działać efektywnie na sprzęcie mobilnym, nie rezygnując z dokładności.

Obsługa złożonych posiłków. Wykrywanie wieloetykietowe i segmentacja semantyczna oznaczają, że nie musisz fotografować każdego elementu żywności osobno. Jedno zdjęcie pełnego talerza obiadowego produkuje indywidualne analizy wartości odżywczych dla każdego składnika.

Dokładność międzykulturowa. Ciągłe uczenie i ukierunkowane zbieranie danych zapewniają, że system działa, niezależnie od tego, czy jesz sushi w Tokio, tacos w Mexico City, injera w Addis Abebie, czy niedzielny pieczony obiad w Londynie. Model poprawia się z każdym posiłkiem zarejestrowanym w globalnej bazie użytkowników Nutrola.

Postępująca poprawa dokładności. Im częściej korzystasz z Nutrola, tym lepiej działa, zarówno dla ciebie indywidualnie, jak i dla wszystkich użytkowników zbiorowo. Aktywne uczenie zapewnia, że model koncentruje swoje poprawki na dokładnie tych przypadkach, w których najbardziej ich potrzebuje.

Zweryfikowane dane żywieniowe. W przeciwieństwie do aplikacji, które polegają na bazach danych opartych na crowdsourcingu z nieznanymi wskaźnikami błędów, każda wartość kaloryczna, którą zwraca Nutrola, jest poparta zweryfikowanymi danymi żywieniowymi. AI identyfikuje jedzenie; zweryfikowana baza danych zapewnia, że liczby są poprawne.

FAQ

Jak AI Nutrola rozpoznaje jedzenie na zdjęciu?

Nutrola wykorzystuje wieloetapowy pipeline wizji komputerowej. Twoje zdjęcie najpierw przechodzi przez wstępne przetwarzanie obrazu, następnie przez model detekcji oparty na uczeniu głębokim, który identyfikuje i segmentuje każdy element żywności na talerzu. Każdy element jest klasyfikowany za pomocą sieci konwolucyjnych dostosowanych do specyficznych zbiorów danych żywności, jego porcja jest szacowana przy użyciu głębokości i rozumowania objętościowego, a wynik jest mapowany do zweryfikowanej bazy danych wartości odżywczych Nutrola, aby uzyskać wartości kaloryczne i makroskładników.

Jak dokładna jest technologia rozpoznawania żywności Nutrola?

Modele klasyfikacji Nutrola osiągają wskaźniki dokładności top-1 powyżej 90 procent w standardowych benchmarkach rozpoznawania żywności, a dokładność top-5 przekracza 95 procent. W przypadku szacowania porcji system zazwyczaj mieści się w granicach 15 do 20 procent rzeczywistej wagi, co jest porównywalne lub lepsze od dokładności szacowania wykwalifikowanych dietetyków. W połączeniu z zweryfikowaną bazą danych Nutrola, to prowadzi do oszacowań kalorycznych, które są znacznie bardziej wiarygodne niż ręczne rejestrowanie, które według badań wykazuje niedoszacowanie spożycia o 10 do 45 procent.

Jakie badania i zbiory danych napędzają AI rozpoznawania żywności Nutrola?

Technologia Nutrola opiera się na podstawowych badaniach z zakresu wizji komputerowej, w tym sieciach konwolucyjnych zweryfikowanych na ImageNet, architekturach detekcji obiektów, takich jak Faster R-CNN i DETR, oraz specyficznych zbiorach danych dotyczących żywności, w tym Food-101 i UECFOOD-256. System korzysta również z badań dotyczących szacowania głębokości monokularnej do określania wielkości porcji oraz badań nad aktywnym uczeniem do ciągłego doskonalenia modelu. Wszystkie dane żywieniowe są weryfikowane w odniesieniu do autorytatywnych źródeł, takich jak USDA FoodData Central.

Czy Nutrola potrafi rozpoznać wiele potraw na jednym talerzu?

Tak. Nutrola wykorzystuje wykrywanie wieloetykietowe i segmentację semantyczną, aby zidentyfikować i osobno analizować każdy odrębny element żywności na jednym zdjęciu. Niezależnie od tego, czy na twoim talerzu znajdują się dwa elementy, czy osiem, system izoluje każdy z nich, klasyfikuje go niezależnie, szacuje jego porcję i zwraca analizę wartości odżywczych dla każdego składnika oraz całkowitą wartość posiłku.

Jak Nutrola radzi sobie z potrawami z różnych kuchni i kultur?

Nutrola łączy dane treningowe o szerokim zasięgu z ukierunkowanym zbieraniem danych dla niedostatecznie reprezentowanych kuchni oraz technikami uczenia się z niewielką ilością przykładów, które pozwalają modelowi uczyć się nowych kategorii żywności z relatywnie małej liczby przykładów. Korekty użytkowników z globalnej bazy użytkowników Nutrola są ciągle wprowadzane do pipeline'u treningowego, zapewniając, że dokładność poprawia się dla konkretnych potraw, które ludzie rzeczywiście jedzą w każdej regionie i kulturze żywności.

Czy rozpoznawanie żywności Nutrola poprawia się z czasem?

Tak. Nutrola wykorzystuje aktywne uczenie, strategię uczenia maszynowego, w której system identyfikuje obrazy, co do których ma najmniej pewności, i priorytetowo traktuje je do przeglądu przez ekspertów i ponownego treningu. W połączeniu z zebranymi opiniami użytkowników z milionów zarejestrowanych posiłków na całym świecie, oznacza to, że model poprawia się w sposób ciągły. Każdy posiłek, który rejestrujesz, przyczynia się do tego, że rozpoznawanie Nutrola staje się bardziej dokładne dla wszystkich użytkowników.

Gotowy, aby przeksztalcic sledzenie zywienia?

Dolacz do tysiecy osob, ktore przeksztalcily swoja podroz zdrowotna z Nutrola!