论文笔记(五十)Segmentation-driven 6D Object Pose Estimation

Segmentation-driven 6D Object Pose Estimation

  • 文章概括
  • 摘要
  • 1. 引言
  • 2. 相关工作
  • 3. 方法
    • 3.1 网络架构
    • 3.2 分割流
    • 3.3 回归流
    • 3.4 推理策略
  • 4. 实验
    • 4.1 评估 Occluded-LINEMOD
      • 4.1.1 与最先进技术的比较
      • 4.1.2 不同融合策略的比较
      • 4.1.3 与人体姿态方法的比较
    • 4.2 在YCB-Video上的评估
      • 4.2.1 与最先进技术的比较
    • 4.3 讨论
  • 5 结论

文章概括

引用:

@inproceedings{hu2019segmentation,title={Segmentation-driven 6d object pose estimation},author={Hu, Yinlin and Hugonot, Joachim and Fua, Pascal and Salzmann, Mathieu},booktitle={Proceedings of the IEEE/CVF conference on computer vision and pattern recognition},pages={3385--3394},year={2019}
}
Hu, Y., Hugonot, J., Fua, P. and Salzmann, M., 2019. Segmentation-driven 6d object pose estimation. In Proceedings of the IEEE/CVF conference on computer vision and pattern recognition (pp. 3385-3394).

原文:https://openaccess.thecvf.com/content_CVPR_2019/html/Hu_Segmentation-Driven_6D_Object_Pose_Estimation_CVPR_2019_paper.html
代码、数据和视频:


系列文章:
请在 《 《 文章 》 》 专栏中查找


摘要

最近在估计刚体物体的6D姿态方面的趋势是训练深度网络直接从图像回归姿态或预测3D关键点的2D位置,然后使用PnP算法得到姿态。在这两种情况下,物体都被视为一个全局实体,并计算一个单一的姿态估计。因此,这些技术可能容易受到大面积遮挡的影响。

在本文中,我们引入了一个基于分割的6D姿态估计框架,其中每个物体的可见部分都为姿态预测提供了局部的2D关键点位置信息。然后,我们使用预测的置信度度量来将这些姿态候选者组合成一组稳健的3D至2D对应关系,从中可以获得可靠的姿态估计。我们的方法在具有挑战性的Occluded-LINEMOD和YCB-Video数据集上超越了现有技术,这证明了我们的方法能够很好地处理多个质地较差的相互遮挡物体。此外,我们的系统依赖于简单足够的架构以实现实时性能。


1. 引言

基于图像的6D物体姿态估计在许多实际应用中至关重要,如增强现实或机器人操控。传统上,这一任务通过建立已知3D模型与2D像素位置之间的对应关系来处理,然后使用Perspective-n-Point (PnP)算法计算6个姿态参数。虽然当物体纹理丰富时这种方法非常稳定,但在物体无特征或场景中有多个相互遮挡的物体时,这种方法可能会失败。

因此,最近的研究侧重于克服这些困难,通常使用深度网络直接从图像回归到6D姿态,或者检测与物体相关的关键点,然后执行PnP。然而,在这两种情况下,物体仍然被视为一个全局实体,使得算法容易受到大面积遮挡的影响。图1展示了这样一个情况:被遮挡的钻机的边界框与其他物体重叠,这些物体向姿态估计器提供了无关的信息,从而降低了其性能。因为这种情况经常发生,许多最新的方法需要一个额外的后处理步骤来精炼姿态。


在这里插入图片描述图1:全局姿态估计与我们的基于分割的方法对比。

  • (a) 钻机的边界框与遮挡它的另一个物体重叠。
  • (b) 因此,全局估计的姿态是错误的。
  • (c)在我们的方法中,只有标记为与钻机对应的图像补丁才参与到姿态估计中。
  • (d) 现在姿态是正确的。

在本文中,我们展示了通过结合多个局部预测而不是单一的全局预测,可以获得更稳健的姿态估计。为此,我们引入了一个基于分割的6D姿态估计网络,其中每个可见的物体部分都通过预测的3D关键点的2D投影贡献了一个姿态估计。利用我们网络预测的置信值,我们进一步组合了每个3D关键点最可靠的2D投影,形成了一组稳健的3D至2D对应关系。然后我们使用基于RANSAC的PnP策略来推断每个物体的单一可靠姿态。

从局部补丁的角度推理,不仅使我们的方法对遮挡具有鲁棒性,而且还为场景中的每个物体提供了大致的分割。换句话说,与其他将物体检测与姿态估计分离的方法不同,我们同时执行这两项任务,同时依靠足够简单的架构以实现实时性能。

