源码 http://github.com/yihui-he/epipolar-transformers
摘要
在同步和校准的多视图设置中定位3D人体关节的常见方法由两个步骤组成:(1)在每个视图上分别应用2D检测器以定位2D中的关节,以及(2)对来自每个视图的2D检测执行鲁棒三角测量以获取3D关节位置。然而,在步骤1中,2D检测器仅限于解决可能在3D中更好地解决的挑战性情况,例如遮挡和倾斜视角,纯粹在2D中,而不利用任何3D信息。因此,我们提出了可微分的“对极Transformer”,它使2D检测器利用3Dawaware功能来改善2D姿态估计。直觉是:给定当前视图中的2D位置p,我们希望首先在相邻视图中找到其对应的点p,然后将p处的特征与p处的特征组合,从而导致p处的3D感知特征。受立体匹配的启发,极线Transformer利用极线约束和特征匹配来近似p处的特征。在InterHand和Human3.6M [13]上的实验表明,我们的方法在基线上有一致的改进。具体来说,在不使用外部数据的情况下,我们使用ResNet50主干和图像大小256×256训练的Human3.6M模型比最先进的模型高出4.23mm,达到MPJPE 26.9mm。代码可用1。
引言
我们提出了完全可微的“对极Transformer”模块,它使一个2D检测器获得3D信息的2D检测器本身的中间层,而不仅仅是在最后的强大的三角测量阶段。对极Transformer利用来自相邻视图(源视图)的特征来增强给定视图(参考视图)的2D检测器的中间特征,从而使得中间特征是3D感知的,如图1所示。为了计算参考视图中位置p处的3D感知中间特征,我们首先找到源视图中对应于p的点:p,然后将p处的特征与p处的特征融合以获得3D感知特征。然而,我们不知道正确的p在哪里,所以为了近似p处的特征,我们首先利用源视图中p生成的对极线来限制p的潜在位置。然后,我们计算p处的特征与沿着极线采样的特征之间的相似性。最后,我们沿着极线对特征进行加权求和,作为p处特征的近似。用于加权和的权重是特征相似性。为了融合p和p处的特征,我们提出了受非局部网络启发的多种方法[34]。请注意,上述操作是针对中间特征图中的所有位置密集完成的,因此我们的模块的最终输出是一组具有与输入特征图相同维度的3D感知中间特征。
由于对极Transformer是完全可微分的,并且输出具有与输入相同尺寸的特征,因此它可以灵活地插入到2D姿态检测网络的期望位置并进行端到端训练。我们的网络的输入是几何校准和同步的多视图图像,网络的输出是2D关节位置,然后可以进一步三角测量以计算3D关节位置。请注意,即使我们的网络输出2D关节位置,我们的网络也可以访问2D和3D特征,从而使其能够利用更多信息来实现更准确的2D预测。
为了评估我们的对极Transformer的性能,我们在Human3.6M [13]和InterHand上进行了实验。在Human3.6M [13]上,当在分辨率为256×256的输入图像上使用ResNet-50主干并且在没有外部数据的情况下进行训练时,我们实现了26.9 mm的平均每个关节位置误差。这优于现有技术,Qiu et al.[28]从ICCV'19增加4.23 mm。InterHand是一个内部多视图手部数据集,我们也一直优于基线。
方法的优点如下:
1.核线Transformer可以很容易地添加到现有的网络架构中,只要它是完全可微的,并且输出特征尺寸与输入相同。
2.对极Transformer包含最小可学习参数(参数大小是C乘C,其中C是输入特征通道大小)。
3.核线Transformer是可解释的,因为人们可以分析沿着核线的特征相似性,以衡量匹配是否成功。
4.使用对极Transformer学习的网络可以推广到新的多相机设置,只要提供了内参和外参,这些设置就不包括在训练数据中。
方法
所提出的对极Transformer的概述,其使得2D检测器能够利用3D感知特征来进行更准确的姿态估计。对于查询向量(例如,长度为256),我们沿着源视图中相应的核线提取K个样本。点积和softmax用于计算查询和采样向量之间的相似度,进而用于计算相应的特征。然后,将对应特征与参考视图特征融合,以得到参考视图的3D感知特征。
我们的对极Transformer由两个主要组件组成:核线采样器和特征融合模块。给定参考视图中的点P,极线采样器将沿着源视图中的对应极线对特征进行采样。特征融合模块然后将采用(1)源视图中的采样位置处的所有特征和(2)参考视图中的p处的特征以产生最终的3D感知特征。注意,这对于来自参考视图的中间特征图的所有位置密集地完成。我们现在提供这两个组件的详细信息。
对极采样器 The Epipolar Sampler
我们首先定义用于描述极线采样器的符号。给定两幅同时从不同视角拍摄的图像,即参考视角I和源视角I,我们将它们的投影矩阵表示为M,M ∈ R3×4,将相机中心表示为C,C ∈ R4。如图1所示,假设相机中心不重叠,对应于I中的给定查询像素p =(x,y,l)的极线l可以确定性地位于I上,如下[11]。
其中M+是M的伪逆,并且[·] X表示斜对称矩阵。p在源视图中的对应点:p,应位于极线上:
给定源视图的对极线l,对极采样器沿着对极线的可见部分均匀地采样K个位置(在我们的实验中为64个),即,I和l的交点。采样位置形成具有基数K的集合P。极线采样器经由双线性插值对子像素位置(真实的值坐标)进行采样。对于极线与I完全不相交的查询点,我们简单地跳过它们。有关如何处理对极Transformer的图像变换的详细信息,请参见补充资料。
特征融合模块 Feature Fusion Module
理想情况下,如果我们知道源视图中对应于参考视图中的p的真实值p‘,那么我们需要做的就是对源视图中p处的特征进行采样:Fsrc(p‘),然后将其与参考视图中p处的特征组合:Fref(p)。然而,我们不知道地面真相p’。因此,受Transformer [33]和非本地网络[34]的启发,我们通过沿着极线的所有特征的加权和近似Fsrc(p’),如下所示:
其中成对函数sim(·,·)计算两个向量之间的相似性得分。更具体地说,它是一个点积,后面跟着一个softmax函数。
一旦我们从源代码视图中获得了特性:Fsrc(p),我们现在需要将其与参考视图中的特征融合:Fref(p)。融合特征的一种直接方式是由残差块[12]激发的,其中来自源视图的特征在被添加到参考视图的特征之前经历变换Wz,如图2(b)和以下等式所示:
在我们的实验中,权重Wz是1×1卷积。我们将这种方法称为恒等高斯体系(Identity Gaussian)结构。注意,输出Ffused具有与输入Fref相同的形状,因此该属性使我们能够将对极Transformer模块插入到许多现有网络的不同阶段中。
我们还探索了瓶颈嵌入式高斯架构,该架构由非本地网络[34]推广,作为图2(a)所示的特征融合模块。在对极Transformer之前,来自参考视图和源视图的特征经过嵌入式高斯内核,其中通道大小被下采样为2倍,并且输出被上采样回来,使得融合特征的形状仍然匹配输入的形状。
实验
我们已经在两个具有多视图图像和地面实况3D姿态注释的大规模姿态估计数据集上进行了实验:内部手部数据集InterHand和公开可用的人类姿势数据集Human3.6M [13]。
Feature fusion module design
Identity Gaussian性能稍好。我们假设,与视频分类[34]不同,姿态估计需要准确的对应关系,因此瓶颈嵌入高斯中的下采样可能对性能有害。
Max还是softmax?
我们使用softmax来获得沿着极线的权重。另一个选择是使用max,因为我们的目标是在极线上找到一个“正确”的点。如表1所示,max的性能略差于softmax。我们假设这是因为softmax为极线上的所有样本产生梯度,这有助于训练。
视角Viewing angle
我们现在研究所选择的相邻相机的视角差如何影响核线Transformer的性能。直觉是,如果源视图具有与参考视图非常相似的视角,则来自两个视图的特征可能太相似,因此对于我们的融合模块不是非常有用。然而,如果视图相距太远,则特征匹配变得更难。在其中一个视图中,点被遮挡的可能性也更高,这使得匹配更加困难。因此,我们在训练过程中使用四种视角设置进行实验:6◦、12◦、24◦和42◦。源视图是从视角最接近所选视角的十个相机中随机选择的。图4示出了具有与示例参考视图不同的视角的源视图的示例。如图4所示,极线Transformer在视角差24◦附近最有效,这是我们在其他InterHand实验中默认使用的设置。
插入对极Transformer的阶段
我们进行实验,以测试的理想位置插入到网络的极线Transformer。我们测试了两个设置:“晚”意味着在最终预测层之前插入对极Transformer,并且“早”意味着我们在沙漏单元之前插入模块[23]。具体位置详见补充资料。如表2所示,在添加对极Transformer的情况下没有显著差异。在本文的其余部分中,我们默认在后期进行融合。
测试期间使用的视图数量的影响
我们探讨如何在测试期间使用的视图的数量影响最终的性能。由于有许多不同的组合来采样参考和源视图,我们随机采样视图多次(当相机很少时多达100次),并确保每个相机至少有一个相邻相机的视角差接近24◦。比较的基线是不使用对极Transformer的香草沙漏网络。如图5所示,使用对极Transformer训练的网络始终优于基线。当使用非常少的视图时(例如,两个视图),使用对极Transformer的相对改进约为15%。这支持了我们的论点:核线变换器使网络能够使用来自相邻视图的信息来获得更好的2D关键点,并且当存在较少视图时,该信息是至关重要的。即使有更多的视图,对极Transformer仍然能够在基线上改进大约10%
Inference with multiple source views
我们介绍的核线Transformer不限于融合来自两个视图的特征。在测试期间,我们可以选择不同的相邻视图作为源视图,并选择具有最高置信度的预测(即,热图上的最高峰)。如表3所示,我们使用十个不同的相邻视图运行预测,并为每个单独的关节选择具有最高置信度的预测。多视图测试仅将MPJPE误差减少了0.1mm,这是微不足道的。当使用两个以上的视图进行训练时,性能可能会进一步提高,如MVSNet [40]。
与交叉视图融合的比较
Qiu等人。[28]学习每对视图的固定全局注意力权重。这种方法的局限性在于,它需要每个视图更多的图像来学习注意力权重。在InterHand上,交叉视图融合[28]的性能甚至比基线检测器更差,如表4所示。一个可能的原因是因为InterHand上每个视图只有大约3K图像,而不是Human3.6M上每个视图的312K图像[13]。此外,Human3.6M [13]只有四个视图,这使得学习成对注意力权重更容易,但学习InterHand的34个视图的权重要困难得多。
特征匹配可视化
核线Transformer的主要优点是,通过沿着核线可视化特征匹配相似性得分,它是容易解释的。我们可视化的featurematching沿着对极线的颜色特征,深功能学习没有对极线Transformer,并通过对极线变压器学习的功能的结果。对于颜色特征,我们首先将RGB图像转换到LAB颜色空间。然后我们丢弃了L通道,只使用AB通道,使其对光强更具有不变性
示出了一个具有挑战性的示例,其中感兴趣的联合点在两个视图中完全被遮挡。然而,考虑到利用对极Transformer的特征可以访问2D检测器本身中的多视图信息,沿着对极线的匹配找到“语义正确”的位置,即,仍然找到被遮挡的右手腕,这是姿势检测器的期望行为。然而,没有意识到多视图信息的特征在“物理上正确”的位置处具有最高的匹配分数,这在寻找对应性方面仍然是正确的,但是对于推断被遮挡关节的遮挡不是那么有用。补充材料中列出了更多的例子。
局限
我们的方法的最大限制是依赖于精确的几何相机校准。不良校准将导致不准确的极线,从而不正确的特征匹配。我们的方法的另一个限制是相邻相机视图的视角不应该太大,否则在其中一个视图中存在3D点可能被遮挡的高可能性,这将使得特征匹配更加困难
结论
我们提出了核线Transformer,它使2D姿态检测器利用3D感知的功能,通过融合功能沿着核线的相邻视图。实验不仅显示了在Human3.6M [13]和InterHand上的基线改进,而且还证明了我们的方法可以改进多视图姿态估计,特别是当相机很少时。沿着极线的特征匹配的定性分析也表明,极线Transformer可以提供更准确的匹配在困难的场景与闭塞。最后,极线Transformer具有非常少的可学习参数,并且输出具有与输入相同维度的特征,从而使其能够容易地增强到现有的2D姿态估计网络。对于未来的工作,我们相信对极Transformer也可以有益于3D视觉任务,例如深度多视图立体[40]。
补充
早期或后期阶段,我们可以将对极Transformer添加到主干模型中。(a)Hourglass networks [23] on InterHand.(b)ResNet-50检测器[37]在Human3.6M [13]上。