Simulation 3D Camera

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

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

Описание

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

Если вы устанавливаете 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

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

Порты

Вывод

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

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 является горизонтальным разрешением изображения.

Метки имеют значения, которые соответствуют этим типам объектов. Если сцена содержит объект, который не принадлежит ни одним из показанных типов объектов, тот объект присвоен 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

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

27

Левый поворот только знак стрелы

28

Прямо только знак стрелы

29

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

30

Левый поворот только подписывается

31

Прямо только знак

32

Никакой знак левого поворота

33

Никакой знак правого поворота

34

Нет через дорожный знак

35

Никакой знак символа разворота

36

Никакой знак символа правого поворота

37

Никакой знак символа левого поворота

38

Никакой правый поворот на красном знаке

39

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

40

Сигнал перехода

41

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

42

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

43

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

44

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

45

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

46

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

47

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

48

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

49

Уличный знак

50

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

51

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

52

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

53

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

54

Поезжайте по правой стороне дороги знак

55

Поезжайте по левой стороне дороги знак

56

Знак нетрудоспособности

57

Небо

58

Ограничение

59

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

60

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

61-63

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

64

Взрослый пешеход

65

Молодой пешеход

66

Типовое животное

67

Олень

68

Кенгуру

69

Собака

70

\cat

71

Баррикада

72

Мотоцикл

73

Коммерческое транспортное средство

Зависимости

Чтобы включить этот порт, на вкладке 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

Датчик по ходу движения смонтировался к источнику транспортного средства, который находится на земле в геометрическом центре транспортного средства (см. Системы координат для 3D Симуляции в 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) местоположение датчика относительно транспортного средства зависит от типа транспортного средства. Чтобы задать тип транспортного средства, используйте параметр Type блока Simulation 3D Vehicle with Ground Following, с которым вы монтируетесь. Таблицы показывают эти X, Y, и местоположения Z датчиков в системе координат транспортного средства. В этой системе координат:

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

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

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

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

Автомобиль с высокой мощностью — местоположения датчика относительно источника транспортного средства

Монтирование местоположенияX (m)Y (m)Z (m)
Front bumper2.4700.45
Rear bumper–2.4700.45

Right mirror

0.43–1.081.01

Left mirror

0.431.081.01

Rearview mirror

0.3201.20

Hood center

1.2801.14

Roof center

–0.2501.58

Седан — местоположения датчика относительно источника транспортного средства

Монтирование местоположенияX (m)Y (m)Z (m)
Front bumper2.4200.51
Rear bumper–2.4200.51

Right mirror

0.59–0.941.09

Left mirror

0.590.941.09

Rearview mirror

0.4301.31

Hood center

1.4601.11

Roof center

–0.4501.69

Внедорожник — местоположения датчика относительно источника транспортного средства

Монтирование местоположенияX (m)Y (m)Z (m)
Front bumper2.4200.51
Rear bumper–2.4200.51

Right mirror

0.60–11.35

Left mirror

0.6011.35

Rearview mirror

0.3901.55

Hood center

1.5801.39

Roof center

–0.5602

Маленький пикап — местоположения датчика относительно источника транспортного средства

Монтирование местоположенияX (m)Y (m)Z (m)
Front bumper3.0700.51
Rear bumper–3.0700.51

Right mirror

1.10–1.131.52

Left mirror

1.101.131.52

Rearview mirror

0.8501.77

Hood center

2.2201.59

Roof center

002.27

Хэтчбек — местоположения датчика относительно источника транспортного средства

Монтирование местоположенияX (m)Y (m)Z (m)
Front bumper1.9300.51
Rear bumper–1.9300.51

Right mirror

0.43–0.841.01

Left mirror

0.430.841.01

Rearview mirror

0.3201.27

Hood center

1.4401.01

Roof center

001.57

Чтобы определить местоположение датчика в мировых координатах, откройте блок датчика. Затем на вкладке 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 находятся в мировых координатах сцены.

Для получения дополнительной информации о транспортном средстве и системах мировой координаты, смотрите Системы координат для 3D Симуляции в 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 находятся в мировых координатах сцены.

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

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

Зависимости

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

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

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

Параметры

Эти внутренние параметры камеры эквивалентны свойствам cameraIntrinsics объект. Чтобы получить внутренние параметры для вашей камеры, используйте приложение 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]

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

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

Ссылки

[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