掌桥专利:专业的专利平台
掌桥专利
首页

目标识别方法及装置、存储介质及电子设备

文献发布时间:2023-06-19 09:40:06


目标识别方法及装置、存储介质及电子设备

技术领域

本发明涉及目标识别技术领域,具体而言,涉及一种目标识别方法及装置、存储介质及电子设备。

背景技术

近些年,随着深度学习技术的发展,人脸识别技术趋于成熟。越来越多的人脸识别技术得以落地,人脸支付、人脸考勤、人脸认证等应用开始逐步进入公众视野。

现有的人脸识别方法一般通过预训练的神经网络模型分别提取待识别的人脸图像和底库中的人脸图像的特征,然后通过特征比对确定识别结果。伴随业务规模的不断扩张,底库中人脸图像的数量越来越庞大,由早期仅要求几千张人脸图像,如企业考勤、校园考勤等业务,到如今要求几千万张人脸图像,如公安抓逃、人员核对等业务。然而,由于人脸识别的检索性能与底库中人脸图像的数量成反比关系,所以当底库中人脸图像的数量急剧增大时,现有的人脸识别方法的性能较差,难以满足业务需求。

发明内容

本申请实施例的目的在于提供一种目标识别方法及装置、存储介质及电子设备,以改善上述技术问题。

为实现上述目的,本申请提供如下技术方案:

第一方面,本申请实施例提供一种目标识别方法,包括:获取包含有目标的待识别图像;将所述待识别图像分别输入至特征提取模型和属性提取模型,获得所述特征提取模型提取出的所述待识别图像的特征以及所述属性提取模型提取出的所述待识别图像的属性信息;其中,所述待识别图像的特征和属性信息分别是指所述待识别图像中目标的特征和属性信息;从底库图像的属性信息集合中查找与所述待识别图像的属性信息匹配的属性信息,若查找到匹配的属性信息,则获取与匹配的属性信息对应的底库图像的特征集合;其中,所述底库图像的特征是利用所述特征提取模型提取出的所述底库图像中目标的特征,所述底库图像的属性信息是利用所述属性提取模型提取出的所述底库图像中目标的属性信息;从与匹配的属性信息对应的底库图像的特征集合中查找与所述待识别图像的特征匹配的特征,若查找到匹配的特征,则输出与匹配的特征对应的目标识别结果。

上述方法在进行目标识别时,首先利用待识别图像的属性信息过滤出一个底库图像的特征集合,然后仅在该特征集合中进行特征匹配以实现目标识别,从而避免了将待识别图像的特征与所有底库图像的特征进行匹配,因此显著提高了目标识别的效率,使得该方法可应用于底库中存在大量图像的场景中。

在第一方面的一种实现方式中,所述从底库图像的属性信息集合中查找与所述待识别图像的属性信息匹配的属性信息,若查找到匹配的属性信息,则获取与匹配的属性信息对应的底库图像的特征集合,包括:判断所述待识别图像的属性信息与底库图像的属性信息集合中的每个属性信息是否匹配,并将所述属性信息集合中与所述待识别图像的属性信息匹配的属性信息对应的底库图像的特征确定为底库图像的特征集合中的特征。

在上述实现方式中,通过逐一比对的方式查找属性信息集合中与待识别图像的属性信息匹配的属性信息,该方式逻辑简单,但运算量较大。

在第一方面的一种实现方式中,在所述从底库图像的属性信息集合中查找与所述待识别图像的属性信息匹配的属性信息之前,所述方法还包括:根据每个底库图像的属性信息对该底库图像的特征进行分类;其中,具有相同属性信息的底库图像的特征被划分为一个类别;所述从底库图像的属性信息集合中查找与所述待识别图像的属性信息匹配的属性信息,若查找到匹配的属性信息,则获取与匹配的属性信息对应的底库图像的特征集合,包括:判断所述待识别图像的属性信息与每个类别的特征对应的属性信息是否匹配,并将对应的属性信息与所述待识别图像的属性信息匹配的类别中的特征确定为底库图像的特征集合中的特征。

在上述实现方式中,事先根据底库图像的属性信息将底库图像的特征进行分类,具有相同属性信息的特征并归并为一类,在分类的同时也相当于合并了底库图像的属性信息,从而在进行特征分类后,从包含元素较少的属性信息集合中查找与待识别图像的属性信息匹配的属性信息,效率较高。此外,在该实现方式下一旦获得了匹配的属性信息,立刻就可以得到与其关联的一类底库图像的特征,从而确定底库图像的特征集合的效率也非常高。

在第一方面的一种实现方式中,所述底库图像的属性信息和所述待识别图像的属性信息中均包含目标的至少一个属性值,所述底库图像的属性信息与所述待识别图像的属性信息匹配是指两项属性信息中包含的属性值对应相等,所述根据每个底库图像的属性信息对该底库图像的特征进行分类,包括:根据每个底库图像的属性信息中包含的属性值计算索引值,并根据计算出的索引值对该底库图像的特征进行分类;其中,具有相同索引值的底库图像的特征被划分为一个类别;所述判断所述待识别图像的属性信息与每个类别的特征对应的属性信息是否匹配,并将对应的属性信息与所述待识别图像的属性信息匹配的类别中的特征确定为底库图像的特征集合中的特征,包括:根据所述待识别图像的属性信息中的属性值计算索引值;判断全部类别的特征对应的索引值中是否包括所述待识别图像的索引值,若包括,则将与所述待识别图像的索引值对应的类别中的特征确定为底库图像的特征集合中的特征。

在上述实现方式中,将属性信息转换为索引值,从而可以快速完成属性信息之间的比对,并快速获取与属性信息对应的特征。

在第一方面的一种实现方式中,所述方法还包括:若查找不到匹配的属性信息或匹配的特征,则从剩余特征集合中查找与所述待识别图像的特征匹配的特征,若查找到匹配的特征,则输出与匹配的特征对应的目标识别结果;其中,所述剩余特征集合是指尚未与所述待识别图像的特征进行过匹配的所述底库图像的特征构成的集合。

