Cum folosește Nutrola viziunea computerizată și AI pentru a identifica peste 130,000 de alimente

O analiză tehnică detaliată a AI-ului din spatele funcției Snap & Track de la Nutrola: cum rețelele neuronale convoluționale, detectarea multi-obiect și estimarea porțiilor colaborează pentru a identifica peste 130,000 de alimente dintr-o singură fotografie.

Medically reviewed by Dr. Emily Torres, Registered Dietitian Nutritionist (RDN)

Problema: De ce recunoașterea alimentelor este una dintre cele mai dificile provocări ale AI-ului

Identificarea alimentelor din fotografii pare simplă. Oamenii o fac fără efort. Însă pentru sistemele de viziune computerizată, recunoașterea alimentelor este una dintre cele mai tehnic provocatoare sarcini de clasificare vizuală, mult mai dificilă decât identificarea fețelor, mașinilor sau a textului scris de mână.

Iată câteva motive care explică această dificultate:

  • Variabilitate extremă intra-clasă. O „salată” poate arăta în mii de feluri diferite. Salata Caesar, salata grecească, salata de fructe și o salată Nicoise deconstruită au același nume de categorie, dar aproape nicio asemănare vizuală.
  • Similaritate inter-clasă ridicată. Piureul de cartofi și hummusul pot arăta aproape identic într-o fotografie. La fel și anumite supe și boluri de smoothie. Orezul alb și orezul de conopidă sunt vizual indistinguibile din anumite unghiuri.
  • Deformare și amestecare. Spre deosebire de obiectele rigide, alimentele sunt tăiate, gătite, amestecate, stratificate și aranjate în combinații infinite. Un burrito, un wrap și o enchilada pot conține ingrediente identice în configurații structurale diferite.
  • Dependența de contextul cultural. Aceeași apariție vizuală poate reprezenta alimente diferite în diverse bucătării. O pâine rotundă și plată ar putea fi o tortilla, un roti, un pita, o clătită sau un tunnbrod suedez, fiecare având profile nutriționale diferite.
  • Ocultare parțială. Alimentele de pe o farfurie se suprapun, sosurile acoperă ingredientele, iar garniturile ascund ceea ce este dedesubt.

Aceste provocări explică de ce recunoașterea alimentelor a rămas în urmă față de alte aplicații de viziune computerizată timp de mulți ani. De asemenea, explică de ce soluționarea acestei probleme a necesitat o abordare fundamental diferită față de clasificarea tradițională a imaginilor.

Fundamentul: Rețele neuronale convoluționale

Cum procesează CNN-urile imaginile alimentelor

La baza recunoașterii moderne a alimentelor se află rețeaua neuronală convoluțională (CNN), o clasă de arhitectură de învățare profundă special concepută pentru procesarea datelor vizuale. O CNN analizează o imagine printr-o serie de straturi ierarhice de extragere a caracteristicilor:

Stratul 1-3 (Caracteristici de nivel scăzut): Rețeaua identifică margini, culori și texturi simple. În această etapă, ar putea detecta marginea circulară a unei farfurii, culoarea maronie a cărnii gătite sau textura granuloasă a orezului.

Stratul 4-8 (Caracteristici de nivel mediu): Aceste straturi combină caracteristicile de nivel scăzut în modele mai complexe: modelul de marmură al unei fripturi la grătar, structura stratificată a unui sandviș, suprafața lucioasă a unui sos sau textura fibrosă a puiului fiert.

Stratul 9-15+ (Caracteristici de nivel înalt): Straturile cele mai adânci asamblează modelele de nivel mediu în reprezentări specifice alimentelor. Rețeaua învață că o combinație specifică de texturi, culori, forme și aranjamente spațiale corespunde cu „pad thai” sau „pizza margherita” sau „chicken tikka masala”.

Evoluția arhitecturii

Arhitecturile utilizate pentru recunoașterea alimentelor au evoluat semnificativ în ultimul deceniu:

