nuScenes 纯视觉新SOTA!SOLOFusion:时序立体3D检测的新观点和基线

后台回复【多传感器融合综述】获取图像/激光雷达/毫米波雷达融合综述等干货资料!

1摘要

虽然最近基于纯视觉的3D检测方法利用了时序信息,但它们使用的有限历史信息限制了时序融合性能提升的上限。论文观察到现有多帧图像融合的本质是时序立体匹配,且目前算法的性能受到以下因素影响:1)匹配分辨率的低粒度;2)有限历史信息的使用产生的次优多目设置。论文的理论和实验分析表明,不同像素和深度的视图之间的最优时间有显著差异,因此有必要融合长期历史上的多个时间戳信息。基于此,论文建议从长期的图像观察中生成cost volume,用更优的多目匹配补偿粗糙但有效的匹配分辨率。此外,论文增加了用于长期粗匹配和短期细粒度匹配的逐帧单目深度预测,并发现长短期时间融合具有高度互补性。论文提出的算法名为SOLOFusion,在保持高效的同时,在nuScenes测试集上取得新SOTA!

代码链接:https://github.com/Divadi/SOLOFusion

ec7d8b07278b9c88f5b359bb523645e0.png

上图中的 Localization Potential 是作者定义的一个值,当这个值大的时候,变化相同的深度,采样点在两张图像中的成像位置差别越大,因此深度越容易被感知到。比如图中右上角3D世界中的两个红色圆点,在 和 两帧图像中的投影长度是不一样的,这表示在 Ref. view 下,采样点深度变化相同的长度时,在 这一帧中是更容易被网络感知到的

stereo temporal 3D detection方法下,作者发现目前方法性能(上图中的 Localization Potential )主要受限于:

  1. 匹配分辨率的低粒度

  2. 使用的历史帧数量十分有限以至于匹配过程总是次优的

为了分析图像分辨率和 Timesteps 这两个因素如何影响检测性能,作者将3D检测形式化,用candidate匹配中的localization potential来描述模型在相邻帧中感知深度的能力,

并且自然而然提出了一个结合short-term和long-term history的算法(SOLOFusion),在图像分辨率和融合时序帧之间做了一个平衡,在不增加内存和时间消耗的情况下大大提升了算法在nuScenes数据集上的性能

2用于纯视觉3D检测的统一时序立体形式

作者在这一节给出了camera only的基于时序立体匹配的一个通用的形式化定义,作者认为目前的基于时序帧的方法可以归纳为以下通用的组成部分:

  1. Candidate Locations:指在3D空间中的需要匹配的点的位置

  2. Sampling Operation :如何在已有的2D图像特征中采样对应Candidate Locations所对应的图像中的区域

  3. Sampling Resolution :用于采样的2D图像特征的分辨率

  4. Temporal Aggregation:用于融合不同帧的特征的方法

  5. Timesteps Used:相邻帧之间的间隔

  6. Candidate Location Processing:用于处理融合多帧之后的特征的模块,并且这个模块需要给出2D特征到3D世界的映射

  7. Task/Supervision:用于监督的任务和对应的loss

根据以上的定义,作者用一个表格来对比了目前多目立体匹配的方法以及LSS-based(例如Bevdepth),Query-Based(例如BevFormer)的方法之间的异同,并将stereo temporal的3D检测方法与多目立体匹配联系在了一起

9007d418f00a1d49b59ea208751bdc74.png

从形式上面看,多目立体匹配和temporal 3D检测都需要融合不同时刻的多帧信息,多目立体匹配MVS和temporal 3D检测都是估计在3D世界中的某个位置是否被某个物体占据,只不过MVS只需要知道这个位置有没有物体,而3D检测需要知道在这个位置是哪个特定的物体

举个例子,对于Candidate Locations,MVSNet是在3D空间中用平面扫描的方法来采样,沿着参考图像相机法线的方向对3D空间均匀的切片;LSS-based的方法是在整个3D空间或者Bev视角下用网格生成密集的candidate位置;而Query-Based的方法生成的是稀疏的candidate,不过要另外用L1 Loss去回归一个距离中心点的offset

表一中,作者发现当前的3D检测算法在选择的帧数和时间间隔都不是很大(Prev Time 列),并且从Sampling Res 来看,MVSNet是在分辨率上采样图像特征,而大部分检测方法中使用的是更小的,而BEVStereo,虽然也使用了MVS模块,并且也沿用了MVSNet用的分辨率,但是它使用的是short temporal history,作者在后续中分析了这种short-term信息实际上是会限制网络性能的。

