Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Определение местоположения аномалий с помощью Amazon Lookout for Vision на периферии без использования графического процессора

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

Amazon Lookout для видения — это служба машинного обучения (ML), которая помогает выявлять дефекты продукции с помощью компьютерного зрения, чтобы автоматизировать процесс контроля качества на ваших производственных линиях, не требуя опыта ML. Lookout for Vision теперь включает возможность указывать местоположение и тип аномалий с помощью моделей машинного обучения семантической сегментации. Эти настраиваемые модели машинного обучения можно развернуть в облаке AWS с помощью облачные API или к пользовательскому периферийному оборудованию, используя AWS IoT Greengrass. Lookout for Vision теперь поддерживает логические выводы на вычислительной платформе x86 под управлением Linux с ускорителем графического процессора NVIDIA или без него, а также на любом периферийном устройстве на базе NVIDIA Jetson. Эта гибкость позволяет обнаруживать дефекты на существующем или новом оборудовании.

В этом посте мы покажем вам, как обнаруживать дефектные детали с помощью моделей Lookout for Vision ML, работающих на периферийном устройстве, которые мы моделируем с помощью Эластичное вычислительное облако Amazon (Amazon EC2). Мы пройдем обучение новым моделям семантической сегментации, экспортируем их как компоненты AWS IoT Greengrass и выполним вывод в режиме только ЦП с примером кода Python.

Обзор решения

В этом посте мы используем набор изображений игрушечные инопланетяне состоит из нормальных и дефектных изображений, таких как отсутствующие конечности, глаза или другие части. Мы обучаем модель Lookout for Vision в облаке для выявления неисправных игрушечных инопланетян. Мы компилируем модель для целевого ЦП X86, упаковываем обученную модель Lookout for Vision в качестве компонента AWS IoT Greengrass и развертываем модель в инстансе EC2 без графического процессора с помощью консоли AWS IoT Greengrass. Наконец, мы демонстрируем пример приложения на основе Python, работающего на экземпляре EC2 (C5a.2xl), который получает изображения игрушечных инопланетян из файловой системы пограничного устройства, выполняет вывод на модели Lookout for Vision, используя КПГР интерфейс и отправляет данные логического вывода в MQTT тему в облаке AWS. Скрипты выводят изображение, включающее цвет и расположение дефектов на аномальном изображении.

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

Решение имеет следующий рабочий процесс:

  1. Загрузите обучающий набор данных и тестовый набор данных в Простой сервис хранения Amazon (Amazon S3).
  2. Используйте новый пользовательский интерфейс Lookout for Vision, чтобы добавить тип аномалии и отметить, где эти аномалии находятся на обучающих и тестовых изображениях.
  3. Обучите модель Lookout for Vision в облаке.
  4. Скомпилируйте модель в целевую архитектуру (X86) и разверните модель в экземпляре EC2 (C5a.2xl) с помощью консоли AWS IoT Greengrass.
  5. Исходные изображения с локального диска.
  6. Выполните выводы по развернутой модели через интерфейс gRPC и получите изображение масок аномалий, наложенное на исходное изображение.
  7. Отправьте результаты логического вывода на клиент MQTT, работающий на пограничном экземпляре.
  8. Получите сообщение MQTT по теме в Ядро Интернета вещей AWS в облаке AWS для дальнейшего мониторинга и визуализации.

Шаги 5, 6 и 7 согласованы с примером приложения Python.

Предпосылки

Прежде чем приступить к работе, выполните следующие предварительные условия. В этом посте мы используем инстанс EC2 c5.2xl и устанавливаем на него AWS IoT Greengrass V2, чтобы опробовать новые функции. Если вы хотите работать на NVIDIA Jetson, следуйте инструкциям из нашего предыдущего поста. Amazon Lookout for Vision теперь поддерживает визуальную проверку дефектов продукта на периферии..

  1. Создать учетную запись AWS.
  2. Запустите экземпляр EC2, на котором мы можем установить AWS IoT Greengrass, и использовать новый режим вывода только для ЦП. Вы также можете использовать 86-разрядную машину Intel X64 с 8 гигабайтами оперативной памяти или более (мы используем c5a.2xl, должно работать более 8 гигабайт на платформе x86) под управлением Ubuntu 20.04.
  3. Установите AWS IoT Greengrass V2:
    git clone https://github.com/aws-samples/amazon-lookout-for-vision.git
    cd edge
    # be sure to edit the installation script to match your region, also adjust any device names and groups!
    vi install_greengrass.sh

  4. Установите необходимую систему и зависимости Python 3 (Ubuntu 20.04):
    # install Ubuntu dependencies on the EC2 instance
    ./install-ec2-ubuntu-deps.sh
    pip3 install -r requirements.txt
    # Replace ENDPOINT variable in sample-client-file-mqtt.py with the value on the AWS console AWS IoT->Things->l4JetsonXavierNX->Interact.  
    # Under HTTPS. It will be of type <name>-ats.iot.<region>.amazon.com 

