视觉识别方法及系统与流程

文档序号:11953451阅读:2048来源:国知局
视觉识别方法及系统与流程

本发明涉及视觉识别技术领域,特别涉及一种视觉识别方法及系统。



背景技术:

在薄膜键盘的上盖板下方设置有一层键盘软膜,在每个按键的位置上设置有一个弹性键帽(一般是橡胶帽),该弹性键帽相对于按键的位置一定不能偏位,否则,可能导致击键无效。

在制造薄膜键盘时,需要检测弹性键帽相对于对应的按键是否偏位。在检测时,先对薄膜键盘的正面进行拍照,获取灰度图(是一副二维平面图);其中,在该灰度图中,按键覆盖的区域的轮廓为圆角四边形,弹性键帽覆盖区域的轮廓为圆形;接着,采用视觉识别技术,从灰度图中提取出弹性键帽所对应的圆;最后,检测提取出的圆相对于圆角四边形是否偏位。

在实现本发明的过程中,发明人发现现有技术中存在如下问题:一方面,针对键盘软膜检测中按键(key)周围圆的提取方法,目前较少,而且,从圆的提取角度来说,目前可能使用的主要方法包括两种:第一种,基于霍夫(hough)变换圆提取方法,但是该类方法中目前常用的基于梯度的方法,当圆比较小时,误差比较大,提取不精确,会使提取的圆心位置偏位。第二种,通过拟合的方式提取圆,这种方法提取圆计算量大,导致提取速度慢。



技术实现要素:

本发明实施方式的目的在于提供一种视觉识别方法及系统,使得在提取待识别物品的图像上的圆时可以提高圆心和半径提取的效率及准确度。

为解决上述技术问题,本发明的实施方式提供了一种视觉识别方法,包括:获取待识别物品的灰度图与目标圆的已知条件;其中,所述已知条件包括第一圆心位置、第一半径、所述目标圆的极性、第一偏差值与第二偏差值,所述目标圆为待提取的圆,所述第一偏差值为所述目标圆的圆心偏差值,所述第二偏差值为所述目标圆的半径偏差值,所述第一圆心位置为所述目标圆的圆心推测位置,所述第一半径为所述目标圆的推测半径;对所述灰度图进行边缘检测获取所述灰度图的图像轮廓;根据所述已知条件对所述图像轮廓进行极性筛选,获取第一轮廓;根据所述第一轮廓确定第二圆心位置与第二半径;其中,所述第二圆心位置为确定的目标圆的圆心位置,所述第二半径为确定的目标圆的半径。

本发明的实施方式还提供了一种视觉识别系统,包括:获取模块、检测模块、筛选模块与确定模块;所述获取模块,用于获取待识别物品的灰度图与目标圆的已知条件;其中,所述已知条件包括第一圆心位置、第一半径、所述目标圆的极性、第一偏差值与第二偏差值,所述目标圆为待提取的圆,所述第一偏差值为所述目标圆的圆心偏差值,所述第二偏差值为所述目标圆的半径偏差值,所述第一圆心位置为所述目标圆的圆心推测位置,所述第一半径为所述目标圆的推测半径;所述检测模块,用于对所述灰度图进行边缘检测获取所述灰度图的图像轮廓;所述筛选模块,用于根据所述已知条件对所述图像轮廓进行极性筛选,获取第一轮廓;所述确定模块,用于根据所述第一轮廓确定第二圆心位置与第二半径;其中,所述第二圆心位置为确定的目标圆的圆心位置,所述第二半径为确定的目标圆的半径。

本发明实施方式相对于现有技术而言,通过对待识别物品的灰度图进行边缘检测得到图像轮廓,再根据已知条件对该图像轮廓进行极性筛选,既可以得到待提取圆的轮廓,从而可以确定待提取圆的圆心位置和半径,计算过程中,由于待提取的圆的圆心的推测位置及其偏差、推测半径及其偏差是已知的,利用这些已知条件可以先得到模糊的图像轮廓,然后就可以再进行精确筛选,最后确定待提取圆的准确轮廓,简单、快速、计算量小,而且准确,使得在提取待识别物品的图像上的圆时可以提高圆心和半径提取的效率及准确度。

