Статьи

Как работает подсчёт калорий по фотографии

тарелка с едой, разделённая сеткой, рядом порция еды и её соответствующее фото
Тарелка с едой, разделённая сеткой, рядом порция еды и её соответствующее фото

Как работает подсчёт калорий по фотографии?

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

Это принципиально иначе, чем ввести название блюда в поиск, который выдаёт уже измеренное кем-то значение калорийности. Оценка по фото — это догадка, построенная целиком из пикселей. Ниже разберём каждый этап отдельно.

Из каких этапов состоит оценка по фото?

Распознать блюдо и узнать его калорийность — две разные задачи. Решена почти полностью только первая.

Систематический обзор 2022 года, посвящённый мобильным приложениям компьютерного зрения для еды и опубликованный в журнале Healthcare (Basel), объясняет почему. Оказалось, что 90,9% рассмотренных приложений не могли даже отделить еду от тарелки, стола или фона, прежде чем пытаться её классифицировать (Amugongo et al., 2022). Если система не может чисто выделить еду на первом шаге, все последующие шаги наследуют эту ошибку, включая название блюда и оценку порции.

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

Как ИИ понимает, что именно изображено на фото?

Первый этап — сегментация: система определяет, какие пиксели относятся к еде, а какие к тарелке, столу или руке.

Второй этап — классификация. На этом шаге выделенная область сопоставляется с категорией блюда, например "куриная грудка гриль" или "рис на пару". Тот же систематический обзор в Healthcare называет сегментацию и классификацию первыми двумя этапами конвейера, используемого в рассмотренных мобильных приложениях, прежде чем появляется какое-либо число калорий (Amugongo et al., 2022).

Конкретный пример такого этапа — прототип сканера еды, созданный в NYU Tandon. Он описан в новостном релизе университета 2025 года об исследовании, представленном на конференции IEEE International Conference on Mobile Computing and Sustainable Informatics. Прототип обнаруживал и распознавал продукты в 214 категориях со средней точностью (mean average precision) 0,7941, что в релизе описано примерно как 80% точности при определении местоположения и распознавании еды на изображении (NYU Tandon, 2025).

Эти 80% описывают только этот шаг, поиск и название блюда. О количестве еды на тарелке они пока ничего не говорят.

Как плоское фото превращается в размер порции?

Как только блюдо распознано, системе нужно оценить объём по двумерному изображению, а это задача сложнее предыдущей.

Обзор в Healthcare приводит два конкретных метода и их измеренную погрешность. Метод на основе смартфона с датчиком глубины дал абсолютную ошибку объёма 35,1 г при стандартном отклонении 42,8 г, что составляет примерно 14% от оценённой порции (Amugongo et al., 2022). Другой, одноракурсный метод использовал квадратичную оценку кривой по двумерному размеру еды на фото. Его ошибка в итоговой оценке калорийности составила 21,3% (Amugongo et al., 2022, со ссылкой на Okamoto и Yani, 2016).

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

Именно на этом этапе угол съёмки, освещение и видимость блюда могут изменить результат, ведь у системы нет независимого способа проверить собственную догадку.

Почему система не видит масло, соус или точный вес?

Фото показывает только поверхность блюда, а не то, что происходило во время готовки. Масло, размешанное в рисе, добавляет калории, которые камера никогда не зафиксирует. То же касается масла, на котором жарилась куриная грудка, или соуса, вмешанного в рагу. ИИ может рассуждать только о том, что видно на изображении.

Именно поэтому так важна упомянутая выше цифра в 90,9% приложений, не справляющихся с отделением еды от фона. У системы, которая с трудом отделяет еду от тарелки, мало шансов отделить видимый ингредиент от скрытого (Amugongo et al., 2022). Фотография — единственный источник данных. Всё, что на ней не видно, для оценки не существует.

Чем оценка по фото отличается от поиска в базе продуктов или сканирования штрихкода?

Оценка по фото — это не поиск в базе данных. Она получается напрямую из чтения изображения моделью компьютерного зрения, которая распознаёт блюдо и оценивает порцию, калории и БЖУ по тому, что видит. Фотография не сопоставляется с таблицей заранее измеренных продуктов.

Поиск в базе данных или сканирование штрихкода — другой, более старый метод. Он возвращает число, которое кто-то уже измерил: лабораторный анализ или значение, напечатанное брендом на этикетке. USDA FoodData Central разделяет свои записи по способу получения данных. Foundation Foods получены лабораторным анализом образцов сырья и обновляются дважды в год. SR Legacy — более старые данные на основе анализа, последний раз обновлённые в 2018 году. Branded Foods — это значения калорийности и БЖУ, которые бренды сами печатают на своих этикетках, обновляются ежемесячно (USDA FoodData Central).

