一种棋盘格亚像素级角点自适应检测的方法与流程

专利2022-06-28  127


本发明属于图像处理与计算机视觉领域,特别涉及一种棋盘格亚像素级角点自适应检测的方法。



背景技术:

棋盘格角点作为一种特殊的角点在相机标定中具有广泛的应用,扮演着相当重要的角色。棋盘格图案由于对比度明显,特征简单,易于检测识别所以被广泛地应用于相机标定。同时,棋盘格角点检测的准确与否直接决定着相机内外参标定的精度,而相机标定参数准确与否直接决定着后续图像处理任务的精度。因此提高棋盘格图像角点检测的精度是视觉测量领域重要的课题。

现有的角点检测方法根据实现方法,一般分为三类:基于灰度强度的方法,基于边缘轮廓的方法,基于角点模型的方法。基于灰度强度的算法主要是通过检查图像局部灰度值的变化来检测角点。基于边缘轮廓的检测算法主要是通过分析图像边缘形状特性来检测角点。基于模型的角点检测算法基本框架是利用建立不同类型的角点参数化模型对图像进行匹配滤波。

然而上述所有方法都不能将棋盘格图像完全覆盖满整个相机的视场角,不能用棋盘格提取边缘区域的特征点,这样标定出来的相机内外参一定不准确。同时,对于在复杂光照条件拍摄的棋盘格图像可能会出现棋盘格角点错检和漏检的情况。对于低分辨率或者大畸变的棋盘格图像,求取亚像素级角点的迭代窗口大小不合适会导致亚像素级角点位置检测出错或者不稳定。



技术实现要素:

本发明旨在克服现有棋盘格角点检测技术的不足,提出了一种棋盘格亚像素级角点自适应检测的方法,即通过在棋盘格上设置标识用于标记初始单位栅格的位置,确定初始单位栅格的四个角点像素坐标,利用单位栅格四个角点在像素坐标系中的像素坐标以及世界坐标系中人为设定的世界坐标求出的单应性矩阵h向外扩展,向外扩展时对求取亚像素级角点的迭代窗口进行自适应调整,最终发散到整个棋盘格区域完成亚像素级角点检测。

本发明的具体技术方案为,一种棋盘格亚像素级角点自适应检测的方法,包括下列步骤:

1)设置标记:在棋盘格上设置标识用于标记初始单位栅格的位置;

2)拍摄图像:使用相机采集棋盘格标定板图像,并进行初步图像处理;

3)检测标记:通过标记检测算法检测出步骤1)设置标记的像素坐标;

4)利用标记:根据步骤3)检测得到的像素坐标,求出标记所确定初始单位栅格的四个角点像素坐标,通过迭代求出亚像素级角点坐标并进行验证;

5)向外扩展:根据步骤4)四个角点的亚像素级角点坐标和它们在世界坐标系中的世界坐标,求出单应性矩阵h;将单应性矩阵h与被标记单位栅格相邻的单位栅格的四个角点在世界坐标系中的世界坐标相乘,求出相邻单位栅格另外两个未知角点的亚像素级角点坐标;

6)自适应调整:在步骤5)向外扩展的过程中对求出的相邻单位栅格的边长进行统计,动态调整求取亚像素级角点的迭代窗口大小,提高亚像素级角点检测的准确率。

步骤2)拍摄图像,具体包括以下步骤:

在拍摄完图像后,对图像进行灰度化和二值化操作;由于光照和阴影的原因,直接使用最大类间方差法效果并不是很理想。所以,采用分块二值化的方法,将图像i分为m*n块,每一块命名为ii;对每一个ii使用最大类间方差法,得到二值化图像binary_i。

步骤4)具体包括以下步骤:

4-1)利用几何关系求解标记所确定单位栅格在像素坐标系中四个初始角点坐标;

4-2)令待求的亚像素级角点为q,则其周围的点pi与q的连线向量为(pi-q);对于其搜索窗口内任意一个点pi,令pi处的灰度梯度为gi,得到公式:

gi*(pi-q)=0

