模板信息获取方法、设备及计算机可读存储介质

文档序号:9346 发布日期:2021-09-17 浏览:128次 英文

模板信息获取方法、设备及计算机可读存储介质

技术领域

本发明实施例涉及机器视觉领域,更具体地说,涉及一种模板信息获取方法、设备及计算机可读存储介质。

背景技术

在各种自动化设备中,直接通过机械结构来提供高精度定位的方式,对机械加工、安装调试等的要求非常高,且成本高昂。通过在自动化设备中安装视觉系统,用机器视觉系统来提供定位,具有成本低、应用简单、灵活性高、自适应强等优点。

在机器视觉系统中,常用的匹配定位方法有基于灰度的,基于特征点的,和基于轮廓的匹配方法。基于灰度的匹配方法,直接使用灰度信息,计算量大,速度慢,对图像的一致性要求较高;基于特征点的匹配方法,需要有特定结构的特征点,计算复杂,且通用性不高;基于轮廓的匹配技术,使用轮廓边缘信息,计算量小,匹配效果稳定,精度较高。

基于轮廓的匹配技术是最常用的定位方法。由于图像的轮廓边缘包含了图像中最主要的信息,不易受内外各种因素的干扰,稳定性和一致性高,图像的边缘梯度在处理平移,缩放,旋转等情况时也非常方便,不用经过复杂的图像运算,只需要简单的几何变换运算即可完成。利用图像轮廓的边缘梯度进行匹配定位,是当前各种匹配定位方法中最常用、最有效的一种技术,因其计算简单,抗干扰能力强,匹配结果稳定可靠,易于并行加速,处理旋转和缩放简单等优点,已经成为机器视觉领域最通用的标准方法。

如图1所示,现有利用图像轮廓的边缘梯度进行匹配定位方案中,包括离线训练和在线匹配过程,在离线训练过程中,包含特定的图像特征的模板图像经过训练过程,得到模板信息;在线匹配过程中,利用上述模板信息和目标图像,经过匹配过程,最后得到模板特征在目标图像中的匹配位置。

上述基于轮廓的匹配定位方案在离线训练过程中,需手动指定像素点的比较值以获得边缘位置点,因各个模板图像的色彩、对比度等均不相同,极易导致因比较值设置不当而影响定位精度。

发明内容

本发明实施例针对上述基于轮廓的匹配定位方案在离线训练过程中,因手动指定像素点的比较值而影响定位精度的问题,提供一种模板信息获取方法、设备及计算机可读存储介质。

本发明实施例解决上述技术问题的技术方案是,提供一种模板信息获取方法,包括:

根据模板图像创建若干层金字塔图像,并提取每一层金字塔图像的梯度信息形成用于图像识别的模板信息,其中,所述提取每一层金字塔图像的模板梯度信息形成用于图像识别的模板信息,包括:

根据当前层金字塔图像中每一像素点的梯度幅值,生成当前层梯度幅值中值,并根据所述当前层梯度幅值中值生成高阈值和低阈值;

根据所述高阈值和低阈值获取边缘位置点,并根据所述边缘位置点生成当前层金字塔图像的梯度信息,所述当前层金字塔图像的梯度信息包括梯度位置列表、梯度方向列表和梯度幅值列表,且所述梯度位置列表包括每一所述边缘位置点的坐标,所述梯度方向列表包括每一所述边缘位置点的梯度方向,所述梯度幅值列表包括每一所述边缘位置点的梯度幅值。

优选地,所述方法还包括:

根据底层金字塔图像的梯度信息生成第一掩模图像,所述第一掩模图像通过对所述底层金字塔图像中的边缘位置点做膨胀处理形成;

对每一层金字塔图像,使用所述第一掩模图像消除每一层金字塔图像中的干扰边缘位置点。

优选地,所述根据所述高阈值和低阈值获取边缘位置点,包括:

对于当前金字塔图像,使用Canny算子进行边缘的提取计算,得到所有符合高阈值和低阈值要求的边缘像素点;

对所述边缘像素点进行连通域运算,获得若干条独立的边缘曲线段,并将符合预设条件的边缘曲线段上的边缘像素点作为边缘位置点。

优选地,所述将符合预设条件的边缘曲线段上的边缘像素点作为边缘位置点,包括:

将长度不小于第一预设长度的边缘曲线段作为备选边缘曲线段;

