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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (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)
(54)发明名称基于轮廓提取的棋盘格角点检测方法、装置以及计算机可读存储介质(57)摘要本申请基于轮廓提取的棋盘格角点检测方法、棋盘格角点检测装置以及计算机可读存储介质,方法包括:对原始图像进行边缘检测处理以获取原始图像中的边缘点;根据边缘点提取原始图像中的棋盘格的轮廓;对提取到的棋盘格的轮廓进行角点识别;根据识别到的角点筛选出棋盘格的内部角点。

本申请通过提取棋盘格轮廓,剔除了大量非角点像素,一方面极大的减少了角点识别的计算量,另一方面能够准确的识别棋盘格角点,结合了基于边缘的角点检测算法和基于灰度的角点检测算法的优点,同时改善了两者缺点,能够极大地减少数据处理量、提升处理速度和效率,并且有效地提高了抗干扰能力和准确
率。

权利要求书3页 说明书11页 附图7页CN 109509200 A 2019.03.22
C N 109509200
A
1.一种基于轮廓提取的棋盘格角点检测方法,其特征在于,所述方法包括:
对原始图像进行边缘检测处理以获取所述原始图像中的边缘点;
根据所述边缘点提取所述原始图像中的棋盘格的轮廓;
对提取到的所述棋盘格的轮廓进行角点识别;
根据识别到的所述角点筛选出所述棋盘格的内部角点。

2.如权利要求1所述的棋盘格角点检测方法,其特征在于,在所述对原始图像进行边缘检测处理以获取原始图像中的边缘点的步骤中,包括:
通过横向卷积因子S x和纵向卷积因子S y与所述原始图像进行平面卷积,得到所述原始图像的像素点的横向灰度差分近似值G x及纵向灰度差分近似值G y,其中,所述原始图像设为
A,横向卷积因子纵向卷积因子根据公式:横向灰度差
分近似值为G x=S x*A,纵向灰度差分近似值为G y=S y*A;
将所述原始图像A中的每一个像素点的横向灰度差分近似值G x以及纵向灰度差分近似值G y根据如下公式(1)或公式(2)获得所述像素点的灰度加权差G的大小,其中,公式(1)为:公式(2)为:G=|G x|+|G y|;
当所述像素点的灰度加权差G大于第一设定阈值时,则所述像素点为所述边缘点,否则,标记所述像素点为0。

3.如权利要求1所述的棋盘格角点检测方法,其特征在于,在所述根据边缘点提取出原始图像中的棋盘格的轮廓的步骤中,包括:
按照设定顺序扫描所述原始图像的像素点,当扫描到所述原始图像中的像素点为有效点时亦即扫描到边缘点时,按照第一设定规则赋予设定的标记值给所述原始图像中的有效点,同一连通域的所述有效点的标记值通过等价链的方式表示,所述等价链包括具有所述等价关系的标记值,所述等价链以等价对的形式存入等价数组中,将所述等价数组中的同一等价链的标记值按照第二设定规则更新为统一的所述标记值,则所述标记值相同的像素点为同一所述连通域的像素点;
判断所述连通域的像素点是否满足设定条件,如果所述连通域的像素点的参数满足设定条件,则提取所述连通域作为所述棋盘格的轮廓。

4.如权利要求3所述的棋盘格角点检测方法,其特征在于,在所述按照第一设定规则赋予设定的标记值给原始图像中的有效点的步骤中,包括步骤:
判断当前有效点的邻域中的像素点的标记值是否均为0,其中,所述邻域中的像素点包括第一像素点、第二像素点、第三像素点以及第四像素点,所述第一像素点为所述当前有效点左侧相邻的像素点、所述第二像素点为所述第一像素点上方相邻的像素点,所述第三像素点为所述第二像素左侧相邻的像素点,所述第四像素点为所述第二素点右侧相邻的像素点,当所述第一像素点、第二像素点、第三像素点以及第四像素点的标记值均为0时,则赋予该有效点区别于之前已进行标记的所述有效点的标记值,并将所述当前有效点的标记值存储在所述等价对数组中,否则,按照第一像素点、第二像素点、第三像素点、第四像素点的顺序,从这四个像素点中选取一个数值不为0的像素点的标记值赋予所述有效点;
当进一步判断到所述第一像素点和第四像素点的标记值同时不为0并且不相等时,将所述第一像素点和第四像素点的标记值作为等价对存储在所述等价数组中,否则,再进一步判断所述第三像素点和第四像素点的标记值是否同时不为0且不相等,如果判断到所述第三像素点和第四像素点的标记值同时不为0并且不相等,则将所述第三像素点和第四像素点作为等价对存储在所述等价数组中。

