Waiting
Login processing...

Trial ends in Request Full Access Tell Your Colleague About Jove
Click here for the English version

Engineering

Глубокие нейронные сети для оценки рациона питания на основе изображений

Published: March 13, 2021 doi: 10.3791/61906

Summary

Целью работы, представленной в данной статье, является разработка технологии автоматического распознавания продуктов питания и напитков на основе изображений, сделанных мобильными устройствами. Технология состоит из двух различных подходов - первый выполняет распознавание образов пищи, а второй выполняет сегментацию изображения пищи.

Abstract

Из-за проблем и затрат, связанных с ручными подходами к оценке рациона питания, требуются автоматизированные решения для облегчения и ускорения работы и повышения ее качества. Сегодня автоматизированные решения способны записывать диетическое потребление человека гораздо проще, например, путем съемки с помощью камеры смартфона. В этой статье мы сосредоточимся на таких имиджевых подходах к диетической оценке. Что касается проблемы распознавания образов продуктов питания, то глубокие нейронные сети достигли состояния искусства в последние годы, и мы представляем нашу работу в этой области. В частности, мы сначала описываем метод распознавания изображений продуктов питания и напитков с помощью глубокой архитектуры нейронной сети под названием NutriNet. Этот метод, как и большинство исследований, проведенных в первые дни глубокого обучения на основе распознавания изображений пищи, ограничивается одним выходом на изображение, и, следовательно, непригодным для изображений с несколькими продуктами питания или напитками. Именно поэтому подходы, которые выполняют сегментацию изображения продуктов питания, значительно более надежны, так как они способны определить любое количество продуктов питания или напитков на изображении. Поэтому мы также представляем два метода сегментации изображения пищевых продуктов - один основан на полностью скотобойнальных сетях (FCNs), а другой на глубоких остаточных сетях (ResNet).

Introduction

Диетическая оценка является важным шагом в определении действия областях диеты человека. Однако выполнение диетической оценки с использованием традиционно ручных подходов связано со значительными издержками. Эти подходы также подвержены ошибкам, поскольку они часто опираются на самореафьяций со стороны человека. Автоматизированная диетическая оценка решает эти вопросы, предоставляя более простой способ количественной оценки и квалификации потребления пищи. Такой подход может также облегчить некоторые ошибки, присутствующие в ручных подходах, такие, как пропущенная еда, неспособность точно оценить объем пищи и т.д. Таким образом, есть явные преимущества для автоматизации диетической оценки путем разработки решений, которые определяют различные продукты питания и напитки и количественное потреблениепищи 1. Эти решения также могут быть использованы для оценки питательной ценности продуктов питания и напитков (отныне "продукты питания"). Следовательно, автоматизированная диетическая оценка полезна для нескольких применений - от строго медицинских применений, таких как предоставление диетологам более легкой и точной оценки и анализа рациона питания своих пациентов, до использования внутри приложений для благополучия, ориентированных на население в целом.

Автоматическое распознавание продуктов питания на изображениях является сложной проблемой компьютерного зрения. Это связано с тем, что продукты питания, как правило, деформируемых объектов, и в связи с тем, что большое количество визуальной информации о пищевой пищи могут быть потеряны во время его подготовки. Кроме того, различные продукты могут показаться очень похожими друг на друга, и одна и та же пища может показаться существенно отличается на нескольких изображениях2. Кроме того, точность распознавания зависит от многих других факторов, таких, как качество изображения, является ли пищевой элемент мешает другой пункт, расстояние, с которого изображение было принято, и т.д. Распознавание напитков представляет свой собственный набор проблем, главным из них является ограниченное количество визуальной информации, которая доступна на изображении. Эта информация может быть цвет напитка, цвет контейнера для напитков и структура, и, при оптимальных условиях изображения, плотность напитка2.

Чтобы успешно распознавать продукты питания по изображениям, необходимо изучить особенности каждого класса продуктов питания и напитков. Это традиционно было сделано с помощью вручную определенныхэкстракторов функций 3,4,5,6, которые выполняют распознавание наоснове конкретных особенностей элемента, таких как цвет, текстура, размер и т.д., или сочетание этих функций. Примеры этих экстракторов функции включают несколько ядеробучения 4, в паре местныефункции 5 и мешок-функции модели6. Из-за сложности изображений пищи, эти подходы в основном достигли низкой точности классификации - между 10% и 40%3,4,5. Причина этого заключается в том, что ручной подход не является достаточно надежным, чтобы быть достаточно точным. Поскольку пищевые продукты могут значительно различаться по внешнему виду, невозможно охватить все эти отклонения вручную. Более высокая точность классификации может быть достигнута с помощью вручную определенных экстракторов функций,когда либо количество классов продуктов питания уменьшается на 5, либоразличныефункции изображения объединяются 6,что указывает на необходимость более сложных решений этой проблемы.

Вот почему глубокое обучение оказалось настолько эффективным для проблемы распознавания образов пищи. Глубокое обучение, или глубокие нейронные сети, был вдохновлен биологическим мозгом, и позволяет вычислительных моделей, состоящих из нескольких слоев обработки автоматически изучать функции через обучение на набор входныхизображений 7,8. Из-за этого, глубокое обучение существенно улучшилось состояние искусства в различных областяхисследований 7, с компьютерным зрением, а затем распознавание образов пищи, будучи одним изних 2.

В частности, глубокие конволюционные нейронные сети (DCNN) наиболее популярны для распознавания образов пищи - эти сети вдохновлены визуальной системой животных, где отдельные нейроны пытаются получить представление о визуальном входе, реагируя на перекрывающиеся области в полезрения 9. Конволюционная нейронная сеть принимает входное изображение и выполняет ряд операций в каждом из слоев сети, наиболее распространенными из которых являются свертуционные, полностью связанные и объединяют слои. Конволюционные слои содержат обучаемые фильтры, которые реагируют на определенные функции в входных данных, в то время как полностью подключенные слои составляют выходные данные из других слоев, чтобы получить от них знания более высокого уровня. Цель объединения слоев заключается в том, чтобы вниз-образец входныхданных 2. Есть два подхода к использованию моделей глубокого обучения, которые оказались популярными: принятиесуществующего глубокого определения нейронной сети 10,11, называют глубокой архитектурой обучения в этой статье, или определение новойглубокой архитектуры обучения 12,13, и обучение либо один из них на набор данных изображения пищи. Есть сильные и слабые стороны обоих подходов - при использовании существующей глубокой архитектуры обучения, архитектура, которая хорошо работает для других проблем, может быть выбрана и доработана для желаемой проблемы, тем самым экономя время и гарантируя, что проверенная архитектура была выбрана. Определение новой архитектуры глубокого обучения, с другой стороны, является более трудоемким, но позволяет развитие архитектур, которые специально сделаны, чтобы принять во внимание специфику проблемы и, таким образом, теоретически лучше работать для этой проблемы.