在所有备选边缘曲线段的长度之和大于第二预设长度时,删除所述备选边缘曲线段中的多余边缘像素点,并将删去多余边缘像素点后的备选边缘曲线段上的所有边缘像素点作为边缘位置点。

优选地,所述删除所述备选边缘曲线段中的多余边缘像素点,包括:

将备选边缘曲线段上相邻的预设数量的边缘像素点作为待处理像素点,并获取每一所述待处理像素点处的曲率以及所有待处理像素点的平均曲率;

将曲率并非最接近平均曲率的所有待处理像素点作为多余边缘像素点删除。

优选地,所述删除所述备选边缘曲线段中的多余边缘像素点,包括:

将备选边缘曲线段上相邻的预设数量的边缘像素点作为待处理像素点,并比较所有待处理像素点的梯度幅值;

将梯度幅值并非最大的所有待处理像素点作为多余边缘像素点删除。

优选地,根据当前层金字塔图像中每一像素点的梯度幅值,生成当前层梯度幅值中值,包括:

获取当前层金字塔图像中每一像素点的梯度幅值;

根据当前层金字塔图像中所有像素点的梯度幅值创建幅值直方图;

根据所述幅值直方图生成当前层梯度幅值中值。

优选地,所述方法还包括:

根据外部输入信息生成第二掩模图像,所述外部输入信息包括模板图像上的指定图像区域;

对每一层金字塔图像,使用所述第二掩模图像消除每一层金字塔图像中的干扰边缘位置点。

本发明实施例还提供一种模板信息获取设备,包括存储器和处理器,所述存储器中存储有可在所述处理器中执行的计算机程序,且所述处理器执行所述计算机程序时实现如上任一项所述的模板信息获取方法的步骤。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如上任一项所述的模板信息获取方法的步骤。

本发明实施例的模板信息获取方法、设备及计算机可读存储介质,通过每一层金字塔图像自动生成用于确定边缘位置点的列表,可大大提高模板信息的精度,进而提高匹配定位点进度。本发明还通过由底层金字塔图像的边缘位置点做膨胀处理形成的第一掩模图像,排除各个金字塔图像中的干扰边缘位置点,可进一步提高模板信息的精度。

附图说明

图1是利用图像轮廓的边缘梯度进行匹配定位方案的示意图;

图2是本发明实施例提供的模板信息获取方法的流程示意图;

图3是本发明实施例提供的模板信息获取方法中获取当前层梯度幅值中值的流程示意图;

图4是本发明实施例提供的模板信息获取方法中根据边缘曲线段获取边缘位置点的流程示意图;

图5是本发明实施例提供的模板信息获取方法中生成当前层金字塔图像的梯度信息的流程示意图;

图6是本发明实施例提供的模板信息获取方法中消除干扰点的示意图;

图7是本发明实施例提供的模板信息获取设备的示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明的模板信息获取方法可应用于基于边缘梯度匹配的机器视觉系统,其在传统金字塔策略匹配的基础上,通过在对模板图像提取边缘信息时,使用自动计算Canny边缘高低阈值的方法,进行边缘位置点提取,从而大大提高了模板信息的精度。

如图2所示,是本发明实施例提供的模板信息获取方法的流程示意图,该方法通过模板训练生成视觉系统中模板图像对应的模板信息。本实施例的方法通过创建若干层金字塔图像,并提取每一层金字塔图像的梯度信息,来获得用于图像识别的模板信息。具体地,本实施例的方法包括以下步骤:

步骤S21:获取模板图像作为当前层金字塔图像,也就是将模板图像作为金字塔图像的底层,并将金字塔层数设置为一。上述模板图像可由摄像头拍摄生成,其包含了特定的图像特征。当然,在实际应用中,模板图像也可通过其他方式生成,例如直接通过图形软件绘制而成。

步骤S22:判断当前层金字塔图像的尺寸是否小于第一预设尺寸Smin,并在当前层金字塔图像的尺寸小于第一预设尺寸Smin时执行步骤S27,否则执行步骤S23。

在该步骤中,可使用图像长宽尺寸作为当前层金字塔图像的尺寸进行判断。在实际应用中,也可以使用当前层金字塔图像中的边缘点的最大最小位置间距作为当前层金字塔图像的尺寸。

