主要内容

模拟3D摄像机

三维仿真环境中带有镜头的相机传感器模型

自从R2019b

  • 模拟3D摄像块

库:
无人机工具箱/仿真3D
自动驾驶工具箱/仿真3D

描述

模拟3D摄像机块提供了在3D模拟环境中带有镜头的相机的接口。此环境使用虚幻引擎渲染®来自Epic Games®。该传感器基于理想的针孔相机模型,加上一个镜头来代表完整的相机模型,包括镜头畸变。这款相机支持高达150度的视野。详情请参见算法

如果你设置样品时间-1时,块使用中指定的采样时间模拟三维场景配置块。要使用此传感器,必须包含一个模拟三维场景配置块在你的模型中。

该模块输出模拟过程中摄像机捕捉到的图像。您可以使用这些图像来可视化和验证您的驾驶算法。此外,关于地面实况选项卡,您可以选择输出地面真相数据,用于开发深度估计和语义分割算法。您还可以在场景的世界坐标系中输出相机的位置和方向。该图像显示了启用了所有端口的块。

模拟3D相机块与所有端口启用

下表总结了这些端口以及如何启用它们。

港口 描述 启用端口参数 样本可视化

图像

输出由相机捕获的RGB图像 N/A

一个城市场景的样本图像输出

深度

输出一个深度图,值从0米到1000米

输出深度

城市场景的样本深度输出

标签

输出与场景中对象对应的标签id的语义分割映射

输出语义分割

城市场景样本图像语义分割

位置

输出相机在世界坐标系统中的位置

输出位置(m)和方向(rad)

N/A

取向

在世界坐标系中输出相机的方向

输出位置(m)和方向(rad)

N/A

请注意

模拟三维场景配置块必须在模拟3D摄像机块。这样,虚幻引擎3D可视化环境将在模拟3D摄像机Block接收它。要检查块的执行顺序,右键单击块并选择属性。在一般Tab,确认优先级设置:

  • 模拟三维场景配置- - - - - -0

  • 模拟3D摄像机- - - - - -1

有关执行命令的详细信息,请参见虚幻引擎如何模拟自动驾驶

港口

输入

全部展开

传感器从其在车辆上的安装点的相对平移,单位为米,指定为形式为[XYZ].

依赖关系

要启用此端口,请选择输入参数旁边的相对平移[X, Y, Z] (m)参数。当你选择输入,相对平移[X, Y, Z] (m)参数指定初始相对转换翻译端口指定模拟过程中的相对转换。详情请参见传感器位置变换

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

传感器从其在车辆上的安装点的相对旋转,以度为单位,指定为形式为[]的1 × 3实值向量[球场偏航].

依赖关系

要启用此端口,请选择输入参数旁边的相对旋转[横摇、俯仰、偏航](度)参数。当你选择输入,相对平动[横摇、俯仰、偏航](度)参数指定初始相对旋转旋转端口指定模拟过程中的相对旋转。详情请参见传感器位置变换

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

输出

全部展开

3D输出相机图像,返回为——- - - - - -nRGB三元组值的-by-3数组。是图像的垂直分辨率,和n是图像的水平分辨率。

数据类型:int8|uint8

图像中每个像素的对象深度,输出为——- - - - - -n数组中。是图像的垂直分辨率,和n是图像的水平分辨率。深度范围为0 ~ 1000米。

依赖关系

要启用此端口,请在地面实况选项卡上,选择输出深度

数据类型:

图像中每个像素的标签标识符,输出为——- - - - - -n数组中。是图像的垂直分辨率,和n是图像的水平分辨率。

表中显示了默认场景中使用的对象id,这些对象id可从模拟三维场景配置块。如果您正在使用自定义场景,在虚幻®编辑器中,可以为未使用的id分配新的对象类型。详情请参见应用标签对虚幻场景元素进行语义分割和目标检测。如果一个场景包含一个没有分配ID的对象,该对象将被分配一个ID0。不支持车道标记的检测。

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 骑自行车
62 - 66

不习惯

67

鹿

68 - 70

不习惯

71

街垒

72

摩托车

73 - 255

不习惯

依赖关系

要启用此端口,请在地面实况选项卡上,选择输出语义分割

数据类型:uint8

请注意

启用标签需要Sim 3D语义带有标签的ActorSemanticSegmentationSensor < N >置于相同的位置N为传感器标识符。的模拟3D摄像机块实例化Sim 3D相机而且Sim 3d语义标签已启用输出。

传感器位置沿X设在,Y设在,Z-轴的场景。的位置值在场景的世界坐标中。在这个坐标系中Z-轴指向地面。单位是米。

依赖关系

要启用此端口,请在地面实况选项卡上,选择输出位置(m)和方向(rad)

数据类型:

滚动,俯仰和偏航传感器的方向X设在,Y设在,Z-轴的场景。的取向值在场景的世界坐标中。从这些轴的正方向看,这些值在顺时针方向上是正的。单位以弧度为单位。

依赖关系

要启用此端口,请在地面实况选项卡上,选择输出位置(m)和方向(rad)

数据类型:

参数

全部展开