В этой статье мы представляем оба подхода. Для проблемы распознавания образов еды, мы разработали новую архитектуру DCNN под названием NutriNet2, которая является модификацией известной архитектуры AlexNet14. Есть два основных отличия по сравнению с AlexNet: NutriNet принимает 512x512-пиксельные изображения в качестве ввода (в отличие от 256x256-пиксельных изображений для AlexNet), и NutriNet имеет дополнительный конреволюционный слой в начале нейронной сети. Эти два изменения были внесены для того, чтобы извлечь как можно больше информации из изображений набора данных распознавания. Наличие изображений с более высоким разрешением означает, что на изображениях присутствует больше информации, а наличие более сколюционных слоев означает, что из изображений можно извлечь дополнительные знания. По сравнению с примерно 60 миллионами параметров AlexNet, NutriNet содержит меньше параметров: около 33 миллионов. Это связано с разницей в размерности первого полностью связанного слоя, вызванного дополнительным сколюционным слоем2. Рисунок 1 содержит диаграмму архитектуры NutriNet. Изображения продуктов питания, которые использовались для обучения модели NutriNet, были собраны из Интернета - процедура описана в тексте протокола.

Для решения проблемы сегментации изображения пищевых продуктов мы использовали две различные существующие архитектуры: полностью конволюционные сети (FCNs)15 и глубокие остаточные сети (ResNet)16,обе из которых представляли собой современное состояние сегментации изображений, когда мы использовали их для разработки соответствующих решений сегментации изображения продуктов питания. Есть несколько вариантов FCN, которые были введены Лонг и др.: FCN-32s, FCN-16s и FCN-8s15. FCN-32s выводит пиксельную карту на основе прогнозов последнего слоя FCN, в то время как вариант FCN-16s сочетает эти прогнозы с предсказаниями более ранним слоем. FCN-8s рассматривает еще один слой прогнозов и, следовательно, в состоянии делать прогнозы на лучших зерна, поэтому он подходит для распознавания образов пищи. FCN-8s, которые мы использовали, были предварительно обучены на наборе данных PASCAL Visual Object Classes (PASCAL VOC)17 и обучены и протестированы на изображениях пищевых реплик (отныне «фальшиваяеда») 18 из-за их визуального сходства с реальной пищей и из-за отсутствия аннотированных изображений реальной пищи на уровне пикселей. Поддельные продукты питания используются в различных поведенческих исследований и изображения принимаются для всех блюд от всех участников исследования. Поскольку содержание этих изображений в пище известно, он делает набор данных изображений полезным для обучения модели глубокого обучения. В тексте протокола описаны этапы обработки наборов данных.

Решение на основе ResNet было разработано в рамках программы «Проблема распознавания пищевых продуктов» (FRC)19. Он использует гибридный каскад задач (HTC)20 метод с ResNet-10116 позвоночника. Это самый простой подход для проблемы сегментации изображений, который может использовать различные экстракторы функций, или костяки. Мы рассматривали и другие магистральных сетей, в частности, другие варианты ResNet, такие как ResNet-5016, но ResNet-101 был наиболее подходящим из-за его глубины и способности представлять входные изображения в достаточно сложной манере. Набор данных, используемый для обучения модели HTC ResNet-101, был набором данных FRC с добавленными дополненными изображениями. Эти дополнения представлены в тексте протокола.

Эта статья предназначена в качестве ресурса для экспертов машинного обучения ищет информацию о том, какие глубокое обучение архитектуры и шаги по увеличению данных хорошо работают для проблем распознавания изображений пищевых продуктов и сегментации, а также для питания исследователи хотят использовать наш подход к автоматизации распознавания изображений продуктов питания для использования в диетической оценки. В пунктах ниже представлены решения для глубокого обучения и наборы данных из области распознавания изображений пищевых продуктов. В тексте протокола мы подробно описано, как каждый из трех подходов использовался для обучения моделей глубоких нейронных сетей, которые могут быть использованы для автоматизированной диетической оценки. Кроме того, в каждом разделе протокола содержится описание того, как были приобретены и обработаны наборы данных изображений пищевых продуктов, используемые для обучения и тестирования.

DCNNs в целом достигли значительно лучших результатов, чем другие методы распознавания изображений пищевых продуктов и сегментации, поэтому подавляющее большинство недавних исследований в этой области основано на этих сетях. Kawano et al. использовали DCNNs в дополнение к ручнымподходам 21 и достигли точности классификации 72,26% на наборе данных UEC-FOOD10022. Christodoulidis и др. использовали их исключительно для достижения более высокой точности 84,90% на самостоятельно приобретенных набор данных23. Tanno et al. разработали DeepFoodCam - приложение для распознавания изображений продуктов питания, которое использует DCNNs24. Лю и др. представили систему, которая выполняет Интернет вещей на основе диетической оценки с использованием DCNNs25. Мартинель и др. представили DCNN основе подхода, который использует спецификупищевых изображений 26 и сообщил точность 90,27% на Food-101 набор данных27. Чжоу и др. автором обзора глубокого обучения решений в области продовольствия28.

Недавно Чжао и др. предложили сеть специально для распознавания изображений продуктов питания в мобильныхприложениях 29. Этот подход использует меньшую «студенческую» сеть, которая учится у более крупной сети «учителей». С его помощью им удалось достичь точности 84% на UEC-FOOD25630 и точность 91,2% на набор данных Food-10127. Hafiz et al. использовали DCNNs для разработки решения для распознавания изображений только для напитков и сообщили об очень высокой точности 98,51%31. Shimoda et al. описали новый метод обнаружения регионов пластин в пищевых изображениях без использования пиксельной аннотации32. Ciocca et al. представила новый набор данных, содержащий продукты питания из 20 различных классов питания в 11 различных штатах (твердая, нарезанная, сливочная паста и т.д.) и представила свой подход к моделям распознавания обучения, которые способны распознавать пищевое государство, в дополнение кклассу питания 33. Knez et al. оценили решения по распознаванию изображений пищевых продуктов для мобильныхустройств 34. Наконец, Furtado et al. провели исследование о том, как зрительная система человека сравнивается с производительностью DCNNs и обнаружили, что человеческое распознавание по-прежнему превосходит DCNNs с точностью 80% против 74,5%35. Авторы отметили, что при небольшом количестве классов питания DCNN работают хорошо, но на наборе данных с сотнями классов точностьраспознавания человека выше 35,что подчеркивает сложность проблемы.