简而言之,我们的贡献是一个简单但有效的基于分割的网络,它可以产生准确的6D物体姿态估计,无需后处理,即使在有多个纹理较差的物体相互遮挡的情况下也是如此。它将分割和集成学习结合在一个有效且高效的架构中。我们将展示它在标准基准测试上,如OccludedLINEMOD和YCB-Video数据集,超越了现有的最先进方法。


2. 相关工作

在本文中,我们专注于从RGB图像中进行6D物体姿态估计,与基于RGBD的方法不同,后者可以访问深度图。传统方法是从输入图像中提取局部特征,与模型的特征匹配,然后在得到的3D至2D对应关系上运行PnP算法。多年来,为了使这些特征描述符对各种变换具有不变性,从而可以更加稳健地匹配,投入了大量的努力。与此同时,为了处理噪声和误匹配,开发了越来越有效的PnP方法。因此,当处理纹理丰富的物体时,基于特征的姿态估计现在既快速又稳健,即使在存在轻微遮挡的情况下也是如此。然而,它通常难以处理重度遮挡和纹理较差的物体。

在过去,无纹理的物体通常通过模板匹配来处理。图像边缘成为主要的信息来源,研究人员开发了基于不同距离度量的策略,如Hausdorff和Chamfer距离,来匹配3D模型与输入图像。这些技术虽然对纹理较差的物体有效,但在轻微遮挡和背景混乱的情况下常常失败

在许多计算机视觉领域中,现代的6D物体姿态估计涉及深度神经网络。已经出现了两个主要趋势:直接从图像回归到6D姿态或预测图像中的2D关键点位置,然后通过PnP获得姿态。这两种方法都将物体视为一个全局实体并产生单一的姿态估计。这使它们易受遮挡的影响,因为考虑到所有方法都使用物体边界框,来自其他物体或背景的信号会污染预测。在文献[35, 45]中,通过对感兴趣的物体进行分割来解决这一问题,但所得到的算法仍然提供单一的全局姿态估计,这可能是不可靠的,如图1所示,并在结果部分进行了演示。因此,这些方法通常需要调用一个额外的姿态细化步骤[23]。

根据我们所知,[16]和[31]的研究是最近尝试超越全局预测的唯一尝试。尽管[16]中的方法也依赖于最先进的语义分割网络进行分割,但它使用回归到位于非常大空间中的3D物体坐标,其性能令人失望。相比之下,[31]中的技术从局部补丁预测多个关键点位置热图,并将它们组合成PnP算法的输入。然而,使用的补丁仍然相对较大,因此仍可能包含无关信息。此外,在运行时,这种方法依赖于计算成本高昂的滑动窗口策略,不适合实时处理。在这里,我们提出通过以集成方式结合多个局部姿态预测并实时进行,无需后处理来实现稳健性。在结果部分,我们将展示这种方法如何超越现有的最先进方法[17, 45, 35, 39, 16, 31]。

请注意,人体姿态估计[10, 44, 33]也与全局6D物体姿态预测技术相关。然而,这些方法针对非刚性物体,需要从更大的感受区域中提取更多的全局信息,并且不可避免地对遮挡更敏感。相比之下,处理刚性物体使我们能够依赖可以稳健组合的局部预测,局部可见的物体部分可以为所有关键点提供可靠的预测。我们展示了这些局部预测的组合如何产生稳健的姿态估计,即使在观察到多个相互遮挡的物体时也是如此。


3. 方法

在给定的RGB图像中,我们的目标是同时检测物体并估计它们的6D姿态,包括3个旋转和3个平移。我们假设物体是刚性的,并且它们的3D模型是已知的。如同[35, 39]中所做的,我们设计了一个CNN架构来回归一些预定义3D点的2D投影,例如物体边界框的8个角。然而,与这些方法不同的是,它们对每个物体的预测是全局性的,因此会受到遮挡的影响,我们使得各个图像补丁预测它们属于哪个物体以及2D投影的位置。然后,我们结合分配给同一物体的所有补丁的预测,以进行基于PnP的稳健姿态估计。

图2描述了相应的工作流程。在本节的剩余部分中,我们首先介绍我们的双流网络架构。然后我们分别描述每个流,最后介绍我们的推理策略。


