特征库的调度方法、装置和特征库检索方法、装置
技术领域
本申请涉及信息调度
技术领域
,特别是涉及一种特征库的调度方法、装置、计算机设备和存储介质,以及,一种特征库检索方法、装置、计算机设备和存储介质。背景技术
在对数据进行处理时,需要基于数据特征从存储介质中读取特征库,进而将根据所读取的特征库进行进一步的数据分析。
为提高存储介质中特征库的特征读取效率,传统技术从高速存储介质中淘汰特征库,但是其实现方式灵活性差,存储介质的特征读取效率还是较低。
需要说明的是,在上述
背景技术
部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高存储介质的特征读取效率的特征库的调度方法、装置、计算机设备和存储介质,并提供一种能够提高特征检索效率的特征库检索方法、装置、计算机设备和存储介质。
一种特征库的调度方法,所述方法包括:获取第一存储介质中的各个特征库的请求量;所述第一存储介质为目标存储介质中的存储介质,所述目标存储介质还包含第二存储介质,对于针对所述目标存储介质的特征读取请求,所述第一存储介质的响应顺序优先于所述第二存储介质;所述各个特征库的请求量根据各个特征库与所述特征读取请求的匹配数量确定;获取所述各个特征库的库容量;根据所述各个特征库的请求量和库容量确定所述各个特征库的热度值;所述热度值用于表征所述各个特征库在所述目标存储介质内被调度时对所述目标存储介质的特征读取效率的影响度;根据所述热度值的排序在所述各个特征库中确定待转移特征库;将所述待转移特征库调度至所述第二存储介质中。
在一个实施例中,对于所述目标特征库,所述获取第一存储介质中的各个特征库的请求量,包括:获取所述目标特征库与当前时间周期对应的当前请求量曲线以及与设定历史时间周期对应的历史请求量曲线;从所述当前请求量曲线中确定所述目标特征库的当前请求量;从所述历史请求量曲线中确定所述目标特征库的最小请求量和最大请求量;所述根据所述目标特征库的请求量确定第一热度值分量,包括:计算所述当前请求量相对于所述最小请求量的差值,得到第一请求量差值;计算所述最小请求量相对于所述最大请求量的差值,得到第二请求量差值;根据所述第一请求量差值和所述第二请求量差值预测所述目标特征库在设定未来时间段的请求量;根据所述设定未来时间段的请求量确定所述第一热度值分量。
在一个实施例中,所述根据所述目标特征库的库容量确定第二热度值分量,包括:确定所述目标存储介质的特征库对应的最小库容量和最大库容量;确定所述目标特征库的库容量相对于所述最小库容量的差值,得到第一库容量差值;确定所述最小库容量相对于所述最大库容量的差值,得到第二库容量差值;根据所述第一库容量差值和所述第二库容量差值确定所述第二热度值分量。
在一个实施例中,所述获取与所述目标特征库对应的调控参数值,包括:当所述目标特征库携带感兴趣标识时,将所述目标特征库的调控参数值设置为第一参数值;当所述目标特征库未携带感兴趣标识时,将所述目标特征库的调控参数值设置为第二参数值;所述第二参数值小于所述第一参数值。
在一个实施例中,所述根据所述热度值的排序在所述第一存储区的特征库中确定待转移特征库,包括:当所述第一存储区中存在特征库的热度值低于所述第二存储区各个特征库的热度值时,将所述第一存储区中对应的特征库确定为所述待转移特征库;当所述第一存储区中存在特征库的热度值低于所述第二存储介质各个特征库的热度值时,将所述第一存储区中对应的特征库确定为所述待转移特征库。
在一个实施例中,所述根据所述热度值的排序在所述第一存储区的特征库中确定待转移特征库之后,还包括:确定所述第二存储区中各个特征库在设定历史时间段内的读取频率;将所述第二存储区中读取频率满足条件的特征库调度至所述第二存储介质中。
一种特征库的调度装置,所述装置包括:请求量获取模块,用于获取第一存储介质中的各个特征库的请求量;所述第一存储介质为目标存储介质中的存储介质,所述目标存储介质还包含第二存储介质,对于针对所述目标存储介质的特征读取请求,所述第一存储介质的响应顺序优先于所述第二存储介质;所述各个特征库的请求量根据各个特征库与所述特征读取请求的匹配数量确定;库容量获取模块,用于获取所述各个特征库的库容量;热度值确定模块,用于根据所述各个特征库的请求量和库容量确定所述各个特征库的热度值;所述热度值用于表征所述各个特征库在所述目标存储介质内被调度时对所述目标存储介质的特征读取效率的影响度;待转移特征库确定模块,用于根据所述热度值的排序在所述各个特征库中确定待转移特征库;第一特征库调度模块,用于将所述待转移特征库调度至所述第二存储介质中。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:获取第一存储介质中的各个特征库的请求量;所述第一存储介质为目标存储介质中的存储介质,所述目标存储介质还包含第二存储介质,对于针对所述目标存储介质的特征读取请求,所述第一存储介质的响应顺序优先于所述第二存储介质;所述各个特征库的请求量根据各个特征库与所述特征读取请求的匹配数量确定;获取所述各个特征库的库容量;根据所述各个特征库的请求量和库容量确定所述各个特征库的热度值;所述热度值用于表征所述各个特征库在所述目标存储介质内被调度时对所述目标存储介质的特征读取效率的影响度;根据所述热度值的排序在所述各个特征库中确定待转移特征库;将所述待转移特征库调度至所述第二存储介质中。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:获取第一存储介质中的各个特征库的请求量;所述第一存储介质为目标存储介质中的存储介质,所述目标存储介质还包含第二存储介质,对于针对所述目标存储介质的特征读取请求,所述第一存储介质的响应顺序优先于所述第二存储介质;所述各个特征库的请求量根据各个特征库与所述特征读取请求的匹配数量确定;获取所述各个特征库的库容量;根据所述各个特征库的请求量和库容量确定所述各个特征库的热度值;所述热度值用于表征所述各个特征库在所述目标存储介质内被调度时对所述目标存储介质的特征读取效率的影响度;根据所述热度值的排序在所述各个特征库中确定待转移特征库;将所述待转移特征库调度至所述第二存储介质中。
上述特征库的调度方法、装置、计算机设备和存储介质,目标存储介质中包含第一存储介质和第二存储介质,对于针对目标存储介质的特征读取请求,第一存储介质的响应顺序优先于第二存储介质;在特征库调度过程中,根据第一存储介质中的各个特征库与特征读取请求的匹配数量确定请求量;获取各个特征库的库容量;根据各个特征库的请求量和库容量确定用于表征特征读取效率影响度的热度值;根据热度值的排序将第一存储介质中的淘汰特征库调度至第二存储介质中。能使得第一存储介质中存储的都是热度值高的特征库,可以快速地对特征读取请求进行响应,进而提高整个存储介质的特征读取效率。
一种特征检索方法,所述方法包括:获取参考检索特征和特征库识别信息;在第一存储介质的特征库中确定与所述特征库识别信息对应的目标特征库;所述第一存储介质为目标存储介质中的存储介质,所述目标存储介质还包含第二存储介质,对于针对所述目标存储介质的特征读取请求,所述第一存储介质的响应顺序优先于所述第二存储介质;所述第一存储介质中的特征库在热度值满足条件时被调度至所述第二存储介质中,所述热度值用于表征所述第一存储介质中的特征库在所述目标存储介质内被调度时对所述目标存储介质的特征读取效率的影响度;从所述目标特征库中读取所存储的各个特征;在所述所读取的各个特征中确定出与所述参考检索特征相匹配的目标检索特征。
在一个实施例中,所述在所述所读取的各个特征中确定出与所述参考检索特征相匹配的目标检索特征,包括:确定所读取的各个特征与所述参考检索特征之间的特征向量距离;将所读取的各个特征中特征向量距离小于预设距离阈值的特征确定为所述目标检索特征。
在一个实施例中,所述在所述所读取的各个特征中确定出与所述参考检索特征相匹配的目标检索特征之后,还包括:确定所述参考检索特征对应的第一人脸媒体信息和所述目标检索特征对应的第二人脸媒体信息;根据所述参考检索特征和所述目标检索特征之间的特征向量距离得到所述第一人脸媒体信息和所述第二人脸媒体信息的相似度;根据所述相似度确定人脸特征比对结果。
一种特征检索装置,所述装置包括:识别信息获取模块,用于获取参考检索特征和特征库识别信息;特征库确定模块,用于在第一存储介质的特征库中确定与所述特征库识别信息对应的目标特征库;所述第一存储介质为目标存储介质中的存储介质,所述目标存储介质还包含第二存储介质,对于针对所述目标存储介质的特征读取请求,所述第一存储介质的响应顺序优先于所述第二存储介质;所述第一存储介质中的特征库在热度值满足条件时被调度至所述第二存储介质中,所述热度值用于表征所述第一存储介质中的特征库在所述目标存储介质内被调度时对所述目标存储介质的特征读取效率的影响度;目标特征确定模块,用于从所述目标特征库中读取所存储的各个特征;检索特征确定模块,用于在所述所读取的各个特征中确定出与所述参考检索特征相匹配的目标检索特征。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:获取参考检索特征和特征库识别信息;在第一存储介质的特征库中确定与所述特征库识别信息对应的目标特征库;所述第一存储介质为目标存储介质中的存储介质,所述目标存储介质还包含第二存储介质,对于针对所述目标存储介质的特征读取请求,所述第一存储介质的响应顺序优先于所述第二存储介质;所述第一存储介质中的特征库在热度值满足条件时被调度至所述第二存储介质中,所述热度值用于表征所述第一存储介质中的特征库在所述目标存储介质内被调度时对所述目标存储介质的特征读取效率的影响度;从所述目标特征库中读取所存储的各个特征;在所述所读取的各个特征中确定出与所述参考检索特征相匹配的目标检索特征。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:获取参考检索特征和特征库识别信息;在第一存储介质的特征库中确定与所述特征库识别信息对应的目标特征库;所述第一存储介质为目标存储介质中的存储介质,所述目标存储介质还包含第二存储介质,对于针对所述目标存储介质的特征读取请求,所述第一存储介质的响应顺序优先于所述第二存储介质;所述第一存储介质中的特征库在热度值满足条件时被调度至所述第二存储介质中,所述热度值用于表征所述第一存储介质中的特征库在所述目标存储介质内被调度时对所述目标存储介质的特征读取效率的影响度;从所述目标特征库中读取所存储的各个特征;在所述所读取的各个特征中确定出与所述参考检索特征相匹配的目标检索特征。
上述特征检索方法、装置、计算机设备和存储介质,目标存储介质中包含第一存储介质和第二存储介质,对于针对目标存储介质的特征读取请求,第一存储介质的响应顺序优先于第二存储介质;第一存储介质中的特征库在热度值满足条件时被调度至第二存储介质中,使得第一存储介质中存储的都是热度值高的特征库;在特征检索过程中,获取参考检索特征和特征库识别信息;由于第一存储介质中存储的都是热度值高的特征库,因此,能够在第一存储介质的特征库中快速定位到与特征库识别信息对应的目标特征库,进而从目标特征库中快速读取所存储的各个特征;在所读取的各个特征中确定出与参考检索特征相匹配的目标检索特征。可以快速地在存储介质中定位到特征库以实现特征的读取,进而提高整个存储介质的特征检索效率。
附图说明
图1为一个实施例中特征库的调度方法的应用环境图;
图2为一个实施例中特征库的调度方法的流程示意图;
图3为一个实施例中请求量曲线的示意图;
图4为一个实施例中库数量分布的示意图;
图5为一个实施例中目标存储介质的结构示意图;
图6为一个实施例中命中率热力值分布的示意图;
图7为一个实施例中特征库的调度方法的应用场景图;
图8为一个实施例中特征检索方法的流程示意图;
图9为一个实施例中特征检索方法的应用场景图;
图10为一个实施例中特征库的调度装置的结构框图;
图11为一个实施例中特征检索装置的结构框图;
图12为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本发明实施例提供的特征库的调度方法、装置、计算机设备和存储介质,以及,特征库检索方法、装置、计算机设备和存储介质,可以基于云技术(Cloud technology)实现。云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
本发明实施例可以基于云存储(Cloud Storage)实现,例如,通过云存储的方式来存储各个特征库。其中,云存储是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
本申请提供的特征库的调度方法,可以应用于如图1所示的应用环境中。该应用环境中包含有计算机设备101(也可以称为调度控制设备)、包含第一存储介质的计算机设备102和包含第二存储介质的计算机设备103。计算机设备102和103可以分别与计算机设备101进行网络通信。计算机设备101获取第一存储介质中各个特征的热度值,根据该热度值确定待转移特征库,并将待转移特征库调度至第二存储介质中。其中,计算机设备101、102和103,可以通过服务器或者终端实现。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content DeliveryNetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。
在一个实施例中,第一存储介质和第二存储介质也可以是在同一计算机设备中。例如:某一计算机设备中包含第一存储介质和第二存储介质,计算机设备中的控制器获取第一存储介质中各个特征库的热度值,根据该热度值确定待转移特征库,并将待转移特征库调度至第二存储介质中。
在一个实施例中,如图2所示,提供了一种特征库的调度方法,本实施例以该方法应用于调度控制设备进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
S201,获取第一存储介质中的各个特征库的请求量;所述第一存储介质为目标存储介质中的存储介质,所述目标存储介质还包含第二存储介质,对于针对所述目标存储介质的特征读取请求,所述第一存储介质的响应顺序优先于所述第二存储介质;所述各个特征库的请求量根据各个特征库与所述特征读取请求的匹配数量确定。
其中,目标存储介质可以指各种类型的具有存储功能的介质,可以包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、硬盘、闪存或光存储器等。易失性存储器可包括显存、内存、随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。目标存储介质包括第一存储介质(可以称为热库)和第二存储介质(可以称为冷库),这两种存储介质均可以为非易失性或易失性存储介质,调度控制设备会优先从第一存储介质中读取特征数据。在一个实施例中,第一存储介质为易失性存储介质,第二存储介质为非易失性存储介质。在另一个实施例中,第一存储介质为高速存储介质,第二存储介质为非高速存储介质(也可以称为持久层),调度控制在运行过程中向第一存储介质进行特征的读写,在运行结束时可以向第二存储介质中写入特征。在一个实施例中,调度控制在接收到特征读取请求时,如果发现第一存储介质中并未存储对应的特征,则可以从第二存储介质中调度对应的特征,进而基于所调度的特征来响应特征读取请求。
在一个实施例中,目标存储介质中存储的特征可以是图片、视频等媒体信息对应的特征,可以通过特征向量的形式实现。在一个实施例中,特征可以是对媒体信息中的具体内容进行特征向量转化处理得到,例如:将图片的场景类型、物品种类、人物姓名、人物年龄等等信息进行量化处理,将量化处理的结果进行特征向量转化,将特征向量转化得到的特征向量作为特征存储至目标存储介质中。人工智能领域,特征通常是一个高维向量,例如:人工智能领域将图片、视频等信息进行结构化表达,转换为高维向量的形式,即得到对应的特征。
在一个实施例中,可以对目标存储介质中存储的特征进行分组拆分,将分组后的特征组确定为特征库(特征库也可以简称为库)。即,特征库指的是一组特征的集合。
在一个实施例中,可以对第一存储介质和第二存储介质中预先存储(预先存储可以是随机存储也可以是按照特定的规则进行存储,本发明实施例对此不做限制)的特征分别进行分组拆分处理,分别得到第一存储介质和第二存储介质中的特征库。
在一个实施例中,也可以在对目标存储介质中的所有特征进行分组得到特征库之后,将特征库分配到第一存储介质和第二存储介质中。其分配方式可以是随机分配,也可以是按照一定的规则进行分配。在一个实施例中,对于按照一定的规则进行分配的方式,可以是按照特征库的类型来分配,例如:将特征库分为需要使用特征库(例如:需要在运行过程中处理的图片所对应的图片特征库)和不需使用特征库,可以将需要使用特征库分配至第一存储介质中,而将不需要使用特征库分配至第二存储介质中。
在一个实施例中,目标存储介质在接收到特征读取请求时,优先从第一存储介质中定位特征库,被定位到的特征库即认为是被请求的特征库,进而从所定位的特征库中读取特征。在一个实施例中,可以根据特征库被请求的次数更新其请求量(QPS,Queries-per-second),即,在判定某一特征库为被请求的特征库时,将其对应的请求量加1。特征库被请求的比重越高,说明该特征库在调度控制设备的运行过程中更有可能被读写的特征库,如果将该特征库存储在非高速存储介质中,则需要频繁地将该特征库从非高速存储介质中调度至高速存储介质中,这就使得在进行特征读取响应时浪费太多时间在特征调度上而无法对特征读取请求进行快速响应。因此,特征库的请求量是影响特征库读取效率的重要因素,有必要在进行特征库调度的过程中考虑请求量这一因素。
第一存储介质中的各个特征库可以指第一存储介质中的所有特征库也可以是部分特征库。
S201中,在接收到调度触发指令或者预设的调度间隔时间到达时,调度控制设备获取第一存储介质中的各个特征库的请求量。以在调度触发指令的触发下启动特征库在第一存储介质和第二存储介质之间的调度,也可以实现第一存储介质和第二存储介质之间的定期调度。
S202,获取所述各个特征库的库容量。
S202中调度控制设备获取各个特征库的库容量。
其中,库容量指的是特征库里所能容纳的特征量的大小。因此,在本发明实施例中,库容量也可以称为库大小。发明人发现,特征库的库容量越大,其冷启动的时间越长,性能也会有较大损耗,所以可以将大库(即,库容量大于预设的库容量阈值的特征库,或者特征数量大于预设的库数量阈值的特征库)配置为常驻高速存储介质。具体的,如果大库是存储在非高速存储介质中,就需要从非高速存储介质中调度,而大库的冷启动时间长,这就导致整个特征读取的时间耗时较长,使得特征读取的效率低下。因此,库容量是影响特征库读取效率的重要因素,有必要在进行特征库调度的过程中考虑库容量这一因素。
S203,根据所述各个特征库的请求量和库容量确定所述各个特征库的热度值;所述热度值用于表征所述各个特征库在所述目标存储介质内被调度时对所述目标存储介质的特征读取效率的影响度。
如前面所述,特征库的请求量和库容量会影响到特征读取效率。因此,S203中,调度控制设备根据各个特征库的请求量和库容量确定对应的热度值,用该热度值来表征各个特征库在目标存储介质内被调度时对目标存储介质的特征读取效率的影响度。
在一个实施例中,对于特征库A,如果其热度值高,则表明特征库A对特征读取效率影响大,则可以将特征库A尽可能存储在第一存储介质中,如果其热度值低,则表明特征库A对特征读取效率影响小,则可以将特征库A存储在第二存储介质中。
在一个实施例中,除了根据请求量和库容量来确定热度值,还可以结合其他的因素来确定热度值,例如:可以根据特征库中的特征类型、特征库的重要程度等来确定热度值。在一个实施例中,当某一特征库的特征类型为便于数据读写的特征类型时则可以为其设置一个较高的热度值调整值,当某一特征库的重要程度较高时也可以为其设置一个较高的热度值调整值,之后可以根据热度值调整值来对预先确定的热度值进行调整,并基于调整后的热度值进行特征库的调度处理。
S204,根据所述热度值的排序在所述各个特征库中确定待转移特征库。
在确定第一存储介质中各个特征库的热度值后,调度控制设备可以将这些特征库的热度值从大到小排序,并将排序在后的特征库确定为待转移特征库,也即,被淘汰的特征库。
S205,将所述待转移特征库调度至所述第二存储介质中。
在一个实施例中,如果第一存储介质中的存储空间足够大,也可以暂时不将待转移特征库调度至第二存储介质中。
在一个实施例中,在将待转移特征库调度至第二存储介质中之后(当然,也可以是之前),可以对第二存储介质中的特征库的热度值进行排序,将排序在前的特征库确定为待转移特征库,进而将这些待转移特征库调度至第一存储介质中。其中,第二存储介质中特征库的热度值的计算方式可以参考第一存储介质中特征库的热度值的计算方式,在此不再赘述。
在一个实施例中,也可以将第一存储介质和第二存储介质中的特征库的热度值进行统一排序统一调度。将排序在前的特征库依次存储在第一存储介质中,直到第一存储介质存储空间满,将排序在后的特征库存储在第二存储介质中,直到第二存储介质存储空间满。此时,之前存储在第一存储介质而当前被调度到第二存储介质中的特征库即为待转移特征库。
上述特征库的调度方法中,目标存储介质中包含第一存储介质和第二存储介质,对于针对目标存储介质的特征读取请求,第一存储介质的响应顺序优先于第二存储介质;在特征库调度过程中,根据第一存储介质中的各个特征库与特征读取请求的匹配数量确定请求量;获取各个特征库的库容量;根据各个特征库的请求量和库容量确定用于表征特征读取效率影响度的热度值;根据热度值的排序将第一存储介质中的淘汰特征库调度至第二存储介质中。能使得第一存储介质中存储的都是热度值高的特征库,在接收到特征读取请求时可以快速地对特征读取请求进行响应,进而提高整个存储介质的特征读取效率。
在一个实施例中,根据所述各个特征库的请求量和库容量确定所述各个特征库的热度值的实现过程可以是:逐一遍历各个特征库的请求量和库容量,以确定这些特征库的热度值。具体的,当遍历到某一特征库1,根据特征库1的请求量和库容量确定特征库1的热度值;之后遍历下一特征库2,根据特征库2的请求量和库容量确定特征库2的热度值;以此类推,直到完成所有特征库的热度值的计算。
在一个实施例中,所述根据所述各个特征库的请求量和库容量确定所述各个特征库的热度值,包括:对于所述各个特征库中的任意一个目标特征库,根据所述目标特征库的请求量确定第一热度值分量;根据所述目标特征库的库容量确定第二热度值分量;根据所述第一热度值分量和所述第二热度值分量确定所述目标特征库的热度值。
可以对目标特征库的请求量进行一定的运算,例如:加权运算(乘以一定的系数)、倒数运算(取倒数)等,将运算结果作为第一热度值分量。第一热度值分量也可以称为请求量分量。
可以对目标特征库的库容量进行一定的运算,例如:加权运算、倒数运算等,将运算结果作为第二热度值分量。第二热度值分量也可以称为库容量分量或者库大小分量。
在一个实施例中,可以将第一热度值分量和第二热度值分量的和运算或者积运算的结果确定为目标特征库的热度值。
上述实施例根据目标特征库的请求量和库容量分别确定对应的热度值分量,进而基于热度值分量得到目标特征库的热度值,使得所计算的热度值充分融合请求量和库容量等影响特征读取效率的因素,进而保证所计算的热度值的准确性和可靠性。
在一个实施例中,对于所述目标特征库,所述获取第一存储介质中的各个特征库的请求量,包括:获取所述目标特征库与当前时间周期对应的当前请求量曲线以及与设定历史时间周期对应的历史请求量曲线;从所述当前请求量曲线中确定所述目标特征库的当前请求量;从所述历史请求量曲线中确定所述目标特征库的最小请求量和最大请求量;所述根据所述目标特征库的请求量确定第一热度值分量,包括:计算所述当前请求量相对于所述最小请求量的差值,得到第一请求量差值;计算所述最小请求量相对于所述最大请求量的差值,得到第二请求量差值;根据所述第一请求量差值和所述第二请求量差值预测所述目标特征库在设定未来时间段的请求量;根据所述设定未来时间段的请求量确定所述第一热度值分量。
其中,时间周期的长度可以根据实际情况确定,可以是一天、一周等。在一个实施例中,当前时间周期可以是当天(即,调度控制设备运行时的日期)。设定历史时间周期可以是历史时间段内与当前时间周期对应的时间周期,以当天为周二为例,历史时间周期可以为过去一个月内的每个周二。
在一个实施例中,当前请求量曲线为当天的请求量曲线。历史请求量曲线可以是历史时间周期内各个请求量曲线整合得到的曲线,例如,计算历史时间周期内各个请求量曲线在同一时间点对应的取样点,计算这些取样点的平均值,进而将该平均值确定为与该时间点对应的历史请求量,进而基于各个时间段的历史请求量得到历史请求量曲线。历史请求量曲线也可以是历史时间周期的所有请求量曲线,在这种情况下,如果要确定历史请求量,则可以通过滑动方式从各个历史请求量曲线中获取对应时间点的请求量,并基于所获取的请求量计算平均值,将平均值确定为历史请求量。
当前请求量曲线和历史请求量曲线(可以是历史时间周期内各个请求量曲线整合得到的曲线,也可以是历史时间周期内的某个请求量曲线)的示意图可以如图3所示,301表示当前请求量曲线,302表示历史请求量曲线。假设当前时间为13:00,则当前请求量为303,从历史请求量曲线中得到目标特征库的最小请求量304和最大请求量305。
设定未来时间段可以根据实际情况来设置,例如,将未来一天、未来一周等确定为设定未来时间段。
在一个实施例中,根据所述第一请求量差值和所述第二请求量差值预测所述目标特征库在设定未来时间段的请求量;根据所述设定未来时间段的请求量确定所述第一热度值分量的具体过程可以为:
通过以下公式预测设定未来时间段的请求量:
其中,q为当前请求量,qmin为最小请求量,qmax为最大请求量。
进而基于设定未来时间段的请求量通过以下公式计算第一热度值分量:
上述实施例,确定当前请求量曲线中的当前请求量,通过滑动平均的方式确定历史请求量曲线中的历史请求量,并确定当前请求量与历史请求量之间的差值,并基于该差值预测目标特征库在设定未来时间段的请求量,基于该设定未来时间段的请求量得到第一热度值分量。基于当前请求量和历史请求量来预测未来的请求量,使得计算得到的热度值充分考虑到即将发生的请求,具有较强的适应性。
在一个实施例中,所述根据所述目标特征库的库容量确定第二热度值分量,包括:确定所述目标存储介质的特征库对应的最小库容量和最大库容量;确定所述目标特征库的库容量相对于所述最小库容量的差值,得到第一库容量差值;确定所述最小库容量相对于所述最大库容量的差值,得到第二库容量差值;根据所述第一库容量差值和所述第二库容量差值确定所述第二热度值分量。
通过以下公式计算目标特征库的库容量在目标存储介质中的库容量占比:
其中,s为目标特征库的库容量,smin为最小库容量,smax为最大库容量。
进而基于库容量占比通过以下公式计算第二热度值分量:
上述实施例,基于目标特征库的库容量在目标存储介质中的库容量占比来确定第二热度值分量,热度值的计算充分考虑了特征库的库容量,进而使得库容量大的特征库尽可能存储在第一存储介质中,以减少特征读取阶段的冷启动时间,进而提高存储介质的特征读取效率。
在一个实施例中,对于所述目标特征库,所述根据所述第一热度值分量和所述第二热度值分量确定所述目标特征库的热度值,包括:获取与所述目标特征库对应的调控参数值,根据所述调控参数值得到第三热度值分量;根据所述第一热度值分量、所述第二热度值分量和所述第三热度值分量确定所述目标特征库的热度值。
其中,调控参数值指的是对热度值进行调控的参数,以使目标特征库的热度值更加符合用户的预期。
在一个实施例中,调控参数值可以是在[0,1]之间取值的参数值。如果不希望某特征库从第一存储介质调度出去,可以通过将其调控参数值设置为一个较大的值来达到目的。
第三热度值分量也可以称为灵敏度分量。在一个实施例中,第三热度值分量可以是手动调节的分量。
在一个实施例中,通过以下公式来计算目标特征库的热度值:
其中,C表示第三热度值分量。
上述实施例基于请求量、库容量以及调控参数来确定对应的热度值分量,进而基于热度值分量得到目标特征库的热度值,能充分考虑到影响特征读取效率的各种因素,进而准确得到各个特征库的热度值。
在一个实施例中,所述根据所述第一热度值分量、所述第二热度值分量和所述第三热度值分量确定所述目标特征库的热度值,包括:获取所述目标特征库的库容量权重;所述库容量权重与所述目标特征库的库容量的大小线性相关;根据所述库容量权重对所述第二热度值分量进行加权计算;根据所述第一热度值分量、加权计算后的第二热度值分量和所述第三热度值分量得到所述目标特征库的热度值。
在一个实施例中,获取目标特征库的库容量权重的实现方式可以为:获取库容量权重与特征库容量的线性对应关系,基于该线性对应关系确定与目标特征库的库容量相匹配的库容量权重。在一个实施例中,假设有两个特征库1和2,当特征库1的库容量大于特征库2的库容量时,所确定的特征库1的库容量权重也大于特征库2的库容量权重。
目标存储介质中所有库容量的数量分布(即库数量分布)可以如图4所示。如图4所示,头部数量的库都是<1w特征数的小库。小库在第一存储介质和第二存储据介质中换入换出的成本低,可以在计算热度值时,调低小库在库大小分量上的权重值,使其热度值较低。在一个实施例中,如果第一存储介质的存储空间不足,需要换出特征库时,优先考虑特征数少的小库,即,对于小库,将其第二热度值分量的权重设置为一个较小的值,以使该特征库的热度值变低,进而使得其更有可能被调度到第二存储介质中。
上述实施例,基于库大小来对第二热度值分量进行调整,能基于所计算的热度值将大库存储在第一存储介质中,减少特征读取过程中的冷启动时间,进而提高存储介质的特征读取效率。
在一个实施例中,所述获取与所述目标特征库对应的调控参数值,包括:当所述目标特征库携带感兴趣标识时,将所述目标特征库的调控参数值设置为第一参数值;当所述目标特征库未携带感兴趣标识时,将所述目标特征库的调控参数值设置为第二参数值;所述第二参数值小于所述第一参数值。
其中,感兴趣标识可以指预先为特征库设置的标识。
在一个实施例中,根据特征库中的特征类型、特征库的重要程度等因素为特征库设置感兴趣标识。
在一个实施例中,当某一特征库的特征类型为便于数据读写的特征类型时,可以为该特征库设置感兴趣标识,当某一特征库的重要程度较高时也可以为该特征库设置感兴趣标识。
上述实施例中,基于预先设置的感兴趣标识来设置调控参数值,基于调控参数值来确定特征库的热度值,能使得感兴趣的特征库的热度值保持在一个较高的水平,进而存储在第一存储介质中,实现对特征库的按需配置。
在确定各个特征库的热度值并基于热度值完成特征库的调度之后,可以定期对目标存储介质中的特征库进行热度值更新,进而可以基于更新后的热度值重新对特征库进行调度。在一个实施例中,可以确定换入换出特征库频率(单位时间换入换出次数)和请求平响时间来衡量目标存储介质的特征读取效率,进而基于该特征读取效率对目标存储介质中的特征库进行热度值更新。其中,平响时间指的是单次特征读取请求的平均响应时间。
在一个实施例中,所述将所述待转移特征库调度至所述第二存储介质中之后,还包括:获取所述目标存储介质的特征库出入频率;所述特征库出入频率用于表征所述各个特征库在所述第一存储介质和所述第二存储介质之间调入和调出的频率;当所述特征库出入频率大于或等于出入频率阈值时,对所述各个特征库的第一热度值分量、第二热度值分量和第三热度值分量中至少一项的权重进行调整,根据调整结果对所述各个特征库的热度值进行更新。
其中,特征库出入频率指的是换入换出特征库频率,即,特征库在单位时间内在第一存储介质和第二存储介质之间的换入换出次数(从第一存储介质调度至第二存储介质可以认为是一次换出,从第二存储介质调度至第一存储介质可以认为是一次换入)。在一个实施例中,特征库出入频率指的是根据热度值进行特征库调度时特征库在第一存储介质和第二存储介质之间的换入换出次数。
出入频率阈值可以根据实际情况确定,例如:20次/s等。
在一个实施例中,对各个特征库的第一热度值分量、第二热度值分量和第三热度值分量的权重进行调整,基于调整后的权重来对热度值进行更新。确定更新后的热度值对应的特征库出入频率,如果特征库出入频率依然大于或等于出入频率阈值,则继续进行权重调整和热度值更新,直到特征库出入频率小于出入频率阈值或者更新次数大于设定的次数阈值(次数阈值的大小可以根据实际情况确定,本发明对次数阈值的大小不做限制)。
在一个实施例中,对权重进行调整的实现方式可以至少有以下实现方式:1、随机调整,例如,随机选择一个热度值分量,将其权重随机设置为一个更大或者更小的值。2、根据热度值分量对特征库出入频率的影响度大小来进行权重调整,例如,当库容量对特征库出入频率的影响较大时,可以对第二热度值分量的权重进行调整,以将库容量大的特征库的权重调整为一个更大的值,将库容量小的特征库的权重调整为一个更小的值。
上述实施例,对热度值分量权重进行调整,基于调整结果对特征库的热度值进行更新,能基于更新后的热度值得到特征库出入频率更低的存储介质,进而提高整个存储介质对特征读取请求的响应效率。
在一个实施例中,所述将所述待转移特征库调度至所述第二存储介质中之后,还包括:获取所述目标存储介质的请求响应时间;所述请求响应时间为所述目标存储介质对特征读取请求的响应时间;当所述请求响应时间大于或等于响应时间阈值时,对所述各个特征库的第一热度值分量、第二热度值分量和第三热度值分量中至少一项的权重进行调整,根据调整结果对所述各个特征库的热度值进行更新。
其中,请求响应时间指的是存储介质对特征读取请求的响应时间。在一个实施例中,请求响应时间可以指各个特征库对特征读取请求的响应时间的平均值,因此,请求响应时间也可以称为请求平响时间。
响应时间阈值可以根据实际情况确定,例如:2ms等。
在一个实施例中,对各个特征库的第一热度值分量、第二热度值分量和第三热度值分量的权重进行调整,基于随机调整后的权重来对热度值进行更新。确定更新后的热度值对应的请求响应时间,如果请求响应时间依然大于或等于出入频率阈值,则继续进行调整,直到请求响应时间小于出入频率阈值或者更新次数大于设定的次数阈值(次数阈值的大小可以根据实际情况确定,本发明对次数阈值的大小不做限制)。
在一个实施例中,对权重进行调整的实现方式可以至少有以下实现方式:1、随机调整,例如,随机选择一个热度值分量,将其权重随机设置为一个更大或者更小的值。2、根据热度值分量对请求响应时间的影响度大小来进行权重调整,例如,当请求量对请求响应时间的影响较大时,可以对第一热度值分量的权重进行调整,以将请求量大的特征库的权重调整为一个更大的值,将请求量小的特征库的权重调整为一个更小的值。
上述实施例,对热度值分量进行权重调整,基于调整结果对特征库的热度值进行更新,能基于更新后的热度值得到响应时间更短的存储介质,进而减少整个存储介质对特征读取请求的响应时间。
在一个实施例中,在对热度值分量的权重进行调整之后,可以确定调整后的特征库出入频率和请求响应时间,在两者均小于对应的阈值(或者两者均减少)时才结束热度值更新过程。
在一个实施例中,可以结合特征库出入频率和请求响应时间来对热度值分量的权重进行调整。例如:如果目标存储介质的特征库出入频率大于某个阈值并且请求响应时间大于某个阈值,那么说明整个目标存储介质的调度效率存在瓶颈,这时候大概率需要进行目标存储介质级别的扩容;如果目标存储介质的特征库出入频率大于某个阈值但请求响应时间并未大于阈值,可以调整第一热度值分量、第二热度值分量和第三热度值分量对热度值的贡献比重,减少换入换出频度,观察是否有利于降低请求平响时间;如果目标存储介质的特征库出入频率未大于某个阈值但请求响应时间并大于阈值,这时也可调整第一热度值分量、第二热度值分量和第三热度值分量对热度值的贡献比重,看减少换入换出的频度是否有利于请求平响时间的减少。
上述实施例结合特征库出入频率和请求平响时间来对热度值进行更新,能使得调整后的目标存储介质在特征库出入频率和请求平响时间上均是满足要求的,能有效保证目标存储介质的特征读取效率。
在一个实施例中,所述第一存储介质包含第一存储区和第二存储区;对于热度值排序在前的特征库的存储,所述第一存储区优先于所述第二存储区;所述根据所述热度值的排序在所述各个特征库中确定待转移特征库,包括:根据所述热度值的排序在所述第一存储区的特征库中确定待转移特征库。
其中,调度控制设备在基于特征分组得到特征库之后,可以根据调度控制设备在运行过程是否需要使用而将特征库分配至第一存储介质和第二存储介质中,将需要使用的特征库分配至第一存储介质中,将部需要使用的特征库分配至第二存储介质中。之后,在需要对目标存储介质中的特征库进行调度时,可以确定这些特征库的热度值,进而基于热度值在第一存储区的特征库中确定待转移特征库。
第一存储区可以称为常驻区或者热区,第二存储区可以称为临时区或者冷区。本发明实施例将第一存储区中热度值低的特征库调度至第二存储介质中,能使得第一存储区中的特征库都是热度值高的特征库。
上述实施例,对高速存储介质进行存储区划分,第一存储区存放一些指定的特征库,而第二存储区存放不指定的特征库。算法计算某一特征库的热度值,将热度值高的特征库存储在第一存储区中,热度值低的特征库会动态调度出高速存储介质,而非高速存储介质中热度值高的特征库会被阶梯性动态调度到高速存储介质(例如:先调度到第一存储区,之后可以调度到第二存储区中,实现阶梯性调度)。能使得第一存储区中的特征库具有较高的特征读取效率,进而提高目标存储介质的整体特征读取效率。
在一个实施例中,所述根据所述热度值的排序在所述第一存储区的特征库中确定待转移特征库,包括:当所述第一存储区中存在特征库的热度值低于所述第二存储区各个特征库的热度值时,将所述第一存储区中对应的特征库确定为所述待转移特征库;当所述第一存储区中存在特征库的热度值低于所述第二存储介质各个特征库的热度值时,将所述第一存储区中对应的特征库确定为所述待转移特征库。
在一个实施例中,可以将第二存储区和第二存储介质中热度值高于第一存储区中各个特征库的热度值的特征库确定为替换库。如果第二存储区中存储替换库,可以将该替换库调度至第一存储区中,当然,也可以不对替换库进行调度处理,在需要读取该替换库的特征时直接在第二存储区中读取对应的特征。如果第二存储介质中存储替换库,可以将该替换库调度至第一存储介质中,或者更具体的,调度至第一存储介质的第一存储区中。在一个实施例中,可以通过渐进加载的方式将第二存储介质中的特征库调度至第一存储介质中,例如:确定第一存储介质剩余的存储空间,将替换库的加载至第一存储介质中,当第一存储介质的存储空间不足以容纳替换库时,可以对替换库进行拆分,将替换库拆分得到的一部分加载至第一存储介质中,如果后续第一存储介质中有额外的存储空间时,则可以将替换库中剩下的部分加载至第一存储介质中。
其中,加载特征库指的是将检索(即,调度控制设备在运行过程中读取到)的query(需求)特征和待检索(即,调度控制设备在运行过程中可能读取到)的特征库从非高速存储介质加载到高速存储介质中。
在一个实施例中,如图5所示,第一存储介质501中被拆分为常驻区和临时区。常驻区、临时区以及第二存储介质502中各自存储有特征库。常驻区中的特征库按序排列,如图5中的空心箭头所指,排序越前的特征库的热度值越高。需要说明的是,图5中第二存储介质中存储有临时区中的各个特征库,在其他实施例中,第二存储介质中还可以存储常驻区中的各个特征库,还可以不存储常驻区和临时区中的特征库而仅仅存储第一存储介质中并未存储的特征库。
将临时区和第二存储介质中的特征库调度至常驻区的实现方式至少有以下两种情况:1、临时区存在替换库(库5),此时可以用将库5调度至常驻区中(曲线1表示),当然,由于库5可以在第一存储介质中被直接调度,因此,也可以不将库5调度至常驻区中。2、临时区不存在替换库,那么就需要从持久层读取库5,渐进加载到第一存储介质中来(曲线2表示)。
上述实施例,整个目标存储介质中的特征库的热度值来确定第一存储区中的待转移特征库,能使得第一存储区中特征库的热度值不仅高于第一存储区而且高于第二存储介质,能使得第一存储区中的特征库具有较高的特征读取效率,进而提高目标存储介质的整体特征读取效率。
在一个实施例中,第一存储区按照热度值来确定待转移特征库,进而将待转移特征库调度至第二存储介质中。第二存储区也可以按照同样的方式实现特征库的淘汰调度。
在另一些实施例中,为了减少运算量,第二存储区可以采用更为简单的方式来确定待转移特征库。进一步的,可以至少采用以下两种方式来确定待转移特征库:
1、LRU(Least Recently Used,最近最少使用)淘汰:记录第二存储区中最近未被使用的特征库,并从第二存储区中淘汰。
2、LFU(Least Frequently Used,最不经常使用)淘汰:记录第二存储区中最不常使用的特征库,并从第二存储区中淘汰。
在一个实施例中,所述根据所述热度值的排序在所述第一存储区的特征库中确定待转移特征库之后,还包括:确定所述第二存储区中各个特征库在设定历史时间段内的读取频率;将所述第二存储区中读取频率满足条件的特征库调度至所述第二存储介质中。
其中,设定历史时间段可以为过去一周、一月、一年等。
读取频率指的是对应特征库与特征读取请求相匹配的次数,即某一特征读取请求要读取的是该特征库。
上述实施例中,根据第二存储区中各个特征库的读取频率在第二存储区中确定待转移特征库,并将该待转移特征库调度至第二存储介质中,其运算过程简单,运算量小,使得第二存储介质的调度效率高,进而提高整个目标存储介质的调度效率。
在一个实施例中,所述获取第一存储介质中的各个特征库的请求量之前,还包括:确定所述目标存储介质中的各个特征的读取命中热度;所述读取命中热度根据特征的被读取次数相对于所述目标存储介质的总被读取次数的比值确定;确定所述读取命中热度的数量分布状态;根据所述数量分布状态对所述各个特征进行分组,将所得到的分组确定为所述目标存储介质中的特征库。
对于某一特征库,检索发生后(即调度控制设备接收到针对目标存储介质的特征读取请求),如果命中了该特征库的某些特征,就进行读取命中的记录,并计算这些特征在此特征库中的读取命中热度。
对于某一特征,可以按照如下公式计算其读取命中热度:
其中,n表示某一特征的被读取次数;N表示目标存储介质的总被读取次数;α表示待定系数,主要目的是控制读取命中热度值的大小。
在一个实施例中,α的大小可以根据实际情况确定,例如为500、1000等。
对于发生1000次读取的某一特征库,α可以取值为1000。该特征库的数量分布状态(也可以称为命中率热力值分布)可以如图6所示,可以按照如图6所示的分布特征(图6中横坐标表示库大小,纵坐标表示读取命中热度),将其中的特征划分为均匀或者不仅要的特征库。
对于一个特征库,很可能检索服务并不先验知道拆分的方式,只能通过后验技术手段探测,把拆分后的库大小控制在合理范围内。上述实施例按照特征被读取的读取命中热度来进行特征库的动态拆分,将读取命中热度低的特征库分配至非高速存储介质中,能通过在线检索的方式淘汰不活跃的特征数据,拆分后的特征库更加易于实现动态调度,同时能使得同一特征库内特征的读取命中热度一致,在后续进行特征读取时,可以集中向其中主要的特征库(即特征库中包含的特征读取频率高)进行特征读取,能有效减少特征库定位的时间,进而提高特征读取的效率。
在一个实施例中,还可以通过其他的方式来对目标存储介质中的特征进行拆库。例如,可以至少采用以下几种方式来进行拆库:
1、以空间拆库,例如,在需要对某一个商场内部做人脸检索的场景,每层拆分为一个人脸库;
2、以时间拆库,例如,在某些监控类场景中,每天拆分为一个人脸库;
3、以逻辑分类拆库,比如有一个全国的人脸库,那么可以拆分为省市库、地级市库等等,减小每个库大小,检索时,也可以提升并发度。
在一个实施例中,可以将读取命中热度的拆库方式与上述拆库方式中的至少一种相结合。例如:在某些监控类场景中,每天拆分为一个人脸库,确定拆分得到的人脸库中特征的读取命中热度,根据读取命中热度对各个人脸库进行进一步拆分,得到更为细化的特征库。在一个实施例中,在按照空间、时间、逻辑分类等方式进行拆库处理后,可以拆分得到的所有初始特征库都进行进一步拆库处理,也可以仅对部分初始特征库进行进一步拆库处理,例如:确定拆分得到的初始特征库的库容量,对其中库容量大于设定库容量阈值的特征库进行进一步拆分,即进一步按照读取命中热度进行拆分。
在一个实施例中,提供了一种特征库的调度方法,以该方法应用于图1中的调度控制设备为例进行说明,包括以下步骤:
1、特征库的动态拆库方案
目标存储介质包含高速存储介质和非高速存储介质,高速存储介质和非高速存储介质中分别存储有特征。分别对高速存储介质和非高速存储介质中的特征进行特征库拆分(拆库)处理,以得到高速存储介质和非高速存储介质中的特征库:
以下以高速存储介质为例,说明拆库的实现过程(非高速存储介质的拆库过程与高速存储介质的拆库过程类似,在此不再赘述):
先按照空间、时间、逻辑分类等方式对其中的特征库进行拆库处理,得到初始特征库。
对初始特征库中的大库进行进一步拆库。对于某一需要进一步拆库的初始特征库D0,其中某一特征的读取命中热度值的计算公式如下:
在计算完初始特征库D0中各个特征的读取命中热度之后,按照特定的拆库规则对初始特征库D0进行拆库处理。其中,拆库规则为:按读取命中热度的分布特征,均匀划分小库。
将需要进一步拆库的初始特征库所划分的小库以及不需要进一步拆库的初始特征库确定为高速存储介质中的特征库。将高速存储介质拆分为常驻区和临时区,其中,常驻区中可以存储读取命中热度排序在前的特征库。
对于拆分得到的特征库,使用以下的动态调度算法进行调度:
2、特征库的动态调度
计算目标存储介质中各个特征库的热度值。
对于其中任意一个目标特征库:
按照以下公式计算第一热度值分量:
按照以下公式计算第二热度值分量:
获取预先设置的灵敏度(即前述调控参数值),根据灵敏度得到第三热度值分量。具体的,灵敏度的设置方式至少有以下两种方式:一是特定特征库的灵敏度调高,比如将高速存储介质中某一特征库的灵敏度设置为0.65,防止其从高速存储介质中被换出;二是高速存储介质和非高速存储介质设置不同的灵敏度,防止频繁换入换出,比如将高速存储介质中各个特征库的灵敏度均设置为高于非高速存储介质中各个特征库的灵敏度。
之后按照以下公式计算目标特征库的热度值:
按照上述方式完成目标存储介质中所有特征库的热度值计算。
假设目标存储介质中有库1/2/3/4/5/6这些特征库,这些特征库对应的信息如下(单位已省略):
基于QPS、库容量、灵敏度、最大QPS(最大请求量)、最小QPS(最小请求量)、最大库容量以及最小库容量计算得到这些特征库的热度值(如第二列所示)。
假设目标存储介质的高速存储介质的常驻区中存储的是库1、库2以及库3,临时区存储的是库4和库5,目标存储介质的非高速存储介质中存储的是库6。
基于目标存储介质中所有特征库的热度值完成特征库的调度。以下对部分特征库的调度过程举例说明:
上表中,将常驻区中的各个特征库的热度值与临时区中各个特征库的热度值进行比对。将库3与库5进行比对可以发现,虽然库3的库容量更大,但是请求QPS不活跃,只有50/s,根据算法计算得到库3的热度值=1.580。而库5虽然库很小,但是其QPS已经达到了489,根据算法计算得到的库5的热度值=1.659,其热度值高于库3,属于活跃的库。因此,库5已经可以替换库3,即,库3为高速存储介质中的待转移特征库,调度控制设备可以将库3调度至非高速存储介质中,从而使得目标存储介质这一检索系统的整体特征读取效率更高。
之后可以计算临时区中各个特征库的LRU,基于所计算的LRU确定临时区中的待转移特征库,进而将临时区中的待转移特征库调度至非高速存储介质中。
当然,如果非高速存储介质中存在热度值高于常驻区中各个特征库的热度值的特征库时,可以将非高速存储介质中对应的特征库调度至常驻区或者临时区中。
3、特征库的读取效率评估
在完成目标存储介质中特征库的调度至后,对目标存储介质的特征读取效率进行评估,进而可以对特征库进行调度调整。具体可以使用换入换出特征库频率和请求平响时间来评估特征读取效率。
如果目标存储介质的换入换出特征库频率大于某个阈值并且请求平响时间大于某个阈值,那么说明整个目标存储介质的调度效率存在瓶颈,这时候对目标存储介质进行扩容处理;
如果换入换出特征库频率大于某个阈值但请求平响时间并未大于阈值,可以调整各个特征库中第一热度值分量、第二热度值分量和第三热度值分量对热度值的贡献比重,减少换入换出频度,并确定是否有利于降低请求平响时间,如果换入换出频度和请求平响时间均降低则可以停止热度值更新的过程;
如果换入换出特征库频率未大于某个阈值但请求平响时间并大于阈值,这时尝试调整第一热度值分量、第二热度值分量和第三热度值分量对热度值的贡献比重,确定减少换入换出的频度是否有利于请求平响时间减少,如果换入换出频度和请求平响时间均降低则可以停止热度值更新的过程。
基于更新后的热度值重新对目标存储介质中的特征库进行调度。
上述实施例至少具有以下有益效果:
1、经过动态拆库之后,可以逐步将特征库从大拆小,拆小后的库方便动态调度,以衡量拆解后的特征库在目标存储介质中的活跃程度,不活跃的特征库就放到非高速存储介质中,以减少存储成本。
2、高速存储介质在目标存储介质中占据了大头成本,本发明实施例引入了热度值计算模型,综合考虑特征库即将到来的请求量、库大小以及灵敏度等因素,能得到准确的热度值。进而可以实现对目标存储介质的特征库的可靠调度。
3、经腾讯云人脸识别服务验证,在大量长尾小库场景下,减少常驻在高速存储介质中的特征库数量,高速存储介质的容量占用降到一半,相应的机器资源成本也可以降低一半,但此时可以支持同样数量级的库,大幅提升了高速存储介质的利用率。
本申请还提供一种应用场景,该应用场景应用上述的特征库的调度方法。具体地,如图7所示,该特征库的调度方法在该应用场景的应用如下:
该应用场景中包含有调度控制设备701、计算机设备集群702(图7中计算机设备集群为3个,在实际的应用场景中,计算机设备集群的数量可以更多也可以更少)以及持久存储计算机设备703。计算机设备集群为分布式架构。各个计算机设备集群内可以包含至少一个计算机设备7021(也可以称为检索节点),同一计算机设备集群中的计算机设备存储的特征库相同,以起到备份效果。
计算机设备集群的各个计算机设备配置有高速存储介质,持久存储计算机设备配置有非高速存储介质。
计算机设备集群的各个计算机设备和持久存储计算机设备分别对其存储的特征进行拆库处理,得到对应的特征库。
在调度周期到达时,调度控制设备确定各个计算机设备集群所有特征库的热度值,进而将常驻区中热度值低的特征库通过持久存储计算机设备调度至非高速存储介质中,将临时区中LRU满足条件的特征库通过持久存储计算机设备调度至非高速存储介质。另外,对于持久存储计算机设备中热度值高的特征库,也可以加载至相匹配的计算机设备集群的高速存储介质中。
上述实施例通过分布式的方式实现对特征库的存储,能可靠地对特征库进行存储,并在不同计算机设备之间实现特征库的备份,有效保证所存储的特征的安全性。
在一个实施例中,计算机设备集群中的计算机设备也可以指不同的进程。
基于前述实施例中的特征库的调度方法可以对目标存储介质中的特征库进行调度。可以基于调度完成的目标存储介质实现特征检索方法。进一步的,后续实施例中提供的特征检索方法可以基于前述的特征库的调度方法的实施例实现,即特征检索方法的具体实现方式可以参考特征库的调度方法的各个实施例,另外,特征库的调度方法的具体实现方式也可以参考特征检索方法的各个实施例。这两部分实施例的相关内容可以相互结合或者相互应用,为节约文本篇幅,并未将所有可能的组合列出。
在一个实施例中,如图8所示,提供了一种特征检索方法,以该方法应用于图1中的调度控制设备为例进行说明,包括以下步骤:
S801,获取参考检索特征和特征库识别信息。
在人工智能等领域中,需要从存储介质中读取特征库,并基于所读取特征库来匹配到所需的特征,进而人脸图片、视频比对等目的。其中,从存储介质中获取所需特征的过程就可以称为是特征检索过程。
其中,参考检索特征指的是特征检索的基础,即需要从存储介质中检索出与该参考检索特征相匹配的特征。参考检索特征的具体内容和形式可以参见前述特征库的调度方法的实施例,在此不再赘述。
由于特征是按照特征库的形式存储的,因此在特征检索过程中,需要先定位要对应的特征库。因此,S801先获取特征库识别信息,以便后续据此定位到对应的特征库。其中,特征库识别信息可以是特征库标识、编号等。
S801的实现过程可以为:接收特征检索请求,该特征检索请求中包含参考检索特征和特征库识别信息。
S802,在第一存储介质的特征库中确定与所述特征库识别信息对应的目标特征库;所述第一存储介质为目标存储介质中的存储介质,所述目标存储介质还包含第二存储介质,对于针对所述目标存储介质的特征读取请求,所述第一存储介质的响应顺序优先于所述第二存储介质;所述第一存储介质中的特征库在热度值满足条件时被调度至所述第二存储介质中,所述热度值用于表征所述第一存储介质中的特征库在所述目标存储介质内被调度时对所述目标存储介质的特征读取效率的影响度。
目标存储介质的设置方式可以参见前述的各个特征库的调度方法实施例。简单来说,目标存储介质中包含第一存储介质和第二存储介质,基于第一存储介质中各个特征库的热度值来将第一存储介质中的特征库调度至第二存储介质中。使得调度之后第一存储介质中各个特征库的热度值都处于较高水平,能快速地对特征检索请求进行响应。另外,存储介质中特征库的拆分也可以参见前述特征库的调度方法实施例,在此不再赘述。
由于第一存储介质优先于第二存储介质来进行特征读取,因此,在接收到特征检索请求时,是先从第一存储介质中读取特征的。因此,S802在第一存储介质的特征库中定位与特征库识别信息对应的目标特征库。
S803,从所述目标特征库中读取所存储的各个特征。
目标特征库中存储有至少一个特征,S803从中读取所存储的各个特征(可以是所有特征,也可以是其中部分特征)。
S804,在所述所读取的各个特征中确定出与所述参考检索特征相匹配的目标检索特征。
S804将所读取的各个特征与参考检索特征进行匹配性计算,将匹配性满足条件的特征确定为检索到的最终结果,即得到目标检索特征。
上述特征检索方法,目标存储介质中包含第一存储介质和第二存储介质,对于针对目标存储介质的特征读取请求,第一存储介质的响应顺序优先于第二存储介质;第一存储介质中的特征库在热度值满足条件时被调度至第二存储介质中,使得第一存储介质中存储的都是热度值高的特征库;在特征检索过程中,获取参考检索特征和特征库识别信息;由于第一存储介质中存储的都是热度值高的特征库,因此,能够在第一存储介质的特征库中快速定位到与特征库识别信息对应的目标特征库,进而从目标特征库中快速读取所存储的各个特征;在所读取的各个特征中确定出与参考检索特征相匹配的目标检索特征。可以快速地在存储介质中定位到特征库以实现特征的读取,进而提高整个存储介质的特征检索效率。
在一个实施例中,所述在第一存储介质的特征库中确定与所述特征库识别信息对应的目标特征库,包括:在计算机设备集群中通过负载均衡的方式确定目标计算机设备;所述计算机设备集群中的计算机设备存储的特征库一致,所述目标计算机设备中配置有第一存储介质;从所述目标计算机设备的第一存储介质中的特征库中,确定与所述特征库识别信息对应的所述目标特征库。
上述实施例通过分布式的方式实现对特征库的存储,能可靠地对特征库进行存储。
在一个实施例中,所述第一存储介质包含第一存储区和第二存储区;对于热度值排序在前的特征库的存储,所述第一存储区优先于所述第二存储区;所述从所述目标计算机设备的第一存储介质中的特征库中,确定与所述特征库识别信息对应的所述目标特征库之前,还包括:确定所述第一存储区中的特征库在所述目标存储介质内被调度时对应的热度值;将热度值排序满足条件的所述第一存储区中的特征库调度至所述第二存储介质中。
上述实施例,对高速存储介质进行存储区划分,将热度值高的特征库存储在第一存储区中,能使得第一存储区中的特征库具有较高的特征读取效率,进而提高目标存储介质的整体特征读取效率。另外,传统技术是对整个高速存储介质中进行检索,而本方案中是将重要的库集中在常驻区中,只需要在常驻区中进行库的检索即可,提高了目标存储介质的利用率。
在一个实施例中,所述在所述所读取的各个特征中确定出与所述参考检索特征相匹配的目标检索特征,包括:确定所读取的各个特征与所述参考检索特征之间的特征向量距离;将所读取的各个特征中特征向量距离小于预设距离阈值的特征确定为所述目标检索特征。
如前述实施例所述,特征可以是特征向量的形式。本实施例在计算特征之间的距离时就采用特征向量距离来计算。在一个实施例中,可以计算各个特征与参考检索特征之间的点积、欧氏距离等,作为特征向量距离。
预设距离阈值可以根据实际情况确定,本发明实施例对其具体大小不做限制。
上述实施例,根据特征之间的特征向量距离来从众多的特征中确定出尽可能相似的目标检索特征,确定过程简单便捷,能有效提高特征检索的效率。
在一个实施例中,所述在所述所读取的各个特征中确定出与所述参考检索特征相匹配的目标检索特征之后,还包括:确定所述参考检索特征对应的第一人脸媒体信息和所述目标检索特征对应的第二人脸媒体信息;根据所述参考检索特征和所述目标检索特征之间的特征向量距离得到所述第一人脸媒体信息和所述第二人脸媒体信息的相似度;根据所述相似度确定人脸特征比对结果。
其中,人脸媒体信息可以指包含有人脸信息的图片、视频等。
在人脸识别等场景中,往往需要将两张人脸媒体信息进行比对,例如:通过图片比对确定图片中指代的是否为同一个人。
上述实施例,基于特征之间的特征向量距离来确定第一人脸媒体信息和第二人脸媒体信息的相似度,进而输出人脸特征比对结果,该人脸特征比对结果能够应用于人物识别、逃犯追踪等场景。由于存储介质中特征库是经过调度优化处理的,在进行特征库检索时,能在最短的时间内检索到目标检索特征,进而可以快速地输出人脸特征比对结果,有效保证人脸比对的效率。
本申请还提供一种应用场景,该应用场景应用上述的特征检索方法。具体地,如图9所示,该特征库检索方法在该应用场景的应用如下:
该应用场景中包含有检索接入层(可以通过计算机设备实现)、检索节点集群(图9中检索节点集群为A/B/C这3个,在实际的应用场景中,检索节点集群的数量可以更多也可以更少)以及配置有非高速存储介质的持久存储计算机设备。各个检索节点集群内可以包含至少一个检索节点,同一检索节点集群中的检索节点(也称为实例,如图9中的实例1和实例2,可以通过高速存储介质实现)存储的特征库相同,同时,检索节点被划分为常驻区和临时区。
检索节点集群的各个检索节点对其存储的特征进行拆库处理,得到对应的特征库。在调度周期到达时,调度控制设备确定各个检索节点集群所有特征库的热度值,进而将常驻区中热度值低的特征库调度至非高速存储介质中,将临时区中LRU满足条件的特征库调度至非高速存储介质中。另外,对于非高速存储介质中热度值高的特征库,也可以加载至相匹配的检索节点集群的检索节点中。
在接收到人脸特征检索请求时,检索接入层通过路由策略定位到检索节点集群,并通过负载均衡的方式确定对应的实例。在实例中定位到对应的特征库,基于所定位的特征库读取对应的特征,并确定出与人脸特征检索请求中的参考人脸特征相匹配的目标人脸特征。并基于参考人脸特征和目标人脸特征的比对结果输出人脸特征比对结果。
上述实施例,经过动态拆库之后,逐步将特征库从大拆小,拆小后的库方便动态调度,以衡量拆解后的库在人脸检索系统中的活跃程度,不活跃的库就放到非高速存储介质中,以减少存储成本,能有效保证人脸特征的检索效率。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于与上述实施例中的特征库的调度方法相同的思想,本发明还提供特征库的调度装置,该装置可用于执行上述特征库的调度方法。为了便于说明,特征库的调度装置实施例的结构示意图中,仅仅示出了与本发明实施例相关的部分,本领域技术人员可以理解,图示结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在一个实施例中,如图10所示,提供了一种特征库的调度装置1000,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:请求量获取模块1001、库容量获取模块1002、热度值确定模块1003、待转移特征库确定模块1004和第一特征库调度模块1005,其中:
请求量获取模块1001,用于获取第一存储介质中的各个特征库的请求量;所述第一存储介质为目标存储介质中的存储介质,所述目标存储介质还包含第二存储介质,对于针对所述目标存储介质的特征读取请求,所述第一存储介质的响应顺序优先于所述第二存储介质;所述各个特征库的请求量根据各个特征库与所述特征读取请求的匹配数量确定。
库容量获取模块1002,用于获取所述各个特征库的库容量。
热度值确定模块1003,用于根据所述各个特征库的请求量和库容量确定所述各个特征库的热度值;所述热度值用于表征所述各个特征库在所述目标存储介质内被调度时对所述目标存储介质的特征读取效率的影响度。
待转移特征库确定模块1004,用于根据所述热度值的排序在所述各个特征库中确定待转移特征库。
第一特征库调度模块1005,用于将所述待转移特征库调度至所述第二存储介质中。
上述特征库的调度装置中,能使得第一存储介质中存储的都是热度值高的特征库,可以快速地对特征读取请求进行响应,进而提高整个存储介质的特征读取效率。
在一个实施例中,热度值确定模块,包括:第一分量确定子模块,用于对于所述各个特征库中的任意一个目标特征库,根据所述目标特征库的请求量确定第一热度值分量;第二分量确定子模块,用于根据所述目标特征库的库容量确定第二热度值分量;第一热度值确定子模块,用于根据所述第一热度值分量和所述第二热度值分量确定所述目标特征库的热度值。
在一个实施例中,对于所述目标特征库,请求量获取模块,包括:请求量曲线获取子模块,用于获取所述目标特征库与当前时间周期对应的当前请求量曲线以及与设定历史时间周期对应的历史请求量曲线;第一请求量获取子模块,用于从所述当前请求量曲线中确定所述目标特征库的当前请求量;第二请求量获取子模块,用于从所述历史请求量曲线中确定所述目标特征库的最小请求量和最大请求量;第一分量确定子模块,包括:第一请求量差值计算单元,用于计算所述当前请求量相对于所述最小请求量的差值,得到第一请求量差值;第二请求量差值计算单元,用于计算所述最小请求量相对于所述最大请求量的差值,得到第二请求量差值;请求量预测单元,用于根据所述第一请求量差值和所述第二请求量差值预测所述目标特征库在设定未来时间段的请求量;第一分量确定单元,用于根据所述设定未来时间段的请求量确定所述第一热度值分量。
在一个实施例中,第二分量确定子模块,包括:库容量确定单元,用于确定所述目标存储介质的特征库对应的最小库容量和最大库容量;第一库容量差值确定单元,用于确定所述目标特征库的库容量相对于所述最小库容量的差值,得到第一库容量差值;第二库容量差值确定单元,用于确定所述最小库容量相对于所述最大库容量的差值,得到第二库容量差值;第二分量确定单元,用于根据所述第一库容量差值和所述第二库容量差值确定所述第二热度值分量。
在一个实施例中,第一热度值确定子模块,包括:第三分量确定单元,用于获取与所述目标特征库对应的调控参数值,根据所述调控参数值得到第三热度值分量;热度值确定单元,用于根据所述第一热度值分量、所述第二热度值分量和所述第三热度值分量确定所述目标特征库的热度值。
在一个实施例中,热度值确定单元,包括:库容量权重获取子单元,用于获取所述目标特征库的库容量权重;所述库容量权重与所述目标特征库的库容量的大小线性相关;加权子单元,用于根据所述库容量权重对所述第二热度值分量进行加权计算;热度值确定子单元,用于根据所述第一热度值分量、加权计算后的第二热度值分量和所述第三热度值分量得到所述目标特征库的热度值。
在一个实施例中,第三分量确定单元,包括:第一参数值设置子单元,用于当所述目标特征库携带感兴趣标识时,将所述目标特征库的调控参数值设置为第一参数值;第二参数值设置子单元,用于当所述目标特征库未携带感兴趣标识时,将所述目标特征库的调控参数值设置为第二参数值;所述第二参数值小于所述第一参数值。
在一个实施例中,所述装置还包括:出入频率获取模块,用于获取所述目标存储介质的特征库出入频率;所述特征库出入频率用于表征所述各个特征库在所述第一存储介质和所述第二存储介质之间调入和调出的频率;第一热度值更新模块,用于当所述特征库出入频率大于或等于出入频率阈值时,对所述各个特征库的第一热度值分量、第二热度值分量和第三热度值分量中至少一项的权重进行调整,根据调整结果对所述各个特征库的热度值进行更新。
在一个实施例中,所述装置还包括:响应时间获取模块,用于获取所述目标存储介质的请求响应时间;所述请求响应时间为所述目标存储介质对特征读取请求的响应时间;第二热度值更新模块,用于当所述请求响应时间大于或等于响应时间阈值时,对所述各个特征库的第一热度值分量、第二热度值分量和第三热度值分量中至少一项的权重进行调整,根据调整结果对所述各个特征库的热度值进行更新。
在一个实施例中,所述第一存储介质包含第一存储区和第二存储区;对于热度值排序在前的特征库的存储,所述第一存储区优先于所述第二存储区;待转移特征库确定模块,还用于根据所述热度值的排序在所述第一存储区的特征库中确定待转移特征库。
在一个实施例中,待转移特征库确定模块,包括:第一待转移特征库确定子模块,用于当所述第一存储区中存在特征库的热度值低于所述第二存储区各个特征库的热度值时,将所述第一存储区中对应的特征库确定为所述待转移特征库;第二待转移特征库确定子模块,用于当所述第一存储区中存在特征库的热度值低于所述第二存储介质各个特征库的热度值时,将所述第一存储区中对应的特征库确定为所述待转移特征库。
在一个实施例中,所述装置还包括:读取频率确定模块,用于确定所述第二存储区中各个特征库在设定历史时间段内的读取频率;第二特征库调度模块,用于将所述第二存储区中读取频率满足条件的特征库调度至所述第二存储介质中。
在一个实施例中,所述装置还包括:命中热度确定模块,用于确定所述目标存储介质中的各个特征的读取命中热度;所述读取命中热度根据特征的被读取次数相对于所述目标存储介质的总被读取次数的比值确定;分布状态确定模块,用于确定所述读取命中热度的数量分布状态;特征分组模块,用于根据所述数量分布状态对所述各个特征进行分组,将所得到的分组确定为所述目标存储介质中的特征库。
关于特征库的调度装置的具体限定可以参见上文中对于特征库的调度方法的限定,在此不再赘述。上述特征库的调度装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
基于与上述实施例中的特征检索方法相同的思想,本发明还提供特征检索装置,该装置可用于执行上述特征检索方法。为了便于说明,特征检索装置实施例的结构示意图中,仅仅示出了与本发明实施例相关的部分,本领域技术人员可以理解,图示结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在一个实施例中,如图11所示,提供了一种特征检索装置1100,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:识别信息获取模块1101、特征库确定模块1102、目标特征确定模块1103和检索特征确定模块1104,其中:
识别信息获取模块1101,用于获取参考检索特征和特征库识别信息。
特征库确定模块1102,用于在第一存储介质的特征库中确定与所述特征库识别信息对应的目标特征库;所述第一存储介质为目标存储介质中的存储介质,所述目标存储介质还包含第二存储介质,对于针对所述目标存储介质的特征读取请求,所述第一存储介质的响应顺序优先于所述第二存储介质;所述第一存储介质中的特征库在热度值满足条件时被调度至所述第二存储介质中,所述热度值用于表征所述第一存储介质中的特征库在所述目标存储介质内被调度时对所述目标存储介质的特征读取效率的影响度。
目标特征确定模块1103,用于从所述目标特征库中读取所存储的各个特征。
检索特征确定模块1104,用于在所述所读取的各个特征中确定出与所述参考检索特征相匹配的目标检索特征。
上述特征检索装置中,可以快速地在存储介质中定位到特征库以实现特征的读取,进而提高整个存储介质的特征检索效率。
在一个实施例中,特征库确定模块,包括:设备确定子模块,用于在计算机设备集群中通过负载均衡的方式确定目标计算机设备;所述计算机设备集群中的计算机设备存储的特征库一致,所述目标计算机设备中配置有第一存储介质;目标特征库确定子模块,用于从所述目标计算机设备的第一存储介质中的特征库中,确定与所述特征库识别信息对应的所述目标特征库。
在一个实施例中,所述第一存储介质包含第一存储区和第二存储区;对于热度值排序在前的特征库的存储,所述第一存储区优先于所述第二存储区;特征库确定模块,包括:第二热度值确定子模块,用于确定所述第一存储区中的特征库在所述目标存储介质内被调度时对应的热度值;特征库调度子模块,用于将热度值排序满足条件的所述第一存储区中的特征库调度至所述第二存储介质中。
在一个实施例中,检索特征确定模块,包括:距离确定子模块,用于确定所读取的各个特征与所述参考检索特征之间的特征向量距离;目标检索特征确定子模块,用于将所读取的各个特征中特征向量距离小于预设距离阈值的特征确定为所述目标检索特征。
在一个实施例中,所述装置还包括:媒体信息确定模块,用于确定所述参考检索特征对应的第一人脸媒体信息和所述目标检索特征对应的第二人脸媒体信息;相似度确定模块,用于根据所述参考检索特征和所述目标检索特征之间的特征向量距离得到所述第一人脸媒体信息和所述第二人脸媒体信息的相似度;人脸比对结果确定模块,用于根据所述相似度确定人脸特征比对结果。
关于特征检索装置的具体限定可以参见上文中对于特征检索方法的限定,在此不再赘述。上述特征检索装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图12所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储特征数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种特征库的调度方法或者一种特征检索方法。
本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。