梯度响应图——针对无纹理目标的检测

题目:Gradient response maps for real-time detection of textureless objects.
// >  >  > &thisp;

摘要

question:提出了一个实时三维目标检测方法,该方法不需要一个耗时的训练阶段,能处理无纹理对象。
method:该方法的核心在于:1、针对模板匹配采用了一种新颖的图像表示,这种设计的模板匹配对小图像变换是鲁棒的。这种鲁棒性是基于扩展图像梯度方向的,它允许我们在解析图像时只测试所有可能像素位置的一个小子集,也允许使用有限的模板集来表示3D对象。2、另外,我们证明,如果稠密深度传感器是可用的,我们可以扩展我们的方法,达到更好的性能。该方法同样也将三维表面法方向考虑在内。
3、我们展示了如何利用现代计算机的架构来构建一个高效但非常有辨别性的输入图像表示,该图像表示可以用于实时考虑数千个模板。
answer:我们在基于真实数据的许多实验中证明,我们的方法在背景杂波(混乱背景)方面比目前最先进的方法更快、更健壮。

关键字:计算机视觉,实时检测和目标识别,追踪,多模态模板匹配

1.介绍

  why:实时目标检测和学习是计算机视觉中两项重要而富有挑战性的任务。在推动计算机视觉发展的应用领域中,机器人学尤其需要计算效率高的方法,因为自控系统必须不断地适应变化和未知的环境,并学习和识别新的对象。
  对于这种时间要求严格的应用场景,实时模板匹配是一种很有吸引力的解决方案。因为新对象可以很容易地在线学习和匹配,而统计学习技术需要很多训练样本,而且对于实时性能来说计算量太大。这种(统计学习技术)低效率的原因是,那些学习方法旨在从某些对象类中检测不可见(未知?)的对象,而不是从多个视点中检测一个先验的、已知的对象实例,经典模板匹配试图实现后者。在经典模板匹配中,泛化不是在对象类上执行,而是在视点采样上执行。虽然这被认为是一个更简单的任务,但它并没有使问题变得微不足道,因为数据仍然在训练与运行时序列之间的视点、光照和的遮挡方面显示出显著的变化。
  当对象的纹理足够明显,可以根据关键点的外观找到并识别这些关键点时;通过定义可以快速计算并用于描述对象的补丁描述符,就可以成功地解决以上问题。然而,这种方法在Fig. 1这样没有纹理的目标上应用时是失败的,这些物体的外观通常由它们的投影轮廓决定。
在这里插入图片描述

Fig. 1. 我们的方法可以实时检测无纹理的三维物体,即使是在严重混乱背景下的不同的姿态。该方法使用梯度方向。

  为了解决这一问题,我们提出了一种基于实时模板识别的新方法。该方法针对刚性三维对象,而且模板可以被快速构建和匹配。我们将展示:通过简单地向数据库添加新模板,使得学习新的传入对象变得非常容易,而且几乎是瞬时的。同时又保持了可靠的实时识别。
  然而,我们也希望保持统计方法的效率和鲁棒性;因为他们在学习如何拒绝无前途的图像位置时非常迅速,而且因为他们可以在训练集中很好地泛化,所以往往是非常健壮的。因此,我们提出了一种新的图像表示方法,该方法具有局部图像统计特性,计算速度快。这种图像表示被设计成对模板的小平移和小变形保持不变,这被证明是推广到同一对象的不同视角的一个关键因素[6]。此外,它还允许我们通过跳过许多位置来快速解析图像,而不会丧失可靠性。
  我们的方法与最近高效的模板匹配方法[7]、[8]有关,这些方法只考虑图像及其梯度来检测对象。因此,即使对象没有足够的纹理来使用特征点技术,它们也可以工作,并且几乎是即时地学习新对象。此外,它们还可以直接提供物体姿态的粗略估计,这对于必须与周围环境交互的机器人来说尤为重要。然而,类似于先前的模板匹配方法[9]、[10]、[11]、[12],它们在诸如Fig. 1所示的强背景杂波的存在的条件下,遭受性能的严重退化甚至失败。
  ours:因此,我们提出了一种新的方法来解决这个问题,同时对于较大的模板要快得多。我们没有像文献[7]那样只考虑主方向而使模板对小变形和平移保持不变,而是建立了一个具有相似不变性的输入图像的表示,该表示考虑了局部图像邻域中的所有梯度方向。与新的相似性度量一起,这可以防止由于背景中的梯度太强而产生的问题,如Fig. 1所示。
  为了避免在使用这种更精细的方法时减慢检测速度,我们必须仔细考虑现代CPU的工作方式。一个简单的实现会导致许多“内存缓存未命中”,这会减慢计算速度,因此我们将展示如何在内存中构造图像表示来防止这些情况,并进一步利用大量的SSE并行化。我们认为这是一个重要的贡献:由于硬件改进的性质,不再保证遗留代码在新版本的CPU上运行得更快[13]。这对于计算机视觉来说尤其如此,因为在计算机视觉中,算法的计算成本往往很高。现在需要考虑CPU体系结构,这不是一项容易的任务。
  对于密集深度传感器可用的情况,我们描述了我们的方法的扩展;其中使用额外的深度数据通过同时利用二维图像梯度和三维曲面法线的信息来进一步提高鲁棒性。提出了一种基于稠密深度图的三维曲面法向实时稳健计算方法,既保证了遮挡轮廓上的深度不连续性,又消除了传感器的离散噪声。然后以类似的方式将3D法线与图像梯度一起使用。
  在本文的剩余部分:在解释我们的方法之前,我们首先讨论了相关工作。然后,我们讨论了我们方法的理论复杂性。最后,我们提出了挑战性场景的实验和定量评估。

