用于检测突起对象的显著点的方法和装置与流程

文档序号:15884609发布日期:2018-11-09 18:37阅读:179来源:国知局
用于检测突起对象的显著点的方法和装置与流程

人类能够快速且准确地识别出场景中在视觉上值得注意的前景对象(称之为显著对象(salientobjects)),并且能够自动地将注意力集中到这种感官上重要的区域。然而,这种基本的智能行为对于计算机视觉系统来说,当它们被要求识别图像中的显著对象时,仍然是一项挑战。在过去的几十年,针对这个任务已经尝试了很多方法。

目前,视觉显著性研究主要利用颜色差、梯度差以及灰度差来生成显著模型。这些显著模型主要致力于从背景场景中分割或分离出显著的目标,这通常被称为显著目标检测。这样的显著模型可以通过问题“场景中的显著目标在哪里”来解释。该显著对象检测通常依赖于关于对象属性和背景的一个假设,即,对象和它周围区域之间具有高的外观对比度。在外观对比度不高的情况下,通过这些显著模型提取的基于对比度的显著对象是不可靠的。



技术实现要素:

提供以下的发明内容是为了简单地介绍一些概念,在后面的详细说明部分中将做进一步的描述。发明内容不是为了标识要求保护主题的关键特征或必要特征,也不是为了限定要求保护主题的范围。

根据说明书描述的主题的一个实施例,一种图像处理方法包括:获得突起对象(protuberantobject)的深度图像;选择该深度图像中的位于围绕着一像素的圆形上的多个测试点,该像素作为所述圆形的中心点;基于所述中心点的深度值和所选择的测试点中每个测试点的深度值之间的比较来计算所述中心点的突起值;以及通过使用所述深度图像中每个像素的所述突起值来确定所述突起对象的一个或多个显著点。

根据该主题的一个实施例,一种图像处理装置包括:获得模块,被配置用于获得突起对象的深度图像;计算模块,被配置用于选择该深度图像中的位于围绕着一像素的圆形上的多个测试点,该像素作为所述圆形的中心点,以及基于所述中心点的深度值和所选择的测试点中每个测试点的深度值之间的比较来计算所述中心点的突起值;以及检测模块,被配置为通过使用所述深度图像中每个像素的所述突起值来检测所述突起对象的一个或多个显著点。

根据该主题的一个实施例,一种计算机系统包括一个或多个处理器以及存储有计算机可执行指令的存储器,所述指令当被执行时使得所述一个或多个处理器:获得突起对象的深度图像;选择该深度图像中的位于围绕着一像素的圆形上的多个测试点,该像素作为所述圆形的中心点;基于所述中心点的深度值和所选择的测试点中每个测试点的深度值之间的比较来计算所述中心点的突起值;以及通过使用所述深度图像中每个像素的所述突起值来确定所述突起对象的一个或多个显著点。

在该主题的各种实施例中,由于对象和它周围区域之间的外观对比度对检测结果的影响较小,所以检测的可靠性得到改进。

此外,实验结果显示了所述检测对于以下方面的鲁棒性:深度区域的旋转和等距变形、传感器的变化视角以及深度图像的低分辨率。

此外,所述检测的计算量能够大幅度降低,从而根据该主题的实施例能够实现各种应用,诸如移动设备、车辆等。

下面将详细描述该主题的各个方面和特征。参考下面结合附图的描述,该主题的其他目的和优点将变得更加明显并且易于理解。

附图说明

通过下面结合附图的详细描述,该主题的特征、本质和优点将变得更加明显,其中,在不同的附图中使用相同的参考标号表示相似或相同的元素。

图1示出了可以利用该主题的实施例的示例性环境10的框图;

图2示出了根据该主题的一个实施例的用于检测突起对象的方法的流程图;

图3a示出了四个像素被选为围绕中心点的圆形上的测试点的图;

图3b示出了八个像素被选为围绕中心点的圆形上的测试点的图;

图4a和图5a分别示出了中心点和测试点的深度值,以及图4b和图5b分别示出了当具有相同数目的过零时,从顶测试点开始顺时针方向获得的比较结果;

图6a和图7a分别示出了中心点和测试点的深度值,以及图6b和图7b分别示出了当具有相同数目的正比较结果时,从顶测试点开始顺时针方向获得的比较结果;

图8示出了不平坦表面上的示例性突起块;

图9示出了针对指尖在不同的指向状态下的突起值、接近值以及几何能量;

图10示出了根据该主题的一个实施例的用于检测突起对象的装置的框图;以及

图11示出了根据该主题的一个实施例的用于检测突起对象的计算机系统的框图。

