cvpr 2023鍙彉鍗风Н (cvpr3)

来源:计算机视觉工坊

添加微信:dddvision,备注:6D位姿估计,拉你入群。文末附行业细分群

0. 这篇文章干了啥?

今天为大家推荐一篇3DV 2024的工作,解决了通过单一图像相对于3D场景估计6D相机位姿的任务,是基于SLD(同一作者CVPR 2022的工作,训练CNN来检测预选场景地标(三维点)并回归地标的三维方位向量(NBE)的定位框架)的改进。

作者提出了 SLD ∗,与SLD一样在内存和存储上高效,但在性能(准确性)上有明显提升。SLD∗在INDOOR-6数据集上能够与hloc竞争,在定位期间比hloc快40倍以上,并且存储效率更高20倍。此外,SLD∗比SLD更高20-30%的内存效率。

下面一起来阅读一下这项工作~

1. 论文信息

标题:Improved Scene Landmark Detection for Camera Localization

作者:Tien Do, Sudipta N. Sinha

机构:特斯拉、微软

来源:CVPR 2022 & 3DV 2024

原文链接:https://browse.arxiv.org/abs/2401.18083

代码链接:https://github.com/microsoft/SceneLandmarkLocalization

2. 摘要

基于检索、局部特征匹配和基于3D结构的姿态估计的摄像头定位方法精度高,但需要大量存储,速度慢,并且不具备隐私保护。最近提出了一种基于场景地标检测(SLD)的方法来解决这些限制。该方法涉及训练卷积神经网络(CNN)以检测一些预定的、显著的、场景特定的3D点或地标,并从相关的2D-3D对应关系计算摄像头姿态。尽管SLD胜过现有的基于学习的方法,但其精度明显低于基于3D结构的方法。在本文中,我们表明精度差距是由于训练过程中模型容量不足和标签噪声。为了缓解容量问题,我们建议将地标分成子组,并为每个子组训练一个单独的网络。为了生成更好的训练标签,我们建议使用密集重建来估计场景地标的可见性。最后,我们提出了一种紧凑的架构以提高内存效率。就精度而言,我们的方法在INDOOR-6数据集上与最先进的基于结构的方法相当,但运行速度明显更快,并且使用的存储更少。

3. 主要贡献

作者提出了有关降低SLD准确性和可伸缩性的重要见解:

(1)当SLD针对更大的地标集进行训练时,不足的模型容量是性能下降的关键原因。

(2)自动结构运动(SfM)处理阶段,该阶段从训练图像中为地标生成标记的训练补丁,可能产生错误的训练标签。这些异常值有时可能影响在数据上训练的模型的准确性。

为了解决容量问题,作者建议将场景地标集划分为互不相交的子组,并训练一个网络集合,其中每个网络在不同的子组上进行训练。使用集合可以提高对存在更多地标的场景的准确性。为了减少训练集中错误标签的数量,建议使用密集场景重建来恢复训练图像中场景地标的更准确的可见性估计,特别是在强光变化下。展示更好的训练标签导致更准确的地标检测。

4. 具体原理

4.1. SLD回顾

LSD首先从SfM点云中选择一些显著的、场景特定的3D点。然后使用映射图像及其关联的姿态训练了两个CNN(SLD、NBE)。SLD检测图像中可见的地标,NBE则为场景中所有地标回归3D方向向量。最后,使用2D--3D地标约束来恢复相机姿态。

cvpr2023璁茶В,cvpr瑙嗛鏁欑▼

地标选择。 具有有区别外观的3D场景点,与永久场景结构相关联,可以作为良好的场景地标。LSD提出了一种贪婪方法来选择地标,给定SfM相机姿态、3D点和关联的2D图像观察,通过启发式地选择在场景中分布良好的3D点组。

模型。 SLD架构是全卷积的,使用ResNet-18和 EfficientNet 骨干。然后将骨干网络的特征传递到一个扩张卷积层和1×1卷积层,以生成低分辨率的热图。最后使用转置卷积层对热图进行上采样。与SLD相反,NBE网络在ResNet-18骨干之后使用完全连接的层,输出最终的方位预测。

