Промышленная автоматизация в Tyson с помощью компьютерного зрения, AWS Panorama и Amazon SageMaker

Исходный узел: 1575225

Это первая статья из серии блогов, состоящей из двух частей, о том, как Tyson Foods, Inc. использует Amazon SageMaker и AWS Panorama для автоматизации производственных процессов на своих мясокомбинатах за счет использования преимуществ приложений искусственного интеллекта на периферии. В первой части мы обсудим приложение для подсчета запасов для упаковочных линий. Во второй части мы обсудим решение для обнаружения аномалий на основе технического зрения на периферии для профилактического обслуживания промышленного оборудования.

Являясь одним из крупнейших переработчиков и продавцов курятины, говядины и свинины в мире, Тайсон Фудс, Inc., известна инновационными решениями на своих производственных и упаковочных предприятиях. В феврале 2020 года Тайсон объявило планирует внедрить компьютерное зрение (CV) на своих птицефабриках и запустила пилотный проект с AWS, чтобы стать пионером в области управления запасами. Тайсон сотрудничал с Лаборатория решений Amazon ML создать современное решение CV для подсчета куриных лотков, которое в режиме реального времени предоставляет информацию об уровнях упакованных запасов. В этом посте мы представляем обзор архитектуры AWS и полное пошаговое руководство по решению, чтобы продемонстрировать ключевые компоненты конвейера подсчета лотков, настроенного на заводе Tyson. Мы сосредоточимся на сборе и маркировке данных, обучении и развертывании моделей CV на периферии с использованием Создатель мудреца Амазонки, Apache MXNet Глюони Панорама АВС.

Операционное совершенство является ключевым приоритетом в Tyson Foods. Tyson применяет строгие меры обеспечения качества (QA) на своих упаковочных линиях, гарантируя, что только те упакованные продукты, которые проходят их протоколы контроля качества, отправляются своим клиентам. Чтобы удовлетворить спрос клиентов и быть впереди любых производственных проблем, Tyson внимательно следит за количеством упакованных куриных лотков. Тем не менее, современные методы ручного подсчета лотков для кур, прошедших контроль качества, не точны и не дают четкой картины перепроизводства/недопроизводства. Альтернативные стратегии, такие как ежечасный мониторинг общего веса продукции на стеллаже, не обеспечивают немедленной обратной связи с работниками предприятия. Производительность по переработке цыплят составляет 45,000,000 XNUMX XNUMX голов в неделю, поэтому точность и эффективность производства имеют решающее значение для бизнеса Tyson. CV можно эффективно использовать в таких сценариях для точной оценки количества переработанного цыпленка в режиме реального времени, позволяя сотрудникам выявлять потенциальные узкие места в упаковочных и производственных линиях по мере их возникновения. Это позволяет проводить корректирующие мероприятия и повышает эффективность производства.

Для потоковой передачи и обработки локальных видеопотоков в облаке для приложений CV требуется высокая пропускная способность сети и подготовка соответствующей инфраструктуры. Это может быть непомерно затратной задачей. AWS Panorama устраняет эти требования и позволяет Tyson обрабатывать видеопотоки на границе устройства AWS Panorama Appliance. Это уменьшает задержку в/из облака и затраты на пропускную способность, обеспечивая при этом простой в использовании интерфейс для управления устройствами и приложениями на периферии.

Обнаружение объектов — один из наиболее часто используемых CV-алгоритмов, который может локализовать положение объектов на изображениях и видео. Эта технология в настоящее время используется в различных реальных приложениях, таких как обнаружение пешеходов в автономных транспортных средствах, обнаружение опухолей при медицинском сканировании, системы подсчета посетителей для отслеживания посещаемости торговых помещений и т. д. Для вариантов использования управления запасами, таких как подсчет мясных лотков для Tyson, также важно сократить количество отходов за счет создания цикла обратной связи с производственными процессами, экономии средств и своевременной доставки грузов клиентам.