上述第一预设尺寸Smin可以设置为固定值,也可以根据实际应用自动或手动调整,例如可根据模板图像本身的大小、机器视觉系统的位置匹配精度要求等设置第一预设尺寸Smin,只需保证当前层金字塔图像中边缘位置点个数不会太少,从而不会在在线匹配时,因为模板信息太少而无法完成匹配。

步骤S23:根据当前层金字塔图像中每一像素点的梯度幅值,生成当前层梯度幅值中值,并根据当前层梯度幅值中值生成高阈值和低阈值。

在该步骤中,首先通过Sobel算子计算当前层的金字塔图像中每个像素点的x和y方向(即当前层的金字塔图像中相互垂直的两个方向)的灰度梯度,然后对通过Sobel算子计算得到的x和y两个方向的梯度进行极坐标变换,得到每个像素点的梯度方向和梯度幅值。其中,Sobel算子是比较通用的计算图像梯度的方法,在此不再赘述。在实际应用中,也可使用其他通用的计算图像梯度的方法获得当前层的金字塔图像中每一像素点的梯度幅值。

在获得当前层金字塔图像中每一像素点的梯度幅值后,再根据上述每一像素点的梯度幅值获得当前层金字塔图像的梯度幅值中值,以及生成用于Canny边缘检测算法的高阈值和低阈值。具体地,高阈值可为梯度幅值中值与第一系数的乘积,低阈值可为梯度幅值中值与第二系数的乘积,其中第一系数和第二系数分别为大于零且小于1的数,且第一系数大于第二系数的值。第一系数和第二系数可根据经验提前设置,例如,在本发明的一个实施例中,第一系数可设置为0.9,第二系数为0.7。

通过上述方式,无需人工设置Canny边缘检测算法的高阈值和低阈值,而是根据当前层金字塔图像中每一像素点的特征来自动生成Canny边缘检测算法的高阈值和低阈值,使得该高阈值和低阈值与当前层金字塔图像的特征(包括形状、色彩等)相适配。

步骤S24:根据步骤S23中获得的高阈值和低阈值获取当前层金字塔图像的边缘位置点,并根据获得的边缘位置点生成当前层金字塔图像的梯度信息,其中当前层金字塔图像的梯度信息包括梯度位置列表、梯度方向列表和梯度幅值列表,且梯度位置列表包括每一边缘位置点的坐标,梯度方向列表包括每一边缘位置点的梯度方向,梯度幅值列表包括每一边缘位置点的梯度幅值。

在本实施例中,梯度位置列表中边缘位置点的数量、梯度方向列表中元素的数量、梯度幅值列表中元素的数量相同,任一个的数量即为当前层金字塔图像的梯度信息长度。

步骤S25:判断当前层金字塔图像的梯度信息长度是否小于第二预设尺寸Ptmin,并在当前层金字塔图像的梯度信息长度小于第二预设尺寸Ptmin时执行步骤S27,否则执行步骤S26。

同样地,上述第二预设尺寸Ptmin可以设置为固定值,也可以根据实际应用自动或手动调整,例如可根据模板图像本身的大小、机器视觉系统的位置匹配精度要求等设置第二预设尺寸Ptmin,只需保证当前层金字塔图像中梯度信息不会太少,从而不会在在线匹配时,因为模板信息太少而无法完成匹配。

步骤S26:按预设比例缩小当前层金字塔图像,作为新的当前层金字塔图像,同时将金字塔层数加一,然后执行步骤S22。例如,可将当前层金字塔图像的尺寸缩小一半,作为新的当前层金字塔图像。在实际应用中,可根据识别精度等要求调整上述预设比例。

步骤S27:生成模板图像的模板信息数据。

在该步骤中,取所有层金字塔图像的梯度位置列表、梯度方向列表和梯度幅值列表,得到当前模板图像的边缘点梯度列表,然后将边缘点梯度列表和金字塔层数共同组成模板信息数据,该数据可以用来进行后续的匹配使用。

上述模板信息获取方法,通过每一层金字塔图像自动生成用于确定边缘位置点的比较值,即用于Canny边缘检测算法的高阈值和低阈值,可大大提高模板信息的精度,进而提高匹配定位点进度。

结合图3所示,是本发明实施例提供的模板信息获取方法中获取当前层梯度幅值中值的流程示意图,具体地,可通过以下步骤获取当前层梯度幅值中值:

步骤S231:获取当前层金字塔图像中每一像素点的梯度幅值。例如,先通过Sobel算子计算当前层的金字塔图像中每个像素点的x和y方向(即当前层的金字塔图像中相互垂直的两个方向)的灰度梯度,然后对通过Sobel算子计算得到的x和y两个方向的梯度进行极坐标变换,得到每个像素点的梯度方向和梯度幅值。

步骤S232:根据当前层金字塔图像中所有像素点的梯度幅值创建幅值直方图Hm(n),其表示如下:

其中Mi为直方图中第i个元素的值,n为当前层金字塔图像中第n个像素点的梯度幅值,且n为大于或等于1的整数。

步骤S233:根据幅值直方图生成当前层梯度幅值中值。具体地,可根据以下计算式(2)计算获得当前层梯度幅值中值Mimedian:

相应地,当第一系数为0.9,第二系数为0.7时,用于Canny边缘检测算法的高阈值Tmax和低阈值Tmin分别为:

Tmax=0.9×Mimedian (3)

Tmin=0.7×Mimedian (4)

在实际应用中,除了通过直方图获得当前层梯度幅值中值外,还可通过其他方式获得该当前层梯度幅值中值,例如通过计算当前层金字塔图像中每一像素点的梯度幅值的加权平均值等,在根据当前层梯度幅值中值计算用于Canny边缘检测算法的高阈值Tmax和低阈值Tmin时,调整相应的第一系数和第二系数即可保证模板信息数据的精度。

结合图4所示,是本发明实施例提供的模板信息获取方法中获取当前层金字塔图像的边缘位置点的流程示意图,具体地,可通过以下步骤获取当前层金字塔图像的边缘位置点:

步骤S241:对于当前层金字塔图像,使用Canny算子进行边缘的提取计算,得到所有符合高阈值Tmax和低阈值Tmin要求的像素边缘点。

使用Canny算子进行边缘的提取计算属于本领域的已有技术,例如,在边缘的提取计算时,将当前层金字塔图像中灰度值大于高阈值的像素点标记为白色,灰度值小于低阈值的像素点则标记为黑色,如果像素的灰度值在高低阈值之间,那么它成为边界的充要条件是直接与“边缘像素点”相连(八邻域)以及与“边缘像素点”通过灰度值在高低阈值之间的像素点相连。

步骤S242:在获得边缘像素点后,对边缘像素点进行连通域运算,将相邻的边缘像素点连接起来,获得若干条独立的边缘曲线段。连通域运算属于本领域的已知技术,在此不再赘述。

步骤S243:将符合预设条件的边缘曲线段上的边缘像素点作为边缘位置点。即在获得若干条独立的边缘曲线段之后,再从若干条独立的边缘曲线段选出符合预设条件的边缘曲线段,并从选出的边缘曲线段上获得边缘像素点。

结合图5所示,是本发明实施例提供的模板信息获取方法中根据边缘曲线段获取边缘位置点的流程示意图,具体地,可通过以下步骤根据边缘曲线段获取当前层金字塔图像的边缘位置点:

步骤S2431:将长度不小于第一预设长度Lmin的边缘曲线段作为备选边缘曲线段。而长度小于或等于第一预设长度Lmin的边缘曲线段通常只是图像表面噪声较大或细小纹理的区域,并非轮廓线,需要删去。若备选边缘曲线段的数量为零,则直接返回梯度位置列表、梯度方向列表和梯度幅值列表这三个空列表。

步骤S2432:在所有备选边缘曲线段的长度之和大于第二预设长度Ptman时,删除备选边缘曲线段中的多余边缘像素点,使得总边缘位置点的数量小于第二预设长度Ptmax,并将删去多余边缘像素点后的备选边缘曲线段上的所有边缘像素点作为边缘位置点。

删除多余边缘像素点的方法有多种,例如可利用设定的粒度系数Gmin,通过设定的粒度参数Gmin来限定间距选取边缘像素点,实际设定的粒度系数Gmin可根据当前实际边缘像素点和第二预设长度Ptmax进行调整。在一种场景中,可以利用设定的粒度系数Gmin,并通过趋势边缘的方式来进行删除,将相邻的Gmin个边缘点求取其平均曲率,剔除过大的曲率,只留下曲率与平均曲率最接近的那个点,将其他点删除。在该方式中,首先将备选边缘曲线段上相邻的预设数量(即Gmin)的边缘像素点作为待处理像素点,并获取每一待处理像素点处的曲率以及所有待处理像素点的平均曲率;然后将曲率并非最接近平均曲率的所有待处理像素点作为多余边缘像素点删除。