3理论分析

这一节作者主要从理论上分析了 temporal differencesimage resolution是如何影响性能的(以two-view 为例)

0a9bcc7ba0faf12cbfbfd4daa2f86e68.png

上图是两个相机坐标系的示意图,橙色是参考相机坐标系(Ref.),蓝色是源图像(Src.)坐标系,两个坐标系之间的夹角是,两个坐标系之间的平移分别是和;图中橙色原点是参考相机坐标系原点,蓝色原点是源相机坐标原点。三个红色的点分别表示采样点在三维世界中真实的坐标,以及在两个相机平面的成像点(参考对极几何的原理)

首先作者给出了一个变换公式,在已知相机A和B的内参矩阵以及相机A(Ref.)到B(Src.)的变换,以及Ref. view中对应像素点的深度值之后,我们可以得到这个点在Src. view下的图像平面的位置,由一个单应性变换给出:

在已知相机A和相机B的内参和外参矩阵,以及采样点在相机A坐标系下的深度时,单应性变换通过投影和逆投影,将平面A上的像素点变换到相机B的坐标系下,找到相机A中像素点在相机B图像中对应的位置

2e740a712e6e19de9b952dc6715eebf0.png

其中,,, 是相机A的光心,对应图中的橙色圆点,之所以求这个变换是为了下一步求导:

27a848c8b61b3141b6eb34b1f022cf4f.png

对求导,这个导数的值越大,表示深度变化一个单位,表现在图像上的距离变化越大,比如变化会越大(同理)当这个导数值越大的时候,事实上深度值的变化是更容易被感知到的,从公式(3)中我们可以看到,这个值是和图上的 还有 相关的(表示坐标系之间的平移矩阵,因此只要能保证物体能在图像中成像,当这个距离越长的时候,导数是越大的)

根据上述公式,我们可以定义一个最优的localization potential,即让上述导数取最大值即可,根据上述分析,作者统计了像素点在不同深度假设下最优localization potential所需要的时间长度:

6c1990a349ca828bbed50aba48141680.png

在图4中,纵轴是深度采样,值越小,深度越小,填充的颜色越深代表最优时间步长越短,从图上我们可以看出,深度越小的地方,最优时间步长越小,此外,我们还能看出,在同一个Ref. view下面,对于不同的像素点,最优时间步长很不一样,因此作者认为,增加融合的帧数以及在一个长的时间内去感知可以得到更好的结果

那么图像分辨率是如何影响localization potential的呢?

公式(3)中的是内参矩阵中的焦距,当图像被下采样的时候,焦距也要乘以一个相同的下采样系数,所以当采样分辨率越小的时候,相应的localization potential也会变小,但是作者发现,下采样带来的性能损失,可以被融合更多的序列帧来解决

4方法

0794cf8a87666737979bc26b43ecf6cf.png

根据上面的分析,作者提出了SOLOFusion框架,包括两部分:

  1. 基于LSS-based 框架使用低分辨率图像特征以及Long term history

  2. MVS-based框架,用高分辨率图像来估计short term的深度

对于低分辨率Long term history,作者将历史帧中的特征变换到当前帧中,直接concat到一起,作者表明使用这样的方式以及高于了当前的很多算法

对于高分辨率short term特征,作者使用了两个连续帧来进行立体匹配,得到深度的信息,但是如果对整个深度区域进行采样的话,这样高分辨率的立体匹配其实对计算和存储的消耗都非常大,因此作者利用了单目的信息来减小立体匹配中的计算消耗。用Gaussian-Spaced Top-k sampling 在单目估计出来的深度附近采样K个点,然后再对这K个点做立体匹配,得到 plane sweeping cost volume,最后估计出一个深度图,来补充Long term 低分辨率所丢失的信息,作者表明,在不使用这种特殊采样方法的情况下,SOLOFusion在GPU以及运行时间上有显著的增加

那么作者是如何采样的呢?

作者从强化学习中得到了平衡 “exploration”和“exploitation”的灵感,先用单目估计的深度作为先验,既要利用单目的先验信息,也要充分探索其他候选位置的深度,因此作者提出了一种Gaussian-Spaced Top-k sampling 采样策略,对于高概率的地方,用概率来进行反向加权(down-weight)

