一种图像存储和检索的方法、客户端及系统与流程

文档序号:17722710发布日期:2019-05-22 02:17阅读:216来源:国知局
一种图像存储和检索的方法、客户端及系统与流程

本发明涉及图像检索领域,具体涉及一种图像存储和检索的方法、客户端及系统。



背景技术:

随着云计算和云存储的发展,越来越多的图像被存储到云端以克服本地数据存储容量不够的问题。但是,大量存储的图像导致用户在查找时带来了不便,。另外,有些图片包含了用户的隐私信息,比如医疗图像、包含用户位置信息的图像等,一旦这些图像被恶意泄露将会给用户带来严重的负面影响。因此,这些图像数据的安全性也有待提高。



技术实现要素:

本发明提出了一种图像存储和检索的方法、客户端及系统,在保证安全(图像和特征向量的双重隐私性)的同时,还保证了图像检索的精度以及速度。本发明具体是以如下技术方案实现的:

第一方面,本发明提供了一种图像存储的方法,包括:

提取待存储图像的第一特征向量;

利用局部敏感哈希簇将所述第一特征向量生成相应的二进制码;

将所述二进制码转化成十进制数值,按照所述十进制数值的递增或递减的顺序对所述二进制码进行排序;

利用贪婪划分算法将排序后的二进制码对应的图像和第一特征向量划分成多个子集;

将所述待存储图像和第一特征向量的子集分别加密后上传并存储至服务器。

第二方面,本发明提供了一种图像检索的方法,包括:

获取目标图像的安全参数,所述安全参数包括局部敏感哈希簇、索引和密钥;

提取参考图像的特征向量;

利用局部敏感哈希簇将所述特征向量生成相应的二进制码;

在所述索引中查找与所述二进制码匹配的索引项;

当查找到匹配的索引项时,将所述索引项对应的标签加入陷门,将陷门发送给服务器;

接收服务器返回的所述陷门中包含的标签对应的加密子集;

所述索引由图像存储方通过下述方式获得:

提取待存储图像的第一特征向量;

利用局部敏感哈希簇将所述第一特征向量生成相应的二进制码;

将所述二进制码转化成十进制数值,按照所述十进制数值的递增或递减的顺序对所述二进制码进行排序;

利用贪婪划分算法将排序后的二进制码对应的图像和特征向量划分成多个子集,为每个子集建立相应的索引,所述索引包括子集标签、子集的上界和下界。

进一步的,在所述接收服务器返回的所述陷门中包含的标签对应的加密子集之后,所述方法还包括:

利用所述密钥对所述加密子集进行解密;

通过计算特征向量间的欧式距离对所述解密后的图像和参考图像进行相似性计算,根据计算结果进行排序。

第三方面,本发明提供了一种客户端,包括:

提取模块,用于提取待存储图像的第一特征向量;

处理模块,用于利用局部敏感哈希簇将所述第一特征向量生成相应的二进制码;

排序模块,用于将所述二进制码转化成十进制数值,按照所述十进制数值的递增或递减的顺序对所述二进制码进行排序;

划分子集模块,用于利用贪婪划分算法将排序后的二进制码对应的图像和第一特征向量划分成多个子集;

存储模块,用于将所述待存储图像和第一特征向量的子集分别加密后上传并存储至服务器。

第四方面,本发明提供了一种客户端,包括:

获取模块,用于获取目标图像的安全参数,所述安全参数包括局部敏感哈希簇、索引和密钥;

提取模块,用于提取参考图像的第二特征向量;

处理模块,用于利用局部敏感哈希簇将所述第二特征向量生成相应的二进制码;

查找模块,用于在所述索引中查找与所述二进制码匹配的索引项;

发送模块,用于当查找到匹配的索引项时,将所述索引项对应的标签加入陷门,将陷门发送给服务器;

第二获取模块,用于接收服务器返回的所述陷门中包含的标签对应的加密子集;