Arhitectură An Inovație cheie Precizie în recunoașterea alimentelor
AlexNet 2012 A demonstrat că CNN-urile profunde sunt viabile ~55% top-1 pe Food-101
VGGNet 2014 Rețele mai adânci cu filtre mici ~72% top-1 pe Food-101
GoogLeNet/Inception 2014 Extragerea caracteristicilor multi-scală ~78% top-1 pe Food-101
ResNet 2015 Conexiuni de salt care permit rețele mult mai adânci ~85% top-1 pe Food-101
EfficientNet 2019 Scalarea compusă a adâncimii/lățimii/rezoluției ~91% top-1 pe Food-101
Vision Transformers (ViT) 2020 Mecanisme de atenție pentru context global ~93% top-1 pe Food-101
Arhitecturi hibride moderne 2023-2025 Fuziune CNN-Transformer cu atenție conștientă de regiune ~96%+ top-1 pe seturi de date extinse

Benchmark-ul Food-101 (101 categorii de alimente, 101,000 imagini) a fost setul standard de evaluare timp de mulți ani. Sistemele moderne, precum cele de la Nutrola, operează la o scară mult mai mare, cu peste 130,000 de alimente recunoscute, necesitând paradigme de antrenament care depășesc cu mult benchmark-urile academice.

Detectarea multi-obiect: Vederea tuturor alimentelor de pe farfurie

Dincolo de clasificarea unui singur aliment

Sistemele timpurii de recunoaștere a alimentelor puteau identifica un singur aliment per imagine. O fotografie a unei farfurii cu orez, curry și pâine naan ar fi fost clasificată ca unul dintre cele trei elemente, ignorând celelalte complet. Mesele reale nu sunt atât de simple.

Detectarea multi-obiect necesită o abordare arhitecturală diferită. În loc să clasifice întreaga imagine ca o singură categorie, sistemul trebuie să:

  1. Detecteze regiunile de interes (unde sunt alimentele distincte în imagine?)
  2. Segmenteze acele regiuni (unde se termină orezul și începe curry-ul?)
  3. Clasifice fiecare regiune independent (această regiune este orez, aceasta este curry de pui, aceasta este naan)
  4. Gestioneze elementele suprapuse (sosul de curry deasupra orezului face parte din curry, nu este un element separat)

Cadre de detectare a obiectelor pentru alimente

Detectarea modernă a alimentelor multi-obiect se bazează pe cadre de detectare a obiectelor dezvoltate inițial pentru sarcini generale de viziune computerizată:

  • Abordări bazate pe regiuni (derivate din Faster R-CNN) generează regiuni candidate și clasifică fiecare dintre ele. Acestea sunt precise, dar costisitoare din punct de vedere computațional.
  • Abordări single-shot (derivate din YOLO și SSD) prezic cutii de delimitare și clasificări într-o singură trecere, permițând detectarea în timp real pe dispozitive mobile.
  • Abordări de segmentare semantică (derivate din U-Net și Mask R-CNN) generează hărți alimentare la nivel de pixel, oferind limite precise între elemente.

Sistemul Snap & Track de la Nutrola folosește o abordare hibridă optimizată pentru inferența pe mobil. Pipeline-ul funcționează eficient pe dispozitiv pentru detectarea inițială, cu procesare pe server pentru scene complexe sau elemente ambigue. Acest lucru menține experiența utilizatorului rapidă, de obicei sub două secunde de la capturarea fotografiei până la analiza nutrițională, menținând în același timp o precizie ridicată.

Gestionarea structurilor complexe ale meselor

Unele mese prezintă provocări structurale pe care detectarea simplă nu le poate rezolva:

  • Alimente stratificate (lasagna, sandvișuri, burrito): Sistemul trebuie să deducă ingredientele interioare din indicii exterioare vizibile și cunoștințe contextuale.
  • Preparatele mixte (stir-fry, tocăniță, casserole): Ingredientele individuale sunt combinate într-o masă vizuală unică. Sistemul folosește analiza texturii, distribuția culorii și priors contextuale pentru a estima compoziția.
  • Prezentări deconstruite (mese în bol, cutii bento, tapas): Mai multe elemente mici în compartimente separate necesită detectare și clasificare individuală.
  • Băuturi alături de alimente: Distincția între un pahar de suc de portocale, un smoothie de mango și un ceai rece thailandez necesită analiza culorii, opacității, tipului de recipient și contextului.