В следующих разделах этой записи в блоге рассказывается, как мы используем прямые трансляции с одного из заводов Tyson Foods для обучения модели обнаружения объектов с помощью Amazon SageMaker. Затем мы развертываем его на периферии с помощью устройства AWS Panorama.

Панорама АВС

AWS Panorama — это устройство машинного обучения (ML), которое позволяет организациям переносить CV на локальные камеры, чтобы делать прогнозы локально с высокой точностью и малой задержкой. AWS Panorama Appliance — это аппаратное устройство, позволяющее запускать приложения, использующие машинное обучение для сбора данных из видеопотоков, вывода видео с текстовыми и графическими наложениями и взаимодействия с другими сервисами AWS. Устройство может параллельно запускать несколько моделей CV для нескольких видеопотоков и выводить результаты в режиме реального времени. Он предназначен для использования в коммерческих и промышленных условиях.

AWS Panorama Appliance позволяет запускать автономные приложения CV на периферии без отправки изображений в облако AWS. Вы также можете использовать AWS SDK на устройстве AWS Panorama Appliance для интеграции с другими сервисами AWS и использовать их для отслеживания данных из приложения с течением времени. Для создания и развертывания приложений используется интерфейс командной строки приложения AWS Panorama. CLI — это инструмент командной строки, который создает папки приложений и файлы конфигурации по умолчанию, создает контейнеры с помощью Docker и загружает ресурсы.

AWS Panorama поддерживает модели, созданные с Апач MXNet, даркнета, ГлюонCV, Keras, ОННКС, PyTorch, TensorFlowи TensorFlow Lite, Ссылаться на этой сообщение в блоге, чтобы узнать больше о создании приложений на AWS Panorama. В процессе развертывания AWS Panorama позаботится о компиляции модели, характерной для пограничной платформы, посредством Компиляция Amazon SageMaker Neo. Результаты вывода можно направлять в сервисы AWS, такие как Amazon S3, Amazon CloudWatch, или интегрировать с локальными бизнес-приложениями. Журналы развертывания хранятся в Amazon CloudWatch.

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

Для получения более подробной информации, обратитесь к Страница Панорама AWS. Чтобы узнать больше о создании примеров приложений, см. Примеры панорамы AWS.

Подход

Сотрудник завода постоянно заполняет упакованные куриные лотки в пластиковые контейнеры и с течением времени складывает их, как показано на предыдущем рисунке. Мы хотим иметь возможность обнаруживать и подсчитывать общее количество лотков во всех контейнерах, установленных вертикально.

Обученная модель обнаружения объектов может прогнозировать ограничивающие рамки всех лотков, помещенных в корзину, в каждом видеокадре. Это можно использовать для измерения количества лотков в ячейке в данном случае. Мы также знаем, что в любой момент времени заполненными лотками заполняется только один бункер; счетчики лотков постоянно колеблются от высокого (во время заполнения) до низкого (когда новый бункер загораживает обзор заполненного бункера).

Зная это, мы применяем следующую стратегию для подсчета общего количества лотков с курицей:

  1. Поддерживайте два разных счетчика — локальный и глобальный. Глобальный счетчик поддерживает общее количество лотков в ячейках, а локальный счетчик хранит максимальное количество лотков, помещенных в новую ячейку.
  2. Обновляйте локальный счетчик по мере того, как в корзину помещаются новые лотки.
  3. Обнаружьте новое событие корзины следующими способами:
    1. Количество лотков в данном кадре обнуляется. (или)
    2. Поток номеров лотков в последнем n кадры постоянно падают.
  4. После обнаружения нового события бункера добавьте значение локального счетчика к глобальному счетчику.
  5. Сбросить локальный счетчик на ноль.

Мы протестировали этот алгоритм на нескольких часах видео и получили стабильные результаты.

Обучение модели обнаружения объектов с помощью Amazon SageMaker

Создание набора данных:

Захват новых изображений для маркировки заданий

Захват новых изображений для маркировки заданий

