В этой серии из двух частей мы демонстрируем, как маркировать и обучать модели для задач обнаружения 3D-объектов. В части 1 мы обсуждаем набор данных, который мы используем, а также любые шаги предварительной обработки для понимания и маркировки данных. Во второй части мы рассмотрим, как обучить модель на вашем наборе данных и развернуть ее в рабочей среде.
LiDAR (световое обнаружение и определение дальности) — это метод определения дальности путем наведения лазера на объект или поверхность и измерения времени, за которое отраженный свет возвращается к приемнику. Автономные транспортные компании обычно используют датчики LiDAR для получения трехмерного представления об окружающей среде вокруг своих автомобилей.
По мере того, как датчики LiDAR становятся более доступными и экономичными, клиенты все чаще используют данные облака точек в новых областях, таких как робототехника, картографирование сигналов и дополненная реальность. Некоторые новые мобильные устройства даже включают датчики LiDAR. Растущая доступность датчиков LiDAR повысила интерес к данным облака точек для задач машинного обучения (ML), таких как обнаружение и отслеживание 3D-объектов, 3D-сегментация, синтез и реконструкция 3D-объектов, а также использование 3D-данных для проверки 2D-оценки глубины.
В этой серии мы покажем вам, как обучить модель обнаружения объектов, работающую на данных облака точек, для прогнозирования местоположения транспортных средств в 3D-сцене. В этом посте мы уделяем особое внимание маркировке данных LiDAR. Выход стандартного датчика LiDAR представляет собой последовательность кадров трехмерного облака точек с типичной скоростью захвата 3 кадров в секунду. Чтобы пометить этот выход датчика, вам нужен инструмент для маркировки, который может обрабатывать 10D-данные. Amazon SageMaker - основа правды упрощает маркировку объектов в одном 3D-кадре или в последовательности 3D-кадров облака точек для создания наборов обучающих данных машинного обучения. Ground Truth также поддерживает слияние датчиков с камеры и данных LiDAR, используя до восьми входов для видеокамер.
Данные необходимы для любого проекта машинного обучения. В частности, 3D-данные могут быть трудными для получения, визуализации и маркировки. Мы используем Набор данных A2D2 в этом посте и проведу вас через шаги, чтобы визуализировать и пометить его.
A2D2 содержит 40,000 12,499 кадров с семантической сегментацией и метками облака точек, в том числе 3 12,499 кадров с метками ограничивающих 3D-рамок. Поскольку мы сосредоточены на обнаружении объектов, нас интересуют 14 XNUMX кадров с метками ограничительной XNUMXD-рамки. Эти аннотации включают XNUMX классов, относящихся к вождению, таких как автомобиль, пешеход, грузовик, автобус и т. д.
В следующей таблице показан полный список классов:
Индекс | Список классов |
1 | животное |
2 | велосипед |
3 | автобус |
4 | автомобиль |
5 | караванный транспортер |
6 | велосипедист |
7 | аварийный автомобиль |
8 | мотоциклист |
9 | мотоцикл |
10 | пешеход |
11 | трейлер |
12 | грузовик |
13 | внедорожник |
14 | фургон/внедорожник |
Мы обучим наш детектор специально обнаруживать автомобили, поскольку это наиболее распространенный класс в нашем наборе данных (32616 из 42816 объектов в наборе данных помечены как автомобили).
Обзор решения
В этой серии мы расскажем, как визуализировать и пометить данные с помощью Amazon SageMaker Ground Truth, а также продемонстрируем, как использовать эти данные в учебном задании Amazon SageMaker для создания модели обнаружения объектов, развернутой на конечной точке Amazon SageMaker. В частности, мы будем использовать блокнот Amazon SageMaker для управления решением и запуска любых заданий по маркировке или обучению.
На следующей диаграмме показан общий поток данных датчика от маркировки до обучения и развертывания:
Вы узнаете, как обучать и развертывать модель обнаружения 3D-объектов в реальном времени с помощью Создатель мудреца Амазонки Ground Truth со следующими шагами:
- Загрузите и визуализируйте набор данных облака точек
- Подготовьте данные для маркировки Инструмент облака точек Amazon SageMaker Ground Truth
- Запустите распределенное задание обучения Amazon SageMaker Ground Truth с ММдетектион3D
- Оценивайте результаты своей учебной работы и профилируйте использование ресурсов с помощью Amazon SageMaker Отладчик
- Разверните асинхронный Конечная точка SageMaker
- Вызов конечной точки и визуализация прогнозов 3D-объектов
Сервисы AWS, используемые для реализации этого решения
Предпосылки
На следующей диаграмме показано, как создать частную рабочую силу. Письменные пошаговые инструкции см. Создайте рабочую силу Amazon Cognito с помощью страницы Labeling Workforces.
Запуск стека AWS CloudFormation
Теперь, когда вы ознакомились со структурой решения, вы можете развернуть его в своей учетной записи, чтобы запустить пример рабочего процесса. Все этапы развертывания, связанные с конвейером маркировки, управляются AWS CloudFormation. Это означает, что AWS Cloudformation создает экземпляр вашего ноутбука, а также любые роли или корзины Amazon S3 для поддержки запуска решения.
Вы можете запустить стек в AWS Region us-east-1
на консоли AWS CloudFormation с помощью Стек запуска
кнопка. Чтобы запустить стек в другом регионе, используйте инструкции в файле README. Репозиторий GitHub.
Создание всех ресурсов занимает примерно 20 минут. Вы можете отслеживать ход выполнения в пользовательском интерфейсе (UI) AWS CloudFormation.
Когда ваш шаблон CloudFormation будет готов, вернитесь в консоль AWS.
Открытие блокнота
Экземпляры Amazon SageMaker Notebook — это вычислительные инстансы машинного обучения, работающие в приложении Jupyter Notebook. Amazon SageMaker управляет созданием экземпляров и связанных ресурсов. Используйте записные книжки Jupyter в своем экземпляре записной книжки для подготовки и обработки данных, написания кода для обучения моделей, развертывания моделей на хостинге Amazon SageMaker, а также тестирования или проверки ваших моделей.
Выполните следующие действия, чтобы получить доступ к среде Amazon SageMaker Notebook:
- В разделе услуги ищите Создатель мудреца Амазонки.
- Под ноутбук, наведите на Экземпляры ноутбуков.
- Должен быть подготовлен экземпляр Notebook. Выберите Открыть ЮпитерЛаб, который находится справа от предварительно подготовленного экземпляра Notebook в разделе Действия.
- При загрузке страницы вы увидите такой значок:
- Вы будете перенаправлены на новую вкладку браузера, которая выглядит следующим образом:
- Как только вы войдете в пользовательский интерфейс средства запуска экземпляров блокнота Amazon SageMaker. На левой боковой панели выберите идти значок, как показано на следующей диаграмме.
- Выберите Клонировать репозиторий опцию.
- Введите URL-адрес GitHub (https://github.com/aws-samples/end-2-end-3d-ml) во всплывающем окне и выберите клонировать.
- Выберите File Browser чтобы увидеть папку GitHub.
- Откройте блокнот под названием
1_visualization.ipynb.
Работа с ноутбуком
Обзор
Первые несколько ячеек блокнота в разделе под названием Загруженные файлы рассказывается, как загрузить набор данных и проверить файлы в нем. После выполнения ячеек для завершения загрузки данных требуется несколько минут.
После загрузки вы можете просмотреть файловую структуру A2D2, которая представляет собой список сцен или дисков. Сцена — это короткая запись данных датчиков нашего автомобиля. A2D2 предоставляет нам для тренировки 18 таких сцен, каждая из которых идентифицируется уникальными датами. Каждая сцена содержит данные 2D-камеры, 2D-метки, аннотации 3D-прямоугольника и 3D-облака точек.
Вы можете просмотреть файловую структуру для набора данных A2D2 следующим образом:
Настройка датчика A2D2
В следующем разделе рассматривается чтение некоторых данных этого облака точек, чтобы убедиться, что мы правильно интерпретируем их и можем визуализировать их в блокноте, прежде чем пытаться преобразовать их в формат, готовый для маркировки данных.
Для любого вида автономного вождения, где у нас есть данные датчиков 2D и 3D, сбор данных калибровки датчиков имеет важное значение. В дополнение к необработанным данным мы также загрузили cams_lidar.json
. Этот файл содержит перевод и ориентацию каждого датчика относительно системы координат транспортного средства, это также может называться позицией датчика или положением в пространстве. Это важно для преобразования точек из системы координат датчика в систему координат автомобиля. Другими словами, это важно для визуализации 2D- и 3D-датчиков во время движения автомобиля. Система координат транспортного средства определяется как статическая точка в центре транспортного средства, с осью x в направлении движения транспортного средства вперед, осью y обозначает левое и правое, где левое положительное значение, а ось z- ось, направленная через крышу автомобиля. Точка (X,Y,Z) из (5,2,1) означает, что эта точка находится на 5 метров впереди нашего автомобиля, на 2 метра левее и на 1 метр выше нашего автомобиля. Наличие этих калибровок также позволяет нам проецировать 3D-точки на наше 2D-изображение, что особенно полезно для задач маркировки облаков точек.
Чтобы увидеть настройку датчика на транспортном средстве, проверьте следующую схему.
Данные облака точек, на которых мы тренируемся, специально выровнены с фронтальной камерой или камерой спереди по центру:
Это соответствует нашей визуализации датчиков камеры в 3D:
В этой части записной книжки проверяется, соответствует ли набор данных A2D2 нашим ожиданиям относительно положения датчиков и что мы можем сопоставить данные с датчиков облака точек с кадром камеры. Не стесняйтесь запускать все ячейки через одну под названием Проекция из 3D в 2D чтобы увидеть наложение данных облака точек на следующее изображение с камеры.
Преобразование в Amazon SageMaker Ground Truth
После визуализации наших данных в нашей записной книжке мы можем с уверенностью преобразовать наши облака точек в Amazon. 3D-формат SageMaker Ground Truth для проверки и корректировки наших ярлыков. В этом разделе рассматривается преобразование формата данных A2D2 в формат данных Amazon. Файл последовательности SageMaker Ground Truth, с форматом ввода, используемым модальностью отслеживания объектов.
Формат файла последовательности включает в себя форматы облаков точек, изображения, связанные с каждым облаком точек, и все данные о положении и ориентации датчика, необходимые для совмещения изображений с облаками точек. Эти преобразования выполняются с использованием информации датчика, считанной из предыдущего раздела. Следующий пример представляет собой формат файла последовательности из Amazon SageMaker Ground Truth, который описывает последовательность только с одним временным шагом.
Облако точек для этого временного шага расположено в s3://sagemaker-us-east-1-322552456788/a2d2_smgt/20180807_145028_out/20180807145028_lidar_frontcenter_000000091.txt
и имеет формат <x coordinate> <y coordinate> <z coordinate>
.
С облаком точек связано изображение с одной камеры, расположенное в s3://sagemaker-us-east-1-322552456788/a2d2_smgt/20180807_145028_out/undistort_20180807145028_camera_frontcenter_000000091.png
. Обратите внимание, что мы берем файл последовательности, который определяет все параметры камеры, чтобы обеспечить проекцию из облака точек на камеру и обратно.
Преобразование в этот формат ввода требует, чтобы мы написали преобразование из формата данных A2D2 в форматы данных, поддерживаемые Amazon SageMaker Ground Truth. Это тот же процесс, который должен пройти каждый, когда приносит свои данные для маркировки. Мы шаг за шагом рассмотрим, как работает это преобразование. Если вы будете следовать в блокноте, посмотрите на функцию с именем a2d2_scene_to_smgt_sequence_and_seq_label
.
Преобразование облака точек
Первым шагом является преобразование данных из сжатого файла в формате Numpy (NPZ), который был сгенерирован с помощью numpy.знать метод, чтобы принятый необработанный формат 3D для Amazon SageMaker Ground Truth. В частности, мы создаем файл с одной строкой на точку. Каждая трехмерная точка определяется тремя координатами X, Y и Z с плавающей запятой. Когда мы указываем наш формат в файле последовательности, мы используем строку text/xyz
для представления этого формата. Amazon SageMaker Ground Truth также поддерживает добавление значений интенсивности или точек Red Green Blue (RGB).
Файлы NPZ A2D2 содержат несколько массивов Numpy, каждый со своим именем. Чтобы выполнить преобразование, мы загружаем файл NPZ с помощью Numpy. загрузка метод, получить доступ к массиву с именем пунктов (т. е. массив Nx3, где N — количество точек в облаке точек) и сохранить как текст в новый файл с помощью Numpy. сохранить метод.
Предварительная обработка изображений
Далее мы подготавливаем наши файлы изображений. A2D2 предоставляет изображения PNG, а Amazon SageMaker Ground Truth поддерживает изображения PNG; однако эти изображения искажены. Искажение часто возникает из-за того, что объектив, принимающий изображение, не выровнен параллельно плоскости изображения, из-за чего некоторые области изображения выглядят ближе, чем ожидалось. Это искажение описывает разницу между физической камерой и идеализированная модель камеры-обскуры. Если не учитывать искажения, то Amazon SageMaker Ground Truth не сможет визуализировать наши 3D-точки поверх изображений с камеры, что усложняет выполнение маркировки. Учебное пособие по калибровке камеры см. в этой документации от OpenCV.
Хотя Amazon SageMaker Ground Truth поддерживает коэффициенты искажения во входном файле, вы также можете выполнять предварительную обработку перед заданием маркировки. Поскольку A2D2 предоставляет вспомогательный код для устранения искажений, мы применяем его к изображению и оставляем поля, связанные с искажением, вне нашего файла последовательности. Обратите внимание, что поля, связанные с искажением, включают k1, k2, k3, k4, p1, p2 и перекос.
Положение камеры, ориентация и преобразование проекции
Помимо файлов необработанных данных, необходимых для маркировки, файлу последовательности также требуется информация о положении и ориентации камеры для выполнения проецирования 3D-точек в 2D-виды камеры. Нам нужно знать, куда смотрит камера в 3D-пространстве, чтобы выяснить, как 3D-кубовидные метки и 3D-точки должны отображаться поверх наших изображений.
Поскольку мы загрузили позиции наших датчиков в общий диспетчер преобразований в разделе настройки датчиков A2D2, мы можем легко запросить у диспетчера преобразований нужную нам информацию. В нашем случае мы рассматриваем положение автомобиля как (0, 0, 0) в каждом кадре, потому что у нас нет информации о положении датчика, предоставляемой набором данных обнаружения объектов A2D2. Таким образом, относительно нашего автомобиля ориентация и положение камеры описываются следующим кодом:
Теперь, когда положение и ориентация преобразованы, нам также необходимо указать значения для fx, fy, cx и cy, всех параметров для каждой камеры в формате файла последовательности.
Эти параметры относятся к значениям в матрице камеры. В то время как положение и ориентация описывают, в какую сторону смотрит камера, матрица камеры описывает поле зрения камеры и то, как именно 3D-точка относительно камеры преобразуется в местоположение 2D-пикселя на изображении.
A2D2 обеспечивает матрицу камеры. Матрица эталонной камеры показана в следующем коде вместе с тем, как наша записная книжка индексирует эту матрицу для получения соответствующих полей.
Со всеми полями, проанализированными из формата A2D2, мы можем сохранить файл последовательности и использовать его в Amazon. Входной файл манифеста SageMaker Ground Truth чтобы начать работу по маркировке. Это задание по маркировке позволяет нам создавать метки ограничивающих 3D-рамок, чтобы использовать их для обучения 3D-моделей.
Запустите все ячейки до конца записной книжки и убедитесь, что вы заменили workteam
ARN с Amazon SageMaker Ground Truth workteam
ARN вы создали необходимое условие. Примерно через 10 минут после маркировки времени создания задания вы сможете войти на рабочий портал и использовать маркировка пользовательского интерфейса визуализировать вашу сцену.
Убирать
Удалите стек AWS CloudFormation, который вы развернули с помощью Стек запуска кнопка с именем ThreeD
в консоли AWS CloudFormation, чтобы удалить все ресурсы, используемые в этом посте, включая все запущенные экземпляры.
Ориентировочная стоимость
Ориентировочная стоимость 5$ за 2 часа.
Заключение
В этом посте мы продемонстрировали, как брать 3D-данные и преобразовывать их в форму, готовую для маркировки в Amazon SageMaker Ground Truth. С помощью этих шагов вы можете маркировать свои собственные 3D-данные для обучения моделей обнаружения объектов. В следующем посте этой серии мы покажем вам, как взять A2D2 и обучить модель детектора объектов на метках, уже имеющихся в наборе данных.
Счастливого строительства!
Об авторах
Исаак Привитера является старшим специалистом по данным в Лаборатория решений для машинного обучения Amazon, где он разрабатывает индивидуальные решения для машинного обучения и глубокого обучения для решения бизнес-задач клиентов. Он работает в основном в области компьютерного зрения, уделяя особое внимание предоставлению клиентам AWS распределенного обучения и активного обучения.
Видья Сагар Равипати является менеджером в Лаборатория решений для машинного обучения Amazon, где он использует свой обширный опыт работы с крупномасштабными распределенными системами и свою страсть к машинному обучению, чтобы помочь клиентам AWS из различных отраслевых вертикалей ускорить внедрение ИИ и облачных технологий. Ранее он был инженером по машинному обучению в службах подключения в Amazon, который помогал создавать платформы персонализации и профилактического обслуживания.
Джереми Фелтракко является инженером-разработчиком программного обеспечения в компании Лаборатория решений для машинного обучения Amazon в Amazon Web Services. Он использует свой опыт в области компьютерного зрения, робототехники и машинного обучения, чтобы помочь клиентам AWS ускорить внедрение ИИ.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- Платоблокчейн. Интеллект метавселенной Web3. Расширение знаний. Доступ здесь.
- Источник: https://aws.amazon.com/blogs/machine-learning/using-amazon-sagemaker-with-point-clouds-part-1-ground-truth-for-3d-labeling/
- :является
- $UP
- 000
- 1
- 10
- 100
- 1996
- 2D
- 3d
- 7
- 9
- a
- в состоянии
- О нас
- выше
- ускорять
- доступ
- доступной
- Учетная запись
- через
- активный
- дополнение
- адрес
- Принятие
- После
- впереди
- AI
- выровненный
- Все
- позволяет
- уже
- Amazon
- Амазон Когнито
- Создатель мудреца Амазонки
- Amazon SageMaker - основа правды
- Amazon Web Services
- и
- кто угодно
- приложение
- Применить
- соответствующий
- примерно
- архитектура
- МЫ
- области
- около
- массив
- AS
- связанный
- At
- дополненная
- Дополненная реальность
- автономный
- свободных мест
- AWS
- AWS CloudFormation
- назад
- фон
- BE
- , так как:
- становиться
- до
- не являетесь
- ниже
- между
- Синии
- Коробка
- Приведение
- браузер
- строить
- Строительство
- автобус
- бизнес
- кнопка
- by
- под названием
- камера
- CAN
- захватить
- Захват
- автомобиль
- легковые автомобили
- случаев
- Клетки
- Центр
- сложные
- проверка
- Выберите
- класс
- классов
- ближе
- облако
- принятие облака
- код
- Общий
- Компании
- полный
- Вычисление
- компьютер
- Компьютерное зрение
- уверенно
- связь
- Консоли
- содержать
- содержит
- Конверсия
- конверсий
- конвертировать
- переделанный
- координировать
- Цена
- рентабельным
- чехол для варгана
- Создайте
- создали
- создает
- создание
- Клиенты
- CX
- данным
- ученый данных
- Наборы данных
- Финики
- глубоко
- глубокое обучение
- определенный
- Определяет
- демонстрировать
- убивают
- демонстрирует
- развертывание
- развернуть
- развертывание
- глубина
- описывать
- описано
- обнаружение
- определения
- Развитие
- развивается
- Устройства
- разница
- различный
- трудный
- направление
- обсуждать
- распределенный
- распределенные системы
- распределенное обучение
- документации
- Dont
- скачать
- вождение
- e
- каждый
- легко
- позволяет
- Конечная точка
- инженер
- обеспечивать
- Окружающая среда
- особенно
- существенный
- и т.д
- Даже
- точно,
- пример
- ожидания
- ожидаемый
- опыт
- всего лишь пяти граммов героина
- несколько
- поле
- Поля
- фигура
- Файл
- Файлы
- окончание
- Во-первых,
- плавающий
- поток
- Фокус
- фокусировка
- после
- Что касается
- форма
- формат
- вперед
- найденный
- КАДР
- Бесплатно
- от
- передний
- функция
- слияние
- FX
- порождать
- генерируется
- получить
- GIF
- идти
- GitHub
- Go
- идет
- Зелёная
- земля
- Рост
- обрабатывать
- Есть
- имеющий
- Заголовок
- помощь
- помог
- полезный
- хостинг
- ЧАСЫ
- Как
- How To
- Однако
- HTML
- HTTPS
- i
- ICON
- идентифицированный
- изображение
- изображений
- Изображениями
- осуществлять
- важную
- in
- В других
- включают
- включает в себя
- В том числе
- расширились
- все больше и больше
- Индексы
- промышленность
- информация
- вход
- пример
- инструкции
- интерес
- заинтересованный
- Интерфейс
- IT
- ЕГО
- работа
- Джобс
- JPG
- JSON
- Вид
- Знать
- этикетка
- маркировка
- Этикетки
- крупномасштабный
- лазер
- запуск
- УЧИТЬСЯ
- изучение
- Оставлять
- рычаги
- легкий
- такое как
- Список
- загрузка
- грузы
- расположенный
- расположение
- посмотреть
- искать
- ВЗГЛЯДЫ
- машина
- обучение с помощью машины
- техническое обслуживание
- сделать
- ДЕЛАЕТ
- управляемого
- менеджер
- управляет
- отображение
- матрица
- означает
- измерение
- метод
- Минут
- ML
- Мобильный телефон
- мобильных устройств
- модель
- Модели
- монитор
- БОЛЕЕ
- самых
- движение
- с разными
- имя
- Названный
- Необходимость
- Новые
- следующий
- ноутбук
- номер
- NumPy
- объект
- Обнаружение объекта
- объекты
- of
- on
- ONE
- открытый
- OpenCV
- работать
- Опция
- Другое
- выходной
- общий
- собственный
- страница
- Параллельные
- параметры
- часть
- особый
- страсть
- путь
- Выполнять
- воплощение
- физический
- трубопровод
- Pixel
- Платформы
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- Точка
- пунктов
- Портал
- должность
- позиции
- положительный
- После
- предсказывать
- Подготовить
- предыдущий
- предварительно
- в первую очередь
- частная
- проблемам
- процесс
- Производство
- профилирование
- Прогресс
- Проект
- Проекция
- при условии
- приводит
- ранжирование
- Обменный курс
- Сырье
- Читать
- Reading
- готовый
- реального времени
- Реальность
- запись
- Red
- назвало
- отметила
- область
- Связанный
- соответствующие
- осталось
- удаление
- замещать
- представлять
- обязательный
- требуется
- ресурс
- Полезные ресурсы
- Итоги
- возвращают
- обзоре
- RGB
- робототехника
- роли
- крыша
- РЯД
- Run
- Бег
- s
- sagemaker
- то же
- Сохранить
- сцена
- Сцены
- Ученый
- Поиск
- Во-вторых
- Раздел
- сегментация
- старший
- датчик
- Последовательность
- Серии
- Услуги
- установка
- Короткое
- должен
- показывать
- показанный
- Шоу
- сторона
- сигнал
- с
- одинарной
- So
- Software
- разработка программного обеспечения
- Решение
- Решения
- некоторые
- Источник
- Space
- пространства
- конкретно
- стек
- стандарт
- Начало
- Шаг
- Шаги
- Структура
- поставка
- поддержка
- Поддержанный
- Поддержка
- Поверхность
- системы
- ТАБЛИЦЫ
- взять
- принимает
- направлены
- задачи
- шаблон
- тестXNUMX
- который
- Ассоциация
- информация
- их
- Эти
- три
- Через
- время
- титулованный
- в
- инструментом
- топ
- Всего
- Отслеживание
- Train
- Обучение
- Transform
- Переводы
- лечить
- грузовик
- учебник
- типичный
- типично
- ui
- под
- понимать
- понимание
- созданного
- us
- использование
- Информация о пользователе
- Пользовательский интерфейс
- VALIDATE
- Наши ценности
- Огромная
- автомобиль
- Транспорт
- проверить
- вертикалей
- Видео
- Вид
- Просмотры
- видение
- визуализация
- Путь..
- Web
- веб-сервисы
- ЧТО Ж
- , которые
- в то время как
- КТО
- Википедия.
- будете
- в
- слова
- работник
- Трудовые ресурсы
- работает
- записывать
- написать код
- письменный
- X
- YAML
- Ты
- ВАШЕ
- зефирнет