一种特征对比方法、系统、设备以及介质技术方案

技术编号:26172878 阅读:21 留言:0更新日期:2020-10-31 13:52
本发明专利技术公开了一种特征对比方法,包括以下步骤:构建特征底库;计算所述特征底库中的每一个物体对应的多个特征向量两两之间的相似度以得到所述每一个物体对应的相似度范围;将多个物体的相似度范围取并集以得到相似度的阈值范围;计算待对比的特征向量与所述特征底库中的每一个特征向量之间的相似度;将计算得到的处于所述阈值范围内的相似度对应的特征向量进行排序;基于该排序将若干特征向量分别对应的物体ID返回给用户。本发明专利技术还公开了一种系统、计算机设备以及可读存储介质。本发明专利技术提出的方案通过对特征底库中同一物体所有特征向量计算相似度,从而确定准确的相似度阈值范围,防止由于异常情况导致的相似度过大影响实际对比结果。

【技术实现步骤摘要】
一种特征对比方法、系统、设备以及介质
本专利技术涉及特征对比领域,具体涉及一种特征对比方法、系统、设备以及存储介质。
技术介绍
快速比对过程是指实时提取的特征与特征底库做相似性比较,选择相似性高的特征返回其索引。相似性计算方法较多,如欧式距离、皮尔逊相关系数、余弦相似度等,核心方法都包括向量乘加运算。特征底库是预先提取好的大规模的生物识别特征,比如人脸特征向量、声纹特征向量,随着计算设备能力和需求的不断提高,底库特征已拓展到千万级或亿级。实时提取特征指客户请求比对的向量,在单设备及如此巨大的底库上完成实时特征的一一比对,其响应延迟巨大。现有的技术方案大多基于CPU设备完成,结合大数据或搜索引擎抽取特征数据,特征数据通常为单精度固定维度向量存储,然后进行M:N的比对(M为实时特征数量,N为底库特征数量),该方案可以将数据存放于硬盘有更高的存储冗余。目前实现特征比对的算法,包括相似性和快排算法都有很多成熟的方案,比如求解欧氏距离使用双调排序进行筛选得到topN数据,这些方案在一定程度上可以满足用户需求,结合CPU计算设备面对千万~亿级别的比对可以投入使用。该方案的技术流程为:1、特征库向量存放于内存;2、当前实时特征与所有底库特征做相似性比对;3、比对结果进行快速排序。但是基于CPU设备的特征比对方案,计算吞吐小,面对大规模数据比对其延迟时间很长,影响比对系统的整体效率,如果保持高比对效率需要横向扩展CPU处理设备,增加硬件成本也会带来通信量增加的风险。目前也有基于GPU-CUDA实现的特征比对方案,其基本流程与CPU流程类似,但其强大的浮点运算能力和并行架构使得相同任务下,计算设备的数量和需求大大减少,浮点计算吞吐能力强,可以进行多任务并行比对。但是基于GPU设备的特征比对方案,由于采用单精度向量存储,且显存空间有限,导致单设备处理任务数减少,在面对巨大特征底库时采用人工设计的相似性及快排CUDA核函数会带来效率低、计算慢的问题。
技术实现思路
有鉴于此,为了克服上述问题的至少一个方面,本专利技术实施例提出一种特征对比方法,包括以下步骤:构建特征底库;计算所述特征底库中的每一个物体对应的多个特征向量两两之间的相似度以得到所述每一个物体对应的相似度范围;将多个物体的相似度范围取并集以得到相似度的阈值范围;计算待对比的特征向量与所述特征底库中的每一个特征向量之间的相似度;将计算得到的处于所述阈值范围内的相似度对应的特征向量进行排序;基于所述排序将若干特征向量分别对应的物体ID返回给用户。在一些实施例中,构建特征底库,进一步包括:利用训练好的神经网络模型对物体的多个图像分别提取特征向量;将提取到的多个所述特征向量的精度降低至目标精度。在一些实施例中,将提取到的多个所述特征向量的精度降低至目标精度,进一步包括:将构成所述特征向量的标量数据进行排序;根据所述目标精度对应的范围值分别计算前M个的标量数据和后M个的标量数据对应的数据密度;利用所述前M个的标量数据中所述数据密度最大的标量数据除以所述目标精度对应的范围值中的最大值确定第一缩放值,并利用所述后M个的标量数据中所述数据密度最大的标量数据除以所述目标精度对应的范围值中的最小值确定第二缩放值;将所述第一缩放值以及所述第二缩放值中的较大值作为最终的缩放值,并利用所述最终的缩放值对所述多个所述特征向量进行量化处理,以使所述多个特征向量的精度降低至所述目标精度。在一些实施例中,根据所述目标精度对应的范围值分别计算前M个的标量数据和后M个的标量数据对应的数据密度,进一步包括:将所述前M个的标量数据中的每一个标量数据均减去所述目标精度对应的范围值中的最大值以得到中间值;分别统计处于所述前M个的标量数据中的每一个标量数据与对应的所述中间值范围内的所述标量数据的数量,以根据所述数量确定所述数据密度;或者,将所述后M个的标量数据中的每一个标量数据均减去所述目标精度对应的范围值中的最小值以得到中间值;分别统计处于所述后M个的标量数据中的每一个标量数据与对应的所述中间值范围内的所述标量数据的数量,以根据所述数量确定所述数据密度。在一些实施例中,利用所述最终的缩放值对所述多个所述特征向量进行量化处理,进一步包括:将构成所述特征向量的每一个标量数据均除以所述缩放值。在一些实施例中,计算待对比的特征向量与所述特征底库中的每一个特征向量之间的相似度,进一步包括:利用CUBLAS库计算所述待对比的特征向量与所述特征底库中的每一个特征向量之间的相似度。在一些实施例中,将多个物体的相似度范围取并集以得到相似度的阈值范围,进一步包括:对所述阈值范围进行调整。基于同一专利技术构思,根据本专利技术的另一个方面,本专利技术的实施例还提供了一种特征对比系统,包括:构建模块,所述构建模块配置为构建特征底库;第一计算模块,所述第一计算模块配置为计算所述特征底库中的每一个物体对应的多个特征向量两两之间的相似度以得到所述每一个物体对应的相似度范围;阈值确定模块,所述阈值确定模块配置为将多个物体的相似度范围取并集以得到相似度的阈值范围;第二计算模块,所述第二计算模块配置为计算待对比的特征向量与所述特征底库中的每一个特征向量之间的相似度;排序模块,所述排序模块配置为将计算得到的处于所述阈值范围内的相似度对应的特征向量进行排序;返回模块,所述返回模块配置为基于所述排序将若干特征向量分别对应的物体ID返回给用户。基于同一专利技术构思,根据本专利技术的另一个方面,本专利技术的实施例还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如上所述的任一种特征对比方法的步骤。基于同一专利技术构思,根据本专利技术的另一个方面,本专利技术的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行如上所述的任一种特征对比方法的步骤。本专利技术具有以下有益技术效果之一:本专利技术提出的方案通过对特征底库中同一物体所有特征向量计算相似度,从而确定准确的相似度阈值范围,防止由于异常情况导致的相似度过大影响实际对比结果。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。图1为本专利技术的实施例提供的特征对比方法的流程示意图;图2为本专利技术的实施例提供的特征对比系统的结构示意图;图3为本专利技术的实施例提供的计算机设备的结构示意图;图4为本专利技术的实施例提供的计算机可读存储介质的结构示意图。具体实施方本文档来自技高网
...

