Simulation 3D Camera

Модель датчика камеры с линзой в 3D среде симуляции

  • Библиотека:
  • Automated Driving Toolbox / 3D Симуляция

  • Simulation 3D Camera block

Описание

Блок Simulation 3D Camera обеспечивает интерфейс к камере с линзой в 3D среде симуляции. Эта среда представляется с помощью Нереального Engine® от Epic Games®. Датчик основан на идеальной модели камеры с точечной диафрагмой, с линзой, добавленной, чтобы представлять полную модель камеры, включая искажение объектива. Эта модель камеры поддерживает поле зрения до 150 градусов. Для получения дополнительной информации см. Алгоритмы.

Если вы устанавливаете Sample time на -1, блок использует шаг расчета, заданный в блоке Simulation 3D Scene Configuration. Чтобы использовать этот датчик, необходимо включать блок Simulation 3D Scene Configuration в модель.

Блок выходные изображения, полученные камерой в процессе моделирования. Можно использовать эти изображения, чтобы визуализировать и проверить ведущие алгоритмы. Кроме того, на вкладке Ground Truth, можно выбрать опции, чтобы вывести достоверные данные для разработки оценки глубины и алгоритмов семантической сегментации. Можно также вывести местоположение и ориентацию камеры в системе мировой координаты сцены. Изображение показывает блок со всеми включенными портами.

Таблица суммирует порты и как включить им.

ПортОписаниеПараметр для включения портаДемонстрационная визуализация

Image

Выводит изображение RGB, полученное камеройнет данных

Depth

Выводит карту глубины со значениями от 0 м до 1 000 метров

Output depth

Labels

Выводит карту семантической сегментации метки IDs, которые соответствуют объектам в сцене

Output semantic segmentation

Location

Выводит местоположение камеры в системе мировой координаты

Output location (m) and orientation (rad)

нет данных

Orientation

Выводит ориентацию камеры в системе мировой координаты

Output location (m) and orientation (rad)

нет данных

Примечание

Блок Simulation 3D Scene Configuration должен выполниться перед блоком Simulation 3D Camera. Тем путем Нереальный Engine, 3D среда визуализации готовит данные перед блоком Simulation 3D Camera, получает его. Чтобы проверять порядок выполнения блока, щелкните правой кнопкой по блокам и выберите Properties. На вкладке General подтвердите эти настройки Priority:

  • Simulation 3D Scene Configuration0

  • Simulation 3D Camera1

Для получения дополнительной информации о порядке выполнения, смотрите Как Нереальная Симуляция Engine для Автоматизированных Ведущих работ.

Порты

Вывод

развернуть все

3D выходное изображение камеры, возвращенное как m-by-n-by-3 массив значений триплета RGB. m является вертикальным разрешением изображения, и n является горизонтальным разрешением изображения.

Типы данных: int8 | uint8

Объектная глубина для каждого пикселя в изображении, выход как m-by-n массив. m является вертикальным разрешением изображения, и n является горизонтальным разрешением изображения. Глубина находится в диапазоне от 0 до 1 000 метров.

Зависимости

Чтобы включить этот порт, на вкладке Ground Truth, выбирают Output depth.

Типы данных: double

Метка для каждого пикселя в изображении, выход как m-by-n массив. m является вертикальным разрешением изображения, и n является горизонтальным разрешением изображения.

Таблица показывает идентификаторы объектов, используемые в сценах по умолчанию, которые можно выбрать от блока Simulation 3D Scene Configuration. Если вы используете пользовательскую сцену в Редакторе Unreal®, можно присвоить новые типы объектов неиспользованным идентификаторам. Если сцена содержит объект, который не имеет присвоенного ID, тот объект присвоен ID 0. Обнаружение маркировок маршрута не поддерживается.

IDВвод
0

Ни одно/значение по умолчанию

1

Создание

2

Не используемый

3

Другой

4

Не используемый

5

Полюс

6

Не используемый

7

Дорога

8

Тротуар

9

Растительность

10

Транспортное средство

11

Не используемый

12

Типовой дорожный знак

