一种基于主成分分析提取独立sift关键点的优化算法的制作方法

文档序号:15047882发布日期:2018-07-27 23:07阅读:152来源:国知局

本发明涉及一种基于主成分分析提取独立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)为高斯分布的概率密度即:其中u是直方图的均值,σ是直方图的方差;

23)利用主成份分析提取特征向量:对步骤22)得到的呈高斯分布的sift向量做归一化处理,求协方差矩阵的特征向量和特征值,将协方差矩阵的特征值按大到小排序,将前k个特征值对应的特征向量作为主成份构成变换矩阵,令原sift向量构成的矩阵与变换矩阵相乘得到一个新的矩阵;

24)将独立主成分重映射为图像上的关键点:得到新矩阵之后,新矩阵和变换矩阵相乘得到重映射后的矩阵。

前述的一种基于主成分分析提取独立sift关键点的优化算法,其特征是,所述步骤1)包括如下内容:

步骤11)构建高斯尺度空间:对原图像i(x,y)和高斯滤波器相乘得到尺度空间,其中高斯滤波器x,y是坐标,σ是高斯滤波器的方差,函数h(x,y,σ)表示此高斯滤波器上的每一个像素值;

尺度空间为l(x,y,σ)=i(x,y)*g(x,y,σ),其中函数l(x,y,σ)代表经过高斯滤波之后的图像的每个像素值;

设尺度空间由o组s个滤波后的图像构成,每组尺寸为前一组的1/2长,1/2宽,每组的尺度由公式其中函数σ(o,s)代表第o组第s层的过滤后的图像所用的高斯滤波器的方差,分母上的s是组内图像总个数;

步骤12)构建高斯差分金字塔:差分金字塔的每层图像由高斯金字塔上下两层相减得到,即d(x,y,σ)=l1(x,y,σ)-l2(x,y,σ),其中d(x,y,σ)代表差分金字塔每层图像的像素值,l1(x,y,σ),l2(x,y,σ)代表高斯金字塔中两层相邻的图像;

步骤13)确定潜在特征点:差分金字塔中每层,每个像素和其上下两层及其周围8个像素一共26个像素比较,寻找最大值,最小值;若是最大值或最小值,则此像素为潜在关键点;

步骤14)关键点精确定位:建立方程其中x=(x,y,σ)t,d代表差分金字塔中的图像;对d(x)求导,并令结果等于0,得到极值点的偏移量得到代表相对插值中心的偏移量;当任一维度大于0.5时,要改变关键点位置,将新坐标代入公式:若|d(x)|小于阈值,则删除极值点。

前述的一种基于主成分分析提取独立sift关键点的优化算法,其特征是,所述步骤3)的具体内容为:

设a和β为由dxx,dxy,dxy,dyy组成的矩阵的特征值。其中令t=dxx+dyy=a+β,并且det=dxxdyy-(dxy)2=aβ,令r=a/β,则

当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)和高斯滤波器相乘得到尺度空间,其中高斯滤波器x,y是坐标,σ是高斯滤波器的方差,函数g(x,y,σ)表示此高斯滤波器上的每一个像素值;

尺度空间为l(x,y,σ)=i(x,y)*g(x,y,σ),其中函数l(x,y,σ)代表经过高斯滤波之后的图像的每个像素值;

设尺度空间由o组s个滤波后的图像构成,每组尺寸为前一组的1/2长,1/2宽,每组的尺度由公式其中函数σ(o,s)代表第o组第s层的过滤后的图像所用的高斯滤波器的方差,分母上的s是组内图像总个数。为了在每组中检测s个尺度的极值点,高斯金字塔每组需要s+3层,实际计算s∈[3,5]。

步骤12)构建高斯差分金字塔:差分金字塔的每层图像由高斯金字塔上下两层相减得到,即d(x,y,σ)=l1(x,y,σ)-l2(x,y,σ),其中d(x,y,σ)代表差分金字塔每层图像的像素值,l1(x,y,σ),l2(x,y,σ)代表高斯金字塔中两层相邻的图像。

步骤13)确定潜在特征点:差分金字塔中每层,每个像素和其上下两层及其周围8个像素一共26个像素比较,寻找最大值,最小值;若是最大值或最小值,则此像素为潜在关键点。

步骤14)关键点精确定位:建立方程其中x=(x,y,σ)t,d代表差分金字塔中的图像;

对d(x)求导,并令结果等于0,得到极值点的偏移量得到代表相对插值中心的偏移量;当任一维度大于0.5时,要改变关键点位置,将新坐标代入公式:若|d(x)|小于阈值,则删除极值点。

步骤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()可以由下式得到:w是积分假变量。

规定直方图的概率密度函数的任何值都不能为零,令规定直方图的概率密度pz(z)为高斯分布的概率密度即:其中u是直方图的均值,σ是直方图的方差。

令变换函数t是积分假变量,u是输出矩阵的均值,σ是矩阵的方差。

令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做归一化处理:处理后的矩阵x值为

每两个向量之间的协方差为:则可以得到一个n*n大小x的协方差矩阵。对协方差矩阵求特征向量和特征值。在对协方差矩阵求特征向量的过程中可以得到n个特征值,并从大到小排列即:λ1≥λ2≥…≥λd≥λd+1≥…λn,将前k个特征值对应的特征向量作为主成份。k的值越大,保留原矩阵特征的不确定性越大,就更加接近真实的数据。如果k比较小,保留的原来的矩阵特征的不确定性越少,导致降维后的数据不够真实。

所以取一个阈值限定信息的损失:sii代表第i个特征值。t∈[0,1]为选取的阈值,表示选取的k值使信息损失不超过1-t。

24)将独立主成分重映射为图像上的关键点:得到新矩阵之后,新矩阵和变换矩阵相乘得到重映射后的矩阵。由特征向量得到变换矩阵u=(λ1,λ2…λi)。令原矩阵x和变换矩阵u相乘得到矩阵z,即:z=x*u。由选取的前k个特征向量可知特征向量所对应的原sift向量,即可知z矩阵中的向量映射的sift向量。将z矩阵中的向量重映射到图像上,最终得到的sift特征点即为筛选后的特征点。

步骤3)消除边缘效应:设a和β为由dxx,dxy,dxy,dyy组成的矩阵的特征值。其中令t=dxx+dyy=a+β,并且det=dxxdyy-(dxy)2=aβ,令r=a/β,则当r为设定的阈值时,只要检测关键点小于阈值则保留。

步骤4)生成关键点的描述:在关键点周围取一个半径为r的圆,统计圆内所有像素的方向,将像素最多的方向作为此关键点的主方向;将坐标轴方向旋转为关键点的方向,将此区域分成4*4个子区域,在每个子区域内统计像素的8个方向的梯度值,此关键点用4*4*8=128个维度的向量表示。

步骤5)匹配关键点:利用sift算法分别得到两幅待匹配的图像的sift特征点,对于第一幅图像上的每个sift特征点,计算与第二幅图像上的sift特征点的欧式距离,找到欧式距离最近的前两个关键点,如果最近的欧氏距离d1除以次近的欧式距离d2小于某个事先设定的阈值ritio,则认为此特征点与另一幅图像上欧式距离最近的特征点匹配,否则不匹配。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1