传感器仿真

描述

1. 摄像头

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

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

具体参数支持如下:

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

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

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

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

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

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

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

描述

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

描述

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

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

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

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

描述

摄像头传感器参数

模拟真实硬件摄像头的工作效果,使虚拟场景中生成的图像接近真实摄像机采集结果。

基础信息

序号 参数名称 定义
1 传感器 ID 当前摄像头实例的唯一标识,用于区分多摄像头配置。
2 传感器 ClassID 指定传感器类型为摄像头(camera)。
3 摄像头位置 X,Y,Z 定义传感器在车辆坐标系中的安装位置。
4 摄像头姿态角Roll,Pitch,Yaw 定义摄像头在车体坐标系中的朝向:• Roll:绕 X 轴旋转(翻滚角)• Pitch:绕 Y 轴旋转(俯仰角)• Yaw:绕 Z 轴旋转(偏航角)
5 启用状态 是否启用该摄像头仿真模块。
6 频率 图像输出的帧率(刷新频率)。影响图像更新速度与计算负载。
7 水平分辨率 图像在水平方向的像素数量。
8 垂直分辨率 图像在垂直方向的像素数量。
9 水平 FOV(视场角) 摄像头的水平可视范围角度,影响画面宽度与畸变效果。
10 探测范围 摄像头可识别或输出的最大距离。
11 触发时间 图像采集的触发延迟时间,用于同步多传感器输出。

内参

序号 参数名称 定义
1 焦距 镜头焦距,决定视野范围与成像比例。焦距越大,视野越窄、远处物体更大。
2 曝光补偿 对仿真图像亮度进行调整,正值增加亮度,负值降低亮度。
3 色温 表示图像整体色调的冷暖。数值低偏蓝,数值高偏黄。
4 色调 调整图像整体色彩偏向。低值偏绿色,高值偏洋红色。
5 饱和度 控制图像色彩的鲜艳程度。值越高颜色越鲜艳,越低越灰暗。
6 对比度 控制图像亮部与暗部的反差。较高值使图像层次更明显。
7 清晰度(锐化) 调整图像边缘的锐利程度。适度锐化可增强边缘清晰度,过高可能引入噪点。
8 伽马(亮度) 控制亮度曲线的非线性响应,一般设为 2.2。值越高,整体亮度越低。
9 炫光 镜头直接面对强光源时产生的反射或光斑现象,模拟真实镜头物理光晕。
10 泛光 明亮区域光线外溢的现象,使高亮物体周边泛白、柔和。
11 晕影 图像四周亮度低于中心的光学现象,由镜头结构或遮挡导致。
12 运动模糊 摄像头曝光时物体或自身运动导致的图像模糊。值越大模糊越明显。
13 色像差 不同波长光线折射率差异造成的边缘彩色条纹。
14 噪点 模拟成像传感器产生的随机噪声,数值越大图像越粗糙。
15 摄像头脏迹 模拟摄像头镜面污染或天气影响的视觉效果:• 污渍(轻度/中度/重度)• 结霜(轻度/中度/严重)• 水渍(少量/中度/大量)• 结冰(少量/中度/重度)
16 原始数据像素模式 输出像素排列模式,决定 Bayer 图像的原始格式。支持:RGB、BGGR、RGGB、RCCB、RCCC、GRBG。
17 原始数据类型 指定原始数据输出格式。• 标准输出(Standard)• Raw12 输出(高精度模式)
描述

畸变

摄像头因镜头制造工艺、装配误差或光学结构造成图像几何失真的修正参数。常见畸变包括:

  • 径向畸变:导致直线向中心或外侧弯曲,主要由 K1、K2、K3、K4、K5、K6 决定。

  • 切向畸变:由镜头与图像平面不完全平行导致,主要由 P1、P2 控制。

  • 薄棱镜畸变:一般影响极小,可由 S1、S2 调整或忽略。

序号 参数名称 定义
1 焦距 Fx, Fy 图像平面水平方向与垂直方向的焦距(通常与像素尺寸相关)。
2 光心 Cx, Cy 图像中心点(主点)在像素坐标系中的位置。通常接近图像中心。
3 径向畸变系数 K1, K2, K3, K4, K5, K6 控制图像向内(桶形)或向外(枕形)弯曲程度。数值为负时通常表现为桶形畸变,为正时为枕形畸变。
4 切向畸变系数 P1, P2 控制镜头倾斜造成的非对称畸变(图像某一方向偏移)。
5 薄棱镜畸变系数 S1, S2 模拟光线通过镜头边缘的轻微偏折,一般为 0,可忽略。

鱼眼

序号 参数名称 定义
1 K1, K2, K3, K4 径向畸变系数(Radial Distortion Coefficients)。用于描述鱼眼镜头图像边缘的畸变程度。通常通过相机标定获得。正值表示桶形畸变(边缘向外扩张),负值表示枕形畸变(边缘向内收缩)。
2 投影模型:立体投影 特点:保角性好,失真较自然,适用于全景拼接与渲染。
3 投影模型:等距投影 特点:角度与图像半径线性对应,计算简便,广泛应用于 SLAM 与视觉测量。
4 投影模型:等角投影 特点:保证相同立体角对应相同面积,常用于摄影镜头与 VR 相机,成像真实感强。
5 投影模型:正交投影 特点:图像中心区域变形小,边缘压缩明显,多用于仿真显示或工程场景。

感知误差

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

序号 参数名称 定义
1 目标位置误差 摄像头感知系统测量到的目标位置与目标真实位置之间的差值。该误差通常由图像分辨率、标定精度、目标检测算法误差等因素引起,用于模拟感知系统在实际环境中因抖动、遮挡或识别精度不足造成的位置偏差。
2 目标速度误差 摄像头输出的数据经过算法估算得到的目标速度与真实目标速度之间的差值。该误差可反映速度估计算法的精度,用于仿真传感器采样频率、延迟或噪声导致的速度波动。
3 目标角度误差 摄像头测量数据并结合算法计算得到的目标相对于摄像头的方向角,与真实方向角之间的差值。该误差反映系统在检测目标姿态或角度时的偏差,用于仿真摄像头角度识别不准、标定误差或动态抖动等情况。

摄像头 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 激光雷达在不同光照和不同天气(雨、雪、雾)影响下的激光雷达模型。

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

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

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

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

描述 描述

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

描述 描述

激光雷达参数

ID 术语 定义
1 激光雷达仿真输出 包括输出的通道,分别为网络和 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. 超声波雷达

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

超声波传感器参数

ID 术语 定义
1 超声波雷达探测范围 超声波雷达探测的横向和纵向的角度(deg)

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

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

描述 描述

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

描述

注意

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

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

注意

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

其中,

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

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

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

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

7. 目标级传感器

7.1 目标级仿真启动的方法

  1. 主车配置

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

描述 描述
  1. 用例配置

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

描述

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

描述 描述
  1. 启动用例

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

描述

7.2 Lidar(激光雷达)目标级仿真功能说明

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

7.2.1 感知环境影响因子

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

7.2.1.1 目标参数影响因子

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

  1. 朝向影响因子

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

描述
  1. 遮挡影响因子

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

  1. 距离影响因子

距离定义为激光雷达中心与目标中心的距离。随着距离的增大,目标距离雷达越远,由于远处是激光雷达垂直角较大时打到的点,故与近处相比,点之间的距离增大,同一物体打到的点相应地变少。因此随着距离的增大,仿真输出的目标可能性 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]之间。

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

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