本发明涉及计算机图像处理技术领域,尤其涉及一种低复杂度尺度金字塔提取图像特征的方法。
背景技术:
mpeg-cdvs(compactdescriptorforvisualsearch,视觉搜索紧凑描述子)是国际动态图像专家组mpeg提出的移动图像搜索的标准算法。cdvs在移动搜索上有大量的应用,如微信、googlegoggles等。同时cdvs的应用范畴包括地点检索、地标识别、产品搜索等。cdvs在移动端上进行图像特征提取和压缩,然后将压缩后的数据流传输到服务器进行图像检索。这个很好的避免了直接传输图片进行检索对带宽的严苛要求,同时降低了服务器的计算负荷和计算延迟。
随着对视觉搜索技术日益增长的技术,大量视觉特征描述子算法在过去的数十年被提出,包括sift特征提取算法、surf特征提取算法、orb特征提取算法和brisk特征提取算法等。即使是最出名的传统手工特征sift也遭受着计算复杂度高、存储代价大等问题。为了解决这个问题移动图像组mpeg于2015年发布了移动搜索标准cdvs。cdvs提供了标准化的压缩码流语法是图像搜索特征可交互成为可能,在比sift更低带宽的情况下达到相近的检索性能。但是cdvs仍然存在很多问题,包括移动端的计算延迟仍然较高、对抗光照变化鲁棒性较差等。
尺度金字塔是cdvs特征提取步骤中的一项关键技术,cdvs通过生成尺度金字塔并应用laplace算子进行转化,获得金字塔中的关键特征点。尺度金字塔的构建需要对原始输入图片进行多次高斯滤波和下采样,在特征提取步骤中占据了超过80%的计算复杂度。因此,对尺度金字塔计算复杂度的优化成为cdvs特征提取步骤的关键。
现有技术一:
利用高斯滤波核对输入图像进行依次滤波和下采样,生成多组图像构成高斯尺度金字塔,然后将高斯金字塔转换成log金字塔,对特征点进行每一组的检测和聚合。
首先进行log金字塔的生成。然后,在尺度金字塔的每一组图像上进行极值检测,初步获得关键点列表。最后一步是对获得的关键点列表进行筛选、特征描述和压缩生成cdvs特征码流。生成的码流会被传输到服务器端用作图像检索。
尺度金字塔的生成首先对输入的图像使用不同的高斯核进行滤波,生成一组五张的图像。将当前组第四张图像下采样成为原来长宽一半的图像作为下一组的输入图像,然后同样用不同的高斯核进行滤波生成下一组的五张图像。依次进行下采样和滤波,最后会生成五组图像构成高斯金字塔。高斯金字塔进行laplace(拉式变换)转换成log金字塔。对每一组的五张图像取中间层的三张,每张的像素点与上下相邻的图像像素坐标差小于一的18个点和该像素点周围8个像素点,共26个像素点进行比较,如果该点是极值点则初选为特征点。
特征点初选后会通过泰勒展开式:
进行特征点初步筛选,通过拟合得到的泰勒函数在坐标x,y和模糊系数sigma上偏差超过0.5的点都会被认为是不稳定点,从而被剔除。根据海森矩阵的秩筛选掉边缘点,达到去除边缘效应的结果。筛选过后会对特征点进行描述,利用在尺度金字塔上的临近区域梯度直方图,生成特征点的局部特征,利用局部特征的信息进行排序和二次筛选。最后将局部特征进行聚合和压缩生成最后的特征码流。
现有技术一的缺点为:
虽然说该方案是一次将sift特征提取在移动搜索上的成功应用,但是其特征提取算法基本上是从sift特征算法继承过来,存在着计算复杂度高、抗光照变化鲁棒性差等问题。在实际的应用中,使用cdvs标准进行移动端的特征提取仍然没有办法很好的满足实时性和强鲁棒性等要求。
现有技术二:
surf特征提取算法是另一种著名的手工特征算法。surf特征算法与sift大致相同,但采用的方法不同。surf用方形滤波器代替了高斯滤波器,同时用海森矩阵的行列式值对特征点进行检测,并基于2d离散小波变换响应有效的利用了方向积分图。
现有技术二的缺点为:
该方案使用的仍然是尺度金字塔,虽然通过滤波器的改变提高了鲁棒性,仍然没有很好的解决尺度金字塔生成复杂度高的问题。surf特征同样无法很好的适应移动搜索技术的实时性要求。
技术实现要素:
针对尺度金字塔在特征提取算法中复杂度高的问题,提出了新的尺度金字塔构建方法。本发明能很好的减少尺度金字塔生成过程中的冗余计算,同时使用该技术生成的特征点数量相比原来没有明显差异,在特征生成后用于检索也能很好的保证了检索性能。
为了实现上述目的,本发明采取了如下技术方案:
本发明提供一种低复杂度尺度金字塔提取图像特征的方法,包括以下步骤:
s1:将原始输入图像经过滤波生成一组由五张图像组成的图像块,依次将前一组图像块的第四张图像作为生成下一组图像块的输入图像,直至生成五组图像块构成尺度金字塔;
s2:将滤波生成的后四组图像块进行特征点检测,得到高尺度图像特征点列表;
s3:将滤波生成的第一组图像块进行分块预测处理,然后进行特征点检测;
s4:将从第一组图像上检测到的特征点进行特征选择和描述后合并到所述高尺度图像特征点列表中,生成所述原始输入图像最终的特征点列表。
进一步地,所述s2还包括:
参照高尺度图像特征点列表,将高尺度图像特征的坐标对应到第一组图像块中进行统计,将超过阈值坐标所对应的图像进行滤波生成。
进一步地,根据如下公式进行所述s3中的分块预测处理:
其中,pointnumi,j,o表示第o组、第i行、第j列对应块的特征点数量,mapi,j表示第i行、第j列对应的块的特征点数量;判断条件是当第i行,第j列的块统计得到的特征点数量大于阈值的时候,则预测为重要块,进行滤波处理,相反,该块会被跳过,省去那部分图像的滤波处理。
进一步地,将从第一组图像上检测到的特征点进行特征选择和描述,具体为:
当图像块大小大于48*48个像素点时,位于边缘的特征点直接选择丢弃,当图像块大小小于等于48*48个像素点时,对边缘的块进行滤波处理。
由上述本发明提供的技术方案可以看出,本发明针对移动图像搜索标准cdvs提出的尺度金字塔加速算法,提出了新的尺度金字塔构建方法,块预测方法以及错误弥补方案。在cdvs的基础上能达到高达10%-30%的加速下将性能损失控制在5%以内,使得cdvs标准能够更好的满足实际生活需求中对提取特征实时性的要求,还节省了更多的计算资源,降低了计算成本。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所述低复杂度尺度金字塔提取图像特征的方法的流程图;
图2为本发明实施例所述尺度金字塔构建方法的架构示意图;
图3为本发明实施例提供的特征点坐标编号示意图;
图4为本发明实施例提供的局部特征描述子结构示意图;
图5为本发明实施例提供的用于聚合的128维局部描述子示意图。
具体实施方式
下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。
本发明提供了一种低复杂度尺度金字塔提取图像特征的方法,如图1所示,包括以下步骤:
s1:将原始输入图像经过滤波生成一组由五张图像组成的图像块,依次将前一组图像块的第四张图像作为生成下一组图像块的输入图像,直至生成五组图像块构成尺度金字塔;
s2:将滤波生成的后四组图像块进行特征点检测,得到高尺度图像特征点列表;
参照高尺度图像特征点列表,将高尺度图像特征的坐标对应到第一组图像块中进行特征点个数统计,将超过阈值坐标所对应的图像进行滤波生成。
对生成的o0组滤波块进行特征点检测,合并到o1-4的特征点列表,得到总的特征点列表。然后对特征点进行属性生成:
(1)特征点的log卷积响应值(也叫做“峰值”)d;
(2)特征点的主曲率比率ρ;
(3)特征点的尺度因子σ;
(4)对图像的像素坐标如图3所示,从外层向内层进行编号:将坐标(0,0)编号为x×y-1,之后进行顺时针旋转编号,编号递减。依此可以得到特征点的坐标编号c。
首先按照特征点的log卷积响应值d和主曲率比率ρ的概率值从大到小排序(先d后ρ),根据排序结果筛选出前2*n个候选特征点;然后按照特征点的尺度因子σ的概率值进一步排序,筛选出
排序得到的特征点会对周围区域进行特征点描述。每个特征点包含有四个属性,即它的位置坐标(x,y),尺度因子σ,以及其主方向θ。对于检测到的特征点,局部特征描述符应从特征点周围的局部区域提取。特征点周围的区域应以特征点位置(x,y)为中心,并根据特征点主方向θ进行旋转,使得其x轴方向和特征点的主方向θ对齐。特征点的局部区域须划分为4*4=16个子空间,每一个子空间作为一个单元。每个单元的各边长度为mσ像素,其中,m=3.0。对于每个单元,将每个像素按照其梯度方向最近分配到定义好的8个方向上(0度、45度、90度、135度、180度、225度、270度、315度),统计得到一个8维直方图,称为梯度方向直方图。一个局部区域梯度方向直方图则由这些单元的梯度方向直方图顺序拼接形成。这样就形成了局部特征描述子,表示为一个128维度的直方图向量。
对局部特征进行多次特征聚合能够得到不同比特率的特征描述子,从而生成最后的cdvs。
s3:将滤波生成的第一组图像块进行分块预测处理,然后进行特征点检测;
根据如下公式进行所述s3中的分块预测处理:
其中,pointnumi,j,o表示第o组、第i行、第j列对应块的特征点数量,mapi,j表示第i行、第j列对应的块的特征点数量;对o1-4pointnumi,j,o求和得到mapi,j;判断条件是当第i行,第j列的块统计得到的特征点数量大于阈值的时候,则预测为重要块,进行滤波处理,相反,该块会被跳过,省去那部分图像的滤波处理。
s4:将从第一组图像上检测到的特征点进行特征选择和描述后合并到所述高尺度图像特征点列表中,生成所述原始输入图像最终的特征点列表。
将从第一组图像上检测到的特征点进行特征选择和描述,具体为:
当图像块大小大于48*48个像素点时,位于边缘的特征点直接选择丢弃,当图像块大小小于等于48*48个像素点时,对边缘的块进行滤波处理。
本发明将尺度金字塔的提取结构进行了改进,将低尺度的图像组放到高尺度图像组后面生成。在高尺度图像组生成后,直接进行特征点检测和提取。利用高尺度和低尺度图像的相关性,对低尺度的图像进行特征点分布的预测,跳过无效的图像区域,进行滤波和特征点检测等。具体技术方案细节如实施例一所述:
实施例一
本实施例改进了尺度金字塔提取结构;尺度金字塔从低尺度到高尺度进行生成,低尺度的滤波计算占据了最主要的复杂度,设计了一种新的尺度金字塔构建方法,具体如图2所示:
为了实现将高尺度的图像组先于低尺度的图像组生成,首先将第一组的第四张图像直接滤波生成,用于产生下一组的输入图像。高尺度的四组图像会直接滤波生成,然后通过特征点检测、选择、排序等过程,产生出高尺度组的特征点列表。通过特征分布的局部性,对第一组未生成的四张图像进行分块预测,跳过包含特征点可能性低的图像块,生成最终的第一组图像。最后将第一组图像上检测到的特征点通过选择和描述后合并到高尺度的特征点列表生成最终的特征点列表。
局部特征选择
所述特征点检测过程生成了一定数量的(m个)图像局部特征点,特征点的数量很可能大于给定图像描述子长度所能存储的特征数(n个)。因此,需要根据每个特征的相关属性排序从m个局部特征中选择出n个。用于特征点排序的属性有:
(1)特征点的log卷积响应值(也叫做“峰值”)d;
(2)特征点的主曲率比率ρ;
(3)特征点的尺度因子σ;
(4)对图像的像素坐标按照图3所示从外层向内层进行编号:将坐标(0,0)编号为x×y-1,之后进行顺时针旋转编号,编号递减。依此可以得到特征点的坐标编号c。
首先按照特征点的log卷积响应值d和主曲率比率ρ的概率值从大到小排序(先d后ρ),根据排序结果筛选出前2*n个候选特征点;然后按照特征点的尺度因子σ的概率值进一步排序,筛选出
通过特征点选择步骤产生了一系列特征点,且每个特征点包含有四个属性,即它的位置坐标x,y,尺度因子σ,以及其主方向θ。对于检测到的特征点,局部特征描述符应从特征点周围的局部区域提取。特征点周围的区域应以特征点位置(x,y)为中心,并根据特征点主方向θ进行旋转,使得其x轴方向和特征点的主方向θ对齐。特征点的局部区域须划分为4*4=16个子空间,每一个子空间作为一个单元。每个单元的各边长度为mσ像素,其中,m=3.0。对于每个单元,将每个像素按照其梯度方向最近分配到定义好的8个方向上(0度、45度、90度、135度、180度、225度、270度、315度),统计得到一个8维直方图,称为梯度方向直方图。一个局部区域梯度方向直方图则由这些单元的梯度方向直方图顺序拼接形成。这样就形成了局部特征描述子,表示为一个128维度的直方图向量。用h(t,i,j)表示局部特征描述子,其中,t(t=0,...,7)表示的不同方向的索引,i(ⅰ=0,...,3)和j(j=0,...3)分别表示水平和垂直方向的空间单元块的索引。局部特征描述子构造的步骤描述如下,使用一个规范的局部区域表示,其中图像的轴线与所述局部区域相一致,并且每个单元的边长标准化为1,如图4所示。首先,按照如下公式计算尺度空间图像的梯度向量场。
其中,ik表示每一个组内的高斯滤波图像,k∈{1,2}。每个梯度量化方向中心由下式给出:
直方图通过三线性插值法计算得到,即通过特定函数计算各个像素梯度对该直方图的累积,表示为下面的等式。
其中,
w(z)=max(0,1-|z|)
然后,对于所获得的梯度方向直方图应进行一次l2归一化,即直方图的每一维都除以直方图的l2范数。由此产生的直方图各个维度的值都被限制在0.2范围内,即当某一维的值大于0.2时则取值0.2。继而,直方图再一次进行l2归一化。然后,直方图中每一维的值都按照公式(18)映射为0到255之间的一个整数:
局部特征描述子聚合
局部特征描述子聚合(或叫全局特征聚合)过程,是在特征选择后的选出的前k个局部描述子的基础上进行(特征选择步骤参考5.3)。若m为经过前述环节后所得到的局部描述子个数,则用于全局特征聚合的局部描述子个数k为:
用于全局特征聚合的128维局部描述子如图5所示。在全局特征聚合之前,所有用于聚合的128维的局部描述子先被归一化并进行pca降维,得到32维的降维向量。具体步骤如下:
首先,对局部描述子进行l1归一化,形式化描述如下:
h′t,j=ht,j/|ht|,j=0,…,127
其中|ht|为128维描述子的l1范数。而后,对l1归一化后的描述子的每一维再进行幂归一化(powernormalization):
h′t,j←sgn(h′t,j)|h′t,j|0.5
其中|h′t,j|为h′t,j的绝对值。之后,根据给定的128×32维的pca投影矩阵p和128维的均值向量h,将特征投影并降维至32维向量:
降维结束后,采用基于fisher向量聚合方法对上述向量样本进行聚合。fisher向量聚合是基于一个含有512个高斯分布函数的gmm(gaussianmixturemodel,高斯混合模型);
其参数为
其中pi(xt|λ)表示第i个高斯概率密度函数:
对于上述降维变换后的局部描述子集合x={xt,t=0,...,k-1},其关于第i个高斯分布函数均值的累加梯度向量可表示为:
对应地,其关于第i个高斯分布函数方差的累加梯度向量可表示为:
对于第i个高斯分布函数,关于其32维均值累计梯度向量
在全局描述子聚合阶段,若干高斯分布函数将被选择用于聚合。具体的高斯函数选取方法如下:
首先,高斯分布函数根据均值累计梯度向量标准差δ(i)的取值降序排序;
随后,对于操作点限制在码流长度为512字节、1024字节及2048字节的描述子,排序靠前的k个高斯分布函数将被用于后续全局特征码流生成。不同码流限制下,对于操作点限制在码流长度为4096字节、8192字节的描述子,高斯分布函数将被选取当且仅当:δ(i)>τδ
其中τδ为给定阈值。最终被选择的所有高斯函数将被用于后续全局特征码流生成。
选择高斯函数后,对相应的梯度向量
定义二值化的聚合向量
其中
其中
其中
在描述子长度为4096字节和8192字节时,全局描述子
其中,
分别表示用于连接的均值向量和方差向量。
本实施例为可调的预测方案。在实际应用当中,往往需要根据需求来确定性能和速度的平衡。同时将第一组图像分块的大小也影响着跳过条件的选择,本发明实施例选择了根据图像块高层特征点数量作为预测方案。根据高尺度图像特征的坐标对应到第一组图像块中进行统计,超过选定的阈值就进行滤波生成。
本实施例所述对块进行预测的公式为:
其中,mapi,j代表第i行,第j列对应的块的特征点数量。判断条件是当第i行,第j列的块统计得到的特征点数量大于阈值的时候,就会预测为重要块,进行滤波生成。相反,该块会被跳过,省去了那部分图像的滤波计算。
本实施例提出特征描述的补偿策略。跳过一部分图像的滤波会导致在描述特征的时候一部分块边缘的特征点得不到足够的图像信息进行描述,产生错误的特征。针对这个问题,采用了根据图像块大小选择不同的策略。当图像块大小大于48*48个像素点的时候,位于边缘的特征点会被直接选择丢弃,避免对最后的检索造成影响。当图像块大小小于等于48*48个像素点的时候,会对边缘的块同样进行滤波生成,保证描述的正确性。
在本实施中,将本发明提出的方法与现有的cdvs标准算法进行比较,本实施例使用map作为评价标准,同时在单核cpu上的多幅图像处理时间被用作计算复杂度的评价标准。得出如下结论:
(1)cdvs标准的map性能对比
测试集合:包括公开检索数据集uk-bench和cdvs标准数据集中的video集合。
测试标准:检索主要用map作为评价标准,本实施例使用map进行评价。
测试结果:见表1
表1
如表1中所示,compareversion为使用cdvs标准方法,最后一列为本发明提出的算法在阈值选择为0同时块大小选择为96*96时的性能,算法map上没有明显的损失,都在1%以内。
与cdvs标准在时间复杂度上的对比
测试集合:包括公开检索数据集uk-bench和cdvs标准数据集中的video集合。
测试标准:单核cpu英特尔i5-4258u上面的单幅图像平均处理时间。
测试对比的方法:cdvs标准算法。
表2
表2中,compareversion是cdvs标准算法,最后一列为本发明提出的算法在阈值选择为0同时块大小选择为96*96时的性能。整体上看,本发明提出的方法在对检索性能map影响在1%的范围内达到了超过10%的加速。而且本发明提出的方法还可以根据实际应用中的需求进行调整进行更大幅度的加速。
综上所述,本发明针对移动图像搜索标准cdvs提出的尺度金字塔加速算法,提出了新的尺度金字塔构建方法,块预测方法以及错误弥补方案。在cdvs的基础上能达到高达10%-30%的加速下将性能损失控制在5%以内,使得cdvs标准能够更好的满足实际生活需求中对提取特征实时性的要求,还节省了更多的计算资源,降低了计算成本。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。