Немецкие исследователи разработали алгоритм, определяющий пищевую ценность блюд по фотографии: их калорийность и содержание белков, углеводов и жиров. В отличие от многих других подобных алгоритмов новый определяет эти показатели напрямую, а не обращаясь к базе данных о пищевой ценности разных продуктов. Кроме того, алгоритм пытается предсказать и ингредиенты блюд. Доклад об алгоритме будет представлен на конференции ICPR 2020, препринт доступен на arXiv.org.
Часть людей, сбрасывающих лишний вес или поддерживающих его на одном уровне, записывают приемы еды, отмечая ее пищевую ценность. Есть даже приложения, в которых этот процесс частично автоматизирован: если человек съел еду из магазина, на ее упаковку можно навести камеру, и приложение само добавит все данные в дневник потребления. Но это не подходит для самостоятельно приготовленной пищи и еды в кафе. В первом случае человек еще может рассчитать пищевую ценность, поскольку знает все компоненты, а во втором это можно сделать лишь очень примерно.
Исследователи в области компьютерного зрения уже несколько лет пытаются решить эту проблему. Как правило, алгоритмы по расчету пищевой ценности работают похожим образом: распознают на снимке блюдо и выдают соответствующие значения из базы. Также они могут учитывать размер блюда для более точного расчета калорий, хотя некоторые из недавних алгоритмов исходят из предположения, что перед камерой стандартная порция. Подобные многостадийные алгоритмы сложны в разработке и не очень точны, отмечают авторы новой работы во главе с Райнером Штифельхаге (Rainer Stiefelhage) из Технологического института Карлсруэ. Они использовали иной подход, в котором нейросеть за один этап рассчитывает пищевую ценность на основе фотографии.
В основе алгоритма лежит сверточная нейросеть для распознавания объектов (авторы использовали популярные сети ResNet и DenseNet), обученные на огромном датасете различных фотографий ImageNet. Использование предобученной сверточной нейросети — это популярный метод, позволяющий брать за основу алгоритм, который уже достаточно хорошо умеет определять признаки на изображениях, и дообучать его последние слои на своей конкретной задаче. В этом случае авторы не просто дообучали последний слой, а изменили его структуру: вместо классификации он решает задачу регрессии, то есть подбора конкретного значения, а не отнесения исходной фотографии к какому-то фиксированному классу объектов. Четыре нейрона последнего слоя выдают калорийность блюда и содержание базовых компонентов (белки, жиры, углеводы), а еще 100 нейронов выдают 100 самых вероятных ингредиентов.
Разработчики самостоятельно подготовили датасет для обучения алгоритма, воспользовавшись двумя источниками: сайтом рецептов, где у большинства рецептов есть список ингредиентов и фотография готового блюда, и базой пищевой ценности различных продуктов. Поскольку рецепты пишутся разными людьми и содержат лишние данные (например, один и тот же продукт может быть указан как «лук», «лук, нарезанный кольцами» и «лук, нарезанный кубиками», хотя для анализа пищевой ценности это один и тот же ингредиент), исследователям пришлось полуавтоматически обработать данные. В частности, они убрали лишние слова и перевели примерные величины (например, «одна столовая ложка») в конкретные. Затем они сопоставили данные с двух предварительно обработанных датасетов и собрали их в один, содержащий 70 тысяч рецептов и 308 тысяч фотографий.
Тестирование алгоритма на рецептах, которые он не встречал во время обучения, показало, что его точность при расчете на 100 грамм блюда составляет 46,7 калории, 2,51 грамма белка, 3,88 грамма жира и 6,97 грамма углеводов. Авторы отмечают, что результаты можно улучшить, если использовать более совершенные алгоритмы для предварительной обработки текстов из рецептов. Они не смогли опубликовать сам датасет из-за лицензионных ограничений, но опубликовали на GitHub код для его формирования и код самой нейросети.
Ранее мы рассказывали о других «кулинарных» нейросетях. Например, об алгоритме, составляющем рецепт блюда по его фотографии и другом, который выполняет обратную задачу — создает фотографию блюда по его рецепту.
Григорий Копиев
Передвижение в них похоже на ходьбу по траволатору
Американская компания Shift Robotics представила насадки на обувь, увеличивающие скорость ходьбы. В них есть колеса, которые двигают ногу в момент, когда она соприкасается с полом, и позволяют ходить в 3,5 раза быстрее. Проект опубликован на краудфандинговой платформе Kickstarter. В последнее десятилетие активно развиваются легкий и личный электрический транспорт: электросамокаты, гироскутеры, моноколеса и тому подобное. Как правило, их используют для ежедневного передвижения по городу на небольшие расстояния или совмещают с другими типами транспорта, например, основную часть пути человек преодолевает на метро, а от дома до станции и от станции до работы едет на электросамокате. Это потенциально удобная и выгодная концепция, но перемещаться в транспорте с электросамокатом или гироскутером может быть затруднительно, особенно в часы пик. В качестве альтернативы несколько компаний разрабатывали и выпустили похожие устройства в виде сравнительно небольших насадок на обувь, передвигающих человека. Shift Robotics тоже разработала электрическую насадку на обувь, но передвижение на ней происходит по-другому. Она представляет собой платформу с несколькими небольшими колесами под ней и ремнями сверху, позволяющими прикрепить ее к обуви. Главное отличие от других подобных устройств заключается в том, что человек с ними не едет, а идет как и обычно с той лишь разницей, что в момент соприкосновения ноги с полом она не остается на месте, а едет вперед за счет электромоторов, крутящих колеса. Компания утвердает, что это позволяет увеличить скорость ходьбы в 3,5 раза. https://www.youtube.com/watch?v=8r0TPD5NUQ0 Устройство работает в двух режимах, переключаться между которыми можно с помощью жестов, наклоняя ногу в ту или иную сторону. В одном из них колеса полностью блокируются и ходьба в них отличается от обычной только дополнительным весом и высотой подошвы (этот режим нужен, например, при подъеме по лестнице). Во втором режиме колеса активны и крутятся в соответствии с тем, как быстро идет пользователь: если он не двигается, они не придают ему ускорение, а если идет — подстраивают свою скорость под его шаги. Насадки заряжаются от USB-C, на полную зарядку уходит полтора часа, после чего они могут работать в активном режиме на протяжении 10 километров. Компания опубликовала проект на Kickstarter, где на момент написания заметки он собрал около 50 тысяч долларов из запрашиваемых 90 тысяч. Стоимость пары начинается от 999 долларов. В случае успешного завершения краудфандинга первые поставки пользователям начнутся в марте 2023, правда, купить устройство смогут только жители США. Инновации происходят и в других видах личного электрического транспорта. Например, в 2019 году Segway представила электросамокат с функцией автопилота, а летом 2022 его начали тестировать в московском сервисе кикшеринга.