Загрузите набор данных и обучите модель

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

На следующем изображении показан обычный игрушечный инопланетянин.

Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

На следующем изображении у игрушечного инопланетянина отсутствует нога.

Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

На следующем изображении изображен игрушечный инопланетянин без головы.

Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

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

  1. Начните с загрузки набора данных либо через Amazon S3, либо со своего компьютера.
  2. Рассортируйте их по папкам под названием normal и anomaly.
  3. При создании набора данных выберите Автоматически прикреплять ярлыки к изображениям на основе имени папки.Это позволяет нам позже отсортировать аномальные изображения и нарисовать области, которые будут помечены дефектом.
    Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  4. Попробуйте придержать некоторые изображения для последующего тестирования обоих normal и anomaly.
  5. После того, как все изображения будут добавлены в набор данных, выберите Добавьте ярлыки аномалий.
  6. Начните маркировать данные, выбрав Начать маркировку.
  7. Чтобы ускорить процесс, вы можете выбрать несколько изображений и классифицировать их как Normal or Anomaly.
    Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
    Если вы хотите выделить аномалии в дополнение к их классификации, вам нужно выделить, где расположены аномалии.
  8. Выберите изображение, которое вы хотите аннотировать.
  9. Используйте инструменты рисования, чтобы показать область, где отсутствует часть объекта, или нарисуйте маску поверх дефекта.
  10. Выберите Отправить и закрыть сохранить эти изменения.
    Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  11. Повторите этот процесс для всех ваших изображений.
  12. Когда закончите, выберите Сохранить чтобы сохранить ваши изменения. Теперь вы готовы обучить свою модель.
    Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  13. Выберите Модель поезда.

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

Переобучите модель с исправленными изображениями

Иногда маркировка аномалии может быть не совсем корректной. У вас есть шанс помочь вашей модели лучше изучить ваши аномалии. Например, следующее изображение определено как аномалия, но не показывает missing_limbs тег.

Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Давайте откроем редактор и исправим это.

Просмотрите любые изображения, которые вы найдете, как это. Если вы обнаружите, что он неправильно помечен как аномалия, вы можете использовать инструмент «Ластик», чтобы удалить неправильный тег.

Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Теперь вы можете снова обучить свою модель и добиться большей точности.

Скомпилируйте и упакуйте модель как компонент AWS IoT Greengrass.

В этом разделе мы рассмотрим этапы компиляции модели игрушечного инопланетянина для нашего целевого пограничного устройства и упаковки модели в качестве компонента AWS IoT Greengrass.

  1. В консоли Lookout for Vision выберите свой проект.
  2. На панели навигации выберите Пакеты пограничных моделей.
  3. Выберите Создание задания на упаковку модели.
  4. Что касается Название работывведите имя.
  5. Что касается Описание вакансии, введите необязательное описание.
  6. Выберите Обзор моделей.
  7. Выберите версию модели (модель игрушечного инопланетянина, созданная в предыдущем разделе).
  8. Выберите Выберите.
    Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  9. Если вы используете это на Amazon EC2 или устройстве X86-64, выберите Целевая платформа , а затем выбрать Linux, X86и ЦП.
    Если вы используете ЦП, вы можете оставить параметры компилятора пустыми, если вы не уверены и у вас нет графического процессора NVIDIA. Если у вас есть платформа на базе процессоров Intel, поддерживающая AVX512, вы можете добавить следующие параметры компилятора для оптимизации производительности: {"mcpu": "skylake-avx512"}.
    Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Вы можете увидеть название своей работы и статус, отображаемые как In progress. Задание упаковки модели может занять несколько минут. Когда задание упаковки модели завершено, статус отображается как Success.
  10. Выберите название своей работы (в нашем случае это aliensblogcpux86), чтобы просмотреть сведения о задании.
    Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  11. Выберите Создание задания на упаковку модели.
    Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  12. Введите данные для Название компонента, Описание компонентов (по желанию), Компонентная версияи Расположение компонентов.Lookout for Vision хранит рецепты компонентов и артефакты в этом местоположении Amazon S3.
  13. Выберите Продолжить развертывание в Greengrass для развертывания компонента на целевом пограничном устройстве.
    Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Компонент AWS IoT Greengrass и артефакты модели созданы в вашей учетной записи AWS.

Развернуть модель

Прежде чем продолжить, убедитесь, что на целевом устройстве для вашей учетной записи установлен AWS IoT Greengrass V2. Инструкции см. Установите программное обеспечение AWS IoT Greengrass Core..

