论文阅读- --DeepI2P:通过深度分类进行图像到点云配准

news2024/12/26 23:17:07

目前存在的问题:

  • 单模态配准具有局限性,多模态研究很少
  • 跨模态图像到点云配准问题是求解相机坐标系与点云之间的旋转矩阵R ∈ SO(3)和平移向量t ∈ R3。 这个问题很困难,因为由于缺乏点到像素的对应关系,无法使用 ICP、PnP 和捆绑调整 (BA) 算法等标准方法。 R3 空间中的点与 P2 空间中的图像几乎没有外观和几何相关性。

文章主要研究内容:

  • 图像和点云的多模态配准,分为两步
  • 分类神经网络旨在标记点云中每个点的投影是在相机视锥体之内还是之外。(网络由四部分组成:点云编码器、点云解码器、图像编码器和图像点云注意力融合。 )
  • 标记点随后被传递到逆相机投影求解器中以估计相对位姿

数据集:

Oxford,KITTI

1)点云Oxford是由激光雷达扫描仪累积超过100m的2D扫描构建的,而KITTI点云是来自3D激光雷达的单次扫描,如图6所示。因此,KITTI中的遮挡效应很严重。 例如,在时间戳 tj 中捕获的图像看到的东西大部分是从时间戳 ti 的点云中被遮挡/未观察到的。 鉴于相机的视场(FoV)有限,跨模态配准变得极具挑战性,因为两种模态正在观察不同的场景内容。 2)KITTI中点云的垂直视场非常有限,这导致缺乏用于跨模态匹配的独特垂直结构。 地面上的大多数点都是无结构的,因此对于跨模式匹配没有用处。 3)“KITTI Odometry”是一个小型数据集,仅包含 20,409 个用于训练的点云,而 Oxford 数据集大 ∼ 6.4 倍,包含 130,078 个点云。 因此,我们在 KITTI 数据集中观察到严重的网络过度拟合,但在 Oxford 数据集中却没有。

基础知识:

2D激光雷达仅与水平角分辨率有关,通常用于平面环境下的测量和检测。 3D激光雷达不仅与水平和垂直角度分辨率有关,还与激光发射器的线数有关,通常用于复杂的三维环境感知和建模。

涉及深度学习模型:PointNet、Attention、最远点采样(FPS)、PointNet++、残差

论文翻译:

摘要:

本文介绍了 DeepI2P:一种图像和点云之间跨模态配准的新方法。 给定在同一场景中不同位置捕获的图像(例如来自 RGB 相机)和一般点云(例如来自 3D 激光雷达扫描仪),我们的方法估计相机和激光雷达的坐标系之间的相对刚性变换。 由于两种模态缺乏外观和几何相关性,学习共同的特征描述符来建立配准的对应关系本质上是具有挑战性的。 (主要工作)我们通过将配准问题转换为分类和逆相机投影优化问题来规避这个困难。 分类神经网络旨在标记点云中每个点的投影是在相机平截头体之内还是之外。 这些标记点随后被传递到新颖的逆相机投影求解器中以估计相对位姿。 Oxford Robotcar 和 KITTI 数据集上的大量实验结果证明了我们方法的可行性。 我们的源代码位于

1. Introduction

图像到点云配准是指寻找刚性变换的过程,即将 3D 点云的投影与图像对齐的旋转和平移。 这个过程相当于求位姿,即成像设备相对于3D点云参考系的外在参数; (它在计算机视觉、机器人、增强/虚拟现实等许多任务中有着广泛的应用。尽管解决配准问题的直接而简单的方法是使用来自相同模态的数据,即图像到图像和 点云到点云,这些相同模态的配准方法存在一些局限性。 对于点云到点云配准,在操作期间在大型机器人和移动设备上安装昂贵且难以维护的激光雷达是不切实际且成本高昂的。 此外,基于特征的点云到点云配准[6,44,22,41]通常需要除了(x,y,z)点坐标之外还存储D维特征(D3),这增加了存储复杂度。 对于图像到图像的配准,需要付出细致的努力来执行 SfM [38, 37, 12] 并存储与重建的 3D 点相对应的图像特征描述符 [30, 23] 以进行特征匹配。 另外,图像特征会受到光照条件、季节变化等因素的影响,因此,在一个季节/时间获取的地图中存储的图像特征在季节/时间变化后就不可能再进行配准。)主要论述单一数据局限性

