传感器仿真

1. 摄像头

摄像头仿真通过构建真实世界的虚拟三维模型,并根据物体的真实材质与纹理,对三维模型添加颜色与光学属性等。采用基于物理的渲染和基于物理的光照,保证光线能量守恒。

摄像头仿真的基本参数包括摄像头的外参、内参和畸变参数。这些参数会在内部转换为投影矩阵,保证 世界坐标系 -> 相机坐标系 -> 图像坐标系 -> 像素坐标系 整个过程的正确转换,并输出与真实相机效果一致的图像。 具体参数支持如下:

  1. 支持设置摄像头安装位置、角度外参仿真。

  2. 支持频率、分辨率、视野范围、焦距、焦距 Fx, 焦距 Fy 等内参仿真。

  3. 支持白平衡、色彩还原、动态范围、信噪比、清晰度、伽马等物理参数仿真。

  4. 支持摄像头缺陷参数仿真,包括炫光、泛光、晕影、色像差、运动模糊、畸变、噪点等。

摄像头仿真基于 SimOne 高质量多样化的仿真场景。

摄像头仿真需要模拟各种复杂的真实天气情况。天气调节一般需要支持时间、光照、太阳高度角、云、雨、雪、雾等各种自定义设置,从而可以支持各种天气和光线条件下的摄像头仿真。

下面四幅图分别为 早上、中午、下午、夜晚 渲染效果。

下面六幅图分别为 晴天、阴天、雨天、雪天、雾天、沙尘天 六种天气的渲染效果。

摄像头仿真每一帧的原始数据包括 RGB 图、场景深度图、2D/3D 包围盒、语义分割图、实例分割图 等仿真数据。

支持对摄像头识别算法作 SIL HIL 测试和评价。

传感器仿真结构化真值数据输出包括 主车的位置、朝向、速度、加速度 角速度 ,以及 所有目标障碍物的相对位置、朝向、大小、相对速度及 2D 包围盒 等信息。

下图分别为 障碍物 2D 包围盒图,深度图,语义分割图,实例分割图

摄像头传感器参数

ID

术语

定义

1

摄像头仿真

我们需要模仿真实硬件camera,使我们提供的虚拟场景的渲染结果(图片)与自动驾驶系统从摄像机硬件获取的结果(图片)近似,就是模拟真实相机

2

摄像头位置X,Y,Z

表示传感器在坐标系中放置的位置,单位为mm

3

摄像头放置角度信息

表示摄像头在坐标系中的朝向,分别为翻滚角(deg)、俯仰角(deg)、偏航角(deg),Roll, Pitch, Yaw对应的坐标轴为Roll对应X,Pitch对应Y, Yaw对应Z

4

摄像头分辨率信息

摄像头水平方向上的分辨率(pixel)、摄像头垂直方向上的分辨率(pixel)

5

摄像机内部参数

焦距(mm):镜头焦距设置;

5.1

曝光补偿:对摄像头仿真结果进行曝光补偿,调亮或调暗场景;

5.2

色温:色温地为偏蓝色,色温高为偏黄色;

5.3

色调:色调低为偏绿色,色调高为偏洋红色;

5.4

饱和度:图像色彩的饱和度;

5.5

对比度:图像亮暗的对比度;

5.6

伽马:图像伽马校正值,一般为2.2;

5.7

锐化:图像边缘的清晰度;

5.8

炫光:镜头面向光源时的物理现象;

5.9

泛光:镜头中明亮物体周边的泛白现象;

5.10

晕影:由于镜头折射导致图像四周暗中间亮的物理现象;

5.11

色相差: 不同波长的光线通过镜头时折射不同造成的一种物理现象;

5.12

噪点:图像噪声的大小

6

摄像头畸变参数

camera 因为本身硬件和制造工艺的缺陷会有三种畸变:径向畸变 、切向畸变 、 还有薄棱镜畸变可忽略。畸变是有五个参数 Distortion coefficients=(k1,k2,p1,p2,k3) 决定的

7

摄像头仿真输出

包括输出的通道,分为HDMI、网络和Dump。HDMI - 包括摄像头输出到第几通道、屏幕检测a; 网络 - 网络的订阅通道; Dump - 输出RGB图、语义分割图、深度图、实例分割图、真值、Dump(Dump频率、Dump开始时间、Dump结束时间)和默认的保存地址

