您好,欢迎来到刀刀网。
搜索
您的当前位置:首页基于轮廓提取的棋盘格角点检测方法、装置以及计算机可读存储介质

基于轮廓提取的棋盘格角点检测方法、装置以及计算机可读存储介质

来源:刀刀网
(19)中华人民共和国国家知识产权局

(12)发明专利申请

(10)申请公布号 CN 109509200 A(43)申请公布日 2019.03.22

(21)申请号 201811601937.9(22)申请日 2018.12.26

(71)申请人 深圳市繁维医疗科技有限公司

地址 518000 广东省深圳市南山区桃源街

道同富裕工业城11栋2楼(72)发明人 陈灿明 姚浩东 徐渊 (74)专利代理机构 深圳快马专利商标事务所

(普通合伙) 44362

代理人 赵亮 刘朗星(51)Int.Cl.

G06T 7/13(2017.01)G06T 7/187(2017.01)

权利要求书3页 说明书11页 附图7页

CN 109509200 A(54)发明名称

基于轮廓提取的棋盘格角点检测方法、装置以及计算机可读存储介质(57)摘要

本申请基于轮廓提取的棋盘格角点检测方法、棋盘格角点检测装置以及计算机可读存储介质,方法包括:对原始图像进行边缘检测处理以获取原始图像中的边缘点;根据边缘点提取原始图像中的棋盘格的轮廓;对提取到的棋盘格的轮廓进行角点识别;根据识别到的角点筛选出棋盘格的内部角点。本申请通过提取棋盘格轮廓,剔除了大量非角点像素,一方面极大的减少了角点识别的计算量,另一方面能够准确的识别棋盘格角点,结合了基于边缘的角点检测算法和基于灰度的角点检测算法的优点,同时改善了两者缺点,能够极大地减少数据处理量、提升处理速度和效率,并且有效地提高了抗干扰能力和准确率。

CN 109509200 A

权 利 要 求 书

1/3页

1.一种基于轮廓提取的棋盘格角点检测方法,其特征在于,所述方法包括:对原始图像进行边缘检测处理以获取所述原始图像中的边缘点;根据所述边缘点提取所述原始图像中的棋盘格的轮廓;对提取到的所述棋盘格的轮廓进行角点识别;

根据识别到的所述角点筛选出所述棋盘格的内部角点。2.如权利要求1所述的棋盘格角点检测方法,其特征在于,在所述对原始图像进行边缘检测处理以获取原始图像中的边缘点的步骤中,包括:

通过横向卷积因子Sx和纵向卷积因子Sy与所述原始图像进行平面卷积,得到所述原始图像的像素点的横向灰度差分近似值Gx及纵向灰度差分近似值Gy,其中,所述原始图像设为A,横向卷积因子

纵向卷积因子

根据公式:横向灰度差

分近似值为Gx=Sx*A,纵向灰度差分近似值为Gy=Sy*A;

将所述原始图像A中的每一个像素点的横向灰度差分近似值Gx以及纵向灰度差分近似值Gy根据如下公式(1)或公式(2)获得所述像素点的灰度加权差G的大小,其中,公式(1)为:

公式(2)为:G=|Gx|+|Gy|;

当所述像素点的灰度加权差G大于第一设定阈值时,则所述像素点为所述边缘点,否则,标记所述像素点为0。

3.如权利要求1所述的棋盘格角点检测方法,其特征在于,在所述根据边缘点提取出原始图像中的棋盘格的轮廓的步骤中,包括:

按照设定顺序扫描所述原始图像的像素点,当扫描到所述原始图像中的像素点为有效点时亦即扫描到边缘点时,按照第一设定规则赋予设定的标记值给所述原始图像中的有效点,同一连通域的所述有效点的标记值通过等价链的方式表示,所述等价链包括具有所述等价关系的标记值,所述等价链以等价对的形式存入等价数组中,将所述等价数组中的同一等价链的标记值按照第二设定规则更新为统一的所述标记值,则所述标记值相同的像素点为同一所述连通域的像素点;

判断所述连通域的像素点是否满足设定条件,如果所述连通域的像素点的参数满足设定条件,则提取所述连通域作为所述棋盘格的轮廓。

4.如权利要求3所述的棋盘格角点检测方法,其特征在于,在所述按照第一设定规则赋予设定的标记值给原始图像中的有效点的步骤中,包括步骤:

判断当前有效点的邻域中的像素点的标记值是否均为0,其中,所述邻域中的像素点包括第一像素点、第二像素点、第三像素点以及第四像素点,所述第一像素点为所述当前有效点左侧相邻的像素点、所述第二像素点为所述第一像素点上方相邻的像素点,所述第三像素点为所述第二像素左侧相邻的像素点,所述第四像素点为所述第二素点右侧相邻的像素点,当所述第一像素点、第二像素点、第三像素点以及第四像素点的标记值均为0时,则赋予该有效点区别于之前已进行标记的所述有效点的标记值,并将所述当前有效点的标记值存储在所述等价对数组中,否则,按照第一像素点、第二像素点、第三像素点、第四像素点的顺序,从这四个像素点中选取一个数值不为0的像素点的标记值赋予所述有效点;

