18.05.2021
Наш канал в Telegram: https://t.me/berzaru

Нейросеть научилась считать калории блюда по его фото

Нейросеть научилась считать калории блюда по фото

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

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

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

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

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

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