跨模态图像到点云配准可用于缓解相同模态配准方法中的上述问题。 具体来说,可以使用激光雷达一次获取基于 3D 点云的地图,然后可以使用从摄像机拍摄的图像来部署姿态估计,这些图像在大量机器人和移动设备上维护成本相对较低且成本较低。 此外,直接使用激光雷达获取的地图避免了 SfM 的麻烦,并且在很大程度上不受季节/光照变化的影响。 尽管跨模态图像到点云配准具有优势,但由于其固有的困难,目前的研究还很少。 (跨模态的优势)据我们所知,2D3D-MatchNet [11] 是通用图像到点云配准的唯一先前工作。 这项工作通过学习使用深度度量学习将基于图像的 SIFT [23] 与基于点云的 ISS [46] 关键点进行匹配来进行跨模式配准。 然而,由于两种模式的 SIFT 和 ISS 特征存在巨大差异,该方法的内点率较低。 (已有的研究方法

在本文中,我们提出了一种新的图像和点云的跨模态配准方法DeepI2P(研究方法优势没有明确的特征描述符,如图1所示。 我们的方法需要较少的存储内存,即参考点云的0 (3N),因为我们不依赖于特征描述符来建立对应关系。 此外,相机捕获的图像可以直接利用,而不需要SfM。 我们分两个阶段解决了图像到点云的跨模态配准问题。 (研究步骤)在第一阶段,我们设计了一个双分支神经网络,将图像和点云作为输入,并为每个点输出一个标签,表明该点的投影是在图像视锥体内还是在图像视锥体外。 第二阶段被表述为无约束连续优化问题。 目标是找到最佳的相机姿态,即相对于点云的参考框架进行刚性变换,使得标记为相机视锥体内的 3D 点正确投影到图像中。 标准求解器,如高斯-牛顿算法,可以用来解决我们的相机姿态优化问题。 在开源Oxford Robotcar和KITTI数据集上的大量实验结果表明了我们方法的可行性。

文的主要贡献如下

• 我们通过将问题转化为两阶段分类优化框架来规避学习跨模态特征描述符以进行配准的挑战性需求。

• 带有注意模块的两分支神经网络可增强跨模态融合,旨在学习 3D 点是否位于相机视锥体内或之外的标签。

• 提出逆相机投影优化来求解具有3D 点的分类标签的相机位姿。

• 我们的方法和实验结果证明了可以通过深度分类实现跨模式配准的概念验证

2. Related Works

Image-to-Image Registration.由于缺乏深度信息,图像到图像的配准 [34, 33] 是在 P2 空间中完成的。 这通常是计算投影变换或 SfM 的第一步。 典型的方法通常基于特征匹配。 从源图像和目标图像中提取一组特征,例如 SIFT [23] 或 ORB [30]。 然后根据提取的特征建立对应关系,可用于使用束调整[37, 16]、透视n点求解器[12]等来求解旋转、平移。此类技术已应用于现代SLAM 系统[10,26,9]。 然而,此类方法基于图像模态中的特征描述符来建立对应关系,并且不适用于我们一般的图像到点云配准任务。

Point Cloud-to-Point Cloud Registration.3D 信息的可用性使得点云之间可以直接注册,而无需建立特征对应关系。 ICP [2, 5]、NDT [3] 等方法在适当的初始猜测下工作良好,而 Go-ICP [40] 等全局优化方法无需初始化要求即可工作。 这些方法广泛应用于基于点云的 SLAM 算法,如 LOAM [45]、Cartographer [18] 等。最近,数据驱动的方法如 DeepICP [24]、DeepClosestPoint [39]、RPM-Net [42] 等也被广泛使用。 建议的。 尽管这些方法不需要特征对应,但它们仍然严重依赖相同模态的点结构的几何细节才能很好地工作。 因此,这些方法不能应用于我们的跨模式注册任务。 另一组常见方法是基于两步特征的配准。 经典的点云特征检测器 [36, 46, 32, 8] 和描述符 [35, 31] 通常会受到噪声和杂波环境的影响。 最近,基于深度学习的特征检测器(如 USIP [22]、3DFeatNet [41])和描述符(如 3DMatch [44]、PPF-Net [7]、PPF-FoldNet [6]、PerfectMatch [15])已在以下方面表现出改进的性能: 基于云的注册。 与图像到图像配准类似,这些方法需要在跨模态配准中难以获得的特征描述符。

Image-to-Point Cloud Registration.据我们所知,2D3D-MatchNet [11] 是通用图像点云配准的唯一先前工作。 它使用 SIFT [23] 提取图像关键点,使用 ISS [46] 提取点云关键点。 关键点周围的图像和点云补丁被输入到类似 Siamese 网络的每个分支中,并使用三元组损失进行训练以提取跨模态描述符。 推断,它是一个标准管道,由基于 RANSAC 的描述符匹配和 EPnP [20] 求解器组成。 尽管其实验设置大大简化,其中点云和图像是在附近的时间戳处捕获的,相对旋转几乎为零,但低内点率揭示了深度网络在截然不同的模态中学习共同特征的困难。 另一项工作 [43] 在图像和先前的激光雷达地图之间建立了 2D3D 线对应关系,但它们需要准确的初始化,例如来自 SLAM/里程计系统。 相比之下,一般的图像到点云配准,包括 2D3D-MatchNet [11] 和我们的 DeepI2P 不依赖于另一个精确的定位系统。 其他一些作品 [27, 4] 专注于图像到点云位置识别/检索,而不估计相对旋转和平移。

3Overview of DeepI2P

我们将图像表示为 I ∈ R3×W×H,其中 W 和 H 是图像的宽度和高度,点云表示为 P ={P1,P2,····,PN | Pn ∈ R3}。 跨模态图像到点云配准问题是求解相机坐标系与点云之间的旋转矩阵R ∈ SO(3)和平移向量t ∈ R3。 这个问题很困难,因为由于缺乏点到像素的对应关系,无法使用 ICP、PnP 和捆绑调整 (BA) 算法等标准方法。 与从 SfM 获得的点云不同,我们的点云是从点云扫描仪获得的,不包含任何基于图像的特征描述符。 建立跨模式点到像素对应关系并非易事。 这是因为 R3 空间中的点与 P2 空间中的图像几乎没有外观和几何相关性。 我们通过设计跨模态图像到点云配准方法来规避这个问题,该方法无需点到像素对应即可工作。为此,我们提出了一个两阶段的“视锥体分类+逆相机投影”管道。

第一阶段将点云中的每个点分类为相机视锥体内或之外。 我们将其称为视锥体分类,这可以通过第 4 节中所示的深度网络轻松完成。

在第二阶段,我们表明仅使用视锥体分类结果就足以解决相机和点云之间的位姿。 这就是5.1节中的逆相机投影问题。

在我们的补充材料中,我们提出了另一种跨模态注册方法“网格分类+ PnP”作为我们实验比较的基线。 在网格分类中,图像被划分为更小的规则网格的镶嵌,我们预测每个 3D 点投影到的单元格。 然后可以通过将基于 RANSAC 的 PnP 应用于网格分类输出来解决姿态估计问题。

4. Classification

网络的输入是一对图像 I 和点云 P,输出是 P 的每点分类。有两个分类分支:视锥体分类和网格分类。 平截头体分类为每个点分配一个标签,Lc = {lc 1, lc 2, · · · , lc N},其中 lc n ∈ {0, 1}。 如果点 Pn 投影到图像 I 之外,则 lc n = 0,反之亦然。 有关我们基线中使用的网格分类分支的详细信息,请参阅补充材料。

4.1. Our Network Design

如图2所示,我们的每点分类网络由四部分组成:点云编码器、点云解码器、图像编码器和图像点云注意力融合。 点云编码器/解码器遵循SO-Net [21]和PointNet++ [29]的设计,而图像编码器是ResNet-34 [17]。 然后将分类点用于第 5.1 节中的逆相机投影优化,以求解未知的相机姿态。

  • 点云编码器。 给定表示为 P ∈ R3×N 的输入点云,通过最远点采样(FPS)对一组节点 P(1) ∈ R3×M1 进行采样。 执行点到节点分组[21]以获得M1个点簇。 每个簇由 PointNet [28] 处理,分别得到长度为 C1 的 M1 个特征向量,即 P(1) ∈ RC1×M1 。 点到节点分组适应点的密度。 这对于激光雷达扫描的点云尤其有利,其中远距离点稀疏而近距离密集。 再次进行上述采样分组PointNet操作,得到另一组特征向量P(2) ∈ RC2×M2 。 最后应用PointNet得到全局点云特征向量P(3) ∈ RC3×1。
  • Image-Point Cloud Attention Fusion.图像-点云注意力融合。分类的目标是确定一个点是否投影到图像平面(视锥体分类)以及它属于哪个区域(网格分类)。 因此,直观地说,分类需要融合两种模式的信息。 为此,我们设计了一个注意力融合模块来结合图像和点云信息。 Attention Fusion模块的输入由三部分组成:一组节点特征Patt(P(1)或P(2))、一组图像特征Iatt ∈ RCimg×Hatt×Watt(I(1)或I( 2)),以及全局图像特征向量I(3)。 如图2所示,图像全局特征与节点特征Patt堆叠并连接,并输入到共享MLP中以获得注意力分数Satt ∈ RHattWatt×M。 Satt 提供 M 个节点的图像特征 Iatt 的权重。 加权图像特征通过Iatt和Satt相乘得到。 加权图像特征现在可以与点云解码器中的节点特征连接。
  • Point Cloud Decoder.点云解码器。解码器以图像和点云特征作为输入,输出每点的分类结果。 总的来说,它遵循PointNet++[29]的插值思想。 在解码器开始时,将全局图像特征 I(3) 和全局点云特征 P(3) 堆叠 M2 次,以便它们可以与节点特征 P(2) 和 Attention Fusion 输出 ~I 连接起来 (2)。 连接的 [I(3), ~I(2), P(3), P(2)] 由共享 MLP 处理以获得 M2 个特征向量,表示为 P~ (2) ∈ RC2×M2 。 我们进行插值以获得 P~ (2) (itp) ∈ RC2×M1 ,其中 M2 特征被上采样为 M1 ≥ M2 特征。 请注意,P(2) 和 ~P(2) 与节点坐标 P(2) ∈ R3×M2 相关联。 插值基于节点坐标 P(1) ∈ R3×M1 之间的 k 个最近邻,其中 M1 ≥ M2。 对于每个 C2 通道,插值表示为:

P(2) j 是 P(2) 中 P(1) i 的 k 个近邻之一。 通过串联共享 MLP 插值过程,我们得到 ~P(2) (itp) ∈ RC2×M1。 类似地,经过另一轮运算,我们得到~P(1) (itp) ∈ RC1×N。 最后,我们得到最终输出(2+HW/(32×32))×N,它可以重组为平截头体预测分数2×N和网格预测分数(HW/(32×32))×N。

4.2. Training Pipeline

截锥体标签的生成只是一个相机投影问题。 在训练过程中,我们给出相机内在矩阵 K ∈ R3×3 以及相机和点云之间的位姿 G ∈ SE(4)。 点 Pi ∈ R3 从点云坐标系到相机坐标系的 3D 变换由下式给出:

请注意,齐次坐标由波形符表示,例如,~P i 是 P i 的齐次表示。 像点的非齐次坐标为:

Frustum Classification对于给定的相机位姿 G,我们定义函数:

它将标签 1 分配给投影在图像内的点 Pi,否则分配 0。 现在,视锥体分类标签生成为 lc i = f(Pi; G,K,H,W),其中 G 在训练期间已知。 在 Oxford Robotcar 和 KITTI 数据集中,我们随机选择一对图像和原始点云(I,Praw),并根据 GPS/INS 读数计算相对姿态作为地面真实姿态 Gp c 。 我们在训练数据中使用指定间隔内的相对距离(I,Praw)。 然而,我们观察到两个数据集中的 Gp c 的旋转接近于零,因为用于收集数据的汽车大多进行纯平移。 为了避免过度拟合这种情况,我们将随机生成的旋转 Gr 应用于原始点云,以获得训练数据中的最终点云 P = GrPraw。 此外,地面真值姿态现在由 G = Gp cG−1 r 给出。 请注意,随机平移也可以包含在 Gr 中,但它对训练没有任何影响,因为网络是平移等变的。

Training Procedure.截头体分类训练过程总结为:

5. Pose Optimization

我们现在制定一种优化方法,利用视锥体分类结果来获取相机在点云参考系中的位姿。 请注意,我们在此步骤中不使用深度学习,因为相机投影模型的物理和几何结构已经确定。 形式上,位姿优化问题是求解 Gˆ ,给定点云 P、平截头体预测 Lˆ c = {ˆlc 1, · · · , ˆlc N}、ˆlc i ∈ {0, 1} 和相机内在矩阵 K。 在本节中,我们将描述逆相机投影求解器来求解 ^G。

5.1. Inverse Camera Projection

点的平截头体分类,即给定方程中定义的 G 的 Lc。 方程5是基于相机的前向投影。 逆相机投影问题则相反,即确定满足给定 ˆLc 的最优位姿 Gˆ。 它可以更正式地写为:

直观上,我们寻求找到最佳姿态 ^G,使得来自网络的标签 ^lc i = 1 的所有 3D 点都投影到图像中,反之亦然。 然而,在 SE(3) 空间中简单地搜索最佳姿态是很困难的。 为了缓解这个问题,我们将损失放宽为从点投影到图像边界(即 H ×W 矩形)的距离的函数。

Frustum Prediction Equals to 1

让我们考虑一个预测为 ^lc i = 1 的点 Pi。我们定义成本函数:

它对姿态 G 进行惩罚,该姿态 G 导致投影点 p i = [p xi , p yi ] (c.f. 方程 4) 落在图像宽度的边界之外。 具体来说,当 pxi 在图像宽度内时,成本为零,否则与沿图像 x 轴到最近边界的距离成负比。 成本 g(pyi ;H) 可以沿着图像 y 轴类似地定义。 此外,定义成本函数 h(·) 以避免 P i 落在相机后面的模糊性:

其中 α 是一个超参数,用于平衡 g(·) 和 h(·) 之间的权重。

Frustum Prediction Equals to 0.

现在我们考虑预测为 ^lc i = 0 的点 Pi。沿图像 x 轴定义的成本由下式给出:

当 pxi 沿着图像宽度落在边界之外时,它为负,否则与沿着图像 x 轴到最近边界的距离成正比。 类似地,可以定义沿 y 轴的类似成本 u(pyi ;H)。 此外,还有一个指标函数:

当 p i 在 H × W 图像之外或 P i 在相机后面(即 z i < 0)时,需要实现零成本的目标。

Cost Function.

最后,单点 Pi 的成本函数由下式给出:

p xi 、 p yi 、 zi 是 G 的函数,根据方程: 参见图2、3和4。图像高度H、宽度W和相机内在参数K是已知的。 现在方程中的优化问题。 6 变为:

这是一个典型的无约束最小二乘优化问题。 我们需要对未知变换矩阵进行适当的参数化,

其中 G ∈ SE(3) 是过度参数化,可能会导致无约束连续优化出现问题。 为此,我们使用李代数表示 xi ∈ se(3) 来实现 G ∈ SE(3) 的最小参数化。 指数映射 G = expse(3)(xi) 将 se(3) → SE(3) 转换,而对数映射 ϋ = logSE(3)(G) 将 SE(3) → se(3) 转换。 与[10]类似,我们将se(3)串联运算符 ◦ : se(3) × se(3) → se(3) 定义为:

以及方程 12 中的成本函数可以通过适当的指数或对数映射修改重写为:

Gauss-Newton Optimization.

等式。 图15是一个典型的最小二乘优化问题,可以用高斯-牛顿法求解。 在使用当前解 Ψ(i) 进行迭代 i 期间,增量 δΨ(i) 通过高斯牛顿二阶近似估计

更新由 Σ(i+1) = δΣ(i) ◦ Σ(i) 给出。 最后,通过执行指数映射 ^G = expse(3)(ˆxi) 来解决逆相机投影问题。 我们的迭代优化的可视化如图 3 所示。

6. Experiments

我们的图像到点云配准方法使用 Oxford Robotcar [25] 和 KITTI [13] 数据集进行评估。

请注意,KITTI 点云来自单帧 3D 激光雷达扫描,而 Oxford 点云是超过 100m 的 2D 激光雷达扫描的累积。 因此,KITTI 中的点云存在严重遮挡、远距离测量稀疏等问题。

逆相机投影。 我们提出的逆相机投影(参见第 5.1 节)中的初始猜测 G(0) 至关重要,因为方程的求解器为: 15是迭代方法。 为了缓解初始化问题,我们使用随机生成的初始化 G(0) 执行优化 60 次,并选择成本最低的解决方案。 此外,6DoF 搜索空间对于随机初始化来说太大。 我们通过利用我们的数据集来自地面车辆的事实来执行二维随机初始化来缓解这个问题。 具体来说,R(0) 被初始化为围绕上轴的随机旋转,t(0) 被初始化为 x-y 水平面中的随机平移。 我们的算法是用 Ceres [1] 实现的。

 配准精度 在 Oxford 和 KITTI 数据集上,平截头体分类精度分别为 98% 和 94%。 然而,这些数字并不能直接转化为配准精度。 按照[22, 41]的实践,配准用两个标准进行评估:平均相对平移误差(RTE)和平均相对旋转误差(RRE)。 结果如表1和图4所示。网格Cls。 + PnP 是我们的“网格分类 + PnP”基线方法的结果(详细信息请参阅补充材料)。 RANSAC PnP 算法在没有任何约束的情况下优化了完整的 6-DoF Gˆ。 弗鲁斯。 克莱斯。 + 投资项目 代表我们的“Frustum分类+逆相机投影”方法的结果。 弗鲁斯之间的区别。 克莱斯。 + 投资项目 3D 和 Frus。 克莱斯。 + 投资项目 2D 是前者正在优化完整的 6-DoF G^ ,而后者将 ^G 限制为 3-DOF,即 x-y 水平面上的平移和绕上轴的旋转。 由于缺乏在相同设置下解决图像到点云配准问题的现有方法,我们进一步将 DeepI2P 与其他 4 种方法进行比较,这些方法在输入数据模态或配置方面可能比我们的方法具有不公平的优势。

1)直接回归使用深度网络直接回归相对姿势。 它由第 4 节中的点云编码器和图像编码器组成。全局点云特征和全局图像特征连接成单个向量并由直接回归 G^ 的 MLP 处理。 有关此方法的更多详细信息,请参阅补充材料。 表 1 显示我们的 DeepI2P 显着优于简单回归方法。

2)Monodepth2+USIP通过使用Monodepth2[14]从单个图像估计深度图,将跨模态配准问题转换为基于点云的配准问题。 使用激光雷达点云从MonoDepth2校准深度图的比例,即深度图的比例是完美的。 随后,利用 USIP [22] 估计深度图和点云之间的位姿。 这类似于相同模态的点云到点云配准。 尽管如此,表 1 表明这种方法表现不佳。 这可能是因为深度图不准确,并且 USIP 不能很好地概括深度图。

