作者 | 黄浴 编辑 | 汽车人
点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
点击进入→自动驾驶之心【多传感器融合】技术交流群
后台回复【相机标定】获取超详细的单目双目相机模型介绍、内外参标定算法原理视频!
摄像头
论文【1】模拟数字摄像机系统的功能。模拟包括从光到数字信号的转换、颜色处理和渲染。一个光谱图像处理算法用于模拟数字摄像机的辐射测量特性。在这个算法中,考虑了光源的光谱图像和透射率、透镜、滤波器以及CMOS图像传感器的量子效率。光学部分的特征在于不同点扩散函数(PSF)光学组件之间的多卷积,如库克三元镜(Cooke triplet)、孔径、光衰减和CMOS传感器的光学部分。电气部分包括Bayern采样、插值、动态范围和模数转换。为减少噪声,混合不同的曝光图像来重建噪声模糊图像。然后,对图像进行滤波、去卷积和锐化,消除噪声和模糊。接下来,进行颜色处理和渲染块的插值、白平衡、颜色校正、从XYZ颜色空间到LAB颜色空间的转换,然后转换到RGB颜色空间、颜色饱和度和对比度。
摄像头方程(camera equation)描述了摄像头的图像捕获过程。在该方程,场景的辐射测量描述转换为传感器表面的辐照度图像,然后,传感器将辐照度图像转换为电子信号。
在摄像头中,光学器件负责场景的照明、捕捉反射光、将光聚焦在传感器上。图像捕获系统由库克三元物镜(objective)和图像传感器组成。从分辨率和光谱角度,可以分析光学部件的功能。通过摄像头方程,从光学角度可以覆盖图像捕获系统的功能。
反射目标的图像光谱辐射度(spectral radiance),计算为目标光谱辐射度与库克三元组点扩散函数(point spread function,PSF)的卷积,给出通过图像采集系统目标图像在照明和传播中颜色变换的信息。点扩散函数从分辨率角度表征光学系统。该函数提供通过库克三元组物镜反射目标在空间传播过程中的图像质量、清晰度和变形的信息。
目标的照明是通过一个光谱图像和一个将波长转换为红、绿和蓝(RGB)颜色空间的算法实现。该转换过程表明照明源的光谱、透镜的光谱响应、Bayern滤波器以及传感器制作材料的半导体量子效率。场景表示为描述场景每个像素光谱辐射的多维像素阵列。
光谱量子效率是一个波长相关函数,描述产生电子的光子预期分数。填充因子是光电探测器所占像素百分比。
光学器件将场景辐射度数据转换为传感器表面的辐照度图像。除了PSF,还可以用调制转移函数(MTF)和光学转移函数(OTF)表征在空间频率上的光学系统。MTF是光路差(OPD)方差的函数。OPD均方根OPD功能函数产生MTF。整个光学部分传感器的PSF通过库克三元组的单响应、低通滤波器(孔径)、光衰减和传感器光学部分等之间的多重卷积获得。
如图是库克三元镜的MTF函数和对数PSF函数例子:左边MTF函数,右边对数PSF函数。
库克三元镜代表最简单的摄影物镜,能够校正五个四阶波前像差(wavefront aberrations),即球面像差、彗差(comatic aberration)、散光(astigmatism)、场曲率和畸变以及横向和横切色差(chromatic aberration)。
库克摄影物镜有一个圆孔径,控制到达图像传感器的光量。通常,孔径光阑(aperture stop)被放置在库克三元物镜中的第二和第三透镜之间。
辐照度定律表明,即使镜头完全没有渐晕(vignette),图像外围区的光线衰减也会随视角的增加而增加。图像的外围区由相对于光轴特定角度进入透镜的一组光线形成。
传感器将辐照度转换为电子信号,然后转换为数字信号。传感器的功能包括Bayer采样、光子噪声、固定模式噪声(FPN)和高斯噪声、高动态图像、去卷积、双边滤波器(bilateral filter)和模数转换等。
暗电流(dark current)是漏电流,它对应于无亮光下的光电流。它随温度波动,并引入不可避免的光子噪声。光子噪声、暗电流噪声和热噪声是信号相关噪声。重置和偏差噪声是与信号无关的噪声。读取噪声包括与信号无关的所有噪声源。噪声影响是加性的。
输入的光通量(photon flux),在辐射度捕获过程中,被光学和电子器件退化。光学器件负责色彩保真度和空间分辨率,电子器件引入时间和空间电噪声。在电气部分的输出端,图像被光学模糊和噪声的组合效应所破坏。为减少模糊,采用库克三元物镜的PSF反卷积和拉普拉斯滤波技术。为减少诸如光子噪声、FPN和高斯噪声等组合效应,六种不同的曝光图像混合在一起。最后,使用双边滤波器抑制剩余噪声。
颜色处理块包括Bayer采样、插值、白平衡、颜色校正和RGB颜色空间到XYZ颜色空间的颜色转换,然后再到LAB颜色空间,从LAB颜色空间到RGB颜色空间的重建、颜色饱和度和对比度。
单传感器摄像头需要使用颜色滤波器阵列(CFA)。Bayern模式是由2×2像素内核构建的周期性阵列,包括RGBG排列。来自这四个RGBG像素的数据组合在最终显示中形成像素。为了避免混叠伪影,光亮必须覆盖2×2像素内核。
如图为Bayern模式的CFA示意图:RGBG安排的2x2 像素核。
一旦采用Bayer CFA进行采样,就需要进行插值恢复原始图像。色差空间方法在绿色-红色和绿色-蓝色色差空间中插值像素,而不是在原始的红色、绿色和蓝色通道上插值。基本假设是,由于颜色通道之间的相关性,取两个通道之间的差异会产生对比度较低的色差通道,不那么清晰的边缘。对比度较低的图像进行去马赛克(demosaic)会产生较少的明显误差,如锐边,这会导致重建图像大部分的插值误差。色差空间方法创建KR(绿色减红色)和KB(绿色减蓝色)差通道,并对它们进行插值。然后,该方法重建红色、绿色和蓝色通道,获得完全去马赛克的图像。
颜色平衡或白平衡,是使图像中的颜色看起来与原始场景中的颜色具有相同外观的调整。这意味着中性色被正确再现。在灰度世界算法中,图像的R、G和B分量的平均值应该平均到一个共同的灰度值。G分量的平均值与其他R、G和B分量的平均值做算术平均,可以在每个颜色分量上分别获得灰度值。
图像渲染引擎,比如现在流行的Unreal Engine或者Unity 3D,实现图像生成(如图展示光线和图像的关系)。一些开源的自动驾驶仿真系统比如Intel Carla(Car Learning to Act)和Microsoft AirSim都采用了开源渲染引擎。
计算机图形学的渲染通常有以下几个阶段:
物体材料,包括漫反射/朗伯(Diffuse/Lambertian)、光泽(Glossy)、理想反射/折射(reflective/refractive)、微面(Microfacet)和各向异性(Anisotropic)等;
几何变换,即3D模型-2D图像的坐标转换过程,包括畸变模型;
光栅化过程,主要是着色,包括光照模型、着色频率和纹理模型;
1) 光照模型有三部分:漫反射(Diffuse)、高光(Specular)、环境光(Ambient);
2) 着色频率有平面着色(Flat Shading)、Gouraud 着色和Phong 着色三种模型;
3) 纹理包括漫反射纹理、环境纹理、凹凸/法线纹理和环境遮挡纹理;
图像渲染流水线,包括光线跟踪(ray tracing)、光线投射(ray casting)、纹理映射(texture mapping)、体素渲染器(voxel shader)和pixel shader/fragment shader(像素渲染器)等方法;
基于物理的渲染(PBR),即辐射度计算模型、双向反射分布函数(BRDF)等。
计算机视觉可以看作是计算机图形学的逆过程,只是它和计算机图形学也可以结合,结果有两个重要输出,一个是增强现实(AR),另一个是基于图像的渲染(IBR)。
2. 激光雷达
论文【2】开发了一个激光雷达传感器模型,该虚拟激光雷达传感器包括扫描模式的精确建模和激光雷达传感器的完整信号处理工具链。通过标准化开放模拟接口(OSI)和功能模型接口(FMI),其开发为一个功能模型单元(FMU)。一个虚拟激光雷达需要考虑真实激光雷达传感器的完整信号处理步骤和缺陷,才能获得接近实际传感器的仿真结果。这里的缺陷是光学损失、固有的检测器效应、电子放大器产生的效应以及太阳光产生的噪声。
有几种渲染技术生成合成传感器的原始数据:光线跟踪、光线投射、光栅化(采用Z-buffer技术)和光线路径。如图给出这个激光雷达模型的工具链和信号处理步骤。传感器模型考虑了Blickfeld Cube的扫描模式和完整的信号处理步骤。模型本身构建为OSMP FMU,并采用CarMaker的虚拟环境。其为光线跟踪框架提供了一个双向反射分布函数(BRDF)考虑入射光线角θ的方向、材料表面和颜色属性。激光雷达FMU模型使用CarMaker的光线追踪模块。CarMaker的材质库中规定了模拟目标的材质特性、角度相关光谱反射率Rλ(θ)和反射类型,包括漫反射、镜面反射、反光和透射。
FMU控制器设置模拟的输入配置,然后调用激光雷达模拟库,并传递光线跟踪数据以供进一步处理。仿真库的中心组件是仿真控制器。下一个模块是链路预算模块,它计算随时间变化的光子。检测器模块的任务是捕获这些光子的到达并将其转换为电流信号。
第三个模块是电路模块,其任务是放大检测器的光电流信号并将其转换为电压信号。最后一部分是测距模块,从模拟电路接收的每个反射扫描点确定目标的距离和强度。最后,效果引擎(FX engine)是一系列与环境或传感器相关的效果和模拟流水线块之间交互的接口。这些交互可以包括,例如,电气部件的热噪声、天气现象引起的信号衰减以及反向散射。
论文【3】讨论如何生成真实感的激光雷达点云。其在城市中驾驶激光雷达采集车,建立一个三维静态地图和三维动态目标的大数据。然后,从数据中选择场景并“虚拟”地将自动驾驶车辆(SDV)和数据中的一组动态目标放置在场景中的合理位置来生成新场景。为了产生真实的模拟,一个新模拟器LiDARSim,兼具基于物理和基于学习的模拟能力。首先用3D场景的光线投射,然后用深度神经网络产生与基于物理模拟的偏差,并产生真实的点云。
如图所示是LiDARSim总览架构图:包括两个阶段,即3-D创建和传感器模拟;在3-D创建阶段,车队在几个城市周围行驶,随时间构建一个三维静态地图和动态模板网格的数据集;在传感器仿真阶段,结合基于物理和基于学习仿真;首先利用3D场景的光线投射获取初始物理渲染,然后深度神经网络通过学习近似更复杂的物理和传感器噪声,学习偏离基于物理的模拟,生成真实的激光雷达点云。
首先利用基于物理的模拟来创建生成点云的几何估计。这里专注于模拟机械扫描式激光雷达,即Velodyne HDL-64E。该系统有64个发射器-探测器对,每对都使用光脉冲来测量距离。基本概念是每个发射器发射一个光脉冲,该光脉冲一直传播到击中目标,一部分光能被反射回来并被检测器接收。计算行驶时间即可测量距离。整个光学组件在基座上旋转,提供大约10 Hz的360度全方位视野,每个完整的“扫描”提供大约110k次返回。
给定所需6自由度姿态和速度,图形学引擎模拟激光雷达传感器。基于传感器的内部参数,一组光线从虚拟激光雷达中心投射到场景中。通过补偿激光雷达扫描过程中自车的相对运动来模拟卷帘(rolling shutter)效应。除此之外,还模拟了激光雷达扫描过程中场景中其他车辆的运动模糊。为了平衡计算成本和真实性,以360个等时间距更新扫描中的目标姿态。用Intel Embree光线投射引擎,计算场景中所有表面(surfel)的光线-三角网格碰撞,并找到被击中的、距离传感器最近的表面。
将此应用于扫描中的所有光线,在构建的场景上获得物理生成点云。应用了一个掩码移除自车返回的光线。
真实的激光雷达通常比光线投射版本生成的激光雷达点少大约10%,有一些车辆的模拟激光雷达点比真实的多。上述基于物理仿真方法的一个假设是,如果投射到虚拟世界的每条光线与物理表面相交,则会返回。然而,如果返回信号的强度(强度值)不足以被接收器检测到,则真实传感器发射的光线可能不会返回(即光线回落)。光线回落(raydrop)是一种复杂的随机现象,受材料反射率、入射角、距离值、光束偏置和其他环境因素的影响。利用真实世界的数据,可以捕捉这些因素的信息,尽管有噪声的干扰。
将激光雷达光线投射定为二进制分类问题,应用神经网络来学习传感器的光线投射特性,利用机器学习来弥补模拟和真实世界激光雷达数据之间的差距。如图总结了光线回落的问题和这个机器学习仿真方法的总体架构。
为了预测激光雷达的光线回落,将3D点云转换为64 x 2048 2D极坐标图像网格,允许编码哪一些光线没有从传感器返回,同时还提供真实扫描和模拟扫描之间的映射。给网络提供一组通道作为输入,信道表示可能影响每条光线不返回机会的可观察因素。该网络架构是标准的8层U-Net,网络输出是每个元素返回或不返回的概率。为了模拟激光雷达噪声,从概率掩码中采样生成输出激光雷达点云。对概率掩码进行采样,而不是直接进行阈值处理,其原因有两个:(1)以交叉熵损失学习光线回落,这意味着估计的概率可能没有得到很好的标定-与阈值处理相比,采样有助于缓解这一问题;(2)真实的激光雷达数据是不确定性的,因为目前的方法可能无法完全模拟额外的噪声(大气透射率、传感器偏差)。
3. 毫米波雷达
近年来,已经开发了许多不同的雷达传感器系统建模方法。生成合成雷达数据有多种不同的方法【4】:
理想的传感器模型只需为传感器检测范围内的目标生成真值(GT)数据,这样为传感器视野(FOV)中的所有目标生成传感器-类型-特定的目标列表信息。
与理想的传感器模型不同,基于物理的传感器模型试图尽可能准确地模拟真实传感器的物理传感过程。这是计算密集任务,需要更多的算力支持,通常以牺牲实时性为代价。除了传感器技术所需的专业知识外,还需要对环境条件(材料特性、天气条件等)进行详细描述,才能准确地模拟传感器的物理特性。来自这些模型的模拟输出数据可以是与真实传感器的模拟数据相当的原始模拟信号。基于物理的仿真方法被分为两类,一类涉及雷达的电子部件建模,包括通过射线追踪(ray tracing)技术建模的传播通道,另一种方法考虑雷达的杂波回波以及噪声。
概率传感器模型可以在复杂性和计算效率之间进行合理权衡。简化的参数集和降低的模型复杂度使仿真测试的速度比实时更快。尽管与真实传感器相比,输出数据不太真实,但在开发过程的大多数阶段都可以使用现象学(phenomenological)模型来测试和验证。
功能传感器模型忽略传感器硬件架构和信号处理过程。这种黑箱模型仅关注被测目标的检测结果。这种类型的传感器模型可以通过组合某些几何特性和选定的物理特性来实现。这样简化提高了传感器仿真的实时性能,而不会完全忽略真实传感器的检测极限和特性。基于功能的建模方法包括两类,即几何模型和对付散射中心的模型。
雷达表现出一些特殊的特征,包括多径反射、干扰、鬼影、模糊、杂波和衰减。这些效应是高频电磁波在复杂场景中传播和相互作用的结果。使用基于物理的模型对这种现象的精确模拟通常需要计算上广泛的光线跟踪计算。这种方法目前还不够快,无法在模拟中实际使用,因为它们需要高度详细的几何结构(即平方毫米精度)才能获得正确的结果,这需要大量的计算能力。
现有的雷达模型通常是黑盒或白盒。黑匣子模型试图以随机方式表示雷达现象。白盒模型使用光线追踪来估计电磁路径传播,通常依赖于给定的目标雷达截面值或提取虚拟散射中心。白盒模型可以利用现代GPU技术实现更快的计算。然而,这种白盒模型需要详细的环境模型捕捉与雷达相关的重要影响,如多径传播和干扰。详细的模型通常不存在,所需的大量计算使得实时模拟不可行。
论文【5】提出一种构建概率随机汽车雷达模型的方法,其基于深度学习和生成对抗网络(GAN),产生的模型体现了基本的雷达效应,同时保持实时计算的速度。采用深度神经网络作为雷达模型,从数据中学习端到端的条件概率分布。网络的输入是空间栅格和目标列表,输出是读取的传感器数据。
如图是在深度学习框架下模拟雷达数据的表示。空间栅格是具有两个主要尺寸,即距离和方位角的的3D张量,第三维度是由不同类型的信息层组成。这个类似于RGB图像,其像素信息存储在空间维度和颜色通道中。那么,这种空间栅格同样适合CNN模型。
目标列表o也表示为3D张量(见下图)。与空间光栅一样,一个预处理头用于在与空间光栅连接之前学习抽象特征。
目标列表的第一个处理层是独立于目标的,并为参数共享而设计。这种独立性是用2D卷积实现的,也减少了参数的数量,提高了鲁棒性。张量具有形状nobjects × 1 × nfeature,其中前两个维度对应于传统张量的长度和宽度,而最后的特征维度对应于通道的数量。一个接一个的卷积应用于张量,在列表中所有目标共享操作。
目标列表表征是通用的,允许包含任意特征,这里包括目标2D姿态{x,y,θ}、速度和目标类上的one-hot类编码。不用目标行时,存在一个额外的类,这种情况在列表容量大于场景中目标时会出现。当一个目标行不用时,除了one-hot类之外的所有类都将为零。目标几何未指定,因为它由目标类给定。
用神经网络表示概率分布有两种主要方法:直接参数化和以噪声产生样本作为辅助输入。这些方法分别称为直接法和采样法,如图所示:(a)直接法,(b)采样法。
这里提供两个直接参数化概率分布的基准雷达模型:正态分布和高斯混合模型。多变量正态分布通常用于机器学习,因为它具有良好的数学性能。不过,正态分布是单峰的。而且正态分布的参数与目标变量的维数呈二次方增长。这里CNN模型的输出是具有两层的张量网格:一个平均值,一个对角对数方差。
一个随机雷达模型的重要挑战是,传感器输出是多模态和空间相关的。回归方法将平滑可能的解决方案,导致模糊的预测。而变分自动编码器(VAE)允许学习一对多概率分布而无需明确输出哪个分布。其条件VAE的模型架构图如图所示。
该模型的架构是一个编码器-解码器网络。编码器获取光栅和目标列表并产生潜特征表示x,解码器采用特征表示和随机生成的噪声值并产生预测的传感器测量值。编码器由两分支组成,即一个空间光栅和一个目标列表,这些分支合并在一起产生潜特征表示。两个分支完全由卷积层组成。输出被扁平化级联在一起,然后用有ReLU的全连接层处理。
解码器使用编码特征和随机噪声生成功率值的雷达极坐标网格。在VAE重参数化时候,随机噪声作为输入。使用ReLU激活的全连接层连接和处理噪声和潜特征,然后重整形和一系列反卷积层处理,产生输出雷达信号。
参考文献
【1】F Toadere,“Simulating the functionality of a digital camera pipeline”, Optical Engineering, 10, 2013
【2】A Haider, M Pigniczki, M H. Kohler, M Fink, M Schardt, Y Cichy, T Zeh, L Haas , T Poguntke, M Jakobi and A W. Koch,“Development of High-Fidelity Automotive LiDAR Sensor Model with Standardized Interfaces”,MDPI Sensors,10,2022
【3】S Manivasagam,S Wang,M Sazanovich,S Tan,B Yang,K Wong,W Zeng,W-C Ma,R Urtasun,“LiDARsim: Realistic LiDAR Simulation by Leveraging the Real World”, arXiv 2006.09348,2020
【4】Z F Magosi, H Li, P Rosenberger, L Wan and A Eichberger,”A Survey on Modelling of Automotive Radar Sensors for Virtual Test and Validation of Automated Driving“,MDPI Sensors,7,2022
【5】T Wheeler et al,“Deep Stochastic Radar Models”,IEEE IV,2017
【自动驾驶之心】全栈技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、规划控制、模型部署落地、自动驾驶仿真测试、硬件配置、AI求职交流等方向;
添加汽车人助理微信邀请入群
备注:学校/公司+方向+昵称
自动驾驶之心【知识星球】
想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球(三天内无条件退款),日常分享论文+代码,这里汇聚行业和学术界大佬,前沿技术方向尽在掌握中,期待交流!