1. 总结下这篇论文
The paper titled "Deep Patch Visual Odometry (DPVO)" presents a new deep learning-based system for monocular visual odometry (VO), which estimates a robot's position and orientation using video input. Key highlights of the system include:
-
Sparse Patch-Based Approach: DPVO uses sparse patch-based correspondence to track patches (image regions) over time, unlike many previous methods (e.g., DROID-SLAM) that rely on dense flow fields. This patch-based method reduces computational cost while maintaining accuracy.
-
Efficiency and Speed: DPVO achieves state-of-the-art performance on visual odometry tasks while being highly efficient. It runs faster (up to 120 FPS) and uses significantly less memory (up to 57% less) compared to DROID-SLAM. On common benchmarks, DPVO outperforms other methods while using one-third of the memory.
-
Novel Recurrent Network Architecture: DPVO introduces a recurrent update operator that refines depth estimates and camera poses by alternating between patch trajectory updates and a differentiable bundle adjustment layer. This allows for real-time, end-to-end learning of feature matching.
-
On-the-Fly Computation: Unlike some methods that precompute correlation volumes (e.g., DROID-SLAM), DPVO computes visual similarities dynamically. This design choice contributes to the system's flexibility and reduced memory requirements.
-
Benchmark Performance: DPVO outperforms prior methods on datasets like TartanAir, EuRoC MAV, TUM-RGBD, and ICL-NUIM, showing improved robustness and lower errors in tracking camera motion in various real-world and synthetic environments.
In summary, DPVO introduces a sparse, patch-based visual odometry system that is more efficient and faster than existing state-of-the-art methods, making it suitable for resource-constrained environments.
2. 新颖的递归网络架构 是什么样的?
在Deep Patch Visual Odometry (DPVO)中,作者提出了一种新颖的递归网络架构,专门设计用于在时间上跟踪稀疏的图像块(patch)。该架构的核心是递归更新算子(recurrent update operator),它通过迭代方式不断优化patch的深度估计和相机姿态。下面具体解释这种架构的组成和工作原理:
1. Patch Trajectory Update (Patch轨迹更新)
DPVO系统首先从输入视频中提取出稀疏的图像块(patch),并通过递归网络架构跟踪这些patch在不同帧之间的运动。递归网络架构通过在每次迭代中更新这些patch的轨迹来进行优化。
- 每个patch都有一个2D的运动估计(optical flow),网络通过不断修正这些光流来优化相机的深度和姿态估计。
2. Differentiable Bundle Adjustment (可微分的Bundle Adjustment)
递归网络架构中的一个关键模块是可微的Bundle Adjustment层,这一层用于全局优化patch的深度和相机姿态。Bundle Adjustment(BA)是一个传统的视觉SLAM优化算法,通过最小化误差来调整相机位置和场景点的3D坐标。DPVO中的BA层是可微分的,这意味着网络可以通过梯度反向传播来学习如何更好地调整深度和姿态。
- 该层通过优化patch的2D轨迹与相机的姿态,确保它们在每一帧中的投影是最一致的。
3. 递归更新算子的组成部分
递归更新算子是DPVO架构的核心,它分为多个阶段来处理输入的patch特征和帧间关系。
-
Correlation (相关性计算):首先,网络计算patch在不同帧之间的相关性,评估当前深度和姿态估计是否正确。通过计算每个patch和相邻帧之间的视觉相似性,网络能够推测需要如何修正这些估计。
-
1D Temporal Convolution (1D时间卷积):由于视频帧是连续的,相邻帧之间的变化通常较小。网络在时间维度上应用1D卷积,来捕捉patch在不同时间点的轨迹变化。这个过程允许网络沿着时间传递信息,从而提高对patch轨迹的估计精度。
-
Softmax Aggregation (Softmax聚合):尽管patch是稀疏采样的,它们的运动和外观可能仍然相关,因为它们可能属于同一个物体。网络通过全局消息传递层在patch之间传播信息,提升对整体场景的理解。这一操作类似于图神经网络中的消息传递机制。
-
Transition Block (转换模块):转换模块通过两层带有残差连接的门控单元更新每个patch的隐藏状态。这个模块通过使用非线性激活函数和归一化,确保隐藏状态的稳定更新。
4. 更新相机姿态和深度
递归更新算子的最后一步是利用先前计算的特征,提出新的2D流修正(flow revision)和置信度权重,并将其输入可微分的Bundle Adjustment层中。BA层通过全局优化更新相机的姿态和patch的深度,从而保证轨迹的更新与视觉数据一致。
5. 高效性
递归网络架构的高效性得益于它的稀疏patch跟踪机制。与传统的密集光流方法不同,DPVO只对选定的稀疏patch进行优化,这大幅减少了计算量和内存需求,同时通过递归和BA层的结合,确保了精度不受影响。
总结
DPVO中的递归网络架构通过相关性计算、时间卷积、全局消息传递和转换模块递归地更新patch的轨迹,最终利用可微的Bundle Adjustment来优化相机姿态和深度估计。这种架构比传统密集光流方法更高效,且精度不逊色。
3. 如何将一个 patch 投影到另外一个帧中呢?
在 Deep Patch Visual Odometry (DPVO) 中,patch(图像块)的投影是根据相机的姿态和深度信息,将一个图像块从源帧投影到目标帧。这是通过几何变换实现的,下面是具体的步骤和数学公式:
1. Patch 表示
每个 patch ( P_k ) 被表示为一个 ( 4 \times p^2 ) 的齐次数组,其中 ( (x, y) ) 是像素坐标,( d ) 是逆深度。假设每个 patch 是一个前平行平面(与相机平面平行),其表示如下:
\[P_k = \begin{pmatrix} x \\ y \\ 1 \\ d \end{pmatrix} \]其中 ( p ) 是 patch 的宽度(或高度),每个 patch 的深度在整个 patch 区域内假设是恒定的。
2. 投影公式
将 patch 从源帧 ( i ) 投影到目标帧 ( j ) 时,使用如下公式:
\[P'_{kj} \sim K T_j T_i^{-1} K^{-1} P_k \]其中:
- ( P_k ) 是源帧中的 patch 坐标(以齐次坐标表示),
- ( P'_{kj} ) 是在目标帧 ( j ) 中的投影坐标,
- ( T_i ) 和 ( T_j ) 分别是源帧 ( i ) 和目标帧 ( j ) 的相机位姿(在 ( SE(3) ) 中表示),
- ( K ) 是相机的内参矩阵,用于将 3D 坐标转换为 2D 像素坐标。
3. 相机内参矩阵 ( K )
相机的内参矩阵 ( K ) 通常为:
\[K = \begin{pmatrix} f_x & 0 & c_x & 0 \\ 0 & f_y & c_y & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix} \]其中 ( f_x ) 和 ( f_y ) 是焦距,( c_x ) 和 ( c_y ) 是主点坐标。
4. 投影步骤
-
从源帧到世界坐标:通过 ( T_i^{-1} ) 将 patch ( P_k ) 从源帧的相机坐标系转换到世界坐标系。
-
从世界坐标到目标帧:通过 ( T_j ) 将 patch 坐标从世界坐标系转换到目标帧的相机坐标系。
-
将坐标投影到图像平面:通过相机内参矩阵 ( K ),将3D点投影到目标帧的2D像素平面上。
-
归一化:最后,将投影后的齐次坐标转换为非齐次坐标,即除以第三个元素,以获得最终的 2D 像素坐标:
5. 投影过程的简化表示
为了简洁,作者使用 ( \omega_{ij}(T, P_k) ) 表示将 patch ( P_k ) 从源帧 ( i ) 投影到目标帧 ( j ) 的投影操作:
\[P'_{kj} = \omega_{ij}(T, P_k) \]这个函数封装了从源帧到目标帧的投影过程,包括坐标变换和相机内参的应用。
总结
将一个 patch 投影到另一帧中,核心在于利用相机的位姿和内参,通过几何变换将 patch 的坐标从源帧转换到目标帧。DPVO 中的投影过程考虑了深度信息和相机姿态,确保 patch 能够正确地在不同帧之间进行投影和匹配。
4. 投影中的归一化步骤,除以第三个元素是什么?
在投影过程中,归一化步骤中的“除以第三个元素”指的是将齐次坐标(homogeneous coordinates)转换为非齐次坐标(inhomogeneous coordinates)的过程。
齐次坐标简介
齐次坐标是通过在三维或二维坐标中引入额外一个维度来表示的。例如:
- 对于三维点 ( (x, y, z) ),齐次坐标可以表示为 ( (x_h, y_h, z_h, w_h) ),其中 ( w_h ) 是齐次因子。
- 对于二维点 ( (x, y) ),齐次坐标可以表示为 ( (x_h, y_h, w_h) )。
齐次坐标表示的一个重要特性是,它表示了比例关系而不是具体的坐标点。因此,任意一个齐次坐标点 ( (x_h, y_h, w_h) ) 只要通过相同的比例因子 ( w_h ) 进行缩放,仍然表示同一个点。
齐次坐标转换为非齐次坐标
为了在图像平面中表示具体的像素坐标,需要将齐次坐标转换为标准的二维或三维非齐次坐标,这个过程被称为“归一化”,具体做法是除以第三个元素(或第四个元素,在三维齐次坐标情况下)。
举例说明:
- 如果你有一个三维点的齐次坐标 ( (x_h, y_h, z_h) ),其标准的非齐次表示是:
[
x = \frac{x_h}{z_h}, \quad y = \frac{y_h}{z_h}
]
其中,( z_h ) 是第三个元素。这个归一化步骤实际上是把三维空间的点映射到图像平面上的二维点。
具体到投影过程
在视觉SLAM或VO中的投影步骤中,我们通常需要将三维世界坐标点投影到图像平面上,这个过程涉及相机的内参矩阵和齐次坐标变换。
-
从三维点到齐次坐标:三维点 ( (x, y, z) ) 通过相机内参矩阵 ( K ) 和相机姿态矩阵 ( T ),会被转换为一个齐次坐标点 ( (x_h, y_h, z_h) )。
-
从齐次坐标到二维点:为了得到图像平面上的二维像素坐标 ( (x', y') ),我们通过归一化操作,将齐次坐标点除以第三个元素 ( z_h ),得到非齐次坐标:
[
x' = \frac{x_h}{z_h}, \quad y' = \frac{y_h}{z_h}
]
这个过程实际上是将三维空间的点投影到二维平面上。
物理意义
在三维投影过程中,除以第三个元素(通常是深度 ( z ))的操作具有重要的物理意义:
- 当我们从三维空间中的点投影到二维图像平面时,深度信息(z 轴的值)决定了该点在图像上的位置。除以 ( z ) 可以消除尺度差异,确保所有点都映射到统一的图像平面上。
- 简单理解就是,点离相机越远(即 ( z ) 越大),其投影到图像平面的坐标就越小,反之亦然。
归一化的作用
归一化的核心作用是将三维信息压缩到二维图像平面中,同时保留深度信息,以便后续的视觉计算(例如SLAM中的特征匹配和位置估计)。
总结
投影过程中的“除以第三个元素”步骤是将齐次坐标转换为非齐次坐标的过程,具体而言是将三维空间中的点投影到二维图像平面中。这一步通过除以深度信息(第三个元素 ( z_h ))来完成,用于消除深度的比例影响,从而得到标准的二维像素坐标。
5. Patch Graph 可以解释一下吗?
Patch Graph 是 Deep Patch Visual Odometry (DPVO) 中用于表示 patch 和视频帧之间关系的图结构。这个图的设计帮助网络在多帧视频中跟踪 patch 的运动,从而估计相机的姿态和场景的三维结构。下面是对 Patch Graph 的详细解释:
1. Patch Graph 的构成
Patch Graph 是一个二分图,它由两类节点和边构成:
-
节点(Nodes):
- Patch 节点:代表从视频帧中提取的稀疏图像块(patch)。
- Frame 节点:代表视频中的帧。
-
边(Edges):每条边连接一个 patch 节点和一个 frame 节点,表示这个 patch 在该帧中的重投影位置。通过这些边可以表示出 patch 在多帧视频中的运动轨迹。
2. Patch Trajectory (Patch 轨迹)
在 Patch Graph 中,patch 的轨迹是该 patch 在多个帧中的重投影集合。这意味着,对于一个特定的 patch,它在所有相关帧中的投影位置构成了它的轨迹。Patch Graph 的设计允许网络跟踪每个 patch 随时间的运动变化。
-
重投影:通过几何变换(使用相机的姿态矩阵 (T)),将一个 patch 从源帧 (i) 投影到目标帧 (j),从而得到它在目标帧中的位置。
-
轨迹的计算依赖于相机的运动估计和深度估计,这些轨迹用于在多个帧之间保持一致性,并帮助优化相机姿态和深度信息。
3. Patch Graph 的构建
Patch Graph 的构建步骤如下:
-
Patch 提取:首先从每一帧中提取出一系列随机位置的 patch(如 64 个)。这些 patch 包含局部的图像特征信息。
-
Patch 连接:将每个 patch 连接到多个帧。这些帧通常是从 patch 所在帧的时间邻近帧。例如,patch 从帧 ( i ) 提取,它可能会连接到帧 ( i-1 )、( i+1 ) 等邻近帧。
-
动态更新:Patch Graph 是动态的,随着新帧的到来,不断添加新的帧和 patch,同时移除不再需要的旧帧和 patch。这个机制保证了系统的计算效率。
4. Patch Graph 的作用
Patch Graph 作为一种图结构,主要有以下功能:
-
跨帧跟踪 Patch:Patch Graph 将每个 patch 在多个帧中的轨迹关联起来,这样网络可以跟踪它们的运动,保持 patch 在多个帧中的一致性。
-
信息传递:Patch Graph 允许在不同帧之间通过 patch 进行信息传递。例如,patch 在当前帧中的信息可以通过其轨迹传递到后续帧,从而提升深度和位姿估计的准确性。
-
稀疏优化:Patch Graph 提供了一种稀疏的特征匹配和跟踪方式,与传统的密集光流方法相比,它极大地减少了计算量,提高了效率。
5. Patch Graph 的动态性
Patch Graph 具有动态更新的特性:
- 随着新的视频帧不断输入,Patch Graph 会自动加入新的帧和新的 patch,同时将旧的 patch 和帧移出优化窗口。
- 当添加新帧时,Patch Graph 中的边会将新帧和已有的 patch 连接起来,形成一个完整的图结构,以跟踪这些 patch 的运动。
6. Patch Graph 的可视化
在文中,Patch Graph 通常通过图形表示为:
- 每个 patch 从源帧开始,沿着它的轨迹在不同的帧中进行重投影。
- 每个 patch 的轨迹连接的帧形成一个链条,而这些链条构成了整个图结构的“边”,连接着 patch 和它们出现的多个帧。
总结
Patch Graph 是 DPVO 中用于表示 patch 和帧之间关系的图结构,帮助网络在视频序列中跟踪稀疏的 patch。它通过连接 patch 和多个时间帧,实现了稀疏的特征匹配和轨迹跟踪,从而优化相机的姿态和深度估计。这种结构既提高了计算效率,也保证了视觉跟踪的鲁棒性。
6. 文中说的上下文特征和匹配特征分别是什么意思呢?
在 Deep Patch Visual Odometry (DPVO) 文章中,提到的上下文特征(Context Features)和匹配特征(Matching Features)是两类用于视觉里程计(Visual Odometry,VO)计算的特征,它们在特定的网络模块中负责不同的任务,结合使用来提升视觉跟踪的准确性和效率。具体来说:
1. 上下文特征(Context Features)
-
定义:上下文特征是一种捕捉图像局部区域更广泛的背景和场景信息的特征。它能够描述图像中的全局结构和局部区域的环境,从而帮助理解图像中物体或区域的相对关系。
-
作用:
- 全局信息:上下文特征帮助网络理解图像的全局背景。这对于在复杂环境中处理物体遮挡、运动模糊等问题尤为重要。通过捕捉较大区域的上下文,网络可以更好地判断某个局部区域的深度和运动。
- 辅助匹配:上下文特征不仅能帮助理解单一图像,还能在不同帧之间提供额外的参考信息,帮助改进不同帧之间的特征匹配过程。
-
特征提取方式:
- 上下文特征通过一个残差网络(ResNet)从图像中提取出来,特征图的分辨率是原始输入图像的 1/4。这个残差网络不使用归一化操作(如批归一化或实例归一化),以保持特征的原始分布。
-
用途:上下文特征主要用于在后续网络模块中结合当前帧和其他帧的信息,从全局角度提升视觉匹配和优化过程的鲁棒性。
2. 匹配特征(Matching Features)
-
定义:匹配特征是针对局部区域的描述,用于在不同图像帧之间进行精确匹配。它专注于识别和描述图像中的关键区域,以帮助网络找到在不同帧之间的相对应区域。
-
作用:
- 局部特征匹配:匹配特征的核心任务是帮助网络在两个或多个帧之间进行特征点的匹配。例如,当从一帧到另一帧投影patch时,匹配特征会用来计算不同帧之间的视觉相似性,从而决定如何调整patch的轨迹和相机的位姿。
- 增强视觉跟踪:由于匹配特征高度局部化,它能精确捕捉图像中某些关键点的变化,从而提高网络在不同帧中跟踪这些patch的能力。
-
特征提取方式:
- 匹配特征也是通过残差网络从图像中提取出来,但其特征图构建了一个金字塔结构,包含两个分辨率级别,分别是输入图像分辨率的 1/4 和 1/8。该网络使用了实例归一化(Instance Normalization),确保每个输入图像的特征独立归一化,从而提高匹配特征的稳定性和准确性。
-
用途:匹配特征主要用于计算帧间的视觉相似性,即通过对比帧之间的patch在特征空间的相似度来指导位姿和深度的优化。这个过程在DPVO中的相关性计算步骤中被广泛应用。
3. 上下文特征与匹配特征的关系
-
结合使用:上下文特征和匹配特征并不是独立工作的,它们相辅相成。在DPVO的特征提取阶段,这两种特征被同时提取并结合使用。上下文特征提供全局的场景背景,帮助网络更好地理解图像的整体结构,而匹配特征则专注于局部区域的精确匹配,帮助实现不同帧之间的特征匹配和轨迹跟踪。
-
在Patch匹配中的作用:
- 在进行patch的重投影和匹配时,匹配特征用于计算视觉相似性,而上下文特征则为这些匹配提供了额外的全局信息,从而提升了整体系统的鲁棒性和精度。
4. 特征提取的细节
在DPVO的架构中,特征提取过程是通过卷积神经网络(CNN)来完成的:
- 上下文特征提取网络与匹配特征提取网络的结构非常相似,但它们的归一化方式不同:上下文特征网络不使用归一化,而匹配特征网络使用实例归一化。
- 上下文特征的通道维度为 384,而匹配特征的通道维度为 128,这使得匹配特征更适合局部匹配任务。
总结
- 上下文特征:捕捉全局信息,帮助理解图像的整体结构和场景背景,提升视觉匹配和深度估计的鲁棒性。
- 匹配特征:专注于局部区域,用于在不同帧之间进行精确的特征点匹配,帮助跟踪patch的运动和位置。
上下文特征和匹配特征的结合使用,使得DPVO在视觉里程计任务中能够同时保持计算效率和精确性。
7. DPVO中的相关性计算是怎么做的呢?
在 Deep Patch Visual Odometry (DPVO) 中,相关性计算(correlation computation) 是用于评估两个帧之间相同 patch 的视觉相似性。通过这个过程,网络可以对两个帧中某个 patch 的位置和运动进行修正。具体来说,DPVO 采用的是局部特征的相关性计算来评估 patch 之间的匹配度。以下是详细的相关性计算步骤:
1. 重投影 Patch 到目标帧
首先,给定从源帧 ( i ) 中提取的 patch ( P_k ),使用相机姿态变换将该 patch 投影到目标帧 ( j ) 中。重投影公式为:
[
P'{kj} = \omega(T, P_k)
]
其中,( \omega_{ij}(T, P_k) ) 表示通过相机位姿 ( T ) 进行几何变换,将 patch ( P_k ) 从源帧 ( i ) 投影到目标帧 ( j ) 的新位置。这一步的目的是找到该 patch 在目标帧中的位置,作为后续计算的基础。
2. 提取特征
为了计算相关性,DPVO 从源帧和目标帧中提取两个重要的特征:
- patch 的特征 ( g \in \mathbb{R}^{p \times p \times D} ),表示从源帧 ( i ) 中提取的 patch 特征。这个特征通过特征提取网络获取,包含该 patch 的局部描述信息。
- 帧的特征 ( f \in \mathbb{R}^{H \times W \times D} ),表示目标帧 ( j ) 中的全局特征图,包含了目标帧上所有像素的特征信息。
3. 计算相关性网格
为了比较两个帧中的 patch 在目标帧中的位置,DPVO 使用了局部的相关性网格进行相似性评估。给定 patch 在目标帧 ( j ) 中的投影位置 ( P'_{kj} ),系统会在这个投影位置周围选择一个 ( 7 \times 7 ) 的整数网格,用以计算局部区域内的相关性。
对于 patch 中的每一个像素 ( (u, v) ),相关性 ( C_{uv\alpha\beta} ) 定义为 patch 特征 ( g_{uv} ) 与目标帧特征 ( f ) 在投影位置 ( P'{kj}(u, v) + \Delta ) 附近像素的内积:
[
C_{uv\alpha\beta} = \langle g_{uv}, f(P'{kj}(u, v) + \Delta) \rangle
]
其中:
- ( \langle \cdot, \cdot \rangle ) 表示内积操作,用于计算两个特征向量之间的相似性。
- ( \Delta_{\alpha\beta} ) 表示网格中的相对位移,构成 ( 7 \times 7 ) 的整数网格。
- ( f(P'{kj}(u, v) + \Delta) ) 是从目标帧特征图中提取的局部特征。
通过内积操作,相关性计算会为每个像素生成一个 ( 7 \times 7 ) 的相关性网格,描述该像素在不同位置的匹配程度。
4. 多尺度特征金字塔
DPVO 使用了多尺度特征金字塔来增强匹配的精度和鲁棒性。具体地,相关性计算在两个不同分辨率的特征图上进行:
- 1/4 分辨率的特征图。
- 1/8 分辨率的特征图。
每个分辨率下都会生成一个 ( p \times p \times 7 \times 7 ) 的相关性网格,表示 patch 中每个像素在不同目标帧位置的匹配程度。通过这种多尺度的方式,可以捕捉不同尺度下的特征信息,提升在不同运动模式下的匹配精度。
5. 优化实现
DPVO 使用了优化的 CUDA 层来实现这些相关性计算。这个层使用了规则的网格结构,在目标帧的特征图上进行高效的插值和内积计算,以保证在实时场景中的计算速度。
6. 相关性特征的使用
通过上述过程,生成的相关性特征 ( C ) 会用于后续的网络模块:
- Patch 轨迹更新:相关性特征会作为输入,帮助网络决定如何调整 patch 在目标帧中的位置和轨迹。
- 深度和姿态优化:这些相关性结果会进一步传递给递归网络的更新算子,结合其他信息进行深度和相机姿态的全局优化。
7. 与密集光流的比较
DPVO 的相关性计算基于稀疏 patch,而不是像传统的密集光流方法(如 DROID-SLAM)那样计算每个像素的光流场。这种稀疏的相关性计算大幅降低了计算成本,同时结合了 patch 级别的特征信息,依然能够在视觉跟踪中提供高精度的匹配效果。
总结
在 DPVO 中,相关性计算通过计算 patch 和目标帧之间的特征内积来评估它们的视觉相似性。该过程在局部网格范围内进行,并结合多尺度特征金字塔,使得系统能够有效捕捉 patch 在不同帧之间的运动变化。这种方法不仅高效,而且能够准确处理不同帧之间的匹配,进而提高相机位姿和深度估计的精度。
8. 论文理解
The patch features are used to compute visual similarities, but unlike DROIDSLAM, we compute them on the fly instead of precomputing them as correlation volumes.
这句话描述了一种在视觉SLAM(例如DROIDSLAM)中计算视觉特征相似性的不同方法。
解释:
-
Visual Similarities (视觉相似性):
在视觉SLAM中,视觉相似性通常是指通过比较图像或特征块(patches)的相似性来确定两个图像(或帧)中同一物体或区域的对应关系。这种相似性可以用来估计相机运动或场景的三维结构。 -
Precomputing Correlation Volumes (预计算相关性体积):
在一些系统(如DROIDSLAM)中,相关性体积(correlation volumes)是预先计算的。在这种情况下,所有可能的特征对之间的相似性在开始时就被计算并存储下来,这样在后续的过程中可以快速查找和使用。这种方法通过预先构建相关性体积,节省了实时计算的时间,代价是需要较多的内存来存储这些预计算的相似性信息。 -
On-the-fly Computation (实时计算):
这句话表明,你们的系统是动态计算视觉相似性,而不是像DROIDSLAM那样提前计算并存储。On-the-fly表示每次需要计算相似性时,才在当前时刻进行计算,而不是依赖预先存储的相关性数据。- 优点:动态计算可以节省存储空间,灵活应对不同的场景和需求。
- 缺点:由于没有预先计算,这会增加每次计算相似性的实时计算量,可能增加处理的时间复杂度。
总结:
与DROIDSLAM不同,你们的系统没有预先计算和存储特征相似性(即相关性体积),而是每次在需要时实时计算特征块之间的视觉相似性。这样做节省了存储空间,但在每次计算相似性时会带来额外的计算开销。
标签:特征,论文,投影,DPVO,Patch,解读,坐标,patch From: https://www.cnblogs.com/odesey/p/18409903