Мы собрали образцы изображений с упаковочной линии с помощью AWS Panorama Appliance. Скрипт для обработки изображений и их сохранения был упакован в виде приложения и развернут на AWS Panorama. Приложение собирает видеокадры с локальной камеры, установленной рядом с зоной упаковки, и сохраняет их с интервалом 60 секунд в Amazon S3 ведро; это предотвращает захват похожих изображений в видеоряде с разницей в несколько секунд. Мы также маскируем соседние области изображения, которые не имеют отношения к варианту использования.

Мы пометили куриные лотки ограничивающими рамками, используя Amazon SageMaker Основы истины работа с потоковой маркировкой. Мы также настроили уведомление о событии Amazon S3, которое публикует события, созданные объектом к Amazon Простая служба уведомлений (SNS), который служит источником входных данных для задания маркировки. Когда сценарий приложения AWS Panorama сохраняет изображение в корзину S3, уведомление о событии публикуется в теме SNS, которая затем отправляет это изображение в задание маркировки. Поскольку аннотаторы маркируют каждое входящее изображение, Ground Truth сохраняет метки в файле манифеста, который содержит путь S3 к изображению, а также координаты ограничивающих прямоугольников куриного лотка.

Мы выполняем несколько дополнений данных (например: случайный шум, случайный контраст и яркость, перетасовка каналов) на помеченных изображениях, чтобы сделать модель устойчивой к изменениям в реальной жизни. Исходные и дополненные изображения были объединены в единый набор данных.

Модельное обучение:

После завершения задания по маркировке мы вручную запускаем AWS Lambda функция. Эта лямбда-функция объединяет изображения и соответствующие им метки из выходного манифеста в LST-файл. В наших обучающих и тестовых файлах были изображения, собранные с разных упаковочных линий, чтобы предотвратить утечку данных при оценке. Затем функция Lambda запускает обучающее задание Amazon SageMaker.

МЫ ИСПОЛЬЗУЕМ Режим сценария SageMaker, что позволяет использовать собственные алгоритмы обучения и напрямую обучать модели, оставаясь при этом в удобных для пользователя рамках Amazon SageMaker. Мы обучаем такие модели, как SSD, Yolo-v3 (для задержки логического вывода в реальном времени) с различными комбинациями магистральных сетей от GluonCV Model Zoo для обнаружения объектов в режиме сценария. Нейронные сети имеют тенденцию к переобучению обучающих данных, что приводит к плохим результатам вне выборки. GluonCV обеспечивает нормализацию изображения и увеличение изображения, например рандомизированное переворачивание и обрезку изображения, чтобы помочь уменьшить переоснащение во время обучения. То учебный код модели находится в контейнере и использует образ Docker в нашем реестре AWS Elastic Container Registry. Задание обучения использует папку изображений S3 и пути к файлам LST в качестве входных данных и сохраняет лучший артефакт модели (.парамс и .json) до S3 после завершения.

Конвейер оценки модели

Конвейер оценки модели

Топ-2 модели, основанные на нашем тестовом наборе, были SSD-resnet50 и Йолов3-darketnet53, с оценкой mAP 0.91 каждый. Мы также провели тестирование в реальных условиях, развернув приложение для логического вывода на устройстве AWS Panorama вместе с обученной моделью. Сценарий логического вывода сохраняет прогнозы и видеокадры в корзину Amazon S3. Мы создали еще одно задание SageMaker Ground Truth для аннотирования основных фактов, а затем выполнили дополнительную количественную оценку модели. Наземная правда и предсказанные метки ограничительной рамки на изображениях были сохранены в S3 для качественной оценки. Модели смогли обобщить данные реального мира и дали стабильную производительность, аналогичную той, что была на нашем тестовом наборе.

Вы можете найти полные комплексные примеры создания настраиваемых заданий обучения, обучения современным моделям обнаружения объектов, внедрения оптимизации гиперпараметров (HPO) и развертывания моделей в Amazon SageMaker на веб-сайте Amazon SageMaker. Репозиторий GitHub AWS Labs.

