mAP та IoU: Глибоке занурення в комп'ютерне зору для розпізнавання їжі

Наскільки точним є розпізнавання їжі штучним інтелектом? Ми розглядаємо важливі метрики, mAP та IoU, пояснюємо, що вони означають для точності вашого обліку калорій, і показуємо, як сучасні архітектури вирішують найскладнішу задачу в AI для їжі: перекриття продуктів на одному тарілці.

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

Коли додаток для харчування стверджує, що його AI може "виявити вашу їжу з фото", що це насправді означає в вимірювальних термінах? Наскільки точним є це виявлення? Як система справляється з тарілкою, на якій шість різних продуктів торкаються один до одного? І як порівняти одну систему розпізнавання їжі з іншою?

Відповіді на ці запитання містяться в двох метриках, які дослідницька спільнота комп'ютерного зору використовує для оцінки моделей виявлення об'єктів: mAP (середня точність) та IoU (перетин на об'єднання). Ці числа визначають, чи є AI для їжі дійсно точним, чи просто вражаючим у демонстрації.

Розуміння IoU: Основна метрика

Перетин на об'єднання вимірює, наскільки добре передбачена рамка або маска сегментації перекривається з істинним значенням, фактичною локацією та формою продукту, позначеного людиною-анотатором.

Обчислення просте:

IoU = Площа перекриття / Площа об'єднання

IoU 1.0 означає, що передбачення ідеально збігається з істинним значенням. IoU 0.0 означає, що немає жодного перекриття. На практиці стандартний поріг для "правильного" виявлення в розпізнаванні їжі становить IoU 0.5 або вище, що означає, що принаймні 50 відсотків перекриття між передбаченою та фактичною областю їжі.

Чому IoU важливий для харчування

IoU безпосередньо впливає на оцінку порцій. Якщо рамка моделі охоплює лише 60 відсотків рису на вашій тарілці (IoU нижче порогу точності для щільної сегментації), оцінка порції буде занижена. І навпаки, якщо рамка занадто велика і включає частину сусіднього карі, оцінка калорій для рису буде завищена за рахунок харчового профілю карі.

Для простих тарілок з одним продуктом, що знаходиться в центрі кадру, IoU відносно легко оптимізувати. Проблема значно ускладнюється з комплексними тарілками з кількома продуктами.

Розуміння mAP: Системна метрика

Середня точність агрегує точність виявлення для всіх категорій їжі та порогів впевненості в один бал. Вона відповідає на запитання: наскільки надійно ця модель виявляє та правильно класифікує всі типи їжі, які вона може розпізнати?

Обчислення включає:

  1. Точність: Скільки з усіх виявлень моделі були правильними?
  2. Згадка: Скільки з усіх фактичних продуктів було знайдено моделлю?
  3. Середня точність (AP): Площа під кривою точності-згадки для однієї категорії їжі
  4. mAP: Середнє значення AP для всіх категорій їжі

Модель з mAP@0.5 0.85 правильно виявляє та класифікує 85 відсотків продуктів при порозі IoU 0.5 для всіх категорій. mAP@0.5:0.95 є більш суворою метрикою, яка середньо оцінює продуктивність при порогах IoU від 0.5 до 0.95, караючи моделі, які досягають вільних виявлень, але не справляються з щільною сегментацією.

Різниця між демонстрацією та реальністю

Більшість демонстрацій AI для їжі показують фото з одним продуктом, добре освітлені, з верхнього ракурсу: чаша рамену, тарілка суші, салат. У таких умовах сучасні моделі досягають mAP@0.5 вище 0.90. Це число значно знижується в реальних умовах.

Фактори, що погіршують mAP на практиці:

  • Кілька перекриваючихся продуктів: Тарілка з рисом, далом, сабзі та роти, що торкаються один до одного
  • Часткова оклюзія: Один продукт частково прихований за іншим
  • Змінне освітлення: Темне освітлення в ресторані проти яскравого освітлення на кухні
  • Нестандартні кути: Фото, зроблені збоку, а не прямо зверху
  • Візуальна схожість: Коричневий рис і кіноа або різні види далу, які виглядають майже ідентично

Реальний mAP для розпізнавання їжі зазвичай на 10-20 пунктів нижчий за контрольну продуктивність.

Проблема тарілки з кількома продуктами

Визначальною проблемою в розпізнаванні їжі є не виявлення одного продукту в ізоляції. Це виявлення п'яти або шести різних продуктів на одній тарілці, де вони торкаються, перекриваються та візуально зливаються один з одним.

Розгляньте типовий індійський thali: рис, два карі, дал, раїта, папад і мариновані овочі, все подане на одній тарілці з продуктами, що торкаються. Або мексиканська тарілка з рисом, бобами, гуакамоле, сальсою, сметаною та тортильєю. Кожен продукт потрібно ідентифікувати окремо та незалежно оцінити його порцію.

Семантична сегментація проти інстанс-сегментації

Існує два основних підходи до вирішення цієї проблеми, і відмінність має значення.

Семантична сегментація призначає кожному пікселю в зображенні категорію їжі. Усі пікселі, що є "рисом", отримують позначку як рис, усі пікселі, що є "карі", отримують позначку як карі. Це добре працює для чітко розділених продуктів, але не справляється, коли присутні два екземпляри однієї категорії (два різні карі на одній тарілці) або коли межі є неоднозначними.

Інстанс-сегментація ідентифікує кожен окремий продукт як окрему сутність, навіть якщо два продукти належать до однієї категорії. Це підхід, необхідний для точної аналізу тарілок з кількома продуктами, оскільки він дозволяє системі незалежно оцінювати розмір порції кожного продукту.

Сучасні архітектури інстанс-сегментації, такі як Mask R-CNN та її наступники, генерують як класифікаційну мітку, так і маску на рівні пікселів для кожного виявленого продукту. Якість цих масок безпосередньо визначає точність оцінки порцій.

Бенчмарк продуктивності: Де ми знаходимося

У галузі розпізнавання їжі використовуються кілька стандартних бенчмарків для оцінки продуктивності моделей. Ось як показують себе сучасні досягнення.

Food-101

Оригінальний великий бенчмарк для їжі, що містить 101 категорію їжі з 1,000 зображень кожна. Сучасні топ-моделі досягають точності класифікації вище 95 відсотків на Food-101. Однак Food-101 є бенчмарком класифікації (один продукт на зображення), а не бенчмарком виявлення, тому він не тестує сценарії з кількома продуктами на тарілці.

UECFOOD-256

Набір даних з 256 категоріями з анотаціями рамок, що дозволяє оцінку виявлення. Сучасні моделі досягають mAP@0.5 приблизно 0.78 до 0.82 на цьому наборі даних, що відображає підвищену складність виявлення кількох категорій.

Nutrition5k

Більш новий бенчмарк, який поєднує зображення їжі з фактичними харчовими даними, виміряними через лабораторний аналіз. Цей набір даних дозволяє провести оцінку "від початку до кінця": не лише "чи правильно модель ідентифікувала їжу?", а й "чи надала вона точну оцінку калорій?" Продуктивність на Nutrition5k виявляє кумулятивний ефект помилок виявлення на точність харчування.

ISIA Food-500

Великий набір даних з 500 категоріями їжі, взятими з різноманітних світових кухонь. Він виявляє проблему культурної упередженості в розпізнаванні їжі: моделі, навчальні переважно на західних наборах даних, показують значні зниження точності на категоріях їжі з Азії, Африки та Південної Америки.

Еволюція архітектури: Від CNN до Vision Transformer

Архітектури моделей, що використовуються для розпізнавання їжі, значно еволюціонували, і кожне покоління покращує обробку тарілок з кількома продуктами.

Сімейство YOLO (YOLOv5 до YOLOv10)

Сімейство моделей YOLO (You Only Look Once) пріоритезує швидкість. YOLOv8 та пізніші версії досягають mAP@0.5 від 0.75 до 0.82 на бенчмарках виявлення їжі, виконуючи інференцію за менше ніж 50 мілісекунд на сучасному обладнанні. Це робить їх придатними для реальних мобільних додатків, де користувач очікує результати протягом 1-2 секунд після зйомки фото.

Недолік полягає в тому, що моделі YOLO можуть мати труднощі з тісно перекриваючимися продуктами, де точне визначення меж є критично важливим для оцінки порцій.

Vision Transformers (ViT, DINOv2)

Архітектури на основі трансформерів обробляють зображення як послідовності патчів і використовують механізми самостійної уваги для захоплення глобального контексту. Для розпізнавання їжі це означає, що модель може використовувати контекстуальні підказки: якщо присутній рис, карі, швидше за все, буде поруч, щоб покращити виявлення неоднозначних продуктів.

Vision Transformers досягають вищого mAP на складних тарілках з кількома продуктами в порівнянні з підходами на основі CNN, особливо для продуктів з неоднозначними межами. Вартість — вищі обчислювальні вимоги та повільніша інференція.

Гібридні підходи

Сучасні найкращі системи поєднують екстракцію ознак на основі CNN з механізмами уваги трансформера. Ці гібридні архітектури досягають mAP@0.5 вище 0.85 на виявленні їжі з кількома продуктами, зберігаючи швидкість інференції, практичну для мобільних додатків.

Пайплайн розпізнавання Nutrola використовує гібридну архітектуру, яка балансує точність виявлення з часом відповіді менше 2 секунд, який очікують користувачі.

Від виявлення до харчування: Точність пайплайну

Остаточний вихід системи розпізнавання їжі — це не рамка або маска сегментації. Це оцінка калорій та макроелементів. Точність цієї оцінки залежить від ряду етапів, кожен з яких має свою власну похибку.

  1. Виявлення та класифікація: Чи правильно ідентифіковано продукт? (Вимірюється mAP)
  2. Якість сегментації: Чи достатньо щільна маска пікселів для точної оцінки порції? (Вимірюється IoU)
  3. Оцінка обсягу: Виходячи з маски, скільки їжі насправді є? (Вимірюється відносно істинних ваг)
  4. Харчова картографія: Виходячи з ідентифікованої їжі та оціненого обсягу, які калорії та макроелементи? (Вимірюється відносно лабораторно перевірених харчових даних)

Помилки на кожному етапі накопичуються. Модель, яка правильно ідентифікує продукт 90 відсотків часу з оцінками порцій, точними в межах 15 відсотків, буде давати оцінки калорій з комбінованою похибкою, що ширша, ніж вказує будь-яка окрема метрика.

Ось чому бенчмаркові метрики самі по собі не розкривають повну картину. Харчова база даних та компоненти оцінки обсягу є однаково важливими, і саме тут спеціалізовані системи харчування відрізняються від загальних моделей розпізнавання їжі.

Що ці метрики означають для вашого обліку

Для кінцевого користувача практичні наслідки цих бенчмарків є простими.

Однокомпонентні страви (чаша вівсянки, протеїновий коктейль, шматок фрукта) розпізнаються з високою точністю більшістю сучасних систем AI для їжі. Похибка зазвичай становить 5-10 відсотків від фактичного вмісту калорій.

Тарілки з кількома продуктами є складнішими. Очікуйте точності в межах 10-20 відсотків для добре розділених продуктів і 15-25 відсотків для перекриваючихся або змішаних продуктів. Тут мультимодальний ввід (додавання голосових або текстових деталей) значно покращує результати.

Складні змішані страви (рагу, запіканки, карі) залишаються найскладнішим викликом. Тут система сильно покладається на розпізнавання страви на рівні страви та пошук у базі даних, а не на аналіз компонентів. Перевірена база даних зі специфічними записами страв стає важливішою за точність виявлення.

Тенденція покращення очевидна: кожне покоління архітектур моделей зменшує розрив між контрольними показниками продуктивності та реальною точністю. Але найбільш значні покращення точності сьогодні походять не лише від кращих моделей виявлення, а й від поєднання візуального AI з перевіреними харчовими даними та мультимодальним ввідом користувача.

Часто задавані питання

Що таке mAP в AI розпізнавання їжі?

Середня точність (mAP) — це стандартна метрика для оцінки того, наскільки точно модель виявлення об'єктів ідентифікує та локалізує предмети на зображеннях. У розпізнаванні їжі mAP вимірює, наскільки надійно AI виявляє та правильно класифікує різні продукти харчування серед усіх категорій, на яких він був навчений. Вища mAP вказує на кращу загальну продуктивність виявлення. Ця метрика враховує як точність (чи були виявлення правильними), так і згадку (чи були знайдені всі предмети), надаючи всебічну оцінку точності системи. Сучасні моделі розпізнавання їжі досягають mAP@0.5 від 0.78 до 0.88 на стандартних бенчмарках.

Наскільки точний AI облік калорій з фото?

Точність значно варіюється в залежності від складності страви. Для однокомпонентних страв з чітко видимою їжею сучасний AI досягає оцінок калорій в межах 5-10 відсотків від фактичних значень. Для тарілок з кількома продуктами з добре розділеними компонентами точність знижується до 10-20 відсотків. Складні змішані страви та страви з прихованими інгредієнтами, такими як олії для приготування, становлять найбільший виклик, з потенційними помилками 20-30 відсотків, якщо покладатися лише на аналіз фото. Системи, які поєднують розпізнавання фото з контекстом, наданим користувачем про методи приготування та приховані інгредієнти, досягають найкращої реальної точності.

У чому різниця між семантичною та інстанс-сегментацією в AI для їжі?

Семантична сегментація позначає кожен піксель на зображенні категорією їжі, але не розрізняє окремі екземпляри однієї категорії. Інстанс-сегментація ідентифікує кожен окремий продукт як окрему сутність з власною маскою, навіть якщо кілька продуктів належать до однієї категорії. Для обліку калорій інстанс-сегментація є необхідною, оскільки вона дозволяє системі незалежно оцінювати розміри порцій для кожного продукту. Без інстанс-сегментації тарілка з двома різними карі буде розглядатися як одна область карі, що призведе до неточної оцінки харчування.

Чому бенчмарки AI для їжі не відображають реальну продуктивність?

Стандартні бенчмарки, такі як Food-101 та UECFOOD-256, використовують кураторські зображення, які, як правило, містять добре освітлені, однокомпонентні фото з верхнього ракурсу. Реальні фотографії їжі робляться в змінному освітленні, під нестандартними кутами, з кількома перекриваючимися продуктами та часто з частковою оклюзією. Крім того, набори даних бенчмарків переважно зосереджені на західних кухнях, що означає, що моделі, протестовані на них, можуть показувати завищену точність, яка не узагальнюється на глобально різноманітні кухні. Реальний mAP зазвичай на 10-20 пунктів нижчий за продуктивність бенчмарків через ці розподільчі розриви.

Яка архітектура моделі найкраща для розпізнавання їжі?

Найкращі результати сьогодні досягаються за допомогою гібридних архітектур, які поєднують екстракцію ознак на основі CNN з механізмами уваги на основі трансформера. Чисті моделі CNN, такі як сімейство YOLO, пропонують швидку інференцію, придатну для мобільних додатків, тоді як Vision Transformers забезпечують кращу точність на складних тарілках з кількома продуктами. Гібридні підходи поєднують обидва переваги, досягаючи mAP@0.5 вище 0.85 на виявленні їжі з кількома продуктами, зберігаючи час відповіді менше 2 секунд, необхідний для практичного використання на мобільних пристроях. Вибір архітектури також залежить від контексту впровадження: мобільні додатки віддають перевагу легшим моделям, тоді як обробка в хмарі може використовувати більші архітектури трансформерів.

Готові трансформувати своє відстеження харчування?

Приєднуйтесь до тисяч, які трансформували свою подорож до здоров'я з Nutrola!