5.如权利要求3所述的棋盘格角点检测方法,其特征在于,所述将等价数组中的同一等价链的标记值按照第二设定规则更新为统一的标记值的步骤中,包括:
将所述等价数组中的等价链里面的各个标记值对应的像素点的标记值更新为所述等价链的末值以使更新后的同一所述连通域的标记值是相同的。

6.如权利要求3所述的棋盘格角点检测方法,其特征在于,在所述判断连通域的像素点是否满足设定条件的步骤中,包括:
统计所述连通域的像素点的个数,当所述像素点的个数超过设定数量级别时,则所述连通域为所述棋盘格的轮廓;或者,
记录同一所述连通域中的像素点的横坐标的最大值Xmax、最小值Xmin和纵坐标的最大值Ymax、最小值Ymin,根据公式,G=(Xmax-Xmin)*(Ymax-Ymin),所述连通域的乘积G的最大值者则认定为所述棋盘格的轮廓。

7.如权利要求1所述的棋盘格角点检测方法,其特征在于,在所述对提取到的所述棋盘格的轮廓进行角点识别的步骤中,包括:
利用水平差分算子、竖直差分算子计算所述棋盘格的轮廓的像素点I(x,y)在X和Y两个方向的梯度I x、I y,其中,
计算所述像素点的两个方向梯度的三个乘积,得到矩阵m:其中,
I xy=I x·I y;
对矩阵m的四个元素进行高斯平滑滤波,得到新的矩阵M:其中,
计算每个所述像素点的Harris响应值R,根据公式:R=detM-α(traceM)2,其中,detM=λ1λ2=AC-B2,traceM=λ1+λ2=A+C,α=0.1;
在所述像素点的3×3的邻域内进行R值非极大值抑制所得到的最大值点即为所述角点。

8.如权利要求1所述的棋盘格角点检测方法,其特征在于,在所述根据识别到的角点筛选出所述棋盘格的内部角点的步骤中,包括:
从设定的角点开始遍历所述棋盘格的角点,计算当前选定的所述角点与其他所述角点的距离,采用冒泡排序法查找出与当前所述角点距离最近的四个所述角点;
计算这四个所述角点与当前所述角点的距离值的方差,如果所述方差小于第二设定阈值,则当前所述角点为所述棋盘格的内部角点。

9.一种基于轮廓提取的棋盘格角点检测装置,其特征在于,所述装置包括:
边缘点获取模块,用于对原始图像进行边缘检测处理以获取所述原始图像中的边缘点;
轮廓提取模块,用于根据所述边缘点提取所述原始图像中的棋盘格的轮廓;
角点识别模块,用于对提取到的所述棋盘格的轮廓进行角点识别;
内部角点筛选模块,用于根据识别到的所述角点筛选出所述棋盘格的内部角点。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任意一项所述的方法的步骤。

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

背景技术
[0002]摄像机标定与位姿测量是机器视觉领域中的基础和热门问题,其处理过程通常是通过靶标上的特征点建立世界坐标系与像素坐标系的映射关系,从而通过求解PnP问题获得摄像机的内部参数以及靶标的位姿参数。

因此,特征点坐标提取是非常重要的一步,其中,角点是最常见的一类特征点,而棋盘格角点作为一种特殊的角点被广泛应用。

[0003]目前棋盘格角点的检测算法主要可以分为两种:基于边缘的角点检测算法和基于灰度的角点检测算法。

