Фото: iStock/Global Images Ukraine

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

В основе алгоритма лежит свёрточная нейросеть для распознавания объектов, обученная на фотографиях библиотеки ImageNet. Это популярный метод, использующий за основу алгоритм, который достаточно хорошо умеет определять признаки на изображениях. Его последние слои дополнительно обучают под конкретную задачу. В случае с алгоритмом немецких исследователей, четыре нейрона последнего слоя выдают калорийность блюда и содержание базовых компонентов (белки, жиры, углеводы). Еще 100 нейронов выдают 100 самых вероятных ингредиентов блюда.

Результаты исследования: arxiv.org

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

Тестирование нейросети на новых рецептах показало, что погрешность расчёта на 100 грамм блюда составляет всего 46,7 калории, 2,51 грамма белка, 3,88 грамма жира и 6,97 грамма углеводов. Результат можно улучшить, если использовать более совершенные алгоритмы для предварительной обработки рецептов. Учёные опубликовали в открытом доступе исходный код нейросети и код для формирования датасета.

Подписывайтесь на LIGA.Tech в Telegram: только важное