训练。 使用与训练数据中关联的相机姿态导出的地面实况2D地标检测(和3D方向向量)对SLD和NBE架构进行训练。训练SLD还需要关于每个地标在哪些图像中可见的信息。可见性是通过对训练图像中SfM 3D点的2D数据关联进行恢复得到的。然后使用相对于地面实况热图的均方损失对SLD进行训练,而NBE则使用鲁棒的角度损失进行训练。

数据集和指标。 对SLD和NBE进行了INDOOR-6的评估,其图像在多天内拍摄,光照发生变化,并使用COLMAP恢复了伪真值(pGT)相机姿态。

4.2. SLD∗架构

SLD∗是一种更紧凑和内存效率更高的架构,以及一个改进的姿态求解器。

cvpr2023璁茶В,cvpr瑙嗛鏁欑▼

SLD∗与SLD+NBE的四个关键区别:

(1)SLD∗不使用NBE,因为它使用更大的地标预算直接解决潜在问题。

(12)无上采样层。 SLD首先预测一组低分辨率热图,然后使用转置卷积进行空间上采样,以生成最终的热图。相反,SLD∗直接使用1×1卷积预测输出热图,没有任何空间上采样。没有上采样层,SLD∗具有更少的学习参数和更小的内存占用。但是这种改动并不会对经验中地标预测的准确性产生不利影响。这是因为对于每个检测到的地标,通过计算在以热图峰值位置为中心的17×17补丁中的所有热图样本的加权均值,估计了与地标相关的2D位置。加权平均步骤提供了足够的亚像素精度,因此似乎不需要在高输出分辨率下预测热图。

(3)内存占用减少。 SLD∗仅使用EfficientNet骨干,减小架构的存储大小和内存占用。还使用较少的特征映射通道和比SLD更剧烈的下采样。SLD∗有320个通道,而SLD有512个通道。SLD∗的特征映射具有8×下采样,而SLD的下采样因子为4×。

(4)加权姿态估计。 实现了一种加权姿态估计方案,使用与SLD∗输出预测相关的热图值导出的权重。将每个检测的峰值热图值表示为v,首先剔除v ≤ 0.3的检测。然后计算每个地标的权重w = ve,其中e是参数。首先用于PROSAC进行鲁棒估计,同时在PnP姿态优化期间作为权重使用。

4.3. 地标可见性估计

尽管SfM流程(例如COLMAP)可以在多个图像中生成具有准确2D数据关联的3D点,但它们通常无法检测到点的所有潜在观测(真正的正例)。SLD假设一个地标在SfM估计的相机姿态附近的图像中是可见的,但是这种假设可能通过包括地标被遮挡的视图,使训练数据受到异常值(假正例)的污染。SLD∗提出使用几何和显式遮挡推理来缓解这个问题。

稠密重建。 SLD∗ 为每个场景重建了一个密集的3D网格,首先,使用稠密深度视觉变换器估算所有映射图像的密集单目深度图。然后,将这些深度图的密集3D点云鲁棒地注册到稀疏的SfM 3D点云(由COLMAP计算)。同时剔除在不到50个图像中观察到的3D点,并删除未观察到足够数量的3D点的图像。还在将深度图与SfM点对齐后检查残差,剔除均值深度残差超过5cm的图像。最后,使用截断有 符号距离函数 的深度图融合和等值面提取来计算网格。

cvpr2023璁茶В,cvpr瑙嗛鏁欑▼

遮挡推理。 对于每对选定的地标p和具有姿态TI和估计密集深度dI的图像I,通过检查以下条件来确定图像中是否可见地标:

(1)3D点p在图像I的相机前方且该点在图像中投影是2D投影运算符。

(2)2D投影点的深度与使用重建的网格计算的那个像素处的深度不会相差太远。

(3)2D投影点的表面法线与使用重建的网格估计的法向量不会相差太远。

