mAP и IoU: Глубокое погружение в бенчмарки компьютерного зрения для распознавания продуктов питания
Насколько точно ИИ распознаёт еду на самом деле? Мы разбираем ключевые метрики — mAP и IoU, объясняем, что они означают для точности подсчёта калорий, и показываем, как современные архитектуры справляются с самой сложной задачей в пищевом ИИ: перекрывающимися продуктами на одной тарелке.
Когда приложение для питания заявляет, что его ИИ может «определить вашу еду по фото», что это на самом деле означает в измеримых показателях? Насколько точна идентификация? Как система справляется с тарелкой, на которой шесть разных блюд соприкасаются друг с другом? И как сравнить одну систему распознавания еды с другой?
Ответы кроются в двух метриках, которые сообщество исследователей компьютерного зрения использует для оценки моделей обнаружения объектов: mAP (mean Average Precision — средняя точность) и IoU (Intersection over Union — пересечение по объединению). Именно эти числа определяют, является ли пищевой ИИ действительно точным или лишь впечатляющим в демонстрации.
Понимание IoU: Базовая метрика
Intersection over Union измеряет, насколько хорошо предсказанная ограничивающая рамка или маска сегментации совпадает с эталонной разметкой — реальным расположением и формой продукта питания, обозначенными человеком-аннотатором.
Расчёт прост:
IoU = Площадь пересечения / Площадь объединения
IoU равный 1.0 означает, что предсказание идеально совпадает с эталоном. IoU равный 0.0 означает полное отсутствие пересечения. На практике стандартный порог «правильного» обнаружения в распознавании еды — IoU 0.5 или выше, то есть как минимум 50 процентов совпадения между предсказанной и реальной областью продукта.
Почему IoU важен для нутрициологии
IoU напрямую влияет на оценку порции. Если ограничивающая рамка модели захватывает только 60 процентов риса на вашей тарелке (IoU ниже порога точности для плотной сегментации), оценка порции будет занижена. И наоборот, если рамка слишком велика и захватывает часть соседнего карри, калорийность риса будет завышена из-за нутриентного профиля карри.
Для простых тарелок с одним продуктом, расположенным по центру кадра, IoU относительно легко оптимизировать. Сложность резко возрастает при работе со сложными тарелками с несколькими блюдами.
Понимание mAP: Метрика системного уровня
Mean Average Precision объединяет точность обнаружения по всем категориям продуктов и порогам уверенности в единый показатель. Она отвечает на вопрос: по всем типам еды, которые эта модель может распознать, насколько надёжно она их обнаруживает и правильно классифицирует?
Расчёт включает:
- Precision (точность): Из всех обнаружений, сделанных моделью, сколько были правильными?
- Recall (полнота): Из всех реально присутствующих продуктов, сколько модель нашла?
- Average Precision (AP): Площадь под кривой precision-recall для одной категории продуктов
- mAP: Среднее значение AP по всем категориям продуктов
Модель с mAP@0.5 равным 0.85 правильно обнаруживает и классифицирует 85 процентов продуктов при пороге IoU 0.5 по всем категориям. mAP@0.5:0.95 — более строгая метрика, которая усредняет производительность по порогам IoU от 0.5 до 0.95, штрафуя модели, которые достигают приблизительного обнаружения, но не справляются с точной сегментацией.
Разрыв между демонстрацией и реальностью
Большинство демонстраций пищевого ИИ показывают хорошо освещённые фотографии одного продукта сверху: миску рамена, тарелку суши, салат. В таких условиях современные модели достигают mAP@0.5 выше 0.90. В реальных условиях эти показатели значительно снижаются.
Факторы, снижающие mAP на практике:
- Несколько перекрывающихся продуктов: Тарелка с рисом, далом, сабзи и роти, соприкасающимися друг с другом
- Частичное перекрытие: Один продукт частично скрыт за другим
- Различное освещение: Тусклый свет в ресторане против яркого освещения на кухне
- Нестандартные углы: Фотографии, сделанные сбоку, а не строго сверху
- Визуальное сходство: Бурый рис и киноа, или разные виды дала, которые выглядят почти одинаково
В реальных условиях mAP распознавания еды обычно на 10–20 пунктов ниже контрольных бенчмарков.
Проблема тарелки с несколькими блюдами
Ключевая проблема распознавания еды — не идентификация одного продукта в отдельности. Это идентификация пяти-шести различных продуктов на одной тарелке, где они соприкасаются, перекрываются и визуально сливаются друг с другом.
Представьте типичное индийское тхали: рис, два вида карри, дал, райта, папад и чатни — всё подаётся на одной тарелке, и продукты соприкасаются. Или мексиканскую тарелку с рисом, фасолью, гуакамоле, сальсой, сметаной и тортильей. Каждый продукт необходимо идентифицировать отдельно и оценить его порцию независимо.
Семантическая сегментация vs. сегментация экземпляров
Существует два основных подхода к решению этой проблемы, и различие между ними принципиально.
Семантическая сегментация присваивает каждому пикселю изображения категорию продукта. Все пиксели, соответствующие «рису», помечаются как рис, все пиксели «карри» — как карри. Это хорошо работает для чётко разделённых продуктов, но не справляется, когда присутствуют два экземпляра одной категории (два разных карри на одной тарелке) или когда границы размыты.
Сегментация экземпляров определяет каждый отдельный продукт как самостоятельный объект, даже если два продукта принадлежат к одной категории. Именно такой подход необходим для точного анализа тарелки с несколькими блюдами, поскольку он позволяет системе оценивать размер порции каждого продукта независимо.
Современные архитектуры сегментации экземпляров, такие как Mask R-CNN и её преемники, генерируют и метку классификации, и попиксельную маску для каждого обнаруженного продукта. Качество этих масок напрямую определяет точность оценки порций.
Результаты бенчмарков: Текущее положение дел
Область распознавания еды использует несколько стандартных бенчмарков для оценки производительности моделей. Вот как обстоят дела с современным уровнем технологий.
Food-101
Оригинальный крупномасштабный бенчмарк для еды, содержащий 101 категорию продуктов по 1000 изображений в каждой. Лучшие современные модели достигают точности классификации выше 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 секунд, которое ожидают пользователи.
От обнаружения к нутриентам: Конвейер точности
Конечный результат системы распознавания еды — не ограничивающая рамка или маска сегментации. Это оценка калорий и макронутриентов. Точность этой оценки зависит от конвейера шагов, каждый из которых имеет свою погрешность.
- Обнаружение и классификация: Правильно ли определён продукт? (Измеряется с помощью mAP)
- Качество сегментации: Достаточно ли точна попиксельная маска для точной оценки порции? (Измеряется с помощью IoU)
- Оценка объёма: По данной маске, сколько еды на самом деле присутствует? (Измеряется по эталонным весам)
- Нутриентное сопоставление: По определённому продукту и оценённому объёму, каковы калории и макронутриенты? (Измеряется по лабораторно верифицированным данным о пищевой ценности)
Ошибки на каждом этапе накапливаются. Модель, которая правильно определяет продукт в 90 процентах случаев с точностью оценки порции в пределах 15 процентов, будет давать оценки калорийности с комбинированной погрешностью, превышающей каждую из отдельных метрик.
Вот почему одни лишь метрики бенчмарков не рассказывают всей истории. Нутриентная база данных и компоненты оценки объёма одинаково важны, и именно в них специализированные системы для питания отличаются от универсальных моделей распознавания еды.
Что эти метрики означают для вашего отслеживания питания
Для конечного пользователя практические последствия этих бенчмарков просты.
Приёмы пищи из одного продукта (миска овсянки, протеиновый коктейль, фрукт) распознаются с высокой точностью большинством современных пищевых ИИ-систем. Погрешность обычно составляет от 5 до 10 процентов от реальной калорийности.
Тарелки с несколькими продуктами сложнее. Ожидайте точность в пределах 10–20 процентов для хорошо разделённых продуктов и 15–25 процентов для перекрывающихся или смешанных продуктов. Именно здесь мультимодальный ввод (добавление голоса или текстовых деталей) значительно улучшает результаты.
Сложные составные блюда (рагу, запеканки, карри) остаются самой трудной задачей. Здесь система в значительной степени полагается на распознавание на уровне блюда и поиск по базе данных, а не на покомпонентный анализ. Верифицированная база данных с записями для конкретных блюд становится важнее точности обнаружения.
Траектория улучшения очевидна: каждое поколение архитектур моделей сокращает разрыв между производительностью на контролируемых бенчмарках и точностью в реальных условиях. Но наиболее значимые улучшения точности сегодня достигаются не только за счёт лучших моделей обнаружения, а за счёт сочетания визуального ИИ с верифицированными данными о пищевой ценности и мультимодальным пользовательским вводом.
Часто задаваемые вопросы
Что такое mAP в ИИ-распознавании еды?
Mean Average Precision (mAP) — стандартная метрика для оценки точности обнаружения и локализации объектов на изображениях моделью объектного детектирования. В распознавании еды mAP измеряет, насколько надёжно ИИ обнаруживает и правильно классифицирует различные продукты по всем категориям, на которых он обучен. Более высокий mAP указывает на лучшую общую производительность обнаружения. Метрика учитывает как precision (были ли обнаружения правильными), так и recall (были ли найдены все продукты), обеспечивая комплексную оценку точности системы. Современные лучшие модели распознавания еды достигают показателей mAP@0.5 от 0.78 до 0.88 на стандартных бенчмарках.
Насколько точен ИИ-подсчёт калорий по фотографиям?
Точность существенно варьируется в зависимости от сложности приёма пищи. Для блюд из одного продукта с хорошо видимой едой современный ИИ достигает оценки калорий с погрешностью от 5 до 10 процентов от реальных значений. Для тарелок с несколькими хорошо разделёнными продуктами точность падает до 10–20 процентов. Сложные составные блюда и приёмы пищи со скрытыми ингредиентами, такими как растительное масло, представляют наибольшую сложность, с потенциальной погрешностью от 20 до 30 процентов при использовании только анализа фотографий. Системы, сочетающие распознавание фото с пользовательским контекстом о способах приготовления и скрытых ингредиентах, достигают лучшей точности в реальных условиях.
В чём разница между семантической сегментацией и сегментацией экземпляров в пищевом ИИ?
Семантическая сегментация помечает каждый пиксель изображения категорией продукта, но не различает отдельные экземпляры одной категории. Сегментация экземпляров определяет каждый отдельный продукт как самостоятельный объект со своей маской, даже если несколько продуктов принадлежат к одной категории. Для подсчёта калорий сегментация экземпляров необходима, поскольку позволяет системе оценивать размер порции каждого продукта независимо. Без сегментации экземпляров тарелка с двумя разными карри будет обработана как одна область карри, что даст неточную оценку пищевой ценности.
Почему бенчмарки пищевого ИИ не отражают реальную производительность?
Стандартные бенчмарки, такие как Food-101 и UECFOOD-256, используют отобранные изображения с хорошим освещением, одним продуктом и съёмкой сверху. Фотографии еды в реальных условиях делаются при различном освещении, под непостоянными углами, с несколькими перекрывающимися продуктами и часто с частичным перекрытием. Кроме того, наборы данных бенчмарков преимущественно ориентированы на западную кухню, что означает завышенную точность моделей, которая не распространяется на глобально разнообразные кухни. Реальный mAP обычно на 10–20 пунктов ниже показателей бенчмарков из-за этих различий в распределении данных.
Какая архитектура модели лучше всего подходит для распознавания еды?
Лучшие результаты на данный момент показывают гибридные архитектуры, сочетающие извлечение признаков на основе свёрточных нейронных сетей (CNN) с механизмами внимания на основе трансформеров. Чистые модели CNN, такие как семейство YOLO, обеспечивают быстрый инференс, подходящий для мобильных приложений, тогда как Vision Transformers обеспечивают лучшую точность на сложных тарелках с несколькими блюдами. Гибридные подходы сочетают оба преимущества, достигая mAP@0.5 выше 0.85 на обнаружении нескольких продуктов при сохранении времени отклика менее 2 секунд, необходимого для практического мобильного использования. Выбор архитектуры также зависит от контекста развёртывания: мобильные приложения предпочитают более лёгкие модели, тогда как облачная обработка позволяет использовать более крупные архитектуры на основе трансформеров.
Готовы трансформировать отслеживание питания?
Присоединяйтесь к тысячам тех, кто изменил свой путь к здоровью с Nutrola!