本发明涉及传感技术领域,尤其涉及一种基于编码棋盘格的线结构光视觉传感器标定方法。
背景技术:
基于结构光的三维轮廓测量在工业领域和社会生活中都有非常重要的作用,广泛应用于工业自动化、智能制造、逆向工程、文物信息保存、虚拟显示等领域。作为一种精密测量设备,标定方法直接影响着结构光视觉传感器的精度和生产效率。本发明采用简单的编码棋盘格代替昂贵复杂的立体靶标,该靶标制作简单、使用灵活,可有效扩展结构光传感器的标定方法,提高标定效率;与常规的棋盘格相比,编码棋盘格中的每个棋盘格具有唯一编码,相机不需要看到完整的棋盘格就可以确定图像上每个棋盘格对应的精确坐标;另外,利用神经网络可以实现高效的棋盘格编码识别,为此采用编码棋盘格可提高结构光传感器的标定精度及效率。
技术实现要素:
本发明目的是为了克服现有技术的不足而提供一种可简化标定操作、可有效提高相机标定效率以及标定精度的基于编码棋盘格的线结构光视觉传感器标定方法。
为达到上述目的,本发明采用了如下技术方案。
一种基于编码棋盘格的线结构光视觉传感器标定方法,具体包括如下步骤:
步骤s1:首先对相机进行畸变校正操作,校正操作完成后在移动导轨上布置可移动的棋盘标靶;
步骤s2:打开激光器并调整所述步骤s1各个组件位置,直至标定过程的激光线均能在所述棋盘标靶的棋盘格范围内,然后分别采集照射后图像;
步骤s3:利用棋盘格检测方法检测所述棋盘标靶的棋盘格角点,同时进行图像处理识别各棋盘格编码信息;
步骤s4:计算采集的图像和棋盘格的单应矩阵,进行图像处理并提取激光线;
步骤s5:通过单应矩阵计算激光线在棋盘格上的坐标,并记录该激光线上各像素对应的空间坐标;
步骤s6:重复所述步骤s3到步骤s5,直到完成激光线各像素点的标定,建立相机像素平面到光平面间的映射关系,至此全部完成标定。
作为本发明的进一步改进,所述步骤s6中如未能全部完成结构光标定,则调整移动导轨上的棋盘标靶位置,然后重复所述步骤s2到步骤s5的操作,直至全部完成标定后结束。
作为本发明的进一步改进,所述步骤s3的棋盘标靶上的每个棋盘格的编码均记录有唯一的位置信息。
作为本发明的进一步改进,所述步骤s3的棋盘格检测方法具体采用harris角点检测算法。
作为本发明的进一步改进,所述步骤s1的畸变校正是通过采集不同角度下两个以上的棋盘格图像,并建立相机成像模型和畸变模型进行求解相机畸变参数。
作为本发明的进一步改进,所述步骤s4的单应矩阵具体采用为三乘三的矩阵,并利用棋盘格上至少四个不在同一条线上的角点进行求解该变换矩阵数据,利用该矩阵最后进行求解图像上的激光线对应的棋盘格坐标。
由于上述技术方案的运用,本发明的技术方案带来的有益技术效果:本技术方案采用编码棋盘格作为平面靶标对线结构光传感器进行标定,通过一个直线导轨移动平面靶标,在不同位置分别标定结构光,简化了结构光传感器标定程序,提高了相机标定的效率和精度;本技术方案不需要复杂的高精度立体靶标,仅利用平面棋盘格实现标定,平面棋盘格制作成本低且精度高;本技术方案的激光线在标定板上成像质量好且可以实现高精度的激光线提取;本技术方案利用深度学习算法实现编码棋盘格的检测,具有检测精度高、可扩展性强且可以灵活自定义编码的有益技术效果;本技术方案采用重心法提取激光线,具有计算算法稳定、抗干扰能力强且操作简单高效的有益技术效果。
附图说明
附图1为本发明的整体流程结构示意图。
附图2为本发明的标定原理示意图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细说明。
如图1至图2所示,一种基于编码棋盘格的线结构光视觉传感器标定方法,具体包括以下步骤:步骤s1:首先对相机进行畸变校正操作,校正操作完成后在移动导轨上布置可移动的棋盘标靶;步骤s2:打开激光器并调整所述步骤s1各个组件位置,直至标定过程的激光线均能在所述棋盘标靶的棋盘格范围内,然后分别采集照射后图像;步骤s3:利用棋盘格检测方法检测所述棋盘标靶的棋盘格角点,同时进行图像处理识别各棋盘格编码信息;步骤s4:计算采集的图像和棋盘格的单应矩阵,进行图像处理并提取激光线;步骤s5:通过单应矩阵计算激光线在棋盘格上的坐标,并记录该激光线上各像素对应的空间坐标;步骤s6:重复所述步骤s3到步骤s5,直到完成激光线各像素点的标定,建立相机像素平面到光平面间的映射关系,至此全部完成标定。
所述步骤s6中如未能全部完成结构光标定,则调整移动导轨上的棋盘标靶位置,然后重复所述步骤s2到步骤s5的操作,直至全部完成标定后结束;所述步骤s3的棋盘标靶上的每个棋盘格的编码均记录有唯一的位置信息;所述步骤s3的棋盘格检测方法具体采用harris角点检测算法;所述步骤s1的畸变校正是通过采集不同角度下两个以上的棋盘格图像,并建立相机成像模型和畸变模型进行求解相机畸变参数;所述步骤s4的单应矩阵具体采用为三乘三的矩阵,并利用棋盘格上至少四个不在同一条线上的角点进行求解该变换矩阵数据,利用该矩阵最后进行求解图像上的激光线对应的棋盘格坐标。
一、相机和投影仪的畸变校正
相机的畸变指的是由于透镜的光学特性引入的非线性成像特性,而投影仪一般将其看成逆相机并采用相机标定模型进行畸变校正,为此这里仅介绍相机畸变模型。相机的畸变可以分为径向畸变、切向畸变。径向畸变的数学模型可以表示为:
其中
切向畸变的数学模型可以表示为:
切向畸变模型包含2个参数
畸变校正还需要利用相机的成像模型:
其中,
二、基于编码棋盘格的结构光定位
无畸变情况下标定板平面坐标和相机相平面坐标可以用单应变换进行表示:
其中h为
结构光对应的高度z则由导轨移动距离决定。由此,结构光的世界坐标为
三、棋盘格角点检测
角点检测精度直接影响到标定板的定位精度,为了实现亚像素的角点检测,采用harris角点检测算法,harris角点检测算法是harris和stephens于1988年提出基于信号的点特征提取方法,其原理为:如果某一点向任一方向小小偏移都会引起灰度的很大变化,这就说明该点是角点,考虑的是用一个高斯窗或矩形窗在图像上移动,由模板窗口取得原图像衍生出2×2的局部结构矩阵;再通过非极大抑制去除不正确的角点位置,进一步可以利用棋盘格特征对角点进行筛选。
四、棋盘格编码识别
本发明采用基于深度学习的棋盘格编码识别方法,训练基于现有技术中的googlenet的神经网络对棋盘格编码进行识别。
五、激光线提取
激光线提取算法目前主要可以分为拟合法、重心法,拟合法假设激光线亮度呈高斯分布,采用高斯函数对垂直于激光线的像素进行拟合;重心法利用垂直于激光线方向的一定宽度的像素值进行重心提取,具有计算简单、抗干扰能力强、受噪声影响小等优点。其中重心法的公式为:
其中
六、利用单应矩阵计算激光线坐标
无畸变情况下标定板平面坐标和相机相平面坐标可以用单应变换进行表示:
其中
利用前面提取的激光线坐标,通过单应矩阵的逆变换可以得到激光线在标定板上的坐标,而激光线的z坐标由导轨决定。
如附图2工作原理示意图所示,激光器发出的激光线打在编码棋盘格上,相机采集编码棋盘格及激光线的图像,棋盘格上每个编码唯一,以棋盘格的角点为参考点,确定激光线各点对应的空间坐标。
结构光传感器由激光器和摄像头两部分组成,激光线所在的光平面和相机的像平面是一一映射关系,即光平面上的每一个点对应相平面上唯一的像素点,像平面上每个像素对应光平面上唯一的点。在理想的针孔相机模型中,通过一个投影变换关系即可描述激光线的光平面和相机像平面的映射关系。在实际应用中,考虑到相机的畸变特性,直接采用投影变换模型难以保证三维测量精度。为此,结构光传感器标定前,需要对相机进行畸变校正,接着在无畸变图像下利用棋盘格角点建立像平面和棋盘格平面间的投影变换,并利用该变换计算激光线的坐标。
以上仅是本发明的具体应用范例,对本发明的保护范围不构成任何限制。凡采用等同变换或者等效替换而形成的技术方案,均落在本发明权利保护范围之内。