使用最小二乘法求解:

即:

初始的角点为整数坐标,设为q0,以q0为中心,选取一个窗口;获得亚像素级角点的迭代窗口半径win;窗口的每一点为pi;pi个数为n,引入高斯权重,pi点处的权重为wi,亚像素级角点的坐标q为:

使用sobel卷积求点pi处的灰度梯度值gi;对于点pi有:

gi=[dxdy]

4-3)通过标记所确定单位栅格的四个角点的像素坐标,得到初始标记单位栅格四条边的边长,将四条边的边长按照同一时针方向命名为d1,d2,d3,d4,相邻两条边对应的夹角分别为θ1,θ2,θ3,θ4;单位栅格四条边长的均值和迭代窗口半径win满足拟合关系式:

时检测出的亚像素级角点最为准确,其中k和ρ为一次项系数,c和b为常数;由已知的k,ρ,c,b,和θi,取窗口半径win的初始值为w0;

4-4)验证四个亚像素级角点坐标;将单位栅格四条边的边长按照同一时针方向命名为d′1,d′2,d′3,d′4,四条边的正切值为φ1,φ2,φ3,φ4,相邻两条边对应的夹角分别为θ′1,θ′2,θ′3,θ′4;设定参数μ1,μ2,λ1,λ2,η1,η2,δ1,δ2,取μ1=λ1=η1=δ1=0.9,μ2=λ2=η2=δ2=1.1;边长需要满足:如果不满足以上关系,则动态调整求取亚像素级角点的迭代窗口win的大小直到满足条件为止。

步骤5)具体包括以下步骤:

5-1)利用初始标记单位栅格的四个初始角点坐标p1,p2,p3,p4;根据相机成像原理,世界坐标系中的一点w(xw,yw,zw)在像素坐标系中的投影点p的像素坐标为(u,v),即为:

其中,zc为相机坐标系中点w的z轴坐标,u0为x方向图像中心坐标,v0为y方向图像中心坐标,f为焦距,r为旋转矩阵,t为平移向量,fx为u轴的尺度因子,fy为v轴的尺度因子,dx为x方向像元尺寸,dy为y方向像元尺寸;

5-2)记棋盘格标定板平面上的点的z=0,所以:

其中,r1、r2、r3分别为旋转矩阵r的三个列向量,t为x和y方向的平移向量;

由zcp‘=hw’,令则得到单应性矩阵h:

h=a[r1r2t]

步骤6)具体包括以下步骤:

6-1)在向外扩展的过程中,根据单应性矩阵h得出该相邻单位栅格另外两个未知的角点坐标,根据这两个角点坐标得出相邻单位栅格的四条边的边长,将四条边的边长按照同一时针方向命名为d1,d2,d3,d4,相邻两条边对应的夹角分别为θ1,θ2,θ3,θ4;根据单位栅格四条边长的均值和迭代窗口半径win满足拟合关系式:

检测出的亚像素级角点最为准确,其中k和ρ为一次项系数,c和b为常数。由已知的k,ρ,c,b,和θi,取窗口半径win的初始值为w0;

6-2)验证相邻单位栅格的四个点的亚像素级角点坐标准确性;将相邻单位栅格四条边的边长按照同一时针方向命名为d′1,d′2,d′3,d′4,四条边的正切值为φ1,φ2,φ3,φ4,相邻两条边对应的夹角分别为θ′1,θ′2,θ′3,θ′4;设定参数μ1,μ2,λ1,λ2,η1,η2,δ1,δ2,取μ1=λ1=η1=δ1=0.9,μ2=λ2=η2=δ2=1.1;边长需要满足:如果不满足以上关系,则动态调整求取亚像素级角点的迭代窗口win的大小直到满足条件为止。

本发明的有益效果是:提出了一种棋盘格角点自适应检测的方法,具有以下特点:

1、程序简单,易于实现;

2、对于低分辨率或者畸变较大的棋盘格图像,能动态调整亚像素级角点的迭代窗口大小,降低亚像素级角点检测的错误率;