detaileddescription

将参考附图结合示例性实施例描述该主题,但是该主题不限于此,而是旨在涵盖落入所要求保护主题的实质和范围内的所有修改、等效和变型。描述的附图指示说明性的,而不是限制性的。在附图中,为了说明的目的,一些元素的尺寸被夸大,而没有按照比例绘制。

在本文中使用的术语中,术语“一”或“一个”表示“至少一个”,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”,术语“基于”表示“至少部分地基于”,术语“一个实施例”和“一实施例”表示“至少一个实施例”,术语“另一个实施例”表示“至少一个其他实施例”。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。

图1示出了示例性环境10的框图,示例性环境10可以利用根据本文所描述主题的实施例的图像处理技术。应该理解,描述环境10的结构和功能仅仅是为了说明的目的,而不是对本文所描述主题的范围加以任何限制。

环境10可以包括传感器20、显示器30以及计算设备40。

传感器20可以用于获得深度图像。深度图像由像素组成,每个像素具有指示从特定点到场景中一点的距离的像素值(即,深度值),该特定点通常关联于用于感测深度信息的传感器。例如,传感器可以是商业上可获得的传感器,诸如kinect和densestereo中使用的传感器,其通常是低成本低分辨率的传感器。应该理解,只要通过传感器能够获得深度信息,可以采用任何类型的传感器20。此外,可以布置rgb摄像机以用于获得rgb图像,为了不混淆该主题的实施例的说明,在图1中没有示出rgb摄像机。

在一个场景中,用户可以通过例如指尖的指点或划写、或手的动作等,在空中与显示器30上显示的应用(例如,游戏、操作窗口等)互动。计算设备40通过利用根据该主题的实施例的图像处理技术,可以连续地检测指尖并且跟踪指尖的指点或划写。在另一个场景中,计算设备40通过利用根据该主题的实施例的图像处理技术,可以检测手并且跟踪手的动作。应该理解,根据该主题的实施例能够被检测的对象不限于指尖、手指或手。

图2是根据该主题的一个实施例的用于检测突起对象的方法的流程图。这里的突起对象指的是具有突起形状的对象。突起形状可以是例如手上的指尖,枪口,棒头,等等。

在方框210,可以获得突起对象的深度图像。例如,可以使用三维(3d)感测技术,例如通过传感器20,来获得深度图像。在一个场景中,在传感器20实时地捕获深度图像的同时获得该深度图像。在另一个场景中,可以从存储设备中获得深度图像,其中该存储设备中预先存储或缓存了深度图像。

所获得的深度图像可以是整个深度图像,也可以是整个图像中的感兴趣区域(roi),即,部分深度图像。为了表述的简单,可以将整个或部分深度图像统称为深度图像。可以使用任何方法来设置roi,只要选择了包含感兴趣对象(例如,手)的区域即可。

可以将深度图像中的一个像素选为圆形的中心点。如方框220所示,可以至少部分地基于该中心点的深度值dc来确定该圆形的半径r(dc)。中心点的深度值dc越小,半径r(dc)越大。在一个实施例中,可以通过预定方程将半径r(dc)确定为指数的和,如式(1)所示:

其中

dc表示中心像素的深度值,

r(dc)表示圆形的半径,

η,a,b,c,d是系数。

在一个实施例中,可以通过统计的方式预先确定这些系数,例如,在一个特定的实现中,η=0.05,a=242,b=0.6499,c=-0.00079,d=0.0011。应该理解的是,系数η,a,b,c,d不限于任何特定的值。能够根据局部区域相对于中心点的相对大小来调整圆形半径的系数值可以应用于实施例。例如,圆形的半径可以反比于中心点的深度值。中心点的深度值越大,局部区域相对于中心点的相对大小越小。

如方框230所示,可以在围绕中心点的圆形上选择数个测试点。应该理解,测试点的数目不限于任何特定的数目。在一个实施例中,如图3a和3b所示,深度图像可以包括六十四个像素。应该理解,该主题的实施例不限于深度图像中的像素的特定数量,深度图像中的像素的任何数量都是可应用的。图3a和3b中示出了选择像素点的例子。

在一个实施例中,如图3a所示,围绕中心点的圆形上的四个像素被选择作为测试点。位于圆形上的测试点中每个测试点具有深度值di(i=0,1,2,3)。如果用于生成深度图像的传感器得到正确的校准,则可以直接用物理单位(例如,米)给出深度值。并且在信号处理中,可以通过二进制位(例如,八个二进制位)来表示这些深度值中的每个深度值。