Несмотря на свои самые последние результаты, глубокое обучение имеет серьезный недостаток - для обучения модели требуется большой набор входных данных. В случае распознавания изображений пищевых продуктов требуется большой набор данных изображений пищевых продуктов, и этот набор данных должен охватывать как можно больше различных реальных сценариев. На практике это означает, что для каждого отдельного товара питания или напитка требуется большая коллекция изображений, и в наборе данных должно присутствовать как можно больше различных предметов. Если в наборе данных недостаточно изображений для конкретного элемента, этот элемент вряд ли будет признан успешно. С другой стороны, если набор данных охватывает лишь небольшое число элементов, решение будет ограничено по своему охвату и сможет распознавать лишь несколько различных продуктов питания и напитков.

В прошлом было доступно несколько наборов данных. Питтсбург фаст-фуд Изображения Dataset (PFID)3 был введен для поощрения дополнительных исследований в области распознавания изображений продуктов питания. Университет электро-коммуникаций Food 100 (UEC-FOOD100)22 и Университет Электро-коммуникаций Food 256 (UEC-FOOD256)30 наборов данных содержат японские блюда, расширенные некоторыми международными блюдами в случае набора данных UEC-FOOD256. Набор данных Food-101 содержит популярные блюда, приобретенные на сайте27. Food-5036 и Video Retrieval Group Food 172 (VireoFood-172)37 наборов данных являются китайскими коллекциями изображений продуктов питания. Набор данных Университета Милано-Бикокки 2016 (UNIMIB2016) состоит из изображений подносов с едой из итальянскойстоловой 38. Recipe1M — это крупномасштабный набор данных рецептов приготовления пищи и изображений блюд39. Набор данных Food-47540 собирает четыре ранее опубликованных набораданных изображений продуктов питания 27,30,36,37 в один. Пекинский технологический и деловой университет Food 60 (BTBUFood-60) — набор изображений, предназначенных для обнаруженияпродуктов питания 41. Недавно был доступен набор данных ISIA Food-50042 различных изображений пищевых продуктов. По сравнению с другими общедоступными наборами изображений продуктов питания, он содержит большое количество изображений, разделенных на 500 классов продуктов питания, и предназначен для продвижения разработки мультимедийных решенийраспознавания продуктов питания 42.

Protocol

1. Распознавание изображений продуктов питания с NutriNet

  1. Получение набора данных изображений пищевых продуктов
    1. Соберите список различных продуктов питания и напитков, которые будут выходы из модели распознавания изображений продуктов питания. Предпочтительнее разнообразный список популярных продуктов питания и напитков, так как это позволит обучтать надежную модель распознавания образов пищевых продуктов.
    2. Сохраните список продуктов питания и напитков в текстовом файле (например, 'txt' или 'csv').
      ПРИМЕЧАНИЕ: Текстовый файл, используемый авторами этой статьи, можно найти в дополнительных файлах ('food_items.txt') и включает в себя список из 520 словенских продуктов питания.
    3. Напишите или загрузите скрипт Python43, который использует API44 пользовательского поиска Google для загрузки изображений каждого элемента питания из списка и сохраняет их в отдельной папке для каждого элемента питания.
      ПРИМЕЧАНИЕ: Скрипт Python, используемый авторами этой статьи, можно найти в дополнительных файлах ('download_images.py'). Если этот скрипт используется, ключ разработчика (переменный 'developerKey', строка 8 в коде скрипта Python) и Идентификатор пользовательской поисковой системы (переменный 'cx', строка 28 в коде сценария Python) должны быть заменены значениями, специфичыми для используемой учетной записи Google.
    4. Запустите скрипт Python из шага 1.1.3 (например, с командой: 'python download_images.py').
  2. (По желанию) Очистка набора данных изображений пищевых продуктов
    1. Обучить модели обнаружения изображений пищевых продуктов так же, как и в разделе 1.4, за исключением использования только двух выходов (продуктов питания, непродовольственных), в отличие от перечня выходов из шага 1.1.1.
      ПРИМЕЧАНИЕ: Авторы этой статьи использовали изображения, объединенные с веб-сайтами рецептов и набором данных ImageNet45 для обучения модели обнаружения изображений пищевых продуктов. Поскольку основное внимание здесь уделяется распознаванию изображений продуктов питания, и это необязательный шаг для очистки набора данных распознавания, более подробная информация опущена. Более подробную информацию об этом подходе можно найти в Mezgec et al.2.
    2. Вы запустите модель обнаружения из шага 1.2.1 на наборе данных пищевого изображения, который является результатом шага 1.1.4.
    3. Удалите каждое изображение, помеченное моделью обнаружения как непродовольственный из шага 1.2.1.
    4. Вручную проверьте набор данных пищевого изображения на наличие других ошибочных или некачественных изображений, а также на дубликаты изображений.
    5. Удалить изображения, найденные в шаге 1.2.4.
  3. Увеличение набора данных изображений пищевых продуктов
    1. Создайте новую версию каждого изображения из набора данных пищевого изображения, вращая его на 90 градусов с помощью библиотеки CLoDSA46 (линии от 19 до 21 в включенной скрипте Python).
      ПРИМЕЧАНИЕ: Скрипт Python, содержащий все команды CLoDSA, используемые авторами этой статьи, можно найти в файле, включеном в дополнительные файлы ('nutrinet_augmentation.py'). При использовании этого скрипта необходимо заменить путь ввода (переменный 'INPUT_PATH', строка 8 в коде скрипта Python) и Путь вывода (переменный 'OUTPUT_PATH', строка 11 в коде скрипта Python).
    2. Создайте новую версию каждого изображения из набора данных пищевого изображения, вращая его на 180 градусов с помощью библиотеки CLoDSA (линии от 19 до 21 в включенной скрипте Python).
    3. Создайте новую версию каждого изображения из набора данных пищевого изображения, вращая его на 270 градусов с помощью библиотеки CLoDSA (линии от 19 до 21 в включенной скрипте Python).
    4. Создайте новую версию каждого изображения из набора данных пищевого изображения, перевернут его горизонтально с помощью библиотеки CLoDSA (линии 23 и 24 в включенной скрипте Python).
    5. Создайте новую версию каждого изображения из набора данных изображения еды, добавив случайный цветовой шум к нему с помощью библиотеки CLoDSA (линии 26 и 27 в включенном скрипте Python).
    6. Создайте новую версию каждого изображения из набора данных пищевого изображения, увеличив его на 25% с помощью библиотеки CLoDSA (линии 29 и 30 в включенной скрипте Python).
    7. Сохранить изображения из шагов 1.3.1-1.3.6, наряду с оригинальными изображениями (линии 16 и 17 в включенной скрипт Python), в новый набор данных изображения пищи (в общей сложности, 7 вариантов на изображение пищи). Это делается путем выполнения команды в строке 32 включенного скрипта Python.
  4. Выполнение распознавания изображений продуктов питания
    1. Импорт продовольственных изображений из шага 1.3.7 в среду NVIDIA DIGITS47,разделив набор данных на подмножества обучения, проверки и тестирования в пользовательском интерфейсе NVIDIA DIGITS.
    2. Копировать и вставлять текст определения архитектуры NutriNet2 в NVIDIA DIGITS в качестве пользовательской сети.
      ПРИМЕЧАНИЕ: Текст определения архитектуры NutriNet можно найти в дополнительных файлах ('nutrinet.prototxt').
    3. (По желанию) Определите обучение гиперпараметам в пользовательском интерфейсе NVIDIA DIGITS.
      ПРИМЕЧАНИЕ: Гиперпараметеры являются параметрами, которые используются для определения учебного процесса до его начала. Гиперпараметеры, используемые авторами этой статьи, можно найти в файле, включеном в дополнительные файлы ('nutrinet_hyperparameters.prototxt'). В то время как эксперименты необходимы для каждого набора данных, чтобы найти оптимальные гиперпараметеры, файл содержит гиперпараметр конфигурации, которые могут быть скопированы в пользовательский интерфейс NVIDIA DIGITS. Кроме того, NVIDIA DIGITS заполняет гиперпарамтеры значениями по умолчанию, которые могут быть использованы в качестве базовой линии. Поэтому этот шаг является необязательным.
    4. Запустите обучение модели NutriNet.
    5. После завершения обучения возьмите наиболее эффективные модели NutriNet итерации. Эта модель затем используется для проверки производительности этого подхода.
      ПРИМЕЧАНИЕ: Существует несколько способов определения наиболее эффективных итераций модели. Простой способ сделать это заключается в следующем. NVIDIA DIGITS выводит график показателей точности для каждой эпохи обучения. Проверьте, какая эпоха достигла наименьшего значения потерь для подмножества данных о проверке изображений продуктов питания - эту итерацию модели можно считать наиболее лучшей. Дополнительным шагом в определении наиболее эффективных итераций модели является наблюдать, как значение потерь для подмножества обучения изменяется от эпохи к эпохе, и если оно начинает непрерывно падать, в то время как значение потери для подмножества проверки остается прежним или постоянно возрастает, возьмите эпоху до этого падения значения потери обучения, так как это может сигнализировать, когда модель начала перенапрягоняться на учебных изображениях.

