欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

国防大学的最新成果:SceneTracker:在四维时空中追踪一切

最编程 2024-06-15 17:40:17
...

关注公众号,发现CV技术之美

本文分享论文SceneTracker: Long-term Scene Flow Estimation Network,提出 SceneTracker,首个公开的(2024.03)有效解决在线 3D 点跟踪问题或长时场景流估计问题(LSFE)的工作。

详细信息如下:

  • 作者:Bo Wang,Jian Li,Yang Yu,Li Liu,Zhenping Sun,Dewen Hu
  • 机构:国防科技大学
  • 原文链接:https://arxiv.org/abs/2403.19924
  • 代码链接:https://github.com/wwsource/SceneTracker

论文简介

在时间与空间组成的4D时空中,精确、在线地捕捉和分析长时且细粒度的物体运动,对机器人自动驾驶元宇宙具身智能等领域更高水平的场景理解起到至关重要的作用。

本研究提出的SceneTracker,是第一个公开的(2024.03)有效解决在线3D点跟踪问题或长时场景流估计问题(LSFE)的工作。其能够快速且精确地捕捉4D时空(RGB-D视频)中任意目标点的3D轨迹,从而使计算机深入了解物体在特定环境中的移动规律和交互方式。

SceneTracker是一种新颖的基于学习的LSFE网络,它采用迭代方法来逼近最优轨迹。同时其动态索引和构建表观和深度相关性特征,并利用Transformer挖掘和利用轨迹内部和轨迹之间的远程联系。通过详细的实验,SceneTracker在处理3D空间遮挡和深度噪声干扰方面显示出卓越的能力,高度符合LSFE任务的需求。

最后,本研究构建了第一个真实世界的评估数据集LSFDriving,进一步证实了SceneTracker值得称赞的泛化能力。

所提方法介绍

我们的目标是跟踪一个3D视频中的3D点。我们形式化该问题如下:一个3D视频是一个

T

帧的RGB-D序列。估计长时场景流旨在生成已知初始位置的

N

个查询点的相机坐标系下的3D轨迹

P^{xyz} \in \mathbb{R}^{N \times T \times 3}

。默认的,所有跟踪都开始于视频的第一帧。值得注意的是,我们方法可以灵活地从任意一帧开启跟踪。我们方法的整体架构如图1所示。

图1

轨迹初始化

初始化的第一步是将整个视频划分为若干滑动窗口。我们以长度

S

、滑动步长

S/2

进行划分。如图1左侧所示,我们需要跟踪

N

个查询点,以红色、绿色和蓝色点为例。对于第一个滑动窗口,位置会被初始化为查询点的初始位置。对于其他滑动窗口,其前

S/2

帧会根据前一个滑动窗口的后

S/2

帧的估计结果进行初始化,而其后

S/2

帧会根据前一个滑动窗口的最后一帧估计结果进行初始化。以任意一个滑动窗口

W_c

为例,我们得到初始化的轨迹

P_{init}^{xyz} \in \mathbb{R}^{N \times T \times 3}

特征编码和下采样

我们网络推理在

\frac{H}{s} \times \frac{W}{s}

的分辨率上。这里

s=8

是一个下采样系数。首先我们使用一个Feature Encoder网络来提取图像特征。Feature Encoder网络是一个卷积神经网络,包括8个残差块和5个下采样层。不像处理RGB图像,我们直接对

S

帧的原始深度图进行间隔为

s

的等间隔采样。此外我们利用相机内参

K=(f_x, f_y, c_x, c_y)

P_{init}^{xyz}

从相机坐标系转换到一个由图像

uv

平面和深度维度组成的

uvd

坐标系下。转换公式如下:

P_{init}^{uvd} =\left[\begin{array}{c} f_x \cdot P_{init}^{x} / P_{init}^{z} + c_x \\ f_y \cdot P_{init}^{y} / P_{init}^{z} + c_y \\ P_{init}^{z}\end{array}\right].

进一步地,我们对该初始化轨迹进行下采样得到

P_{0}^{uvd}

模板特征和轨迹的更新

在Flow Iteration模块,我们迭代式地更新查询点的模板特征和3D轨迹。当处理第一个滑动窗口的第一帧时,我们使用查询点的

uv

坐标在特征图上进行双线性采样,从而获得第一帧的模板特征。然后我们将该特征在时间维度上复制

S

次,获得所有后续滑动窗口的初始模板特征

