图像检索方法以及装置与流程

文档序号:12719987阅读:200来源:国知局
图像检索方法以及装置与流程

本发明涉及图像搜索领域,特别涉及一种图像检索方法以及装置。



背景技术:

随着互联网技术的发展,用户对于数据检索的需求也越来越高,用户不只满足于文字、语音的输入获得的检索结果,还希望能够输入图像等获得满意的匹配结果,例如,用户进行网上购物可能并不知道想要购买的商品的品牌、型号等,也无法准确描述其特点,但是用户有拍摄的图片,用户希望输入图片即可检索到想要购买的商品。

目前,比较常用的图片检索技术为积量化算法,这种算法对于图像特征的描述较为复杂,占用内存大,在面对互联网中海量数据的情况下,无法支持大量图片的计算和匹配过程,只能支持千万量级的图片处理,无法满足用户的需求。



技术实现要素:

本发明所要实现的一个目的是:提出一种图片检索方法,在不降低图片检索准确率的情况下,提高图片检索能力。

根据本发明的一个方面,提供的一种图像检索方法,包括:利用深度学习模型提取待检索图片的全局特征;利用降维模型中的降维矩阵对待检索图片的全局特征进行降维,降维模型是以减小降维训练集中相似图片的降维后的全局特征的距离且增大降维训练集中不相似图片的降维后的全局特征的距离为目标构建的;利用矢量量化模型将待检索图片的降维后的全局特征量化为二值比特串;根据待检索图片的二值比特串与数据库中的图片的二值比特串的距离,从数据库中检索出与待检索图片相似的图片。

在一个实施例中,利用深度学习模型提取待检索图片的全局特征包括:将待检索图片输入GoogleNet模型;从GoogleNet模型各层输出的待检索图片的特征向量中,选取最后一个平均池化层和最后一个最大池化层输出的特征向量进行组合,作为待检索图片的全局特征。

在一个实施例中,利用矢量量化模型将待检索图片的降维后的全局特征量化为二值比特串包括:根据矢量量化模型中的均值向量和旋转矩阵对待检索图片的降维后的全局特征进行投影,得到待检索图片的投影特征;根据矢量量化模型中划分的子空间以及获得的各个子空间的码本,确定待检索图片的投影特征在各个子空间中的编码;将待检索图片的投影特征在各个子空间中的编码进行组合,得到待检索图片的二值比特串。

在一个实施例中,根据矢量量化模型中划分的子空间以及获得的各个子空间的码本,确定待检索图片的投影特征在各个子空间中的编码包括:将待检索图片的投影特征的各维数据按照子空间的个数均分到各个子空间,获得待检索图片在各个子空间的分特征;在各个子空间内,根据该子空间内的码本中与待检索图片在该子空间内的分特征的距离最近的码字确定待检索图片的投影特征在各个子空间中的编码。

在一个实施例中,该方法还包括:采用以下方法对深度学习模型进行训练:选取人工拍摄的图片作为检索训练集,选取与检索训练集中图片相对应的评论图以及与检索训练集中图片不相关的图片作为数据训练集,并将检索训练集和数据训练集作为深度学习训练集;将检索训练集中的图片输入深度学习模型获得各层输出的特征向量;将数据训练集中的图片输入深度学习模型获得各层输出的特征向量;根据检索训练集中一张图片的在一个输出层的特征向量与数据训练集中的各个图片在该输出层的特征向量的距离,对数据训练集中的各个图片进行排序,并根据数据训练集中与检索训练集中的该图片对应的评论图的排序位置以及该排序位置对应的权重,确定检索训练集中该图片在该输出层的匹配结果;根据检索训练集中各图片在该输出层的匹配结果,确定该输出层的描述能力;根据各输出层的描述能力确定描述图片全局特征最优的两个输出层。

在一个实施例中,该方法还包括:采用以下方法对降维模型进行训练:选取人工拍摄的图片作为检索训练集,从数据库中选取与检索训练集中相似的图片组成正样本对;从数据库中选取与检索训练集中不相似的图片组成负样本对,并将正样本对和负样本对作为降维训练集;利用图片的全局特征乘以降维矩阵表示图片降维后的全局特征;确定所有正样本对和负样本对中图片的降维后的全局特征的距离与分类阈值的差量信息的总和的关系表示;将求取关系表示取最小值时的降维矩阵和分类阈值的代价函数确定为降维模型;对降维模型进行训练求取最优解,得到降维矩阵。

