一种基于棋盘格的相机分辨率标定方法与流程

文档序号:16682420发布日期:2019-01-19 00:38阅读:1497来源:国知局
一种基于棋盘格的相机分辨率标定方法与流程

本发明属于图像识别领域,具体涉及一种基于棋盘格的相机分辨率标定方法。



背景技术:

相机分辨率的标定是机器视觉系统中的一个重要课题,标定精度在很多情况下会影响到整个视觉系统的性能。相机的分辨率代表了机器视觉系统的细节表现能力,值越小,越容易看到物体细小的部分。大部分的标定方法中,都采用提取特征点的方式,进行算法的设计。其中,棋盘格因其对比高,易识别的特点,被广泛用作标定参照物。棋盘格的特征点,也被称为角点,指的是黑白格之间的临界点。在实际的机器视觉检测系统中,噪声干扰大,图像质量差,特征点的定位较为复杂。因此,提出一种鲁棒性好,效率高的相机分辨率标定方法具有重要意义。



技术实现要素:

本发明的目的在于提供一种抗噪能力强,执行效率高的基于棋盘格的相机分辨率标定方法。

一种基于棋盘格的的相机分辨率标定方法,包括如下步骤:

步骤1,获取棋盘格图像,进行二值化,得到二值化图像;

步骤2,将二值化图像进行形态学处理,得到棋盘格的边缘图像;

步骤3,将边缘图像,分为水平方向和垂直方向两个点集;

步骤4,拟合水平方向直线和垂直方向直线;

步骤5,求取水平方向和垂直方向直线的交点;

步骤6,计算相邻两点的像素距离,标定相机分辨率。

作为本发明的一种优选方案,步骤2所述将二值化图像进行形态学处理,得到棋盘格的边缘图像,包括如下步骤:

1)将二值化图像向外膨胀一个像素,得到膨胀后图像;

2)利用膨胀后图像减去二值化图像,得到棋盘格的边缘图像。

作为本发明的一种优选方案,步骤3所述边缘图像,分为水平方向和垂直方向两个点集,包含如下步骤:

1)遍历边缘图像,如果被测像素点以及水平相邻的像素点都为白点,则记入水平点集;

2)遍历边缘图像,如果被测像素点以及垂直相邻的像素点都为白点,则记入垂直点集。

作为本发明的一种优选方案,步骤4所述拟合水平方向直线和垂直方向直线,包含以下步骤:

1)遍历水平(垂直)点集,记第一个点为起始点,如果下一点的纵(横)坐标与起始点的纵(横)坐标,差值小于设定的差异阈值δ1,则将其加入第i条直线的拟合点集,否则舍弃该点,读取下一个点;

2)如果某点的纵(横)坐标与起始点的纵(横)坐标,差值大于设定的行(列)阈值δ2,则记该点为新的初始点,即第i+1条直线的起点,执行步骤1;

3)计算第i条直线中拟合点集的数量,如果该值小于数量阈值δ3,则舍弃,否则,进行直线的拟合计算。

作为本发明的一种优选方案,步骤4所述拟合水平方向直线和垂直方向直线,采用的方法为最小二乘法,计算公式为:

其中,(xi,yi)表示点集中点的坐标。

作为本发明的一种优选方案,步骤5所述求取水平方向和垂直方向直线的交点中,两直线的交点公式为:

y=(k1b2+b1)/(1-k1k2),

x=k2y+b2;

其中,水平方向的直线方程为y=k1x+b1,垂直方向的直线方程为x=k2y+b2,k1,k2为直线的斜率,b1,b2分别为直线在y轴和x轴上的截距。

作为本发明的一种优选方案,步骤6所述计算相邻两个交点的像素距离,标定相机分辨率中,两点之间的距离计算公式为:

其中,d为两点距离,(x1,y1),(x2,y2)为已知的两点坐标。

作为本发明的一种优选方案,步骤6所述计算相邻两个交点的像素距离,标定相机分辨率中,相机分辨率的计算公式为:

μx=w/dx,

μy=h/dy;

其中,μx,μy为相机x,y方向上的分辨率,w,h为棋盘格中单元格的物理长度和物理宽度,dx,dy为通过计算所得到的棋盘格中单元格的像素长度和像素宽度。

本发明提供的一种基于棋盘格的的相机分辨率标定方法,仅使用直线拟合的方式定位棋盘格角点,无缺进行微分计算,实现简单方便,选用不同单位下的两点距离,即可计算出相机的分辨率,有效克服了传统检测方法中对图像质量要求高,鲁棒性差的缺点。

附图说明

图1为本发明的流程示意图;

图2为本发明的棋盘格原图;

图3为本发明的棋盘格二值化图;

图4为本发明的棋盘格边缘图;

图5为本发明的水平直线拟合流程图;

