Simulation 3D Camera

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

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

    Automated Driving Toolbox / 3D Симуляция

  • Simulation 3D Camera block

Описание

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

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

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

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

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

Image

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

Depth

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

Output depth

Labels

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

Output semantic segmentation

Location

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

Output location (m) and orientation (rad)

n/A

Orientation

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

Output location (m) and orientation (rad)

n/A

Примечание

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

  • Simulation 3D Scene Configuration0

  • Simulation 3D Camera1

Для получения дополнительной информации о порядке выполнения, смотрите Порядок выполнения Блока.

Порты

Входной параметр

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

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

Зависимости

Чтобы включить этот порт, выберите параметр Input рядом с параметром Relative translation [X, Y, Z] (m). Когда вы выбираете Input, параметр Relative translation [X, Y, Z] (m) задает начальный относительный перевод, и порт Translation задает относительный перевод в процессе моделирования. Для получения дополнительной информации смотрите Преобразование Положения Датчика.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Относительное вращение датчика от его точки монтирования на транспортном средстве, в градусах в виде с действительным знаком 1 3 вектор из формы [Roll Pitch Yaw].

Зависимости

Чтобы включить этот порт, выберите параметр Input рядом с параметром Relative rotation [Roll, Pitch, Yaw] (deg). Когда вы выбираете Input, параметр Relative translation [Roll, Pitch, Yaw] (deg) задает начальное относительное вращение, и порт Rotation задает относительное вращение в процессе моделирования. Для получения дополнительной информации смотрите Преобразование Положения Датчика.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Вывод

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

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. Если вы используете пользовательскую сцену в Нереальном® Редактор, можно присвоить новые типы объектов неиспользованным идентификаторам. Если сцена содержит объект, который не имеет присвоенного 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 симуляции 3D блоки транспортного средства в модели. Если вы выбираете Scene Origin, блок помещает датчик в начале координат сцены.

Пример: SimulinkVehicle1

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

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

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

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

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

[0, 0, 0]

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

(X, Y, Z) монтирующееся местоположение датчика относительно транспортного средства зависит от типа транспортного средства. Чтобы задать тип транспортного средства, используйте параметр Type блока Simulation 3D UAV Vehicle, с которым вы монтируетесь. Получить (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 в UAV Toolbox.

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

Настройте относительный перевод в процессе моделирования

Чтобы настроить относительный перевод датчика в процессе моделирования, включите входной порт Translation путем выбора параметра Input рядом с параметром Relative translation [X, Y, Z] (m). Когда вы включаете порт Translation, параметр Relative translation [X, Y, Z] (m) задает начальный относительный перевод датчика, и порт Translation задает относительный перевод датчика в процессе моделирования. Для получения дополнительной информации об относительном переводе и вращении этого датчика, смотрите Преобразование Положения Датчика.

Зависимости

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

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

Настройте относительное вращение в процессе моделирования

Чтобы настроить относительное вращение датчика в процессе моделирования, включите входной порт Rotation путем выбора параметра Input рядом с параметром Relative rotation [Roll, Pitch, Yaw] (deg). Когда вы включаете порт Rotation, параметр Relative rotation [Roll, Pitch, Yaw] (deg) задает начальное относительное вращение датчика, и порт Rotation задает относительное вращение датчика в процессе моделирования. Для получения дополнительной информации об относительном переводе и вращении этого датчика, смотрите Преобразование Положения Датчика.

Зависимости

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

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

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

Параметры

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

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

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

fx = F × sx

fy = F × sy

где:

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

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

Этот параметр эквивалентен FocalLength Свойство (Computer Vision Toolbox) cameraIntrinsics объект.

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

Этот параметр эквивалентен PrincipalPoint Свойство (Computer Vision Toolbox) cameraIntrinsics объект.

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

Этот параметр эквивалентен ImageSize Свойство (Computer Vision Toolbox) cameraIntrinsics объект.

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

Этот параметр эквивалентен RadialDistortion Свойство (Computer Vision Toolbox) cameraIntrinsics объект.

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

Этот параметр эквивалентен TangentialDistortion Свойство (Computer Vision Toolbox) cameraIntrinsics объект.

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

Этот параметр эквивалентен Skew Свойство (Computer Vision Toolbox) 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.

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