APP下载

基于HALCON的双目立体视觉工件尺寸测量

2018-02-05,,,,

计算机测量与控制 2018年1期
关键词:双目算子标定

,, ,,

(1.聊城大学 物理科学与信息工程学院,山东 聊城 252059;2.山东省光通信科学与技术重点实验室,山东 聊城 252059)

0 引言

随着先进制造业自动化生产技术的发展,对在线测量技术提出了更高的要求。而针对大量重复性的工作,人工视觉很难长时间保持精神集中的状态,常出现测量效率低、精度不高、容易损伤工件表面等问题[1]。对于普通的机械测量工具而言,虽不易出现人工测量问题,但其测量过程复杂且成本较高、普适性差,未达到测量的完全智能化[2]。而非接触式双目立体视觉测量系统不仅具有效率高、精度高、自动化程度高、造价低等优点[3],更为重要的是,由于双目摄像机的存在,可以获取被测物体的特征几何参数与空间姿态参数,实现了工件三维尺寸测量的智能化,因此受到了广大生产企业的青睐,已成为国内外解决先进制造业中测量问题的研究热点。

HALCON是德国MVtec公司开发的具有强大功能的图像处理软件,此软件提供了一套完善的标准机器视觉算法开发包。由一千多个独立的函数以及底层的数据管理核心构成,节约了成本,缩短了软件的开发周期。具有快速、全面、精确、鲁棒性等特点,应用领域广泛,涵盖遥感探测,医学,监控,到工业上的自动化检测。

本文采用基于halcon的双目立体测量技术,实现工件图像对的自动采集、双目系统标定、立体校正、工件边缘轮廓特征点提取、立体匹配、世界坐标转换、几何计算相结合的非接触式双目视觉测量的方法。通过获取工件的两幅图像进行处理有效地获取工件特征点的三维坐标值,实现工件尺寸的高精度测量。

1 双目视觉测量原理

双目立体视觉测量原理是利用两个摄像机其成像平面与被测物体之间构成三角形,从而来获得两幅不同视觉角度上的感知图。然后基于三角几何相关原理对两幅图像对应点的视差进行计算获得物体在三维空间上的信息[4]。

本实验采用的双目测量系统中,两个摄像机的摆放都向内侧倾斜一定角度,在下文中对立体图像对进行极线校正,此过程就相当于对系统硬件环境进行了改造,将相交光轴调整为平行光轴的理想状态,即可以看作是一个虚拟的平行双目立体视觉测量系统,且左摄像机坐标系原点与世界坐标系原点重合,其成像原理如图1所示。

图1 双目立体成像原理图

设空间中一点P(xw,yw,zw)在左摄像机下的坐标为P(x1,y1,z1),与左像机成像平面交点坐标为PL(uL,vL),在右像机下的坐标为P(x2,y2,z2),与右像机成像平面交点为PR(uR,vR)。经立体校正后,两图像位于同一平面,即vL=vR。左右像机的投影中心连线的距离为基线b=x1-x2。根据相似三角形的关系,我们可以得出:

(1)

由于左右图像在同一平面上,所以对应点视差值被定义为左图像内点列坐标与右图像内对应点列坐标之差,其数学表达式为:

(2)

结合(1)、(2)便可求得点P的三维坐标为:

(3)

因此,左摄像机成像平面上的任意一点只要能够在右摄相机成像平面上找到其对应点,就可以通过上述运算,获取此空间点的三维坐标,因而测量效率较高、简单、快捷[5]。

双目视觉测量的实现可以分为目标图像获取、双目系统标定、立体校正、特征点提取、立体匹配、计算匹配点视差、求取三维坐标、尺寸测量等几个步骤,具体算法流程如图2所示。

2 双目标定及立体校正

2.1 摄像机标定

摄像机标定是指建立摄像机的图像像素坐标与空间点三维坐标之间的关系,根据左右两个摄像机模型,由标定板己知特征点的图像坐标和世界坐标求解摄像机的内外参数,内部参数包括摄像机的畸变系数、焦距、中心点坐标等参数。外部参数包括摄像机坐标系相对于世界坐标系的旋转矩阵、平移向量等[6]。

图2 软件算法流程