В этом разделе мы рассмотрим этапы развертывания игрушечной модели инопланетянина на пограничном устройстве с помощью консоли AWS IoT Greengrass.

Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

  1. В консоли AWS IoT Greengrass перейдите к своему пограничному устройству.
  2. Выберите Развертывание чтобы начать этапы развертывания.
  3. Выберите Основное устройство (поскольку развертывание выполняется на одном устройстве) и введите имя для Название цели. Целевое имя — это то же имя, которое вы использовали для имени основного устройства в процессе установки AWS IoT Greengrass V2.
  4. Выберите свой компонент. В нашем случае имя компонента aliensblogcpux86, который содержит игрушечную модель инопланетянина.
  5. Выберите Следующая.
  6. Настройте компонент (необязательно).
  7. Выберите Следующая.
  8. Расширьте Политики развертывания.
  9. Что касается Политика обновления компонентов, наведите на Уведомить компоненты. Это позволяет уже развернутому компоненту (предыдущая версия компонента) отложить обновление до тех пор, пока вы не будете готовы к обновлению.
  10. Что касается Политика обработки сбоев, наведите на Не откатывайтесь.В случае сбоя эта опция позволяет нам исследовать ошибки в развертывании.
  11. Выберите Следующая.
  12. Просмотрите список компонентов, которые будут развернуты на целевом (пограничном) устройстве.
  13. Выберите Следующая.Вы должны увидеть сообщение Deployment successfully created.
  14. Чтобы убедиться, что развертывание модели прошло успешно, выполните на пограничном устройстве следующую команду:
    sudo /greengrass/v2/bin/greengrass-cli component list

Вы должны увидеть аналогичный вывод при запуске aliensblogcpux86 Сценарий запуска жизненного цикла:

Компоненты, работающие в настоящее время в Greengrass:

Components currently running in Greengrass:
 
Component Name: aws.iot.lookoutvision.EdgeAgent
    Version: 0.1.34
    State: RUNNING
    Configuration: {"Socket":"unix:///tmp/aws.iot.lookoutvision.EdgeAgent.sock"}
 Component Name: aliensblogcpux86
    Version: 1.0.0
    State: RUNNING
    Configuration: {"Autostart":false}

Запуск выводов на модели

Внимание: Если вы используете Greengrass под другим пользователем, отличным от того, под которым вы вошли в систему, вам нужно будет изменить права доступа к файлу. /tmp/aws.iot.lookoutvision.EdgeAgent.sock:

chmod 666 /tmp/aws.iot.lookoutvision.EdgeAgent.sock

Теперь мы готовы выполнить выводы по модели. На пограничном устройстве выполните следующую команду, чтобы загрузить модель (замените с именем модели, используемым в вашем компоненте):

# run command to load the model# This will load the model into running state pass
# the name of the model component as a parameter.
python3 warmup-model.py <modelName>

Чтобы сгенерировать выводы, выполните следующую команду с именем исходного файла (замените с путем и именем файла образа для проверки и замены с именем модели, используемым для вашего компонента):

python3 sample-client-file-mqtt.py </path/to/images> <modelName>

start client ['sample-client-file.py', 'aliens-dataset/anomaly/1.png', 'aliensblogcpux86']
channel set
shape=(380, 550, 3)
Image is anomalous, (90.05860090255737 % confidence) contains defects with total area over .1%: {'missing_limbs': '#FFFFFF'}

Модель правильно предсказывает изображение как аномальное (missing_limbs) с показателем достоверности 0.9996867775917053. Он сообщает нам маску тега аномалии missing_limbs и процентная площадь. Ответ также содержит растровые данные, которые вы можете расшифровать из того, что он нашел.

Скачайте и откройте файл blended.png, который выглядит следующим образом. Обратите внимание на область, выделенную дефектом вокруг ног.

Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Истории клиентов

С помощью AWS IoT Greengrass и Lookout for Vision теперь вы можете автоматизировать визуальный контроль с помощью компьютерного зрения для таких процессов, как контроль качества и оценка дефектов, — и все это на периферии и в режиме реального времени. Вы можете заблаговременно выявлять такие проблемы, как повреждение деталей (такие как вмятины, царапины или плохая сварка), недостающие компоненты продукта или дефекты с повторяющимся рисунком на самой производственной линии, экономя время и деньги. Такие клиенты, как Tyson и Baxter, открывают для себя возможности Lookout for Vision для повышения качества и снижения эксплуатационных расходов за счет автоматизации визуального контроля.