6. 实验

首先分析模型容量:(a)显示根据5cm/5◦召回度量计算的四个SLD∗模型的平均相机姿态估计准确度,分别对应于使用100、200、300和400个地标在INDOOR-6中的所有场景进行训练。(b)显示四个模型在六个场景中角度误差的中值。(c)显示所选地标集中的元素按它们被选中的顺序存储。

cvpr2023璁茶В,cvpr瑙嗛鏁欑▼

消融:集成大小。 评估各种集成大小的5cm/5◦召回率。发现在INDOOR-6上,125×8(每个8个网络,每个网络包含125个地标)的效果最好,而且存储和运行时间随着集成大小和总地标数量的增加而成比例增加。

cvpr2023璁茶В,cvpr瑙嗛鏁欑▼

消融:加权姿态估计。 对比使用125×8 SLD∗集成进行非加权和加权姿态估计的5cm/5◦召回率。

cvpr2023璁茶В,cvpr瑙嗛鏁欑▼

定量评估。 对比了几种方法的5cm/5◦召回率。

SLD∗和SLD的准确度分别为50.8%和44.9%,这6%的提升归因于使用可见性估计方法生成的更好的训练标签。SLD∗的最佳结果为使用在1000个地标上训练的125×8集成,准确度为70.1%,与hloc的71.4%相竞争。

cvpr2023璁茶В,cvpr瑙嗛鏁欑▼

准确度速度权衡。 就准确度而言,最佳SLD∗设置优于所有其他hloc配置(使用1、2、5和10个匹配对)。

cvpr2023璁茶В,cvpr瑙嗛鏁欑▼

定性结果。 分别在300和1000个地标上训练的两个SLD∗模型进行scene1测试,使用1000个地标训练的模型始终产生更准确的结果(存在更多的姿态内点)。

cvpr2023璁茶В,cvpr瑙嗛鏁欑▼

7. 总结

这篇文章提出了SLD∗,是SLD框架的扩展,用于基于场景地标检测的相*定位机**。SLD∗像SLD一样在内存和存储上高效,但在性能(准确性)上有显著提升。这种提升使得SLD∗与hloc等基于结构的方法相竞争,同时速度快了约40倍。

对更多实验结果和文章细节感兴趣的读者,可以阅读一下论文原文~

*载下**

在公众号「 计算机视觉工坊 」后台,回复「 3dcv 」,即可获取工业3D视觉、SLAM、自动驾驶、三维重建、事件相机、无人机等近千余篇最新顶会论文;巴塞罗那自治大学和慕尼黑工业大学3D视觉和视觉导航精品课件;相机标定、结构光、三维重建、SLAM,深度估计、模型部署、3D目标检测等学习资料。

3D 视觉 方向交流群成立啦

目前工坊已经建立了3D视觉方向多个社群,包括SLAM、工业3D视觉、自动驾驶、三维重建、无人机方向,细分群包括:

[工业3D视觉] 相机标定、立体匹配、三维点云、结构光、机械臂抓取、缺陷检测、6D位姿估计、相位偏折术、Halcon、摄影测量、阵列相机、光度立体视觉等。

[SLAM] 视觉SLAM、激光SLAM、语义SLAM、滤波算法、多传感器融合、多传感器标定、动态SLAM、MOT SLAM、NeRF SLAM、机器人导航等。

[自动驾驶] 深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器、多传感器标定、多传感器融合、自动驾驶综合群等、3D目标检测、路径规划、轨迹预测、3D点云分割、模型部署、车道线检测、Occupancy、目标跟踪等。

[三维重建] NeRF、多视图几何、 OpenMVS 、MVSNet、colmap、纹理贴图等

[无人机] 四旋翼建模、无人机飞控等

除了这些,还有求职、硬件选型、视觉产品落地、最新论文、3D视觉最新产品、3D视觉行业新闻等交流群

大家可以添加小助理v: dddvisiona,备注:加群+方向+学校|公司, 小助理会拉你入群。