本文选取的标定板是30×30 mm,图像阵列为7×7的圆心陈列型平面标定模板,标定板的表面不能有污点如图3(a)所示。首先通过gen_caltab()生成标定描述文件,并设置左右摄相机的初始内参数。同时打开摄相机进行采集,在双目视觉系统中,每个摄相机都要拍摄多张标定板在不同位置的图片。本实验拍摄了15张标定板图片,且保证每张图片中都能包含标定板[7]。获取标定板图像后,通过find_caltab()算子寻找图像中标定板所在区域,并调用find_marks_and_pose()算子对标定板进行处理,如图3(b)、(c)所示,该算子通过亚像素阈值、亚像素边缘提取、圆心的确定等一系列操作计算标定板上每个点的图像坐标以及标定板与摄像机之间大致的位置关系[8],最后调用binocular_calibration()函数实现双目标定,获得的摄像机的内外参数以及两个摄像机相对位置关系。

2.2 立体校正

将标定过程中获得的两个摄像机的内参以及相对位置关系作参数传递给gen_binocular_rectification_map()算子,得到两个校正映射图,还能得到校正后虚拟双目视觉系统中两个摄像机的内外参数。通过map_image() 函数结合映射图将采集到的图像对校正为标准极线几何结构。经校正后图像对匹配点在同一水平线上并且极线相互平行。这样就大大减少了恢复目标物体三维数据的计算量,简化了整个系统的复杂度。立体校正前后双目摄像机标定的内外参数如表2所示。

表1 左、右相机校正前后的内部参数

表2 校正前后右相机相对于左相机位姿参数

由系统标定结果可知,立体校正后两图像主点的列坐标相等,即说明两图像的外极线都是水平的。校正后右图像相对于左图像的相对位姿可表示为一个平移向量T=[11.693 7,0,0],说明校正后的右图像相对于左图像只是沿X轴方向移动了11.693 7 cm,而不存在其它方向的平移和旋转[9]。标定结果与相机的实际摆放位置相吻合,说明标定结果准确。

3 图像的采集与处理

3.1 图像获取

本系统采用实时采集,将相机连接到计算机,并设置合适的相机参数,然后使用halcon软件图像采集助手将相机连接到halcon软件,采集图像如图4(a)所示。

3.2 图像预处理

从获取系统中得到的左右图像对,由于各方面因素的影响,会不可避免的引入噪声干扰造成图像质量的下降,使边缘或轮廓与背景很难区分开,因此在对其进行分析和操作之前,必须对原始图像进行必要的预处理,以成功区分出感兴趣区域,获得最能真实反映原景物的图像,改善图像的视觉效果,使得图像中的特征更加突出,从而为后续的特征提取和匹配工作做准备[10]。

首先将采集到的图像对校正为标准极线几何结构,然后通过加权平均法转化为灰度图像,并通过median_image()算子进行中值滤波,达到去除噪声的同时保留边缘锐度和图像细节的目的,并调用emphasize()算子经过多次调试参数对图像进行增强处理。校正结果如图4(b)所示。调用threshold()算子进行自动全局阈值分割识别出待测工件的区域,并通过connection()算子进行连通域操作,把整个感兴趣区域中不同的连通域化为单个的区域,这样就可以对单个的区域进行操作[11];根据面积特征,提取出包含物体的区域,处理结果如图4(c)所示。

图4 预处理后的图像

4 特征点提取

在双目视觉测量系统中,要对图像对进行特征提取,然后通过匹配获取视差值计算出三维信息。特征提取与立体匹配的质量和精度将直接影响到工件尺寸测量的精度。对于工件的测量感兴趣的特征是工件的角点和边缘轮廓。工件轮廓的特征点包含了丰富的工件特征信息,代表了工件的基本几何结构,因此提取轮廓特征点的精度决定了测量目标的准确度[12]。

4.1 边缘检测

本文采用canny算子与亚像素边缘检测相结合的方法来提取边缘。canny算子能够消除较多的伪边缘,也可以保留较多的真边缘,具有很好的定位特性。亚像素是存在于两个单位像素之间的物理量,是一种用于提高精度的算法,并且计算量小,非常适合应用到高精度的在线检测上。先利用canny算子进行边缘点的粗定位,在像素级上确定边缘点的坐标和梯度方向,然后通过基于双线性插值的亚像素边缘检测算法获得亚像素精度的边缘。然后通过骨骼化方法进行边缘细化,减少边缘毛刺提高边缘信息的精确度。如图5(a)所示。

4.2 边缘拟合