2

CN 109509200 A

权 利 要 求 书

2/3页

当进一步判断到所述第一像素点和第四像素点的标记值同时不为0并且不相等时,将所述第一像素点和第四像素点的标记值作为等价对存储在所述等价数组中,否则,再进一步判断所述第三像素点和第四像素点的标记值是否同时不为0且不相等,如果判断到所述第三像素点和第四像素点的标记值同时不为0并且不相等,则将所述第三像素点和第四像素点作为等价对存储在所述等价数组中。

5.如权利要求3所述的棋盘格角点检测方法,其特征在于,所述将等价数组中的同一等价链的标记值按照第二设定规则更新为统一的标记值的步骤中,包括:

将所述等价数组中的等价链里面的各个标记值对应的像素点的标记值更新为所述等价链的末值以使更新后的同一所述连通域的标记值是相同的。

6.如权利要求3所述的棋盘格角点检测方法,其特征在于,在所述判断连通域的像素点是否满足设定条件的步骤中,包括:

统计所述连通域的像素点的个数,当所述像素点的个数超过设定数量级别时,则所述连通域为所述棋盘格的轮廓;或者,

记录同一所述连通域中的像素点的横坐标的最大值Xmax、最小值Xmin和纵坐标的最大值Ymax、最小值Ymin,根据公式,G=(Xmax-Xmin)*(Ymax-Ymin),所述连通域的乘积G的最大值者则认定为所述棋盘格的轮廓。

7.如权利要求1所述的棋盘格角点检测方法,其特征在于,在所述对提取到的所述棋盘格的轮廓进行角点识别的步骤中,包括:

利用水平差分算子、竖直差分算子计算所述棋盘格的轮廓的像素点I(x,y)在X和Y两个方向的梯度Ix、Iy,其中,

计算所述像素点的两个方向梯度的三个乘积,得到矩阵m:

Ixy=Ix·Iy;

对矩阵m的四个元素进行高斯平滑滤波,得到新的矩阵M:

其中,其中,

计算每个所述像素点的Harris响应值R,根据公式:R=detM-α(traceM)2,其中,detM=

2

λλtraceM=λλα=0.1;12=AC-B,1+2=A+C,

在所述像素点的3×3的邻域内进行R值非极大值抑制所得到的最大值点即为所述角点。

8.如权利要求1所述的棋盘格角点检测方法,其特征在于,在所述根据识别到的角点筛选出所述棋盘格的内部角点的步骤中,包括:

从设定的角点开始遍历所述棋盘格的角点,计算当前选定的所述角点与其他所述角点的距离,采用冒泡排序法查找出与当前所述角点距离最近的四个所述角点;

计算这四个所述角点与当前所述角点的距离值的方差,如果所述方差小于第二设定阈值,则当前所述角点为所述棋盘格的内部角点。

9.一种基于轮廓提取的棋盘格角点检测装置,其特征在于,所述装置包括:

3

CN 109509200 A

权 利 要 求 书

3/3页

边缘点获取模块,用于对原始图像进行边缘检测处理以获取所述原始图像中的边缘点;

轮廓提取模块,用于根据所述边缘点提取所述原始图像中的棋盘格的轮廓;角点识别模块,用于对提取到的所述棋盘格的轮廓进行角点识别;内部角点筛选模块,用于根据识别到的所述角点筛选出所述棋盘格的内部角点。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任意一项所述的方法的步骤。

4

CN 109509200 A

说 明 书

1/11页

基于轮廓提取的棋盘格角点检测方法、装置以及计算机可读

存储介质

技术领域

[0001]本申请涉及图像处理领域,尤其基于轮廓提取的棋盘格角点检测方法、棋盘格角点检测装置以及计算机可读存储介质。

背景技术

[0002]摄像机标定与位姿测量是机器视觉领域中的基础和热门问题,其处理过程通常是通过靶标上的特征点建立世界坐标系与像素坐标系的映射关系,从而通过求解PnP问题获得摄像机的内部参数以及靶标的位姿参数。因此,特征点坐标提取是非常重要的一步,其中,角点是最常见的一类特征点,而棋盘格角点作为一种特殊的角点被广泛应用。[0003]目前棋盘格角点的检测算法主要可以分为两种:基于边缘的角点检测算法和基于灰度的角点检测算法。基于边缘的角点检测算法首先对图像进行分割和边缘提取,其后根据“角点为边缘拐点或交点”的特征检测角点。基于灰度的角点检测算法认为角点是图像在局部范围内灰度和梯度变化的极大点,因此主要是通过计算曲率和梯度来检测角点。[0004]基于边缘的角点检测算法需要先对图像进行边缘提取,其后的步骤都是在此基础上根据拐点或交点特征进行检测,当图像边缘发生中断时,就不能很好的提取角点,因此对边缘检测的质量要求比较高,而且算法的处理步骤比较复杂,计算量大,耗时较长。基于灰度的角点检测算法主要通过计算曲率和梯度来检测角点,常见的有Harris算子、Susan算子,在背景较复杂情况下,请参阅图1至图3,图1是原始图像,原始图像的像素是1280*1024,图2是使用Harris算子后的识别效果,图3是使用Susan算子后的识别效果,可以看到,图2和图3识别出了很多非角点的像素点。因此,虽然基于灰度的角点检测算法的原理简单、稳定性高且易于实现,但准确率低、容易误检、抗干扰能力弱。发明内容