2.相关工作

  模板匹配在检测跟踪应用中发挥着重要作用。这是因为它的简单性和处理不同类型对象的能力。它既不需要庞大的训练集,也不需要耗时的训练阶段,可以处理低纹理或无纹理的物体,例如,用基于特征点的方法难以检测到的物体[6]、[14]。不幸的是,这种增强的健壮性通常是以增加计算负载为代价的,这使得简单模板匹配不适合实时应用。到目前为止,一些作品试图减少这种复杂性。
  模板匹配的早期方法[12]及其扩展[11]包括使用模板和输入图像轮廓之间的Chamfer distance作为相异度量。例如,Gavrila和Philomin[11]在二值边缘图像的距离变换(DT)上使用Chamfer Matching[9],在形状和参数空间引入了一种由粗到细的方法。Chamfer Matching 最小化了两组边缘点之间的广义距离。虽然使用距离变换时速度很快,但是 Chamfer Transform的缺点是它对异常值的敏感性,这些异常值通常是由遮挡引起的。
  二值边缘图像的另一个常见度量是Hausdorff距离[15]。它测量从图像中的每个边缘点到模板中的最近邻居的所有距离的最大值。但是,它对遮挡和杂波敏感。Huttenlocher等人,[10]试图通过引入广义Hausdorff距离来避免该缺点,该距离仅计算图像与模型边缘之间的第k最大距离和模型与图像边缘之间的第L最大距离。这使得该方法对一定百分比的遮挡和杂波具有鲁棒性。不幸的是,需要预先估计图像中的背景杂波,但并不总是可用的。此外,计算Hausdorff距离在计算上是昂贵的,并且当使用许多模板时会妨碍其实时应用。
   Chamfer Matching和Hausdorff距离都可以很容易地修改以考虑边缘点的方向。这大大减少了假阳性的数量,如[12]所示,但不幸的是也增加了计算负载。
  [16]的方法也基于距离变换;但是,它对尺度变化具有不变性,并且对可以进行实时匹配的平面透视失真具有足够的鲁棒性。不幸的是,它仅限于具有闭合轮廓的对象,这些对象并不总是可用的。
  所有这些方法都使用通过轮廓提取算法获得的二值边缘图像,例如使用Canny检测器[17],并且它们对光照变化、噪声和模糊非常敏感。例如,如果图像对比度降低,则提取的边缘像素的数量逐渐减少,这与增加遮挡量的效果相同。
  文[18]提出的方法试图通过考虑图像梯度与图像轮廓的对比来克服这些限制。它依赖于点积作为模板梯度和图像梯度之间的相似性度量。不幸的是,随着到对象位置的距离的增加,或者当对象的外观甚至稍微失真时,该度量会迅速下降。因此,必须对相似性度量进行密集评估,并使用许多模板来处理外观变化,这使得该方法的计算成本很高。使用图像金字塔可以提高速度;但是,如果不仔细采样缩放空间,可能会丢失精细但重要的结构。
  与上述方法相反,也有解决一般视觉识别问题的方法:它们基于统计学习,旨在检测对象类别,而不是先验的已知对象实例。虽然它们在类别泛化方面更好,但在学习和运行时通常要慢得多,这使得它们不适合在线应用程序。
  例如,Amit等人。[19]提出了一种粗到细的方法,在局部邻域中传播梯度方向。在初始阶段,学习每个对象部分的传播量。虽然这种用于车牌读取的方法获得了很高的识别率,但它并不是实时的。
  梯度直方图(HoG)[1]是另一种相关且非常流行的方法。它统计地描述了图像局部的强度梯度分布。该方法在均匀间隔的稠密网格上进行计算,并使用重叠的局部直方图规范化以获得更好的性能。它已被证明提供可靠的结果,但往往是缓慢的,由于计算复杂度。
  Ferrari 等。[4]提供了一种基于学习的方法,该方法通过在二值边缘图像的对象边界上使用非刚性形状匹配器的Hough式投票方案来识别对象。该方法应用统计方法,从少数图像中学习模型,这些图像仅限于对象周围的边界框内。该方法虽然具有很好的分类效果,但由于计算量大,不适合实时跟踪目标,也不足以精确地返回目标的姿态。此外,它对二值边缘检测器的结果非常敏感,这是我们之前讨论过的一个问题。
  Kalal等人,[20]最近开发了一种基于在线学习的方法。他们展示了如何利用自动生成的训练集实时在线训练分类器。然而,正如我们在实验中所看到的,这种方法只适用于平滑的背景转换,而不适用于在未知背景下检测已知目标。
  与上述基于学习的方法相反,还有一些方法是专门针对不同的观点进行训练的。与我们基于模板的方法一样,它们可以检测不同姿势下的物体,但通常需要大量的训练数据和长时间的离线训练阶段。例如,在[5]、[21]、[22]中,训练一个或多个分类器来检测不同视图下的人脸或汽车。
  最新的三维目标检测方法与目标类别识别有关。Stark等人,[23]依赖三维CAD模型,通过从不同的角度渲染它们来生成训练集。Liebelt和Schmid[24]将几何形状和姿势与自然图像结合起来。Su等人,[25]结合基于部件的概率表示,使用观察球的密集多视图表示。虽然这些方法能够推广到对象类,但它们不是实时的,需要昂贵的培训。
  从同时考虑深度数据的相关工作来看,主要有与行人检测相关的方法[26]、[27]、[28]、[29]。它们使用三种提示:图像强度、深度和运动(光流)。Enzweiler等人的最新方法,[26]建立基于部分的行人模型,以便处理由其他对象造成的遮挡,而不仅仅是在其他方法中建模的自遮挡[27],[29]。除了行人检测外,Sun等人还提出了一种目标分类、姿态估计和重建方法[30]。训练数据集由深度和图像强度组成,而目标类则由改进的Hough变换检测。虽然在实际应用中非常有效,但这些方法仍然需要使用大型训练数据集进行详尽的训练。这通常在机器人应用程序中是禁止的,因为机器人必须探索未知环境并在线学习新对象。
  如引言中所述,我们最近提出了一种基于模板从不同角度检测无纹理三维对象实例的方法[7]。每个对象都表示为一组模板,依赖于局部主梯度方向来构建输入图像和模板的表示。提取主方向有助于容忍较小的平移和变形。它的执行速度很快,而且在大多数情况下,它的鉴别能力足以避免产生过多的假阳性检测。
  然而,我们注意到,当输入图像中的背景杂波产生的不同方向的强梯度干扰了梯度方向时,该方法的性能明显下降。实际上,这种情况经常发生在物体轮廓的附近,这是不幸的,因为轮廓是一个非常重要的线索,特别是对于无纹理的物体。本文提出的方法在同一速度下运行时不存在此问题。此外,我们展示了如何扩展我们的方法,以处理三维表面法线,当密集的深度传感器,如Kinect是可用的时。正如我们将看到的,这将显著提高健壮性。

