一种人脸特征检索方法、装置及电子设备与流程

文档序号:31631877发布日期:2022-09-24 02:11阅读:39来源:国知局
一种人脸特征检索方法、装置及电子设备与流程

1.本技术涉及图像处理技术领域,尤其涉及一种人脸特征检索方法、装置及电子设备。


背景技术:

2.人脸特征的检索技术是将待检索人脸特征对应的待检索特征向量与底库中的特征向量进行相似度比对,从而找到待检索特征向量对应的目标特征向量,并将目标特征向量对应的人脸特征作为待检索人脸特征对应的检索结果。目前,通常采用线性搜索的方式进行人脸特征检索,即依次判断底库中的每一个特征向量是否为目标特征向量。这种搜索方式的内存使用占比高,搜索效率低,不适用底库数据规模较大的场景。
3.为了解决上述问题,现有技术通常对底库中的特征向量进行编码处理,从而减小底库资源内存使用占比,比如,将底库中的每个特征向量切分成多个子向量,然后对每个子向量中包含的特征维度进行聚类,从而得到每个子向量对应的聚类中心,并对聚类中心进行编码,从而达到降低底库资源内存使用占比的目的,进一步,基于各个特征向量对应的编码进行人脸特征检索。这种检索方式由于对特征向量进行聚类处理,使得最终编码结果不能包含原始特征向量对应的所有特征,导致人脸特征检索精度低。


技术实现要素:

4.本技术提供了一种人脸特征检索方法、装置及电子设备,实现了在底库数据规模较大的场景下,不仅能降低了底库资源内存使用占比,还能保证人脸特征检索精度。
5.第一方面,本技术提供了一种人脸特征检索方法,所述方法包括:获取特征向量矩阵对应的各个转换向量矩阵,其中,所述特征向量矩阵包含底库中的所有特征向量,所述转换向量矩阵包含所述特征向量矩阵对应的全部特征维度;对各个转换向量矩阵进行编码,得到所述特征向量矩阵对应的各个编码向量矩阵;在各个编码向量矩阵合并后的总编码向量矩阵中,确定出待检索编码向量对应的第一目标编码向量;将所述第一目标编码向量对应的人脸特征,作为待检索特征向量对应的检索结果。
6.基于上述方法,通过对特征向量进行编码,可以降低底库中特征向量对应的内存使用占比。此外,由于在特征向量进行编码的过程中,没有特征维度丢失,使得最终编码结果包含原始特征向量对应的全部特征维度,进而提高了人脸特征检索精度。
7.在一种可能的设计中,所述获取特征向量矩阵对应的各个转换向量矩阵,包括:获取第一正交矩阵以及第二正交矩阵,其中,所述第一正交矩阵以及所述第二正交矩阵分别对应的矩阵维度与所述特征向量矩阵维度相同;将所述第一正交矩阵、所述第二正交矩阵与所述特征向量矩阵相乘,得到所述特
征向量矩阵分别对应的第一转换向量矩阵、第二转换向量矩阵。
8.通过上述方法,基于第一正交矩阵和第二正交矩阵分别与特征向量矩阵相乘,可以避免特征维度的丢失,进而有助于提高人脸特征检索精度。
9.在一种可能的设计中,所述获取第一正交矩阵以及第二正交矩阵,包括:将预设训练数据输入迭代量化哈希算法itq模型进行编码训练,得到第一训练结果;在所述第一训练结果收敛时,得到第一正交矩阵,其中,所述第一正交矩阵能使编码误差小于预设误差;将所述预设训练数据输入各向同性哈希算法iso模型进行编码训练,得到第二训练结果;在所述第二训练结果收敛时,得到第二正交矩阵,其中,所述第二正交矩阵能够对不同维度的训练数据进行差异化处理。
10.通过上述方法,得到第一正交矩阵以及第二正交矩阵,可以使得后续使用第一正交矩阵以及第二正交矩阵对特征向量进行编码处理时,不仅能避免特征维度的丢失,还能保证编码后的特征向量与原始特征向量之间的相似度,进而有助于提高人脸特征检索精度。在一种可能的设计中,所述对各个转换向量矩阵进行编码,得到所述特征向量矩阵对应的各个编码向量矩阵,包括:将所述第一转换向量矩阵及所述第二转换向量矩阵中的任一向量元素与第一预设阈值进行比对;在所述任一向量元素大于等于所述第一预设阈值时,将所述任一向量元素编码为第一值;在所述任一向量元素小于所述第一预设阈值时,将所述任一向量元素编码为第二值;将编码后的第一转换向量矩阵及编码后的第二转换向量矩阵作为各个编码向量矩阵。
11.通过上述方法,将特征向量矩阵中的每个向量元素对应的维度特征,全部进行编码转换,得到特征向量矩阵分别对应的第一编码向量矩阵、第二编码向量矩阵,实现在不丢失特征维度的情况下,压缩数据资源内存使用占比。在一种可能的设计中,所述在各个编码向量矩阵合并后的总编码向量矩阵中,确定出待检索编码向量对应的第一目标编码向量,包括:根据所述待检索编码向量与所述总编码向量矩阵中任一编码向量之间的第一相似度值,在所述总编码向量矩阵中确定出所述待检索编码向量对应的各个第二目标编码向量;将所述待检索编码向量及各个第二目标编码向量中的每个向量元素标注为第一元素或第二元素,其中,第一元素表征显著人脸特征对应的特征向量元素,第二元素表征非显著人脸特征对应的特征向量元素;分别计算所述待检索编码向量中的各个第一元素与各个第二目标编码向量中的各个第一元素之间的第一相似度距离,及所述待检索编码向量中的各个第二元素与各个第二目标编码向量中的各个第二元素之间的第二相似度距离;
根据各个第一相似度距离以及各个第二相似度距离,在各个第二目标编码向量中确定出所述第一目标编码向量。
12.通过上述方法,将待检索编码向量及各个第二目标编码向量中的向量元素标注为第一元素或者第二元素,进而实现将显著人脸特征对应的特征向量元素与非显著人脸特征对应的特征向量元素进行区分,进而有助于提高在各个第二目标编码向量中确定出第一目标编码向量的效率。
13.在一种可能的设计中,所述将所述待检索编码向量及各个第二目标编码向量中的每个向量元素标注为第一元素或第二元素,包括:计算所述待检索编码向量中的各个向量元素及所述第二目标编码向量中的各个向量元素分别与第二设阈值之间的差值绝对值;将各个差值绝对值分别与第三预设阈值进行比较;在任一差值绝对值大于所述第三预设阈值时,将所述任一差值绝对值对应的向量元素标注为第一元素;否则,将所述任一差值绝对值对应的向量元素标注为第二元素。
14.通过上述方法,将待检索编码向量及各个第二目标编码向量中的向量元素标注为第一元素或者第二元素,进而实现将显著人脸特征对应的特征向量元素与非显著人脸特征对应的特征向量元素进行区分,进而有助于提高在各个第二目标编码向量中确定出第一目标编码向量的效率。
15.在一种可能的设计中,所述根据各个第一相似度距离以及各个第二相似度距离,在各个第二目标编码向量中确定出所述第一目标编码向量,包括:在所述各个第一相似度距离中确定出第一目标相似度距离,其中,所述第一目标相似度距离为所述待检索编码向量与所述各个第二目标编码向量中的任一目标编码向量之间的第一相似度距离;在所述各个第二相似度距离中确定出第二目标相似度距离,其中,所述第二目标相似度距离为所述待检索编码向量与所述任一目标编码向量之间的第二相似度距离;根据所述第一目标相似度距离及所述第二目标相似度距离,计算所述待检索编码向量与所述任一目标编码向量之间的第二相似度值;将各个第二相似度值中的最大相似度值对应的第二目标编码向量,确定为所述第一目标编码向量。通过上述方法,基于对标注后的待检索编码向量中的向量元素与各个第二目标编码向量中的任一目标编码向量中的向量元素进行计算,可以降低计算量,进一步降低检索耗时,提高人脸特征检索效率。
16.第二方面,本技术提供了一种人脸检索装置,所述装置包括:获取模块,用于获取特征向量矩阵对应的各个转换向量矩阵,其中,所述特征向量矩阵包含底库中的所有特征向量,所述转换向量矩阵包含所述特征向量矩阵对应的全部特征维度;编码模块,用于对各个转换向量矩阵进行编码,得到所述特征向量矩阵对应的各个编码向量矩阵;确定模块,用于在各个编码向量矩阵合并后的总编码向量矩阵中,确定出待检索编码向量对应的第一目标编码向量;将所述第一目标编码向量对应的人脸特征,作为待检
索特征向量对应的检索结果。
17.在一种可能的设计中,所述获取模块包括:获取单元,用于获取第一正交矩阵以及第二正交矩阵,其中,所述第一正交矩阵以及所述第二正交矩阵分别对应的矩阵维度与所述特征向量矩阵维度相同;计算单元,用于将所述第一正交矩阵、所述第二正交矩阵与所述特征向量矩阵相乘,得到所述特征向量矩阵分别对应的第一转换向量矩阵、第二转换向量矩阵。
18.在一种可能的设计中,所述获取单元具体用于:将预设训练数据输入迭代量化哈希算法itq模型进行编码训练,得到第一训练结果;在所述第一训练结果收敛时,得到第一正交矩阵,其中,所述第一正交矩阵能使编码误差小于预设误差;将所述预设训练数据输入各向同性哈希算法iso模型进行编码训练,得到第二训练结果;在所述第二训练结果收敛时,得到第二正交矩阵,其中,所述第二正交矩阵能够对不同维度的训练数据进行差异化处理。
19.在一种可能的设计中,所述编码模块具体用于:将所述第一转换向量矩阵及所述第二转换向量矩阵中的任一向量元素与第一预设阈值进行比对;在所述任一向量元素大于等于所述第一预设阈值时,将所述任一向量元素编码为第一值;在所述任一向量元素小于所述第一预设阈值时,将所述任一向量元素编码为第二值;将编码后的第一转换向量矩阵及编码后的第二转换向量矩阵作为各个编码向量矩阵。
20.在一种可能的设计中,所述确定模块包括:第一确定单元,用于根据所述待检索编码向量与所述总编码向量矩阵中任一编码向量之间的第一相似度值,在所述总编码向量矩阵中确定出所述待检索编码向量对应的各个第二目标编码向量;标注单元,用于将所述待检索编码向量及各个第二目标编码向量中的每个向量元素标注为第一元素或第二元素,其中,第一元素表征显著人脸特征对应的特征向量元素,第二元素表征非显著人脸特征对应的特征向量元素;计算单元,用于分别计算所述待检索编码向量中的各个第一元素与各个第二目标编码向量中的各个第一元素之间的第一相似度距离,及所述待检索编码向量中的各个第二元素与各个第二目标编码向量中的各个第二元素之间的第二相似度距离;第二确定单元,用于根据各个第一相似度距离以及各个第二相似度距离,在各个第二目标编码向量中确定出所述第一目标编码向量;将所述第一目标编码向量对应的人脸特征,作为待检索特征向量对应的检索结果。
21.在一种可能的设计中,所述标注单元具体用于:计算所述待检索编码向量中的各个向量元素及所述第二目标编码向量中的各个
向量元素分别与第二设阈值之间的差值绝对值;将各个差值绝对值分别与第三预设阈值进行比较;在任一差值绝对值大于所述第三预设阈值时,将所述任一差值绝对值对应的向量元素标注为第一元素;否则,将所述任一差值绝对值对应的向量元素标注为第二元素;将编码后的第一转换向量及编码后的第二转换向量作为所述各个编码向量,并将编码后的第一转换向量矩阵及编码后的第二转换向量矩阵作为各个编码向量矩阵。
22.在一种可能的设计中,所述第二确定单元具体用于:在所述各个第一相似度距离中确定出第一目标相似度距离,其中,所述第一目标相似度距离为所述待检索编码向量与所述各个第二目标编码向量中的任一目标编码向量之间的第一相似度距离;在所述各个第二相似度距离中确定出第二目标相似度距离,其中,所述第二目标相似度距离为所述待检索编码向量与所述任一目标编码向量之间的第二相似度距离;根据所述第一目标相似度距离及所述第二目标相似度距离,计算所述待检索编码向量与所述任一目标编码向量之间的第二相似度值;将各个第二相似度值中的最大相似度值对应的第二目标编码向量,确定为所述第一目标编码向量。
23.第三方面,本技术提供了一种电子设备,包括:存储器,用于存放计算机程序;处理器,用于执行所述存储器上所存放的计算机程序时,实现上述人脸特征检索方法步骤。
24.第四方面,本技术提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述人脸特征检索方法步骤。
25.基于上述人脸特征检索方法,将第一正交矩阵、第二正交矩阵分别与待检索特征向量、底库对应的特征向量矩阵相乘后,进行编码及合并得到待检索特征向量对应的待检索编码向量,及特征向量矩阵对应的总编码向量矩阵,然后在总编码向量矩阵中确定出待检索编码向量对应的第一目标编码向量,并将第一目标编码向量对应的人脸特征,作为待检索特征向量对应的检索结果。
26.这种人脸特征检索方法,不仅能通过对特征向量进行编码降低底库中特征向量对应的内存使用占比,还通过确保在特征向量进行编码的过程中没有特征维度丢失,使得最终编码结果包含原始特征向量对应的全部特征维度,进而保证人脸特征检索精度。
27.上述第二方面至第四方面中的各个方面以及各个方面可能达到的技术效果参照上述针对第一方面或者第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。
附图说明
28.图1为本技术提供的一种人脸特征检索方法的流程图;图2为本技术提供的一种人脸特征检索装置的结构示意图;图3为本技术提供的一种电子设备结构示意图。
具体实施方式
29.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述。方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。需要说明的是,在本技术的描述中“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,并存在a和b,单独存在b这三种情况。a与b连接,可以表示:a与b直接连接和a与b通过c连接这两种情况。另外,在本技术的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
30.下面结合附图,对本技术实施例进行详细描述。
31.在底库数据规模较大的场景下,现有技术通常通过对底库中的特征向量进行编码处理,减小底库资源内存使用占比,比如,将底库中的每个特征向量切分成多个子向量,然后对每个子向量中包含的特征维度进行聚类,从而得到每个子向量对应的聚类中心,并对聚类中心进行编码,从而达到降低底库资源内存使用占比的目的,进一步,基于各个特征向量对应的编码进行人脸特征检索。这种检索方式由于对特征向量进行聚类处理,使得最终编码结果不能包含原始特征向量对应的所有特征,导致检索精度低。
32.举例来说,底库中的一个4维的特征向量为m=(m
11
,m
12
,m
13
,m
14
),在对特征向量进行编码处理时,首先将特征向量m切分成2个2维的子向量m1和m2,其中,m1=(m
11
,m
12
),m2=(m
13
,m
14
)。然后,分别对m1和m2进行聚类,得到各自对应的聚类中心m
c1
和m
c2
,即聚类后的m1=(m
c1
),聚类后的m2=(m
c2
)。接下来,对聚类后的m1和m1进行编码,由于m1和m2分别对应的聚类中心不能包含原始4维特征向量m的全部特征维度,因此,基于m1和m2得到的编码结果也不能准确表征原始特征向量m。因此,基于这种编码方式进行人脸特征检索,存在检索精度低的问题。
33.为了解决上述问题,本技术实例提供的一种人脸特征检索方法,不仅能通过对特征向量进行编码降低底库中特征向量对应的内存使用占比,还通过确保在特征向量进行编码的过程中没有特征维度丢失,使得最终编码结果包含原始特征向量对应的全部特征维度,进而保证人脸特征检索精度。其中,本技术实施例所述方法和装置基于同一技术构思,由于方法及装置所解决问题的原理相似,因此装置与方法的实施例可以相互参见,重复之处不再赘述。
34.为了使本技术的目的、技术方案和优点更加清楚,下面结合附图对本技术作进一步的详细描述。
35.如图1所示,为本技术提供的一种人脸特征检索方法,方法包括如下步骤:s11,获取特征向量矩阵对应的各个转换向量矩阵;为了解决现有技术中编码方式引起的人脸特征检索精度低的问题,本技术实施例中,采用第一正交矩阵和第二正交矩阵,分别对底库中所有特征向量对应的特征向量矩阵进行处理,实现降低底库资源内存使用占比,并保证人脸特征检索精度。其中,获取第一正交矩阵、第二正交矩阵的方法可以是:首先获取预设训练数据,其中,预设训练数据对应的特征维度与第一正交矩阵及第二正交矩阵的维度一致,预设训练数据对应的数据类型可以是float型数据、也可以是double型数据,具体数据类型此处不做具体限定;接下来,将预设训练数据输入迭代量化哈希算法(iterative quantization,itq)
模型进行编码训练,并计算编码过程中产生的编码误差,当编码误差大于预设误差时,表明训练结果不收敛,此时,调整ito模型对应的正交矩阵,直至训练结果收敛,并将调整后的正交矩阵作为第一正交矩阵。
36.同时,将预设训练数据输入各向同性哈希算法(isotropic,iso)模型进行编码训练,在编码过程中,计算预设训练数据每个特征维度对应的方差大小,当方差大于预设方差时,将预设训练数据对应特征维度中的每个数据编码成n位二进制值,其中,n表示大于等于2的整数;当方差小于预设方差时,将预设训练数据对应特征维度中的每个数据编码成m位二进制值,其中,m为小于n的整数。
37.在上述iso模型训练过程中,还通过预设函数计算每次训练结果对应的损失值,并在损失值大于预设损失值时,调整iso模型对应的正交矩阵,直至损失值小于预设损失值,此时,将调整后的正交矩阵作为第二正交矩阵。
38.通过上述方法,基于调整ito模型对应的正交矩阵,得到第一正交矩阵,可以使得编码误差小于预设误差;基于预设训练数据每个特征维度对应的方差大小对各个维度的训练数据进行编码训练,能够对不同维度的训练数据进行差异化处理。
39.上述训练过程为有监督训练,即先通过已知的训练样本,如已知输入和对应的输出进行训练,从而得到一个最优模型,在将这个模型应用在新的数据上,映射为输出结果,在经过这样的过程后,模型就有了预知结果。并且为保证第一正交矩阵和第二正交矩阵中参数信息的可泛化性,上述训练过程需要选择大规模有代表性的数据进行模型训练。通过上述方式训练得到第一正交矩阵和第二正交矩阵之后,进一步,将第一正交矩阵、第二正交矩阵与特征向量矩阵相乘,其中,第一正交矩阵以及第二正交矩阵分别对应的矩阵维度与特征向量矩阵维度相同,得到特征向量矩阵分别对应的第一转换向量矩阵、第二转换向量矩阵,其中,第一转换向量矩阵及第二转换向量矩阵包含特征向量矩阵对应的全部特征维度。
40.通过上述方法,基于第一正交矩阵和第二正交矩阵分别与特征向量矩阵相乘,可以避免特征维度的丢失,进而有助于提高人脸特征检索精度。
41.s12,对各个转换向量矩阵进行编码,得到所述特征向量矩阵对应的各个编码向量矩阵;在本技术实施例中,得到特征向量矩阵分别对应的第一转换向量矩阵、第二转换向量矩阵以后,对第一转换向量矩阵、第二转换向量矩阵中的每个向量元素进行编码,得到特征向量矩阵分别对应的第一编码向量矩阵、第二编码向量矩阵,通过编码的方式可以压缩数据量,进而减少数据资源占比。具体的编码方法可以是:将第一转换向量矩阵及第二转换向量矩阵中的任一向量元素与第一预设阈值进行比对,在本技术实施例中,第一预设阈值为0,当然,也可以根据实际情况调整。在所述任一向量元素大于等于第一预设阈值时,将所述任一向量元素编码为第一值,比如1;在所述任一向量元素小于第一预设阈值时,将所述任一向量元素编码为第二值,比如0;将编码后的第一转换向量矩阵及编码后的第二转换向量矩阵作为各个编码向量矩阵。
42.通过上述编码方式,将特征向量矩阵中的每个向量元素对应的维度特征,全部进行编码转换,得到特征向量矩阵分别对应的第一编码向量矩阵、第二编码向量矩阵,实现在不丢失特征维度的情况下,压缩数据资源内存使用占比。
43.s13,在各个编码向量矩阵合并后的总编码向量矩阵中,确定出待检索编码向量对应的第一目标编码向量;本技术实施例中,采用第一正交矩阵和第二正交矩阵,分别对待检索特征向量进行处理,得到待检索编码向量,其中,第一正交矩阵和第二正交矩阵分别对应的矩阵维度与待检索特征向量维度相同,具体的处理方法可以是:将第一正交矩阵、第二正交矩阵与待检索特征向量相乘,得到待检索特征向量分别对应的第一转换向量、第二转换向量,其中,第一转换向量及第二转换向量包含待检索特征向量对应的全部特征维度。
44.进一步,对各个转换向量中的每个向量元素进行编码,得到所述待检索特征向量对应的各个编码向量,其中,具体的编码方法可以是:将第一转换向量及第二转换向量中的任一向量元素与第一预设阈值进行比对。在所述任一向量元素大于等于第一预设阈值时,将所述任一向量元素编码为第一值;在所述任一向量元素小于第一预设阈值时,将所述任一向量元素编码为第二值;将编码后的第一转换向量及编码后的第二转换向量作为所述各个编码向量。
45.在得到待检索特征向量分别对应的第一编码向量、第二编码向量,及特征向量矩阵分别对应的第一编码向量矩阵、第二编码向量矩阵之后,进一步,将一编码向量与第二编码向量进行合并,得到待检索特征向量对应的待检索编码向量,并将第一编码向量矩阵与第二编码向量矩阵进行合并,得到特征向量矩阵对应的总编码向量矩阵。
46.举例来讲,第一编码向量为[0,1,0]、第二编码向量为[1,0,1],则将第一编码向量与第二编码向量合并后为[0,1,0,1,0,1]。同理,第一编码向量矩阵为、第二编码向量矩阵为,则将第一编码向量矩阵与第二编码向量矩阵合并后为。
[0047]
基于上述方法,对内存的数据量进行压缩,减少底库资源内存使用占比,比如待检索特征向量是512维float型数据,通过分别与第一正交矩阵、第二正交矩阵相乘后,得到数据类型为512维float型的第一转换向量、第二转换向量,再通过编码得到数据类型为512 bit型的第一编码向量、第二编码向量,最后将第一编码向量、第二编码向量合并,得到数据类型为1024 bit型的待检索编码向量,即原始512维float型数据变换为1024 bit型数据,基于1 float=4字节,1字节=8 bit,此时的特征数据大小是原始特征数据大小的1/16。
[0048]
进一步,在得到待检索特征向量对应的待检索编码向量,及特征向量矩阵对应的总编码向量矩阵以后,首先,在总编码向量矩阵中确定出待检索编码向量对应的各个第二目标编码向量,其中,第二目标编码向量的个数大于第一编码向量的个数,并且各个第二目标编码向量的确定方法是根据待检索编码向量与总编码向量矩阵中任一编码向量之间的第一相似度值来实现的。
[0049]
具体的,获取待检索编码向量与总编码向量矩阵中任一编码向量之间的第一相似
度值。其中,第一相似度值可以通过计算汉明距离得到,还可以通过其他相似度计算方法得到,此处不做具体限定。在计算汉明距离的过程中,可以多个线程并发执行,进而提高计算速度。
[0050]
然后,根据第一相似度值,在总编码向量矩阵中确定出待检索编码向量对应的各个第二目标编码向量。
[0051]
具体的,将各个第一相似度值从大到小进行排序,并将排序结果的前n个第一相似度值在总编码向量矩阵中对应的n个编码向量作为各个第二目标编码向量,其中,n为大于或等于2的整数。
[0052]
在得到各个第二目标编码向量以后,进一步,将待检索编码向量及各个第二目标编码向量中的每个向量元素标注为第一元素或第二元素。在本技术实施例中,具体标注方式可以是:计算待检索编码向量中的各个向量元素及第二目标编码向量中的各个向量元素分别与第二设阈值之间的差值绝对值,并将各个差值绝对值分别与第三设阈值进行比较;在任一差值绝对值大于第三设阈值时,将所述任一差值绝对值对应的向量元素标注为第一元素,其中,第一元素表征显著人脸特征对应的特征向量元素;否则,将所述任一差值绝对值对应的向量元素标注为第二元素,其中,第二元素表征非显著人脸特征对应的特征向量元素。
[0053]
通过上述方法,对待检索编码向量及各个第二目标编码向量中的向量元素标注为第一元素或者第二元素,进而实现将显著人脸特征对应的特征向量元素与非显著人脸特征对应的特征向量元素进行区分,进而有助于提高在各个第二目标编码向量中确定出第一目标编码向量的效率。其中,在各个第二目标编码向量中确定出第一目标编码向量的方法可以是:分别计算待检索编码向量中的各个第一元素与各个第二目标编码向量中的各个第一元素之间的第一相似度距离,及待检索编码向量中的各个第二元素与各个第二目标编码向量中的各个第二元素之间的第二相似度距离,其中,第一相似度距离和第二相似度距离可以通过汉明距离的计算方法得到。
[0054]
举例来讲,待检索编码向量为a=(a
11
,a
12
),同时总编码向量矩阵b=,其中,a
11
、b
11
、b
21
为第一元素,a
12
、b
12
、b
22
为第二元素,那么a
11
与b
11
、a
11
与b
21
之间的汉明距离为第一相似度距离,a
12
与b
12
、a
12
与b
22
之间的汉明距离为第二相似度距离。
[0055]
在得到各个第一相似度距离和各个第二相似度距离后,进一步,在各个第一相似度距离中确定出第一目标相似度距离,其中,第一目标相似度距离为待检索编码向量与各个第二目标编码向量中的任一目标编码向量之间的第一相似度距离。此外,在各个第二相似度距离中确定出第二目标相似度距离,其中,第二目标相似度距离为所述待检索编码向量与所述任一目标编码向量之间的第二相似度距离。
[0056]
进一步,根据第一目标相似度距离及第二目标相似度距离,计算待检索编码向量与任一目标编码向量之间的第二相似度值,具体计算公式可以是:thre2 * ham_h + (1
ꢀ–ꢀ
thre2) * ham_lꢀꢀꢀꢀꢀꢀꢀ(1)
在公式(1)中,ham_h表示第一目标相似度距离;ham_l表示第二目标相似度距离;thre2表示权重阈值,用来给第一目标相似度距离及第二目标相似度距离加权使用,该thre2可以设置为0.98,具体数值视情况而定。
[0057]
基于上述公式(1),得到待检索编码向量与任一目标编码向量之间的第二相似度值后,将各个第二相似度值中的最大相似度值对应的第二目标编码向量,确定为第一目标编码向量。
[0058]
最后,将各个第二相似度值中的最大相似度值对应的第二目标编码向量,确定为所述第一目标编码向量。
[0059]
举例来讲,在计算上述待检索编码向量a与总编码向量矩阵b中的编码向量b1=(b
11
,b
12
)之间的第二相似度值时,那么第一目标相似度距离为a
11
与b
11
之间的第一相似度距离,第二目标相似度距离为a
12
与b
12
之间的第二相似度距离。然后根据公式(1),可以计算出上述待检索编码向量a与总编码向量矩阵b中的编码向量b1=(b
11
,b
12
)之间的第二相似度值k1。
[0060]
同理,在计算上述待检索编码向量a与总编码向量矩阵b中的编码向量b2=(b
21
,b
22
)之间的第二相似度值时,那么第一目标相似度距离为a
11
与b
21
之间的第一相似度距离,第二目标相似度距离为a
12
与b
22
之间的第二相似度距离。然后,根据公式(1)计算上述待检索编码向量a与总编码向量矩阵b中的编码向量b2=(b
21
,b
22
)之间的第二相似度值k2。
[0061]
若k1大于k2,那么将k1对应的编码向量b1=(b
11
,b
12
),作为上述待检索编码向量a对应的第一目标编码向量。
[0062]
通过上述方法,基于对标注后的待检索编码向量中的向量元素与各个第二目标编码向量中的任一目标编码向量中的向量元素进行计算,可以降低计算量,进一步降低检索耗时,提高人脸特征检索效率。
[0063]
s14,将所述第一目标编码向量对应的人脸特征,作为待检索特征向量对应的检索结果。
[0064]
基于上述人脸特征检索方法,不仅能降低底库中特征向量对应的内存使用占比。还通过确保在特征向量进行编码的过程中没有特征维度丢失,使得最终编码结果包含原始特征向量对应的全部特征维度,进而保证人脸特征检索精度。
[0065]
需要说明的是,本技术实施例虽然只是采用了第一正交矩阵和第二正交矩阵,对待检索特征向量以及底库中的各个特征向量进行处理和编码,并进一步进行人脸特征检索,并不代表本方案只能使用两个正交矩阵,实际上,也可以采用在一种可能的应用场景中,通过对预设数据进行训练,得到第三正交矩阵、第四正交矩阵或者第五正交矩阵等,并基于此展开人脸特征检索。本技术实施例中,对正交矩阵的数量不做具体限定。
[0066]
基于同一发明构思,本技术实施例中还提供了一种人脸特征检索装置,如图2所示,为本技术中一种人脸特征检索装置的结构示意图,该装置包括:获取模块21,用于获取特征向量矩阵对应的各个转换向量矩阵,其中,所述特征向量矩阵包含底库中的所有特征向量,所述转换向量矩阵包含所述特征向量矩阵对应的全部特征维度;编码模块22,用于对各个转换向量矩阵进行编码,得到所述特征向量矩阵对应的各个编码向量矩阵;
确定模块23,用于在各个编码向量矩阵合并后的总编码向量矩阵中,确定出待检索编码向量对应的第一目标编码向量;将所述第一目标编码向量对应的人脸特征,作为待检索特征向量对应的检索结果。
[0067]
在一种可能的设计中,所述获取模块21包括:获取单元,用于获取第一正交矩阵、第二正交矩阵,其中,所述第一正交矩阵以及所述第二正交矩阵分别对应的矩阵维度与所述特征向量矩阵维度相同;计算单元,用于将所述第一正交矩阵、所述第二正交矩阵与所述特征向量矩阵相乘,得到所述特征向量矩阵分别对应的第一转换向量矩阵、第二转换向量矩阵。
[0068]
在一种可能的设计中,所述获取单元具体用于:将预设训练数据输入迭代量化哈希算法itq模型进行编码训练,得到第一训练结果;在所述第一训练结果收敛时,得到第一正交矩阵,其中,所述第一正交矩阵能使编码误差小于预设误差;将所述预设训练数据输入各向同性哈希算法iso模型进行编码训练,得到第二训练结果;在所述第二训练结果收敛时,得到第二正交矩阵,其中,所述第二正交矩阵能够对不同维度的训练数据进行差异化处理。在一种可能的设计中,所述编码模块22具体用于:将所述第一转换向量矩阵及所述第二转换向量矩阵中的任一向量元素与第一预设阈值进行比对;在所述任一向量元素大于等于所述第一预设阈值时,将所述任一向量元素编码为第一值;在所述任一向量元素小于所述第一预设阈值时,将所述任一向量元素编码为第二值;将编码后的第一转换向量矩阵及编码后的第二转换向量矩阵作为各个编码向量矩阵。
[0069]
在一种可能的设计中,所述确定模块23包括:第一确定单元,用于根据所述待检索编码向量与所述总编码向量矩阵中任一编码向量之间的第一相似度值,在所述总编码向量矩阵中确定出所述待检索编码向量对应的各个第二目标编码向量;标注单元,用于将所述待检索编码向量及各个第二目标编码向量中的每个向量元素标注为第一元素或第二元素,其中,第一元素表征显著人脸特征对应的特征向量元素,第二元素表征非显著人脸特征对应的特征向量元素;计算单元,用于分别计算所述待检索编码向量中的各个第一元素与各个第二目标编码向量中的各个第一元素之间的第一相似度距离,及所述待检索编码向量中的各个第二元素与各个第二目标编码向量中的各个第二元素之间的第二相似度距离;第二确定单元,用于根据各个第一相似度距离以及各个第二相似度距离,在各个第二目标编码向量中确定出所述第一目标编码向量;将所述第一目标编码向量对应的人脸特征,作为待检索特征向量对应的检索结果。
[0070]
在一种可能的设计中,所述标注单元具体用于:
计算所述待检索编码向量中的各个向量元素及所述第二目标编码向量中的各个向量元素分别与第二设阈值之间的差值绝对值;将各个差值绝对值分别与第三预设阈值进行比较;在任一差值绝对值大于所述第三预设阈值时,将所述任一差值绝对值对应的向量元素标注为第一元素;否则,将所述任一差值绝对值对应的向量元素标注为第二元素。
[0071]
在一种可能的设计中,所述第二确定单元具体用于:在所述各个第一相似度距离中确定出第一目标相似度距离,其中,所述第一目标相似度距离为所述待检索编码向量与所述各个第二目标编码向量中的任一目标编码向量之间的第一相似度距离;在所述各个第二相似度距离中确定出第二目标相似度距离,其中,所述第二目标相似度距离为所述待检索编码向量与所述任一目标编码向量之间的第二相似度距离;根据所述第一目标相似度距离及所述第二目标相似度距离,计算所述待检索编码向量与所述任一目标编码向量之间的第二相似度值;将各个第二相似度值中的最大相似度值对应的第二目标编码向量,确定为所述第一目标编码向量。
[0072]
基于上述人脸特征检索装置,通过对特征向量进行编码,可以降低底库中特征向量对应的内存使用占比。此外,由于在特征向量进行编码的过程中,没有特征维度丢失,使得最终编码结果包含原始特征向量对应的全部特征维度,进而提高了人脸特征检索精度。
[0073]
基于同一发明构思,本技术实施例中还提供了一种电子设备,所述电子设备可以实现前述人脸特征检索方法装置的功能,参考图3,所述电子设备包括:至少一个处理器31,以及与至少一个处理器31连接的存储器32,本技术实施例中不限定处理器31与存储器32之间的具体连接介质,图3中是以处理器31和存储器32之间通过总线30连接为例。总线30在图3中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线30可以分为地址总线、数据总线、控制总线等,为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器31也可以称为控制器,对于名称不做限制。
[0074]
在本技术实施例中,存储器32存储有可被至少一个处理器31执行的指令,至少一个处理器31通过执行存储器32存储的指令,可以执行前文论述的人脸特征检索方法。处理器31可以实现图2所示的装置中各个模块的功能。
[0075]
其中,处理器31是该装置的控制中心,可以利用各种接口和线路连接整个该控制设备的各个部分,通过运行或执行存储在存储器32内的指令以及调用存储在存储器32内的数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。
[0076]
在一种可能的设计中,处理器31可包括一个或多个处理单元,处理器31可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器31中。在一些实施例中,处理器31和存储器32可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
[0077]
处理器31可以是通用处理器,例如中央处理器(cpu)、数字信号处理器、专用集成
电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的人脸特征检索方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0078]
存储器32作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器32可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(random access memory,ram)、静态随机访问存储器(static random access memory,sram)、可编程只读存储器(programmable read only memory,prom)、只读存储器(read only memory,rom)、带电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁性存储器、磁盘、光盘等。存储器32是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本技术实施例中的存储器32还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
[0079]
通过对处理器31进行设计编程,可以将前述实施例中介绍的人脸特征检索方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图1所示的实施例的人脸特征检索方法的步骤。如何对处理器31进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
[0080]
基于同一发明构思,本技术实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行前文论述的人脸特征检索方法。
[0081]
在一些可能的实施方式中,本技术提供的人脸特征检索方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在装置上运行时,程序代码用于使该控制设备执行本说明书上述描述的根据本技术各种示例性实施方式的人脸特征检索方法中的步骤。
[0082]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0083]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0084]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0085]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0086]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1