Потоковая камера, глубина и данные о Семантической Сегментации от нереального Engine до NVIDIA Джетсон

В этом примере показано, как передать потоком симулированную камеру, глубину, и семантическая сегментация помечает данные с Нереальной сцены Engine® на оборудование NVIDIA® Jetson с помощью блока Video Send в Simulink®. Это затем показывает, как визуализировать входящие потоки данных на мониторе, соединенном с платформой Джетсона путем развертывания отдельных моделей для каждого входящего потока данных. Развернутые модели содержат Сетевое Видео, Получают и блоки Видеодисплея SDL из MATLAB® Coder™ Support Package для NVIDIA, Джетсон и NVIDIA УПРАВЛЯЮТ Платформами.

Отправьте потоки данных от Simulink

Откройте модель StreamFromUnrealToJetsonExampleModel.

open_system("StreamFromUnrealToJetsonExampleModel.slx")

Эта модель симулирует сцену Городского квартала США в Нереальном Engine, в котором UAV следует за траекторией, заданной положением и значениями ориентации, заданными в рабочем пространстве модели. UAV имеет встроенную камеру. Камера моделируется блоком Simulation 3D Camera, который выводит изображение RGB, карту глубины и карту семантической сегментации меток, которые соответствуют объектам в сцене. Частота кадров камеры сконфигурирована, чтобы быть 30 кадров в секунду (фут в секунду), как задано Sample time параметр в Симуляции 3D Блок Configuration Сцены. Три Видео Отправляют потоку блоков соответствующие данные в оборудование Джетсона. Измените IP-адрес и значения номера порта на этих блоках к значениям, которые соответствуют вашему оборудованию Джетсона и сетевой настройке. Обратите внимание на то, что Max frame time (ms) параметр во всех трех блоках сконфигурирован, чтобы быть 34 миллисекундами на основе уровня входного кадра 30 кадр/с. Все три блока сконфигурированы к потоку к различным портам на том же удаленном IP-адресе.

Смотрите настройку параметров блоков для этих трех потоков данных. Карта глубины преобразована в uint16 тип данных с помощью перемасштабирования с потерями и сконфигурирован к потоку как 16-битное полутоновое изображение с VP9 формат сжатия. Кроме того, обратите внимание что segLabels2RGBImage Блок MATLAB function преобразует карту метки сегментации в поток как матрица значений RGB, аналогичных потоку камеры изображений с VP8 формат сжатия. Для получения дополнительной информации о палитре для визуализации метки, смотрите Глубину и Визуализацию Семантической Сегментации Используя Нереальную Симуляцию Engine.

Запустите StreamFromUnrealToJetsonExampleModel начинать передавать данные потоком Джетсону.

sim("StreamFromUnrealToJetsonExampleModel.slx");

Получите и визуализируйте потоки данных на Джетсоне

Чтобы визуализировать данные, теперь передающие потоком Джетсону, необходимо развернуть три отдельных модели индивидуально в оборудование Джетсона. Это вызвано тем, что модель Simulink может только содержать один блок SDL Video Display и существует три отдельных потока данных. Во-первых, откройте модель, VideoStreamReceiveOnJetsonExampleModel.

open_system("VideoStreamReceiveOnJetsonExampleModel.slx")

Обратите внимание на то, что номер порта и параметры сжатия в блоке Network Video Receive - то же самое как те из соответствующего блока Video Send, передающего изображения камеры потоком. Шаг расчета может быть любым значением, которое меньше чем или равно шагу расчета потока данных. На вкладке Hardware в панели инструментов выберите Hardware Settings. При Аппаратных настройках платы> ресурсы Целевого компьютера, заполните Device Address, Username и Password поля со значениями, соответствующими вашей плате Джетсона. Затем под разделом Deploy вкладки Hardware выберите Build, Deploy & Start, чтобы сгенерировать код для модели и развернуть его в Джетсона. Окно просмотра видео SDL открывает и визуализирует поток RGB изображений на мониторе, соединенном с Джетсоном.

Чтобы перезапустить потоковую передачу после, симуляцией является полный, повторно выполненный StreamFromUnrealToJetsonExampleModel. Затем открытый и развертывают модель, DepthStreamReceiveOnJetsonExampleModel, чтобы визуализировать глубину сопоставляют поток на мониторе, соединенном с Джетсоном.

sim("StreamFromUnrealToJetsonExampleModel.slx");
open_system("DepthStreamReceiveOnJetsonExampleModel.slx")

Чтобы перезапустить потоковую передачу после, симуляцией является полный, повторно выполненный StreamFromUnrealToJetsonExampleModel. Затем открытый и развертывают модель, LabelStreamReceiveOnJetsonExampleModel, чтобы визуализировать семантическую сегментацию помечают поток карты на мониторе соединенным с Джетсоном.

sim("StreamFromUnrealToJetsonExampleModel.slx");
open_system("LabelStreamReceiveOnJetsonExampleModel.slx")

Для просмотра документации необходимо авторизоваться на сайте