3)Monodepth2+GT-ICP获取绝对比例的深度图,方式与Monodepth2+USIP相同。 然而,它使用迭代最近点(ICP)[2, 5]来估计深度图和点云之间的位姿。 请注意,如果没有正确的初始化,ICP 就会失败,因此我们使用地面实况 (GT) 相对位姿进行初始化。 表 1 显示,与 Monodepth2+GT-ICP 相比,我们的 DeepI2P 实现了类似的 RTE 和更好的 RRE,尽管后者具有地面实况初始化的不公平优势,并且深度图已完美校准。

4)据我们所知,2D3D-MatchNet [11] 是跨模态图像到点云配准的唯一先前工作。 然而,在他们的实验设置中,相机和激光雷达之间的旋转几乎为零。 这是因为图像和点云是从时间上连续的时间戳中获取的,没有额外的增强。 相比之下,我们实验中的点云总是随机旋转的。 这意味着 2D3D-MatchNet 正在解决一个更容易的问题,但他们的结果比我们的差。

错误的分布。 配准RTE(m)和RRE(°)在Oxford和KITTI数据集上的分布如图4所示。可以看出,我们在Oxford上的表现优于KITTI。 具体来说,平移/旋转误差的众数在 Oxford 上为 ∼ 1.5m/3°,在 KITTI 上为 ∼ 2m/5°。 牛津的平移/旋转误差方差也较小。