另外,在根据所述第一轮廓确定第二圆心位置与第二半径中,具体包括:以所述第一轮廓上的像素点为圆心,以所述目标圆的半径取值范围内任意一个半径值为半径画圆;所述半径取值范围根据所述第一半径与所述第二偏差值计算得到;在所述目标圆的圆心位置范围内,统计同一半径的圆的交叉次数;其中,所述目标圆的圆心位置范围根据所述第一圆心位置与所述第一偏差值计算得到;将交叉次数最多的圆的半径确定为所述第二半径,将交叉点的位置确定为所述第二圆心位置。这样,仅统计目标圆的圆心位置范围内的所有圆的交叉点,而不考虑该范围之外的圆的交叉次数,可以提高第二圆心位置选取的速度。

另外,在以所述第一轮廓上的像素点为圆心,以所述目标圆的半径取值范围内任意一个半径值为半径画圆中,具体包括:仅画出位于所述目标圆的圆心位置范围内的圆弧;在所述目标圆的圆心位置范围内,统计同一半径的圆的交叉次数中,具体包括:统计同一半径的圆的圆弧的交叉次数;在所述将交叉次数最多的圆的半径确定为所述第二半径,将交叉点的位置确定为所述第二圆心位置中,具体包括:将交叉次数最多的圆弧所对应的圆的半径确定为所述第二半径。仅画出在目标圆的圆心位置范围内的圆弧,在统计时就自动避免统计该范围之外的圆的交叉次数,可以提高第二圆心位置选取的速度。

另外,在获取待识别物品的灰度图与目标圆的已知条件之前,还包括:以所述第一圆心位置为原点建立第一坐标系,以所述灰度图中预设点为原点建立第二坐标系;在根据所述第一轮廓确定第二圆心位置与第二半径中,具体包括:在所述第一坐标系中,确定所述第二圆心位置与所述第二半径;在根据所述第一轮廓确定第二圆心位置与第二半径之后,还包括:根据所述第一坐标系与所述第二坐标系之间的变换关系,获取所述第二圆心位置在所述第二坐标系中的坐标。通过建立以目标圆的圆心推测位置为原点的坐标系,降低了计算的复杂度,简单、容易实现,同时使得在计算目标圆的圆心位置时更准确。

另外,在对所述灰度图进行边缘检测获取所述灰度图的图像轮廓中,具体包括:采用坎尼算子对所述灰度图进行边缘检测。坎尼算子去噪能力强,具有更好的边缘检测效果。

附图说明

图1是根据本发明第一实施方式的视觉识别方法流程图;

图2是根据本发明第二实施方式的视觉识别方法流程图;

图3是根据本发明第二实施方式中的键盘软膜的灰度图;

图4是根据本发明第二实施方式中从灰度图中提取出的单个按键的轮廓图;

图5是根据本发明第二实施方式中的第二轮廓图;

图6是根据本发明第二实施方式中的在第二轮廓图上选取一个像素点及其对应的内、外点的示意图;

图7是根据本发明第二实施方式中的第一轮廓图;

图8是根据本发明第二实施方式中的以第一轮廓上的像素点为圆心,以待提取的圆的半径取值范围内任意一个半径值为半径画圆的示意图;

图9是根据本发明第三实施方式中计算每个像素点的有效角度的示意图;

图10是根据本发明第四实施方式的视觉识别方法流程图;

图11是根据本发明第五实施方式的视觉识别系统结构示意图;

图12是根据本发明第六实施方式的视觉识别系统结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

本发明的第一实施方式涉及一种视觉识别方法,本实施方式中的视觉识别方法适用于提取待识别物品中的圆,其流程如图1所示,具体如下:

在步骤101中:获取待识别物品的灰度图与目标圆的已知条件。在键盘制造领域,待识别物品可以是键盘软膜。具体的说,本实施方式中的已知条件包括第一圆心位置、第一半径、目标圆的极性、第一偏差值与第二偏差值。其中,目标圆为待提取的圆,第一偏差值为目标圆的圆心偏差值,第二偏差值为目标圆的半径偏差值,第一圆心位置为目标圆的圆心推测位置,第一半径为目标圆的推测半径。

在步骤102中:对灰度图进行边缘检测获取灰度图的图像轮廓。

在步骤103中:根据已知条件对图像轮廓进行极性筛选,获取第一轮廓。

在步骤104中:根据第一轮廓确定第二圆心位置与第二半径;其中,第二圆心位置为确定的待提取的圆的圆心位置,第二半径为确定的待提取的圆的半径。

