一种人体检测识别方法和装置转让专利

申请号 : CN202010894862.9

文献号 : CN112016475B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 尹英杰李亮

申请人 : 支付宝(杭州)信息技术有限公司

摘要 :

本说明书实施例提供一种人体检测识别方法和装置,该方法包括:获取目标对象,所述目标对象包括图像和视频中的至少一种,所述图像和所述视频中包括待检测识别的人体目标;获取预先训练得到的检测识别模型,所述检测识别模型中包括编码卷积神经网络、反编码卷积神经网络和三个并联的网络模块,所述三个并联的网络模块分别用于人体检测、人体关键点检测和人体身份特征检测;基于所述检测识别模型对所述目标对象进行检测识别,得到检测识别结果,所述检测识别结果中包括人体边界框位置、人体关键点位置和人体身份特征向量。

权利要求 :

1.一种人体检测识别方法,包括:

获取目标对象,所述目标对象包括图像和视频中的至少一种,所述图像和所述视频中包括待检测识别的人体目标;

获取预先训练得到的检测识别模型,所述检测识别模型中包括编码卷积神经网络、反编码卷积神经网络和三个并联的网络模块,所述三个并联的网络模块分别用于人体检测、人体关键点检测和人体身份特征检测;

基于所述检测识别模型对所述目标对象进行检测识别,得到检测识别结果,所述检测识别结果中包括人体边界框位置、人体关键点位置和人体身份特征向量;

其中,所述检测识别模型基于图像样本数据和视频样本数据训练得到,所述图像样本数据中包括的标签数据和所述视频样本数据中包括的标签数据不同,所述图像样本数据中包括样本图像和基于所述样本图像得到的第一人体位置标签数据和关键点位置标签数据,所述视频样本数据中包括样本视频和基于所述样本视频得到的第二人体位置标签数据和人体身份标签数据。

2.如权利要求1所述的方法,所述检测识别模型通过以下方法训练得到:构建神经网络模型,所述神经网络模型中包括所述编码卷积神经网络、所述反编码卷积神经网络和所述三个并联的网络模块;

获取样本数据,所述样本数据中包括图像样本数据和视频样本数据;

基于所述图像样本数据和所述视频样本数据训练所述神经网络模型,得到所述检测识别模型。

3.如权利要求2所述的方法,所述三个并联的网络模块包括用于人体检测的第一网络模块、用于人体关键点检测的第二网络模块和用于人体身份特征检测的第三网络模块;

其中,基于所述图像样本数据和所述视频样本数据训练所述神经网络模型,得到所述检测识别模型,包括:将所述样本图像和所述样本视频作为所述神经网络模型的输入,将所述第一人体位置标签数据和所述第二人体位置标签数据作为所述第一网络模块的输出,将所述关键点位置标签数据作为所述第二网络模块的输出,以及将所述人体身份标签数据作为所述第三网络模块的输出,对所述神经网络模型进行训练,得到所述检测识别模型。

4.如权利要求3所述的方法,

所述第一网络模块中包括多个第一卷积层,所述多个第一卷积层用于确定得到人体中心点分布热力图,人体边界框尺寸和人体中心点偏移量,并根据所述人体中心点分布热力图,所述人体边界框尺寸和所述人体中心点偏移量得到人体边界框位置;

所述第二网络模块中包括多个第二卷积层,所述多个第二卷积层用于确定得到人体关键点位置分布热力图和人体关键点位置的偏移量,并根据所述人体关键点位置分布热力图和所述人体关键点位置的偏移量得到人体关键点位置;

所述第三网络模块中包括多个第三卷积层,所述多个第三卷积层用于确定得到人体特征图,并根据所述人体特征图得到人体身份特征向量。

5.如权利要求3所述的方法,在对所述神经网络模型进行训练的过程中,所述方法还包括:计算所述图像样本数据对应的第一损失函数和所述视频样本数据对应的第二损失函数;

基于所述第一损失函数和所述第二损失函数,确定所述神经网络模型的损失函数;

基于所述神经网络模型的损失函数,对所述神经网络模型进行训练,其中,在所述神经网络模型的损失函数最小的情况下,结束训练。

6.如权利要求5所述的方法,计算所述图像样本数据对应的第一损失函数和所述视频样本数据对应的第二损失函数,包括:基于所述第一人体位置标签数据对应的损失函数和所述关键点位置标签数据对应的损失函数,计算所述第一损失函数;

基于所述第二人体位置标签数据对应的损失函数和所述人体身份标签数据对应的损失函数,计算所述第二损失函数。

7.如权利要求5所述的方法,基于所述第一损失函数和所述第二损失函数,确定所述神经网络模型的损失函数,包括:获取所述第一损失函数对应的第一权重和所述第二损失函数对应的第二权重,所述第一权重和所述第二权重用于表征所述图像样本数据和所述视频样本数据参与模型训练的程度;

基于所述第一损失函数、所述第一权重、所述第二损失函数和所述第二权重,确定所述神经网络模型的损失函数。

8.如权利要求7所述的方法,

所述第一权重和所述第二权重还用于平衡所述图像样本数据和所述视频样本数据之间的数据量差异;