2. Сегментация изображения еды с FCNs

  1. Получение набора данных изображений с поддельными продуктами питания
    1. Получить набор данных изображений поддельных продуктов питания. Поддельные изображения продуктов питания собираются исследователями, проводящими поведенческие исследования с использованием пищевых реплик.
      ПРИМЕЧАНИЕ: Авторы этой статьи получили изображения поддельной пищи, которые были собраны в лабораторных условиях18.
    2. Вручную аннотировать каждое пищевое изображение на уровне пикселей - каждый пиксель на изображении должен содержать информацию о том, к какому классу продуктов питания он принадлежит. Результатом этого шага является одно аннотация изображения для каждого изображения из набора данных пищевого изображения, где каждый пиксель представляет один из классов питания.
      ПРИМЕЧАНИЕ: Есть много инструментов для достижения этой цели - авторы этой статьи использовали JavaScript сегмент Аннотатор48.
  2. Увеличение набора данных изображений с поддельными продуктами питания
    1. Выполните те же шаги, что и в разделе 1.3, но только на изображениях из подмножества учебных данных изображения.
      ПРИМЕЧАНИЕ: За исключением шага 1.3.5, все шаги по увеличению данных также должны выполняться на соответствующих аннотациях изображений. Если используется скрипт из раздела 1.3, то путь ввода (переменный 'INPUT_PATH', строка 8 в коде скрипта Python43) и Выходной путь (переменный 'OUTPUT_PATH', строка 11 в коде скрипта Python) должны быть заменены путями к желаемым папкам. Кроме того, установите проблему (переменная 'PROBLEM', строка 6 в коде скрипта Python) на 'instance_segmentation' и режим аннотации (переменная 'ANNOTATION_MODE', строка 7 в коде скрипта Python) и режим вывода (переменный 'OUTPUT_MODE', строка 10 в коде скрипта Python) на 'coco'.
  3. Выполнение сегментации изображений поддельных продуктов питания
    1. Выполните те же шаги, что и в разделе 1.4, за исключением шага 1.4.2. Вместо этого шага выполните шаги 2.3.2 и 2.3.3.
      ПРИМЕЧАНИЕ: Гиперпараметеры являются параметрами, которые используются для определения учебного процесса до его начала. Учебные гиперпарамтеры, используемые авторами данной статьи для дополнительного шага 1.4.3, можно найти в файле, включенном в дополнительные файлы ('fcn-8s_hyperparameters.prototxt'). В то время как эксперименты необходимы для каждого набора данных, чтобы найти оптимальный набор гиперпараметеров, файл содержит гиперпараметровую конфигурацию, которая может быть скопирована в пользовательский интерфейс NVIDIA DIGITS47. Кроме того, NVIDIA DIGITS заполняет гиперпарамтеры значениями по умолчанию, которые могут быть использованы в качестве базовой линии.
    2. Копировать и вставлять текст определения архитектуры FCN-8s15 в среду NVIDIA DIGITS в качестве пользовательской сети.
      ПРИМЕЧАНИЕ: Текст определения архитектуры FCN-8s находится в общедоступном доступе на GitHub49.
    3. Введите путь к предварительно обученной модели FCN-8s в пользовательский интерфейс NVIDIA DIGITS.
      ПРИМЕЧАНИЕ: Эти весы модели были предварительно обучены на наборе данных PASCAL VOC17 и могут быть найдены в Интернете49.