所述索引由图像存储方通过下述方式获得:

提取待存储图像的第一特征向量;

利用局部敏感哈希簇将所述第一特征向量生成相应的二进制码;

将所述二进制码转化成十进制数值,按照所述十进制数值的递增或递减的顺序对所述二进制码进行排序;

利用贪婪划分算法将排序后的二进制码对应的图像和特征向量划分成多个子集,为每个子集建立相应的索引,所述索引包括子集标签、子集的上界和下界。

进一步的,所述客户端还包括:

解密模块,用于利用所述密钥对所述加密子集进行解密;

排序模块,用于通过计算特征向量间的欧式距离对所述解密后的图像与参考图像进行相似性计算,根据计算结果进行排序。

第五方面,本发明提供了一种用于图像存储和检索的系统,其特征在于,所述系统包括如所述第三方面所述的客户端、所述第四方面所述的客户端以及存储图像的服务器。

本发明提供了一种图像存储和检索的方法、客户端及系统,具有如下技术效果:

本发明将图像和图像的特征向量分成多个子集后,对子集进行加密后存储,在检索图像时根据索引进行检索,能够在保证图像和图像特征的安全性的同时,快速准确的检索到海量图像数据库中的图片,有效改善了用户体验。

附图说明

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

图1是本发明实施例提供的一种系统的示意图;

图2是本发明实施例提供的一种图像存储的方法的流程示意图;

图3是本发明实施例提供的一种图像的特征提取过程的示意图;

图4是本发明实施例提供的一种图像检索的方法的流程示意图;

图5是本发明实施例提供的一种系统框架示意图;

图6是本发明实施例提供的一种客户端的结构示意图;

图7是本发明实施例提供的一种客户端的结构示意图。

具体实施方式

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

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

请参阅图1,图1是本发明实施例提供的一种系统的示意图,如图1所示,该系统可以至少包括第一客户端01、第二客户端02和服务器03。

具体的,所述第一客户端01可以包括、智能手机、平板电脑、笔记本电脑、数字助理、智能可穿戴设备、车载终端等类型的实体设备,也可以包括运行于实体设备中的软件,例如应用程序等。

具体的,所述第二客户端02可以包括、智能手机、平板电脑、笔记本电脑、数字助理、智能可穿戴设备、车载终端等类型的实体设备,也可以包括运行于实体设备中的软件,例如应用程序等。

具体的,所述服务器03可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群。服务器03可以包括有网络通信单元、处理器和存储器等等。具体的,所述控制服务器03可以为上述第一客户端01和第二客户端02提供后台服务。

以下介绍本发明基于上述系统的图像存储和检索的方法,图像特征是进行图像检索的基本要素,但近年来一些研究的表明,sift,hog和bow等特征都可进行反推恢复原始图像的一些信息。由于深度学习的发展,卷积神经网络特征比这些手工特征具有更好的效果,其已被广泛地用在图像分类、目标检测和图像检索领域。但是该特征包含图像的语义信息,同时也被研究进行恢复原始图像信息。所以,图像特征也面临着隐私泄露的危险。因此,本发明实施例提供的方法考虑对图像和图像的特征进行双重保护。

图2是本发明实施例提供的一种图像存储和检索的方法的流程示意图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,所述方法用于图像数据拥有方或者图像数据提供方,具体执行主体可以是第三方服务提供方的客户端,所述方法可以包括:

s201:提取待存储图像的第一特征向量。

利用卷积神经网络(cnn)对数据库中的所有图像提取最后一层的高维特征v,如附图3所示。

s203:利用局部敏感哈希簇将所述特征向量生成相应的二进制码。

具体的,利用gm函数(一种复合局部敏感哈希簇)生成二进制码的过程如下:通过m个lsh(局部敏感哈希)函数将数据库中的每个特征v映射为m个二进制的哈希码h。然后利用该m个哈希码生成一个线序的二进制码c。具体为:设i为1,哈希码h从左至右编码从1依次增大。然后重复λ次。每次依次将该m个哈希码的第i位添加到c中,然后将i加一。