其中,在所述图像样本数据的数据量大于所述视频样本数据的数据量的情况下,所述第一权重小于所述第二权重。

9.如权利要求1所述的方法,

在所述目标对象包括视频的情况下,所述检测识别结果中包括多个人体身份特征向量;

其中,在得到所述多个人体身份特征向量后,所述方法还包括:

基于所述多个人体身份特征向量进行相似度计算,得到所述视频中人体目标的身份标识;

基于所述身份标识,进行人体目标的跟踪。

10.一种人体检测识别装置,包括:

第一获取单元,获取目标对象,所述目标对象包括图像和视频中的至少一种,所述图像和所述视频中包括待检测识别的人体目标;

第二获取单元,获取预先训练得到的检测识别模型,所述检测识别模型中包括编码卷积神经网络、反编码卷积神经网络和三个并联的网络模块,所述三个并联的网络模块分别用于人体检测、人体关键点检测和人体身份特征检测;

检测识别单元,基于所述检测识别模型对所述目标对象进行检测识别,得到检测识别结果,所述检测识别结果中包括人体边界框位置、人体关键点位置和人体身份特征向量;

其中,所述检测识别模型基于图像样本数据和视频样本数据训练得到,所述图像样本数据中包括的标签数据和所述视频样本数据中包括的标签数据不同,所述图像样本数据中包括样本图像和基于所述样本图像得到的第一人体位置标签数据和关键点位置标签数据,所述视频样本数据中包括样本视频和基于所述样本视频得到的第二人体位置标签数据和人体身份标签数据。

11.一种电子设备,包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,该可执行指令在被执行时使该处理器执行以下操作:获取目标对象,所述目标对象包括图像和视频中的至少一种,所述图像和所述视频中包括待检测识别的人体目标;

获取预先训练得到的检测识别模型,所述检测识别模型中包括编码卷积神经网络、反编码卷积神经网络和三个并联的网络模块,所述三个并联的网络模块分别用于人体检测、人体关键点检测和人体身份特征检测;

基于所述检测识别模型对所述目标对象进行检测识别,得到检测识别结果,所述检测识别结果中包括人体边界框位置、人体关键点位置和人体身份特征向量;

其中,所述检测识别模型基于图像样本数据和视频样本数据训练得到,所述图像样本数据中包括的标签数据和所述视频样本数据中包括的标签数据不同,所述图像样本数据中包括样本图像和基于所述样本图像得到的第一人体位置标签数据和关键点位置标签数据,所述视频样本数据中包括样本视频和基于所述样本视频得到的第二人体位置标签数据和人体身份标签数据。

12.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下方法:获取目标对象,所述目标对象包括图像和视频中的至少一种,所述图像和所述视频中包括待检测识别的人体目标;

获取预先训练得到的检测识别模型,所述检测识别模型中包括编码卷积神经网络、反编码卷积神经网络和三个并联的网络模块,所述三个并联的网络模块分别用于人体检测、人体关键点检测和人体身份特征检测;

基于所述检测识别模型对所述目标对象进行检测识别,得到检测识别结果,所述检测识别结果中包括人体边界框位置、人体关键点位置和人体身份特征向量;

其中,所述检测识别模型基于图像样本数据和视频样本数据训练得到,所述图像样本数据中包括的标签数据和所述视频样本数据中包括的标签数据不同,所述图像样本数据中包括样本图像和基于所述样本图像得到的第一人体位置标签数据和关键点位置标签数据,所述视频样本数据中包括样本视频和基于所述样本视频得到的第二人体位置标签数据和人体身份标签数据。

说明书 :

一种人体检测识别方法和装置

技术领域

[0001] 本文件涉及图像处理领域,尤其涉及一种人体检测识别方法和装置。

背景技术

[0002] 人体检测,人体关键点检测以及人体多目标跟踪是视觉人体运动分析的重要组成部分,在智能视频监控、虚拟现实、客流检测统计、行为分析、人与场的时空交互统计等方面有着广泛的应用。
[0003] 目前,在基于图像/视频进行人体检测、人体关键点检测和人体多目标跟踪时,通常是分别进行检测的,无法同时实现,比如,可以进行人体检测和人体关键点检测,但无法同时实现人体多目标跟踪,或者可以进行人体检测和人体多目标跟踪,但无法实现人体关键点检测。
[0004] 由此可见,亟需一种有效的方法可以同时实现上述人体检测、人体关键点检测和人体多目标跟踪这三个目的。

发明内容

