一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

图像检索方法、装置、设备及计算机可读存储介质与流程

2022-06-29 05:49:46 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种图像检索方法、装置、设备、计算机可读存储介质及计算机程序产品。


背景技术:

2.随着深度学习技术的飞速发展,基于深度学习技术的图像检索技术得到了广泛应用。然而,相关技术中,基于深度哈希特征的图像检索方法,由于对图像特征进行了量化压缩,导致图像检索效率低、图像检索不准确。


技术实现要素:

3.本技术实施例提供一种图像检索方法、装置、设备、计算机可读存储介质及计算机程序产品,能够提高图像检索的效率和准确性。
4.本技术实施例的技术方案是这样实现的:本技术实施例提供一种图像检索方法,包括:响应于针对待检索图像的图像检索请求,获取所述待检索图像的哈希特征;基于哈希特征,从至少两个聚类簇中确定所述待检索图像的哈希特征对应的目标聚类簇;其中,所述至少两个聚类簇,通过对图像库中的多个图像进行聚类得到;获取所述目标聚类簇中各图像的排序信息,并基于所述排序信息对所述目标聚类簇中的图像进行排序,得到图像序列;其中,所述排序信息包括以下至少之一:所述图像和所述待检索图像的图像相似度信息、所述图像归属的类别信息;基于所述图像序列,确定针对所述待检索图像的图像检索结果。
5.本技术实施例提供一种图像检索装置,包括:获取模块,用于响应于针对待检索图像的图像检索请求,获取所述待检索图像的哈希特征;选择模块,用于基于哈希特征,从至少两个聚类簇中确定所述待检索图像的哈希特征对应的目标聚类簇;其中,所述至少两个聚类簇,通过对图像库中的多个图像进行聚类得到;排序模块,用于获取所述目标聚类簇中各图像的排序信息,并基于所述排序信息对所述目标聚类簇中的图像进行排序,得到图像序列;其中,所述排序信息包括以下至少之一:所述图像和所述待检索图像的图像相似度信息、所述图像归属的类别信息;确定模块,用于基于所述图像序列,确定针对所述待检索图像的图像检索结果。
6.上述方案中,每个所述聚类簇对应一个参考哈希特征,所述选择模块,还用于分别确定所述待检索图像的哈希特征与各所述聚类簇对应的参考哈希特征之间的汉明距离;获与所述哈希特征的汉明距离最小的参考哈希特征所对应的簇中心,作为目标簇
中心;从至少两个聚类簇中确定所述目标簇中心对应的聚类簇,作为所述待检索图像的哈希特征对应的目标聚类簇。
7.上述方案中,所述排序模块,还用于获取所述目标聚类簇中的各图像的哈希特征;确定所述待检索图像的哈希特征与各所述图像的哈希特征之间的欧式距离;基于所述欧式距离,从所述目标聚类簇包括的各图像中选取目标数量的图像,得到候选图像序列;相应的,上述方案中,所述确定模块,还用于基于所述候选图像序列,确定针对所述待检索图像的图像检索结果。
8.上述方案中,所述排序信息包括所述图像和所述待检索图像的图像相似度信息,所述排序模块,还用于获取所述目标聚类簇中的各图像的浮点特征,所述浮点特征为,采用浮点数据表示的图像特征;根据所述待检索图像的浮点特征与各所述图像的浮点特征的欧式距离,确定所述图像和所述待检索图像的图像相似度信息;相应的,所述排序模块,还用于基于所述图像和所述待检索图像的图像相似度信息,对所述目标聚类簇中的图像进行排序,得到图像序列。
9.上述方案中,所述排序信息包括所述图像归属的类别信息,所述排序模块,还用于获取所述目标聚类簇中的图像对应的浮点特征,并基于所述浮点特征,确定所述图像归属的类别信息,所述浮点特征为,采用浮点数据表示的图像特征,所述图像归属的类别信息用于指示所述图像归属各图像类别的概率;相应的,所述排序模块,还用于基于所述图像归属的类别信息,对所述目标聚类簇中的图像进行排序,得到图像序列。
10.上述方案中,所述排序模块,还用于对所述待检索图像进行图像分类,得到所述待检索图像的目标图像类别;基于所述目标图像类别及所述图像归属的类别信息,确定所述目标聚类簇中图像的类别优先级;基于所述图像归属的类别信息、以及所述目标聚类簇中图像的类别优先级,对所述目标聚类簇中的图像进行排序,得到图像序列。
11.上述方案中,所述排序信息包括所述图像和所述待检索图像的图像相似度信息、以及所述图像归属的类别信息,所述排序模块,还用于基于所述图像和所述待检索图像的图像相似度信息,对所述目标聚类簇中的图像进行排序,得到基础图像序列;基于所述图像归属的类别信息,对所述基础图像序列中的各图像的排序进行调整,得到图像序列。
12.上述方案中,所述图像检索方法基于图像检索模型实现,所述图像检索模型包括特征提取层、哈希索引层、图像排序层及信息输出层;相应的,上述方案中,所述获取模块,还用于通过所述特征提取层,获取所述待检索图像的哈希特征;上述方案中,所述选择模块,还用于通过所述哈希索引层,基于所述哈希特征,从至少两个聚类簇中确定所述待检索图像的哈希特征对应的目标聚类簇,所述至少两个聚类
簇,通过对图像库中的多个图像进行聚类得到;上述方案中,所述排序模块,还用于通过所述图像排序层,获取所述目标聚类簇中的各图像的排序信息,并通过所述图像排序层,基于所述排序信息对所述目标聚类簇中的各图像进行排序,得到图像序列,所述排序信息包括以下至少之一:所述图像和所述待检索图像的图像相似度信息、所述图像归属的类别信息;上述方案中,所述确定模块,还用于通过所述信息输出层,基于所述图像序列,确定针对所述待检索图像的图像检索结果。
13.上述方案中,所述图像检索模型的特征提取层包括特征提取子层和哈希量化子层,所述获取模块,还用于通过所述特征提取子层,对所述待检索图像进行特征提取,得到所述待检索图像的浮点特征,所述浮点特征为,采用浮点数据表示的图像特征;通过所述哈希量化子层,对所述浮点特征进行量化处理,得到所述待检索图像的哈希特征。
14.上述方案中,所述图像检索模型的图像排序层包括第一分类层、第二分类层、类别对比层及结果排序层,所述排序信息包括所述图像归属的类别信息,所述排序模块,还用于通过所述第一分类层,获取所述目标聚类簇中各图像归属的类别信息;通过所述第二分类层,对所述待检索图像的基础图像特征进行类别预测,得到所述待检索图像对应的目标图像类别;通过所述类别对比层,基于所述目标图像类别及所述图像归属的类别信息,确定所述目标聚类簇中的图像的类别优先级;通过所述结果排序层,基于所述类别优先级以及所述图像归属的类别信息,对所述目标聚类簇中的图像进行排序,得到图像序列。
15.上述方案中,所述图像检索装置还包括训练模块,所述训练模块,用于获取待处理三元组样本以及待训练的所述图像检索模型,所述三元组样本包括锚点样本、正样本及负样本,所述锚点样本与所述正样本为重复图像,所述锚点样本与所述负样本为不重复图像;通过所述图像检索模型的特征提取层,分别对所述待处理三元组样本进行特征提取,得到所述待处理三元组样本的哈希特征;通过所述图像检索模型的哈希索引层,基于所述待处理三元组样本的哈希特征,从至少两个聚类簇中确定所述待处理三元组样本的哈希特征对应的目标聚类簇,所述至少两个聚类簇,通过对图像库中的多个图像进行聚类得到;通过所述图像检索模型的图像排序层,获取所述目标聚类簇中各图像的排序信息,并基于所述排序信息对所述目标聚类簇中的图像进行排序,得到预测图像序列,所述排序信息包括以下至少之一:所述图像和所述待处理三元组样本的相似度信息、所述图像归属的类别信息;通过所述图像检索模型的信息输出层,基于所述预测图像序列,确定针对所述待处理三元组样本的图像检索结果;获取与所述待处理三元组样本的哈希特征对应的量化损失,并基于所述待处理三元组样本与所述预测图像序列中各图像之间的差异,确定所述待处理三元组样本的分类损失;基于所述量化损失以及所述分类损失,更新所述图像检索模型的模型参数。
16.上述方案中,所述确定模块,还用于从所述图像序列中的第一张图像开始,依次进行图像选取,直至选取目标数量的所述图像,作为针对所述待检索图像的图像检索结果。
17.本技术实施例提供一种电子设备,包括:存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现本技术实施例提供的图像检索方法。
18.本技术实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本技术实施例提供的图像检索方法。
19.本技术实施例提供一种计算机程序产品,包括计算机程序或指令,用于引起处理器执行时,实现本技术实施例提供的图像检索方法。
20.本技术实施例具有以下有益效果:应用本技术实施例,基于针对待检索图像的图像检索请求,实现图像检索的过程中,首先根据待检索图像的哈希特征确定待检索图像所属的目标聚类簇,如此,能够有效减少图像检索过程中的检索范围,提高图像检索效率;其次,基于目标聚类簇中各图像与待检索图像的相似度信息、图像归属的类别信息中至少之一对目标聚类簇中的图像进行排序,得到图像序列,如此,能够有效减少针对目标聚类簇的检索次数,提高图像检索效率;最后基于图像序列,获取图像检索结果,如此,能够提高图像检索的准确性。
附图说明
21.图1是本技术实施例提供的图像检索系统的架构示意图;图2是本技术实施例提供的实施图像检索方法的电子设备的结构示意图;图3是本技术实施例提供的图像检索方法的流程示意图;图4是本技术实施例提供的目标聚类簇的获取方法流程图;图5是本技术实施例提供的排序信息获取方式示意图;图6是本技术实施例提供的图像归属的类别信息获取方式示意图;图7是本技术实施例提供的基于类别优先级确定图像序列的示意图;图8是本技术实施例提供的图像序列获取方式示意图;图9是本技术实施例提供的候选图像示意图;图10是本技术实施例提供的基于图像检索模型的图像检索方法示意图;图11是本技术实施例提供的特征提取层设置示意表;图12是本技术实施例提供的图像检索模型的训练方法示意图;图13a是相关技术中提供的图像检索方法;图13b是相关技术中提供的另一图像检索方法;图14a是本技术实施例提供的针对图像的效果评估方式示意图;图14b是本技术实施例提供的针对图像的效果评估方式另一示意图;图15是本技术实施例提供的图像检索模型的训练方法图;图16是本技术实施例提供的三元组样本示意图。
具体实施方式
22.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
23.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
24.如果申请文件中出现“第一/第二”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
25.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
26.对本技术实施例进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
27.1)图像识别:类别级别的识别,不考虑对象的特定实例,仅考虑对象的类别(如人、狗、猫、鸟等)进行的识别并给出对象所属类别。一个典型的例子是大型通用物体识别开源数据集imagenet中的识别任务,识别出某个物体是1000个类别中的哪一个。
28.2)二值量化:对于多维特征向量表示,向量归一化后取值范围一般为-1~1浮点数,把特征压缩到指定位数(如48位)取值为0、1的二进制码(称48比特压缩),为向量二值量化,二值编码。
29.3)二值量化索引:把多维特征向量通过某个计算过程(模型)得到有限比特位的二值向量,检索时以二值向量作为索引召回图像4)imagenet预训练模型:基于imagenet训练一个深度学习网络模型,得到该模型的参数权重即为imagenet预训练模型。
30.5)汉明距离:用于衡量二进制特征间的距离,通过统计数值不同的特征位数量作为距离实现,如(1000)与(0011)的距离为3。
31.6)图像排重:一种从图像库存中查找是否存在与待检索图像极度相似的图像。一般极度相似图像常来自于同一张图,经过图像变换、色彩亮度调整、裁剪、加水印等手段产生多张重复图像,在原创保护、影视剧侵权识别等场景,图像排重可以识别用户上传的图像是否对保护目标侵权,是一种重要的创作保护方式。
32.7)三元组样本:一种深度学习训练样本组成单元,包含锚点样本、正样本、负样本,其中锚点样本与正样本为重复图像(极度相似图、需要检索中检出),锚点样本与负样本为不重复图像(不需要检索中检出)。
33.8)图像排重检索:识别两个图像是否出自同一张图像的一种检索能力,或对待检索图像,查询出其与库存中的哪些图像满足相同或极度相似图像特点,该能力主要用于识别是否图像侵权,一般可以通过图像增强手段进行图像的侵权攻击产生攻击图。图像排重检索中需要识别出此类图像。
34.基于上述对本技术实施例中涉及的名词和术语的解释,下面说明本技术实施例提供的图像检索系统。参见图1,图1是本技术实施例提供的图像检索系统的架构示意图,为实现支撑一个图像检索应用,在图像检索系统100中,终端(示例性示出了终端400-1和终端400-2)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。其中,服务器200可以归属于目标服务器集群,目标服务器集群包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。服务器集群可以用于为支持三维虚拟环境的应用程序提供后台服务。本技术实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。
35.终端,用于部署有能够实现图像检索的客户端(示例性示出了图像检索客户端410-1及图像检索客户端410-2),并向服务器发送针对待检索图像的图像检索请求,接收服务器返回的针对待检索图像的图像检索结果并显示。
36.服务器200,用于响应于针对待检索图像的图像检索请求,获取待检索图像的哈希特征;基于待检索图像的哈希特征,从至少两个聚类簇中确定待检索图像的哈希特征对应的目标聚类簇;至少两个聚类簇,通过对图像库中的多个图像进行聚类得到;获取目标聚类簇中各图像的排序信息,并基于排序信息对目标聚类簇中的图像进行排序,得到图像序列;排序信息包括以下至少之一:图像和待检索图像的图像相似度信息、图像归属的类别信息;基于图像序列,确定针对待检索图像的图像检索结果,并将图像检索结果返回至终端。
37.在实际应用中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(cdn,content delivery network)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端(如终端400-1和终端400-2)可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能电视、智能手表、智能语音交互设备、智能家电、车载终端等,但并不局限于此。终端(如终端400-1和终端400-2)以及服务器200可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。
38.本技术实施例还可以借助于云技术(cloud technology)实现,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
39.云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、以及应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源。
40.参见图2,图2是本技术实施例提供的实施图像检索方法的电子设备的结构示意图,在实际应用中,电子设备500可以实施为图1中的服务器或终端,对实施本技术实施例的图像检索方法的电子设备进行说明。图2所示的电子设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线系统540耦合在一起。可以理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统540。
41.处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数
字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
42.用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
43.存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
44.存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,read only memory),易失性存储器可以是随机存取存储器(ram,random access memory)。本技术实施例描述的存储器550旨在包括任意适合类型的存储器。
45.在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
46.操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universal serial bus)等;呈现模块553,用于经由一个或多个与用户接口530相关联的输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
47.在一些实施例中,本技术实施例提供的图像检索装置可以采用软件方式实现,图2示出了本技术实施例提供的电子设备为提供图像检索的服务器的结构示意图,存储在存储器550中的图像检索装置555,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块5551、选择模块5552、排序模块5553以及确定模块5554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
48.在另一些实施例中,本技术实施例提供的图像检索装置可以采用硬件方式实现,作为示例,本技术实施例提供的图像检索装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本技术实施例提供的图像检索方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(asic,application specific integrated circuit)、dsp、可编程逻辑器件(pld,programmable logic device)、复杂可编程逻辑器件(cpld,complex programmable logic device)、现场可编程门阵列(fpga,field-programmable gate array)或其他电子元件。
49.基于上述对本技术实施例提供的图像检索系统及电子设备的说明,下面说明本申
请实施例提供的图像检索方法。在一些实施例中,本技术实施例提供的图像检索方法可由服务器或终端单独实施,或由服务器及终端协同实施。在一些实施例中,终端或服务器可以通过运行计算机程序来实现本技术实施例提供的图像检索方法。举例来说,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(native)应用程序(app,application),即需要在操作系统中安装才能运行的程序,如支持虚拟场景的客户端,如游戏app;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意app中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
50.下面以服务器实施为例说明本技术实施例提供的图像检索方法。参见图3,图3是本技术实施例提供的图像检索方法的流程示意图,将结合图3示出的步骤进行说明。
51.在步骤101中,服务器响应于针对待检索图像的图像检索请求,获取待检索图像的哈希特征。
52.在实际实施时,服务器接收到针对待检索图像的图像检索请求时,可以获取待检索图像的哈希特征,其中,哈希特征是将待检索图像的浮点特征(即采用浮点数据表示的图像特征)进行二值量化处理得到的,哈希特征取值为0或1,如此,便于电子设备进行识别和计算。采用哈希特征进行图像表征时,其特征存储量低、检索效率高且识别准确率高。
53.在步骤102中,基于哈希特征,从至少两个聚类簇中确定待检索图像的哈希特征对应的目标聚类簇。
54.其中,至少两个聚类簇,通过对图像库中的多个图像进行聚类得到的。
55.在实际实施时,对待检索图像进行图像检索可以看作是从图像库中查找是否存在与待检索图像极度相似的图像的过程。其中,服务器可以基于图像库中的各图像的哈希特征,对图像库中的各图像进行聚类处理,得到至少两个聚类簇,每个聚类簇对应一个簇中心(聚类中心),并建立簇中心与各哈希特征之间的映射关系,通过该映射关系,服务器可以基于图像的哈希特征查找到对应的簇中心,并依据簇中心确定待检索图像所归属的聚类簇。
56.示例性地,服务器接收到针对待检索图像p的图像检索请求后,获取待检索图像p的哈希特征h,(由0和1组成的多维向量,也可以理解成由0或1组成的矩阵),并基于预先存储的(哈希特征-簇中心)映射关系表t,确定待检索图像p的哈希特征h在映射关系表t中最接近的哈希特征,并将最接近的哈希特征对应的簇中心所属的聚类簇作为待检索图像对应的目标聚类簇。
57.对确定最接近的哈希特征进行说明,在一些实施例中,参见图4,图4是本技术实施例提供的目标聚类簇的获取方法流程图,每个聚类簇对应一个参考哈希特征,参考哈希特征可以作为索引,在映射关系表中执行相应的查询操作。服务器可以通过图4示出的步骤确定待检索图像的目标聚类簇。基于图3,步骤102可以由步骤1021至步骤1023实现。
58.步骤1021,服务器分别确定待检索图像的哈希特征与各聚类簇对应的参考哈希特征之间的汉明距离。
59.在实际实施时,服务器计算待检索图像的哈希特征与图像库中各聚类簇对应的参考哈希特征之间的汉明距离,即由于哈希特征是由0和1组成的多维二进制向量,可以使用汉明距离(hamming distance)衡量二进制特征之间的距离,是通过统计数值不同的特征位的数量作为距离,如(1000)与(0011)的距离为3。
60.步骤1022,获取与哈希特征的汉明距离最小的参考哈希特征所对应的簇中心,作为目标簇中心。
61.在实际实施时,服务器选取汉明距离最小的参考哈希特征对应的簇中心,作为待检索图像所对应的目标簇中心。
62.步骤1023,从至少两个聚类簇中确定目标簇中心对应的聚类簇,作为待检索图像的哈希特征对应的目标聚类簇。
63.在实际实施时,服务器以目标簇中心为索引,在图像库被划分成的至少两个聚类簇中,确定待检索图像所属的目标聚类簇。
64.示例性地,图像库中的各图像进行聚类处理后,得到5个聚类簇,聚类簇对应一个簇中心和一个参考哈希特征,服务器确定待检索图像的哈希特征,与上述5个聚类簇的参考哈希特征的汉明距离,并获取5个汉明距离中的最小汉明距离对应的参考哈希特征,并将该参考哈希特征对应的聚类簇作为待检索图像的目标聚类簇。
65.如此,通过上述步骤1021至步骤1023确定待检索图像对应的目标聚类簇的方式,能够有效减少图像检索过程中的检索范围,提高图像检索效率。
66.在步骤103中,获取目标聚类簇中的各图像的排序信息,并基于排序信息对目标聚类簇中的图像进行排序,得到图像序列。
67.其中,排序信息包括以下至少之一:图像和待检索图像的图像相似度信息、图像归属的类别信息。
68.在实际实施时,服务器可以根据目标聚类簇中的各图像的排序信息,对目标聚类簇中的各图像进行排序,得到待检索图像对应的图像序列。排序信息可以包括待检索图像与目标聚类簇中各图像的图像相似度信息、以及待检索图像归属的类别信息。其中,图像相似度信息,可以通过待检索图像的浮点特征与目标聚类簇中图像的浮点特征确定,即服务器获取待检索图像的浮点特征e,以及目标聚类簇中各图像的浮点特征fi,并分别计算浮点特征e与各浮点特征fi的之间的欧式距离li,可以直接将得到的将欧式距离li作为图像相似度信息,也可以对欧式距离li进行其他处理(如加权处理)后得到的数据作为图像相似度信息。另外,图像归属类别信息,可以通过对待检索图像以及图像库中各图像进行图像识别确定的图像所属类别,其中,图像所属的类别可以包括文本类图像和非文本类图像(或称图像类图像),对于文本类图像,图像画面大部分为文字、或者两张图主要差异在文本。这里,对浮点特征进行说明,浮点特征为,采用浮点数据表示的图像特征,图像特征是对图像进行特征提取得到的,即浮点特征的数值为浮点值,与二进制哈希特征相比,浮点特征可以表征的数据范围更大,相比哈希特征(哈希特征是对浮点特征进行了量化压缩),浮点特征的数据更准确,作为图像相似度度量更准确。在实际应用中,通过特征提取得到的图像的浮点特征,以及对浮点特征进行哈希后得到的哈希特征均可看作是图像的表示向量即图像embedding。
69.在一些实施例中,参见图5,图5是本技术实施例提供的排序信息获取方式示意图,当排序信息包括图像和待检索图像的图像相似度信息时,服务器可以通过步骤1031a至1032a得到排序信息,然后通过步骤1033a获取图像序列。
70.步骤1031a,服务器获取目标聚类簇中的各图像的浮点特征。
71.步骤1032a,根据待检索图像的浮点特征与各图像的浮点特征的欧式距离,确定图
像和待检索图像的图像相似度信息。
72.在实际实施时,服务器根据待检索图像的浮点特征(对待检索图像进行平滑、去噪、灰度等预处理,得到的采用浮点数据表示的图像特征),分别确定待检索图像与目标聚类簇中的各图像的欧式距离,作为图像相似度信息。
73.步骤1033a,基于图像和待检索图像的图像相似度信息,对目标聚类簇中的各图像进行排序,得到图像序列。
74.在实际实施时,服务器可以对步骤1032a确定的图像相似度信息按照从小到大的顺序排序,使得目标聚类簇中的各图像按照更相似到更不相似的顺序排序,得到相似程度由高到低的图像序列。
75.通过步骤1031a-1033a基于图像的浮点特征确定的排序信息,是在前述基于图像的哈希特征筛选得到目标聚类簇的前提下,再次基于图像的浮点特征确定的,如此,能够保持浮点特征与哈希特征一致性、有效提高图像检索的效率。
76.在一些实施例中,参见图6,图6是本技术实施例提供的图像归属的类别信息获取方式示意图,当排序信息包括图像归属的类别信息时,服务器可以通过步骤1031b至1032b得到排序信息,然后,通过步骤1033b获取图像序列。
77.步骤1031b,服务器获取目标聚类簇中的各图像的浮点特征。
78.在实际实施时,浮点特征为,采用浮点数据表示的图像特征。
79.步骤1032b,基于浮点特征,确定图像归属的类别信息,图像归属的类别信息用于指示图像归属各图像类别的概率。
80.在实际实施时,服务器分别对待检索图像以及目标聚类簇中的各图像进行图像识别,得到图像归属各图像类别的概率,确定图像归属的类别信息(图像类别)。需要说明的是,为了加快计算,可以预先对图像库中各聚类簇内的图像进行图像识别,得到各图像对应的类别信息。
81.步骤1033b,基于图像归属的类别信息,对目标聚类簇中的图像进行排序,得到图像序列。
82.在实际实施时,服务器可以根据图像归属的类别信息,对目标聚类簇中的各图像进行排序,得到图像序列。
83.示例性地,以待检索图像归属的类别信息为图像类图像(即非文本类图像),则可以将目标聚类簇中属于文本类的图像排到非文本类图像的后面。
84.在一些实施例中,参见图7,图7是本技术实施例提供的基于类别优先级确定图像序列的示意图,基于图7,步骤1033b可以通过步骤201至步骤203实现。
85.步骤201,服务器对待检索图像进行图像分类,得到待检索图像的目标图像类别。
86.步骤202,基于目标图像类别及图像归属的类别信息,确定目标聚类簇中图像的类别优先级。
87.在实际实施时,针对图像的类别优先级的确定至少存在以下情况:若待检索图像是非文本类图像,则目标聚类簇中非文本类图像的优先级高于文本类图像;若待检索图像是文本类图像,则目标聚类簇中文本类图像的优先级高于非文本类图像。
88.步骤203,基于图像归属的类别信息、以及目标聚类簇中图像的类别优先级,对目标聚类簇中的图像进行排序,得到图像序列。
89.在实际实施,若待检索图像归属的类别信息为图像类图像(即非文本类图像),则可以将目标聚类簇中属于文本类的图像排到非文本类图像的后面;若待检索图像归属的类别信息为文本类图像,则可以将目标聚类簇中属于非文本类(图像类)的图像排到文本类图像的后面。
90.在一些实施例中,参见图8,图8是本技术实施例提供的图像序列获取方式示意图,该方法中,排序信息包括图像和待检索图像的图像相似度信息、以及图像归属的类别信息时,服务器可以通过步骤1031c至1032c得到图像序列。
91.步骤1031c,服务器基于图像和待检索图像的图像相似度信息,对目标聚类簇中的图像进行排序,得到基础图像序列。
92.在实际实施时,服务器对待检索图像进行特征提取,得到待检索图像的浮点特征,并对目标聚类簇中各图像进行特征提取,得到各图像对应的浮点特征,进而基于待检索图像的浮点特征与目标聚类簇中各图像的浮点特征,确定各图像和待检索图像的欧式距离,作为待检索图像与各图像的图像相似度信息,并按照欧式距离从小到大的顺序对目标聚类簇中的各图像进行排序得到基础图像序列,即基础图像序列中的图像是从最相似逐渐到越来越不相似。
93.步骤1032c,基于图像归属的类别信息,对基础图像序列中的各图像的排序进行调整,得到图像序列。
94.在实际实施时,服务器基于图像归属的类别信息,对步骤1031c得到的基础图像序列进行重新排序(即二次排序)。待检索图像为非文本类图像时,对于基础图像序列中文本类图像(针对该待检索图像,文本类图像特征表现一般)排到非文本类图像的后面。还可以针对图像的分类进行不同的欧式距离阈值设置,如对于文本类的待检索图像的欧式距离阈值设置为0.3,非文本类的待检索图像的欧式距离阈值设置为0.5,对于文本类的待检索图像,在基于浮点特征排序时,当基础图像序列中的图像与待检索图像的欧式距离高于0.3则认为不相似,直接丢弃;对于非文本类的待检索图像,则采用0.5。
95.在一些实施例中,服务器还可以通过以下方式确定图像序列:服务器基于待检索图像的浮点特征与中间图像序列中各图像的浮点特征的欧式距离,对中间图像序列中各图像进行重新排序,得到图像序列。
96.在一些实施例中,服务器可以先从目标聚类簇中选取目标数量的图像作为候选图像,并基于候选图像,确定图像序列。参见图9,图9是本技术实施例提供的候选图像示意图,结合图9示出的步骤进行说明。
97.步骤301,服务器获取目标聚类簇中各图像的哈希特征。
98.在实际实施时,服务器在确定待检索图像所属的目标聚类簇之后,可以继续获取目标聚类簇中各图像的哈希特征(二进制特征)。
99.步骤302,确定待检索图像的哈希特征与各图像的哈希特征之间的欧式距离。
100.在实际实施时,服务器分别计算待检索图像与目标聚类簇中各图像的欧式距离。
101.步骤303,基于欧式距离,从目标聚类簇包括的各图像中选取目标数量的图像,得到候选图像序列。
102.在实际实施时,服务器按照欧式距离从小到大的顺序对目标聚类簇中的图像进行排序,并取排序后的前k(k≥1且k为整数)个图像作为候选图像。基于这些候选图像执行相
应的图像检索操作,并基于候选图像序列,确定针对待检索图像的图像检索结果。如此,结合哈希特征以及排序信息进行图像检索能够有效减少针对目标聚类簇的检索次数,提高图像检索效率。
103.在步骤104中,基于图像序列,确定针对待检索图像的图像检索结果。
104.在实际实施时,服务器按照图像序列中各图像的顺序,依次输出待检索图像与各图像的图像相似度、以及相应的置信度作为相应的图像检索结果,如此,能够有效提高图像检索的准确性。
105.在一些实施例中,上述图像检索方法可以基于图像检索模型实现,图像检索模型包括特征提取层、哈希索引层、图像排序层及信息输出层,参见图10,图10是本技术实施例提供的基于图像检索模型的图像检索方法示意图,结合图10示出的步骤进行说明。
106.步骤401,服务器通过图像检索模型的特征提取层,获取待检索图像的哈希特征。
107.在实际实施时,针对待检索图像的图像检索方法可以通过图像检索模型实现,图像检索模型可以包括特征提取层、哈希索引层、图像排序层及信息输出层。服务器在接收到针对待检索图像的图像检索请求后,解析图像检索请求,并将待检索图像输入至预先训练完成的图像检索模型的特征提取层,得到待检索图像的哈希特征。特征提取层可以是基于卷积神经网络实现。
108.示例性地,参见图11,图11是本技术实施例提供的特征提取层设置示意表。特征提取层可以采用5层卷积层(图中示出的conv1_x层、conv2_x层、conv3_x层、conv4_x层、conv5_x层)、1层池化层(图中示出的pool层)、1层特征嵌入层(图中示出的embedding层)及1层哈希层(图中示出的hash layer)实现。
109.在一些实施例中,图像检索模型的特征提取层包括特征提取子层和哈希量化子层,服务器还可以通过以下方式获取待检索图像的哈希特征:服务器通过特征提取子层,对待检索图像进行特征提取,得到待检索图像的浮点特征;通过哈希量化子层,对待检索图像的浮点特征进行量化处理,得到待检索图像的哈希特征。
110.在实际实施时,服务器可以先将待检索图像输入特征提取子层,提取待检索图像的浮点特征,然后,继续将浮点特征输入至哈希量化子层,对浮点特征进行量化处理,得到待检索图像的哈希特征。如此,当浮点特征表征待检索图像与目标聚类簇中图像相似时,待检索图像的哈希特征与相应图像的哈希特征也相似,保证了浮点特征与哈希特征的一致性。
111.示例性地,继续参见图11中,5层卷积层、1层池化层、1层特征嵌入层可以构成特征提取子层,基于特征提取子层获取待检索图像的浮点特征,1层哈希层构成哈希量化子层,基于哈希量化子层获取待检索图像的哈希特征。
112.步骤402,通过图像检索模型的哈希索引层,基于哈希特征,从至少两个聚类簇中确定待检索图像的哈希特征对应的目标聚类簇。
113.其中,至少两个聚类簇,通过对图像库中的多个图像进行聚类得到。
114.在实际实施时,哈希索引层可以用于读取预先存储的哈希特征-簇中心的映射关系,并基于该映射关系,确定待检索图像的哈希特征对应的目标聚类簇的功能。
115.步骤403,通过图像检索模型的图像排序层,获取目标聚类簇中各图像的排序信息,并基于排序信息对目标聚类簇中的图像进行排序,得到图像序列。
116.其中,排序信息包括以下至少之一:图像和待检索图像的图像相似度信息、图像归属的类别信息。
117.在实际实施时,图像检索模型的图像排序层,可以用于基于目标聚类簇中各图像的排序信息对目标聚类簇中的图像进行排序,得到图像序列,以使服务器能够基于图像序列,确定待检索图像的图像检索结果,该图像检索结果可以用于展示待检索图像与目标聚类簇中各图像的图像相似度信息以及对应的置信度。
118.在一些实施例中,排序信息包括图像归属的类别信息时,图像检索模型的图像排序层包括第一分类层、第二分类层、类别对比层及结果排序层。服务器通过第一分类层,获取目标聚类簇中各图像归属的类别信息。通过第二分类层,对待检索图像的基础图像特征进行类别预测,得到待检索图像对应的目标图像类别。通过类别对比层,基于目标图像类别及图像归属的类别信息,确定目标聚类簇中的图像的类别优先级。通过结果排序层,基于类别优先级以及图像归属的类别信息,对目标聚类簇中的图像进行排序,得到图像序列。通过图像检索模型的信息输出层,基于图像序列,确定针对待检索图像的图像检索结果。
119.在一些实施例中,参见图12,图12是本技术实施例提供的图像检索模型的训练方法示意图,结合图12示出的步骤对图像检索模型的训练过程进行说明。
120.步骤501,服务器获取待处理三元组样本以及待训练的图像检索模型。
121.在实际实施时,三元组样本包括锚点样本、正样本及负样本,锚点样本与正样本为重复图像,锚点样本与负样本为不重复图像。
122.步骤502,通过特征提取层,分别对待处理三元组样本进行特征提取,得到待处理三元组样本的哈希特征。
123.步骤503,通过哈希索引层,基于待处理三元组样本的哈希特征,从至少两个聚类簇中确定待处理三元组样本的哈希特征对应的目标聚类簇。
124.在实际实施时,至少两个聚类簇是通过对图像库中的多个图像进行聚类得到的。
125.步骤504,通过图像排序层,获取目标聚类簇中各图像的排序信息,并基于排序信息目标聚类簇中的图像进行排序,得到预测图像序列。
126.在实际实施时,排序信息包括以下至少之一:图像和待处理三元组样本的相似度信息、图像归属的类别信息。
127.步骤505,通过信息输出层,基于预测图像序列,确定针对待处理三元组样本的图像检索结果。
128.步骤506,获取与待处理三元组样本的哈希特征对应的量化损失,并基于待处理三元组样本与预测图像序列中各图像之间的差异,确定待处理三元组样本的分类损失。
129.步骤507,基于量化损失以及分类损失,更新待训练图像检索模型的模型参数。
130.在实际实施时,基于量化损失和分类损失确定联合损失,对图像检索模型的模型参数进行更新,对图像检索模型进行训练,直至模型收敛。
131.应用本技术实施例,基于针对待检索图像的图像检索请求,实现图像检索的过程中,首先根据待检索图像的哈希特征确定待检索图像所属的目标聚类簇,如此,能够有效减少图像检索过程中的检索范围,提高图像检索效率;其次,基于目标聚类簇中各图像与待检索图像的相似度信息、图像归属的类别信息中至少之一对目标聚类簇中的图像进行排序,得到图像序列,如此,结合哈希特征以及排序信息进行图像检索能够有效减少针对目标聚
类簇的检索次数,提高图像检索效率;最后基于图像序列,获取图像检索结果,如此,能够提高图像检索的准确性。
132.下面,将说明本技术实施例在一个实际的应用场景中的示例性应用。
133.以在图像排重场景中,对图像进行图像检索的应用为例,基于深度学习的二值化特征的图像检索方法,由于二值化特征的特征存储量低、检索效率高、识别准确率好,已经大规模应用于图像排重场景中。然而,由于哈希特征对浮点特征进行了量化压缩,导致检索不准确,而一般图像检索方法中会在哈希特征召回后额外添加一层基于浮点特征比对的校准层,然而此校准层需要额外提取校准需要的浮点特征,带来特征提取的额外资源损耗;且召回层的图像特征与校准层图像特征的特征不同源造成某些正样本图像召回层召回后、在校准层丢失等情况;同时还存在特征表征能力不足的问题,对于不同的图像类型图像embedding表征能力不同,如对于文本类图像(图像画面大部分为文字、或者两张图主要差异在文字)图像embedding的表征效果差。
134.基于此,本技术实施例提供一种图像检索方法,该方法可以是基于特征统一模型(即前文提到的图像检索模型)实现的。在共享底层网络权重的同时实现哈希特征学习、浮点特征学习、以及图像分类,学习过程中经过两个阶段学习能够避免多任务干扰。其中,在第一阶段中通过网络级联以及学习任务相关约束的设计保持哈希特征、浮点特征二者的一致性学习;在第二阶段中重点学习图像分类能力。训练完成的图像检索模型在实际应用中可以经过一次模型推理即可以提取到三个对检索有意义的特征,并通过哈希层召回(相当于前文提到图像检索模型中的哈希索引层)、校正层排序(相当于前文提到图像检索模型中的图像排序层)、后处理层(相当于前文提到图像检索模型中的信息输出层)借助图像分类设置最终召回的图像置信度,从而形成更准确的图像检索系统。采用该图像检索方法的图像检索系统能够具有以下优点:1)共享底层网络参数,从而应用中仅需要一次图像检索模型的特征提取过程即可获得三种特征;2)不同于常规的图像排重的方案,仅仅召回相似图像,本技术实施例提供的图像检索方法,通过上述图像检索模型的三个模块在对图像进行召回的前提下实现针对图像的召回结果更准确的排序、排序结果的置信度输出等功能,对整体图像检索更具备指导意义;3)设计了保持浮点特征与哈希特征一致性的模型及学习方法,从而提升常规检索系统中前后不同特征的协同召回/过滤效果,提升召回中排序准确率;4)该方法支持更多的应用扩展,如对于图像embedding表现不佳的分类,可通过设计后续模块提升此类图像检索效果等。
135.相关技术中,参见图13a,图13a是相关技术中提供的图像检索方法,如图13a所示,训练一个哈希特征模型,在图像检索过程中,通过哈希特征模型的召回层,召回图像库的库存图像中与待检索图像query中相关图像样本,不做图像排序;如参见图13b,图13b是相关技术中提供的另一图像检索方法,如图13b所示,训练两个模型:处理哈希特征的模型、处理浮点特征的模型,在图像检索中,通过哈希特征召回层召回后,采用浮点特征相似度做排序,返回。然而,第一种方案由于召回结果无序、无法获取召回结果的相似度排序,同时不能确定召回结果是否准确。第二种方案中召回结果与排序结果表现可能出现较多不一致,如很多被召回的样本、在排序层未必一致,容易造成召回层被召回的样本,在排序层由于排序结果为相似度不足被排序后置从而被过滤,另外,由于图像检索系统自身不能预知召回置信度,不能给本次样本召回提出实质的效果评估,然而对于图像表征不好的类别往往需要
通过效果评价来协助处理,同时需要进行2次模型前向计算特征,耗时较大,在海量数据检索应用场景中效果差。
136.本技术实施例提供的图像检索方法,能够提升召回的图像的哈希特征与排序的浮点特征一致性,从而降低召回与排序表现不一致的情况;并设计针对每个待检索图像query的检索效果评估,可支持不同检索效果的优化:通过引入分类信息,设置评估层,对本次检索结果进行自身效果评估,在本检索框架上,可以借助评估层对效果不佳的检索进行二次处理,从而提升整体检索准确率。设计统一模型,降低应用中的特征推理损耗:通过统一模型级联特征设计、相关特征约束学习、二阶段分类学习等,实现多任务共享底层特征,一次推理获得多个输出。
137.首先,从产品侧进行说明。基于本技术实施例提供的图像检索方法得到的哈希特征可用于图像排重场景中。
138.基于图像检索模型的哈希输出,进行图像检索包含以下步骤:1)通过模型获取到库存图像的哈希特征,2)获取哈希的量化中心(如聚类中心:把所有库存的量化特征进行聚类到8192个聚类中心,每个聚类中心可视为一个量化中心),3)把量化中心作为检索的索引,建立索引与图像库(量化中心与库存中的哈希特征)的关联关系;4)在图像检索中根据query图像的哈希特征找到最近的索引,5)获取这些索引的关联图像得到候选图像检索召回,6)根据召回图像的哈希特征与待检索图像的哈希特征计算欧式距离,并对欧氏距离从小到大排序;7)取排序中前k个图像作为召回结果;8)进入到效果评估层(相当于前述图像检索模型中图像排序层的类比比对层,用于通过排序信息,对召回的图像进行效果评估)。
139.在实际实施时,参见图14a,图14a是本技术实施例提供的针对图像的效果评估方式示意图,其中,图14a示出的效果评估方式的主要过程:输入样本经过统一模型一次推理,得到待检索图像的哈希特征、浮点特征、分类信息。在建立图像库库存时,库存的样本的哈希特征用于建立哈希特征索引,库存样本的分类信息、浮点特征需要存储待后续使用。在图像检索过程中,输入样本经过统一模型获取特征后,在哈希索引进行召回得到召回的库存图、对召回的库存图查询该图在存储中的浮点特征,所有召回图的浮点特征与待检索图像的浮点特征进行哈希距离计算,并从小到大排序的到召回的更相似到更不相似的排序效果。排序结果经过效果评估层,对于文本类(图像embedding表现不佳)召回图像,采用文本类分类的预测概率(prob)取负(1-prob)作为召回图像的置信度(即越属于文本的类别置信度越低),然后重新排序:把属于文本类别的召回图像排到非文本类别的召回图像的后面并依然按欧式距离从小到大排序,最终,按照排序后的结果展示检索召回的每个图像、以及相应的置信度。
140.其中,参见图14b,图14b是本技术实施例提供的针对图像的效果评估方式另一示意图,图14b示出的效果评估方式在召回层与图14a方式一致,不同在于分类信息的使用,具体使用方式是:针对分类进行不同的欧式距离阈值设置,如对于文本类的待检索图像阈值为0.3,非文本为0.5,对于文本类待检索图像,在浮点特征排序时,当召回样本与待检索图像的欧式距离高于0.3则认为不相似,直接丢弃;对于非文本类待检索图像,当召回样本与待检索图像的欧式距离高于0.5,则认为不相似,直接丢弃。
141.上述两种效果评估方式,图14b示出的效果评估方式是借助分类来过滤不相关样本;图14a示出的效果评估方式是借助分类来对所有召回样本评估,不作过滤。
142.接下来,说明本技术实施例提供的图像检索模型的训练过程。参见图15,图15是本技术实施例提供的图像检索模型的训练方法图。图像检索模型分两阶段学习,在第一阶段训练出了分类层的所有参数;第二阶段训练分类层。在一阶段联合学习的同时,提供哈希与浮点特征一致性约束;在第二阶段主要不影响底层特征同时学习分类特征。整体模型训练过程主要包括1)训练所需数据准备:三元组数据准备;2)模型构成及两个阶段学习主要过程;3)损失计算等。
143.首先,对数据准备过程进行说明。本技术实施例提供的图像检索模型,在训练时,需要三元组数据作为输入,但从海量数据中找合适的三元组比较困难,因此,一般是先在海量数据中标注正样本对,然后通过正样本对进行负样本挖掘,得到三元组。
144.1)标注数据准备——获取正样本对:标注图像样本对是否相似的标签,如从海量数据中抽取两张图作为一对,送给标注,标注返回每对是/否足够相似。由于模型用于图像排重系统,故两个样本需要极度相似才算相似样本,如参见图16,图16是本技术实施例提供的三元组样本示意图,图中编号1、2对应的图像,或经过图像攻击产生的其他图(图中编号3所示)。其中,图像攻击可以包含多种类型如:色彩变化、色度变化、裁剪、亮度、滤镜等。其中,标注为相似的样本对为正样本对,标注为不相似的样本为负样本对。本标注主要收集正样本对,负样本对可不收集,通过下述挖掘方式获得三元组的负样本即可。
145.2)三元组数据挖掘:由于训练度量学习特征需要由锚点样本anchor、正样本positive、负样本negative(a、p、n)组成的三元组样本进行损失函数学习,三元组样本中a和p构成正样本对,a和n构成负样本对,在学习任务中,正样本对是需要特征足够接近——欧式距离l2足够小(从而可被相互检索到),而负样本对需要足够远离。在上述标注中已经获取的每个样本对,可以作为三元组的anchor和positive(随机选择一张图为anchor即可),关于如何进一步挖掘负样本(包含难负样本、全局负样本)如下:由于计算机的图形处理器(gpu,graphics processing unit)内存有限、整体训练中需要把全量正样本对分批次(batch)送入gpu训练,故挖掘负样本以一个批次(batch)内部挖掘进行。
146.对每个batch的正样本对(假设有bs对,bs≥1且bs为正整数)分别进行如下方式挖掘负样本得到三元组:对某个样本x对中的x-anchor(随机选择一张作为anchor):从剩余的bs-1个样本对(每对随机选择一张图像)的样本中计算其与x-anchor的距离,按距离从小到大排序,去除top5图像后,取前20个样本作为难负样本(由于需要学习的是极度相似样本的特征,认为距离越小越相似,而海量数据中,两张图为极度相似的概率比较低,故直接去掉top5的相似样本、剩余的样本可构成三元组中的难负样本),分别与x组成三元组,故每个样本对产生20个三元组,整个batch得到20*bs个三元组。为了保证负样本对挖掘有效,bs需要设置相对大一点的值,如1024。
147.基于三元组的度量学习对难样本要求多,若都是简单样本,则模型无法学到具有区分度的表征。实际上前20个负样本里不能保证全是难负样本,但能保证难样本比较多,故对学习有利。
148.其次,对模型结构及学习过程进行说明,模型结构分为5模块:基础特征提取模块(基于卷积神经网络实现)、浮点特征模块、哈希模块、分类模块、损失学习(loss)。基础特征模型训练的参数如表1所示,表1是特征模块结构表。
149.表1由表1深度特征进入表2产生embedding浮点特征,表2示浮点层结构。
150.表2上述表2中,输入为表1的池化层pooling输出,产生图像的浮点表征。由表2输出进入表3得到哈希特征(该特征在学习时仍跟常规浮点特征一样为浮点数,但在模型的应用场景中,特征的每个值会经过sign函数得到由二值(为方便计算,应用中会按计算机比特形式二值取0/1,训练中为方便二值取-1/1)组成的向量,则为最终应用中的哈希量化特征)。
151.表3上述表3中,哈希量化分支,输入为表2中的浮点embedding输出,输出1x256的浮
点,该浮点向量经过sign符号函数映射到二值向量(0或1),即为最终应用中的哈希特征。
152.这里的卷积神经网络模块和浮点、哈希模块可以采用其他模型结构,如基础特征采用卷积神经网络模块等、哈希量化层采用多个全连接层(full connection)级联等。对于分类模块,则直接从表1输出后输入到分类模块。其中,分类模块结构如表4所示:表4上述表4中,示出分类层的结构,输入为表1池化层pooling的输出,直接接住卷积神经网络层输出的特征进行图像分类。用于识别图像是否为文本等难表征类型。
153.在实际实施时,浮点特征 哈希设计级联结构具有以下优点:哈希层与浮点embedding层采用级联结构,级联结构可以一定程度保证哈希特征学习与浮点特征学习一致,也即当浮点特征相似时,哈希层学习的输入也是相似,为了保证哈希最终学习输出与浮点一致(即哈希学习后也是相似),仅需要在哈希层经过loss学习的约束维持使之与浮点表现一致即可。
154.再次,针对模型的训练过程进行说明。模型的训练过程包括以下部分:1)参数初始化:在模型预训练环节,conv1_x至conv5_x采用在imagenet数据集上预训练的模型参数,新添加的层如浮点特征、哈希量化层采用方差为0.01,均值为0的高斯分布进行初始化。2)设置学习参数:一阶段学习:表123所有参数,二阶段学习:仅表4参数。3)学习率:均对采用lr=0.0005学习率。每经过10轮迭代(一轮迭代即一个epoch)后lr变为原来的0.1倍即0.1lr。4)学习过程:对全量数据,进行n(n≥1且n为整数)轮迭代;每轮迭代处理一次全量样本对,直到某轮epoch下平均epoch loss不再下降;5)对每个epoch的每轮迭代中的具体操作如下:把全量图像对,根据上述步骤产生每个批次(batch)的图像及挖掘的三元组,可以进行以下操作:1)一阶段模型前向:训练时神经网络对输入的三元组图片进行前向计算得到浮点特征层、哈希层的预测结果,用e、q表示,其中e为1x64向量表示浮点特征,q为1x256向量表示哈希特征。输出得到三元组的浮点特征表示(ea、ep、en)、哈希特征表示(qa、qp、qn)。2)二阶段模型前向:训练时神经网络对输入的三元组图片进行前向计算得到各图像的分类信息。3)loss计算:针对一阶段计算总损失1(loss1)、二阶段计算总损失2(loss2)。4)模型参数更新:采用随机梯度下降法,把(3)的loss进行梯度后向计算得到参数的更新值,并更新对应阶段的待学习网络参数。
155.最后,针对模型训练过程中的损失计算进行说明。
156.针对图15中一阶段的总损失:对batch中每个样本对(共bs个样本对),计算所有挖掘的三元组损失、所有图像的量化损失。其中,,。
157.(1)
上述公式1)中,表示哈希特征的度量学习损失。表示度量学习对浮点特征的度量(triplet)损失:采用三元组的浮点特征输出()作为计算损失的输入,表示样本a的哈希特征与样本p的哈希特征之间的l2距离,表示边界(margin),可设置为0.8,表示学习目标是:负样本对的欧式距离要比正样本对的欧式距离大0.8。计算公式如下:(2)在实际实施时,采用batch挖掘到的三元组(a p n),三元组中的a n样本距离需要足够大才能保证三元组在量化空间可区分,故偏移margin需要设置更大,考虑到量化向量256维每位最终会接近-1或1的值,故预设参考margin0=160,学习时对每个样本设置不同的margin,其做法是采用上述浮点特征产生的三元组margin作为权重乘以margin0。triplet损失公式如下,表示三元组中a与p两个图像的量化损失(quantizaiton loss),输出q的l2距离。triplet-loss的目的是使得锚点样本anchor与负样本nagative的距离比距离正样本positive的距离大于margin。其中为margin0=160。
158.(3)上述公式(3)中,采用浮点特征的三元组距离约束量化度量的margin,目的是使的当浮点特征认为某三元组具备某种关系时,让哈希特征也具备此关系,从而实现浮点特征和哈希特征度量效果的一致性。
159.上述公式(1)中coding符号量化损失,对该量化分支输出的向量计算量化效果(是否足够接近-1或1)的损失,由于量化输出后最终应用需要映射到-1或1这两个数值,若q输出的每一位都足够接近1或-1,则上述triplet度量损失则足够可以描述量化特征的应用情况,否则triplet度量效果即使再好也不代表应用中量化的表征足够好,故希望q输出的每一位都足够接近1或-1。
160.对于每个图像的量化结果,满足这一目标的损失函数如下:1)其中为该图像的量化q在第i位的值(如256位),为第i位的量化目标,由经过sign函数产生——采用符号函数产生量化学习任务的目标编码(如下式sign函数,对coding向量q的每一位分别通过符号函数计算其目标编码,最终q的目标编码为b)。然后采用回归损失regression loss使coding输出向量q与目标编码b的l2距离变小。
161.权重:由于coding的regression loss收敛比triplet-loss快,并且coding的重要性比特征度量能力低,为了保证triplet-loss在整体loss中处于主导地位,从而保证embedding始终具有相似度度量的能力,故本处设为0.01(或小于1的其他值,可视情况调整)。
162.在实际应用中,对于一阶段中可以使用不同的网络结构、不同的预训练模型权重作为基础模型;对于难分类别,可根据实际情况调整,如若足球场足球赛等是图像embedding不能很好表征的,可加入到难分类别中,支持后续难分类别的检索调整;对于难分类别的后处理调整方式不局限于上述说的两种方案,如可以在query时就判断出query图像是难分,从而检索时对难分query的召回进行人工判断等其他处理方案;模型学习为二阶段,实际上也可以三阶段或根据学习任务优先级、数据调整。如先训练表1、2的浮点embedding特征,然后微调表1、2、3、最后训练表4。
163.通过本技术实施例,能够实现完整高效的图像检索系统:包括快速的基于汉明距离的全库检索、基于有限召回结果欧式距离的召回排序、检索结果的自动调整/自动置信度分析。通过统一模型设计实现多任务学习集合到一起,并实现哈希特征与浮点特征表现更一致的学习方法。且统一模型只需要一次推理即可实现多个特征提取,避免多特征提取需要多倍资源,降低应用中对资源的要求。
164.应用本技术实施例能够有以下有益效果:1)实现一个完整的图像排重系统,包括哈希特征召回、浮点特征重排序、难分类别的置信度调整/或经过难分样本在哈希召回上进行二次过滤,最终返回排序结果等,使的系统自身对输出结果可进行评估。
165.2)实现一个统一模型的学习、特征提取,应用中可以一次前向计算获得多个特征,避免多次前向计算带来资源浪费。
166.3)支持扩展应用:该系统框架上,对于难分类别,可在后续接入难分类别的后处理等,进一步提升难分类别检索效果。
167.可以理解的是,在本技术实施例中,涉及到用户信息等相关的数据,当本技术实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
168.下面继续说明本技术实施例提供的图像检索装置555的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器540的图像检索装置555中的软件模块可以包括:获取模块5551,用于响应于针对待检索图像的图像检索请求,获取所述待检索图
像的哈希特征;选择模块5552,用于基于哈希特征,从至少两个聚类簇中确定所述待检索图像的哈希特征对应的目标聚类簇;其中,所述至少两个聚类簇,通过对图像库中的多个图像进行聚类得到;排序模块5553,用于获取所述目标聚类簇中各图像的排序信息,并基于所述排序信息对所述目标聚类簇中的图像进行排序,得到图像序列;其中,所述排序信息包括以下至少之一:所述图像和所述待检索图像的图像相似度信息、所述图像归属的类别信息;确定模块5554,用于基于所述图像序列,确定针对所述待检索图像的图像检索结果。
169.在一些实施例中,每个所述聚类簇对应一个参考哈希特征,所述选择模块,还用于分别确定所述待检索图像的哈希特征与各所述聚类簇对应的参考哈希特征之间的汉明距离;获与所述哈希特征的汉明距离最小的参考哈希特征所对应的簇中心,作为目标簇中心;从至少两个聚类簇中确定所述目标簇中心对应的聚类簇,作为所述待检索图像的哈希特征对应的目标聚类簇。
170.在一些实施例中,所述排序模块,还用于获取所述目标聚类簇中的各图像的哈希特征;确定所述待检索图像的哈希特征与各所述图像的哈希特征之间的欧式距离;基于所述欧式距离,从所述目标聚类簇包括的各图像中选取目标数量的图像,得到候选图像序列;相应的,在一些实施例中,所述确定模块,还用于基于所述候选图像序列,确定针对所述待检索图像的图像检索结果。
171.在一些实施例中,所述排序信息包括所述图像和所述待检索图像的图像相似度信息,所述排序模块,还用于获取所述目标聚类簇中的各图像的浮点特征,所述浮点特征为,采用浮点数据表示的图像特征;根据所述待检索图像的浮点特征与各所述图像的浮点特征的欧式距离,确定所述图像和所述待检索图像的图像相似度信息;相应的,所述排序模块,还用于基于所述图像和所述待检索图像的图像相似度信息,对所述目标聚类簇中的图像进行排序,得到图像序列。
172.在一些实施例中,所述排序信息包括所述图像归属的类别信息,所述排序模块,还用于获取所述目标聚类簇中的图像对应的浮点特征,并基于所述浮点特征,确定所述图像归属的类别信息,所述浮点特征为,采用浮点数据表示的图像特征,所述图像归属的类别信息用于指示所述图像归属各图像类别的概率;相应的,所述排序模块,还用于基于所述图像归属的类别信息,对所述目标聚类簇中的图像进行排序,得到图像序列。
173.在一些实施例中,所述排序模块,还用于对所述待检索图像进行图像分类,得到所述待检索图像的目标图像类别;基于所述目标图像类别及所述图像归属的类别信息,确定所述目标聚类簇中图像的类别优先级;基于所述图像归属的类别信息、以及所述目标聚类簇中图像的类别优先级,对所述目标聚类簇中的图像进行排序,得到图像序列。
174.在一些实施例中,所述排序信息包括所述图像和所述待检索图像的图像相似度信息、以及所述图像归属的类别信息,所述排序模块,还用于基于所述图像和所述待检索图像的图像相似度信息,对所述目标聚类簇中的图像进行排序,得到基础图像序列;基于所述图像归属的类别信息,对所述基础图像序列中的各图像的排序进行调整,得到图像序列。
175.在一些实施例中,所述图像检索方法基于图像检索模型实现,所述图像检索模型
包括特征提取层、哈希索引层、图像排序层及信息输出层;相应的,所述获取模块,还用于通过所述特征提取层,获取所述待检索图像的哈希特征;在一些实施例中,所述选择模块,还用于通过所述哈希索引层,基于所述哈希特征,从至少两个聚类簇中确定所述待检索图像的哈希特征对应的目标聚类簇,所述至少两个聚类簇,通过对图像库中的多个图像进行聚类得到;在一些实施例中,所述排序模块,还用于通过所述图像排序层,获取所述目标聚类簇中的各图像的排序信息,并通过所述图像排序层,基于所述排序信息对所述目标聚类簇中的各图像进行排序,得到图像序列,所述排序信息包括以下至少之一:所述图像和所述待检索图像的图像相似度信息、所述图像归属的类别信息;在一些实施例中,所述确定模块,还用于通过所述信息输出层,基于所述图像序列,确定针对所述待检索图像的图像检索结果。
176.在一些实施例中,所述图像检索模型的特征提取层包括特征提取子层和哈希量化子层,所述获取模块,还用于通过所述特征提取子层,对所述待检索图像进行特征提取,得到所述待检索图像的浮点特征,所述浮点特征为,采用浮点数据表示的图像特征;通过所述哈希量化子层,对所述浮点特征进行量化处理,得到所述待检索图像的哈希特征。
177.在一些实施例中,所述图像检索模型的图像排序层包括第一分类层、第二分类层、类别对比层及结果排序层,所述排序信息包括所述图像归属的类别信息,所述排序模块,还用于通过所述第一分类层,获取所述目标聚类簇中各图像归属的类别信息;通过所述第二分类层,对所述待检索图像的基础图像特征进行类别预测,得到所述待检索图像对应的目标图像类别;通过所述类别对比层,基于所述目标图像类别及所述图像归属的类别信息,确定所述目标聚类簇中的图像的类别优先级;通过所述结果排序层,基于所述类别优先级以及所述图像归属的类别信息,对所述目标聚类簇中的图像进行排序,得到图像序列。
178.在一些实施例中,所述确定模块,还用于从所述图像序列中的第一张图像开始,依次进行图像选取,直至选取目标数量的所述图像,作为针对所述待检索图像的图像检索结果。
179.在一些实施例中,所述图像检索装置还包括训练模块,所述训练模块,用于获取待处理三元组样本以及待训练的所述图像检索模型,所述三元组样本包括锚点样本、正样本及负样本,所述锚点样本与所述正样本为重复图像,所述锚点样本与所述负样本为不重复图像;通过所述图像检索模型的特征提取层,分别对所述待处理三元组样本进行特征提取,得到所述待处理三元组样本的哈希特征;通过所述图像检索模型的哈希索引层,基于所述待处理三元组样本的哈希特征,从至少两个聚类簇中确定所述待处理三元组样本的哈希特征对应的目标聚类簇,所述至少两个聚类簇,通过对图像库中的多个图像进行聚类得到;通过所述图像检索模型的图像排序层,获取所述目标聚类簇中各图像的排序信息,并基于所述排序信息对所述目标聚类簇中的图像进行排序,得到预测图像序列,所述排序信息包括以下至少之一:所述图像和所述待处理三元组样本的相似度信息、所述图像归属的类别信息;通过所述图像检索模型的信息输出层,基于所述预测图像序列,确定针对所述待处理三元组样本的图像检索结果;获取与所述待处理三元组样本的哈希特征对应的量化损失,并基于所述待处理三元组样本与所述预测图像序列中各图像之间的差异,确定所述待处理三元组样本的分类损失;基于所述量化损失以及所述分类损失,更新所述图像检索模型的模
型参数。
180.本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术实施例上述的图像检索方法。
181.本技术实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本技术实施例提供的图像检索方法,例如,如图3示出的图像检索方法。
182.在一些实施例中,计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
183.在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
184.作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
185.作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
186.综上所述,通过本技术实施例提供的基于哈希特征的图像检索方法,能够有效提高图像检索的效率,以及图像检索结果的准确性。
187.以上所述,仅为本技术的实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献