基于计算机视觉的高精度图像拼接
2011-05-12陈海松李益民韩秀清
陈海松,李益民,韩秀清
(深圳职业技术学院 工业中心,广东 深圳 518055)
机器视觉技术是精密测试技术领域内最具有发展潜力的新技术是,它综合运用了电子学、光学探测、图像处理和计算机技术,将机器视觉引入到工业检测中,实现对物体的三维尺寸或位置的快速测量,具有非接触性、速度快、柔性好等突出优点,在现代制造业中有着重要的应用前景。随着对测量精度要求的不断提高,依靠机械运动精度的定位方法已经不能满足要求,而高精度图像拼接技术不再依靠机械运动的精度,而是利用相邻图像重合部分的特征来确定其相对位置。这种方法摆脱了机械精度的限制,使视觉测量精度得到了很大的提高[1]。同时,随着图像量测中对精度和幅面要求的提高,在同一幅图像中往往不能同时满足两方面的要求,而可以采用被测量物体与图像传感器相对运动的方式,以采集到的多幅图像为依据进行量测、缝合和图像拼接,将所有合并的图像映射到同一图像坐标系内,显示在同一图像空间内。
1 计算机视觉检测系统的组成
计算机视觉检测系统按功能主要包含以下几个部分:(1)图像信息获取模块;(2)图像信息处理模块;(3)系统控制模块;(4)X-Y运动载物平台模块。
计算机视觉系统结构框图如图1所示。系统的工作过程:系统控制模块给X-Y平台控制部分的单片机一个命令,要求X-Y平台移动到相应的位置,到达位置后,反馈一个信号给系统控制部分,系统控制部分收到信息后与图像采集模块和处理模块通信,完成整个系统的操作。系统控制模块与单片机通过RS232协议进行通信,而系统控制模块与图像采集模块进行通信并且接收图像信息,其计算机需要配备专用的图像采集卡和I/O模块。在本系统中,图像采集卡采用的是Cognex MVS-8600,图像采集卡与相机通过专用15芯电缆相连,I/O模块采用的是基于PCI总线的并行输入输出端口。
图1 系统结构框图
2 检测系统的工作原理
计算机视觉检测系统工作流程主要分为图像信息获取、图像信息处理和机电系统执行检测结果三个部分。另外,根据系统需要还可以实时地通过人机界面进行参数设置和调整。检测系统工作原理图如图2所示。系统正常运行时,当被检测的样品在检测平台上装夹完成后,操作者手动向系统输入开始检测的指令,系统将首先根据对需要采集的图像参数的设置情况进行预计算,确定图像采集过程中平台需要定位的位置参数,然后自动移动到第一个图像采集位置,并向图像采集模块发出就位信号,图像采集系统接收到此信号并对当前视野内的图像进行采集,采集完成后向控制器发出完成图像采集信号,平台再次运动到下一个采集位置。重复上面的工作,直至所有的图像采集完成后,系统进入图像处理模块进行处理,根据得出的检测结果进行显示或者报警等操作。在整个操作过程中,图像采集模块和图像处理模块还需要连续地进行实时图像监视。这一操作只有在图像采集的瞬时时刻才会暂时挂起,每完成一次图像采集操作后,都会回到图像的实时监视界面。
图2 检测系统工作原理图
2.1 图像信息获取和处理模块设计
图像信息获取模块的硬件主要包括视觉传感器(CCD摄相机)、光学镜头、光源系统三个部分,根据被测工件特点和检测系统要求,合理选择与搭配这三个部分是高性能视觉检测系统的前提[2]。此模块的功能就是按系统控制模块的指令获得检测系统所需的图像信息,并以标准的图像信息格式传送给图像信息处理模块。
图像信息处理模块的功能是通过对系统获取的图像信息进行处理得出控制系统所需要的结果信息。此模块的核心是图像信息处理的算法,在本文系统中,采用的是Cognex公司提供的图像处理算法开发包CVL。
2.2 图像可拼接性的数学验证
图像的拼接结果可以看成是全景图像的部分或者全部,而全景图像是一种形式的全光函数,所以图像的可拼接性论证是基于全光函数的数学理论进行的。
全光函数是一个7维函数,其定义为:在任意时刻t,通过任意视点(x,y,z)的任意角度(θ,φ)的任意波长 λ的光线的强度 P7=P(x,y,z,θ,φ,λ,t),所以只要在某一视点采集所有入射光线,记录全光函数,就能通过某种方法构造出此场景。在图像拼接的实际应用中,可以通过对图像采集过程的约束来降低全光函数的维数。如果在图像采集过程中,视点的位置为同一个,则可以减少由于视点位置变化所引入的三个变量 (x,y,z);再对于同一个场景具有时间不变性或在采集的时刻之间,场景的变化可以忽略,则时间变量也可以去掉;同样,波长也是同一场景中的固定物理量,所以也可以去掉。据此,全光函数则可简化为一个二维函数P2=P(θ,φ)。由此可以看出,只要记录同一视点的各个不同的角度的光线信息,据此构造出全景图像。也就是说,可以通过在同一位置拍摄的不同角度的图像来得到一个完整的全景图像,这就是进行图像拼接的理论依据。
2.3 图像拼接的基本过程
图像拼接过程步骤[3-4]如下:
(1)获得在同一位置拍摄的具有重叠区域的两幅或者更多的图像。
(2)对图像进行坐标转换,解决相邻图像在深度方向上由于图像采集时采用不同焦距所带来的差异。如果图像在采集的过程中所采用的是同一焦距,则可以不进行这一步操作[5]。
(3)重叠区域局部匹配,找出相邻图像之间的精确位置关系。
(4)图像缝合,根据第(3)步所得到的相邻图像的精确位置关系,将图像进行合并。
(5)图像输出,将所有合并的图像映射到同一图像坐标系,显示在同一图像空间内。
在图像采集的过程中,为了简化图像坐标变换过程,应尽量采用同一焦距进行采集。所以,在同一视点所得的图像在深度方向上不需进行校正,如图3所示。
另外,如图4所示,在焦距不变的情况下,视点沿一条直线平移,则每次所得图像平面在同一个平面内,可以得到深度方向不具有差异性的图像信息。所以图4所示的情况也不需要进行坐标变换。图5所示为同一视点按不同焦距进行的拍摄方式,每次的成像平面在不同深度位置上,则需要通过坐标变换进行深度方向上的校正。
图3 同一视点,同一焦距
图4 视点平移,同一焦距
图5 同一视点,不同焦距
图像的局部特征匹配是通过比对相邻两幅具有重叠区域的图像,找到最佳匹配位置,实际上可以归结为如下模式的识别问题:设相邻的两幅图像中分别包含A、B两个相同的区域,求区域A相对于区域B的准确位置。常用的算法有:基于块的匹配、基于比值的匹配以及基于网格的快速匹配。
在这三种算法中,基于块的匹配算法的精度最高,但计算量较大,它是取一幅图像上重叠区域内的一部分作为模板,在另一幅图像上进行匹配,模板的尺寸越大,匹配的精度越高,计算量也越大,通常在不计时间成本的情况下采用该匹配算法。基于比值的匹配算法是一种精度比较低的算法,它是取一个图像上重叠区域内相隔一定宽度的两列图像的灰度比值作为模板,在另一图像上进行匹配,其计算量相对于基于块的匹配有所减少,但仍然很大,并且有大量除法运算,其精度也较低。基于网格的快速匹配方法是基于块的匹配算法的简化算法,包括粗略匹配和精确匹配两个匹配过程。粗略匹配过程是取较大的步长,通过计算匹配对应点的灰度差的平方和找到大致的匹配位置,然后再使用较小的步长进行匹配,直至补偿为零。这种算法在精度方面有所损失,但速度较基于块的匹配方法有所提高。
得到相邻图像的精确匹配位置后,就可将相应的图像重叠部分合并,进行图像的缝合。但如果简单地将图像进行合并,会由于两幅图像之间的亮度差异在图像上显现出明显的拼接边缘,所以要对图形拼接部分进行灰度的平衡处理,使两幅图像得到平滑地过渡。常用的灰度平衡处理有固定权重的重叠图像合并和权重线性渐变的重叠图像合并两种方法。
固定权重的重叠图像合并为:
权重线形渐变的重叠图像合并为:
其中,INEW、I1、I2分别为合并后的图像与合并前的左、右两幅图像;ω为固定权重合并方法中图像I1的固定权重;N为图形重叠区域的宽度,用该区域内像素的列数表示;n表示当前的合并位置,规定重叠区域从左到右依次为1~N。
图像经过缝合后,通常图像左右两侧能达到较好的过渡效果,但是如果原始图像之间亮度相差较大,则拼接图像的亮度会明显地分布不均衡。在这种情况下,最好先对原始图像进行亮度调节,观察两幅图像的灰度分布曲线,尽量使其最大值和最小值位于相近的灰度级附近,这样拼接后的图像会得到较好的整体均衡效果。
2.4 图像拼接仿真设计
图6是从在同一位置拍摄的两幅图像中分别取出的具有重合区域(重合区域约为80%)的两部分,由于是两次拍摄所得,所以图像上应该存在非零的偏移量,适合于验证上述拼接方法。由于两幅照片拍摄时间相距很短,所以图像的亮度几乎一致。为了验证在敏感区域模板配准过程中,差异矩阵的灰度均值差方根对图像亮度变化的适应能力,人为地将图6(b)中每个像素提高5个灰度级进行计算。
拼接仿真实验采用Matlab 7.0图像处理平台,分别对图像拼接的两次配准过程和图像的灰度重建过程编写Matlab函数实现,拼接过程的流程图如图7所示。像素级图像配准过程中,选择图6(a)中20×20的矩形区域作为敏感区域模板,以图6(b)中差异矩阵灰度均值差方根取最小值的位置作为最佳配准位置,Jmin=0.670 3(差异矩阵灰度均值差方根的最小值为0.670 3)。在像素内的配准过程中,取所得到的极大值位置偏移量序列的平均值,行、列偏移位置分别为0.3和0.45个像素尺度单位。分别对相应区域进行相应的灰度加权运算后得到拼接后的图像如图8所示。其中的虚线(左区域)、实线(右区域)线条标示了原始图像所包含的区域。
图6 待拼接图像(左右)拼接
图7 拼接流程图
图8 拼接后的图像
高精度二维运动平台可以从不同位置对物体进行取像,由图像处理单元对图像实现高精度拼接后进行检测和测量,其拼接过程由软件自动完成二次精密校准和双重加权图像重建,图像的测量不再依靠平台运动的机械精度。按图6所示的流程进行图像拼接就可以得到高精度的拼接图像,可以满足大幅面图像测量的要求,对于视觉测量过程中摆脱平台的运动误差,提高测量精度具有重要意义。
[1]段峰,王耀南.机器视觉技术及其应用综述[J].自动化博览,2002(3).
[2]王俊杰,刘家茂,胡运发,等.图像拼接技术[J].计算机科学,2003(1):71-74.
[3]赵唯,李端义.基于小波变换与形态学的一种边界重叠图像的拼接算法[J].微机发展,2001(6):3-6.
[4]BUTALEB A S.Automatic thresholding ofgray-level pictures using two-dimensional entropy[J].Computer Vision Graphics Image Processing, 1989,47:22-32.
[5]Dalsa Inc.CCD image capture technology databook[M].CCD Image Sensors, Waterloo, Ontario, 1998.