摄像头Dump参数解释

ID

术语

定义

1

Vehicle Rect Threshhold

车辆目标遮挡阈值(识别框)

2

Vehicle Pix Threshhold

车辆目标遮挡阈值(像素)

3

Pedestrian Rect Threshhold

行人目标遮挡阈值(识别框)

4

Pedestrian Pix Threshhold

行人目标遮挡阈值(像素)

5

Bike Rect Threshhold

自行车目标遮挡阈值(识别框)

6

Bike Pix Threshhold

自行车目标遮挡阈值(像素)

7

Other Rect Threshhold

其他目标遮挡阈值(识别框)

8

Other Pix Threshhold

其他目标遮挡阈值(像素)

重要

以车辆目标为例,如车辆目标遮挡阈值(识别框)填写0.45,而车辆目标遮挡阈值(像素)填写0.30,则在一车辆目标在画面中的识别框被遮挡到不足45%或像素被遮挡到不足30%时,会将该目标记录为被遮挡状态,dump下来的colorbox图片中识别框会标为红色而非绿色。

2. 激光雷达

激光雷达仿真的思路是 根据真实激光雷达 的扫描方式, 模拟每一条真实雷达射线的发射,与场景中所有物体求交 。根据相交点的 物理材质类型 属性计算 出该点的 激光反射强度和噪声

以某 64 线、水平分辨率为 0.4、最大探测距离为 120 米的 机械旋转式激光雷达 为例,该雷达每一帧会发射出 57600 条射线与场景中所有物体求交,对于 10HZ 的雷达来说,每秒需要发射 576000 条射线,如果求得的交点位于最大探测距离内,则为 有效点

对于 有效点,同时返回该点的位置和材质类型,并计算该点与雷达的距离以及此时雷达射线的入射角,然后使用当前材质的激光雷达强度和噪声模型,计算出带噪声的点云信息,以及对应的强度值

鉴于每秒需要扫描的雷达射线次数过多(50w+),且求交算法计算复杂度高,一般仿真时会利用 CPU 并行**或 **GPU 并行计算 的方式来提高扫描效率,以达到实时仿真的效果,仿真结果点云实时输出给感知系统。

激光雷达反射强度跟不同物理材质对激光雷达所使用的近红外光线反射率有关。反射强度受到障碍物距离、激光反射角度以及障碍物本身的物理材质影响。仿真时需要给场景资源设置合适的物理材质,包括各种道路、人行道、车道线、交通牌、交通灯、汽车、行人等。每一种物理材质的激光反射率都不相同。激光雷达反射强度模型 可以从真实雷达扫描数据中提取 ,用来驱动仿真模型。对于激光雷达反射强度仿真结果,参照真实激光雷达的做法,将最终反射强度归一化到 0~255

激光雷达仿真一般需要支持以下参数配置:

  1. 安装位置和角度 :包括 X, Y, Z, Roll, Pitch, Yaw。

  2. 工作频率 :一般为 10Hz~20HZ。

  3. 最大探测距离 :比如 120m。

  4. 线数和水平分辨率 :当修改线数或水平分辨率后,扫描总点数会相应增加。

  5. 垂直视场角设置 :比如 -25°~ 15°。

  6. 水平视场角 :当为 360°时为机械扫描激光雷达。当 < 180°时,为固态激光雷达。

  7. 噪声设置 :支持设置点云和反射强度噪声。

  8. 支持 905nm 激光雷达在不同光照和不同天气(雨、雪、雾)影响下的激光雷达模型。

目前激光雷达仿真还支持用户自定义模型,通过在下图所示选框内填写对应的模型名称,可实现相应激光雷达模型的仿真。目前已支持 “LivoxHorizon” “LivoxMid70” 两款固态激光雷达模型。

激光雷达的仿真结果点云 一般位于激光雷达本地坐标系 下。

转换到世界坐标系的方式 为,先根据激光雷达安装位置和角度转换到主车坐标系,然后再根据主车仿真 GPS 信息转换到世界坐标系。

激光雷达仿真数据提供 带强度和噪声的点云原始数据,语义分割点云和识别物的 3D 包围盒

下图为 SimOne 中的激光雷达仿真效果展示(包括用于对比的摄像头仿真数据)。

下图为激光雷达在ROS系统中的展示,分别为点云 3D 包围盒和语义分割数据。