在这里插入图片描述图2:我们方法的整体工作流程。 我们的架构有两个流:一个用于物体分割,另一个用于回归2D关键点位置。这两个流共享一个公共的编码器,但解码器是分开的。每一个都产生一个定义了在图像上的 S × S S×S S×S网格的空间分辨率的张量。分割流预测每个网格位置观察到的物体的标签。回归流预测该物体的2D关键点位置。


3.1 网络架构

本质上,我们旨在通过将图像补丁分配给物体和回归这些物体所属关键点的2D坐标来共同执行分割,如图3所示。为此,我们设计了图2所示的双流架构,每个任务一个流。它具有编码器-解码器结构,一个共用的编码器用于两个流,以及两个独立的解码器。


在这里插入图片描述图3:我们双流网络的输出。

  • (a) 分割流为图像上叠加的虚拟网格的每个单元格分配一个标签。
  • (b) 在回归流中,每个网格单元预测它所属物体的2D关键点位置。在这里,我们将边界框的8个角作为我们的关键点。

对于编码器,我们使用了YOLOv3中的Darknet-53架构[37],该架构已被证明在目标检测方面非常有效和高效。对于解码器,我们设计了输出空间分辨率为 S × S S×S S×S和特征维度分别为 D s e g D_{seg} Dseg D r e g D_{reg} Dreg的3D张量的网络。这相当于在图像上叠加一个 S × S S×S S×S的网格,并为每个网格元素计算一个维度为 D s e g D_{seg} Dseg D r e g D_{reg} Dreg的特征向量。该网格的空间分辨率控制了投票物体标签和特定关键点投影的图像补丁的大小。高分辨率产生精细的分割掩模和许多投票。然而,这会带来更高的计算成本,可能对我们的目的来说是不必要的。因此,我们没有匹配Darknet-53编码器的5个下采样层和5个上采样层,而只使用了2个这样的层,标准步幅为2。同样的架构,尽管输出特征大小不同,用于两个解码器流。

为了端到端地训练我们的模型,我们定义了一个损失函数:

L = L seg + L reg (1) \mathcal{L} = \mathcal{L}_{\text{seg}} + \mathcal{L}_{\text{reg}} \tag{1} L=Lseg+Lreg(1)

在这个公式中,损失函数 L \mathcal{L} L是由两部分组成的:分割损失 L seg \mathcal{L}_{\text{seg}} Lseg和回归损失 L reg \mathcal{L}_{\text{reg}} Lreg。这种组合损失函数用于同时优化分割和关键点位置回归的任务,以提升模型在6D姿态估计中的整体性能。

这个公式结合了一个分割项和一个回归项,我们用它来评估每个流的输出。现在我们来详细描述它们各自的内容。

3.2 分割流

分割流的作用是为图像上叠加的虚拟 S × S S×S S×S网格的每个单元格分配一个标签,如图3(a)所示。更具体地说,考虑到有 K K K个物体类别,这意味着在每个空间位置输出一个维度为 D seg = K + 1 D_{\text{seg}}=K+1 Dseg=K+1的向量,其中额外的一个维度用于表示背景。

在训练期间,我们可以访问3D物体模型及其真实姿态。因此,我们可以通过将3D模型投影到图像中并考虑每个物体的深度来处理遮挡,从而生成真实的语义标签。实际上,图像通常包含的背景区域远多于物体区域。因此,我们采用公式1中的 L seg \mathcal{L}_{\text{seg}} Lseg损失,使用文献[24]中的焦点损失(Focal Loss),这是交叉熵的动态加权版本。此外,我们依赖文献[6, 1]中的中值频率平衡技术来权衡不同的样本。我们根据像素级别的类别频率而不是全局类别频率来进行这一操作,以考虑到不同物体的大小差异。

3.3 回归流

回归流的目的是预测与3D物体模型相关联的预定义3D关键点的2D投影。按照标准做法[35, 9, 36],我们通常将这些关键点定为模型边界框的8个角。

回归流的输出是一个尺寸为 S × S × D reg S \times S \times D_{\text{reg}} S×S×Dreg的3D张量。设 N N N为我们想要预测其投影的每个物体的3D关键点数量。当使用边界框角点时, N = 8 N=8 N=8。我们取 D reg D_{\text{reg}} Dreg 3 N 3N 3N,以在每个空间位置表示 N N N对2D投影值及其每个的置信度。

