Ocena diety jest kluczowym krokiem w określaniu obszarów diety danej osoby, które można podjąć. Jednak przeprowadzanie oceny diety przy użyciu tradycyjnie ręcznych metod wiąże się ze znacznymi kosztami. Podejścia te są również podatne na błędy, ponieważ często opierają się na samodzielnym zgłaszaniu przez jednostkę. Zautomatyzowana ocena diety rozwiązuje te problemy, zapewniając prostszy sposób ilościowego określania i kwalifikowania spożycia żywności. Takie podejście może również złagodzić niektóre błędy występujące w podejściach ręcznych, takie jak pominięte posiłki, niemożność dokładnej oceny objętości jedzenia itp. W związku z tym istnieją wyraźne korzyści z automatyzacji oceny diety poprzez opracowanie rozwiązań, które identyfikują różne produkty spożywcze i napoje oraz określają ilościowo spożycie żywności1. Rozwiązania te mogą być również wykorzystywane do umożliwienia oszacowania wartości odżywczej artykułów spożywczych i napojów (zwanych dalej "artykułami spożywczymi"). W związku z tym zautomatyzowana ocena diety jest przydatna w wielu zastosowaniach - od zastosowań stricte medycznych, takich jak umożliwienie dietetykom łatwiejszego i dokładniejszego śledzenia i analizowania diety pacjentów, po wykorzystanie w aplikacjach poprawiających samopoczucie przeznaczonych dla ogółu populacji.
Automatyczne rozpoznawanie produktów spożywczych na obrazach jest trudnym problemem widzenia komputerowego. Wynika to z faktu, że żywność jest zazwyczaj obiektami odkształcalnymi, a także z faktu, że duża ilość informacji wizualnych produktu spożywczego może zostać utracona podczas jego przygotowywania. Dodatkowo, różne produkty spożywcze mogą wydawać się bardzo podobne do siebie, a to samo jedzenie może wydawać się znacznie różne na wielu obrazach2. Co więcej, dokładność rozpoznawania zależy od wielu innych czynników, takich jak jakość obrazu, to, czy produkt spożywczy jest zasłonięty przez inny przedmiot, odległość, z której zostało zrobione zdjęcie itp. Rozpoznawanie napojów wiąże się z wieloma wyzwaniami, z których głównym jest ograniczona ilość informacji wizualnych dostępnych na obrazie. Mogą to być kolor napoju, kolor i struktura pojemnika na napój oraz, w optymalnych warunkach obrazu, gęstość napoju2.
Aby skutecznie rozpoznać produkty spożywcze na obrazach, konieczne jest poznanie cech każdej klasy żywności i napojów. Tradycyjnie odbywało się to za pomocą ręcznie zdefiniowanych ekstraktorów cech3,4,5,6, które wykonują rozpoznawanie na podstawie określonych cech elementu, takich jak kolor, tekstura, rozmiar itp., lub kombinacji tych cech. Przykładami takich ekstraktorów cech są: wiele funkcji uczenia się4, pairwise local features5 oraz model bag-of-features6. Ze względu na złożoność obrazów żywności, podejścia te w większości osiągały niską dokładność klasyfikacji - od 10% do 40%3,4,5. Powodem tego jest to, że podejście ręczne nie jest wystarczająco solidne, aby było wystarczająco dokładne. Ponieważ produkt spożywczy może znacznie różnić się wyglądem, nie jest możliwe ręczne uwzględnienie wszystkich tych różnic. Większą dokładność klasyfikacji można osiągnąć za pomocą ręcznie zdefiniowanych ekstraktorów cech, gdy liczba klas żywności jest zmniejszona5, lub różne cechy obrazu są łączone6, co wskazuje, że istnieje potrzeba bardziej złożonych rozwiązań tego problemu.
Dlatego głębokie uczenie okazało się tak skuteczne w przypadku problemu rozpoznawania obrazów żywności. Głębokie uczenie, czyli głębokie sieci neuronowe, zostało zainspirowane biologicznymi mózgami i umożliwia modelom obliczeniowym złożonym z wielu warstw przetwarzania automatyczne uczenie się funkcji poprzez trenowanie na zestawie obrazów wejściowych7,8. Z tego powodu głębokie uczenie znacznie poprawiło stan wiedzy w różnych dziedzinach badawczych7, a jedną z nich jest widzenie komputerowe, a następnie rozpoznawanie obrazów żywności2.
W szczególności, głębokie konwolucyjne sieci neuronowe (DCNN) są najbardziej popularne do rozpoznawania obrazów żywności - te sieci są inspirowane systemem wzrokowym zwierząt, gdzie poszczególne neurony próbują zrozumieć bodźce wizualne, reagując na nakładające się na siebie regiony w polu widzenia9. Konwolucyjna sieć neuronowa pobiera obraz wejściowy i wykonuje szereg operacji w każdej z warstw sieci, z których najczęstszymi są warstwy konwolucyjne, w pełni połączone i pulujące. Warstwy konwolucyjne zawierają filtry, których można się nauczyć, które reagują na określone cechy danych wejściowych, podczas gdy w pełni połączone warstwy tworzą dane wyjściowe z innych warstw, aby uzyskać z nich wiedzę wyższego poziomu. Celem łączenia warstw jest próbkowanie danych wejściowych w dół2. Istnieją dwa podejścia do korzystania z modeli głębokiego uczenia, które okazały się popularne: wykorzystanie istniejącej definicji głębokiej sieci neuronowej 10,11, określanej w tym artykule jako architektura głębokiego uczenia, lub zdefiniowanie nowej architektury głębokiego uczenia12,13i trenując jeden z nich na zestawie danych obrazu żywności. Oba podejścia mają mocne i słabe strony - w przypadku korzystania z istniejącej architektury głębokiego uczenia można wybrać architekturę, która dobrze sprawdziła się w przypadku innych problemów, i dostosować ją do pożądanego problemu, oszczędzając w ten sposób czas i zapewniając, że wybrano zweryfikowaną architekturę. Z drugiej strony definiowanie nowej architektury głębokiego uczenia jest bardziej czasochłonne, ale pozwala na opracowanie architektur, które są specjalnie zaprojektowane tak, aby uwzględniały specyfikę problemu, a tym samym teoretycznie działały lepiej dla tego problemu.
W tym artykule prezentujemy oba podejścia. Na potrzeby problemu rozpoznawania obrazów żywności opracowaliśmy nowatorską architekturę DCNN o nazwie NutriNet2, która jest modyfikacją dobrze znanej architektury AlexNet14. Istnieją dwie główne różnice w porównaniu z AlexNet: NutriNet akceptuje obrazy o wymiarach 512x512 pikseli jako dane wejściowe (w przeciwieństwie do obrazów o rozdzielczości 256x256 pikseli w przypadku AlexNet), a NutriNet ma dodatkową warstwę konwolucyjną na początku sieci neuronowej. Te dwie zmiany zostały wprowadzone w celu wyodrębnienia jak największej ilości informacji z obrazów zestawu danych rozpoznawania. Posiadanie obrazów o wyższej rozdzielczości oznaczało, że na obrazach jest więcej informacji, a posiadanie większej liczby warstw konwolucyjnych oznaczało, że można było wydobyć z obrazów dodatkową wiedzę. W porównaniu do około 60 milionów parametrów AlexNet, NutriNet zawiera mniej parametrów: około 33 miliony. Wynika to z różnicy wymiarowości w pierwszej w pełni połączonej warstwie, spowodowanej przez dodatkową warstwę konwolucyjną2. Rysunek 1 zawiera diagram architektury NutriNet. Zdjęcia żywności, które zostały wykorzystane do wytrenowania modelu NutriNet, zostały pobrane z Internetu - procedura jest opisana w tekście protokołu.
Do problemu segmentacji obrazów żywności użyliśmy dwóch różnych istniejących architektur: w pełni konwolucyjnych sieci (FCNs)15 i głębokich sieci szczątkowych (ResNet)16, które reprezentowały stan techniki w zakresie segmentacji obrazów, gdy używaliśmy ich do opracowania odpowiednich rozwiązań segmentacji obrazów żywności. Istnieje wiele wariantów FCN, które zostały wprowadzone przez Long i wsp.: FCN-32s, FCN-16s i FCN-8s15. FCN-32s generuje mapę pikseli na podstawie przewidywań ostatniej warstwy FCN, podczas gdy wariant FCN-16s łączy te przewidywania z przewidywaniami wcześniejszej warstwy. FCN-8s uwzględnia przewidywania kolejnej warstwy i dlatego jest w stanie przewidywać najdrobniejsze ziarno, dlatego nadaje się do rozpoznawania obrazów żywności. FCN-8, których używaliśmy, zostały wstępnie wytrenowane na zestawie danych PASCAL Visual Object Classes (PASCAL VOC) 17 oraz przeszkolone i przetestowane na obrazach replik żywności (odtąd 'fake food')18 ze względu na ich wizualne podobieństwo do prawdziwego jedzenia i z powodu braku obrazów z adnotacjami prawdziwego jedzenia na poziomie pikseli. Fałszywe jedzenie jest wykorzystywane w różnych badaniach behawioralnych, a zdjęcia są wykonywane dla wszystkich potraw od wszystkich uczestników badania. Ponieważ zawartość tych obrazów jest znana, sprawia to, że zestaw danych obrazu jest przydatny do trenowania modelu uczenia głębokiego. Kroki przetwarzania zestawu danych są opisane w tekście protokołu.
Rozwiązanie oparte na ResNet zostało opracowane w ramach Food Recognition Challenge (FRC)19. Używa metody Hybrid Task Cascade (HTC)20 z siecią szkieletową ResNet-10116. Jest to najnowocześniejsze podejście do problemu segmentacji obrazu, które może wykorzystywać różne ekstraktory funkcji lub szkielety. Rozważaliśmy również inne sieci szkieletowe, w szczególności inne warianty ResNet, takie jak ResNet-5016, ale ResNet-101 był najbardziej odpowiedni ze względu na jego głębię i zdolność do reprezentowania obrazów wejściowych w wystarczająco złożony sposób. Zestaw danych używany do trenowania modelu HTC ResNet-101 był zestawem danych FRC z dodanymi obrazami rozszerzonymi. Rozszerzenia te zostały przedstawione w tekście protokołu.
Ten artykuł jest przeznaczony jako źródło informacji dla ekspertów od uczenia maszynowego szukających informacji o tym, które architektury głębokiego uczenia i kroki rozszerzania danych sprawdzają się dobrze w przypadku problemów z rozpoznawaniem i segmentacją obrazów żywności, a także dla badaczy żywienia, którzy chcą wykorzystać nasze podejście do automatyzacji rozpoznawania obrazów żywności do wykorzystania w ocenie diety. W poniższych akapitach przedstawiono rozwiązania głębokiego uczenia oraz zestawy danych z dziedziny rozpoznawania obrazów żywności. W tekście protokołu szczegółowo opisujemy, w jaki sposób każde z trzech podejść zostało wykorzystane do trenowania modeli głębokich sieci neuronowych, które można wykorzystać do automatycznej oceny diety. Ponadto każda sekcja protokołu zawiera opis tego, w jaki sposób zestawy danych obrazów żywności wykorzystane do szkolenia i testowania zostały pozyskane i przetworzone.
DCNN generalnie osiągnęły znacznie lepsze wyniki niż inne metody rozpoznawania i segmentacji obrazów żywności, dlatego zdecydowana większość ostatnich badań w tej dziedzinie opiera się na tych sieciach. Kawano i in. wykorzystali DCNN do uzupełnienia podejść ręcznych21 i osiągnęli dokładność klasyfikacji 72,26% w zbiorze danych UEC-FOOD10022. Christodoulidis i in. wykorzystali je wyłącznie w celu osiągnięcia wyższej dokładności 84,90% na samodzielnie pozyskanym zbiorze danych23. Tanno i in. opracowali DeepFoodCam - aplikację na smartfony do rozpoznawania obrazów żywności, która wykorzystuje DCNNs24. Liu i in. przedstawili system, który przeprowadza ocenę diety opartą na Internecie rzeczy przy użyciu DCNNs25. Martinel i in. wprowadzili podejście oparte na DCNN, które wykorzystuje specyfikę obrazów żywności26 i zgłosiło dokładność 90,27% w zestawie danych Food-10127. Zhou i in. są autorami przeglądu rozwiązań głębokiego uczenia w dziedzinie żywności28.
Niedawno, Zhao et al. zaproponowali sieć specjalnie do rozpoznawania obrazów żywności w aplikacjach mobilnych29. To podejście wykorzystuje mniejszą sieć "uczniów", która uczy się od większej sieci "nauczycieli". Dzięki niemu udało im się osiągnąć dokładność 84% w UEC-FOOD25630 i dokładność 91,2% w zestawie danych Food-10127. Hafiz i in. wykorzystali DCNN do opracowania rozwiązania do rozpoznawania obrazów tylko dla napojów i odnotowali bardzo wysoką dokładność 98,51%31. Shimoda i in. opisali nowatorską metodę wykrywania obszarów płytki na obrazach żywności bez użycia adnotacji pikselowej32. Ciocca i in. przedstawili nowy zestaw danych zawierający produkty spożywcze z 20 różnych klas żywności w 11 różnych stanach (pasta w postaci stałej, w plastrach, kremowa pasta itp.) i przedstawili swoje podejście do trenowania modeli rozpoznawania, które są w stanie rozpoznać stan żywności, oprócz klasy żywności33. Knez i in. ocenili rozwiązania do rozpoznawania obrazów żywności dla urządzeń mobilnych34. Wreszcie, Furtado i in. przeprowadzili badanie na temat tego, jak ludzki układ wzrokowy wypada w porównaniu z wydajnością DCNN i stwierdzili, że ludzkie rozpoznawanie nadal przewyższa DCNN z dokładnością 80% w porównaniu z 74,5%35. Autorzy zauważyli, że przy niewielkiej liczbie klas żywności DCNN działają dobrze, ale w zestawie danych z setkami klas dokładność rozpoznawania przez człowieka jest wyższa35, co podkreśla złożoność problemu.
Pomimo najnowszych wyników, głębokie uczenie ma główną wadę - wymaga dużego zestawu danych wejściowych do trenowania modelu. W przypadku rozpoznawania obrazów żywności wymagany jest duży zestaw danych obrazów żywności, który musi obejmować jak najwięcej różnych scenariuszy świata rzeczywistego. W praktyce oznacza to, że dla każdego pojedynczego produktu spożywczego lub napoju wymagana jest duża kolekcja obrazów, a w zestawie danych musi znajdować się jak najwięcej różnych elementów. Jeśli nie ma wystarczającej liczby obrazów dla określonego elementu w zestawie danych, jest mało prawdopodobne, że ten element zostanie pomyślnie rozpoznany. Z drugiej strony, jeśli zestaw danych obejmuje tylko niewielką liczbę elementów, rozwiązanie będzie miało ograniczony zakres i będzie w stanie rozpoznać tylko kilka różnych produktów spożywczych i napojów.
Wiele zestawów danych zostało udostępnionych w przeszłości. Zestaw danych Pittsburgh Fast-Food Image Dataset (PFID)3 został wprowadzony, aby zachęcić do dalszych badań w dziedzinie rozpoznawania obrazów żywności. Zestawy danych University of Electro-Communications Food 100 (UEC-FOOD100)22 i University of Electro-Communications Food 256 (UEC-FOOD256)30 zawierają dania japońskie, rozszerzone o niektóre dania międzynarodowe w przypadku zestawu danych UEC-FOOD256. Zestaw danych Food-101 zawiera popularne dania pozyskane z witryny website27. Zestawy danych Food-5036 i Video Retrieval Group Food 172 (VireoFood-172)37 są chińskimi kolekcjami obrazów żywności. Zestaw danych Uniwersytetu w Mediolanie-Bicocca 2016 (UNIMIB2016) składa się z obrazów tacek z jedzeniem z włoskiej stołówki38. Recipe1M to duży zbiór danych z przepisami kulinarnymi i obrazami żywności39. Zestaw danych Food-47540 zbiera cztery wcześniej opublikowane zestawy danych obrazów żywności27,30,36,37 w jeden. Beijing Technology and Business University Food 60 (BTBUFood-60) to zestaw danych obrazów przeznaczonych do wykrywania żywności41. Niedawno udostępniono zestaw danych ISIA Food-50042 różnych obrazów żywności. W porównaniu z innymi publicznie dostępnymi zestawami danych obrazów żywności, zawiera dużą liczbę obrazów, podzielonych na 500 klas żywności, i ma na celu przyspieszenie rozwoju multimedialnych rozwiązań do rozpoznawania żywności42.