在一个实施例中,该方法还包括:采用以下方法对矢量量化模型进行训练:计算量化训练集中的图片的降维后的全局特征的均值作为矢量量化模型的均值向量;将量化训练集中的图片的降维后的全局特征减去均值向量并组成去均值后的图片特征矩阵;计算去均值后的图片特征矩阵的协方差矩阵,并将协方差分解为特征值矩阵与特征向量矩阵;根据特征值矩阵划分子空间;将特征向量矩阵根据特征值在划分的子空间中的位置对特征向量矩阵进行旋转,得到旋转矩阵;计算去均值后的图片特征矩阵与矢量量化模型的旋转矩阵的乘积,得到量化训练集中的图片的投影特征;将量化训练集中的图片的投影特征的各维数据按照子空间的个数均分到各个子空间;在各个子空间内,根据K均值哈希算法确定该子空间内的子码本以及子码本中各个码字对应的编码。

根据本发明的第二个方面,提供的一种图片检索装置,包括:全局特征提取模块,用于利用深度学习模型提取待检索图片的全局特征;特征降维模块,用于利用降维模型中的降维矩阵对待检索图片的全局特征进行降维,降维模型是以减小降维训练集中相似图片的降维后的全局特征的距离且增大降维训练集中不相似图片的降维后的全局特征的距离为目标构建的;矢量量化模块,用于利用矢量量化模型将待检索图片的降维后的全局特征量化为二值比特串;检索模块,用于根据待检索图片的二值比特串与数据库中的图片的二值比特串的距离,从数据库中检索出与待检索图片相似的图片。

在一个实施例中,全局特征提取模块,用于将待检索图片输入GoogleNet模型,从GoogleNet模型各层输出的待检索图片的特征向量中,选取最后一个平均池化层和最后一个最大池化层输出的特征向量进行组合,作为待检索图片的全局特征。

在一个实施例中,矢量量化模块,用于根据矢量量化模型中的均值向量和旋转矩阵对待检索图片的降维后的全局特征进行投影,得到待检索图片的投影特征,根据矢量量化模型中划分的子空间以及获得的各个子空间的码本,确定待检索图片的投影特征在各个子空间中的编码,将待检索图片的投影特征在各个子空间中的编码进行组合,得到待检索图片的二值比特串。

在一个实施例中,矢量量化模块,用于将待检索图片的投影特征的各维数据按照子空间的个数均分到各个子空间,获得待检索图片在各个子空间的分特征,在各个子空间内,根据该子空间内的码本中与待检索图片在该子空间内的分特征的距离最近的码字确定待检索图片的投影特征在各个子空间中的编码。

在一个实施例中,该装置还包括:深度学习模型训练模块,用于选取人工拍摄的图片作为检索训练集,选取与检索训练集中图片相对应的评论图以及与检索训练集中图片不相关的图片作为数据训练集,并将检索训练集和数据训练集作为深度学习训练集,将检索训练集中的图片输入深度学习模型获得各层输出的特征向量,将数据训练集中的图片输入深度学习模型获得各层输出的特征向量,根据检索训练集中一张图片的在一个输出层的特征向量与数据训练集中的各个图片在该输出层的特征向量的距离,对数据训练集中的各个图片进行排序,并根据数据训练集中与检索训练集中的该图片对应的评论图的排序位置以及该排序位置对应的权重,确定检索训练集中该图片在该输出层的匹配结果,根据检索训练集中各图片在该输出层的匹配结果,确定该输出层的描述能力,根据各输出层的描述能力确定描述图片全局特征最优的两个输出层。

在一个实施例中,该装置还包括:降维模型训练模块,用于选取人工拍摄的图片作为检索训练集,从数据库中选取与检索训练集中相似的图片组成正样本对,从数据库中选取与检索训练集中不相似的图片组成负样本对,并将正样本对和负样本对作为降维训练集;利用图片的全局特征乘以降维矩阵表示图片降维后的全局特征,确定所有正样本对和负样本对中图片的降维后的全局特征的距离与分类阈值的差量信息的总和的关系表示,将求取关系表示取最小值时的降维矩阵和分类阈值的代价函数确定为降维模型,对降维模型进行训练求取最优解,得到降维矩阵。