激光雷达参数

ID

术语

定义

1

激光雷达仿真输出

包括输出的通道,分别为网络和Dump ;网络 - 网络的订阅通道;Dump –实例分隔、点云颜色和输出真值(剔除遮挡面积比例);Dump频率、Dump开始时间、Dump结束时间和默认的保存地址

3. 毫米波雷达

毫米波雷达仿真会 根据配置的视场角和分辨率信息 ,向不同方向 发射一系列虚拟连续调频毫米波 ,并接收目标的反射信号。不同车辆的 雷达回波强度 使用微表面模型能量辐射计算 方式,由 车辆三维模型 以及 车辆朝向、材质 等计算。同一个障碍物会被多个调频连续波探测到。对于毫米波雷达目标级仿真,则可以根据障碍物的 径向距离、距离分辨率和角度分辨率 等信息对同一个障碍物的点进行聚类并返回最终仿真结果。

SimOne毫米波雷达仿真 模拟毫米波雷达 的原理,同时 构建和孪生道路环境,模拟电磁波在孪生道路环境的传播 ,最终道路以及周边环境会把雷达发射出来的电磁波反射回雷达信号处理模块,雷达数字信号处理模块根据回波信号,进行 频域和时域的分析 ,最终识别出目标障碍物。

具体架构如下:

电磁波射线追踪原理: 通过几何光学方法,模拟电磁波的传播过程,其中包括电磁波的镜面反射,散射,绕射,其中每条射线都包含能量,频率和相位信息,从而得出雷达的回波信号。

具体效果请参考下图:

数字信号处理模块原理: 数字信号处理模块和真实雷达数字信号处理模块一样,对差频信号进行频域分析,通过距离和速度两维FFT后,并进行CFAR,最终选择目标障碍物,对目标障碍物进一步做MTD分析,最终确认移动障碍物轨迹。

SimOne毫米波雷达仿真支持更改毫米波雷达 安装位置,角度,探测距离,探测角度,角度和距离分辨率、噪声参数等 。并且支持长距和中距波束探测功能。返回结果包括识别目标物的相对距离、相对速度、角度和RCS等

毫米波雷达参数

ID

术语

定义

1

毫米波雷达视角

垂直FOV(deg)、长距雷达横向FOV(deg)、中距雷达横向FOV(deg)

2

毫米波雷达探测距离

最小探测速度(m/s) 、最大探测速度(m/s)

3

毫米波雷达探测角度分辨率

纵向角度分辨率(deg)、长距雷达横向角度分辨率(deg)、中距雷达横向角度分辨率(deg)

4

毫米波雷达距离分辨率

长距雷达距离分辨率(m) 、中距雷达距离分辨率(m)

4. GPS/IMU

GPS 仿真支持 更改 GPS 位置以及 GPS 噪声模型参数 。可以返回主车的经纬度、速度、航向等。

IMU 仿真支持对 主车的加速度和角速度进行仿真 。支持模拟 GPS 信号丢失时主车的位置,速度、和航向的累积误差。

GPS/IMU传感器参数

ID

术语

定义

1

IMU频率

IMU更新频率,跟渲染帧率有关(Hz)

2

GPS频率

GPS更新频率, IMU会根据此频率来修正噪声

3

GPS噪声

水平位置噪声(m)、垂直位置噪声(m)、速度噪声(m/s)、角度噪声(deg)

5. 超声波雷达

超声波雷达被广泛运用于自动泊车中,超声波雷达仿真支持 同时仿真任意多个超声波雷达 ,支持更改超声波雷达安装位置,角度,并且实时返回障碍物的距离。

6. 超声波传感器参数

ID

术语

定义

1

超声波雷达探测范围

超声波雷达探测的横向和纵向的角度(deg)

6. 物理级传感器渲染配置

上述摄像头与激光雷达的物理级数据(图像,点云)仿真对渲染能力有较高要求,因此在同时仿真多个物理级传感器时,需要配置与其数量相同的物理级传感器节点,如下图:

在配置各个物理级传感器时,也要将其配置到不同的物理级传感器节点,如下图:

小技巧

如当前agent所含有的物理级传感器节点数量少于主车配置的物理级传感器,则使用该主车运行案例时会有无法成功启动的风险。