[0005] 本说明书实施例提供一种人体检测识别方法和装置,用于解决目前无法同时实现人体检测人体关键点检测和人体多目标跟踪的问题。
[0006] 为解决上述技术问题,本说明书实施例是这样实现的:
[0007] 第一方面,提出一种人体检测识别方法,包括:
[0008] 获取目标对象,所述目标对象包括图像和视频中的至少一种,所述图像和所述视频中包括待检测识别的人体目标;
[0009] 获取预先训练得到的检测识别模型,所述检测识别模型中包括编码卷积神经网络、反编码卷积神经网络和三个并联的网络模块,所述三个并联的网络模块分别用于人体检测、人体关键点检测和人体身份特征检测;
[0010] 基于所述检测识别模型对所述目标对象进行检测识别,得到检测识别结果,所述检测识别结果中包括人体边界框位置、人体关键点位置和人体身份特征向量。
[0011] 第二方面,提出一种人体检测识别装置,包括:
[0012] 第一获取单元,获取目标对象,所述目标对象包括图像和视频中的至少一种,所述图像和所述视频中包括待检测识别的人体目标;
[0013] 第二获取单元,获取预先训练得到的检测识别模型,所述检测识别模型中包括编码卷积神经网络、反编码卷积神经网络和三个并联的网络模块,所述三个并联的网络模块分别用于人体检测、人体关键点检测和人体身份特征检测;
[0014] 检测识别单元,基于所述检测识别模型对所述目标对象进行检测识别,得到检测识别结果,所述检测识别结果中包括人体边界框位置、人体关键点位置和人体身份特征向量。
[0015] 第三方面,提出一种电子设备,该电子设备包括:
[0016] 处理器;以及
[0017] 被安排成存储计算机可执行指令的存储器,该可执行指令在被执行时使该处理器执行以下操作:
[0018] 获取目标对象,所述目标对象包括图像和视频中的至少一种,所述图像和所述视频中包括待检测识别的人体目标;
[0019] 获取预先训练得到的检测识别模型,所述检测识别模型中包括编码卷积神经网络、反编码卷积神经网络和三个并联的网络模块,所述三个并联的网络模块分别用于人体检测、人体关键点检测和人体身份特征检测;
[0020] 基于所述检测识别模型对所述目标对象进行检测识别,得到检测识别结果,所述检测识别结果中包括人体边界框位置、人体关键点位置和人体身份特征向量。
[0021] 第四方面,提出一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下方法:
[0022] 获取目标对象,所述目标对象包括图像和视频中的至少一种,所述图像和所述视频中包括待检测识别的人体目标;
[0023] 获取预先训练得到的检测识别模型,所述检测识别模型中包括编码卷积神经网络、反编码卷积神经网络和三个并联的网络模块,所述三个并联的网络模块分别用于人体检测、人体关键点检测和人体身份特征检测;
[0024] 基于所述检测识别模型对所述目标对象进行检测识别,得到检测识别结果,所述检测识别结果中包括人体边界框位置、人体关键点位置和人体身份特征向量。
[0025] 本说明书一个或多个实施例采用的上述至少一个技术方案能够达到以下技术效果:在进行人体检测、人体关键点检测和人体多目标跟踪之前,预先训练检测识别模型,该检测识别模型中包括编码卷积神经网络、反编码卷积神经网络和并联的三个网络模块,该并联的三个网络模块可以分别用于人体检测、人体关键点检测和人体身份特征检测,即在构建模型时,在编码‑反编码神经网络的基础上增加了可以同时实现人体检测、人体关键点检测和人体身份特征检测的三个网络模块,这样,在基于图像/视频进行人体检测、人体关键点检测和人体多目标跟踪时,可以基于预先训练的检测识别模型得到图像/视频中人体目标的人体边界框位置、人体关键点位置和人体身份特征向量,进而可以同时实现人体检测、人体关键点检测和人体多目标跟踪。

附图说明

[0026] 为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0027] 图1是本说明书的一个实施例人体检测识别方法的流程示意图;
[0028] 图2是本说明书的一个实施例神经网络模型的示意图;
[0029] 图3是本说明书的一个实施例的基于图像样本数据和视频样本数据对神经网络模型进行模型训练的示意图;
[0030] 图4是本说明书的一个实施例电子设备的结构示意图;
[0031] 图5是本说明书的一个实施例人体检测识别装置的结构示意图。

具体实施方式

