作者:康斯坦奇
来源:微信公众号@3D视觉工坊
论文题目:Single-Stage 6D Object Pose Estimation
论文地址:在公众号「3D视觉工坊」,后台回复「6D对象姿势估计」,即可直接下载。
摘要: 最新的6D姿态估计框架首先依靠深度网络在3D对象关键点和2D图像位置之间建立对应关系,然后使用基于RANSAC的Perspective-n-Point(PnP)算法的变体。但是,此两阶段过程不是最佳的:首先,它不是端到端可训练的。第二,训练深层网络依赖于替代损失,该损失不会直接反映最终的6D姿态估计任务。在这项工作中,本文介绍了一种直接从对应关系中回归6D姿势的深度架构。它为每个3D关键点输入一组候选对应关系,并说明每个组内对应关系的顺序无关紧要的事实,而各组(即3D关键点)的顺序是固定的。本文的体系结构是通用的,因此可以与现有的对应关系提取网络一起使用,从而生成单阶段6D姿态估计框架。本文的实验表明,这些单阶段框架在准确性和速度方面始终优于两阶段框架。
一、简介
最新的方法遵循两个阶段的范式:首先使用深层网络在3D对象点与其2D图像投影之间建立对应关系, 然后使用基于RANSAC的Perspective-n点(PnP)算法来计算6个位姿参数。这种范例虽然有效,但存在一些弱点。首先,用于训练深度网络的损失函数不会反映真实的目标估计,但会编码替代任务,例如将检测到的图像投影的2D误差最小化。但是,这种误差与姿势精度之间的关系不是一对一的。如图1(a)所示,对于最新框架,具有相同平均准确度的两组对应关系可能导致不同的姿态估计。其次,分别建立对应关系。这无法利用以下事实:知道3D点之一的2D投影的位置会对其他投影的潜在位置施加约束。最后,两阶段过程不是端到端可训练的。
图1:算法示意图。考虑一下的当前6D姿态估计算法,该算法使用深度网络为投手包围盒的八个3D角中的每个角预测几个2D对应关系。(a)因为它使这些对应关系的平均2D错误最小化,所以这种框架的两个实例可能会产生不同但具有相同平均准确度的对应关系,例如绿色和红色。如预计的绿色和红色参考帧所证明的那样,将基于RANSAC的PnP算法应用于这两组对应关系可以产生实质上不同的姿势。(b)即使仅使用绿色对应集,仅更改其顺序也会导致基于RANSAC的PnP算法返回不同的解决方案。
二、方法
给定经过校准的相机捕获的RGB图像,本文的目标是同时检测物体并估计其6D姿态。本文假设它们是刚性的,并且可以使用其3D模型。在本节中,本文首先对6D姿态估计问题进行形式化,假设对目标对象上的每个3D关键点都给予2D对应关系优先级,并提出一种从此类输入中产生6D姿态的网络体系结构。该网络如图3所示。然后,本文讨论当这些对应关系是另一个网络的输出时,如何获得单阶段6D姿态估计框架。
2.1 密集点位姿估计
让本文假设,对于n个3D对象关键点pi中的每一个,给定3×3摄像机固有参数矩阵K和m个潜在2D对应uik,其中1≤i≤n和1≤j≤m。pi用链接到对象的坐标系表示,如图2(a)所示。对于每个有效的3D到2D对应关系pi↔uik,其中λi是比例因子,R和t是定义相机姿态的旋转矩阵和平移矢量。因为R是旋转,所以它同样只有三个自由度和t,总共为6。
图2:3D到2D的对应关系。(a)给定n个3D对象关键点pi({(pi↔uik)}1≤i≤n,1≤k≤m中的每一个的m个潜在2D对应uik,可以基于这些3D到 2D对应。在这里,本文仅显示pi的对应簇。摄像机坐标系和对象坐标系分别由O和W表示。(b)姿势也可以从点到向量的对应关系中获得,在这种情况下,可以在3D点和2D向量之间定义3D到2D的对应关系。本文的方法可以处理两种情况。注意,上面的3D到2D对应不限于3D点到2D点对应。特别是,如图2(b)所示,本文的形式主义可以处理3D点到2D向量的对应关系,这已被证明更适合与深度网络结合使用。在那种情况下,可以将2D位置推断为两个2D向量的交点,然后等式1仍然保留在交叉点上。如下所述,本文的方法也仍然适用,因此除非必要,否则本文不会明确区分这两种类型的3D到2D对应关系。经典的PnP方法尝试在给定几种对应关系的情况下恢复R和t,这通常涉及使用RANSAC查找有效位。在此过程中,必须对许多随机选择的对应子集执行SVD,在找到仅包含有效对应的一个子集之前必须对其进行尝试。在这项工作中,本文建议通过非线性回归来代替这一繁琐的过程,该非线性回归是由经过适当设计的具有参数Θ的深层网络g实现的。换句话说,本文有现在,本文转到gθ的实际实现。在本节的其余部分中,本文首先讨论网络作为输入然后输入的3D至2D对应关系集C3 2 = {(pi piu ik)}1≤i≤n,1≤k≤m的性质 本文设计用来说明它们的体系结构。
2.1.1 密集点的属性
本文将所有与特定3D点相关联的2D点都称为一个簇,因为假设用于发现它们的算法是一个很好的算法,它们倾向于围绕3D点投影的真实位置进行聚类,如图1所示。本文的实现选择出于以下考虑:集群排序。聚类中的对应顺序无关紧要,并且不应影响结果。但是,聚类的顺序对应于3D点的顺序,该顺序已给定并固定。集群内部和集群之间的交互。尽管同一群集中的点对应于相同的3D点,但是应该预计每个点的2D位置估计会很吵。因此,该模型需要捕获每个群集内的噪声分布。更重要的是,一个单独的群集无法告诉本文有关姿势的任何信息,并且只能通过捕获多个群集的全局结构来推断最终的姿势。刚性转换。在使用深度网络处理3D点云时,通常希望结果对于刚性变换是不变的。相比之下,在这里,本文希望2D点代表3D点的投影,并且本文从它们中提取的特征应该取决于它们的绝对位置,这对于姿势估计至关重要。
2.1.2 网络架构
本文构建了一个简单的网络架构,如图3所示,该架构利用上面讨论的属性从对应簇预测姿势。它包括三个主要模块:具有共享网络参数的本地特征提取模块,单个群集中的特征聚合模块以及由简单的全连接层组成的全局推断模块。
图3:单阶段6D对象姿态估计的总体架构。
在通过一些细分驱动的CNN为6D姿势建立3D到2D对应关系之后,本文使用三个主要模块直接从这些对应关系簇中推断出姿势:具有共享网络参数的局部特征提取模块,一个特征 在不同聚类中运行的聚合模块,以及由简单连接的层组成的全局推断模块,用于估计最终姿态为四元数和平移。CNN输出中的颜色表示从网格单元中心到相应的投影3D边界框角的2D偏移。
局部特征提取。本文使用具有三层的MLP为每个对应关系提取局部特征,并在对应关系和整个群集之间共享权重。
分组特征聚合。由于给出了聚类的顺序,但是每个聚类中的点是无序的,为了提取每个聚类的表示,本文设计了一种对对应顺序不敏感的分组特征聚合方法。从理论上讲,本文可以使用与PointNet类似的架构。但是,PointNet旨在为刚性变换提供不变性,这与本文所需要的相反。相反,给定n个簇,每个簇包含m个2D点{uik},1≤i≤n,1≤k≤m,本文定义了一个集合函数F:X→RnD将对应关系{uik}1≤k≤m映射到 nD维向量其中,fik是通过上述完全连接的层获得的uik的D维特征表示,MAX()是最大池操作,而CAT()是串联操作。在本文的实验中,本文发现实例规范化和批处理规范化都没有改善此处的性能。因此,本文不在网络gθ中使用这些操作。原则上,可以使用单个最大池化操作,而无需考虑组的顺序,就像PointNet可以实现所有点的置换i方差一样。但是,在本文的案例中,这意味着忽略了固定了组顺序的属性。相比之下,等式3对于簇中的任何置换都是不变的,但仍然说明了预先定义的簇顺序。本文在结果部分展示了这种方法的好处。全局推断。然后,本文将聚集组特征的nD维向量通过另一个输出6D姿势的MLP。为此,本文使用三个完全连接的层并将最终姿势编码为四元数和平移。
2.2单阶段6D对象姿态估计
上面描述的深度网络为本文提供了一种从给定对象的对应簇预测6D姿势的可区分方式。给定输入图像,因此本文仍然需要检测每个对象并建立3D到2D的对应关系。为此,本文使用另一个带有参数Φ的深度回归器f,对于一个对象,本文可以这样写:其中I是输入的RGB图像。实际上,{pi}通常被视为对象3D模型的3D边界框的八个角,这会导致针对不同对象类型的不同3D点{pi}。在本文的实验中,本文发现对每个对象使用相同的{pi}对fφ的精度影响很小,并且使随后对gθ的训练更加容易。因此,本文对所有数据集对象使用单个多维数据集,定义为包含一个球体的最小立方体,该球体的半径是所有对象3D模型的边界球体半径的平均值。这意味着3D关键点坐标是由簇的顺序隐式给出的,不需要明确指定为网络输入。因此,本文对每个输入对应项使用4D表示,其中不包括3D坐标。相反,由于的网络在图像网格上运行,因此当本文使用它查找对应关系时,本文将输入作为2D投影所在的网格单元中心的x和y坐标以及dx和dy从该中心偏移。换句话说,2D对应关系的图像坐标为x + dx和y + dy。本文尝试将这些直接用作输入,但通过实验发现,给网络一阶扩展的效果更好。当使用而不是的网络查找对应关系时,本文使用相同的输入格式,但对dx和dy进行归一化,以便它们表示方向。因此,本文的完整模型可以写成为了训练它,本文最小化损失函数它组合了旨在将每个网格单元分配给背景的对象类别的分割项Ls,关键点回归项Lk和姿势估计项Lp。本文将Ls设为焦点损失,将Lk设为回归项。具体取决于本文使用两种架构中的哪一种。本文将Lp设为3D空间重构误差,即其中ˆ Randˆ t是估计的旋转矩阵和平移矢量,R和tare是真实值。从估计的四元数和真实的四元数估计旋转,可以以可微分的方式进行。本文的体系结构同时为一组预定义的3D关键点输出分割蒙版和潜在的2D位置。更具体地说,对于具有S个对象类和大小为h×w×3的输入图像I的数据集,它输出大小为H×W×C的3D张量。尺寸H和W与输入分辨率成正比,C =(S + 1)+ 2 * n,其中(S + 1)个通道用于分割,其中一个用于背景类,一个用于2D位置(或 对应于n个3D点pi的2D方向向量)。为了获得给定对象的对应聚类,本文在输出特征张量上随机抽取m = 200个网格像元,这些像元属于特定类标签的分割掩码。
三、实验
本文将单阶段方法与更传统但最先进的两阶段框架进行比较,首先是综合数据,然后是来自具有挑战性的Ocluded-LINEMOD和YCB-Video的真实数据个数据集。
3.1 合成数据
本文使用虚拟校准相机创建合成的3D到2D对应关系,其图像尺寸为640×480,焦距为800,主点位于图像中心。本文将目标对象作为一个单位3D球体,该球体本文随机旋转并且其中心在相机坐标系中表示的间隔[-2,2]x[-2,2]x[4,8]内随机平移 ,如图4所示。
图4:合成数据从对应簇中回归的网络gθ期望以[x,y,dx,dy]形式的4D输入,其中x,y代表图像网格位置的中心,而dx,dy从那个中心转移。在这里,每个对象都应代表一个球体的特定对象的边界框特定角的潜在图像对应。给定通过在图像中投影对象的3D模型而获得的特定对象的分割蒙版,本文可以通过以下方式创建对应关系。本文在图像中投影球体3D边界框的每个角,并针对分割蒙版中的每个网格单元,将像元中心x,y和位移dx,dy记录到投影的角。然后,本文从遮罩内的200个随机采样的网格单元中获取结果对应关系。本文将高斯噪声添加到其dx,dy值,并通过将dx,dy的某些百分比设置为图像中均匀采样的值来创建离群值。图5演示了此过程。
图5:生成对应关系。本文在图像中投影球体3D边界框的每个角,然后针对对象蒙版中的每个网格单元,通过记录中心x,网格单元的y和偏移dx,dy到投影角来创建对应关系。本文在20K合成训练图像上以300个纪元训练了gθ,批处理大小为32,使用Adam优化器的学习率为1e-4。在训练期间,本文随机添加方差σ在[0,15]范围内的2D噪声,并创建0%到30%的异常值。为了测试在不同噪声水平和离群率下获得的精度,本文使用2K合成测试图像,并根据等式7的3D空间重构误差报告平均姿态精度。与RANSAC PnP比较。将PnP算法与RANSAC结合使用是处理噪声对应的最广泛方法。图6显示基于RANSAC的EPnP和基于RANSAC的P3P具有相似的性能。当噪声很小时,虽然它们比本文的基于学习的方法更准确,但是当噪声水平增加时,本文的方法很快变得更加准确。
图6:与RANSAC PnP的比较。将本文的网络与两种基于RANSAC的经典PnP方法(EPnP和P3P)进行比较。两种基于RANSAC的方法具有非常相似的性能。更重要的是,当噪声增加时,本文的方法更加准确和可靠。
对应聚类的重要性。
为了展示按照本文的方式构建网络的重要性,本文实现了一个简化的版本,该版本使用单个最大池操作来实现所有对应关系的排列不变性,而无需考虑与关键点匹配的聚类顺序。为了使这项工作有效,本文必须明确地将与每个对应关系关联的3D关键点坐标合并为网络的输入。如图7所示,不对关键点的固定顺序建模会导致准确性显着下降。
图7:对应聚类的重要性。将本文的网络与只有一个最大池操作的网络进行比较,因此不考虑集群的顺序。忽略此属性显然会降低性能。与PVNet基于投票的PnP相比。在上述实验中,二维对应关系以图像点的二维位置表示。由于目前最好的技术之一改用方向,并从那些基于投票的PnP方案中推断出姿势,因此本文将相同的3D点与2D向量对应关系馈入了本文自己的网络。在这种设置下,如图8所示,该姿势对对应噪声更加敏感。但是,与前面的情况一样,尽管在几乎没有噪声的情况下基于投票的PnP会产生更准确的结果,但是当噪声水平增加时,本文的方法会更加健壮和准确。图8:与PVNet基于投票的PnP的比较。当使用3D点到2D向量的对应关系时,本文将本文的网络与PVNet使用的基于投票的PnP进行比较。与基于投票的PnP相比,本文的方法对噪声的鲁棒性强得多。
3.2 真实数据
本文根据来自两个具有挑战性的数据集(Occluded-LINEMOD 和YCBVideo )的真实数据评估了本文的方法。被遮挡的LINEMOD由8个对象组成,是较旧的LINEMOD数据集的子集。与仅对一个对象每个图像进行注释的LINEMOD不同,闭塞LINEMOD具有多个带注释的对象。这对于评估既执行实例检测又进行姿势估计的方法的评估更有意义。除了杂乱的背景,无纹理的物体以及LINEMOD不断变化的照明条件外,被遮挡的LINEMOD在多个物体实例之间也存在严重的遮挡。由于Occluded-LINEMOD中只有1214张测试图像,而没有明确的训练数据,因此本文基于LINEMOD训练数据来训练本文的网络。YCB视频是更新的,甚至更具挑战性。它具有从YCB数据集中提取的21个对象,并包含来自92个视频序列的约130K真实图像。它带来了OccludedLINEMOD的所有挑战以及更多不同的对象大小,包括几个无纹理的微小对象。数据准备。对于被遮挡的LINEMOD,本文首先使用剪切粘贴合成技术从LINEMOD数据和随机背景数据生成20K图像,并带有4至10个不同的实例 对于每个图像。然后,本文从带纹理的3D网格为每种对象类型生成10K渲染图像。渲染过程中的姿势范围与LINEMOD中的相同,除了以下几点:为了处理遇到对称对象时的姿势歧义,本文在训练过程中根据对象的对称类型将姿势范围限制为子范围,以避免混淆网络。最后,本文的训练数据由具有多个实例的20K合成图像和每个对象只有一个实例的10K渲染图像组成,总共(20 + 10×8)K图像。对于YCB视频,本文遵循类似的步骤。本文使用提供的3D网格模型并根据数据集的姿态统计信息为21个对象中的每一个渲染10K图像。但是,本文不使用剪切粘贴技术来生成具有多个实例的图像,因为在原始的YCB视频图像中已经使用多个对象进行了注释,因此本文直接使用它。训练步骤。对于这两个数据集,本文都将输入图像缩放为416×416分辨率以进行训练和测试。本文使用Adam进行优化,将初始学习率设置为1e-4,并在处理了数据样本总数的50%,75%和90%之后除以10。本文将批量大小设置为8,并依靠通常的数据增强技术,即随机亮度,高斯噪声,平移,缩放以及遮挡。本文通过在线数据增强在5M训练样本上训练网络。
3.2.1 遮挡数据及比较结果
如前所述,为证明本文的方法是通用的,本文结合两个对应提取网络SegDriven和PVNet对其进行了测试。表1显示,通过用本文的网络替换原始的基于RANSAC的后处理以将方法转变为单阶段方法,可以在两种情况下提高性能。表1:在Occluded-LINEMOD上使用不同对应提取网络的评估。通过用本文的小型网络代替它们最初的基于RANSAC的后处理,本文评估了两个最先进的对应提取网络:SegDriven 和PVNet。在这两种情况下,本文的方法始终优于原始版本。在此,本文报告ADD-0.1d。在表2中,本文表明,单级网络的性能优于最新方法PoseCNN,Seg Driven和PVNet。图9提供了定性结果。在表3中,本文报告了输入图像分辨率为640×480的运行时。本文的方法也比其他方法更快,因为它消除了RANSAC迭代过程。表2:与Occluded-LINEMOD的技术水平的比较。本文将结果与PoseCNN,SegDriven和PVNet的ADD-0.1d和REP-5px进行了比较。本文的方法执行最新技术,尤其是在ADD-0.1d中。表3:比较速度。本文比较了PoseCNN,SegDriven,PVNet的运行时间(以毫秒为单位)以及本文在现代GPU(GTX1080 Ti)上的运行时间。除了PoseCNN,这些方法首先提取对应关系,然后将它们融合。使用与PVNet中相同的对应提取主干,由于本文的网络避免了基于RANSAC的融合的需要,因此本文的方法运行速度快了大约2倍。图9:在Ocluded-LINEMOD上的定性结果。如前三栏所示,即使存在较大的遮挡,本文的方法也能得出准确的结果。最后一列显示了两种失败的情况,目标蛋盒被过多地堵塞,目标胶表现出微妙的对称模糊性,使得对应提取网络不容易建立稳定的对应。在这里,姿势可视为每个对象的3D网格的投影。
3.2.2 YCB-Video 结果
表4总结了与PoseCNN ,SegDriven 和PVNet 进行比较的结果。它表明本文的方法在该数据集上也始终优于其他方法。此外,请注意,它的运行速度比PoseCNN快10倍,也比SegDriven和PVNet快2倍。表4:与YCBVideo的最新技术比较。本文将结果与PoseCNN 、SegDriven 和PVNet 的ADD-0.1d和REP-5px进行了比较。本文用“-”表示原始PVNet论文中缺少的结果。
3.3 限制
虽然本文的方法与最先进的对应提取网络结合使用时是准确且快速的,但根据对应关系估算姿势的网络仍不如传统的基于几何的PnP算法准确 当可以通过其他方式获得非常精确的对应关系时,如图6所示。此外,它不能解决通用的PnP问题,因为本文仅针对固定的3D坐标集对其进行了训练。对此进行改进将成为未来工作的重点。
四、结论
本文为6D检测和姿态估计引入了一种单阶段方法。它的关键要素是一个小型网络,该网络接受候选3D到2D的对应关系并返回6D姿势。当与最先进的方法相结合来建立对应关系时,它可以通过允许端到端的培训并消除他们通常需要的一些RANSAC风格程序来提高性能。未来的工作将集中在使姿势估计网络更准确和更通用上,以便可以在更广泛的范围内使用它。
本文仅做学术分享,如有侵权,请联系删文。
下载1在「3D视觉工坊」公众号后台回复:3D视觉,即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。
下载2在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总,即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。
下载3在「3D视觉工坊」公众号后台回复:相机标定,即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配,即可下载独家立体匹配学习课件与视频网址。