一种基于高阶深度哈希学习的图像检索方法与流程

文档序号:16669022发布日期:2019-01-18 23:27阅读:322来源:国知局
一种基于高阶深度哈希学习的图像检索方法与流程

本发明涉及图像检索领域和深度学习领域,具体涉及一种基于高阶深度哈希学习的图像检索方法。



背景技术:

哈希方法是将图像特征转换为二值编码,以哈希码作为图像的索引进行匹配,通过最近邻搜索,查询与其最相似的编码序列,将对应的图片作为检索结果输出。哈希方法具有查询效率高和易于存储等特点,可极大提高检索速度,且内存耗费低,被广泛应用到大规模图像检索中。

哈希方法一般分为数据依赖和数据独立两类,其中前者研究更为广泛,并可划分为无监督哈希和有监督哈希方法。无监督哈希方法在训练时仅利用图片的特征信息,忽略相应的标签信息,典型方法有迭代量化法和离散图哈希;有监督的哈希方法依赖标签进行哈希码训练,典型方法包括有监督的核哈希算法和最小损失哈希。近年来,随着深度学习的快速发展,深度哈希被有效提出,其结合深度卷积网络特征,克服传统手工特征弱化语义信息的弊端,极大提高哈希方法的精度,典型的深度哈希方法包括深度学习二值哈希码、深度有监督哈希和深度神经网络哈希等。



技术实现要素:

针对现有技术的局限,本发明提出一种基于高阶深度哈希学习的图像检索方法,将基础深度特征通过协方差池化转化为高阶特征,借助该全局特征表示图像并获得哈希码,从而有效匹配图像。

本发明一种基于高阶深度哈希学习的图像检索方法,具体包括以下步骤:

步骤s1:构造包含图像数据及标签的图像数据集,并划分为训练集、测试集和检索图像集三部分,训练集用于模型训练,测试集和检索图像集用于模型测试;

步骤s2:构建高阶深度哈希网络的结构,包括基础特征子网络、高阶池化子网络、哈希子网络及损失子网络;

步骤s3:高阶深度哈希网络模型的端对端训练,包括模型特征前向传播和误差反向传播两个过程;

步骤s4:根据学习到的高阶深度哈希网络,计算测试集和检索图像集的深度高阶哈希码;

步骤s5:计算测试集与检索图像集哈希码之间的汉明距离,将最小汉明距离对应的图像作为检索结果输出,用平均精度均值指标评判该方法整体性能。

本发明的网络模型融合基础特征、高阶特征和哈希编码,深入挖掘三者的内在联系,联合优化,保证学习到的哈希码具有更丰富的语义信息,借助交叉熵损失实现端对端训练,提升高阶哈希的图像检索性能。

附图说明

以下结合附图和具体的实施方式对本发明作进一步详细的说明。

图1是本发明所涉及的基于高阶深度哈希学习的图像检索方法的流程示意图。

图2是本发明方法所构高阶深度哈希网络的结构示意图。

具体实施方式

本发明基于高阶深度哈希学习的图像检索方法包括:

步骤s1:构造包含图像数据及标签的图像数据集,并划分为训练集、测试集和检索图像集三部分,训练集用于本发明的模型训练,其余用于模型测试。

具体的:构造图像数据集,获取图像的底层特征和标签,x=[x1,x2,...,xn]代表所有图片构成的样本集,每一张图像记作xi,{i=1,2,...,n},n为图像样本个数,y=[y1,y2,...,ym]代表图像数据集x对应的标签。将样本集进行划分,选取一部分作为测试样本集xte,一部分作为训练样本集xtr,一部分作为检索图像集xdata。

步骤s2:构建高阶深度哈希网络的结构,包括基础特征子网络、高阶池化子网络、哈希子网络及损失子网络。

具体的:基础特征子网络由vgg-f网络的1-14层构成,卷积层、激活层、池化层交替组合。原始图像在该子网络中逐层映射,获得图像的深度特征表示,取代原始手工特征。

高阶池化子网络设计协方差池化层作为模型的第15层,它处理14层的深度特征为样本协方差矩阵,根据特征值分解生成正交阵和对角阵,利用特征值求解矩阵幂。该层取代传统的一阶池化方法,获得建立在深度特征上的高阶特征,作为图像的全局特征表示。

哈希子网络实现哈希位映射和编码激活,包括第16层哈希隐层和第17层激活层。哈希隐层将高阶特征线性映射到指定编码位的全连接层,配合激活层将数值变化为[0,1]范围的可编码特征。