越来越多的

指定传感器的唯一标识符。在多传感器系统中,传感器标识符使您能够区分传感器。在模型中添加新的传感器块时,传感器标识符这个方块的N+ 1,其中N是最高的传感器标识符模型中现有传感器块之间的值。

例子:2

传感器挂载到的父节点的名称,指定为现场的起源或者作为模型中车辆的名称。选项对应的车辆名称名字模型中模拟3D车辆块的参数。如果您选择现场的起源,该块在场景原点放置传感器。

例子:SimulinkVehicle1

传感器安装位置。

  • 父母的名字现场的起源时,块将传感器安装到场景的原点。您可以设置安装位置起源只有。在模拟过程中,传感器保持静止。

  • 父母的名字是车辆的名称,则块将传感器安装到表中描述的预定义安装位置之一。在模拟过程中,传感器随车辆移动。

车辆安装位置 描述 相对于车辆原点的方向[侧倾,俯仰,偏航](度)
起源

前向传感器安装在车辆原点,这是在地面上,在车辆的几何中心(见坐标系统的虚幻引擎模拟在自动驾驶工具箱

在起始处安装传感器的车辆

[0,0,0]
前保险杠

前向传感器安装在前保险杠

在前保险杠安装传感器的车辆

[0,0,0]
后保险杠

后向传感器安装在后保险杠

在后保险杠上安装传感器的车辆

[0,0,180]
正确的镜子

向下传感器安装在右侧侧视镜

车辆在右侧视镜处安装传感器

[0, - 90,0]
离开了镜子

向下传感器安装在左侧侧视镜

车辆的传感器安装在左侧视镜

[0, - 90,0]
后视镜

前向传感器安装在车内的后视镜上

在后视镜上安装传感器的车辆

[0,0,0]
罩中心

前向传感器安装在引擎盖的中心

在引擎盖中心安装传感器的车辆

[0,0,0]
屋顶中心

前向传感器安装在屋顶的中心

车顶中心安装传感器的车辆

[0,0,0]

滚动,俯仰,和偏航是顺时针正时,看着正方向的X设在,Y设在,Z分别设在。当从上面看一辆车时,偏航角(方向角)是逆时针正的,因为你在看轴的负方向。

X-Y-Z传感器相对于车辆的安装位置取决于车辆类型。要指定车辆类型,请使用类型参数。模拟三维车辆与地面跟踪你可以安装传感器。要获得X-Y-Z车辆类型的安装位置,请参阅该车辆的参考页面。

要确定传感器在世界坐标中的位置,请打开传感器块。然后,在地面实况选项卡,选择输出位置(m)和方向(rad)参数中的数据并检查位置输出端口。

属性指定与安装位置的偏移量相对平移[X, Y, Z] (m)而且相对旋转[横摇、俯仰、偏航](度)参数。

相对于传感器安装位置的平移偏移量,指定为形式为[的1 × 3实值向量]XYZ].单位是米。

如果您通过设置将传感器安装到车辆上父母的名字那就是那辆车的名字XY,Z均在车辆坐标系中,其中:

  • X-轴指向车辆前方。

  • Y-轴指向车辆的左侧,就像在车辆前进方向时看到的那样。

  • Z-轴向上。

文件中指定的安装位置安装位置参数。这个原点不同于飞行器原点,后者是飞行器的几何中心。

如果您通过设置将传感器安装到场景原点父母的名字现场的起源,然后XY,Z都在现场的世界坐标中。

有关飞行器和世界坐标系的详细信息,请参见坐标系统的虚幻引擎模拟在自动驾驶工具箱

例子:(0, 0, 0.01)

在模拟过程中调整相对平移

若要在模拟过程中调整传感器的相对平移,请使能翻译的输入端口输入参数旁边的相对平移[X, Y, Z] (m)参数。当您启用翻译港口,相对平移[X, Y, Z] (m)参数指定传感器和翻译Port表示模拟过程中传感器的相对平移。有关此传感器的相对平移和旋转的详细信息,请参见传感器位置变换

依赖关系

若要启用该参数,请选中指定偏移量