为了便于对边缘特征点进行提取,此处调用segment_contours_xld()算子将边缘轮廓分割成直线部分和曲线部分,调用sort_contours_xld ()算子对分割出来的直线和曲线按照一定的规则进行排序,然后通过get_contour_global_attrib_xld()算子获取每段轮廓的属性,当属性参数Attrib==1时,此时轮廓为圆曲线,当属性参数Attrib不为1时,此时轮廓为直线,然后分别对其进行直线拟合和曲线拟合。

在拟合时,最小二乘法对于远离边缘的离群值没有很好的鲁棒性,到真实边缘很远的点在计算过程中会占有很大的权重,计算后得到不准确的边缘轮廓。本文引入atukey权重函数的最小二乘法进行亚像素边缘拟合以减小离群值的影响。权重值的迭代思想是:第一次权重为1,然后用梯度下降法寻找到一个解向量,以此求下一次迭代的权重值。

4.3 特征点提取

对拟合得到的精确的亚像素边缘进行等距离取点作为特征点。且通过intersection_ll ()算子得到两两直线的交点,然后调用distance_ps()算子判断交点到两直线和感兴趣区域的距离,当小于预设阈值时,则此点即为两线交点并作为特征点,否则舍去,以提高后期关键尺寸测量的准确性。获取工件特征点如图5(b)所示。

图5 特征点的获取

5 立体匹配

立体匹配的主要工作是寻找同一空间物体中的同一点在不同观察角度得到的两幅图像中的对应关系[13]。图像经过立体校正后,可通过极限约束原则将匹配对应点的二维搜索降为一维搜索,但由于误差的存在,此处将右图像距离极线3个像素之内的点作为候选匹配点。

我们知道,场景中某个点的视差值与其深度成反比,因此只要确定了某像素点的最小和最大视差值,我们就可以在整条外极线上限定一个小的多的区域作为视差搜索范围。因此,可以得到d∈[dmin,dmax],式中的dmin和dmax可以通过图像中可能出现的最大最小距离计算得到,此时,视差搜索区域的长度为l=dax-dmin+1,因此极大地减小了搜索范围,简化了算法复杂程度,缩短了程序运行时间,减少误匹配的数量[14]。具体搜索原理如图6所示。

图6 特征点搜索原理

以左图像特征点为中心通过调用gen_rectangle1()算子来设定一个尺寸为(m,n)的邻域窗口,然后用reduce_domain()算子将区域转化成特征点模板图像。并使用create_ncc_model()算子创建模板,如图7(a)中矩形框作为模板。在整条外极线上通过调用gen_rectangle1 ()算子限定一个小的多的区域作为匹配点搜索范围,并通过reduce_domain ()算子将搜索区域转化待搜索图像,如图7(b)中矩形框中的部分作为待搜索图像,因此极大地减小了搜索范围。

找到匹配点搜索范围后,采用基于灰度的模板匹配来寻找匹配点。由于两个摄像机视角不同,光照也会产生一定的差异,所以需要一种不随光照的变化而变化的方法,即归一化相关系数NCC,来消除光照影响。计算归一化相关系数的公式为:

式中,mt为模板平均灰度值,st2为模板所有灰度值的方差,mf(x,y)为图像平均灰度值,sf2(x,y)为图像所有灰度值的方差。ncc(x,y)的取值范围为[-1,1],|ncc(x,y)|越大表示模板和图像越一致,越小表示越不一致[15]。相似度在右图上所有像素点的子窗口中最优而且其值达到了预先设定的阈值,则把两点视为最佳匹配点。本论文设置中当|ncc(x,y)|的值大于0.95时即为对应匹配点。用find_ncc_model ()算子结合模板图像在搜索图像中进行搜索。当NCC相似度量最大且大于0.95时,则此点即为匹配点。结果如图7(c)所示。

图7 立体匹配过程图像

6 双目立体测量

由上式(3)可知,若要确定空间中某点的三维坐标,只需要知道该点在左右两幅图像上的坐标和摄像机的内外参数。而这些条件在完成摄像机系统标定和立体匹配成功后即可获得。然后利用以上原理,通过调用disparity_to_point_3d ()算子可获得特征点的空间三维坐标,获取三维点云图[16]。如图8所示。左右图像部分对应匹配点图像坐标值、视差值及三维坐标值如表3所示。

图8 三维点云