13

Знак Стоп

14

Дайте к знаку

15

Знак ограничения скорости

16

Знак ограничения по весу

17-18

Не используемый

19

Левый и правый предупредительный знак стрелы

20

Оставленный предупредительный знак двойной угловой скобки

21

Правильный предупредительный знак двойной угловой скобки

22

Не используемый

23

Правильный односторонний знак

24

Не используемый

25

Школьный автобус только подписывается

26-38

Не используемый

39

Знак перехода

40

Не используемый

41

Сигнал трафика

42

Изогните правильный предупредительный знак

43

Изогните оставленный предупредительный знак

44

Предупредительный знак стрелки вправо

45-47

Не используемый

48

Знак пересечения железной дороги

49

Уличный знак

50

Окольный предупредительный знак

51

Пожарный гидрант

52

Выйдите из знака

53

Знак велосипедной дорожки

54-56

Не используемый

57

Небо

58

Ограничение

59

Пандус эстакады

60

Дорожное ограждение

61-66

Не используемый

67

Олень

68-70

Не используемый

71

Баррикада

72

Мотоцикл

73-255

Не используемый

Зависимости

Чтобы включить этот порт, на вкладке Ground Truth, выбирают Output semantic segmentation.

Типы данных: uint8

Местоположение датчика вдоль Оси X, Оси Y и оси Z сцены. Значения Location находятся в мировых координатах сцены. В этой системе координат ось Z подчеркивает от земли. Модули исчисляются в метрах.

Зависимости

Чтобы включить этот порт, на вкладке Ground Truth, выбирают Output location (m) and orientation (rad).

Типы данных: double

Прокрутитесь, сделайте подачу, и ориентация датчика рыскания об Оси X, Оси Y и оси Z сцены. Значения Orientation находятся в мировых координатах сцены. Эти значения положительны в направлении по часовой стрелке при взгляде в положительных направлениях этих осей. Модули исчисляются в радианах.

Зависимости

Чтобы включить этот порт, на вкладке Ground Truth, выбирают Output location (m) and orientation (rad).

Типы данных: double

Параметры

развернуть все

Монтирование

Уникальный идентификатор датчика в виде положительного целого числа. В системе мультидатчика идентификатор датчика различает датчики. Когда вы добавляете новый блок датчика в свою модель, Sensor identifier того блока является N + 1. N является самым высоким значением Sensor identifier среди существующих блоков датчика в модели.

Пример 2

Имя родительского элемента, к которому датчик смонтирован в виде Scene Origin или как имя транспортного средства в вашей модели. Имена транспортного средства, которые можно выбрать, соответствуют параметрам Name блоков Simulation 3D Vehicle with Ground Following в модели. Если вы выбираете Scene Origin, блок помещает датчик в начале координат сцены.

Пример: SimulinkVehicle1

Местоположение монтирования датчика.

  • Когда Parent name является Scene Origin, подставки под клише датчик до начала координат сцены. Можно установить Mounting location на Origin только. В процессе моделирования датчик остается стационарным.

  • Когда Parent name является именем транспортного средства (например, SimulinkVehicle1) подставки под клише датчик к одному из предопределенных местоположений монтирования описаны в таблице. В процессе моделирования датчик перемещается с транспортным средством.

Местоположение монтирования транспортного средстваОписаниеОриентация относительно источника транспортного средства [крен, тангаж, рыскание] (градус)
Origin

Датчик по ходу движения смонтировался к источнику транспортного средства, который находится на земле в геометрическом центре транспортного средства (см. Системы координат для Нереальной Симуляции Engine в Automated Driving Toolbox),

[0, 0, 0]
Front bumper

Датчик по ходу движения смонтирован к переднему бамперу

[0, 0, 0]
Rear bumper

Назад стоящий датчик смонтирован к заднему бамперу

[0, 0, 180]
Right mirror

Вниз стоящий датчик смонтирован к правильному зеркалу вида сбоку

[0, –90, 0]
Left mirror

Вниз стоящий датчик смонтирован к левому зеркалу вида сбоку

