Научные основы отслеживания калорий с помощью ИИ: как работает распознавание изображений

Техническое объяснение процесса компьютерного зрения, лежащего в основе отслеживания калорий с помощью ИИ: классификация изображений, обнаружение объектов, семантическая сегментация, оценка глубины, оценка объема и сопоставление с базой данных. Включает таблицы точности по методам и ссылки на опубликованные исследования.

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

Когда вы фотографируете свой обед, а приложение для отслеживания калорий определяет продукты и оценивает их питательную ценность за считанные секунды, это результат многоступенчатого процесса компьютерного зрения, включающего классификацию изображений, обнаружение объектов, оценку размера порции и сопоставление с базой данных. На каждом этапе возникают свои ограничения по точности и источники ошибок. Понимание работы этого процесса и его слабых мест крайне важно для оценки надежности отслеживания калорий с помощью ИИ как инструмента контроля питания.

В этой статье представлен технический анализ процесса компьютерного зрения, лежащего в основе распознавания пищи, включая архитектуры машинного обучения, опубликованные эталоны точности, критическую роль базы данных о питательных веществах и текущее состояние науки.

Процесс отслеживания калорий с ИИ: шесть этапов

Распознавание пищи с помощью ИИ — это не единая технология. Это последовательный процесс, каждый этап которого должен работать достаточно хорошо, чтобы итоговая оценка калорий имела смысл.