在一个实施例中,该装置还包括:矢量量化模型训练模块,用于计算量化训练集中的图片的降维后的全局特征的均值作为矢量量化模型的均值向量,将量化训练集中的图片的降维后的全局特征减去均值向量并组成去均值后的图片特征矩阵,计算去均值后的图片特征矩阵的协方差矩阵,并将协方差分解为特征值矩阵与特征向量矩阵,根据特征值矩阵划分子空间,将特征向量矩阵根据特征值在划分的子空间中的位置对特征向量矩阵进行旋转,得到旋转矩阵,计算去均值后的图片特征矩阵与矢量量化模型的旋转矩阵的乘积,得到量化训练集中的图片的投影特征,将量化训练集中的图片的投影特征的各维数据按照子空间的个数均分到各个子空间,在各个子空间内,根据K均值哈希算法确定该子空间内的子码本以及子码本中各个码字对应的编码。

根据本发明的第三个方面,提供的一种图片检索装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器设备中的指令,执行如前述任一个实施例中的图片检索方法。

根据本发明的第四个方面,提供的一种计算机可读存储介质,其上存储有计算机程序(指令),其特征在于,该程序(指令)被处理器执行时实现前述任一个实施例中的图片检索方法的步骤。

本发明对图片提取全局特征后进行降维,再量化为二值比特串,根据图片二值比特串的距离从数据库中检索出相似的图片。本发明应用全局特征对图片的描述更加准确,对全局特征降维可以减少图片特征的数据量,同时由于降维模型可以使相似图片的降维后的全局特征的距离减小,且不相似图片的降维后的全局特征的距离增大,因此,图片的全局特征经过降维后描述能力得以提高,进一步的,将图片的特征量化为二值比特串能够降低数据的复杂度,进而减少数据的存储量,降低检索时的匹配的复杂度,提高检索效率,将图片检索处理能力提高到上亿量级。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出本发明的一个实施例的图像检索装置的结构示意图。

图2示出本发明的另一个实施例的图像检索装置的结构示意图。

图3示出本发明的一个实施例的图像检索方法的流程示意图。

图4示出本发明的另一个实施例的图像检索方法的流程示意图。

图5示出本发明的又一个实施例的图像检索装置的结构示意图。

图6示出本发明的再一个实施例的图像检索装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

针对现有技术对于图像特征的描述较为复杂,占用内存大,在面对互联网中海量数据的情况下,无法支持大量图片的计算和匹配过程,只能支持千万量级的图片处理,无法满足用户的需求的问题,提出本方案。

本发明的实施例中的图像检索装置可各由各种计算设备或计算机系统来实现,下面结合图1以及图2进行描述。

图1为本发明图像检索装置的一个实施例的结构图。如图1所示,该实施例的装置10包括:存储器110以及耦接至该存储器110的处理器120,处理器120被配置为基于存储在存储器110中的指令,执行本发明中任意一个实施例中的图像检索方法。

其中,存储器110例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)、数据库以及其他程序等。

图2为本发明图像检索装置的另一个实施例的结构图。如图2所示,该实施例的装置10包括:存储器110以及处理器120,还可以包括输入输出接口230、网络接口240、存储接口250等。这些接口230,240,250以及存储器110和处理器120之间例如可以通过总线260连接。其中,输入输出接口230为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口240为各种联网设备提供连接接口,例如可以连接到数据库服务器或者云端存储服务器等。存储接口250为SD卡、U盘等外置存储设备提供连接接口。

下面结合图3描述本发明的图像检索方法。

图3为本发明图像检索方法一个实施例的流程图。如图3所示,该实施例的方法包括:

步骤S302,利用深度学习模型提取待检索图片的全局特征。

其中,深度学习模型例如为GoogleNet模型、AlexNet模型、VGG(Visual Graphics Generator,目视图像生成器)等。发明人经过测试,选取在图像分类精度和特征描述性上都比较好的GoogleNet模型。

