发明名称 基于CGCI-SIFT局部特征的图像检索方法
摘要 基于CGCI-SIFT局部特征的图像检索方法,本发明公开了一种图像检索方法,基于CGCI-SIFT实现,从邻域像素对关键点的影响强弱及分布入手,通过灰度纹理对比强度信息构建外围局部特征描述子,然后结合对中心特征点描述较强的方向梯度信息构建中心局部描述子形成最终的描述,CGCI-SIFT利用局部区域的对比性质结合了原SIFT算法的梯度信息,而不是像SIFT那样单纯地存储的梯度的权值大小和方向,使得CGCI-SIFT具有更加全面的几何和光学变换不变性。灰度纹理对比强度信息的使用使得CGCI-SIFT的计算简单,因此更加高效,更适合实时性的应用。实验结果表明,本发明的检索方法性能稳定,检索时间短,检索效果明显提升。
申请公布号 CN102945289A 申请公布日期 2013.02.27
申请号 CN201210505313.3 申请日期 2012.11.30
申请人 苏州搜客信息技术有限公司 发明人 崔志明;吴健;苏栋梁;赵朋朋
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 苏州创元专利商标事务所有限公司 32103 代理人 陶海锋
主权项 1.一种基于CGCI-SIFT局部特征的图像检索方法,提供用于检索的图像库和待检索的图片,其特征在于,将图片转换成灰度图,先对用于检索的图像库进行局部特征描述处理,再进行图像检索,包括下列步骤:(1)对于图像库中的每一张图片采用DOG算法检测特征点;(2)对于每一个留下来的特征点,首先将该点的外周区域的像素点进行零均值规范化,所述外周区域为以特征点为中心,边长为2R+1的方形区域,零均值规范化的公式如下所示:<maths num="0001"><![CDATA[<math><mrow><msup><mi>I</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mi>I</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>-</mo><mfrac><mn>1</mn><mrow><mi>NumC</mi><mo>-</mo><mn>1</mn></mrow></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>NumC</mi></munderover><mrow><mo>(</mo><mi>I</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>y</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>)</mo></mrow></mrow><mi>&Phi;</mi></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0002"><![CDATA[<math><mrow><mi>&Phi;</mi><mo>=</mo><msqrt><mfrac><mn>1</mn><mrow><mi>NumC</mi><mo>-</mo><mn>1</mn></mrow></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>NumC</mi></munderover><msup><mrow><mo>(</mo><mi>I</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>y</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>-</mo><mfrac><mn>1</mn><mrow><mi>NumC</mi><mo>-</mo><mn>1</mn></mrow></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>NumC</mi></munderover><mi>I</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>y</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>)</mo></mrow><mn>2</mn></msup></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow></math>]]></maths>式中I(x,y)与I'(x,y)分别表示原图形像素强度以及规范化后的像素强度,(x,y)为进行零均值规范化的像素点在图片中的位置,R为1 2~20的整数,NumC表示像素点周边涉及计算的像素个数,NumC=R<sup>2</sup>;(3)确定特征点的主方向,方法是:在以特征点为中心的圆形邻域窗口中计算每个像素的梯度方向和梯度模值,<maths num="0003"><![CDATA[<math><mrow><mi>m</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><msqrt><msup><mrow><mo>(</mo><mi>I</mi><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>-</mo><mi>I</mi><mrow><mo>(</mo><mi>x</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><mi>I</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><mi>I</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>)</mo></mrow><mn>2</mn></msup></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow></math>]]></maths>θ(x,y)=arctan{[I(x,y+1)-I(x,y-1)]/[I(x+1,y)-I(x-1,y)]}    (4)其中,m(x,y)是像素点(x,y)的梯度模值,θ(x,y)是像素点(x,y)的梯度方向,梯度直方图的范围是0~3 60°,每1 0°代表一个方向,总共3 6个方向,直方图的峰值即代表该特征点的主方向,所述圆形邻域窗口的半径为8;(4)以特征点为中心,特征点的主方向为0°方向,建立极坐标系,以特征点为中心,R为半径的区域为兴趣区域,在此极坐标系中,将兴趣区域划分为内围区域和外围区域,内围区域的半径为4,周向均分为τ块,τ取1或4,外围区域分为2层,每层周向均分为δ+1块,δ取3、7或15;从内围区域中的块开始计数,分别定义每个块为R<sub>i</sub>,内围区域为R<sub>0</sub>至R<sub>τ-1</sub>,外围区域为R<sub>τ</sub>至R<sub>τ+2δ+1</sub>;(5)对特征点外围区域的每个块,分别计算其正向强度对比值和负向强度对比值,如下:正向强度对比值<maths num="0004"><![CDATA[<math><mrow><msub><mi>H</mi><msub><mi>R</mi><mi>i</mi></msub></msub><mi>P</mi><mo>=</mo><mfrac><mrow><mi>&Sigma;</mi><mo>{</mo><mrow><mo>(</mo><mi>I</mi><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow><mo>-</mo><mi>I</mi><mrow><mo>(</mo><msub><mi>p</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>)</mo></mrow><mo>|</mo><mi>p</mi><mo>&Element;</mo><msub><mi>R</mi><mi>i</mi></msub><mi>andD</mi><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow><mo>&GreaterEqual;</mo><mn>0</mn><mo>}</mo></mrow><msub><mi>NumR</mi><mrow><mi>i</mi><mo>+</mo></mrow></msub></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow></math>]]></maths>负向强度对比值<maths num="0005"><![CDATA[<math><mrow><msub><mi>H</mi><msub><mi>R</mi><mi>i</mi></msub></msub><mi>N</mi><mo>=</mo><mfrac><mrow><mi>&Sigma;</mi><mo>{</mo><mrow><mo>(</mo><mi>I</mi><mrow><mo>(</mo><msub><mi>p</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>-</mo><mi>I</mi><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>|</mo><mi>p</mi><mo>&Element;</mo><msub><mi>R</mi><mi>i</mi></msub><mi>andD</mi><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow><mo>&lt;</mo><mn>0</mn><mo>}</mo></mrow><mrow><mi>Num</mi><msub><mi>R</mi><mrow><mi>i</mi><mo>-</mo></mrow></msub></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow></math>]]></maths>式中p<sub>k</sub>为特征点,R<sub>i</sub>表示外围区域中的第i个块,定义同步骤(4),p表示外围区域的该块中的像素点,NumR<sub>i+</sub>,NumR<sub>i-</sub>分别代表块R<sub>i</sub>中像素强度大于和小于特征点p<sub>k</sub>的像素点的个数,D(p)=I(p)-I(p<sub>k</sub>),I(p)是点p的像素强度,I(p<sub>k</sub>)是点p<sub>k</sub>的像素强度;(6)对特征点的内围区域的每个像素点,采用公式(3)(4)获得梯度模值和梯度方向,然后统计内围区域中R<sub>i</sub>块内的梯度值,并绘制梯度直方图,梯度直方图分为8个单元,每45°为一个单元,每个块产生8个方向的梯度直方图值,每个块的方向梯度直方图值表示为G<sub>Ri</sub>d<sub>j</sub>(i∈{0,…,τ-1}且j∈{0,…,7}),式中,G<sub>Ri</sub>d<sub>j</sub>表示块中属于同一45°方向单元的像素的模值的和,i表示所在的块,j表示方向单元;(7)分别对步骤(5)和(6)获得的外围区域和内围区域的描述子进行整体归一化,使得整体描述子对光照变化具有不变性,公式如下:<maths num="0006"><![CDATA[<math><mrow><msub><mi>G</mi><msub><mi>R</mi><mi>i</mi></msub></msub><msup><msub><mi>d</mi><mi>j</mi></msub><mo>&prime;</mo></msup><mo>=</mo><msub><mi>G</mi><msub><mi>R</mi><mi>i</mi></msub></msub><msub><mi>d</mi><mi>j</mi></msub><mo>/</mo><msqrt><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>i</mi><mo>&le;</mo><mi>&tau;</mi><mo>-</mo><mn>1</mn></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>j</mi><mo>&le;</mo><mn>7</mn></mrow></munderover><msub><mi>G</mi><msub><mi>R</mi><mi>i</mi></msub></msub><msup><msub><mi>d</mi><mi>j</mi></msub><mn>2</mn></msup></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0007"><![CDATA[<math><mrow><msub><mi>H</mi><msub><mi>R</mi><mi>i</mi></msub></msub><msup><mi>P</mi><mo>&prime;</mo></msup><mo>=</mo><msub><mi>H</mi><msub><mi>R</mi><mi>i</mi></msub></msub><mi>P</mi><mo>/</mo><msqrt><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mi>&tau;</mi></mrow><mrow><mi>&tau;</mi><mo>+</mo><mn>2</mn><mi>&delta;</mi><mo>+</mo><mn>1</mn></mrow></munderover><mrow><mo>(</mo><msub><mi>H</mi><msub><mi>R</mi><mi>i</mi></msub></msub><msup><mi>P</mi><mn>2</mn></msup><mo>+</mo><msub><mi>H</mi><msub><mi>R</mi><mi>i</mi></msub></msub><msup><mi>N</mi><mn>2</mn></msup><mo>)</mo></mrow></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0008"><![CDATA[<math><mrow><msub><mi>H</mi><msub><mi>R</mi><mi>i</mi></msub></msub><msup><mi>N</mi><mo>&prime;</mo></msup><mo>=</mo><msub><mi>H</mi><msub><mi>R</mi><mi>i</mi></msub></msub><mi>N</mi><mo>/</mo><msqrt><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mi>&tau;</mi></mrow><mrow><mi>&tau;</mi><mo>+</mo><mn>2</mn><mi>&delta;</mi><mo>+</mo><mn>1</mn></mrow></munderover><mrow><mo>(</mo><msub><mi>H</mi><msub><mi>R</mi><mi>i</mi></msub></msub><msup><mi>P</mi><mn>2</mn></msup><mo>+</mo><msub><mi>H</mi><msub><mi>R</mi><mi>i</mi></msub></msub><msup><mi>N</mi><mn>2</mn></msup><mo>)</mo></mrow></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow></math>]]></maths>式子中G<sub>Ri</sub>d<sub>j</sub>'以及H<sub>Ri</sub>P',H<sub>Ri</sub>N'分别表示归一化后的方向梯度直方图值以及强度对比值;(8)将两个部分的归一化后的描述子组合成一维向量,表示为:<maths num="0009"><![CDATA[<math><mrow><mi>CGCI</mi><mo>=</mo><mrow><mo>(</mo><msub><mi>G</mi><msub><mi>R</mi><mn>0</mn></msub></msub><msup><msub><mi>d</mi><mn>0</mn></msub><mo>&prime;</mo></msup><mo>,</mo><msub><mi>G</mi><msub><mi>R</mi><mn>0</mn></msub></msub><msup><msub><mi>d</mi><mn>1</mn></msub><mo>&prime;</mo></msup><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><msub><mi>G</mi><msub><mi>R</mi><mrow><mi>&tau;</mi><mo>-</mo><mn>1</mn></mrow></msub></msub><msup><msub><mi>d</mi><mn>7</mn></msub><mo>&prime;</mo></msup><mo>,</mo><msub><mi>H</mi><mi>R&tau;</mi></msub><msup><mi>P</mi><mo>&prime;</mo></msup><mo>,</mo><msub><mi>H</mi><mi>R&tau;</mi></msub><msup><mi>N</mi><mo>&prime;</mo></msup><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><msub><mi>H</mi><msub><mi>R</mi><mrow><mi>&tau;</mi><mo>+</mo><mn>2</mn><mi>&delta;</mi><mo>+</mo><mn>1</mn></mrow></msub></msub><msup><mi>P</mi><mo>&prime;</mo></msup><mo>,</mo><msub><mi>H</mi><msub><mi>R</mi><mrow><mi>&tau;</mi><mo>+</mo><mn>2</mn><mi>&delta;</mi><mo>+</mo><mn>1</mn></mrow></msub></msub><msup><mi>N</mi><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>10</mn><mo>)</mo></mrow></mrow></math>]]></maths>描述子维度Dimen为:Dimen=8×τ+2×2×δ    (11)重复(2)到(8),至所有特征点都处理完;(9)采用K-Means聚类方法将图像库中的图片进行特征点聚类,聚类结果生成K个子节点,计算出每个子节点的中心向量C<sub>i</sub>,对新生成的每个子节点再进行K-Means聚类,以生成下一层的子节点,不断重复直到树的深度达到预设值P,构造出CGCI-SIFT词汇树,其中,K为5~10的整数,P为3~6的整数;(10)将图像库中的图片与词汇树进行关联:词汇树的叶节点个数为M=k<sup>P</sup>-1,每个叶节点具有中心向量C<sub>m</sub>,其中,m为1~M的整数,将每个叶节点称为一个视觉词汇单词W<sub>m</sub>,图像库中的总图片数为N,其中每个图片称为一个文档F<sub>i</sub>,i是1~N的整数,则文档F<sub>i</sub>和视觉词汇单词W<sub>m</sub>的相关度为Weight(i,m)=NUM<sub>im</sub>×idf<sub>m</sub>,式中,NUM<sub>im</sub>表示视觉词汇单词W<sub>m</sub>在图片文档F<sub>i</sub>中出现的次数,<img file="FDA00002507651300031.GIF" wi="268" he="129" />N<sub>m</sub>表示视觉词汇单词W<sub>m</sub>一共包含的图片文档数目;计算每个图片与词汇树的每个叶节度的相关度,完成图片与词汇树的关联;(11)进行图片检索,将待查询图片的CGCI-SIFT特征量化到CGCI-SIFT词汇树的M个视觉词汇单词上,形成一个M维的特征向量V={v<sub>1</sub>,v<sub>2</sub>......v<sub>M</sub>},具体方法为:首先提取待查询图片的CGCI-SIFT特征点向量,对提取到的CGCI-SIFT特征点向量与步骤(9)中获得的词汇树的节点逐层进行欧氏距离计算,找到一层上最相近的节点作为匹配节点,再从这些匹配节点的子节点分别向下搜索,直至找到叶节点中的各匹配节点,得到特征向量V={v<sub>1</sub>,v<sub>2</sub>......v<sub>M</sub>};(12)利用在视觉词汇层上量化后的特征向量V={v<sub>1</sub>,v<sub>2</sub>......v<sub>M</sub>},对图像库中所有图片在视觉词汇层上量化结果进行欧氏距离计算,和图像库量化后的每张图片V'={v<sub>1</sub>',v<sub>2</sub>'......v<sub>M</sub>'}得到一个匹配值Wt<sub>1</sub>;<maths num="0010"><![CDATA[<math><mrow><mi>Wt</mi><mn>1</mn><mo>=</mo><msqrt><mrow><mo>(</mo><msub><mi>v</mi><mn>1</mn></msub><mo>-</mo><msup><msub><mi>v</mi><mn>1</mn></msub><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>&times;</mo><mrow><mo>(</mo><msub><mi>v</mi><mn>1</mn></msub><mo>-</mo><msup><msub><mi>v</mi><mn>1</mn></msub><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>+</mo><mrow><mo>(</mo><msub><mi>v</mi><mn>2</mn></msub><mo>-</mo><msup><msub><mi>v</mi><mn>2</mn></msub><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>&times;</mo><mrow><mo>(</mo><msub><mi>v</mi><mn>2</mn></msub><mo>-</mo><msup><msub><mi>v</mi><mn>2</mn></msub><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>+</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>+</mo><mrow><mo>(</mo><msub><mi>v</mi><mi>M</mi></msub><mo>-</mo><msup><msub><mi>v</mi><mi>M</mi></msub><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>&times;</mo><mrow><mo>(</mo><msub><mi>v</mi><mi>M</mi></msub><mo>-</mo><msup><msub><mi>v</mi><mi>M</mi></msub><mo>&prime;</mo></msup><mo>)</mo></mrow></msqrt></mrow></math>]]></maths>将结果按Wt<sub>1</sub>由小到大排序后输出,完成图像检索。
地址 215021 江苏省苏州市苏州工业园区金鸡湖大道1355号国际科技园E101-18
您可能感兴趣的专利