王晓宁, 宋晓炜, 杨 蕾, 李梦龙, 蔡文静
(中原工学院 电子信息学院, 河南 郑州 450007)
双目视觉技术[1]的原理是利用不同方位的左右两台摄像机对同一场景目标进行拍摄,获取两幅二维数字图像后,根据双目视差原理在计算机中计算出该场景的三维数据信息[2],然后利用这些数据在计算机中呈现现实场景的三维几何图像。双目视觉技术的核心是立体匹配[3],即获取精确匹配点的过程。
基于特征的匹配主要是通过提取图像上几何形状信息进行的,特征提取的准确与否决定匹配的精度,因此获取稳定的特征在图像匹配中很有用[4]。近几年张量理论发展迅速,张量处理图像的优势在于对所处理数据多维性质的良好表示。通过结构张量能够找到空间中每个点在其局部邻域中的向量表示(该点的围绕点存在一定的规则性),计算局部邻域中所有点的梯度向量,使其方向更加接近这种向量表示[5]。为改善结构张量的鲁棒性,可以根据局部结构进行滤波,因为这种方向向量非常适合局部结构。结构张量在局部结构的区域检测能力方面表现更好,十分适合在图像中寻找行人、汽车、路标等特定图形[6]。本文将亮度信息与结构张量结合起来,形成扩展结构张量,用于对交通路标进行匹配,并且将其与SURF(Speeded Up Robust Feature)匹配算法、PCA(Principal Components Analysis)匹配算法对比,研究扩展结构张量在双目视觉立体匹配中的性能。
SURF匹配算法是在SIFT(Scale-invariant Feature Transform)算法基础上提出来的,SURF算子不仅拥有SIFT算子所有的优点,而且能够满足图像匹配的实时性要求[7]。
SURF匹配算法实现的过程为:首先进行特征点检测,并计算图像每个像素对应Hessian矩阵行列式的值,对比后把行列式值的局部最大值定为兴趣点位置(因为该点的行列式值比周围点都大,所以其周围会更亮或者更暗);然后通过统计特征点邻域内的harr小波特征来确定特征点的主方向;最后,为了让光照变换或者角度变换下的特征点都有一定的稳定性,必须建立一个特征描述向量(这是关键的一步)。通过以上步骤就可以完成特征提取,进而进行匹配。
边缘是图像的常见特征,边缘通常是图像里某些位置灰度发生快速改变的像素之和,代表了图像上改变最明显的位置,它一般处在目标、背景和区域之间。
PCA匹配算法属于多变量的分析方法[8],经常在大容量数据分析中使用。使用PCA匹配算法选取一些特征,使数据更加集中。为了减少数据量,可使用少量特征数据近似表达整个数据集。如果一些数据与大部分数据都没有共同的特征,则说明这些数据并不能由主成分表示。采用主分量对大部分数据如一幅图像的灰度进行表示,对应的就是图像中较大面积的灰度平滑位置,而剩余的像素点就是与上述区域不同的点,即灰度产生变异的点(又叫边缘点)。因此,使用PCA匹配算法时,通过主分量分析进行残差重构,能够提取图像的边缘信息。
如果图像是二维离散信号,那么其相应的结构张量为:
(1)
虽然式(1)中有4个分量,但因为Txy=Tyx,所以实际上只有3个分量。因此,T是正对称矩阵。
结构张量虽然提供了关于输入图像局部区域结构的有价值信息[9],但双目立体匹配还需要亮度信号,所以可以将亮度与结构张量结合起来,组成非线性扩展结构张量(EST),即:
(2)
对于EST,虽然快速计算时也可用其他滤波器,但通常选择各向异性扩散滤波器作为其平均算子[10]。
若图像为彩色图像,则式(2)中UE可扩展为:
(3)
由式(3)获得的张量是对称的。如果张量UE是L维度的,那么有k个独立分量,且:
(4)
例如,L=2,3,4,5,…,则可获得k个(k=3,6,10,15…)独立分量。
双目立体视觉技术可以很好地模拟人的双眼观察,能够对三维空间进行立体重塑。图1所示为双目平行摄像机的模型[11]。这个模型要求两个摄像机光轴完全平行且高度一致,另外成像平面需要在同一平面上。
图1 双目平行摄像机模型
图2所示为平行双目摄像机的深度计算二维平面。两摄像机光心Cl和Cr之间的距离为B(即基线距离),目标点P在左右图像上的成像点分别为Pl和Pr,摄像机焦距为f,视差d=xl-xr。
图2 平行双目摄像机的深度计算二维平面示意图
根据三角关系可得:
(5)
式中:Z表示物体与摄像机的距离,也就是通常所说的深度。通过摄像机标定的参数可计算出深度。
本文根据文献[12]进行双目摄像机的标定[13]。实验在Matlab 2011a下的标定工具箱中完成,所用的标定板如图3所示。为获得好的标定结果,一般采集10~20组标定图像。本文对双目摄像机标定时,采集了15组大小为1 288×964(pixel)的图像。
获得标定图像后,读取图像,提取棋盘格上的角点,获取摄像机初值参数,并进行参数整体优化和镜头畸变程度的计算,得到左右摄像机各自参数后,通过立体标定构建左右摄像机的位置关系(包括旋转关系和平移关系)。双目立体摄像机标定实验参数如表1所示。
图3 标定板
表1 双目立体摄像机标定参数
根据标定参数可计算出:B=211.5 mm,f=17.0 mm。
匹配实验选用道路上标牌的图像。为了解扩展结构张量匹配方法的匹配准确性,选用了两组路标图像进行实验(一组是深度为4 824 mm处的禁止停车路标,另一组是深度为3 604 mm处的禁止鸣笛路标)。实验中分别对这两组路标图像进行SURF匹配、PCA匹配和扩展结构张量匹配,并比较它们的匹配精度。
第一组为禁止停车路标的匹配实验(见图4)。其深度真值为4 824 mm,由深度真值计算出的标准视差为12 pixel。根据标准视差可以得到匹配错点数。
(a) SURF匹配
(b) PCA匹配
(c) 扩展结构张量匹配图4 禁止停车路标的匹配实验图例
通过第一组实验,得到的总匹配点数和匹配错点数如表2所示。
表2 第一组匹配实验数据
第二组为禁止鸣笛路标的匹配实验(见图5)。其深度真值为3 604 mm,由深度真值计算出的标准视差为16 pixel。根据标准视差可以得到匹配错点数。
(a) SURF匹配
(b) PCA匹配
(c) 扩展结构张量匹配图5 禁止鸣笛路标的匹配实验图例
通过第二组实验,得到的总匹配点数和匹配错点数如表3所示。
表3 第二组匹配实验数据
对以上两组实验数据进行计算,可获得错误匹配点数占总匹配点数的比例(见图6)。
图6 3种匹配算法的误差对比
从图6可以看出,利用SURF匹配算法得到的误匹配率很高,PCA匹配算法相对于SURF匹配算法来说结果较好,但也存在较高的误匹配率,扩展结构张量匹配算法与以上两种算法相比能获得较低的误匹配率,在一定程度上保证了匹配的准确性。
本文将亮度信息与结构张量相结合,得到一种扩展结构张量的双目视觉立体匹配算法。在双目图像的特征匹配过程中,针对SURF特征匹配的不准确性以及PCA边缘检测后匹配的不足,该算法提高了特征匹配的精度。对两组路标的图像进行实验,对比3种匹配算法可知,扩展结构张量的双目视觉立体匹配算法更有效,误匹配率有明显降低,达到了预期匹配效果。
该算法在模式识别、立体导航等领域具有一定的应用价值。