损失子网络由全连接层和softmax交叉熵损失层组成,该部分仅用于指导训练,测试(检索)过程不涉及。哈希码传播至18层全连接层,映射为各类别标签的概率值,经softmax转化为和为1的概率分布,利用交叉熵损失函数计算检索误差,衡量预测值和真实值之间的差别,后续作为网络训练的目标函数。

步骤s3:高阶深度哈希网络模型的端对端训练,包括模型特征前向传播和误差反向传播两个过程。

其中步骤s3的模型特征前向传播部分具体包括以下过程:

(1)将训练集图像xtr输入网络,经基础特征子网络映射为基础特征xm,高阶池化子网络将其处理为样本协方差矩阵m:

其中,e代表n×n的单位矩阵,j代表n维列向量j=[1,...1]t,对应矩阵取上标t表示转置矩阵。

(2)根据协方差矩阵,基于特征值分解和矩阵幂获得高阶特征:

其中,m是正实数,表示高阶特征的幂次,u和λ分别代表协方差矩阵m经特征值分解p=uλut确定的正交阵和对角阵。f(λ)=diag(f(λ1),...f(λd)),且f(λi)=λim,λi是λ的特征值,据此可充分利用对角阵特性,将矩阵幂转换为元素λi求幂,简化运算。

(3)将高阶特征p引入哈希子网络,获得[0,1]范围的可编码特征,具体计算公式如下:

h=whtp+σ=wht[uf(λ)ut]+σ(3)

其中,h表示训练集的可编码特征矩阵,h=[h1,h2,...hn],wht∈r4096×k表示哈希层的权重,k是哈希隐层的结点数,代表编码比特位数,σ∈rk代表k维偏置向量。

其中步骤s3的误差反向传播部分具体包括以下过程:

反向传播利用交叉熵损失函数作为目标函数,旨在比较哈希码的预测值和图像真实标签之间的差别,其整体计算形式如下:

其中,m代表数据集的标签数目,n是图片个数,xi代表第i张图片经过全连接层的输出,yi代表第i张图像的真实标签,代表哈希码经softmax操作映射为各标签的预测概率。

为方便后续反向传播的梯度求解,这里将公式(4)细化如下:

(1)可编码特征hi经全连接层映射为对应标签的取值:

xi=wcthi+τ(5)

(2)利用交叉熵损失函数计算误差值:

其中,wct和τ分别代表全连接层的权重和偏置,它将xi转化为各标签的预测概率与yi均为m×1的标签列向量,yi对应第i张图片的真实标签,且yi∈{0,1},该式衡量预测值和真实值之间的差别,确定预测误差。

(3)根据正向传播顺序:xm→p→h,确定反向梯度传播顺序:考虑到网络的逐层递进以及多参数复合的映射关系,利用链式法则对各参数逐层求偏导。

首先,根据公式(5)(6)的原理,确定损失函数l和h之间的梯度回传形式:

其次,根据高阶特征引入可编码特征的公式(3),确定由h回传至p的形式:

最后,根据基础特征构造高阶协方差特征的关系式(1)、(2),确定p最终反向传播至基础特征xm的表达式:

上述三个梯度关系式依次衔接,逐层递进,共同实现反向传播。训练阶段借助损失函数学习前端基础特征、高阶特征及哈希编码,挖掘三者的内在关系,实现特征融合与统一。

步骤s4:根据学习到的高阶深度哈希网络计算测试集和检索图像集的深度高阶哈希码。

具体的:将测试集xte和检索图像集xdata输入步骤s4学习到的网络模型,前向传播至哈希子网络获得可编码特征hi,借助bi=sgn(hi)执行元素二值操作,将元素值以0为界映射为1或-1,确定哈希码b=[b1,b2,...bn]。

步骤s5:计算测试集与检索图像集哈希码之间的汉明距离,将最小汉明距离对应的图像作为检索结果输出,用平均精度均值指标(map)评判方法整体性能。

具体的:将测试(检索)图像与检索图像集中的每一张图像进行汉明距离匹配,以此作为相似度评价标准,汉明距离越近则相似度越高,排序并返回最小汉明距离对应的图像,即测试集样本的检索图像。根据评价指标平均精度均值指标(map)衡量检索结果准确率,判断测试集图像与检索图像的类别标签是否一致。

以下结合具体的实验进一步说明本发明的有益技术效果:

本发明采用cifar-10图像数据集作为实例数据集,该数据集包含60000张32×32的彩色图像,划分为10个类别:airplane、automobile、bird、cat、deer、dog、frog、horse、ship、truck,每个类别对应6000张图片。本发明在构建网络模型时选用vgg-f,该网络是利用大规模图像数据库imagenet学习到的21层深度模型。