[0032] 为了使本技术领域的人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
[0033] 在本说明书实施例中,人体检测可以理解为图像/视频中人体目标的视觉检测,主要目的是定位人体目标的边界框在图像/视频中的位置;人体关键点检测可以理解为图像/视频中人体的关键关节点的检测,主要目的是定位人体关键点在图像/视频中位置,以便基于人体关键点的位置对人体进行行为分析,其中,人体关键点可以包括但不限于:鼻子、左眼、右眼、左耳、右耳、左肩、右肩、左肘、右肘、左腕、右腕、左臀、右臀、左膝、右膝、左踝、右踝;多目标跟踪可以理解为对图像序列(即视频)中的多个不同人体的时空轨迹进行跟踪,实现对人体的动态跟踪。
[0034] 目前,对图像/视频中的人体目标进行人体检测、人体关键点检测和人体多目标跟踪时,通常是分别进行检测,无法同时实现,导致无法高效地进行人体目标的检测识别。
[0035] 本说明书实施例提供一种人体检测识别方法和装置,在进行人体检测、人体关键点检测和人体多目标跟踪之前,预先训练检测识别模型,该检测识别模型中包括编码卷积神经网络、反编码卷积神经网络和并联的三个网络模块,该并联的三个网络模块可以分别用于人体检测、人体关键点检测和人体身份特征检测,即在构建模型时,在编码‑反编码神经网络的基础上增加了可以同时实现人体检测、人体关键点检测和人体身份特征检测的三个网络模块,这样,在基于图像/视频进行人体检测、人体关键点检测和人体多目标跟踪时,可以基于预先训练的检测识别模型得到图像/视频中人体目标的人体边界框位置、人体关键点位置和人体身份特征向量,进而可以同时实现人体检测、人体关键点检测和人体多目标跟踪。
[0036] 以下结合附图,详细说明本说明书各实施例提供的技术方案。
[0037] 图1是本说明书的一个实施例人体检测识别方法的流程示意图。所述方法如下所述。
[0038] S102:获取目标对象,所述目标对象包括图像和视频中的至少一种,所述图像和所述视频中包括待检测识别的人体目标。
[0039] 在S102中,在想要进行人体检测,人体关键点检测以及人体多目标跟踪时,可以获取图像和视频中的至少一种,以便后续可以将获取的图像和视频中的至少一种输入预先训练的检测识别模型中进行人体检测识别。
[0040] 需要说明的是,在本实施例中,若想要进行人体检测和人体关键点检测,则可以获取图像,也可以获取视频,也可以获取图像和视频,若想要进行人体多目标跟踪,则可以获取视频。也就是说,在获取图像的情况下,可以实现人体检测和人体关键点检测,在获取视频的情况下,可以实现人体检测、人体关键点检测和人体多目标跟踪。这样,在S102中,可以根据实际需求确定获取图像还是获取视频,还是即获取图像又获取视频。
[0041] 还需要说明的是,本实施例中获取到的图像/视频中可以包括待检测识别的人体目标,以避免进行无意义的检测识别。
[0042] S104:获取预先训练得到的检测识别模型,所述检测识别模型中包括编码卷积神经网络、反编码卷积神经网络和三个并联的网络模块,所述三个并联的网络模块分别用于人体检测、人体关键点检测和人体身份特征检测。
[0043] 在S104中,可以获取预先训练得到的检测识别模型,以便基于该检测识别模型对S102中获取到的图像/视频进行人体目标的检测识别。
[0044] 本实施例中,检测识别模型中可以包括编码卷积神经网络、反编码卷积神经网络和三个并联的网络模块,该三个并联的网络模块分别用于人体检测、人体关键点检测和人体身份特征检测,其中,人体检测可以得到人体边界框位置(即图像/视频中的人体目标所在边界框在图像/视频中的位置),人体关键点检测可以得到人体关键点位置(即图像/视频中的人体目标的关键关节点在图像/视频中的位置),人体身份特征检测可以得到人体身份特征向量,该人体身份特征向量用于确定图像/视频中人体目标的身份标识,该人体目标的身份标识用于进行人体多目标跟踪。
[0045] 这样,在后续基于S102中获取到的图像/视频进行人体检测、人体关键点检测和人体多目标跟踪时,可以基于本步骤中获取到的检测识别模型得到图像/视频中人体目标的人体边界框位置、人体关键点位置和人体身份特征向量,进而可以同时实现人体检测、人体关键点检测和人体多目标跟踪,有效解决了本说明书中的上述技术问题。
[0046] 以下将详细说明上述检测识别模型的具体训练过程。
[0047] 本实施例中,上述检测识别模型可以通过以下方式预先训练得到:
[0048] 第一步:构建神经网络模型。
[0049] 本实施例中的神经网络模型中包括上述记载的编码卷积神经网络、反编码卷积神经网络和三个并联的网络模块。
[0050] 请参见图2。图2中,编码卷积神经网络和反编码卷积神经网络(以下可以简写为编码‑反编码卷积神经网络)为神经网络模型的主干网络,三个并联的网络模块(图2所示的网络模块1、网络模块2和网络模块3)共用编码‑反编码卷积神经网络。
[0051] 可选地,编码卷积神经网络可以选用VGGnet,Resnet,Alexnet等大型网络,也可以选用SqueezeNet,Mobilenet等轻量级网络,这里不做具体限定,同样地,反编码卷积神经网络也可以选用任一可以实现反编码作用的卷积神经网络,这里也不做具体限定。三个并联的网络模块中,任一网络模块可以由多个卷积层构成。
[0052] 第二步:获取样本数据。
[0053] 样本数据中可以包括图像样本数据和视频样本数据,这样,基于该样本数据训练得到的检测识别模型,可以同时实现人体检测,人体关键点检测以及人体多目标跟踪。
[0054] 需要说明的是,考虑到基于静态的图像样本数据就可以实现人体检测以及人体关键点检测,而人体多目标跟踪则需要基于序列图像数据(视频样本数据)实现,且静态的图像样本数据因其获取及存储的便利性使其更易构造具有丰富样本的人体数据,序列图像数据(视频样本数据)因其对存储空间需求大,一般是在特定应用领域(如视频监控)根据特定需求构造数据集,如目前大型的开源人体图像数据库代表为COCO数据集,该数据集采集的是各种生活场景下的人体静态图像数据,标注的是人体的边界框及人体的关键点位置,MOT数据集采集的是监控场景下的人流数据,标注的是人体的边界框及身份ID数据,因此,本实施例提出一种基于标签差异数据集的联合训练,即图像样本数据中包括的标签数据和视频样本数据中包括的标签数据不同,这样,可以通过具有标签差异数据集的联合训练实现网络的有效学习训练。
[0055] 具体地,本实施例中的图像样本数据中包括样本图像、第一人体位置标签数据和关键点位置标签数据,第一人体位置标签数据和关键点位置标签数据可以通过对样本图像进行人工标注得到;视频样本数据中包括样本视频、第二人体位置标签数据和人体身份标签数据,第二人体位置标签数据和人体身份标签数据可以通过对样本视频进行人工标注得到。其中,第一人体位置标签数据和第二人体位置标签数据可以分别表征样本图像和样本视频中的人体边界框位置,关键点位置标签数据可以表征样本图像中的人体关键点位置,人体身份标签数据可以表征样本视频中的人体身份特征向量。
[0056] 第三步:在构建神经网络模型并获取到图像样本数据和视频样本数据后,可以基于图像样本数据和视频样本数据对神经网络模型进行训练,进而得到上述检测识别模型。
[0057] 具体地,在进行模型训练时,可以将上述样本图像和上述样本视频作为模型输入,将第一人体位置标签数据和关键点位置标签数据,以及第二人体位置标签数据和人体身份标签数据作为模型输出。
[0058] 本实施例中,三个并联的网络模块可以分别表示为第一网络模块、第二网络模块和第三网络模块,其中,第一网络模块可以用于人体检测、第二网络模块可以用于人体关键点检测,第三网络模块可以用于人体身份特征检测。上述将第一人体位置标签数据和关键点位置标签数据,以及第二人体位置标签数据和人体身份标签数据作为模型输出,具体可以是将第一人体位置标签数据和第二人体位置标签数据作为第一网络模块的输出,将关键点位置标签数据作为第二网络模块的输出,将人体身份标签数据作为第三网络模块的输出。
[0059] 第一网络模块中可以包括多个第一卷积层,在模型训练的过程中,多个第一卷积层可以基于反编码卷积神经网络的输出得到人体中心点分布热力图,人体边界框尺寸(w,h)和人体中心点偏移量,通过在人体中心点分布热力图中取峰值点作为人体中心点位置,并通过人体中心点偏移量进行人体中心点位置的修正得到人体中心点在图像中的最终位置,这样,在已知人体中心点位置和人体边界框尺寸的情况下,就可以得到人体的边界框位置。其中,上述人体中心点分布热力图,人体边界框尺寸、人体中心点偏移量和人体中心点位置这四个输出量可以分别由一个或多个卷积层实现。
[0060] 第二网络模块中可以包括多个第二卷积层,在模型训练的过程中,多个第二卷积层可以基于反编码卷积神经网络的输出得到人体各个关键点位置分布热力图和人体各个关键点位置的偏移量,通过在各个关键点位置分布热力图中取峰值点作为关键点位置,并通过各个关键点位置的偏移量进行人体关键点位置的修正可以得到人体各个关键点的最终位置,即得到人体关键点位置。其中,上述人体各个关键点位置分布热力图、人体各个关键点位置的偏移量和人体关键点位置这三个输出量可以分别由一个或多个卷积层实现。
[0061] 第三网络模块中可以包括多个第三卷积层,在模型训练的过程中,多个第三卷积层可以基于反编码卷积神经网络的输出得到人体特征图,根据人体检测的位置,在人体特征图上的相应位置抽取对应位置的人体身份特征向量。其中,上述人体特征图和人体身份特征向量这两个输出量可以分别由一个或多个卷积层实现。
[0062] 模型训练的过程可以参见图3。
[0063] 图3中,在对神经网络模型进行训练时,可以将样本图像和样本视频作为模型输入。需要说明的是,在对样本视频进行训练时,并非以视频的方式进行处理,而是将样本视频作为多帧图像并一帧一帧进行处理,且对每帧图像的处理方法与对样本图像的处理方法相同。
[0064] 编码卷积神经网络可以对输入的样本图像和样本视频进行下采样,得到特征图1;反编码卷积神经网络可以对特征图1进行上采样,得到特征图2,以提升编码卷积神经网络输出的特征图的分辨率以及对编码网络的低、中、高特征通过跳跃链接实现融合,进而形成更鲁棒的特征。
[0065] 第一网络模块、第二网络模块和第三网络模块分别由多个卷积层构成(图3中以卷积层1至卷积层n表示,n为大于1的整数),其中,第一网络模块可以视为人体检测模块,可以基于反编码神经网络输出的特征图预测得到样本图像和样本视频中人体目标的人体中心点分布热力图、人体边界框尺寸和人体中心点偏移量,进而得到人体边界框位置,第二网络模块可以视为人体关键点检测模块,可以基于反编码神经网络输出的特征图预测得到样本图像和样本视频中人体关键点位置分布热力图和人体关键点位置的偏移量,进而得到人体关键点位置,第三网络模块可以视为多目标跟踪身份重识别模块,可以基于反编码神经网络输出的特征图输出样本图像和样本视频中的人体特征图,进而得到人体身份特征向量,该人体身份特征向量用于确定人体目标的身份标识,进而实现人体目标跟踪。
[0066] 这样,通过编码‑反编码卷积神经网络和三个并联的网络模块,即通过在主干网络后添加三个独立的并联任务模块,可以对图像/视频中人体目标进行更全面感知,此外,在模型训练时,通过具有标签差异数据集的联合训练,还可以实现多任务的有效训练。
[0067] 本实施例中,在对上述神经网络模型进行训练的过程中,还可以计算神经网络模型的损失函数,在该损失函数最小的情况下,可以使得神经网络模型的网络参数具有较为合适的值,此时训练得到的神经网络模型即为上述检测识别模型。
[0068] 上述神经网络模型的损失函数可以通过以下方式确定得到:
[0069] 第一步:计算图像样本数据对应的第一损失函数和视频样本数据对应的第二损失函数。
[0070] 对图像样本数据和视频样本数据进行学习训练的过程中,图像样本数据和视频样本数据会分别对应一个损失函数,为了便于区分,这里分别由第一损失函数和第二损失函数表示。
[0071] 在计算第一损失函数时,由于图像样本数据中包括第一人体位置标签数据和关键点位置标签数据,因此,第一损失函数可以由第一人体位置标签数据对应的损失函数和关键点位置标签数据对应的损失函数相加得到,同样的,由于第二损失函数中包括第二人体位置标签数据和人体身份标签数据,因此,第二损失函数可以由第二人体位置标签数据对应的损失函数和人体身份标签数据对应的损失函数相加得到。
[0072] 需要说明的是,由于在模型训练过程中,第一人体位置标签数据和第二人体位置标签数据是混合在一起进行模型训练的,因此,为了便于分别确定第一人体位置标签数据和第二人体位置标签数据各自的损失函数,需要在模型训练之前对第一人体位置标签数据和第二人体位置标签数据进行标记,在模型训练过程中,可以通过该标记对第一人体位置标签数据和第二人体位置标签数据进行区分,进而分别确定第一人体位置标签数据和第二人体位置标签数据各自对应的损失函数。
[0073] 第二步:在计算得到上述第一损失函数和第二损失函数后,可以基于第一损失函数和第二损失函数,确定神经网络模型的损失函数。
[0074] 本实施例中,在基于第一损失函数和第二损失函数确定神经网络网络的损失函数时,还可以结合图像样本数据和视频样本数据各自的权重。这里为了便于区分,可以由第一权重表示图像样本数据的权重,由第二权重表示视频样本数据的权重。
[0075] 第一权重和第二权重可以分别用于表征图像样本数据和视频样本数据参与模型训练的程度,参与模型训练的程度可以表征模型训练的侧重点(即模型训练更加关注的学习任务),本实施例中,第一权重和第二权重可以由模型训练的侧重点确定得到。
[0076] 例如,若模型训练的侧重点是对视频样本数据进行学习训练(即图像样本数据参与模型训练的程度小于视频样本数据参与模型训练的程度,模型训练更关注多目标跟踪的学习任务),以便基于训练好的模型更好的进行人体多目标跟踪,则第二权重可以大于第一权重,反之,若模型训练的侧重点是对图像样本数据进行学习训练(即图像样本数据参与模型训练的程度大于视频样本数据参与模型训练的程度,模型训练更关注关键点检测的学习任务),以便基于训练好的模型更好的进行人体关键点检测,则第一权重可以大于第二权重。这样,可以根据对模型的学习训练侧重点,灵活地调整第一权重和第二权重,以适用不同的应用场景。
[0077] 在实际应用中,第一权重和第二权重的大小可以根据实际需求设置,这里不做具体限定。
[0078] 在已知第一权重和第二权重的情况下,可以基于第一损失函数、第一权重、第二损失函数和第二权重,确定神经网络模型的损失函数。具体可以由以下公式确定得到神经网络模型的损失函数:
[0079] L=L1+λL2=(L第一人体+L关键点)+λ(L第二人体+L身份特征);
[0080] L表示神经网络模型的损失函数,L1表示第一损失函数,L2表示第二损失函数,这里默认L1的权重(即上述第一权重)为1,λ为L2的权重(即上述第二权重),若模型训练的侧重点是对图像样本数据进行学习训练,则λ小于1,反之,若模型训练的侧重点是对视频样本数据进行学习训练,则λ大于1,L第一人体为上述第一人体位置标签数据对应的损失函数,L关键点为上述关键点位置标签数据对应的损失函数,L第二人体为上述第二人体位置标签数据对应的损失函数,L身份特征为上述人体身份标签数据对应的损失函数。
[0081] 需要说明的是,上述第一权重和第二权重还可以用于平衡图像样本数据和视频样本数据之间的数据量差异,比如,若图像样本数据的数据量大于视频样本数据的数据量,则为了增加视频样本数据参与模型训练的程度,以平衡图像样本数据和视频样本数据之间的数据量差异,第一权重可以小于第二权重,反之,若图像样本数据的数据量小于视频样本数据的数据量,则为了增加图像样本数据参与模型训练的程度,以平衡图像样本数据和视频样本数据之间的数据量差异,第一权重可以大于第二权重。
[0082] 在实际应用中,在进行模型训练之前,可以根据模型训练的侧重点和图像样本数据和视频样本数据各自的数据量,综合确定第一权重和第二权重的大小,也即可以通过调整第一权重和第二权重的大小,改变模型训练的侧重点和平衡图像样本数据和视频样本数据之间的数据量差异,以实现模型训练的目的并适应不同的应用场景。
[0083] 第三步:在得到神经网络模型的损失函数后,可以基于该损失函数对神经网络模型进行训练。
[0084] 具体地,在损失函数最小的情况下,神经网络模型中的各网络参数可以具有较为合适的值,基于该较为合适的值得到的神经网络模型即为最终需要训练得到的检测识别模型。
[0085] 本实施例在通过上述方法训练得到检测识别模型后,在需要对图像/视频进行人体检测识别时,可以获取该检测识别模型。
[0086] S106:基于所述检测识别模型对所述目标对象进行检测识别,得到检测识别结果,所述检测识别结果中包括人体边界框位置、人体关键点位置和人体身份特征向量。
[0087] 在S106中,可以基于S104中训练得到的检测识别模型对S102中获取到的图像/视频进行检测识别,即将S102中获取到的图像/视频作为检测识别模型的输入,检测识别模型可以输出检测识别结果,该检测识别结果中包括人体边界框位置、人体关键点位置和人体身份特征向量。
[0088] 本实施例中,在得到人体边界框位置后,可以即人体边界框位置实现人体目标的检测,在得到人体关键点位置后,可以基于人体关键点位置实现对人体目标的关键点检测,基于检测到的人体关键点,还可以进一步基于人体关键点分析人体目标的行为。
[0089] 需要说明的是,在得到人体身份特征向量后,若S102中获取的是视频,则该人体身份特征向量可以是基于视频中的序列图像得到多个人体身份特征向量,在这种情况下,可以基于人体身份特征向量进行相似度计算,得到视频中人体目标的身份标识,即对视频中的人体目标进行身份识别,并在身份识别的基础上,可以进行人体目标的跟踪。
[0090] 具体地,针对视频中的任一序列图像,基于检测识别模型可以得到序列图像中包括的人体目标的人体身份特征向量,在得到多个序列图像各自对应的人体身份特征向量后,可以计算不同序列图像对应的人体身份特征向量之间的相似度,若两个序列图像的人体身份特征向量之间的相似度不小于预设阈值,则可以确定该两个序列图像的人体身份特征向量对应的人体目标为同一个人体目标,进而得到该人体目标的身份标识。在得到人体目标的身份标识后,可以基于身份标识实现对人体目标的跟踪。
[0091] 本说明书的一个或多个实施例,在进行人体检测、人体关键点检测和人体多目标跟踪之前,预先训练检测识别模型,该检测识别模型中包括编码卷积神经网络、反编码卷积神经网络和并联的三个网络模块,该并联的三个网络模块可以分别用于人体检测、人体关键点检测和人体身份特征检测,即在构建模型时,在编码‑反编码神经网络的基础上增加了可以同时实现人体检测、人体关键点检测和人体身份特征检测的三个网络模块,这样,在基于图像/视频进行人体检测、人体关键点检测和人体多目标跟踪时,可以基于预先训练的检测识别模型得到图像/视频中人体目标的人体边界框位置、人体关键点位置和人体身份特征向量,进而可以同时实现人体检测、人体关键点检测和人体多目标跟踪。
[0092] 上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0093] 图4是本说明书的一个实施例电子设备的结构示意图。请参考图4,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random‑Access Memory,RAM),也可能还包括非易失性存储器(non‑volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
[0094] 处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(Extended Industry Standard Architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
[0095] 存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
[0096] 处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成人体检测识别装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
[0097] 获取目标对象,所述目标对象包括图像和视频中的至少一种,所述图像和所述视频中包括待检测识别的人体目标;
[0098] 获取预先训练得到的检测识别模型,所述检测识别模型中包括编码卷积神经网络、反编码卷积神经网络和三个并联的网络模块,所述三个并联的网络模块分别用于人体检测、人体关键点检测和人体身份特征检测;
[0099] 基于所述检测识别模型对所述目标对象进行检测识别,得到检测识别结果,所述检测识别结果中包括人体边界框位置、人体关键点位置和人体身份特征向量。
[0100] 上述如本说明书图4所示实施例揭示的人体检测识别装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0101] 该电子设备还可执行图1的方法,并实现人体检测识别装置在图1所示实施例中的功能,本说明书实施例在此不再赘述。
[0102] 当然,除了软件实现方式之外,本说明书实施例的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
[0103] 本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下操作:
[0104] 获取目标对象,所述目标对象包括图像和视频中的至少一种,所述图像和所述视频中包括待检测识别的人体目标;
[0105] 获取预先训练得到的检测识别模型,所述检测识别模型中包括编码卷积神经网络、反编码卷积神经网络和三个并联的网络模块,所述三个并联的网络模块分别用于人体检测、人体关键点检测和人体身份特征检测;
[0106] 基于所述检测识别模型对所述目标对象进行检测识别,得到检测识别结果,所述检测识别结果中包括人体边界框位置、人体关键点位置和人体身份特征向量。
[0107] 图5是本说明书的一个实施例人体检测识别装置50的结构示意图。请参考图5,在一种软件实施方式中,所述人体检测识别装置50可包括:第一获取单元51、第二获取单元52和检测识别单元53,其中:
[0108] 第一获取单元51,获取目标对象,所述目标对象包括图像和视频中的至少一种,所述图像和所述视频中包括待检测识别的人体目标;
[0109] 第二获取单元52,获取预先训练得到的检测识别模型,所述检测识别模型中包括编码卷积神经网络、反编码卷积神经网络和三个并联的网络模块,所述三个并联的网络模块分别用于人体检测、人体关键点检测和人体身份特征检测;
[0110] 检测识别单元53,基于所述检测识别模型对所述目标对象进行检测识别,得到检测识别结果,所述检测识别结果中包括人体边界框位置、人体关键点位置和人体身份特征向量。
[0111] 可选地,所述第二获取单元52,通过以下方法训练得到所述检测识别模型:
[0112] 构建神经网络模型,所述神经网络模型中包括所述编码卷积神经网络、所述反编码卷积神经网络和所述三个并联的网络模块;
[0113] 获取样本数据,所述样本数据中包括图像样本数据和视频样本数据;
[0114] 基于所述图像样本数据和所述视频样本数据训练所述神经网络模型,得到所述检测识别模型。
[0115] 可选地,所述图像样本数据中包括的标签数据和所述视频样本数据中包括的标签数据不同;
[0116] 其中,所述图像样本数据中包括样本图像和基于所述样本图像得到的第一人体位置标签数据和关键点位置标签数据,所述视频样本数据中包括样本视频和基于所述样本视频得到的第二人体位置标签数据和人体身份标签数据。
[0117] 可选地,所述三个并列的网络模块包括用于人体检测的第一网络模块、用于人体关键点检测的第二网络模块和用于人体身份特征检测的第三网络模块;
[0118] 其中,所述第二获取单元52,基于所述图像样本数据和所述视频样本数据训练所述神经网络模型,得到所述检测识别模型,包括:
[0119] 将所述样本图像和所述样本视频作为所述神经网络模型的输入,将所述第一人体位置标签数据和所述第二人体位置标签数据作为所述第一网络模块的输出,将所述关键点位置标签数据作为所述第二网络模块的输出,以及将所述人体身份标签数据作为所述第三网络模块的输出,对所述神经网络模型进行训练,得到所述检测识别模型。
[0120] 可选地,所述第一网络模块中包括多个第一卷积层,所述多个第一卷积层用于确定得到人体中心点分布热力图,人体边界框尺寸和人体中心点偏移量,并根据所述人体中心点分布热力图,所述人体边界框尺寸和所述人体中心点偏移量得到人体边界框位置;
[0121] 所述第二网络模块中包括多个第二卷积层,所述多个第二卷积层用于确定得到人体关键点位置分布热力图和人体关键点位置的偏移量,并根据所述人体关键点位置分布热力图和所述人体关键点位置的偏移量得到人体关键点位置;
[0122] 所述第三网络模块中包括多个第三卷积层,所述多个第三卷积层用于确定得到人体特征图,并根据所述人体特征图得到人体身份特征向量。
[0123] 可选地,所述第二获取单元52,在对所述神经网络模型进行训练的过程中:
[0124] 计算所述图像样本数据对应的第一损失函数和所述视频样本数据对应的第二损失函数;
[0125] 基于所述第一损失函数和所述第二损失函数,确定所述神经网络模型的损失函数;
[0126] 基于所述神经网络模型的损失函数,对所述神经网络模型进行训练,其中,在所述神经网络模型的损失函数最小的情况下,结束训练。
[0127] 可选地,所述第二获取单元52,计算所述图像样本数据对应的第一损失函数所述视频样本数据对应的第二损失函数,包括:
[0128] 基于所述第一人体位置标签数据对应的损失函数和所述关键点位置标签数据对应的损失函数,计算所述第一损失函数;
[0129] 基于所述第二人体位置标签数据对应的损失函数和所述人体身份标签数据对应的损失函数,计算所述第二损失函数。
[0130] 可选地,所述第二获取单元52,基于所述第一损失函数和所述第二损失函数,确定所述神经网络模型的损失函数,包括:
[0131] 获取所述第一损失函数对应的第一权重和所述第二损失函数对应的第二权重,所述第一权重和所述第二权重用于表征所述图像样本数据和所述视频样本数据参与模型训练的程度;
[0132] 基于所述第一损失函数、所述第一权重、所述第二损失函数和所述第二权重,确定所述神经网络模型的损失函数。
[0133] 可选地,所述第一权重和所述第二权重还用于平衡所述图像样本数据和所述视频样本数据之间的数据量差异;
[0134] 其中,在所述图像样本数据的数据量大于所述视频样本数据的数据量的情况下,所述第一权重小于所述第二权重。
[0135] 可选地,在所述目标对象包括视频的情况下,所述检测识别结果中包括多个人体身份特征向量;
[0136] 其中,所述检测识别单元53,在得到所述多个人体身份特征向量后,基于所述多个人体身份特征向量进行相似度计算,得到所述视频中人体目标的身份标识;
[0137] 基于所述身份标识,进行人体目标的跟踪。
[0138] 本说明书实施例提供的人体检测识别装置50还可执行图1的方法,并实现人体检测识别装置在图1所示实施例的功能,本说明书实施例在此不再赘述。
[0139] 总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本文件的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本文件的保护范围之内。
[0140] 上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
[0141] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0142] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0143] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。