RTE/RRE 的验收。 还有其他相同模态的方法可以解决 Oxford 和 KITTI 数据集上的配准问题,例如 USIP [22] 和 3DFeatNet [41] 提供了更好的 RTE 和 RRE。 这些方法仅适用于点云到点云数据,而不是图像到点云数据,因此不能与我们的方法直接比较。 此外,我们注意到表 1 中报告的 DeepI2P 的准确性足以满足非生命攸关的应用,例如室内和室外环境中移动设备的视锥体定位。

牛津 vs KITTI。 我们在 Oxford 上的表现优于 KITTI,原因如下:1)点云Oxford是由激光雷达扫描仪累积超过100m的2D扫描构建的,而KITTI点云是来自3D激光雷达的单次扫描,如图6所示。因此,KITTI中的遮挡效应很严重。 例如,在时间戳 tj 中捕获的图像看到的东西大部分是从时间戳 ti 的点云中被遮挡/未观察到的。 鉴于相机的视场(FoV)有限,跨模态配准变得极具挑战性,因为两种模态正在观察不同的场景内容。 2)KITTI中点云的垂直视场非常有限,这导致缺乏用于跨模态匹配的独特垂直结构。 地面上的大多数点都是无结构的,因此对于跨模式匹配没有用处。 3)“KITTI Odometry”是一个小型数据集,仅包含 20,409 个用于训练的点云,而 Oxford 数据集大 ∼ 6.4 倍,包含 130,078 个点云。 因此,我们在 KITTI 数据集中观察到严重的网络过度拟合,但在 Oxford 数据集中却没有。