通过点击物理级传感器节点右侧下拉菜单中的“编辑”按钮,可对物理级传感器的可视化窗口启动参数进行配置,其默认形式为:

“-Windowed -resX=640 -resY=480 WinX=1280 WinY=540 -GraphicsAdapter=0 -tbbmalloc”

其中,

  • Windowed fullscreen 代表对应传感器的可视化窗口是窗口化显示或全屏显示。

  • resX resY 确定窗口占据的分辨率大小。

  • winX winY 表示可视化窗口在显示器上的起始坐标(当有多个显示器或视频输出设备时,可通过修改这两个参数实现将可视化窗口显示在不同屏幕上的需求)。

  • GraphicsAdapter 用于绑定当前节点至特定的显卡,用于多显卡仿真多路物理传感器的需求中。

7. 目标级传感器

7.1 目标级仿真启动的方法

  1. 主车配置

在 SimOne 网页主页下按如下图箭头所示步骤配置自己所需要的目标级激光雷达(或目标级摄像头),并命名为自己需要的激光雷达名称,这里以 objectLidar 为例。

  1. 案例配置

用户可以根据自己的需求来配置不同的场景。但是主车必须是自己刚刚创建的主车,如下图所示。

同时为了保证案例正常通过,须按下图方式将 超时 碰撞 关掉 启用 ,如图所示,然后点击 保存 即可保存自己的配置。

  1. 启动案例

  • 配置好案例后,用户点击 运行案例 ,此时会弹出如下图所示界面,在图中箭头处选择自己先前创建的主车并点击 创建 即可启动案例。

7.2 Lidar目标级仿真功能说明

Lidar目标级仿真支持通过感知环境因子和感知误差来调节目标的输出信息。其中感知环境因子由环境参数因子和目标参数因子组成,主要仿真目标所处的环境改变时,目标被感知算法识别的得分。感知误差主要用来调节目标的抖动噪声。

7.2.1 感知环境影响因子

在Lidar目标级仿真中,关注的目标主要分为 六大类:小汽车、卡车、大巴、两轮车、人、交通标志 。其中两轮车包括自行车和电动车,行人包括行人和骑行的人,交通标志包括交通牌、交通灯和路边临时交通设施等。对于每类目标,都有 3种影响因子 用来调节目标识别的置信度,同时设置了置信度阀值,可以用来判定目标是否被识别出来并用来计算漏检率。除此之外,还支持雨雪雾等特殊天气对目标的识别影响的调节。

7.2.1.1 目标参数影响因子

在Lidar目标级仿真中,关注的目标主要分为六大类:小汽车、卡车、大巴、两轮车、人、交通标志。对于每类目标,分别设置了 朝向、遮挡、距离 三种影响因子用来仿真实际目标在这三种环境下的感知得分,同时设置了置信度阀值,可以用来判定目标是否被识别出来。

7.2.1.1.1 朝向影响因子

这里的朝向定义为 激光雷达主车的前进方向 主车与目标径向之间的夹角 ,如下图所示。当目标的朝向发生改变时,此时会影响激光雷达打到物体上点的个数,此时目标被感知算法感知的得分也会相应地发生变化,相对应的仿真输出的目标置信度也跟着变化。

7.2.1.1.2 遮挡影响因子

遮挡定义为采用某种采样算法,激光雷达 实际打到的目标点数 无遮挡时激光雷达打到目标点数的比值 。遮挡越大,打到的点越少,感知算法感知的得分就越小,相应地目标级仿真输出的目标probability就越小。

7.2.1.1.3 距离影响因子

距离定义为 激光雷达中心与目标中心的距离 。随着距离的增大,目标距离雷达越远,由于远处是激光雷达垂直角较大时打到的点,故与近处相比,点之间的距离增大,同一物体打到的点相应地变少。因此随着距离的增大,仿真输出的目标probability逐渐下降。

7.2.1.2 置信度

置信度主要用来调节目标的误检率。

当仿真输出的 probability 小于置信度时,此时目标信息不会输出。

以此相反,如果仿真输出的 probability 大于置信度时,此时目标信息会正常输出。

7.2.1.3 环境影响因子

