Создано приложение, способное в реальном времени показывать пользователю пищевую ценность блюда.
Некоторые люди для снижения веса или других оздоровительных целей ведут подробный дневник приема еды, подсчитывая суммарную калорийность и другие свойства. Для этого, однако, требуется вручную вводить данные и искать пищевую ценность того или иного продукта или же его компонентов. Существуют приложения, упрощающие этот процесс, например, с помощью распознавания готовых продуктов через штрих-коды на упаковке, но они не подходят для еды, приготовленной дома или в кафе, пишет «Вокруг света».
Разработчики под руководством Желько Жилича из Университета Макгила создали приложение для Android, способное в реальном времени распознавать еду и показывать ее пищевую ценность. В приложении для определения и распознавания объектов в кадре используется сверточная нейросеть, основанная на популярной архитектуре YOLO. Получая изображение, нейросеть распознает на нем области, в которых находятся известные ей объекты. После этого алгоритм выделяет эти области и подписывает соответствующим образом.
Авторы не раскрывают, на каких данных обучали модель, но рассказали, что проверили ее эффективность на датасетах еды UECFood100 и UECFood256. Они отметили, что на современном смартфоне (например, Google Pixel 2 — с помощью него работу системы и проверяли авторы) обработка кадра нейросетью занимает несколько десятков миллисекунд. Точность распознавания еды приложением составила около 75 процентов.
Удобство приложения заключается в том, что оно не просто распознает блюда или компоненты в кадре, но и выдает их пищевую ценность: калорийность, содержание белков, жиров и углеводов, а также соли, холестерина и некоторых витаминов. Для этого авторы использовали базу данных Nutritionix, содержащую данные о более 700 тысячах блюд. Стоит отметить, что приложение рассчитывает параметры, исходя из размера средней порции определенного блюда.