本发明涉及图像检索技术领域,具体涉及一种融合语义信息和多级相似性的深度哈希图像检索方法。
背景技术:
近年来,随着互联网的发展,海量的图像数据给图像检索任务带来了巨大的挑战。面对大规模且复杂的图像数据,检索系统应在保证图像检索质量的同时,也要兼顾检索的效率,同时还要解决海量信息的存储有效性问题,以实现更好的用户体验。因此,研究更优的图像检索方法具有很高的现实意义。
基于深度哈希技术来进行图像检索是目前比较常用的方法,其优势在于:通过将图片映射为二进制哈希向量,可以利用位运算快速比较特征,提高检索速度,同时减少需占用的存储空间。
面对较为复杂的图片,传统的深度哈希方法暴露出明显的缺点。一方面,衡量不同图像之间的相似度时过于粗糙。即只要两张图片共享标签,就视为相似;反之则不相似。这样做没有考虑到图片间更细粒度的相似度等级,以及图片所蕴含的语义信息。另一方面,对于传统的二元组损失函数,只用一个指定阈值来约束两张相似图片的哈希向量间的海明距离上界,对下界没有任何约束。这就使得具有不同程度相似性的图像间的相对距离无法保证,也就导致图像检索结果中排序准确度的降低。
技术实现要素:
本发明的目的在于克服现有技术中所存在的上述不足,提供一种融合语义信息和多级相似性的深度哈希图像检索方法,以融合语义信息,考虑到图片间更细粒度的相似度等级,提高图像的检索精度;并通过采用新的二元组损失函数,构建对相似图片哈希向量的海明距离有下界约束的损失函数,提高图像检索结果中排序的准确度。
为了实现上述发明目的,本发明提供了以下技术方案:
一种融合语义信息和多级相似性的深度哈希图像检索方法,包括以下步骤:
s1,构建图像数据库;
s2,构建标签向量矩阵和语义向量矩阵;
s3,构建相似度矩阵;
s4,搭建深度哈希神经网络模型,将原始图像转换为近似哈希向量;
s5,构建对相似图片哈希向量的海明距离有下界约束的损失函数;
s6,对搭建的深度哈希神经网络模型进行训练;
s7,构建图像的哈希向量数据库;
s8,将待检索图像的哈希向量与哈希向量数据库里的向量进行对比,以找出相似的图像。基于标签向量矩阵和语义向量矩阵构建相似度矩阵,以融合语义信息,提高图像的检索精度;并通过构建对相似图片哈希向量的海明距离有下界约束的损失函数,提高图像检索结果中排序的准确度。
优选地,所述步骤s2中,构建标签向量矩阵和语义向量矩阵的步骤如下:
从图像数据库中随机抽取图像及对应的标签和文本描述,以构建出标签向量矩阵和语义向量矩阵;利用标签信息构建出标签向量矩阵l,其中li,j=0表示第i张图片不含有第j个标签,li,j=1表示第i张图片含有第j个标签;利用自然语言处理技术,将每张图片的文本描述编码成一个向量,构建出图片语义向量矩阵c,其中,ci表示第i张图片的文本描述对应的向量,用此向量代表该图片的语义信息。
优选地,所述步骤s3中,构建相似度矩阵的步骤如下:
s3-1,利用步骤s2中构建的标签向量矩阵,对标签向量进行相互内积,以构建标签相似度矩阵:
公式(1)中,slabel是标签相似度矩阵,
s3-2,利用步骤s2中构建的语义向量矩阵,计算语义向量相互间的余弦相似度,以构建语义相似度矩阵:
公式(2)中,sseman是语义相似度矩阵,
s3-3,利用标签相似度矩阵和语义相似度矩阵,构建相似度矩阵为:
公式(4)中,s是相似度矩阵,si,j代表图像i和图像j之间的相似度,n表示图片个数,w是权重系数。
优选地,所述步骤s4包括以下步骤:
s4-1,利用tensorflow深度学习开源框架搭建alexnet网络模型,并使用imagenet数据集对alexnet网络模型进行预训练;
s4-2,在经典的alexnet模型上进行优化,构建深度哈希神经网络模型;
所搭建的深度哈希神经网络模型结构如下:
包含5个卷积层:第一卷积层、第二卷积层、第三卷积层、第四卷积层以及第五卷积层;
包含3个全连接层:第一全连接层、第二全连接层以及哈希层。
利用tensorflow深度学习开源框架搭建alexnet网络模型,对alexnet网络模型进行预训练时,该训练过程是模型自适应反向传播更新参数,中间不需要人为干预调整参数,预训练过程简单。
优选地,所述哈希层的神经元个数为64。
优选地,所述步骤s5中,所设计的损失函数为:
公式(8)中,
优选地,所述步骤s6中,采用随机梯度下降法对深度哈希神经网络模型进行训练;
公式(9)中,μ表示深度哈希神经网络模型中的任意一个参数,μ′表示更新后的参数,λ表示μ更新的幅度,
优选地,所述步骤s7中,将图像数据库中的图像输入步骤s6已训练完成的深度哈希神经网络模型,将会得到近似哈希向量集合b={b1,b2,…bn},其中n为图像数据库中图像的个数,bn为第n个图像的近似哈希向量;将近似哈希向量集合b经过sign函数,得到对应的二进制哈希向量数据库集合h={h1,h2,...hn},其中n为图像数据库中图像的个数,hn表示第n个图像的二进制哈希向量。用二进制哈希向量来表示图片特征,提高了图像检索的速度。
与现有技术相比,本发明的有益效果:
1、基于标签向量矩阵和语义向量矩阵构建相似度矩阵,以融合语义信息,提高图像的检索精度;
2、通过构建对相似图片哈希向量的海明距离有下界约束的损失函数,提高图像检索结果中排序的准确度;
3、上、下界的阈值跟随图片间的相似度si,j变化自适应,对于共享标签的两张图片,对应的近似哈希向量间的欧式距离,应该处于上、下界之间;而对于不共享标签的两张图片,会尽量拉大对应的近似哈希向量间的欧式距离;提高图像检索精度;
4、用二进制哈希向量来表示图片特征,提高了图像检索的速度。
附图说明:
图1为本发明示例性实施例1的融合语义信息和多级相似性的深度哈希图像检索方法的流程图;
图2为本发明示例性实施例1的深度哈希神经网络模型的结构图。
图中标记:11-第一卷积层,12-第二卷积层,13-第三卷积层,14-第四卷积层,15-第五卷积层,21-第一最大池化层,22-第二最大池化层,23-第三最大池化层,31-第一全连接层,32-第二全连接层,41-哈希层。
具体实施方式
下面结合试验例及具体实施方式对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本发明内容所实现的技术均属于本发明的范围。
实施例1
如图1所示,本实施例提供一种融合语义信息和多级相似性的深度哈希图像检索方法,具体包括一下步骤:
s1:构建图像数据库。
筛选出在数据集中出现频率最高的前k个标签的种类,以及包含这k个标签的图片,用于构建图像数据库。
本实施例中,本发明采用微软公开的coco数据集,数据集中的每一张图像对应若干个标签种类(例如标签种类为人、水、汽车,等等)。本发明选取在数据集中出现次数(由多到少排列)排列前k位的标签种类以及拥有该标签种类的图像,用于构建图像数据库。例如,本发明在coco数据集中选取出现次数排列前20的标签种类及对应的图像,用于构建本发明的图像数据库。
s2:构建标签向量矩阵和语义向量矩阵。
从图像数据库中随机抽取图像及对应的标签和文本描述,以构建出标签向量矩阵和语义向量矩阵。
本实施例中,本发明从图像数据库中随机抽取n个图像及对应的标签,构成训练集:t={t1,t2,…,tn},tn表示第n个图像及对应的标签,n≥1;其中,tn={in,ln},in表示第n张图像,ln为标签向量,表示第n张图像对应的标签,其为向量。用标签向量构建出标签向量矩阵l,其大小为n×k,n表示图像的个数,k表示标签种类的个数。其中li,j=0表示第i张图片不含有第j个标签,li,j=1表示第i张图片含有第j个标签。另外,利用自然语言处理技术,将每张图片的文本描述编码成一个向量,构建出图片语义向量矩阵c;其中,ci表示第i张图片的文本描述对应的向量,用此向量代表该图片的语义信息。本实施例中,将每张图片的文本描述编码成一个512维的向量。
s3:构建相似度矩阵。
s3-1:利用步骤s2中构建的标签向量矩阵,构建标签相似度矩阵;
本实施例中,将所有标签向量ln进行相互内积,并对任意两个标签向量内积的结果,除以对应图片内容涉及的标签总数;将该结果用于构建标签相似度矩阵。标签相似度矩阵大小为n×n,n表示图像的个数。
标签相似度矩阵slabel表示为以下公式:
公式(1)中,slabel是标签相似度矩阵,
s3-2:利用步骤s2中构建的语义向量矩阵,计算语义向量相互间的余弦相似度,以构建语义相似度矩阵;
本实施例中,语义相似度矩阵大小为n×n,n表示图像的个数。语义相似度矩阵表示为以下公式:
公式(2)中,sseman是语义相似度矩阵,
s3-3:利用标签相似度矩阵和语义相似度矩阵,构建相似度矩阵。
本实施例中,相似度矩阵s由步骤s3-1和s3-2中得到的标签相似度矩阵和语义相似度矩阵融合而成。其大小为n×n,n表示图像的个数。相似度矩阵s表示为以下公式:
公式(4)中,s是相似度矩阵,si,j代表图像i和图像j之间的相似度,n表示图片个数,w是权重系数。本实施例中w取值为0.5。
s4:搭建深度哈希神经网络模型,将原始图像转换为近似哈希向量。
s4-1:利用tensorflow深度学习开源框架搭建alexnet网络模型,并使用imagenet数据集对alexnet网络模型进行预训练。
tensorflow深度学习开源框架是相对高阶的机器学习库,用户可以方便地用它设计神经网络结构,而且其支持自动求导,用户不需要再通过反向传播求解梯度。cnn(卷积神经网络)是图像识别分类算法的核心算法,其中alexnet网络模型为现有的深度学习方面的经典模型。利用tensorflow深度学习开源框架搭建alexnet网络模型,并使用imagenet数据集对alexnet网络模型进行预训练。对alexnet网络模型进行预训练,即对参数随机化的alexnet网络进行分类训练,使其参数能够学习到普适的特征,该训练过程是模型自适应反向传播更新参数,中间不需要人为干预调整参数。
s4-2:构建深度哈希神经网络模型。
本实施例在经典的alexnet模型上进行优化,用于构建深度哈希神经网络模型,以提高图像的检索精度。
本发明将预训练的alexnet网络模型中最后一个全连接层去掉,保留其余结构及参数,并在网络顶层添加一个新的哈希层fch。其中,fch层包含64个神经元,该层的激活函数设置为tanh函数,以使fch中各个神经元输出的值在[-1,1]之间。所搭建的深度哈希神经网络模型结构如图2所示:
包含5个卷积层:第一卷积层(conv1)11、第二卷积层(conv2)12、第三卷积层(conv3)13、第四卷积层(conv4)14以及第五卷积层(conv5)15;
包含3个全连接层:第一全连接层(fc6)31、第二全连接层(fc7)32以及哈希层(fch)41。
第一卷积层(conv1)11的输入端用于输入原始图像,第一卷积层(conv1)11的输出端连接第一最大池化层21的输入端,第一最大池化层21的输出端连接第二卷积层(conv2)12的输入端,第二卷积层(conv2)12的输出端连接第二最大池化层22的输入端,第二最大池化层22的输出端连接第三卷积层(conv3)13的输入端,第三卷积层(conv3)13的输出端连接第四卷积层(conv4)14的输入端,第四卷积层(conv4)14的输出端连接第五卷积层(conv5)15的输入端,第五卷积层(conv5)15的输出端连接第三最大池化层23的输入端,第三最大池化层23的输出端连接第一全连接层(fc6)31的输入端,第一全连接层(fc6)31的输出端连接第二全连接层(fc7)32的输入端,第二全连接层(fc7)32的输出端连接哈希层(fch)41的输入端,哈希层(fch)41的输出端输出经过近似哈希向量。
本发明将原始图像输入到深度哈希神经网络模型中,经过卷积层和全连接层的映射后,得到近似哈希向量,近似哈希向量中每一维度的取值范围为[-1,1]。例如,本发明在构建的深度哈希神经网络模型中输入原始大小为227×227×3的图像,经过5个卷积层和3个全连接层的映射,将输出一个64维的近似哈希向量。另外,本发明可同时输入多个图像,从而得到多个近似哈希向量集合b={b1,b2,…bn},bn表示第n张图像的近似哈希向量。
s5:构建对相似图片哈希向量的海明距离有下界约束的损失函数。
s5-1:计算图片对应的近似哈希向量之间的相似度。
本实施例中,对于s4中得到的近似哈希向量集合b={b1,b2,…bn},用集合中近似哈希向量之间的欧式距离
s5-2:基于欧式距离
二元组损失函数
公式(5)中,
该二元组损失函数的意义为:对于共享标签的两张图片,对应的近似哈希向量间的欧式距离,应该处于上、下界之间。其中,上、下界的阈值跟随图片间的相似度si,j变化自适应。对于不共享标签的两张图片,会尽量拉大对应的近似哈希向量间的欧式距离;直至其大于规定的阈值δ*nbits时,才会不产生损失。
s5-3:为近似哈希向量定义量化损失
量化损失
公式(6)中,
该公式的意义为:近似哈希向量每个维度的值越接近1或-1,那么它是个合理的哈希向量的概率越高,产生的损失就越小。
s5-4:构建完整的损失函数。
本实施例中,损失函数
公式(7)中,γ表示量化损失的权重系数,本实施例中设为1.0。将公式(5)和(6)代入(7),可得完整的损失函数
s6:对搭建的深度哈希神经网络模型进行训练。
s6-1:通过损失函数构建优化目标。
本实施例中,本发明将利用构建的损失函数模型来构建优化目标:
s6-2:使用随机梯度下降的方法对优化目标进行求解。
本实施例中,本发明采用随机梯度下降的方法对优化目标求解,即对损失函数
公式(9)中,μ表示深度哈希神经网络模型中的任意一个参数,μ′表示更新后的参数,
本实施例中,每一批的训练数据量为256,迭代次数为10000次。
s7:构建图像的哈希向量数据库。
本实施例中,本发明将图像数据库中的图像输入已训练完成的深度哈希神经网络模型,将会得到近似哈希向量集合b={b1,b2,…bn},其中n为图像数据库中图像的个数,bn为第n个图像的近似哈希向量;将近似哈希向量集合b经过sign函数(函数的作用是:将大于等于0的数转变成1,小于0的数转变成-1),得到对应的二进制哈希向量数据库集合h={h1,h2,...hn},其中n为图像数据库中图像的个数,hn表示第n个图像的二进制哈希向量。
s8:将待检索图像的哈希向量与哈希向量数据库里的向量进行对比,以找出相似的图像。
本实施例中,本发明将待检索的图像i输入已训练完成的深度哈希神经网络模型中,从而得到相对应的近似哈希向量bi;再经过sign函数,得到图像i相对应的二进制哈希向量hi。将哈希向量hi和构建的图像哈希向量数据库中的所有哈希向量进行与运算,分别得到相对应的结果,并将结果值按从大到小进行排列;结果值越大,表明该哈希向量与hi的相似度越高,即表明该哈希向量对应的图像与需检索的图像i越相似,保障了图像的检索精度。例如,哈希向量hi与图像哈希向量数据库中的第一个哈希向量进行与运算,得到第一结果值;哈希向量hi与图像哈希向量数据库中的第二个哈希向量进行与运算,得到第二结果值;若第一结果值大于第二结果值,则表明第一哈希向量对应的图像与哈希向量hi对应的图像更加相似。
以上所述,仅为本发明具体实施方式的详细说明,而非对本发明的限制。相关技术领域的技术人员在不脱离本发明的原则和范围的情况下,做出的各种替换、变型以及改进均应包含在本发明的保护范围之内。