[0005]本申请提供一种基于轮廓提取的棋盘格角点检测方法、棋盘格角点检测装置以及计算机可读存储介质,能够在解决现在棋盘格角点的检测算法中基于边缘的角点检测算法存在处理步骤复杂、计算量大、耗时长的问题以及基于灰度的角点检测算法存在准确率低、容易误检、抗干扰能力弱的问题。[0006]根据本申请的第一方面,本申请提供基于轮廓提取的棋盘格角点检测方法,方法包括:对原始图像进行边缘检测处理以获取原始图像中的边缘点;根据边缘点提取原始图像中的棋盘格的轮廓;对提取到的棋盘格的轮廓进行角点识别;根据识别到的角点筛选出棋盘格的内部角点。[0007]优选地,在对原始图像进行边缘检测处理以获取原始图像中的边缘点的步骤中,包括:通过横向卷积因子Sx和纵向卷积因子Sy与原始图像进行平面卷积,得到原始图像的像素点的横向灰度差分近似值Gx及纵向灰度差分近似值Gy,其中,原始图像设为A,横向卷积因

5

CN 109509200 A

说 明 书

纵向卷积因子

2/11页

子根据公式:横向灰度差分近似值为Gx=Sx*

A,纵向灰度差分近似值为Gy=Sy*A;将原始图像A中的每一个像素点的横向灰度差分近似值

Gx以及纵向灰度差分近似值Gy根据如下公式(1)或公式(2)获得像素点的灰度加权差G的大小,其中,公式(1)为:

公式(2)为:G=|Gx|+|Gy|;当像素点的灰度加权差G大

于第一设定阈值时,则像素点为边缘点,否则,标记像素点为0。[0008]优选地,在根据边缘点提取出原始图像中的棋盘格的轮廓的步骤中,包括:按照设定顺序扫描原始图像的像素点,当扫描到原始图像中的像素点为有效点时,按照第一设定规则赋予设定的标记值给原始图像中的有效点,同一连通域的有效点的标记值通过等价链的方式表示,等价链包括具有等价关系的标记值,等价链以等价对的形式存入等价数组中,将等价数组中的同一等价链的标记值按照第二设定规则更新为统一的标记值,则标记值相同的像素点为同一连通域的像素点;判断连通域的像素点是否满足设定条件,如果连通域的像素点的参数满足设定条件,则提取连通域作为棋盘格的轮廓。[0009]优选地,在按照第一设定规则赋予设定的标记值给原始图像中的有效点的步骤中,包括步骤:判断当前有效点的邻域中的像素点的标记值是否均为0,其中,邻域中的像素点包括第一像素点、第二像素点、第三像素点以及第四像素点,第一像素点为当前有效点左侧相邻的像素点、第二像素点为第一像素点上方相邻的像素点,第三像素点为第二像素左侧相邻的像素点,第四像素点为第二素点右侧相邻的像素点,当第一像素点、第二像素点、第三像素点以及第四像素点的标记值均为0时,则赋予该有效点区别于之前已进行标记的有效点的标记值,并将当前有效点的标记值存储在等价对数组中,否则,按照第一像素点、第二像素点、第三像素点、第四像素点的顺序,从这四个像素点中选取一个数值不为0的像素点的标记值赋予有效点;当进一步判断到第一像素点和第四像素点的标记值同时不为0并且不相等时,将第一像素点和第四像素点的标记值作为等价对存储在等价数组中,否则,再进一步判断第三像素点和第四像素点的标记值是否同时不为0且不相等,如果判断到第三像素点和第四像素点的标记值同时不为0并且不相等,则将第三像素点和第四像素点作为等价对存储在等价数组中。[0010]优选地,将等价数组中的同一等价链的标记值按照第二设定规则更新为统一的标记值的步骤中,包括:将等价数组中的等价链里面的各个标记值对应的像素点的标记值更新为等价链的末值以使更新后的同一连通域的标记值是相同的。[0011]优选地,在判断连通域的像素点是否满足设定条件的步骤中,包括:统计连通域的像素点的个数,当像素点的个数超过设定数量级别时,则连通域为棋盘格的轮廓;或者,记录同一连通域中的像素点的横坐标的最大值Xmax、最小值Xmin和纵坐标的最大值Ymax、最小值Ymin,根据公式,G=(Xmax-Xmin)*(Ymax-Ymin),连通域的乘积G的最大值者则认定为棋盘格的轮廓。[0012]优选地,在对提取到的棋盘格的轮廓进行角点识别的步骤中,包括:利用水平差分算子、竖直差分算子计算棋盘格的轮廓的像素点I(x,y)在X和Y两个方向的梯度Ix、Iy,其中,

计算像素点的两个方向梯度的三个乘

6

CN 109509200 A

说 明 书

其中,

其中,

3/11页

积,得到矩阵m:对矩阵m的四个元素

进行高斯平滑滤波,得到新的矩阵M:

计算每个像素点的Harris响应值R,根

2据公式:R=detM-α(traceM)2,其中,detM=λλtraceM=λλα=0.1;在像12=AC-B,1+2=A+C,素点的3×3的邻域内进行R值非极大值抑制所得到的最大值点即为角点。[0013]优选地,在根据识别到的角点筛选出棋盘格的内部角点的步骤中,包括:从设定的角点开始遍历棋盘格的角点,计算当前选定的角点与其他角点的距离,采用冒泡排序法查找出与当前角点距离最近的四个角点;计算这四个角点与当前角点的距离值的方差,如果方差小于第二设定阈值,则当前角点为棋盘格的内部角点。[0014]根据本申请的第二方面,本申请提供一种基于轮廓提取的棋盘格角点检测装置,装置包括:边缘点获取模块,用于对原始图像进行边缘检测处理以获取原始图像中的边缘点;轮廓提取模块,用于根据边缘点提取原始图像中的棋盘格的轮廓;角点识别模块,用于对提取到的棋盘格的轮廓进行角点识别;内部角点筛选模块,用于根据识别到的角点筛选出棋盘格的内部角点。

[0015]根据本申请的第三方面,本申请提供一种终端,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为:对原始图像进行边缘检测处理以获取原始图像中的边缘点;根据边缘点提取原始图像中的棋盘格的轮廓;对提取到的棋盘格的轮廓进行角点识别;根据识别到的角点筛选出棋盘格的内部角点。[0016]根据本申请的第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上所述的方法的步骤。[0017]本申请的有益效果在于:本申请通过对原始图像进行边缘检测处理以获取原始图像中的边缘点,再根据边缘点提取原始图像中的棋盘格的轮廓,然后对提取到的棋盘格的轮廓进行角点识别,最好根据识别到的角点即可筛选出棋盘格的内部角点,本方法通过提取棋盘格轮廓,剔除了大量非角点像素,一方面极大的减少了角点识别的计算量,另一方面能够准确的识别棋盘格角点,结合了基于边缘的角点检测算法和基于灰度的角点检测算法的优点,同时改善了两者缺点,能够极大地减少数据处理量、提升处理速度和效率,并且有效地提高了抗干扰能力和准确率。

附图说明

[0018]图1是本申请的原始图像;

[0019]图2是基于灰度的角点检测算法使用Harris算子对图1进行角点检测后的识别效果;

[0020]图3是基于灰度的角点检测算法使用Susan算子对图1进行角点检测后的识别效果;

[0021]图4是本申请的基于轮廓提取的棋盘格角点检测方法的流程图;

[0022]图5是本申请的通过Sobel算子对原始图像进行边缘检测处理的效果图;

7

CN 109509200 A[0023][0024][0025][0026][0027]

说 明 书

4/11页

图6是本申请的当前有效点3×3的邻域中的像素点的示意图;图7是本申请的步骤S1021的工作流程图;

图8是本申请通过步骤S102提取原始图像中的棋盘格的轮廓的效果图;图9是本申请通过步骤S103对棋盘格的轮廓中的角点识别的效果图;

图10是本申请通过步骤S104对识别到的棋盘格的角点筛选出内部角点的效果图;

以及

图11是本申请的基于轮廓提取的棋盘格角点检测装置的原理图。

[0029]附图标记说明:边缘点获取模块111轮廓提取模块112角点识别模块113内部角点筛选模块114。

具体实施方式

[0030]下面通过具体实施方式结合附图对本申请作进一步详细说明。[0031]本申请的构思是:通过提取棋盘格轮廓剔除大量非角点像素,能够使得能够极大地减少数据处理量、提升处理速度和效率,并且有效地提高了抗干扰能力和准确率。[0032]请参阅图1至图10,本申请提出一种基于轮廓提取的棋盘格角点检测方法,方法包括:

[0033]步骤S101:对原始图像进行边缘检测处理以获取原始图像中的边缘点。[0034]本实施例中,通过Sobel算子对原始图像进行边缘检测处理。Sobel算子根据像素点8邻域内邻点的灰度加权差,在边缘处达到极值这一现象时检测到边缘。[0035]因此,在步骤S101中,包括:[0036]步骤S1011:通过横向卷积因子Sx和纵向卷积因子Sy与原始图像进行平面卷积,即可得到原始图像的像素点的横向灰度差分近似值Gx及纵向灰度差分近似值Gy,其中,原始图像设为A,横向卷积因子

纵向卷积因子

根据公式:横向灰

[0028]

度差分近似值为Gx=Sx*A,纵向灰度差分近似值为Gy=Sy*A。[0037]步骤S1012:将原始图像A中的每一个像素点的横向灰度差分近似值Gx以及纵向灰度差分近似值Gy通过公式(1)获得像素点的灰度加权差G的大小,其中,公式(1)为:

为了提高效率,也可通过不开平方的公式(2)获得:G=|Gx|+|Gy|。