Q_0

。所有滑动窗口都有一个统一的

Q_0

和不同的

P_{0}^{uvd}

。经过

n

次相同的Transformer Predictor模块,它们会被更新为

Q_n

P_{n}^{uvd}

轨迹输出

我们首先上采样

P_{n}^{uvd}

P^{uvd}

,以匹配原始输入分辨率。然后,我们结合相机内参

K

,将

P^{uvd}

uvd

坐标系转换到相机坐标系,得到

P^{xyz}

。最后,我们链接所有滑动窗口的

P^{xyz}

。相邻窗口中重叠部分采用后一个窗口的结果。

数据集介绍

给定一个自动驾驶数据的序列,我们的目标是构建一个

T

帧的RGB-D视频以及第一帧中感兴趣点的3D轨迹。具体地说,我们会分别从静态背景、移动的刚性车辆以及移动的非刚性行人上采样感兴趣点。

背景上的标注

首先,我们利用相机内参和外参来提取第一帧的LiDAR点,这些点可以被正确地投影到图像上。然后我们使用2D目标检测中的包围框来过滤掉所有前景LiDAR点。以一个LiDAR点

X \in \mathbb{R}^{3}

为例,我们根据车辆位姿将其投影到剩余的

T-1

帧上。正式地,在

t

时刻的投影点为:

X_{t} = W_{t}^{-1} \cdot W_{1} \cdot X

这里,

W_t

是时刻从车体到时间坐标系的转换矩阵。

车辆上的标注

与背景不同,车辆具有自己独立的运动。我们引入3D目标跟踪中的3D包围框来提供

t

时刻从世界到包围框坐标系的转换矩阵

B_t

。我们使用3D包围框来过滤出所有车辆的LiDAR点。以一个LiDAR点

X \in \mathbb{R}^{3}

为例,在

t

时刻的投影点为:

X_{t} = W_{t}^{-1} \cdot B_{t}^{-1} \cdot B_{1} \cdot W_{1} \cdot X

行人上的标注

行人运动的复杂性和非刚性决定了其标注困难,这在现有的场景流估计数据集中不包含该类数据可以进一步证明。我们使用双目视频来间接地解决该挑战。

首先,我们准备一段

T

帧的矫正双目视频。然后我们采用一个半自动的标注框架来高效且准确地标记左右目视频中感兴趣点的2D轨迹。第一步是标记感兴趣点,我们开发了一个定制化的标注软件并标记第一帧左目图像中感兴趣点的2D坐标。第二步是计算粗左目轨迹,我们利用CoTracker来计算左目视频的粗轨迹。第三步是计算粗右目轨迹,我们利用LEAStereo来逐帧计算感兴趣点的视差,从而推导出粗轨迹。第四步是人工细化阶段,左右粗轨迹会在标注软件中显示,其中所有低质量的标注都会被人类标注师修正。最后,我们结合细化后的左轨迹和视差序列来构造3D轨迹。

图2展示了行人的LSFE标注过程。

图2

实验结果

数据集LSFDriving示例

图3为所提LSFDriving数据集在三种类别(背景、车辆、行人)上的示例。

图3

方法SceneTracker估计效果

图4为所提方法SceneTracker在LSFOdyssey测试集上的估计效果示例。我们等间隔地展示了40帧视频中的12帧点云。方法估计出的轨迹用蓝色显示在对应点云上。从图4可以看出,面对相机和场景中动态物体的复杂运动,我们方法始终能够输出平滑、连续且精确的估计结果。

图4

与SF、TAP方法的定性比较

图5是我们方法与scene flow基线、tracking any point基线方法在LSFOdyssey测试集上的定性结果。我们可视化了最后一帧的预测和真值轨迹。轨迹使用jet着色。实线框标记了SF基线由于遮挡或超出边界导致的显著错误区域。从图5可以看出,相比其他方法,我们方法能够估计出厘米级别精度的3D轨迹。

图5

与SF、TAP方法的定量比较

表1为在LSFOdyssey测试集上3D指标的定量结果。所有数据均来自于Odyssey训练流程。从表1可以看出,我们方法在所有数据集指标上均显著超越其他方法。

表1

在真实场景数据集LSFDriving上的表现

表2为不同推理模式下我们方法在LSFDriving上的评估结果。从表2可以看出,在仅仅依赖合成数据进行训练的条件下,我们方法展现出值得称赞的真实场景估计性能。

表2