Развертывание приложения для подсчета мясных лотков

Производственная архитектура

Производственная архитектура

Перед развертыванием мы упаковываем все наши ресурсы — модель, сценарий вывода, камеру и конфигурацию глобальной переменной в один контейнер, как указано в это сообщение в блоге. Наш конвейер непрерывной интеграции и непрерывного развертывания (CI/CD) обновляет любые изменения в сценарии логического вывода как новую версию приложения. После публикации новой версии приложения мы развертываем ее программно с помощью boto3 SDK на Python.

После развертывания приложения AWS Panorama сначала создает задание AWS SageMaker Neo Compilation для компиляции модели для устройства AWS Panorama. Сценарий приложения для логического вывода импортирует скомпилированную модель на устройство и выполняет обнаружение куриного лотка в каждом кадре. В дополнение к SageMaker Neo-Compilation мы включили квантование после обучения, добавив os.environ['TVM_TENSORRT_USE_FP16'] = '1' флаг в скрипте. Это уменьшает размер веса модели с float 32 до float 16, уменьшая размер модели вдвое и улучшая задержку без снижения производительности. Результаты вывода фиксируются в Монитор AWS SiteWise через сообщения MQTT с устройства AWS Panorama через Ядро Интернета вещей AWS. Затем результаты передаются в Amazon S3 и визуализируются в Amazon QuickSight Панели инструментов. Руководители и сотрудники завода могут напрямую просматривать эти информационные панели, чтобы в режиме реального времени оценивать производительность каждой упаковочной линии.

Заключение

Объединив облачный сервис AWS, такой как Amazon SageMaker, Amazon S3, и пограничный сервис, такой как AWS Panorama, Tyson Foods Inc. применяет искусственный интеллект для автоматизации трудоемких производственных процессов, таких как учет запасов на своих производственных предприятиях. Возможности получения граничных выводов в режиме реального времени позволяют Tyson выявлять избыточную/недостаточную добычу и динамически корректировать производственный процесс для достижения максимальной эффективности. Кроме того, обладая устройством AWS Panorama на периферии, Тайсон также может сократить расходы, связанные с высокой пропускной способностью сети для передачи видеофайлов в облако, и теперь может обрабатывать все свои видео/изображения локально в своей сети.

В этом сообщении в блоге представлен полный обзор граничных приложений и эталонные архитектуры для разработки приложения CV с помощью AWS Panorama. Мы обсудили 3 различных аспекта создания периферийного CV-приложения.

  1. Данные: сбор, обработка и маркировка данных с помощью AWS Panorama и Amazon SageMaker Ground Truth.
  2. Модель: Обучение моделированию и оценка с использованием Amazon SageMaker и AWS Lambda.
  3. Пакет приложений: Объединение обученной модели, скриптов и файлов конфигурации для AWS Panorama.

Оставайтесь с нами во второй части этой серии статей о том, как Tyson использует AWS Panorama для профилактического обслуживания промышленных машин на основе CV.

Нажмите здесь чтобы начать свое путешествие с AWS Panorama. Чтобы узнать больше о сотрудничестве с ML Solutions Lab, см. Лаборатория решений для машинного обучения Amazon.


Об авторах

Дивья Бхаргави специалист по данным Лаборатория решений Amazon ML где она работает с клиентами из разных областей и применяет творческий подход к решению проблем, чтобы создавать ценность для клиентов с помощью современных решений ML/AI.

Дилип Субраманиам является старшим разработчиком в команде Emerging Technologies в Tyson Foods. Он увлечен созданием крупномасштабных распределенных приложений для решения бизнес-задач и упрощения процессов, используя свои знания в области разработки программного обеспечения, машинного обучения и больших данных.

Источник: https://aws.amazon.com/blogs/machine-learning/industrial-automation-at-tyson-with-computer-vision-aws-panorama-and-amazon-sagemaker/

Отметка времени:

Больше от Блог машинного обучения AWS