s205:将所述二进制码转化成十进制数值,按照所述十进制数值的递增或递减的顺序对所述二进制码进行排序。

具体的,在得到所有特征v对应二进制码c后,进行贪婪划分,将数据划分成nop块,每块的大小相等。为了进行划分,这里统计二进制码相同个数中最多的个数作为块的大小,设为w。然后将数据库d中的图像以及图像特征v按照其对应的二进制码c进行排序。

s207:利用贪婪划分算法将排序后的二进制码对应的图像和第一特征向量划分成多个子集。

具体的,划分(子块表示为subd,其有个标签t)并生成索引i(索引包含上界和下界值以及一个标签t)步骤如下。设i为索引的编号,其值从1开始。设j为排序后数据的编号,从1开始。用n表示数据的总数量。然后重复以下步骤直至j大于n时:将编号从j开始的连续w个数据(图像和特征)加入第i个子块subd。然后将索引i的第i个的上界u设置为第j个图像对应的二值码,而下界l设置为第j+w-1个图像对应的二值码,然后利用prg(伪随机生成算法)为标签t生成一个值,且将第i个子块的标签值设为该值。然后判断是否与第j+w-1个图像的二进制码c相同的图像是否都包括在第i个子块subd中。如果不是,则将j的值置为与该二值码相同的图像中编号最小那个。否则,将j的值设置为j+w。然后将i加一,继续。

s209:将所述待存储图像和第一特征向量的子集分别加密后上传并存储至服务器。

具体的,在分块和构建完索引后,数据拥有者可以利用密钥管理体系产生密钥k,并通过aes加密算法对分块的数据进行加密,然后把加密数据上传至云端服务器。

本说明书的方法通过对图像提取的卷积神经特征进行加密保护,避免了云拥有者对特征数据进行一些非授权的操作(数据挖掘,聚类和分析等)以及攻击者利用特征恢复原始图像信息,从而保证了用户信息的隐私性。

图4是本发明实施例提供的一种图像存储和检索的方法的流程示意图,所述方法用于图像数据检索方,具体执行主体可以是需要进行图像检索的用户所使用的客户端,所述方法可以包括:

s401:获取目标图像的安全参数,所述安全参数包括局部敏感哈希簇、索引和密钥。

具体的,所述索引由图像存储方通过下述方式获得:获取待存储图像的第一特征向量;利用局部敏感哈希簇将所述第一特征向量生成相应的二进制码;将所述二进制码转化成十进制数值,按照所述十进制数值的递增或递减的顺序对所述二进制码进行排序;利用贪婪划分算法将排序后的二进制码对应的图像和特征向量划分成多个子集,为每个子集建立相应的索引,所述索引包括子集标签、子集的上界和下界。

客户端首先从数据拥有者处获得安全参数sp,包括局部敏感哈希簇,索引表i和密钥k。

s403:提取参考图像的第二特征向量。

客户端将要查询的图像通过cnn(卷积神经网络)提取得到特征向量。

其中,所述参考图像是在进行目标图像检索时使用的图像。例如一些以图搜图的场景,比如医疗领域,患者或医护人员可以通过患者拍的ct图片查找ct图片数据库中与该ct图片类似的图片,以参考类似图片的病历的治疗方案,比如商标领域,用户可以根据自己欲申请的商标图片在商标图片库中查找是否有其他相似的商标,以防止侵犯别人的商标或者通过修改自己欲申请的商标以增加商标授权几率。

s405:利用局部敏感哈希簇将所述第二特征向量生成相应的二进制码。

具体的,通过步骤s203中的灰色模型函数生成对应的二值编码c。

s407:在所述索引中查找与所述二进制码匹配的索引项。

在索引i进行查询,与索引中的每组上下界值进行比较,找出该二值码所落入的位置。