属性提取模型对属性信息的提取可能存在一定的误差,并且待识别图像和底库图像很可能并非是同时同地采集的,即使二者包含同一目标,其属性信息也可能不同。因此查找不到匹配的属性信息,或者,查找到了匹配的属性信息但找不到匹配的特征的情况都是有可能发生的,此时可以在剩余特征集合中继续检索,避免因属性信息的因素导致目标识别的准确度降低。此外,查找不到匹配的属性信息或匹配的特征的情况还是比较少的,因此并不会对目标识别的效率造成显著影响。

在第一方面的一种实现方式中,所述底库图像的属性信息中包含目标的至少一个属性值,所述待识别图像的属性信息中包含目标的至少一个属性值集合,所述若查找不到匹配的属性信息或匹配的特征,则从剩余特征集合中查找与所述待识别图像的特征匹配的特征,包括:若查找不到匹配的属性信息或匹配的特征,则迭代执行重检索流程,直至查找到与所述待识别图像的特征匹配的所述底库图像的特征,或者确认不存在与所述待识别图像的特征匹配的所述底库图像的特征,所述重检索流程包括:对所述待识别图像的属性信息中包含的属性值集合进行扩展;其中,扩展后的属性值集合包含对应的扩展前的属性值集合,在首次扩展前,所述待识别图像的属性信息中包含的每个属性值集合中仅有一个属性值;从上一轮迭代后的剩余属性信息集合中查找与所述待识别图像的属性信息匹配的属性信息,若查找到匹配的属性信息,则获取与匹配的属性信息对应的底库图像的特征集合,并从本轮迭代中获取到的特征集合中查找与所述待识别图像的特征匹配的特征,若查找不到匹配的属性信息或者匹配的特征,则结束本轮迭代;其中,所述上一轮迭代后的剩余属性信息集合是指上一轮迭代后的剩余特征集合中的特征对应的底库图像的属性信息的集合,所述底库图像的属性信息与所述待识别图像的属性信息匹配是指所述底库图像的属性信息中包含的每个属性值均属于所述待识别图像的属性信息中包含的对应属性值集合。

在上述实现方式中,通过一个迭代过程逐步扩展属性值集合,使得属性信息的匹配条件逐步放宽,尽可能在较小的范围内就检索到匹配的特征,有利于保障人脸识别的效率。

在第一方面的一种实现方式中,所述目标包含多项属性,所述对所述待识别图像的属性信息中包含的属性值集合进行扩展,包括:根据属性的扩展优先级选择本轮迭代中要进行扩展的属性,并对所述待识别图像的属性信息中包含的与选择出的属性对应属性值集合进行扩展;其中,一项属性的扩展优先级和该项属性的属性值易变程度正相关。

上述实现方式在放宽属性信息的匹配条件时,优先扩展那些属性值易变程度较高的属性对应的属性值集合,有利于尽早找到匹配的属性信息,从而尽快结束重检索流程。

在第一方面的一种实现方式中,所述获取包含有目标的待识别图像,包括:获取原始图像;利用目标检测模型检测所述原始图像中的目标,并根据检测出的目标的位置从所述原始图像中切分出包含有目标的待识别图像。

在上述实现方式中,先对原始图像做目标检测,然后从原始图像中切分产生待识别图像,既确保了待识别图像中包含有目标,同时也使得待识别图像尺寸较小并且不会包含过多除目标以外的内容,不仅使得人脸识别的运算量得以降低,还有利于改善特征提取和属性信息提取的效果。

在第一方面的一种实现方式中,所述目标为人脸,在所述获取包含有目标的待识别图像之后,以及在所述将所述待识别图像分别输入至特征提取模型和属性提取模型之前,所述方法还包括:将所述待识别图像输入至关键点检测模型,获得所述关键点检测模型检测出的所述待识别图像中人脸的关键点;利用所述关键点校正所述待识别图像中人脸的方向。

在上述实现方式中,通过提取人脸关键点校正人脸方向(例如,校正为正向),有利于改善特征提取和属性信息提取的效果。

第二方面,本申请实施例提供一种目标识别装置,包括:

图像获取模块,用于获取包含有目标的待识别图像;

将所述待识别图像分别输入至特征提取模型和属性提取模型,获得所述特征提取模型提取出的所述待识别图像的特征以及所述属性提取模型提取出的所述待识别图像的属性信息;其中,所述待识别图像的特征和属性信息分别是指所述待识别图像中目标的特征和属性信息;

从底库图像的属性信息集合中查找与所述待识别图像的属性信息匹配的属性信息,若查找到匹配的属性信息,则获取与匹配的属性信息对应的底库图像的特征集合;其中,所述底库图像的特征是利用所述特征提取模型提取出的所述底库图像中目标的特征,所述底库图像的属性信息是利用所述属性提取模型提取出的所述底库图像中目标的属性信息;

从与匹配的属性信息对应的底库图像的特征集合中查找与所述待识别图像的特征匹配的特征,若查找到匹配的特征,则输出与匹配的特征对应的目标识别结果。

第三方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法。

第四方面,本申请实施例提供一种电子设备,包括:存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请实施例提供的一种目标识别方法的流程图;

图2示出了本申请实施例提供的一种目标识别方法中步骤S160的流程图;

图3示出了本申请实施例提供的一种目标识别装置的模块图;

图4示出了本申请实施例提供的一种电子设备的示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“第一”、“第二”等仅用于将一个实体或者操作与另一个实体或操作区分开来,而不能理解为指示或暗示相对重要性,也不能理解为要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

图1示出了本申请实施例提供的一种目标识别方法的流程图。该方法可以但不限于由图4示出的电子设备执行,具体参考后文关于图4的阐述。参照图1,该方法包括:

步骤S110:获取包含有目标的待识别图像。