本实施方式相对于现有技术而言,通过对待识别物品的灰度图进行边缘检测得到图像轮廓,再根据已知条件对该图像轮廓进行极性筛选,既可以得到待提取圆的轮廓,从而可以确定待提取圆的圆心位置和半径,计算过程中,由于待提取的圆的圆心的推测位置及其偏差、推测半径及其偏差是已知的,利用这些已知条件可以先得到模糊的图像轮廓,然后就可以再进行精确筛选,最后确定待提取圆的准确轮廓,简单、快速、计算量小,而且准确,使得在提取待识别物品的图像上的圆时可以提高圆心和半径提取的效率及准确度。

本发明的第二实施方式涉及一种视觉识别方法,其流程如图2所示,具体如下:

在步骤201中,获取待识别物品的灰度图与目标圆的已知条件。在本实施方式中,以待识别物品为键盘软膜为例进行说明。具体的说,本实施方式中的已知条件包括第一圆心位置、第一半径、目标圆的极性、第一偏差值与第二偏差值。其中,目标圆为待提取的圆,第一偏差值为目标圆的圆心偏差值,第二偏差值为目标圆的半径偏差值,第一圆心位置为目标圆的圆心推测位置,第一半径为目标圆的推测半径。在实际应用中,可以通过拍照或者实物扫描获取待识别物品的图像,并对图像进行灰度处理得到待识别物品的灰度图,如图3所示,其中,31为一个按键所对应的区域。

在步骤202中,对灰度图进行边缘检测获取灰度图的图像轮廓。具体的说,本实施方式中可以通过边缘检测算子—坎尼(canny)算子检测图3中的轮廓,为提取按键(key)上的圆做准备,其中,图3中31部分的轮廓放大图如图4所示。

在步骤203中,根据已知条件获取第二轮廓。具体的说,第二轮廓为目标区域内的轮廓,且目标区域为环形区域,环形区域的内圆半径等于第一半径减去第一固定值(该第一固定值可以根据第一偏差值和第二偏差值确定,具体地,该第一固定值大于第一偏差值和第二偏差值的和),环形区域的外圆半径等于第一半径加上第二固定值(该第二固定值可以根据第一偏差值和第二偏差值确定,具体地,该第二固定值大于第一偏差值和第二偏差值的和);第一固定值与第二固定值可以相同。比如说,可以在图4中假定圆心为(x,y),半径为r,本实施方式中第一偏差值假设为5,第二偏差值假设为2,第一固定值与第二固定值可以均为10,则第二轮廓的内圆半径为r-10,第二轮廓的外圆半径为r+10,将这部分轮廓单独显示出来,如图5中所示。

在步骤204中,选取第二轮廓上的一个像素点,获取一个内点与一个外点。具体的说,该内点与外点均位于第二轮廓上的像素点与第一圆心位置的像素点的连线上,更具体地说,该内点、外点分别位于以第一圆心位置的像素点为圆心、以第二轮廓上的像素点到第一圆心位置的像素点的距离为半径的圆的内侧、外侧,如图6中所示(图中O点为圆心,A点为内点,B点为外点,C点为第二轮廓上的像素点)。

在步骤205中,判断内点的灰度值是否小于外点的灰度值。若是则进入步骤206,否则进入步骤207。具体的说,本步骤中若判断结果为是,说明A点的灰度值小于B点的灰度值,则进入步骤206,否则说明A点的灰度值大于B点的灰度值,则进入步骤207。

在步骤206中,从第二轮廓上清除该内点、外点对应的像素点。具体的说,当A点的灰度值小于B点的灰度值时,清除C像素点。

在步骤207中,保留第二轮廓上该内点、外点对应的像素点。体的说,当A点的灰度值大于B点的灰度值时,保留C像素点。

在步骤208中,判断第二轮廓上是否还有未选取的像素点。若是则返回步骤204,否则进入步骤209。具体的说,本步骤中若判断结果为是,说明第二轮廓上还有为选取的像素点,则返回步骤204继续选取第二轮廓上的像素点进行判断,否则说明第二轮廓上所有像素点都已经选取过,则进入步骤209。

在步骤209中,将所有保留的像素点组成第一轮廓。本实施方式中的第一轮廓即为通过极性筛选后最终剩下的轮廓(像素点组成),如图7所示。