具体的,将待检索图片输入GoogleNet模型,从GoogleNet模型各层输出的待检索图片的特征向量中,选取最后一个平均池化层和最后一个最大池化层输出的特征向量进行组合,作为待检索图片的全局特征。图片输入GoogleNet模型后,会分别输出图片在34个层的特征向量,选取其中最后一个平均池化(average pooling)层输出的1024维特征和最后一个最大池化(max pooling)层输出40768维特征进行组合,例如对两层输出的特征向量进行线性组合或直接形成412792维向量等。选取这两层输出的特征向量用了描述图片的全局特征,是通过对GoogleNet模型进行训练并对各输出层的描述能力进行评估后得出的结论,后续将进行具体描述。

步骤S304,利用降维模型中的降维矩阵对待检索图片的全局特征进行降维。

其中,降维模型是以减小降维训练集中相似图片的降维后的全局特征的距离且增大降维训练集中不相似图片的降维后的全局特征的距离为目标构建的。由于降维模型的构建不仅满足图片的全局特征乘以降维矩阵后得以降维,同时还对降维后图片之间的距离进行了限定,因此,相似图片的降维后的全局特征的距离减小且不相似图片的降维后的全局特征的距离增大,在后续检索过程中更容易检索到相似的图片,在对图片的全局特征进行降维的同时提高了图片降维后的全局特征的描述能力。对于降维模型的构建和训练过程后续将进行详细描述。

具体的,利用待检索图片的全局特征乘以降维矩阵得到降维后的全局特征,例如将待检索图片的全局特征降维到1024维,对于图片特征降维后的维数,可以通过测试得到,在对降维模型进行训练的过程中,求取不同的降维矩阵,对图片的全局特征降维到不同的维数,并根据降维后的全局特征的匹配准确性确定图片全局特征降维后的维数,具体将在后续进行具体描述。

步骤S306,利用矢量量化模型将待检索图片的降维后的全局特征量化为二值比特串。

其中,矢量量化模型例如为K均值哈希模型,K均值哈希算法中参考积量化(Product Quantizer)的方法扩展到积空间,即对图片的特征进行子空间的划分,在各个子空间中分别对图片的特征进行量化,之后再将各个子空间中量化后的二值比特串进行组合。这样做的目的是减少计算的复杂度,例如检索时希望利用图片的B比特的特征进行检索,不划分子空间的情况下需要2B个码字,如果划分为M个子空间,每个子空间中对图像特征的维特征进行量化,需要2b个码字,总共需要M*2b个码字,相对于2B=2M*b个码字,大大减少了存储量和计算量。对K均值哈希模型进行训练后得到均值向量、旋转矩阵和每个子空间的码本,具体的训练过程在后续进行具体描述。

具体的,根据矢量量化模型中的均值向量和旋转矩阵对待检索图片的降维后的全局特征进行投影,得到待检索图片的投影特征;根据矢量量化模型中划分的子空间以及获得的各个子空间的码本,确定待检索图片的投影特征在各个子空间中的编码;将待检索图片的投影特征在各个子空间中的编码进行组合,得到待检索图片的二值比特串。优选的,将待检索图片的降维后的全局特征x减去均值向量μ,得到去均值后的特征x-μ,利用x-μ乘以旋转矩阵得到待检索图片的投影特征,其中均值向量μ和旋转矩阵是在对K均值哈希模型进行训练时获得的,后续进行具体描述。进一步的,将待检索图片的投影特征的各维数据按照子空间的个数均分到各个子空间,获得待检索图片在各个子空间的分特征,例如将图片的1024维投影特征均分到512个子空间,则每个子空间中分配2维图片的投影特征。在各个子空间内,根据该子空间内的码本中与待检索图片在该子空间内的分特征的距离最近的码字确定待检索图片的投影特征在各个子空间中的编码。其中码字与待检索图片的分特征的距离例如为欧式距离,每个子空间内的码本是训练过程中得到的,后续进行具体描述。

步骤S308,根据待检索图片的二值比特串与数据库中的图片的二值比特串的距离,从数据库中检索出与待检索图片相似的图片。

其中,数据库中的图片的二值比特串也采用前述步骤S302~S306的方法生成,例如,对于每张图片最后量化得到1024比特的特征描述,则数据库中只需要存储1024比特的二值比特串表示一张图片,大大减少了存储的数据量,以64G内存的服务器为例能够容纳5亿张图片的存储,可以将图片的检索处理能力提高到上亿量级。在进行检索时可以采取快速汉明距的比对方法,比对待检索图片的二值比特串与数据库中的图片的二值比特串的汉明距离,进一步减少了比对的复杂度提高了检索效率。