3. Сегментация изображения еды с HTC ResNet

  1. Получение набора данных изображений пищевых продуктов
    1. Скачать набор данных изображения еды с веб-сайта FRC19.
  2. Увеличение набора данных изображений пищевых продуктов
    1. Выполните шаги 1.3.1-1.3.4.
      ПРИМЕЧАНИЕ: Скрипт Python43, содержащий все команды CLoDSA46, используемые авторами этой статьи, можно найти в файле, включеном в дополнительные файлы ('frc_augmentation.py'). При использовании этого скрипта необходимо заменить путь ввода (переменный 'INPUT_PATH', строка 8 в коде скрипта Python) и Путь вывода (переменный 'OUTPUT_PATH', строка 11 в коде скрипта Python).
    2. Создайте новую версию каждого изображения из набора данных пищевого изображения, добавив к нему гауссийское размытие с помощью библиотеки CLoDSA (линии 26 и 27 в включенном скрипте Python).
    3. Создайте новую версию каждого изображения из набора данных пищевого изображения, заточив его с помощью библиотеки CLoDSA (линии 29 и 30 в включенной скрипте Python).
    4. Создайте новую версию каждого изображения из набора данных пищевого изображения, применяя к нему гамма-коррекцию с помощью библиотеки CLoDSA (линии 32 и 33 в включенной скрипте Python).
    5. Сохранить изображения из шагов 3.2.1-3.2.4, наряду с оригинальными изображениями (линии 16 и 17 в включенной скрипт Python), в новый набор данных изображения пищи (в общей сложности, 8 вариантов на изображение пищи). Это делается путем выполнения команды в строке 35 включенного скрипта Python.
    6. Сохранить изображения из шагов 3.2.2-3.2.4, наряду с оригинальными изображениями (линии 16 и 17 в включенной скрипт Python), в новый набор данных изображения пищи (в общей сложности 4 варианта на изображение пищи). Это делается путем удаления строк от 19 до 24 включенного скрипта Python и выполнения команды в строке 35.
  3. Выполнение сегментации изображения еды
    1. Измените существующую архитектуру HTC20 ResNet-10116 из библиотеки MMDetection50 в разделах «настройки модели» и «настройки набора данных» файла определения архитектуры таким образом, чтобы он принял наборы данных изображений еды из шагов 3.1.1, 3.2.5 и 3.2.6.
    2. (По желанию) Измените определение архитектуры HTC ResNet-101 с шага 3.3.1 для определения гиперпараметов обучения: размер пакета в настройках набора данных, тип решения и скорость обучения в разделе 'оптимизатор', политика обучения в разделе 'политика обучения' и количество учебных эпох в разделе 'настройки времени выполнения' файла определения архитектуры.
      ПРИМЕЧАНИЕ: Модифицированный файл определения архитектуры HTC ResNet-101 можно найти в дополнительных файлах ('htc_resnet-101.py'). Гиперпараметеры являются параметрами, которые используются для определения тренировочного процесса до его начала. В то время как эксперименты необходимы для каждого набора данных, чтобы найти оптимальный набор гиперпараметеров, файл уже содержит гиперпараметровую конфигурацию, которая может быть использована без изменений. Поэтому этот шаг является необязательным.
    3. Запустите обучение модели HTC ResNet-101 на наборе данных пищевого изображения из шага 3.1.1 с помощью библиотеки MMDetection (например, с командой: 'python mmdetection/tools/train.py htc_resnet-101.py').
    4. После завершения обучения по этапу 3.3.3 возьмите наиболее эффективные итерации модели HTC ResNet-101 и настройте ее, проведя следующий этап обучения набору данных о пищевом изображении с этапа 3.2.5.
      ПРИМЕЧАНИЕ: Существует несколько способов определения наиболее эффективных итераций модели. Простой способ сделать это заключается в следующем. Библиотека MMDetection выводит значения показателей точности для каждой учебной эпохи в интерфейсе командной строки. Проверьте, какая эпоха достигла наименьшего значения потерь для подмножества данных о проверке изображений продуктов питания - эту итерацию модели можно считать наиболее лучшей. Дополнительным шагом в определении наиболее эффективных итераций модели является наблюдать, как значение потерь для подмножества обучения изменяется от эпохи к эпохе, и если оно начинает непрерывно падать, в то время как значение потери для подмножества проверки остается прежним или постоянно возрастает, возьмите эпоху до этого падения значения потери обучения, так как это может сигнализировать, когда модель начала перенапрягоняться на учебных изображениях.
    5. После завершения обучения по этапу 3.3.4 возьмите наиболее эффективные итерации модели HTC ResNet-101 и отустройте ее, проведя следующий этап обучения набору данных о пищевом изображении с этапа 3.2.6.
      ПРИМЕЧАНИЕ: См. примечание для шага 3.3.4.
    6. После завершения обучения на этапе 3.3.5 возьмите наиболее эффективные итерации модели HTC ResNet-101 и отстройте ее, снова проведя следующий этап обучения набору данных о пищевом изображении с этапа 3.2.5.
      ПРИМЕЧАНИЕ: См. примечание для шага 3.3.4.
    7. После завершения обучения на этапе 3.3.6 возьмите наиболее эффективные модели HTC ResNet-101. Эта модель затем используется для проверки производительности этого подхода.
      ПРИМЕЧАНИЕ: См. примечание для шага 3.3.4. Шаги 3.3.3-3.3.7 дали наилучшие результаты для целей, определенных авторами данной статьи. Для каждого набора данных необходимы эксперименты, чтобы найти оптимальную последовательность обучения и этапов увеличения данных.

Representative Results

NutriNet был протестирован против трех популярных глубокой архитектуры обучениятого времени:AlexNet 14 , GoogLeNet51 и ResNet16. Несколько параметров обучения были также протестированы для всех архитектур для определения оптимальных значений2. Среди них выбор типа решатера, который определяет, как функция потери сведена к минимуму. Эта функция является основным показателем качества для обучения нейронных сетей, поскольку она лучше подходит для оптимизации во время обучения, чем точность классификации. Мы протестировали три решатели: Стохастический градиентный спуск (SGD)52,ускоренный градиент Нестерова (NAG)53 и алгоритм адаптивного градиента (AdaGrad)54. Вторым параметром является размер партии, который определяет количество изображений, которые обрабатываются одновременно. Глубина глубокой архитектуры обучения определила ценность этого параметра, так как более глубокие архитектуры требуют больше места в памяти GPU - следствием этого подхода было то, что память была полностью заполнена изображениями для всех архитектур, независимо от глубины. Третьим параметром является скорость обучения, которая определяет скорость, с которой параметры нейронной сети меняются во время обучения. Этот параметр был установлен в унисон с размером партии, так как количество одновременно обработанных изображений диктует скорость конвергенции. Модели AlexNet были обучены с использованием партии размером 256 изображений и базовой скоростью обучения 0,02; NutriNet использовала пакет размером 128 изображений и скоростью 0,01; GoogLeNet 64 изображения и скорость 0,005; и ResNet 16 изображений и скорость 0,00125. Для всех архитектур были зафиксированы три других параметра: политика скорости обучения (шаг вниз), размер шага (30%) и гамма (0,1). Эти параметры совместно описывают, как меняется скорость обучения в каждую эпоху. Идея такого подхода заключается в том, что уровень обучения постепенно снижается, чтобы отладить модель, чем ближе она к оптимальному значению потери. Наконец, количество учебных эпох также было зафиксировано до 150 для всех глубокой архитектуры обучения2.

Лучшим результатом среди всех параметров, проверенных NutriNet, была точность классификации 86,72% на наборе данных распознавания, что было примерно на 2% выше наилучшего результата для AlexNet и немного выше наилучшего результата GoogLeNet. Наиболее эффективной архитектурой в целом был ResNet (примерно на 1%), однако время обучения для ResNet значительно выше по сравнению с NutriNet (в два раза примерно пять), что важно, если модели постоянно перенаучили для повышения точности и количества узнаваемых продуктов питания. NutriNet, AlexNet и GoogLeNet достигли своих лучших результатов с помощью решения AdaGrad, в то время как лучшая модель ResNet использовала решение NAG. NutriNet также был протестирован на общедоступном наборе данных изображений продуктов питания UNIMIB201638. Этот набор данных содержит 3616 изображений 73 различных продуктов питания. NutriNet достигла точности распознавания 86,39% на этом наборе данных, немного выихав базовый результат распознавания авторов набора данных, который составил 85,80%. Кроме того, NutriNet был протестирован на небольшом наборе данных из 200 реальных изображений 115 различных продуктов питания и напитков, где NutriNet достиг топ-5 точность 55%.