s409:当查找到匹配的索引项时,将所述索引项对应的标签加入陷门,将陷门发送给服务器。

s411:接收服务器返回的所述陷门中包含的标签对应的加密子集。

云服务器将陷门t所包含标签对应的加密块esubd返回给客户端。

s413:利用所述密钥对所述加密子集进行解密。

客户端将收到的加密数据子块通过密钥k进行解密后得到包含原始图像以及特征的候选集。

s415:通过欧式距离对所述解密后的图像和特征向量进行相似性计算,根据计算结果进行排序。

在本说明书的一些实施例中,通过欧式距离将参考图像的特征与候选集中图像特征进行相似性计算并排序,并返回前k个结果给用户。

本说明书的实施例,由于采用近似最近邻的思想对图像进行了分块,从而大大降低了进行相似性计算的代价。

图5是本发明方法的一个系统框架示意图。从图中可以看出,数据拥有者对图像数据提取特征和处理,并将划分加密的数据外包给云服务器。用户通过一个查询陷门t对服务器进行单次访问。云服务器将数据返回给用户,用户对加密的划分块进行处理。

本发明实施例还提供了一种客户端,如图6所示,所述客户端包括:

提取模块601,用于提取待存储图像的第一特征向量;

处理模块603,用于利用局部敏感哈希簇将所述第一特征向量生成相应的二进制码;

排序模块605,用于将所述二进制码转化成十进制数值,按照所述十进制数值的递增或递减的顺序对所述二进制码进行排序;

划分子集模块607,用于利用贪婪划分算法将排序后的二进制码对应的图像和第一特征向量划分成多个子集;

存储模块609,用于将所述待存储图像和第一特征向量的子集分别加密后上传并存储至服务器。

本发明实施例还提供了一种客户端,如图7所示,所述客户端包括:

提取模块701,用于获取目标图像的安全参数,所述安全参数包括局部敏感哈希簇、索引和密钥;

获取模块703,用于提取参考图像的第二特征向量;

处理模块705,用于利用局部敏感哈希簇将所述第二特征向量生成相应的二进制码;

查找模块707,用于在所述索引中查找与所述二进制码匹配的索引项;

发送模块709,用于当查找到匹配的索引项时,将所述索引项对应的标签加入陷门,将陷门发送给服务器;

接收模块711,用于接收服务器返回的所述陷门中包含的标签对应的加密子集;

所述索引由图像存储方通过下述方式获得:

提取待存储图像的第一特征向量;

利用局部敏感哈希簇将所述第一特征向量生成相应的二进制码;

将所述二进制码转化成十进制数值,按照所述十进制数值的递增或递减的顺序对所述二进制码进行排序;

利用贪婪划分算法将排序后的二进制码对应的图像和特征向量划分成多个子集,为每个子集建立相应的索引,所述索引包括子集标签、子集的上界和下界。

在一些实施例中,所述客户端还包括:

解密模块713,用于利用所述密钥对所述加密子集进行解密;

排序模块715,用于通过欧式距离对所述解密后的图像和特征向量进行相似性计算,根据计算结果进行排序。

本发明实施例还提供了用于图像存储和检索的系统,其特征在于,所述系统包括如上述图6所述的客户端、图7所述的客户端以及存储图像的服务器。

由上述本发明提供的图像存储和检索的方法、客户端及系统的实施例可见,本发明适用于对海量图像的存储和检索过程,通过获取待存储图像的第一特征向量;利用局部敏感哈希簇将所述第一特征向量生成相应的二进制码;将所述二进制码转化成十进制数值,按照所述十进制数值的递增或递减的顺序对所述二进制码进行排序;利用贪婪划分算法将排序后的二进制码对应的图像和第一特征向量划分成多个子集;将所述待存储图像和第一特征向量的子集分别加密后上传至服务器,在保证安全性的同时,快速准确的检索到海量图像数据库中的图片,有效改善了用户体验。

需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、系统和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

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

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