基于边缘的角点检测算法首先对图像进行分割和边缘提取,其后根据“角点为边缘拐点或交点”的特征检测角点。

基于灰度的角点检测算法认为角点是图像在局部范围内灰度和梯度变化的极大点,因此主要是通过计算曲率和梯度来检测角点。

[0004]基于边缘的角点检测算法需要先对图像进行边缘提取,其后的步骤都是在此基础上根据拐点或交点特征进行检测,当图像边缘发生中断时,就不能很好的提取角点,因此对边缘检测的质量要求比较高,而且算法的处理步骤比较复杂,计算量大,耗时较长。

基于灰度的角点检测算法主要通过计算曲率和梯度来检测角点,常见的有Harris算子、Susan算子,在背景较复杂情况下,请参阅图1至图3,图1是原始图像,原始图像的像素是1280*1024,图2是使用Harris算子后的识别效果,图3是使用Susan算子后的识别效果,可以看到,图2和图3识别出了很多非角点的像素点。

因此,虽然基于灰度的角点检测算法的原理简单、稳定性高且易于实现,但准确率低、容易误检、抗干扰能力弱。

发明内容
[0005]本申请提供一种基于轮廓提取的棋盘格角点检测方法、棋盘格角点检测装置以及计算机可读存储介质,能够在解决现在棋盘格角点的检测算法中基于边缘的角点检测算法存在处理步骤复杂、计算量大、耗时长的问题以及基于灰度的角点检测算法存在准确率低、容易误检、抗干扰能力弱的问题。

[0006]根据本申请的第一方面,本申请提供基于轮廓提取的棋盘格角点检测方法,方法包括:对原始图像进行边缘检测处理以获取原始图像中的边缘点;根据边缘点提取原始图像中的棋盘格的轮廓;对提取到的棋盘格的轮廓进行角点识别;根据识别到的角点筛选出棋盘格的内部角点。

[0007]优选地,在对原始图像进行边缘检测处理以获取原始图像中的边缘点的步骤中,包括:通过横向卷积因子S x和纵向卷积因子S y与原始图像进行平面卷积,得到原始图像的像素点的横向灰度差分近似值G x及纵向灰度差分近似值G y,其中,原始图像设为A,横向卷积因
子纵向卷积因子根据公式:横向灰度差分近似值为G x=S x*
A,纵向灰度差分近似值为G y=S y*A;将原始图像A中的每一个像素点的横向灰度差分近似值G x以及纵向灰度差分近似值G y根据如下公式(1)或公式(2)获得像素点的灰度加权差G的大小,其中,公式(1)为:公式(2)为:G=|G x|+|G y|;当像素点的灰度加权差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两个方向的梯度I x、I y,其中,
计算像素点的两个方向梯度的三个乘
积,得到矩阵m:其中,对矩阵m的四个元素进行高斯平滑滤波,得到新的矩阵M:其中,
计算每个像素点的Harris响应值R,根据公式:R=detM-α(traceM)2,其中,detM=λ1λ2=AC-B2,traceM=λ1+λ2=A+C,α=0.1;在像素点的3×3的邻域内进行R值非极大值抑制所得到的最大值点即为角点。

[0013]优选地,在根据识别到的角点筛选出棋盘格的内部角点的步骤中,包括:从设定的角点开始遍历棋盘格的角点,计算当前选定的角点与其他角点的距离,采用冒泡排序法查找出与当前角点距离最近的四个角点;计算这四个角点与当前角点的距离值的方差,如果方差小于第二设定阈值,则当前角点为棋盘格的内部角点。

[0014]根据本申请的第二方面,本申请提供一种基于轮廓提取的棋盘格角点检测装置,装置包括:边缘点获取模块,用于对原始图像进行边缘检测处理以获取原始图像中的边缘点;轮廓提取模块,用于根据边缘点提取原始图像中的棋盘格的轮廓;角点识别模块,用于对提取到的棋盘格的轮廓进行角点识别;内部角点筛选模块,用于根据识别到的角点筛选出棋盘格的内部角点。