上述实施例的方法,对图片提取全局特征后进行降维,再量化为二值比特串,根据图片二值比特串的距离从数据库中检索出相似的图片。上述实施例的方法应用全局特征对图片的描述更加准确,对全局特征降维可以减少图片特征的数据量,同时由于降维模型可以使相似图片的降维后的全局特征的距离减小,且不相似图片的降维后的全局特征的距离增大,因此,图片的全局特征经过降维后描述能力得以提高,进一步的,将图片的特征量化为二值比特串能够降低数据的复杂度,进而减少数据的存储量,降低检索时的匹配的复杂度,提高检索效率,将图片检索处理能力提高到上亿量级。

上述实施例的方法描述了图片检索的过程,在进行图片检索之前还包括模型的离线训练过程,下面结合图4进行描述。

图4为本发明图像检索方法另一个实施例的流程图。如图4所示,在步骤S302之前还包括:

深度学习模型的训练过程如下:

步骤S402,选取人工拍摄的图片作为检索训练集,选取与检索训练集中图片相对应的评论图以及与检索训练集中图片不相关的图片作为数据训练集,并将检索训练集和数据训练集作为深度学习训练集。

其中,深度学习训练集数据包括两部分即检索训练集和数据训练集,便于对模型进行训练的同时对模型的训练结果进行评估,以便选择对图片描述能力更好的特征。例如,选取938张人工拍摄的女装图片作为检索训练集,进一步根据检索训练集中的图片选择1至2张对应的评论图片即其他人拍摄的同样产品的图片加入数据训练集,另外选择一些与检索训练集中图片不相似的图片也加入数据训练集,组成拥有46806张图片的数据训练集。

步骤S404,将检索训练集中的图片输入深度学习模型获得各层输出的特征向量。

其中,深度学习模型例如为GoogleNet模型,共输出34个层的特征向量。

步骤S406,将数据训练集中的图片输入深度学习模型获得各层输出的特征向量。

其中,共输出34个层的特征向量。

步骤S408,根据检索训练集中的图片与数据训练集中的图片在各层输出的特征向量的距离,确定检索训练集中的图片与数据训练集中的图片在各层的匹配结果。

具体的,计算检索训练集中一张图片A的在一个输出层L1的特征向量与数据训练集中的各个图片在该输出层L1的特征向量的距离(例如欧氏距离),对数据训练集中的各个图片根据计算得到的距离由小到大进行排序,对与检索训练集中的图片A对应的评论图(已标记)的排序位置进行统计,可以对评论图所在的排序位置进行权重的设置,例如,评论图排在0~4的位置则权重设置为5,排在5~19的位置则权重设置为4,排在20~99的位置则权重设置为3,排在100~499的位置则权重设置为2,排在500~8191的位置则权重设置为1,排在8192以及之后的位置则权重设置为0,进一步,将图片A对应的评论图的权重进行相加可以得到图片A在输出层L1的匹配结果,进一步,可以确定检索训练集中任一张图片在L1层的匹配结果。

步骤S410,根据检索训练集中的图片与数据训练集中的图片在各层的匹配结果,确定各层的描述能力,选取描述能力最优的两层。

具体的,例如,检索训练集中938张图片对应1789张评论图,匹配结果最高为1789*5=8945,将检索训练集所有图片在L1层的匹配结果相加,并除以8945则得到L1层的描述能力。根据各层的描述能力,选取描述能力最优的两层,发明人经过测试,最后一个平均池化层描述能力最强,最后一个最大池化层描述能力次之,因此,选取这两层作为检索时描述图片特征的两个输出层。也可以根据实际需求选取一个或多个输出层用于描述图片特征。

上述深度学习模型的训练过程能够选出对图片描述能力更好的全局特征,提高图片检索的准确性。

降维模型的训练过程如下:

步骤S412,从数据库中选取与检索训练集中相似的图片组成正样本对,从数据库中选取与检索训练集中不相似的图片组成负样本对,并将正样本对和负样本对作为降维训练集。