Для обучения модели сегментации изображений FCN-8 мы использовали Adam55 в качестве решатера, так как обнаружили, что он работает оптимально для выполнения этой задачи. Базовая ставка обучения была установлена очень низко - до 0,0001. Причиной низкого числа является тот факт, что только одно изображение может быть обработано одновременно, что является следствием процесса классификации пиксельного уровня. Требования к памяти GPU для этого подхода значительно больше, чем классификация уровня изображения. Таким образом, скорость обучения должна быть установлена на низком уровне, с тем чтобы параметры не менялись слишком быстро и не сходились с менее оптимальными значениями. Количество учебных эпох было установлено до 100, в то время как политика скорости обучения, размер шага и гамма были установлены на шаг вниз, 34% и 0,1, соответственно, так как эти параметры дали наиболее точные модели.

Измерения точности модели FCN-8s проводились с использованиемизмерения точности пикселей 15, что аналогично точности классификации традиционных сетей глубокого обучения, основное отличие в том, что точность вычисляется на уровне пикселей, а не на уровне изображения:

Equation 1

где PA является измерение точности пикселей, nij это количество пикселей из класса я предсказал, чтобы принадлежать к классу j и т я й j nij является общее количество пикселей из класса в земле правды этикетки1. Другими словами, мера точности пикселей вычисляется путем деления правильно предсказанных пикселей на общее количество пикселей. Окончательная точность обученной модели FCN-8s составила 92,18%. На рисунке 2 показаны три примера изображений из набора данных изображений поддельных продуктов питания (по одному от каждого из подмножества обучения, проверки и тестирования), а также соответствующие метки прогнозирования на местах и модели.

Параметры для обучения модели HTC20 ResNet-101 для сегментации изображения еды были установлены следующим образом: используемый тип решения был SGD, потому что он превзошел другие типы решателя. Базовая ставка обучения была установлена на уровне 0,00125, а размер партии - до 2 изображений. Количество учебных эпох было установлено до 40 на каждом этапе обучения, и было выполнено несколько этапов обучения - сначала на исходном наборе данных FRC без дополненных изображений, затем на 8x-дополненном и 4x-дополненном наборе данных FRC несколько раз попеременно, каждый раз принимая наиболее эффективные модели и тонко настраивая его на следующем этапе обучения. Более подробную информацию о этапах обучения можно найти в разделе 3.3 текста протокола. Наконец, была использована политика поэтапного обучения с фиксированными эпохами, когда уровень обучения снизился (эпохи 28 и 35 для первого этапа обучения). Важно отметить, что, хотя эта последовательность этапов обучения дали наилучшие результаты в нашем тестировании в рамках FRC, использование другого набора данных может потребовать другой последовательности для получения оптимальных результатов.

Это решение на основе ResNet для сегментации изображения продуктов питания было оценено с использованием следующей точноймеры 19:

Equation 2

где P является точность, TP является число истинных положительных прогнозов по модели сегментации изображения пищи, FP является число ложноположительный прогнозы и IoU пересечение над Союзом, который вычисляется с этим уравнением:

Equation 3

где область перекрытия представляет количество предсказаний по модели, которая пересекается с наземной истиной, а Area of Union представляет общее количество прогнозов по модели вместе с наземной истиной, как на уровне пикселей, так и для каждого отдельного класса питания. Отзыв используется в качестве вторичной меры и рассчитывается аналогичным образом, используя следующую формулу19:

Equation 4

где R является отзыв и FN является число ложных негативных прогнозов по модели сегментации изображения продуктов питания. Показатели точности и отзыва затем усредовываются по всем классам в наземной правде. Используя эти меры, наша модель достигла средней точности 59,2% и средний отзыв 82,1%, который занял второе место во втором туре продовольственного признания Challenge19. Этот результат на 4,2% отстает от первого места и на 5,3% опережает третье место по средней точности. Таблица 1 содержит результаты для 4 лучших участников конкурса.

Figure 1
Рисунок 1: Диаграмма архитектуры глубокой нейронной сети NutriNet. Эта цифра была опубликована в Mezgec et al.2. Пожалуйста, нажмите здесь, чтобы просмотреть большую версию этой цифры.

Figure 2
Рисунок 2: Изображения из набора изображений поддельных продуктов питания. Оригинальные изображения (слева), этикетки наземной правды с ручной маркировкой (средний) и прогнозы из модели FCN-8s (справа). Эта цифра была опубликована в Mezgec et al.1. Пожалуйста, нажмите здесь, чтобы просмотреть большую версию этой цифры.

Название команды Размещения Средняя точность Средний отзыв
rssfete 1 63.4% 88.6%
simon_mezgec 2 59.2% 82.1%
Аримбо 3 53.9% 73.5%
скрытыйvec 4 48.7% 71.1%

Таблица 1: Топ-4 результаты второго раунда конкурса по признанию продуктов питания. Средняя точность считается основным показателем производительности, а средний отзыв — второстепенным показателем. Результаты взяты из официальной таблице лидеров конкурса19.

Дополнительные файлы. Пожалуйста, нажмите здесь, чтобы загрузить этот файл.

Discussion

В последние годы глубокие нейронные сети были проверены несколько раз в качестве подходящего решениядля распознавания изображений пищи 10,11,12,21,23,25,26,29,31,33. Наша работа, представленная в этой статье служит для дальнейшего доказатьэто 1,2. Подход распознавания изображений продуктов питания с одним выходом прост и может быть использован для простых приложений, где изображения только с одним пунктом питания или напитка, какожидается, 2.

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

Там была некоторая работа, проделанная в отношении наличия продуктов питания изображениянаборы данных 3,22,27,30,36,37,38,39,40,41,42, и мы надеемся, что больше будет сделано в будущем, особенно когда дело доходит до агрегирования продуктов питания изображения datasets из разных регионов по всему миру, что позволит более надежные решения, которые позволят более надежные решения, которые будут разработаны. В настоящее время точность автоматических решений распознавания изображений пищевых продуктов ещене достигла точности человеческого уровня 35,и это, вероятно, во многом связано с использованием наборов данных изображений пищевых продуктов недостаточного размера и качества.

