基于单目显微视觉的微球姿态测量方法
2019-08-21李迎张大朋刘希龙徐德
李迎 张大朋 刘希龙 徐德
近年来,微操作和微装配获得了更加广泛的关注[1−2].微装配的目的是把两个或多个微零件在保证一定精度的情况下,装配到一起.因此,对微零件姿态高精度的测量是保证微装配顺利完成的关键[1−2].目前,对于物体三维姿态的测量大多采用多个相机或者采用多种传感器信息融合的方式.在文献[3]中,提出了一种融合视觉和深度传感器信息的姿态估计方法,实现了对基准标签姿态的精确测量.在文献[4]中,采用了一种惯性测量单元(Inertial measurement unit,IMU)和视觉传感器信息融合的方式,实现无人机的姿态估计.在文献[5]中,提出了一种基于主动形状模型(Active shape model,ASM)和立体视觉的头部姿态估计方法,具有较高的精度和较好的实时性.上述基于多传感器信息融合的姿态估计方法,需要多种传感器对目标进行测量.在微装配中,由于显微视觉景深小,不同的显微相机没有公共视野,上述方法不能使用.
在显微视觉领域,也存在一些姿态测量方法.在文献[6]中,提出了一种基于Hough变换和模板匹配的姿态测量方法,实现了两个柱腔零件的定位和姿态的测量.在文献[7]中,采用了一种基于单目显微视觉的平面的姿态测量方法,由一种基于PnP(Perspective-n-Point)算法的线性方法确定姿态的初始值,采用正交迭代算法得到姿态的估计值,实现姿态实时估计.文献[8]提出了一种基于显微视觉和旋转电场的细胞姿态控制方法,实现了细胞绕单轴旋转角度的测量和控制.上述方法只适用于平面内目标的姿态测量,无法测量物体的三维姿态.
在微装配中,微零件三维姿态的测量是完成装配任务的关键.其中,轴孔装配是非常常见的一类装配任务[9−11],目的是将一个柱形零件插入到微孔中,而首要任务就是对微孔三维姿态的测量.对于微球姿态的测量,常常通过直接测量微孔来确定微球姿态的方法.文献[12]提出了一种基于单目显微视觉微球姿态测量方法,控制显微相机多次主动运动获得微球球心、微孔圆心图像坐标,并转换到操作手坐标系,实现微球姿态向量的测量.但是在这种方法中,并未考虑相机运动轴方向与光轴方向之间存在偏差的影响,没有对相机主动运动后的特征点图像坐标进行补偿,导致姿态测量存在误差.针对显微视觉具有景深小、视场小的特点,文献[13]中提出了一种基于双目显微视觉的微球姿态测量方法,通过显微相机主动运动测量出微球球心到微孔的向量所在平面的法向量,利用两台显微相机测量出的两个平面的法向量叉乘,获得微球球心到微孔的向量,即获得微球的姿态.该方法需要两台显微相机,成本较高,而且需要两台显微相机分别主动运动,姿态测量的效率较低.
本文在单目显微视觉引导下,通过对直径5mm微半球上的直径1.5mm微孔的检测,实现对微球姿态的精确测量.本文结构安排如下:第1节介绍系统构成与标定;第2节给出了微孔和微球的定位方法;第3节给出了微球的姿态测量方法,并给出了姿态从相机坐标系到调整平台坐标系的变换方法;第4节为实验与结果,对所提出的方法进行了验证,并与已有的方法进行了对比;第5节为结论,对全文进行了总结.
1 系统构成及标定
1.1 微球零件
微球零件示意图如图1所示,是一个直径5 mm的半球,在顶部有一个直径1.5 mm的微孔,微球球心与微孔圆心的连线方向与微孔平面法向量方向平行.因微球和微孔尺寸较小,常规视觉采集的图像分辨率不足,故需要采用显微视觉采集微球微孔的图像,以便实现微球姿态测量.
1.2 平台系统构成
设计的实验系统平台如图2所示,包括一台显微相机、一个四自由度的调整平台、光源系统和一台控制计算机.显微相机配置了运动轴,可以沿着运动轴方向平移,以便调整物距实现对目标的清晰成像.四自由度调整平台包括沿Z轴的平移和绕着X、Y、Z轴的旋转.
图1 微球零件示意图Fig.1Micro-sphere component
图2 实验系统示意图Fig.2Experiment system
建立的坐标系如图3所示.微球零件放置在调整平台上,世界坐标系{W}建立操作空间的某点处,其XW、YW、ZW轴的方向与调整平台坐标系初始状态下的XP、YP、ZP轴的方向相同.调整平台可以分别绕着XP、YP、ZP轴旋转,沿着ZW平移.以显微相机光心为坐标原点,图像横坐标增加的方向作为XC轴方向,图像纵坐标增加的方向作为YC轴方向,根据右手系规则建立相机坐标系{C}.坐标系{W}是相机机械运动轴坐标系,ZM轴方向朝向,与ZC轴方向接近;XM、YM轴方向与XC、YC轴方向接近.
1.3 系统标定
1.3.1ZM轴和ZC轴的偏差标定
实验中显微相机的景深只有400µm,因此微孔与微球无法同时聚焦.在对微孔聚焦之后,需要相机沿ZM轴方向平移,实现对微球聚焦.如图4所示,机械运动轴ZM方向与相机光轴ZC方向近似平行,由于机械误差,二者之间存在一定偏差.在相机沿ZM轴方向运动后,如果将ZM轴当作ZC轴,会导致微球球心定位存在偏差.因此,需要对ZM轴和ZC轴的方向进行标定,或者对ZM轴和ZC轴的偏差进行标定.
图3 实验系统坐标系Fig.3 Coordinates of experiment system
图4 相机聚焦示意图Fig.4 Camera focusing
在本文中,对ZM轴和ZC轴的偏差进行了标定.具体而言,只需要显微相机沿机械运动轴ZM轴运动固定距离∆h后,测量导致的参照物图像特征的偏差∆u和∆v,即可计算出比例系数kx和ky,见式(1).
1.3.2 相机放大倍率k标定
使用已知尺寸的标记物或者通过特征点的主动运动,在聚焦的情况下,可以完成相机放大倍率k(µm/像素)的标定,如式(2)所示.
其中,L表示坐标系{C}中的尺寸,单位为µm:∆l表示在图像中的尺寸,单位为像素.
1.3.3 向量旋转角关系标定
由于设备安装误差等原因,坐标系{W}与{C}对应的坐标轴并不能完全平行,因此一个向量在{W}中的旋转角度与{C}中的旋转角度存在如式(3)所示的关系.
其中,α和β是绕XC轴和YC轴的旋转角度,θ和γ是绕XW轴和YW轴的旋转角度,J是旋转变换向量旋转角关系矩阵.
为了求解矩阵J,在坐标系{W}中对一个向量主动旋转,在坐标系{C}中测量该向量的旋转角度.通过获得n组α,β的数据及其对应的θ,γ的数据,使用最小二乘法可以求解出J,见式(4)∼(7),其中α和β的计算方法见第3.2节.根据式(3),一组对应数据可以产生两个方程,因此理论上两组数据就可以求解出J.为了提高精度,可以使用多组数据进行计算.
其中
2 微孔和微球精确定位
2.1 微孔精确定位
由于受零件的制作精度的限制,球面不能保证十分光滑,尤其是在微孔边缘周围存在毛刺,采集的图像存在很大的噪声,如图5所示.由于微孔平面与XCOCYC平面不平行,微孔在显微相机中的成像是椭圆并不是圆.为此,在本节中提出了一种由粗到精的微孔检测方法,对噪声较大的情况下依然能够实现微孔的定位,具有较高的鲁棒性和定位精度.
图5 微球上的微孔Fig.5 The micro-hole on the micro-sphere
微孔、微球定位算法流程图如图6所示,首先沿着ZM轴移动显微相机,实现对微孔聚焦.由于Hough变换十分耗时,首先对图像进行下采样,采用Canny算子提取边缘点,之后进行Hough变换,得到微孔圆心位置O0,实现微孔圆心粗定位.以O0为中心,在角度为θ的半径方向上,获得半径方向θ上,半径范围[r0,r1]的点的集合{Pθ},如式(8)所示.计算得到沿角度为θ的半径方向上灰度梯度最大的点pθm,作为该方向上微孔边缘点的候选点即实现了微孔边缘点的提取,然后以∆θ为半径方向的角度增量,实现各个半径方向上的微孔边缘点粗提取.
其中,ϕ是灰度梯度阈值,Or(pθ)表示像素点p在角度为θ半径方向上,与圆心O0距离为r处沿着半径方向r的灰度梯度.
图6 微孔、微球定位流程图Fig.6 Location flow chart of micro-hole and micro-sphere
为了实现微孔边缘点精确提取,如图7所示,首先沿角度为θ的半径方向r得到pθm附近的点的集合{Pθn},使用最小二乘法拟合得到其灰度梯度二次曲线,如式(9)所示.
其中,ri为点pi∈{Pθn}到圆心O0距离,Ipi是像素点pi的灰度值,∆Ipi像素点pi的灰度梯度,a、b、c是二次曲线的参数.
图7 微孔边缘的精确提取示意图Fig.7 Precision extraction of micro-hole edge
根据式(9),每个边缘像素点可以产生一个方程,则最少需要三个点可以求解出参数a、b、c,增加点的个数可以提高精度.
其中
利用式(10)∼(14)获得灰度梯度二次曲线的参数,以其极值点位置作为精确的微孔边缘点位置pf,即得到一个精确的边缘点.多次利用式(10)∼(14)对不同位置的边缘提取出一系列精确边缘点,得到微孔的精确边缘点集合{Pf},采用最小二乘法进行椭圆拟合,得到微孔圆心的位置Oc,实现微孔精确定位.
2.2 微球精确定位
微球的精确定位相对于微孔比较简单,如图6所示,首先沿相机机械运动轴ZM轴运动,实现对微球聚焦并记录移动距离∆h.因为对微球聚焦后,外轮廓比较清晰,噪声较小,通过逐行扫描微球的边缘,筛选出梯度大于阈值δ的点,由式(15)得到微球的精确边缘点集合{Pb},采用最小二乘法拟合椭圆,得到微球球心Ob.然后,根据光轴方向ZC轴与机械运动轴ZM轴方向的偏差,对定位结果进行补偿,得到微球球心Obf,见式(16).
其中,δ为像素点灰度梯度阈值.
3 微球姿态测量与变换
3.1 微球姿态测量
如图1所示,微球的姿态指的是由微球球心OW指向微孔圆心OS的向量nws的方向.微球姿态的计算如式(17)所示.
其中,∆u,∆v表示微孔圆心OS与微球球心OW的分别沿着XC和YC方向的图像坐标的偏差;∆xc,∆yc,∆zc是姿态向量在XC,YC,ZC轴的分量;k是相机放大倍率,单位为µm/pixel;r1和r2分别是微球和微孔的半径,单位为µm.
3.2 坐标系{C}中微球姿态角
根据第3.1节中定义的微球姿态,以微球旋转前在坐标系{C}中的的姿态单位向量nc1作为{C}中参考姿态向量,微球旋转后在坐标系{C}中的姿态单位向量nc2.由于微球具有对称性,对绕着以微球球心和微孔圆心连线为轴的旋转后微球姿态不变.因此,微球姿态由nc1转换为nc2,可以通过依次绕XC轴旋转α角度和YC轴旋转β角度实现.
根据第3.1节中微球姿态测量方法,计算出旋转前后微球的姿态单位向量nc1=[∆xc1,∆yc1,∆zc1]T和nc2=[∆xc2,∆yc2,∆zc2]T.nc1与nc2的关系可以由式(19)表示.
其中,Rxc和Ryc分别为相机坐标系{C}中绕着XC轴和YC轴的旋转变换矩阵,旋转角度分别为α和β.
由式(19),得:
根据式(21)可以解得微球在坐标系{C}中的旋转角度α和β,见式(21).
其中,
3.3 微球姿态转换到坐标系{W}
第3.1节中计算的微球姿态是表示在相机坐标系{C}中,为了便于验证姿态测量的精确性,本文将其需要转化到世界坐标系{W}中.利用第1.3.3节标定出的旋转变换关系矩阵J,由式(3)和式(21)计算出调整平台的旋转角度θ和γ.利用式(23)计算出微球在世界坐标系{W}中的姿态向量.
其中,nw1是坐标系{C}中已知的参考姿态向量nc1对应在世界坐标系{W}中的姿态向量,nw2是当前微球在世界坐标系{W}中的姿态向量.
4 实验与结果
本文采用的实验系统如图8所示,包括三路正交布置的显微相机、一个四自由度的调整平台、一路点激光测距传感器、光源系统和一台控制计算机.三路显微相机只采用了垂直布置的一路显微相机,由GC2450相机和Navitar变焦显微镜头构成,显微镜头放大倍率0.47∼4.5,采集图像帧率为15FPS,图像大小为2448像素×2050像素.四自由度调整平台包括沿ZW轴的平移和绕着XP,YP,ZP的旋转.绕着ZP轴的旋转分辨率是0.02◦,绕着XP轴和YP轴的旋转分辨率是0.001◦,沿着ZW轴的平移分辨率是1µm.控制计算机的处理器是Intel Core2 DUO,频率2.8GHz.
4.1 系统标定
4.1.1ZM轴和ZC轴的偏差标定
根据第1.3.1节中的方法,使用一个标记物,在清晰成像情况下,沿着相机机械运动轴方向运动固定距离,计算出比例系数kx和ky.多次计算取平均值,最终计算结果见式(24).
图8 实验系统Fig.8 The real experiment system
4.1.2 相机放大倍率k标定
根据第1.3.2节中的方法,本文通过观测主动运动的目标的方式标定出相机放大倍率k,标定结果见式(25).
4.1.3 坐标系{W}与{C}转换关系J标定
通过对调整平台的主动旋转运动,根据式(19)∼(22),计算出n组在坐标系{C}中的旋转角度,得到式(6)所示矩阵X,同时根据调整平台实际的旋转角度获得对应的{W}中的旋转角度,得到式(7)所示矩阵Y,使用最小二乘法,根据式(4)∼(7),计算得到J见式(26).
4.2 微孔和微球精确定位实验
4.2.1 微孔精确定位实验
根据第2.1节中的方法,可以实现对微孔的精确定位,精度较好.图9为微孔的边缘点提取结果,其中沿着微孔径向分布的点表示粗提取的微孔边缘点,在粗提取的边缘点中存在一个半径较大的圆点表示精确提取的微孔边缘点,并据此拟合微孔.
图9 微孔边缘点提取结果Fig.9 The edge extraction result of micro-hole
图10为微孔精确定位结果.从图10中可以看出,因加工精度较低,微孔周围存在很多环状纹理,给微孔定位带来很大干扰.其中一个半径较大的圆是直接采用Hough变换提取的圆,很明显由于受到噪声的干扰,直接采用Hough提取的圆其位置不够准确,与实际的微孔存在明显的偏差;半径较小的圆是采用本文提出的由粗到精的微孔定位算法得到的椭圆.可见,虽然微孔周围存在较大噪声,但是采用本文提出微孔定位算法,依然能够实现微孔的精确定位,说明了上述算法的有效性.同时,由于采用了下采样的方法,检测算法运行时间与直接进行Hough变换相比,由273ms降低到139ms,运行效率明显提高.
图10 微孔精确定位结果Fig.10 The precision location result of micro-hole
4.2.2 微球精确定位实验
根据第2.2节中的微球精确定位算法可以实现对微球的精确定位,结果如图11所示.从图11中可以看出,对微球聚焦后,边缘很清晰,图中实线画出的椭圆表示微球定位结果,可以看出检测出的椭圆的位置与真实的位置十分接近,检测十分准确.微球定位算法耗时为141ms.一次测量既需要微孔定位,又需要微球定位,再加上数据读取与预处理,整体运行时间为498ms.
图11 微球精确定位结果Fig.11 The precision location result of micro-sphere
4.3 微球姿态检测实验
令XW轴保持不变,连续绕YW轴旋转,间隔为0.5度,根据第4.1节中的微球姿态测量方法,计算出各个情况下微球的姿态,如表1所示,其中姿态向量进行了归一化处理,绘制向量如图12所示.由于微球是绕着YW轴旋转,姿态向量的∆xc分量应近似保持不变,∆yc分量应连续递增.从表1中数据可以看出,∆xc几乎保持不变,∆yc连续递增,因此从定性分析的角度,验证了微球姿态测量方法的正确性.
表1 在坐标系{C}中的微球姿态向量Table 1 The pose vector of micro-sphere in{C}
图12 在坐标系{C}中的微球姿态向量Fig.12 The pose vector of micro-sphere in{C}
4.4 微球姿态坐标变换实验
根据第3.2节中的方法,可以计算出微球在{C}中和{W}中姿态的测量值nc2和nw2,同时根据从调整平台中读取由参考姿态调整到当前姿态实际的旋转量θr和γr,根据式(23)计算出当前姿态在{W}中的真实值nwr.根据式(27)计算出实际值与测量值之间的偏差θe,即误差.
在实际中,由于参考姿态nc1对应的在{W}中的姿态nw1难以直接获得,因此我们不妨假设nw1与ZW轴平行,因此,根据上述方法,使微球连续旋转,以调整平台为初始状态时微球的姿态为参考姿态,分别计算出在不同旋转角度情况下,微球姿态误差θe.
1)绕YW轴旋转
XW轴保持不变,分别绕着YW轴旋转±3,±2,±1度,计算出微球姿态的实际值与测量值,如图13所示图中末端是圆圈的线表示真实值,末端是星号的线表示测量值,最大误差0.18度,平均误差0.09度.表2为旋转角真实值与测量值对比.
2)绕XW轴旋转
YW轴保持不变,分别绕着XW轴旋转±5,±4,±3,±2,±1度,计算出微球姿态的实际值与测量值,如图14所示.图14中末端是圆圈的线表示真实值,末端是星号的线表示测量值,最大误差0.10度,平均误差0.06度.表3为旋转角真实值与测量值对比.
图13 绕YW轴旋转后的姿态向量Fig.13 The pose vector after rotating along with YWaxis
表2 绕YW轴旋转的实验结果Table 2 The results of rotating along with YWaxis
表3 绕XW轴旋转的实验结果Table 3 The results of rotating along with XWaxis
3)同时绕XW轴和YW轴旋转
同时绕XW和YW轴旋转(−5,−3)、(−3,−2)、(−1,−1)、(1,1)、(3,2)、(5,3)度,计算出微球姿态的实际值与测量值,如图15所示.图15中末端是圆圈的线表示真实值,末端是星号的线表示测量值,最大误差0.30度,平均误差0.18度.表4为旋转角真实值与测量值对比.
图14 绕XW轴旋转后的姿态向量Fig.14 The pose vector after rotating along with XWaxis
图15 同时绕XW和YW轴旋转后的姿态向量Fig.15 The pose vector after rotating along with XWand YWaxis,simultaneously
表4 同时绕XW、YW轴旋转的实验结果Table 4 The results of rotating along with XW,YW axis,simultaneously
通过三组实验结果可以看出本文提出的姿态测量算法误差最大0.30度,充分说明了算法的有效性和准确性.
在文献[13]中提出了一种微孔姿态检测算法,绕着X轴旋转±5,±4,±3,±2,±1度,测量值与实际值最大误差不超过0.7度.而根据第5.4节中绕着XW轴旋转同样角度时,最大误差仅为0.10度,平均误差0.06度;并且当同时绕着XW轴和YW轴进行大角度旋转时,旋转角度与文献[13]中有了较大增加,而最大误差仅为0.30度,平均误差0.18度.因此,与文献[13]中使用两台显微相机,通过主动运动进行测量的方法相比,本文方法只采用一台显微相机,成本较低,更加高效,且精度明显提高,具有较大优势.
5 结论
本文提出了一种基于单目显微视觉的微球姿态高精度测量方法.设计了一种由粗到精的微孔检测算法,实现了高精度的微孔定位.通过对相机光轴方向的标定,在相机运动后对微球图像坐标进行补偿,提高了在相机坐标系下的微球定位精度.通过对微球和微孔的精确定位,计算出微球球心与微孔圆心的空间相对位置,实现了相机坐标系下高精度的微球姿态测量.同时,根据标定出的相机坐标系与调整平台坐标系之间的旋转关系,将微球姿态转换到调整平台坐标系.根据坐标系{W}中微球姿态的真实值与测量值之间的偏差,验证姿态测量方法精度.实验结果表明,提出的方法可以实现微球姿态精确测量,最大姿态误差0.30度,与文献[13]中的方法相比,精度明显提高,从而验证了本文方法的有效性.
在未来,我们将致力于研究适用于复杂零件的精确、鲁棒的姿态测量算法.