【技术保护点】
1.一种特征对比方法,其特征在于,包括以下步骤:/n构建特征底库;/n计算所述特征底库中的每一个物体对应的多个特征向量两两之间的相似度以得到所述每一个物体对应的相似度范围;/n将多个物体的相似度范围取并集以得到相似度的阈值范围;/n计算待对比的特征向量与所述特征底库中的每一个特征向量之间的相似度;/n将计算得到的处于所述阈值范围内的相似度对应的特征向量进行排序;/n基于所述排序将若干特征向量分别对应的物体ID返回给用户。/n

【技术特征摘要】
1.一种特征对比方法,其特征在于,包括以下步骤:
构建特征底库;
计算所述特征底库中的每一个物体对应的多个特征向量两两之间的相似度以得到所述每一个物体对应的相似度范围;
将多个物体的相似度范围取并集以得到相似度的阈值范围;
计算待对比的特征向量与所述特征底库中的每一个特征向量之间的相似度;
将计算得到的处于所述阈值范围内的相似度对应的特征向量进行排序;
基于所述排序将若干特征向量分别对应的物体ID返回给用户。


2.如权利要求1所述的方法,其特征在于,构建特征底库,进一步包括:
利用训练好的神经网络模型对物体的多个图像分别提取特征向量;
将提取到的多个所述特征向量的精度降低至目标精度。


3.如权利要求2所述的方法,其特征在于,将提取到的多个所述特征向量的精度降低至目标精度,进一步包括:
将构成所述特征向量的标量数据进行排序;
根据所述目标精度对应的范围值分别计算前M个的标量数据和后M个的标量数据对应的数据密度;
利用所述前M个的标量数据中所述数据密度最大的标量数据除以所述目标精度对应的范围值中的最大值确定第一缩放值,并利用所述后M个的标量数据中所述数据密度最大的标量数据除以所述目标精度对应的范围值中的最小值确定第二缩放值;
将所述第一缩放值以及所述第二缩放值中的较大值作为最终的缩放值,并利用所述最终的缩放值对所述多个所述特征向量进行量化处理,以使所述多个特征向量的精度降低至所述目标精度。


4.如权利要求3所述的方法,其特征在于,根据所述目标精度对应的范围值分别计算前M个的标量数据和后M个的标量数据对应的数据密度,进一步包括:
将所述前M个的标量数据中的每一个标量数据均减去所述目标精度对应的范围值中的最大值以得到中间值;
分别统计处于所述前M个的标量数据中的每一个标量数据与对应的所述中间值范围内的所述标量数据的数量,以根据所述数量确定所述数据密度;或者,
将所述后M个的标量数据中的每一个标量数据均减去所述目标精度对应的范围值中的...

【专利技术属性】
技术研发人员:王鹏飞
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1