В будущем нашей целью будет дальнейшая оценка разработанных процедур по реальным изображениям. Как правило, наборы данных в этой области часто содержат изображения, сделанные в контролируемых средах, или изображения, которые были оптимизированы вручную для распознавания. Вот почему важно собрать большой и разнообразный набор данных о образе продуктов питания в реальном мире, чтобы охватить все различные продукты питания и напитки, которые люди могут захотеть распознать. Первый шаг к этому был предоставлен Food Recognition Challenge, который включал набор данных реальныхизображений продуктов питания 19, но дальнейшая работа должна быть сделана для проверки этого подхода на изображения продуктов питания со всего мира и в сотрудничестве с диетологами.

Disclosures

Авторов нечего раскрывать.

Acknowledgments

Авторы хотели бы поблагодарить Тамару Бухер (Tamara Bucher) из Университета Ньюкасла (Австралия) за предоставление набора данных изображений с поддельными продуктами питания. Эта работа была поддержана научно-исследовательскими и инновационными программами Европейского союза Horizon 2020 (номера грантов 863059 - FNS-Cloud, 769661 - SAAM); и Словенское исследовательское агентство (номер гранта P2-0098). Европейский союз и Словенийское научно-исследовательское агентство не играли никакой роли в разработке, анализе или написании этой статьи.

Materials

Name Company Catalog Number Comments
HARDWARE
NVIDIA GPU NVIDIA N/A An NVIDIA GPU is needed as some of the software frameworks below will not work otherwise. https://www.nvidia.com
SOFTWARE
Caffe Berkeley AI Research N/A Caffe is a deep learning framework. https://caffe.berkeleyvision.org
CLoDSA Jónathan Heras N/A CLoDSA is a Python image augmentation library. https://github.com/joheras/CLoDSA
Google API Client Google N/A Google API Client is a Python client library for Google's discovery-based APIs. https://github.com/googleapis/google-api-python-client
JavaScript Segment Annotator Kota Yamaguchi N/A JavaScript Segment Annotator is a JavaScript image annotation tool. https://github.com/kyamagu/js-segment-annotator
MMDetection Multimedia Laboratory, CUHK N/A MMDetection is an object detection toolbox based on PyTorch. https://github.com/open-mmlab/mmdetection
NVIDIA DIGITS NVIDIA N/A NVIDIA DIGITS is a wrapper for Caffe that provides a graphical web interface. https://developer.nvidia.com/digits
OpenCV Intel N/A OpenCV is a library for computer vision. https://opencv.org
Python Python Software Foundation N/A Python is a programming language. https://www.python.org
PyTorch Facebook AI Research N/A PyTorch is a machine learning framework. https://pytorch.org
Ubuntu OS Canonical N/A Ubuntu 14.04 is the OS used by the authors and offers compatibility with all of the software frameworks and tools above. https://ubuntu.com

DOWNLOAD MATERIALS LIST