步骤S1013:当像素点的灰度加权差G大于第一设定阈值时,则像素点为边缘点,否则,标记像素点为0。[0039]本实施例中,第一设定阈值可以根据实际使用场景进行设置,这里不作。[0040]请参阅图5,图5为通过Sobel算子对原始图像进行边缘检测处理的效果图。Sobel算子原理简单,计算量少,当对精度要求不是很高时,是一种较为常用的边缘检测方法。本申请针对棋盘格的角点为边缘拐点或交点的特征,选用Sobel算子做边缘检测,排除绝大多数非角点,极大的减少后续处理的数据量。[0041]步骤S102:根据边缘点提取原始图像中的棋盘格的轮廓。

[0042]本步骤主要是从通过步骤S101所得到的边缘点中提取出棋盘格的轮廓。本步骤的设计思路是根据棋盘格轮廓的连通性,采用连通域标记的方法做轮廓分类,再结合棋盘格

8

[0038]

CN 109509200 A

说 明 书

5/11页

轮廓特征提取该轮廓。[0043]在步骤S102中,具体包括如下步骤:[0044]步骤S1021:按照设定顺序扫描原始图像的像素点,当扫描到原始图像中的像素点为有效点时,按照第一设定规则赋予设定的标记值给原始图像中的有效点,同一连通域的有效点的标记值通过等价链的方式表示,等价链包括具有等价关系的标记值,等价链以等价对的形式存入等价数组中。将等价数组中的同一等价链的标记值按照第二设定规则更新为统一的标记值,则标记值相同的像素点为同一连通域的像素点。[0045]本实施例中,首先对连通域的相关内容进行定义。[0046]等价对:A,B为标记值,等价对(A,B)表示标记值为A和B的像素点属于同一个连通域,亦既是,标记值为A和B的像素点具有等价关系,将具有等价关系的标记值存入等价数组亦既是labelpair数组中,则labelpair[A]=B。[0047]等价链:等价链中的标记值均为同一连通域,其以等价对的形式进行存储。比如,等价链中(2,3,4,5)表示标记值为2、3、4、5的像素点为同一连通域的像素点,等价链存储为等价对(2,3)、(3,4)、(4,5)、(5,5),其中,等价对(5,5)表示等价链的链尾,5为末值。[0048]等价数组:等价数组亦既是labelpari数组,其是存放等价对的一维数组,例如,等价对(2,3)存储为labelpair[2]=3。等价数组可以存放多条等价链,等价链在等价数组中通过不同的地址区域进行区分,比如,在数组中,labelpair[2]=3、labelpair[3]=4、labelpair[4]=5,则表示等价对(2,3)、(3,4)、(4,5)、(5,5)属于同一个等价链,该等价链为(2,3,4,5),labelpair[1]=6则表示等价对(1,6)属于同一等价链,该等价链为(1,6),可以看到一个数组里面通过两个不同的等价链就表示了两个不同的连通域。[0049]本方法所采用的用于连通域标记的两步法中,等价数组用链状结构来实现,用一条等价链表示属于同一连通域的标记,存储只需一维数组,相比于树状结构的二维数组,更方便等价对数组的存储,同时对于复杂的轮廓更具有规范性以及可查性,方便于后续等价对以及图像标记的更新。[0050]本实施例中,按照从图像的左上角开始逐列逐行的顺序扫描。[0051]因此,请参阅图6和图7,在按照第一设定规则赋予设定的标记值给原始图像中的有效点的步骤中,包括:[0052]步骤S1021a:判断当前有效点的邻域中的像素点的标记值是否均为0。请参阅图6,当前有效点A,在当前有效点3×3的邻域中的像素点包括第一像素点a1、第二像素点a2、第三像素点a3以及第四像素点a4,第一像素点a1为当前有效点左侧相邻的像素点、第二像素点a2为第一像素点a1上方相邻的像素点,第三像素点a3为第二像素左侧相邻的像素点,第四像素点a4为第二素点右侧相邻的像素点。当第一像素点a1、第二像素点a2、第三像素点a3以及第四像素点a4的标记值均为0时,跳到步骤S1021b,否则跳到步骤S1021c。[0053]步骤S1021b:赋予该有效点区别于之前已进行标记的有效点的标记值,并将当前有效点的标记值存储在等价对数组中。比如,之前的像素点中已经有被赋予标记值1、2、3,则对该点赋予一个新的标记值,比如4,并存储在等价数组中,亦既是,labelpair[4]=4。[0054]步骤S1021c:按照第一像素点a1、第二像素点a2、第三像素点a3、第四像素点a4的顺序,从这四个像素点中选取一个数值不为0的像素点的标记值赋予有效点。[0055]步骤S1021d:当判断到第一像素点a1和第四像素点a4的标记值同时不为0并且不

9

CN 109509200 A

说 明 书

6/11页

相等时,如果是,则跳到步骤S1021e,否则,跳到步骤S1021f。[0056]步骤S1021e:将第一像素点a1和第四像素点a4的标记值作为等价对存储在等价数组中。亦既是,令labelpair[a1]=a4。[0057]步骤S1021f:再进一步判断第三像素点a3和第四像素点a4的标记值是否同时不为0且不相等,如果是,则跳到步骤S1021g,否则,保持第三像素点a3和第四像素点a4的标记值不变。

