Целью работы, представленной в данной статье, является разработка технологии автоматического распознавания продуктов питания и напитков на основе изображений, сделанных мобильными устройствами. Технология состоит из двух различных подходов – первый выполняет распознавание образов пищи, а второй выполняет сегментацию изображения пищи.
Из-за проблем и затрат, связанных с ручными подходами к оценке рациона питания, требуются автоматизированные решения для облегчения и ускорения работы и повышения ее качества. Сегодня автоматизированные решения способны записывать диетическое потребление человека гораздо проще, например, путем съемки с помощью камеры смартфона. В этой статье мы сосредоточимся на таких имиджевых подходах к диетической оценке. Что касается проблемы распознавания образов продуктов питания, то глубокие нейронные сети достигли состояния искусства в последние годы, и мы представляем нашу работу в этой области. В частности, мы сначала описываем метод распознавания изображений продуктов питания и напитков с помощью глубокой архитектуры нейронной сети под названием NutriNet. Этот метод, как и большинство исследований, проведенных в первые дни глубокого обучения на основе распознавания изображений пищи, ограничивается одним выходом на изображение, и, следовательно, непригодным для изображений с несколькими продуктами питания или напитками. Именно поэтому подходы, которые выполняют сегментацию изображения продуктов питания, значительно более надежны, так как они способны определить любое количество продуктов питания или напитков на изображении. Поэтому мы также представляем два метода сегментации изображения пищевых продуктов – один основан на полностью скотобойнальных сетях (FCNs), а другой на глубоких остаточных сетях (ResNet).
Диетическая оценка является важным шагом в определении действия областях диеты человека. Однако выполнение диетической оценки с использованием традиционно ручных подходов связано со значительными издержками. Эти подходы также подвержены ошибкам, поскольку они часто опираются на самореафьяций со стороны человека. Автоматизированная диетическая оценка решает эти вопросы, предоставляя более простой способ количественной оценки и квалификации потребления пищи. Такой подход может также облегчить некоторые ошибки, присутствующие в ручных подходах, такие, как пропущенная еда, неспособность точно оценить объем пищи и т.д. Таким образом, есть явные преимущества для автоматизации диетической оценки путем разработки решений, которые определяют различные продукты питания и напитки и количественное потреблениепищи 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 принимает 512×512-пиксельные изображения в качестве ввода (в отличие от 256×256-пиксельных изображений для 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.
В последние годы глубокие нейронные сети были проверены несколько раз в качестве подходящего решениядля распознавания изображений пищи 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, но дальнейшая работа должна быть сделана для проверки этого подхода на изображения продуктов питания со всего мира и в сотрудничестве с диетологами.
The authors have nothing to disclose.
Авторы хотели бы поблагодарить Тамару Бухер (Tamara Bucher) из Университета Ньюкасла (Австралия) за предоставление набора данных изображений с поддельными продуктами питания. Эта работа была поддержана научно-исследовательскими и инновационными программами Европейского союза Horizon 2020 (номера грантов 863059 – FNS-Cloud, 769661 – SAAM); и Словенское исследовательское агентство (номер гранта P2-0098). Европейский союз и Словенийское научно-исследовательское агентство не играли никакой роли в разработке, анализе или написании этой статьи.
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 | 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 |