6.3. Ablation Study6.3. 消融研究

我们的高斯牛顿和 Monodepth2+ICP 的初始化。 在2D配准设置中,有3个未知参数——旋转θ、平移tx、ty。 对于我们的方法,通过将预测的平截头体内点的平均偏航角与相机主轴对齐,可以轻松获得初始 θ。 因此,我们的60倍初始化只是为了二维搜索tx,ty。 相比之下,Monodepth2+ICP需要对θ、tx、ty进行三维搜索。 如表所示。 如图2所示,

我们的DeepI2P对初始化具有鲁棒性,而Monodepth2+ICP在60倍随机初始化方面表现较差。

图像内遮挡。 在 Oxford/Kitti 中,当平移较大时,例如,遮挡效应可能会很显着。 > 5m。 标签。 图 2 显示,当最大平移限制减小(15m→ 10m→ 5m)时,配准得到改善。

交叉注意力模块。 标签。 图 2 显示了没有交叉注意模块时配准精度的显着下降。

此外,我们还看到粗分类准确率从 98% 显着下降到 80%。 3D 点密度。 如表所示。 2,我们的配准精度随着点密度的降低而降低。 尽管如此,即使点密度下降到 1/4 (20480 → 5120),性能下降也是合理的。

6.4. 可视化

图 5 显示了我们的平截头体分类网络和基线网格分类网络的结果示例(请参阅补充材料)。 使用地面真实姿态 G 将点云投影到图像中。点的颜色表示平截头体或网格预测的正确性,如标题中所述。 这Oxford 中平截头体和网格分类的准确率分别约为 98% 和 51%,KITTI 中分别为 94% 和 39%。 KITTI 中的低分类精度导致跨模态配准时 RTE 和 RRE 较大。 视锥体分类和逆相机投影问题的 3D 可视化如图 6 所示。它说明了通过将相机视锥体与分类结果对齐来找到相机姿态的直觉。