[0058]步骤S1021g:将第三像素点a3和第四像素点a4作为等价对存储在等价数组中。亦既是,令labelpair[a4]=a3。[0059]本实施例中,第二设定规则为将等价数组中的等价链里面的各个标记值对应的像素点的标记值更新为该等价链的末值,更新后同一连通域的标记值是相同的。比如,等价链(2,3,4,5)中,等价链1存储在数组中的等价对包括:labelpair[2]=3、labelpair[3]=4、labelpair[4]=5,labelpair[5]=5,因为这个等价链的末值为5,则将这些等价对的值都置为5,亦既是,令labelpair[2]=5、labelpair[3]=5、labelpair[4]=5,labelpair[5]=5,这样就使得标记值为2、3、4、5所对应的像素点的标记值都置为5。因此,具有同一标记值的像素点为同一连通区域。[0060]步骤S1022:判断连通域的像素点是否满足设定条件,如果连通域的像素点的参数满足设定条件,则提取连通域作为棋盘格的轮廓。[0061]因为棋盘格特征从连通域看,棋盘格连通域的像素点数与干扰点、线段的像素点数不在同一数量级,从使用场景看棋盘格占据图像的大部分区域,因此,可以通过判断连通域的像素点个数或者连通域在图像中所占的范围来判断棋盘格的轮廓。[0062]本实施例中,在步骤S1022中,判断连通区域是否为棋盘格的轮廓可以通过统计连通域的像素点的个数,当像素点的个数超过设定数量级别时,则连通域为棋盘格的轮廓。比如,连通域的像素点的个数超过10000,则认为该连通域为棋盘格的轮廓。[0063]在其它实施例中,判断连通区域是否为棋盘格的轮廓也可以通过判断连通域在图像中所占的范围来确定:记录同一连通域中的像素点的横坐标的最大值Xmax、最小值Xmin和纵坐标的最大值Ymax、最小值Ymin,根据公式,G=(Xmax-Xmin)*(Ymax-Ymin),连通域的乘积G的最大值者则认定为棋盘格的轮廓。[00]请参阅图8,图8为通过步骤S102提取原始图像中的棋盘格的轮廓的效果图。[0065]步骤S103:对提取到的棋盘格的轮廓进行角点识别。[0066]本实施例中,通过Harris算子对棋盘格的轮廓进行角点识别。[0067]因此,在步骤S103中,包括:[0068]步骤S1031:利用水平差分算子、竖直差分算子计算棋盘格的轮廓的像素点I(x,y)在X和Y两个方向的梯度Ix、Iy,其中,

[0069]

步骤S1032:计算像素点的两个方向梯度的三个乘积,得到矩阵m:

Ixy=Ix·Iy。

步骤S1033:对矩阵m的四个元素进行高斯平滑滤波,得到新的矩阵M:

10

中,

[0070]

CN 109509200 A

说 明 书

7/11页

其中,

步骤S1034:计算每个像素点的Harris响应值R,根据公式:R=detM-α(traceM)2,

2

其中,detM=λλtraceM=λλα=0.1。12=AC-B,1+2=A+C,[0072]步骤S1035:在像素点的3×3的邻域内进行R值非极大值抑制所得到的最大值点即为角点。

[0073]可以看到,通过Harris算子做棋盘格轮廓的角点识别相比Susan算子,Harris算子原理简单、稳定性较好且应用更为广泛。[0074]请继续参阅图9,图9为通过步骤S103对棋盘格的轮廓中的角点识别的效果图。可以看到图中,棋盘格的方块的角点都被识别到。[0075]步骤S104:根据识别到的角点筛选出棋盘格的内部角点。[0076]因为棋盘格的内部角点特征是:内部角点的上下左右四个方向上,存在上下左右四个角点,与其距离最近,且距离数值差不多,即四个距离值的方差较小,如果不是内部角点的话,则无法满足这一条件。因此,可以通过判断角点的上下左右方向是否同时存在四个与其距离值一样的角点即可找到内部角点。[0077]因此,本实施例中,在步骤S104中,具体包括:[0078]步骤S1041:从设定的角点开始遍历棋盘格的角点,计算当前选定的角点与其他角点的距离,采用冒泡排序法查找出与当前角点距离最近的四个角点;[0079]步骤S1042:计算这四个角点与当前角点的距离值的方差,如果方差小于第二设定阈值,则当前角点为棋盘格的内部角点。[0080]请参阅图10,图10为通过步骤S104对识别到的棋盘格的角点筛选出内部角点的效果图。可以看到图中,棋盘格的方块的内部角点都被识别到。

[0081]可以将本申请与使用Harris算子直接识别角点的角点检测算法相比。在运行速度上,通过matlab进行仿真来验证,两者采用相同的Harris代码,在同一环境下测试,任意选取四张样图,使用Harris算子直接识别角点的角点检测算法和本申请的仿真时间数据如下表所示,可以看到,本申请的运行速度远远快于使用Harris算子直接识别角点的角点检测算法。

[0071][0082]

