点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
点击进入→自动驾驶之心【姿态估计】技术交流群
后台回复【ECCV2022】获取ECCV2022所有自动驾驶方向论文!
在RGB图像中,识别新物体并估计它的3D pose,同时能够处理遮挡的情况。
我们的方法只需要新物体的CAD模型,既不需要对这些新对象进行训练,也不需要描述它们的真实图像。
根据一小组训练对象(a small set of training objects)来学习局部对象表征(local object representations),然后我们将输入图像与一组“模板”进行局部匹配,这里的“模板”指的是新对象的CAD模型的渲染图像。
我们的方法的特色:(1)与已有的方法不同,我们的方法处理的新物体允许跟训练物体有很大差别。(2)我们的方法是第一个在没有对LINEMOD和Occlusion-LINEMOD数据集进行再训练的情况下实现泛化的。
对先前的template-based方法失败模式的分析,进一步佐证了局部特征对模板匹配的优势。
在LINEMOD, Occlusion-LINEMOD和T-LESS数据集上,我们的方法优于已有的SOTA模板匹配方法。
针对基于RGB图像的3D 姿态检测任务,对于任意的/以前从未见过的新对象,在只能访问新对象的CAD模型且无需再训练的情况下实现3D 姿态检测,该任务在工业应用中具有重要价值。
工作[30, 28, 38, 2]尝试处理这个问题。已有的工作中大部分方法施加了一些额外的约束,如假定新对象属于已知的类别、保持与训练对象相似或者具有突出的角。
[38,2]中采用全局表征(global representations)来比较输入图像和基于CAD渲染的模版,他们的方法具有两个局限性。(1)背景杂乱时,它们对新物体的泛化能力较差;即使在统一背景下,他们的姿态估计也不准;(2)他们不适合处理遮挡情况。
受上述工作不足的启发,我们所提出的模版匹配方法保持图像的2D结构。
针对上述工作中全局表征的第一个局限,我们通过模版掩膜抛除背景,进而依赖局部表征。虽然在运行时没有输入图像中的对象掩膜,但我们可以使用模板掩膜。
使用局部特征会产生更精确的姿态检测。因为我们没有使用池化操作,池化操作会删除关于姿势的关键信息(特别是对于新对象)。
我们的方法对遮挡情况鲁棒性高。我们引入了一种新的评估方法来评估两张图像之间的相似性,该评估方法考虑了模板中对象的掩膜和查询图像中可能的遮挡。
总结一下本文的贡献:
对之前基于模板匹配的方法在测试新对象时的失败案例进行了详细分析;
可以根据CAD模型预测新物体的姿态,不需要对新物体进行训练,也不需要限制新物体与训练对象相似;
即使在对象都是新的且遮挡的情况下,该方法针对遮挡情况鲁棒性高。
许多3D物体姿态估计方法使用在真实图像或这些物体的合成渲染图像上训练的深度模型[17, 29, 19, 33, 20, 43, 25, 15]。有些方法[23, 27, 16]对遮挡表现出较强的鲁棒性。然而,这种方法需要长时间、昂贵的训练和数据获取/生成时间,这是我们希望避免的。虽然一些工作尝试通过学习从真实图像中生成新图像来减轻注册真实图像的负担[26],但对于许多实际应用来说,其成本仍然过高。
避免在新的对象实例上重新训练的一种方法是考虑对象的类别,并在目标类别上训练一个模型,该模型将泛化到这些类别的新实例[44,37]。虽然这种方法在某些应用程序中(如场景理解)是有用的,但在许多其他应用程序中,新对象不属于已知的类别。相比之下,我们的方法可以推广到与用于训练初始模型的已知对象在形状上没有相似性的新对象。
[38]提出学习模板的鉴别表征。然后通过图像检索的方式将输入图像与这些模板进行匹配来实现姿态估计。在这种情况下,[2]提出了如何获得更具鉴别性的表示。虽然通过使用3D模型来处理新物体似乎是这些工作的动机,我们的实验表明,这些方法在新物体上表现很差。
最近,[30]提出了[31]的扩展,以推广到新物体。该方法引入了一种具有多个解码器的新架构,以适应不同的对象类型。虽然他们的结果确实显示了对新对象的泛化,但这些对象必须保持与训练对象相似。因此,该方法只在T-LESS数据集上进行了实验,该数据集描述了具有强烈视觉相似性的不同种类的电器。
这些方法依赖于模板的全局表征,后续部分我们将展示基于局部表征的框架在新对象的通用性和对遮挡的鲁棒性方面具有显著的优势。
[28]也考虑局部表征,但与我们非常不同。[28]学会检测图像中特定的2D对象位置,并为每个这样的位置提供描述符,以便将它们与对象的3D模型上的3D点匹配。然而,这种匹配是独立地对每个位置进行的,这使得它具有高度的模糊性,会导致组合匹配成本和频繁的失败。相比之下,我们在网格结构中提取局部表征,并学习匹配所有的局部输入和模板表示。
在[42]中提出了一种不同而有趣的方法,其中除了输入图像外,还使用对象的3D模型的嵌入作为输入来预测3D姿态。然而,为了使用正确的3D模型,这项工作只考虑姿态回归,并假设对象是已知的。
在给定一组图像的情况下,对比学习的目的是学习使得相似的图像接近而不相似的图像相距很远的嵌入空间。[12, 39, 24, 34, 9, 5]利用无标签图像和强数据增强来学习强大的图像特征。
[41]利用姿态标签来学习一个姿势感知的嵌入空间,用于类无关的3D对象姿势估计。[41]的一个限制是不同的对象可以在嵌入空间中相互混合,因此不可能从输入图像中识别正确的对象实例。此外,像[42]一样,[41]也不识别新对象。
相比之下,[38,2]依靠对比学习来学习随对象姿态和对象实例而变化的嵌入空间。为此,他们依靠triplet损失来学习对象判别特征,同时依靠pairwise损失来学习姿态判别特征。同样,我们使用对比学习来提取判别特征表征,但我们的实验表明,InfoNCE[24]损失是最简单和有效的选择。我们的实验还表明,我们的方法在泛化性和鲁棒性方面的大部分性能来自于我们对局部表示的使用。
任务:在RGB图像中识别新物体+检测3D姿态。通过匹配该查询图像与模版,返回与查询图像最相似的模板的身份和姿态信息。
模板是CAD模型在某些三维姿势下的渲染图像。
对于每个新对象,模板集包含许多模板,由围绕其3DCAD模型采样的不同视图渲染得到。
模版中包含了物体的身份(identity)和姿态(pose)信息。
挑战:如何在训练阶段在没有看到新对象的真实图像、新对象可能存在部分遮挡、模板图像和真实图像之间存在照明差异以及对象的背景比较杂乱等情况下,可靠地度量模板和输入图像之间的相似性?
动机:与全局表征(global representation)相比,局部表征(local representation)具有更好的可复现性和对遮挡的鲁棒性,我们的方法基于深度模型提取的局部图像特征来度量输入图像和模板之间的相似性。
方法:我们使用由真实图像和来自一小组训练对象的合成图像/模版图像组成的训练对(training pairs)来训练该模型。(真实图像和合成图像的外观可能差别较大。)
这部分,我们通过两个实验,指出了使用基于全局表征的模板匹配方法的主要缺点。
全局表征的第一个缺点::它们在杂乱背景下表征不可见对象的能力很差。作者通过T-SNE对不同的图像表征的聚类效果进行了可视化,分析表明:杂乱背景对于不可见对象的全局表征有影响,而本文提出的局部表征对杂乱背景有一定的鲁棒性。
第一列,对于训练对象,两种表征方式都设法将每个训练对象的图像聚在一起,尽管对象的图像背景是杂乱的。
第二列,对于新的查询对象,全局表征方式不能分离新对象的图像,而我们的局部表征方式可以。
第三列,对于新的查询对象+排除杂乱背景因素影响,使用真实对象掩膜(ground-truth object masks)将查询图像中的背景替换为统一的颜色,从而删除了背景。在排除背景影响的情况下,表征可被解耦。
全局表征的第二个缺点:将一个新物体的真实图像与合成模板相匹配时可靠性较差,即使在物体的身份已知且背景一致的情况下也是如此。
对新查询物体的姿态距离和表征距离之间的相关性进行可视化。
第一列:对于训练对象,这两种表征方式都表现出强相关性;
第一列:对于新查询对象,全局表征下的这种相关性消失了,而我们的方法没有受到太大影响;
第三列:对于新查询对象,在排除背景信息干扰的情况下,全局表征的这种相关性依旧很弱。说明并非背景的影响。原因推测:池化层会删除重要的信息。作者推测,对于训练对象,这种信息损失似乎由模型架构的其余部分(特别是FC层)来补偿;但这种补偿难以推广到不可见的新对象。
训练时候的正对+负对;
一个正对(positive pairs)的定义:一个真实图像(描述一个训练物体)+ 一个合成模版(与训练物体相同,pose接近)。当角度小于5度的时候,我们认为两个pose接近。
一个负对(negative pairs)的定义:一个真实图像(描述一个训练物体) + 一个合成图像(不同物体或不同姿态(大于5度)对象)组成的对。
关于loss部分的选择,作者先介绍了[38]和[2]中用到的两个损失函数,然后提出了本文设计的新的损失函数(后面的实验部分证明后者更好)
Triplet loss. [38]提出,在学习的嵌入空间中,正对特征描述符之间的距离应该比负对特征描述符之间的距离更近。为了利用这个属性,设计了如下损失函数
,其中,是正对在学习嵌入空间中的距离;是负对在学习嵌入空间中的距离;
是为了最小化两张姿态相同但观察条件不同的图像之间的距离;
[2]基于[38]提出的loss进行了改进,关注学习对象鉴别特征;学习一个类似于位姿差异的嵌入空间}
对于每个真实图像,我们还通过将其与当前批中其他图像对的合成模板进行结合,生成N−1个负对。即每个batch中有N个正对和(N−1)× N个负对。
我们通过使正对样本表征之间的一致性最大化,同时利用InfoNCE损失函数最小化负对样本表示表征的一致性来训练模型。
其中,度量的局部图像特征和的相似度,。
为了有效处理新物体和复杂背景,基于局部图像的相似度度量定义如下:
其中,是局部相似性度量,是模版的二值掩膜,是2D网格的坐标。这里的无法处理真实图像中可能的遮挡,因为它对应于模板中对象的掩膜。
局部相似性度量的定义如下,我们发现用差异的L1和L2范数的反面来度量相似度, 其性能与余弦相似度相同。
在运行时,给定一个真实的查询图像,我们检索模板集中最相似的模板。
为了使得模型对查询图像中可能出现的遮挡具有一定的鲁棒性,我们对基于局部图像的相似度度量进行了修改,其中,对于余弦相似度施加阈值,以去除遮挡部分的特征,。
在LINEMOD和Occlusion-LINEMOD数据集上,我们参考[38]中的做法来采样合成的样本。更精确地说,视点是这样定义的:从一个正二十面体开始,递归地将每个三角形细分为4个更小的三角形。在应用这种细分两次并删除下半球之后,我们最终得到每个对象301个模板。
在T-LESS数据集上,我们参考[30]中的做法,使用一个具有2536个视点密集的正二十面体,且每个渲染图像有36个平面内旋转。此外,我们还使用了一个具有602个视点的粗糙正二十面体。
选用LINEMOD,Occlusion-LINEMOD和T-LESS。在训练物体/可见物体 以及 不可见物体上定性定量评估我们的方法和SOTA的方法的效果。
LM 和 O-LM 数据集,由于没有标准分割来评估基于RGB的新对象的方法的鲁棒性,我们根据对象id的顺序提出了三种不同的划分方式。
Split #1: Ape, Benchvise, Camera, Can;
Split #2: Cat, Driller, Duck, Eggbox;
Split #3: Glue, Holepuncher, Iron, Lamp, Phone.
LM 数据集中的其他对象用于训练模型。注意,O-LM只用于测试。此外,为了了解在训练过程中可见和不可见对象之间的性能差异,我们还对针对可见对象的训练方法进行了评估。为此,在不可见的姿势下,我们保留了10%的训练对象的真实图像,供测试使用。
在T-LESS[13]上,我们参考[30]的做法,只在对象1-18上进行训练(背景为SUN397[40]随机背景),并在完整的T-LESS primesense test set上进行测试。
对于LM 和 O-LM 数据集,位姿误差是通过观测半球面上两个位置之间的夹角来测量的。我们也类似[38,2]中的做法,将“鸡蛋盒”和“胶水”作为绕z轴对称的物体。
在已知目标姿态估计的情况下,LM和O-LM的识别得分几乎为100%。[38,2]关注已知对象,因此只评估姿态误差,而不考虑检索到的对象是否实际正确。对于新物体,我们发现正确检索姿势和类都是重要的,因为模型仍然可以从另一个对象获得正确的姿势。因此,我们建议使用Acc15指标,它度量姿态误差小于15度和预测对象类别正确的概率。
为了比较公平,在评价LM和O-LM时,我们考虑了两个不同的backbone:(1)“Base”-[38,2]中使用的简单backbone;(2)ResNet50 -最近比较学习方法[9]中使用的标准backbone。我们重现了[38,2],以获得可见和不可见物体的定量结果。
在使用“Base” backbone进行测试时,我们也遵循[38,2],使用相同的大小为64×64的输入图像。在使用ResNet50进行测试时,我们使用了更大的输入,大小为224×224。在这两种设置中,我们略微改变了backbone架构,删除所有池化、FC层,然后用两个1 × 1卷积层替换它们,以输出所需的局部特征,大小为16*16。
类似[38,2]中的做法,我们使用真实位姿在物体中心裁剪输入图像,不考虑平面内旋转。在T-LESS数据集上,我们使用相同的骨干ResNet50,并像[31,30]中所做的那样,用真实边界框裁剪输入图像。
对于这两种评估方式,我们使用Adam训练网络,“Base”网络的初始学习率为1e-2, ResNet50的初始学习率为1e-4。
下表显示了我们的方法和[38,2]方法的对比。InfoNCE loss效果好于[38,2]所使用的triplet losses。
对于训练物体,当物体被遮挡的时候,[38,2]效果降到了70%以下,而我们的方法仍然可以保持较高的精度。这表明了局部图像特征对遮挡的鲁棒性。
对于新物体,无论遮挡与否,我们的方法明显效果更好。这表明基于局部表征的匹配不仅对遮挡具有鲁棒性,而且对新物体具有较好的泛化能力。
表明在可见和不可见对象上,我们的方法在T-LESS数据集上比[31,30]都有很大的优势。虽然[30]的单编码器-多解码器网络允许为所有对象共享一个潜在空间,并且每个解码器只重建单个对象的视图,但结果表明我们的方法和InfoNCE损失要简单得多,而且在相同的设置下也能显著提高性能。
在LINEMOD和 Occlusion-LINEMOD数据集上进行消融实验分析。
移除模版掩膜时,我们的方法在三个分割方式测试下退化显著。
显示了阈值对于估计遮挡掩膜的影响。使用遮挡掩膜可以在大的物体(“Can”, “Driller”, and “Eggbox”)上带来提升。可以解释为:O-LM数据集中的遮挡可能非常大,特别是在小物体上。
左图Y轴为姿态误差,左图X轴是局部表征的维度;说明局部表征的维度影响不大;
右图Y轴为姿态误差,右图X轴是掩膜的分辨率;掩膜的分辨率影响较大,因为更高的分辨率允许更精确地丢弃背景。此外,分辨率超参数对新对象的性能影响要比对可见对象的性能影响大。
在O-LM上评估时,我们的方法和[38,2]在“Cat”对象上都失败了。如图7所示,这个对象很小,在这个数据集中被遮挡严重。
我们提出了一种有效的三维物体识别和姿态估计方法,该方法可以在不需要再训练的情况下推广到新的物体,并且对遮挡具有鲁棒性。我们的分析表明,丢弃图像2D网格结构的全局表征对杂乱背景的鲁棒性较差,会导致不准确的姿态预测。而基于局部表征的方法,具有更好的性能,对遮挡具有鲁棒性。
[1] Templates for 3D Object Pose Estimation Revisited: Generalization to New Objects and Robustness to Occlusions
往期回顾
Radar-LiDAR BEV融合!RaLiBEV:恶劣天气下3D检测的不二之选
【知识星球】日常干货分享
【自动驾驶之心】全栈技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、规划控制、模型部署落地、自动驾驶仿真测试、硬件配置、AI求职交流等方向;
添加汽车人助理微信邀请入群
备注:学校/公司+方向+昵称
自动驾驶之心【知识星球】
想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球(三天内无条件退款),日常分享论文+代码,这里汇聚行业和学术界大佬,前沿技术方向尽在掌握中,期待交流!