7.结论

本文提出了一种图像和点云之间跨模态配准的方法。 具有挑战性的配准问题被转换为由深度网络解决的分类问题和由最小二乘优化解决的逆相机投影问题。 我们提出的分类优化框架的可行性通过 Oxford 和 KITTI 数据集进行了验证。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2234584.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL表设计(三大范式 表的设计)

1.上讲约束复习&#xff1a; 1.NOT NULL 非空约束&#xff0c;被指定NOT NULL的列&#xff0c;值不允许为空(必填) 2. UNIQUE 唯一约束&#xff0c;这个列里的值在表中是唯一的&#xff0c;也就是说不能重复 3. PRIMARY KEY 主键约束&#xff0c;可以看做是NOT NULL和UNIQUE…

【修订中】js 中apply call bind 用法

一、call、apply可以翻译成继承或者借调 区别&#xff1a;传参不同 可以调用函数可以改变函数中this的指向 二、js 语法词法&#xff1a; 普通函数 构造函数&#xff1a; 为什么不在构造函数中写方法 function Student(n, a) {this.uname n;this.age a;this.sayHi func…

Android15音频进阶之Cuttlefish搭建音频开发环境(九十二)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+…

【Unity】Unity拖拽在Android设备有延迟和卡顿问题的解决

一、介绍 在制作Block类游戏时&#xff0c;其核心的逻辑就是拖拽方块放入到地图中&#xff0c;这里最先想到的就是Unity的拖拽接口IDragHandler,然后通过 IPointerDownHandler, IPointerUpHandler 这两个接口判断按下和松手&#xff0c;具体的实现逻辑就是下面 public void On…

