Waiting
Login processing...

Trial ends in Request Full Access Tell Your Colleague About Jove
Click here for the English version

Engineering

Görüntü Tabanlı Diyet Değerlendirmesi için Derin Sinir Ağları

Published: March 13, 2021 doi: 10.3791/61906

Summary

Bu makalede sunulan çalışmanın amacı, mobil cihazlar tarafından çekilen görüntülerden yiyecek ve içecek öğelerinin otomatik olarak tanınması için teknoloji geliştirmektir. Teknoloji iki farklı yaklaşımdan oluşur - birincisi gıda görüntüsü tanımayı gerçekleştirirken ikincisi gıda görüntüsü segmentasyonunu gerçekleştirir.

Abstract

Manuel diyet değerlendirme yaklaşımları ile ilgili sorunlar ve maliyetler nedeniyle, işi kolaylaştırmak ve hızlandırmak ve kalitesini artırmak için otomatik çözümler gereklidir. Bugün, otomatik çözümler, bir kişinin diyet alımını akıllı telefon kamerasıyla görüntü çekmek gibi çok daha basit bir şekilde kaydedebilir. Bu yazıda, diyet değerlendirmesine yönelik bu tür görüntü tabanlı yaklaşımlara odaklanacağız. Gıda görüntü tanıma sorunu için derin sinir ağları son yıllarda en son teknolojiye ulaştı ve bu alandaki çalışmalarımızı sunuyoruz. Özellikle, ilk olarak NutriNet adı verilen derin bir sinir ağı mimarisi kullanarak yiyecek ve içecek görüntü tanıma yöntemini açıklıyoruz. Bu yöntem, derin öğrenme tabanlı yiyecek görüntüsü tanımanın ilk günlerinde yapılan çoğu araştırma gibi, görüntü başına bir çıktı ile sınırlıdır ve bu nedenle birden fazla yiyecek veya içecek öğesine sahip görüntüler için uygun değildir. Bu nedenle, gıda görüntüsü segmentasyonunu gerçekleştiren yaklaşımlar, görüntüdeki herhangi bir sayıda yiyecek veya içecek öğesini tanımlayabildikleri için önemli ölçüde daha sağlamdır. Bu nedenle, gıda görüntüsü segmentasyonu için iki yöntem de sunuyoruz - biri tamamen konvolüsyonal ağlara (FCN'ler) ve diğeri derin artık ağlara (ResNet) dayanmaktadır.

Introduction

Diyet değerlendirmesi, bireyin diyetinin eyleme geçilebilir alanlarını belirlemede önemli bir adımdır. Bununla birlikte, geleneksel manuel yaklaşımlar kullanarak diyet değerlendirmesi yapmak önemli maliyetlerle ilişkilidir. Bu yaklaşımlar, genellikle birey tarafından kendi kendini raporlamaya dayandığı için hatalara da eğilimlidir. Otomatik diyet değerlendirmesi, gıda alımını ölçmek ve nitelemenin daha basit bir yolunu sağlayarak bu sorunları ele eder. Böyle bir yaklaşım, kaçırılan yemekler, gıda hacmini doğru bir şekilde değerlendirememe gibi manuel yaklaşımlarda bulunan bazı hataları da hafifletebilir. Bu nedenle, farklı yiyecek ve içecekleri tanımlayan ve gıda alımını ölçen çözümler geliştirerek diyet değerlendirmesini otomatikleştirmenin açık yararları vardır1. Bu çözümler, yiyecek ve içecek öğelerinin (bundan böyle 'gıda maddeleri') besin değerlerinin tahmin edilmesini sağlamak için de kullanılabilir. Sonuç olarak, otomatik diyet değerlendirmesi birden fazla uygulama için yararlıdır - diyetisyenlerin hastalarının diyetlerini daha kolay ve doğru bir şekilde izlemelerine ve analiz etmelerine izin vermek gibi kesinlikle tıbbi kullanımlardan, genel popülasyonu hedefleyen refah uygulamalarının içindeki kullanıma kadar.

Gıda maddelerini görüntülerden otomatik olarak tanımak zorlu bir bilgisayar görme sorunudur. Bunun nedeni, yiyeceklerin tipik olarak deforme olabilen nesneler olması ve gıda maddesinin görsel bilgilerinin büyük bir kısmının hazırlanması sırasında kaybedilebilmesidir. Ek olarak, farklı yiyecekler birbirine çok benzer görünebilir ve aynı yiyecek birden fazla görüntüde önemli ölçüde farklı görünebilir2. Ayrıca, tanıma doğruluğu görüntü kalitesi, gıda maddesinin başka bir öğe tarafından engellenip engellenmediği, görüntünün çekildiği mesafe vb. İçecek öğelerini tanımak, bir görüntüde bulunan sınırlı miktarda görsel bilgi olan kendi zorluk kümesini sunar. Bu bilgiler içecek rengi, içecek kabı rengi ve yapısı ve optimum görüntü koşullarında içecek yoğunluğu2olabilir.

Yiyecek öğelerini görüntülerden başarıyla tanımak için, her yiyecek ve içecek sınıfının özelliklerini öğrenmek gerekir. Bu geleneksel olarak,renk, doku,boyutvb. Bu özellik çıkarıcılara örnek olarak birden çok çekirdek öğrenimi4, çift yönlü yerel özellikler5 ve özellikler torbası model6 verilebilir. Gıda görüntülerinin karmaşıklığı nedeniyle, bu yaklaşımlar çoğunlukla düşük bir sınıflandırma doğruluğu elde etti -% 10 ila% 40arasında 3,4,5. Bunun nedeni, manuel yaklaşımın yeterince doğru olacak kadar sağlam olmamasıdır. Bir gıda maddesi görünüşte önemli ölçüde değişebileceğinden, tüm bu varyansları manuel olarak kapsamak mümkün değildir. Gıda sınıflarının sayısı 5 azaltıldığında veya farklı görüntü özellikleribirleştirildiğinde manuelolarak tanımlanmış özellik çıkarıcılarla daha yüksek sınıflandırma doğruluğu elde edilebilir6, böylece bu soruna daha karmaşık çözümlere ihtiyaç olduğunu gösterir.

Bu nedenle derin öğrenmenin gıda imaj tanıma sorunu için çok etkili olduğu kanıtlanmıştır. Derin öğrenme veya derin sinir ağları, biyolojik beyinlerden esinlendi ve birden fazla işlem katmanından oluşan hesaplama modellerinin, bir dizi giriş görüntüsü7,8üzerinde eğitim yoluyla özellikleri otomatik olarak öğrenmesine izin verir. Bu nedenle, derin öğrenme, çeşitli araştırma alanlarında sanatın durumunu önemli ölçüdegeliştirmiştir 7Bilgisayar görüşü ve daha sonra gıda görüntüsü tanıma ile bunlardan biriolmak 2.

Özellikle, derin konvolüsyonel sinir ağları (DCNN'ler) yiyecek görüntü tanıma için en popüler olanıdır - bu ağlar, bireysel nöronların görsel alanda çakışan bölgelere tepki vererek görsel girdiyi anlamaya çalıştıkları hayvanların görsel sisteminden esinlenir9. Bir convolutional sinir ağı giriş görüntüsünü alır ve ağ katmanlarının her birinde, en yaygın olanı konvolüsyonel, tam bağlı ve havuza alma katmanları olan bir dizi işlem gerçekleştirir. Evrişimsel katmanlar, giriş verilerindeki belirli özelliklere yanıt veren öğrenilebilir filtreler içerirken, tam bağlı katmanlar, ondan daha üst düzey bilgi edinmek için diğer katmanlardan çıktı verileri besteler. Katmanları havuzu oluşturmanın amacı, giriş verilerini aşağıörneklemektir 2. Popüler olduğu kanıtlanan derin öğrenme modellerini kullanmaya yönelik iki yaklaşım vardır: bu makalede derin öğrenme mimarisi olarak adlandırılan mevcut bir derin sinir ağı tanımı10,11' i almak veya yeni bir derin öğrenme mimarisi tanımlamak12,13ve bunlardan herhangi birini bir gıda görüntüsü veri kümesinde eğitmek. Her iki yaklaşımın da güçlü ve zayıf yönleri vardır - mevcut bir derin öğrenme mimarisini kullanırken, diğer sorunlar için iyi performans gösteren bir mimari seçilebilir ve istenen sorun için ince ayar yapılabilir, böylece zamandan tasarruf edilebilir ve doğrulanmış bir mimarinin seçilmesini sağlar. Öte yandan, yeni bir derin öğrenme mimarisi tanımlamak daha yoğundur, ancak özellikle bir sorunun özelliklerini dikkate almak ve böylece teorik olarak bu sorun için daha iyi performans gösteren mimarilerin geliştirilmesine izin verir.

Bu yazıda her iki yaklaşımı da sunuyoruz. Gıda görüntü tanıma sorunu için, yeni bir DCNN mimarisi geliştirdik NutriNet2, tanınmış AlexNet mimarisinin bir modifikasyonu14. AlexNet'e kıyasla iki ana fark vardır: NutriNet, 512x512 piksel görüntüleri giriş olarak kabul eder (AlexNet için 256x256 piksel görüntülerin aksine) ve NutriNet sinir ağının başında ek bir evlilik katmanına sahiptir. Bu iki değişiklik, tanıma veri kümesi görüntülerinden mümkün olduğunca fazla bilgi ayıklamak için tanıtıldı. Daha yüksek çözünürlüklü görüntülere sahip olmak, görüntülerde daha fazla bilgi olduğu ve daha fazla konvoksiyon katmanına sahip olduğu anlamına geliyordu, bu da görüntülerden ek bilgi çıkarabileceği anlamına geliyordu. AlexNet'in yaklaşık 60 milyon parametresine kıyasla NutriNet daha az parametre içerir: yaklaşık 33 milyon. Bunun nedeni, ek eşlem katmanı2'ninneden olduğu ilk tam bağlı katmandaki boyutsallık farkıdır. Şekil 1, NutriNet mimarisinin bir diyagramını içerir. NutriNet modelini eğitmek için kullanılan yemek görüntüleri internetten toplanmıştır - prosedür protokol metninde açıklanmıştır.

Gıda görüntüsü segmentasyon sorunu için iki farklı mevcut mimari kullandık: tamamen konvolüsyonal ağlar (FCN'ler)15 ve derin artık ağlar (ResNet)16, her ikisi de ilgili gıda görüntü segmentasyon çözümlerini geliştirmek için kullandığımızda görüntü segmentasyonu için en son teknolojiyi temsil ediyordu. Long ve ark.: FCN-32s, FCN-16s ve FCN-8s15tarafından tanıtılan birden fazla FCN varyantı vardır. FCN-32s, FCN'nin son katmanının tahminlerine göre bir piksel haritası oluştururken, FCN-16s varyantı bu tahminleri önceki bir katmandakilerle birleştirir. FCN-8s başka bir katmanın tahminlerini dikkate alıyor ve bu nedenle en iyi tahılda tahminlerde bulunabiliyor, bu yüzden gıda görüntüsü tanıma için uygun. Kullandığımız FCN-8'ler PASCAL Görsel Nesne Sınıfları (PASCAL VOC) veri kümesi17 üzerinde önceden eğitildi ve gerçek gıdaya görsel benzerlikleri ve piksel seviyesindeki gerçek gıdanın açıklamalı görüntülerinin olmaması nedeniyle gıda replikalarının (bundan böyle 'sahte gıda')18 görüntüleri üzerinde eğitildi ve test edildi. Farklı davranışsal çalışmalarda sahte yiyecekler kullanılmakta ve tüm çalışma katılımcılarından tüm yemekler için görüntüler alınmaktadır. Bu görüntülerin gıda içeriği bilindiğinden, görüntü veri kümesini derin öğrenme modeli eğitimi için kullanışlı hale getirir. Veri kümesi işleme adımları protokol metninde açıklanmıştır.

ResNet tabanlı çözüm, Gıda Tanıma Mücadelesi (FRC)19kapsamında geliştirilmiştir. ResNet-10116 omurgalı Karma Görev Basamaklı (HTC)20 yöntemini kullanır. Bu, farklı özellik çıkarıcıları veya omurgaları kullanabilen görüntü segmentasyon sorunu için son teknoloji ürünü bir yaklaşımdır. Diğer omurga ağlarını da, özellikle ResNet-5016gibi diğer ResNet varyantlarını da göz önünde bulundurduk, ancak ResNet-101, giriş görüntülerini yeterince karmaşık bir şekilde temsil etme derinliği ve yeteneği nedeniyle en uygun olanıydı. HTC ResNet-101 modelini eğitmek için kullanılan veri kümesi, artırılmış görüntüler eklenmiş FRC veri kümesiydi. Bu büyütmeler protokol metninde sunulur.

Bu makale, hangi derin öğrenme mimarilerinin ve veri büyütme adımlarının gıda görüntüsü tanıma ve segmentasyon sorunları için iyi performans gösterdiği hakkında bilgi arayan makine öğrenimi uzmanlarının yanı sıra, diyet değerlendirmesinde kullanılmak üzere gıda görüntüsü tanıma yaklaşımımızı kullanmak isteyen beslenme araştırmacıları için bir kaynak olarak tasarlanmıştır. Aşağıdaki paragraflarda, gıda görüntü tanıma alanından derin öğrenme çözümleri ve veri kümeleri sunulmuştur. Protokol metninde, üç yaklaşımın her birinin otomatik diyet değerlendirmesi için kullanılabilecek derin sinir ağı modellerini eğitmek için nasıl kullanıldığını detaylandırıyoruz. Ayrıca, her protokol bölümü, eğitim ve test için kullanılan gıda görüntüsü veri kümelerinin nasıl alındığını ve işlendiğinin açıklamasını içerir.

DCNN'ler genellikle gıda görüntüsü tanıma ve segmentasyon için diğer yöntemlerden önemli ölçüde daha iyi sonuçlar elde etti, bu yüzden alandaki son araştırmaların büyük çoğunluğu bu ağlara dayanıyor. Kawano ve arkadaşları manuel yaklaşımları tamamlamak için DCNN'leri kullandı21 ve UEC-FOOD100 veri kümesinde% 72.26 sınıflandırma doğruluğuelde etti 22. Christodoulidis ve ark. bunları sadece kendi edindiği bir veri kümesinde% 84.90 daha yüksek bir doğruluk elde etmek için kullandı23. Tanno ve arkadaşları DeepFoodCam geliştirdi - DCNNs24kullanan gıda görüntüsü tanıma için bir akıllı telefon uygulaması . Liu ve arkadaşları, DCNNs25kullanarak Nesnelerin İnterneti tabanlı bir diyet değerlendirmesi yapan bir sistem sundu. Martinel ve arkadaşları, gıda görüntüleri26'nın özelliklerinden yararlanan ve Food-101 verikümesi27'de% 90.27 doğruluk bildiren DCNN tabanlı bir yaklaşım sundu. Zhou ve arkadaşları, gıda alanında derin öğrenme çözümlerinin bir incelemesini yaptı28.

Son zamanlarda, Zhao ve arkadaşları özellikle mobil uygulamalarda gıda görüntüsü tanıma için bir ağ önerdi29. Bu yaklaşım, daha büyük bir 'öğretmen' ağından öğrenen daha küçük bir 'öğrenci' ağı kullanır. Bununla birlikte, UEC-FOOD25630'da% 84 doğruluk ve Food-101 veri kümesinde% 91.2 doğruluk elde etmeyi başardılar27. Hafız ve arkadaşları, yalnızca içecek görüntü tanıma çözümü geliştirmek için DCNN'leri kullandı ve% 98.5131gibi çok yüksek bir doğruluk bildirdi. Shimoda ve arkadaşları, piksel açısından ek açıklama kullanmadan gıda görüntülerindeki plaka bölgelerini tespit etmek için yeni bir yöntem tanımladı32. Ciocca ve arkadaşları, 11 farklı durumda (katı, dilimlenmiş, kremalı macun vb.) 20 farklı gıda sınıfından gıda maddelerini içeren yeni bir veri kümesi tanıttı ve gıda sınıfı33'eek olarak gıda durumunu tanıyabilen eğitim tanıma modelleri için yaklaşımlarını sundu. Knez ve ark. mobil cihazlar için gıda görüntü tanıma çözümlerini değerlendirdi34. Son olarak, Furtado ve arkadaşları, insan görsel sisteminin DCNN'lerin performansına kıyasla nasıl olduğu üzerine bir çalışma yaptı ve insan tanımanın hala % 80'e karşı% 74.535doğrulukla DCNN'lerden daha iyi performans gösterdi. Yazarlar, az sayıda gıda sınıfı ile DCNN'lerin iyi performans gösterdiğini, ancak yüzlerce sınıfa sahip bir veri kümesinde, insan tanıma doğruluğunun35'inüzerinde olduğunu belirterek sorunun karmaşıklığını vurguladı.

Son teknoloji sonuçlarına rağmen, derin öğrenmenin büyük bir dezavantajı vardır - modeli eğitmek için büyük bir giriş veri kümesi gerektirir. Gıda görüntüsü tanıma durumunda, büyük bir gıda görüntüsü veri kümesi gereklidir ve bu veri kümesinin mümkün olduğunca çok farklı gerçek dünya senaryosunu kapsaması gerekir. Pratikte bu, her bir yiyecek veya içecek öğesi için büyük bir görüntü koleksiyonu gerektiği ve veri kümesinde mümkün olduğunca çok sayıda farklı öğenin bulunması gerektiği anlamına gelir. Veri kümesinde belirli bir öğe için yeterli görüntü yoksa, bu öğenin başarıyla tanınması olası değildir. Öte yandan, veri kümesi tarafından sadece az sayıda öğe kapsanırsa, çözüm kapsam olarak sınırlanacak ve yalnızca bir avuç farklı yiyecek ve içeceği tanıyabilecektir.

Geçmişte birden çok veri kümesi kullanılabilir hale getirildi. Pittsburgh Fast-Food Image Dataset (PFID)3, gıda görüntü tanıma alanında daha fazla araştırmayı teşvik etmek için tanıtıldı. Elektro-İletişim Üniversitesi Gıda 100 (UEC-FOOD100)22 ve Elektro İletişim Üniversitesi Gıda 256 (UEC-FOOD256)30 veri kümesi, UEC-FOOD256 veri kümesi durumunda bazı uluslararası yemeklerle genişletilen Japon yemekleri içerir. Food-101 veri kümesi, bir web sitesinden edinilen popüler yemekleri içerir27. Food-5036 ve Video Alma Grubu Gıda 172 (VireoFood-172)37 veri kümesi, Çin merkezli gıda görüntüleri koleksiyonlarıdır. Milano-Bicocca Üniversitesi 2016 (UNIMIB2016) veri kümesi, bir İtalyan kantininden yemek tepsilerinin görüntülerinden oluşur38. Recipe1M, yemek tarifleri ve yemek görüntülerinin geniş ölçekli bir verikümesidir 39. Food-475 veri kümesi40, daha önce yayımlanan dört gıda görüntü veri kümesi27,30,36,37'yi bir arada toplar. Pekin Teknoloji ve İşletme Üniversitesi Gıda 60 (BTBUFood-60), gıda tespiti için bir görüntü veri kümesidir41. Son zamanlarda, ISIA Food-500 veri kümesi42 çeşitli gıda görüntüleri kullanıma sunuldu. Kamuya açık diğer gıda görüntü veri kümelerine kıyasla, 500 gıda sınıfına ayrılmış çok sayıda görüntü içerir ve multimedya gıda tanıma çözümlerinin geliştirilmesini ilerletmek içindir42.

Protocol

1. NutriNet ile gıda görüntü tanıma

  1. Gıda görüntüsü veri kümesini edinme
    1. Gıda görüntü tanıma modelinin çıktıları olacak farklı yiyecek ve içeceklerin bir listesini toplayın. Sağlam bir gıda görüntü tanıma modelinin eğitimine izin vereceğinden, popüler yiyecek ve içeceklerin çeşitli bir listesi tercih edilir.
    2. Yiyecek ve içecek listesini bir metin dosyasına kaydedin (ör. 'txt' veya 'csv').
      NOT: Bu makalenin yazarları tarafından kullanılan metin dosyası ek dosyalarda bulunabilir ('food_items.txt') ve 520 Sloven gıda maddesinin bir listesini içerir.
    3. Her gıda öğesinin görüntülerini listeden indirmek için Google Özel Arama API44'ü kullanan ve bunları her gıda öğesi için ayrı bir klasöre kaydeden bir Python43 komut dosyası yazın veya indirin.
      NOT: Bu makalenin yazarları tarafından kullanılan Python komut dosyası ek dosyalarda bulunabilir ('download_images.py'). Bu komut dosyası kullanılıyorsa, Geliştirici Anahtarı (değişken 'developerKey', Python komut dosyası kodunda satır 8) ve Özel Arama Motoru Kimliği (değişken 'cx', Python komut dosyası kodundaki satır 28) kullanılan Google hesabına özgü değerlerle değiştirilmelidir.
    4. Python komut dosyasını adım 1.1.3'ten çalıştırın (örneğin, 'python download_images.py' komutuyla).
  2. (İsteğe bağlı) Gıda görüntüsü veri kümesini temizleme
    1. Bir gıda görüntü algılama modelini bölüm 1.4'tekiyle aynı şekilde eğitin, ancak adım 1.1.1'deki çıktıların listesinin aksine yalnızca iki çıktı (gıda, gıda dışı) kullanın.
      NOT: Bu makalenin yazarları, yemek görüntüsü algılama modelini eğitmek için tarif web sitelerinden ve ImageNet veri kümesi45'ten birleştirilmiş görüntüler kullandılar. Burada odak noktası gıda görüntüsü tanıma olduğundan ve bu tanıma veri kümesini temizlemek için isteğe bağlı bir adım olduğundan, daha fazla ayrıntı atlanır. Bunun yerine, bu yaklaşım hakkında daha fazla ayrıntı Mezgec ve ark.2.
    2. 1.1.4 adımının sonucu olan gıda görüntüsü veri kümesinde 1.2.1 adımından algılama modelini çalıştırın.
    3. Algılama modeli tarafından gıda dışı olarak etiketlenen her görüntüyü adım 1.2.1'den silin.
    4. Diğer hatalı veya düşük kaliteli görüntüler ve görüntü yinelemeleri için gıda görüntüsü veri kümesini manuel olarak kontrol edin.
    5. 1.2.4 adımında bulunan görüntüleri silin.
  3. Gıda görüntüsü veri kümesini büyütme
    1. CLoDSA kitaplığı46'yı (birlikte verilen Python komut dosyasındaki 19 ile 21 arasındaki satırlar) kullanarak 90° döndürerek gıda görüntüsü veri kümesinden her görüntünün yeni bir sürümünü oluşturun.
      NOT: Bu makalenin yazarları tarafından kullanılan tüm CLoDSA komutlarını içeren Python komut dosyası, ek dosyalarda bulunan bir dosyada bulunabilir ('nutrinet_augmentation.py'). Bu komut dosyası kullanılırsa, Giriş Yolu ('INPUT_PATH' değişkeni, Python komut dosyası kodundaki satır 8) ve Çıktı Yolu'nun ('OUTPUT_PATH değişkeni', Python komut dosyasındaki satır 11) istenen klasörlerin yollarıyla değiştirilmesi gerekir.
    2. CLoDSA kitaplığını kullanarak (birlikte verilen Python komut dosyasındaki 19 ila 21 arasındaki satırlar) 180° döndürerek gıda görüntüsü veri kümesinden her görüntünün yeni bir sürümünü oluşturun.
    3. CLoDSA kitaplığını kullanarak (birlikte verilen Python komut dosyasındaki 19 ile 21 arasındaki satırlar) 270° döndürerek gıda görüntüsü veri kümesinden her görüntünün yeni bir sürümünü oluşturun.
    4. CLoDSA kitaplığını (birlikte verilen Python komut dosyasındaki satır 23 ve 24) kullanarak yatay olarak çevirerek gıda görüntüsü veri kümesinden her görüntünün yeni bir sürümünü oluşturun.
    5. CLoDSA kitaplığını kullanarak (birlikte verilen Python komut dosyasındaki satır 26 ve 27) rastgele renk gürültüsü ekleyerek gıda görüntüsü veri kümesinden her görüntünün yeni bir sürümünü oluşturun.
    6. CLoDSA kitaplığını kullanarak (birlikte verilen Python komut dosyasındaki satır 29 ve 30) %25 yakınlaştırarak gıda görüntüsü veri kümesinden her görüntünün yeni bir sürümünü oluşturun.
    7. Orijinal görüntülerle birlikte 1.3.1-1.3.6 adımlarındaki görüntüleri (birlikte verilen Python komut dosyasındaki satır 16 ve 17) yeni bir gıda görüntüsü veri kümesine (toplamda gıda görüntüsü başına 7 varyant) kaydedin. Bu, dahil edilen Python komut dosyasının 32.
  4. Gıda görüntüsü tanıma gerçekleştirme
    1. Gıda görüntüsü veri kümesini adım 1.3.7'den NVIDIA DIGITSortamına aktarın 47Veri kümesini NVIDIA DIGITS kullanıcı arabirimindeki eğitim, doğrulama ve test alt kümelerine böler.
    2. NutriNet architecture2'nin tanım metnini kopyalayıp özel bir ağ olarak NVIDIA DIGITS'e yapıştırın.
      NOT: NutriNet mimarisi tanım metni ek dosyalarda bulunabilir ('nutrinet.prototxt').
    3. (İsteğe bağlı) NVIDIA DIGITS kullanıcı arabiriminde eğitim hiperparametreleri tanımlayın.
      NOT: Hiper parametreler, eğitim sürecini başlamadan önce tanımlamak için kullanılan parametrelerdir. Bu makalenin yazarları tarafından kullanılan hiper parametreler ek dosyalarda ('nutrinet_hyperparameters.prototxt') bulunan bir dosyada bulunabilir. En uygun hiperparametreleri bulmak için her veri kümesi için deneme gerekirken, dosya NVIDIA DIGITS kullanıcı arayüzüne kopyalanabilen bir hiperparametre yapılandırması içerir. Ayrıca, NVIDIA DIGITS hiper parametrelerini taban çizgisi olarak kullanılabilecek varsayılan değerlerle doldurur. Bu nedenle bu adım isteğe bağlıdır.
    4. NutriNet modelinin eğitimini çalıştırın.
    5. Eğitim tamamlandıktan sonra, en iyi performans gösteren NutriNet model yinelemesini alın. Bu model daha sonra bu yaklaşımın performansını test etmek için kullanılır.
      NOT: En iyi performans gösteren model yinelemesini belirlemenin birden çok yolu vardır. Bunu yapmanın basit bir yolu aşağıdaki gibidir. NVIDIA DIGITS, her eğitim dönemi için doğruluk önlemlerinin bir grafiğini çıkarmaktadır. Hangi çağın gıda görüntüsü veri kümesinin doğrulama alt kümesi için en düşük kayıp değerini elde ettiğini kontrol edin - bu model yinelemesi en iyi performans olarak kabul edilebilir. En iyi performans gösteren model yinelemesini belirlemede isteğe bağlı bir adım, eğitim alt kümesinin kayıp değerinin çağdan çağa nasıl değiştiğini gözlemlemektir ve doğrulama alt kümesinin kayıp değeri aynı kalırken veya sürekli yükselirken sürekli düşmeye başlarsa, modelin eğitim görüntülerine aşırı uygun olmaya başladığını işaret edebileceğinden, eğitim kaybı değerindeki bu düşüşten önceki dönemi alın.

2. FCN'lerle gıda görüntüsü segmentasyonu

  1. Sahte gıda görüntü veri kümesini edinme
    1. Sahte gıda görüntülerinin bir veri kümesini edinin. Sahte gıda görüntüleri, gıda kopyaları kullanılarak davranışsal çalışmalar yürüten araştırmacılar tarafından toplanır.
      NOT: Bu makalenin yazarları laboratuvar ortamında toplanan sahte yiyeceklerin görüntülerini aldı18.
    2. Piksel düzeyindeki her gıda görüntüsüne manuel olarak açıklama ekleme - görüntüdeki her piksel, hangi gıda sınıfına ait olduğu hakkında bilgi içermelidir. Bu adımın sonucu, her pikselin gıda sınıflarından birini temsil ettiği gıda görüntüsü veri kümesinden her görüntü için bir ek açıklama görüntüsüdür.
      NOT: Bunu başarmak için birçok araç var - bu makalenin yazarları JavaScript Segment Açıklama Okuyucusu48.
  2. Sahte gıda görüntü veri kümesini büyütme
    1. Bölüm 1.3'tekiyle aynı adımları gerçekleştirin, ancak yalnızca gıda görüntüsü veri kümesinin eğitim alt kümesindeki görüntülerde gerçekleştirin.
      NOT: Adım 1.3.5 dışında, tüm veri büyütme adımlarının ilgili ek açıklama görüntülerinde de gerçekleştirilmesi gerekir. Bölüm 1.3'teki komut dosyası kullanılırsa, Giriş Yolu ('INPUT_PATH değişkeni', Python43 komut dosyası kodundaki satır 8) ve Çıkış Yolu'nun ('OUTPUT_PATH değişkeni', Python komut dosyası kodundaki satır 11) istenen klasörlerin yollarıyla değiştirilmesi gerekir. Ayrıca, Sorun'u ('PROBLEM' değişkeni, Python komut dosyasındaki satır 6) 'instance_segmentation' ve Ek Açıklama Modu (değişken 'ANNOTATION_MODE', Python komut dosyası kodundaki satır 7) ve Çıktı Modu'nu ('OUTPUT_MODE' değişkeni, Python komut dosyasındaki satır 10) 'coco' olarak ayarlayın.
  3. Sahte gıda görüntü segmentasyonu gerçekleştirme
    1. 1.4.2 adımı dışında, bölüm 1.4'tekiyle aynı adımları gerçekleştirin. Bu adımın yerine, 2.3.2 ve 2.3.3 adımlarını gerçekleştirin.
      NOT: Hiper parametreler, eğitim sürecini başlamadan önce tanımlamak için kullanılan parametrelerdir. Bu makalenin yazarları tarafından isteğe bağlı adım 1.4.3 için kullanılan eğitim hiper parametrelerini ek dosyalarda ('fcn-8s_hyperparameters.prototxt') bulunan bir dosyada bulabilirsiniz. Her veri kümesinin en uygun hiperparametre kümesini bulması için deneme yapılması gerekirken, dosya NVIDIA DIGITS47 kullanıcı arayüzüne kopyalanabilen bir hiperparametre yapılandırması içerir. Ayrıca, NVIDIA DIGITS hiper parametrelerini taban çizgisi olarak kullanılabilecek varsayılan değerlerle doldurur.
    2. FCN-8s mimarisi15'in tanım metnini kopyalayıp NVIDIA DIGITS ortamına özel bir ağ olarak yapıştırın.
      NOT: FCN-8s mimari tanım metni GitHub49'da herkese açıktır.
    3. Önceden eğitilmiş FCN-8s model ağırlıklarının yolunu NVIDIA DIGITS kullanıcı arayüzüne girin.
      NOT: Bu model ağırlıkları PASCAL VOC veri kümesi17 üzerinde önceden eğitilmiştir ve İnternet49'da bulunabilir.

3. HTC ResNet ile gıda görüntüsü segmentasyonu

  1. Gıda görüntüsü veri kümesini edinme
    1. Gıda resmi veri kümesini FRC web sitesinden indirin19.
  2. Gıda görüntüsü veri kümesini büyütme
    1. 1.3.1-1.3.4 adımlarını gerçekleştirin.
      NOT: Bu makalenin yazarları tarafından kullanılan tüm CLoDSA46 komutlarını içeren Python43 komut dosyası, ek dosyalarda bulunan bir dosyada bulunabilir ('frc_augmentation.py'). Bu komut dosyası kullanılırsa, Giriş Yolu ('INPUT_PATH' değişkeni, Python komut dosyası kodundaki satır 8) ve Çıktı Yolu'nun ('OUTPUT_PATH değişkeni', Python komut dosyasındaki satır 11) istenen klasörlerin yollarıyla değiştirilmesi gerekir.
    2. CLoDSA kitaplığını (birlikte verilen Python komut dosyasındaki satır 26 ve 27) kullanarak gauss bulanıklığı ekleyerek gıda görüntüsü veri kümesinden her görüntünün yeni bir sürümünü oluşturun.
    3. CLoDSA kitaplığını (birlikte verilen Python komut dosyasındaki satır 29 ve 30) kullanarak keskinleştirerek gıda görüntüsü veri kümesinden her görüntünün yeni bir sürümünü oluşturun.
    4. CLoDSA kitaplığını kullanarak gama düzeltmesi uygulayarak gıda görüntüsü veri kümesinden her görüntünün yeni bir sürümünü oluşturun (birlikte verilen Python komut dosyasındaki satır 32 ve 33).
    5. Orijinal görüntülerle birlikte 3.2.1-3.2.4 adımlarındaki görüntüleri (birlikte verilen Python komut dosyasındaki satır 16 ve 17) yeni bir gıda görüntüsü veri kümesine (toplamda gıda görüntüsü başına 8 varyant) kaydedin. Bu, komutu birlikte verilen Python komut dosyasının 35.
    6. Orijinal görüntülerle birlikte 3.2.2-3.2.4 adımlarındaki görüntüleri (birlikte verilen Python komut dosyasındaki satır 16 ve 17) yeni bir gıda görüntüsü veri kümesine (toplamda gıda görüntüsü başına 4 varyant) kaydedin. Bu, birlikte verilen Python komut dosyasının 19 ila 24 satırlarını silerek ve komutu 35.
  3. Gıda görüntüsü segmentasyonunu gerçekleştirme
    1. Varolan HTC20 ResNet-101 mimarisi16 tanımını MMDetection kitaplığı50'den mimari tanım dosyasının 'model ayarları' ve 'veri kümesi ayarları' bölümlerinde değiştirin, böylece 3.1.1, 3.2.5 ve 3.2.6 adımlarındaki gıda görüntü veri kümelerini kabul eder.
    2. (İsteğe bağlı) Eğitim hiperparametrelerini tanımlamak için HTC ResNet-101 mimari tanımını adım 3.3.1'den değiştirin: 'veri kümesi ayarları' bölümündeki toplu iş boyutu, 'optimize edici' bölümünde çözücü türü ve öğrenme hızı, 'öğrenme ilkesi' bölümünde öğrenme ilkesi ve mimari tanım dosyasının 'çalışma zamanı ayarları' bölümündeki eğitim dönemlerinin sayısı.
      NOT: Değiştirilen HTC ResNet-101 mimari tanım dosyası ek dosyalarda bulunabilir ('htc_resnet-101.py'). Hiper parametreler, eğitim sürecini başlamadan önce tanımlamak için kullanılan parametrelerdir. En uygun hiper parametre kümesini bulmak için her veri kümesi için deneme gerekirken, dosya zaten değiştirilmeden kullanılabilen bir hiper parametre yapılandırması içerir. Bu nedenle bu adım isteğe bağlıdır.
    3. HTC ResNet-101 modelinin eğitimini MMDetection kitaplığını kullanarak 3.1.1 adımından itibaren gıda görüntü veri kümesinde çalıştırın (örneğin, 'python mmdetection/tools/train.py htc_resnet-101.py' komutuyla).
    4. 3.3.3 adımındaki eğitim tamamlandıktan sonra, en iyi performans gösteren HTC ResNet-101 model yinelemesini alın ve 3.2.5 adımından itibaren gıda görüntüsü veri kümesinde eğitimin bir sonraki aşamasını çalıştırarak ince ayar yapın.
      NOT: En iyi performans gösteren model yinelemesini belirlemenin birden çok yolu vardır. Bunu yapmanın basit bir yolu aşağıdaki gibidir. MMDetection kitaplığı, komut satırı arabirimindeki her eğitim dönemi için doğruluk ölçülerinin değerlerini verir. Hangi çağın gıda görüntüsü veri kümesinin doğrulama alt kümesi için en düşük kayıp değerini elde ettiğini kontrol edin - bu model yinelemesi en iyi performans olarak kabul edilebilir. En iyi performans gösteren model yinelemesini belirlemede isteğe bağlı bir adım, eğitim alt kümesinin kayıp değerinin çağdan çağa nasıl değiştiğini gözlemlemektir ve doğrulama alt kümesinin kayıp değeri aynı kalırken veya sürekli yükselirken sürekli düşmeye başlarsa, modelin eğitim görüntülerine aşırı uygun olmaya başladığını işaret edebileceğinden, eğitim kaybı değerindeki bu düşüşten önceki dönemi alın.
    5. 3.3.4 adımındaki eğitim tamamlandıktan sonra, en iyi performans gösteren HTC ResNet-101 model yinelemesini alın ve 3.2.6 adımından itibaren gıda görüntüsü veri kümesinde eğitimin bir sonraki aşamasını çalıştırarak ince ayar yapın.
      NOT: Adım 3.3.4 için nota bakın.
    6. 3.3.5 adımındaki eğitim tamamlandıktan sonra, en iyi performans gösteren HTC ResNet-101 model yinelemesini alın ve 3.2.5 adımından itibaren gıda görüntüsü veri kümesinde eğitimin bir sonraki aşamasını tekrar çalıştırarak ince ayar yapın.
      NOT: Adım 3.3.4 için nota bakın.
    7. 3.3.6 adımındaki eğitim tamamlandıktan sonra, en iyi performans gösteren HTC ResNet-101 model yinelemesini alın. Bu model daha sonra bu yaklaşımın performansını test etmek için kullanılır.
      NOT: Adım 3.3.4 için nota bakın. Adım 3.3.3-3.3.7, bu makalenin yazarları tarafından tanımlanan amaçlar için en iyi sonuçları verdi. En uygun eğitim ve veri büyütme adımlarını bulmak için her veri kümesi için deneme gereklidir.

Representative Results

NutriNet, zamanın üç popüler derin öğrenme mimarisine karşı test edildi: AlexNet14, GoogLeNet51 ve ResNet16. En uygun değerleri tanımlamak için tüm mimariler için birden fazla eğitim parametresi de test edilmiştir2. Bunlar arasında, kayıp işlevinin nasıl en aza indirildiğini belirleyen çözücü tipi seçimi vardır. Bu işlev, sınıflandırma doğruluğundan ziyade eğitim sırasında optimizasyon için daha uygun olduğu için sinir ağlarını eğitmek için birincil kalite ölçüsüdür. Üç çözücü test ettik: Stochastic Gradyan Descent (SGD)52, Nesterov's Accelerated Gradient (NAG)53 ve Adaptive Gradyan algoritması (AdaGrad)54. İkinci parametre, aynı anda işlenen görüntü sayısını tanımlayan toplu iş boyutudur. Derin öğrenme mimarisinin derinliği, daha derin mimariler GPU belleğinde daha fazla alan gerektirdiğinden, bu parametrenin değerini belirledi - bu yaklaşımın sonucu, belleğin derinlik ne olursa olsun tüm mimariler için tamamen görüntülerle dolu olmasıydı. Üçüncü parametre, sinir ağı parametrelerinin eğitim sırasında değiştirilme hızını tanımlayan öğrenme hızıdır. Bu parametre, aynı anda işlenen görüntülerin sayısı yakınsama oranını belirlediğinden, toplu iş boyutuyla birlikte ayarlanmıştır. AlexNet modelleri 256 görüntülük bir toplu iş boyutu ve 0,02 temel öğrenme oranı kullanılarak eğitildi; NutriNet 128 görüntülük bir toplu iş boyutu ve 0,01 oranı kullandı; GoogLeNet 64 resim ve 0.005 oranı; ve ResNet 16 resim ve 0.00125 oranı. Tüm mimariler için üç parametre daha düzeltildi: öğrenme hızı ilkesi (aşağı adım), adım boyutu (%30) ve gama (0.1). Bu parametreler, öğrenme oranının her çağda nasıl değiştiğini birlikte açıklar. Bu yaklaşımın arkasındaki fikir, modelin optimal kayıp değerine ne kadar yaklaşırsa o kadar ince ayar yapmak için öğrenme oranının kademeli olarak düşürülmesidir. Son olarak, eğitim dönemlerinin sayısı da tüm derin öğrenme mimarileri için 150'ye sabitlendi2.

NutriNet'in elde ettiği tüm parametreler arasında en iyi sonuç, alexnet için en iyi sonuçtan yaklaşık% 2 daha yüksek ve GoogLeNet'in en iyi sonucundan biraz daha yüksek olan tanıma veri kümesinde% 86.72'lik bir sınıflandırma doğruluğuydu. Genel olarak en iyi performans gösteren mimari ResNet 'tir (%1 civarında), ancak ResNet için eğitim süresi NutriNet'e kıyasla önemli ölçüde daha yüksektir (yaklaşık beş kat daha fazladır), bu da modellerin doğruluğu ve tanınabilir gıda maddelerinin sayısını artırmak için sürekli olarak yeniden eğitilmesi durumunda önemlidir. NutriNet, AlexNet ve GoogLeNet en iyi sonuçlarını AdaGrad çözücüsünü kullanarak elde etti, ResNet'in en iyi modeli ise NAG çözücüyü kullandı. NutriNet ayrıca kamuya açık UNIMIB2016 gıda görüntü veri kümesi38üzerinde test edildi. Bu veri kümesi, 73 farklı gıda maddesinin 3.616 görüntülerini içerir. NutriNet, bu veri kümesinde % 86,39'luk bir tanıma doğruluğu elde etti ve veri kümesinin yazarlarının % 85,80 olan temel tanıma sonucunu biraz geride bıraktı. Ek olarak, NutriNet, 115 farklı yiyecek ve içecek öğesinin 200 gerçek dünyadaki görüntüsünden oluşan küçük bir veri kümesinde test edildi ve NutriNet% 55'lik bir doğruluk elde etti.

FCN-8s sahte gıda görüntü segmentasyon modelini eğitmek için, bu görev için en iyi performansı gösterdiğini bulduğumuz için çözücü tipi olarak Adam55'i kullandık. Temel öğrenme oranı çok düşük olarak 0.0001 olarak belirlendi. Sayının düşük olmasının nedeni, aynı anda yalnızca bir görüntünün işlenebiliyor olmasıdır, bu da piksel düzeyinde sınıflandırma işleminin bir sonucudur. Bu yaklaşım için GPU bellek gereksinimleri görüntü düzeyi sınıflandırmasından önemli ölçüde daha büyüktür. Bu nedenle, parametrelerin çok hızlı değiştirilmemesi ve daha az optimal değerlere yakınsaması için öğrenme oranının düşük olarak ayarlanmaları gerekiyordu. Eğitim dönemi sayısı 100 olarak ayarlanırken, öğrenme hızı politikası, adım boyutu ve gama, bu parametreler en doğru modelleri ürettiği için sırasıyla % 34 ve 0.1 olarak belirlendi.

FCN-8s modelinin doğruluk ölçümleri, geleneksel derin öğrenme ağlarının sınıflandırma doğruluğuna benzer olan piksel doğruluğu ölçüsü15kullanılarak gerçekleştirildi, temel fark, doğruluğun görüntü düzeyi yerine piksel düzeyinde hesaplanmış olmasıdır:

Equation 1

BURADA PA piksel doğruluk ölçüsüdür, nij, j sınıfına ait olduğunu tahmin ettiğim sınıftaki piksel sayısıdır ve ti = Φj nij, zemin gerçeği etiketlerinde sınıftan toplam pikselsayısıdır 1. Başka bir deyişle, piksel doğruluk ölçüsü, doğru tahmin edilen piksellerin toplam piksel sayısına bölünmesiyle hesaplanır. Eğitimli FCN-8s modelinin son isabet oranı %92,18 idi. Şekil 2, sahte gıda görüntü veri kümesinden (eğitim, doğrulama ve test alt kümelerinin her birinden bir tane) ve ilgili temel doğruluk ve model tahmin etiketlerinden üç örnek görüntü gösterir.

HTC20 ResNet-101 modelini gıda görüntüsü segmentasyonu için eğitmek için parametreler şu şekilde ayarlandı: kullanılan çözücü türü SGD idi çünkü diğer çözücü türlerini geride bıraktı. Temel öğrenme oranı 0,00125 ve toplu iş boyutu 2 görüntü olarak ayarlandı. Eğitim dönemlerinin sayısı eğitim aşaması başına 40 olarak belirlendi ve birden fazla eğitim aşaması gerçekleştirildi - önce artırılmış görüntüler olmadan orijinal FRC veri kümesinde, daha sonra 8x artırılmış ve 4x artırılmış FRC veri kümesinde, her seferinde en iyi performans gösteren modeli alarak ve bir sonraki eğitim aşamasında ince ayar yaparak. Eğitim aşamaları hakkında daha fazla ayrıntı protokol metninin bölüm 3.3'unda bulunabilir. Son olarak, öğrenme oranının azaldığı zaman için sabit dönemler (ilk eğitim aşaması için 28 ve 35 dönemleri) ile birlikte geri adım öğrenme politikası kullanılmıştır. Dikkat etmesi gereken önemli bir şey, bu eğitim aşamaları dizisi FRC kapsamındaki testlerimizde en iyi sonuçları verirken, başka bir veri kümesi kullanmanın en iyi sonuçları üretmek için farklı bir sıra gerektirebileceğidir.

Gıda görüntüsü segmentasyonu için bu ResNet tabanlı çözüm, aşağıdaki hassas önlem19kullanılarak değerlendirildi:

Equation 2

burada P hassastır, TP gıda görüntüsü segmentasyon modeli tarafından gerçek pozitif tahminlerin sayısıdır, FP yanlış pozitif tahminlerin sayısıdır ve IoU bu denklemle hesaplanan Birlik Üzerinde Kesişimdir:

Equation 3

burada Örtüşmemiş Alan, temel gerçekle örtüşen modelin tahmin sayısını temsil eder ve Area of Union, modelin toplam tahmin sayısını hem piksel düzeyinde hem de her bir gıda sınıfı için temel gerçekle birlikte temsil eder. Geri çağırma ikincil bir ölçü olarak kullanılır ve aşağıdaki formül19kullanılarak benzer şekilde hesaplanır:

Equation 4

burada R geri çağrılır ve FN gıda görüntü segmentasyon modeli tarafından yanlış negatif tahminlerin sayısıdır. Hassasiyet ve geri çağırma önlemleri daha sonra temel gerçeklerdeki tüm sınıflarda ortalamaya göre ölçülür. Bu önlemleri kullanarak, modelimiz ortalama% 59.2 hassasiyet ve ortalama% 82.1 geri çağırma elde etti, bu da Gıda Tanıma Challenge19'unikinci turunda ikinci sırada yer aldı. Bu sonuç ortalama hassas ölçüm açısından birinci sıranın %4,2, üçüncülüğün ise %5,3 önünde gerçekleşti. Tablo 1, yarışmaya katılan ilk 4 katılımcının sonuçlarını içerir.

Figure 1
Şekil 1: NutriNet derin sinir ağı mimarisinin şeması. Bu rakam Mezgec ve ark.2.'de yayınlanmıştır. Bu rakamın daha büyük bir sürümünü görüntülemek için lütfen buraya tıklayın.

Figure 2
Şekil 2: Sahte gıda görüntü veri kümesinden görüntüler. Orijinal görüntüler (solda), manuel olarak etiketlenmiş yer gerçeği etiketleri (ortada) ve FCN-8s modelinden tahminler (sağda). Bu rakam Mezgec ve ark.1. Bu rakamın daha büyük bir sürümünü görüntülemek için lütfen buraya tıklayın.

Takım Adı Yerleşim Ortalama Duyarlık Ortalama Geri Çekme
rssfete 1 63.4% 88.6%
simon_mezgec 2 59.2% 82.1%
arimboux 3 53.9% 73.5%
latentvec 4 48.7% 71.1%

Tablo 1: Gıda Tanıma Mücadelesi'nin ikinci turundan ilk 4 sonuçları. Birincil performans ölçüsü olarak ortalama hassasiyet ve ikincil ölçü olarak ortalama geri çağırma alınır. Sonuçlar resmi yarışma skor tablosundan alınmıştır19.

Ek Dosyalar. Bu Dosyayı indirmek için lütfen tıklayınız.

Discussion

Son yıllarda, derin sinir ağları gıda görüntülerini tanımak için uygun bir çözüm olarak birçok kez doğrulanmıştır10,11,12,21,23,25,26,29,31,33. Bu makalede sunulan çalışmamız, bu1,2. Tek çıkışlı gıda görüntü tanıma yaklaşımı basittir ve yalnızca bir yiyecek veya içecek öğesine sahip görüntülerin beklendiği basit uygulamalar için kullanılabilir2.

Gıda görüntüsü segmentasyon yaklaşımı, gıda maddelerinin sayısında herhangi bir kısıtlama olmaksızın, genel olarak gıda görüntülerini tanımak için özellikle uygun görünmektedir1. Görüntünün her bir pikselini sınıflandırarak çalıştığından, yalnızca görüntüdeki herhangi bir sayıda gıda öğesini tanımakla kalmaz, aynı zamanda bir gıda öğesinin nerede bulunduğunu ve ne kadar büyük olduğunu da belirtebilirsiniz. İkincisi daha sonra, özellikle bir referans nesnesi veya sabit mesafeli bir kamera ile kullanılıyorsa, gıda ağırlığı tahminini gerçekleştirmek için kullanılabilir.

3 , 22,27,30 , 36,37,38,39,40,41,42yiyecek görüntü kümelerinin kullanılabilirliği ile ilgili bazı çalışmalar yapılmıştır ve özellikle dünyanın farklı bölgelerinden gıda görüntü veri kümelerinin toplanması söz konusu olduğunda, gelecekte daha sağlam çözümler geliştirilmesini sağlayacak daha fazlasının yapılmasını umuyoruz. Şu anda, otomatik gıda görüntü tanıma çözümlerinin doğruluğu henüz insan düzeyinde doğruluğa ulaşmamıştır35ve bu büyük ölçüde yetersiz boyut ve kalitede gıda görüntü veri kümelerinin kullanımı nedeniyle muhtemeldir.

Gelecekte, amacımız gerçek dünyadaki görüntüler üzerinde geliştirilen prosedürleri daha fazla değerlendirmek olacaktır. Genel olarak, bu alandaki veri kümeleri genellikle kontrollü ortamlarda çekilen görüntüleri veya tanıma için el ile en iyi duruma getirilmiş görüntüleri içerir. Bu nedenle, bireylerin tanımak isteyebileceği tüm farklı yiyecek ve içecek öğelerini kapsayacak şekilde geniş ve çeşitli bir gerçek dünya gıda görüntü veri kümesi toplamak önemlidir. Bu yöndeki ilk adım, gerçek dünyadaki gıda görüntülerinin bir veri kümesini içeren Food Recognition Challenge tarafından sağlandı19, ancak dünyanın dört bir yanından gelen gıda görüntüleri ve diyetisyenlerle işbirliği içinde bu yaklaşımı doğrulamak için daha fazla çalışma yapılması gerekiyor.

Disclosures

Yazarların açıklayacak bir şeyi yok.

Acknowledgments

Yazarlar, Sahte gıda görüntü veri kümesini sağladığı için Avustralya Newcastle Üniversitesi'nden Tamara Bucher'e teşekkür etmek istiyor. Bu çalışma Avrupa Birliği'nin Horizon 2020 araştırma ve inovasyon programları (hibe numaraları 863059 - FNS-Cloud, 769661 - SAAM) tarafından desteklendi; ve Sloven Araştırma Ajansı (hibe numarası P2-0098). Avrupa Birliği ve Sloven Araştırma Ajansı'nın bu makalenin tasarımında, analizinde veya yazılmasında hiçbir rolü yoktur.

Materials

Name Company Catalog Number Comments
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 Google 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

DOWNLOAD MATERIALS LIST

References

  1. Mezgec, S., Eftimov, T., Bucher, T., Koroušić Seljak, B. Mixed Deep Learning and Natural Language Processing Method for Fake-Food Image Recognition and Standardization to Help Automated Dietary Assessment. Public Health Nutrition. 22 (7), 1193-1202 (2019).
  2. Mezgec, S., Koroušić Seljak, B. NutriNet: A Deep Learning Food and Drink Image Recognition System for Dietary Assessment. Nutrients. 9 (7), 657 (2017).
  3. Chen, M., et al. PFID: Pittsburgh Fast-Food Image Dataset. Proceedings of the ICIP 2009. , 289-292 (2009).
  4. Joutou, T., Yanai, K. A Food Image Recognition System with Multiple Kernel Learning. Proceedings of the ICIP 2009. , 285-288 (2009).
  5. Yang, S., Chen, M., Pomerlau, D., Sukthankar, R. Food Recognition using Statistics of Pairwise Local Features. Proceedings of the CVPR 2010. , 2249-2256 (2010).
  6. Anthimopoulos, M. M., Gianola, L., Scarnato, L., Diem, P., Mougiakakou, S. G. A Food Recognition System for Diabetic Patients Based on an Optimized Bag-of-Features Model. IEEE Journal of Biomedical and Health Informatics. 18 (4), 1261-1271 (2014).
  7. LeCun, Y., Bengio, Y., Hinton, G. Deep Learning. Nature. 521, 436-444 (2015).
  8. Deng, L., Yu, D. Deep Learning: Methods and Applications. Foundations and Trends in Signal Processing. 7 (3-4), 197 (2014).
  9. Hubel, D. H., Wiesel, T. N. Receptive Fields, Binocular Interaction and Functional Architecture in the Cat's Visual Cortex. The Journal of Physiology. 160 (1), 106-154 (1962).
  10. Singla, A., Yuan, L., Ebrahimi, T. Food/Non-Food Image Classification and Food Categorization using Pre-Trained GoogLeNet Model. Proceedings of the MADiMa'16. , 3-11 (2016).
  11. Yanai, K., Kawano, Y. Food Image Recognition using Deep Convolutional Network with Pre-Training and Fine-Tuning. Proceedings of the ICMEW 2015. , 1-6 (2015).
  12. Liu, C., et al. DeepFood: Deep Learning-Based Food Image Recognition for Computer-Aided Dietary Assessment. Proceedings of the ICOST 2016. , 37-48 (2016).
  13. De Sousa Ribeiro, F., et al. An End-to-End Deep Neural Architecture for Optical Character Verification and Recognition in Retail Food Packaging. Proceedings of the ICIP 2018. , 2376-2380 (2018).
  14. Krizhevsky, A., Sutskever, I., Hinton, G. ImageNet Classification with Deep Convolutional Neural Networks. Proceedings of the NIPS'12. , 1097-1105 (2012).
  15. Long, J., Shelhamer, E., Darrell, T. Fully Convolutional Networks for Semantic Segmentation. Proceedings of the CVPR 2015. , 3431-3440 (2015).
  16. He, K., Zhang, X., Ren, S., Sun, J. Deep Residual Learning for Image Recognition. Proceedings of the CVPR 2016. , 770-778 (2016).
  17. PASCAL VOC Project. PASCAL Visual Object Classes. , Available from: http://host.robots.ox.ac.uk/pascal/VOC (2020).
  18. Bucher, T., vander Horst, K., Siegrist, M. Fruit for Dessert. How People Compose Healthier Meals. Appetite. 60 (1), 74-80 (2013).
  19. Food Recognition Challenge. AICrowd. , Available from: https://www.aicrowd.com/challenges/food-recognition-challenge (2020).
  20. Chen, K., et al. Hybrid Task Cascade for Instance Segmentation. Proceedings of the CVPR 2019. , 4974-4983 (2019).
  21. Kawano, Y., Yanai, K. Food Image Recognition with Deep Convolutional Features. Proceedings of the UbiComp 2014. , 589-593 (2014).
  22. Matsuda, Y., Hoashi, H., Yanai, K. Recognition of Multiple-Food Images by Detecting Candidate Regions. Proceedings of the ICME 2012. , 25-30 (2012).
  23. Christodoulidis, S., Anthimopoulos, M. M., Mougiakakou, S. G. Food Recognition for Dietary Assessment using Deep Convolutional Neural Networks. Proceedings of the ICIAP 2015. , 458-465 (2015).
  24. Tanno, R., Okamoto, K., Yanai, K. DeepFoodCam: A DCNN-Based Real-Time Mobile Food Recognition System. Proceedings of the MADiMa'16. , 89-89 (2016).
  25. Liu, C., et al. A New Deep Learning-Based Food Recognition System for Dietary Assessment on An Edge Computing Service Infrastructure. IEEE Transactions on Services Computing. 11 (2), 249-261 (2017).
  26. Martinel, N., Foresti, G. L., Micheloni, C. Wide-Slice Residual Networks for Food Recognition. Proceedings of the IEEE WACV 2018. , 567-576 (2018).
  27. Bossard, L., Guillaumin, M., Van Gool, L. Food-101-Mining Discriminative Components with Random Forests. Proceedings of the ECCV'14. , 446-461 (2014).
  28. Zhou, L., Zhang, C., Liu, F., Qiu, Z., He, Y. Application of Deep Learning in Food: A Review. Comprehensive Reviews in Food Science and Food Safety. 18, 1793-1811 (2019).
  29. Zhao, H., Yap, K. -H., Kot, A. C., Duan, L. JDNet: A Joint-Learning Distilled Network for Mobile Visual Food Recognition. IEEE Journal of Selected Topics in Signal Processing. 14 (4), 665-675 (2020).
  30. Kawano, Y., Yanai, K. Automatic Expansion of a Food Image Dataset Leveraging Existing Categories with Domain Adaptation. Proceedings of the ECCV'14. , 3-17 (2014).
  31. Hafiz, R., Haque, M. R., Rakshit, A., Uddin, M. S. Image-Based Soft Drink Type Classification and Dietary Assessment System using Deep Convolutional Neural Network with Transfer Learning. Journal of King Saud University - Computer and Information Sciences. , (2020).
  32. Shimoda, W., Yanai, K. Weakly-Supervised Plate and Food Region Segmentation. Proceedings of the ICME 2020. , 1-6 (2020).
  33. Ciocca, G., Micali, G., Napoletano, P. State Recognition of Food Images using Deep Features. IEEE Access. 8, 32003-32017 (2020).
  34. Knez, S., Šajn, L. Food Object Recognition using a Mobile Device: Evaluation of Currently Implemented Systems. Trends in Food Science & Technology. 99, 460-471 (2020).
  35. Furtado, P., Caldeira, M., Martins, P. Human Visual System vs Convolution Neural Networks in Food Recognition Task: An Empirical Comparison. Computer Vision and Image Understanding. 191, 102878 (2020).
  36. Chen, M. -Y., et al. Automatic Chinese Food Identification and Quantity Estimation. SA'12 Technical Briefs. , 1-4 (2012).
  37. Chen, J., Ngo, C. -W. Deep-Based Ingredient Recognition for Cooking Recipe Retrieval. Proceedings of the MM'16. , 32-41 (2016).
  38. Ciocca, G., Napoletano, P., Schettini, R. Food Recognition: A New Dataset, Experiments, and Results. IEEE Journal of Biomedical and Health Informatics. 21 (3), 588-598 (2017).
  39. Salvador, A., et al. Learning Cross-Modal Embeddings for Cooking Recipes and Food Images. Proceedings of the IEEE CVPR 2017. , 3020-3028 (2017).
  40. Ciocca, G., Napoletano, P., Schettini, R. CNN-Based Features for Retrieval and Classification of Food Images. Computer Vision and Image Understanding. 176-177, 70-77 (2018).
  41. Cai, Q., Li, J., Li, H., Weng, Y. BTBUFood-60: Dataset for Object Detection in Food Field. Proceedings of the IEEE BigComp 2019. , 1-4 (2019).
  42. Min, W., et al. ISIA Food-500: A Dataset for Large-Scale Food Recognition via Stacked Global-Local Attention Network. Proceedings of the MM'20. , 393-401 (2020).
  43. Python Software Foundation. Python. , Available from: https://www.python.org (2020).
  44. Google Custom Search API. Google. , Available from: https://developers.google.com/resources/api-libraries/documentation/customsearch/v1/python/latest/customsearch_v1.cse.html (2020).
  45. Stanford Vision Lab. ImageNet. , Available from: http://www.image-net.org (2020).
  46. Heras, J. CLoDSA. , Available from: https://github.com/joheras/CLoDSA (2020).
  47. NVIDIA DIGITS. NVIDIA. , Available from: https://developer.nvidia.com/digits (2020).
  48. Yamaguchi, K. JavaScript Segment Annotator. , Available from: https://github.com/kyamagu/js-segment-annotator (2020).
  49. Shelhamer, E. Fully Convolutional Networks for Semantic Segmentation. , Available from: https://github.com/shelhamer/fcn.berkeleyvision.org (2020).
  50. Multimedia Laboratory, CUHK. MMDetection. , Available from: https://github.com/open-mmlab/mmdetection (2020).
  51. Szegedy, C., et al. Going Deeper with Convolutions. Proceedings of the CVPR 2015. , 1-9 (2015).
  52. Bottou, L. Large-Scale Machine Learning with Stochastic Gradient Descent. Proceedings of the COMPSTAT'2010. , 177-186 (2010).
  53. Nesterov, Y. A Method of Solving a Convex Programming Problem with Convergence Rate O(1/k2). Doklady Akademii Nauk SSSR. 27, 372-376 (1983).
  54. Duchi, J., Hazan, E., Singer, Y. Adaptive Subgradient Methods for Online Learning and Stochastic Optimization. Journal of Machine Learning Research. 12, 2121-2159 (2011).
  55. Kingma, D. P., Ba, J. Adam: A Method for Stochastic Optimization. arXiv Preprint. , (2017).

Tags

Mühendislik Sayı 169 gıda görüntüsü tanıma gıda görüntüsü segmentasyonu derin sinir ağları derin öğrenme konvolüsyonel sinir ağları diyet değerlendirmesi
Görüntü Tabanlı Diyet Değerlendirmesi için Derin Sinir Ağları
Play Video
PDF DOI DOWNLOAD MATERIALS LIST

Cite this Article

Mezgec, S., KoroušićMore

Mezgec, S., Koroušić Seljak, B. Deep Neural Networks for Image-Based Dietary Assessment. J. Vis. Exp. (169), e61906, doi:10.3791/61906 (2021).

Less
Copy Citation Download Citation Reprints and Permissions
View Video

Get cutting-edge science videos from JoVE sent straight to your inbox every month.

Waiting X
Simple Hit Counter