在实际中,我们不直接预测关键点的2D坐标。相反,对于每一个关键点,我们预测一个相对于相应网格单元中心的偏移向量,如图3(b)所示。也就是说,设 c c c为网格单元中心的2D位置。对于第 i i i个关键点,我们寻求预测一个偏移 h i ( c ) \text{h}_i(c) hi(c),使得结果位置 c + h i ( c ) c+\text{h}_i(c) c+hi(c)接近真实的2D位置 g i \text{g}_i gi。在训练过程中,这通过残差来表达:

Δ i ( c ) = c + h i ( c ) − g i (2) \Delta_i(c) = c + \text{h}_i(c) - \text{g}_i \tag{2} Δi(c)=c+hi(c)gi(2)

通过定义损失函数:

L p o s = ∑ c ∈ M ∑ i = 1 N ∥ Δ i ( c ) ∥ 1 (3) \mathcal{L}_{{pos}} = \sum_{c \in M} \sum_{i=1}^{N} \|\Delta_i(c)\|_1 \tag{3} Lpos=cMi=1NΔi(c)1(3)

在这里, M M M代表前景分割掩模,而 ∥ ⋅ ∥ 1 \|\cdot\|1 ∥1表示 L 1 L^1 L1损失函数,它对异常值的敏感度低于 L 2 L^2 L2损失。只计算在分割掩模 M M M内的关键点,可以将计算聚焦在真正属于物体的图像区域上。

如上所述,回归流还为每个预测的关键点输出一个置信度值 s i ( c ) s_i(c) si(c),该值通过网络输出上的sigmoid函数获得。这些置信度值应该反映预测的2D投影与真实值的接近程度。为了鼓励这一点,我们定义了第二个损失项:

L c o n f = ∑ c ∈ M ∑ i = 1 N ∥ s i ( c ) − exp ⁡ ( − τ ∥ Δ i ( c ) ∥ 2 ) ∥ 1 (4) \mathcal{L}_{{conf}} = \sum_{c \in M} \sum_{i=1}^{N} \|s_i(c) - \exp(-τ\|\Delta_i(c)\|_2)\|_1 \tag{4} Lconf=cMi=1Nsi(c)exp(τΔi(c)2)1(4)

其中 τ \tau τ是一个调节因子。然后我们将公式1的回归损失项定义为:

L r e g = β L p o s + γ L c o n f (5) \mathcal{L}_{{reg}} = \beta \mathcal{L}_{{pos}} + \gamma \mathcal{L}_{{conf}} \tag{5} Lreg=βLpos+γLconf(5)

其中 β \beta β γ \gamma γ调节两个项的影响。

请注意,由于公式5中的两个项专注于分割掩模 M M M内的区域,它们的梯度也只向这些区域回传。如同在分割流中一样,为了解决像素级别的类别不平衡,我们根据训练集中的像素级别类别频率对不同物体的回归损失项进行加权。

3.4 推理策略

在测试时,给定一个查询图像,我们的网络会对第3.1节中的 S × S S×S S×S网格的每个前景单元返回一个物体类别和一组N个3D关键点的投影的预测2D位置。由于我们执行的是基于类的分割而不是基于实例的分割,如果场景中存在两个同类的物体,可能会出现歧义。为了避免这种情况,我们利用预测的2D关键点位置倾向于根据它们对应的物体聚集的事实,并使用简单的像素距离阈值来识别这样的聚类。

对于每个聚类,即每个物体,我们然后利用网络预测的置信分数来建立图像与物体3D模型之间的2D至3D对应关系。最简单的做法是使用RANSAC对所有预测进行处理。然而,这会显著减慢我们的方法。相反,我们依赖于每个3D关键点最有信心的n个2D预测。实践中,我们发现n=10能够很好地平衡速度和准确性。根据这些过滤后的2D至3D对应关系,我们使用基于RANSAC的EPnP算法[20]获得每个物体的6D姿态。图4演示了这一过程。


在这里插入图片描述图4:结合姿态候选。

  • (a)预测属于杯子的网格单元被覆盖在图像上。
  • (b)每一个单元预测对应关键点的2D位置,显示为绿色点。
  • (c)对于每个3D关键点,选择网络最有信心的n=10个2D位置。
  • (d)在这些位置上运行基于RANSAC的PnP,得到一个准确的姿态估计,如正确绘制的轮廓所证实的。


4. 实验

我们现在在具有挑战性的Occluded LINEMOD [18] 和 YCB-Video [45] 数据集上评估我们的基于分割的多物体6D姿态估计方法,这些数据集与LINEMOD [12] 不同,包含了出现在所有图像中的每个物体的6D姿态注释。