«Производственное превосходство является ключевым приоритетом в Tyson Foods. Профилактическое обслуживание является важным активом для достижения этой цели за счет постоянного повышения общей эффективности оборудования (OEE). В 2021 году Tyson Foods запустила проект компьютерного зрения на основе машинного обучения, чтобы выявлять неисправные носители продуктов во время производства, чтобы они не влияли на безопасность членов команды, операции или качество продукции. Модели, обученные с помощью Amazon Lookout for Vision, показали хорошие результаты. Модель обнаружения штифтов достигла 95% точности в обоих классах. Модель Amazon Lookout for Vision была настроена на работу с точностью 99.1 % при обнаружении ошибочных контактов. Безусловно, самым захватывающим результатом этого проекта стало ускорение времени разработки. Хотя в этом проекте используются две модели и более сложный код приложения, на его выполнение у разработчиков ушло на 12 % меньше времени. Этот проект по мониторингу состояния контейнеров для продуктов в Tyson Foods был выполнен в рекордно короткие сроки с использованием управляемых сервисов AWS, таких как Amazon Lookout for Vision».

— Одри Тиммерман, старший разработчик приложений, Tyson Foods.

«Задержка и скорость логического вывода имеют решающее значение для оценки в реальном времени и критической проверки качества наших производственных процессов. Amazon Lookout for Vision Edge на устройстве с ЦП дает нам возможность добиться этого на оборудовании производственного уровня, что позволяет нам предоставлять экономичные решения для машинного зрения в масштабе».

— А. К. Каран, старший директор по цифровым технологиям, интегрированная цепочка поставок, Baxter International Inc.

уборка

Выполните следующие действия, чтобы удалить созданные вами активы из своей учетной записи и избежать постоянного выставления счетов:

  1. В консоли Lookout for Vision перейдите к своему проекту.
  2. На Действия меню, удалите свои наборы данных.
    Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  3. Удалите свои модели.
    Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  4. На консоли Amazon S3 очистите созданные вами корзины, а затем удалите их.
  5. В консоли Amazon EC2 удалите инстанс, который вы запустили для запуска AWS IoT Greengrass.
  6. В консоли AWS IoT Greengrass выберите Развертывания в навигационной панели.
  7. Удалите версии компонентов.
    Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  8. В консоли AWS IoT Greengrass удалите вещи, группы и устройства AWS IoT.

Заключение

В этом посте мы описали типичный сценарий обнаружения промышленных дефектов на периферии с использованием локализации дефектов и развертыванием на устройстве с одним ЦП. Мы рассмотрели ключевые компоненты жизненного цикла облака и периферии на комплексном примере с использованием Lookout for Vision и AWS IoT Greengrass. В Lookout for Vision мы обучили модель обнаружения аномалий в облаке с помощью игрушечный инопланетянин, скомпилировал модель в целевую архитектуру и упаковал модель как компонент AWS IoT Greengrass. С помощью AWS IoT Greengrass мы развернули модель на периферийном устройстве. Мы продемонстрировали пример приложения на основе Python, которое получает изображения игрушечных инопланетян из локальной файловой системы пограничного устройства, выполняет выводы по модели Lookout for Vision на периферии с помощью интерфейса gRPC и отправляет данные вывода в тему MQTT в AWS. Облако.

В следующем посте мы покажем, как выполнять выводы для потока изображений в реальном времени с помощью медиаконвейера GStreamer.

Начните свой путь к обнаружению и идентификации промышленных аномалий, посетив Amazon Lookout для видения и AWS IoT Greengrass страницы ресурса.


Об авторах

Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Маниш Талрежа является старшим менеджером практики промышленного машинного обучения в AWS Professional Services. Он помогает клиентам AWS достигать своих бизнес-целей, разрабатывая и создавая инновационные решения, использующие сервисы AWS ML и IoT в облаке AWS.

Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Райан Вандерверф является архитектором партнерских решений в Amazon Web Services. Ранее он предоставлял консультации по виртуальным машинам Java и разработку проектов в качестве инженера-программиста в OCI в команде Grails и Micronaut. Он был главным архитектором/директором по продуктам в ReachForce, уделяя особое внимание программному обеспечению и системной архитектуре для решений AWS Cloud SaaS для управления маркетинговыми данными. С 1996 года Райан создал несколько решений SaaS в нескольких областях, таких как финансовые, медиа-, телекоммуникационные компании и компании, занимающиеся электронным обучением.

Определите расположение аномалий с помощью Amazon Lookout for Vision на периферии без использования GPU PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Пракаш Кришнан является старшим менеджером по разработке программного обеспечения в Amazon Web Services. Он возглавляет группы инженеров, которые создают крупномасштабные распределенные системы для применения быстрых, эффективных и хорошо масштабируемых алгоритмов к задачам распознавания изображений и видео на основе глубокого обучения.

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

Больше от Машинное обучение AWS