图6为本发明的棋盘格直线拟合图;

图7为本发明的棋盘格特征点定位图。

具体实施方式

以下结合具体实施方式进一步详细说明本发明的技术方案。应当理解,此处描述的具体实施方式仅仅用以解释本发明,并不限定于本发明。

一种基于棋盘格的相机分辨率标定方法,包括:

s1:获取棋盘格图像,进行二值化,得到二值化图像。

1)获取棋盘格图像

获取棋盘格图像,可以采用常见的多媒体设备,如摄像机,工业相机,扫描仪等,也可以从原图像中截取出棋盘格图像区域。图2为采用黑白工业相机获取的棋盘格图像。

2)二值化

二值化是图像处理领域一种采用的技术手段,基本思路是将灰度值大于或等于某个阈值的点设为目标点,并将该点的灰度值用255表示,灰度值小于该阈值的点,则被视为背景或其他区域,灰度值用0表示。图3为本发明的棋盘格二值化图像。

s2:将二值化图像进行形态学处理,得到棋盘格的边缘图像。

1)将二值化图像向外膨胀一个像素,得到膨胀后图像;

膨胀是图像处理领域一个常用的预处理步骤,主要目的是消除孔洞,填补区域。对于二值化图像而言,膨胀的效果是扩大白色区域。

2)利用膨胀后图像减去二值化图像,得到棋盘格的边缘图像。

图像的边缘指的是图像局部变化最为显著的部分,存在于目标与目标,目标与背景之间,是图像识别,图像分割的一个重要部分。常用的检测方法有canny算子,laplace算子等,效果好,但是需要进行微分计算。本发明采用的形态学处理获取棋盘格图像边缘,更为简单方便。计算公式为:

其中,f(x,y)为输入的图像,g(i,j)为结构元素,df,dg分别为函数f,g的定义域。

s3:将边缘图像,分为水平方向和垂直方向两个点集。

通过分析棋盘格图像的特征,可以得出,棋盘格的特征点可以用水平直线和垂直直线的交点,进行表示。水平直线的特点是每个白点的水平方向上的相邻点都为白点,垂直直线的特点是每个白点的垂直方向上的相邻点都为白点,因此,在本发明中,将边缘图像,分为水平方向和垂直方向两个点集,包括如下步骤:

1)遍历边缘图像,如果被测像素点以及水平相邻的像素点都为白点,则记入水平点集。

2)遍历边缘图像,如果被测像素点以及垂直相邻的像素点都为白点,则记入垂直点集。

s4,拟合水平方向直线和垂直方向直线。

1)遍历水平(垂直)点集,记第一个点为起始点,如果下一点的纵(横)坐标与起始点的纵(横)坐标,差值小于设定的差异阈值δ1,则将其加入第i条直线的拟合点集,否则舍弃该点,读取下一个点。

2)如果某点的纵(横)坐标与起始点的纵(横)坐标,差值大于设定的行(列)阈值δ2,则记该点为新的初始点,即第i+1条直线的起点,执行步骤1。

3)计算第i条直线中拟合点集的数量,如果该值小于数量阈值δ3,则舍弃,否则,进行直线的拟合计算。

通过上述步骤,得到了每条直线的拟合点集,还需要通过算法将每条直线方程拟合出来。在本发明中,采用的是最小二乘法,其基本原理是根据给定的点集,基于误差平方和最小的原则,找出最佳函数匹配,计算公式为:

其中,(xi,yi)表示点集中点的坐标。

s5,求取水平方向和垂直方向直线的交点。

两直线的交点公式为:

y=(k1b2+b1)/(1-k1k2),(3)

x=k2y+b2。(4)

其中,水平方向的直线方程为y=k1x+b1,垂直方向的直线方程为x=k2y+b2,k1,k2为直线的斜率,b1,b2分别为直线在y轴和x轴上的截距。

当相机,镜头精度不高的情况下,图像边缘容易存在畸变情况,因此,在发明中,选用图像中心附近5*5个点进行计算。

s6,计算相邻两点的像素距离,标定相机分辨率。

1)计算相邻两点的像素距离

两点之间的距离计算公式为:

其中,d为两点距离,(x1,y1),(x2,y2)为已知的两点坐标。

将s5中得到的5*5个特征点带入到(5)式中,分别计算相邻两点之间的距离,并求取平均值,当某个值大于平均值的1.3倍时,应将该值舍弃,重新计算。

2)标定相机分辨率

相机的分辨率,代表了每单个像素所代表的物理长度。其中,相机分辨率的计算公式为:

μx=w/dx,(6)

μy=h/dy。(7)

其中,μx,μy为相机x,y方向上的分辨率,w,h为棋盘格中单元格的物理长度和物理宽度,dx,dy为通过计算所得到的棋盘格中单元格的像素长度和像素宽度。

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