评估指标。我们报告了常用的2D重投影(REP)误差[3]。它编码了使用预测姿态和使用真实姿态获得的3D模型点的2D重投影之间的平均距离。此外,我们还报告了3D空间中的姿态误差[12],它对应于使用预测姿态变换的3D点与使用真实姿态获得的点之间的平均距离。如[23, 45]中所述,我们将其称为ADD。由于数据集中的许多物体是对称的,我们使用这两个指标的对称版本,并报告它们的REP-5px和ADD-0.1d值。如果REP低于5像素阈值且ADD低于模型直径的10%,则认为预测姿态是正确的。下面,我们用上标*标注被认为是对称的物体。

实施细节: 与[37]中一样,我们将输入图像调整至608×608分辨率,用于训练和测试。此外,在回归2D重投影时,我们将水平和垂直位置标准化到[0,10]的范围内。在估计置信度时,我们使用相同的标准化程序。

我们在Occluded LINEMOD上训练网络300个周期,在YCB-Video上训练30个周期。在这两种情况下,初始学习率设为1e-3,并在总周期数的50%、75%和90%后分别降低10倍。我们使用带有动量0.9和权重衰减5e-4的SGD作为我们的优化器。每个训练批次包含8张图像,我们采用了常用的数据增强技术,如随机亮度、高斯噪声、平移和缩放。我们还使用了[47]中的随机擦除技术来更好地处理遮挡。我们的源代码公开可用于以下网址:https://github.com/cvlab-epfl/segmentation-driven-pose.

4.1 评估 Occluded-LINEMOD

Occluded-LINEMOD数据集[18]是通过对LINEMOD原始数据集[12]的一个子集中所有物体的姿态进行标注而编制的。这个子集展示了1214幅图像中的8种不同物体。虽然也提供了深度信息,我们仅利用RGB图像。Occluded-LINEMOD图像,如同LINEMOD图像一样,展示了一个中心物体被非中心物体所环绕。标准协议只评估非中心物体。

为了为我们的模型创建训练数据,我们遵循了[23, 39]中的相同程序。我们使用从真实姿态推断出的掩模来分割每张图像中的中心物体,因为如上所述,它不会被用于评估。然后我们通过在随机的PASCAL VOC图像[7]之间进行图像修复,生成3到8个物体的合成图像。这些物体被随机放置在不同的位置、方向和尺度上。这一程序仍然使我们能够恢复每个物体的遮挡状态并生成相应的分割掩模。通过使用任何一张原始LINEMOD图像中的中心物体,只要它是在Occluded-LINEMOD中使用的8个物体之一,我们生成了20k个训练样本。

4.1.1 与最先进技术的比较

我们将我们的方法与最先进的技术进行比较,包括[45](PoseCNN)、[35](BB8)和[39](Tekin),这些方法都产生单一的全局姿态估计。此外,我们还报告了最近的研究成果,如[16](iPose)和[31](Heatmaps),这些方法结合了多个相对较大的补丁的预测,但依赖于昂贵的滑动窗口策略。需要注意的是,[31]也提供了使用特征映射技术[36]获得的结果。然而,大多数方法,包括我们的,不使用这种技术,为了公平比较,我们因此报告了所有方法的结果,包括[31]的结果,但没有使用这种技术。

我们在表1中报告了我们的结果,并在表2中提供了方法的运行时间。我们的方法在很大程度上优于全局推理方法[45, 35, 39]。它也优于Heatmaps,尽管优势较小。此外,由于我们简单的架构和一次性推理策略,我们的方法的运行速度是Heatmaps的5倍多。我们的方法每张图像分割和2D重投影估计需要30ms,每个物体的融合需要3-4ms。平均每张图像有5个物体,这样计算的总运行时间大约为50ms。图5展示了我们的一些结果。注意即使在有大面积遮挡的情况下,它们的准确性也很高。


在这里插入图片描述表1: Occluded-LINEMOD上与最先进技术的比较。 我们将我们的结果与PoseCNN[45]、BB8[35]、Tekin[39]、iPose[16]和Heatmaps[31]的结果进行比较。原始论文中缺失的结果标记为“-”。



在这里插入图片描述表2: Occluded-LINEMOD上的运行时间比较。 所有方法都在现代Nvidia GPU上运行。



在这里插入图片描述图5:Occluded-LINEMOD结果。 在每一列中,我们从上到下展示:前景分割掩模、所有2D重投影候选者、被选中的2D重投影,以及最终的姿态结果。即使在有大面积遮挡的情况下,我们的方法也能生成准确的姿态估计。此外,它可以实时处理多个物体。


