吴叶兰,杨 飞,刘 阳,谢 涛
(1.北京工商大学 计算机与信息工程学院,北京100048;2.北京理工大学 车辆与机械工程学院,北京100081)
随着微机电系统的发展[1],微小型产品以其轻巧便携、节省空间和能源等特点逐步得到人们的重视,与之相关的微装配技术得到了极大发展。显微视觉系统是微装配技术中的重要组成部分,为装配过程提供非接触的底层反馈信息。目前,显微视觉的主要研究方向集中在自动聚焦算法、深度信息获取以及视觉系统标定等方面[2,3],装配过程中的目标识别与跟踪技术很少涉及,由于在微装配过程中存在上料、下料、零部件搬移、定位等环节,将目标跟踪技术引入显微视觉领域具有重要意义。
由于微装配的零部件通常为刚性体,对刚性目标的跟踪算法常采用基于区域的跟踪和基于特征的跟踪。基于区域跟踪的典型算法是模板匹配[4],该方法是通过图像分割或人工方式得到包含目标的模板,根据对相关性的计算实现目标跟踪。该算法在无遮挡条件下跟踪精度高,跟踪稳定,但在求解匹配点时需要遍历整张图片,计算量大。基于特征的跟踪算法是用目标的局部特征来描述目标,通过跟踪目标的局部特征来实现目标跟踪,包括特征提取和特征匹配两方面:特征提取是得到目标的描述,用特征集合表达,常用的特征包括颜色、边缘、光流、纹理等;特征匹配是对每帧间的目标进行匹配以实现目标跟踪,常用的匹配方法有基于灰度、几何、纹理及颜色等特征的匹配跟踪。基于特征的跟踪算法受目标平移、旋转及姿态变化的影响较小,当目标被部分遮挡时也能实现跟踪任务;其算法难点是确定帧间的特征对应关系,对图像模糊和噪声也比较敏感。
在微装配过程中,显微视觉视场范围是有限的,一个微小移动就可能使零件脱离视场,同时由于显微镜头的景深较小,工作距离的变化会导致跟踪过程中目标零件成像出现不同程度的模糊情况,给跟踪带来困难。另外,显微视觉图像往往具有较大的分辨率,庞大的数据量也很难保证系统的实时性。
本文提出一种基于SIFT 特征点的模板匹配和Kalman预测相结合的跟踪算法,该方法采用Kalman 预测,在局部范围内实现对目标零件的模板匹配,利用SIFT 特征对模板匹配的结果进行校正和更新,并通过反馈位置信息使负载相机的云台作出调整,从而使零件始终处于相机视场范围内。
本系统由显微视觉图像采集、图像处理、云台控制和平移台控制四个子系统组成,如图1 所示。
图1 系统框架图Fig 1 System frame diagram
显微视觉图像采集子系统通过CCD 相机和镜头获得零件显微图像,通过USB 接口传送给图像处理子系统进行实时处理;图像处理子系统实现图像预处理、目标跟踪、位置预测等相关的数据分析;云台控制子系统通过串口获得图像处理子系统传来的运动参数,控制云台的转动,保证目标落在CCD 相机视野范围内;平移台子系统带动零件实现往复平移运动。
模板匹配就是在图像搜索区域中寻找与模板图像相关程度最大的位置,将相关度最大的点做为最佳匹配点,并记录该点坐标。对大小为M×N 的图像f(x,y)和大小为W×H 的模板图像T(x,y),当模板图像T(x,y)在搜索图像f(x,y)上逐点移动时,可以利用式(1)来计算两者的相关程度,R(x,y)为相关函数,表示模板和搜索子图的匹配程度,当R(x,y)取得最大值或大于某个阈值时,表示在搜索图像f(x,y)中找到了匹配目标
式中 x∈[0,M-W],y∈[0,N-H]。得到的匹配点坐标同时作为Kalman 滤波器的观测值坐标,用于对下一帧目标出现范围的预测。
Kalman 波器[5]是一个对动态系统的状态序列进行线性最优估计的算法,采用Kalman 滤波器可以实现对目标运动参数的估计,将全局搜索问题转化为局部搜索,缩小了搜索范围和搜索时间。具体实现为:建立系统的状态方程(2)和观测方程(3)
式中 Xk为系统状态向量,Zk为系统测量向量,A 为状态传递矩阵,H 为测量矩阵,Wk和Vk分别为正态分布的过程噪声和测量噪声,方差分别为Q 和R。由建立的系统状态空间模型,利用前一时刻的信息预测系统的现有状态,得到对现在时刻的预测结果,再由现在状态的测量值对前一时刻的模型进行校正,即Kalman 滤波过程分为了预测和校正两个环节。
时间更新预估计的两个公式
状态校正更新的三个公式
其中,P(k|k)为X(k|k)对应的协方差,KG 为Kalman增益,X(k|k)为k 状态下最优的估算值,X(k|k-1)为利用上一状态的预测结果,I 为单位矩阵。Kalman 滤波器就是用前面两个时间更新方程获得先验估计,再由后面三个状态更新方程对先验估计进行校正以获得最优估计。在本系统的目标跟踪中,选择的系统状态变量为Xk=[Sx,Sy,Vx,Vy],分别表示目标在x 和y 方向的位置、速度,观测变量为Zk=[Sx,Sy]T。
SIFT(scale-invariant feature transform)算子是一种图像的局部特征描述子,具有尺度、旋转、平移不变性,而且对光照变化、仿射变换和噪声也保持一定程度的稳定性[6,7]。
2.3.1 SIFT 特征点的提取
SIFT 算子在高斯差分尺度空间(difference-of-Gaussian,DOG)内检测极值点,提取位置、尺度和旋转不变量。SIFT算子的主要步骤为:检测尺度空间极值点,精确定位极值点并得到关键点的位置和尺度,确定关键点的方向参数;生成关键点描述子。
尺度空间的生成由DOG 算子实现,DOG 算子是将两个不同尺度的高斯核差分后与图像做卷积得到的,公式为
其中,I(x,y)为输入图像,L 为图像的尺度空间;k 用来区分不同的尺度;G(x,y,σ)为二维高斯函数,如下式
其中,σ 代表高斯正态分布的均方差,即尺度空间因子。
为了高效提取SIFT 特征点,通过降采样的方法,逐层构建高斯差分金字塔,比较相邻尺度和相邻位置的采样点得到特征点,根据特征点邻域像素的梯度方向分布特性为特征点确定方向信息,得到包含位置信息、尺度和方向的128 维SIFT 特征特征向量。特征点模值m(x,y)和方向θ(x,y)可以由式(11)、式(12)得到
2.3.2 SIFT 点匹配
SIFT 特征点匹配采用两幅图像中SIFT 特征点的欧氏距离作为相似性判定度量,由于图像采集过程中两帧间隔非常短,跟踪目标位移小,可以认为具有最小欧氏距离的两个SIFT 为一对匹配点。匹配过程中,考虑到计算时间对系统整体实时性的影响,在实际匹配中常采用BBF(bestbin-first)[8]搜索算法来减少计算时间。为减少误匹配问题,可计算匹配点最邻近距离和次邻近距离之比,高于阈值T,则为可接受的匹配点对;否则,放弃。
本文根据微小型零件类刚性物体尺寸小、不变形的特点,提出一种模板匹配、SIFT 特征提取和Kalman 滤波预测相融合的跟踪算法,其流程如图2 所示。
图2 跟踪系统流程图Fig 2 Tracking system flow chart
具体步骤为:
1)提取初始帧中的运动目标及其外接矩,并将其外接矩设为初始的跟踪模板。
2)根据上一帧目标是否丢失来确定当前帧图像处理范围:如果上一帧跟踪结果精确,将在局部范围内匹配目标;如果上一帧目标跟丢,则会在全局范围内匹配目标。
3)局部范围的图像匹配:将上一个跟踪框的中心坐标代入Kalman 滤波器,预测目标在下一帧中出现的位置,在该局部范围内对图像进行模板匹配并计算匹配系数R,选取匹配系数最大的点为最佳匹配点,并将Rmax与给定的阈值T1进行比较。如果Rmax>T1,表示匹配结果正确,但由于预测误差和匹配误差的存在,会导致模板中心偏离目标,为获取精确的跟踪结果,应提取局部区域的SIFT 特征点进行匹配,用SIFT 匹配结果来校正当前帧的模板中心值,如果Rmax<T1,表示目标图像和模板图像没有匹配成功,需要更新模板,模板更新的策略是:如果匹配成功的SIFT 特征点数目大于N,根据SIFT 特征点集中在目标边缘的特点,选择匹配点的外接矩作为新的跟踪模板以实现跟踪;如果匹配成功的SIFT 特征点数目小于N,表明目标丢失,转入第4 步在全局范围内搜索目标。
4)全局范围的图像匹配:当目标在局部范围内丢失时,则在全局范围内采用模板匹配法实现跟踪。
本系统中,由于存在角度因素,镜头到跟踪目标的工作距离会随位移台的移动而变化,且显微镜头的景深浅会导致跟踪过程中目标零件成像出现模糊的情况。传统的模板匹配对图像要求较高,成像清晰程度和光照变化都会影响匹配结果。图3 是跟踪结果图,图3(a)是在光线充足和聚焦清晰的情况下对跟踪目标进行SIFT 特征点提取和匹配,图中白色十字为配上的SIFT 特征点,在该条件下SIFT 特征点较多;图3(b)是在位移台移动较大距离后对零件跟踪的结果,可以看出由于失焦和光照不足零件已经出现了一定程度的模糊,但仍有匹配的SIFT 点。图3(c),(d)是模板匹配分别在失焦和光照不足的条件下对零件的跟踪图,从图中可看出:当实验条件恶化时跟踪结果均失败。
图3 跟踪效果对比图Fig 3 Comparison chart of tracking effect
不难看出,相比于传统的模板匹配法,本文提出的跟踪方法跟踪精度高,适应性强。
算法的处理时间直接影响着系统的实时性。由于初始模板尺寸的大小直接影响着整体系统的处理时间,尺寸越大处理时间越长,系统的实时性越差。根据跟踪零件目标的大小,设置的模板尺寸为15 pixel×15 pixel,不同算法所需的处理时间如表1 所示。
表1 算法处理时间Tab 1 Time of algorithm processing
本文提出的算法虽比局部模板匹配法处理时间略有增大,但在保证系统实时性的同时增加了系统的鲁棒性。
经过大量实验表明:本文提出算法在保证跟踪的准确性和实时性的前提下,可以完成对微小型零件的跟踪。
本文设计了一种基于微装配过程的显微视觉跟踪系统,将CCD 相机、显微镜头和电控云台相结合实现在微装配过程中对微小型零件的跟踪。提出一种针对显微视场的融合SIFT 特征提取、模板匹配和Kalman 预测的跟踪算法,通过将前一帧跟踪结果转换为Kalman 滤波的参数对当前帧目标可能出现的范围进行预测,在预测范围内用SIFT 特征点对匹配结果进行校正和模板更新。实验结果表明:该系统实现了在显微视场下对微小型零件的跟踪,提出的算法能满足系统的实时性并对在跟踪过程中由实验环境引起的光照变化、尺度模糊具有较好的适应性。
[1] 孙立宁,陈立国,刘品宽,等.微操作机器人显微视觉系统若干问题[J].光学精密工程,2002,10(2):171-175.
[2] 席文明,吴洪涛.微装配技术的发展现状[J].机械科学与技术,2002,21(6):861-865.
[3] 沈 飞,徐 德,唐永建,等.微操作/微装配中微力觉的测量与控制技术研究现状综述[J].自动化学报,2014,40(5):785-797.
[4] 张 娟,毛晓波,陈铁军.运动目标跟踪算法研究综述[J].计算机应用研究,2009,26(12):4407-4410.
[5] Kalman R E.A new approach to linear filtering and prediction problems[J].Journal of basic Engineering,1960,82(1):35-45.
[6] Lowe D G.Object recognition from local scale-invariant features[C]∥Proceedings of 1999 the Seventh IEEE International Conference on Computer Vision,IEEE,1999:1150-1157.
[7] Lowe D G.Distinctive image features from scale-invariant keypoints[J].International Journal of Computer Vision,2004,60(2):91-110.
[8] Beis J S,Lowe D G.Shape indexing using approximate nearestneighbour search in high-dimensional spaces[C]∥Proceedings of 1997 IEEE Computer Society Conference on Computer Vision and Pattern Recognition,IEEE,1997:1000-1006.