Datele de antrenament: Fundamentul calității recunoașterii

Cerințe de scară și diversitate

Un sistem de recunoaștere a alimentelor este la fel de bun ca datele pe care a fost antrenat. Construirea unui model care recunoaște peste 130,000 de alimente din peste 50 de țări necesită un set de date de antrenament de o scară și diversitate extraordinare.

Dimensiunile cheie ale calității datelor de antrenament:

Volum: Modelele moderne de recunoaștere a alimentelor necesită milioane de imagini de alimente etichetate. Fiecare categorie de alimente are nevoie de sute până la mii de exemple care să arate diferite preparate, prezentări, condiții de iluminare, unghiuri și dimensiuni ale porțiilor.

Diversitate: O „piept de pui” fotografiat într-o bucătărie japoneză arată diferit față de una dintr-o bucătărie braziliană, care arată diferit față de una dintr-o bucătărie nigeriană. Datele de antrenament trebuie să reprezinte această diversitate, altfel modelul va eșua în bucătăriile pe care nu le-a văzut.

Precizia etichetelor: Fiecare imagine trebuie să fie corect etichetată cu alimentul specific, nu doar cu categoria generală. „Somon la grătar cu glazură teriyaki” este diferit din punct de vedere nutrițional de „somon la grătar cu unt de lămâie”, iar etichetele de antrenament trebuie să capteze această distincție.

Variabilitatea porțiilor: Același aliment fotografiat într-o porție de 100g și într-o porție de 300g trebuie să fie reprezentat în datele de antrenament, astfel încât modelul să poată învăța să estimeze cantitatea, nu doar identitatea.

Strategii de augmentare a datelor

Colectarea de date brute nu poate acoperi fiecare prezentare posibilă a fiecărui aliment. Tehnicile de augmentare a datelor extind setul de antrenament efectiv:

  • Transformări geometrice: Rotirea, răsturnarea și scalarea imaginilor astfel încât modelul să recunoască alimentele indiferent de orientarea farfuriei.
  • Variabilitate de culoare și iluminare: Ajustarea luminozității, contrastului și balansului de alb pentru a simula diferite condiții de iluminare (iluminare de restaurant, lumini fluorescente de bucătărie, lumină naturală în aer liber, fotografie cu blitz).
  • Ocultare sintetică: Mascarea aleatorie a porțiunilor din imaginile alimentelor pentru a antrena modelul să recunoască elementele chiar și atunci când sunt parțial ascunse.
  • Transfer de stil: Generarea de imagini sintetice care păstrează identitatea alimentului, variind în același timp fundalul, stilul de plating și vesela.

Învățare continuă din datele utilizatorilor

Cu peste 2 milioane de utilizatori activi care își înregistrează mesele zilnic, sistemul Nutrola beneficiază de un ciclu de feedback continuu. Atunci când un utilizator corectează un aliment identificat greșit, acea corectare devine un semnal de antrenament. În timp, această rafinare condusă de utilizatori abordează cazurile limită și variațiile alimentelor regionale pe care niciun set de date inițial de antrenament nu le-ar putea anticipa complet.

Acest lucru este deosebit de valoros pentru:

  • Preparatele regionale care pot să nu apară în seturile de date alimentare academice
  • Tendințele alimentare emergente (produse noi, bucătării fuzionate, rețete virale)
  • Produse specifice de marcă unde ambalajul și prezentarea se schimbă în funcție de piețele regionale
  • Mese gătite acasă care arată diferit față de prezentările din restaurante

Estimarea porțiilor: Problema mai dificilă

