本发明涉及一种基于主成分分析提取独立sift关键点的优化算法,属于图像处理技术领域。
背景技术:
在图像处理中,图像特征具有重要的意义。目前,常用的图像特征有几何特征、颜色特征、纹理特征和特征点等,且这些特征已广泛的用于目标识别、运动估计等领域。提取出具有鲁棒性的图像特征,在实际应用中非常重要。尺度不变的特征点对光照、尺度、旋转、缩放等图像变换均具有很强的适应能力。特征点是图像的重要特征,相比其它图像特征,尺度不变的特征点具有旋转不变性和不随光照变化等优点。利用尺度不变特征点进行的图像处理,既不会损失图像的重要的灰度信息,同时又可以减少计算量。近年来,尺度不变的特征点提取算法以及应用,己成为图像处理领域的研究热点。
现有技术中,虽然尺度不变特征(scaleinvariantfeaturetransform,sift)算法是目前比较常见且有效的特征点提取算法。它选择高斯核构造多尺度空间,并通过高斯残差在尺度空间上的选择极值点为特征点,并通过计算特征点局部邻域内的梯度方向直方图作为关键点描述子。但是,sift算法计算复杂,由于算法提取的是128维的描述子,所以降低了图像匹配和检索的速度。有人针对这一缺点提出了基于sift算法和主成份分析法(principalcomponentanalysis,pca)相结合的快速匹配算法即sift-pca算法,该算法的主要目标是利用pca算法降低sift描述子的维度,以此实现描述子之间的快速匹配,但是仍然无法避免sift特征点的相似引起的匹配出错的问题。
技术实现要素:
为解决现有技术的不足,本发明的目的在于提供一种基于主成分分析提取独立sift关键点的优化算法,使待匹配的关键点之间互相独立,减少匹配错误,避免sift特征点的相似引起的匹配出错的问题。
为了实现上述目标,本发明采用如下的技术方案:
一种基于主成分分析提取独立sift关键点的优化算法,其特征是,包括如下步骤:
步骤1)采用sift算法得到关键点的精确定位;
步骤2)对步骤2)得到的关键点进行独立性筛选,对由sift算法得到的sift特征点及其周围像素的直方图进行直方图匹配,使其直方图呈高斯分布;然后引入主成分分析算法使得主成分相互独立;主成份通过特征值映射到原sift特征点及其周围像素的直方图,得到的sift特征点之间互相独立,完成对sift特征点的筛选;
步骤3)消除边缘效应;
步骤4)生成关键点的描述;
步骤5)匹配关键点。
前述的一种基于主成分分析提取独立sift关键点的优化算法,其特征是,所述步骤2)的具体内容为:
21)提取尺度不变特征的特征点及其周围像素的灰度直方图;
在sift特征点周围取一个k*k的矩阵,用这k2个像素对特征点及其周围像素进行描述;由公式p(rk)=nk得到矩阵的直方图,即作为sift特征点及其周围像素的灰度直方图,其中rk代表灰度值,nk代表此灰度值对应的像素个数;
22)匹配灰度直方图,使主成分分析的输入呈高斯分布:
规定直方图的概率密度函数的任何值都不能为零,令规定直方图的概率密度pz(z)为高斯分布的概率密度即:
23)利用主成份分析提取特征向量:对步骤22)得到的呈高斯分布的sift向量做归一化处理,求协方差矩阵的特征向量和特征值,将协方差矩阵的特征值按大到小排序,将前k个特征值对应的特征向量作为主成份构成变换矩阵,令原sift向量构成的矩阵与变换矩阵相乘得到一个新的矩阵;
24)将独立主成分重映射为图像上的关键点:得到新矩阵之后,新矩阵和变换矩阵相乘得到重映射后的矩阵。
前述的一种基于主成分分析提取独立sift关键点的优化算法,其特征是,所述步骤1)包括如下内容:
步骤11)构建高斯尺度空间:对原图像i(x,y)和高斯滤波器相乘得到尺度空间,其中高斯滤波器
尺度空间为l(x,y,σ)=i(x,y)*g(x,y,σ),其中函数l(x,y,σ)代表经过高斯滤波之后的图像的每个像素值;
设尺度空间由o组s个滤波后的图像构成,每组尺寸为前一组的1/2长,1/2宽,每组的尺度由公式
步骤12)构建高斯差分金字塔:差分金字塔的每层图像由高斯金字塔上下两层相减得到,即d(x,y,σ)=l1(x,y,σ)-l2(x,y,σ),其中d(x,y,σ)代表差分金字塔每层图像的像素值,l1(x,y,σ),l2(x,y,σ)代表高斯金字塔中两层相邻的图像;
步骤13)确定潜在特征点:差分金字塔中每层,每个像素和其上下两层及其周围8个像素一共26个像素比较,寻找最大值,最小值;若是最大值或最小值,则此像素为潜在关键点;
步骤14)关键点精确定位:建立方程
前述的一种基于主成分分析提取独立sift关键点的优化算法,其特征是,所述步骤3)的具体内容为:
设a和β为由dxx,dxy,dxy,dyy组成的矩阵的特征值。其中
当r为设定的阈值时,只要检测关键点小于阈值则保留。
前述的一种基于主成分分析提取独立sift关键点的优化算法,其特征是,所述步骤4)的具体内容为:在关键点周围取一个半径为r的圆,统计圆内所有像素的方向,将像素最多的方向作为此关键点的主方向;将坐标轴方向旋转为关键点的方向,将此区域分成4*4个子区域,在每个子区域内统计像素的8个方向的梯度值,此关键点用4*4*8=128个维度的向量表示。
前述的一种基于主成分分析提取独立sift关键点的优化算法,其特征是,所述步骤5)的具体内容为:利用sift算法分别得到两幅待匹配的图像的sift特征点,对于第一幅图像上的每个sift特征点,计算与第二幅图像上的sift特征点的欧式距离,找到欧式距离最近的前两个关键点,如果最近的欧氏距离d1除以次近的欧式距离d2小于某个事先设定的阈值ritio,则认为此特征点与另一幅图像上欧式距离最近的特征点匹配,否则不匹配。
本发明所达到的有益效果:本方法通过对由sift算法得到的sift特征点及其周围像素的直方图进行直方图匹配,使其直方图呈高斯分布;然后,使其作为pca算法的输入,则pca输出的主成份就互相独立;最后,主成份通过特征值映射到原sift特征点及其周围像素的直方图,得到的sift特征点之间互相独立,完成对sift特征点的筛选了,使待匹配的关键点之间互相独立,减少匹配错误的概率。
附图说明
图1是本方法的流程示意图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
现有技术中sift方法中存在的问题:sift算子是一种局部算子,由于局部特征的相似性,例如当局部纹理呈规律的反复时,在这一区域的多个sift特征点的128维向量所表示的信息区别不大,在匹配时容易造成特征点之间的误配和一个sift特征点的重复匹配。另外,在使用pca提取主成份时,输入的样本一般是随机分布的,此时输出线性不相关,但不能确定输出之间是否独立,即非线性的部分可能存在相关性。只有当样本呈高斯分布时,输出才是独立的。
针对以上问题本文提出了一种利用主成份分析(principalcomponentanalysis,pca)提取独立的sift特征点,使待匹配的特征点之间互相独立,减少匹配错误的方法,包括如下步骤:
步骤1)采用sift算法得到关键点的精确定位,具体步骤内容与sift算法相同:
步骤11)构建高斯尺度空间:对原图像i(x,y)和高斯滤波器相乘得到尺度空间,其中高斯滤波器
尺度空间为l(x,y,σ)=i(x,y)*g(x,y,σ),其中函数l(x,y,σ)代表经过高斯滤波之后的图像的每个像素值;
设尺度空间由o组s个滤波后的图像构成,每组尺寸为前一组的1/2长,1/2宽,每组的尺度由公式
步骤12)构建高斯差分金字塔:差分金字塔的每层图像由高斯金字塔上下两层相减得到,即d(x,y,σ)=l1(x,y,σ)-l2(x,y,σ),其中d(x,y,σ)代表差分金字塔每层图像的像素值,l1(x,y,σ),l2(x,y,σ)代表高斯金字塔中两层相邻的图像。
步骤13)确定潜在特征点:差分金字塔中每层,每个像素和其上下两层及其周围8个像素一共26个像素比较,寻找最大值,最小值;若是最大值或最小值,则此像素为潜在关键点。
步骤14)关键点精确定位:建立方程
对d(x)求导,并令结果等于0,得到极值点的偏移量
步骤2)对步骤2)得到的关键点进行独立性筛选,对由sift算法得到的sift特征点及其周围像素的直方图进行直方图匹配,使其直方图呈高斯分布;然后引入主成分分析算法使得主成分相互独立;主成份通过特征值映射到原sift特征点及其周围像素的直方图,得到的sift特征点之间互相独立,完成对sift特征点的筛选。具体步骤为:
21)提取尺度不变特征的特征点及其周围像素的灰度直方图;
在sift特征点周围取一个k*k的矩阵,用这k2个像素对特征点及其周围像素进行描述;由公式p(rk)=nk得到矩阵的直方图,即作为sift特征点及其周围像素的灰度直方图,其中rk代表灰度值,nk代表此灰度值对应的像素个数,灰度值r的取值区间为[0,l-1];
22)匹配灰度直方图,使主成分分析的输入呈高斯分布:
定义一个灰度映射:s=t(r),0≤r<l-1,s代表原直方图每个具有r值的像素值对应的像素值,t()代表这种映射。
设pr(r)表示灰度r的概率密度函数(pdf),则t()可以由下式得到:
规定直方图的概率密度函数的任何值都不能为零,令规定直方图的概率密度pz(z)为高斯分布的概率密度即:
令变换函数
令g(z)=t(r)=s,则矩阵的每一个像素的灰度值为:z=g-1[t(r)]=g-1(s),所以经过变换,得到了sift特征点描述矩阵对应的输出矩阵,输出矩阵的像素呈高斯分布。
由于灰度值的取值区间为[0,l-1],令m=l-1,所以矩阵可以作为一个m维的向量。由于一幅图像由n个sift特征点,所以可以得到一个m*n的矩阵x。
23)利用主成份分析提取特征向量:对步骤22)得到的呈高斯分布的sift向量做归一化处理,求协方差矩阵的特征向量和特征值,将协方差矩阵的特征值按大到小排序,将前k个特征值对应的特征向量作为主成份构成变换矩阵,令原sift向量构成的矩阵与变换矩阵相乘得到一个新的矩阵。具体地:
对矩阵x做归一化处理:
每两个向量之间的协方差为:
所以取一个阈值限定信息的损失:
24)将独立主成分重映射为图像上的关键点:得到新矩阵之后,新矩阵和变换矩阵相乘得到重映射后的矩阵。由特征向量得到变换矩阵u=(λ1,λ2…λi)。令原矩阵x和变换矩阵u相乘得到矩阵z,即:z=x*u。由选取的前k个特征向量可知特征向量所对应的原sift向量,即可知z矩阵中的向量映射的sift向量。将z矩阵中的向量重映射到图像上,最终得到的sift特征点即为筛选后的特征点。
步骤3)消除边缘效应:设a和β为由dxx,dxy,dxy,dyy组成的矩阵的特征值。其中
步骤4)生成关键点的描述:在关键点周围取一个半径为r的圆,统计圆内所有像素的方向,将像素最多的方向作为此关键点的主方向;将坐标轴方向旋转为关键点的方向,将此区域分成4*4个子区域,在每个子区域内统计像素的8个方向的梯度值,此关键点用4*4*8=128个维度的向量表示。
步骤5)匹配关键点:利用sift算法分别得到两幅待匹配的图像的sift特征点,对于第一幅图像上的每个sift特征点,计算与第二幅图像上的sift特征点的欧式距离,找到欧式距离最近的前两个关键点,如果最近的欧氏距离d1除以次近的欧式距离d2小于某个事先设定的阈值ritio,则认为此特征点与另一幅图像上欧式距离最近的特征点匹配,否则不匹配。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。