Эти цифры были измерены однократно, в лаборатории или на этикетке, а затем сохранены в базе. Система здесь вообще ничего не оценивает, она просто сопоставляет идентификатор с готовой записью. Оценка по фото, наоборот, рассчитывается заново по изображению каждый раз, без какого-либо сохранённого измерения за ней. У неё нет идентификатора для сопоставления: ИИ должен вывести блюдо, способ его приготовления и размер порции целиком из пикселей, а затем рассчитать число, которого до момента съёмки нигде не существовало.

Составные блюда добавляют ещё одну сложность. Цифра про отделение еды от фона, упомянутая выше, показывает почему: единичный видимый продукт, например целое яблоко, даёт этапу классификации одну чёткую цель для сегментации. А смешанная тарелка, где рис под соусом, а под ним ещё и случайный овощ, состоит из частей, скрытых за другими частями (Amugongo et al., 2022).

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

Откуда берётся погрешность на каждом этапе?

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

Откуда берётся погрешность на каждом этапе?
Этап Что может пойти не так Иллюстративная погрешность Эффект на истинное значение 500 ккал
Сегментация Еда нечётко отделена от тарелки или фона 10% 500 превращается в 450 или 550 ккал
Классификация Неверно угадано блюдо или способ приготовления 10% Дополнительный сдвиг на 45–55 ккал
Оценка объёма Размер порции неверно оценён по плоскому изображению 15% Дополнительный сдвиг на 60–82 ккал

Возьмём истинное значение в 500 ккал для тарелки еды. Если уже сегментация ошибается на 10%, число, которое система передаёт дальше, оказывается где-то между 450 и 550 ккал. И это происходит ещё до запуска классификации или оценки объёма.

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

Реальная погрешность — это три отдельные догадки, наложенные одна на другую. Два подкреплённых источником диапазона показывают, как это выглядит на практике. Метод с датчиком глубины давал примерно 14% ошибки объёма. Одноракурсный метод с квадратичной оценкой кривой давал 21,3% ошибки в калорийности (Amugongo et al., 2022, со ссылкой на Okamoto и Yani, 2016). Оба числа относятся к той же самой цепочке погрешностей, но именно к тем конкретным академическим системам, на которых они измерялись.

Зачем приложение просит проверить и отредактировать результат?

Потому что оценка — это первая догадка, а не окончательный ответ. Только человек, смотрящий на настоящую тарелку, знает, что не увидела камера.

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

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

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

Меняет ли большая тарелка или предмет для масштаба в кадре точность оценки?

Предмет известного размера в кадре помогает алгоритму оценки объёма определить масштаб, ведь у системы нет другого способа судить о размере по плоскому изображению. Без него размер тарелки и видимость блюда становятся переменными, которые оценка не может полностью учесть. Это одна из причин, почему вообще существует погрешность в оценке порции (Amugongo et al., 2022).

Может ли ИИ отличить жареный вариант блюда от приготовленного на пару?

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

Заменяет ли оценка по фото взвешивание еды?

Нет. Оценка по фото — это расчётная догадка по изображению, а кухонные весы измеряют реальный вес перед вами. Это два разных типа чисел: одно выводится из пикселей, другое — прямое измерение, и только второе полностью убирает неопределённость в размере порции.

Почему два фото одного и того же блюда могут дать разный результат?

Сегментация, классификация и оценка объёма зависят от того, сколько блюда видно на конкретном снимке. Чуть другой угол съёмки меняет входные данные для каждого последующего этапа. Качество изображения, которое различается от устройства к устройству, тот же обзор в Healthcare называет отдельной, но связанной проблемой мобильных приложений компьютерного зрения для еды в целом (Amugongo et al., 2022).

Насколько вообще точны ИИ-счётчики калорий?

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

Источники

Ознакомьтесь с нашей редакционной политикой, чтобы узнать, как проверялись цифры в этой статье. Издатель — Petros IT Solutions SRL. Сообщить об ошибке можно на [email protected].

Необязательная аналитика помогает нам понять, какие статьи и инструменты полезны. Она фиксирует посещения и клики, но никогда не фиксирует данные, введённые в калькулятор, или его результаты. Если вы согласитесь, Google Analytics 4 установит куки в вашем браузере, и Google получит эти данные. Конфиденциальность