Промислова автоматизація в Tyson з комп’ютерним баченням, AWS Panorama та Amazon SageMaker

Вихідний вузол: 1575225

Це перший у серії блогів із двох частин про те, як Tyson Foods, Inc. використовує Amazon SageMaker і AWS Panorama для автоматизації промислових процесів на своїх м’ясокомбінатах, використовуючи переваги додатків штучного інтелекту. У першій частині ми обговорюємо додаток для підрахунку запасів для пакувальних ліній. У другій частині ми обговорюємо візуальне рішення для виявлення аномалій на межі для прогнозного обслуговування промислового обладнання.

Як один із найбільших переробників і маркетологів курятини, яловичини та свинини у світі, Tyson Foods, Inc.відомі тим, що впроваджують інноваційні рішення для своїх виробничих і пакувальних заводів. У лютому 2020 року Тайсон оголошений свій план запровадити комп’ютерне бачення (CV) на своїх птахофабриках і запустили пілотну програму з AWS, щоб розпочати роботу з управління запасами. Тайсон співпрацював з Лабораторія рішень Amazon ML щоб створити сучасне рішення для підрахунку CV для курячого лотка, яке надає інформацію про рівні упакованих запасів у реальному часі. У цій публікації ми надаємо огляд архітектури AWS і повний опис рішення, щоб продемонструвати ключові компоненти конвеєра підрахунку лотків, встановленого на заводі Tyson. Ми зосередимося на зборі та маркуванні даних, навчанні та розгортанні моделей CV на межі використання Amazon SageMaker, Apache MXNet Gluon та Панорама AWS.

Операційна досконалість є ключовим пріоритетом Tyson Foods. Tyson використовує суворі заходи забезпечення якості (QA) на своїх пакувальних лініях, гарантуючи, що лише ті упаковані продукти, які проходять їхні протоколи контролю якості, відправляються своїм клієнтам. Щоб задовольнити попит споживачів і випередити будь-які виробничі проблеми, Tyson ретельно стежить за підрахунками упакованої курки. Однак поточні ручні методи підрахунку курячих лотків, які пройшли перевірку якості, не є точними та не дають чіткої картини перевищених/недостатніх рівнів виробництва. Альтернативні стратегії, такі як щогодинний моніторинг загальної ваги продукції на стелаж, не забезпечують негайного зворотного зв’язку з працівниками заводу. З потужністю переробки курчати 45,000,000 XNUMX XNUMX голів на тиждень точність і ефективність виробництва є критично важливими для бізнесу Tyson. CV можна ефективно використовувати в таких сценаріях для точної оцінки кількості обробленої курки в режимі реального часу, даючи можливість співробітникам визначати потенційні вузькі місця в пакуванні та виробничих лініях, коли вони виникають. Це дозволяє впроваджувати коригувальні заходи та підвищує ефективність виробництва.

Потокова передача та обробка локальних відеопотоків у хмарі для програм CV вимагає високої пропускної здатності мережі та забезпечення відповідної інфраструктури. Це може бути надзвичайно дорогим завданням. AWS Panorama усуває ці вимоги та дозволяє Tyson обробляти відеопотоки на межі пристрою AWS Panorama. Він зменшує затримку до/з хмари та витрати на смугу пропускання, водночас забезпечуючи простий у використанні інтерфейс для керування пристроями та програмами на межі.

Виявлення об’єктів є одним із найпоширеніших алгоритмів CV, який може локалізувати положення об’єктів на зображеннях і відео. Зараз ця технологія використовується в різних реальних програмах, таких як виявлення пішоходів в автономних транспортних засобах, виявлення пухлин у медичних сканах, системи підрахунку людей для моніторингу кроків у торгових приміщеннях тощо. Це також має вирішальне значення для випадків використання управління запасами, таких як підрахунок м’ясних лотків для Tyson, для зменшення відходів шляхом створення циклу зворотного зв’язку з виробничими процесами, економії коштів і доставки відправлень клієнтам вчасно.

У наступних розділах цієї публікації в блозі описано, як ми використовуємо відео в прямому ефірі з одного з заводів Tyson Foods для навчання моделі виявлення об’єктів за допомогою Amazon SageMaker. Потім ми розгортаємо його на краю за допомогою пристрою AWS Panorama.

Панорама AWS

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

