基于阶跃响应匹配的亚像素级视觉特征点定位方法及装置与流程

文档序号:21547786发布日期:2020-07-17 17:59阅读:180来源:国知局
基于阶跃响应匹配的亚像素级视觉特征点定位方法及装置与流程

本申请涉及电子信息领域,尤其涉及一种基于阶跃响应匹配的亚像素级视觉特征点定位方法及装置。



背景技术:

一般工业用视觉定位技术的实现实质,是对图像中的某些特征“点”或“线”对应的阶跃信号的识别。传统的对图像中的“点”或“线”的识别原理,都是基于对像素灰度值的判断。处理对象是像素点,必然以像素对应的分辨率尺度为步进值。因此,难以实现亚像素级定位精度。另外,由于相机成像过程中离散像素的低通作用,损失了很多阶跃信号点的位置信息,这也不利于高精度视觉定位的实现。

因此,如何提高定位的精度,成为目前亟待解决的问题。



技术实现要素:

本申请提供了一种基于阶跃响应匹配的亚像素级视觉特征点定位方法及装置,目的在于解决如何实现亚像素级的定位,以提高定位的精度的问题。

为了实现上述目的,本申请提供了以下技术方案:

一种基于阶跃响应匹配的亚像素级视觉特征点定位方法,包括:

获取待定位物体的图像,所述待定位物体上设置有标记线,所述标记线的一侧的灰度值大于另一侧的灰度值;

获取所述待定位物体的修正项,所述修正项依据所述图像中的所述标记线的邻域确定的亚像素点的坐标值确定;

使用所述修正项,对所述待定位图像的位置信息修正,得到定位结果。

可选的,获取所述待定位物体的修正项,包括:

获取所述亚像素点的坐标值;

获取第一直线方程,所述第一直线方程为使用所述坐标值计算得到的所述标记线的直线方程;

获取第二直线方程,所述第二直线方程为使用预设的其它方式,得到的所述标记线的直线方程;

依据所述第一直线方程和所述第二直线方程,确定所述修正项。

可选的,所述获取所述亚像素点的坐标值,包括:

通过获取所述邻域中的每一行像素的行数组,得到多个行数组,其中,任意一个行数组为,所述邻域中任意一行像素点,按照预设顺序,使用像素的灰度值形成的一维数组;

计算每个行数组的转折值,任意一个行数组的转折值为:该行数组中的像素的灰度值之和与n倍的第一灰度值的差值,除以第二灰度值与第一灰度值的差值,得到的数值,其中,n为该行数组中的像素的数量,所述第一灰度值为所述标记线的一侧的灰度值,所述第二灰度值为所述标记线的另一侧的灰度值,所述第一灰度值小于所述第二灰度值;

将所述每个行数组的转折值拟合为等差数组;

获取所述亚像素点的坐标值,任意一个所述亚像素点的横坐标值为,所述等差数组中的任意一个数值,该亚像素点的纵坐标值为,该横坐标值在所述等差数组中的标号与预设步长之差。

可选的,所述预设步长为所述图像中预设坐标轴方向上的相邻像素的坐标值之差的0.5倍。

可选的,所述依据所述第一直线方程和所述第二直线方程,确定所述修正项,包括:

将所述第一直线方程中的常数项与所述第二直线方程中的常数项之间的差值,作为所述修正项。

可选的,所述邻域满足以下条件:

每行以及每列的第一个像素的像素值为第一灰度值,每行以及每列的最后一个像素的像素值为第二灰度值,所述第一灰度值为所述标记线的一侧的灰度值,所述第二灰度值为所述标记线的另一侧的灰度值,所述第一灰度值小于所述第二灰度值。

可选的,所述修正项为第一数值与第二数值之商,所述第二数值为所述第二灰度值与所述第一灰度值之差。

一种基于阶跃响应匹配的亚像素级视觉特征点定位装置,包括:

图像获取模块,用于获取待定位物体的图像,所述待定位物体上设置有标记线,所述标记线的一侧的灰度值大于另一侧的灰度值;