[0015]根据本申请的第三方面,本申请提供一种终端,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为:对原始图像进行边缘检测处理以获取原始图像中的边缘点;根据边缘点提取原始图像中的棋盘格的轮廓;对提取到的棋盘格的轮廓进行角点识别;根据识别到的角点筛选出棋盘格的内部角点。

[0016]根据本申请的第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上所述的方法的步骤。

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

附图说明
[0018]图1是本申请的原始图像;
[0019]图2是基于灰度的角点检测算法使用Harris算子对图1进行角点检测后的识别效果;
[0020]图3是基于灰度的角点检测算法使用Susan算子对图1进行角点检测后的识别效果;
[0021]图4是本申请的基于轮廓提取的棋盘格角点检测方法的流程图;
[0022]图5是本申请的通过Sobel算子对原始图像进行边缘检测处理的效果图;
[0023]图6是本申请的当前有效点3×3的邻域中的像素点的示意图;
[0024]图7是本申请的步骤S1021的工作流程图;
[0025]图8是本申请通过步骤S102提取原始图像中的棋盘格的轮廓的效果图;
[0026]图9是本申请通过步骤S103对棋盘格的轮廓中的角点识别的效果图;
[0027]图10是本申请通过步骤S104对识别到的棋盘格的角点筛选出内部角点的效果图;以及
[0028]图11是本申请的基于轮廓提取的棋盘格角点检测装置的原理图。

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

具体实施方式
[0030]下面通过具体实施方式结合附图对本申请作进一步详细说明。

[0031]本申请的构思是:通过提取棋盘格轮廓剔除大量非角点像素,能够使得能够极大地减少数据处理量、提升处理速度和效率,并且有效地提高了抗干扰能力和准确率。

[0032]请参阅图1至图10,本申请提出一种基于轮廓提取的棋盘格角点检测方法,方法包括:
[0033]步骤S101:对原始图像进行边缘检测处理以获取原始图像中的边缘点。

[0034]本实施例中,通过Sobel算子对原始图像进行边缘检测处理。

Sobel算子根据像素点8邻域内邻点的灰度加权差,在边缘处达到极值这一现象时检测到边缘。

[0035]因此,在步骤S101中,包括:
[0036]步骤S1011:通过横向卷积因子S x和纵向卷积因子S y与原始图像进行平面卷积,即可得到原始图像的像素点的横向灰度差分近似值G x及纵向灰度差分近似值G y,其中,原始图
像设为A,横向卷积因子纵向卷积因子根据公式:横向灰
度差分近似值为G x=S x*A,纵向灰度差分近似值为G y=S y*A。

[0037]步骤S1012:将原始图像A中的每一个像素点的横向灰度差分近似值G x以及纵向灰度差分近似值G y通过公式(1)获得像素点的灰度加权差G的大小,其中,公式(1)为:为了提高效率,也可通过不开平方的公式(2)获得:G=|G x|+|G y|。

[0038]步骤S1013:当像素点的灰度加权差G大于第一设定阈值时,则像素点为边缘点,否则,标记像素点为0。

[0039]本实施例中,第一设定阈值可以根据实际使用场景进行设置,这里不作限制。

[0040]请参阅图5,图5为通过Sobel算子对原始图像进行边缘检测处理的效果图。

Sobel 算子原理简单,计算量少,当对精度要求不是很高时,是一种较为常用的边缘检测方法。

本申请针对棋盘格的角点为边缘拐点或交点的特征,选用Sobel算子做边缘检测,排除绝大多数非角点,极大的减少后续处理的数据量。

[0041]步骤S102:根据边缘点提取原始图像中的棋盘格的轮廓。

[0042]本步骤主要是从通过步骤S101所得到的边缘点中提取出棋盘格的轮廓。

本步骤的设计思路是根据棋盘格轮廓的连通性,采用连通域标记的方法做轮廓分类,再结合棋盘格
轮廓特征提取该轮廓。

[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并且不。

相关文档
最新文档