4.1.2 不同融合策略的比较

如图4所示,并非所有局部预测的2D关键点位置都是准确的。因此,我们在第3.4节中描述的基于预测置信度值的融合策略对于选择正确的位置至关重要。在这里,我们评估了它对最终姿态估计的影响。为此,我们报告了使用最高置信度(HC)选择每个3D关键点的2D位置所获得的结果,以及使用我们的最有信心选择策略中不同的n值所获得的结果。我们将此称为B-n,对于特定的n值。请注意,我们然后在选定的2D至3D对应关系上使用RANSAC。

在表3中,我们将这些不同策略的结果与始终使用中心网格预测的2D重投影的无融合方法(我们称之为无融合(NF))进行了比较。这些结果证明所有融合方案都优于无融合方案。我们还报告了通过使用真实2D重投影选择每个3D关键点的最佳预测2D位置获得的Oracle结果。这表明我们的方法可以通过改进置信度预测或设计更好的融合方案来进一步受益。


在这里插入图片描述表3: Occluded-LINEMOD上不同融合策略的准确性(REP-5px)。 我们比较了一个无融合(NF)方案和一个依赖最高置信度预测的方案,以及依赖于对最有信心的预测执行RANSAC的策略(B-n)。Oracle由选择使用真实地面的最佳2D位置组成,并报告以指示我们方法的改进潜力。在底行,我们还报告了这些不同策略的平均运行时间。


4.1.3 与人体姿态方法的比较

我们的方法使我们能够从局部可见的物体区域推断刚性物体的关键点位置,而不需要从更大的感受野中提取对遮挡更敏感的更全局的信息。为了进一步支持这一说法,我们将我们的方法与两种最先进的人体姿态估计方法进行比较:Mask R-CNN [10] 和 Convolutional Pose Machines (CPM) [44],这些方法针对的是非刚性物体,即人体。相比之下,处理刚性物体允许我们依赖可以稳健组合的局部预测。具体来说,我们修改了公开可用的Mask R-CNN和CPM的代码,使其输出8个边界框2D角而不是人体关键点,并在Occluded LINEMOD上对这些方法进行了训练。正如表4所示,尽管Mask R-CNN和CPM的表现略优于其他全局推理方法,我们的局部方法产生了更准确的预测。


在这里插入图片描述表4: Occluded-LINEMOD上与人体姿态估计方法的比较。 我们修改了两种最先进的人体姿态估计方法,Mask R-CNN[10]和CPM[44],以输出边界框角位置。虽然Mask R-CNN和CPM的表现略优于其他全局推理方法,但我们的局部方法产生了更准确的预测。


4.2 在YCB-Video上的评估

我们还在最新且更具挑战性的YCB-Video数据集[45]上评估了我们的方法。它包括从YCB数据集[5, 4]中选取的21个不同大小且纹理不同的物体。这个数据集包含大约130K的真实图像,来自92个视频序列,以及大约80K的只包含前景物体的合成渲染图像。它提供了所有物体的姿态注释以及相应的分割掩模。测试图像展示了照明、噪声和遮挡的极大多样性,这使得这个数据集极具挑战性。与之前一样,虽然有深度信息可用,我们只使用彩色图像。在这里,我们使用与第4.1节中相同的随机背景程序生成完整的合成图像,从80K合成前景图像中生成。如之前所述,我们报告的结果不包括特征映射,因为无论是PoseCNN还是我们的方法都没有使用它们。

4.2.1 与最先进技术的比较

在这个较新的数据集上,只有少数方法报告了结果。在表5中,我们将我们的方法与两个基准进行了对比。我们的方法明显优于PoseCNN[45]和Heatmaps[31]。此外,请记住,我们的方法的运行速度是它们的5倍多。


在这里插入图片描述表5:YCB-Video上与最先进技术的比较。 我们将我们的结果与PoseCNN[45]和Heatmaps[31]的结果进行比较。


在图6中,我们比较了PoseCNN和我们的定性结果。虽然我们的姿态估计在这个数据集上的准确性不如在Occluded-LINEMOD上那么高,但它们仍然比PoseCNN的结果好得多。再次,这证明了在有大面积遮挡的情况下,考虑局部物体部分而不是全局的好处。


在这里插入图片描述图6:在YCB-Video上与PoseCNN[45]的比较。 (顶部)PoseCNN和(底部)我们的方法。这展示了在有大面积遮挡的情况下,相较于全局分析,考虑局部物体部分的好处。


