本发明涉及计算机视觉技术领域,特别涉及一种基于深度学习和哈希编码的图像检索方法。
背景技术:
随着科学技术的发展,当今世界已进入大数据时代,尤其是图像数据资源增长迅速,因此对大规模图像数据进行检索以满足用户需求给图像检索技术领域带来了新的挑战。相比于传统的基于文本的图像检索技术(text-basedimageretrieval,tbir),基于内容的图像检索(content-basedimageretrieval,cbir)越来越受到人们广泛的关注。
在cbir技术中,如何有效地描述图像的特征以及采用何种方式进行快速的相似性检索是近几年的研究热点。由于深度神经网络在特征学习上的优越性以及哈希编码在检索中的计算速度和存储空间上的优越性,出现了利用深度卷积神经网络,或哈希技术,或二者相结合的图像检索方法。
例如,一种基于深度网络提取特征的图像检索方法,利用训练好的深度卷积网络对图像提取特征,通过计算查询图像的特征和数据库中图像特征的欧氏距离并排序来进行图像检索。参考论文“artembabenko,antonslesarev,alexandrchigorin,andvictorlempitsky.neuralcodesforimageretrieval.eccv2014”。该方法的缺陷在于,一方面,使用该方法提取的特征为维度较高的实数向量,因此存储开销和计算量较大,无法满足当前网络数据库规模增长迅速的需求;另一方面,该方法提取特征的深度网络不是针对数据库数据进行训练的,检索效果严重依赖于数据库数据和训练网络使用的数据之间的相似程度,若相似程度较低,则会相应导致检索效果较差。
现有技术中,还有一种基于多视觉属性检索式的图像检索方法,利用视觉属性之间的关联,训练多个视觉属性的联合分类器来预测图像具有的视觉属性。检索时,根据用户给定的检索式和已知的视觉属性之间的关联,构建一个新的检索式,根据数据库中图像的视觉属性与检索式的匹配程度进行检索。参考论文“behjatsiddiquie,rogerios.feris,andlarrys.davis.imagerankingandretrievalbasedonmulti-attributequeries.cvpr2011”。该方法的缺陷在于,一方面,由于训练时只在视觉属性数据上训练,该方法无法直接用于其他的检索任务,限制了其应用前景;另一方面,当希望增加数据库上的视觉属性时,联合训练的模型无法直接扩展到新的视觉属性上,需要完全从头开始重新训练,从而限制了该方法的可扩展性。
另外,中国专利公开号cn105512273a还公开了一种基于可变长深度哈希学习的图像检索方法,该方法利用图像三元组对深度网络进行训练,目标是让网络端到端地学习一个二值哈希编码,使得相似的图像具有相似的编码,不相似图像的编码差异较大。该方法的缺陷在于,一方面由于在训练时只能使用一种相似性度量,因此最终得到的二值哈希编码只能用于单一的检索任务,限制了该方法的应用范围;另一方面,该方法在训练时使用了图像三元组,从而导致训练时模型收敛较慢,训练耗时大。
因此,目前需要一种快速有效且扩展灵活的图像检索方法。
技术实现要素:
本发明的目的是提供一种基于深度学习和哈希编码的图像检索方法,该方法能够克服上述现有技术的缺陷。
根据本发明的一个方面,提供一种基于深度学习和哈希编码的模型训练方法,包括以下步骤:
步骤1)、将部分标注的图像数据作为网络模型的训练数据,通过深度网络将所述训练数据表示为类二值哈希编码,其中,所述类二值哈希编码是指取值是连续值的一种模拟二值哈希编码;
步骤2)、将所述步骤1)获得的类二值哈希编码作为输入,连接到深度网络的一个或多个任务层,同时使用一个或多个任务进行训练;
步骤3)、基于所述步骤1)的类二值哈希编码获得带有所述可供检索的特征信息的用于表示所述训练数据的二值哈希编码。
优选的,所述步骤2)的一个或多个任务层是指可作为图像检索任务的任务层。
优选的,所述图像检索任务是指针对图像的语义类别进行图像检索。
优选的,针对所述图像的语义类别,可以使用分类任务或基于图像对的度量学习任务来训练。
优选的,所述图像检索任务是针对图像的视觉属性进行图像检索。
优选的,针对所述视觉属性,可以训练一组视觉属性分类器。
优选的,利用所述网络模型,可以对标注不完全或未标注的图像数据进行标签预测,从而补全所述图像数据中的所有图像的属性标签。
根据本发明的另一方面,提供一种用于上述任一项的基于深度学习和哈希编码的图像检索的方法,包括:
根据一张查询图像进行语义类别检索任务时,利用所述网络模型得到所述查询图像的二值哈希编码;通过将所述查询图像的二值哈希编码与图像数据库中的所有图像的二值哈希编码相比较,获得与所述查询图像语义类别相同的图像作为检索结果;或者
根据一种或多种查询图像的视觉属性信息作为检索任务时,利用所述网络模型根据图像的二值哈希编码还原数据库中的所有图像的相应视觉属性信息,获得具有所述视觉属性信息的图像作为检索结果;或者
根据一张查询图像的语义类别以及一种或多种指定的视觉属性信息作为检索任务时,首先利用所述网络模型根据图像的二值哈希编码还原数据库中所有图像的相应视觉属性信息,并利用所述还原的视觉属性信息对数据库进行筛选;其次利用所述网络模型得到所述查询图像的二值哈希编码;通过将所述查询图像的二值哈希编码,与所述筛选出的图像数据库中的图像的二值哈希编码相比较,获得与所述查询图像语义类别相同的且具有指定的视觉属性的图像作为检索结果。
根据本发明的另一方面,提供一种图像检索系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器运行所述程序时执行上述图像检索方法的步骤。
根据本发明的另一方面,提供一种计算机可读存储介质,包括存储在所述可读存储介质上的计算机程序,其中,所述程序执行如上述图像检索方法的步骤。
相对于现有技术,本发明取得了如下有益技术效果:本发明的基于深度学习和哈希编码的图像检索方法,与现有的以提取实数向量为特征的图像检索方法相比,大幅度降低了检索系统对存储空间的需求和图像间相互比较时的计算量,检索效果好,模型训练快,能够更好的满足当前网络数据库不断壮大的规模;同时,本发明提供的图像检索方法可以针对多个不同的检索任务,应用前景广阔,可扩展性好。
附图说明
图1是本发明提供的基于深度学习和哈希编码的图像检索方法的总体流程框架示意图;
图2是本发明的相关检索应用示意图。
具体实施方式
为了使本发明的目的、技术方案以及优点更加清楚明白,以下结合附图,对根据本发明的实施例中提供的基于深度学习和哈希编码的图像检索方法进行说明。
深度学习源于人工神经网络,在图像检索领域,深度学习能够组合图像底层的特征形成更高层表示,如属性类别等特征,以发现图像数据的分布式特征表示;哈希编码是一种具有快速查询能力和低内存开销的算法,在图像检索领域,利用哈希编码可以将图像内容表达为二值的哈希序列,并用该序列来表示图像的特征。
经发明人仔细研究,提出了一种使用深度神经网络的图像检索方法,能够端到端地学习二值哈希编码作为图像的特征表示。该方法通过利用部分标注的图像数据进行训练,采用多个针对不同检索任务的损失函数,将不同的信息嵌入到二值哈希编码中,从而使得最终的二值哈希编码可以用于多个不同的检索任务。
在本发明的一个实施例中,提供一种基于深度学习和哈希编码的图像检索方法,该方法主要包括数据准备、模型训练以及图像检索。
图1示出了本发明提供的基于深度学习和哈希编码的图像检索方法的总体流程框架示意图,如图1所示,本发明的基于深度学习和哈希编码的图像检索方法包括以下步骤:
s10.数据准备
为了使用二值哈希编码作为图像的表示,在深度神经网络前端,需要使用大量的图像数据资源对模型进行训练。在训练阶段,本发明采用了具有部分标注的图像数据资源,此处的标注是指图像的特征标签,例如,标签代表了图像中含有的猫、狗、汽车等对象,或对象的形状、颜色,材质等,这些特征标签既可以是图像本身具有的,例如图像分享网站上图像的标签(tag),也可以是后期经过标注得到的。为了便于理解,下面以语义类别(如猫、狗、桌子等)和视觉属性(如红色、圆形、斑点等)两种标注为例来说明。
对于不同种类的语义类别,如果一张图像的语义类别不确定,或者语义类别标注未知,则对应的语义类别标注为未知,如图1所示的训练数据图表中标注为“?”的条目;如果语义类别标注已知,则根据其所属的类别进行标注,如图1所示的训练数据图表中标注为“大白鲨、热气球”的条目,其中可以将上述类别标注为,例如,对于n个类别,使用一个大于等于1且小于等于n的正整数指示其所属的类别;
对于不同种类的视觉属性,如果一张图像具有一种视觉属性,则将上述图像的该种视觉属性标注为正例,如果不具有则标注为负例,如果不确定是否具有,或者该种视觉属性的标注没有提供,则标注为未知,如图1所示的训练数据图表中的相应标注,第一行图像的黑色、条纹和尾巴为正例,圆形和木制为负例,第二行图像的视觉属性均未知等。因此可将每张图像的视觉属性标注为多维的向量,例如,对于m种视觉属性,每张图像均具有一个m维的视觉属性标注向量。
在数据准备中,本发明采用的具有部分标注的图像数据资源是指,只要一张图像所具有的语义类别标注和视觉属性标注中至少一个不是“未知”,即可将该图像应用于训练模型。通过采用这样的方式,一方面可以充分利用大量的可用图像数据资源,缓解模型的过拟合问题;另一方面能够扩展本方法的应用场景,从而用于多种不同的检索任务,例如同时用于语义类别检索、视觉属性检索或者语义类别和视觉属性联合检索等。
s20.模型训练
在完成步骤s10的数据准备之后,可将准备完成的训练图像数据通过深度网络n中的一系列非线性操作,例如深度卷积神经网络(cnn)的卷积、池化、全连接等,可以得到一个取值为实数的多维图像特征表示f。
然后对该实数的图像特征表示f再进行一次非线性操作。由于网络的训练过程中需要进行梯度的回传操作,因此这里可以使用可导的激活函数来模拟二值哈希编码,而不是直接使用不可导的阶跃函数对图像特征表示f做二值量化后进行训练。在使用s形激活函数时,可将特征f的每一维的取值压缩到一个有限的范围内,例如,使用sigmoid函数时压缩到0到1的范围,使用双曲正切函数时压缩到-1到1的范围;
在本发明的另一个实施例中,还可以使用正则项对特征表示f进行二值化约束,例如约束输出的值尽可能接近±1。
在上述操作完成后,可以得到一个,例如维度为k的,类二值哈希编码c0,其中c0的维度k等于最终的二值哈希编码的码长。
已知二值哈希编码的取值是严格的二值,例如0和1,或者-1和1。而上述类二值哈希编码是指取值是连续值,例如0到1的实数或者-1到1的实数的一种模拟二值哈希编码的图像特征编码。
在取得上述类二值哈希编码c0后,将c0作为输入,连接到不同的可作为图像检索任务的任务层,同时使用多个任务进行训练。下面将以语义类别和视觉属性两种检索任务为例来进行说明:
针对语义类别,可以使用分类任务或基于图像对的度量学习任务来训练。在使用分类任务时,假设任务层包含n个节点分别对应于n种语义类别。当图像的类别标签已知时,可以利用针对分类的损失函数,例如使用softmax损失函数或hinge损失函数,来度量分类的准确程度;当图像类别未知时,则在分类任务中忽略相应的样本。在使用度量学习任务时,通过约束相同语义类别的样本具有相似的类二值哈希编码c0,不同种类的样本编码差异较大,从而学习适合检索任务的类二值哈希编码;
针对视觉属性,可以通过训练一组视觉属性分类器来把相应的视觉属性信息隐含在二值哈希编码中。例如,任务层包含m个节点分别对应于m种视觉属性。当图像的某个视觉属性已知时,则用加权的属性预测损失,例如sigmoid交叉熵损失、hinge损失等,度量这个样本在该视觉属性上的预测准确程度;当图像的某个视觉属性标注未知时,则在相应的视觉属性分类器上忽略对应的样本。通过使用加权的损失,对正负样本施加不同的权重,可以在一定程度上缓解由于正负样本比例不均衡带来的预测偏差问题。损失计算完成后,求导计算相应的梯度值,通过反向传播算法更新网络模型的参数。经过多次迭代更新后,完成网络模型的训练。
利用深度网络n提取数据库图像的类二值哈希编码c0后,需要使用一个阈值对其进行量化,得到真正的二值哈希编码c。此处的阈值可以是固定设置的,例如0.5或者0,也可以是通过学习得到的。同时,将上述视觉属性分类器的参数a,例如,大小为k*m的矩阵,保存以用于后续的视觉属性检索任务。
s30.图像检索
当用户需要进行图像检索时,首先可通过深度网络n计算查询图像的类二值哈希编码c0,然后通过使用与上述步骤s20中设置的或学习得到的数据库图像一致的阈值,将查询图像的类二值哈希编码c0量化为二值哈希编码c以便进行各种检索任务,以下将以语义类别检索任务、视觉属性检索任务,以及语义类别和视觉属性联合检索为例进行说明。
语义类别检索是指,当用户给定一张查询图像,需要在图像数据库中检索具有相同语义类别的图像,例如,图2是本发明的相关检索应用示意图,如图2第一行所示,用户给定一张汽车的图像,需要在图像数据库中检索出包含汽车的所有图像。为了实现该功能,可将含有汽车的查询图像的二值哈希编码和数据库中图像的二值哈希编码进行比较而完成语义类别检索,例如,通过计算含有汽车的查询图像的二值哈希编码和数据库中图像的二值哈希编码汉明距离,并按照距离从小到大的顺序返回检索结果;
视觉属性检索是指,用户指定一个或多个视觉属性作为检索式,需要在图像数据库中检索具有指定视觉属性的图像。例如,如图2第二行所示,用户给定视觉属性“白色”和“金属的”,需要在图像数据库中检索出包含上述视觉属性的所有图像。为了实现该功能,可通过计算数据库图像的二值哈希编码c和视觉属性分类器a的内积,例如,使用不需大量乘法运算的查表法实现二值向量c与a的内积计算,来还原出图像的视觉属性信息,从而完成视觉属性检索,例如利用视觉属性的概率大小来进行排序;
语义类别和视觉属性的联合检索是指,用户指定一张查询图像并指定一个或多个视觉属性,需要在图像数据库中检索与该查询图像具有相同语义类别,并且具有用户指定的视觉属性的图像。例如,如图2第三行所示,用户给定一张汽车的图像和视觉属性“红色”,需要在图像数据库中检索出包含语义类别标注为汽车以及视觉属性标注为“红色”的所有图像。为了实现该功能,首先利用与视觉属性检索时相同的方法,使用还原出的视觉属性对所有数据库图像进行筛选,例如按照一定阈值去掉视觉属性低于该阈值的图像;然后利用与语义类别检索时相同的方法,对查询图像和筛选出的数据库图像的二值哈希编码进行比较而完成检索,例如通过计算汉明距离进行排序后,按距离从小到大的顺序返回经过筛选图像作为检索结果。
在本发明的另一个实施例中,可以使用步骤s20中训练好的网络模型,对标注不完全或未标注的图像数据进行标签预测,从而可以补全图像数据的属性标签,并将其加入数据库中。
尽管在上述实施例中,采用了语义类别和视觉属性来说明基于深度学习和哈希编码的图像检索方法,但本领域普通技术人员应理解在其他实施例中可以根据不同的需求,通过采用上述实施例中描述的针对语义类别或针对视觉属性的训练方法,利用其他的图像特征作为检索任务和图像标注来实现本发明提供的图像检索方法,例如将拍摄或制作图像的地点等其他与图像有一定相关性的标注信息,采用与上述针对语义类别相似的训练模型进行训练,或者在筛选某种风格的摄影图像时,将该摄影风格的摄影作品作为正例,采用与上述针对视觉属性相似的训练模型进行训练等。
相对于现有技术,在本发明实施例中所提供的基于深度学习和哈希编码的图像检索方法,通过使用深度神经网络端对端的学习二值哈希编码作为图像表示,大幅度降低了存储开销和检索计算量,本方法使用的不依赖于图像三元组的损失函数将不同的图像特征信息嵌入到二值哈希编码中,提高了网络的收敛速度,使得最终的二值哈希编码可以用于多种不同的检索任务,同时针对图像的不同属性训练了单独的分类器,避免了属性分类器之间过强的依赖关系,保证了训练模型可扩展性。
虽然本发明已经通过优选实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所作出的各种改变以及变化。