AWS Panorama Appliance дає змогу запускати автономні додатки CV на межі, не надсилаючи зображення до AWS Cloud. Ви також можете використовувати AWS SDK на AWS Panorama Appliance для інтеграції з іншими службами AWS і використовувати їх для відстеження даних із програми з часом. Для створення та розгортання програм ви використовуєте AWS Panorama Application CLI. CLI — це інструмент командного рядка, який генерує папки програм за замовчуванням і файли конфігурації, створює контейнери за допомогою Docker і завантажує ресурси.

AWS Panorama підтримує моделі, створені за допомогою Apache MX Net, DarkNet, GluonCV, Керас, ONNX, PyTorch, TensorFlow та TensorFlow Lite. Відноситься до це публікація в блозі, щоб дізнатися більше про створення програм на AWS Panorama. Під час процесу розгортання AWS Panorama піклується про компіляцію моделі, специфічної для периферійної платформи Компіляція Amazon SageMaker Neo. Результати висновків можна направляти до таких служб AWS, як Amazon S3, Amazon CloudWatch, або інтегрувати в локальні бізнес-додатки. Журнали розгортання зберігаються в Amazon CloudWatch.

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

Для отримання додаткової інформації див Сторінка AWS Panorama. Щоб дізнатися більше про створення зразків програм, див Зразки AWS Panorama.

Підхід

Працівник заводу безперервно заповнює упаковані курячі лотки в пластикові контейнери та з часом укладає їх, як показано на попередньому малюнку. Ми хочемо мати можливість виявляти та підраховувати загальну кількість лотків у всіх бункерах, складених вертикально.

Навчена модель виявлення об’єктів може передбачити обмежувальні прямокутники всіх лотків, поміщених у відсік, у кожному кадрі відео. Це можна використовувати для вимірювання кількості лотків у бункері в певному випадку. Ми також знаємо, що в будь-який момент часу лише один контейнер заповнюється упакованими лотками; лічильники лотка безперервно коливаються від високого (під час наповнення) до низького (коли новий бункер закриває огляд заповненого бункера).

Маючи ці знання, ми приймаємо таку стратегію для підрахунку загальної кількості лотків з курками:

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

Ми перевірили цей алгоритм на кількох годинах відео та отримали стабільні результати.

Навчання моделі виявлення об’єктів за допомогою Amazon SageMaker

Створення набору даних:

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

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

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

Ми позначили лотки з курками обмежувальними рамками Amazon SageMaker Ground Truth’s потокове завдання маркування. Ми також налаштували сповіщення про подію Amazon S3, яке публікується події, створені об'єктами в Служба простих сповіщень Amazon (SNS), який діє як джерело вхідних даних для завдання маркування. Коли сценарій додатка AWS Panorama зберігає зображення у відро S3, сповіщення про подію публікується в темі SNS, яка потім надсилає це зображення до завдання маркування. Оскільки анотатори позначають кожне вхідне зображення, Ground Truth зберігає мітки у файлі маніфесту, який містить шлях S3 до зображення, а також координати обмежувальних рамок лотка для курчат.

Ми виконуємо декілька доповнень даних (наприклад: випадковий шум, випадковий контраст і яскравість, перемішування каналів) на позначених зображеннях, щоб зробити модель стійкою до варіацій у реальному житті. Оригінальні та доповнені зображення були об’єднані, щоб сформувати єдиний набір даних.

Навчання моделі:

Після завершення роботи з маркування ми вручну запускаємо an AWS Lambda функція. Ця лямбда-функція об’єднує зображення та їхні відповідні мітки з вихідного маніфесту в файл LST. Наші навчальні та тестові файли містили зображення, зібрані з різних пакувальних ліній, щоб запобігти витоку даних під час оцінювання. Потім функція Lambda запускає навчальне завдання Amazon SageMaker.

Ми використовуємо Режим сценарію SageMaker, що дозволяє вам використовувати власні алгоритми навчання та безпосередньо навчати моделі, залишаючись у зручних для користувача межах Amazon SageMaker. Ми тренуємо такі моделі, як SSD, Yolo-v3 (для затримки висновку в реальному часі) з різними комбінаціями магістральних мереж від GluonCV Model Zoo для виявлення об'єктів в режимі сценарію. Нейронні мережі мають тенденцію переповнювати навчальні дані, що призводить до поганих результатів поза вибіркою. GluonCV забезпечує нормалізацію та збільшення зображення, наприклад випадкове перевертання та обрізання зображення, щоб допомогти зменшити переобладнання під час навчання. The модель навчального коду є контейнерним і використовує образ Docker у нашому реєстрі AWS Elastic Container Registry. Навчальне завдання приймає папку зображень S3 і шляхи до файлів LST як вхідні дані та зберігає найкращий артефакт моделі (.params та .json) до S3 після завершення.

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

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

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

