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