一种双重补偿的多表哈希图像检索方法与流程

文档序号:12466174阅读:来源:国知局

技术特征:

1.一种双重补偿的多表哈希图像检索方法,其特征在于,包括以下步骤:

1)图像特征提取和类别信息处理;

2)哈希表训练;

3)根据哈希表将图像特征映射至汉明空间与类别权重计算;

4)根据查询,计算汉明距离,返回查询结果;

5)再排序操作。

2.根据权利要求1所述的一种双重补偿的多表哈希图像检索方法,其特征在于:在步骤1)中,提取图像特征,并进行标签信息的处理,具体步骤如下:

1.1)使用gist算法提取图像特征,获取图像特征矩阵X,X=d×n,n为数据集图片数量,d为特征维数,对X矩阵进行中心化操作;

1.2)将图像分成两个子集:有语义标签的数据划分成有标签的图像子集,其特征矩阵为Xl,无语义标签的数据划分成无标签的图像子集,其特征矩阵为Xu

1.3)对于无标签数据集,计算其伪标签:对于每一个无标签图像,与所有的有标签图像计算gist特征的欧式距离,并取欧氏距离最近的20%的图像来对该无标签图像的可能的标签进行投票,取数量最多的标签作为该图像的伪标签,如果出现多个标签的数量相同,则任取一个。

3.根据权利要求1所述的一种双重补偿的多表哈希图像检索方法,其特征在于,在步骤2)中,进行哈希表训练,具体如下:

获取m个哈希表,其中m是哈希表的数量,定义S矩阵,大小为n’×n’,n’为有标签图像的数量,初始化为:Sij=1时说明图像对(xi,xj)具有相同标签,Sij=-1时说明图像对(xi,xj)不具有相同标签;定义F为单个哈希表中哈希函数的数量,包括内外两重循环:

2.1)在这一部分说明外层循环的机制:对于当前的第t个哈希表,t=1,…m,具体如下:

2.1.1)如果t=1,则直接进入内层循环,否则计算第t-1个哈希表的错误并更新S矩阵,错误指的是:对于有标签的图像,具有相同标签的两个图像汉明距离大于δ,或者不同标签的两个图像汉明距离小于δ,其中δ是一个汉明距离的阈值,S矩阵的更新方法如下:

St+1=St+c×ΔSt

式中,St指的是第t个哈希表训练时使用的权重矩阵,并初始化S1=S,c是一个参数,影响S的变化速度,ΔSt指的是权重调整的矩阵,定义如下:

<mrow> <msubsup> <mi>&Delta;S</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mi>t</mi> </msubsup> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mrow> <msub> <mi>d</mi> <mi>H</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>x</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> <mo>&gt;</mo> <mi>&delta;</mi> <mo>,</mo> <msubsup> <mi>S</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mi>t</mi> </msubsup> <mo>&gt;</mo> <mn>0</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </mtd> <mtd> <mrow> <msub> <mi>d</mi> <mi>H</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>x</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> <mo>&lt;</mo> <mi>&delta;</mi> <mo>,</mo> <msubsup> <mi>S</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mi>t</mi> </msubsup> <mo>&lt;</mo> <mn>0</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>o</mi> <mi>t</mi> <mi>h</mi> <mi>e</mi> <mi>r</mi> <mi>w</mi> <mi>i</mi> <mi>s</mi> <mi>e</mi> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow>

式中,dH(xi,xj)指的是图像(xi,xj)的汉明距离,使用第t-1个哈希表计算;

2.1.2)进入第t层内层循环,计算第t个哈希表;

2.1.3)如果t=m,说明m个大小为F的哈希表训练完成,终止;否则t=t+1,调至步骤2.1.1);

2.2)第t层内层循环中,第k个哈希函数,k=1,…,F,首先初始化Xtr=X,具体如下:

2.2.1)计算M矩阵,

式中,λ是一个参数,用于防止过拟合;St,k指的是当前哈希函数使用的S矩阵,且St,1=St

2.2.2)对M矩阵进行特征分解,提取出特征值最大的特征向量wt,k,合成第t个表第k个哈希函数:

2.2.3)去除Xtr数据中的冗余:

2.2.4)在St,k的基础上更新St,k+1:St,k+1=St,k+ΔSt,k

