Исследования технологии распознавания пищи Nutrola
Как Nutrola распознает еду по фотографии за менее чем 3 секунды? Углубленный анализ компьютерного зрения, глубокого обучения и научных исследований в области питания, стоящих за нашим ИИ.
Когда вы делаете фото своего ужина, а Nutrola за менее чем три секунды предоставляет полное nutritional breakdown, за кулисами работает многолетнее исследование в области компьютерного зрения, науки о питании и инженерии ИИ. То, что кажется мгновенным распознаванием, на самом деле является каскадом специализированных моделей, каждая из которых решает свою уникальную научную задачу. С момента нажатия кнопки затвора до появления значений макронутриентов на экране, ваше изображение проходит через конвейер, основанный на фундаментальных исследованиях таких учреждений, как Стэнфорд, MIT, Google DeepMind и Лаборатория компьютерного зрения ETH Zurich.
В этой статье мы подробно рассмотрим этот конвейер, ссылаясь на реальные исследования и технические концепции, которые делают возможным распознавание пищи Nutrola.
Конвейер компьютерного зрения
Распознавание пищи Nutrola — это не одна модель, а многоступенчатый конвейер, где каждая стадия выполняет отдельную задачу, а выход одной стадии передается на следующую.
Стадия 1 — Предобработка изображения. Прежде чем какая-либо нейронная сеть увидит ваше фото, сырое изображение проходит нормализацию. Это включает изменение размера до стандартного разрешения, коррекцию баланса белого и экспозиции, а также применение трансформаций увеличения данных во время обучения. Исследования Крижевского, Сутскевера и Хинтона в их знаковой статье 2012 года по ImageNet продемонстрировали, что предобработка и увеличение данных значительно улучшают обобщение в глубоких сверточных нейронных сетях (CNN). Современные конвейеры расширяют это с помощью таких техник, как CutMix (Yun et al., 2019) и RandAugment (Cubuk et al., 2020), которые обучают модель быть устойчивой к затенению и изменениям цвета, характерным для фотографии еды.
Стадия 2 — Обнаружение и сегментация пищи. После предобработки изображение проходит через модель обнаружения объектов, которая идентифицирует и локализует каждый отдельный элемент пищи на тарелке. Эта стадия сильно опирается на исследования в области региональных сверточных нейронных сетей. Faster R-CNN (Ren et al., 2015) установил парадигму сетей предложений регионов, в то время как более современные архитектуры, такие как DETR (Carion et al., 2020) от Facebook AI Research, используют внимание на основе трансформеров, полностью исключая ручные компоненты, такие как якорные ящики. Для пиксельной точности модели семантической сегментации, основанные на архитектурах, таких как DeepLab (Chen et al., 2017), присваивают каждому пикселю в изображении категорию пищи, что критически важно для смешанных блюд, где ингредиенты пересекаются.
Стадия 3 — Классификация пищи. Каждая обнаруженная область пищи затем классифицируется. Основой современных классификаторов пищи являются архитектуры, проверенные на ImageNet (Deng et al., 2009), наборе данных из 14 миллионов размеченных изображений, который стал катализатором революции глубокого обучения. Специфические для пищи наборы данных, такие как Food-101 (Bossard et al., 2014), содержащий 101 000 изображений по 101 категории, и UECFOOD-256 (Kawano и Yanai, 2015), охватывающий 256 категорий пищи с акцентом на японскую кухню, предоставляют специфические для области данные для обучения, необходимые для дообучения этих универсальных архитектур для распознавания пищи.
Стадия 4 — Оценка порции. После определения того, что находится на тарелке, система оценивает, сколько каждого элемента присутствует. Это самая сложная нерешенная проблема в исследованиях распознавания пищи и включает оценку глубины и объемное рассуждение на основе одного 2D-изображения.
Стадия 5 — Нутриционная карта. Наконец, классифицированный элемент пищи и его оцененный размер порции сопоставляются с проверенной нутриционной базой данных, чтобы получить значения калорий, белков, углеводов, жиров и микроэлементов.
Каждая из этих стадий представляет собой отдельную область активных исследований. В следующих разделах мы подробно рассмотрим наиболее технически сложные стадии.
Классификация пищи: больше, чем "Это салат"
Отличить салат от стейка для любого современного классификатора довольно просто. Реальная сложность начинается, когда системе нужно различать визуально похожие блюда: куриный тикка масала против курицы в масле, пад тай против пьяных лапши или греческий салат против фаттуша. Эти блюда имеют схожие цвета, текстуры и структурные узоры, но значительно различаются по ингредиентам и калорийной плотности.
Перенос обучения и адаптация к области
Стандартный подход к классификации пищи основывается на переносе обучения, технике, формализованной Йосински и др. (2014), где модель, предварительно обученная на большом общем наборе данных, таком как ImageNet, дообучается на специфичных для пищи данных. Нижние слои сети, которые обнаруживают края, текстуры и основные формы, хорошо переносятся между областями. Более высокие слои, которые кодируют семантическое значение, переобучаются для изучения специфичных для пищи признаков, таких как разница между блестящей поверхностью жареного и матовой отделкой приготовленного на пару.
Исследования Хассанеджада и др. (2016) продемонстрировали, что дообучение InceptionV3 на Food-101 достигло точности top-1 88,28 процента, что является значительным скачком по сравнению с более ранними подходами с ручным извлечением признаков. Более недавние работы с использованием Vision Transformers (Dosovitskiy et al., 2020) и их специфичных для пищи вариантов повысили точность на Food-101 выше 93 процентов.
Многоуровневая классификация для сложных блюд
Настоящие блюда редко содержат один элемент. Обычная тарелка может содержать запеченного лосося, жареную спаржу, киноа и лимонно-масляный соус. Многоуровневая классификация, при которой одно изображение может получать несколько независимых меток, решает эту проблему. Исследования Ванга и др. (2016) по архитектурам CNN-RNN для многоуровневой классификации изображений установили рамки, которые захватывают паттерны совместного появления меток. В области пищи это означает, что модель учится, что рис и карри часто появляются вместе, что служит контекстным сигналом, который улучшает точность отдельных элементов пищи.
Nutrola расширяет это с помощью иерархической системы классификации. Вместо того чтобы предсказывать плоскую метку, система сначала классифицирует широкую категорию пищи (зерно, белок, овощ, соус), а затем уточняет конкретный элемент внутри этой категории. Этот двухступенчатый подход уменьшает путаницу между визуально похожими элементами из разных категорий и отражает, как организованы нутриционные базы данных.
Оценка порции: 3D-вызов
Определение того, какая еда находится на тарелке, решает лишь половину проблемы. 100-граммовая порция куриного филе содержит 165 калорий. Порция в 250 граммов содержит 412 калорий. Без точной оценки порции даже идеальное распознавание пищи приводит к ненадежным подсчетам калорий.
Одноглазая оценка глубины
Оценка объема пищи по одному 2D-фотографическому изображению требует от системы вывода глубины, проблема, известная как одноглазая оценка глубины. Эйген, Пурш и Фергюс (2014) опубликовали основополагающую работу, демонстрирующую, что CNN могут предсказывать карты глубины на уровне пикселей из одиночных изображений. Более недавние исследования Ранфтля и др. (2021) представили MiDaS, модель, обученную на смешанных наборах данных, которая производит надежные относительные оценки глубины в различных сценах.
Для приложений в области пищи оценка глубины позволяет системе различать тонкий слой соуса, распределенного по тарелке, и глубокую тарелку супа. В сочетании с известной геометрией распространенных объектов, таких как тарелки, миски и столовые приборы, карты глубины могут быть преобразованы в приблизительные оценки объема.
Геометрические подходы к оценке объема
Исследования Токийского университета (Окамото и Янаи, 2016) продемонстрировали, что объем пищи можно оценить, подгоняя геометрические примитивы, такие как цилиндры, полусферы и прямоугольные призмы, к сегментированным областям пищи. Кучка риса приближается к половинному эллипсоиду. Стакан молока приближается к цилиндру. Ломтик хлеба приближается к прямоугольному призму.
Эти геометрические приближения, в сочетании с изученными плотностными приоритетами (система знает, что данное количество картофельного пюре весит больше, чем такое же количество попкорна), производят оценки веса, которые, как показали исследования, находятся в пределах 15-20 процентов от истинного значения для большинства распространенных продуктов. Nutrola дополнительно уточняет эти оценки с помощью запатентованного ансамблевого подхода, который сочетает геометрическое рассуждение с изученными регрессионными моделями, обученными на десятках тысяч изображений пищи с известными весами.
Калибровка по эталонным объектам
Некоторые системы распознавания пищи используют известные эталонные объекты в сцене для калибровки масштаба. Стандартная обеденная тарелка имеет диаметр примерно 26 сантиметров. Кредитная карта измеряет 85,6 на 53,98 миллиметров. Когда система обнаруживает такие объекты, она может установить реальный масштаб, что значительно улучшает оценки объема и веса. Исследования Фанга и др. (2016) в Университете Пердью показали, что калибровка по тарелке снизила ошибку оценки порции примерно на 25 процентов по сравнению с некалиброванными подходами.
Слой проверенной базы данных
Одного лишь распознавания ИИ недостаточно для предоставления точных подсчетов калорий. Даже если модель достигает 99 процентов точности в идентификации запеченной курицы, окончательный нутриционный вывод полностью зависит от качества базы данных, к которой она сопоставляется.
Здесь подход Nutrola отличается от многих конкурентов. Большинство приложений для отслеживания пищи полагаются на краудсорсинговые базы данных, где любой пользователь может предоставить нутриционную информацию. Исследования показали, что краудсорсинговые базы данных пищи содержат уровень ошибок от 15 до 30 процентов, причем некоторые записи отличаются от лабораторно проверенных значений более чем на 50 процентов для ключевых макронутриентов.
Nutrola поддерживает 100-процентную проверенную нутриционную базу данных. Каждая запись перекрестно проверяется с авторитетными источниками, включая USDA FoodData Central, таблицы состава Макканса и Уиддоусона, используемые Национальной службой здравоохранения Великобритании, и рецензируемые нутриционные анализы. Это означает, что даже если слой распознавания ИИ вводит небольшую погрешность в идентификации пищи или оценке порции, нутриционные данные, к которым она сопоставляется, надежны.
Слой проверки также учитывает тонкость, которую чистые подходы ИИ упускают: метод приготовления влияет на нутриционное содержание. 150-граммовое куриное филе, приготовленное на гриле, содержит примерно 165 калорий, но то же самое филе, обжаренное на оливковом масле, содержит примерно 230 калорий. База данных Nutrola фиксирует эти зависимости, и модель распознавания обучена различать методы приготовления, когда визуальные подсказки присутствуют, такие как разница между жареной и приготовленной на гриле поверхностью.
Непрерывное обучение и улучшение
Распознавание пищи — это задача, которая не решается раз и навсегда. Кухни развиваются, новые блюда появляются, а ожидания пользователей растут. Система Nutrola разработана для непрерывного улучшения через несколько механизмов, основанных на исследованиях в области машинного обучения.
Активное обучение
Активное обучение, формализованное Сеттлсом (2009), — это стратегия, при которой модель определяет примеры, в которых она менее уверена, и приоритизирует их для человеческой проверки и маркировки. Когда система Nutrola сталкивается с блюдом, которое она не может классифицировать с высокой уверенностью, это изображение помечается для экспертной проверки. После маркировки оно попадает в обучающий конвейер, и модель улучшает свои навыки именно в тех случаях, где она была слабее.
Этот подход гораздо более эффективен с точки зрения данных, чем случайный сбор дополнительных обучающих изображений. Исследования последовательно показывают, что активное обучение может достичь эквивалентной точности модели с 30 до 60 процентов меньшим количеством размеченных данных по сравнению с случайной выборкой.
Обработка новых продуктов и региональных кухонь
Одной из самых значительных проблем в распознавании пищи является охват региональных и культурно специфичных блюд. Модель, обученная в основном на западной кухне, может испытывать трудности с десертами Юго-Восточной Азии, рагу Западной Африки или скандинавскими ферментированными продуктами. Nutrola решает эту проблему с помощью целевых кампаний по сбору данных, сосредоточенных на недостаточно представленном кухнях, в сочетании с техниками обучения с небольшим количеством примеров (Wang et al., 2020), которые позволяют модели изучать новые категории пищи из относительно небольшого количества примеров.
Обратная связь от пользователей является критически важным входом в этот процесс. Когда пользователь исправляет неверно идентифицированную пищу, это исправление возвращается в обучающий конвейер. В совокупности с миллионами зарегистрированных приемов пищи по всему миру эти исправления создают непрерывный поток данных о реальных фактах, которые охватывают именно ту пищу, которую реальные люди едят в своей повседневной жизни.
Как это переводится на вашу тарелку
Описанные выше исследования приносят конкретные преимущества, которые вы испытываете каждый раз, когда открываете Nutrola.
Регистрация за три секунды. Весь конвейер, от предобработки изображения до нутриционного поиска, выполняется за менее чем три секунды на современном смартфоне. Техники оптимизации модели, включая квантизацию (Jacob et al., 2018) и поиск нейронной архитектуры (Zoph и Le, 2017), позволяют сложным моделям эффективно работать на мобильном оборудовании без потери точности.
Обработка сложных блюд. Многоуровневое обнаружение и семантическая сегментация означают, что вам не нужно фотографировать каждый элемент пищи отдельно. Одно фото загруженной тарелки дает индивидуальные нутриционные разбивки для каждого компонента.
Точность в разных кухнях. Непрерывное обучение и целевой сбор данных обеспечивают работу системы, независимо от того, едите ли вы суши в Токио, тако в Мехико, инжеру в Аддис-Абебе или воскресный ростбиф в Лондоне. Модель улучшается с каждым приемом пищи, зарегистрированным среди глобальной базы пользователей Nutrola.
Постепенное улучшение точности. Чем больше вы используете Nutrola, тем лучше она становится как для вас индивидуально, так и для всех пользователей в целом. Активное обучение гарантирует, что модель сосредоточит свои улучшения на тех случаях, где она нуждается в этом больше всего.
Проверенные нутриционные данные. В отличие от приложений, которые полагаются на краудсорсинговые базы данных с неизвестными уровнями ошибок, каждый подсчет калорий, который возвращает Nutrola, подтвержден лабораторно проверенными нутриционными данными. ИИ идентифицирует пищу; проверенная база данных гарантирует, что цифры верны.
Часто задаваемые вопросы
Как ИИ Nutrola распознает еду по фотографии?
Nutrola использует многоступенчатый конвейер компьютерного зрения. Ваше фото сначала проходит через предобработку изображения, затем через модель обнаружения глубокого обучения, которая идентифицирует и сегментирует каждый элемент пищи на тарелке. Каждый элемент классифицируется с использованием сверточных нейронных сетей, дообученных на специфичных для пищи наборах данных, его порция оценивается с использованием глубины и объемного рассуждения, а результат сопоставляется с проверенной нутриционной базой данных Nutrola для получения значений калорий и макронутриентов.
Насколько точна технология распознавания пищи Nutrola?
Модели классификации Nutrola достигают уровней точности top-1 выше 90 процентов на стандартных бенчмарках распознавания пищи, с точностью top-5, превышающей 95 процентов. Для оценки порции система обычно попадает в диапазон 15-20 процентов от фактического веса, что сопоставимо или лучше, чем точность оценки обученных диетологов. В сочетании с проверенной базой данных Nutrola это приводит к оценкам калорий, которые значительно более надежны, чем ручное отслеживание, которое, как показывают исследования, недооценивало потребление на 10-45 процентов.
Какие исследования и наборы данных поддерживают ИИ распознавания пищи Nutrola?
Технология Nutrola основывается на фундаментальных исследованиях в области компьютерного зрения, включая сверточные нейронные сети, проверенные на ImageNet, архитектуры обнаружения объектов, такие как Faster R-CNN и DETR, и специфичные для пищи наборы данных, включая Food-101 и UECFOOD-256. Система также опирается на исследования одноглазой оценки глубины для оценки порций и исследования активного обучения для непрерывного улучшения модели. Все нутриционные данные проверяются по авторитетным источникам, таким как USDA FoodData Central.
Может ли Nutrola распознавать несколько продуктов на одной тарелке?
Да. Nutrola использует многоуровневое обнаружение и семантическую сегментацию для идентификации и отдельного анализа каждого отдельного элемента пищи на одном фото. Независимо от того, содержит ли ваша тарелка два элемента или восемь, система изолирует каждый из них, классифицирует его независимо, оценивает его порцию и возвращает нутриционную разбивку по каждому элементу вместе с общим количеством для блюда.
Как Nutrola обрабатывает продукты из разных кухонь и культур?
Nutrola сочетает данные широкого охвата с целевым сбором данных для недостаточно представленных кухонь и техниками обучения с небольшим количеством примеров, которые позволяют модели изучать новые категории пищи из относительно небольшого количества примеров. Исправления пользователей из глобальной базы пользователей Nutrola постоянно поступают в обучающий конвейер, что обеспечивает улучшение точности для конкретных блюд, которые люди действительно едят в каждом регионе и культуре питания.
Улучшается ли распознавание пищи Nutrola со временем?
Да. Nutrola использует активное обучение, стратегию машинного обучения, при которой система определяет изображения, в которых она наименее уверена, и приоритизирует их для экспертной проверки и повторного обучения. В сочетании с агрегированной обратной связью от миллионов зарегистрированных приемов пищи по всему миру это означает, что модель постоянно улучшается. Каждый прием пищи, который вы регистрируете, способствует повышению точности распознавания Nutrola для всех пользователей.
Готовы трансформировать отслеживание питания?
Присоединяйтесь к тысячам тех, кто изменил свой путь к здоровью с Nutrola!