← Назад к блогу
Как мы сделали распознавание блюд по фото — что под капотом
Блог разработки · 13 июня 2026 г. · 3 мин чтения

Как мы сделали распознавание блюд по фото — что под капотом

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

Сегодня — про то, как устроено распознавание блюд по фото в NutriApp. Без маркетингового глянца, а как оно работает на самом деле: что мы пробовали, что взлетело, а что — нет.

Зачем оно вообще

В классических трекерах ввод приёма пищи занимает 1-3 минуты на блюдо. Нужно открыть поиск, выбрать продукт из 47 одинаковых названий, поставить граммовку, повторить для каждого ингредиента. За день это 5-10 минут «лишней» работы.

На третий день большинство людей это бросают. Не потому, что лень — а потому, что цена ввода становится больше, чем польза от подсчёта.

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

Что мы пробовали

Готовые сервисы распознавания изображений (Google Vision, Clarifai). Они умеют сказать, что на картинке «pizza» или «salad bowl», но не разбивают блюдо на ингредиенты с граммовкой. Для подсчёта калорий это бесполезно — нам нужно не название блюда, а состав с массой.

Своя CV-модель. Идея — собрать датасет российских блюд (борщ, гречка, котлеты по-киевски) и обучить модель. Быстро поняли: для приемлемой точности нужны сотни тысяч размеченных тарелок, разметка стоит миллионы. Для нашего размера команды это нереалистично.

Vision-модели от Anthropic. Попали в задачу. Модель смотрит на фото тарелки, как человек: «куриная грудка ~120 г + рис ~150 г + овощной салат ~80 г», и возвращает структурированный JSON, который мы кладём в приём пищи. Никакого fine-tuning — общая модель, грамотный prompt, и она вытягивает домашнюю еду, кафе, фастфуд, простые ресторанные тарелки.

На этом и остановились.

Как это выглядит в приложении

Распознавание блюда по фото — NutriApp

Загружаешь фото — получаешь подпись («запечённая куриная грудка, нарезанная ломтиками, с салатом из свежих листьев, брокколи и красного лука»), список ингредиентов с граммовкой и БЖУ, выбираешь тип приёма пищи (завтрак / обед / ужин / перекус) и сохраняешь. На каждом ингредиенте можно подправить вес одним движением.

Что не работает идеально

Граммовка по фото — это всегда оценка. Промах ±15-20 г по каждому ингредиенту — норма. Поэтому в приложении после распознавания обязательный шаг ручной правки: ты видишь предложенные граммы и можешь поправить.

Сложные многокомпонентные блюда распознаются хуже простых. Запеканки, мультислойные сэндвичи, домашние тушения, где ингредиенты «спрятаны» друг под другом — модель часто видит только верхний слой.

Тёмный фон, плохой свет, странные ракурсы — режут точность. Лучше всего работает top-down или 3/4 на нейтральном фоне при дневном свете.

Региональные специфические блюда. Узбекская манты, плов, домашние пельмени — модель видит «meat dumplings» и угадывает граммовку по среднему. Это нормально для базы, но если нужна точность — лучше вручную через каталог.

Что зашло

Для «обычного дня» — миска овсянки, тарелка с курицей и гарниром, бутерброд с кофе — фоторежим экономит реальные минуты. И главное: люди стали считать чаще, потому что барьер на ввод приёма пищи упал.

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

Куда идём дальше

В планах:

  • Улучшить оценку граммовки для домашних блюд — борщ, плов, рагу. Здесь поможет связка vision + база рецептов: модель видит «борщ», а мы достаём типичный состав и подгоняем граммовку под объём тарелки.
  • Сохранять «свои» блюда. Если ты часто ешь одно и то же — не нужно каждый раз заново распознавать. Один раз сфоткал — сохранил как шаблон — потом одним кликом.
  • Распознавание упаковки. Сфоткал состав с пачки — мы парсим калорийность и БЖУ, создаём продукт в базе. Особенно для производителей, которых нет в общем каталоге.

Если интересно попробовать — открыть NutriApp. Фоторежим есть в бесплатном тарифе с дневным лимитом, на платных — без лимитов.

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

Считай калории автоматически в NutriApp

Открыть NutriApp