De ce estimarea porțiilor contează mai mult decât identificarea

Identificarea corectă a unui aliment este doar jumătate din problemă. Diferența nutrițională dintre o porție de 100g și una de 250g de paste este de 230 de calorii, suficient pentru a influența o dietă. Estimarea porțiilor dintr-o singură fotografie este, în multe privințe, provocarea tehnică mai dificilă.

Estimarea adâncimii și a scalei

O fotografie 2D nu conține informațiile de adâncime necesare pentru a măsura direct volumul alimentelor. Sistemul trebuie să deducă proprietățile tridimensionale din indicii bidimensionale:

  • Obiecte de referință: Farfurii, boluri, ustensile și mâini în cadru oferă referințe de scară. O farfurie standard de cină (aproximativ 26 cm diametru) ancorează estimarea dimensiunii pentru tot ce este pe ea.
  • Geometria perspectivei: Unghiul din care este făcută fotografia afectează dimensiunea aparentă. O farfurie fotografiată dintr-un unghi de 90 de grade arată diferit față de una fotografiată dintr-un unghi de 45 de grade. Sistemul estimează unghiul camerei și corectează distorsiunea perspectivei.
  • Modele de densitate specifice alimentelor: Același volum de salată și friptură are greutăți și conținut caloric complet diferite. Sistemul aplică priors de densitate specifice alimentelor pentru a converti volumul estimat în greutatea estimată.
  • Distribuții de porții învățate: Priors statistici din milioane de mese înregistrate informează dimensiunile așteptate ale porțiilor. Dacă modelul detectează „bol de ovăz”, știe că porția medie este de aproximativ 250g și folosește acest prior pentru a-și restrânge estimarea.

Benchmark-uri de precizie

Cât de precisă este estimarea porțiilor bazată pe AI? Benchmark-urile de cercetare oferă context:

Metodă Eroare medie (% din greutatea reală)
Estimarea vizuală umană (neantrenată) 40-60%
Estimarea vizuală umană (dietician antrenat) 15-25%
Estimarea AI dintr-o singură imagine (anul 2020) 20-30%
Estimarea AI dintr-o singură imagine (starea actuală, 2025) 10-20%
Estimarea AI cu obiect de referință 8-15%
Măsurarea alimentelor cântărite (standard de aur) <1%

Sistemele AI actuale nu se compară cu un cântar de alimente, dar ele depășesc constant estimarea umană neantrenată și se apropie de precizia dieticienilor antrenați. Pentru majoritatea cazurilor de utilizare a urmăririi, acest nivel de precizie este suficient pentru a susține informații nutriționale semnificative.

Stratificarea nutrițională

De la identificarea vizuală la datele nutriționale

Identificarea „pieptului de pui la grătar” într-o fotografie este utilă doar dacă acea identificare se leagă de date nutriționale precise. Aici devine esențială baza de date de alimente verificată 100% de nutriști de la Nutrola.

Stratul de mapare conectează fiecare clasificare vizuală la o intrare specifică din baza de date care conține:

  • Descompunerea macronutrienților (calorii, proteine, carbohidrați, grăsimi)
  • Profilul micronutrienților (vitamine, minerale)
  • Varietăți de dimensiuni ale porțiilor
  • Ajustări ale metodei de preparare (pui la grătar vs. pui prăjit are un conținut de grăsimi semnificativ diferit)
  • Variații regionale și specifice de marcă

Această mapare nu este o simplă tabelă de căutare. Sistemul ia în considerare:

  • Detectarea metodei de gătire: Indici vizuali (îngălbenire, luciu de ulei, urme de rumenire) ajută la determinarea dacă alimentul a fost gătit la grătar, prăjit, copt sau fiert, fiecare dintre acestea schimbând profilul nutrițional.
  • Estimarea sosurilor și toppingurilor: Sosurile, dressingurile, brânza și toppingurile vizibile sunt identificate, iar contribuțiile lor nutriționale sunt adăugate la alimentul de bază.
  • Estimarea meselor compuse: Pentru preparatele mixte unde rețetele exacte sunt necunoscute, sistemul folosește modele statistice ale compozițiilor tipice pentru a estima conținutul de macronutrienți și micronutrienți.

