本文翻译为机翻,仅作初步了解学习使用,需要用到的时候再回来整理。 如有侵权,请私信本人。 原文链接: https://arxiv.org/pdf/1508.04546.pdf. 参考链接: https://blog.csdn.net/qq_40245826/article/details/100831468.
综合分析法是计算机视觉中许多任务的成功方法,如RGB-D图像中物体的6D位姿估计就是本文的主题。其目的是将观察结果与前向处理的输出进行比较,例如特定姿势下感兴趣对象的渲染图像。由于遮挡或复杂的传感器噪声,很难以有意义的方式进行这种比较。我们提出一种“学会比较”的方法,同时考虑到这些困难。这是通过一个卷积神经网络(CNN)来描述一个特定物体姿态的后验密度来完成的,该网络将观察到的图像和渲染的图像进行比较。用极大似然范式对网络进行训练。我们可以用不同的几何图形来观察不同的物体,也不能用它来观察不同的物体。与现有技术相比,我们在两个不同的数据集上显示了显著的改进,包括总共11个对象、杂乱的背景和严重的遮挡。
大量的研究工作集中在图像和视频中的目标实例检测和姿态估计方面。在本文中,我们考虑在单个RGB-D图像中的姿势估计,如图1所示。在给定额外深度通道的情况下,提取场景中物体实例的完整6D姿态(3D旋转和3D平移)变得可行。姿态估计在许多领域都有重要的应用,例如机器人学[21,32]、医学成像[24]和增强现实[12]。最近,Brachmann等人。[5]在RGB-D图像中采用自适应综合分析法进行位姿估计,取得了最新的结果。他们使用随机森林[6]来获得像素密集的预测。在文献[5]的基础上,我们提出了一种在综合分析框架下学习比较的新方法。我们在概率背景下使用卷积神经网络(CNN)来实现这一点。
综合分析法是计算机视觉中许多任务的成功方法,如目标识别[13]、场景解析[15]、姿态估计和跟踪[9]。正演合成模型从对世界可能的几何解释中生成图像,然后选择最符合测量的视觉证据的解释。特别是对于姿势估计,其思想是将观察结果与前向处理的输出进行比较,例如在特定姿势下感兴趣对象的渲染图像。当尝试在RGB-D图像中进行位姿估计时,由于遮挡或复杂的传感器噪声,比较分析是非常重要的。例如,有些区域在Kinect中没有深度测量或红外反射较差。
•我们在重遮挡的RGB-D图像中,相对于最先进的姿势估计方法,我们取得了相当大的改进。 •据我们所知,这项工作是第一次利用卷积神经网络(CNN)作为概率模型来学习比较渲染图像和观察图像。 •我们注意到CNN并不专门研究特定对象的几何或外观,它可以用于形状和外观迥异、背景不同的对象。 论文组织如下。第2节概述了相关工作。我们提出的方法在第3节。第4节我们对我们的方法进行了评估,并与两个数据集的最新技术进行了比较。我们在第5节总结了论文。
计算机视觉领域的大量工作集中在目标检测和姿态估计问题上,包括实例和类别识别、刚性和铰接对象以及粗略(量化)和精确(6D)姿势。姿态估计一直是一个活跃的话题,从基于模板的方法[14,8],基于稀疏特征的方法[21],以及密集方法[25,5]。在下面的简要回顾中,我们将重点介绍CNNs和综合分析技术。
CNNs,近年来正在推动计算机视觉的发展,如图像分类[16]、检测[31]、识别[2,23]、语义分割[20]、姿势估计[27]。CNN在大规模视觉识别挑战赛(ILSVRC2012)中表现出了出色的表现。与以往的特征提取方法相比,CNNs在图像特征提取方面取得了很大的成功。在文献[11]中,我们利用CNNs学习了丰富的图像和深度特征表示来检测RGB-D图像中的目标。在文献[1]中,CNNs用于生成给定一组3D椅子模型、椅子类型、视点和颜色的RGB图像。Gupta等人最近的研究使用[11]输出的对象实例分割来推断RGB-D图像中的三维对象姿势。另一个CNN用于预测物体的粗略姿态。这个CNN是使用包含渲染合成对象的图像中的像素法线训练的。这种粗略的姿势用于将少量原型模型与数据对齐,并将最适合的模型放置到场景中。与上述方法不同,我们使用CNN作为概率模型来比较渲染图像和观察图像。我们的CNN的输出是能量值,而在[10]中CNN的输出是物体的姿态。在[7]中,我们学习了相似性度量。学习过程使判别损失函数最小化。采用siamese网络结构的CNN映射两个人脸特征空间。类似地,在[29]中,Wohlhart和Lepetit训练了一个CNN来将图像块映射到一个描述符空间,在这个空间中,姿势估计和目标识别通过最近邻方法来解决。我们的框架是概率的。姿态的后向分布采用Gibbs分布模型,CNN为能量函数。Zbontar和LeCun[30]训练CNN预测两个图像块的匹配程度,并使用它计算立体匹配成本。通过基于交叉的代价聚合和半全局匹配,然后进行左右一致性检查以消除遮挡区域中的错误,从而使代价最小化。在[30]中,CNN用于比较两个图像块,而我们的CNN用于比较渲染图像和观察图像。
综合分析法是计算机视觉中许多任务的成功方法,如目标识别[13]、场景解析[15]、视点合成[13]、材料分类[28]和凝视估计[26]。所有这些方法都使用前向模型来合成某种形式的图像,并将其与观测值进行比较。许多著作学习特征表示,并在特征空间进行比较。例如,在三维合成中使用了重建目标的策略。正向模型综合了定义在不变特征上的视觉模板。Gall等人提出了一种基于综合分析的运动捕捉与跟踪框架。它结合了基于补丁和基于区域的匹配来跟踪身体部位。基于补丁的匹配提取两个连续帧之间的对应关系以进行预测,并提取当前图像与合成图像之间的对应关系以避免偏移。最近,Brachmann等人采用经典的综合分析法从单个RGB-D图像中估计特定目标的6D位姿,取得了最新的结果。它们使用一种新的表示形式,即关节密集的三维对象坐标和对象类标签。我们主要是通过比较分析的方法来学习我们在工作中的差异。对于6D姿态估计问题,由于遮挡或复杂的传感器噪声,很难将观测结果与特定姿态下感兴趣物体的渲染图像的输出进行比较。
在本文中,我们提出了一种方法,它借鉴了CNNs最近的成功经验。与上述方法不同的是,我们用一个CNN来模拟特定物体姿态的后验密度,该CNN将观察到的图像和渲染的图像进行比较。用极大似然范式对网络进行训练。最密切相关的著作之一是[18]1。他们使用CNN作为概率模型的一部分。CNN以顺序的方式输入,首先是渲染图像,然后是观察到的图像。这将产生两个特征向量,并在子序列步骤中进行比较,以给出观测图像的概率。与[18]不同的是,我们将渲染和观察到的图像共同输入到CNN中,以产生一个能量值。主要的区别是我们的CNN是经过训练的,而他们把预先训练好的CNN作为特征提取器。
现在我们将从[5]2开始详细描述这个系统,因为它与我们的方法特别相关。Brachmann等人通过使用随机森林[6]获得像素密集预测,从而实现了最先进的结果,这有助于姿势估计。森林中的每棵树都经过训练,共同预测一个像素属于哪个对象,以及它在对象表面的位置。树为每个对象输出一个软分割图像,其值介于0和1之间,指示一个像素是否属于该对象。然后将不同树的预测组合成单个目标的概率。另外,每个树输出每个对象和每个像素的三维对象坐标。术语“对象坐标”是指对象局部坐标系中的坐标。在估计特定物体的姿态时,Brachmann等人利用森林预测有两种方法:
一是定义一个能量函数,通过最小化得到最终的姿态。能量的各个方面都遵循综合分析原理。它基于预测、记录的深度值和特定姿势下物体的渲染图像之间的像素比较。具体来说,进行了三个比较:(a)对象的渲染深度图像与记录的深度图像进行比较;(b)对象坐标的渲染图像与预测的对象坐标进行比较;(c)对象的渲染分割掩码与对象的预测对象类概率进行比较。分割掩模内的像素误差被聚集并除以掩模的面积。鲁棒误差度量用于处理异常值。
其次,他们使用森林预测作为一个有效的优化方案,以最小化上述能量。它包括两个步骤。在RANSAC姿态估计中使用像素级目标概率。具体来说,根据对象类概率对三个像素集进行采样。对于每个集合,使用深度摄影机提供的摄影机坐标和森林预测的对象坐标之间的3D-3D对应关系计算姿势假设。根据能量函数,最好的假设在最后一步得到完善。细化是通过反复确定对象的渲染遮罩中的内部像素来完成的,并再次使用它们提供的对应关系来计算更好的姿势。
最后。以能量最小的姿态作为最终估计。在我们的工作中,我们建立在[5]的框架之上。在[5]中,我们使用回归分类随机森林来获得上述预测。我们也使用他们的优化方案,但是用一个新的基于CNN的能量函数来代替能量函数。关键的区别在于,虽然[5]中的能量函数只有几个参数可以通过判别交叉验证过程进行训练,但CNN有大约600K,我们用极大似然法训练。我们在实际应用中发现,这些参数的丰富性使我们更好地处理了这种噪声。下一节将介绍这种方法。
我们将首先描述姿态估计任务,并介绍我们的术语。然后我们将描述我们的概率模型。这个模型的核心是一个CNN,这将在后面讨论。接着介绍了概率模型的最大似然训练过程。最后描述了我们在测试时的推理过程。图2给出了我们的测试管道的概述。
现在我们将正式定义6D姿态估计的任务。我们的目标是从用x表示的一组观测值中估计刚性物体的姿态H,这将在后面讨论。姿势描述了从物体的局部坐标系到相机坐标系的变换。局部坐标系的原点在对象的中心。每个姿势H=(R,T)是两个组件的组合。旋转分量R是一个3×3矩阵,描述了物体绕中心的旋转。平移分量T是与相机坐标系中对象中心位置相对应的三维矢量。
现在让我们来描述用于估计物体姿态的观测值x。我们使用RGB-D图像作为输入。然而,由于我们使用与[5]中相同的随机森林预测,术语观测或观测图像将指两部分:(a)如[5]所述的森林预测,以及(b)记录的深度图像。这种简化观点的原因是,我们的工作重点在于后验密度的建模和随机森林预测的各个方面。
假设观测值x为Gibbs分布,我们模拟了姿态H的后向分布 其中E(H,x;θ)是所谓的能量函数。能量函数是从姿态H和观测图像x到实数的映射,由向量θ参数化。注意,使用吉布斯分布来模拟后验概率是条件随机场(crf)的一种常见做法[19]。然而,潜在的能量是完全不同的。而在CRF中,能量函数是势函数的和,我们用CNN来实现它,它直接输出能量值。参数向量θ保持了CNN的权重。
为了实现从姿态H和观察到的图像x到能量值的映射,我们首先在姿态H中渲染对象以获得渲染图像r(H)。然后我们的CNN将x与r(H)进行比较,并输出值fx,r(H);θ。我们定义了能量函数 我们的网络经过训练,当观察到的图像和渲染图之间有很大的一致性时,分配一个低能量值,当几乎一致时分配一个高能量值。为了进行比较,我们使用了一个简单的架构,我们将所有渲染和观察到的图像作为单独的输入通道输入到CNN。
注意,我们只考虑在H姿态物体中心周围的一个正方形窗口。窗口的宽度根据物体的大小和距离进行调整,如[5]所示。采样的原因是比100×100像素的窗口大。我们的网络总共使用六个输入通道。注意,图2示出了从中导出这六个输入信道的图像。
一个观测深度通道和一个渲染深度通道,其中包含以毫米为单位的值。通过根据H减去对象位置的z分量对其进行正则化。 对象的一个渲染掩膜通道。对于属于对象的所有像素,像素值为+1,否则为-1。 一个深度掩膜通道,指示是否在像素中测量深度值。同样,对于测量深度的所有像素,像素值要么是+1,否则为-1。 一个概率信道,包含所有树的像素级目标概率。这些值被重新调整为介于-1和+1之间。 一个对象坐标通道,该通道保持渲染对象坐标和来自树的预测对象坐标之间的逐像素欧几里德距离,为各个像素提供最高的对象概率。我们将所有对象的正则化化值除以对象的直径。
在每个卷积层和每个完全连接层之后使用tanh激活函数。第一卷积层C1由大小为3×3×6的128个卷积核组成。第二个卷积层C2由大小为3×3×128的128个核组成,随后是一个2×2最大池化层,每个方向的步长为2。第三卷积层C3与C2相同。第四个卷积层由256个3×3×128的核组成。然后对剩余的映像大小执行最大池操作。256个通道被两个完全连接的层进一步处理,每个层有256个神经元,最后被转发到一个单独的输出单元。
在训练中,我们希望根据标记的训练数据L=(x1,H1),,,(XN,HN)找到一组最佳参数θ*。其中xi将表示第i个训练图像的观察,Hi为对应的地面真实姿态。我们应用最大似然范式并定义 为了解决这一优化任务,我们使用随机梯度下降[3],这需要计算每个训练样本的对数似然的偏导数 对于每个参数θj。这里,E[·|xi; θ)是根据后验分布p(Hi|Xi; θ)表示条件期望值,参数由 θ参数化。在我们的CNN中,虽然能量函数的偏导数可以通过反向传播来计算,但是期望值不能以闭合形式找到。因此,我们使用Metropolis算法[22]对其进行近似处理,如下所述。
取样。通过一组姿势样本可以近似公式(4)中的期望值 其中H1,HN是独立于后验p(H | x;θ)和当前参数θ独立提取的姿势样本。我们使用Metropolis算法[22]来生成这些样本。它允许从任何具有已知密度函数的分布中进行采样,该密度函数可以被估计为常数因子。该算法通过重复两个步骤生成一系列的样本Ht: 1根据建议分布Q(H’ | Ht)提取一个新的建议样本H’。 2根据接受概率A(H‘ | Ht)接受或拒绝提议的样品。如果建议的样品被接受,设置Ht+1=H’。如果拒绝,设置Ht+1=Ht。
建议分布Q(H‘ | Ht)必须对称,即Q(H‘| Ht)=Q(Ht | H’)。下一节将详细介绍我们的具体建议分布情况。在我们的例子中,接受概率定义为 这意味着,当建议样本的后验密度p(H‘ | x;θ)大于当前样本的后验密度(Ht | x;θ),建议样本将自动被接受。如果不是这样,则可以接受概率为p(H’ | x;θ)/p(Ht | x;θ)。
建议分布。建议分布的一个常见选择是以当前样本为中心的正态分布。在我们的例子中,这是不可能的,因为姿势的旋转分量存在于流形SO(3),即旋转组上。我们通过描述一个采样过程并确保它是对称的,从而隐式地定义了Q(H‘ | Ht)。所提出样品的平移分量t’直接取自以当前样品Ht的平移分量Tt为中心的三维各向同性正态分布N(Tt,∑T)。通过对当前样品的旋转分量Rt施加随机旋转Rˆ,产生所述样品H‘的旋转分量R’:R‘=R^Rt.
我们将Rˆ计算为对应于Euler向量e的旋转矩阵,该向量是从三维零中心各向同性正态分布e∼N(0,∑R)中提取的。
初始化和老化阶段。当Metropolis算法在低密度区域初始化时,需要更多的迭代来提供期望值的公平近似值。我们在下一节中用我们描述的查找当前参数集的初始化过程。然后我们执行Metropolis算法总共130次迭代,忽略前30次迭代的样本,这些样本被认为是老化阶段。
在测试期间,我们的目标是找到MAP估计值,即最大化后验密度的姿势,如公式(1)所示。由于公式(1)中的分母对于任何给定的观测值x都是常数,因此找到MAP估计值就等于最小化我们的能量函数。为了达到这个目的,我们使用了文献[5]中的优化方案,但是用我们的能量函数代替了它们。
下面我们将我们的方法与Brachmann等人的最新方法进行比较。对于两个不同的数据集。我们首先描述了竞争对手的一些实现细节,并介绍了数据集。然后详细描述了我们的训练流程,最后给出了定量和定性的比较。我们将看到数据集的巨大改进。此外,我们观察到我们的CNN从一个单一的训练对象归纳为一组11个测试对象,在外观和几何结构上有很大的变化。
数据集。我们使用两个具有严重遮挡的数据集。第一个数据集由Brachmann等人创建,通过注释8个部分被遮挡物体的地面真实姿势,从Hinterstoisser等人的数据集中获取。我们将此数据集称为[5]和[14]中的遮挡数据集。它总共包括8992个测试用例(带有不同注释的图像),用于测试。我们选择这个数据集是因为它比[14]中的原始数据集更具挑战性,而[5]已经实现了平均98.3%的正确姿势估计。第二个数据集由Krull等人引入。它提供了三个不同物体的六个带注释的RGB-D序列,共包含3187张图像。我们使用其中三个序列进行训练,另外三个序列(总共1715个测试图像)用于测试。
评估方案。我们使用[5]中描述的评估程序。这意味着我们计算每个序列正确预测姿势的百分比。在[14]中,我们计算了在估计姿态和地面真实姿态下三维模型顶点之间的平均距离。当平均距离低于对象直径的10%时,姿势被认为是正确的。
竞争对手。我们将我们的方法与文献[5]中的方法进行了比较。为此,我们需要重新实现这个方法。我们观察到,我们的重新实现平均会产生稍微好一点的结果。在下面,我们主要报告两个数字,一个是我们重新实现的,另一个是[5]或[17]中报告的方法[5]。为了完整起见,我们还提供了LineMOD[14]中的数字,如[5]所述。
随机森林。我们使用不同的随机森林对两个数据集进行训练和测试。森林是由[5]的作者友好地提供给我们的。
CNN。我们训练了三个cnn,每次只使用Krull等人提供的数据集中的一个对象。在[17]中。序列工具箱1、Cat 1和武士1用作训练集-见图3。为了获得高比例的遮挡,武士1号的前100帧被移除。我们的验证集由100个随机选择的帧组成,这些帧来自Cat 1序列,或者武士1序列(在Cat 1被用作训练集的情况下)。CNN的权值是随机初始化的。训练前,将最后一层的随机权重乘以因子1000,以覆盖更大范围的可能能量值。在每5次随机梯度下降迭代后,我们对验证集进行推理并调整学习速率。步骤t的学习率与γt=γ0/(1+γ0λt)[4]成正比,其中γ0=10,λ=0.5。在训练之后,我们选择一组权重,在验证集上达到正确估计的最高百分比。我们使用[14]中的标准将姿势分类为正确。一个训练周期包括五个步骤的随机梯度下降和验证,时间为 9分46秒(2分27秒+7分19秒)。有关我们训练程序的更多细节,请参阅补充材料。
[5]和[14]中的遮挡数据集。图4显示了所有单独测试和训练对象的数据集的定量结果。考虑到所有对象的平均值,与我们重新实现的[5]相比,我们实现了高达9.23%的改进,与[5]中报告的值相比提高了10.4%。一些定性结果如图7所示。在图5中,我们展示了关于[5]我们的方法的另一个比较。结果表明,我们在50%到60%的遮挡率下获得了最大的增益。
Krull等人的数据集。对于这个数据集,我们观察到与前一个数据集相似的结果。由于其他序列用于训练和验证,我们仅使用工具箱2、Cat 2和武士2序列进行评估。与文献[5]的结果相比,在所有对象上取平均值时,我们获得了10.97%的改进。定量结果如图6所示,少数定性结果如图8所示。
失效案例的讨论。图7中红色边框的失效案例必须被视为我们所学能量函数的失效。然而,橙色框架下的失效案例在地面真实姿态下的能量仍低于估计值。这表示优化方案失败。在这种情况下,可以使用另一种优化方案来找到正确的姿态。在Krull等人介绍的数据集中。我们的工具箱序列精度低于我们的竞争对手(见图6)。我们将其归因于这样一个事实:工具箱是最大的对象,并且受第3.3节中描述的下采样模式的影响最大。
我们提出了一个用于6D姿态估计的后验分布模型,它使用CNN将渲染和观察到的图像映射为一个能量值。我们基于最大似然范式训练CNN。实践证明,在单个目标上训练是足够的,CNN能够对不同的对象和背景进行推广。我们的系统已经在两个具有严重遮挡的数据集上进行了评估。通过使用我们的能量作为目标函数进行位姿估计,我们能够取得相当大的改进,与之前发表的最好的结果相比。
我们的方法不局限于特性通道,甚至我们演示的应用程序。CNN的结构原则上可以应用于任何类型的观察和渲染图像。我们认为,如果这种方法可以应用于其他情况,这将是值得研究的。一个例子是在没有记录深度图像的情况下从纯RGB进行姿态估计,以及一个计算特征的森林。对象类的姿态估计也可以从我们的方法中受益。考虑到CNNs最近在识别方面的成功[2,23],CNN可能会学习将观察到的图像与表示对象类而不是实例的理想模型的渲染进行比较。与所观察到的图像相比,我们的方法并不局限于所观察到的图像的深度。相反,它可以通过将观察到的RGB中的着色与渲染的深度图像进行比较来评估其合理性,后者比真实的RGB渲染更容易生成。未来一个有趣的研究方向可能是训练CNN从观察到的和渲染的图像中预测姿势更新。这可以替代细化步骤,并可能改善结果。
Deep generative vision as approximate bayesian computation: http://www.mit.edu/~ilkery/papers/KulkarnietalNIPSABC.pdf. ↩︎
Learning 6D Object Pose Estimation using 3D Object Coordinates:http://wwwpub.zih.tu-dresden.de/~cvweb/publications/papers/2014/PoseEstimationECCV2014.pdf ↩︎