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指的是权重调整的矩阵,定义如下:
式中,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,
式中,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
式中,Rt是步骤4)中第t个哈希表的返回集,li作为Rt中图像xi的标签,nt是Rt中图像的数量;
5.2)计算查询与数据集所有数据的权重汉明距离,返回最终查询结果,其中对于查询q和图像xi,其权重汉明距离计算方式如下:
式中,为xor操作;
返回dw(xi,q)<thro’的所有图像作为查询结果,其中thro’是设置的阈值,将决定最终的返回结果。