哈希值的确定方法和装置、存储介质、电子装置与流程

文档序号:18755526发布日期:2019-09-24 22:14阅读:415来源:国知局
哈希值的确定方法和装置、存储介质、电子装置与流程

本发明涉及互联领域,具体而言,涉及一种哈希值的确定方法和装置、存储介质、电子装置。



背景技术:

近年来,由于例如普通家庭用户能够以低成本连接光纤网络,因此支持因特网的基础设施投入使用,并且通信速度迅速加快。各种数字设备可以连接到网络,并且在数字设备间经由因特网频繁进行通信。

在这种数字设备间的通信中,作为必不可少的功能,除了对要交换的数据进行传输以外,还需要对通信双方的通信数据进行定位和访问。在这种在数字设备间对通信双方和通信数据进行定位和访问时,通常使用称作哈希函数的算法。

哈希函数是一种输入任意位长的消息并输出固定位长的哈希值的算法(函数),存储哈希值的数据表即为哈希表,哈希表是一种快速的元素存取和读取数组,其特点是可用于根据数据元素的哈希值进行数组定位和访问,可实现数据快速检索,由其效率非常高,但是随着数据量的增加,为了保证数据的哈希值不重复,使得哈希值的长度越来越长,从而影响了数据检索效率,为了克服该问题,相关技术中往往是截取哈希特征值的前k位,从而使得得到的哈希值并不能准确地的体现原始数据的数据特征。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种哈希值的确定方法和装置、存储介质、电子装置,以至少解决相关技术中的哈希值不能准确描述原始数据的数据特征的技术问题。

根据本发明实施例的一个方面,提供了一种哈希值的确定方法,包括:获取目标数据,目标数据为在检索过程中使用的数据;通过目标卷积神经网络对目标数据执行卷积操作,获取目标数据的第一特征向量,第一特征向量包括在多个特征维度上的特征值;根据第一特征向量在多个特征维度上的特征值确定第二特征向量,第二特征向量中包括第一特征向量中特征值大于目标阈值的特征维度;对第二特征向量进行降维处理得到目标数据的目标哈希值。

根据本发明实施例的另一方面,还提供了一种哈希值的确定装置,包括:第一获取单元,用于获取目标数据,目标数据为在检索过程中使用的数据;第二获取单元,用于通过目标卷积神经网络对目标数据执行的卷积操作,来获取目标数据的第一特征向量,第一特征向量包括在多个特征维度上的特征值;第一降维单元,用于根据第一特征向量在多个特征维度上的特征值确定第二特征向量,第二特征向量中包括第一特征向量中特征值大于目标阈值的特征维度;第二降维单元,用于对第二特征向量进行降维处理得到目标数据的目标哈希值。

根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。

根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。

在本发明实施例中,获取目标数据,目标数据为在检索过程中使用的数据;通过目标卷积神经网络对目标数据执行卷积操作,获取目标数据的第一特征向量,第一特征向量包括在多个特征维度上的特征值;根据第一特征向量在多个特征维度上的特征值确定第二特征向量,第二特征向量中包括第一特征向量中特征值大于目标阈值的特征维度;对第二特征向量进行降维处理得到目标数据的目标哈希值,在第一次降维时仅仅删除所有零特征值对应的空间维度,所有特征值不为零的特征维度都被保存,最大限度的保留原始数据的数据特征,可以解决相关技术中的哈希值不能准确描述原始数据的数据特征的技术问题,进而达到得到的哈希值能准确描述原始数据的数据特征的技术效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的哈希值的确定方法的硬件环境的示意图;

图2是根据本发明实施例的一种可选的哈希值的确定方法的流程图;

图3是根据本发明实施例的一种可选的利用哈希值进行检索的流程图;

图4是根据本发明实施例的一种可选的利用哈希值进行检索的示意图;

图5是根据本发明实施例的一种可选的哈希值的示意图;

图6是根据本发明实施例的一种可选的神经网络模型的示意图;

图7是根据本发明实施例的一种可选的利用哈希值进行检索的流程图;

图8是根据本发明实施例的一种可选的哈希值的确定装置的示意图;

图9是根据本发明实施例的一种可选的哈希值的确定装置的示意图;以及

图10是根据本发明实施例的一种终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:

哈希值,又称:散列函数(或散列算法,又称哈希函数,英语:hashfunction)是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(hashvalues,hashcodes,hashsums,或hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。好的散列函数在输入域中很少出现散列冲突。在散列表和数据处理中,不抑制冲突来区别数据,会使得数据库记录更难找到。

根据本发明实施例的一方面,提供了一种哈希值的确定方法的方法实施例。

可选地,在本实施例中,上述哈希值的确定方法可以应用于如图1所示的由终端101和服务器103所构成的硬件环境中。如图1所示,服务器103通过网络与终端101进行连接,可用于为终端或终端上安装的客户端提供数据服务(如游戏数据服务、应用数据服务、多媒体数据服务等),可在服务器上或独立于服务器设置数据库105,用于为服务器103提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端101并不限定于pc、手机、平板电脑等。

本发明实施例的哈希值的确定方法可以由服务器103来执行,图2是根据本发明实施例的一种可选的哈希值的确定方法的流程图,如图2所示,该方法可以包括以下步骤:

步骤s202,服务器获取目标数据,目标数据为在检索过程中使用的数据,目标数据既可以是待检索的数据,也可以是数据库中被检索的数据,这些数据可以为多媒体数据(如视频、音频、图片等)、科研数据、通讯消息、游戏数据等。

步骤s204,服务器通过目标卷积神经网络对目标数据执行的卷积操作,来获取目标数据的第一特征向量,第一特征向量包括在多个特征维度上的特征值,目标卷积神经网络为已经训练好的用于提取数据特征的深度神经网络模型。

步骤s206,进行第一次降维,服务器根据第一特征向量在多个特征维度上的特征值确定第二特征向量,第二特征向量中包括第一特征向量中特征值大于目标阈值的特征维度,例如第一特征向量中特征值大于目标阈值的特征维度被保留在第二特征向量中且第一特征向量中特征值小于等于目标阈值的特征维度未被保留在第二特征向量中。

该方案对提取的数据特征(即第一特征向量),先通过主成分分析对数据进行第一次降维,第一次降维时,所有非零特征值对应的空间维度被保留。

步骤s208,进行第二次降维,服务器对第二特征向量进行降维处理得到目标数据的目标哈希值。

在通过主成分分析对数据进行第一次降维后,可再通过一个降维旋转矩阵对降维后的数据进行第二次降维到所需的汉明空间,第二次降维除了将所有被保留的数据特征投射到所需的汉明空间,也有旋转作用,使得生成的哈希码的每个维度的方差最大且成对不相关,从而既能够有效保留数据特征,还能减少哈希二值化误差。

上述实施例以本申请实施例的哈希值的确定方法由服务器103来执行为例进行说明,本申请实施例的哈希值的确定方法也可以由终端101来执行,与上述实施例的区别在于将执行主体由服务器103替换为终端101,本申请实施例的哈希值的确定方法还可以是由服务器103和终端101共同执行,例如,终端101执行步骤s202,服务器103执行步骤s204-步骤s208。其中,终端101执行本发明实施例的哈希值的确定方法也可以是由安装在其上的客户端来执行。

相关技术在生成哈希码时,只通过一次降维,将数据一次性从特征空间投射到相应维度的汉明空间,如采用迭代量化法通过主成分分析将数据直接一次性降维到所需的汉明空间(比如k位汉明空间),这个过程是截断了前k位的特征值对应的空间维度,忽略了k位之后的特征值不为零的维度,从而造成相似度信息损失。

而在本申请的技术方案中,不会一次性直接降维到相应的汉明空间,而是在第一次降维时,只截断到所有零特征值对应的空间维度,所有特征值不为零的特征维度都被保存,最大限度的保留原始数据的相似度信息,然后第二次降维时才使用旋转降维矩阵将第一次降维所得到的数据降维到汉明空间,此种方法生成的哈希码即保留了原始数据的相似度信息,其内部各维之间也能够相互线性无关。可见,通过上述步骤s202至步骤s208,在第一次降维时仅仅删除所有零特征值对应的空间维度,所有特征值不为零的特征维度都被保存,最大限度的保留原始数据的数据特征,可以解决相关技术中的哈希值不能准确描述原始数据的数据特征的技术问题,进而达到得到的哈希值能准确描述原始数据的数据特征的技术效果。

本申请的技术方案可以部署到用于提供图像或者视频等检索的本地终端或云端服务器中,实际部署到服务器端或者移动端进行图像或者视频检索时的应用流程如图3所示,以提供图像或者视频检索的服务。

步骤s302,可以通过深度学习网络(即目标神经网络模型)提取图像或者视频的特征(第一特征向量);

步骤s304,通过两次降维然后迭代计算得到对应数据的最佳哈希码(即目标哈希值),利用生成的哈希码建立数据库,最后通过计算汉明距离进行检索;

步骤s306,进行图像或者视频检索(例如图4所示,当用户点击热点视频时(当然,此处也可以是图片、音频等其他多媒体数据),被点击的“视频媒体内容1”会在服务器端被检索,以确定其是否存在),利用生成的哈希码建立数据库,最后通过计算汉明距离进行检索。

下面结合图2所示的步骤进一步详述本申请的哈希降维的技术方案:

在步骤s202提供的技术方案中,服务器获取目标数据,目标数据为在检索过程中使用的数据,目标数据既可以是待检索的数据。

目标数据可以是一个数据,如一个视频,这样得到的目标哈希值就是该视频的哈希值;目标数据也可以是一个数据集,数据集中每个元素表示一个数据,这样得到的目标哈希值可以是一个哈希值序列或者哈希值集,例如,一个视频集的哈希值集,其中的每个元素表示一个视频的哈希值,如图5所示。

对于图像数据或者视频数据集x(集目标数据)可包含n个数据,x={x1,x2,...,xn},该方法的首要目标是学习该数据集的二值化编码(即目标哈希值),得到的哈希码b∈{-1,1}n×c,b是以“-1”或“1”为元素的n行c列的矩阵,此处c是哈希码的长度,也是汉明空间的维度;基于学到的高质量的哈希码,在大规模图像或者视频检索时便可以完成高质量的检索任务。

在步骤s204提供的技术方案中,服务器通过目标卷积神经网络对目标数据执行的卷积操作,来获取目标数据的第一特征向量,第一特征向量包括在多个特征维度上的特征值,目标卷积神经网络为已经训练好的用于提取数据特征的深度神经网络模型,一种可选的神经网络模型(例如vgg,resnet,i3d,r3d等卷积神经网络)如图6所示,可以将数据作为神经网络模型的输入,进而得到输出的第一特征向量。

在对深度神经网络模型进行训练时可以采用端对端的监督学习,由于第一次降维无需学习,而是直接通过主成分分析得到第一次降维时的降维矩阵p,第二次降维可通过迭代更新的方式学习第二次降维时使用的降维矩阵和最终的哈希码;在步骤s204时使用的神经网络模型采用无监督学习,在与深度卷积网络结合时,可以利用上述两次降维生成的哈希码和图像/视频的标记,反向传播更新网络,实现端对端的监督学习。

对于数据集x,首先通过深度卷积神经网络(即目标卷积神经网络,例如vgg,resnet,i3d,r3d等卷积神经网络)获得其数据特征,记该数据特征(即第一特征向量)为:z∈rn×d(c<<d),且该数据特征z是减去自身均值后的结果(即zero-centered),rn×d表示所有的n行d列的实数矩阵,z是其子集,此公式的意思是z是一个n行d列的实数矩阵。

需要说明的是,本申请除了上述说明的利用图像或者视频的深度特征进行二次降维旋转的哈希方法,利用图像或视频的其他特征进行二次降维旋转的也可。

在步骤s206提供的技术方案中,进行第一次降维,服务器根据第一特征向量在多个特征维度上的特征值确定第二特征向量,第一特征向量中特征值大于目标阈值的特征维度被保留在第二特征向量中且第一特征向量中特征值小于等于目标阈值的特征维度未被保留在第二特征向量中。

可选地,根据第一特征向量在多个特征维度上的特征值确定第二特征向量可包括步骤s2062-步骤s2064:

步骤s2062,获取第一特征向量的第一降维矩阵,第一降维矩阵用于通过与所述第一特征向量之间的矩阵乘积来删除第一特征向量中特征值小于等于目标阈值的特征维度。

可选地,获取第一特征向量的第一降维矩阵包括:获取第一特征向量的方差矩阵ztz,方差矩阵为第一特征向量z与第一特征向量的转置zt之间的乘积;按照如下目标结构:

对方差矩阵进行分解,目标结构为第一矩阵[pp]、第二矩阵[∑0]以及第三矩阵之间的乘积,第一矩阵包括第一元素和第二元素,第一元素用于表示非零特征值对应的特征向量组成的矩阵p,第二元素表示由特征值为零的特征向量组成的矩阵p,第二矩阵包括第三元素∑和第四元素,第三元素用于表示非零特征值组成的对角矩阵,第四元素为固定参数(如为0),第三矩阵包括第一元素的转置pt和第二元素的转置(p)t;将第一元素p表示的矩阵作为第一降维矩阵。

步骤s2064,将第一降维矩阵与第一特征向量之间的乘积作为第二特征向量。

在步骤s208提供的技术方案中,进行第二次降维,服务器对第二特征向量进行降维处理得到目标数据的目标哈希值。

可选地,对第二特征向量进行降维处理得到目标数据的目标哈希值包括:获取用于对第二特征向量进行降维处理的第二降维矩阵,第二降维矩阵所表示的维度之间线性无关;获取第二特征向量与第二降维矩阵之间的乘积为目标参数矩阵;对目标参数矩阵中元素的值进行二值化处理,得到目标数据的目标哈希值。

在上述实施例中,获取用于对第二特征向量进行降维处理的第二降维矩阵包括:获取目标表达式,其中,目标表达式为以训练数据的哈希值矩阵和训练数据的降维矩阵为变量的函数;在目标表达式的取值达到最小值的情况下,获取训练数据的降维矩阵为第二降维矩阵。

可选地,获取目标表达式包括:获取目标表达式q(b,a),其中,argmin表示取最小值,a表示训练数据的降维矩阵,b表示训练数据的哈希值矩阵,z表示对训练数据执行卷积操作得到的特征向量,p表示第一降维矩阵,表示取范数的二次方。

对于每一位k=1,2,…,c,二值化编码的参数为wk,该位哈希码可以表示为sgn(zwk),sgn()表示阶跃函数,所以编码过程可以记做:b=sgn(zw),此处w∈rd×c是需要学习的参数矩阵,令y=zw,当y和b的距离越小,表明生成的哈希码保留着越多的原数据的相似度信息,因此,学习哈希码可以通过优化目标函数实现,该目标函数可受制于如下条件:

s.t.是subjecto的数学缩写,i是单位矩阵,

1tb=0,

其中是约束哈希码的每个维度线性无关,1tb=0是为了让生成的哈希码各个维度的方差最大,||.||f是frobenius范数。y=zw可以看作是将d维数据z降维到c维,参数矩阵w即是降维矩阵,本申请将该降维过程分作两步,以便于将原始数据的相似性信息更完善的保留到汉明空间,得到更好的哈希码。

可选地,在目标表达式的取值达到最小值的情况下,获取训练数据的降维矩阵为第二降维矩阵包括:获取为训练数据的降维矩阵配置的取值后,得到训练数据的哈希值矩阵b的更新公式:bij=sgn(vij),bij表示b的第i行第j列的取值,vij表示矩阵v的第i行第j列的取值,v为对训练数据执行卷积操作得到的特征向量v、第一降维矩阵p以及训练数据的降维矩阵a之间相乘后得到的矩阵;在按照训练数据的哈希值矩阵b的更新公式确定训练数据的哈希值矩阵b的取值后,得到训练数据的降维矩阵的更新公式:a=u*vt,其中,u和vt表示bt*z*p的奇异值分解,u是特征值分解时特征向量组成的矩阵,特征值分解时的默认表示方式,bt表示b的转置,z表示对训练数据执行卷积操作得到的特征向量,p表示第一降维矩阵;在训练数据的降维矩阵a的取值和训练数据的哈希值矩阵b的取值未收敛的情况下,继续对训练数据的降维矩阵a的取值和训练数据的哈希值矩阵b的取值进行更新;在训练数据的降维矩阵a的取值和训练数据的哈希值矩阵b的取值收敛的情况下,将收敛后的训练数据的降维矩阵a的取值作为第二降维矩阵。

在上述技术方案中,提供了一种基于新的哈希算法实现大规模的图像和视频检索的方法,该方法能有效保留数据特征,减少哈希二值化误差,以便生成更加精确的哈希码,大幅提升图像/视频检索的精度。具体而言,该方法对提取的数据特征,先通过主成分分析对数据进行第一次降维,再通过一个降维旋转矩阵对降维后的数据进行第二次降维到所需的汉明空间。第一次降维时,所有非零特征值对应的空间维度被保留。第二次降维是将所有被保留的数据特征投射到所需的汉明空间,同时第二次降维也有旋转作用,使得生成的哈希码的每个维度的方差最大且成对不相关。本方法采用迭代量化的方式逐步优化降维矩阵和哈希码,最后得到最佳的哈希码。二次降维旋转哈希算法以无监督的方式学习数据集的哈希码,并将生成的高质量哈希码用于图像和视频的检索。

作为一种可选的实施例,下面结合具体的实施方式,以图7所示的步骤进一步详述本申请的技术方案。

步骤s701,获取图像数据或者视频数据的数据集x。

对于图像数据或者视频数据集x包含n个数据,x={x1,x2,...,xn},该方法的首要目标是学习该数据集的二值化编码,即哈希码b∈{-1,1}n×c,此处c是哈希码的长度,也是汉明空间的维度。基于学到的高质量的哈希码,在大规模图像或者视频检索时便可以完成高质量的检索任务。

步骤s702,利用目标神经网络模型获取数据集的第一特征向量。

对于数据集x,首先通过深度卷积神经网络(例如vgg,resnet,i3d,r3d等卷积神经网络)获得其数据特征,记该数据特征(即第一特征向量)为:z∈rn×d(c<<d),且该数据特征z是减去自身均值后的结果(即zero-centered)。

步骤s703,获取目标函数及其约束条件。

对于每一位k=1,2,…,c,二值化编码的参数为wk,该位哈希码可以表示为sgn(zwk),sgn表示阶跃函数,所以编码过程可以记做:b=sgn(zw),此处w∈rd×c是需要学习的参数矩阵。令y=zw,当y和b的距离越小,表明生成的哈希码保留着越多的原数据的相似度信息。因此,学习哈希码可以通过优化以下目标函数:

y=zw,

1tb=0。

约束哈希码的每个维度线性无关,让生成的哈希码各个维度的方差最大,通过y=zw将d维数据z降维到c维,将该降维过程分作两步,以便于将原始数据的相似性信息更完善的保留到汉明空间,得到更好的哈希码。

步骤s704,获取第一次降维的降维矩阵p。

第一次降维使用主成分分析的方法,保留所有非零特征值对应的维度空间。对于数据特征向量z∈rn×d,其方差矩阵为:ztz,对其进行特征值分解可得:ztz=u∑ut。将所有特征值按照从大到小的顺序排列,对应的特征向量也调整为对应位置,同时将特征值分解调整为如下结构:

其中p为所有非零特征值对应的特征向量,p是由所有特征值为零的特征向量组成的矩阵。∑是非零特征值组成的对角矩阵。如果有d′个非零特征值,则p∈rd×d′。同时可知zp∈rn×d′,本方案采用用p作为第一次降维的矩阵,可以将数据特征从d维空间投影到d′维。第一次降维通过pca(pca是主成分分析principalcomponentanalysis的英文缩写)将数据从原始特征空间投影到低维空间,同时只压缩了特征值为零的维度,最大限度保证各个维度的数据特征。

步骤s705,获取第二次降维的降维矩阵a。

第二次降维的过程如下:

第二次降维是将数据特征从d′降到c维空间,设降维矩阵为a,则a∈rd′×c。限定矩阵a每个维度线性无关,即a除了降维之外,还有旋转作用。参数矩阵w=pa,y=zpa。目标函数变为:

此次降维是在第一次降维的基础上,将数据投射到c维空间,二值化后即变成c维汉明空间,该旋转矩阵a是未知的,需要学习到最佳的投影矩阵。本方案采用以下迭代量化的方法同时学习第二次降维矩阵a和数据的哈希码b。迭代量化学习过程如下:

为了学习第二次降维矩阵a和数据的哈希矩阵b,本方案采用先固定其中一个矩阵,更新另一个矩阵的学习策略,逐步迭代使得二值化误差收敛。

固定a更新b:

将目标函数展开,则有:

tr是数学符号,是表示求“矩阵的迹”的符号,由于zp是固定的,最小化上式等价于最大化下式:

此处vij代表矩阵v的元素,并且v=zpa。此步的目标是更新b的以最大化上式,因此当vij≥0时,bij=1;当vij<0时,bij=-1。由此可以得到b的更新公示:bij=sgn(vij)。

固定b更新a:

当b固定时,变成了一个正交普鲁克(orthogonalprocrustes)问题。对于该问题,本方案的解法如下:

ω是奇异值分解时的奇异值矩阵,该分解的默认参数,当uavt=i时该式能被最大化,此时a=utv。此处utωv是矩阵btzp的奇异值分解,由此a=uvt是固定b时的最佳取值。该迭代量化的方法除了降维效果之外,迭代矩阵a也有旋转特征数据的作用,每一次更新a都可以看作是学习一个旋转矩阵,通过循环迭代矩阵a和b直至收敛,以得到局部最优的降维矩阵和哈希码。

步骤s706,将得到的此哈希码(即目标哈希值)存入哈希的数据库,以便对新数据进行检索。

步骤s707,当用户在用户终端上看视频时,获取用户对目标视频(保存在数据库中)的请求。

步骤s708,在用户局域网计算缓存视频的哈希值,并将其与目标视频的哈希值进行比较。

步骤s709,在用户局域网的缓存视频的哈希值与目标视频的哈希值相同的情况下,直接将缓存视频发送给用户。

采用本申请的技术方案,本方法能显著提高检索精度,提高在线图像和视频检索,离线图像和视频检索的精确度,该方法学习速度快,收敛速度极快,只需要迭代计算10次左右即可收敛,得到高质量哈希码。同时,该方法无需过多的计算资源,在无监督学习时,普通计算机cpu即可实现训练。在与深度卷积网络结合时,端对端训练时也不会耗费过多的计算资源。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

根据本发明实施例的另一个方面,还提供了一种用于实施上述哈希值的确定方法的哈希值的确定装置。图8是根据本发明实施例的一种可选的哈希值的确定装置的示意图,如图8所示,该装置可以包括:第一获取单元801、第二获取单元803、第一降维单元805以及第二降维单元807。

第一获取单元801,用于获取目标数据,其中,目标数据为在检索过程中使用的数据。

第二获取单元803,用于通过目标卷积神经网络对目标数据执行的卷积操作,来获取目标数据的第一特征向量,其中,第一特征向量包括在多个特征维度上的特征值。

第一降维单元805,用于根据第一特征向量在多个特征维度上的特征值确定第二特征向量,其中,第二特征向量中包括第一特征向量中特征值大于目标阈值的特征维度。

第二降维单元807,用于对第二特征向量进行降维处理得到目标数据的目标哈希值。

在通过主成分分析对数据进行第一次降维后,可再通过一个降维旋转矩阵对降维后的数据进行第二次降维到所需的汉明空间,第二次降维除了将所有被保留的数据特征投射到所需的汉明空间,也有旋转作用,使得生成的哈希码的每个维度的方差最大且成对不相关,从而既能够有效保留数据特征,还能减少哈希二值化误差。

相关技术在生成哈希码时,只通过一次降维,将数据一次性从特征空间投射到相应维度的汉明空间,如采用迭代量化法通过主成分分析将数据直接一次性降维到所需的汉明空间(比如k位汉明空间),这个过程是截断了前k位的特征值对应的空间维度,忽略了k位之后的特征值不为零的维度,从而造成相似度信息损失。

而在本申请的技术方案中,不会一次性直接降维到相应的汉明空间,而是在第一次降维时,只截断到所有零特征值对应的空间维度,所有特征值不为零的特征维度都被保存,最大限度的保留原始数据的相似度信息,然后第二次降维时才使用旋转降维矩阵将第一次降维所得到的数据降维到汉明空间,此种方法生成的哈希码即保留了原始数据的相似度信息,其内部各维之间也能够相互线性无关。

需要说明的是,该实施例中的第一获取单元801可以用于执行本申请实施例中的步骤s202,该实施例中的第二获取单元803可以用于执行本申请实施例中的步骤s204,该实施例中的第一降维单元805可以用于执行本申请实施例中的步骤s206,该实施例中的第二降维单元807可以用于执行本申请实施例中的步骤s208。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。

通过上述模块,获取目标数据,目标数据为在检索过程中使用的数据;通过目标卷积神经网络对目标数据执行的卷积操作,来获取目标数据的第一特征向量,第一特征向量包括在多个特征维度上的特征值;根据第一特征向量在多个特征维度上的特征值确定第二特征向量,第二特征向量中包括第一特征向量中特征值大于目标阈值的特征维度;对第二特征向量进行降维处理得到目标数据的目标哈希值,在第一次降维时仅仅删除所有零特征值对应的空间维度,所有特征值不为零的特征维度都被保存,最大限度的保留原始数据的数据特征,可以解决相关技术中的哈希值不能准确描述原始数据的数据特征的技术问题,进而达到得到的哈希值能准确描述原始数据的数据特征的技术效果。

可选地,如图9所示,第一降维单元805包括:第一获取模块8051,用于获取第一特征向量的第一降维矩阵,其中,第一降维矩阵用于通过与所述第一特征向量之间的矩阵乘积来删除第一特征向量中特征值小于等于目标阈值的特征维度;第一降维模块8053,用于将第一降维矩阵与第一特征向量之间的乘积作为第二特征向量。

可选地,第一获取模块还可用于:获取第一特征向量的方差矩阵,其中,方差矩阵为第一特征向量与第一特征向量的转置之间的乘积;按照目标结构对方差矩阵进行分解,其中,目标结构为第一矩阵、第二矩阵以及第三矩阵之间的乘积,第一矩阵包括第一元素和第二元素,第一元素用于表示非零特征值对应的特征向量组成的矩阵,第二元素表示由特征值为零的特征向量组成的矩阵,第二矩阵包括第三元素和第四元素,第三元素用于表示非零特征值组成的对角矩阵,第四元素为固定参数,第三矩阵包括第一元素的转置和第二元素的转置;将第一元素表示的矩阵作为第一降维矩阵。

可选地,第二降维单元包括:第二获取模块,用于获取用于对第二特征向量进行降维处理的第二降维矩阵,其中,第二降维矩阵所表示的维度之间线性无关;第三获取模块,用于获取第二特征向量与第二降维矩阵之间的乘积为目标参数矩阵;确定模块,用于对目标参数矩阵中元素的值进行二值化处理,得到目标数据的目标哈希值。

可选地,第二获取模块还用于:第一获取子模块,用于获取目标表达式,其中,目标表达式为以训练数据的哈希值矩阵和训练数据的降维矩阵为变量的函数;第二获取子模块,用于在目标表达式的取值达到最小值的情况下,获取训练数据的降维矩阵为第二降维矩阵。

可选地,第一获取子模块还可用于:获取目标表达式q(b,a),其中,argmin表示取最小值,a表示训练数据的降维矩阵,b表示训练数据的哈希值矩阵,z表示对训练数据执行卷积操作得到的特征向量,p表示第一降维矩阵,表示取范数的二次方。

可选地,第二获取子模块还用于:获取为训练数据的降维矩阵配置的取值后,得到训练数据的哈希值矩阵b的更新公式:bij=sgn(vij),bij表示b的第i行第j列的取值,vij表示矩阵v的第i行第j列的取值,v为对训练数据执行卷积操作得到的特征向量v、第一降维矩阵p以及训练数据的降维矩阵a之间相乘后得到的矩阵;在按照训练数据的哈希值矩阵b的更新公式确定训练数据的哈希值矩阵b的取值后,得到训练数据的降维矩阵的更新公式:a=u*vt,其中,u和vt表示bt*z*p的奇异值分解,bt表示b的转置,z表示对训练数据执行卷积操作得到的特征向量,p表示第一降维矩阵;在训练数据的降维矩阵a的取值和训练数据的哈希值矩阵b的取值未收敛的情况下,继续对训练数据的降维矩阵a的取值和训练数据的哈希值矩阵b的取值进行更新;在训练数据的降维矩阵a的取值和训练数据的哈希值矩阵b的取值收敛的情况下,将收敛后的训练数据的降维矩阵a的取值作为第二降维矩阵。

在上述技术方案中,提供了一种基于新的哈希算法实现大规模的图像和视频检索的方法,该方法能有效保留数据特征,减少哈希二值化误差,以便生成更加精确的哈希码,大幅提升图像/视频检索的精度。具体而言,该方法对提取的数据特征,先通过主成分分析对数据进行第一次降维,再通过一个降维旋转矩阵对降维后的数据进行第二次降维到所需的汉明空间。第一次降维时,所有非零特征值对应的空间维度被保留。第二次降维是将所有被保留的数据特征投射到所需的汉明空间,同时第二次降维也有旋转作用,使得生成的哈希码的每个维度的方差最大且成对不相关。本方法采用迭代量化的方式逐步优化降维矩阵和哈希码,最后得到最佳的哈希码。二次降维旋转哈希算法以无监督的方式学习数据集的哈希码,并将生成的高质量哈希码用于图像和视频的检索。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。

根据本发明实施例的另一个方面,还提供了一种用于实施上述哈希值的确定方法的服务器或终端。

图10是根据本发明实施例的一种终端的结构框图,如图10所示,该终端可以包括:一个或多个(图10中仅示出一个)处理器1001、存储器1003、以及传输装置1005,如图10所示,该终端还可以包括输入输出设备1007。

其中,存储器1003可用于存储软件程序以及模块,如本发明实施例中的哈希值的确定方法和装置对应的程序指令/模块,处理器1001通过运行存储在存储器1003内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的哈希值的确定方法。存储器1003可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1003可进一步包括相对于处理器1001远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置1005用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1005包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1005为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器1003用于存储应用程序。

处理器1001可以通过传输装置1005调用存储器1003存储的应用程序,以执行下述步骤:

获取目标数据,其中,目标数据为在检索过程中使用的数据;

通过目标卷积神经网络对目标数据执行的卷积操作,来获取目标数据的第一特征向量,其中,第一特征向量包括在多个特征维度上的特征值;

根据第一特征向量在多个特征维度上的特征值确定第二特征向量,其中,第二特征向量中包括第一特征向量中特征值大于目标阈值的特征维度;

对第二特征向量进行降维处理得到目标数据的目标哈希值。

处理器1001还用于执行下述步骤:

获取第一特征向量的方差矩阵,其中,方差矩阵为第一特征向量与第一特征向量的转置之间的乘积;

按照目标结构对方差矩阵进行分解,其中,目标结构为第一矩阵、第二矩阵以及第三矩阵之间的乘积,第一矩阵包括第一元素和第二元素,第一元素用于表示非零特征值对应的特征向量组成的矩阵,第二元素表示由特征值为零的特征向量组成的矩阵,第二矩阵包括第三元素和第四元素,第三元素用于表示非零特征值组成的对角矩阵,第四元素为固定参数,第三矩阵包括第一元素的转置和第二元素的转置;

将第一元素表示的矩阵作为第一降维矩阵。

处理器1001还用于执行下述步骤:

获取为训练数据的降维矩阵配置的取值后,得到训练数据的哈希值矩阵b的更新公式:bij=sgn(vij),bij表示b的第i行第j列的取值,vij表示矩阵v的第i行第j列的取值,v为对训练数据执行卷积操作得到的特征向量v、第一降维矩阵p以及训练数据的降维矩阵a之间相乘后得到的矩阵;

在按照训练数据的哈希值矩阵b的更新公式确定训练数据的哈希值矩阵b的取值后,得到训练数据的降维矩阵的更新公式:a=u*vt,其中,u和vt表示bt*z*p的奇异值分解,bt表示b的转置,z表示对训练数据执行卷积操作得到的特征向量,p表示第一降维矩阵;

在训练数据的降维矩阵a的取值和训练数据的哈希值矩阵b的取值未收敛的情况下,继续对训练数据的降维矩阵a的取值和训练数据的哈希值矩阵b的取值进行更新;

在训练数据的降维矩阵a的取值和训练数据的哈希值矩阵b的取值收敛的情况下,将收敛后的训练数据的降维矩阵a的取值作为第二降维矩阵。

采用本发明实施例,获取目标数据,目标数据为在检索过程中使用的数据;通过目标卷积神经网络对目标数据执行的卷积操作,来获取目标数据的第一特征向量,第一特征向量包括在多个特征维度上的特征值;根据第一特征向量在多个特征维度上的特征值确定第二特征向量,第二特征向量中包括第一特征向量中特征值大于目标阈值的特征维度;对第二特征向量进行降维处理得到目标数据的目标哈希值,在第一次降维时仅仅删除所有零特征值对应的空间维度,所有特征值不为零的特征维度都被保存,最大限度的保留原始数据的数据特征,可以解决相关技术中的哈希值不能准确描述原始数据的数据特征的技术问题,进而达到得到的哈希值能准确描述原始数据的数据特征的技术效果。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

本领域普通技术人员可以理解,图10所示的结构仅为示意,终端可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图10其并不对上述电子装置的结构造成限定。例如,终端还可包括比图10中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图10所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行哈希值的确定方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

获取目标数据,其中,目标数据为在检索过程中使用的数据;

通过目标卷积神经网络对目标数据执行的卷积操作,来获取目标数据的第一特征向量,其中,第一特征向量包括在多个特征维度上的特征值;

根据第一特征向量在多个特征维度上的特征值确定第二特征向量,其中,第二特征向量中包括第一特征向量中特征值大于目标阈值的特征维度;

对第二特征向量进行降维处理得到目标数据的目标哈希值。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:

获取第一特征向量的方差矩阵,其中,方差矩阵为第一特征向量与第一特征向量的转置之间的乘积;

按照目标结构对方差矩阵进行分解,其中,目标结构为第一矩阵、第二矩阵以及第三矩阵之间的乘积,第一矩阵包括第一元素和第二元素,第一元素用于表示非零特征值对应的特征向量组成的矩阵,第二元素表示由特征值为零的特征向量组成的矩阵,第二矩阵包括第三元素和第四元素,第三元素用于表示非零特征值组成的对角矩阵,第四元素为固定参数,第三矩阵包括第一元素的转置和第二元素的转置;

将第一元素表示的矩阵作为第一降维矩阵。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:

获取为训练数据的降维矩阵配置的取值后,得到训练数据的哈希值矩阵b的更新公式:bij=sgn(vij),bij表示b的第i行第j列的取值,vij表示矩阵v的第i行第j列的取值,v为对训练数据执行卷积操作得到的特征向量v、第一降维矩阵p以及训练数据的降维矩阵a之间相乘后得到的矩阵;

在按照训练数据的哈希值矩阵b的更新公式确定训练数据的哈希值矩阵b的取值后,得到训练数据的降维矩阵的更新公式:a=u*vt,其中,u和vt表示bt*z*p的奇异值分解,bt表示b的转置,z表示对训练数据执行卷积操作得到的特征向量,p表示第一降维矩阵;

在训练数据的降维矩阵a的取值和训练数据的哈希值矩阵b的取值未收敛的情况下,继续对训练数据的降维矩阵a的取值和训练数据的哈希值矩阵b的取值进行更新;

在训练数据的降维矩阵a的取值和训练数据的哈希值矩阵b的取值收敛的情况下,将收敛后的训练数据的降维矩阵a的取值作为第二降维矩阵。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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