单位:秒Harris本申请样图14.35540.3136样图24.31900.34样图34.33160.3319样图44.41030.3348[0083]表1使用Harris算子角点检测算法与本申请的识别速度对比[0084]在准确度上,使用Harris算子直接识别角点的角点检测算法的识别效果如图2所示,使用本申请的算法识别角点的效果如图9所示,显然本申请的识别效果更好,图2识别的结果中出现很多不是角点的结果。[0085]综上所述,本申请与使用Harris算子直接识别角点的角点检测算法相比,极大的提高了识别的速度与准确度。[0086]相应的,依据计算机软件的功能模块化思维,与图4和图7所示的基于轮廓提取的

11

CN 109509200 A

说 明 书

8/11页

棋盘格角点检测方法的实施例对应,本发明还提供了基于轮廓提取的棋盘格角点检测装置。请参阅图11,以下具体揭示本装置包括的模块以及各模块实现的具体功能。[0087]基于轮廓提取的棋盘格角点检测装置包括:边缘点获取模块111,用于对原始图像进行边缘检测处理以获取原始图像中的边缘点;轮廓提取模块112,用于根据边缘点提取原始图像中的棋盘格的轮廓;角点识别模块113,用于对提取到的棋盘格的轮廓进行角点识别;内部角点筛选模块114,用于根据识别到的角点筛选出棋盘格的内部角点。[0088]边缘点获取模块111还用以:通过横向卷积因子Sx和纵向卷积因子Sy与原始图像进行平面卷积,得到原始图像的像素点的横向灰度差分近似值Gx及纵向灰度差分近似值Gy,其中,原始图像设为A,横向卷积因子

纵向卷积因子

根据

公式:横向灰度差分近似值为Gx=Sx*A,纵向灰度差分近似值为Gy=Sy*A;将原始图像A中的每一个像素点的横向灰度差分近似值Gx以及纵向灰度差分近似值Gy根据如下公式(1)或公式(2)获得像素点的灰度加权差G的大小,其中,公式(1)为:

公式(2)为:G=|

Gx|+|Gy|;当像素点的灰度加权差G大于第一设定阈值时,则像素点为边缘点,否则,标记像素点为0。

[00]轮廓提取模块112包括:[0090]连通域标记单元,用以按照设定顺序扫描原始图像的像素点,当扫描到原始图像中的像素点为有效点时,按照第一设定规则赋予设定的标记值给原始图像中的有效点,同一连通域的有效点的标记值通过标记链的方式表示,标记链将具有等价关系的标记值以等价对的形式存入等价数组中,将等价数组中的同一标记链的标记值按照第二设定规则更新为统一的标记值,则标记值相同的像素点为同一连通域的像素点;[0091]提取单元,用以判断连通域的像素点是否满足设定条件,如果连通域的像素点的参数满足设定条件,则提取连通域作为棋盘格的轮廓。[0092]连通域标记单元还用以:判断当前有效点的邻域中的像素点的标记值是否均为0,其中,邻域中的像素点包括第一像素点、第二像素点、第三像素点以及第四像素点,第一像素点为当前有效点左侧相邻的像素点、第二像素点为第一像素点上方相邻的像素点,第三像素点为第二像素左侧相邻的像素点,第四像素点为第二素点右侧相邻的像素点,当第一像素点、第二像素点、第三像素点以及第四像素点的标记值均为0时,则赋予该有效点区别于之前已进行标记的有效点的标记值,并将当前有效点的标记值存储在等价对数组中,否则,按照第一像素点、第二像素点、第三像素点、第四像素点的顺序,从这四个像素点中选取一个数值不为0的像素点的标记值赋予有效点;当进一步判断到第一像素点和第四像素点的标记值同时不为0并且不相等时,将第一像素点和第四像素点的标记值作为等价对存储在等价数组中,否则,再进一步判断第三像素点和第四像素点的标记值是否同时不为0且不相等,如果判断到第三像素点和第四像素点的标记值同时不为0并且不相等,则将第三像素点和第四像素点作为等价对存储在等价数组中。[0093]连通域标记单元还用以:将等价数组中的标记链里面的各个标记值对应的像素点的标记值更新为标记链的末值以使更新后的同一连通域的标记值是相同的。

12

CN 109509200 A[0094]

说 明 书

9/11页

提取单元还用以:统计连通域的像素点的个数,当像素点的个数超过设定数量级

别时,则连通域为棋盘格的轮廓;或者,记录同一连通域中的像素点的横坐标的最大值Xmax、最小值Xmin和纵坐标的最大值Ymax、最小值Ymin,根据公式,G=(Xmax-Xmin)*(Ymax-Ymin),连通域的乘积G的最大值者则认定为棋盘格的轮廓。[0095]角点识别模块113还用以:利用水平差分算子、竖直差分算子计算棋盘格的轮廓的像素点I(x,y)在X和Y两个方向的梯度Ix、Iy,其中,

计算像素点的两个方向梯度的三个乘

积,得到矩阵m:

其中,

其中,

计算每个像素点的Harris响应值R,根

Ixy=Ix·Iy;对矩阵m的四个元

素进行高斯平滑滤波,得到新的矩阵M:

2据公式:R=detM-α(traceM)2,其中,detM=λλtraceM=λλα=0.1;在像12=AC-B,1+2=A+C,素点的3×3的邻域内进行R值非极大值抑制所得到的最大值点即为角点。[0096]内部角点筛选模块114还用以:从设定的角点开始遍历棋盘格的角点,计算当前选定的角点与其他角点的距离,采用冒泡排序法查找出与当前角点距离最近的四个角点;计算这四个角点与当前角点的距离值的方差,如果方差小于第二设定阈值,则当前角点为棋盘格的内部角点。

[0097]下面结合图1至图11来对本申请的基于轮廓提取的棋盘格角点检测方法的工作原理进行说明。[0098]首先,通过Sobel算子对原始图像进行边缘检测获取原始图像中的边缘点。[0099]然后,以边缘点为有效点,对边缘点进行标号。具体是:从图像的左上角开始按照逐列逐行的顺序进行扫描,判断当前有效点的3×3的邻域中的像素点的标记值是否均为0,如果都为0,则赋予新的标记值至该有效点,并把该新的标记值保存在一个新的等价链中,否则,按照按照邻域内第一像素点a1、第二像素点a2、第三像素点a3、第四像素点a4的顺序,从这四个像素点中选取一个数值不为0的像素点的标记值赋予有效点。当判断到第一像素点a1和第四像素点a4的标记值同时不为0并且不相等时,将第一像素点a1和第四像素点a4的标记值作为等价对存储在等价数组中。再判断到第三像素点a3和第四像素点a4的标记值是否同时不为0且不相等时,将第三像素点a3和第四像素点a4作为等价对存储在等价数组中。[0100]扫描完成后,将等价链中的所有标记值都更新为等价链的末值,这样使得具有同一标记值的像素点属于同一连通区域的。因为同一个等价链的标记值属于同一连通区域,所以,扫描完成后可能有多个等价链,亦即表示有多个连通区域。[0101]根据连通区域的特点,如果连通区域的像素点超过设定数量比如10000个时,则认为该连通区域为棋盘格的轮廓。再对该棋盘格的轮廓的角点进行识别,从识别到的角点中筛选出内部角点。

[0102]本公开还提出一种终端,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为对原始图像进行边缘检测处理以获取原始图像中的边缘点;根据边缘

13

CN 109509200 A

说 明 书

10/11页

点提取原始图像中的棋盘格的轮廓;对提取到的棋盘格的轮廓进行角点识别;根据识别到的角点筛选出棋盘格的内部角点。

[0103]处理器执行所述计算机程序时实现上述各个方法实施例中的步骤,例如图4所示的步骤。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如图11的功能模块。[0104]示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述基于轮廓提取的棋盘格角点检测装置中的执行过程。例如,所述计算机程序可以被分割成如图11所示的模块,各模块具体功能如上面的说明。[0105]所述基于轮廓提取的棋盘格角点检测装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备,也可以行车记录仪、运动相机等拍摄设备。所述基于轮廓提取的棋盘格角点检测装置/终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是基于轮廓提取的棋盘格角点检测装置的示例,并不构成对基于轮廓提取的棋盘格角点检测装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述基于轮廓提取的棋盘格角点检测装置还可以包括输入输出设备、网络接入设备、总线等。

[0106]所称处理器可以是处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述基于轮廓提取的棋盘格角点检测装置的控制中心,利用各种接口和线路连接基于轮廓提取的棋盘格角点检测装置的各个部分。[0107]所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述基于轮廓提取的棋盘格角点检测装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

[0108]本公开提出一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上所述基于轮廓提取的棋盘格角点检测方法的步骤。[0109]所述基于轮廓提取的棋盘格角点检测装置的模块/单元如果以软件功能单元的形式实现并作为的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机

14

CN 109509200 A

说 明 书

11/11页

程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。[0110]本申请的有益效果在于:本申请通过对原始图像进行边缘检测处理以获取原始图像中的边缘点,再根据边缘点提取原始图像中的棋盘格的轮廓,然后对提取到的棋盘格的轮廓进行角点识别,最好根据识别到的角点即可筛选出棋盘格的内部角点,本方法通过提取棋盘格轮廓,剔除了大量非角点像素,一方面极大的减少了角点识别的计算量,另一方面能够准确的识别棋盘格角点,结合了基于边缘的角点检测算法和基于灰度的角点检测算法的优点,同时改善了两者缺点,能够极大地减少数据处理量、提升处理速度和效率,并且有效地提高了抗干扰能力和准确率。

[0111]以上内容是结合具体的实施方式对本申请所作的进一步详细说明,不能认定本申请的具体实施只局限于这些说明。对于本申请所属技术领域的普通技术人员来说,在不脱离本申请发明构思的前提下,还可以做出若干简单推演或替换。

15

CN 109509200 A

说 明 书 附 图

1/7页

图1

图2

16

CN 109509200 A

说 明 书 附 图

2/7页

图3

17

CN 109509200 A

说 明 书 附 图

3/7页

图4

18

CN 109509200 A

说 明 书 附 图

4/7页

图5

图6

19

CN 109509200 A

说 明 书 附 图

5/7页

图7

20

CN 109509200 A

说 明 书 附 图

6/7页

图8

图9

21

CN 109509200 A

说 明 书 附 图

7/7页

图10

图11

22

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务