3.提出的方法

   O O O O \mathcal{O} O T \mathcal{T} T r \mathcal{r} r c \mathcal{c} c r i r_i ri O O O G \mathcal{G} G
  在本节中,我们将描述我们的模板表示法,并展示如何构建输入图像的新表示法,以及如何用于解析图像以快速查找对象。我们将从推导相似性度量开始,强调它的每个方面的贡献。我们还展示了如何实现该方法,使之有效使用现代处理器架构。此外,我们还演示了如何在有密集深度传感器的情况下集成深度数据以增强鲁棒性。

3.1 相似性度量

  我们的未优化相似性度量可以看作是Steger在[18]中定义的度量,它被修改为对小的平移和变形具有鲁棒性。斯特格建议使用:
在这里插入图片描述

其中 ori( O , r \mathcal{O},r O,r) 是要检测对象的参考图像 O \mathcal{O} O中位置 r r r处的以弧度表示的梯度方向。类似地,ori( I , c + r \mathcal{I},c+r I,c+r)是输入图像 I \mathcal{I} I中由 r r r移位的 c c c处的梯度方向。我们使用 P \mathcal{P} P表示的列表来定义在 O \mathcal{O} O中要考虑的位置 r r r。这样我们可以有效地处理任意形状的对象。
因此,模板 T \mathcal{T} T被定义为一对 T = ( O , P ) \mathcal{T}=(\mathcal{O},\mathcal{P}) T=(O,P)

  如Fig. 2.所示,通过从对应的参考图像中提取其最具判别性的梯度方向的小集合并存储它们的位置来创建每个模板 T \mathcal{T} T。为了提取最具判别性的梯度,我们考虑了它们规范的强度。在这个选择过程中,我们还考虑了梯度的位置,以避免在对象的一个局部区域中梯度方向的累积,而对象的其余部分没有得到充分的描述。如果有密集深度传感器可用,我们可以使用三维曲面法线扩展我们的方法,如Fig. 2.的右侧所示。