Ви можете знайти повні наскрізні приклади створення спеціальних навчальних завдань, навчання найсучасніших моделей виявлення об’єктів, впровадження оптимізації гіперпараметрів (HPO) і розгортання моделі на Amazon SageMaker на сайті AWS Labs GitHub репо.

Розгортання програми підрахунку м’ясних лотків

Архітектура виробництва

Архітектура виробництва

Перед розгортанням ми пакуємо всі наші активи – модель, сценарій висновку, камеру та конфігурацію глобальної змінної в єдиний контейнер, як зазначено в це повідомлення у блозі. Наш конвеєр постійної інтеграції та безперервного розгортання (CI/CD) оновлює будь-які зміни в сценарії висновку як нову версію програми. Після публікації нової версії програми ми програмно розгортаємо її за допомогою boto3 SDK на Python.

Після розгортання програми AWS Panorama спочатку створює завдання AWS SageMaker Neo Compilation для компіляції моделі для пристрою AWS Panorama. Сценарій прикладної програми інференції імпортує скомпільовану модель на пристрій і виконує виявлення лотка з курками в кожному кадрі. На додаток до SageMaker Neo-Compilation ми увімкнули квантування після навчання, додавши os.environ['TVM_TENSORRT_USE_FP16'] = '1' прапор у сценарії. Це зменшує розмір вагових коефіцієнтів моделі з числа 32 до числа 16, зменшуючи розмір моделі вдвічі та покращуючи затримку без погіршення продуктивності. Результати висновків фіксуються в Монітор AWS SiteWise через повідомлення MQTT від пристрою AWS Panorama через Ядро AWS IoT. Потім результати надсилаються в Amazon S3 і візуалізуються Amazon QuickSight Приладові панелі. Керівники заводу та співробітники можуть безпосередньо переглядати ці інформаційні панелі, щоб зрозуміти пропускну здатність кожної пакувальної лінії в режимі реального часу.

Висновок

Поєднуючи хмарний сервіс AWS, як-от Amazon SageMaker, Amazon S3, і периферійний сервіс, як-от AWS Panorama, Tyson Foods Inc. використовує штучний інтелект для автоматизації промислових процесів, у яких інтенсивно працює людина, як-от підрахунок запасів на своїх виробничих підприємствах. Можливості визначення меж у режимі реального часу дозволяють Tyson визначати надлишок/недовидобуток і динамічно коригувати свій виробничий процес для досягнення максимальної ефективності. Крім того, володіючи граничним пристроєм AWS Panorama, Tyson також може заощадити витрати, пов’язані з дорогою пропускною здатністю мережі для передачі відеофайлів у хмару, і тепер може обробляти всі свої відео/зображення локально у своїй мережі.

У цьому дописі в блозі ви знайдете огляд кінцевих і крайових програм і еталонних архітектур для розробки програми CV за допомогою AWS Panorama. Ми обговорили 3 різні аспекти створення резюме CV.

  1. дані: збір, обробка та маркування даних за допомогою AWS Panorama та Amazon SageMaker Ground Truth.
  2. Model: Навчання та оцінка моделі за допомогою Amazon SageMaker і AWS Lambda
  3. Пакет прикладних програм: Об’єднання навченої моделі, сценаріїв і конфігураційних файлів для AWS Panorama.

Слідкуйте за другою частиною цієї серії про те, як Tyson використовує AWS Panorama для прогнозного обслуговування промислових машин на основі CV.

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


Про авторів

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

Діліп Субраманіам є старшим розробником у команді нових технологій у Tyson Foods. Він захоплений створенням масштабних розподілених програм для вирішення бізнес-завдань і спрощення процесів, використовуючи свої знання в галузі розробки програмного забезпечення, машинного навчання та великих даних.

Джерело: https://aws.amazon.com/blogs/machine-learning/industrial-automation-at-tyson-with-computer-vision-aws-panorama-and-amazon-sagemaker/

Часова мітка:

Більше від Блог машинного навчання AWS