Nutrola'nın Gıda Tanıma Teknolojisinin Arkasındaki Araştırmalar
Nutrola, bir fotoğraftan gıdayı 3 saniyeden kısa sürede nasıl tanıyor? AI’mızı destekleyen bilgisayarla görme, derin öğrenme ve beslenme bilimi araştırmalarına derin bir bakış.
Akşam yemeğinizin fotoğrafını çektiğinizde ve Nutrola'nın 3 saniyeden kısa bir sürede tam bir besin analizini sunduğunu gördüğünüzde, arka planda yılların bilgisayarla görme araştırması, beslenme bilimi ve AI mühendisliği çalışıyor demektir. Görünüşte tek bir tanıma anı, aslında her biri farklı bir bilimsel sorunu çözen özel modellerin bir zinciridir. Kameranızın deklanşörü açıldığında, görüntünüz, Stanford, MIT, Google DeepMind ve ETH Zürih Bilgisayarla Görme Laboratuvarı gibi kurumların temel araştırmalarına dayanan bir boru hattından geçer.
Bu makale, Nutrola'nın gıda tanıma sürecini adım adım izleyerek, bu teknolojiyi mümkün kılan gerçek araştırmaları ve teknik kavramları ele alıyor.
Bilgisayarla Görme Boru Hattı
Nutrola'nın gıda tanıma sistemi tek bir modelden oluşmuyor. Her aşamanın belirli bir görevi üstlendiği çok aşamalı bir boru hattıdır ve bir aşamanın çıktısı bir sonraki aşamaya aktarılır.
Aşama 1 - Görüntü Ön İşleme. Hiçbir sinir ağı fotoğrafınızı görmeden önce, ham görüntü normalleştirilir. Bu, standart bir giriş çözünürlüğüne yeniden boyutlandırmayı, beyaz dengesi ve pozlama varyasyonlarını ayarlamayı ve eğitim sırasında veri artırma dönüşümleri uygulamayı içerir. Krizhevsky, Sutskever ve Hinton'un 2012'deki dönüm noktası niteliğindeki ImageNet makalesinde, ön işleme ve artırmanın derin evrişimli sinir ağlarında (CNN'ler) genelleştirmeyi önemli ölçüde artırdığı gösterilmiştir. Modern boru hatları, gıda fotoğrafçılığında yaygın olan örtüşme ve renk kaymalarına karşı modeli dayanıklı hale getiren CutMix (Yun ve diğ., 2019) ve RandAugment (Cubuk ve diğ., 2020) gibi tekniklerle bunu genişletmektedir.
Aşama 2 - Gıda Tespiti ve Segmentasyonu. Ön işleme tamamlandıktan sonra, görüntü, tabaktaki her bir gıda maddesini tanımlayan ve yerelleştiren bir nesne tespit modelinden geçer. Bu aşama, bölge bazlı evrişimli sinir ağları üzerindeki araştırmalara dayanır. Faster R-CNN (Ren ve diğ., 2015), bölge öneri ağlarının paradigmasını oluştururken, Facebook AI Research'ten gelen daha yeni mimariler, DETR (Carion ve diğ., 2020) gibi, tamamen elle tasarlanmış bileşenleri ortadan kaldırmak için transformer tabanlı dikkat mekanizmasını kullanır. Piksel düzeyinde hassasiyet için, DeepLab (Chen ve diğ., 2017) gibi mimarilere dayanan anlamsal segmentasyon modelleri, görüntüdeki her pikseli bir gıda kategorisine atar; bu, bileşenlerin örtüştüğü karışık yemekler için kritik öneme sahiptir.
Aşama 3 - Gıda Sınıflandırması. Her tespit edilen gıda bölgesi sınıflandırılır. Modern gıda sınıflandırıcılarının temeli, derin öğrenme devrimini başlatan 14 milyon etiketli görüntü içeren ImageNet'te doğrulanan mimarilere dayanır (Deng ve diğ., 2009). Gıda spesifik veri setleri, 101 kategoriye yayılmış 101.000 görüntü içeren Food-101 (Bossard ve diğ., 2014) ve Japon mutfağına odaklanan 256 gıda kategorisini kapsayan UECFOOD-256 (Kawano ve Yanai, 2015) gibi, bu genel amaçlı mimarileri gıda tanıma için ince ayar yapmak için gereken alan spesifik eğitim verilerini sağlar.
Aşama 4 - Porsiyon Tahmini. Tabaktaki gıda maddeleri belirlendikten sonra, sistem her bir maddenin ne kadar olduğunu tahmin eder. Bu, gıda tanıma araştırmasındaki en zor çözülmemiş problemdir ve tek bir 2D görüntüden derinlik tahmini ve hacimsel akıl yürütmeyi içerir.
Aşama 5 - Besin Haritalama. Son olarak, sınıflandırılan gıda maddesi ve tahmin edilen porsiyon boyutu, kalori, protein, karbonhidrat, yağ ve mikro besin değerlerini üretmek için doğrulanmış bir besin veritabanına bağlanır.
Bu aşamaların her biri, aktif araştırma alanlarını temsil eder. Aşağıdaki bölümler, en teknik zorlukları içeren aşamaları detaylı bir şekilde incelemektedir.
Gıda Sınıflandırması: "Bu Bir Salata"dan Öte
Bir salatayı bir biftekten ayırmak, herhangi bir modern sınıflandırıcı için basittir. Gerçek zorluk, sistemin görsel olarak benzer yemekleri ayırt etmesi gerektiğinde başlar: tavuk tikka masala ile tereyağlı tavuk, pad thai ile sarhoş erişte, veya Yunan salatası ile fattoush. Bu yemekler renk, doku ve yapısal desenler açısından benzerlik gösterirken, içerik ve kalori yoğunluğu bakımından önemli farklılıklar taşır.
Transfer Öğrenme ve Alan Adaptasyonu
Gıda sınıflandırmasında standart yaklaşım, Yosinski ve diğ. (2014) tarafından formüle edilen transfer öğrenmeye dayanır; burada, ImageNet gibi büyük genel veri setlerinde önceden eğitilmiş bir model, gıda spesifik verilerle ince ayar yapılır. Ağırlığın alt katmanları, kenarları, dokuları ve temel şekilleri tespit ederken, üst katmanlar, kızarmış bir yüzeyin parlaklığı ile buharda pişirilmiş bir yüzeyin mat görünümü gibi gıda spesifik özellikleri öğrenmek için yeniden eğitilir.
Hassannejad ve diğ. (2016) tarafından yapılan araştırmalar, InceptionV3'ün Food-101 üzerinde ince ayar yapıldığında %88.28'lik bir en yüksek doğruluk oranı elde edildiğini göstermiştir; bu, daha önceki elle hazırlanmış özellik yaklaşımlarına göre önemli bir sıçramadır. Vision Transformers (Dosovitskiy ve diğ., 2020) ve gıda spesifik varyantları kullanarak yapılan daha güncel çalışmalar, Food-101'deki doğruluğu %93'ün üzerine çıkarmıştır.
Karmaşık Tabaklar için Çoklu Etiket Sınıflandırması
Gerçek yemekler nadiren tek bir öğe içerir. Tipik bir akşam yemeği tabağında ızgara somon, fırınlanmış kuşkonmaz, kinoa ve limon tereyağı sosu bulunabilir. Çoklu etiket sınıflandırması, tek bir görüntünün birden fazla bağımsız etiket alabileceği bir çözüm sunar. Wang ve diğ. (2016) tarafından yapılan araştırmalar, çoklu etiketli görüntü sınıflandırması için CNN-RNN mimarileri üzerine çerçeveler geliştirmiştir; bu, etiketlerin birlikte ortaya çıkma kalıplarını yakalar. Gıda alanında bu, modelin pirinç ve köri gibi öğelerin sıklıkla bir arada bulunduğunu öğrenmesi anlamına gelir; bu, bireysel gıda maddesi doğruluğunu artıran bağlamsal bir sinyal sağlar.
Nutrola, bunu hiyerarşik bir sınıflandırma sistemi ile genişletir. Sistem, önce geniş gıda kategorisini (tahıl, protein, sebze, sos) sınıflandırır, ardından o kategori içindeki belirli öğeye daraltır. Bu iki aşamalı yaklaşım, farklı kategorilerden görsel olarak benzer öğeler arasındaki karışıklığı azaltır ve besin veritabanlarının nasıl organize edildiğini yansıtır.
Porsiyon Tahmini: 3D Zorluğu
Bir tabaktaki gıdanın ne olduğunu tanımlamak, sorunun sadece yarısını çözer. 100 gramlık bir tavuk göğsü 165 kalori içerir. 250 gramlık bir porsiyon 412 kalori içerir. Doğru porsiyon tahmini olmadan, mükemmel gıda tanımlaması bile güvenilir kalori sayımları üretmez.
Monoküler Derinlik Tahmini
Tek bir 2D fotoğraftan gıda hacmini tahmin etmek, sistemin derinliği çıkarmasını gerektirir; bu, monoküler derinlik tahmini olarak bilinen bir problemdir. Eigen, Puhrsch ve Fergus (2014) tarafından yayınlanan temel çalışma, CNN'lerin tek görüntülerden piksel bazında derinlik haritaları tahmin edebileceğini göstermiştir. Ranftl ve diğ. (2021) tarafından yapılan daha güncel araştırmalar, çeşitli sahnelerde sağlam göreceli derinlik tahminleri üreten MiDaS modelini tanıtmıştır.
Gıda uygulamaları için derinlik tahmini, sistemin bir tabakta yayılmış ince bir sos tabakası ile derin bir çorba kasesini ayırt etmesine olanak tanır. Tabaklar, kaseler ve mutfak gereçleri gibi yaygın referans nesnelerin bilinen geometrisi ile birleştirildiğinde, derinlik haritaları yaklaşık hacim tahminlerine dönüştürülebilir.
Hacim Tahmini için Geometrik Yaklaşımlar
Tokyo Üniversitesi'nden (Okamoto ve Yanai, 2016) yapılan araştırmalar, gıda hacminin segmentlere ayrılmış gıda bölgelerine silindirik, yarım küre ve dikdörtgen prizma gibi geometrik primitifler uydurarak tahmin edilebileceğini göstermiştir. Bir yığın pirinç, yarım elipsoidi andırır. Bir bardak süt, silindiri andırır. Bir dilim ekmek, dikdörtgen prizmaya benzer.
Bu geometrik yaklaşımlar, öğrenilmiş yoğunluk öncelikleri ile birleştirildiğinde (sistem, belirli bir hacimdeki patates püresinin, aynı hacimdeki patlamış mısırdan daha ağır olduğunu bilir), araştırmalar, çoğu yaygın gıda için gerçek ağırlığın %15 ila %20'si içinde kalan ağırlık tahminleri üretir. Nutrola, bu tahminleri, bilinen ağırlıklara sahip on binlerce gıda görüntüsü üzerinde eğitilmiş öğrenilmiş regresyon modelleri ile geometrik akıl yürütmeyi birleştiren özel bir topluluk yaklaşımı kullanarak daha da geliştirir.
Referans Nesne Kalibrasyonu
Bazı gıda tanıma sistemleri, ölçek kalibrasyonu için sahnedeki bilinen referans nesneleri kullanır. Standart bir akşam yemeği tabağının çapı yaklaşık 26 santimetredir. Bir kredi kartı 85.6 x 53.98 milimetre ölçülerindedir. Sistem, bu tür nesneleri tespit ettiğinde, gerçek dünya ölçeğini belirleyebilir ve bu, hacim ve ağırlık tahminlerini önemli ölçüde iyileştirir. Purdue Üniversitesi'ndeki Fang ve diğ. (2016) tarafından yapılan araştırmalar, tabak bazlı kalibrasyonun, kalibrasyonsuz yaklaşımlara göre porsiyon tahmin hatasını yaklaşık %25 oranında azalttığını göstermiştir.
Doğrulanmış Veritabanı Katmanı
AI tanıma tek başına doğru kalori sayımları sunmak için yeterli değildir. Bir model ızgara tavuk göğsünü %99 doğrulukla tanımlasa bile, nihai besin çıktısı tamamen haritalandığı veritabanının kalitesine bağlıdır.
Burada Nutrola'nın yaklaşımı birçok rakipten ayrılır. Çoğu gıda takip uygulaması, herhangi bir kullanıcının besin bilgisi gönderebileceği topluluk kaynaklı veritabanlarına dayanır. Araştırmalar, topluluk kaynaklı gıda veritabanlarının %15 ila %30 arasında hata oranlarına sahip olduğunu ve bazı girişlerin laboratuvar onaylı değerlerden %50'den fazla farklılık gösterdiğini bulmuştur.
Nutrola, %100 doğrulanmış bir besin veritabanı tutar. Her giriş, USDA FoodData Central, Birleşik Krallık Ulusal Sağlık Servisi tarafından kullanılan McCance ve Widdowson bileşim tabloları ve hakemli beslenme analizleri gibi yetkili kaynaklarla çapraz referanslanır. Bu, AI tanıma katmanının gıda tanımlama veya porsiyon tahmininde küçük bir hata payı tanıtsa bile, haritalandığı besin verilerinin güvenilir olduğu anlamına gelir.
Doğrulama katmanı ayrıca, saf AI yaklaşımlarının gözden kaçırdığı bir ayrıntıyı da ele alır: hazırlama yöntemi besin içeriğini etkiler. 150 gramlık bir ızgara tavuk göğsü yaklaşık 165 kalori içerirken, aynı göğüs zeytinyağında kızartıldığında yaklaşık 230 kalori içerir. Nutrola'nın veritabanı, bu hazırlama bağımlı varyasyonları yakalar ve tanıma modeli, görsel ipuçları mevcut olduğunda, ızgara yüzey ile kızartılmış yüzey arasındaki fark gibi pişirme yöntemlerini ayırt etmek için eğitilmiştir.
Sürekli Öğrenme ve İyileştirme
Gıda tanıma, bir kez çözülen ve dağıtılan bir problem değildir. Mutfaklar evrim geçirir, yeni yemekler ortaya çıkar ve kullanıcı beklentileri artar. Nutrola'nın sistemi, makine öğrenimi araştırmalarına dayanan birkaç mekanizma aracılığıyla sürekli iyileştirme için tasarlanmıştır.
Aktif Öğrenme
Aktif öğrenme, Settles (2009) tarafından formüle edilen bir stratejidir; burada model, en az güven duyduğu örnekleri tanımlar ve bunları insan incelemesi ve etiketleme için önceliklendirir. Nutrola'nın sistemi, yüksek güvenle sınıflandıramadığı bir yemekle karşılaştığında, o görüntü uzman incelemesi için işaretlenir. Etiketlendikten sonra, eğitim boru hattına girer ve model, en zayıf olduğu durumlarda tam olarak iyileşir.
Bu yaklaşım, rastgele daha fazla eğitim görüntüsü toplamaktan çok daha veri verimlidir. Araştırmalar, aktif öğrenmenin, rastgele örneklemeye kıyasla %30 ila %60 daha az etiketlenmiş veri ile eşdeğer model doğruluğu elde edebileceğini sürekli olarak göstermiştir.
Yeni Gıdalar ve Bölgesel Mutfaklarla Başa Çıkma
Gıda tanımanın en büyük zorluklarından biri, bölgesel ve kültürel olarak özel yemeklerin kapsanmasıdır. Öncelikle Batı mutfağına göre eğitilmiş bir model, Güneydoğu Asya tatlıları, Batı Afrika güveçleri veya İskandinav fermente gıdaları ile zorlanabilir. Nutrola, bu durumu, az temsil edilen mutfaklara odaklanan hedefli veri toplama kampanyaları ve modelin yeni gıda kategorilerini nispeten az sayıda örnekle öğrenmesine olanak tanıyan birkaç örnek öğrenme teknikleri (Wang ve diğ., 2020) ile ele alır.
Kullanıcı geri bildirimi, bu süreçte kritik bir girdi sağlar. Bir kullanıcı yanlış tanımlanan bir gıdayı düzelttiğinde, o düzeltme eğitim boru hattına geri beslenir. Dünya genelinde kaydedilen milyonlarca yemek arasında toplanan bu düzeltmeler, gerçek insanların günlük yaşamlarında yedikleri gıdaları kapsayan sürekli bir doğru veri akışı oluşturur.
Bu, Tabaklarınıza Nasıl Yansıyor
Yukarıda açıklanan araştırmalar, Nutrola'yı her açtığınızda deneyimlediğiniz somut faydaları üretir.
Üç saniyede kayıt. Görüntü ön işleme aşamasından besin sorgulamasına kadar tüm boru hattı, modern bir akıllı telefonda 3 saniyeden kısa sürede çalışır. Model optimizasyon teknikleri, karmaşık modellerin mobil donanımda verimli bir şekilde çalışmasını sağlarken doğruluktan ödün vermez.
Karmaşık yemeklerin yönetimi. Çoklu etiket tespiti ve anlamsal segmentasyon, her gıda maddesini ayrı ayrı fotoğraflamanıza gerek kalmadığı anlamına gelir. Yüksek dolu bir akşam yemeği tabağının tek bir fotoğrafı, her bileşen için bireysel besin analizleri üretir.
Kültürler arası doğruluk. Sürekli öğrenme ve hedefli veri toplama, sistemin Tokyo'da suşi, Meksiko'da taco, Addis Ababa'da injera veya Londra'da bir Pazar kavurması yediğinizde çalışmasını sağlar. Model, Nutrola'nın küresel kullanıcı tabanında kaydedilen her yemekle birlikte gelişir.
İlerlemenin doğruluk iyileştirmesi. Nutrola'yı ne kadar çok kullanırsanız, o kadar iyi hale gelir; hem sizin için hem de tüm kullanıcılar için. Aktif öğrenme, modelin iyileşmesini en çok ihtiyaç duyduğu durumlara odaklanmasını sağlar.
Doğrulanmış besin verileri. Bilinmeyen hata oranlarına sahip topluluk kaynaklı veritabanlarına dayanan uygulamaların aksine, Nutrola'nın sunduğu her kalori sayımı laboratuvar onaylı besin verileri ile desteklenir. AI gıdayı tanır; doğrulanmış veritabanı ise sayıları doğru hale getirir.
SSS
Nutrola'nın AI'sı bir fotoğraftan gıdayı nasıl tanıyor?
Nutrola, çok aşamalı bir bilgisayarla görme boru hattı kullanır. Fotoğrafınız önce görüntü ön işleme aşamasından geçer, ardından tabaktaki her gıda maddesini tanımlayan ve segmentleyen derin öğrenme tespit modelinden geçer. Her öğe, gıda spesifik veri setleri üzerinde ince ayar yapılmış evrişimli sinir ağları kullanılarak sınıflandırılır, porsiyonu derinlik ve hacimsel akıl yürütme ile tahmin edilir ve sonuç Nutrola'nın doğrulanmış besin veritabanına haritalanarak kalori ve makro besin değerleri üretilir.
Nutrola'nın gıda tanıma teknolojisi ne kadar doğru?
Nutrola'nın sınıflandırma modelleri, standart gıda tanıma benchmarklarında %90'ın üzerinde en yüksek doğruluk oranları elde ederken, en yüksek %95'in üzerinde doğruluk oranlarına ulaşmaktadır. Porsiyon tahmini için sistem genellikle gerçek ağırlığın %15 ila %20'si içinde kalır; bu, eğitimli diyetisyenlerin tahmin doğruluğu ile karşılaştırılabilir veya daha iyidir. Nutrola'nın doğrulanmış veritabanı ile birleştirildiğinde, bu, manuel kayıttan çok daha güvenilir kalori tahminleri üretir; araştırmalar, manuel kaydın alımı %10 ila %45 oranında düşük raporladığını göstermektedir.
Nutrola'nın gıda tanıma AI'sını destekleyen araştırmalar ve veri setleri nelerdir?
Nutrola'nın teknolojisi, ImageNet'te doğrulanan evrişimli sinir ağları, Faster R-CNN ve DETR gibi nesne tespit mimarileri ve Food-101 ve UECFOOD-256 gibi gıda spesifik veri setleri de dahil olmak üzere temel bilgisayarla görme araştırmalarına dayanmaktadır. Sistem ayrıca porsiyon boyutlandırma için monoküler derinlik tahmini araştırmalarından ve sürekli model iyileştirmesi için aktif öğrenme araştırmalarından yararlanmaktadır. Tüm besin verileri, USDA FoodData Central gibi yetkili kaynaklarla doğrulanmaktadır.
Nutrola, tek bir tabaktaki birden fazla gıdayı tanıyabilir mi?
Evet. Nutrola, tek bir fotoğraftaki her bir gıda maddesini tanımlamak ve ayrı ayrı analiz etmek için çoklu etiket tespiti ve anlamsal segmentasyon kullanır. Tabanızda iki öğe veya sekiz öğe bulunsa da, sistem her birini ayırır, bağımsız olarak sınıflandırır, porsiyonunu tahmin eder ve her bir öğe için besin analizinin yanı sıra toplam yemek değerini döndürür.
Nutrola, farklı mutfaklardan ve kültürlerden gıdaları nasıl ele alıyor?
Nutrola, geniş kapsama alanına sahip eğitim verilerini, az temsil edilen mutfaklar için hedefli veri toplama ile birleştirir ve modelin nispeten az sayıda örnekle yeni gıda kategorilerini öğrenmesine olanak tanıyan birkaç örnek öğrenme teknikleri kullanır. Nutrola'nın küresel kullanıcı tabanından gelen kullanıcı düzeltmeleri, sürekli olarak eğitim boru hattına beslenir; bu, doğruluğun, insanların her bölgede ve gıda kültüründe gerçekten yediği spesifik yemekler için iyileşmesini sağlar.
Nutrola'nın gıda tanıması zamanla gelişiyor mu?
Evet. Nutrola, sistemin en az güven duyduğu görüntüleri tanımladığı ve bunları uzman incelemesi ve yeniden eğitim için önceliklendirdiği bir makine öğrenimi stratejisi olan aktif öğrenmeyi kullanır. Dünya genelinde kaydedilen milyonlarca yemekten gelen toplanmış kullanıcı geri bildirimleri ile birleştirildiğinde, bu, modelin sürekli olarak gelişmesini sağlar. Kaydettiğiniz her yemek, Nutrola'nın tanımasını tüm kullanıcılar için daha doğru hale getirmeye katkıda bulunur.
Beslenme takibinizi dönüştürmeye hazır mısınız?
Nutrola ile sağlık yolculuklarını dönüştürmüş binlerce kişiye katılın!