如何理解ETLCloud在iPaas中的关键角色

在当今的数字化时代&#xff0c;企业越来越依赖于其处理和分析数据的能力。为了实现这一目标&#xff0c;企业需要将各种异构的应用和数据源集成在一起&#xff0c;形成一个统一的数据视图。在这一过程中&#xff0c;ETL&#xff08;Extract, Transform, Load&#xff09;和iPa…

Linux多线程(个人笔记)

Linux多线程 1.Linux线程概念1.1线程的优点1.2线程的缺点 2.Linux线程VS进程3.Linux线程控制3.1创建线程3.2线程tid及进程地址空间布局3.3线程终止3.4线程等待 4.分离线程5.线程互斥5.1互斥锁mutex5.2互斥锁接口5.3互斥锁实现原理5.4可重入VS线程安全 6.线程同步6.1条件变量6.2…

【案例】故障雪花屏

开发平台&#xff1a;Unity 6.0 开发工具&#xff1a;Shader Graph 参考视频&#xff1a;【U2D Shader Graph】❄️雪❄️花❄️屏❄️   一、效果图 二、Shader Graph 路线图 三、案例分析 核心思路&#xff1a;雪花屏幕效果 &#xff08;混合&#xff09; 原图像 最终图像…

Hunyuan-Large:推动AI技术进步的下一代语言模型