Этап Техническая задача Основная проблема Вклад ошибок
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 стали основными в исследованиях классификации пищи. Эти модели извлекают иерархические визуальные признаки (текстура, форма, цветовые паттерны) через последовательные сверточные слои. Meyers и др. (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% Похожий визуальный вид, очень разная калорийность

Данные собраны из работ Meyers и др. (2015), Bossard и др. (2014) и Thames и др. (2021).

Проблема классификации наиболее серьезна для продуктов, которые выглядят похоже, но имеют совершенно разные питательные профили. Белый рис и цветная капуста визуально схожи, но отличаются в пять раз по калорийной плотности. Цельное молоко и обезжиренное молоко визуально неразличимы. Обычная и диетическая газировка не могут быть различены только по внешнему виду.

Эталонные наборы данных

Food-101 (Bossard и др., 2014). 101 категория пищи с 1000 изображениями каждая. Наиболее широко используемый эталон для исследований классификации пищи. Современные модели, достигшие состояния искусства, показывают точность top-1 выше 95 процентов на этом эталоне, хотя относительно небольшое количество категорий (101) делает его менее репрезентативным для реального разнообразия.

ISIA Food-500 (Min и др., 2020). 500 категорий пищи с примерно 400,000 изображениями. Более репрезентативен для реального разнообразия пищи. Точность top-1 на этом эталоне существенно ниже, обычно 65-80 процентов.

UEC Food-256 (Kawano и Yanagida, 2015). 256 категорий японской пищи. Демонстрирует проблему распознавания культурно специфической пищи, так как модели, обученные на западных наборах данных, плохо работают с азиатской кухней и наоборот.

Этап 4: Оценка размера порции

Оценка размера порции широко признана как самый слабый элемент в процессе отслеживания калорий с помощью ИИ. Даже если продукт правильно идентифицирован, неверная оценка порции напрямую приводит к ошибочному подсчету калорий.

Техники

Масштабирование с помощью объекта-референса. Некоторые приложения просят пользователей включить объект-референс (кредитную карту, монету или палец пользователя) в фотографию. Известные размеры объекта-референса предоставляют масштаб для оценки размеров пищи. Dehais и др. (2017) оценили методы с объектом-референсом и обнаружили ошибки в оценке порции от 15 до 25 процентов, когда объект-референс был присутствовал.

Оценка глубины. Стереокамеры (две линзы) или LiDAR-датчики (доступные на некоторых смартфонах) предоставляют информацию о глубине, что позволяет 3D-реконструкцию поверхности пищи. В сочетании с предположениями о геометрии контейнера и плотности пищи данные о глубине позволяют выполнять объемные оценки. Meyers и др. (2015) сообщили, что оценка на основе глубины снизила ошибки порции по сравнению с методами на основе одного изображения, но датчики глубины не доступны на всех устройствах.

Оценка глубины с помощью монохромного изображения. Модели машинного обучения, обученные оценивать глубину из одиночных изображений, могут приблизительно воспроизводить 3D-геометрию пищи без специализированного оборудования. Точность ниже, чем у физических датчиков глубины, но применима к любой камере смартфона.

Обученная оценка объема. Модели, обученные на наборах данных изображений пищи, сопоставленных с известными объемами, могут напрямую предсказывать размер порции без явной 3D-реконструкции. Thames и др. (2021) оценили такие модели и сообщили о средних ошибках оценки порции от 20 до 40 процентов.

Таблица точности оценки порции

Метод Средняя абсолютная ошибка Требует специального оборудования Ссылка
Объект-референс (кредитная карта) 15–25% Нет (только объект-референс) Dehais и др. (2017)
Глубина стереокамеры 12–20% Да (двойная камера) Meyers и др. (2015)
Глубина LiDAR 10–18% Да (телефон с LiDAR) Недавние неопубликованные эталоны
Оценка глубины с помощью монохромного изображения (МЛ) 20–35% Нет Thames и др. (2021)
Обученный объем (end-to-end) 20–40% Нет Thames и др. (2021)
Самооценка пользователя (без ИИ) 20–50% Нет Williamson и др. (2003)

Таблица показывает, что все автоматизированные методы превосходят неоснащенную человеческую оценку (Williamson и др., 2003, Obesity Research), но ни один из них не достигает ошибок ниже 10 процентов последовательно. Для контекста, ошибка оценки порции в 25 процентов на блюде в 400 калорий приводит к отклонению в 100 калорий, что достаточно, чтобы свести на нет скромный дефицит калорий, если накопить его за несколько приемов пищи.

Этап 5: Сопоставление с базой данных — критический шаг

Этот этап получает наименьшее внимание в технических обсуждениях, но имеет наибольшее влияние на конечную точность. После того как ИИ идентифицирует продукт и оценит его порцию, необходимо сопоставить идентифицированный продукт с записью в базе данных о питательных веществах, чтобы получить значения калорий и питательных веществ.

Качество этого сопоставления полностью зависит от качества базовой базы данных. Если ИИ правильно идентифицирует "грудку курицы на гриле, 150 граммов", но сопоставляет её с записью в краудсорсинговой базе данных, которая указывает 130 калорий на 100 граммов (в отличие от проанализированного USDA значения 165 калорий на 100 граммов), итоговая оценка калорий будет на 27 процентов ниже, не потому что ИИ ошибся, а потому что база данных за ним неточная.

Это основное понимание, которое отделяет разные приложения для отслеживания калорий с ИИ: точность идентификации пищи с ИИ полезна только в том случае, если за ней стоит качественная база данных о питательных веществах.

Сравнение сопоставления с базой данных

Приложение для отслеживания калорий Идентификация пищи База данных Общая надежность
Nutrola Идентификация по фото + голосу 1.8M записей, проверенных диетологами, основанных на USDA Высокая идентификация + высокая точность данных
Cal AI Оценка по фото ИИ Собственная база данных (ограниченная прозрачность) Умеренная идентификация + неопределенная точность данных
Приложения, добавляющие ИИ к краудсорсинговой базе Идентификация по фото ИИ Краудсорсинговые, непроверенные записи Умеренная идентификация + низкая точность данных

Архитектура Nutrola специально разработана для решения этой критической зависимости. Функции распознавания по фото и голосовой записи ИИ обрабатывают этапы идентификации и оценки порции, в то время как бэкенд с 1.8 миллиона записей, проверенных диетологами и основанных на USDA FoodData Central, обеспечивает научную точность питательных данных, связанных с каждым идентифицированным продуктом. Это разделение задач означает, что улучшения в распознавании пищи с ИИ напрямую приводят к улучшениям в точности отслеживания, не подвергаясь влиянию ошибок базы данных на нижних уровнях.

Требования к обучающим данным

Обучение модели распознавания пищи требует больших размеченных наборов данных изображений пищи. Качество и разнообразие обучающих данных напрямую влияют на производительность модели.

Размер набора данных. Современные модели распознавания пищи обычно обучаются на наборах данных от 100,000 до нескольких миллионов размеченных изображений. Google Im2Calories (Meyers и др., 2015) использовал собственный набор данных из миллионов изображений пищи. Общедоступные наборы данных, такие как Food-101 (101,000 изображений) и ISIA Food-500 (400,000 изображений), значительно меньше.

Качество меток. Каждое обучающее изображение должно быть точно размечено по категории пищи. Неверно размеченные обучающие данные приводят к тому, что модели учатся неверным ассоциациям. Для изображений пищи разметка требует экспертного знания, поскольку похожие продукты (жасминовый рис против басмати, групер против трески) трудно отличить непрофессионалам.

Требования к разнообразию. Обучающие данные должны представлять полное разнообразие подачи пищи: разные кухни, стили подачи, условия освещения, углы съемки и размеры порций. Модели, обученные в основном на фотографиях западной пищи, плохо работают с азиатской, африканской или ближневосточной кухней.

Метки порций. Для обучения оценки порции изображения должны быть сопоставлены с фактическими измерениями веса. Создание этих меток требует фотографирования пищи до и после взвешивания, что является трудоемким процессом и ограничивает размер наборов данных для обучения оценки порции.

Проблема комплексной ошибки

Самая важная техническая концепция в отслеживании калорий с ИИ — это комплексная ошибка. Каждый этап процесса вносит неопределенность, и эти неопределенности умножаются.

Рассмотрим блюдо из жареного лосося с рисом и брокколи:

  1. Точность обнаружения: 90% (каждый продукт правильно локализован).
  2. Точность классификации: 85% (каждый продукт правильно идентифицирован).
  3. Точность оценки порции: 75% (порция в пределах 25% от фактической).
  4. Точность сопоставления с базой данных: 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 процентов для текущих методов.
  • Культурное разнообразие пищи. Модели, обученные на западной кухне, показывают низкие результаты на азиатских, африканских, ближневосточных и латиноамериканских продуктах, которые составляют значительную часть глобального потребления пищи.

Часто задаваемые вопросы

Насколько точным является отслеживание калорий на основе фото с ИИ?

Современные системы распознавания пищи с ИИ достигают точности идентификации пищи от 75 до 95 процентов для одиночных продуктов из хорошо представленных категорий пищи. Однако оценка порции добавляет значительные ошибки (20-40 процентов по данным Thames и др., 2021). Точность итоговой оценки калорий зависит от комплексного эффекта точности идентификации, точности порции и точности базы данных, стоящей за совпадением. Приложения, такие как Nutrola, которые сочетают распознавание ИИ с проверенной базой данных, основанной на USDA, минимизируют компонент ошибки базы данных.

Какие модели машинного обучения используют приложения для распознавания пищи?

Большинство производственных систем распознавания пищи используют сверточные нейронные сети (ResNet, EfficientNet) или Vision Transformers (ViT, Swin Transformer) для классификации, YOLO или DETR для обнаружения и отдельные модели для оценки порции. Конкретные архитектуры и детали обучения являются собственностью большинства коммерческих приложений.

Может ли ИИ различать похожие продукты, такие как белый рис и рис цветной капусты?

Это остается значительной проблемой. Визуально похожие продукты с разными питательными профилями являются известным ограничением распознавания пищи с помощью компьютерного зрения. Модели могут изучать тонкие визуальные признаки (текстура, структура зерна), которые различают некоторые похожие продукты, но точность существенно снижается для этих случаев. Это одна из причин, почему идентификация ИИ должна сочетаться с подтверждением пользователя и проверенной базой данных, а не использоваться как полностью автономная система.

Почему база данных, стоящая за распознаванием пищи с ИИ, имеет значение?

Идентификация пищи с ИИ определяет, что это за продукт. База данных определяет питательные значения, связанные с этим продуктом. Даже идеальная идентификация пищи приводит к неточным оценкам калорий, если запись в базе данных неверна. Проверенная база данных, основанная на USDA FoodData Central (как в случае с 1.8 миллиона записей Nutrola), гарантирует, что правильно идентифицированные продукты сопоставляются с научно точными данными о питательных веществах. Вот почему качество базы данных так же важно, как и качество модели ИИ для общей точности отслеживания.

Как в будущем улучшится отслеживание калорий с помощью ИИ?

Три области активных исследований будут способствовать улучшениям: (1) более крупные и разнообразные обучающие наборы данных улучшат точность классификации для глобальных кухонь; (2) LiDAR и многокамерные датчики глубины на смартфонах улучшат оценку порции; (3) многомодальные модели, объединяющие визуальное распознавание с текстовым/голосовым контекстом (то, что пользователь говорит о том, что он ест), уменьшат неопределенность. Комбинация фото ИИ и голосовой записи Nutrola уже реализует этот многомодальный подход, используя как визуальные, так и языковые входы для повышения точности идентификации пищи.

Готовы трансформировать отслеживание питания?

Присоединяйтесь к тысячам тех, кто изменил свой путь к здоровью с Nutrola!