References

  1. Mezgec, S., Eftimov, T., Bucher, T., Koroušić Seljak, B. Mixed Deep Learning and Natural Language Processing Method for Fake-Food Image Recognition and Standardization to Help Automated Dietary Assessment. Public Health Nutrition. 22 (7), 1193-1202 (2019).
  2. Mezgec, S., Koroušić Seljak, B. NutriNet: A Deep Learning Food and Drink Image Recognition System for Dietary Assessment. Nutrients. 9 (7), 657 (2017).
  3. Chen, M., et al. PFID: Pittsburgh Fast-Food Image Dataset. Proceedings of the ICIP 2009. , 289-292 (2009).
  4. Joutou, T., Yanai, K. A Food Image Recognition System with Multiple Kernel Learning. Proceedings of the ICIP 2009. , 285-288 (2009).
  5. Yang, S., Chen, M., Pomerlau, D., Sukthankar, R. Food Recognition using Statistics of Pairwise Local Features. Proceedings of the CVPR 2010. , 2249-2256 (2010).
  6. Anthimopoulos, M. M., Gianola, L., Scarnato, L., Diem, P., Mougiakakou, S. G. A Food Recognition System for Diabetic Patients Based on an Optimized Bag-of-Features Model. IEEE Journal of Biomedical and Health Informatics. 18 (4), 1261-1271 (2014).
  7. LeCun, Y., Bengio, Y., Hinton, G. Deep Learning. Nature. 521, 436-444 (2015).
  8. Deng, L., Yu, D. Deep Learning: Methods and Applications. Foundations and Trends in Signal Processing. 7 (3-4), 197 (2014).
  9. Hubel, D. H., Wiesel, T. N. Receptive Fields, Binocular Interaction and Functional Architecture in the Cat's Visual Cortex. The Journal of Physiology. 160 (1), 106-154 (1962).
  10. Singla, A., Yuan, L., Ebrahimi, T. Food/Non-Food Image Classification and Food Categorization using Pre-Trained GoogLeNet Model. Proceedings of the MADiMa'16. , 3-11 (2016).
  11. Yanai, K., Kawano, Y. Food Image Recognition using Deep Convolutional Network with Pre-Training and Fine-Tuning. Proceedings of the ICMEW 2015. , 1-6 (2015).
  12. Liu, C., et al. DeepFood: Deep Learning-Based Food Image Recognition for Computer-Aided Dietary Assessment. Proceedings of the ICOST 2016. , 37-48 (2016).
  13. De Sousa Ribeiro, F., et al. An End-to-End Deep Neural Architecture for Optical Character Verification and Recognition in Retail Food Packaging. Proceedings of the ICIP 2018. , 2376-2380 (2018).
  14. Krizhevsky, A., Sutskever, I., Hinton, G. ImageNet Classification with Deep Convolutional Neural Networks. Proceedings of the NIPS'12. , 1097-1105 (2012).
  15. Long, J., Shelhamer, E., Darrell, T. Fully Convolutional Networks for Semantic Segmentation. Proceedings of the CVPR 2015. , 3431-3440 (2015).
  16. He, K., Zhang, X., Ren, S., Sun, J. Deep Residual Learning for Image Recognition. Proceedings of the CVPR 2016. , 770-778 (2016).
  17. PASCAL VOC Project. PASCAL Visual Object Classes. , Available from: http://host.robots.ox.ac.uk/pascal/VOC (2020).
  18. Bucher, T., vander Horst, K., Siegrist, M. Fruit for Dessert. How People Compose Healthier Meals. Appetite. 60 (1), 74-80 (2013).
  19. Food Recognition Challenge. AICrowd. , Available from: https://www.aicrowd.com/challenges/food-recognition-challenge (2020).
  20. Chen, K., et al. Hybrid Task Cascade for Instance Segmentation. Proceedings of the CVPR 2019. , 4974-4983 (2019).
  21. Kawano, Y., Yanai, K. Food Image Recognition with Deep Convolutional Features. Proceedings of the UbiComp 2014. , 589-593 (2014).
  22. Matsuda, Y., Hoashi, H., Yanai, K. Recognition of Multiple-Food Images by Detecting Candidate Regions. Proceedings of the ICME 2012. , 25-30 (2012).
  23. Christodoulidis, S., Anthimopoulos, M. M., Mougiakakou, S. G. Food Recognition for Dietary Assessment using Deep Convolutional Neural Networks. Proceedings of the ICIAP 2015. , 458-465 (2015).
  24. Tanno, R., Okamoto, K., Yanai, K. DeepFoodCam: A DCNN-Based Real-Time Mobile Food Recognition System. Proceedings of the MADiMa'16. , 89-89 (2016).
  25. Liu, C., et al. A New Deep Learning-Based Food Recognition System for Dietary Assessment on An Edge Computing Service Infrastructure. IEEE Transactions on Services Computing. 11 (2), 249-261 (2017).
  26. Martinel, N., Foresti, G. L., Micheloni, C. Wide-Slice Residual Networks for Food Recognition. Proceedings of the IEEE WACV 2018. , 567-576 (2018).
  27. Bossard, L., Guillaumin, M., Van Gool, L. Food-101-Mining Discriminative Components with Random Forests. Proceedings of the ECCV'14. , 446-461 (2014).
  28. Zhou, L., Zhang, C., Liu, F., Qiu, Z., He, Y. Application of Deep Learning in Food: A Review. Comprehensive Reviews in Food Science and Food Safety. 18, 1793-1811 (2019).
  29. Zhao, H., Yap, K. -H., Kot, A. C., Duan, L. JDNet: A Joint-Learning Distilled Network for Mobile Visual Food Recognition. IEEE Journal of Selected Topics in Signal Processing. 14 (4), 665-675 (2020).
  30. Kawano, Y., Yanai, K. Automatic Expansion of a Food Image Dataset Leveraging Existing Categories with Domain Adaptation. Proceedings of the ECCV'14. , 3-17 (2014).
  31. Hafiz, R., Haque, M. R., Rakshit, A., Uddin, M. S. Image-Based Soft Drink Type Classification and Dietary Assessment System using Deep Convolutional Neural Network with Transfer Learning. Journal of King Saud University - Computer and Information Sciences. , (2020).
  32. Shimoda, W., Yanai, K. Weakly-Supervised Plate and Food Region Segmentation. Proceedings of the ICME 2020. , 1-6 (2020).
  33. Ciocca, G., Micali, G., Napoletano, P. State Recognition of Food Images using Deep Features. IEEE Access. 8, 32003-32017 (2020).
  34. Knez, S., Šajn, L. Food Object Recognition using a Mobile Device: Evaluation of Currently Implemented Systems. Trends in Food Science & Technology. 99, 460-471 (2020).
  35. Furtado, P., Caldeira, M., Martins, P. Human Visual System vs Convolution Neural Networks in Food Recognition Task: An Empirical Comparison. Computer Vision and Image Understanding. 191, 102878 (2020).
  36. Chen, M. -Y., et al. Automatic Chinese Food Identification and Quantity Estimation. SA'12 Technical Briefs. , 1-4 (2012).
  37. Chen, J., Ngo, C. -W. Deep-Based Ingredient Recognition for Cooking Recipe Retrieval. Proceedings of the MM'16. , 32-41 (2016).
  38. Ciocca, G., Napoletano, P., Schettini, R. Food Recognition: A New Dataset, Experiments, and Results. IEEE Journal of Biomedical and Health Informatics. 21 (3), 588-598 (2017).
  39. Salvador, A., et al. Learning Cross-Modal Embeddings for Cooking Recipes and Food Images. Proceedings of the IEEE CVPR 2017. , 3020-3028 (2017).
  40. Ciocca, G., Napoletano, P., Schettini, R. CNN-Based Features for Retrieval and Classification of Food Images. Computer Vision and Image Understanding. 176-177, 70-77 (2018).
  41. Cai, Q., Li, J., Li, H., Weng, Y. BTBUFood-60: Dataset for Object Detection in Food Field. Proceedings of the IEEE BigComp 2019. , 1-4 (2019).
  42. Min, W., et al. ISIA Food-500: A Dataset for Large-Scale Food Recognition via Stacked Global-Local Attention Network. Proceedings of the MM'20. , 393-401 (2020).
  43. Python Software Foundation. Python. , Available from: https://www.python.org (2020).
  44. Google Custom Search API. Google. , Available from: https://developers.google.com/resources/api-libraries/documentation/customsearch/v1/python/latest/customsearch_v1.cse.html (2020).
  45. Stanford Vision Lab. ImageNet. , Available from: http://www.image-net.org (2020).
  46. Heras, J. CLoDSA. , Available from: https://github.com/joheras/CLoDSA (2020).
  47. NVIDIA DIGITS. NVIDIA. , Available from: https://developer.nvidia.com/digits (2020).
  48. Yamaguchi, K. JavaScript Segment Annotator. , Available from: https://github.com/kyamagu/js-segment-annotator (2020).
  49. Shelhamer, E. Fully Convolutional Networks for Semantic Segmentation. , Available from: https://github.com/shelhamer/fcn.berkeleyvision.org (2020).
  50. Multimedia Laboratory, CUHK. MMDetection. , Available from: https://github.com/open-mmlab/mmdetection (2020).
  51. Szegedy, C., et al. Going Deeper with Convolutions. Proceedings of the CVPR 2015. , 1-9 (2015).
  52. Bottou, L. Large-Scale Machine Learning with Stochastic Gradient Descent. Proceedings of the COMPSTAT'2010. , 177-186 (2010).
  53. Nesterov, Y. A Method of Solving a Convex Programming Problem with Convergence Rate O(1/k2). Doklady Akademii Nauk SSSR. 27, 372-376 (1983).
  54. Duchi, J., Hazan, E., Singer, Y. Adaptive Subgradient Methods for Online Learning and Stochastic Optimization. Journal of Machine Learning Research. 12, 2121-2159 (2011).
  55. Kingma, D. P., Ba, J. Adam: A Method for Stochastic Optimization. arXiv Preprint. , (2017).

Tags

Инженерия выпуск 169 распознавание образов продуктов питания сегментация изображений продуктов питания глубокие нейронные сети глубокое обучение свертуционные нейронные сети диетическая оценка
Глубокие нейронные сети для оценки рациона питания на основе изображений
Play Video
PDF DOI DOWNLOAD MATERIALS LIST

Cite this Article

Mezgec, S., KoroušićMore

Mezgec, S., Koroušić Seljak, B. Deep Neural Networks for Image-Based Dietary Assessment. J. Vis. Exp. (169), e61906, doi:10.3791/61906 (2021).

Less
Copy Citation Download Citation Reprints and Permissions
View Video

Get cutting-edge science videos from JoVE sent straight to your inbox every month.

Waiting X
Simple Hit Counter