基于双目视觉的大型高反光构件测量系统
2021-09-23马大智于斌超张彦泽杨继之陈钦韬
马大智,于斌超,张彦泽,刘 巍,乐 毅,杨继之,陈钦韬
(1.大连理工大学 机械工程学院,辽宁 大连 116024;2.中国空间技术研究院 北京卫星制造厂,北京 100094)
引言
随着我国载人航天、探月等重大科技专项的深入,对大型航天器舱体的高精度制造提出了更高的要求。其中大型航天器舱体结构均为焊接结构,对此大型结构的变形进行数值模拟,因计算规模和计算量大,以及收敛困难等原因难以实现[1]。为了消除焊接装配过程中带来的尺寸偏差,满足产品的装配精度要求,需要在整舱状态下对舱体进行组合加工,原位高精度测量是保证舱体在整舱状态下局部零件面型特征高精度加工的重要前提[2]。
双目视觉作为原位高精度测量技术之一,因其效率高、精度高、鲁棒性强等优势,在航空航天、精密制造、产品质量检测等领域得到了广泛的应用[3-5]。针对大型舱体壳体表面零件分布广泛且数目众多的特性,双目视觉测量技术可以精确、稳定、快速获得局部特征的位置信息[6]。
大型舱体零件加工现场往往伴随着复杂光源干扰,由于舱体壳体金属表面的局部高反光特性,视觉测量系统容易误提取舱体表面的视觉标志点,从而使视觉测量无法正常进行。上海交通大学的张丽芳,周军[7]通过拍摄一组同一场景不同曝光度的图像,选取不同曝光量图像信息最丰富的图块进行拼接,再对图像边界融合得到抑制反光的增强图像。但是图像采集需要较长的曝光时间,加工现场的振动会影响图像采集质量,降低双目视觉测量精度。华侨大学的谢超,谢明红[8]提出了一种应用局部自适应阈值方法检测圆形标志点,对受到光照干扰不同位置的灰度值不在同一等级的图像,采用局部自适应阈值检测圆形标志点的位置。但该方法难以解决反光光斑带来的误提取问题。采用人工分割目标所在的感兴趣区域,再在该区域内提取视觉标志点的方法,可以有效解决误提取问题,但又降低了视觉测量效率和自动化程度。基于视觉标志点与舱体壳体表面易于区分,特征稳定这一特性,本文使用基于深度卷积神经网络的方法[9-10],通过识别整个视觉标志点的全部特征,自动分割标志点所在的感兴趣区域,可有效减少误提取,提高双目视觉测量系统的测量效率。
同时为实现大型航天器舱体原位测量,将视觉测量系统固定在工业机器人末端,控制机器人运动完成多位姿下对零件面型的测量,再通过不同位姿之间测量的公共视觉标志点将测量数据拼接到同一坐标系下,最后生成点云图输出完成测量。
1 系统组成
高精度视觉测量系统主要由双目工业相机、工业机器人、上位机组成,其中双目工业相机安装在工业机器人末端。系统功能主要包含图像预处理、视觉标志点三维重建、机器人控制、图像拼接和结果输出显示等,其工作流程如图1所示。
图1 高精视觉测量系统工作流程Fig.1 Process of high precision vision measurement system
双目工业相机获取高质量舱体零件表面图像并发送给上位机。上位机获取图像后,命令工业机器人移动到下一个位姿,同时对图像进行预处理、标志点提取和三维重建。工业机器人移动到下一位姿后,命令工业相机采集图像。舱体零件全部测量完成后,将不同位姿下获取的标志点三维坐标转换到同一坐标系下,并输出显示。
高精度视觉测量系统中的工业相机型号为Vieworks VC-12MC-M/C 65(分辨率6 004×7 904 像素,图像传感器CMOS,全画幅,帧率20 f/s),镜头型号为EF16-35 mm f/2.8 LIIUSM(镜头焦距50 mm,光圈F2.8)。拍摄条件如下:图片像素为6 004×7 904像素,物距为1 200 mm,保证测量精度的有效视场约为300 mm×300 mm。工业机器人型号为库卡KR10-R1420,上位机软件开发基于C++的MFC、OpenCV和基于Python 的Pytorch。工业机器人控制基于库卡的RSIVisualShell,实验验证视觉测量精度的激光跟踪仪型号为Leica-AT960,实验系统如图2所示。
图2 高精度视觉测量实验系统示意图Fig.2 Schematic diagram of high precision vision measurement experimental system
2 系统功能实现
双目视觉测量系统功能实现主要包含以下4 个部分:1)对图像进行预处理,是指使用深度卷积神经网络提取视觉标志点所在的感兴趣区域;2)提取图像中视觉标志点中心并三维重建;3)基于UDP/IP 通信协议对工业机器人实时控制;4)利用视觉标志公共点拼接不同位姿下得到的测量数据,完成整个舱体零件表面测量后将结果以三维点云形式输出。
2.1 图像预处理
在机器视觉领域,一般通过提取圆形视觉标志点提取图像信息,因此从图像中准确且完整地检测出标志点是一个关键问题。由于舱体壳体的高反光表面和现场复杂光源干扰,处理双目相机获取的高质量图像时,容易误提取零件表面的视觉标志点以外的光斑,影响后续测量精度。传统的圆提取算法在面对复杂现场环境下,为提高识别的准确率,需要设置严格的图像二值化阈值和圆度、面积等约束条件,在提取的圆形轮廓中筛选出视觉标志点。但不同场景下参数变化较大,难以广泛适用,通过划出图像中可能存在视觉标志点的感兴趣区域,再在区域内提取视觉标志点,可以有效减少由误提取带来的精度损失。如果通过人工分割标志点所在的感兴趣区域则会降低视觉测量效率和自动化程度,而采用基于卷积神经网络方式预先分割视觉标志点所在的感兴趣区域,再在区域内提取视觉标志点,可以有效减少由误提取带来的精度损失,同时提高测量效率。
在图像特征的提取与分类领域,卷积神经网络是一种经典而广泛应用的深度学习结构[11-12],卷积神经网络提供了一种端到端的学习模型,经过梯度下降方法训练的卷积神经网络能够学习到图像中的特征,实现对图像特征的提取、分类等功能[13]。传统的提取圆形视觉标志点方法需先将图像进行二值化处理,再通过圆度、面积等约束条件搜寻标志点中心的圆形反光区域[14],这一过程忽略了视觉标志点的其他图形信息,因此容易与高反光表面上的圆形反光斑点混淆,从而造成误提取。采用基于卷积神经网络的方法直接处理原图像可以充分利用视觉标志点的全部信息,准确定位视觉标志点所在的感兴趣区域,极大程度上抑制了局部高反光对标志点产生的影响。在此基础上对感兴趣区域内视觉标志点的圆形反光区域中心进行检测,可以有效保证测量的准确性。
基于卷积神经网络分割视觉标志点所在感兴趣区域的方法流程包括:将原图像的分辨率由6 004×7 904 像素降采样并调整到1 500×2 000 像素,以提高后续神经网络计算效率;将图像以错位形式分别切分为48 个和35 个分辨率为250×250像素的子图像,图像切分方式如图3 和图4所示。将切分后的图像送入第1 层卷积神经网络进行二分类,确定图像中是否有视觉标志点,如果包含标志点,再将图像送入第2 层卷积神经网络分割出视觉标志点感兴趣区域。其中切分后的图像足够小,从而保证每个图像至多有一个视觉标志点,错位切分则可保证图像边缘的点也能够准确识别。
图3 原图切分为48 个250×250 像素子图像Fig.3 Original image that divided into 48 sub-images with 250 × 250 pixels
图4 原图错位切分为35 个250×250 像素子图像Fig.4 Original image that divided into 35 sub-images with 250 × 250 pixels
第1 层卷积神经网络负责对输入图像进行二分类,总体结构如图5所示。输入尺寸为250×250像素单通道图像,经过3 个卷积层、池化层和4 个全连接层,中间层激活函数为修正线性单元(rectified linear unit,ReLU)函数,输出层激活函数为Sigmoid 函数,输出值在0~1 之间,表示输入图像是否包含视觉标志点。输出值大于0.75 表示包含标志点,再继续将图像送入第2 层卷积神经网络分割出感兴趣区域。
第2 层卷积神经网络负责分割出输入图像中视觉标志点的感兴趣区域位置,总体结构如图6所示。输入尺寸为250×250 像素单通道图像,经过3 个卷积层、池化层和4 个全连接层,中间层激活函数为修正线性单元函数,输出值为感兴趣区域的左上角坐标和右下角坐标。
图6 第2 层卷积神经网络结构Fig.6 Convolutional neural network structure of layer 2
使用7 500 张和12 000 张图像分别对第1、2 层卷积网络进行训练,数据集中部分训练图像如图7所示。使用200 张和350 张图像分别对第1、2 层卷积网络进行测试,准确率均达到了97%以上。
图7 数据集中部分图像Fig.7 Part of images in dataset
根据第2 层卷积神经网络输出值在图像中划出所有视觉标志点的感兴趣区域,由于图以错位形式切分了2 次,感兴趣区域会出现重叠,但对后续提取视觉标志点不会造成影响,区域划出后图像如图8所示。为方便后续图像处理,将非感兴趣区域内像素的灰度值设置为0,处理后图像如图9所示。
图8 划出感兴趣区域后图像Fig.8 Image that marked regions of interest
图9 将非感兴趣区域像素灰度值设置为0 的图像Fig.9 Image that set gray value of pixels out of regions of interest to zero
2.2 标志点三维重建
对双目相机获取的高质量图像进行预处理后,对图像中的视觉标志点中心进行提取。首先设置适当的二值化阈值对图像进行二值化处理;然后提取二值图像的所有独立区域轮廓[15],计算每个区域轮廓的圆度值C,面积S,通过设置适当的圆度阈值C′、面积阈值(Smin,Smax),将满足条件的区域轮廓筛选为视觉标志点区域轮廓,然后使用基于最小二乘的椭圆拟合法计算区域中心位置坐标[16]。一
般二次曲线方程可表示为
方程(1)中各个系数由下式表示:
将轮廓点(xi,yi)代入公式(1)后得到F(xi,yi),可认为是误差距离,运用最小二乘原理得到方程中各个系数的值a。二次曲线的最小二乘拟合可表示为
拟合后椭圆圆心为视觉标志点中心坐标,上述图像处理过程如图10所示。
图10 图像处理过程Fig.10 Process of image processing
分别获取左右图像的视觉标志点中心的位置坐标后,对其进行匹配和三维重建。由于大型舱体零件表面布置大量视觉标志点,同时左右相机公共视场小,因此左右相机图像中可能出现非公共标志点,为提高左右图像视觉标志点匹配的鲁棒性,消除误匹配,使用基于极线约束的标志点立体匹配方法[3]。极线约束是将对应匹配点搜索范围由全局图像缩小到极线这条直线上,从而提高匹配的精度与鲁棒性。图11 为左右图像视觉标志点中心匹配结果。
图11 左右图像视觉标志点中心匹配Fig.11 Match of center of left and right images visual mark points
左右图像的视觉标志点匹配完成后,对左右相机图像平面进行立体校正,然后根据小孔成像模型,跟据公式(4)对视觉标志点进行三维重建,得到左相机坐标系下视觉标志点中心三维坐标(X,Y,Z):
式中:(ul,ur)和(vl,vr)是标志点中心分别在左右图像中的坐标;s为像素的物理尺寸;d是2 个相机间的视差;Tx是左右相机光心距离;f是相机焦距。这些参数通过对双目相机标定获得[17]。
2.3 机器人控制
测量大型舱体零件表面时,需将双目相机放在多个位姿状态才能进行。为实现双目视觉测量系统的高效与自动化,将双目视觉放置在工业机器人末端,通过控制工业机器人运动完成测量,再通过多位姿间坐标转换关系将不同位姿测量得到的数据统一在同一坐标系下。
机器人控制是通过上位机与库卡机器人传感器通讯软件RSIVisual 间进行信息交互实现的,其中信息交互使用UDP 无连接协议,上位机将下一步机器人需要移动的具体位姿(机器人末端在基座坐标系下位置X,Y,Z和角度A,B,C)以XML 形式的数据流发送给机器人控制系统,机器人控制系统接收后开始运动并将机器人当前位姿信息(同上)以XML 形式的数据流实时发送给上位机。上位机在判断机器人移动到指定位姿后发送视觉测量指令。
由于工业机器人绝对定位精度相对较低[18],直接采用机器人控制系统发送运动信息难以实现高精度拼接不同位姿下的视觉测量数据。因此,利用位姿之间公共点计算位姿间坐标转换关系,然后进行拼接。为保证不同位姿之间能够测量到足够的公共视觉标志点,同时使测量路径易于规划,采用一种滑动窗口的方法对舱体零件表面进行测量。即工业机器人末端沿舱体表面方向一次移动一段固定距离,保证邻近测量位姿之间,双目相机公共视场内有足够数量的视觉标志点,以提高后续拼接精度,如图12所示。其中方形窗口表示双目视觉公共视场,随着位姿变化窗口以固定距离向右移动。
图12 滑动窗口测量示意图Fig.12 Diagram of sliding window measurement
2.4 标志点拼接
通过位姿之间测量的公共视觉标志点计算位姿间坐标转换关系。给定2 个位姿下对应的公共视觉标志点集合P={p1,p2,...pn}和Q={q1,q2,···qn},它们之间位姿转换关系R和t可由SVD方法计算获得,首先计算标志点集合中心点,并将点集中心化,即:
式中:µP和 µQ代表标志点集合P={p1,p2,···pn}和Q={q1,q2,···qn}的中心点,将其中心化后可获得标志点集合和。将中心化后获得的标志点集合转换成N×3矩阵,计算协方差矩阵H,并将SVD分解,即:
最后计算点集之间旋转矩阵R和 平移向量t:
计算出转换关系R和t后,将双目相机在各个位姿下测量的视觉标志点三维坐标统一到同一坐标系下,完成三维重建。
3 实验与结果分析
为了验证双目视觉测量系统可靠性,实验使用了铝膜包覆式碳纤维舱段模拟件模拟大型舱体零件,碳纤维模拟件减轻了环境温湿度变化对实验结果带来的影响。同时在室内光照条件稳定的实验条件下,使用高精度陶瓷标定板对双目相机进行了标定。然后将标定过的双目相机固定在工业机器人末端,对碳纤维舱段模拟件表面布置的视觉标志点进行测量。其中视觉标志点安放在可替换激光跟踪仪靶球的标准靶座上,方便后续使用激光跟踪仪对视觉测量精度进行验证。图13 为放置在工业机器人末端的双目相机,图14 为铝膜包覆式碳纤维舱段模拟件。
图13 放置在工业机器人末端的双目相机Fig.13 Binocular cameras placed at end of industrial robots
图14 铝膜包覆式碳纤维舱段模拟件Fig.14 Aluminum film-coated carbon fiber simulated cabin component
整个舱段模拟件长度约1.2 m,半径约899 mm。为完成整个舱段模拟件测量,工业机器人需携带双目相机切换到多个位姿从舱段左侧开始向右侧逐步测量,每切换一次位姿,双目相机有效测量视野向右移动约150 mm。直到工业机器人切换到下一个位姿后,双目相机有效测量视野中不再出现新的视觉靶球,则说明视觉测量系统已达舱段最右侧,测量结束。整个测量实验工业机器人共计切换了9 个位姿,为验证视觉测量精度,使用激光跟踪仪测量各个视觉标志点三维位置,同时将全部位姿下视觉标志点测量的三维位置统一到同一坐标系下,完成整个舱体零件表面测量后,将激光跟踪仪和视觉测量的标志点位置以三维点云的形式输出,如图15 和图16所示。
图15 激光跟踪仪测量标志点三维点云Fig.15 Three-dimensional point clouds of mark points measured by laser tracker
图16 视觉测量标志点三维点云Fig.16 Three-dimensional point clouds of mark points measured by vision
以激光跟踪仪测量结果为真值,对比拼接后各个标志点到1 号标志点距离验证视觉测量精度,结果如图17所示。同时对比位姿1 到位姿9,各个位姿下拼接后的视觉测量精度RMS 如图18所示。
图17 拼接后视觉测量精度Fig.17 Accuracy of visual measurement after splicing
图18 位姿1 到位姿9 视觉测量精度RMSFig.18 RMS of vision measurement accuracy from position 1 to 9
实验结果表明:在1.2 m×1 m 范围内,共计切换9 个位姿情况下各个标志点到1 号标志点距离视觉测量精度RMS 可达0.049 mm,最大误差控制在100 μm 以内。同时在保证各个位姿视觉测量精度的前提下,采用滑动窗口的方法使用相邻位姿间公共标志点拼接测量结果,并未出现明显的精度下降。
4 结论
本文叙述的基于双目立体视觉的大型舱体零件测量系统,通过基于深度卷积神经网络的目标识别技术避免了视觉标记点的误提取,保障了系统可靠运行。同时利用工业机器人技术实现了多位姿下对大型舱体零件的视觉测量,最后通过拼接多位姿下视觉标记点测量数据将其统一到同一坐标系下,完成对舱体零件表面特征的三维重建。整个测量系统具有效率高、稳定性高等特点,通过与激光跟踪仪作对照试验,在1.2 m×1 m 范围内9 个位姿的拼接精度RMS 可达0.049 mm,表明该系统有较高的精度。