Diferența de verificare

Multe sisteme de recunoaștere a alimentelor se leagă de baze de date nutriționale neverificate, generate de utilizatori. Acest lucru introduce o eroare cumulativă: chiar dacă identificarea vizuală este corectă, datele nutriționale la care se leagă ar putea fi greșite. Abordarea Nutrola de a menține o bază de date verificată de nutriști elimină această a doua sursă de eroare, asigurându-se că identificarea corectă duce la informații nutriționale corecte.

Cazuri limită și provocări în curs

Acolo unde sistemele actuale se confruntă cu dificultăți

Transparența în legătură cu limitările este la fel de importantă ca evidențierea capabilităților. AI-ul actual de recunoaștere a alimentelor, inclusiv sistemul Nutrola, se confruntă cu provocări continue în:

  • Ingrediente ascunse: Conținutul nutrițional al unui bol de smoothie depinde de ceea ce este amestecat în interior, care nu este vizibil în fotografie. Sistemul se bazează pe modele comune de rețete și poate solicita utilizatorilor informații suplimentare.
  • Alimente foarte asemănătoare: Distincția între alimente vizual identice (de exemplu, piure de cartofi obișnuit vs. piure de conopidă) necesită uneori confirmarea utilizatorului.
  • Prezentări neobișnuite: Alimentele prezentate în moduri neobișnuite, cum ar fi gastronomia moleculară sau platingul artistic, pot confunda sistemele de detectare.
  • Condiții extreme de iluminare: Restaurantele foarte întunecate sau fotografia cu blitz degradează calitatea imaginii și reduc precizia recunoașterii.
  • Alimente ambalate fără etichete vizibile: Un sandviș înfășurat sau un recipient sigilat oferă informații vizuale limitate.

Cum gestionează Nutrola incertitudinea

Când AI-ul nu este sigur de identificarea sa, sistemul folosește mai multe strategii:

  1. Sugestii Top-N: În loc să se angajeze într-o singură identificare, sistemul prezintă cele mai probabile opțiuni și permite utilizatorului să selecteze corecta.
  2. Întrebări de clarificare: Asistentul AI Dietetic poate pune întrebări suplimentare: „Este acesta orez alb sau orez de conopidă?” sau „Acest sos este pe bază de smântână sau de roșii?”
  3. Suplimentare vocală: Utilizatorii pot adăuga context verbal la o fotografie: fac o poză și spun „aceasta este supa de linte gătită de mama cu lapte de cocos.” Inputul vocal clarifică vizualul.
  4. Învățarea din corecturi: Fiecare corectare a utilizatorului îmbunătățește precizia viitoare pentru articole similare.

Pipeline-ul de procesare: De la fotografie la nutriție în mai puțin de două secunde

Iată o vedere simplificată a ceea ce se întâmplă când un utilizator Nutrola face o fotografie a unui aliment:

Pasul 1 (0-200ms): Preprocesarea imaginii. Fotografia este normalizată pentru dimensiune, orientare și echilibru de culoare. Verificările de calitate de bază asigură că imaginea este utilizabilă.

Pasul 2 (200-600ms): Detectarea multi-obiect. Modelul de detectare identifică regiunile care conțin alimente distincte și trasaează regiuni de delimitare în jurul fiecărei.

Pasul 3 (600-1000ms): Clasificarea pe regiuni. Fiecare regiune detectată este clasificată în raport cu taxonomia de peste 130,000 de alimente. Se atribuie scoruri de încredere fiecărei clasificări.

Pasul 4 (1000-1400ms): Estimarea porțiilor. Volumul și greutatea sunt estimate pentru fiecare element detectat folosind inferența adâncimii, scalarea obiectelor de referință și modelele de densitate specifice alimentelor.