<mrow> <msubsup> <mi>&Delta;S</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mrow> <mi>t</mi> <mo>,</mo> <mi>k</mi> </mrow> </msubsup> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <msub> <mi>A</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> </mtd> <mtd> <mrow> <msub> <mi>A</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>&gt;</mo> <mn>0</mn> <mo>,</mo> <msubsup> <mi>S</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mrow> <mi>t</mi> <mo>,</mo> <mi>k</mi> </mrow> </msubsup> <mo>&gt;</mo> <mn>0</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <msub> <mi>B</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> </mtd> <mtd> <mrow> <msub> <mi>B</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>&lt;</mo> <mn>0</mn> <mo>,</mo> <msubsup> <mi>S</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mrow> <mi>t</mi> <mo>,</mo> <mi>k</mi> </mrow> </msubsup> <mo>&lt;</mo> <mn>0</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>o</mi> <mi>t</mi> <mi>h</mi> <mi>e</mi> <mi>r</mi> <mi>w</mi> <mi>i</mi> <mi>s</mi> <mi>e</mi> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow>

式中,A=(αk-Dk)/2k,B=(βk-Dk)/2k,α和β是两个参数,分别是控制相似和不相似的阈值;

2.2.5)如果k=F的话当前内层循环结束,否则的话k=k+1,调至步骤2.2.1);

在步骤3)中,使用哈希函数将图像的特征矩阵X映射至汉明空间,获得m个大小为F×n的二进制矩阵H,其类别权重计算方法如下:

计算m个类别权重矩阵V,其中V矩阵大小为nc×F,nc是数据集标签种类的数量,Vt对应于第t个哈希表的类别权重矩阵,t=1,2,…,m,其中第C个类别包括伪标签的第k个哈希函数的权重,对应于Vt矩阵的元素VC,i,k=1,2,…,F:

VC,i=max(c-,c+)/(c-+c+)

式中,c-和c+分别是第t个哈希表第k个哈希函数将类别C包括伪标签的图像映射至0和1的数量。

4.根据权利要求1所述的一种双重补偿的多表哈希图像检索方法,其特征在于,在步骤4)中,进行初步的查询结果计算,具体步骤如下:

4.1)将查询映射至汉明空间,获取m个大小为F的汉明码;

4.2)对于每一个哈希表,计算查询与所有图像的汉明距离,按照汉明距离小于阈值thro,返回m个图像集,其中thro为设置的阈值,这将影响初步返回数据的数量。

5.根据权利要求1所述的一种双重补偿的多表哈希图像检索方法,其特征在于:在步骤5)中,根据步骤4)返回的结果进行再排序操作,具体步骤如下:

5.1)计算m个查询敏感权重向量Zt,t=1,2,…,m

<mrow> <msub> <mi>Z</mi> <mi>t</mi> </msub> <mo>=</mo> <msub> <mi>&Sigma;</mi> <mrow> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <msub> <mi>R</mi> <mi>t</mi> </msub> </mrow> </msub> <msub> <mi>V</mi> <mi>t</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>l</mi> <mi>i</mi> </msub> <mo>,</mo> <mo>:</mo> <mo>)</mo> </mrow> <mo>/</mo> <msub> <mi>n</mi> <mi>t</mi> </msub> </mrow>

式中,Rt是步骤4)中第t个哈希表的返回集,li作为Rt中图像xi的标签,nt是Rt中图像的数量;

5.2)计算查询与数据集所有数据的权重汉明距离,返回最终查询结果,其中对于查询q和图像xi,其权重汉明距离计算方式如下:

<mrow> <msub> <mi>d</mi> <mi>w</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>,</mo> <mi>q</mi> <mo>)</mo> </mrow> <mo>=</mo> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>t</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </msubsup> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>K</mi> </msubsup> <msub> <mi>Z</mi> <mi>t</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <msub> <mi>h</mi> <mrow> <mi>t</mi> <mo>,</mo> <mi>k</mi> </mrow> </msub> <mo>(</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>)</mo> <mo>&CirclePlus;</mo> <msub> <mi>h</mi> <mrow> <mi>t</mi> <mo>,</mo> <mi>k</mi> </mrow> </msub> <mo>(</mo> <mi>q</mi> <mo>)</mo> <mo>)</mo> </mrow> </mrow>

式中,为xor操作;

返回dw(xi,q)<thro’的所有图像作为查询结果,其中thro’是设置的阈值,将决定最终的返回结果。

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