选取正样本对和负样本对的过程例如为,首先利用深度学习模型获得数据库中的所有图片的全局特征,针对检索训练集中的一张图片A,根据数据库中各图片与图片A的全局特征的距离(例如欧氏距离)检索出与图片A相似的图片并进行排序,选取排在最前面的预设数量的图片与图片A分别组成正样本对(例如,选取排在前20位的图片与图片A组成20组正样本对),从剩余未选取的图片中随机选取预设数量的图片与图片A分别组成负样本对(例如随机选取20张与图片A组成20组负样本对,进一步的,针对检索训练集中的每一张图片都可以组成正样本对和负样本对。

步骤S414,确定所有正样本对和负样本对中图片的降维后的全局特征的距离与分类阈值的差量信息的总和的关系表示。

其中,利用图片的全局特征乘以降维矩阵表示图片降维后的全局特征。降维模型的训练的目标是学习一个线性映射即降维矩阵p<<d,能够将高维矢量映射为低维矢量使得当i和j是相同商品时,图片i和j的欧氏距离小于一个分类阈值进一步,图片i和j降维后的全局特征的距离表示为(φij)TWTW(φij),所有正样本对和负样本对中图片的降维后的全局特征的距离与分类阈值的差量信息的总和的关系表示为∑i,jmax[1-yij(b-(φij)TWTW(φij)),0],其中,yij为样本对的标签,正样本对为1,负样本对为-1。

步骤S416,将求取关系表示取最大值时的降维矩阵和分类阈值的代价函数确定为降维模型。

其中,代价函数设置为:

步骤S418,对降维模型进行训练求取最优解,得到降维矩阵。

例如通过SGD(Stochastic Gradient Descent,随机梯度下降)迭代优化W和b,对于正样本对的图像降维后的全局特征的距离小于b-1,对于负样本对的图像降维后的全局特征的距离大于b-1。φi与φj构成输入的一对特征,W为待学习的降维矩阵,维度为p×d且p<<d,使得降维后的全局特征维度远小于原始特征的维度,从而在提升特征描述能力的同时达到降维目的。降维矩阵W的维度可以根据需求进行设置,也可以根据对降维后图片的特征在检索时的准确率进行确定,发明人对降维矩阵W分别设置不同的维度进行测试,对检索训练集中的图片参考步骤S408中的方法进行检索获得匹配结果,即根据评论图的排名和权重进行匹配结果的计算,发现将全局特征降维到1024维时,匹配结果最好,因此,降维矩阵W的行数p设置维1024。

上述实施例的方法中通过对降维模型的构建,使得图片的特征经过降维后还能提升特征的描述能力,在提高检索效率的同时还能提升检索的准确率。

矢量量化模型例如为K均值哈希模型,本发明对K均值哈希模型进行了优化,以使计算过程更加简单,效率更高,一是利用快速汉明距离的计算代替查表距离,二是将K均值哈希算法扩展到积空间。

矢量量化模型的训练过程如下:

步骤S420,计算量化训练集中的图片的降维后的全局特征的均值作为矢量量化模型的均值向量。

其中,量化训练集中的图片可以是在数据库中随机选取的图片,将随机选取的图片经过深度学习模型和降维模型后得到图片降维后的全局特征。将量化训练集中的图片的降维后的全局特征组成矩阵第i(0≤i≤n-1)行元素代表一张图片降维后的全局特征(d维),共n行。将矩阵的n行向量加和取平均值得到矢量量化模型的均值向量μ。

步骤S422,将量化训练集中的图片的降维后的全局特征减去均值向量并组成去均值后的图片特征矩阵。

将矩阵的每一行向量与均值向量μ得到去均值后的图片特征矩阵

步骤S424,计算去均值后的图片特征矩阵的协方差矩阵,并将协方差分解为特征值矩阵与特征向量矩阵。

其中,将去均值后的图片特征矩阵的协方差矩阵分解为特征值矩阵Δ和特征向量矩阵

步骤S426,根据特征值矩阵划分子空间。

具体的,设置M个桶,每个桶对应一个子空间,每个桶的最大容量为d/M,其中d为图片特征的维数,不重复地选取Δ(i,i)中最大的特征值,并把它分配到具有最小的特征值乘积且没有达到最大容量的桶中,直到所有的特征值Δ(i,i)都分配到各个桶中;最后得到每个桶中每个特征值在Δ中的位置索引,其中对于位置(i,i),其索引用索引向量I保存。

上述步骤S420~S422为划分子空间的过程,可以简要描述为:首先图片特征转换为二值比特串后各bit应该是独立的,期望子空间也是独立的,所以使用PCA(Principal Component Analysis,主成分分析)预处理数据。其次,期望各子空间的方差是均衡的,定义方差是各子空间特征值的积。采用贪婪算法来实现均衡,根据特征值降序排列主分量,顺序分配它们中的每一个到M个桶的方差最小的一个里面。每个桶里的主分量形成一个子空间。

步骤S428,将特征向量矩阵根据特征值在划分的子空间中的位置对特征向量矩阵进行旋转,得到旋转矩阵。

其中,将特征向量矩阵的每一列,按照索引向量I重新排序,构成旋转矩阵P。

步骤S430,计算去均值后的图片特征矩阵与矢量量化模型的旋转矩阵的乘积,得到量化训练集中的图片的投影特征。

即计算得到投影矩阵X,投影矩阵中每一行i为一张图片i的投影特征。

步骤S432,将量化训练集中的图片的投影特征的各维数据按照子空间的个数均分到各个子空间。

发明人针对图片特征经过矢量量化后的比特数以及划分的子空间的个数分别进行了不同的测试,发现将矢量量化后的比特数设置为1024bit,划分M=512个子空间时,应用骤S408中的方法进行检索获得的匹配结果最好。因此,每个子空间中分配图片的投影特征的两维分特征。

步骤S434,在各个子空间内,根据K均值哈希算法确定该子空间内的子码本以及子码本中各个码字对应的编码。

在各个子空间内,K均值哈希算法的运算过程如下:

在一个子空间内,映射d维矢量到另一个矢量集合C被称为码本,ci是码字,k是码字数量。假定用b个比特进行检索,需要k=2b个码字。矢量量化方法分配任一个矢量(即图片的投影特征)到码本中最近的码字。通常码字由k-means(K均值)聚类中心给出,因为它们能提供最小量化误差。

矢量量化方法通过两个矢量x,y(即图片的投影特征)对应的码字间距离来近似矢量间的距离:

d(x,y)≈d(q(x),q(y))=d(ci(x),ci(y)) (1)

其中,d(x,y)=||x-y||表示两个矢量间的欧氏距离,i(x)表示包括x所属cell的索引号。距离计算依赖与它们的索引号,能够从lookup表d(.,.)中查到。

为了不用查表,使用汉明距离计算,利用汉明距离近似基于查表的距离:

d(ci(x),ci(y))≈dh(i(x),i(y)) (2)

其中,dh定义为两个索引i和j的汉明距离:

其中,s是个常量,h表示汉明距离,是h的均方根。

综上,给定一个码本C,通过dh(i(x),i(y))近似距离d(X,y)。

应用上述K均值哈希模型,产生训练样本的平均量化误差Equan

同时,针对(2)的应用产生相似性误差Eaff

其中ωij=ninj/n2,其中ni、nj是索引号为i和j的样本数量。

进一步,组合量化误差和相似性误差得到总误差:

E=Equan+λEaFf (6)

对公式(6)进行求解采用如下步骤:

初始化步骤:

用PCA哈希方法学习二值码,初始化索引号。

分配步骤:

固定{ci},优化i(x)。该步与经典k-means算法相似,每个样本点x分配到码本{ci}中最近的码字。

更新步骤:

固定i(x),优化{ci}。固定其他{ci}i≠j,根据下式优化每个独立的码字cj

对上式例如使用坐标下降方法进行优化,即可获得该子空间内的码字组成的码本{ci}以及各码字对应的编码。

将各个子空间的码本进行组合即可得到积空间中的码本。

上述实施例的方法,应用汉明距离代替查表距离简化了计算过程,同时将积空间内的编码过程划分至多个子空间,降低了计算的复杂度和存储的数据量,进一步提高了图片检索处理能力。

本发明还提供一种图像检索装置,下面结合图5进行描述。

图5为本发明图像检索装置的一个实施例的结构图。如图5所示,该装置50包括:

全局特征提取模块502,用于利用深度学习模型提取待检索图片的全局特征。

具体的,全局特征提取模块502,用于将待检索图片输入GoogleNet模型,从GoogleNet模型各层输出的待检索图片的特征向量中,选取最后一个平均池化层和最后一个最大池化层输出的特征向量进行组合,作为待检索图片的全局特征。

特征降维模块504,用于利用降维模型中的降维矩阵对待检索图片的全局特征进行降维,降维模型是以减小降维训练集中相似图片的降维后的全局特征的距离且增大降维训练集中不相似图片的降维后的全局特征的距离为目标构建的。

矢量量化模块506,用于利用矢量量化模型将待检索图片的降维后的全局特征量化为二值比特串。

具体的,矢量量化模块506,用于根据矢量量化模型中的均值向量和旋转矩阵对待检索图片的降维后的全局特征进行投影,得到待检索图片的投影特征,根据矢量量化模型中划分的子空间以及获得的各个子空间的码本,确定待检索图片的投影特征在各个子空间中的编码,将待检索图片的投影特征在各个子空间中的编码进行组合,得到待检索图片的二值比特串。

优选的,矢量量化模块506,用于将待检索图片的投影特征的各维数据按照子空间的个数均分到各个子空间,获得待检索图片在各个子空间的分特征,在各个子空间内,根据该子空间内的码本中与待检索图片在该子空间内的分特征的距离最近的码字确定待检索图片的投影特征在各个子空间中的编码。

检索模块508,用于根据待检索图片的二值比特串与数据库中的图片的二值比特串的距离,从数据库中检索出与待检索图片相似的图片。

下面结合图6描述本发明图像检索装置的另一个实施例。

图6为本发明图像检索装置的另一个实施例的结构图。如图6所示,该装置50还包括:

深度学习模型训练模块610,用于选取人工拍摄的图片作为检索训练集,选取与检索训练集中图片相对应的评论图以及与检索训练集中图片不相关的图片作为数据训练集,并将检索训练集和数据训练集作为深度学习训练集,将检索训练集中的图片输入深度学习模型获得各层输出的特征向量,将数据训练集中的图片输入深度学习模型获得各层输出的特征向量,根据检索训练集中一张图片的在一个输出层的特征向量与数据训练集中的各个图片在该输出层的特征向量的距离,对数据训练集中的各个图片进行排序,并根据数据训练集中与检索训练集中的该图片对应的评论图的排序位置以及该排序位置对应的权重,确定检索训练集中该图片在该输出层的匹配结果,根据检索训练集中各图片在该输出层的匹配结果,确定该输出层的描述能力,根据各输出层的描述能力确定描述图片全局特征最优的两个输出层。

降维模型训练模块612,用于选取人工拍摄的图片作为检索训练集,从数据库中选取与检索训练集中相似的图片组成正样本对,从数据库中选取与检索训练集中不相似的图片组成负样本对,并将正样本对和负样本对作为降维训练集;利用图片的全局特征乘以降维矩阵表示图片降维后的全局特征,确定所有正样本对和负样本对中图片的降维后的全局特征的距离与分类阈值的差量信息的总和的关系表示,将求取关系表示取最大值时的降维矩阵和分类阈值的代价函数确定为降维模型,对降维模型进行训练求取最优解,得到降维矩阵。

矢量量化模型训练模块614,用于计算量化训练集中的图片的降维后的全局特征的均值作为矢量量化模型的均值向量,将量化训练集中的图片的降维后的全局特征减去均值向量并组成去均值后的图片特征矩阵,计算去均值后的图片特征矩阵的协方差矩阵,并将协方差分解为特征值矩阵与特征向量矩阵,根据特征值矩阵划分子空间,将特征向量矩阵根据特征值在划分的子空间中的位置对特征向量矩阵进行旋转,得到旋转矩阵,计算去均值后的图片特征矩阵与矢量量化模型的旋转矩阵的乘积,得到量化训练集中的图片的投影特征,将量化训练集中的图片的投影特征的各维数据按照子空间的个数均分到各个子空间,在各个子空间内,根据K均值哈希算法确定该子空间内的子码本以及子码本中各个码字对应的编码。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序(指令),其特征在于,该程序(指令)被处理器执行时实现前述任一个实施例中的图片检索方法的步骤。

本领域内的技术人员应当明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1