[0, –90, 0]
Rearview mirror

Датчик по ходу движения смонтирован к зеркалу заднего обзора в транспортном средстве

[0, 0, 0]
Hood center

Датчик по ходу движения, смонтированный к центру капота

[0, 0, 0]
Roof center

Датчик по ходу движения, смонтированный к центру крыши

[0, 0, 0]

Прокрутитесь, сделайте подачу, и рыскание по часовой стрелке положительно при взгляде в положительном направлении Оси X, Оси Y и оси Z, соответственно. При рассмотрении транспортного средства от верхней части вниз, угол рыскания (то есть, угол ориентации) против часовой стрелки положительны, потому что вы смотрите в обратном направлении оси.

(X, Y, Z) монтирующееся местоположение датчика относительно транспортного средства зависит от типа транспортного средства. Чтобы задать тип транспортного средства, используйте параметр Type блока Simulation 3D Vehicle with Ground Following, с которым вы монтируете датчик. Получить (X, Y, Z) монтирующиеся местоположения для типа транспортного средства, смотрите страницу с описанием для того транспортного средства.

Чтобы определить местоположение датчика в мировых координатах, откройте блок датчика. Затем на вкладке Ground Truth выберите Output location (m) and orientation (rad) и смотрите данные из выходного порта Location.

Выберите этот параметр, чтобы задать смещение от монтирующегося местоположения при помощи параметров Relative rotation [Roll, Pitch, Yaw] (deg) и Relative translation [X, Y, Z] (m).

Смещение перевода относительно монтирующегося местоположения датчика в виде с действительным знаком 1 3 вектор из формы [X, Y, Z]. Модули исчисляются в метрах.

Если вы монтируете датчик к транспортному средству установкой Parent name к имени того транспортного средства, то X, Y, и Z находятся в системе координат транспортного средства, где:

  • Ось X указывает вперед от транспортного средства.

  • Ось Y указывает слева от транспортного средства, как просматривается при взгляде в прямом направлении транспортного средства.

  • Ось Z подчеркивает.

Источник является монтирующимся местоположением, заданным в параметре Mounting location. Этот источник отличается от источника транспортного средства, который является геометрическим центром транспортного средства.

Если вы монтируете датчик к источнику сцены установкой Parent name к Scene Origin, затем X, Y, и Z находятся в мировых координатах сцены.

Для получения дополнительной информации о транспортном средстве и системах мировой координаты, смотрите Системы координат для Нереальной Симуляции Engine в Automated Driving Toolbox.

Пример: [0,0,0.01]

Зависимости

Чтобы включить этот параметр, выберите Specify offset.

Вращательное смещение относительно монтирующегося местоположения датчика в виде с действительным знаком 1 3 вектор из формы [Крен, Тангаж, Рыскание]. Прокрутитесь, сделайте подачу, и рыскание является углами вращения вокруг X-, Y-и осей Z, соответственно. Модули в градусах.

Если вы монтируете датчик к транспортному средству установкой Parent name к имени того транспортного средства, то X, Y, и Z находятся в системе координат транспортного средства, где:

  • Ось X указывает вперед от транспортного средства.

  • Ось Y указывает слева от транспортного средства, как просматривается при взгляде в прямом направлении транспортного средства.

  • Ось Z подчеркивает.

  • Прокрутитесь, сделайте подачу, и рыскание по часовой стрелке положительно при взгляде в прямом направлении Оси X, Оси Y и оси Z, соответственно. Если вы просматриваете сцену из 2D нисходящей перспективы, то угол рыскания (также названный углом ориентации) против часовой стрелки положителен, потому что вы просматриваете сцену в обратном направлении оси Z.

Источник является монтирующимся местоположением, заданным в параметре Mounting location. Этот источник отличается от источника транспортного средства, который является геометрическим центром транспортного средства.

Если вы монтируете датчик к источнику сцены установкой Parent name к Scene Origin, затем X, Y, и Z находятся в мировых координатах сцены.

Для получения дополнительной информации о транспортном средстве и системах мировой координаты, смотрите Системы координат для Нереальной Симуляции Engine в Automated Driving Toolbox.

