一种图片检索方法和装置
技术领域
本发明涉及图像处理领域,特别涉及一种图片检索方法和装置。
背景技术
大数据时代,人们可以访问获取的信息资源呈现出爆炸式的增长,互联网上每天都诞生海量的图像信息。为了有效地组织、查询与浏览如此大规模的图像资源,图像检索技术应运而生。
卷积神经网络是最近广泛应用于模式识别和计算机视觉等领域的一种算法模型,为增加算法针对真实数据的实际性能测试,进而对应用程序的泛化性提出了更高的要求。
特别涉及在泛化性的性能上,神经网络在整个结构设计和计算过程中有大量的时间消耗在样本采集和训练过程上,且在训练过程中需要人工标注,造成人力资源消耗巨大,图片模型的获取过程复杂的结果,增加了实现检索功能的难度。
发明内容
有鉴于此,本发明实施例提供一种图片检索方法和装置,以解决在图片检索模型的训练过程中需要大量的人工标注,造成人力资源消耗巨大,图片模型的获取过程复杂的结果,检索功能的实现难度增加的问题。
第一方面,本发明实施例提供了一种图片检索方法,包括:
利用图片样本对基模型进行训练得到检索模型;
将待检索图片输入到所述检索模型中进行计算得到图片特征,根据所述图片特征进行检索,得到结果图片集。
第二方面,本发明实施例提供了一种图片检索装置,包括:
检索模型获取模块,用于利用图片样本对基模型进行训练得到检索模型;
结果图片集获取模块,用于将待检索图片输入到所述检索模型中进行计算得到图片特征,根据所述图片特征进行检索,得到结果图片集。
由上述技术方案可知,本发明实施例提出一种图片模型训练方法,实现了无需人工标注就可以得到图片检索模型,避免了人力资源的消耗,进而简化了模型训练过程,从而使检索功能的实现难度降低。
附图说明
图1是本发明实施例一中的一种图片检索方法流程示意图。
图2是本发明实施例二中的一种图片检索方法中训练图片检索模型操作的流程示意图。
图3是本发明实施例三中的一种图片检索方法中图片检索模型中检索操作的流程示意图。
图4是本发明实施例四中的一种图片检索装置结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一提供的一种图片检索方法流程示意图,本实施例可适用使用在基模型的基础上进行训练的检索模型进行检索的情况,该方法可以由图片检索装置来执行,该装置可以由软件和/或硬件的方式来实现。如图1所示,该方法包括:
具体包括如下步骤:
S110、利用图片样本对基模型进行训练得到检索模型。
所述检索模型过程可采用卷积神经网络的方法对图片样本进行训练得到。
S120、将待检索图片输入到所述检索模型中进行计算得到图片特征,根据所述图片特征进行检索,得到结果图片集。
所述图片特征是检索模型自动提取的一组特征,可以是图片像素,图片大小,图片色彩和图片内容信息中的任意一种。
将图片特征输入数据库中,所述方法会将输入的图片特征和数据库中的图片特征进行比对,从而选取相似度较高的图片作为结果图片集,所述结果图片集中包括至少一张结果图片。
本实施例的技术方案,通过提出一种图片模型训练方法,由于检索模型训练过程中需要大量人工标注导致检索功能的实现难度增加的问题,实现了无需进行人工标注就可以训练到图片检索模型,避免了人力资源消耗的效果,进而简化了模型训练过程,从而使检索功能的实现难度降低。
实施例二
图2为本发明实施例二提供的一种图片检索方法流程示意图方法中训练图片检索模型操作的流程图,本实施例在实施例一的基础上,进一步描述了图片检索方法中的训练图片检索模型操作。本实施例中的图片检索方法基于深度神经网络中的卷积神经网络展开的。如图2所示,该操作具体包括:
S210、训练或下载基模型,所述基模型用于图像识别;
本实施例中,基模型的获取方式有两种,分别为利用图片训练基模型和从其渠道获取现有的基模型。具体的,本实施例中选择的基模型获取方式为从互联网中下载。
具体的,所述训练可以理解为,对所述基模型的参数进行成千上万次的调整,从而使得归一化损失(softmax loss)越来越小。
当选择利用图片训练基模型的方式训练基模型时,首先,需要先根据训练需求设计一个卷积神经网络,该卷积神经网络由卷积,采样,全连接,Softmax归一化等操作得到。
另外,根据不同的应用场景,还会用到批量规范化操作(batch normalization,BN),全局均值采样(global average pooling,GAP)等操作。优选的,本实施例使用到了卷积,最大值采样(max pooling),BN,GAP,softmax等操作。
然后,选取一组随机数初始化该卷积神经网络中的parameter,所述随机数的选取规则可为:期望为0,方差为1且服从高斯分布的一组数字。
最后,把大量图片输入到该卷积神经网络中,优化并调整所述hyper-parameter和parameter,最终获取一个图像识别的模型,即基模型。
S220、依据场景,修改所述基模型的部分结构得到图片检索网络结构,所述部分结构包括超参数(hyper-parameter)。
所述具体场景由人为设定,并没有明确的设定范围和设定规则,例如具体场景可以设定为对动物的识别,也可以设定为对性别为女的人类进行识别,还可以设定为对扑克牌进行识别。
修改基模型中部分结构的超参数,即对所述hyper-parameter进行调优,调优方法包括手动调优、网格搜索、随机搜索和基于贝叶斯的参数调优方法等。
所述图片检索网络结构包括网络节点的个数,节点之间连接关系等信息。
S230、a、对图片检索网络的非超参数(parameter)进行初始化,所述初始化包括:与基模型部分相同的网络结构直接使用所述基模型的parameter,与所述基模型不同的网络结构,使用随机数进行初始化。
该步骤的好处在于,使模型的训练速度更快,同时使最终得到的网络模型抽象能力更强。
S240、定义图片检索网络结构的损失函数(triplet loss function),利用最小化损失函数对神经网络进行优化,从而得到检索预模型。
所述triplet loss function是以triplet和triplet loss为基本思想提出的。具体的,triplet是一个三元组,所述三元组可以这样构成:例如,从训练数据集中随机选一个样本,该样本称为Anchor,然后再随机选取一个和Anchor(记为x_a)属于同一类的样本和不同类的样本,这两个样本对应的称为Positive(记为x_p)和Negative(记为x_n),由此构成一个(Anchor,Positive,Negative)三元组。
所述triplet loss的目的通过学习,让x_a和x_p特征表达之间的距离尽可能小,而x_a和x_n的特征表达之间的距离尽可能大,并且要让x_a与x_n之间的距离和x_a与x_p之间的距离间的间隔最小,从而将学习过程中的损失尽可能的减小,进而使检索预模型的检索效率增高。
具体的,所述定义图片检索网络结构的损失函数(triplet loss function),利用最小化损失函数对神经网络进行优化,从而得到检索预模型,包括:c、根据损失(tripletloss)的变化,选取一组网络训练参数,所述网络训练参数包括学习率参数和动量参数;d、从样本图片集中随机选取一组样本图片保存到图片库中,并将所述样本图片输入所述图片检索网络结构进行训练操作,所述训练操作包括修改参数,进而最小化triplet loss;重复c、d步骤,直到triplet loss不再明显或持续减小时,则获取检索预模型并保存到模型库中。是否明显减小或持续减小,可以通过设置经验阈值的方式来进行判断。
所述样本图片集包括原始图片组、积极图片组和消极图片组;所述积极图片组是对所述原始图片组中原始图片增强操作后得到的积极图片组成;
所述增强操作包括旋转变换、透视变换、反射变换和剪切操作。
示例性的,从原始图片组中选取一张图片作为原始图片,记为A;所述增强操作可以是:将A在正负15度范围内随机旋转,得到A1;将A1在20%的程度内进行透视变换,得到A2;将A2切除边,切除比例为20%内的随机数,得到A3;在A3的基础上进行mirror操作,得到A4;对A4进行光照变化,变换幅度为40%内的随机数,得到A5;A5最为最终结果。所述A5即为积极图片组一张图。而所述消极图片为从原始图片组除A之外随机获取的一张图片,需要说明的是,这只是一种方法,还是其他无数种方法以及方法的组合。
进一步的,所述triplet loss function包括
dist(x,y)表示x和y间的距离;表示所述原始图片组中第i张图片输入所述检索预模型得到的样本特征;表示所述积极图片组中第i张图片输入所述检索预模型得到的样本特征;表示所述消极图片组中第i张图片输入所述检索预模型得到的样本特征;α表示与间距离和与间距离的最小间隔;f表示所述检索预模型;f(x)表示图像x通过该检索预模型计算得到的特征。
优选的,α为正实数,进一步优选的,在本实施例中将α的值限定为1。
需要说明的是所述样本特征并不是常规的像素,大小,色彩等特征。可以理解为该模型定义的一种全新的特征。本实施例中的样本特征优选为一个128维的向量。
S250、用于根据不同的所述场景并调整检索预模型结构,重复a-b步骤,得到多个检索预模型并保存到模型库中。
S260、把模型库中的所有检索预模型,在验证集上进行验证,将在所述验证集上检索精度最高的模型设置为检索模型,所述检索模型用于图像检索。
hyper-parameter、parameter和样本图片集选取的不同都会导致得到的检索预模型的精度不同。因此选取检索模型之前,会使用验证集对所述检索预模型进行验证,并检索精度最高的模型为检索模型。
本实施例的技术方案,通过将triplet loss的思想运用到卷积神经网络训练检索模型的过程中,解决了检索模型训练过程中需要大量人工标注的问题,达到了整个模型的训练过程不需要人工标注数据,节省人力的效果。
实施例三
图3为本发明实施例二提供的一种图片检索方法流程示意图方法中检索操作的流程图,本实施例在上述各实施例的基础上,进一步描述了图片检索方法中的检索操作。如图3所示,该操作具体包括:
S310、将数据库中图片输入所述检索模型,得到图片特征,建立图片和图片特征之间的索引,并将所述图片特征和所述索引存储到特征库;
检索模型对数据库中的图片进行计算到图片特征,对一张图片进行计算可以得到一个图片特征,也就是说图片与图片特征间的索引关系为一一对应的。
S320、对所述待检索图片进行预处理,并输入到所述检索模型中得到待检索特征;
所述预处理操作包括重置图片大小、图像增强和图像去噪等处理。该操作的好处在于:得到的所述待检索特征向量更加精准,进而使检索结果更加准确。
优选的,本实施例中的预处理为重置图片大小,具体为把图片的大小调整为模型规定的输入大小。
S330、计算所述待检索特征和特征库中的特征间的特征距离,当特征距离小于预设阈值时,将从所述图片库中选取与所述特征对应的图片添加到结果图片集,并将所述结果图片集返回。
所述特征距离包括欧氏距离、余弦距离或汉明距离。
优选的,本实施例中使用的特征距离为欧氏距离,具体的欧氏距离的计算公式为:其中的未知量与实施例二中tripletloss function中的未知量相同,在此处不再赘述。
本实施例的技术方案,通过在检索之前对待检索图片进行预处理,解决了由于待检索图片过于粗略导致待检索特征向量不够精准的问题,达到了待检索特征向量更加精准,进而使检索结果更加准确的效果。
实施例四
图4所示为本发明实施例四提供的一种图片检索装置的结构示意图,该装置包括:检索模型获取模块410和结果图片集获取模块420。
其中,检索模型获取模块,用于利用图片样本对基模型进行训练得到检索模型。
结果图片集获取模块,用于将待检索图片输入到所述检索模型中进行计算,得到图片特征,根据图片特征进行检索,得到结果图片集。
进一步的,检索模型获取模块包括:
基模型获取单元,用于训练或下载基模型,所述基模型用于图像识别;
图片检索网络结构获取单元,用于依据具体场景,修改所述基模型的部分结构得到图片检索网络结构;所述部分结构包括hyper-parameter;
parameter初始化单元,用于对图片检索网络的parameter进行初始化,所述初始化包括:与基模型部分相同的网络结构直接使用所述基模型的parameter;与基模型不同的网络结构,使用随机数进行初始化;
检索预模型获取单元,用于定义图片检索网络结构的损失函数(triplet lossfunction),通过最小化损失函数对神经网络进行优化,从而得到检索预模型;
基模型结构调整单元,用于开启或关闭parameter初始化单元和检索预模型获取单元,判断当所述场景不同时,调整检索预模型结构,得到多个检索预模型并保存到模型库中;
检索模型获取单元,用于把模型库中的所有检索预模型,在验证集上进行验证,选取一个在验证集上检索精度最高的模型为检索模型,所述检索模型用于图像检索。
进一步的,检索预模型单元包括:
训练参数获取子单元,根据损失(triplet loss)的变化,选取一组网络训练参数,所述网络训练参数包括学习率参数和动量参数;
图片训练子单元,从样本图片集中随机选取一组样本图片保存到图片库中,并将所述样本图片输入所述图片检索网络结构进行训练操作;所述训练操作包括修改参数,进而最小化triplet loss;
损失判断单元,用于开启或关闭训练参数获取子单元和图片训练子单元,判断当triplet loss不再明显或持续减小时,则获取检索预模型并保存到模型库中。
进一步的,所述样本图片集包括原始图片组、积极图片组和消极图片组;所述积极图片组是对所述原始图片组中原始图片增强操作后得到的积极图片组成;所述增强操作包括旋转变换、透视变换、反射变换和剪切操作。
进一步的,所述triplet loss function包括
表示所述原始图片组中第i张图片输入所述检索预模型得到的样本特征;表示所述积极图片组中第i张图片输入所述检索预模型得到的样本特征;表示所述消极图片组中第i张图片输入所述检索预模型得到的样本特征;α表示与间距离和与间距离的最小间隔。f表示所述检索预模型。f(x)表示图像x通过该检索预模型计算得到的特征。
进一步的,所述结果图片集获取模块包括:
特征库建立单元,用于将数据库中的所有图片输入所述检索模型,得到图片特征,建立所有图片和图片特征之间的索引,并将所述图片特征和所述索引存储到特征库;
待检索特征获取单元,用于对所述待检索图片进行预处理,并输入到所述检索模型中,得到所述待检索图片的待检索特征;
结果图片集确定单元,用于计算所述待检索特征和特征库中的特征间的特征距离,当特征距离小于预设阈值时,将从所述图片库中选取与所述特征对应的图片添加到结果图片集,并将所述结果图片集返回。
进一步的,所述特征距离包括欧氏距离、余弦距离或汉明距离。
综上所述,根据本实施例的技术方案,通过提出一种图片模型训练方法,解决了由于检索模型训练过程中需要大量人工标注导致检索功能的实现难度增加的问题,实现了无需进行人工标注就可以训练到图片检索模型,避免了人力资源消耗的效果,进而简化了模型训练过程,从而使检索功能的实现难度降低。
本发明实施例所提供的图片检索装置可以用于执行本发明实施例所提供的图片检索方法,具备相应的功能和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的图片检索方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。