在另一个实施例中,如图3b所示,围绕中心点的圆形上的八个像素被选择作为测试点。位于圆形上的测试点中每个测试点具有深度值di(i=0,1,2,…,7)。如果用于生成深度图像的传感器得到正确的校准,则可以直接用物理单位(例如,米)给出深度值。

在另一个实施例中,如果一个测试点未在一个像素的中心上,例如,围绕中心点的圆形上的八个测试点中的一些点没有在相应像素的中心上,则相应像素的深度值可能不够准确来反映这样一个测试点的深度值。在这种情况下,可以通过相邻像素的深度值的插值来获得这样一个测试点的深度值。例如,这样一个测试点的深度值可以通过它的两个相邻像素或四个相邻像素的深度值的双线性插值来获得。

回到图2,在方框240中,在一个实施例中,基于中心点的深度值(dc)和所选择的八个测试点中每个测试点的深度值(d0,d1,…d7)之间的比较,来计算中心点的突起值fc。如果一个测试点的深度值di大于中心点的深度值dc,即δd=di-dc>0,则生成正比较结果hi。与所选择的八个测试点相关联的正比较结果的数目被计数(即,累计)为pc,如公式(2)到(4)所示。

hi=δ(di-dc)(2)

其中,n是所选择的测试点的数目。

中心点的突起值fc是正比较结果的数目pc的函数。正比较结果的数目pc越大,中心点的突起值fc越大。突起值fc描述了一个深度区域(例如,中心点)相较于它周围有多么突出,从而它可以指示一个对象从周围突起的程度。

在进一步的实施例中,可以提供过零的数目作为对象的突起程度的指示。从所选择的八个测试点中每个测试点的深度值di减去中心点的深度值dc。如果与一个测试点和它的下一个相邻测试点相关联的减法结果的符号发生反转,则产生一个过零si。与所选择的八个测试点相关联的过零的数目被计数为zc,如公式(5)到(7)所示。

其中,

rem(i,j)是i除以j得到的余数;

n是测试点的数目,在这个例子中n等于8。

突起值fc可以是过零的数目zc的函数。过零的数目zc越小,中心点的突起值fc越大。

在进一步的实施例中,突起值fc可以是正比较结果的数目pc和过零的数目zc的函数。

公式(8)中所示的突起值fc描述了一个深度区域(例如,中心点)从它的周围上升了多少,所以它可以表示深度区域(例如,中心点)从它周围的突起显著的程度。利用两个参数,即,正比较结果的数目pc和过零的数目zc,可以提供更高置信水平的突起值fc,来指示中心点的突起的程度。

图4a和图5a示出了中心点的深度值dc和测试点的深度值。图4b和图5b分别示出了从顶测试点开始顺时针方向获得的比较结果。可见,当具有相同数目的过零(例如,图4b和图5b所示的两个过零)时,正比较结果的数目越大,中心点的突起值越大。

图6a和图7a示出了中心点的深度值dc和测试点的深度值。图6b和图7b分别示出了从顶测试点开始顺时针方向获得的比较结果。可见,当具有相同数目的正比较结果(例如,图6b和图7b所示的五个正比较结果)时,过零的数目越小,中心点的突起值越大。

回到图2,在方框250,将深度图像中的每个像素(例如,图3b所示实施例中的六十四个像素中的每个像素)作为中心点,来基于该中心点的深度值(dc)和所选择的八个测试点中每个测试点深度值(d0,d1,…d7)来计算突起值fc。即,将深度图像中的每个像素映射到突起显著图(protuberantsaliencymap)中的突起值。基于突起显著图中的突起值,可以确定突起对象的一个或多个显著点,例如,手或手指中的指尖。换言之,如图8所示的一个实施例中说明的,该突起显著图可以使不平坦表面上的一个或多个突起块变得明显。通过计算深度图像中每个像素的突起值,可以确定突起对象的一个或多个显著点。突起对象的显著点检测具有实际的应用。例如,指尖检测是用于自然用户接口(nui)的重要技术。

在进一步的实施例中,在方框260中,突起显著图中的一个像素的突起值(例如,fi)可以通过该像素的相应深度值(例如,深度图像中像素i的深度值di)来平衡。具体地,该平衡可以包括:将突起值(例如,fi)乘以正规化的深度值gi,其中gi=n(255-di),n(·)是正规化函数,用于将深度范围设置在0和255之间,0<di≤255。

在一个例子中,可以通过以下公式(9)和(10),通过反转和拉伸深度值di,来计算正规化的深度值gi。

gi=n(255-di)其中0<di≤255(9)

其中

di表示像素i的深度值,

gi表示像素i的正规化的深度值,

dth表示用于拉伸操作的阈值。