3、角点检测速度快,不会受到棋盘格不完整的影响,采集的图片只需要拍到人为设定的标识即可;

4、能将棋盘格图像完全覆盖满整个相机的视场角并提取边缘区域的特征点,标定出来的相机内外参更加准确。

附图说明

图1为方案的整体流程图;

图2为实施例的棋盘格标记图;

图3为实施例的亚像素级角点自适应检测示意图;

图4为亚像素级角点自适应检测结果图;

图5为角点检测细节图。

具体实施方式

本发明提出了一种棋盘格亚像素级角点自适应检测的方法,通过设置标记,拍摄图像,检测标记,利用标记,向外扩展,自适应调整六个步骤实现了棋盘格亚像素级角点自适应检测。以在棋盘格上设置五个圆作为标记为例,结合附图及实施例详细说明如下:

1)首先需要一张打印好的棋盘格,该标定板可以是自带五个圆的棋盘格,也可以在普通棋盘格标定板上粘贴五个圆作为标识物。如图2所示,这五个圆的位置分布在黑白棋盘格中心区域中3*3棋盘格的五个白色单位栅格内,五个圆的直径小于白色单位栅格的边长,记中间圆编号为c0,其余四个圆的编号为c1,c2,c3,c4。

2)使用相机拍摄棋盘格,直到黑白棋盘格能完全覆盖满整个相机的视场角,对采集到的图片分别进行灰度化和二值化处理。

3)取其中一张图片i为例,通过霍夫圆检测算法检测出图片中的五个圆并记录它们的像素坐标。周围四个圆c1,c2,c3,c4与中间圆编号c0的连线求出四个连线中点,编号为p1,p2,p3,p4,将这四个点作为初始的四个角点。假定p1p2,p2p3,p3p4,p4p1的边长分别为d1,d2,d3,d4,两条边对应的夹角分别为θ1,θ2,θ3,θ4。根据之前观察得出的经验公式,单位栅格四条边长的均值和迭代窗口半径win满足拟合关系式:

时检测出的亚像素级角点最为准确,其中k和ρ为一次项系数,c和b为常数。由已知的k,ρ,c,b,和θi,该实施例中取窗口半径win的初始值w0=7。

4)在迭代求出四个点的亚像素级角点坐标之后,需要对求出的亚像素级角点坐标准确与否进行验证。将单位栅格四条边的边长按照同一时针方向命名为d′1,d′2,d′3,d′4,四条边的正切值为φ1,φ2,φ3,φ4,相邻两条边对应的夹角分别为θ′1,θ′2,θ′3,θ′4。设定参数μ1,μ2,λ1,λ2,η1,η2,δ1,δ2,取μ1=λ1=η1=δ1=0.9,μ2=λ2=η2=δ2=1.1。边长需要满足:如果不满足以上关系,则动态调整求取亚像素级角点的迭代窗口win的大小直到满足条件为止。根据亚像素级角点求解原理,迭代求解出四个亚像素级角点p1,p2,p3,p4。

4)根据这四个初始亚像素级角点,在世界坐标系中对棋盘格上的点一一赋值。利用世界坐标系和像素坐标系中四个点的关系,可以获得单应性矩阵h。

5)利用初始四个点的单应性矩阵h和相邻单位栅格的一对待求点p5,p6在世界坐标系中的坐标,可以得出接下来两个点的像素坐标p5,p6,再根据亚像素级角点求解原理,迭代求解出新的亚像素级角点p5,p6。

6)从4个点确定的这个单位栅格向x正半轴,x负半轴,y正半轴,y负半轴四个方向向外扩展发散求出棋盘格上所有的亚像素级角点。

7)在向外扩展的过程中,根据单应性矩阵h可以得出该相邻单位栅格另外两个未知的粗略亚像素级角点,根据这两个粗略点的坐标可以得出相邻单位栅格的四条边的大致边长,将四条边的边长按照同一时针方向命名为d1,d2,d3,d4,相邻两条边对应的夹角分别为θ1,θ2,θ3,θ4。根据之前观察得出的经验公式,单位栅格四条边长的均值和迭代窗口半径win满足拟合关系式:

时检测出的亚像素级角点最为准确,其中k和ρ为一次项系数,c和b为常数。由已知的k,ρ,c,b,和θi,取窗口半径win的初始值为w0=5。

8)在迭代求出四个点的亚像素级角点坐标之后,需要对求出的亚像素级角点坐标准确与否进行验证。将单位栅格四条边的边长按照同一时针方向命名为d′1,d′2,d′3,d′4,四条边的正切值为φ1,φ2,φ3,φ4,相邻两条边对应的夹角分别为θ′1,θ′2,θ′3,θ′4。设定参数μ1,μ2,λ1,λ2,η1,η2,δ1,δ2,取μ1=λ1=η1=δ1=0.9,μ2=λ2=η2=δ2=1.1。边长需要满足:如果不满足以上关系,则动态调整求取亚像素级角点的迭代窗口win的大小直到满足条件为止。


技术特征:

1.一种棋盘格亚像素级角点自适应检测的方法,其特征在于,包括下列步骤:

1)设置标记:在棋盘格上设置标识用于标记初始单位栅格位置;

2)拍摄图像:使用相机采集棋盘格标定板图像,并进行初步图像处理;

3)检测标记:通过标记检测算法检测出步骤1)设置标记的像素坐标;

4)利用标记:根据步骤3)检测得到的像素坐标,求出标记所确定初始单位栅格的四个角点像素坐标,通过迭代求出亚像素级角点坐标并进行验证;

5)向外扩展:根据步骤4)四个角点的亚像素级角点坐标和它们在世界坐标系中的世界坐标,求出单应性矩阵h;将单应性矩阵h与被标记单位栅格相邻单位栅格的四个角点在世界坐标系中的世界坐标相乘,求出相邻单位栅格另外两个未知角点的亚像素级角点坐标;

6)自适应调整:在步骤5)向外扩展的过程中对求出的相邻单位栅格的边长进行统计,动态调整求取亚像素级角点的迭代窗口大小,提高亚像素级角点检测的准确率。

2.根据权利要求1所述的一种棋盘格亚像素级角点自适应检测的方法,其特征在于,步骤2)具体包括以下步骤:

在拍摄完图像后,对图像进行灰度化和二值化操作;采用分块二值化的方法,将图像i分为m*n块,每一块命名为ii;对每一个ii使用最大类间方差法,得到二值化图像binary_i。

3.根据权利要求2所述的一种棋盘格亚像素级角点自适应检测的方法,其特征在于,步骤4)具体包括以下步骤:

4-1)利用几何关系求解标记所确定单位栅格在像素坐标系中四个初始角点坐标;

4-2)令待求的亚像素级角点为q,则其周围的点pi与q的连线向量为(pi-q);对于其搜索窗口内任意一个点pi,令pi处的灰度梯度为gi,得到公式:

gi*(pi-q)=0

使用最小二乘法求解:

即:

初始的角点为整数坐标,设为q0,以q0为中心,选取一个窗口;获得亚像素级角点的迭代窗口半径win;窗口的每一点为pi;pi个数为n,引入高斯权重,pi点处的权重为wi,亚像素级角点的坐标q为:

使用sobel卷积求点pi处的灰度梯度值gi;对于点pi有:

gi=[dxdy]

4-3)通过标记所确定单位栅格的四个角点的像素坐标,得到初始标记单位栅格四条边的边长,将四条边的边长按照同一时针方向命名为d1,d2,d3,d4,相邻两条边对应的夹角分别为θ1,θ2,θ3,θ4;单位栅格四条边长的均值和迭代窗口半径win满足拟合关系式:

时检测出的亚像素级角点最为准确,其中k和ρ为一次项系数,c和b为常数;由已知的k,ρ,c,b,和θi,取窗口半径win的初始值为w0;

