Наука про AI-трекінг калорій: Як працює розпізнавання зображень
Технічний аналіз комп'ютерного зору, що лежить в основі AI-трекінгу калорій: класифікація зображень, виявлення об'єктів, семантична сегментація, оцінка глибини, оцінка обсягу та зіставлення з базою даних. Включає таблиці точності за методами та посилання на опубліковані дослідження.
Коли ви фотографуєте свою страву, а додаток для трекінгу калорій ідентифікує їжу та оцінює її харчовий вміст за кілька секунд, це результат багатоступеневої системи комп'ютерного зору, що включає класифікацію зображень, виявлення об'єктів, оцінку розміру порцій та зіставлення з базою даних. Кожен етап має свої обмеження точності та джерела помилок. Розуміння того, як працює ця система, і де вона може дати збій, є важливим для оцінки надійності AI-трекінгу калорій як інструменту моніторингу дієти.
Ця стаття надає технічний аналіз системи комп'ютерного зору, що лежить в основі розпізнавання їжі, охоплюючи архітектури машинного навчання, опубліковані еталони точності, критичну роль харчової бази даних за AI та сучасний стан науки.
Система AI-трекінгу калорій: Шість етапів
AI-трекінг їжі — це не єдина технологія. Це система послідовних етапів обробки, кожен з яких має працювати належним чином, щоб фінальна оцінка калорій була значущою.
| Етап | Технічне завдання | Основна проблема | Внесок помилки |
|---|---|---|---|
| 1. Попередня обробка зображення | Нормалізація освітлення, роздільної здатності, орієнтації | Змінні умови фотографування в реальному світі | Низький (добре вирішено) |
| 2. Виявлення їжі | Визначення регіонів їжі на зображенні | Кілька продуктів, перекриті елементи, часткове закриття | Помірний |
| 3. Класифікація їжі | Визначення, що це за продукт | Візуальна схожість між продуктами (сортами рису, сирами) | Від помірного до високого |
| 4. Оцінка порцій | Визначення, скільки кожного продукту присутнє | Відсутність абсолютної шкали в більшості фото | Високий |
| 5. Зіставлення з базою даних | Зв'язок ідентифікованої їжі з записом у харчовій базі даних | Неоднозначні відповідності, варіації в методах приготування | Від низького до помірного (залежить від бази даних) |
| 6. Розрахунок поживних речовин | Помножити порцію × поживні речовини на одиницю | Комплексна помилка з усіх попередніх етапів | Залежить від точності системи |
Етап 1: Попередня обробка зображення
Перед тим, як відбудеться розпізнавання їжі, сирий знімок повинен бути нормалізований. Це включає в себе коригування:
- Змін освітлення. Фотографії, зроблені під флуоресцентним, ламповим, природним або спалахом, мають різні кольорові профілі для одного й того ж продукту. Сучасні системи попередньої обробки використовують алгоритми колірної сталі та навчану нормалізацію, щоб зменшити помилки класифікації, пов'язані з освітленням.
- Роздільної здатності та формату. Зображення з різних пристроїв мають різну роздільну здатність. Система попередньої обробки змінює розмір зображень до стандартних розмірів (зазвичай 224×224 або 384×384 пікселів для моделей класифікації, вищих для моделей виявлення).
- Орієнтації. Фотографії можуть бути зроблені з безпосереднього зверху (зверху вниз, ідеально для оцінки порцій) або під кутами. Геометрична нормалізація коригує кут огляду, коли це можливо.
Цей етап добре вирішено сучасними технологіями і вносить мінімальні помилки в загальну систему.
Етап 2: Виявлення їжі (Виявлення об'єктів)
Виявлення їжі відповідає на запитання: "Де на цьому зображенні знаходяться продукти?" Це проблема виявлення об'єктів, яка стає складною, коли одне фото містить кілька продуктів на одній тарілці або в кількох стравах.
Використовувані архітектури
YOLO (You Only Look Once). Сімейство детекторів YOLO (YOLOv5, YOLOv8 та наступні версії) обробляє все зображення за один прохід, одночасно генеруючи обмежувальні рамки та прогнози класів. YOLO віддається перевага в системах розпізнавання їжі завдяки своїй швидкості в реальному часі, зазвичай досягаючи часу висновку менше 50 мілісекунд на мобільному обладнанні.
Faster R-CNN. Двоступеневий детектор, який спочатку пропонує області інтересу, а потім класифікує кожну область. Faster R-CNN досягає трохи вищої точності, ніж одноступеневі детектори на складних сценах, але за рахунок збільшення часу висновку.
DETR (Detection Transformer). Детектор на основі трансформера від Facebook AI Research використовує механізми уваги для прямого прогнозування обмежувальних рамок об'єктів без пропозицій якорів. DETR краще справляється з перекритими та закритими продуктами, що робить його придатним для складних сцен страв.
Виклики виявлення в їжі
Виявлення їжі має унікальні виклики в порівнянні з загальним виявленням об'єктів:
- Відсутність чітких меж. Продукти на тарілці часто торкаються або перекриваються (соус на пасті, сир на салаті). На відміну від автомобілів або пішоходів, продукти рідко мають чіткі краї.
- Змінна подача. Один і той же продукт може виглядати кардинально по-різному в залежності від методу приготування, стилю подачі та супутніх продуктів.
- Варіація масштабу. Один мигдаль і ціла піца можуть з'явитися на одному фото страви, що вимагає виявлення в широкому діапазоні масштабів об'єктів.
Aguilar та ін. (2018), публікуючи в Multimedia Tools and Applications, оцінили моделі виявлення їжі і виявили, що точність виявлення (вимірювана середнім значенням точності, mAP) коливалася від 60 до 85 відсотків в залежності від складності сцени. Фотографії з одним продуктом досягли рівня виявлення понад 90 відсотків, тоді як складні страви з п'яти або більше продуктів впали нижче 70 відсотків.
Етап 3: Класифікація їжі (Класифікація зображень)
Після виявлення та локалізації продуктів кожен виявлений регіон повинен бути класифікований: чи це курка, риба, тофу чи темпе? Це проблема класифікації зображень, і це найактивніше досліджуваний етап системи розпізнавання їжі.
Використовувані архітектури
Конволюційні нейронні мережі (CNN). Архітектури ResNet, EfficientNet та Inception стали основними в дослідженнях класифікації їжі. Ці моделі витягують ієрархічні візуальні ознаки (текстура, форма, кольорові патерни) через послідовні конволюційні шари. Мейерс та ін. (2015) у статті Google Im2Calories використовували архітектуру на основі Inception для класифікації їжі та повідомили про точність top-1 приблизно 79 відсотків на наборі даних з 2500 класів їжі.
Vision Transformers (ViT). Введені Досовіцьким та ін. (2021), Vision Transformers застосовують механізм самостійної уваги з обробки природної мови до розпізнавання зображень. ViT ділить зображення на патчі та обробляє їх як послідовності, що дозволяє моделі захоплювати глобальний контекст зображення, який можуть пропустити CNN з обмеженими полями сприйняття. Останні дослідження класифікації їжі з використанням архітектур ViT та Swin Transformer повідомили про покращення на 3-7 процентних пунктів у порівнянні з базовими моделями CNN на стандартних еталонах розпізнавання їжі.
Гібридні архітектури. Сучасні виробничі системи часто поєднують витягування ознак CNN з міркуваннями на основі трансформерів, використовуючи переваги обох підходів.
Точність класифікації за категорією їжі
Точність класифікації значно варіюється залежно від типу їжі.
| Категорія їжі | Типова точність top-1 | Основна проблема |
|---|---|---|
| Цілі фрукти (яблуко, банан, апельсин) | 90–95% | Висока візуальна відмінність |
| Продукти з одного інгредієнта (стейк, рибне філе) | 80–90% | Варіації в методах приготування |
| Зернові та крохмалисті продукти (рис, паста, хліб) | 75–85% | Схожий вигляд між сортами |
| Складні страви (смажені, запіканки, каррі) | 55–70% | Склад інгредієнтів невидимий з поверхні |
| Напої | 40–60% | Візуально ідентичні рідини з різним складом |
| Соуси та приправи | 30–50% | Схожий візуальний вигляд, дуже різна калорійність |
Дані зібрані з Мейерс та ін. (2015), Боссарда та ін. (2014) та Темза та ін. (2021).
Виклик класифікації є найскладнішим для продуктів, які виглядають схоже, але мають дуже різні харчові профілі. Білий рис і рис з цвітної капусти візуально схожі, але різняться в п'ять разів за калорійністю. Цільне молоко та знежирене молоко візуально не відрізняються. Звичайну та дієтичну газовану воду не можна відрізнити лише за зовнішнім виглядом.
Еталонні набори даних
Food-101 (Боссард та ін., 2014). 101 категорія їжі з 1000 зображень кожна. Найбільш широко використовуваний еталон для досліджень класифікації їжі. Сучасні моделі досягають точності top-1 понад 95 відсотків на цьому еталоні, хоча відносно невелика кількість категорій (101) робить його менш репрезентативним для реального різноманіття.
ISIA Food-500 (Мін та ін., 2020). 500 категорій їжі з приблизно 400,000 зображень. Більш репрезентативний для реального різноманіття їжі. Точність top-1 на цьому еталоні значно нижча, зазвичай 65-80 відсотків.
UEC Food-256 (Кавано та Янагідa, 2015). 256 категорій японської їжі. Демонструє виклик розпізнавання їжі, специфічної для культури, оскільки моделі, навчанні на західних наборах даних, погано справляються з азійськими кухнями і навпаки.
Етап 4: Оцінка розміру порції
Оцінка розміру порції вважається найслабшою ланкою в системі AI-трекінгу калорій. Навіть якщо їжу правильно ідентифіковано, неправильна оцінка порції безпосередньо призводить до неправильної кількості калорій.
Техніки
Масштабування за об'єктом посилання. Деякі додатки просять користувачів включити об'єкт посилання (кредитну картку, монету або палець користувача) у фотографію. Відомі розміри об'єкта посилання забезпечують масштаб для оцінки розмірів їжі. Деаїс та ін. (2017) оцінили методи об'єкта посилання і виявили помилки оцінки порцій у 15-25 відсотків, коли об'єкт посилання був присутній.
Оцінка глибини. Стереокамери (два об'єктиви) або LiDAR-сенсори (доступні на деяких смартфонах) надають інформацію про глибину, що дозволяє 3D-реконструкцію поверхні їжі. У поєднанні з припущеннями про геометрію контейнера та щільність їжі, дані про глибину дозволяють оцінити об'єм. Мейерс та ін. (2015) повідомили, що оцінка на основі глибини зменшила помилки порцій у порівнянні з методами з одного зображення, але сенсори глибини не доступні на всіх пристроях.
Оцінка глибини з одного зображення. Моделі машинного навчання, навчанні оцінювати глибину з одиночних зображень, можуть наближено відтворити 3D-геометрію їжі без спеціалізованого обладнання. Точність нижча, ніж у фізичних сенсорів глибини, але застосовна до будь-якої камери смартфона.
Навчена оцінка об'єму. Моделі, навчанні на наборах даних з зображеннями їжі, поєднаними з відомими об'ємами, можуть безпосередньо прогнозувати розмір порції без явної 3D-реконструкції. Темз та ін. (2021) оцінили такі моделі і повідомили про середні помилки оцінки порцій у 20-40 відсотків.
Таблиця точності оцінки порцій
| Метод | Середня абсолютна помилка | Потребує спеціального обладнання | Посилання |
|---|---|---|---|
| Об'єкт посилання (кредитна картка) | 15–25% | Ні (лише об'єкт посилання) | Деаїс та ін. (2017) |
| Глибина стереокамери | 12–20% | Так (подвійна камера) | Мейерс та ін. (2015) |
| Глибина LiDAR | 10–18% | Так (телефон з LiDAR) | Останні непубліковані еталони |
| Оцінка глибини з одного зображення (ML) | 20–35% | Ні | Темз та ін. (2021) |
| Навчений об'єм (кінець до кінця) | 20–40% | Ні | Темз та ін. (2021) |
| Самооцінка користувача (без AI) | 20–50% | Ні | Вільямсон та ін. (2003) |
Таблиця показує, що всі автоматизовані методи перевершують неозброєну людську оцінку (Вільямсон та ін., 2003, Obesity Research), але жоден не досягає помилок нижче 10 відсотків постійно. Для контексту, 25-відсоткова помилка оцінки порції на страві з 400 калорій означає відхилення на 100 калорій, що достатньо, щоб нівелювати скромний дефіцит калорій, якщо накопичити його за кількома стравами.
Етап 5: Зіставлення з базою даних — критичний етап
Цей етап отримує найменше уваги в технічних обговореннях, але має найбільший вплив на фінальну точність. Після того, як AI ідентифікує їжу та оцінює її порцію, він повинен зіставити ідентифіковану їжу з записом у харчовій базі даних, щоб отримати значення калорій і поживних речовин.
Якість цього зіставлення повністю залежить від якості бази даних. Якщо AI правильно ідентифікує "грилировану курячу грудинку, 150 грамів", але зіставляє її з записом у краудсорсинговій базі даних, яка вказує 130 калорій на 100 грамів (в порівнянні з проаналізованим USDA значенням 165 калорій на 100 грамів), фінальна оцінка калорій буде на 27 відсотків занизькою, не тому, що AI зазнав невдачі, а тому, що база даних за нею є неточною.
Це основне усвідомлення, яке відрізняє різні додатки для трекінгу калорій AI: Точність ідентифікації їжі AI має значення лише в контексті харчової бази даних, що стоїть за нею.
Порівняння зіставлення бази даних
| Додаток для трекінгу AI | Ідентифікація їжі | База даних | Загальна надійність |
|---|---|---|---|
| Nutrola | AI розпізнавання фото + голосове | 1.8M записів, перевірених дієтологами, на основі USDA | Висока ідентифікація + висока точність даних |
| Cal AI | Оцінка фото AI | Приватна база даних (обмежена прозорість) | Помірна ідентифікація + невизначена точність даних |
| Додатки, що додають AI до краудсорсингової бази даних | Розпізнавання фото AI | Краудсорсинг, неперевірені записи | Помірна ідентифікація + низька точність даних |
Архітектура Nutrola спеціально розроблена для вирішення цієї критичної залежності. Функції розпізнавання фото AI та голосового введення обробляють етапи ідентифікації та оцінки порцій, тоді як базова база даних з 1.8 мільйона записів, перевірених дієтологами, отриманих з USDA FoodData Central, гарантує, що харчові дані, пов'язані з кожною ідентифікованою їжею, є науково точними. Це розділення завдань означає, що поліпшення в розпізнаванні їжі AI безпосередньо призводять до покращення точності трекінгу, не підриваючи її помилками бази даних на нижчих етапах.
Вимоги до навчальних даних
Навчання моделі розпізнавання їжі вимагає великих, маркованих наборів даних з зображеннями їжі. Якість та різноманіття навчальних даних безпосередньо впливають на продуктивність моделі.
Розмір набору даних. Сучасні моделі розпізнавання їжі зазвичай навчаються на наборах даних з 100,000 до кількох мільйонів маркованих зображень. Google Im2Calories (Мейерс та ін., 2015) використовував приватний набір даних з мільйонів зображень їжі. Загальнодоступні набори даних, такі як Food-101 (101,000 зображень) та ISIA Food-500 (400,000 зображень), значно менші.
Якість маркування. Кожне навчальне зображення повинно бути точно марковане з категорією їжі. Неправильно марковані навчальні дані призводять до моделей, які вчаться неправильним асоціаціям. Для зображень їжі маркування вимагає експертних знань, оскільки схожі продукти (жасминовий рис проти басматі, групер проти тріски) важко відрізнити непрофесіоналам.
Вимоги до різноманітності. Навчальні дані повинні представляти все різноманіття подачі їжі: різні кухні, стилі подачі, умови освітлення, кути зйомки та розміри порцій. Моделі, навчанні переважно на західних фотографіях їжі, погано справляються з азійськими, африканськими або близькосхідними кухнями.
Маркери порцій. Для навчання оцінки порцій зображення повинні бути пов'язані з точними вимірюваннями ваги. Створення цих маркерів вимагає фотографування їжі до та після її зважування, що є трудомістким процесом, який обмежує розмір навчальних наборів для оцінки порцій.
Проблема комплексної помилки
Найважливішим технічним поняттям в AI-трекінгу калорій є комплексна помилка. Кожен етап системи вводить невизначеність, і ці невизначеності множаться.
Розгляньте страву з грильованого лосося з рисом і брокколі:
- Точність виявлення: 90% (кожен продукт правильно локалізований).
- Точність класифікації: 85% (кожен продукт правильно ідентифікований).
- Точність оцінки порцій: 75% (порція в межах 25% від фактичної).
- Точність зіставлення з базою даних: 95% (для перевіреної бази даних) або 80% (для краудсорсингової бази даних).
Об'єднана ймовірність того, що всі етапи успішні для всіх трьох продуктів:
- З перевіреною базою даних: (0.90 × 0.85 × 0.75 × 0.95)^3 = 0.548^3 = 16.5% шанс, що всі три продукти будуть повністю точними.
- З краудсорсинговою базою даних: (0.90 × 0.85 × 0.75 × 0.80)^3 = 0.459^3 = 9.7% шанс, що всі три продукти будуть повністю точними.
Ці розрахунки ілюструють, чому комплексна помилка робить досягнення ідеальної точності недосяжним з поточною технологією. Однак вони також показують, що покращення будь-якого окремого етапу покращує загальну систему. Етап зіставлення з базою даних є найпростішим для оптимізації (використання перевіреної бази даних замість краудсорсингової) і забезпечує значне покращення точності на кожній страві.
Сучасний стан технологій та обмеження
Що працює добре
- Розпізнавання одиничних продуктів. Ідентифікація одного, чітко сфотографованого продукту з відомої кухні досягає точності понад 90 відсотків з сучасними архітектурами.
- Звичайні продукти. Найчастіше споживані продукти мають велику кількість навчальних даних і надійно розпізнаються.
- Доповнення штрих-кодом. Коли упаковану їжу можна ідентифікувати за штрих-кодом, а не за фото, точність ідентифікації наближається до 100 відсотків (обмежена лише читабельністю штрих-коду).
Що залишається складним
- Складні страви. Тушковані, запіканки, смажені та інші складні страви, де окремі інгредієнти не можуть бути візуально відокремлені, залишаються складними. Модель може оцінити загальну страву, але не її конкретний склад інгредієнтів.
- Сховані інгредієнти. Олії, масло, цукор та соуси, додані під час приготування, мають значну калорійність, але часто невидимі в кінцевій подачі. Овочева страва, приготована на 2 столових ложках олії, виглядає схоже на ту, що приготована на спреї для приготування, але різниця в калоріях становить приблизно 240 калорій.
- Точність порцій. Оцінка обсягу з 2D-зображень залишається найслабшою ланкою, з помилками 20-40 відсотків, що є типовим для сучасних методів.
- Культурне різноманіття їжі. Моделі, навчанні на західній кухні, погано справляються з азійською, африканською, близькосхідною та латиноамериканською їжею, які складають значну частину світового споживання їжі.
Часто задавані питання
Наскільки точний AI-трекінг калорій на основі фото?
Сучасні системи розпізнавання їжі AI досягають точності ідентифікації їжі від 75 до 95 відсотків для одиничних продуктів з добре представлених категорій їжі. Однак оцінка порцій додає значну помилку (20-40 відсотків за даними Темза та ін., 2021). Точність фінальної оцінки калорій залежить від комбінованого ефекту точності ідентифікації, точності порцій та точності бази даних за зіставленням. Додатки, такі як Nutrola, які поєднують AI-розпізнавання з перевіреною базою даних, прив'язаною до USDA, мінімізують компонент помилки бази даних.
Які моделі машинного навчання використовують додатки для розпізнавання їжі?
Більшість виробничих систем розпізнавання їжі використовують конволюційні нейронні мережі (ResNet, EfficientNet) або Vision Transformers (ViT, Swin Transformer) для класифікації, YOLO або DETR для виявлення та окремі моделі для оцінки порцій. Конкретні архітектури та деталі навчання є власністю більшості комерційних додатків.
Чи може AI розрізнити схожі продукти, такі як білий рис і рис з цвітної капусти?
Це залишається значним викликом. Візуально схожі продукти з різними харчовими профілями є відомим обмеженням розпізнавання їжі комп'ютерним зором. Моделі можуть навчитися тонким візуальним сигналам (текстура, структура зерна), які розрізняють деякі схожі продукти, але точність суттєво знижується для цих випадків. Це одна з причин, чому ідентифікація AI повинна поєднуватися з підтвердженням користувача та перевіреною базою даних, а не використовуватися як повністю автономна система.
Чому база даних, що стоїть за AI-розпізнаванням їжі, має значення?
AI-ідентифікація їжі визначає, що це за продукт. База даних визначає харчові значення, пов'язані з цим продуктом. Навіть ідеальна ідентифікація їжі призводить до неточних оцінок калорій, якщо запис у базі даних неправильний. Перевірена база даних, прив'язана до USDA FoodData Central (як у випадку з 1.8 мільйона записів Nutrola), гарантує, що правильно ідентифіковані продукти зіставляються з науково точними харчовими даними. Саме тому якість бази даних є такою ж важливою, як і якість моделі AI для загальної точності трекінгу.
Як AI-трекінг калорій покращиться в майбутньому?
Три області активних досліджень сприятимуть покращенням: (1) більші та різноманітніші навчальні набори даних покращать точність класифікації для глобальних кухонь; (2) LiDAR та багатокамерні сенсори глибини на смартфонах покращать оцінку порцій; (3) мультимодальні моделі, що поєднують візуальне розпізнавання з текстовим/голосовим контекстом (те, що користувач говорить, що він їсть), зменшать неоднозначність. Комбінація фото AI та голосового введення Nutrola вже реалізує цей мультимодальний підхід, використовуючи як візуальні, так і мовні дані для покращення точності ідентифікації їжі.
Готові трансформувати своє відстеження харчування?
Приєднуйтесь до тисяч, які трансформували свою подорож до здоров'я з Nutrola!