В компьютерном зрении (CV) добавление тегов для идентификации интересующих объектов или ограничивающих рамок для определения местоположения объектов называется маркировка. Подготовка обучающих данных для обучения модели глубокого обучения — одна из обязательных задач. Сотни тысяч рабочих часов тратятся на создание высококачественных этикеток из изображений и видео для различных вариантов использования резюме. Для создания этих меток можно использовать Amazon SageMaker Data Labeling двумя способами:
- Amazon SageMaker Ground Truth Plus — эта услуга предоставляет квалифицированную рабочую силу, обученную задачам машинного обучения, которая может помочь обеспечить безопасность ваших данных, конфиденциальность и соответствие требованиям. Вы загружаете свои данные, а команда Ground Truth Plus создает и управляет рабочими процессами маркировки данных и персоналом от вашего имени.
- Amazon SageMaker Ground Truth. В качестве альтернативы вы можете управлять собственными рабочими процессами маркировки данных и персоналом для маркировки данных.
В частности, для автономных транспортных средств (AV) на основе глубокого обучения и усовершенствованных систем помощи водителю (ADAS) необходимо с нуля маркировать сложные мультимодальные данные, включая синхронизированные потоки LiDAR, RADAR и нескольких камер. Например, на следующем рисунке показана ограничивающая трехмерная рамка вокруг автомобиля в представлении облака точек для данных LiDAR, выровненные ортогональные виды LiDAR сбоку и семь различных потоков камер с проецируемыми метками ограничивающей рамки.
Командам AV/ADAS необходимо разметить несколько тысяч кадров с нуля и полагаться на такие методы, как консолидация меток, автоматическая калибровка, выбор кадров, интерполяция последовательности кадров и активное обучение, чтобы получить единый размеченный набор данных. Ground Truth поддерживает эти функции. Полный список функций см. в разделе Возможности маркировки данных Amazon SageMaker. Однако маркировка десятков тысяч миль записанного видео и данных LiDAR может быть сложной, дорогой и трудоемкой задачей для компаний, занимающихся созданием систем AV/ADAS. Одним из методов, используемых сегодня для решения этой проблемы, является автоматическая маркировка, которая выделена на следующей диаграмме для проектирования модульных функций для ADAS на AWS.
В этом посте мы покажем, как использовать функции SageMaker, такие как модели Amazon SageMaker JumpStart и возможности асинхронного вывода, а также функции Ground Truth для автоматической маркировки.
Обзор автоматической маркировки
Автоматическая маркировка (иногда называемая предварительная маркировка) происходит до или параллельно с ручными задачами маркировки. В этом модуле лучшая на сегодняшний день модель, обученная для конкретной задачи (например, обнаружение пешеходов или сегментация полосы движения), используется для создания высококачественных меток. Ручные маркировщики просто проверяют или корректируют автоматически созданные метки из результирующего набора данных. Это проще, быстрее и дешевле, чем маркировать эти большие наборы данных с нуля. Последующие модули, такие как модули обучения или проверки, могут использовать эти метки как есть.
Активное изучение — еще одна концепция, тесно связанная с автоматической маркировкой. Это метод машинного обучения (ML), который идентифицирует данные, которые должны быть помечены вашими работниками. Функция автоматической маркировки данных Ground Truth является примером активного обучения. Когда Ground Truth запускает задание автоматической маркировки данных, он выбирает случайную выборку объектов входных данных и отправляет их работникам-людям. Когда помеченные данные возвращаются, они используются для создания обучающего набора и проверочного набора. Ground Truth использует эти наборы данных для обучения и проверки модели, используемой для автоматической маркировки. Затем Ground Truth запускает задание пакетного преобразования, чтобы сгенерировать метки для немаркированных данных, а также оценки достоверности для новых данных. Размеченные данные с низкими показателями достоверности отправляются маркировщикам-людям. Этот процесс обучения, проверки и пакетного преобразования повторяется до тех пор, пока не будет помечен весь набор данных.
Напротив, автоматическая маркировка предполагает наличие высококачественной предварительно обученной модели (либо в частном порядке внутри компании, либо публично в хабе). Эта модель используется для создания меток, которым можно доверять и которые можно использовать для последующих задач, таких как задачи проверки меток, обучение или моделирование. Эта предварительно обученная модель в случае систем AV/ADAS развертывается в автомобиле на периферии и может использоваться в крупномасштабных пакетных заданиях логического вывода в облаке для создания высококачественных этикеток.
JumpStart предоставляет предварительно обученные модели с открытым исходным кодом для широкого спектра типов задач, которые помогут вам начать работу с машинным обучением. Вы можете использовать JumpStart для обмена моделями внутри вашей организации. Давайте начнем!
Обзор решения
В этом посте мы наметим основные шаги, не просматривая каждую ячейку в нашем примере блокнота. Чтобы следовать или попробовать это самостоятельно, вы можете запустить блокнот Юпитер в Amazon SageMaker Studio.
На следующей диаграмме представлен обзор решения.
Настройка роли и сеанса
В этом примере мы использовали ядро Data Science 3.0 в Studio для экземпляра типа ml.m5.large. Во-первых, мы делаем базовый импорт и настраиваем роль и сеанс для последующего использования в записной книжке:
Создайте свою модель с помощью SageMaker
На этом этапе мы создаем модель для задачи автоматической маркировки. Вы можете выбрать один из трех вариантов создания модели:
- Создайте модель из JumpStart – С помощью JumpStart мы можем выполнять логические выводы на предварительно обученной модели, даже без предварительной ее точной настройки на новом наборе данных.
- Используйте модель, которой через JumpStart поделились с вашей командой или организацией – Вы можете использовать эту опцию, если хотите использовать модель, разработанную одной из команд вашей организации.
- Использовать существующую конечную точку – Вы можете использовать эту опцию, если в вашей учетной записи уже развернута существующая модель.
Чтобы использовать первый вариант, мы выбираем модель из JumpStart (здесь мы используем mxnet-is-mask-rcnn-fpn-resnet101-v1d-coco
. Список моделей доступен в models_manifest.json
файл, предоставленный JumpStart.
Мы используем общедоступную модель JumpStart, обученную задаче сегментации экземпляра, но вы также можете использовать частную модель. В следующем коде мы используем image_uris
, model_uris
и script_uris
чтобы получить правильные значения параметров для использования этой модели MXNet в sagemaker.model.Model
API для создания модели:
Настройка асинхронного вывода и масштабирования
Здесь мы настраиваем конфигурацию асинхронного вывода перед развертыванием модели. Мы выбрали асинхронный логический вывод, потому что он может обрабатывать большие объемы полезной нагрузки и удовлетворять требованиям к задержке, близкой к реальному времени. Кроме того, вы можете настроить конечную точку на автоматическое масштабирование и применить политику масштабирования, чтобы установить счетчик экземпляров равным нулю, когда нет запросов для обработки. В следующем коде мы устанавливаем max_concurrent_invocations_per_instance
до 4. Мы также настроили автоматическое масштабирование, чтобы конечная точка масштабировалась при необходимости и уменьшалась до нуля после завершения задания автоматической маркировки.
Загрузите данные и сделайте вывод
Мы используем Сезонный набор данных Ford Multi-AV из каталога открытых данных AWS.
Сначала загружаем и подготавливаем дату для вывода. Мы предусмотрели этапы предварительной обработки для обработки набора данных в записной книжке; вы можете изменить его для обработки вашего набора данных. Затем, используя SageMaker API, мы можем запустить задание асинхронного вывода следующим образом:
Это может занять до 30 минут или более в зависимости от того, сколько данных вы загрузили для асинхронного вывода. Вы можете визуализировать один из этих выводов следующим образом:
Преобразуйте выходные данные асинхронного вывода во входной манифест Ground Truth.
На этом шаге мы создаем входной манифест для задания проверки ограничивающей рамки на Ground Truth. Мы загружаем шаблон пользовательского интерфейса Ground Truth и файл категорий меток и создаем задание проверки. Блокнот, связанный с этим сообщением, использует частную рабочую силу для выполнения маркировки; вы можете изменить это, если вы используете другие типы рабочей силы. Дополнительные сведения см. в полном коде в записной книжке.
Проверка меток из процесса автоматической маркировки в Ground Truth
На этом этапе мы завершаем проверку, заходя на портал маркировки. Подробнее см. здесь.
При доступе к порталу в качестве члена рабочей группы вы сможете видеть ограничивающие рамки, созданные моделью JumpStart, и при необходимости вносить коррективы.
Вы можете использовать этот шаблон для повторения автоматической маркировки со многими моделями для конкретных задач, возможного объединения меток и использования полученного набора данных с метками в последующих задачах.
Очистить
На этом этапе мы очищаем, удаляя конечную точку и модель, созданную на предыдущих шагах:
Заключение
В этом посте мы рассмотрели процесс автоматической маркировки с использованием JumpStart и асинхронного вывода. Мы использовали результаты процесса автоматической маркировки для преобразования и визуализации помеченных данных в реальном наборе данных. Вы можете использовать это решение для выполнения автоматической маркировки со многими моделями для конкретных задач, возможного объединения меток и использования полученного набора данных с метками в последующих задачах. Вы также можете исследовать с помощью таких инструментов, как Сегментировать любую модель для создания масок сегментов в рамках процесса автоматической маркировки. В следующих постах этой серии мы рассмотрим модуль восприятия и сегментацию. Дополнительные сведения о JumpStart и асинхронном выводе см. в SageMaker JumpStart и асинхронном выводе соответственно. Мы рекомендуем вам повторно использовать этот контент для случаев, выходящих за рамки AV/ADAS, и обращаться к AWS за любой помощью.
Об авторах
Гопи Кришнамурти является старшим архитектором решений AI/ML в Amazon Web Services в Нью-Йорке. Он работает с крупными клиентами из автомобильной отрасли в качестве их доверенного консультанта по преобразованию их рабочих нагрузок машинного обучения и миграции в облако. Его основные интересы включают глубокое обучение и бессерверные технологии. Вне работы он любит проводить время со своей семьей и знакомиться с разнообразной музыкой.
Шреяс Субраманиан является главным архитектором решений, специалистом по искусственному интеллекту и машинному обучению, и помогает клиентам с помощью машинного обучения решать свои бизнес-задачи с помощью платформы AWS. Шреяс имеет опыт работы в области крупномасштабной оптимизации и машинного обучения, а также в использовании машинного обучения и обучения с подкреплением для ускорения задач оптимизации.