184870229ddf26b7f279c0a35170f716.png

是第 次迭代之后的概率分布,表示在深度 处的概率质量函数(Probability Mass Function,可以理解为离散概率分布中的概率密度函数,表示离散概率的差分值,这个值越大,概率变化越陡峭),这个公式可以理解为,概率密度越大的地方权重越小,通过这样的加权方式作为“exploration”,探索其他候选位置的深度。

迭代几次之后,深度的采样点如下图所示:

523c741a020b939d96b27d789487e88d.png

5实验

  • 在nuScenes验证集和测试集上的结果:

d5841684448075a20ea6d7199cf64a8e.png 60a96a6d2e32fa9eb3cdd989b2c28e94.png

SOLOFusion目前在nuScenes数据集上camera-only 3D detection中位列第一

  • 消融实验一:对于低分辨率long-term,融合更多时间帧性能更好:

b9e2772d3e8c1b5f9ff0d6b6444f1785.png

作者以BEVDepth为baseline模型,在这个基础上不断增加参与融合的时序帧的数量,当timesteps小于16时,每次增加时序帧性能都会有显著的提升,但是当融合的timesteps超过16时,对性能的提升就很小了,对比timesteps取16和取41,性能几乎没有提升,作者认为这是因为在超过16帧之后可见区域几乎没有重叠。

  • 消融实验二:对于高分辨率,short-term中立体匹配使用平面扫描算法时深度平面的采样数量:

a324fd30a492ae833c891fe3f410f407.png

当均匀采样112个深度的时候,cost volume的大小是,作者表示在这样的分辨率下面,显存和运行时间会显著增加,因此没有办法训练模型,当在整个深度范围内均匀采样的数量越小,性能越差,但是使用作者提出的Gaussian-Spaced Top-k sampling 方法,可以在采样7个深度的情况下达到均匀采样28个深度所能达到的性能

  • 消融实验三:High-Res, Short-Term 以及Low-Res, Long-Term 的有效性:

da29b25afba61cf5ce4bdae117dc231d.png

baseline 模型是BEVDepth,在BEVDepth的基础上叠加High-Res, Short-Term 或者Low-Res, Long-Term 模块。

从(a)到(b),在baseline的基础上叠加了High-Res, Short-Term模块,在不增加内存的情况下性能已经有所提升;从(a)到(c),Low-Res, Long-Term 模块对FPS的影响更小,但是这个模块被证明是对性能提升更大的;作者在这一部分还提到,High-Res, Short-Term模块对性能的提升在左右,而Low-Res, Long-Term 模块对性能提升在左右,叠加这两个模块得到的改进是左右(实验d),这说明这两个模块不仅都被证实是有用的,而且在功能上是高度互补的

  • 实验四:时序融合和图像分辨率之间的平衡:

901789744ec6602222d0ec4eb9992c32.png

由于融合了长短时信息,SOLOFusion即使在较低的分辨率下(,BEVDepth的一半)也能达到高于BEVDepth的性能,这个实验也验证了SOLOFusion的一个重要性质,即通过减小图像分辨率的同时(减小了分辨率之后计算量会大大减小)融合时空序列信息(在本文中对算法的延迟很小),低分辨率的SOLOFusion可以以大约5倍的FPS和一半的内存成本实现了与高分辨率BEVDepth相似的性能。

  • 实验五:运行时间:

a8efe4d36a622671ce98de9a7fad12c7.png

对比了两个当前的short-term stereo算法(BevStereo和STS),在这里作者为了公平比较只使用了short-term high resolution 部分的算法,SOLOFusion在准确率和效率上都超过了BEVStereo,尽管mAP略低于STS,但是运行时间和显存占用都更少

6参考文献

[1] Time Will Tell: New Outlooks and A Baseline for Temporal Multi-View 3D Object Detection

往期回顾

史上最全综述 | 3D目标检测算法汇总!(单目/双目/LiDAR/多模态/时序/半弱自监督)

自动驾驶之心】全栈技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、规划控制、模型部署落地、自动驾驶仿真测试、硬件配置、AI求职交流等方向;

加入我们:自动驾驶之心技术交流群汇总!

自动驾驶之心【知识星球】

想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球(三天内无条件退款),日常分享论文+代码,这里汇聚行业和学术界大佬,前沿技术方向尽在掌握中,期待交流!​​​​​​​

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值