修正项获取模块,用于获取所述待定位物体的修正项,所述修正项依据所述图像中的所述标记线的邻域确定的亚像素点的坐标值确定;

定位模块,用于使用所述修正项,对所述待定位图像的位置信息修正,得到定位结果。

一种基于阶跃响应匹配的亚像素级视觉特征点定位设备,包括:

存储器和处理器,所述存储器用于存储程序,所述处理器用于运行所述程序,以实现上述的基于阶跃响应匹配的亚像素级视觉特征点定位方法。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在计算机上运行时,实现上述的基于阶跃响应匹配的亚像素级视觉特征点定位方法。

本申请所述的技术方案,获取设置有标记线的待定位物体的图像,标记线的一侧的灰度值大于另一侧的灰度值,获取所述待定位物体的修正项,修正项依据图像中的标记线的邻域确定的亚像素点的坐标值确定,使用修正项,对待定位图像的位置信息修正,得到定位结果。可见,通过在待定位物体上设置标记线,以及标记线两侧设置不同的灰度值,实现亚像素点的阶跃响应匹配,从而提高定位结果的精度。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为采集设置有预设的标记线a的待定位物体的示例图;

图2为本申请实施例公开的一种基于阶跃响应匹配的亚像素级视觉特征点定位方法的流程图;

图3为本申请实施例公开的又一种基于阶跃响应匹配的亚像素级视觉特征点定位方法的流程图;

图4为本申请实施例公开的一种基于阶跃响应匹配的亚像素级视觉特征点定位的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例所述的技术方案,可以应用在图1所示的场景下:图1中,待定位物体上设置有预设的标记线a,标记线两侧区域的灰度值均匀且不同。设灰度值较高的一侧区域的灰度值h1,灰度值较低的一侧区域的灰度值为h0。

对于待定位物体的定位是指,待定位物体被摄像头采集到图像,依据图像实现定位,具体的定位算法可以参见现有技术,这里不再赘述。本申请实施例所述的技术方案,目的在于获取修正值,并使用修正值为现有技术计算的定位结果进行修正,即修正定位结果的亚像素坐标,以提高定位结果的精度。

图2为本申请实施例公开的一种基于阶跃响应匹配的亚像素级视觉特征点定位方法,包括以下步骤:

s201:使用相机(例如工业相机)采集待定位物体的图像。

需要说明的是,因为标记线用于定位结果的修正,所以,待定位物体具有标记线的部分一定要能被相机采集到,例如图1所示,被相机拍摄的平面上设置标记线,或者,在待定位物体的每一个能被相机采集到的平面,设置上述标记线。

即采集到的图像中包括上述标记线。可选的,可以对采集到的图像进行滤波降噪等处理,获得质量较好的图像。

s202:在图像中提取标记线的邻域,记为s。

邻域的定义可以参见现有技术。本实施例中,邻域s的大小和形状均不作限定。以下以矩形邻域为例说明。

s满足条件:每行以及每列的第一个像素的像素值为h0,每行以及每列的最后一个像素的像素值为h1。即s的一侧位于灰度值较高的区域,另一侧位于灰度值较低的区域。以及,每一行都包括标记线a上的一个像素。

s203:将矩形邻域s的每一行中的像素,按照预设顺序,例如先左后右,使用每个像素的灰度值形成一维数组,得到多个行数组。

以s中包括m行为例,得到的多个行数组为:

a11,a12,……,a1n;第一个行数组;

a21,a22,……,a2n;第二个行数组;

……;

am1,am2,……,amn。第m个行数组。

其中,aij为s中的第i行第j列的像素的灰度值。

s204:计算每个行数组的转折值。

接上例,b1=(a11+a12+......+a1n-n*h0)/(h1-h0);

b2=(a21+a22+......+a2n-n*h0)/(h1-h0);

……;

bm=(am1+am2+......+amn-n*h0)/(h1-h0);