4-4)验证四个亚像素级角点坐标;将单位栅格四条边的边长按照同一时针方向命名为d′1,d′2,d′3,d′4,四条边的正切值为φ1,φ2,φ3,φ4,相邻两条边对应的夹角分别为θ′1,θ′2,θ′3,θ′4;设定参数μ1,μ2,λ1,λ2,η1,η2,δ1,δ2,取μ1=λ1=η1=δ1=0.9,μ2=λ2=η2=δ2=1.1;边长需要满足:如果不满足以上关系,则动态调整求取亚像素级角点的迭代窗口win的大小直到满足条件为止。

4.根据权利要求1所述的一种棋盘格亚像素级角点自适应检测的方法,其特征在于,步骤5)具体包括以下步骤:

5-1)利用初始标记单位栅格的四个初始角点坐标p1,p2,p3,p4;根据相机成像原理,世界坐标系中的一点w(xw,yw,zw)在像素坐标系中的投影点p的像素坐标为(u,v),即为:

其中,zc为相机坐标系中点w的z轴坐标,u0为x方向图像中心坐标,v0为y方向图像中心坐标,f为焦距,r为旋转矩阵,t为平移向量,fx为u轴的尺度因子,fy为v轴的尺度因子,dx为x方向像元尺寸,dy为y方向像元尺寸;

5-2)记棋盘格标定板平面上的点的z=0,所以:

其中,r1、r2、r3分别为旋转矩阵r的三个列向量,t为x和y方向的平移向量;

由zcp‘=hw’,令则得到单应性矩阵h:

h=a[r1r2t]。

5.根据权利要求4所述的一种棋盘格亚像素级角点自适应检测的方法,其特征在于,步骤6)具体包括以下步骤:

6-1)在向外扩展的过程中,根据单应性矩阵h得出该相邻单位栅格另外两个未知的角点坐标,根据这两个角点坐标得出相邻单位栅格的四条边的边长,将四条边的边长按照同一时针方向命名为d1,d2,d3,d4,相邻两条边对应的夹角分别为θ1,θ2,θ3,θ4;根据单位栅格四条边长的均值和迭代窗口半径win满足拟合关系式:

检测出的亚像素级角点最为准确,其中k和ρ为一次项系数,c和b为常数。由已知的k,ρ,c,b,和θi,取窗口半径win的初始值为w0;

6-2)验证相邻单位栅格的四个点的亚像素级角点坐标准确性;将相邻单位栅格四条边的边长按照同一时针方向命名为d′1,d′2,d′3,d′4,四条边的正切值为φ1,φ2,φ3,φ4,相邻两条边对应的夹角分别为θ′1,θ′2,θ′3,θ′4;设定参数μ1,μ2,λ1,λ2,η1,η2,δ1,δ2,取μ1=λ1=η1=δ1=0.9,μ2=λ2=η2=δ2=1.1;边长需要满足:如果不满足以上关系,则动态调整求取亚像素级角点的迭代窗口win的大小直到满足条件为止。

技术总结
本发明公开了一种棋盘格亚像素级角点自适应检测的方法。即通过在棋盘格上标记初始单位栅格位置,利用初始单位栅格四个角点在像素坐标系中的像素坐标以及世界坐标系中的世界坐标求出的单应性矩阵H向外扩展,在向外扩展的过程中自适应调整迭代窗口大小,最终发散到整个棋盘格区域完成棋盘格亚像素级角点自适应检测。该方法程序简单,易于实现;对于低分辨率或者畸变较大的棋盘格图像,能动态调整亚像素级角点的迭代窗口大小,降低亚像素级角点检测的错误率;角点检测速度快,不受棋盘格不完整影响,采集的图片拍到设定的标识即可;能将棋盘格图像完全覆盖满整个相机的视场角并提取边缘区域的特征点,标定出来的相机内外参更加准确。

技术研发人员:仲维;吕德运;孔维强;刘日升;樊鑫;罗钟铉;李胜全
受保护的技术使用者:大连理工大学;鹏城实验室
技术研发日:2020.01.10
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-9569.html

最新回复(0)