在一个例子中,可以将dth选为204,其允许5倍的拉伸。应该理解,dth不限于特定的值。

在一个例子中,深度值被正规化为0到255,值255表示深度图像中一个像素的最大深度值。应该理解,最大深度值dmax不限于255,并且取决于深度值的正规划范围,可以是其他的值。

可以将突起显著图表示为突起项fc,其由多个突起值fi构成(fc中的索引c表示深度图像中的像素i被认为是圆形的中心点,以用于计算突起值fi)。深度图像中的每个像素i的深度值可以通过函数n(·)被正规化,并且所有正规化的深度值可以构成一个接近度图(nearnessmap),表示为接近度项gc(gc中的索引c表示深度图像中的相应像素i被认为是圆形的中心点,以用于计算突起值fi)。突起项fc和接近度项gc都可以是矩阵。

如下面的公式(11)所示,突起项fc中的每个突起值fi乘以与接近度项gc中的相应像素相关联的正规化的深度值gi,以获得几何能量ec。该几何能量由于考虑了突起和接近度,因此能够提供突起区域(例如,中心点)的改善的显著性指示。

ec=│fc·gc│(11)

基于上述用于获得几何能量ec的公式,通过计算深度图像中的每个像素的几何能量值获得几何能量图(geometryenergymap)。图9示出了指尖在不同的指向状态中的突起、接近度和几何能量。

在一个例子中,在几何能量图中具有最大几何能量的点可以被识别为突起对象的显著点,诸如指尖、枪口、棒头等。

还可以结合其他方法将几何能量图用于检测突起对象。例如,可以将基于回归的方法和基于分类的方法应用于几何能量图中的几何能量值(即,深度图中的每个像素的经平衡的突起值)。可以通过使用基于回归的方法或基于分类的方法,基于预先训练的模型在几何能量图中确定预定义的对象特征集,从而可以在几何能量图中检测出对应于该对象特征集的对象。例如,预先训练的模型可以对应于狗的嘴、耳和腿,鱼的嘴和鳍,手指,手,等。例如,手、或者手连同前臂可以被检测为突起对象。例如,手的一个或多个手指可以被检测为突起对象。基于回归的方法或基于分类的方法的例子可以包括随机蕨(randomferns)、随机决策森林(randomdecisionforests)、卷积神经网络(cnn,convolutionalneuralnetwork)、支持向量机(svm,supportvectormachine)等。

用于检测突起对象的方法不限于以上描述的内容。本领域技术人员清楚,所要求保护主题的各种方面可以在不同于这些具体细节的其他例子中实施。

如上述实施例中所描述的,圆形的半径r(dc)是至少部分地基于中心点的深度值dc确定的,图框220中所示。

如图3a和图3b所示,测试点是对称地布置在圆形上的。在替换实施例中,也可以将测试点不对称地布置在圆形上。

虽然提供了一些公式作为例子,本领域技术人员可以理解,可以在不偏离该主题的实质的情况下修改这些公式。例如,可以根据下面的公式(12)代替上述公式(5)-(7)来计算过零的数目。

其中,h的定义参见上面实施例中描述的公式(2)和(3),n是测试点的数量;rem(i,j)是i除以j得到的余数。

进一步地,如上面实施例中所描述的,基于中心点的深度值(dc)和所选八个测试点中每个测试点的深度值(d0,d1,…d7)之间的比较来计算中心点的突起值fc。本领域技术人员应该理解,虽然与中心点相关的测试点是基于半径值选择的,但是该主题不限于此。在一个实施例中,可以利用粗到细策略来计算突起值fc,从而减轻深度噪声的影响。基于粗到细策略,关于一个中心点可以使用多个半径。例如,通过使用公式(1)确定了5个像素长度的半径后,可以使用两个额外的半径(分别是通过递增半径得到的6个像素长度和7个像素长度),来选择测试点以及计算中心点的相应突起值fc。应该理解的是,半径的数目不限于特定的数目,诸如3,并且递增量不限于特定的值,诸如1。在一个实施例中,可以使用三个半径来获得中心点的三个突起值,以及在三个计算的突起值中,可以将具有最高出现频率(即,一个值出现多少次)的突起值最终投票选为中心点的突起值。在另一个实施例中,可以将三个计算的突起值的平均值作为中心点的突起值。

本领域技术人员能够理解,上述用于检测突起对象的方法可以用于检测人手的一个或多个指尖、或一个或多个手指,可能检测人的双手的指尖或手指(例如,两只手被识别为两个对象)。甚至可以将上述方法应用于检测不同人手的指尖或手指,例如,不同的手被识别为不同的对象。