Pasul 5 (1400-1800ms): Maparea nutrițională. Fiecare element clasificat și porționat este asociat cu intrarea sa din baza de date verificată de nutriști. Ajustările metodei de preparare sunt aplicate.

Pasul 6 (1800-2000ms): Asamblarea rezultatelor. Întreaga descompunere nutrițională este asamblată și prezentată utilizatorului, cu articolele individuale listate și un rezumat total al mesei furnizat.

Întregul pipeline se finalizează de obicei în mai puțin de două secunde pe smartphone-uri moderne, cu detectarea și clasificarea inițială rulând pe dispozitiv și maparea nutrițională conectându-se la baza de date cloud a Nutrola.

Ce urmează: Viitorul AI-ului de recunoaștere a alimentelor

Capacități emergente

Domeniul AI-ului de recunoaștere a alimentelor continuă să avanseze rapid:

  • Urmărirea bazată pe video care analizează sesiuni de masă în loc de fotografii unice, îmbunătățind estimarea porțiilor prin multiple unghiuri
  • Recunoașterea la nivel de ingredient care identifică componente individuale în preparate mixte, în loc să le trateze ca intrări unice
  • Analiza procesului de gătire care poate estima schimbările nutriționale de la starea crudă la cea gătită pe baza dovezilor vizuale ale metodei de gătire și duratei
  • Măsurarea porțiilor asistată AR care folosește senzori de adâncime (LiDAR) pentru estimări mai precise ale volumului
  • Învățarea cross-modală care combină informații vizuale, textuale (meniuri, etichete) și contextuale (locație, ora din zi) pentru identificări mai precise

Avantajul scalei

Cu peste 2 milioane de utilizatori din peste 50 de țări care își înregistrează milioane de mese, sistemul de recunoaștere al Nutrola se îmbunătățește într-un ritm pe care cercetarea academică nu-l poate egala. Fiecare masă înregistrată este un punct de date. Fiecare corectare este un semnal de antrenament. Fiecare nouă bucătărie întâlnită este o extindere a cunoștințelor modelului. Acest efect de roată zburătoare înseamnă că sistemul devine vizibil mai precis în fiecare lună, în special pentru gama lungă de alimente regionale și culturale pe care sistemele mai mici nu le pot învăța.

Concluzia

AI-ul de recunoaștere a alimentelor este una dintre cele mai provocatoare aplicații tehnice ale viziunii computerizate, necesitând soluții pentru probleme pe care majoritatea sistemelor de clasificare a imaginilor nu le întâmpină niciodată: variație vizuală extremă în cadrul categoriilor, detectarea multi-obiect pe farfurii aglomerate, estimarea porțiilor tridimensionale din imagini bidimensionale și maparea către date nutriționale verificate din peste 130,000 de alimente din zeci de bucătării.

Tehnologia din spatele funcției Snap & Track de la Nutrola reprezintă convergența rețelelor neuronale convoluționale profunde, arhitecturilor avansate de detectare a obiectelor, modelelor statistice de estimare a porțiilor și a unei baze de date de alimente verificate de nutriști. Rezultatul este un sistem care poate transforma o fotografie casuală a prânzului tău într-o descompunere nutrițională detaliată în mai puțin de două secunde.

Nu este perfect. Niciun sistem actual nu este. Dar este suficient de precis pentru a face urmărirea nutrițională practică pentru milioane de oameni care nu ar cântări niciodată alimentele sau nu ar căuta manual într-o bază de date. Și devine mai bun în fiecare zi, învățând din fiecare masă pe care utilizatorii săi o împărtășesc. Această combinație de capacitate actuală și îmbunătățire continuă este ceea ce face ca recunoașterea alimentelor alimentată de AI să nu fie doar o realizare tehnică, ci un instrument practic pentru o nutriție mai bună.

Ești gata să îți transformi urmărirea nutriției?

Alătură-te celor mii care și-au transformat călătoria de sănătate cu Nutrola!