本申请的方案中所称的目标是指待识别的对象,可以是人脸、行人、车辆、动物等。待识别图像可以有多种获取方式,例如,可以首先获取原始图像,然后利用目标检测模型检测原始图像中的目标,并根据检测出的目标的位置从原始图像中切分出包含有目标的待识别图像。

原始图像是一个相对于待识别图像而言的概念,并非一定指未经过任何处理的图像。原始图像可以有不同的来源,例如可以是摄像头实时采集的,可以是某个测试集中的图像,等等。原始图像可能涵盖了较大的场景,目标只占其中的一小部分,例如,摄像头拍摄到某个行人从路口经过,该行人的人脸只占画面的一小部分,画面的大部分均为背景。

目标检测模型泛指能够从图像中检测目标的模型(在本申请的方案中,具有输入输出的算法均可以视为一种模型),例如,目标检测模型可以是一个预训练的神经网络模型,比如YOLO模型、SSD模型等,当然也可以是其他模型或目标检测算法,例如通过结合方向梯度直方图(Histogram of Oriented Gradient

上述通过目标检测获取待识别图像的方式,既确保了待识别图像中包含有目标,同时也使得待识别图像的尺寸变得较小(相对于原始图像而言),从而有利于降低后续人脸识别过程的运算量。并且,由于切分产生的待识别图像中不会包含过多除目标以外的内容(相对于原始图像而言),从而还有利于改善后续对待识别图像进行特征提取和属性信息提取的效果(避免过多地提取到除目标以外的内容的特征和属性信息)。

当然,直接将原始图像作为待识别图像进行目标识别也是可以的。

步骤S120:将待识别图像分别输入至特征提取模型和属性提取模型,获得特征提取模型提取出的待识别图像的特征以及属性提取模型提取出的待识别图像的属性信息。

步骤S120中所谓的待识别图像的特征,可以指待识别图像中目标的特征,而所谓的待识别图像的属性信息,则可以指待识别图像中目标的属性信息。其中,目标具有多种属性,以人脸为例,可能包含性别、年龄、人种、民族、脸型中的至少一种属性,对于一张具体的人脸图像,这些属性都具有具体的取值(即属性值),例如,男性、25岁、黄种人、汉族、瓜子脸,可以将人脸图像中目标的至少一个属性值定义为该人脸图像的属性信息。需要指出,属性值可能是离散值也可能是连续值,但为简单起见,后文均以离散值的情况为例进行说明。

特征提取模型泛指能够从图像中提取特征的模型,属性提取模型泛指能够从图像中提取属性的模型。例如,特征提取模型和属性提取模型可以为预训练的神经网络模型,比如ResNet模型、VGG模型等。还需要指出,属性提取模型可以有多个,其中每个属性提取模型用于提取待识别图像的一种属性的属性值,多个属性提取模型的属性值提取结果共同构成待识别图像的属性信息。

在一些实现方式中,可以直接将步骤S110中的待识别图像分别输入至特征提取模型和属性提取模型。在另一些实现方式中,也可以对步骤S110中的待识别图像进行适当处理后,再将处理后的待识别图像分别输入至特征提取模型和属性提取模型,例如:

在目标为人脸时,可以首先将待识别图像输入至关键点检测模型,获得关键点检测模型检测出的待识别图像中人脸的关键点,然后利用获得的关键点校正待识别图像中人脸的方向(例如,将其校正为正向),最后将校正后的待识别图像分别输入至特征提取模型和属性提取模型。

其中,关键点检测模型可以但不限于是预训练的神经网络模型,例如,ResNet模型、VGG模型等。关键点检测模型会输出待识别图像中关键点的位置,例如嘴角点、鼻尖点、眼心点、眼角点、眉角点、脸部轮廓点的位置,根据这些关键点的位置做仿射变换,就可以对识别图像中的人脸进行校正。此举有利于改善后续对待识别图像进行特征提取和属性信息提取的效果,因为在很多情况下,特征提取模型和属性提取模型都是基于正向的人脸训练的,若使用倾斜的人脸进行特征提取或者属性信息提取,很可能效果较差。

步骤S130:从底库图像的属性信息集合中查找与待识别图像的属性信息匹配的属性信息。

首先解释底库的概念:底库中包含若干张底库图像,每张底库图像中都包含目标,这些目标与待识别图像所包含的目标可能是同一目标,也可能不是同一目标,目标识别的目的就是要查找那些与待识别图像包含有相同目标的底库图像并输出相应的识别结果。目标识别结果可以是底库图像本身,当然还可以输出其他信息,例如底库图像中目标的描述信息,不过,在很多场景下并不要求一定要找到底库中所有与待识别图像包含有相同目标的底库图像。底库图像既可以是包含目标的原始图像,也可以是从原始图像中切分出的包含目标的图像(类似于上面提到的从原始图像中切分出的待识别图像)。

除底库图像以外,在本申请的方案中,底库中还保存有每张底库图像的特征以及属性信息。其中,底库图像的特征是指利用特征提取模型提取出的底库图像中目标的特征,底库图像的属性信息是利用属性提取模型提取出的底库图像中目标的属性信息,对于底库图像的特征和属性信息的提取,其具体过程可以参考步骤S120中对于待识别图像的特征和属性信息的提取,不再具体阐述。在执行步骤S130之前,底库已经构建完成。

步骤S130中底库图像的属性信息集合可以指底库中所有底库图像的属性信息构成的集合(该集合中元素的数量和底库图像的数量相同),当然根据不同的需求,也可以指底库中部分底库图像的属性信息构成的集合,不过为简单起见,以前一种定义方式为例。步骤S130在该属性信息集合中查找与待识别图像的属性信息匹配的属性信息,所谓匹配,可以有不同的定义方式,下面仅列举其中三种:

匹配定义1:假设某个底库图像的属性信息包括人脸的5个属性值:男性、25岁、黄种人、汉族、瓜子脸;待识别图像的属性信息也包括人脸的5个属性值:男性、25岁、黄种人、汉族、瓜子脸,所有的属性值对应相等,可以认为该底库图像的属性信息与待识别图像的属性信息是匹配的。

匹配定义2:假设某个底库图像的属性信息包括人脸的5个属性值:男性、26岁、黄种人、汉族、瓜子脸;待识别图像的属性信息也包括人脸的5个属性值:男性、25岁、黄种人、汉族、瓜子脸,其中有4个属性值对应相等,有1个不相等,若设置属性信息匹配的阈值为80%,即要求所有的属性值中至少有80%是对应相等的,则此时可以认为该底库图像的属性信息与待识别图像的属性信息是匹配的。

匹配定义3:上文将某个图像中目标的至少一项属性值定义为该图像的属性信息。现在适当放宽此定义,将某个图像中目标的至少一个属性值集合定义为该图像的属性信息。例如,若人脸包含性别、年龄、人种、民族、脸型5种属性,则5个属性值集合{男性}、{20-30岁}、{黄种人}、{汉族}、{瓜子脸}可以构成人脸图像的一项属性信息。其中,{}表示集合,不难看出,上面5个属性值集合中有4个只有一个元素,这4个属性值集合其实仍等价于属性值,但{20-30岁}这个集合有10个元素(只考虑整数年龄),不再等价于属性值。

放宽了属性信息的定义后,假设某个底库图像的属性信息包括人脸的5个属性值:男性、26岁、黄种人、汉族、瓜子脸;待识别图像的属性信息包括人脸的5个属性值集合:{男性}、{20岁-30岁}、{黄种人}、{汉族}、{瓜子脸},底库图像的属性信息中包含的每个属性值都是待识别图像的属性信息中包含的对应属性值集合中的元素(例如男性属于{男性}、25岁属于{20岁-30岁}),从而可以认为该底库图像的属性信息与待识别图像的属性信息是匹配的。多数情况下,属性提取模型只能提取出待识别图像中目标的属性值,而并不能提取出属性值集合,但可以通过对属性值进行扩展的方式得到属性值集合,详见后文阐述。

不论采用哪种定义,若步骤S130中成功查找到匹配的属性信息,则执行步骤S140,若查找不到匹配的属性信息,则可执行步骤S160。

或者,若查找不到匹配的属性信息,也可以直接结束目标识别流程。例如,待识别图像的属性信息包括人脸的5个属性值:男性、26岁、黄种人、汉族、瓜子脸,既然没有任何一张底库图像包含相同的属性信息(匹配的含义采用上述匹配定义1),说明底库图像中并没有与待识别图像中同样的人脸,不用再执行后续的目标识别流程。

步骤S140:获取与匹配的属性信息对应的底库图像的特征集合,并从该底库图像的特征集合中查找与待识别图像的特征匹配的特征。

每张底库图像都对应一项属性信息与一个特征,从而步骤S130中获得了匹配的属性信息后,可以进一步得到与之对应的底库图像的特征。步骤S130中可能有一个或多个匹配的属性信息,这些属性信息对应的特征构成步骤S140中与匹配的属性信息对应的底库图像的特征集合,该集合中特征的数量小于而且通常是远远小于底库中包含的特征的总数量。

再结合步骤S130阐述一下获得上述底库图像的特征集合的不同方案。

方案1:将待识别图像的属性信息与底库图像的属性信息集合中的每个属性信息都进行比对,判断二者是否匹配,若底库图像的属性信息集合中的某个属性信息与待识别图像的属性信息是匹配的,则将该属性信息对应的底库图像的特征加入底库图像的特征集合中。这样,至多遍历完属性信息集合中的所有属性信息后,就可以获得与匹配的属性信息对应的底库图像的特征集合。若遍历完属性信息集合中的所有属性信息后,仍然没有找到匹配的属性信息,则执行步骤S160或者结束目标识别流程。

方案1通过逐一比对的方式查找属性信息集合中与待识别图像的属性信息匹配的属性信息,该方式逻辑简单,但运算量较大。若步骤S130中底库图像的属性信息集合为底库中所有底库图像的属性信息构成的集合,则方案1要遍历底库中包含的全部属性信息,但好在属性信息的构成较为简单,比如很多属性值都是枚举值,因此匹配起来也较为简单(特别是相较于后文的特征匹配而言),因此方案1也具有较高的实用性。

方案2:首先,在底库的构建阶段根据每个底库图像的属性信息对该底库图像的特征进行分类;其中,具有相同属性信息的底库图像的特征被划分为一个类别。例如,有100张底库图像的属性信息相同,都包括人脸的5个属性值:男性、26岁、黄种人、汉族、瓜子脸,则这100张底库图像的特征被划分为一个类别,而属性信息(男性、26岁、黄种人、汉族、瓜子脸)则可以视为该特征类别的一个标签,所有特征类别的标签共同构成了步骤S130中所述的底库图像的属性信息集合。

然后,将待识别图像的属性信息与每个类别的特征对应的属性信息都进行比对,判断二者是否匹配,若某个特征类别对应的属性信息与待识别图像的属性信息是匹配的,则该类别中全部的特征都加入底库图像的特征集合中。这样,至多遍历完所有的特征类别对应的属性信息后,就可以获得与匹配的属性信息对应的底库图像的特征集合。若遍历完所有的特征类别对应的属性信息后,仍然没有找到匹配的属性信息,则执行步骤S160或者结束目标识别流程。

方案2中由于在特征分类阶段对底库图像的特征进行了归并,归并时相当于合并了底库图像的属性信息集合中相同的属性信息,因此方案2的属性信息集合中的属性信息的数量小于而且通常是远远小于底库中底中包含的属性信息的总数量。故后期从包含元素较少的属性信息集合中查找与待识别图像的属性信息匹配的属性信息,效率较高。并且,在方案2中一旦获得了匹配的属性信息,立刻就可以得到与其关联的一类底库图像的特征,从而确定与匹配的属性信息对应的底库图像的特征集合的效率也非常高。

下面举例说明方案2的一种具体实现:

假定底库图像的属性信息和待识别图像的属性信息中均包含目标的至少一个属性值,且底库图像的属性信息与待识别图像的属性信息匹配采用匹配定义1。

在底库的构建阶段,根据每个底库图像的属性信息中包含的属性值计算索引值(即用该索引值代表底库图像的属性信息),并根据计算出的索引值对该底库图像的特征进行分类;其中,具有相同索引值的底库图像的特征被划分为一个类别。例如,分类结果如下表所示:

表1

参照表1,假设底库图像的属性信息中只包含目标的两个属性的属性值,即A属性,其属性值可取A1、A2;以及B属性,其属性值可取B1、B2。底库图像的属性信息取遍所有可能的属性值组合,共4种,如表1第一列所示。在一种简单的索引算法中,将A1和A2分别表示为0和1,B1和B2分别表示为0和1,则可以得到表1中第2列计算出的索引值,对底库中的9张图像,分别根据其属性信息计算索引值,然后将具有相同的索引值的底库图像的特征归为一类,则可以得到表1中第3列的分类结果。

在目标识别阶段,首先根据待识别图像的属性信息中的属性值,利用同样的索引算法计算索引值。例如,待识别图像的属性信息中的属性值为A2、B2,则计算出的索引值为11。然后,判断全部类别的特征对应的索引值中是否包括待识别图像的索引值,若包括待识别图像的索引值,则将与待识别图像的索引值对应的类别中的特征加入到底库图像的特征集合中,若不包括待识别图像的索引值,则执行步骤S160或者结束目标识别流程。例如,遍历表1的第2列,发现其中第4行(不算表头)包含索引值11,则将第3列第4行中的特征8、特征9加入到底库图像的特征集合中。当然,根据索引值的设置方式,此处也可以不遍历表1的第2列,直接根据索引值11(二进制的数字3)定位到表1第2列的第4(索引值加1)行,并获取第3列第4行中的特征8、特征9,此时,由于第3列第4行不为空,所以相当于确认了全部类别的特征对应的索引值中包括待识别图像的索引值。

在上面的例子中,将属性信息转换为索引值,从而可以快速完成属性信息之间的比对,并快速获取与属性信息对应的特征。需要指出,在上面的例子中,由于属性值的取值十分简单,所以设计的索引算法也十分简单的,若属性值的取值比较复杂,例如,可以为任意的字串,还可以采用某些信息摘要算法作为索引算法。

步骤S140中获取到与匹配的属性信息对应的底库图像的特征集合后,进一步从该特征集合中查找与待识别图像的特征匹配的特征,若成功查找到匹配的特征,则执行步骤S150,若查找不到匹配的特征,则可执行步骤S160。

或者,若查找不到匹配的特征,也可以直接结束目标识别流程。例如,待识别图像的属性信息包括人脸的5个属性值:男性、26岁、黄种人、汉族、瓜子脸,共有100张底库图像包含相同的属性信息(匹配的含义采用上述匹配定义1),表明若存在待识别图像中的人脸,必然在这100张底库图像中,然而通过特征匹配却发现这100张图像中的人脸均不是待识别图像中的人脸,也就无需再考虑剩余的底库图像。

根据特征不同的表示方式,判断两个特征是否匹配的方式也会随之变化,以特征采用向量表示为例(还可以采用矩阵、数值等方式表示),可以计算两个特征向量之间的距离(如余弦距离、欧式距离等),并设置一个距离阈值,若小于该阈值,表明两个特征向量匹配,否则两个特征向量不匹配。由于特征向量可能有很多维,如256维、1024维等,再加上距离计算公式往往并不简单,所以特征匹配运算量较大。

一个底库图像的特征与待识别图像的特征匹配,则表明该底库图像中的目标与待识别图像中的目标是同一目标,否则表明该底库图像中的目标与待识别图像中的目标不是同一目标。

步骤S150:输出与匹配的特征对应的目标识别结果。

目标识别结果可以是与匹配的特征对应的底库图像,这些底库图像中的目标均与待识别图像中的目标是同一目标。输出底库图像的方式不限,例如可以是直接显示图像,可以是输出图像的编号,等等。当然,目标识别结果也可以是其他信息,例如,与匹配的特征对应的底库图像中的目标的描述信息(比如,行人的身份,车辆的牌号等)

简单总结步骤S110至步骤S150,该目标识别方法在进行目标识别时,首先利用待识别图像的属性信息过滤出一个底库图像的特征集合,然后仅在该特征集合中进行特征匹配以实现目标识别,从而避免了将待识别图像的特征与所有底库图像的特征进行匹配,而该特征集合中特征的数量小于且往往是远远小于底库中特征的总数量,因此显著提高了目标识别的效率,使得该方法可应用于底库中存在大量图像的场景中。

步骤S160:从剩余特征集合中查找与待识别图像的特征匹配的特征。

步骤S160可以视为本申请的目标识别方案提供的一种补救措施。若待识别图像中的目标本来就未录入底库,这种情况下S160并不能起到什么作用。但还存在一些其他的情况,比如:(1)属性提取模型对属性信息的提取结果存在误差,如将男性误判为女性;(2)待识别图像和底库图像很可能并非是同时同地采集的,因此即使其中包含同一个目标,其属性值也可能发生了变化(例如,年龄增长了)。这些因素都会影响属性信息匹配的结果,导致明明底库图像中存在与待识别图像中相同的目标,却查找不到匹配的属性信息,或者,查找到了匹配的属性信息但找不到匹配的特征。

此时,可以通过执行步骤S160进一步进行检索,尽量避免遗漏包含同一目标的底库图像。不过需要指出,查找不到匹配的属性信息或匹配的特征的情况还是比较少的,因此步骤S160并不会经常性的执行,本申请提出的目标识别方案的总体效率还是较高的。

步骤S160中的剩余特征集合是指底库中那些尚未与待识别图像的特征进行过匹配的底库图像的特征构成的集合。例如,在执行完步骤S130后,若无法查找到匹配的属性信息,则可进入步骤S160,此时并未进行过任何特征匹配,所以步骤S160中的剩余特征集合可以指所有底库图像的特征构成的集合。又例如,在执行完步骤S140后,若无法查找到匹配的特征,则可进入步骤S160,此时步骤S140中的与匹配的属性信息对应的底库图像的特征集合中的特征均参与了特征匹配,匹配结果均为失败,因此不纳入剩余特征集合,而只将底库包含的全部特征中除匹配失败的这些特征以外的特征纳入剩余特征集合。可见,每个特征至多执行一次匹配,并不会重复计算,因此即使执行步骤S160,在最坏的情况下特征匹配的运算次数也就是和现有技术持平,况且前文已经说了,步骤S160执行的几率不高。

从剩余特征集合查找与待识别图像的特征匹配的底库图像的特征,若成功查找到匹配的特征,则可以执行步骤S150。若仍然无法查找到匹配的特征,则可以结束目标识别流程。

在步骤S160的一些实现方式中,可以直接将剩余特征集合中的每个特征与待识别图像的特征进行比对,以判断其是否与识别图像的特征匹配。

在另一些实现方式中,还可以通过迭代执行一个重检索流程实现步骤S160,如图2所示。参照图2,重检索流程包括三个步骤,分别是:

步骤S162:对待识别图像的属性信息中包含的属性值集合进行扩展。

其中,待识别图像的属性信息中包含目标的至少一个属性值集合,此种属性信息的定义方式在阐述匹配定义3时已经介绍。扩展后的属性值集合包含对应的扩展前的属性值集合,而首次扩展前(即首次执行步骤S162前),待识别图像的属性信息中包含的每个属性值集合中仅有一个属性值。

例如,在第一轮迭代中,执行步骤S162前,属性信息包括人脸的5个属性值集合:{男性}、{25岁}、{黄种人}、{汉族}、{瓜子脸},所谓属性值集合扩展,即在属性信息的一个或多个属性值集合中加入新的属性值,比如,可以通过执行步骤S162将上述属性信息扩展为:{男性}、{20岁-30岁}、{黄种人}、{汉族}、{瓜子脸},其中,每个扩展后的属性值集合包含了对应的扩展前的属性值集合,例如{20岁-30岁}包含了{25岁}。当然,并非每次只能扩展一个属性值集合,比如,也可以扩展为:{男性}、{20岁-30岁}、{黄种人}、{汉族}、{瓜子脸,国字脸}。

又例如,在第二轮迭代中,执行步骤S162前,属性信息包括人脸的5个属性值集合:{男性}、{20岁-30岁}、{黄种人}、{汉族}、{瓜子脸},执行步骤S162后将其扩展为:{男性}、{15岁-35岁}、{黄种人}、{汉族}、{瓜子脸}。

属性值集合扩展的最终结果是覆盖底库图像中包含的所有属性信息(相当于不设置检索条件),以保证所有的底库图像的特征都会参与匹配。

步骤S164:从上一轮迭代后的剩余属性信息集合中查找与待识别图像的属性信息匹配的属性信息。

其中,上一轮迭代后的剩余属性信息集合是指:与上一轮迭代后的剩余特征集合中的特征对应的底库图像的属性信息所构成的集合。例如,在上一轮迭代中,待识别图像的属性信息为:{男性}、{25岁}、{黄种人}、{汉族}、{瓜子脸},在上一轮迭代中共有100张底库图像的属性信息与待识别图像的属性信息匹配成功,但这100张图像的特征均未与待识别图像的特征匹配成功,则属性信息:{男性}、{25岁}、{黄种人}、{汉族}、{瓜子脸}在本轮迭代中不会再参与和待识别图像的属性信息的匹配,因为上一轮迭代后的剩余特征集合中已经不包含这100张底库图像对应的特征。这也体现了前文提到的步骤S160中不会重复进行特征匹配的原则。

特别地,若当前为第一轮迭代,则上一轮迭代后的剩余属性信息集合是指:与执行步骤S130或步骤S140后剩余特征集合中的特征对应的底库图像的属性信息所构成的集合,因为根据图1,只有执行步骤S130或步骤S140后才有可能进入步骤S160。

底库图像的属性信息中包含目标的至少一个属性值,步骤S164中的属性信息匹配可以采用前文中的匹配定义3,即底库图像的属性信息与待识别图像的属性信息匹配是指底库图像的属性信息中包含的每个属性值均属于待识别图像的属性信息中包含的对应属性值集合。按照此匹配定义,在步骤S162中对待识别图像的属性信息中包含的属性值集合进行扩展后,属性信息匹配会逐轮变得容易,因为每个属性值集合中的属性值数量变得越来越多,在匹配时只需命中其中一个即可匹配成功。

步骤S164中若成功查找到匹配的属性信息,则执行步骤S166,若查找不到匹配的属性信息,则可执行步骤S162(即开始下一轮迭代)。步骤S164的内容,未详细提及之处,可以参考步骤S130。

步骤S166:获取与匹配的属性信息对应的底库图像的特征集合,并从本轮迭代中获取到的特征集合中查找与待识别图像的特征匹配的特征。

步骤S166中若成功查找到匹配的特征,则执行步骤S150,若查找不到匹配的特征,则可执行步骤S162(即开始下一轮迭代)。步骤S166的内容,未详细提及之处,可以参考步骤S140。

上述重检索流程会持续进行,直至查找到与待识别图像的特征匹配的底库图像的特征(此时继续执行步骤S150),或者确认不存在与待识别图像的特征匹配的底库图像的特征(此时剩余特征集合为空)。

在上述对步骤S160的实现方式中,通过一个迭代过程逐步扩展属性值集合,使得属性信息的匹配条件逐步放宽,尽可能在较小的范围内就检索到匹配的特征,而不是直接从底库包含的全部特征中进行匹配,从而有利于尽可能保障人脸识别的效率。

进一步的,在一些实现方式中,若目标包含多项属性,则步骤S162可以这样实现:

首先,根据属性的扩展优先级选择本轮迭代中要进行扩展的属性。然后,对待识别图像的属性信息中包含的与选择出的属性对应属性值集合进行扩展。

其中,对目标的一个属性进行扩展是指对该属性对应的属性值集合进行扩展,每轮迭代可以对一个或多个属性进行扩展。由于重检索流程的迭代可能会进行多轮,因此哪些属性要先扩展哪些属性要后扩展存在一个先后顺序,称为属性的扩展优先级。根据不同的实现方式,可以每次执行到步骤S162时才决定本轮要扩展哪些属性,也可以事先制定好一个属性扩展顺序,每次执行到步骤S162时根据该顺序选择属性进行扩展。

属性的扩展优先级可以设置为和该项属性的属性值易变程度正相关。其中,属性值易变程度可以理解为该属性值容易产生变化的程度:例如,年龄属性的属性值易变程度较高,一是因为年龄是会发生变化的,底库图像和待识别图像中即使是同一人也未必同岁,二是因为年龄分布范围较大,要精确预测年龄属性提取模型也不容易办到;又例如,脸型属性的属性值易变程度也较高,因为一个人在胖瘦不同的阶段脸型可能发生变化;又例如,人种属性的属性值易变程度较低,比如在不同的时间阶段,黄种人也不可能变为白种人或黑种人,并且属性提取模型要对肤色的判断准确率也非常高。

若某个属性的属性值易变程度较高,可以优先对其进行扩展,因为扩展后属性匹配的概率更高,有利于在较少的迭代轮次内完成属性匹配,提高目标识别效率;反之,若某个属性的属性值易变程度较低,可以暂缓对其进行扩展,因为即使扩展后,对属性的成功匹配帮助不大。

例如,对于年龄属性,上面已经说了,随着时间的推移,年龄容易发生变化,假设底库中的某人的人脸图像均采集于22岁时,但待识别的人脸图像采集于该人25岁时(不妨认为属性提取模型能够准确提取属性信息),因此可能导致属性信息匹配不上,而通过适当扩展年龄的取值范围(如扩展到25岁-30岁),则可以实现属性信息的成功匹配。

又例如,对于人种龄属性,上面已经说了,随着时间的推移,人种基本不会发生变化,假设底库中的某黄种人的人脸图像均采集于22岁时,但待识别的人脸图像采集于该人25岁时(不妨认为属性提取模型能够准确提取属性信息),因此可能导致属性信息匹配不上,即使将该人的人种的取值范围(如扩展到包括黄种人、白种人和黑种人),仍然无法实现属性信息的成功匹配。

图3示出了本申请实施例提供的目标识别装置200的功能模块图。参照图3,目标识别装置200包括:

图像获取模块210,用于获取包含有目标的待识别图像;

信息提取模块220,用于将所述待识别图像分别输入至特征提取模型和属性提取模型,获得所述特征提取模型提取出的所述待识别图像的特征以及所述属性提取模型提取出的所述待识别图像的属性信息;其中,所述待识别图像的特征和属性信息分别是指所述待识别图像中目标的特征和属性信息;

属性匹配模块230,用于从底库图像的属性信息集合中查找与所述待识别图像的属性信息匹配的属性信息,并在查找到匹配的属性信息时,获取与匹配的属性信息对应的底库图像的特征集合;其中,所述底库图像的特征是利用所述特征提取模型提取出的所述底库图像中目标的特征,所述底库图像的属性信息是利用所述属性提取模型提取出的所述底库图像中目标的属性信息;

特征匹配模块240,用于从与匹配的属性信息对应的底库图像的特征集合中查找与所述待识别图像的特征匹配的特征,并在查找到匹配的特征时,输出与匹配的特征对应的目标识别结果。

在目标识别装置200的一种实现方式中,属性匹配模块230从底库图像的属性信息集合中查找与所述待识别图像的属性信息匹配的属性信息,并在查找到匹配的属性信息时,获取与匹配的属性信息对应的底库图像的特征集合,包括:判断所述待识别图像的属性信息与底库图像的属性信息集合中的每个属性信息是否匹配,并将所述属性信息集合中与所述待识别图像的属性信息匹配的属性信息对应的底库图像的特征确定为底库图像的特征集合中的特征。

在目标识别装置200的一种实现方式中,属性匹配模块230还用于在所述从底库图像的属性信息集合中查找与所述待识别图像的属性信息匹配的属性信息之前,根据每个底库图像的属性信息对该底库图像的特征进行分类;其中,具有相同属性信息的底库图像的特征被划分为一个类别;属性匹配模块230从底库图像的属性信息集合中查找与所述待识别图像的属性信息匹配的属性信息,并在查找到匹配的属性信息时,获取与匹配的属性信息对应的底库图像的特征集合,包括:判断所述待识别图像的属性信息与每个类别的特征对应的属性信息是否匹配,并将对应的属性信息与所述待识别图像的属性信息匹配的类别中的特征确定为底库图像的特征集合中的特征。

在目标识别装置200的一种实现方式中,所述底库图像的属性信息和所述待识别图像的属性信息中均包含目标的至少一个属性值,所述底库图像的属性信息与所述待识别图像的属性信息匹配是指两项属性信息中包含的属性值对应相等,属性匹配模块230根据每个底库图像的属性信息对该底库图像的特征进行分类,包括:根据每个底库图像的属性信息中包含的属性值计算索引值,并根据计算出的索引值对该底库图像的特征进行分类;其中,具有相同索引值的底库图像的特征被划分为一个类别;属性匹配模块230判断所述待识别图像的属性信息与每个类别的特征对应的属性信息是否匹配,并将对应的属性信息与所述待识别图像的属性信息匹配的类别中的特征确定为底库图像的特征集合中的特征,包括:根据所述待识别图像的属性信息中的属性值计算索引值;判断全部类别的特征对应的索引值中是否包括所述待识别图像的索引值,并在包括时,将与所述待识别图像的索引值对应的类别中的特征确定为底库图像的特征集合中的特征。

在目标识别装置200的一种实现方式中,所述装置还包括:重检索模块,用于在查找不到匹配的属性信息或匹配的特征时,从剩余特征集合中查找与所述待识别图像的特征匹配的特征,并在查找到匹配的特征时,输出与匹配的特征对应的目标识别结果;其中,所述剩余特征集合是指尚未与所述待识别图像的特征进行过匹配的所述底库图像的特征构成的集合。

在目标识别装置200的一种实现方式中,所述底库图像的属性信息中包含目标的至少一个属性值,所述待识别图像的属性信息中包含目标的至少一个属性值集合,重检索模块在查找不到匹配的属性信息或匹配的特征时,从剩余特征集合中查找与所述待识别图像的特征匹配的特征,包括:在查找不到匹配的属性信息或匹配的特征时,迭代执行重检索流程,直至查找到与所述待识别图像的特征匹配的所述底库图像的特征,或者确认不存在与所述待识别图像的特征匹配的所述底库图像的特征,所述重检索流程包括:对所述待识别图像的属性信息中包含的属性值集合进行扩展;其中,扩展后的属性值集合包含对应的扩展前的属性值集合,在首次扩展前,所述待识别图像的属性信息中包含的每个属性值集合中仅有一个属性值;从上一轮迭代后的剩余属性信息集合中查找与所述待识别图像的属性信息匹配的属性信息,若查找到匹配的属性信息,则获取与匹配的属性信息对应的底库图像的特征集合,并从本轮获取到的特征集合中查找与所述待识别图像的特征匹配的特征,若查找不到匹配的属性信息或匹配的特征,则结束本轮迭代;其中,所述上一轮迭代后的剩余属性信息集合是指上一轮迭代后的剩余特征集合中的特征对应的底库图像的属性信息的集合,所述底库图像的属性信息与所述待识别图像的属性信息匹配是指所述底库图像的属性信息中包含的每个属性值均属于所述待识别图像的属性信息中包含的对应属性值集合。

在目标识别装置200的一种实现方式中,所述目标包含至少一项属性,重检索模块对所述待识别图像的属性信息中包含的属性值集合进行扩展,包括:根据属性的扩展优先级选择本轮迭代中要进行扩展的属性,并对所述待识别图像的属性信息中包含的与选择出的属性对应属性值集合进行扩展;其中,一项属性的扩展优先级和该项属性的属性值易变程度正相关。

在目标识别装置200的一种实现方式中,图像获取模块210获取包含有目标的待识别图像,包括:获取原始图像;利用目标检测模型检测所述原始图像中的目标,并根据检测出的目标的位置从所述原始图像中切分出包含有目标的待识别图像。

在目标识别装置200的一种实现方式中,所述目标为人脸,所述装置还包括:人脸校正模块,用于在图像获取模块210获取包含有目标的待识别图像之后,以及在信息提取模块220将所述待识别图像分别输入至特征提取模型和属性提取模型之前,将所述待识别图像输入至关键点检测模型,获得所述关键点检测模型检测出的所述待识别图像中人脸的关键点;利用所述关键点校正所述待识别图像中人脸的方向。

本申请实施例提供的目标识别装置200,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法实施例中相应内容。

图4示出了本申请实施例提供的电子设备300的一种可能的结构。参照图4,电子设备300包括:处理器310、存储器320以及通信接口330,这些组件通过通信总线340和/或其他形式的连接机构(未示出)互连并相互通讯。

其中,存储器320包括一个或多个(图中仅示出一个),其可以是,但不限于,随机存取存储器(Random Access Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),电可擦除可编程只读存储器(Electric Erasable Programmable Read-Only Memory,简称EEPROM)等。处理器310以及其他可能的组件可对存储器320进行访问,读和/或写其中的数据。

处理器310包括一个或多个(图中仅示出一个),其可以是一种集成电路芯片,具有信号的处理能力。上述的处理器310可以是通用处理器,包括中央处理器(CentralProcessing Unit,简称CPU)、微控制单元(Micro Controller Unit,简称MCU)、网络处理器(Network Processor,简称NP)或者其他常规处理器;还可以是专用处理器,包括图形处理器(Graphics Processing Unit,GPU)、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuits,简称ASIC)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。并且,在处理器310为多个时,其中的一部分可以是通用处理器,另一部分可以是专用处理器。

通信接口330包括一个或多个(图中仅示出一个),可以用于和其他设备进行直接或间接地通信,以便进行数据的交互。通信接口330可以包括进行有线和/或无线通信的接口。

在存储器320中可以存储一个或多个计算机程序指令,处理器310可以读取并运行这些计算机程序指令,以实现本申请实施例提供的目标识别方法以及其他期望的功能。

可以理解,图4所示的结构仅为示意,电子设备300还可以包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。图4中所示的各组件可以采用硬件、软件或其组合实现。电子设备300可能是实体设备,例如PC机、笔记本电脑、平板电脑、手机、服务器、嵌入式设备等,也可能是虚拟设备,例如虚拟机、虚拟化容器等。并且,电子设备300也不限于单台设备,也可以是多台设备的组合或者大量设备构成的集群。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被计算机的处理器读取并运行时,执行本申请实施例提供的目标识别方法。例如,计算机可读存储介质可以实现为图4中电子设备300中的存储器320。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 室内多径假目标识别方法、装置、电子设备以及存储介质
  • 目标识别方法、装置、电子设备、计算机可读存储介质
技术分类

06120112254712