参照图1,本发明解决其技术问题的具体步骤如下:

步骤s1:构造并划分图像数据集

采集cifar-10图像数据集,预处理为224×224的图像特征,构造为图像数据集x=[x1,x2,...,x60000],数据集x的10个类别标签表示为y=[y1,y2,...,y10],x中的每个样本xi,{i=1,2,...,60000}均包含图像特征及标签。随后划分数据集,从每类中依次随机选取100张、500张和5000张(各部分无重复),分别作为训练集xtr、测试集xte和检索图像集xdata,训练集用于模型训练,测试集和检索图像集用于图像测试(检索)。

步骤s2:构建高阶深度哈希网络的架构

参照图2网络结构示意图,构建基于基础特征子网络、高阶池化子网络、哈希子网络及损失子网络的高阶深度哈希网络。为探索不同编码位上高阶深度哈希码的性能,本实例将编码位分别设置为k={12,24,32,48},即分别构建结点数为12、24、32、48的哈希隐层,获得四种模式的高阶深度哈希网络模型g1、g2、g3、g4;

步骤s3:训练高阶深度哈希网络模型

(1)网络参数初始化,设置训练的学习率为(10-6~10-3),权重下降率为0.0001,设置训练批次为16,训练代数为100,图像特征前向传播:

将训练集xtr的5000张图像输入网络,每张224×224的图像经基础特征子网络映射为13×13×256的基础特征xm,在高阶池化子网络中,根据发明内容所述公式(1)、(2)转化为样本协方差矩阵m,基于特征值分解和矩阵幂获得1×32896的高阶特征p。

在此基础上根据公式(3)将高阶特征p嵌入可编码特征,分别获得4种比特位的特征矩阵h,其维度为k×5000,k={12,24,32,48},h=[h1,h2,...h5000],hi代表每张图片对应的k×1的哈希列向量,

(2)误差反向传播:根据公式(5),全连接层将可编码特征映射为10×1的向量xi,即对应10个类别标签的取值,经softmax处理为10×1的预测概率向量,依据公式(6)计算交叉熵损失。本实例设置训练代数为100代,当训练编码位为48位时,根据数据记录可知,初始的top1错误率为0.65,top5错误率为0.145。

此时根据该初始误差进行反向传播,参照公式(7)、(8)、(9),实现梯度回传更新网络参数。在迭代过程中,错误率随着训练代数增加逐渐减小,当训练至20代时,top1错误率近似为0.16,top5错误率为0.03。在后续的训练中,网络参数微调,直至错误率最低,达到收敛状态,在第100代训练结束时,top1错误率达到0.11,top5错误率达到0.01,确定最优高阶深度哈希网络模型。

步骤s4:计算测试集及检索图像集的哈希码

将1000张测试集xte和50000张检索图像集xdata输入学习到的网络,正向传播至哈希子网络获得可编码特征hi,借助bi=sgn(hi)执行元素二值操作,将元素值以0为界映射为1或-1,确定哈希码bte=[b1,b2,...b1000]及bdata=[b1,b2,...b50000]。

步骤s5:计算汉明距离,排序输出检索结果

针对1000张测试集图像中的任意一幅图像,计算该图像与检索图像集中50000张图像的汉明距离,并表示为50000×1的距离向量,最终整个测试集得到50000×1000的距离矩阵。根据汉明距离判断图像相似度,对该矩阵的列向量排序,返回最小距离对应的图像索引,该索引对应的图像即测试集图像的检索结果。根据测试集样本与检索到图像的类别标签是否一致,计算图像检索的map。如下表1是4种编码位的高阶深度哈希码的map,在cifar-10数据集上与其他两种哈希方法比较,其结果更占优势。

表1cifar-10数据集上不同方法的map

综上所述,本发明提出的基于高阶深度哈希学习的方法可有效提升图像检索精度,该方法构造包含图像特征及标签信息的数据集,并划分为测试集、训练集和检索图像集;利用基础特征子网络、高阶池化子网络、哈希子网络及损失子网络构建高阶深度哈希网络结构;基于损失函数训练模型,确定最优深度哈希网络;利用训练好的网络计算测试集和检索图像集的哈希码并输出检索结果。本发明的网络模型融合基础特征、高阶特征和哈希编码,深入挖掘三者的内在联系,联合优化,保证学习到的哈希码具有更丰富的语义信息,借助交叉熵损失实现网络端对端训练,提升高阶深度哈希的图像检索性能。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围内。

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