腾讯近期推出了基于Transformer架构的混合专家&#xff08;MoE&#xff09;模型——Hunyuan-Large&#xff08;Hunyuan-MoE-A52B&#xff09;。该模型目前是业界开源的最大MoE模型之一&#xff0c;拥有3890亿总参数和520亿激活参数&#xff0c;展示了极强的计算能力和资源优化优…

arkUI:Column和Rom的间距设置(列向,横向)

arkUI&#xff1a;Column和Rom的间距设置&#xff08;列向&#xff0c;横向&#xff09; 1 主要内容说明2 相关内容举例和说明2.1 Column的间距&#xff08;列的间距&#xff09;2.1.1 源码1 &#xff08;Column的间距&#xff09;2.1.2 源码1运行效果 2.2 Row的间距&#xff0…

QML项目实战:自定义Combox

目录 一.添加模块 import QtQuick.Controls 2.4 import QtQuick.Templates 2.4 as T import QtGraphicalEffects 1.15 import QtQuick 2.15 as T2 二.自定义Combox 1.combox文字显示 2.设置下拉图标显示 3.下拉框中选中背景设置 4.下拉框中选中文字设置 5.下拉框设置…

【设计模式系列】原型模式(十一)

一、什么是原型模式 原型模式&#xff08;Prototype Pattern&#xff09;是一种创建型设计模式&#xff0c;它使得一个对象可以复制自身&#xff0c;从而创建一个与自己属性一致的新对象&#xff0c;而无需知晓对象创建的细节。这种模式允许动态地增加对象的数量&#xff0c;并…

h5web浏览器获取腾讯地图经纬度

https://lbs.qq.com/dev/console/application/mine 去腾讯地图申请key 然后前端页面引用 <script type"text/javascript" src"https://apis.map.qq.com/tools/geolocation/min?key自己的key&referertest"></script>调用代码 let geoloca…

微积分复习笔记 Calculus Volume 1 - 4.6 | Limits at Infinity and Asymptotes

4.6 Limits at Infinity and Asymptotes - Calculus Volume 1 | OpenStax

开源的flash浏览器 CelfFlashBrowser

特点 不用安装flash就可以玩flash游戏。 可播放在线和本地的swf文件 下载地址 &#xff1a;https://github.com/Mzying2001/CefFlashBrowser

游戏引擎中的颜色科学

游戏引擎中的渲染组件的作用是生成一个二维图片&#xff0c;在特定的时间从给定的视点观察的方向看到的一个三维空间的状态。他们的生成每一张图片都会被称为帧&#xff0c;他们生成的速度称为帧率。 像素 在每一帧中&#xff0c;游戏引擎的视觉输出基本上是一大堆彩色像素&a…

css中pointer-events:none属性对div里面元素的鼠标事件的影响

文章目录 前倾提要当没有设置属性pointer-events时候结果 当子元素设置了pointer-events: none修改后的代码结果如下所示 当父元素设置了pointer-events: none若两个div同级也就是兄弟级 前倾提要 在gis三维开发的地图组件上放一个背景图片&#xff0c;左右两侧的颜色渐变等&a…

中科蓝汛GPIO操作说明

概述 本篇文章介绍如何使用中科蓝汛AB5681&#xff0c;GPIO管脚使用说明。 一、第一种写法 1&#xff09;、GPIO配置输入模式 //内部上拉 GPIOBDE | BIT(4); //数字IO使能: 0为模拟IO, 1 为数字IO GPIOBDIR | BIT(4); //控制IO的方向: 0为输出, 1为输入. GPIOBFEN &…

Kotlin 协程使用及其详解

Kotlin协程&#xff0c;好用&#xff0c;但是上限挺高的&#xff0c;我一直感觉自己就处于会用&#xff0c;知其然不知其所以然的地步。 做点小总结&#xff0c;比较浅显。后面自己再继续补充吧。 一、什么是协程&#xff1f; Kotlin 协程是一种轻量级的并发编程方式&#x…

LabVIEW 离心泵机组故障诊断系统

开发了一套基于LabVIEW图形化编程语言设计的离心泵机组故障诊断系统。系统利用先进的数据采集技术和故障诊断方法&#xff0c;通过远程在线监测与分析&#xff0c;有效提升了离心泵的预测性维护能力&#xff0c;保证了石油化工生产的连续性和安全性。 项目背景及意义 离心泵作…

线程函数和线程启动的几种不同形式

线程函数和线程启动的几种不同形式 在C中&#xff0c;线程函数和线程启动可以通过多种形式实现。以下是几种常见的形式&#xff0c;并附有相应的示例代码。 1. 使用函数指针启动线程 最基本的方式是使用函数指针来启动线程。 示例代码&#xff1a; #include <iostream&g…