利用尺度空间下特征点进行匹配的电子稳像方法⋆
2012-08-07王雪静王小鹏闫建伟魏冲冲
王雪静, 王小鹏, 闫建伟, 魏冲冲
(兰州交通大学 电子与信息工程学院, 兰州 730070)
0 引言
电子稳像旨在消除视频序列中的各种抖动,为此诸多学者提出了各种解决方法。常见的稳像方法有灰度投影法[1]、块匹配法[2]、位平面匹配法[3]和特征点匹配法[4]。灰度法算法简单速度快,但是要求图像灰度变化丰富,不能处理具有旋转的图像。相位相关法可以匹配旋转角度很大的图像但是计算量大。位平面法计算量小但不稳定。相对而言特征点匹配法即可以保证精度,同时计算量也较小,因此本文采用SIFT[5]特征匹配算法。
1 基于SIFT特征匹配的电子稳像
电子稳像算法有两大基本步骤:运动估计和运动补偿。运动估计就是找出当前帧相对于参考帧的偏移量。运动补偿就是估计出偏移量后对图像进行补偿。运动估计是稳像算法中的最为关键的步骤。本文采用特征点匹配算法计算图像的偏移量。
基于特征点的运动估计要尽可能准确的提取出图像的特征点并进行匹配,所以选择高精度的方法十分重要。本文采用的SIFT算法是一种在的尺度空间下提取图像特征点的方法,即尺度不变特征变换(Scale Invariant Feature Transform),解决了不同尺度下图像特征点提取问题。SIFT算法独特性好,信息量丰富,精确率较高。
1.1 SIFT算法
SIFT算法是一种提取局部特征的算法,在尺度空间寻找极值,提取极值点位置,尺度,旋转不变量。SIFT匹配算法分为以下几个步骤。
1.1.1 特征点的检测
1) 尺度空间建立
首先建立尺度空间,一幅二维图像I(x,y)尺度空间定义为:
其中,G(x,y,)σ是尺度可变高斯核函数。(x,y)是空间坐标,σ是尺度因子。
2)建立高斯金字塔和DOG金字塔。
为了得到在不同尺度空间下的稳定特征点,将图像I(x,y)与不同尺度因子下的高斯核进行卷积,得到不同的尺度空间,再用不同的尺度空间构成高斯塔。通常在同一组中,如果一幅图的尺度因子为σ,下一幅图中的尺度因子为k×σ。
高斯金字塔可分为两步:(1)对图像做高斯平滑;(2)对图像进行降采样。
通常高斯金字塔为4组,每组有5层。第二组金字塔第一层图像由第一组金字塔中间层尺度图像进行降采样得到,采样因子为2,以后每组金字塔类似的由上一组金字塔得到。如图1所示。
图1 高斯金字塔构造
现在使用这些图像来生成另一类图像组Differece of Gaussain(DOG),即求高斯算子的差值。DOG(Difference of Gaussian)是相邻的两尺度空间函数之差,用公式表示为:
DOG金字塔通过高斯金字塔中相邻尺度空间函数相减即可,如图2所示。
图2 DOG金字塔构造
3) DOG空间极值点检测
在尺度空间下寻找局部极值点。在DOG空间的金字塔中间层的每个像素需要和它周围的8个点及上下层中相邻的9个点共26个像素点进行比较,如果这个像素点是极值点则保存该点。如图3所示,标记为白色的点与周围26个点进行比较。
图3 尺度空间极值检测
1.1.2 特征点定位
检测出的这些极值点并非都是特征点,由于DOG函数对边缘和噪声比较敏感,这些极值点还需要进一步检验。
首先去除低对比度的极值点。用泰勒公式将D ( x,y,σ)在局部极值点 ( x0,y0,σ)处展开。
其中x= (x,y,σ)。
上式对x求偏导并令结果为0,得到精确的极大值点Xmax。
将(4)带入(3)中,取前两项得到下式。
计算出 D ( Xmax),这里设定了一个阈值0.03。如果D ( Xmax)≥0.03,则保留该点,否则丢弃。
下一步是消除不稳定的边缘响应点。DOG函数中定义不好的极值点在横跨边缘的方向有较大的主曲率,在垂直边缘的方向有较小的主曲率。而主曲率通过计算在该点的2×2的Hessian矩阵H求出:
其中,
D的主曲率和H的特征值成正比,计算它们的比率。
令α为最大特征值,β为最小特征值,则:
令α=rβ,则:
1.1.3 特征向量生成
1)特征点方向确定
经过上述步骤得到的点为特征点,然后为这些点指定方向和模值。利用特征点临域像素的梯度方向分布特性为每个特征点指定方向参数,使算子具备旋转不变性。
式(8)分别为点(x,y)处的梯度模值和梯度方向公式。
L所用尺度为每个像素点各自所在的尺度。
在以特征点为中心的邻域窗口内采样,并用直方图统计邻域像素的梯度方向。梯度直方图的范围是0°~360°,其中每10°一个方向,总共36个方向。
特征点的方位用梯度直方图来决定。对直方图进行两次高斯平滑。直方图峰值代表了该特征点处临域梯度的主方向,即作为该特征点的方向。如果存在其他相当于主峰值80%的峰值时,这个方向就认为是该特征点的辅方向。所以一个特征点可能会有一个主方向,多个辅方向,可以增强匹配的鲁棒性。
2)生成特征点描述子
通过以上步骤,每一个特征点都拥有3个信息:位置、尺度、方向。下面为每一个特征点建立一个描述子。
首先将坐标轴旋转为特征点的方向,以确保旋转不变性。
以特征点为中心取8×8的窗口。图 4(a)中的中央黑点为当前特征点的位置,每个小格代表特征点邻域所在尺度空间的一个像素,箭头方向代表该像素的梯度方向,箭头长度代表梯度模值,图中黑色的圈代表高斯加权的范围。然后在每4×4的小块上计算8个方向的梯度方向直方图,绘制每个梯度方向的累加值,即可形成一个种子点,如图 4(b)所示。此图中一个特征点4个种子点组成,每个种子点有8个方向向量信息。
图4 图像梯度信息及特征向量
实际计算过程中,为了增强匹配的稳健性,对每个特征点使用 4×4共16个种子点来描述,这样对于一个特征点就可以产生128个数据,即最终形成128维的SIFT特征向量。此时SIFT特征向量己经去除了尺度变化、旋转等几何变形因素的影响,再继续将特征向量的长度归一化。
1.1.4 特征向量匹配
当两幅图像的SIFT特征向量生成后,对其进行相似度判定,此处采用特征点特征向量的欧式距离作为两幅图像中特征点的相似性判定度量,即在图像2中找到与图像1中的特征点欧式距离最近的前两个特征点,当最近距离和次近距离的比值小于某个比例阈值r时,则接受这个匹配点对,r越小,匹配的精度越高。
1.2 运动补偿
运动补偿的目的是校正当前帧,在只考虑摄像机平移运动的情况下,采用平移模型:
其中,(xk+1,yk+1)与( x k, yk )是参考帧和当前帧的一对特征匹配点,(∆ x,∆ y)是当前帧相对与参考帧的偏移量。根据式(8)计算出的偏移量,对每一帧进行补偿。
2 实验结果
实验选取在铁道路口拍摄的一组视频,视频因火车经过时引起摄像机的震动导致视频的抖动。在MATLAB环境下用本文方法进行稳像实验。实验中,k取值为,阈值r≤0.4。最后采用RANSAC算法对匹配点进行检验,剔除错误匹配点。图5(a)和图5(b)为当前帧与参考帧的特征点提取结果图像,其中每个特征点使用 4×4共16个种子点来描述。图5 (c)~(e)分别为参考帧、当前帧及稳像后的帧图像。
图5 实验图像
表1给出了在参考帧与当前帧中提取的特征点数以及匹配点数及匹配准确率,可以看出,SIFT算法可以提取大量的特征点,经验证后的匹配点准确率也较高。
表1 特征点匹配结果
3 结束语
在分析SIFT算法基本原理的基础上,将其应用电子稳像过程中的运动矢量估计。由于SIFT算法能够在不同的尺度空间下提取图像特征点,并采用多维向量描述SIFT特征信息,因此,获得的特征点数量多且独特性好,可以较准确地对参考帧和当前帧图像进行特征匹配,从而得到较好的稳像效果。
[1]汪小勇,李奇,徐之海,等.用于实时数字稳像的灰度投影算法研究[J].光子学报,2006,9(8):1268-1271.
[2]余颖,胡继承.基于预测搜索距的快速块匹配运动估计算法[J].计算机工程与设计,2005,26(8):155-2157.
[3]张博,任广辉.采用下采样和位平面匹配的局部运动估计[J].光电工程,2005,32(2):75-79.
[4]朱娟娟,郭宝龙.一种鲁棒的电子稳像系统[J].西安电子科技大学学报:自然科学版,2007,34(3):418-422.
[5]Lowe, D.G. Distinctive Image Features from Scale-Invariant Keypoints[J].International Journal of Computer Vision,2004,60(2):91-110.
[6]Battiato, S.G.Gallo, G.Puglisi.SIFT Features Tracking for Video Stabilization[C].14th International Conference on Image Analysis and Processing (ICIAP 2007).
[7]徐晓鹏.基于改进sift算法的目标识别研究[D].南京:南京理工大学,2011.
[8]任苗苗.用于视频监控的电子稳像算法研究[D].哈尔滨:哈尔滨工业大学,2010.
[9]于丽莉,戴青.一种改进的SIFT匹配算法[J].计算机工程,2011,37(2):210-212.