从上述公式可以看出,任意一个行数组的转折值为:该行数组中的像素的灰度值之和与h0的n倍的差值,除以h1与h0的差值,得到的数值。其中,n为该行数组中的像素的数量。

s205:以高斯拟合等任何现有公知的直线拟合方法,将数组b1、b2、……、bm拟合成等差数组。

s206:在s中建立坐标系。

其中,坐标系的原点为a11,横轴方向为行像素的排列方向,即水平方向,纵轴为方向为列像素的排列方向,即竖直方向。

s207:将坐标为(b1,0.5)、(b2,1.5)、……、(bm,m-0.5)的像素点,作为标记线a上的亚像素点。

需要说明的是,纵坐标以0.5为间隔,所以指示的点为亚像素点。

s208:使用标记线a上的亚像素点的坐标,计算标记线a的直线方程,记为第一直线方程。

具体的,将亚像素点的坐标代入直线方程x+ay+b=0,得到a、b。

可选的,可以使用多组不同的亚像素点(每组两个)的坐标,得到多个a、b,再将多个a的平均值、多个b的平均值、作为最终的标记线系数。

s209:使用机械几何方法,测量标记线a的直线方程,记为第二直线方程。

机械几何方法具体可以为,使用测量工具,测量图像中的距离,并依据距离确定第二直线方程。

s210:基于第一直线方程和第二直线方程,确定修正项。

因为第一直线方程和第二直线方程均为图像中标记线a的直线方程,所以,第二直线方程为第一直线方程平移后的方程,实验证明,第二直线方程可以写为x+ay+b+c/(h1-h0)=0。因此,c/(h1-h0)即为修正项。

s211:使用修正项修正依据图像对待定位物体的定位结果。从图2所示的流程可以看出:第一,由像素点的灰度值,得到亚像素点的灰度值,并以亚像素点的灰度值计算得到直线方程,所以,修正的粒度为亚像素级,因此,具有更高的精度。第二,利用预设的灰度差重构了亚像素级的坐标点,弥补了阶跃信号的损失,从而有利于提高定位结果的精度。

需要说明的是,以上流程中,以标记线的方程的对比方式,获取修正项为例进行说明,实际中,也可以使用标记线上的任意一点的计算值(第一直线方式上的任一点的值,即为计算值)和测量值(第二直线方程上任一点的值即为测量值)进行对比,得到修正项,本申请不做限定。并且上述流程中,在待定位物体不变的情况下,可以仅计算一次修正项,而无需重复计算,在待定位物体改变(例如由物体a变为物体b)的情况下,再重新计算修正项,以节省资源。

因此,上述流程可以概括为图3所示的流程,包括以下步骤:

s301:获取待定位物体的图像。

待定位物体上设置有标记线,所述标记线的一侧的灰度值大于另一侧的灰度值。

s301:获取待定位物体的修正项。

其中,修正项依据所述图像中的所述标记线的邻域确定的亚像素点的坐标值确定。标记线的设置方式参见上述表述,这里不再赘述。

具体的,获取待定位物体的修正项的过程为:获取亚像素点的坐标值;获取第一直线方程,第一直线方程为使用坐标值计算得到的标记线的直线方程;获取第二直线方程,第二直线方程为使用预设的其它方式,得到的标记线的直线方程;依据第一直线方程和第二直线方程,确定修正项。

进一步的,获取亚像素点的坐标值的步骤为:通过获取邻域中的每一行像素的行数组,得到多个行数组,其中,任意一个行数组为,邻域中任意一行像素点,按照预设顺序,使用像素的灰度值形成的一维数组。计算每个行数组的转折值,任意一个行数组的转折值为:该行数组中的像素的灰度值之和与n倍的第一灰度值的差值,除以第二灰度值与第一灰度值的差值,得到的数值,其中,n为该行数组中的像素的数量,第一灰度值为标记线的一侧的灰度值,第二灰度值为标记线的另一侧的灰度值,第一灰度值小于第二灰度值。将每个行数组的转折值拟合为等差数组;获取亚像素点的坐标值,任意一个亚像素点的横坐标值为,等差数组中的任意一个数值,该亚像素点的纵坐标值为,该横坐标值在等差数组中的标号与预设步长之差。

