
技术摘要:
本发明属于图像检索技术领域,公开了一种基于线性鉴别分析深度哈希算法的图像检索方法及系统,利用CNN提取图像特征;构造基于线性判别分析LDA的目标函数,将图像特征映射到哈希标签中;利用生成的hash标签训练一个简单的图像哈希深度学习网络,利用深度哈希模型将新的 全部
背景技术:
目前,随着大数据时代的到来,图像数据的规模呈指数级增长。从海量图像中有效 提取相关信息的方法是大数据时代图像检索技术的核心,其中基于内容的图像指纹识别是 一种有效的方法。基于内容的图像指纹识别的核心是为图像生成指纹。在一个大型的图像 数据库中,本发明通过在相应的指纹数据库(从数据库中的图像中提取)中查找与查询图像 相对应的相似图像。因此,为了保证大数据时代图像检索的有效性,图像指纹应保持以下几 个特性:(1)鉴别:感知相似的图像应映射为相似的指纹,而两个感知不同的图像应映射为 不同的指纹。(2)压缩:指纹应该压缩,以减少在大型图像数据库中查找查询图像匹配的时 间消耗。为了保证图像检索的有效性和效率,图像指纹应该平衡上述两个特性,因为当鲁棒 性和紧凑性增加时,识别率会在一定程度上降低。 对于大规模图像检索,很明显,最近邻搜索用于寻找相似特征并没有给出实用的 解决方案,而近似最近邻搜索为这些问题给出了有效的解决方案。为了解决实值特征的无 效性,将散列引入基于内容的图像检索领域,将图像映射到近似保留原始空间中的数据结 构的紧凑二进制代码。由于通过位异或运算和非零位计数可以有效地计算出两个二值hash 码之间的Hamming距离,因此在图像搜索过程中所需的时间和内存开销远小于计算图像特 征之间的欧氏距离。图1 显示了欧氏距离和汉明距离的区别。所以,一台普通的PC机在几毫 秒内就能完成数百万的汉明距离计算。因此,哈希算法在快速图像检索中显示出无可比拟 的优越性。 现有方法的缺陷:现有的散列方法仍然面临两方面的困难。首先,现有的散列方法 很大程度上依赖于手工绘制的特征提取,如颜色直方图、基于DCT域的图像特征、尺度不变 特征变换(SIFT)、广义搜索树(GIST)等,它们在反映图像语义信息方面是有限的,因为它们 只在一个视图(全局或本地视图)中表示语义内容。其次,散列的另一个关键问题是保持或 放大提取特征的相似性。自学散列被认为是最先进的作品之一。然而,由于训练数据的散列 码生成和测试数据的散列函数生成的操作都是独立处理的,导致泛化能力差,因此存在着 过度拟合的问题。 由于深度学习的良好性能,将其引入图像哈希,一定程度上提高了散列性能,另一 方面,现有方法总是利用深度网络来获得精确的图像特征,导致高的时间消耗。 通过上述分析,现有技术存在的问题及缺陷为:(1)现有的图像检索技术的核心是 基于内容的图像指纹识别,关键问题在于如何在大数据背景下生成图像指纹。现有技术为 了解决实值特征的无效性引入了散列,但是目前的散列仍然面临着较多困难。 (2)现有散列方式很大程度依赖手工绘制的特征提取,反映的语义信息比较有限。 (3)现有散列还有一个关键问题在于如何保持或放大提取特征的相似性。 5 CN 111611427 A 说 明 书 2/10 页 (4)现有的方法依赖于类标签来监督散列过程,但是标签在大数据时代是很难获 取的。 解决以上问题及缺陷的难度为:一方面需要解决特征提取的问题,手工提取特征 反映的语义信息比较有限,而如果依靠深度网络直接提取图像的精确特征,则会导致较高 的时间消耗。 为了解决上述问题,引入了深度学习一定程度上提高了散列性能。 解决以上问题及缺陷的意义为:利用深度学习网络提取原始图像的特征,构建目 标函数,图像特征通过目标函数来映射到哈希标签,接着生成的哈希标签又可以用来训练 深度学习网络。图像经由深度学习网络提取特征,最后映射的哈希标签再用于训练网络,这 个算法可以在训练的过程中提高深度学习网络的准确性,同时深度学习网络在初始提取图 像特征时,并没有要求较为精确的特征,避免来了大量的时间消耗。 所以将哈希算法和深度学习相结合的图像检索方法及系统,能够较好的解决单一 的哈希算法和深度学习算法在图像检索方面的缺陷,两者的结合达到了 1 1>2的效果。
技术实现要素:
为了解决现有技术存在的问题,本发明提供了一种基于线性鉴别分析深度哈希算 法的图像检索方法及系统。本发明通过CNN提取图像特征,将图像特征再映射到哈希标签 中,然后利用哈希标签训练一个图像哈希学习网络;避免使用深度网络获取精确的图像特 征导致的时间高消耗。 本发明是这样实现的,一种基于线性鉴别分析深度哈希算法的图像检索方法包 括:利用CNN提取图像特征;构造基于线性判别分析(LDA)的目标函数,将图像特征映射到哈 希标签中;利用生成的hash标签训练一个简单的图像哈希深度学习网络,利用深度哈希模 型将新的图像的特征映射到哈希码完成图像检索。 具体包括: 步骤一,利用深度CNN提取原始图像特征; 步骤二,构造基于线性鉴别别分析的目标函数; 步骤三,将目标函数最小化; 步骤四,将图像特征映射到哈希标签; 步骤五,利用生成的哈希标签训练深度学习网络; 步骤六,利用深度哈希模型将图像特征映射到哈希码实现图像检索。 进一步,所述步骤二构造基于线性判别分析的目标函数的方法包括: 步骤1,通过邻域保存和判别增强分别构造其局部和全局结构; 步骤2,根据构造的结构生成一个散列函数f(x)=sign(PTX)其中P∈Rmxd和x ∈Rm; 步骤3,利用散列函数f(.),将X中的每个数据点x 映射到y di i∈{-1,1} (d<m) 中, 使得封闭的数据点具有相似的代码,而遥远的数据点具有不同的代码。Y=[y1, y2,…,yn] 属于海明空间。 进一步,步骤2根据构造的结构生成散列函数的方法包括: (1)采用基于局部结构的方法,利用亲和图刻画局部结构,利用亲和矩阵 A表示 图,其中A(i,j)是定点xi和xj之间边的权重,Nk(x)表示数据点x的 k个近邻; 6 CN 111611427 A 说 明 书 3/10 页 (2)通过检查数据映射到海明空间后保留了多少亲和图来评估局部性的保留程 度,被定量表示为: 其中L=D-A=I-A,D(i,j)=∑jW(i,j)=1,L是图的拉普拉斯矩阵;将(1)进行优 化化简, 遵循: PTP=Id (2); (3)线性判别分析寻找一组线性投影,LDA通过优化目标函数找到投影矩阵 P= [p1,p2,...,p ]∈Rm×dn 。 进一步,步骤(3)所述的线性判别分析寻找一组线性投影,LDA优化目标函数找到 投影矩阵的方法包括: (1)定义对于每个数据点,都被分配到唯一的一个集群,假设数据集X被划分为K个 集群,LDA寻找一组线性投影,其中类内散布Sw最小化,类间散布 Sb最大化,定义总散射St, 类内散射Sw,类间散射Sb为: 其中u是所有数据点的质心,u(k)是k类的质心,nk是k类中的数据点的数目, 表 示属于k类的数据点Xi; (2)LDA通过优化以下目标函数找到投影矩: 服从:PTP=Id。其中Tr(.)是迹算子,加入μI以避免奇异值问题,μ>0是标度因子。 在X居中之后,上式(6)为下列目标函数: 服从:PTP=Id。 进一步,步骤三所述的构造将目标函数最小化具体包括: (1)统一目标函数:考虑PTP=Id,将(7)改写为: 将目标函数(2)和(8)整合在一起,得到统一的目标函数: 7 CN 111611427 A 说 明 书 4/10 页 服从:PTP=Id,其中0≤λ≤1。 (2)对目标函数进行最小化,设B=XLXT,C=(XXT μI )-1m XAXT,可以将(9) 改写成: 其中: 本发明另一目的在于提供提供一种基于线性鉴别分析深度哈希算法图像检索系 统,包括: 图像获取模块,用于获取和收集训练图像以及检索图像; 图像特征提取模块,通过cnn来提取图像的特征,提取出来的特征数据 X=[x1 , x2,...x mn],xi∈R ,n是数据点的总数; 哈希码模块,构建目标函数,然后通过目标函数得到图像的哈希码; 分块编码模块:对哈希标签进行分块编码来训练深度哈希模型; 查询模块:通过训练好的深度哈希模型来提取检索图像的哈希码,和哈希码库中 的哈希码进行异或运算; 显示模块:根据所述查询模块的结果显示图像检索的结果; 进一步,所述的哈希码模块具体包括: 构建结构单元,采用基于局部结构的方法,利用亲和图来刻画局部结构,用亲和矩 阵A来表示图, 其中A(i,j)是顶点xi和xj之间的边的权重,Nk (x)表示数据点x的k个近邻; 构建散列函数单元,基于构建的结构生成一个散列函数: f(x)=sign(PTx),局部 保留的程度被定量地表示为语义损失:S=Tr(YLYT),其中L 是图的拉普拉斯矩阵,D是对角 矩阵,A是邻接矩阵,Y=[y1,y2,...,yn]属于海明空间; 最优解单元,对目标函数进行优化整合,求取最小值,得到一个最终的目标函数: 又=Tr(PTDP);其中Tr(.)是迹算子,B =XLXT,C=(XXT μI )-1m XAXT, D=B λ(Im-C) (1-λ)Im=B λIm-λC Im-λIm=B-λC Im; 映射单元,将图像的特征数据通过最终的目标函数映射到哈希标签,将特征数据X 的每个数据点X di都映射到yi∈{-1,1} (d