图片检索模型建立方法和装置、图片检索方法和装置
技术领域
本发明涉及图像处理技术领域,特别涉及一种图片检索方法和装置。
背景技术
除了文本检索之外,根据图片搜索图片的图片检索也是一个切实的需求。
在相关的现有技术中,其中一种图片检索方式是“感知哈希算法”。在该方法中,先将图片(检索图片和候选图片)缩小到一个小尺寸(如32×32大小),再对图片进行二维的余弦变换,得到图片的频率分布的值,其中,低频的信息集中在左上角,高频的信息靠近右下角,再从余弦变换后的图片中截取左上角的一定区域(如,该区域大小为8×8),该区域涵盖了原图的基本色调,再对该区域进行二值化处理,得到二值化结果,再将二值化结果编码为哈希码。在检索时,直接计算检索图片的哈希码和候选图片的哈希码的汉明距离,根据汉明距离评估检索图片和候选图片的相似度,并确定候选图片是否为检索结果。但是,这种图片检索方式对于自然场景中的图片比较适用,而对文本插图并不适用,当对文本插图进行检索时,其检索的准确度并不高。
另一种图片检索方式是将检索图片和候选图片都缩放到同等大小,并进行对齐,最后比较两个图片中各像素点的值是否一致,根据是否一致确定候选图片是否为检索结果。但是,这种方式也有其自身的缺陷:第一,由于拍摄导致的图片变形等问题,在对齐环节很容易使得对应像素错位,故不能得到准确的答案;第二,在大规模的图片检索中,如果将检索图片与每张候选图片单独进行对比、判别操作,操作的耗时极长、无法满足线上的快速检索的要求。
由此可见,现有的图片检索方式无法既满足检索准确度的要求又满足检索速度的要求。
发明内容
针对图像处理技术领域,本申请所要解决的技术问题是,针对现有技术的不足,提出一种图片检索方法和装置,以尽可能提高检索准确度的同时,提高检索速度。
本申请一方面,提供一种图片检索模型建立方法,包括:
构建初始的第一神经网络和第二神经网络,所述第一神经网络与第二神经网络相同;
所述第一神经网络接收第一图片,所述第二神经网络接收第二图片;
所述第一图片和第二图片分别通过所述第一神经网络和第二神经网络前向传播;
所述第一神经网络和第二神经网络分别计算得到与第一图片对应的第一特征和与第二图片对应的第二特征;
结合所述第一特征、第二特征和标签,计算当前神经网络的损失,所述标签用于标明所述第一图片与第二图片是否相似;
当损失为零时,所述第一神经网络和第二神经网络继续接收下一组训练数据,所述训练数据包括新的第一图片、第二图片和对应标识;
当损失非零时,将所述损失逐层反向传播到所述第一神经网络和第二神经网络中,并同步更新所述第一神经网络和第二神经网络中每层网络的权值,当误差被反向传播至所述第一神经网络和所述第二神经网络的输入层时,所述第一神经网络和第二神经网络接收下一组训练数据继续训练,直至训练数据均训练完成。
可选地,在所述第一图片和第二图片分别经所述第一神经网络和第二神经网络前向传播之前,还包括:
将所述第一图片和第二图片调整至第一尺寸,所述第一尺寸由所述第一神经网络确定。
可选地,所述第一特征为所述第一图片经所述第一神经网络计算得到的第一哈希码;所述第二特征为所述第二图片经所述神经网络计算得到的第二哈希码。
可选地,所述第一神经网络为卷积神经网络。
可选地,所述卷积神经网络包括至少两层卷积层,所述方法还包括:
对第一卷积层的输出做反卷积变换,得到第一中间结果;
计算所述第一中间结果与所述第一卷积层的输入之间距离,并用该距离调节所述第一卷积层的权值;
对第二卷积层的输出做反卷积变换,得到第二中间结果;
计算所述第二中间结果与所述第二卷积层的输入之间距离,并用该距离调节所述第二卷积层的权值。
本申请另一方面,还提供一种图片检索方法,包括:
获取检索库图片;
将所述检索库图片调整至第一尺寸;
将第一尺寸的检索库图片作为第一输入,依次输入至由权利要求1-5任意一项建立的图片检索模型的第一神经网络中,得到所述检索库图片对应的第一特征并存储;
获取待检索图片并将待检索图片调整至第一尺寸;
将第一尺寸的待检索图片输入作为输入,输入至所述第一神经网络中,得到所述待检索图片对应的第一特征;
计算所述待检索图片对应的第一特征与检索库图片对应的第一特征的汉明距离,并根据汉明距离确定与所述待检索图片相似的图片。
本申请另一方面,提供一种图片检索模型建立装置,包括:
构建模块,用于构建初始的第一神经网络和第二神经网络,所述第一神经网络与第二神经网络相同;
接收模块,用于所述第一神经网络接收第一图片,所述第二神经网络接收第二图片;
第一处理模块,用于控制所述第一图片和第二图片分别通过所述第一神经网络和第二神经网络前向传播,所述第一神经网络和第二神经网络分别计算得到与第一图片对应的第一特征和与第二图片对应的第二特征;
计算模块,用于结合所述第一特征、第二特征和标签,计算当前神经网络的损失,所述标签用于标明所述第一图片与第二图片是否相似;
控制模块,用于当损失为零时,所述第一神经网络和第二神经网络继续接收下一组训练数据,所述训练数据包括新的第一图片、第二图片和对应标识;当损失非零时,将所述损失逐层反向传播到所述第一神经网络和第二神经网络中,并同步更新所述第一神经网络和第二神经网络中每层网络的权值,当误差被反向传播至所述第一神经网络和所述第二神经网络的输入层时,所述第一神经网络和第二神经网络接收下一组训练数据继续训练,直至训练数据均训练完成。
可选地,所述装置还包括:调整模块,用于在所述第一图片和第二图片分别经所述第一神经网络和第二神经网络前向传播之前,将所述第一图片和第二图片调整至第一尺寸,所述第一尺寸由所述第一神经网络确定。
可选地,所述第一特征为所述第一图片经所述第一神经网络计算得到的第一哈希码;所述第二特征为所述第二图片经所述第二神经网络计算得到的第二哈希码。
可选地,所述第一神经网络为卷积神经网络。
可选地,所述卷积神经网络包括至少两层卷积层,所述装置还包括:
第一反变换模块,用于对第一卷积层的输出做反卷积变换,得到第一中间结果;
第一调节模块,用于计算所述第一中间结果与所述第一卷积层的输入之间距离,并用该距离调节所述第一卷积层的权值;
第二反变换模块,用于对第二卷积层的输出做反卷积变换,得到第二中间结果;
第二调节模块,用于计算所述第二中间结果与所述第二卷积层的输入之间距离,并用该距离调节所述第二卷积层的权值。
本申请另一方面还提供一种图片检索装置,包括:获取模块,用于获取检索库图片;调整模块,用于将所述检索库图片调整至第一尺寸;处理模块,用于将第一尺寸的检索库图片作为第一输入,依次输入至由权利要求7-11任意一项建立的图片检索模型中第一神经网络中,得到所述检索库图片对应的第一特征并存储;所述调整模块,还用于将待检索图片调整至第一尺寸;所述处理模块,还用于将第一尺寸的待检索图片输入作为第一输入,输入所述第一神经网络中,得到所述待检索图片对应的第一特征;比较模块,用于计算所述待检索图片对应的第一特征与检索库图片对应的第一特征的汉明距离,并根据汉明距离确定与所述待检索图片相似的图片。
本申请实施例提供的技术方案基于神经网络模型可以快速计算出检索图片与每一个候选图片的特征,然后计算两者之间的汉明距离,因为汉明距离的计算过程仅是二值码的“异或”操作,所以速度极快,可迅速得到检索结果。
附图说明
图1为本申请一实施例提供的图片检索模型建立方法的流程示意图;
图2为本申请一实施例提供的图片检索模型建立方法的流程示意图;
图3为本申请一实施例提供的图片检索模型建立方法的架构图;
图4为本申请一实施例提供的卷积神经网络的结构示意图;
图5为本申请一实施例提供的图片检索方法的流程示意图;
图6为本申请一实施例提供的图片检索方法的流程示意图;
图7为本申请一实施例提供的图片检索模型建立装置的结构示意图;
图8为本申请一实施例提供的图片检索装置的结构示意图。
具体实施方式
现有的“感知哈希算法”对于自然场景的图片的检索比较适用,而不适用于文本插图,其原因在于,“感知哈希算法”选取的是原图中的低频信息对应的基本色调,而忽略了高频信息对应的图片细节,这在自然场景的图片是简单而有效的。文本插图的区别度不在于基本色调,在于线条等细节之处,而线条等细节信息一般包含在图片的高频信息中,“感知哈希算法”对高频信息是忽略的,所以使用“感知哈希算法”检索文本插图时,最终提取的都是纸张的灰度值,而无法基于哈希码的汉明距离进行有效的图片匹配。
需要说明的是,在本申请实施例中,“文本插图”是指在文本中出现的插图,如数学或几何图形、化学实验图等,由于其受限于纸面打印及传播,故图片的主要信息更集中于线条而非颜色、纹理等。
基于现有技术中图片检索方法无法兼顾检索准确度和检索速度的问题,本申请实施例建立一个可以对图片快速进行检索的模型,然后利用建立好的模型进行快速的图片检索。
参见图1,本申请一实施例提供的图片检索模型建立方法,包括步骤101至步骤109。
步骤101:构建初始的第一神经网络和第二神经网络,所述第一神经网络与第二神经网络相同。
所述初始的神经网络可以包括输入层、若干个隐层和一个输出层。
步骤102:所述第一神经网络接收第一图片,所述第二神经网络接收第二图片。
步骤103:所述第一图片和第二图片分别通过所述第一神经网络和第二神经网络前向传播;
步骤104:所述第一神经网络和第二神经网络分别计算得到与第一图片对应的第一特征和与第二图片对应的第二特征;
步骤105:结合所述第一特征、第二特征和标签,计算所述第一和第二神经网络的损失,所述标签用于标明所述第一图片与第二图片是否相似。
步骤106:判断所述损失是否为零,是则执行步骤107,否则执行步骤108。
步骤107:判断是否所有训练数据均训练完成,如果是则图片检索模型建立完成;否则,所述第一神经网络和第二神经网络继续接收下一组训练数据直至训练数据均训练完成,所述训练数据包括新的第一图片、第二图片和对应标识。
步骤108:将所述损失逐层反向传播到所述第一神经网络和第二神经网络中,并同步更新所述第一神经网络和第二神经网络中每层网络的权值,执行步骤109。
步骤109:判断误差是否被反向传播至所述第一神经网络和所述第二神经网络的输入层,如果是,则执行步骤107;否则,执行步骤108。
本申请实施例基于相似图片之间特征误差小,不相似图片之间的特征误差大的原理来训练用于图片检索的神经网络。该神经网络用于提取图片特征。
需要注意的是,本申请实施例中,所述第一神经网络与第二神经网络相同,即网络结构和网络参数均相同。通过相同的两个神经网络对两张图片同步进行特征提取,特征提取的方式相同。如果两张图片相似,两个相同的神经网络提取的特征应该近似,两个特征之间的误差应该小,甚至为0;如果两张图片不相似,两个相同的神经网络提取的特征应该不近似,两个特征之间的误差应该比较大;通过将两个特征的误差反向传递来同步调节两个神经网络中各层的权值,可以使得通过多组相似或者不相似的图片的训练,两个神经网络在提取特征时,相似的图片的特征更为相似,不相似的图片的特征差别更大。
本申请一实施例中,通过神经网络提取的特征可以是任意一种表征图像特征的编码,例如可以是图片的哈希码。两个特征间的误差可以是表征两个特征间的距离的参数,如汉明距离或者欧式距离。该神经网络可以是任意一种反馈型网络。
下面以卷积神经网络(CNN)提取图片的哈希码为例对本申请实施例提供的图片检索建模方法进行说明。
图2是本申请实施例提供的图片检索建模方法的流程图,包括步骤201-209,图3是与之对应的架构图。
步骤201:将训练模型用的样本图片统一调整到第一尺寸,如M×M大小,M=2n,M和n均为自然数。
本申请实施例中,可以将样本图片统一缩放到128×128等大小,其他实施例中可以根据实际需要选择其他的大小,例如64×64,256×256等,本申请对此不作限定。采用这样的图片格式,可以使得对图片的存储和计算更为便捷。
步骤202:获取图片组,每个图片组包含两个样本图片,并附有一个是否相似的标签。
结合图3,本实施例中,该图片组中包括样本图片1,样本图片2以及标签。
本申请实施例中,可以通过30万组图片组的数据集对网络进行训练,其中,相似和不相似的图片组可以各占一半。
在本申请实施例中,30万组的数量仅仅是示意性的,实际训练模型时,可以根据需要获取相应数量的数据集。
步骤203:将每组中的两个数据图片分别输入到两个相同的CNN中,对于每个CNN,得到一个48位的二值编码,即哈希码。
为了描述上的清楚,将这两个哈希码用哈希码1和哈希码2来表示。
步骤204:计算两个哈希码的距离。
本申请实施例中,两个哈希码之间的距离d可以采用欧式距离来计算,如:d=(hash1-hash2)^2。
步骤205:计算CNN的损失。
本申请一实施例中,所述损失可以通过下述过程计算得到。
CNN当前的损失(loss)则可以通过公式1来计算。
loss=label*d+(1-label)*[max(margin-sqrt(d),0)]^2 (1)
公式1中,label与标签的内容对应,当标签为相似时,label=1;当标签为不相似时,label=0。公式1中的margin表示哈希码1和哈希码2之间距离的界限。
通过对公式1进行分析,损失loss的结果如下:
当两个样本图片相似时,label=1,loss=d;
当两个样本图片不相似时,label=0,loss有如下两种情况:
若两个样本图片哈希码之间的距离d很小,则margin-sqrt(d)大于零,那么loss=(margin-sqrt(d))^2;
若两个样本图片哈希码之间的距离d很大,则margin-sqrt(d)小于零,那么loss=0。
通过公式1可以看出,当两个样本图片不相似,label=0时,原则上,两个样本图片的哈希码之间的距离大才是合理的。但是在对CNN训练的过程中,网络还不成熟,会出现两个样本图片不相似但是哈希码之间的距离很小的情况。为了避免不相似的样本的哈希码之间的距离小的情况,通过设置比较大的margin来实现对不合理的d进行调节,这样若不相似的样本的哈希码之间的距离比较小,loss=margin-sqrt(d),就会得到比较大的误差,从而对CNN进行更为深度的调节,是的CNN对图片的哈希码的提取更为合理。
步骤206:判断所述损失是否为零,是则执行步骤207,否则执行步骤208。
步骤207:判断是否所有数据集中的图片组是否均训练完成,如果是则图片检索模型建立完成;否则,所述两个CNN继续接收下图片组直至数据集中的图片组均训练完成。
步骤208:将所述损失逐层反向传播到两个CNN中,并同步更新两个CNN中每层网络的权值,执行步骤209。
可以利用随机梯度下降算法来根据损失优化每层网络的权值。
步骤209:判断误差是否被反向传播至两个CNN的输入层,如果是,则执行步骤207;否则,执行步骤208。
通过本实施例提供的方法,建立两个相同的CNN,该CNN用于提取图片的哈希码,并且为了使CNN能够实现相似的样本图片对的哈希码距离小而不相似的样本图片对的哈希码距离大,在训练过程中利用样本图片对的误差反向传播对CNN进行调整,从而最终实现CNN提取图片哈希码时又快速又合理的特点。
图4是一种卷积神经网络CNN的结构示意图,包括输入层,多个卷积层,多个池化曾,全连接层以及输出层。本申请一实施例中,为了避免数据集不够的情况下过拟合的现象出现,还可以在对CNN训练过程中对卷积层自编码进行自编码。所述自编码过程是针对CNN中的某一层卷积层进行的。包括:对一卷积层的输出做反卷积变换,得到中间结果;计算所述中间结果与所述卷积层的输入之间距离,并根据该距离调节所述卷积层的权值。
实际应用中,可以根据该距离,计算该卷积层的输出与输入之间的损失,利用该损失应用随机梯度下降法来调节该卷积层的权值。
当CNN有多层卷积层时,可以根据需要对其中的卷积层进行自编码,可以对其中的某一层卷积层进行自编码,也可以选择两层或者三层卷积层进行,本申请对此不作限定。
下面以具有两层卷积层和池化层的CNN为例进行说明。对卷积层进行自编码的过程包括如下步骤。
对第一卷积层的输出做反卷积变换,得到第一中间结果;
计算所述第一中间结果与所述第一卷积层的输入之间距离,并根据该距离调节所述第一卷积层的权值;
对第二卷积层的输出做反卷积变换,得到第二中间结果;
计算所述第二中间结果与所述第二卷积层的输入之间距离,并根据该距离调节所述第二卷积层的权值。
可以利用随机梯度下降算法来根据每层卷积层的中间结果与输入的距离优化对应的卷积层的权值。例如可以通过所述距离计算每层卷积层的中间结果与该卷积层的输入的误差,而后利用随机梯度下降算法,结合所述损失优化对应卷积层的权值。
所述对卷积层的自编码过程是在CNN训练过程中进行的,并且在两个CNN中同步进行。
用于图片检索的网络训练结束后,使用训练完成的神经网络来进行图片检索时,参见图5,包括步骤501至506。
步骤501:获取检索库图片。
步骤502:将所述检索库图片调整至第一尺寸。
所述第一尺寸由训练好的神经网络确定。
步骤503:将第一尺寸的检索库图片作为第一输入,依次输入已经训练好的特征提取网络中,得到所述检索库图片对应的第一特征并存储。
在之前训练神经网络过程中,为了使神经网络能够达到相似的样本图片对的特征间距离小而不相似的样本图片对的特征间距离大的特点,采用两个相同的神经网络对一对输入样本图片对进行同步特征提取,并将误差反向传播,对两个神经网络同步调整。所以训练结束时,获得了两个相同的神经网络。在进行图片检索时,可以采用其中任意一个来完成图片检索。
当选取一个训练完成的神经网络进行图片检索时,利用该神经网络对检索库中的图片进行特征提取并存储提取后的特征。
步骤504:获取待检索图片并将待检索图片调整至第一尺寸。
步骤505:将第一尺寸的待检索图片输入至所述第一神经网络中,得到所述待检索图片对应的第一特征。
步骤506:计算所述待检索图片对应的第一特征与检索库图片对应的第一特征的汉明距离,并根据汉明距离确定与所述待检索图片相似的图片。
参见图6,下面结合前述卷积神经网络提取的哈希码的建模方法获得的图片检索模块,对图片检索方面进行进一步的说明。
本申请实施例提供的图片检索方法包括步骤601至步骤608。
步骤601:获取检索库图片。
步骤602:将检索库图片缩小到第一尺寸。
所述第一尺寸由训练好的CNN确定,例如,可以是128*128大小。该CNN为哈希码提取网络。
步骤603:将第一尺寸的检索库图片输入已经训练好的CNN中,得到所述检索库图片对应的哈希码并存储。
步骤604:获取待检索图片a。
步骤605:将待检索图片a缩小到第一尺寸。
步骤606:将缩小后的检索图片a输入到训练好的的CNN中,得到检索图片a的哈希码。
步骤607:计算检索图片a的哈希码与存储的检索库图片的候选图片b的哈希码的汉明距离d。
步骤608:根据汉明距离确定候选图片b是否为与检索图片a匹配的检索结果。
其中,在上述步骤608中,可以预先设定一个汉明距离阈值D,判断汉明距离d是否小于或等于该汉明距离阈值D,如果小于或等于,则确定候选图片b是与检索图片a匹配的检索结果。
可选地,在步骤608中,还可以计算存储的检索库图片的各个候选图片的哈希码与待检索图片a的哈希码之间的汉明距离,然后,将汉明距离按照从小到大的顺序进行排序,选取排序位置在前N位的汉明距离对应的候选图片作为最终的检索结果,其中N为非零正整数。可以理解的,其中一种情况是,N的取值可以为1,即选取与检索图片具有最小汉明距离的候选图片作为检索结果。
通过以上实施例可见,在本申请实施例中,基于哈希码提取网络模型预先计算出检索库图片中的候选图片的哈希码,在检索时,通过直接调用候选图片的哈希码,从而可以更加快速地计算出检索图片的哈希码与每一个候选图片的哈希码之间的汉明距离,并可迅速找到检索结果。检索图片和候选图片不仅保留了原图中低频信息对应的基本色调,还保留了高频信息对应的图片细节,使得图片检索方法同样适用于文本插图。
基于完备性的考虑,我们还进行了两组实验。其中,第一组为标定了“相似”、“不相似”的图片共1万组,然后经过本申请实施例提出的哈希码提取网络模型进行验证,得到准确率和召回率等结果;第二组为模拟了1万条检索数据,在包含了10万张图片的数据库中检索,对前10条召回的结果进行衡量。
实验一:
测试数据集:选取了未经过训练过的1万组图片(其中5000组为相似的图片、5000组为不相似的图片)进行了检索准确度的测试,并取阈值=10,当两张图片的距离小于阈值时,则判断为相似;反之则判断为不相似。具体结果如下:
|
预测为“相似” |
预测为“不同” |
标记为“相似” |
4801 |
171 |
标记为“不同” |
73 |
4955 |
实验二:
在包含10万张图片的数据库中,抽取1万张进行检索,并对前10条召回进行评测,其中
“平均检索准确率”(MAP:Mean Average Precision)结果为:0.8526
“第一检索结果的准确率”(Top-1average precision)结果为:0.7897
通过上述数据可以发现,实验一说明了本申请实施例中的哈希码模型对较明确的“相似”、“不相似”图片组的判断较准确;然而在实际情况下,相同、不相似是一个渐变的过程,在中间会有大量的不好严格判断的例子,所以实验二在现实任务中更具有指导意义。
参见图7,本申请实施例还提供了一种图片检索模型建立装置,包括:
构建模块701,用于构建初始的第一神经网络和第二神经网络,所述第一神经网络与第二神经网络相同;
接收模块702,用于所述第一神经网络接收第一图片,所述第二神经网络接收第二图片;
第一处理模块703,用于控制所述第一图片和第二图片分别通过所述第一神经网络和第二神经网络前向传播,所述第一神经网络和第二神经网络分别计算得到与第一图片对应的第一特征和与第二图片对应的第二特征;
计算模块704,用于结合所述第一特征、第二特征和标签,计算当前神经网络的损失,所述标签用于标明所述第一图片与第二图片是否相似;
控制模块705,用于当损失为零时,所述第一神经网络和第二神经网络继续接收下一组训练数据,所述训练数据包括新的第一图片、第二图片和对应标识;当损失非零时,将所述损失逐层反向传播到所述第一神经网络和第二神经网络中,并同步更新所述第一神经网络和第二神经网络中每层网络的权值,当误差被反向传播至所述第一神经网络和所述第二神经网络的输入层时,所述第一神经网络和第二神经网络接收下一组训练数据继续训练,直至训练数据均训练完成。
可选地,所述图片检索模型建立装置还可以包括调整模块,用于在所述第一图片和第二图片分别经所述第一神经网络和第二神经网络前向传播之前,将所述第一图片和第二图片调整至第一尺寸,所述第一尺寸由所述第一神经网络确定。
可选地,本申请一实施例中,所述第一特征可以为所述第一图片经所述第一神经网络计算得到的第一哈希码;所述第二特征可以为所述第二图片经所述第二神经网络计算得到的第二哈希码。所述第一神经网络可以为卷积神经网络。
可选地,在本申请一实施例中,所述卷积神经网络包括至少两层卷积层,所述装置还包括:
第一反变换模块,用于对第一卷积层的输出做反卷积变换,得到第一中间结果;
第一调节模块,用于计算所述第一中间结果与所述第一卷积层的输入之间距离,并用该距离调节所述第一卷积层的权值;
第二反变换模块,用于对第二卷积层的输出做反卷积变换,得到第二中间结果;
第二调节模块,用于计算所述第二中间结果与所述第二卷积层的输入之间距离,并用该距离调节所述第二卷积层的权值。
本申请一实施例还提供一种图片检索装置,当所述图片检索模型建立装置建立起用于特征提取的神经网络模型后,所述图片检索装置可以利用所述图片检索模型建立装置建立的用于特征提取的神经网络模型,实现图片检索。参见图8,所述图片检索装置包括:
获取模块801,用于获取检索库图片;
调整模块802,用于将所述检索库图片调整至第一尺寸;
处理模块803,用于将第一尺寸的检索库图片作为第一输入,依次输入至图片检索模型中第一神经网络中,得到所述检索库图片对应的第一特征并存储;
所述调整模块802,还用于将待检索图片调整至第一尺寸;
所述处理模块803,还用于将第一尺寸的待检索图片输入作为第一输入,输入所述第一神经网络中,得到所述待检索图片对应的第一特征;比较模块,用于计算所述待检索图片对应的第一特征与检索库图片对应的第一特征的汉明距离,并将与所述待检索图片对应的第一特征汉明距离最小的检索库图片作为所述待检索图片的相似图片。
通过以上实施例可见,在本申请实施例中,通过图片检索模型建立装置训练用于图片的哈希码提取的神经网络,而后利用训练好的神经网络对检索库图片提取哈希码并存储,通过直接调用检索库图片中的候选图片的哈希码,可以更加快速地计算出检索图片的哈希码与每一个候选图片的哈希码之间的汉明距离,并可迅速找到检索结果。检索图片和候选图片不仅保留了原图中低频信息对应的基本色调,还保留了高频信息对应的图片细节,使得图片检索方法同样适用于文本插图。
在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该申请仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。