4.3 讨论

尽管我们的方法在大多数情况下表现良好,但它仍然无法处理最极端的遮挡或非常小的物体。在这些情况下,我们依赖的网格表示变得过于粗糙。然而,这可以通过使用更细的网格来解决,或者为了限制计算负担,使用能够适应性细分以更好处理每个图像区域的网格。此外,正如表3所显示的,我们的性能还没有达到使用预测最佳2D位置的Oracle的水平。这表明还有提升预测置信度得分质量以及融合程序本身的空间。这将是我们未来研究的主题。


5 结论

我们引入了一种基于分割的6D物体姿态估计方法,该方法可以同时检测多个物体并估计它们的姿态。通过以稳健的方式结合多个局部姿态估计,我们的方法即使在存在大面积遮挡的情况下也能产生准确的结果,无需进行精细化步骤。我们在两个具有挑战性的数据集上的实验表明,我们的方法优于现有的最先进技术,并且与最佳竞争者相比,能够实时预测多个物体的姿态。将来,我们将探索使用其他主干网络架构作为编码器,并设计更好的融合策略来选择最佳预测,然后执行PnP。我们还将寻求将PnP步骤整合到网络中,以便拥有一个完整的端到端学习框架。

致谢 这项工作部分得到了瑞士创新机构Innosuisse的支持。我们要感谢Markus Oberweger和Yi Li澄清他们论文的细节,以及Zheng Dang的有益讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/458247.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp使用easyinput文本框显示输入的字数和限制的字数

uniapp使用easyinput文本框显示输入的字数和限制的字数 先上效果图&#xff1a; 整体代码如下&#xff1a; <template><view class"nameInfoContent"><uni-easyinput class"uni-mt-5" suffixIcon"checkmarkempty" v-model&quo…

【MyBatis源码】SqlSessionFactoryBuilder源码分析

文章目录 概述类结构从 InputStream 创建 SqlSessionFactoryXMLConfigBuilder构建ConfigurationXMLConfigBuilder初始化方法parse()方法parseConfiguration属性&#xff08;properties&#xff09; 概述 SqlSessionFactory 是 MyBatis 的核心接口之一&#xff0c;提供创建 Sql…

vue通过JSON文件生成WPML文件源码

可以使用封装的json解析器进行JSON数据获取&#xff0c;读取点的经度、维度、高程等数据&#xff0c;再使用对应的WPML文件生成函数使用该源码下载WPML文件&#xff08;固定WPML生成&#xff1a;js模板式生成大疆上云wpml文件&#xff08;含详细注释&#xff0c;已封装成函数&a…

(7) cuda异常处理

文章目录 上节概要异常处理代码 上节概要 上一节 block_width 64的时候&#xff0c;64644096 > 1024&#xff08;一个block里面最多只能有1024个线程&#xff0c;所以这里计算会有问题&#xff09; 异常处理 __FILE__: 编译器内部定义的一个宏。表示的是当前文件的文件…

【C++单调栈 贡献法】907. 子数组的最小值之和|1975

本文涉及的基础知识点 C单调栈 LeetCode907. 子数组的最小值之和 给定一个整数数组 arr&#xff0c;找到 min(b) 的总和&#xff0c;其中 b 的范围为 arr 的每个&#xff08;连续&#xff09;子数组。 由于答案可能很大&#xff0c;因此 返回答案模 109 7 。 示例 1&#x…

项目:Boost 搜索引擎

项目&#xff1a;Boost 搜索引擎 1、项目背景 公司&#xff1a;百度、360、搜狗、谷歌 …站内搜索&#xff1a;搜索的数据更垂直&#xff08;相关&#xff09;&#xff0c;数据量小 2、整体框架 3、技术栈和项目环境 技术栈&#xff1a;C/C C11&#xff0c;STL&#xff0c;jso…

error Unexpected mutation of “xxxxx“ prop

错误是在进行 eslint 检查的时候触发的&#xff0c;这个错误的原因是我们在子组件中改变了父组件传递过来的 props 解决方法一&#xff1a; 不改变父组件传递过来的 props&#xff0c;如果需要改变父组件传递过来的值&#xff0c;可以使用 defineModel() 进行接收值&#xff…

【零售和消费品&软件包】快递包装类型检测系统源码&数据集全套:改进yolo11-HSPAN

