Попит на багатооб’єктне відстеження (MOT) у відеоаналізі значно зріс у багатьох галузях, таких як прямі трансляції спортивних змагань, виробництво та моніторинг дорожнього руху. Наприклад, у спортивних змаганнях у прямому ефірі MOT може відстежувати футболістів у режимі реального часу для аналізу фізичних показників, таких як швидкість у реальному часі та відстань переміщення.
З моменту впровадження в 2021 році ByteTrack залишається одним із найефективніших методів на різних базах даних, серед останніх розробок моделей у застосуванні ТО. У ByteTrack автор запропонував простий, ефективний і загальний метод асоціації даних (відомий як BYTE) для відповідності блоку виявлення та треклету. Замість того, щоб зберігати поля виявлення високих балів, він також зберігає блоки виявлення низьких балів, які можуть допомогти відновити незрівнянні треклети за допомогою цих блоків виявлення низьких балів, коли відбувається оклюзія, розмиття руху або зміна розміру. Стратегію асоціації BYTE також можна використовувати в інших трекерах на основі Re-ID, наприклад FairMOT. Експерименти показали покращення порівняно з алгоритмами vanilla tracker. Наприклад, FairMOT досяг покращення на 1.3% щодо MOTA (FairMOT: Про справедливість виявлення та повторної ідентифікації під час відстеження кількох об’єктів), яка є однією з основних метрик у завданні технічного обслуговування під час застосування BYTE у зв’язуванні даних.
У пості Навчіть і розгорніть модель FairMOT за допомогою Amazon SageMaker, ми продемонстрували, як навчити та розгорнути модель FairMOT Amazon SageMaker на Набори даних викликів ТО. Застосовуючи рішення ТО в реальних випадках, вам потрібно навчити або налаштувати модель ТО на спеціальному наборі даних. с Основна правда Amazon SageMaker, ви можете ефективно створювати мітки для власного набору відеоданих.
Після попередньої публікації ми додали наступні внески та зміни:
- Створіть мітки для спеціального набору відеоданих за допомогою Ground Truth
- Попередньо обробіть згенеровану мітку Ground Truth, щоб вона була сумісною з ByteTrack та іншими рішеннями MOT
- Навчіть алгоритм ByteTrack за допомогою a Навчальна робота SageMaker (з можливістю розширити попередньо побудований контейнер)
- Розгорніть навчену модель з різними варіантами розгортання, включаючи асинхронний висновок
Ми також надаємо зразок коду на GitHub, який використовує SageMaker для маркування, створення, навчання та висновків.
SageMaker — це повністю керований сервіс, який надає кожному розробнику та досліднику даних можливість швидко готувати, створювати, навчати та розгортати моделі машинного навчання (ML). SageMaker надає кілька вбудованих алгоритмів і зображень контейнерів, які можна використовувати для прискорення навчання та розгортання моделей ML. Крім того, користувацькі алгоритми, такі як ByteTrack, також можна підтримувати за допомогою спеціально створених зображень контейнерів Docker. Додаткову інформацію про вибір правильного рівня взаємодії з контейнерами див Використання контейнерів Docker із SageMaker.
SageMaker надає безліч варіантів для розгортання моделі, наприклад висновки в реальному часі, безсерверні висновки та асинхронні висновки. У цій публікації ми покажемо, як розгорнути модель відстеження з різними параметрами розгортання, щоб ви могли вибрати відповідний метод розгортання у вашому власному випадку використання.
Огляд рішення
Наше рішення складається з наступних кроків високого рівня:
- Позначте набір даних для відстеження обмежуючою рамкою на кожному об’єкті (наприклад, пішохід, автомобіль тощо). Налаштуйте ресурси для розробки та виконання коду ML.
- Навчіть модель ByteTrack і налаштуйте гіперпараметри на спеціальному наборі даних.
- Розгорніть навчену модель ByteTrack з різними варіантами розгортання залежно від вашого випадку використання: обробка в реальному часі, асинхронне або пакетне прогнозування.
Наступна діаграма ілюструє архітектуру кожного кроку.
Передумови
Перш ніж почати, виконайте наведені нижче умови.
- Створіть обліковий запис AWS або використовуйте наявний обліковий запис AWS.
- Ми рекомендуємо запустити вихідний код у
us-east-1
Регіон. - Переконайтеся, що у вас є принаймні один екземпляр GPU (наприклад,
ml.p3.2xlarge
для навчання одного GPU, абоml.p3.16xlarge
) для розподіленого навчання. Інші типи екземплярів GPU також підтримуються з різною продуктивністю. - Переконайтеся, що у вас є принаймні один екземпляр GPU (наприклад,
ml.p3.2xlarge
) для кінцевої точки висновку. - Переконайтеся, що у вас є принаймні один екземпляр GPU (наприклад,
ml.p3.2xlarge
) для запуску пакетного прогнозування із завданнями обробки.
Якщо ви вперше запускаєте служби SageMaker на вищезгаданих типах екземплярів, вам, можливо, доведеться запросити збільшення квоти для необхідних екземплярів.
Налаштуйте свої ресурси
Після того як ви виконаєте всі передумови, ви готові до розгортання рішення.
- Створіть екземпляр блокнота SageMaker. Для цього завдання ми рекомендуємо використовувати
ml.t3.medium
тип екземпляра. Під час виконання коду ми використовуємоdocker build
щоб розширити навчальний образ SageMaker за допомогою коду ByteTrack (docker build
команда виконуватиметься локально в середовищі екземпляра ноутбука). Тому ми рекомендуємо збільшити розмір тому до 100 ГБ (розмір тому за замовчуванням до 5 ГБ) із розширених параметрів конфігурації. Для вашого Управління ідентифікацією та доступом AWS (IAM), виберіть наявну роль або створіть нову роль і приєднайтеAmazonS3FullAccess
,AmazonSNSFullAccess
,AmazonSageMakerFullAccess
таAmazonElasticContainerRegistryPublicFullAccess
політики до ролі. - Клонуйте GitHub репо до
/home/ec2-user/SageMaker
у створеному вами екземплярі блокнота. - Створювати нове Служба простого зберігання Amazon (Amazon S3) або використовуйте наявне відро.
Позначте набір даних
У підготовка даних.ipynb ноутбук, ми завантажуємо тестовий відеофайл MOT16 і розбиваємо відеофайл на невеликі відеофайли по 200 кадрів. Потім ми завантажуємо ці відеофайли в сегмент S3 як джерело даних для маркування.
Щоб позначити набір даних для завдання ТО, див Приступаючи до роботи. Коли завдання з маркування буде завершено, ми зможемо отримати доступ до наступного каталогу анотацій у вихідному місці завдання в сегменті S3.
Команда manifests
каталог повинен містити output
папку, якщо ми закінчили маркування всіх файлів. Ми можемо побачити файл output.manifest
в output
папку. Цей файл маніфесту містить інформацію про відео та мітки відстеження відео, які можна використовувати пізніше для навчання та тестування моделі.
Навчіть модель ByteTrack і налаштуйте гіперпараметри на спеціальному наборі даних
Щоб навчити вашу модель ByteTrack, ми використовуємо bytetrack-training.ipynb блокнот. Блокнот складається з наступних кроків:
- Ініціалізуйте налаштування SageMaker.
- Виконайте попередню обробку даних.
- Створіть і надішліть зображення контейнера.
- Дайте визначення навчальної роботи.
- Запустіть навчальну роботу.
- Налаштувати гіперпараметри.
Особливо під час попередньої обробки даних нам потрібно перетворити мічений набір даних із вихідним форматом Ground Truth у набір даних у форматі MOT17, а також конвертувати набір даних у форматі MOT17 у набір даних у форматі MSCOCO (як показано на наступному малюнку), щоб ми могли навчити YOLOX модель на спеціальному наборі даних. Оскільки ми зберігаємо як набір даних у форматі MOT, так і набір даних у форматі MSCOCO, ви можете навчати інші алгоритми MOT, не розділяючи виявлення та відстеження на наборі даних у форматі MOT. Ви можете легко змінити детектор на інші алгоритми, такі як YOLO7, щоб використовувати існуючий алгоритм виявлення об’єктів.
Розгорніть навчену модель ByteTrack
Після навчання моделі YOLOX ми розгортаємо навчену модель для висновку. SageMaker пропонує кілька варіантів для розгортання моделі, наприклад висновки в реальному часі, асинхронні висновки, безсерверні висновки та пакетні висновки. У нашій публікації ми використовуємо зразок коду для висновку в реальному часі, асинхронного висновку та пакетного висновку. Ви можете вибрати відповідний код із цих варіантів на основі власних бізнес-вимог.
Оскільки пакетне перетворення SageMaker вимагає, щоб дані були розділені та збережені в Amazon S3 як вхідні дані, а виклики надсилаються до кінцевих точок висновку одночасно, воно не відповідає вимогам завдань відстеження об’єктів, де цілі потрібно надсилати послідовно. . Тому ми не використовуємо завдання пакетного перетворення SageMaker для виконання пакетного висновку. У цьому прикладі ми використовуємо завдання обробки SageMaker для виконання пакетного висновку.
У наведеній нижче таблиці підсумовано конфігурацію для наших завдань логічного висновку.
Тип висновку | корисне навантаження | Час обробки | Автоматичне масштабування |
Переклад повідомлень | До 6 МБ | До 1 хвилини | Мінімальна кількість екземплярів — 1 або більше |
Асинхронний | До 1 ГБ | До 15 хв | Мінімальна кількість екземплярів може бути нульовою |
Пакет (із завданням обробки) | Немає межі | Немає межі | Не підтримується |
Розгорніть кінцеву точку висновку в реальному часі
Щоб розгорнути кінцеву точку висновку в реальному часі, ми можемо запустити bytetrack-inference-yolox.ipynb блокнот. Ми розділяємо висновок ByteTrack на виявлення об’єктів і відстеження. У кінцевій точці висновку ми запускаємо лише модель YOLOX для виявлення об’єктів. У блокноті ми створюємо об’єкт відстеження, отримуємо результат виявлення об’єкта від кінцевої точки висновку та оновлюємо трекери.
Ми використовуємо SDK SageMaker PyTorchModel для створення та розгортання моделі ByteTrack наступним чином:
Після успішного розгортання моделі в кінцевій точці ми можемо викликати кінцеву точку висновку за допомогою наступного фрагмента коду:
Ми запускаємо завдання відстеження на стороні клієнта після прийняття результату виявлення від кінцевої точки (див. наступний код). Зображуючи результати відстеження в кожному кадрі та зберігаючи як відео відстеження, ви можете підтвердити результат відстеження на відео відстеження.
Розгорніть кінцеву точку асинхронного висновку
Асинхронний висновок SageMaker є ідеальним варіантом для запитів із великими розмірами корисного навантаження (до 1 ГБ), тривалим часом обробки (до 1 години) і вимогами до затримки майже в реальному часі. У завданнях MOT зазвичай відеофайл перевищує 6 МБ, що є обмеженням корисного навантаження кінцевої точки реального часу. Тому ми розгортаємо кінцеву точку асинхронного висновку. Відноситься до Асинхронний висновок щоб дізнатися більше про розгортання асинхронної кінцевої точки. Ми можемо повторно використовувати модель, створену для кінцевої точки реального часу; для цієї публікації ми додаємо процес відстеження в сценарій висновку, щоб ми могли отримати остаточний результат відстеження безпосередньо для вхідного відео.
Щоб використовувати сценарії, пов’язані з ByteTrack, на кінцевій точці, нам потрібно помістити сценарій відстеження та модель у ту саму папку та стиснути папку як model.tar.gz
файл, а потім завантажте його в сегмент S3 для створення моделі. Наступна схема показує структуру model.tar.gz
.
Нам потрібно явно встановити розмір запиту, розмір відповіді та час очікування відповіді як змінні середовища, як показано в наступному коді. Ім'я змінної середовища змінюється залежно від структури. Для отримання додаткової інформації див Створіть кінцеву точку асинхронного висновку.
Під час виклику асинхронної кінцевої точки замість надсилання корисного навантаження в запиті ми надсилаємо URL-адресу Amazon S3 вхідного відео. Коли висновок моделі закінчить обробку відео, результати будуть збережені на вихідному шляху S3. Ми можемо налаштувати Служба простих сповіщень Amazon (Amazon SNS), щоб, коли результати будуть готові, ми могли отримати повідомлення SNS як сповіщення.
Запустіть пакетний висновок із обробкою SageMaker
Для відеофайлів розміром понад 1 ГБ ми використовуємо завдання обробки SageMaker для пакетного висновку. Ми визначаємо спеціальний контейнер Docker для виконання завдання обробки SageMaker (див. наступний код). Ми малюємо результат відстеження на вхідному відео. Відео результату можна знайти у сегменті S3, визначеному s3_output
.
Прибирати
Щоб уникнути непотрібних витрат, видаліть ресурси, створені в рамках цього рішення, включно з кінцевою точкою висновку.
Висновок
Ця публікація продемонструвала, як реалізувати рішення для відстеження кількох об’єктів на спеціальному наборі даних за допомогою одного з найсучасніших алгоритмів SageMaker. Ми також продемонстрували три варіанти розгортання на SageMaker, щоб ви могли вибрати оптимальний варіант для власного бізнес-сценарію. Якщо варіант використання вимагає низької затримки та потребує розгортання моделі на периферійному пристрої, ви можете розгорнути рішення MOT на межі за допомогою Панорама AWS.
Для отримання додаткової інформації зверніться до Відстеження кількох об’єктів за допомогою YOLOX + BYTE-TRACK та аналіз даних.
Про авторів
Гордон Ван, є старшим спеціалістом із штучного інтелекту та ML в AWS. Він підтримує стратегічних клієнтів за допомогою найкращих практик AI/ML у багатьох галузях. Він захоплюється комп’ютерним зором, НЛП, Generative AI та MLOps. У вільний час любить бігати та піші прогулянки.
Янвей Цуй, доктор філософії, є старшим спеціалістом з машинного навчання, архітектором рішень в AWS. Він розпочав дослідження машинного навчання в IRISA (Дослідницький інститут комп’ютерних наук і випадкових систем) і має багаторічний досвід створення промислових додатків на основі штучного інтелекту для комп’ютерного зору, обробки природної мови та прогнозування поведінки користувачів в Інтернеті. В AWS він ділиться досвідом у галузі та допомагає клієнтам розкрити бізнес-потенціал і досягти реальних результатів за допомогою машинного навчання в масштабі. Поза роботою любить читати та подорожувати.
Мелані Лі, доктор філософії, є старшим спеціалістом зі штучного інтелекту та ML в AWS у Сіднеї, Австралія. Вона допомагає корпоративним клієнтам створювати рішення, використовуючи найсучасніші інструменти AI/ML на AWS, і надає вказівки щодо архітектури та впровадження рішень машинного навчання з використанням найкращих практик. У вільний час вона любить досліджувати природу та проводити час із родиною та друзями.
Гуан Ян, є старшим прикладним науковим співробітником Amazon ML Solutions Lab, де він працює з клієнтами в різних галузях і застосовує творче вирішення проблем, щоб створити цінність для клієнтів за допомогою найсучасніших рішень ML/AI.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoAiStream. Web3 Data Intelligence. Розширення знань. Доступ тут.
- Карбування майбутнього з Адріенн Ешлі. Доступ тут.
- Купуйте та продавайте акції компаній, які вийшли на IPO, за допомогою PREIPO®. Доступ тут.
- джерело: https://aws.amazon.com/blogs/machine-learning/implement-a-multi-object-tracking-solution-on-a-custom-dataset-with-amazon-sagemaker/
- : має
- :є
- : ні
- :де
- $UP
- 1
- 10
- 100
- 12
- 15%
- 20
- 200
- 2021
- 31
- 7
- 8
- a
- здатність
- МЕНЮ
- прискорювати
- приймає
- доступ
- рахунки
- досягнутий
- через
- доданий
- Додатково
- просунутий
- після
- AI
- AI / ML
- алгоритм
- алгоритми
- ВСІ
- Також
- Amazon
- Лабораторія рішень Amazon ML
- Amazon SageMaker
- Amazon Web Services
- серед
- an
- аналіз
- аналізувати
- та
- додаток
- застосування
- прикладної
- Застосування
- архітектура
- ЕСТЬ
- штучний
- штучний інтелект
- AS
- Асоціація
- At
- приєднувати
- Австралія
- автор
- уникнути
- AWS
- заснований
- BE
- оскільки
- еталонний тест
- КРАЩЕ
- передового досвіду
- За
- більший
- Black
- пляма
- тіло
- обидва
- Box
- коробки
- будувати
- Створюємо
- вбудований
- бізнес
- by
- CAN
- Може отримати
- автомобіль
- випадок
- випадків
- Центр
- виклик
- зміна
- заміна
- Вибирати
- клієнт
- код
- загальний
- порівняний
- сумісний
- повний
- комп'ютер
- Інформатика
- Комп'ютерне бачення
- конфігурація
- підтвердити
- складається
- Контейнер
- Контейнери
- містить
- внески
- конвертувати
- витрати
- створювати
- створений
- створення
- Креатив
- Перетинати
- виготовлений на замовлення
- Побудований на замовлення
- Клієнти
- дані
- вчений даних
- набори даних
- Вирішивши
- дефолт
- певний
- Попит
- продемонстрований
- Залежно
- розгортання
- розгорнути
- розгортання
- деталі
- Виявлення
- Розробник
- розробка
- події
- пристрій
- Відмінності
- різний
- безпосередньо
- відстань
- розподілений
- розподілене навчання
- do
- Docker
- Докер-контейнер
- Ні
- домен
- Не знаю
- скачати
- малювати
- малювання
- управляти
- кожен
- легко
- край
- Ефективний
- фактично
- Кінцева точка
- зачеплення
- підприємство
- корпоративні клієнти
- Навколишнє середовище
- Ефір (ETH)
- Кожен
- приклад
- виконання
- існуючий
- досвід
- Експерименти
- експертиза
- дослідити
- продовжити
- справедливість
- сім'я
- Рисунок
- філе
- Файли
- остаточний
- знайти
- Перший
- перший раз
- після
- слідує
- для
- формат
- FRAME
- Рамки
- друзі
- від
- повністю
- породжувати
- генерується
- генеративний
- Генеративний ШІ
- отримати
- отримання
- GPU
- Земля
- керівництво
- Мати
- he
- висота
- допомога
- допомагає
- її
- Високий
- на вищому рівні
- піший туризм
- його
- годину
- Як
- How To
- HTML
- HTTP
- HTTPS
- IAM
- ідеальний
- Особистість
- if
- ілюструє
- зображення
- зображень
- здійснювати
- реалізації
- імпорт
- поліпшення
- поліпшення
- in
- В інших
- У тому числі
- збільшений
- зростаючий
- промислові
- промисловості
- інформація
- вхід
- екземпляр
- замість
- Інститут
- Інтелект
- в
- Вступ
- IT
- ЙОГО
- робота
- Джобс
- JPG
- json
- тримати
- lab
- етикетка
- маркування
- етикетки
- мова
- великий
- Затримка
- пізніше
- останній
- вивчення
- рівень
- використання
- li
- МЕЖА
- жити
- Жити спортом
- локально
- розташування
- Довго
- любить
- низький
- машина
- навчання за допомогою машини
- головний
- вдалося
- манера
- виробництво
- багато
- узгодження
- Макс
- Може..
- Зустрічатися
- повідомлення
- метод
- методика
- Метрика
- мінімальний
- ML
- MLOps
- модель
- Моделі
- Поправки
- моніторинг
- більше
- рух
- переміщення
- множинний
- ім'я
- Природний
- Природна мова
- Обробка природних мов
- природа
- Необхідність
- потреби
- Нові
- nlp
- ноутбук
- сповіщення
- об'єкт
- Виявлення об'єктів
- of
- on
- ONE
- онлайн
- тільки
- оптимальний
- варіант
- Опції
- or
- Інше
- наші
- Результати
- на відкритому повітрі
- вихід
- поза
- власний
- частина
- пристрасний
- шлях
- продуктивність
- виконанні
- фізичний
- plato
- Інформація про дані Платона
- PlatoData
- гравці
- Plenty
- Політика
- пошта
- Харчування
- практики
- прогноз
- Готувати
- передумови
- попередній
- Проблема
- процес
- обробка
- запропонований
- забезпечувати
- забезпечує
- Штовхати
- put
- піторх
- швидко
- випадковий
- швидше
- читання
- готовий
- реальний
- Реальний світ
- реального часу
- отримати
- рекомендувати
- Відновлювати
- називають
- регіон
- пов'язаний
- залишається
- запросити
- запитів
- вимагається
- Вимога
- Вимагається
- дослідження
- ресурси
- відповідь
- результат
- результати
- знову використовувати
- право
- Роль
- прогін
- біг
- мудрець
- то ж
- економія
- шкала
- сценарій
- наука
- вчений
- рахунок
- scripts
- Sdk
- seconds
- побачити
- послати
- відправка
- старший
- посланий
- окремий
- розділення
- Без сервера
- обслуговування
- Послуги
- комплект
- установка
- кілька
- акції
- вона
- Повинен
- Показувати
- показав
- показаний
- Шоу
- сторона
- істотно
- простий
- один
- Розмір
- розміри
- невеликий
- So
- Футбол
- solid
- рішення
- Рішення
- Розв’язування
- Source
- вихідні
- спеціаліст
- швидкість
- витрачати
- розкол
- SPORTS
- почалася
- впроваджений
- Крок
- заходи
- зберігання
- зберігати
- Стратегічний
- Стратегія
- структура
- Успішно
- такі
- підходящий
- підтримка
- Підтриманий
- Опори
- Переконайтеся
- Сідней
- Systems
- таблиця
- TAM
- цілі
- Завдання
- завдання
- тест
- ніж
- Що
- Команда
- Джерело
- потім
- отже
- Ці
- це
- ті
- три
- час
- times
- до
- інструменти
- теми
- факел
- трек
- трекери
- Відстеження
- трафік
- поїзд
- навчений
- Навчання
- Перетворення
- Подорож
- Правда
- тип
- Типи
- відімкнути
- неперевершений
- Оновити
- URL
- використання
- використання випадку
- використовуваний
- користувач
- використовує
- використання
- значення
- змінні
- різний
- вертикальний
- вертикалі
- через
- Відео
- бачення
- обсяг
- we
- Web
- веб-сервіси
- коли
- який
- в той час як
- волі
- з
- в
- без
- Work
- працює
- років
- ви
- вашу
- зефірнет