匹配点左图像坐标右图像坐标ulvlurvr视差(像素)X轴(mm)Y轴(mm)Z轴(mm)0256.426249.063255.370297.79948.73673.847-20.470274.1871643.164275.533642.498325.05349.52075.9339.432274.3302214.178793.325213.608799.9976.672112.786-23.094266.7693612.772819.971613.269831.01311.042115.1146.906267.5214337.764944.181340.576945.1060.925123.676-13.747265.7865470.303953.024471.012953.009-0.015124.264-3.813265.6266386.113404.315384.520448.16243.84685.573-10.411273.304

获得三维点云后即可通过空间曲线拟(与平面拟合类似)或通过计算公式:

结合三维坐标获取工件的关键尺寸,测量结果如图9所示,测量数据单位为mm。

图9 测量结果

将测量结果与工件的实际尺寸进行对比计算结果如表4所示。

表4 测量结果与工件的实际尺寸对比结果

由上表结果可知,此测量系统具有良好的稳定性且测量误差在±0.2 mm之内,实时性令人满意。

7 结论

工件尺寸测量系统应满足实时性和准确性的要求,本文在利用机器视觉软件halcon进行双目立体视觉测量系统设计的基础上,系统地介绍了基于双目立体视觉目标测量的基础原理、关键技术、测量方法。并对采集到的不同角度的两幅图像进行处理,实现了空间中特征点三维信息的有效获取和关键尺寸的测量,并通过大量实验验证了该测量系统的有效性,测量精度达到±0.2 mm。实验结果表明该方法测量精度较高,实时性令人满意。该系统可大大提高工件的生产效率,同时节约劳动力成本,系统节能、安全稳定,具有很好的扩展性和适应性,还能解决很多传统方式存在的问题,具有很大的市场价值和应用前景。

[1] 朱先锋. 基于双目视觉的工件尺寸三维测量[D].舟山:浙江海洋大学, 2014.

[2] 张海波. 基于双目立体视觉的图像匹配与三维重建[D]. 西安:西安工业大学, 2012.

[3] 王珂玮. 基于双目立体的目标测量[D]. 长春:吉林大学, 2013.

[4] 熊 凡. 双目立体视觉系统标定及重构方法研究[D]. 武汉:武汉工程大学, 2012.

[5] 孙凤连. 机器人双目视觉系统的三维测量方法[D]. 广州:广东工业大学, 2015.

[6] 陈 念, 李 进, 王海晖.双目立体视觉测量系统的研究与实现[J]. 湖北:武汉工程大学学报, 2011, 33(5): 101-105.

[7] 李 哲,项辉宇,韩 宝. 基于HALCON的双目视觉系统标定[J]. 机电产品开发与创新,2013, 3(5): 95-97.

[8] 魏敬强. 基于双目立体视觉的工件识别定位与抓取系统的研究[D]. 西安:西安理工大学, 2012.

[9] 黎淑梅. 基于双目视觉的大尺寸工件在机三维测量[D].广州:华南理工大学, 2011.

[10] 马 峰. 基于二维图像的三维建模技术的研究[D]. 北京:北京林业大学, 2010.

[11] 尹红敏, 葛广英, 肖海俊, 等. 基于Halcon的指针式仪表的读数[J]. 现代电子技术, 2016, 39(17): 16-19.

[12] 张 镇, 吕秋娟, 郑 重. 基于几何结构的零件切片轮廓特征点提取方法[J]. 工具技术, 2009, 43 (10): 31-35.

[13] 蓝福明. 双目立体视觉的摄像机标定与特征点匹配技术研究[D].哈尔滨:哈尔滨理工大学, 2015.

[14] 崔 雪, 基于立体视觉的安全行车距离测量方法研究[D]. 长春:长春工业大学,2012.

[15] 肖海俊. 基于机器视觉的精密器件尺寸在线测量系统的研究[D]. 聊城:聊城大学, 2016.

[16] 杜若琪, 谷宇章, 张 诚, 等. 基于双目立体视觉的行人身高测量方法[J].信息技术, 2016,24(1):91-96.

猜你喜欢

双目算子标定
采用双目视觉和自适应Kalman滤波的作物行识别与跟踪
霜 降 苏美玲
基于双目视觉的机器人定位与导航算法
有界线性算子及其函数的(R)性质
轻卡前视摄像头的售后标定
一种轻卡前视单目摄像头下线标定方法
使用朗仁H6 Pro标定北汽绅宝转向角传感器
Domestication or Foreignization:A Cultural Choice
基于双目测距的卡尔曼滤波船舶轨迹跟踪
CT系统参数标定及成像—2