其中,预设步长为图像中预设坐标轴方向上的相邻像素的坐标值之差的0.5倍。

进一步的,将第一直线方程中的常数项与第二直线方程中的常数项之间的差值,作为修正项。

本实施例中,邻域满足以下条件:每行以及每列的第一个像素的像素值为第一灰度值,每行以及每列的最后一个像素的像素值为第二灰度值,第一灰度值为标记线的一侧的灰度值,第二灰度值为标记线的另一侧的灰度值,第一灰度值小于第二灰度值。

其中,修正项为第一数值与第二数值之商,第二数值为第二灰度值与第一灰度值之差。

s303:获取待定位物体的图像。

其中,获取可以为实时采集或者从已有文件导入。

s304:使用修正项对待定位图像的位置信息修正,得到定位结果。

具体的,在使用现有技术确定的定位坐标值后,计算定位坐标值与修正项之和,作为修正后的定位结果。

从图3所示的流程可以看出,通过在待定位物体上设置标记线,并基于标记线预先获取亚像素级的修正项,使用修正项修正定位结果,从而提高定位结果的精度。

图4为本申请实施例公开的一种基于阶跃响应匹配的亚像素级视觉特征点定位装置,包括:图像获取模块、修正项获取模块、和定位模块。

其中,图像获取模块用于获取待定位物体的图像,所述待定位物体上设置有标记线,所述标记线的一侧的灰度值大于另一侧的灰度值。

修正项获取模块,用于获取所述待定位物体的修正项,所述修正项依据所述图像中的所述标记线的邻域确定的亚像素点的坐标值确定。

定位模块,用于使用所述修正项,对所述待定位图像的位置信息修正,得到定位结果。

具体的,修正项获取模块获取所述待定位物体的修正项的具体实现方式为:获取所述亚像素点的坐标值。获取第一直线方程,所述第一直线方程为使用所述坐标值计算得到的所述标记线的直线方程,获取第二直线方程,所述第二直线方程为使用预设的其它方式,得到的所述标记线的直线方程,依据所述第一直线方程和所述第二直线方程,确定所述修正项。

进一步的,获取所述亚像素点的坐标值的具体实现方式为:通过获取所述邻域中的每一行像素的行数组,得到多个行数组,其中,任意一个行数组为,所述邻域中任意一行像素点,按照预设顺序,使用像素的灰度值形成的一维数组;计算每个行数组的转折值,任意一个行数组的转折值为:该行数组中的像素的灰度值之和与n倍的第一灰度值的差值,除以第二灰度值与第一灰度值的差值,得到的数值,其中,n为该行数组中的像素的数量,所述第一灰度值为所述标记线的一侧的灰度值,所述第二灰度值为所述标记线的另一侧的灰度值,所述第一灰度值小于所述第二灰度值;将所述每个行数组的转折值拟合为等差数组;获取所述亚像素点的坐标值,任意一个所述亚像素点的横坐标值为,所述等差数组中的任意一个数值,该亚像素点的纵坐标值为,该横坐标值在所述等差数组中的标号与预设步长之差。

依据所述第一直线方程和所述第二直线方程,确定所述修正项的具体实现方式为:将所述第一直线方程中的常数项与所述第二直线方程中的常数项之间的差值,作为所述修正项。

图4所示的装置,通过设置的标记线以及标记线两侧不同的灰度值,能够实现基于阶跃响应匹配的亚像素级视觉特征点的定位,具有较高的精度。

本申请实施例还公开了一种基于阶跃响应匹配的亚像素级视觉特征点定位设备,包括:存储器和处理器,所述存储器用于存储程序,所述处理器用于运行所述程序,以实现上述实施例所述的基于阶跃响应匹配的亚像素级视觉特征点定位方法。

本申请实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在计算机上运行时,实现上述实施例所述的基于阶跃响应匹配的亚像素级视觉特征点定位方法。

本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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