Målet med arbeidet som presenteres i denne artikkelen er å utvikle teknologi for automatisert anerkjennelse av mat og drikke elementer fra bilder tatt av mobile enheter. Teknologien består av to forskjellige tilnærminger – den første utfører matbildegjenkjenning mens den andre utfører matbildesegmentering.
På grunn av problemene og kostnadene forbundet med manuelle kostholdsvurderingstilnærminger, er automatiserte løsninger nødvendig for å lette og øke hastigheten på arbeidet og øke kvaliteten. I dag kan automatiserte løsninger registrere en persons diettinntak på en mye enklere måte, for eksempel ved å ta et bilde med et smarttelefonkamera. I denne artikkelen vil vi fokusere på slike bildebaserte tilnærminger til kostholdsvurdering. For problemet med matbildegjenkjenning har dype nevrale nettverk oppnådd toppmoderne de siste årene, og vi presenterer vårt arbeid på dette feltet. Spesielt beskriver vi først metoden for mat- og drikkebildegjenkjenning ved hjelp av en dyp nevrale nettverksarkitektur, kalt NutriNet. Denne metoden, som de fleste undersøkelser gjort i de tidlige dagene av dyp læringsbasert matbildegjenkjenning, er begrenset til en utgang per bilde, og derfor uegnet for bilder med flere mat- eller drikkeartikler. Det er derfor tilnærminger som utfører mat bilde segmentering er betydelig mer robust, som de er i stand til å identifisere en rekke mat eller drikke elementer i bildet. Vi presenterer derfor også to metoder for matbildesegmentering – den ene er basert på fullt konveksjonelle nettverk (FCNer), og den andre på dype gjenværende nettverk (ResNet).
Kostholdsvurdering er et avgjørende skritt for å bestemme handlingsbare områder av en persons diett. Men å utføre kostholdsvurdering ved hjelp av tradisjonelt manuelle tilnærminger er forbundet med betydelige kostnader. Disse tilnærmingene er også utsatt for feil, da de ofte er avhengige av selvrapportering av den enkelte. Automatisert kostholdsvurdering løser disse problemene ved å gi en enklere måte å kvantifisere og kvalifisere matinntaket på. En slik tilnærming kan også lindre noen av feilene som finnes i manuelle tilnærminger, for eksempel tapte måltider, manglende evne til å nøyaktig vurdere matvolum, etc. Derfor er det klare fordeler ved å automatisere kostholdsvurdering ved å utvikle løsninger som identifiserer ulike matvarer og drikkevarer og kvantifiserer matinntak1. Disse løsningene kan også brukes til å muliggjøre en estimering av næringsverdier av mat og drikke (heretter “matvarer”).). Følgelig er automatisert kostholdsvurdering nyttig for flere applikasjoner – fra strengt medisinsk bruk, for eksempel å tillate dietitians å lettere og nøyaktig spore og analysere pasientenes dietter, til bruk inne i velværeapper rettet mot den generelle befolkningen.
Automatisk gjenkjenne matvarer fra bilder er et utfordrende datasyn problem. Dette skyldes at matvarer vanligvis er deformerbare gjenstander, og på grunn av det faktum at en stor mengde av matvarens visuelle informasjon kan gå tapt under forberedelsen. I tillegg kan forskjellige matvarer synes å være svært lik hverandre, og den samme maten kan synes å være vesentlig forskjellig på flere bilder2. Videre avhenger gjenkjenningsnøyaktigheten av mange flere faktorer, for eksempel bildekvalitet, om matvaren er blokkert av et annet element, avstand som bildet ble tatt fra, etc. Gjenkjenne drikkevarer presenterer sitt eget sett med utfordringer, den viktigste er den begrensede mengden visuell informasjon som er tilgjengelig i et bilde. Denne informasjonen kan være drikkefarge, drikkebeholderfarge og struktur, og under optimale bildeforhold er drikketettheten2.
For å kunne gjenkjenne matvarer fra bilder, er det nødvendig å lære funksjoner i hver mat- og drikkeklasse. Dette ble tradisjonelt gjort ved hjelp av manuelt definertefunksjonsekstraktorer 3,4,5,6 somutfører anerkjennelse basert på bestemte elementfunksjoner som farge, tekstur, størrelse, etc., eller en kombinasjon av disse funksjonene. Eksempler på disse funksjonsekstraktorene inkluderer flerekjernelæring 4,parvis lokalefunksjoner 5 og bag-of-features modell6. På grunn av kompleksiteten i matbilder oppnådde disse tilnærmingene for det meste en lav klassifiseringsnøyaktighet – mellom 10% og 40%3,4,5. Årsaken til dette er at den manuelle tilnærmingen ikke er robust nok til å være tilstrekkelig nøyaktig. Fordi en matvare kan variere betydelig i utseende, er det ikke mulig å omfatte alle disse avvikene manuelt. Høyere klassifiseringsnøyaktighet kan oppnås med manuelt definerte funksjonsekstraktorer når enten antall matklasser reduseres5, eller forskjellige bildefunksjoner kombineres6, noe som indikerer at det er behov for mer komplekse løsninger på dette problemet.
Dette er grunnen til at dyp læring viste seg å være så effektiv for matbildegjenkjenningsproblemet. Dyp læring, eller dype nevrale nettverk, var inspirert av biologiske hjerner, og gjør det mulig for beregningsmodeller bestående av flere behandlingslag å automatisk lære funksjoner gjennom trening på et sett medinndatabilder 7,8. På grunn av dette har dyp læring vesentlig forbedret toppmoderne i en rekke forskningsfelt7, med datasyn, og deretter mat bildegjenkjenning, å være en av dem2.
Spesielt er dype convolutional nevrale nettverk (DCNNer) mest populære for matbildegjenkjenning – disse nettverkene er inspirert av det visuelle systemet av dyr, hvor individuelle nevroner prøver å få en forståelse av de visuelle inngangene ved å reagere på overlappende regioner i det visuellefeltet 9. Et convolutional nevrale nettverk tar inndatabildet og utfører en rekke operasjoner i hvert av nettverkslagene, hvorav de vanligste er convolutional, fullt tilkoblet og pooling lag. Konvolutional lag inneholder lærelige filtre som reagerer på visse funksjoner i inndata, mens fullt tilkoblede lag komponerer utdata fra andre lag for å få kunnskap på høyere nivå fra den. Målet med å slå sammen lag er å nedsempel på inndata2. Det er to tilnærminger til å bruke dyplæringsmodeller som viste seg populære: å ta en eksisterende dyp nevralenettverksdefinisjon 10,11, referert til som en dyp læringsarkitektur i denne artikkelen, eller definere en ny dyplæringsarkitektur12,13, og trene en av disse på et matbildedatasett. Det er styrker og svakheter ved begge tilnærmingene – når man bruker en eksisterende dyplæringsarkitektur, kan en arkitektur som gjorde det bra for andre problemer velges og finjusteres for ønsket problem, og dermed spare tid og sikre at en validert arkitektur er valgt. Å definere en ny dyplæringsarkitektur, derimot, er mer tidkrevende, men gjør det mulig å utvikling av arkitekturer som er spesielt laget for å ta hensyn til detaljene i et problem og dermed teoretisk yte bedre for dette problemet.
I denne artikkelen presenterer vi begge tilnærmingene. For mat bildegjenkjenning problemet, utviklet vi en ny DCNN arkitektur kalt NutriNet2, som er en modifikasjon av den velkjente AlexNet arkitektur14. Det er to hovedforskjeller sammenlignet med AlexNet: NutriNet godtar 512×512-pikselbilder som inngang (i motsetning til 256×256-pixel bilder for AlexNet), og NutriNet har et ekstra konvolutional lag i begynnelsen av det nevrale nettverket. Disse to endringene ble innført for å trekke ut så mye informasjon fra gjenkjenningsdatasettbildene som mulig. Å ha bilder med høyere oppløsning betydde at det er mer informasjon til stede på bilder og å ha mer konveksjonelle lag betydde at ytterligere kunnskap kunne hentes ut fra bildene. Sammenlignet med AlexNets rundt 60 millioner parametere inneholder NutriNet mindre parametere: ca. 33 millioner. Dette skyldes forskjellen i dimensjonalitet ved det første fullstendig tilkoblede laget forårsaket av det ekstra konvolutionale lag2. Figur 1 inneholder et diagram over NutriNet-arkitekturen. Matbildene som ble brukt til å trene NutriNet-modellen ble hentet fra Internett – prosedyren er beskrevet i protokollteksten.
For problemet med matbildesegmentering brukte vi to forskjellige eksisterende arkitekturer: fullt konveksjonelle nettverk (FCN)15 og dype restnettverk (ResNet)16, som begge representerte toppmoderne for bildesegmentering da vi brukte dem til å utvikle sine respektive løsninger for segmentering av matbilder. Det finnes flere FCN varianter som ble introdusert av Long et al.: FCN-32s, FCN-16s og FCN-8s15. FCN-32s sender ut et pikselkart basert på spådommene fra FCNs siste lag, mens FCN-16s-varianten kombinerer disse spådommene med de med et tidligere lag. FCN-8s vurderer enda et lags spådommer og er derfor i stand til å gjøre spådommer på det fineste kornet, og derfor er det egnet for matbildegjenkjenning. FCN-8s som vi brukte var forhåndstrent på PASCAL Visual Object Classes (PASCAL VOC) datasett17 og trent og testet på bilder av matkopier (heretter “falsk mat”)18 på grunn av deres visuelle likhet med ekte mat og på grunn av mangel på kommenterte bilder av ekte mat på et pikselnivå. Falsk mat brukes i ulike atferdsstudier og bilder er tatt for alle retter fra alle studiedeltakere. Fordi matinnholdet i disse bildene er kjent, gjør det bildedatasettet nyttig for dyp læringsmodelltrening. Behandlingstrinn for datasett er beskrevet i protokollteksten.
Den ResNet-baserte løsningen ble utviklet i omfanget av Food Recognition Challenge (FRC)19. Den bruker Hybrid Task Cascade (HTC)20-metoden med en ResNet-10116 ryggrad. Dette er en toppmoderne tilnærming for bildesegmenteringsproblemet som kan bruke forskjellige funksjonsekstraktorer eller ryggrad. Vi vurderte også andre ryggradsnettverk, spesielt andre ResNet-varianter som ResNet-5016,men ResNet-101 var den mest passende på grunn av dybden og evnen til å representere inndatabilder på en kompleks nok måte. Datasettet som ble brukt til opplæring av HTC ResNet-101-modellen var FRC-datasettet med ekstra utvidede bilder. Disse forsterkningene presenteres i protokollteksten.
Denne artikkelen er ment som en ressurs for maskinlæringseksperter på jakt etter informasjon om hvilke dyplæringsarkitekturer og dataforstørrelsestrinn som fungerer bra for problemene med matbildegjenkjenning og segmentering, samt for ernæringsforskere som ønsker å bruke vår tilnærming til å automatisere matbildegjenkjenning for bruk i kostholdsvurdering. I avsnittene nedenfor presenteres dype læringsløsninger og datasett fra feltet for matbildegjenkjenning. I protokollteksten beskriver vi hvordan hver av de tre tilnærmingene ble brukt til å trene dype nevrale nettverksmodeller som kan brukes til automatisert kostholdsvurdering. I tillegg inneholder hver protokolldel en beskrivelse av hvordan datasettene for matbilde som brukes til opplæring og testing, ble anskaffet og behandlet.
DCNN oppnådde generelt vesentlig bedre resultater enn andre metoder for matbildegjenkjenning og segmentering, og derfor er det store flertallet av nyere forskning på feltet basert på disse nettverkene. Kawano et al. brukte DCNNer til å utfylle manuelletilnærminger 21 og oppnådde en klassifiseringsnøyaktighet på 72,26% på UEC-FOOD100-datasettet22. Christodoulidis et al. brukte dem utelukkende for å oppnå en høyere nøyaktighet på 84,90% på et selververvet datasett23. Tanno et al. utviklet DeepFoodCam – en smarttelefon app for mat bildegjenkjenning som bruker DCNNs24. Liu et al. presenterte et system som utfører en Internett-basert diettvurdering ved hjelp av DCNNs25. Martinel et al. introduserte en DCNN-basert tilnærming som utnytter detaljene i matbilder26 og rapporterte en nøyaktighet på 90,27% på Food-101-datasettet27. Zhou et al. forfattet en gjennomgang av dyp læringsløsninger i matdomenet28.
Nylig foreslo Zhao et al. et nettverk spesielt for matbildegjenkjenning i mobilapplikasjoner29. Denne tilnærmingen bruker et mindre “student” nettverk som lærer av et større “lærer” nettverk. Med det klarte de å oppnå en nøyaktighet på 84% på UEC-FOOD25630 og en nøyaktighet på 91,2% på Food-101-datasettet27. Hafiz et al. brukte DCNNer til å utvikle en bildegjenkjenningsløsning kun for drikkevarer og rapporterte en svært høy nøyaktighet på 98,51 %31. Shimoda et al. beskrev en ny metode for å oppdage plateregioner i matbilder uten bruk av pikselmessig merknad32. Ciocca et al. introduserte et nytt datasett som inneholder matvarer fra 20 forskjellige matklasser i 11 forskjellige tilstander (solid, skiver, kremet pasta, etc.) og presenterte sin tilnærming til treningsgjenkjenningsmodeller som er i stand til å gjenkjenne mattilstanden, i tillegg til matklasse33. Knez et al. evaluerte løsninger for matbildegjenkjenning for mobile enheter34. Til slutt gjennomførte Furtado et al. en studie om hvordan det menneskelige visuelle systemet sammenlignet med ytelsen til DCNNer og fant at menneskelig anerkjennelse fortsatt overgår DCNNer med en nøyaktighet på 80% versus 74,5%35. Forfatterne bemerket at med et lite antall matklasser, dcnnner fungerer bra, men på et datasett med hundrevis av klasser, menneskelig anerkjennelse nøyaktighet erhøyere 35, fremhever kompleksiteten i problemet.
Til tross for sine toppmoderne resultater, har dyp læring en stor ulempe – det krever et stort inndatasett for å trene modellen på. Når det gjelder matbildegjenkjenning, er det nødvendig med et stort datasett for matbilde, og dette datasettet må omfatte så mange forskjellige virkelige scenarier som mulig. I praksis betyr dette at for hver enkelt mat eller drikke element, en stor samling av bilder er nødvendig, og så mange forskjellige elementer som mulig må være til stede i datasettet. Hvis det ikke er nok bilder for et bestemt element i datasettet, er det lite sannsynlig at elementet gjenkjennes. På den annen side, hvis bare et lite antall elementer er dekket av datasettet, vil løsningen være begrenset i omfang, og bare i stand til å gjenkjenne en håndfull forskjellige matvarer og drikkevarer.
Flere datasett ble gjort tilgjengelig tidligere. Pittsburgh Fast-Food Image Dataset (PFID)3 ble introdusert for å oppmuntre til mer forskning innen matbildegjenkjenning. University of Electro-Communications Food 100 (UEC-FOOD100)22 og University of Electro-Communications Food 256 (UEC-FOOD256)30 datasett inneholder japanske retter, utvidet med noen internasjonale retter i tilfelle av UEC-FOOD256 datasett. Food-101-datasettet inneholder populære retter kjøpt fra et nettsted27. Food-5036 og Video Retrieval Group Food 172 (VireoFood-172)37 datasett er kinesiskbaserte samlinger av matbilder. Universitetet i Milano-Bicocca 2016 (UNIMIB2016) datasett består av bilder av mat skuffer fra en italiensk kantine38. Recipe1M er et stort datasett av matlagingsoppskrifter og matbilder39. Food-475-datasettet40 samler fire tidligere publiserte matbildedatasett27,30,36,37 til en. Beijing Technology and Business University Food 60 (BTBUFood-60) er et datasett av bilder ment for matdeteksjon41. Nylig ble ISIA Food-500-datasettet42 av diverse matbilder gjort tilgjengelig. Sammenlignet med andre offentlig tilgjengelige matbildedatasett inneholder den et stort antall bilder, delt inn i 500 matklasser, og er ment å fremme utviklingen av multimedia matgjenkjenningsløsninger42.
I de senere årene har dype nevrale nettverk blitt validert flere ganger som en passende løsning for å gjenkjenne matbilder10,11,12,21,23,25,26,29,31,33. Vårt arbeid presentert i denne artikkelen tjener til å ytterligere bevisedette 1,2. Den enkle matbildegjenkjenningstilnærmingen er enkel og kan brukes til enkle bruksområder der bilder med bare én mat- eller drikkevare forventes2.
Matbildesegmenteringstilnærmingen virker spesielt egnet for å gjenkjenne matbilder generelt, uten noen begrensning på antall matvarer1. Fordi det fungerer ved å klassifisere hver enkelt piksel av bildet, er det i stand til ikke bare å gjenkjenne et hvilket som helst antall matvarer i bildet, men også angi hvor en matvare er plassert, samt hvor stor den er. Sistnevnte kan deretter brukes til å utføre matvektestimering, spesielt hvis det brukes med enten et referanseobjekt eller et fast avstandskamera.
Det har vært noe arbeid med hensyn til tilgjengeligheten av matbildedatasett3,22,27,30,36,37,38,39,40,41,42, og vi håper mer vil bli gjort i fremtiden, spesielt når det gjelder å samle matbildedatasett fra forskjellige regioner over hele verden, noe som vil muliggjøre mer robuste løsninger som skal utvikles. For tiden har nøyaktigheten av automatiske matbildegjenkjenningsløsninger ennå ikke nådd nøyaktighet på menneskelignivå 35,og dette skyldes sannsynligvis i stor grad bruk av matbildedatasett av utilstrekkelig størrelse og kvalitet.
I fremtiden vil vårt mål være å evaluere de utviklede prosedyrene på virkelige bilder ytterligere. Generelt inneholder datasett i dette feltet ofte bilder tatt i kontrollerte miljøer eller bilder som ble optimalisert manuelt for anerkjennelse. Derfor er det viktig å samle et stort og mangfoldig datasett for matbilde i den virkelige verden for å omfatte alle de forskjellige mat- og drikkeelementene som enkeltpersoner kanskje vil gjenkjenne. Det første skrittet mot dette ble levert av Food Recognition Challenge, som inkluderte et datasett av virkelige matbilder19, men videre arbeid må gjøres for å validere denne tilnærmingen på matbilder fra hele verden og i samarbeid med dietitians.
The authors have nothing to disclose.
Forfatterne vil gjerne takke Tamara Bucher fra University of Newcastle, Australia, for å ha gitt falske mat bildedatasett. Dette arbeidet ble støttet av EUs Horizon 2020 forskning og innovasjonsprogrammer (tilskudd tall 863059 – FNS-Cloud, 769661 – SAAM); og det slovenske forskningsbyrået (tilskuddsnummer P2-0098). Den europeiske union og slovenske forskningsbyrået hadde ingen rolle i utformingen, analysen eller skrivingen av denne artikkelen.
HARDWARE | |||
NVIDIA GPU | NVIDIA | N/A | An NVIDIA GPU is needed as some of the software frameworks below will not work otherwise. https://www.nvidia.com |
SOFTWARE | |||
Caffe | Berkeley AI Research | N/A | Caffe is a deep learning framework. https://caffe.berkeleyvision.org |
CLoDSA | Jónathan Heras | N/A | CLoDSA is a Python image augmentation library. https://github.com/joheras/CLoDSA |
Google API Client | N/A | Google API Client is a Python client library for Google's discovery based APIs. https://github.com/googleapis/google-api-python-client | |
JavaScript Segment Annotator | Kota Yamaguchi | N/A | JavaScript Segment Annotator is a JavaScript image annotation tool. https://github.com/kyamagu/js-segment-annotator |
MMDetection | Multimedia Laboratory, CUHK | N/A | MMDetection is an object detection toolbox based on PyTorch. https://github.com/open-mmlab/mmdetection |
NVIDIA DIGITS | NVIDIA | N/A | NVIDIA DIGITS is a wrapper for Caffe that provides a graphical web interface. https://developer.nvidia.com/digits |
OpenCV | Intel | N/A | OpenCV is a library for computer vision. https://opencv.org |
Python | Python Software Foundation | N/A | Python is a programming language. https://www.python.org |
PyTorch | Facebook AI Research | N/A | PyTorch is a machine learning framework. https://pytorch.org |
Ubuntu OS | Canonical | N/A | Ubuntu 14.04 is the OS used by the authors and offers compatibility with all of the software frameworks and tools above. https://ubuntu.com |