Пример: [0,0,10]

Зависимости

Чтобы включить этот параметр, выберите Specify offset.

Шаг расчета блока в секундах в виде положительной скалярной величины. 3D частота кадров среды симуляции является инверсией шага расчета.

Если вы устанавливаете шаг расчета на -1, блок наследовал свой шаг расчета от блока Simulation 3D Scene Configuration.

Параметры

Эти внутренние параметры камеры эквивалентны свойствам cameraIntrinsics объект. Чтобы получить внутренние параметры для вашей камеры, используйте приложение Camera Calibrator.

Для получения дополнительной информации о процессе калибровки фотоаппарата, см. Одно Приложение Camera Calibrator и Что такое Калибровка фотоаппарата?.

Фокусное расстояние камеры в виде 1 2 положительного целочисленного вектора из формы [fx, fy]. Модули находятся в пикселях.

fx = F × sx

fy = F × sy

где:

  • F является фокусным расстоянием в мировых единицах измерения, обычно миллиметры.

  • [sx, sy] является количеством пикселей на мировую единицу измерения в x и направлении y, соответственно.

Этот параметр эквивалентен FocalLength свойство cameraIntrinsics объект.

Оптический центр камеры в виде 1 2 положительного целочисленного вектора из формы [cx, cy]. Модули находятся в пикселях.

Этот параметр эквивалентен PrincipalPoint свойство cameraIntrinsics объект.

Размер изображения, произведенный камерой в виде 1 2 положительного целочисленного вектора из формы [mrows, ncols]. Модули находятся в пикселях.

Этот параметр эквивалентен ImageSize свойство cameraIntrinsics объект.

Радиальные коэффициенты искажения в виде с действительным знаком 1 2 или 1 3 неотрицательного вектора. Радиальное искажение происходит, когда световые лучи изгибают больше, чем ребра линзы, чем они делают в ее оптическом центре. Искажение больше, когда линза меньшего размера. Блок вычисляет радиально искаженное местоположение точки. Модули являются безразмерными.

Этот параметр эквивалентен RadialDistortion свойство cameraIntrinsics объект.

Тангенциальные коэффициенты искажения в виде с действительным знаком 1 2 неотрицательный вектор. Тангенциальное искажение происходит, когда линза и плоскость изображения не параллельны. Координаты описываются в мировых единицах измерения. Модули являются безразмерными.

Этот параметр эквивалентен TangentialDistortion свойство cameraIntrinsics объект.

Скошенный угол осей камеры в виде неотрицательного скаляра. Если Ось X и Ось Y точно перпендикулярны, то скосом должен быть 0. Модули являются безразмерными.

Этот параметр эквивалентен Skew свойство cameraIntrinsics объект.

Основная истина

Выберите этот параметр, чтобы вывести карту глубины в порте Depth.

Выберите этот параметр, чтобы вывести карту семантической сегментации метки IDs в порте Labels.

Выберите этот параметр, чтобы вывести местоположение и ориентацию датчика в портах Location и Orientation, соответственно.

Советы

Алгоритмы

Блок использует модель камеры, предложенную Жан-Ивом Буге [1]. Модель включает:

  • Модель [2] камеры с точечной диафрагмой

  • Искажение объектива [3]

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

Для получения дополнительной информации смотрите то, Что Калибровка фотоаппарата?

Ссылки

[1] Bouguet, J. Y. Тулбокс Калибровки фотоаппарата для MATLAB. http://www.vision.caltech.edu/bouguetj/calib_doc

[2] Чжан, Z. "Гибкий Новый техник для Калибровки фотоаппарата". Транзакции IEEE согласно Анализу Шаблона и Искусственному интеллекту. Издание 22, № 11, 2000, стр 1330–1334.

[3] Heikkila, J. и О. Сильвен. “Процедура калибровки фотоаппарата с четырьмя шагами с неявной коррекцией изображений”. Международная конференция IEEE по вопросам компьютерного зрения и распознавания образов. 1997.

Введенный в R2019b