应该理解,上述方框中描述的元素可以通过硬件、软件或其组合的各种形式来实现。

图10示出了用于检测突起对象的示例性装置300。装置300可以包括获得模块310、计算模块320和检测模块330。装置300可以是图1所示的计算设备40的实施例,或者可以在计算设备40中实现。

获得模块310可以获得突起对象的深度图像。在一个场景中,获得模块310可以在传感器20捕获深度图像的同时实时地获得深度图像。在另一个场景中,获得模块310可以获得存储设备中存储的深度图像。计算模块320可以计算深度图像的每个像素的突起值和/或几何能量值。在一个实施例中,计算模块320可以通过参照图2的方框220、230、240中至少一个方框描述的操作来计算深度图像的每个像素的突起值。在另一个实施例中,计算模块320可以通过参照图2的方框220、230、240、260中至少一个方框描述的操作来计算深度图像的每个像素的几何能量值。检测模块330可以通过使用深度图像中每个像素的突起值或几何能量值来检测突起对象的一个或多个显著点。在一个实施例中,检测模块330可以选择具有一个或多个最大突起值或具有一个或多个最大几何能量值的一个或多个点作为一个或多个显著点。在另一个实施例中,检测模块330结合如上所述的诸如基于回归的方法或基于分类的方法的其他方法,根据深度图像的每个像素的突起值或几何能量值(例如,突起显著图或几何能量图)来检测突起对象。应该理解,获得模块310、计算模块320和检测模块330可以执行在该主题的各种实施例中描述的各个操作和功能。

获得模块310、计算模块320和检测模块330可以通过硬件、软件或其组合的各种形式来实现。在一个实施例中,这些模块可以通过一个或多个硬件逻辑组件来分别实现或作为整体实现。例如但不限于,可以使用的硬件逻辑组件的示例类型包括现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑器件(cpld)等。在另一个实施例中,这些模块可以通过一个或多个软件模块实现,该软件模块可以由通用中央处理单元(cpu)、图形处理单元(gpu)、数字信号处理器(dsp)等执行。

图11示出了用于检测突起对象的示例性计算机系统400。根据一个实施例,通用计算系统可以作为操作者控制器。该控制器可以包括一个或多个处理器410,处理器410执行在计算系统本地的或远程的计算机可读存储介质(即,存储器)420中存储或编码的一个或多个计算机可读指令(即,上述以软件形式实现的块中的元素)。该控制器中驻留的软件可以允许操作者控制该系统的操作。该装置还可以包括诸如显示器的输出设备430以及诸如键盘、鼠标、触摸屏等的输入设备440。

根据一个实施例,提供了一种诸如机器可读介质的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的块中的元素),该指令当被机器执行时,使得机器执行根据该主题的各种实施例的方法。

根据本文描述的技术,根据中心点的深度值(dc)和所选八个测试点中每个测试点的深度值(d0,d1,…d7)之间的比较来计算中心点的突起值。即,仅基于深度图像来获得突起显著性。由于深度图像对于光照变化的鲁棒性,根据该主题的检测方法不依赖于对象和其周围区域之间的外观对比度。因此改善了检测方法和装置的可靠性。

进一步的,深度图像清楚地编码了突起对象的表面度量维度,在围绕中心点的圆形上布置测试点,该算法基于中心点的深度值和每个测试点的深度值之间的比较,凭借以上优势,在大的旋转和等距变形、传感器的视角变化、以及低分辨率深度信息的条件下,根据该主题的检测方法和装置给出了良好的性能。

由于仅使用单个通道来确定突起显著性(即,突起显著图中的突起值),与本领域其他方法(其使用诸如红(r)颜色通道、绿(g)颜色通道、蓝(b)颜色通道和深度(d)通道的不同通道),根据该主题的检测方法和装置能够实现快速计算。

随着显著对象检测的大范围的发展,根据该主题的检测方法和装置将许多领域中具有广泛的应用,诸如对象识别、图像大小变换、图像检索等领域。

应该注意,上面描述的技术方案是为了说明而不是限制该主题,并且本领域技术人员能够在不脱离所附权利要求范围的情况下设计出替换的技术方案。在权利要求中,括号中的任何参考符号不应被解释为限制权利要求。词语“包括”不排除权利要求中或说明书中没有列出的元素或步骤的存在。某个元素前的词语“一”或“一个”不排除多个这样的元素的存在。在包含若干单元的系统权利要求中,这些单元中的一些可以通过一个相同的软件和/或硬件实施。词语“第一”、“第二”、“第三”等的使用不表示任何排序。这些词语要被解释为名称。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1