此外,还可利用梯度幅值信息,即在相邻的Gmin个边缘像素点中,保留梯度幅值最大的那个边缘像素点。在该方式中,可先将备选边缘曲线段上相邻的预设数量(即Gmin)的边缘像素点作为待处理像素点,并比较所有待处理像素点的梯度幅值;然后将梯度幅值并非最大的所有待处理像素点作为多余边缘像素点删除。

在备选边缘曲线段中总边缘像素点数小于第二预设长度Ptmax后,提取剩下的每个边缘像素点(即边缘位置点)的位置对应的梯度方向Di和梯度幅值Mi(其中对梯度方向Di需要进行归一化),添加到梯度方向列表和梯度幅值列表中,并将每个边缘位置点的坐标添加到梯度位置列表ListPi中,全部添加完毕后,将三个列表返回。

在输入只有模板图像的情况下,只能通过调整模板训练参数来修改模板边缘的训练情况,当模板图像中含有其他干扰边缘,如瑕疵,脏污的时候,是没有办法通过调整参数消除这些干扰的。在这种情况下就需要人工干预模板边缘的生成过程。如图6所示,这种人工干预可以通过再输入一张掩模图像,即第二掩模图像62来完成,第二掩模图像62是一张黑白二值图像,白色区域表示该区域内的边缘点可以使用,黑色区域表示该区域内的边缘点需要剔除掉。这种方式可以在应用程序的人机交互界面上做出合适的交互功能,使用者通过交互来生成第二掩模图像62。例如,在人机交互界面中,显示模板图像,并将提取的边缘点也显示在模板图像上,通过鼠标在该模板图像上绘制涂抹(即生成外部输入信息),将那些干扰点所在区域进行涂抹,然后由人机交互界面根据上述外部输入信息生第二成掩模图像62,传入训练过程(例如图2中的步骤S24)中即可。由于金字塔图像是多层的,若将所有层的边缘位置点都显示出来是比较麻烦的,在本发明的一个实施例中,可仅根据底层金字塔图像的边缘位置点来交互涂抹来生成第二掩模图像62。

如果在金字塔图像的某层的某个区域具有了较强的干扰点边缘,那么该层金字塔图像的干扰点边缘就没有办法消除。在本发明的一个实施例中,可引入一个第一掩模图像61,该第一掩模图像61可通过在底层金字塔图像的边缘位置点上膨胀处理生成,也就是将每一边缘位置点的坐标向四周扩展一个区域(例如向每一方向扩展m个像素,m为大于1的整数),并将所有边缘位置点扩展后形成的区域作为第一掩模图像61,并传入训练过程(例如图2中的步骤S24)中。

在金字塔图像的每一层中,实际效果相当于是将第一掩模图像61和第二掩模62进行“与”操作,然后当作当前层金字塔图像的实际掩模图像使用。通过添加该第一掩模图像61,保证了在所有层金字塔图像中都消除干扰点区域的影响。

本发明实施例还提供一种模板信息获取设备,该模板信息获取设备可位于机器视觉系统,并实现匹配定位。本实施例的模板信息获取设备7包括存储器71和处理器72,其中存储器71中存储有可在处理器72中执行的计算机程序,且处理器72执行所述计算机程序时实现如图2-6实施例所述的模板信息获取方法的步骤。

本实施例中的电机控制器与上述图2-6对应实施例中的模板信息获取方法属于同一构思,其具体实现过程详细见对应的方法实施例,且方法实施例中的技术特征在本设备实施例中均对应适用,这里不再赘述。

本发明的一个实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如上所述的模板信息获取方法。

本实施例中的计算机可读存储介质与上述图2-6对应实施例中的模板信息获取方法属于同一构思,其具体实现过程详细见对应的方法实施例,且方法实施例中的技术特征在本设备实施例中均对应适用,这里不再赘述。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的模板信息获取方法、及设备,可以通过其它的方式实现。

本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或界面切换设备、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。

上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。此外,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:用于识别镜头脏污的方法、处理器及家用电器

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!