环境影响因子目前已支持 雨、雪、雾三种环境 。当用户在案例配置中设置好需要的环境后,此时对应的雨、雪、雾环境因子开始起作用。默认值为0.5,随着天气状况越来越复杂(例如雨越下越大),由于此时环境对雷达激光线的吸收和散射作用变大,激光线相比于正常天气时打的点变少,此时仿真输出的目标probability逐渐下降,当probability下降到小于目标的threshold时,此时仿真不会输出目标的信息。

7.2.2 感知误差

感知误差包括目标位置误差、目标速度误差、目标角度误差,主要用来仿真目标在真实环境中的实际抖动。

  • 位置误差 :位置误差主要指的是雷达测量的目标位置与目标实际位置之间的误差。

  • 速度误差 :速度误差主要指根据雷达数据并结合相关算法算出来的速度与目标真实速度之间的误差。

  • 角度误差 :角度误差主要指根据雷达数据并结合相关算法算出来的目标相对于雷达的方向角与真实目标与雷达方向角之间的误差。

7.3 摄像头(Camera)目标级仿真功能说明

与激光雷达目标级仿真相似,摄像头目标级仿真是基于真实目标检测模型的检测结果进行模拟仿真的,其环境感知因子与目标参数因子是通过真实目标检测结果而统计的调节因子。当仿真目标所受影响因子发生变化时,目标被检测的自信度会随之改变。此外感知误差主要调节目标的抖动噪声。目标级摄像头同时支持车道线仿真,支持车道线的抖动和误差设置。与激光雷达相同的影响因子有环境影响因子、遮挡影响因子、感知误差,上面已经进行了详细的描述,这里不在诠释。 下面主要介绍下目标尺寸对得分的影响。

7.3.1 目标尺寸影响因子

该因子反映了真实的目标检测模型中目标尺寸与目标自信度之间的关系,使得当目标尺寸影响因子发生改变时,目标的置信度会随之发生相应的变化。

7.4 融合(Fusion)目标级仿真功能说明

与激光雷达目标级仿真、摄像头目标级仿真相似,融合目标级仿真是基于真实目标检测模型的检测结果进行模拟仿真的,其环境感知因子与目标参数因子是通过真实目标检测结果而统计的调节因子。当仿真目标所受影响因子发生变化时,目标被检测的置信度会随之改变。此外感知误差主要调节目标的抖动噪声。与激光雷达相同的影响因子有环境影响因子、遮挡影响因子、感知误差,上面已经进行了详细的描述,这里不在诠释。 下面主要介绍下目标三维尺寸和目标位置对得分的影响。

7.4.1 目标位置影响因子

该因子反映了真实的目标检测模型中目标位置与目标置信度之间的关系,使得当目标位置影响因子发生改变时,目标的自信度会随之发生相应的变化。

7.4.2 目标三维尺寸影响因子

该因子反映了真实的目标检测模型中目标三维尺寸与目标置信度之间的关系,使得当目标三维尺寸影响因子发生改变时,目标的置信度会随之发生相应的变化。

7.4.3 融合目标级仿真启动的方法

融合目标级传感器的主车配置会与雷达和摄像头目标级传感器有所不同,配置方法如下:

选择主车后,即可配置融合目标级传感器:

  1. 选择传感器资源库。

  2. 目标级传感器 拖入主车。

  3. 添加融合传感器组。

  4. 选择需要进行融合的目标级传感器加入融合组。

  5. 保存配置。

7.5 理想传感器

理想传感器可以返回主车一定范围内探测到的机动车、行人、非机动车、交通牌和交通灯等。支持按一定比例剔除有遮挡的障碍物。返回数据包括障碍物位置、朝向、包围盒、速度、加速度和角速度等。 理想传感器的输出可以通过 SimOne API 获得。返回结果可直接用于决策算法的测试。 理想传感器仿真主要有两大功能:遮挡剔除和感知误差仿真,如下图所示。

相关参数

ID

术语

定义

1

理想传感器遮挡剔除

考虑障碍物遮挡关系,当某障碍物被其他物体遮挡时,过滤掉障碍物

理想传感器启动方法

理想传感器的启动方式与目标级传感器的启动方式类似,只需把主车传感器换成主车理想传感器

用户可以在网页上设置遮挡比例来过滤被遮挡的目标。

遮挡比例的值介于[0,1]之间。

遮挡比例越大,目标过滤得越多,返回的目标就越少。

感知误差的功能和目标级仿真功能一样,用户可以参考这部分的介绍来满足自己的需求。