exponenta event banner

Моделирование 3D камеры

Модель датчика камеры с объективом в среде моделирования 3D

  • Библиотека:
  • Инструментарий БПЛА/ 3D моделирования

  • Simulation 3D Camera block

Описание

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

Если для параметра Sample time установлено значение -1блок использует время выборки, указанное в блоке «Моделирование» 3D «Конфигурация сцены». Чтобы использовать этот датчик, необходимо включить в модель блок «Моделирование» 3D «Конфигурация сцены».

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

В таблице приведены сводные данные о портах и способах их включения.

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

Изображение

Вывод изображения RGB, снятого камеройn/a

Глубина

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

Глубина вывода

Этикетки

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

Семантическая сегментация выходных данных

Местоположение

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

Местоположение выхода (м) и ориентация (рад)

n/a

Ориентация

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

Местоположение выхода (м) и ориентация (рад)

n/a

Примечание

Блок Simulation 3D Scene Configuration должен выполняться перед блоком Simulation 3D Camera. Таким образом, среда визуализации Unreal Engine 3D подготавливает данные до их получения блоком Simulation 3D Camera. Чтобы проверить порядок выполнения блока, щелкните его правой кнопкой мыши и выберите «Свойства». На вкладке Общие подтвердите следующие параметры приоритета:

  • Моделирование 3D Конфигурация сцены - 0

  • Имитация 3D Камера - 1

Дополнительные сведения о порядке выполнения см. в разделе Порядок выполнения блоков.

Порты

Продукция

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

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

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

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

Зависимости

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

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

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

В таблице показаны идентификаторы объектов, используемые в сценах по умолчанию, которые можно выбрать из блока «Моделирование» 3D «Конфигурация сцены». При использовании пользовательской сцены в редакторе Unreal ® неиспользуемым идентификаторам можно назначить новые типы объектов. Если сцена содержит объект, которому не назначен идентификатор, этому объекту назначается идентификатор 0. Обнаружение разметки полосы не поддерживается.

Я быНапечатать
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 сцены. Значения местоположения находятся в мировых координатах сцены. В этой системе координат ось Z указывает вверх от земли. Единицы в метрах.

Зависимости

Для включения этого порта на вкладке Ground Truth выберите Output location (m) и orientation (rad).

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

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

Зависимости

Для включения этого порта на вкладке Ground Truth выберите Output location (m) и orientation (rad).

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

Параметры

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

Установка

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

Пример: 2

Имя родителя, к которому подключен датчик, указанное как Scene Origin или как название транспортного средства в модели. Имена транспортных средств, которые можно выбрать, соответствуют параметрам Наименование (Name) блоков Моделирование (Simulation) 3D Транспортное средство (Vehicle) в модели. При выборе Scene Originблок размещает датчик в начале сцены.

Пример: SimulinkVehicle1

Место установки датчика.

  • Когда имя родителя равно Scene Origin, блок устанавливает датчик в начало сцены, и положение установки может быть установлено в 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.

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

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

Если установить датчик на транспортное средство, установив для параметра Имя родителя (Parent name) имя этого транспортного средства, то X, Y и Z находятся в системе координат транспортного средства, где:

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

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

  • Ось Z указывает вверх.

Исходная точка - это место установки, указанное в параметре Место установки. Эта точка отсчета отличается от точки отсчета транспортного средства, которая является геометрическим центром транспортного средства.

Если установить датчик в начало координат сцены, установив для параметра «Родительское имя» значение Scene Originзатем X, Y и Z находятся в мировых координатах сцены.

Дополнительные сведения о системах координат транспортного средства и мира см. в разделе Системы координат для имитации нереального двигателя в инструментарии БПЛА.

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

Зависимости

Чтобы включить этот параметр, выберите Задать смещение (Specify offset).

Смещение вращения относительно места установки датчика, определяемое как действительный вектор 1 на 3 формы [Roll, Pitch, Yaw]. Крен, шаг и рыскание - это углы поворота вокруг осей X, Y и Z. Единицы измерения в градусах.

Если установить датчик на транспортное средство, установив для параметра Имя родителя (Parent name) имя этого транспортного средства, то X, Y и Z находятся в системе координат транспортного средства, где:

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

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

  • Ось Z указывает вверх.

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

Исходная точка - это место установки, указанное в параметре Место установки. Эта точка отсчета отличается от точки отсчета транспортного средства, которая является геометрическим центром транспортного средства.

Если установить датчик в начало координат сцены, установив для параметра «Родительское имя» значение Scene Originзатем X, Y и Z находятся в мировых координатах сцены.

Дополнительные сведения о системах координат транспортного средства и мира см. в разделе Системы координат для имитации нереального двигателя в инструментарии БПЛА.

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

Зависимости

Чтобы включить этот параметр, выберите Задать смещение (Specify offset).

Время выборки блока в секундах, указанное как положительный скаляр. Частота кадров среды моделирования 3D является обратной времени выборки.

Если задать время выборки равным -1блок наследует время выборки из блока «Моделирование» 3D «Конфигурация сцены».

Параметры

Эти внутренние параметры камеры эквивалентны свойствам cameraIntrinsics (Панель инструментов компьютерного зрения). Для получения собственных параметров камеры используйте приложение «Калибратор камеры».

Дополнительные сведения о процессе калибровки камеры см. в разделах Приложение для калибровки одной камеры (Computer Vision Toolbox) и Что такое калибровка камеры? (Панель инструментов компьютерного зрения).

Фокусное расстояние камеры, определяемое как 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.

Выберите этот параметр для вывода семантической карты сегментации идентификаторов меток в порту Labels.

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

Совет

Алгоритмы

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

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

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

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

Дополнительные сведения см. в разделе Что такое калибровка камеры? (Панель инструментов компьютерного зрения)

Ссылки

[1] Буге, J. Y. Панель инструментов калибровки камеры для Matlab. http://www.vision.caltech.edu/bouguetj/calib_doc

[2] Чжан, З. «Гибкая новая методика калибровки камеры». Транзакции IEEE по анализу шаблонов и машинному интеллекту. т. 22, № 11, 2000, с. 1330-1334.

[3] Хейккила, Дж., и О. Сильвен. «Четырехэтапная процедура калибровки камеры с неявной коррекцией изображения». Международная конференция IEEE по компьютерному зрению и распознаванию образов. 1997.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.
Представлен в R2020b