Målet med det arbete som presenteras i denna artikel är att utveckla teknik för automatiserad igenkänning av mat och dryck från bilder tagna av mobila enheter. Tekniken består av två olika metoder – den första utför matbildsigenkänning medan den andra utför segmentering av matbilder.
På grund av de problem och kostnader som är förknippade med manuella kostbedömningsmetoder krävs automatiserade lösningar för att underlätta och påskynda arbetet och öka dess kvalitet. Idag kan automatiserade lösningar spela in en persons kostintag på ett mycket enklare sätt, till exempel genom att ta en bild med en smartphone-kamera. I den här artikeln kommer vi att fokusera på sådana bildbaserade metoder för kostbedömning. För problemet med erkännande av matbilder har djupa neurala nätverk uppnått den senaste tidens tillstånd, och vi presenterar vårt arbete inom detta område. I synnerhet beskriver vi först metoden för mat- och dryckesbildigenkänning med hjälp av en djup neural nätverksarkitektur, kallad NutriNet. Denna metod, som de flesta forskning som gjorts i början av djupinlärningsbaserad matbildsigenkänning, är begränsad till en utgång per bild och därför olämplig för bilder med flera mat- eller dryckesartiklar. Det är därför metoder som utför segmentering av matbilder är betydligt mer robusta, eftersom de kan identifiera valfritt antal mat- eller dryckesartiklar i bilden. Vi presenterar därför också två metoder för segmentering av livsmedelsbilder – den ena är baserad på helt invecklade nätverk (FCN) och den andra på djupa restnät (ResNet).
Kostbedömning är ett avgörande steg för att bestämma handlingsbara områden i en individs kost. Att utföra kostbedömning med traditionellt manuella metoder är dock förknippat med betydande kostnader. Dessa tillvägagångssätt är också benägna att fel eftersom de ofta förlitar sig på självrapportering av individen. Automatiserad kostbedömning tar itu med dessa problem genom att tillhandahålla ett enklare sätt att kvantifiera och kvalificera matintag. Ett sådant tillvägagångssätt kan också lindra några av de fel som finns i manuella tillvägagångssätt, såsom missade måltider, oförmåga att noggrant bedöma matvolym etc. Därför finns det tydliga fördelar med att automatisera kostbedömning genom att utveckla lösningar som identifierar olika livsmedel och drycker och kvantifierar matintag1. Dessa lösningar kan också användas för att möjliggöra en uppskattning av näringsvärdena för livsmedel och drycker (hädanefter “livsmedel”). Följaktligen är automatiserad kostbedömning användbar för flera applikationer – från strikt medicinsk användning, till exempel att tillåta dietister att lättare och mer exakt spåra och analysera sina patienters dieter, till användningen inuti välbefinnandeappar riktade mot den allmänna befolkningen.
Att automatiskt känna igen matvaror från bilder är ett utmanande datorseendeproblem. Detta beror på att livsmedel vanligtvis är deformerbara föremål, och på grund av det faktum att en stor del av matartikelns visuella information kan gå förlorad under beredningen. Dessutom kan olika livsmedel tyckas vara mycket lika varandra, och samma mat kan tyckas vara väsentligt annorlunda på flera bilder2. Dessutom beror igenkänningsnoggrannheten på många fler faktorer, till exempel bildkvalitet, om livsmedelsartikeln hindras av ett annat föremål, avstånd från vilket bilden togs etc. Att känna igen dryckesartiklar innebär sin egen uppsättning utmaningar, den viktigaste är den begränsade mängden visuell information som finns tillgänglig i en bild. Denna information kan vara dryckesfärgen, dryckesbehållarens färg och struktur, och under optimala bildförhållanden dryckestätheten2.
För att framgångsrikt känna igen matvaror från bilder är det nödvändigt att lära sig funktioner i varje mat- och dryckesklass. Detta gjordes traditionellt med hjälp av manuellt definierade funktionsutdragare3,4,5,6 som utförigenkänning baserat på specifika objektfunktioner som färg, textur, storlek etc., eller en kombination av dessa funktioner. Exempel på dessa funktionsutdragare är flera kernel learning4, parvis lokalafunktioner 5 och påsen med funktioner modell6. På grund av komplexiteten hos matbilder uppnådde dessa metoder mestadels en låg klassificeringsnoggrannhet – mellan 10% och 40%3,4,5. Anledningen till detta är att det manuella tillvägagångssättet inte är tillräckligt robust för att vara tillräckligt exakt. Eftersom en matvara kan variera avsevärt i utseende är det inte möjligt att omfatta alla dessa avvikelser manuellt. Högre klassificeringsnoggrannhet kan uppnås med manuellt definierade funktionsextraktorer när antingen antalet matklasserminskas 5, eller olika bildfunktioner kombineras6, vilket indikerar att det finns ett behov av mer komplexa lösningar på detta problem.
Det är därför djupinlärning visade sig vara så effektivt för problemet med erkännande av livsmedelsbilder. Djupinlärning, eller djupa neurala nätverk, inspirerades av biologiska hjärnor och gör det möjligt för beräkningsmodeller som består av flera bearbetningslager att automatiskt lära sig funktioner genom träning på en uppsättningindatabilder 7,8. På grund av detta har djupinlärning avsevärt förbättrat den senaste tekniken inom en mängd olika forskningsområden7, med datorseende, och därefter erkännande av matbilder, som en av dem2.
I synnerhet är djupa invecklade neurala nätverk (DCNN) mest populära för erkännande av matbilder – dessa nätverk är inspirerade av djurens visuella system, där enskilda neuroner försöker få en förståelse för den visuella ingången genom att reagera på överlappande regioner i synfältet9. Ett invecklat neuralt nätverk tar indatabilden och utför en serie åtgärder i vart och ett av nätverksskikten, varav de vanligaste är invecklade, fullt anslutna och poolande lager. Convolutional layers innehåller lärbara filter som svarar på vissa funktioner i indata, medan helt anslutna lager komponerar utdata från andra lager för att få kunskap på högre nivå från den. Målet med att slå samman lager är att nedprova indata2. Det finns två metoder för att använda djupinlärningsmodeller som visade sig vara populära: att ta en befintlig djup neural nätverksdefinition10,11, kallad en djupinlärningsarkitektur i den här artikeln, eller definiera en ny djupinlärningsarkitektur12,13, och träna någon av dessa på en matbildsdatauppsättning. Det finns styrkor och svagheter i båda metoderna – när man använder en befintlig djupinlärningsarkitektur kan en arkitektur som fungerade bra för andra problem väljas och finjusteras för det önskade problemet, vilket sparar tid och säkerställer att en validerad arkitektur har valts. Att definiera en ny djupinlärningsarkitektur är å andra sidan mer tidsintensivt, men gör det möjligt att utveckla arkitekturer som är specifikt gjorda för att ta hänsyn till detaljerna i ett problem och därmed teoretiskt prestera bättre för det problemet.
I den här artikeln presenterar vi båda metoderna. För problemet med igenkänning av matbilder utvecklade vi en ny DCNN-arkitektur som heter NutriNet2, som är en modifiering av den välkända AlexNet-arkitekturen14. Det finns två huvudsakliga skillnader jämfört med AlexNet: NutriNet accepterar 512×512-pixelbilder som indata (i motsats till 256×256-pixelbilder för AlexNet), och NutriNet har ytterligare ett faltningslager i början av det neurala nätverket. Dessa två ändringar infördes för att extrahera så mycket information från igenkänningsdatauppsättningsbilderna som möjligt. Att ha bilder med högre upplösning innebar att det finns mer information om bilder och att ha mer invecklade lager innebar att ytterligare kunskap kunde extraheras från bilderna. Jämfört med AlexNets cirka 60 miljoner parametrar innehåller NutriNet färre parametrar: cirka 33 miljoner. Detta beror på skillnaden i dimensionalitet vid det första helt anslutna skiktet som orsakas av det extra faltningsskiktet2. Bild 1 innehåller ett diagram över NutriNet-arkitekturen. Matbilderna som användes för att träna NutriNet-modellen samlades in från Internet – proceduren beskrivs i protokolltexten.
För problemet med segmentering av livsmedelsbilder använde vi två olika befintliga arkitekturer: helt invecklade nätverk (FCN)15 och djupa restnätverk (ResNet)16, som båda representerade den senaste tekniken för bildsegmentering när vi använde dem för att utveckla sina respektive lösningar för segmentering av livsmedelsbilder. Det finns flera FCN-varianter som introducerades av Long et al.: FCN-32s, FCN-16s och FCN-8s15. FCN-32s matar ut en pixelkarta baserat på förutsägelserna från FCN: s sista lager, medan FCN-16s-varianten kombinerar dessa förutsägelser med de med de med ett tidigare lager. FCN-8s överväger ännu ett lagers förutsägelser och kan därför göra förutsägelser vid det finaste kornet, varför det är lämpligt för igenkänning av matbilder. FCN-8:orna som vi använde var förtränade på PASCAL Visual Object Classes (PASCAL VOC) datauppsättning17 och tränades och testades på bilder av matrepliker (hädanefter “falsk mat”)18 på grund av deras visuella likhet med riktig mat och på grund av brist på kommenterade bilder av riktig mat på pixelnivå. Falsk mat används i olika beteendestudier och bilder tas för alla rätter från alla studiedeltagare. Eftersom matinnehållet i dessa bilder är känt gör det bild datauppsättningen användbar för djup inlärnings modell utbildning. Bearbetningssteg för datauppsättning beskrivs i protokolltexten.
Den ResNet-baserade lösningen utvecklades inom ramen för Food Recognition Challenge (FRC)19. Den använder Hybrid Task Cascade (HTC)20-metoden med en ResNet-10116-stamnät. Detta är en toppmodern metod för bildsegmenteringsproblemet som kan använda olika funktionsutdragare eller stamnät. Vi övervägde andra stamnät också, särskilt andra ResNet-varianter som ResNet-5016, men ResNet-101 var den mest lämpliga på grund av dess djup och förmåga att representera indatabilder på ett tillräckligt komplext sätt. Datauppsättningen som användes för att träna HTC ResNet-101-modellen var FRC-datauppsättningen med tillagda förstärkta bilder. Dessa förstärkningar presenteras i protokolltexten.
Denna artikel är avsedd som en resurs för maskininlärningsexperter som letar efter information om vilka djupinlärningsarkitekturer och dataförstoringssteg som fungerar bra för problemen med igenkänning och segmentering av livsmedelsbilder, samt för näringsforskare som vill använda vår metod för att automatisera erkännande av matbilder för användning i kostbedömning. I punkterna nedan presenteras djupinlärningslösningar och datamängder från området för igenkänning av livsmedelsbilder. I protokolltexten beskriver vi hur var och en av de tre metoderna användes för att träna djupa neurala nätverksmodeller som kan användas för automatiserad kostbedömning. Dessutom innehåller varje protokoll avsnitt en beskrivning av hur mat bild data uppsättningar som används för utbildning och testning förvärvades och bearbetades.
DCN uppnådde i allmänhet betydligt bättre resultat än andra metoder för erkännande och segmentering av livsmedelsbilder, varför den stora majoriteten av den senaste forskningen på området bygger på dessa nätverk. Kawano et al. använde DCNN för att komplettera manuellametoder 21 och uppnådde en klassificeringsnoggrannhet på 72,26% på UEC-FOOD100-datauppsättningen22. Använde dem uteslutande för att uppnå en högre noggrannhet på 84,90% på en självförvärvad datauppsättning23. Tanno et al. utvecklade DeepFoodCam – en smartphone-app för igenkänning av matbilder som använder DCNNs24. Liu et al. presenterade ett system som utför en Internet of Things-baserad kostbedömning med dcnn25. Martinel et al. introducerade en DCNN-baserad metod som utnyttjar detaljerna i matbilder26 och rapporterade en noggrannhet på 90,27% på Mat-101-datauppsättningen27. Zhou et al. författade en genomgång av djupinlärningslösningar inom livsmedelsområdet28.
Nyligen föreslog Zhao et al. ett nätverk specifikt för erkännande av livsmedelsbilder i mobila applikationer29. Den här metoden använder ett mindre “student”-nätverk som lär sig av ett större “lärarnätverk”. Med det lyckades de uppnå en noggrannhet på 84% på UEC-FOOD25630 och en noggrannhet på 91,2% på Mat-101-datauppsättningen27. Hafiz et al. använde DCNNs för att utveckla en dryck-endast bildigenkänning lösning och rapporterade en mycket hög noggrannhet på 98.51%31. Shimoda et al. beskrev en ny metod för att upptäcka tallriksregioner i matbilder utan användning av pixelvis anteckning32. Ciocca m.fl. introducerade en ny datauppsättning som innehåller livsmedel från 20 olika livsmedelsklasser i 11 olika tillstånd (fast, skivad, krämig pasta etc.) och presenterade sin metod för utbildningsigenkänningsmodeller som kan känna igen livsmedelstillståndet, förutom livsmedelsklass33. utvärderade lösningar för igenkänning av livsmedelsbilder för mobila enheter34. Slutligen genomförde Furtado et al. en studie om hur det mänskliga visuella systemet jämförs med prestandan hos DCNN och fann att mänskligt erkännande fortfarande överträffar DCNN med en noggrannhet på 80% jämfört med 74,5%35. Författarna noterade att med ett litet antal matklasser fungerar DCN: erna bra, men på en datauppsättning med hundratals klasser är mänsklig igenkänningsnoggrannhethögre 35, vilket belyser problemets komplexitet.
Trots sina senaste resultat har djupinlärning en stor nackdel – det kräver en stor indatauppsättning för att träna modellen på. När det gäller igenkänning av livsmedelsbilder krävs en stor mat avbildnings datauppsättning, och den här datauppsättningen måste omfatta så många olika verkliga scenarier som möjligt. I praktiken innebär detta att för varje enskild mat eller dryck krävs en stor samling bilder, och så många olika föremål som möjligt måste finnas i datauppsättningen. Om det inte finns tillräckligt med bilder för ett visst objekt i datauppsättningen är det osannolikt att det objektet kommer att kännas igen. Å andra sidan, om endast ett litet antal artiklar omfattas av datauppsättningen, kommer lösningen att begränsas i omfattning och endast kunna känna igen en handfull olika livsmedel och drycker.
Flera datamängder har gjorts tillgängliga tidigare. Pittsburgh Fast-Food Image Dataset (PFID)3 introducerades för att uppmuntra mer forskning inom området igenkänning av livsmedelsbilder. University of Electro-Communications Food 100 (UEC-FOOD100)22 och University of Electro-Communications Food 256 (UEC-FOOD256)30 datamängder innehåller japanska rätter, utökade med några internationella rätter när det gäller UEC-FOOD256-datauppsättningen. Mat-101-datauppsättningen innehåller populära rätter som förvärvats från en webbplats27. Mat-5036 och Video Retrieval Group Food 172 (VireoFood-172)37 datamängder är kinabaserade samlingar av matbilder. Datauppsättningen University of Milano-Bicocca 2016 (UNIMIB2016) består av bilder av matbrickor från en italiensk matsal38. Recipe1M är en storskalig datauppsättning av matlagningsrecept och matbilder39. Datamängden Food-47540 samlar in fyra tidigare publicerade matbildsdatamängder27,30,36,37 till en. Beijing Technology and Business University Food 60 (BTBUFood-60) är en datauppsättning bilder avsedda för livsmedelsdetektering41. Nyligen gjordes ISIA Food-500 dataset42 av diverse matbilder tillgängliga. I jämförelse med andra offentligt tillgängliga datamängder för livsmedelsbilder innehåller den ett stort antal bilder, indelade i 500 livsmedelsklasser, och är avsedd att främja utvecklingen av multimedialösningar för livsmedelsigenkänning42.
Under de senaste åren har djupa neurala nätverk validerats flera gånger som en lämplig lösning för att känna igen matbilder10,11,12,21,23,25,26,29,31,33. Vårt arbete som presenteras i den här artikeln tjänar till att ytterligare bevisadenna 1,2. Metoden med enkelmatsigenkänning av livsmedel är enkel och kan användas för enkla applikationer där bilder med endast en mat- eller dryckesartikel förväntas2.
Metoden för segmentering av livsmedelsbilder verkar särskilt lämplig för att känna igen matbilder i allmänhet, utan någon begränsning av antalet livsmedel1. Eftersom det fungerar genom att klassificera varje enskild pixel i bilden kan den inte bara känna igen ett antal matvaror i bilden, utan också ange var en matartikel finns, liksom hur stor den är. Den senare kan sedan användas för att utföra uppskattning av livsmedelsvikt, särskilt om den används med antingen ett referensobjekt eller en kamera med fast avstånd.
Det har gjorts en del arbete när det gäller tillgången på matbildsdatamängder3,22,27,30,36,37,38,39,40,41,42, och vi hoppas att mer kommer att göras i framtiden, särskilt när det gäller att aggregera matbildsdatauppsättningar från olika regioner över hela världen, vilket skulle göra det möjligt att utveckla mer robusta lösningar. För närvarande har noggrannheten hos automatiska lösningar för igenkänning av livsmedelsbilder ännu inte nått noggrannhet påmänsklig nivå 35, och detta beror sannolikt till stor del på användningen av matbildsdatauppsättningar av otillräcklig storlek och kvalitet.
I framtiden kommer vårt mål att vara att ytterligare utvärdera de utvecklade procedurerna för verkliga bilder. I allmänhet innehåller data uppsättningar i det här fältet ofta bilder tagna i kontrollerade miljöer eller avbildningar som optimerades manuellt för igenkänning. Det är därför det är viktigt att samla in en stor och mångsidig verklig matbildsdatauppsättning för att omfatta alla olika mat- och dryckesartiklar som individer kanske vill känna igen. Det första steget mot detta tillhandahölls av Food Recognition Challenge, som inkluderade en datauppsättning av verkliga matbilder19, men ytterligare arbete måste göras för att validera detta tillvägagångssätt på matbilder från hela världen och i samarbete med dietister.
The authors have nothing to disclose.
Författarna vill tacka Tamara Bucher från University of Newcastle, Australien, för att ha tillhandahållit datauppsättningen för falska livsmedel. Detta arbete stöddes av EU:s forsknings- och innovationsprogram Horisont 2020 (bidragsnummer 863059 – FNS-Cloud, 769661 – SAAM); och slovenska forskningsbyrån (bidragsnummer P2-0098). Europeiska unionen och Sloveniens forskningsbyrå hade ingen roll i utformningen, analysen eller skrivandet av denna artikel.
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 |