在步骤210中,以第一轮廓上的像素点为圆心,以待提取的圆的半径取值范围内任意一个半径值为半径画圆。这样以第一轮廓上的像素点为圆心,以待提取的圆的半径取值范围内任意一个半径值为半径不断画圆,得到如图8所示的效果图。

在步骤211中,在待提取的圆的圆心位置范围内,统计同一半径的圆的交叉次数。其中,待提取的圆的圆心位置范围可以根据第一圆心位置与第一偏差值计算得到,比如说,第一偏差值可以为5个像素,圆心的位置记为s[x,y],比如,若目标圆的圆心推测位置为[0,0],则x的取值范围为[-5,5]、y的取值范围为[-5,5](精度为1个像素)。

在步骤212中,将交叉次数最多的圆的半径确定为第二半径,将交叉点的位置确定为第二圆心位置。

本实施方式中,仅统计目标圆的圆心位置范围内的所有圆的交叉点,而不考虑该范围之外的圆的交叉次数,可以提高第二圆心位置选取的速度。

本发明的第三实施方式涉及一种视觉识别方法。第三实施方式在第二实施方式的基础上做了改进,改进之处在于:在本实施方式中,以第一轮廓上的像素点为圆心,以待提取的圆的半径取值范围内任意一个半径值为半径画圆时,仅画出位于待提取的圆的圆心位置范围内的圆弧即可。

具体的说,在本实施方式中,统计同一半径的圆的交叉次数时,可以只统计同一半径的圆的圆弧的交叉次数。将交叉次数最多的圆弧所对应的圆的半径确定为第二半径,将交叉点的位置确定为第二圆心位置。

在本实施方式中,如图9所示,先计算图7中轮廓上的每个像素点的有效角度a2、a1(从轮廓点出发的两条射线L1、L2之间的区域恰好包含矩形区域,L1与坐标轴x正方向之间的夹角为a1,L2与坐标轴x正方向之间的夹角为a2);图中黑色的圆点即为目标圆的圆心推测位置(已知条件),矩形即为目标圆的圆心位置范围(实际求得的圆心有可能是该区域中的任何一个点,根据上文±5的偏差,该矩形长度为11像素)。

在实际应用中,在统计同一半径的圆的圆弧的交叉次数时,可以根据目标圆的圆心的偏差和半径的偏差,产生一个初始值为0的三维数组,本实施方式中目标圆的圆心偏差可以为5像素,半径偏差可以为2像素,假设三维数组为s[x,y,r],则x,y,r各自的取值范围为[x-5,x+5],[y-5,y+5],[r-2,r+2],其中,目标圆的圆心推测位置的坐标为(x,y),推测半径为r。

根据所要提取的圆心和半径的精度,设定如下量:角度步长stepa、x的步长stepx、y的步长stepy、r的步长stepr;x、y、r的步长分别stepx、stepy、stepr,本实施方式中假设stepx、stepy、stepr均为1。r的偏差记为△R,x的偏差记为△X,y的偏差记为△Y;遍历图7所示的每个像素点(假设坐标为x0,y0),统计同一半径的圆的圆弧的交叉次数,具体计算代码如下:

其中,图9中L1和L2之间的夹角被分割为Indexa份,ceil为返回大于或者等于指定表达式的最小整数,inDxa为自变量,取值范围为从0到indexa,inDxr为自变量,取值范围为从0到2*△R。

根据上述统计的结果,将交叉次数最多的圆弧所对应的圆的半径确定为第二半径,将交叉点的位置确定为第二圆心位置。

本实施方式可以仅画出在目标圆的圆心位置范围内的圆弧,在统计时就自动避免统计该范围之外的圆的交叉次数,可以提高第二圆心位置选取的速度。

本发明的第四实施方式涉及一种视觉识别方法。第四实施方式在第一实施方式的基础上做了改进,改进之处在于:在本实施方式中,可以以不同的待提取的圆的圆心位置建立坐标系,降低了计算的复杂度,简单、容易实现,同时使得在计算目标圆的圆心位置时更准确。本实施方式中的视觉识别方法流程如图10所示,具体如下。

在步骤1001中:以第一圆心位置为原点建立第一坐标系。具体的说,本实施方式中的第一圆心位置为目标圆的圆心推测位置。

在步骤1002中:以灰度图中预设点为原点建立第二坐标系。具体的说,本实施方式中的预设点可以为灰度图图3中任意一个按键(key)上的圆心,也可以是根据键盘软膜的中心位置,或者键盘软膜的顶角位置。