相对于传感器安装位置的旋转偏移量,指定为形式为[的1 × 3实值矢量[球场偏航]。滚转,俯仰和偏航是围绕旋转的角度X-,Y- - - - - -,Z分别相互重合。单位是度。

如果您通过设置将传感器安装到车辆上父母的名字那就是那辆车的名字XY,Z均在车辆坐标系中,其中:

  • X-轴指向车辆前方。

  • Y-轴指向车辆的左侧,就像在车辆前进方向时看到的那样。

  • Z-轴向上。

  • 滚动,俯仰,和偏航是顺时针正时,看向前的方向X设在,Y设在,Z分别设在。如果您从2D自上而下的视角查看场景,那么偏角(也称为方向角)是逆时针正的,因为您正在以反向方向查看场景Z设在。

文件中指定的安装位置安装位置参数。这个原点不同于飞行器原点,后者是飞行器的几何中心。

如果您通过设置将传感器安装到场景原点父母的名字现场的起源,然后XY,Z都在现场的世界坐标中。

有关飞行器和世界坐标系的详细信息,请参见坐标系统的虚幻引擎模拟在自动驾驶工具箱

例子:(0, 0, 10)

模拟过程中调整相对旋转

若要在模拟过程中调整传感器的相对旋转,请使能旋转的输入端口输入参数旁边的相对旋转[横摇、俯仰、偏航](度)参数。当您启用旋转港口,相对旋转[横摇、俯仰、偏航](度)参数指定传感器的初始相对旋转旋转Port表示模拟过程中传感器的相对旋转。有关此传感器的相对平移和旋转的详细信息,请参见传感器位置变换

依赖关系

若要启用该参数,请选中指定偏移量

块的采样时间,以秒为单位,指定为正标量。三维仿真环境的帧速率是采样时间的倒数。

如果将采样时间设置为-1时,块继承其采样时间模拟三维场景配置块。

参数

这些相机的固有参数等价于一个属性cameraIntrinsics对象。若要获得相机的内在参数,请使用相机校准器应用程序。

摄像机标定过程请参见使用单相机校准器应用程序而且什么是相机校准?

指定相机的焦距为形式为[的1 × 2正整数向量外汇财政年度].单位是像素。

外汇=F×sx

财政年度=F×sy

地点:

  • F以世界单位为单位的焦距,通常为毫米。

  • (sxsy中每个世界单位的像素数x而且y方向,分别。

该参数等价于FocalLength的属性cameraIntrinsics对象。

将相机的光学中心指定为形式为[的1 × 2正整数向量[残雪cy].单位是像素。

该参数等价于PrincipalPoint的属性cameraIntrinsics对象。

将相机生成的图像大小指定为形式为[的1 × 2正整数向量mrowsncols].单位是像素。

该参数等价于图象尺寸的属性cameraIntrinsics对象。

将径向失真系数指定为实值2元、3元或6元矢量。径向畸变是图像点沿从主点延伸的径向线的位移。

  • 当图像点远离主点(正径向位移)时,图像放大率降低,图像上出现针垫形失真。

  • 随着图像点向主点移动(负径向位移),图像放大倍率增大,图像出现桶形畸变。

三个网格:一个有针垫畸变(径向位移为正),一个没有畸变,一个桶形畸变(径向位移为负)

相机传感器计算(xdyd)利用二系数、三系数或六系数公式计算点的径向畸变位置。该表显示了各种公式,其中:

  • xy) =未扭曲的像素位置

  • k1k2k3.k4k5k6=透镜的径向畸变系数

  • r2=x2+y2

系数 公式 描述
(k1, k2)

xd=x(1 +k1r2+k2r4

yd=y(1 +k1r2+k2r4

该模型等价于所使用的双系数模型RadialDistortion的属性cameraIntrinsics对象。
[k1, k2, k3]

xd=x(1 +k1r2+k2r4+k3.r6

yd=y(1 +k1r2+k2r4+k3.r6

该模型等价于三系数模型RadialDistortion的属性cameraIntrinsics对象。
[k1, k2, k3, k4, k5, k6] x d = x × 1 + k 1 r 2 + k 2 r 4 + k 3. r 6 1 + k 4 r 2 + k 5 r 4 + k 6 r 6 y d = y × 1 + k 1 r 2 + k 2 r 4 + k 3. r 6 1 + k 4 r 2 + k 5 r 4 + k 6 r 6

六系数模型基于OpenCV径向畸变模型。

请注意

相机校准器App不支持此模式。要使用此型号校准相机,请参见摄像机标定和三维重建在OpenCV文档中。

指定切向失真系数为实值2元向量。当镜头与像面不平行时,就会发生切向畸变。

零切向失真与切向失真的比较。

相机传感器计算出一个点的切向扭曲位置,(xdyd),使用以下公式:

xd=x+ (2p1xy+p2×(r2+ 2x2)]

yd=y+ (p1×(r2+ 2y2) + 2p2xy

地点:

  • xy=未扭曲的像素位置

  • p1p2=镜头的切向畸变系数

  • r2=x2+y2

未扭曲的像素位置出现在归一化图像坐标,原点在光学中心。坐标以世界单位表示。

该参数等价于TangentialDistortion的属性cameraIntrinsics对象。

指定相机轴的倾斜角度为非负实值标量。如果X设在和Y-轴完全垂直,那么倾斜度一定是0。单位是无量纲的。

该参数等价于的属性cameraIntrinsics对象。

地面实况

的位置输出深度图深度端口。

选择此参数可输出标签id的语义分割映射标签端口。

选择此参数可输出传感器的位置和方向位置而且取向端口,分别。

提示

算法

全部展开

参考文献

[1]布盖,j.y。相机校准工具箱的Matlab。http://www.vision.caltech.edu/bouguetj/calib_doc

[2]张,Z。一种灵活的相机定标新技术模式分析与机器智能汇刊。卷22,第11期,2000,第1330-1334页。

[3]海克拉,J.和O.西尔文。带有隐式图像校正的四步相机校准程序IEEE计算机视觉与模式识别国际会议。1997.

版本历史

R2019b引入

Baidu
map