改进yolo11-EfficientHead等200全套创新点大全&#xff1a;快递包装类型检测系统源码&#xff06;数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.10.24 注意&#xff1a;由于项目一直在更新迭代&#xff0c;上面“1.图片效果展示”和“2.视频效果展示”展示的系统…

STM32第15章 RCC-使用HSE/HSI配置时钟

时间:2024.10.21-10.23 参考资料: 《零死角玩转STM32》“RCC-使用HSE/HIS配置时钟”章节 TIPS: 从前面的历程中我们知道,程序在启动的时候会执行汇编文件,汇编文件里会调用System_Init(固件库编程的函数),它里面会把时钟初始化成72M,因此前面我们在用固件库写程序的…

MSR寄存器独有的还是共享的

英特尔白皮书Volume 4: Model-Specific Registers 这一章列出了不同英特尔处理器系列的 MSR&#xff08;模型特定寄存器&#xff09;。所有列出的 MSR 都可以使用 RDMSR 和 WRMSR 指令进行读取和写入。MSR 的作用域定义了访问相同 MSR 的处理器集合&#xff0c;具体如下&#x…

栈和队列(上)-栈

1. 栈的概念 引入: 我们平时拿羽毛球,是从盒子顶部的羽毛球开始拿的,而顶部的元素是我们最后放进去的. 栈: 一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后…

温泉押金原路退回系统, 押金+手牌+电子押金单——未来之窗行业应用跨平台架构

一、温泉手牌收押金必要性 1. 防止手牌丢失&#xff1a;手牌是顾客在温泉内存储个人物品和进出更衣室的重要凭证。收押金可以让顾客更加重视手牌&#xff0c;降低丢失的概率。比如说&#xff0c;有的顾客可能会因为粗心大意随手放置手牌&#xff0c;如果没有押金的约束&…

STM32之外部中断(实验对射式传感器计次实验)

外部中断配置 #include "stm32f10x.h" // Device headeruint16_t CountSensor_Count;void CountSensor_Init(void) {//RCC--> GPIO--> AFIO--> EXTI--> NVIC五步RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //开启GPIOB时…

图---java---黑马

图 概念 图是由顶点(vertex)和边(edge)组成的数据结构&#xff0c;例如 该图有四个顶点&#xff1a;A&#xff0c;B&#xff0c;C&#xff0c;D以及四条有向边&#xff0c;有向图中&#xff0c;边是单向的。 有向 vs 无向 如果是无向图&#xff0c;那么边是双向的&#x…

aarch64-opencv341交叉编译,并在arm上部署helloopencv

背景 当需要在jetson xavier nx或者rk 3562等平台上开发关于视觉检测的工程时&#xff0c;由于arm板子资源不足或者不能联网等原因&#xff0c;通常在虚拟机上利用交叉编译器编译得到可执行程序&#xff0c;然后部署到arm板上。 aarch64-opencv341交叉编译 ubuntu虚拟机中先…

【Linux】环境下升级redis

一、摘要 最近漏洞扫描服务器发现&#xff0c;Redis 缓冲区溢出漏洞(CVE-2024-31449)&#xff0c;解决办法redis更新到6.2.16、7.2.6或7.4.1及以上版本。 二、漏洞描述 漏洞描述&#xff1a;经过身份验证的用户可能会使用特制的 Lua 脚本来触发位库中的堆栈缓冲区溢出&#…

Kaggle比赛复盘

Kaggle - LLM Prompt Recovery 解决方案报告 比赛背景/目标 大型语言模型&#xff08;Large Language Models&#xff0c;LLMs&#xff09;通常被用于改写或对文本进行风格修改。本次Kaggle竞赛的目标是根据给定的改写文本&#xff0c;还原用于将原始文本转换为改写文本的LLM…

MetaArena推出《Final Glory》:引领Web3游戏技术新风向

随着区块链技术的日益成熟&#xff0c;Web3游戏成为了游戏产业探索的新方向&#xff0c;将去中心化经济与虚拟世界结合在一起&#xff0c;形成了一个全新的生态体系。然而&#xff0c;尽管Web3游戏展示了令人兴奋的可能性&#xff0c;但其背后的技术障碍依旧严峻&#xff0c;特…

Android Activity SingleTop启动模式使用场景

通知栏 当用户点击通知栏中的通知时,可以使用单顶启动模式来打开对应的活动,并确保只有一个实例存在。 简单集成极光推送 创建应用 获取appkey参数 切换到极光工作台 极光sdk集成 Project 根目录的主 gradle 配置 Module 的 gradle 配置 Jpush依赖配置 配置推送必须…