用于长期点跟踪的大规模合成数据集
PIPs++ , the upgrade of PIPs , ICCV 2023 paper
论文地址:https://arxiv.org/abs/2307.15055
目录
4. Long-Term Tracking with PIPs++
4.2. Expanding the temporal field of view (PIPs+)
4.3. Extending to multiple templates (PIPs++)
0. Abstract
PointOdyssey,一个大规模合成数据集和数据生成框架,用于长期细粒度跟踪算法的训练和评估。旨在通过真实的运动捕捉数据和3D场景构建,为长期精细跟踪算法的训练和评估提供丰富的资源。以及对PIP(Point Interest Points)点跟踪方法进行了修改,扩大其时间感受野。
动机:为了推进长视频中的自然运动的技术发展,需要一个大规模的合成数据集。
方法:使用真实世界的运动捕捉数据来动画化可变形角色,构建3D场景以匹配运动捕捉环境。通过随机化角色外观、运动轮廓、材料、光照、3D资产和大气效果来创建组合多样性。
1. Introduction
在长连续视频中提供点对应注释。可视化了来自数据集的样本视频从第0帧到第1600帧的像素坐标轨迹。图1:数据集中的一个样本。
细粒度长距离跟踪的目标是:给定视频中任意帧的任意像素坐标,尽可能长时间地跟踪相应的世界表面点。
之前的很多方法在不真实的合成数据(FlyingThings++和Kubric-MOVi-E )上训练细粒度跟踪器,在具有稀疏人工注释的真实视频(BADJA和TAP-Vid)上进行测试。使用简单的训练数据,排除了学习长距离时间上下文和场景级语义感知。
本文介绍了PointOdyssey,旨在提供与真实世界视频相似的复杂性、多样性和自然性,并通过仿真实现像素级别的完美注释。使用从真实世界视频和动作捕捉中挖掘出的运动、场景布局和相机轨迹,以及更广泛范围的域随机化来区分我们的工作。还具有更好的逼真度。数据源包括人类和动物的大规模动作捕捉数据集,以及室内和室外场景的运动捕捉数据。作者对现有的跟踪方法进行了修改,扩大了时间上下文,并引入了模板更新机制。
表1:点跟踪数据集的比较。PointOdyssey数据集更大,视频长度更长,并包括反映对象与场景之间交互的轨迹。TAP-Vid数据集是真实世界的,具有稀疏的人工注释,通常用于测试。大多数合成数据集提供了训练/测试划分。
特点;(1)使用从现实世界的视频和动作捕捉中挖掘的运动,场景布局和相机轨迹(而不是随机或手工设计)。(2)在更广泛的场景属性上使用域随机化,包括环境地图,照明,人类和动物身体,相机轨迹和材料。由于高质量资产和渲染工具的可用性的进步,能够提供更好的照片真实感。
2. Related Work
Motion Datasets.
Middlebury数据集:立体视觉和运动估计方法的主要基准。但太小(<100帧)。
MPI Sintel数据集:在视觉和运动多样性方面迈出了重要的一步。我们的数据集与Sintel类似,但规模更大,包括整体帧数、视频片段长度,且更逼真。利用了Blender中的渲染技术进展。
KITTI数据集:为真实世界驾驶场景提供了立体视觉和光流注释。由于真实世界注释困难,因此采用近似方法:使用LiDAR结合自身运动信息估计场景静态部分的运动,然后将3D模型拟合到汽车上以估计汽车像素的运动。我们选择使用合成数据生成来避免这些近似,并确保完美的细粒度地面真相。
TAP-Vid基准:强调细粒度多帧跟踪的重要性,并建议在合成数据(KubricMOVi-E和RGB-stacking )中进行训练,而在真实数据中进行测试(Kinetics 和DAVIS)。
PointOdyssey数据集希望通过多样性实现泛化,针对更长距离的跟踪,跨越数千帧。数据集还包括人类,与彼此、场景进行交互。希望这将使使用高级语境线索的方法在低级运动和外观信号之外具有优势。
Motion Understanding.
PIP:通过学习得到的迭代推理过程来估计像素的8帧轨迹,该过程考虑了匹配成本和隐式时间先验,在MLP-Mixer的支持下,同时考虑了所有8个时间步长。但更长的轨迹更容易漂移,计算速度较慢。
TAP-Net:通过在逐帧成本图中取最大值来估计像素的对应关系。成本图可以使用时间移位卷积高效计算得到。当视频中存在长时间遮挡或剧烈切换时,TAP-Net的性能优于PIP,可能是因为PIP中的8帧时间窗口无法解决超过该窗口范围的遮挡,并且剧烈切换与学习的先验不一致。
本文通过将MLP-Mixer组件替换为深度1D卷积网络。来消除PIP中的8帧硬约束,使其能够考虑更宽的时间上下文。
3. PointOdyssey Dataset
图2:数据生成流程概述。对人类和动物主体、主体和相机的运动轨迹、3D物理资源、材质、室外场景的环境地图、室内场景的手动创建环境、光照和大气效果进行采样,随机生成物理上逼真且语义合理的场景。渲染视频,并与各种真实数据配对。
3.1. Long-Term Motion Data
可变形角色。收集人类、机器人、动物。提供高细分网格、逼真的材质和纹理,并通过骨骼绑定进行动画。
运动重定位。为了使类人角色动画化,使用真实世界的人体运动数据,使用Rokoko Toolkit中的运动重定位算法,将表示为SMPL-X序列的源运动重新定位到目标字符。将SRig定义为SMPL-X人体模型的rig,将TRig定义为目标角色在静止身体姿势中z轴向上的rig,将两个rig之间的比例均衡为:
3.2 3D Environment Context
数据集包含室外场景和室内场景,涉及随机但物理一致的角色-物体和物体-物体交互,模拟逼真的角色-场景和角色-角色交互。
室外场景。从GSO和PartNet中随机选择刚性物体来填充室外场景。使可变形角色在这些场景中移动,并将这些角色视为无限质量的被动物体。还在随机时间步骤对刚性物体施加随机力,以创建近乎随机的运动轨迹,具有逼真的物理碰撞。使用从PolyHaven收集的HDR环境纹理映射到类似圆顶的区域,以模拟自然背景。
室内场景。手动构建3D室内场景,复制运动捕捉数据集的特定3D环境,匹配场景布局和家具,从Blenderkit和3D-FRONT中获取家具。使用相同场景中的运动捕捉数据为角色添加动画,产生无碰撞且逼真的运动。这些运动反映了3D环境的真实可行性。
3.3. Camera Motion
对于室外场景,使用通过结构光流(Learning the depths of moving people by watching frozen people.)从YouTube视频中提取的轨迹来驱动相机。
对于室内场景,我们手动创建了相机轨迹,包括轨道、俯冲和缩放,并通过将摄像机连接到虚拟主体的头部来渲染自我中心的视频。
3.4. Scene Randomization
场景随机化。通过对合成场景进行随机化来增加多样性,步骤类似于iGibson。对于室内场景,通过从BlenderKit中的材质中采样,纹理、光照随机化。对于室外场景,从GSO中的纹理图像中进行采样,物体外观随机化。从Blenderkit中的毛发材质中进行采样,动物外观随机化。从PolyHaven 中的HDR图像中采样,背景随机化。
如图4所示,这些场景随机化步骤为数据增加了多样性和难度。
3.5. Annotation Generation
注释生成。通过导出随机前景和背景顶点的跟踪2D和3D坐标,来生成点轨迹。
通过将跟踪点的深度与投影坐标处的渲染深度值进行比较,计算可见性注释。
如图5所示,还导出了深度、法线、实例分割、相机外参和相机内参。
3.6. Statistics
数据集包括43个室外场景和61个室内场景,总计216K帧,分辨率为540×960,帧率为30 FPS。使用Blender中的Cycles引擎,2600个GPU小时来渲染。将数据集划分为166K帧用于训练,24K帧用于验证,26K帧用于测试。表1总结了统计信息。
4. Long-Term Tracking with PIPs++
提出了一种方法,利用PointOdyssey数据集的真实长距离运动注释,既可以建立数据集“测试”部分的合理基准,又可以改进现有方法在真实场景中的性能。
方法基于PIPs,改进之处在于它同时检查8帧,而先前的PIP通常只使用2帧。这使得模型有效处理遮挡,因为它可以使用遮挡之前和之后的帧来估计轨迹中缺失的部分。本文工作的两个主要挑战:(1)时间视野仅限于8帧,意味着该方法无法处理超过这个时间范围的遮挡;(2)模型完全依赖目标的第一帧外观,这使得在外观变化中进行对应关系的匹配变得困难。
4.1. Preliminaries (PIPs)
PIPs方法将一个8帧的RGB视频作为输入,以及一个表示要跟踪的目标的坐标 p1 = (x1, y1)。输出一个8×2的矩阵,表示目标在给定帧中的轨迹。这个过程可以在8帧段上重复进行,以生成长距离的轨迹。轨迹之间没有信息传递,因此称为persistent independent particles。推理包括两个主要阶段:初始化和迭代循环。
初始化。在开始跟踪之前,使用一个二维残差卷积网络(Deep residual learning for image recognition)为每一帧计算特征图Ft。通过在起始帧的特征图上的目标位置进行双线性采样,得到表示目标外观的向量: = sample(
,
)。使用这个起始坐标和特征向量,初始化一个位置和特征的列表,{(
,
)} = {(
,
)},其中t ∈ {1, 2, · · · , T}。
迭代更新。目的是改善位置,使其更好地跟踪目标。将第k次迭代的工作空间表示为{(
,
)},通过在当前估计位置周围的局部窗口内,测量 每个时间步的特征向量 与 时间步的特征图之间 的相似性 来开始一次迭代更新:
⊗表示点积,multicrop(,
)表示在以
为中心的
上产生多尺度裁剪,σ温度参数。MLP-Mixer(Mlp-mixer: An all-mlp architecture for vision.)将这些相关性作为输入,同时还考虑了视觉上的点运动
−
和特征
,并生成完整序列的位置和特征的更新:{ ∆
, ∆
}。
将这些更新相加,得到 = ∆
+ ∆
,从而导致在下一次迭代中对新的局部相关性进行采样。特征向量最终被送入线性层,产生每个时间步的可见性估计。
图6:使用1D Resnet迭代更新位置轨迹。
限制。PIPs方法受到其训练时的时间视野的限制,这是由于在迭代阶段使用了MLP-Mixer。在时间上链接生成的长轨迹对 漂移 和 超出时间窗口范围的遮挡 非常敏感。且PIPs中提出的可见性感知链接不易地行化,因此长距离多粒子跟踪的计算昂贵。此外,特征更新操作无法执行类似于模板更新的任务,因为它无法访问输入帧。特征列表的残差更新可能仅用于可见性估计。
4.2. Expanding the temporal field of view (PIPs+)
对PIPs的第一个修改:扩大时间视野,实现更长距离的跟踪。PIPs的关键组件是MLP-Mixer,而这里用一个 由8个1D Resnet(Deep residual learning for image recognition.)组成的块 替换MLP-Mixer,实现沿时间轴进行卷积。这意味着学习可以在时间轴上滑动的卷积核。每个残差块包括两个内核大小为3的卷积层,使用实例归一化和ReLU。在最后一个块中,感受野为35个时间步。由于这个模块在推理过程中会迭代,所以有效的感受野要大得多。
这种名为PIPs+的卷积变体改进了长距离跟踪的准确性,并且在长视频中加快了推理速度(在Nvidia V100 GPU上,从平均4 FPS提高到平均55 FPS,分辨率为720×1080)。卷积设计使我们能够使用不同长度的视频进行训练和测试,类似于完全卷积的2D网络可以使用不同尺寸的图像进行训练和测试,但实际上我们发现训练和测试时使用大致相似的序列长度仍然很重要。
4.3. Extending to multiple templates (PIPs++)
PIPs中,每个帧的特征f1用于在时间范围内的每个帧上进行互相关。这可能会导致目标外观变化后的弱匹配以及遮挡期间的错误匹配。第二个修改旨在解决这个“模板更新”问题。
思路:通过收集沿估计轨迹的“最近外观”模板来适应外观变化,以补充第一帧的“初始外观”模板(Fear: Fast, efficient, accurate and robust visual tracker.)。
具体而言,在计算第 t 帧的局部相关性时,使用估计的轨迹从该时间步长提取新的特征,例如{t − 2, t − 4}。这意味着使用来提取临时特征向量
= sample(
,
)。使用这些特征在当前帧的特征图Ft上计算额外的相关性:
这个过程在图6中有所说明:对于任何查询点,首先计算相似度成本量Cpt。
关键思想是,如果在其中一个偏移帧上跟踪成功,那么提取的特征将反映目标的更新外观,并且会产生比f1更有用的相关性图。这些多个相关性图简单地串联起来,增加输入到1D Resnet中的通道数。始终保留初始模板f1,以防止“遗忘”。
这种多模板策略结合了灵活的时间计算,省去了残差特征更新的步骤,因此只需省略这个组件。出于简化的考虑,也省略了可见性估计。
5. Experiments
Baselines.
基准测试:PIPs、TAPNet、PIPs+、PIPs++、RAFT 、DINO。
5.1. Experimental setup
RAFT和DINO用预训练的权重评估。在PointOdyssey上训练和测试PIPs和TAP-Net,使用4-8个A5000 GPU并行计算。在TAP-Vid-DAVIS和CroHD上进行评估。
5.2. Evaluation
评估指标。
TAP-Vid提出的平均位置准确度δavg:它衡量了在一定阈值距离内与地面真实轨迹相匹配的轨迹的百分比,以256×256的归一化分辨率进行平均,阈值为{1, 2, 4, 8, 16}。
用中位轨迹误差(MTE)来衡量估计轨迹与地面真实轨迹之间的距离。对异常值不太敏感。
“存活”率:跟踪失败前的平均帧数。当L2距离超过一个错误阈值时(在归一化的256×256分辨率下,长期数据为50像素,短期数据为16像素),则认为跟踪失败。
定量结果。
比较方法:PIPs+和PIPs++在所有方法中取得了最好的结果,证明了广泛的时间感知的有效性。PIPs+和PIPs++之间的差距较小,表明多模板策略只有一定的效果。在PointOdyssey数据集上重新训练的先前方法在真实世界数据集上表现更好。只有TAPNet在Kubric上训练的模型表现最好,可能是由于较小的计算预算(所有模型都是在4-8个GPU上进行训练的)。
比较数据集:图8显示了PointOdyssey中随时间变化的存活率。所有方法在长时间内保持轨迹的“存活”都很困难,但PIPs模型衰退得更慢。
定性结果。
定性结果。更稳定的点轨迹。
6. Limitations
PointOdyssey目前缺乏相机行进距离较长的大型室外场景,例如驾驶数据。希望探索远程代理-场景和代理-代理交互。
PointOdyssey的人类和动物运动模式受限于基础数据集,而借助最近的生成模型(Humor: 3d human motion model for robust pose estimation、MIME: Humanaware 3D scene generation.)可以解除这一限制。
尽管PIPs++仍然是一个相对低级的跟踪器,完全依赖外观匹配线索和时间先验。希望后续能利用场景级和语义线索进行跟踪。
7. 结论
PointOdyssey是一个用于长期点跟踪的大规模合成数据集和数据生成器。该数据集具有多样性和自然性,是训练通用精细跟踪器的理想资源。
提出了基于PIPs改进的PIPs++,该跟踪器利用长期时间上下文,并且优于现有的最先进方法。
1)PIPs+:扩大时间视野。用一个由8个1D Resnet组成的块替换MLP-Mixer。
2)PIPs++:解决“模板更新”问题:通过收集沿估计轨迹的“最近外观”模板来适应外观变化,以补充第一帧的“初始外观”模板。