在步骤1003中:获取待识别物品的灰度图与目标圆的已知条件。具体的说,本实施方式中的已知条件包括第一圆心位置、第一半径、目标圆的极性、第一偏差值与第二偏差值。其中,目标圆为待提取的圆,第一偏差值为目标圆的圆心偏差值,第二偏差值为目标圆的半径偏差值,第一圆心位置为目标圆的圆心推测位置,第一半径为目标圆的推测半径。在实际应用中,可以通过拍照或者实物扫描获取待识别物品的图像,并对图像进行灰度处理得到待识别物品的灰度图,如图3所示。

在步骤1004中:对灰度图进行边缘检测获取灰度图的图像轮廓。具体的说,本实施方式中可以通过边缘检测算子—canny算子检测图3中的轮廓,为提取按键(key)上的圆做准备,提取后的按键的轮廓图如图4所示。

在步骤1005中:根据已知条件对图像轮廓进行极性筛选,获取第一轮廓。具体的说,可以根据第二实施方式中的步骤203至步骤209获取第一轮廓,获取取后的第一轮廓如图7所示。

在步骤1006中:在第一坐标系中,确定第二圆心位置与第二半径。具体的说,本实施方式中第二圆心位置与第二半径的值可以根据第二实施方式中的步骤210至212获得。

在步骤1007中:根据第一坐标系与第二坐标系之间的变换关系,获取第二圆心位置在第二坐标系中的坐标。具体的说,可以根据第二坐标系的原点与第一坐标系的原点的位置关系,将第二圆心位置在第一坐标系中的坐标值换算成在第二坐标系中的坐标值。

本实施方式通过建立以目标圆的圆心推测位置为原点的坐标系,降低了计算的复杂度,简单、容易实现,同时使得在计算目标圆的圆心位置时更准确。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本发明第五实施方式涉及一种视觉识别系统,如图11所示,包括:获取模块1、检测模块2、筛选模块3与确定模块4。

获取模块1,用于获取待识别物品的灰度图与目标圆的已知条件;其中,已知条件包括第一圆心位置、第一半径、目标圆的极性、第一偏差值与第二偏差值,目标圆为待提取的圆,第一偏差值为目标圆的圆心偏差值,第二偏差值为目标圆的半径偏差值,第一圆心位置为目标圆的圆心推测位置,第一半径为目标圆的推测半径。

检测模块2,用于对灰度图进行边缘检测获取灰度图的图像轮廓。

筛选模块3,用于根据已知条件对图像轮廓进行极性筛选,获取第一轮廓。

确定模块4,用于根据第一轮廓确定第二圆心位置与第二半径;其中,第二圆心位置为确定的目标圆的圆心位置,第二半径为确定的目标圆的半径。

不难发现,本实施方式为与第一实施方式相对应的系统实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。

值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。

本发明第六实施方式涉及一种视觉识别系统。本实施方式中的确定模块4具体包括:画圆子模块41、统计子模块42与比较子模块43,如图12所示。

画圆子模块41,用于以第一轮廓上的像素点为圆心,以目标圆的半径取值范围内任意一个半径值为半径画圆;半径取值范围根据第一半径与第二偏差值计算得到。

统计子模块42,用于在目标圆的圆心位置范围内,统计同一半径的圆的交叉次数;其中,目标圆的圆心位置范围根据第一圆心位置与第一偏差值计算得到。

比较子模块43,用于比较统计子模块42的统计结果中各不同半径的圆的交叉次数,将交叉次数最多的圆的半径确定为第二半径,将交叉点的位置确定为第二圆心位置。

由于第二实施方式与本实施方式相互对应,因此本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,在第二实施方式中所能达到的技术效果在本实施方式中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施方式中。

本发明第七实施方式涉及一种视觉识别系统。本实施方式在第六实施方式的基础上做了改进,改进之处在于:

在本实施方式中,画圆子模块41,可以仅画出位于目标圆的圆心位置范围内的圆弧。

统计子模块42,还可以用于统计同一半径的圆的圆弧的交叉次数。

比较子模块43,还可以用于比较统计子模块42的统计结果中各不同半径的圆的圆弧的交叉次数,将交叉次数最多的圆弧所对应的圆的半径确定为第二半径。

本实施方式为与第三实施方式相对应的系统实施例,本实施方式可与第三实施方式互相配合实施。第三实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第三实施方式中。

本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

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