当前位置: 首页 > 科技观察

视觉自动驾驶最新技术路线解析

时间:2023-03-19 21:40:40 科技观察

背景自动驾驶是从预言阶段到产业化阶段的过渡。具体表现可分为4点。首先,在大数据的背景下,数据集的规模正在迅速扩大,这样在小规模数据集上进行原型开发的细节将在很大程度上被过滤掉,只有能够在大数据集上有效的工作——将留下比例数据。第二个是焦点的切换,从单目到多目,导致复杂性增加。然后是对应用趋向友好的设计,比如将输出空间从图像空间转移到BEV空间。最后是从单纯追求准确率到同时逐步考虑推理速度。同时自动驾驶场景需要快速响应,所以性能需求会考虑速度,更多的考虑如何部署到边缘设备。另一部分背景是,在过去的10年里,视觉感知在深度学习的推动下得到了飞速发展。在分类检测和分割等主流方向已经有很多工作,也有一些相当成熟的范式。在自动驾驶场景的视觉感知发展过程中,特征编码的目标定义、感知范式、监督等方面都大量借鉴了这些主流方向。所以,在致力于自动驾驶感知之前,这些主流方向应该去涉猎一下。在这样的背景下,过去一年涌现出大量针对大规模数据集的3D目标检测工作,如图1所示(红色标注的算法为第一种)。图1近一年3D物体检测的技术路线。提升自动驾驶场景下视觉感知与主流视觉感知的差异主要在于给定的目标定义空间。主流的视觉感知目标是在图像空间中定义的,而在自动驾驶场景中,目标是在3维空间中定义的。在输入全是图像的情况下,需要经过Lift过程得到3D空间的结果,这是自动驾驶视觉感知的核心问题。我们可以将解决Lift对象问题的方法分为输入、中间特征和输出。输入级别的一个示例是透视变化。原理是利用图像推理出深度信息,然后利用深度信息将图像的RGB值投影到三维空间,得到彩色点云,然后进行点云检测的相关工作。目前,feature-leveltransformation或feature-levelLift更有前途。例如,DETR3D在要素级别执行空间更改。特征级变换的优点是可以避免图像级特征的重复提取,计算量小。可以避免输出级别的环视结果融合问题。当然,特征级的转换也有一些典型的问题,比如经常使用一些奇怪的OP,导致部署不友好。目前特征级Lift过程比较鲁棒的主要是基于深度和注意力机制的策略,代表性的有BEVDet和DETR3D。基于深度的策略是通过计算图像每个点的深度来完成一个Lift的过程,然后根据相机的成像模型将特征投影到3维空间中。基于attention机制的策略是预先定义3D空间中的一个物体作为query,通过内外参数作为key和value找到3D空间中点对应的图像特征,然后计算出一个3Dbyattention空间中物体的一个特征。目前所有算法基本上都高度依赖相机模型,无论是基于深度还是注意力机制,都会导致标定敏感,计算过程普遍复杂。而那些丢弃相机模型的算法往往缺乏鲁棒性,所以这方面还没有完全成熟。时序(Temporal)信息可以有效提高目标检测的效果。对于自动驾驶场景,时序具有更深的意义,因为目标的速度是当前场景下的主要感知目标之一。速度的重点是变化。单帧数据没有足够的变化信息,需要建模提供时间维度上的变化信息。现有的点云时序建模方法是将多帧点云混合在一起作为输入,这样可以得到比较密集的点云,使得检测更加准确。此外,多帧点云包含连续信息。后来在网络训练过程中,BP学习如何提取这种连续的信息来解决需要连续信息的速度估计任务。视觉感知的时序建模方法主要来源于BEVDet4D和BEVFormer。BEVDet4D通过简单地融合两帧的一个特征,为后续网络提供连续的信息。另一条路径是基于attention,同时提供单时间帧和逆时针特征作为查询对象,然后利用attention同时查询这两个特征,提取时间序列信息。与雷达感知相比,深度自动驾驶视觉感知的最大劣势之一是深度估计的准确性。论文《probabilistic and geometric depth: detecting objects in perspective》代替GT来研究不同因素对性能得分的影响。分析得出的主要结论是准确的深度估计可以带来显着的性能提升。然而,深度估计是当前视觉感知的主要瓶颈。目前有两个主要的改进思路。一种是在PGD中使用几何约束来细化预测的深度图。另一种是使用激光雷达作为监督来获得更好的具有Lupin属性的深度估计。BEVDepth,目前流程中的优势解决方案,在训练过程中使用激光雷达提供的深度信息来监督变化过程中的深度估计,同时执行感知的主要任务。Multi-modality/Multi-Task多任务是在一个统一的框架上完成多种感知任务。通过这种计算,可以达到节省资源或加速计算推理的目的。然而,目前的方法基本上是在获得统一的特征后,通过对特征进行不同层次的处理来实现多任务处理。任务合并后一般会出现性能下降的问题。多模态在整个判断中找到一个可以直接融合的形式几乎是常事,然后实现一个简单的融合BEVDet系列BEVDetBEVDet网络如图2所示。特征提取过程主要是将提取图像的一个特征进行转换空间转化为BEV空间的一个特征,然后进一步对这个特征进行编码,得到一个可以预测的特征,最后使用密集预测的方法对目标进行预测。图2BEVDet网络结构视角变化模块流程分为两步。首先假设待变换特征的大小为VxCxHxW,然后通过分类预测图像空间中的一个深度,得到每个像素的D维深度分布。然后就可以用这两个特征渲染不同的深度得到一个视觉特征,然后用相机模型投影到3D空间,对3D空间进行体素化,再进行splat处理得到BEV特征。透视变化模块的一个非常重要的特性是它在数据减速中起着孤立的作用。具体来说,相机内参后,可以投影到3D空间中,得到相机坐标系上的一个点。当数据增广作用于图像空间中的点时,为了保持该点在相机坐标系上的坐标不变,需要做一个逆变换,即之前相机坐标系上的一个坐标不变并且在增强之后,具有相互隔离的效果。相互隔离的缺点是图像空间的增广没有对BEV空间的学习进行正则化,优点是可以提高BEV空间学习的鲁棒性。我们可以从实验中得到几个重要的结论。首先,使用BEV空间的编码器后,算法更容易陷入过拟合的情况。另一个结论是,BEV空间的扩充将比图像空间的扩充对性能产生更大的影响。BEV空间中目标的大小和类别的高度之间也存在相关性,目标之间的小重叠长度会导致一些问题。观察到在图像空间设计的非极大值抑制方法并不是最优的。同时加速策略的核心是采用并行计算的方式,将独立的线程分配给不同的小计算任务,以达到并行计算加速的目的。优点是没有额外的内存开销。BEVDet4DBBEVDet4D网络结构如图3所示。网络的主要焦点是如何将反向时间帧的特征应用到当前帧。我们选择输入特征作为保留对象,但不选择图像特征,因为目标的变量定义在BEV空间中,图像特征不适合直接时序建模。同时,没有选择BEVEncoder后面的特征作为连续融合特征,因为我们需要在BEVEncoder中提取一个连续的特征。考虑到视角变化模块输出的特征比较稀疏,在视角变化之后额外连接了一个BEVEncoder提取初步的BEV特征,然后进行时间序列建模。在时序融合中,我们将逆时针帧的特征对齐,简单的与当前针拼接,完成时序的融合。其实我们这里就是把提取时序特征的任务交给后面的。BEV做到了。图3BEVDet4D网络结构如何设计匹配网络结构的目标变量?在此之前,我们首先要了解网络的一些关键特征,首先是特征的感受野,因为网络是通过BP学习的,而特征的感受野是由输出空间决定的。自动驾驶感知算法的输出空间一般定义在自车周围一定范围的空间内,特征图可以看作是连续空间上均匀分布、角对齐的离散采样。由于featuremap的感受野定义在egovehicle周围的一定范围内,因此它会随着egovehicle的运动而变化。因此,在两个不同的时间节点,特征图在世界坐标系上的感受野是不同的。一定的抵消。如果将两个特征直接拼接在一起,静态目标在两个特征图中的位置不同,动态目标在两个特征图中的偏移量等于自测的偏移量加上动态目标在世界坐标系中的偏移量。根据一致模式的原则,由于拼接特征中目标的偏移量与自车相关,所以在设置网络的学习目标时,应该是目标在特征中的位置变化两个特征图。根据下面的公式推导,可以得到一个学习目标与自测运动无关,而只与目标在世界坐标系下的一次运动有关。我们从上面得出的学习目标和目前主流方法的学习目标的区别在于去掉了时间成分,速度等于位移/时间,但是这两个特征没有提供时间相关的线索,所以如果学习这个速度目标,就需要网络准确估计时间成分,这样就增加了学习的难度。在实践中,我们可以将训练过程中两帧的时间设置为一个常数值,通过学习BP可以学习到一个常数时间间隔的网络。在时域的增强中,我们在训练过程中随机使用不同的时间间隔。在不同的时间间隔下,两张图片中目标的偏移量不同,学习到的目标的偏移量也不同。这样就实现了模型对于不同offset的Lupin效果。同时,模型对目标的偏移量有一定的敏感性,即如果间隔太小,则两帧之间的变化太小而无法感知。因此,在测试时选择合适的时间间隔可以有效提高模型的泛化性能。BEVDepth这篇文章使用雷达来获得稳健的深度估计,如图4所示。它使用点云来监督变化模块中的深度分布。这种监督是稀疏的。与目标提供的深度监督相比,这种稀疏是密集的,但它并没有到达每个像素。准确的深度监督也相对稀少。然而,可以提供更多的样本来提高这种深度估计的泛化性能。图4BEV深度网络结构这项工作的另一个方面是将特征和深度分为两个分支进行估计,并在深度估计分支中加入额外的残差网络,以提高深度估计分支的感受野。研究人员认为,相机内部和外部参数的准确性会导致上下文和深度错位。当深度估计网络的感知不够大时,会有一定的精度损失。最后将本相机的内部参数作为深度估计的一个分支输入,并采用类似NSE的方法在通道级别调整输入特征的通道,可以有效提高网络对不同相机的鲁棒性内部参数。.局限性和相关讨论首先,自动驾驶的视觉感知最终是为部署服务的,而部署会涉及到数据和模型的问题。数据的问题涉及到一个多样性和数据标注的问题,因为人工标注是非常昂贵的,所以看以后能不能实现自动标注。目前,动态目标的标注还是前所未有的。对于静态目标,可以通过3D重建获得部分或半自动标记。此外,在模型方面,目前的模型设计对标定不鲁棒或不敏感,因此如何使模型对标定具有鲁棒性或不依赖于标定也是一个值得思考的问题。还有一个问题是网络结构的加速,是否可以用一个通用的OP来实现视角的变化,这个问题会影响到网络加速的过程。