在这里插入图片描述

Fig. 2. 一种不同造型的玩具鸭。左:强的和有区分度的图像梯度主要出现在轮廓上。梯度位置 r i r_i ri显示为粉红色。中:如果有密集的深度传感器,我们也可以利用表面三维法线,这些法线主要出现在鸭子的身体上。法线位置 r k r_k rk显示为粉红色。右图:二维图像梯度和三维曲面法线的结合提高了稳健性(见第2.9节)。这是由于视觉线索的互补性:梯度通常出现在物体轮廓上,而表面法线则出现在物体内部。

  仅考虑梯度方向而不考虑其范数 ,使得该方法对对比度变化具有鲁棒性,而采用余弦的绝对值可以使其正确处理遮挡边界的对象:如果对象位于暗背景或亮背景上,则不会受到影响。
  (1)的相似性度量对背景杂波具有很强的鲁棒性,但对小位移和小变形不具有鲁棒性。常见的解决方案是首先量化方向,并使用局部直方图,如SIFT[6]或HoG[1]。但是,当背景中出现强梯度时,这种情况可能不稳定。在主方向模板[7]中,我们保持了一个区域的主导方向。这比建立柱状图要快,但也有同样的不稳定性。另一种选择是将高斯卷积应用于DAISY[31]中的方向,但这对于我们的目的来说太慢了。
  因此,我们提出了一个更有效的解决方案。我们引入了一种相似性度量,对于目标上的每个梯度方向,在相关梯度位置的邻域中搜索输入图像中最相似的方向。这可以形式化为
在这里插入图片描述

其中, R ( c + r ) = [ c + r − T 2 , c + r + T 2 ] \mathcal{R}(c+r)=[c+r-\frac{T}{2},c+r+\frac{T}{2}] R(c+r)=[c+r2T,c+r+2T] X [ c + r − T 2 , c + r + T 2 ] [c+r-\frac{T}{2},c+r+\frac{T}{2}] [c+r2T,c+r+2

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
MATLAB中可以使用梯度算子来进行像小目标检测梯度算子是一种用于计算像边缘的方法,可以帮助我们提取出像中的边缘信息,从而实现目标检测。 首先,我们可以使用MATLAB中的“imgradient”函数计算出像的梯度幅值和梯度方向。梯度幅值表示像中每个像素点的灰度变化程度,而梯度方向表示像中每个像素点的灰度变化方向。 接下来,我们可以阈值化梯度幅值来检测目标。可以将梯度幅值与设定的阈值相比较,将大于阈值的像素点标记为目标点,从而实现目标检测。阈值的选择会直接影响到检测结果的准确性和灵敏度,因此需要根据具体情况进行调整。 此外,可以进一步通过连通域分析来提取出小目标的位置信息。这可以通过MATLAB中的“bwconncomp”函数实现。该函数可以将像素点分成不同的连通域群组,然后可以通过计算每个连通域的中心点或重心来确定小目标的位置。 最后,根据目标的位置信息,我们可以在原始像上标记出检测到的小目标,以便后续分析和处理。这可以通过MATLAB中的“imshow”和“rectangle”函数来实现。我们可以在原始像上绘制矩形框,将检测到的小目标标记出来。 总之,MATLAB中的梯度方法可以帮助我们实现小目标检测。通过计算像的梯度幅值和梯度方向,阈值化梯度幅值,利用连通域分析提取目标位置信息,最后在原始像上标记出小目标。这样就可以方便地进行小目标检测和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值