首页> 中国专利> 基于视频的人体动作识别方法、装置、介质及电子设备

基于视频的人体动作识别方法、装置、介质及电子设备

摘要

本申请涉及计算机视觉领域,特别地公开了一种基于视频的人体动作识别方法、装置、介质及电子设备。本申请的基于视频的人体动作识别方法包括:获取视频中的多帧多人体图像,其中每帧多人体图像中包括有多个人体实例;生成各帧多人体图像中的人体实例的检测人体边界框;确定各帧多人体图像的图像场景,一种图像场景对应一类或多类动作;基于多帧多人体图像的检测人体边界框和图像场景,识别多帧多人体图像中人体实例的动作,能够通过视频片段中人体实例的视频帧中的周围环境特征,对人体实例的动作类别及概率做后处理,使得最终预测的人体实例的动作类别的准确率更高。

著录项

  • 公开/公告号CN112651292A

    专利类型发明专利

  • 公开/公告日2021-04-13

    原文格式PDF

  • 申请/专利权人 新加坡依图有限责任公司(私有);

    申请/专利号CN202011177856.8

  • 申请日2020-10-27

  • 分类号G06K9/00(20060101);G06K9/34(20060101);G06K9/62(20060101);G06N3/04(20060101);G06N3/08(20060101);G06T7/269(20170101);

  • 代理机构31300 上海华诚知识产权代理有限公司;

  • 代理人徐颖聪

  • 地址 新加坡共和国巴西班让路80号丰树商业城16层83/84室

  • 入库时间 2023-06-19 10:35:20

说明书

技术领域

本申请涉及计算机视觉领域,特别地公开了一种基于视频的人体动作识别方法、装置、介质及电子设备。

背景技术

在很多场景下,需要对视频中的人体动作进行识别,以确定人体动作的动作类型。例如,在监控系统中,为了感知人的意图,需要对监控系统获取的视频中的人体动作进行识别,在人机交互系统中,为了对人的行为进行理解,需要对人机交互系统获取的视频中的人体动作进行识别。

为了实现对视频中的人体动作的识别,现有方案是从待处理视频提取出某些帧的图片,然后采用卷积神经网络对图片进行特征提取,接下来再根据从图片中提取的人体所在区域的特征向量确定人体的动作类型以及属于每个动作类型的置信度,然后将置信度最大(且置信度大于预设阈值)的动作类型确定为视频中的人体的动作类型。

现有方案中直接提取图片中的部分区域的特征来进行动作识别的方式,但是直接简单的提取图像部分区域的特征可能无法较好地反映人体在视频帧场景中的动作特征,导致动作识别效果不好,准确率较低。

发明内容

本申请实施例提供了一种基于视频的人体动作识别方法,能够通过视频片段中人体实例的视频帧中的周围环境特征,对人体实例的动作类别及概率做后处理,使得最终预测的人体实例的动作类别的准确率更高。

第一方面,本申请实施例公开了一种基于视频的人体动作识别方法,该方法包括:获取视频中的多帧多人体图像,其中每帧多人体图像中包括有多个人体实例;生成各帧多人体图像中的人体实例的检测人体边界框;确定各帧多人体图像的图像场景,一种图像场景对应一类或多类动作;基于多帧多人体图像的检测人体边界框和图像场景,识别多帧多人体图像中人体实例的动作。可以理解的是,包含多帧多人体图像的视频即为拥挤场景下的视频,该多帧多人体图像可以为对该视频进行分帧处理得到的所有图像。上述人体实例的初始人体边界框可以由预先训练的人体检测模型或者常规的人体检测模型检测得到,其中预先训练的人体检测模型可以通过拥挤场景下的多种训练数据集训练得到,支持拥挤场景下的人体实例检测。另外,上述识别多帧多人体图像中人体实例的动作的过程中,可以单次处理连续几帧(如40帧)多人体图像,即单次处理上述视频中的一个视频片段。并且,一种图像场景(即下文中的场景类别)对应一类或多类动作,即下文中的场景类别与动作类别耦合,而人体实例处于特定场景时通常处于对应的特定动作,即人体实例所处的图像场景能够反映人体实例的动作。例如,当人体实例处于图像场景“楼梯”时,人体实例的动作通常为“上下楼梯”。如此,对多帧多人体图像的检测人体边界框中的人体实例的动作进行识别时,结合人体实例所在的图像场景,即结合人体实例与其所处的场景的关系,可以提升最终识别出的人体实例的动作类别的准确率。

需要说明的是,本申请实施例中,为了方便描述,在不同的位置使用不同名称来描述参与人体动作识别的图像,如“视频帧”和“多人体图像”,但其本质不变。

在第一方面的一种可能的实现方式中,基于多帧多人体图像的检测人体边界框和图像场景,识别多帧多人体图像中人体实例的动作,包括:基于多帧多人体图像的检测人体边界框,识别多帧多人体图像中人体实例的动作,得到人体实例对应多个预定义动作中每个预定义动作的初始概率;基于多帧多人体图像的图像场景,对人体实例对应预定义的多类动作中每个动作的初始概率进行校正,得到每个预定义动作的校正概率;将各帧多人体图像中概率最高的预定义动作作为人体实例识别出的动作。可以理解的是,上述人体实例对应多个预定义动作中每个预定义动作的初始概率,可以由用于人体动作识别的神经网络模型(即下文中的动作检测模型)确定,该多个预定义动作为该动作检测模型提供的多个动作分类。而该动作检测模型可以为常规的或预先训练的网络,本申请实施例对此不作具体限定。具体的,动作检测模型可以确定对人体实例做动作识别获得人体实例的动作类别及初始概率分布。其中,上述校正人体实例的各个动作类别的初始概率分布,具体为调整各个概率的权重,并对调整后的所有权重进行归一化处理,进而得到人体实例的校正后的概率最高的动作。从而,基于多帧多人体图像的图像场景,对动作检测模型预测人体实例的动作类别的概率重新进行加权处理(即下文中的后处理),实现对由动作检测模型检测得到的人体实例的动作类别的初始概率分布进行校正,进而使得最终检测得到的人体实例的动作类别的准确率较高。

在第一方面的一种可能的实现方式中,基于多帧多人体图像的图像场景,对人体实例对应预定义的多类动作中每个动作的初始概率进行校正,得到每个预定义动作的校正概率,包括:基于多帧多人体图像的相邻检测人体边界框之间的重叠程度,以及多帧多人体图像的图像场景,对人体实例对应预定义的多类动作中每个动作的初始概率进行校正,得到每个预定义动作的校正概率。可以理解的是,由每帧多人体图像的相邻检测人体边界框之间的重叠程度,可以反映每帧多人体图像中相邻的人体实例的重叠程度。而相邻人体实例的重叠程度,可以反映这些人体实例的动作。例如,在相邻的人体实例的重叠度较高的情况下,这些人体的动作通常为多人动作,如一起跑步。反之,在相邻的人体实例的重叠度较低的情况下,这些人体的动作通常为单人动作,如单人跑步。如此,基于多帧多人体图像的相邻检测人体边界框之间的重叠程度,对动作检测模型预测人体实例的动作类别的概率重新进行加权处理,实现对由动作检测模型检测得到的人体实例的动作类别的初始概率进行校正,进而使得最终检测得到的人体实例的动作类别的准确率较高。

在第一方面的一种可能的实现方式中,相邻检测人体边界框之间的重叠程度由相邻检测人体边界框之间的交并比表征。可以理解的是,相邻检测人体边界框之间的交并比IoU(Intersection over Union,交并比)越高,说明相邻检测人体边界框之间的重叠程度越高,反之越低。

在第一方面的一种可能的实现方式中,基于多帧多人体图像的相邻检测人体边界框之间的重叠程度,对人体实例对应多个预定义动作中每个预定义动作的初始概率进行校正,包括:在多帧多人体图像的相邻检测人体边界框之间的重叠程度大于预定阈值的情况下,提高人体实例对应的多个预定义动作中的与多人相关的预定义动作的概率;在多帧多人体图像的相邻检测人体边界框之间的重叠程度小于或等于预定阈值的情况下,提高人体实例对应的多个预定义动作中的与单人相关的预定义动作的概率。上述预定阈值的取值可以根据实际需求确定,如5,本申请实施例对此不做具体限定。可以理解的是,在多帧多人体图像中的相邻检测人体边界框之间的重叠程度大于预定阈值时,表示这些人体实例产生多人动作的可能性更大,因此可以增加这些人体实例的多人相关的动作的概率,如增加动作(即动作类别)“一起跑步”的概率,此时会相应的降低这些人体实例中单人相关的动作类别的概率,如降低动作“单人跑步”的概率。同理,在多帧多人体图像中的相邻检测人体边界框之间的重叠程度小于或等于预定阈值(如4)时,表示这些人体实例产生单人动作的可能性更大,因此可以增加这些人体实例的单人相关的动作的概率,如增加动作“单人跑步”的概率,并相应的降低这些人体实例中多人相关的动作类别的概率,如降低动作“多人跑步”的概率。

在第一方面的一种可能的实现方式中,基于多帧多人体图像的图像场景,对人体实例对应预定义的多类动作中每个动作的初始概率进行校正,包括:基于多帧多人体图像的图像场景,对于多帧多人体图像中处于图像场景所在区域上的人体实例,提高人体实例对应预定义的多类动作与确定出的图像场景对应的预定义动作的概率。可以理解的是,当人体实例在多帧多人体图像中处于确定的图像场景所在区域上时,说明这些人体实例产生该图像场景对应的动作的可能性较大,因此可以增加这些人体实例与确定的图像场景对应的动作类别的概率。例如,在人体实例处于图像背景“楼梯”所在的区域上时,可能增加这些人体实例的动作“上下楼”的概率,相应的降低这些人体实例的其他动作(如动作“踢足球”)的概率。

在第一方面的一种可能的实现方式中,生成各帧多人体图像中的人体实例的检测人体边界框,包括:生成各帧多人体图像中的人体实例的初始人体边界框;基于多人体图像与多人体图像的前一帧图像之间的位置差数据,对多人体图像的初始人体边界框进行校正得到检测人体边界框,其中位置差数据包括多人体图像中的人体实例在前一帧图像和多人体图像中的位置差;基于多人体图像的检测人体边界框识别多人体图像中人体实例的姿态。可以理解的是,相邻的两张图像之间的位置差数据可以为这两张图像之间的光流。例如,上述多人体图像和该多人体图像的前一帧图像之间的位置差数据为这两张图像之间的光流,从而该位置差数据包括该多人体图像中的人体实例在该前一帧图像和该多人体图像中的位置差,即反映了人体实例在时间域上从该前一帧图像和该多人体图像之间的运行信息,进而反映了人体实例的人体边界框从该前一帧图像到该多人体图像的位置变化情况。显然,由于本方案采用相邻多人体图像之间的位置差数据(即光流)来校正各个人体实施例的人体检测边界框,而位置差数据反映了时间域的信息,因此实现了结合时间域的信息可以避免对多帧多人体图像进行人体边界框检测过程出现漏帧或掉帧的情况,从而实现了对多帧多人体图像中人体实例的人体边界框的平滑处理(即下文中的光流平滑处理)。进而,通过相邻多人体图像之间的位置差数据校正多帧多人体图像中人体实例的人体边界框,即对多帧多人体图像中人体实例的人体边界框进行了光流平滑处理,提高了对多帧多人体图像的视频中的人体实例所检测出的人体边界框的准确性,从而有利于提高后续基于人体边界框进行人体动作识别的准确性。

另外,在一些实施例中,还可以通过与一帧多人体图像的后一帧图像与该张多人体图像之间的位置差数据来校正该多人体图像中的人体实例的人体初始边界框,本申请实施例对此不做限制。

在第一方面的一种可能的实现方式中,基于多人体图像与多人体图像的前一帧图像之间的位置差数据,对多人体图像的初始人体边界框进行校正得到检测人体边界框,包括:通过以下公式对多帧多人体图像中的第t帧图像中的第i个初始人体边界框进行校正得到第i个检测人体边界框:

其中,

可以理解的是,一个人体实例的边界框的坐标点的集合用于表征该人体边界框。另外,上述

在第一方面的一种可能的实现方式中,各帧多人体图像中的人体实例的初始人体边界框由第一神经网络模型生成,第一神经网络模型的模型网络包括以下至少一种:ResNet152网络,ResNeXt101网络,SeNet154网络。可以理解的是,在第一神经网络模型的主干网络包括上述多种网络时,该第一神经网络模型具有这些网络的所有功能。具体地,该第一神经网络模型可以为下文中的人体检测模型。

第二方面,本申请实施例公开了一种基于视频的人体动作识别装置,该装置包括:获取模块,用于获取视频中的多帧多人体图像,其中每帧多人体图像中包括有多个人体实例;第一生成模块,用于生成各帧多人体图像中的人体实例的检测人体边界框;确定模块,用于确定各帧多人体图像的图像场景,一种图像场景对应一类或多类动作;识别模块,用于基于多帧多人体图像的检测人体边界框和图像场景,识别多帧多人体图像中人体实例的动作。

第三方面,本申请实施例公开了一种可读介质,该可读介质上存储有指令,该指令在电子设备上执行时使电子设备执行上述第一方面的基于视频的人体动作识别方法。

第四方面,本申请实施例公开了一种电子设备,包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令,以及处理器,是电子设备的处理器之一,用于执行上述第一方面的基于视频的人体动作识别方法。

附图说明

图1根据本申请的一些实施例,示出了语义分割结果示意图;

图2根据本申请的一些实施例,示出了一种连续两帧之间的光流示意图;

图3根据本申请的一些实施例,示出了人体动作识别场景图;

图4根据本申请的一些实施例,示出了一种动作识别场景的组成架构的示意图;

图5根据本申请的一些实施例,示出了一种动作识别方法流程图;

图6根据本申请的一些实施例,示出了视频片段序列示意图;

图7根据本申请的一些实施例,示出了一种人体检测模型输出的边界框示意图;

图8根据本申请的一些实施例,示出了一种人体实例对应的人体边界框的坐标点示意图;

图9根据本申请的一些实施例,示出了一种slowfast网络组成框图;

图10根据本申请的一些实施例,示出了一种基于AIA模型的动作识别示意图;

图11根据本申请的一些实施例,示出了一种多交互关系建模融合网络的结构示意图;

图12a根据本申请的一些实施例,示出了一种语义分割模型输出的楼梯场景的可视化示意图;

图12b根据本申请的一些实施例,示出了一种语义分割模型输出的通道场景的可视化示意图;

图13根据本申请的一些实施例,示出了一种场景类别与动作类别建立的耦合关系示意图;

图14根据本申请的一些实施例,示出了一种人体检测模型检测人体实例时可能输出的类别和概率示意图;

图15根据本申请的一些实施例,示出了一种动作识别装置框图;

图16根据本申请的一些实施例,示出了一种电子设备的框图;

图17根据本申请一些实施例,示出了一种片上系统(SoC)的框图。

具体实施例

本申请的说明性实施例包括但不限于基于视频的人体动作识别方法及其装置、介质和电子设备。

本申请中基于视频的基于视频的人体动作识别方法适用于各种视频处理,尤其是拥挤场景的视频处理的场景,例如,该场景应用于机器人的视觉处理、视频监控和人类动作识别、动物动作识别等方面,具体用于马路上行人动作识别,特殊场景危险动作识别等。

本申请公开的基于视频的人体动作识别方法,首先可以通过动作检测模型提取视频帧中的人体实例的行为表征信息,然后结合人体检测模型提取人体实例在视频帧中的位置,对人体实例做动作识别获得人体实例的动作类别的概率分布。然后,结合视频片段中人体实例的周围环境特征对人体实例的动作类别及概率做后处理,即对动作检测模型预测人体实例的动作类别及概率重新加权处理。其中,周围环境特征包括视频帧中的场景类别,视频帧中人体实例的边界框的交并比等。可以理解,结合人体实例与周围环境的互动关系,预测人体的动作类别,进而重新分配动作类别的概率分布的权重,使得最终预测的人体实例的动作类别的准确率更高。

为便于理解本申请实施例提供的技术方案,这里先对本申请实施例使用的关键名词进行解释:

语义分割(Semantic segmentation,SS):语义分割是计算机视觉中的一种图像处理方法,它可以像素级地对图像进行识别,对每个像素点进行密集的预测,并标注出图像中每个像素所属的对象类别,将图像分为若干类,如场景,物体(包括人体,动物,食物,生活用品,交通工具等)等。可以理解,若一张图像描述的是行人上下楼梯的场景,那么语义分割技术可以将图像中表示人的像素分为一类,将表示楼梯背景的像素分为一类。例如,如图1所示,图1(a)为行人上下楼梯场景的图像,图1(b)为经过语义分割提取的楼梯场景的图像。从图中可以看出,语义分割提取的场景信息可以反映行人所在的周围环境信息。

边界框:用于标示目标对象位置的目标检测框,“目标检测框”又称“边界框”,该目标检测框可以是矩形框、圆形框,也可以是其他形状或者是包围目标对象的包络线。如果目标检测框为矩形框,如长方形框或正方形框,目标检测框的位置信息包括目标检测框的左下角角点坐标和右上角点坐标。如果目标检测框为圆形框,目标检测框的位置信息包括目标检测框的圆心坐标和半径长度。在本申请的实施例中,以目标检测框为矩形框为例进行说明。特别的,目标对象以人为例,为方便描述,本文中的“人体实例”和“人体”均指人,本文中“人体的边界框”或“人体边界框”均是指人体在图像中的位置。

光流:用于定义图像序列(如视频流中的图像)中的对象的移动,使用二维向量(或二维图像)表示,具体用于表示视频图像的一帧中的代表同一对象(物体)的像素点移动到下一帧的移动量。也就是说,光流为视频帧之间时间间隔很小时,即视频的连续两帧之间,目标点的位置差,即目标点坐标的变化。如此,利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,可以计算出相邻帧之间物体(如人体)的运动信息。例如,如图2所示为一个视频流中连续的两帧(即第t-1帧与第t帧)之间的光流的示意图,图2(a)为第t-1帧的图像,图2(b)为第t帧的图像,图2(c)为第t-1帧到第t帧的光流。从图中可以看出光流为第t-1帧到第t帧时间域上的位移变化。本申请实施例中,光流用于反映待处理视频中的连续两帧之间的人体的运动信息,即人体的位置差(即位移)。光流可以通过公式表示:

F

其中,F

为了方便描述本申请的技术方案,下文以视频监控下的人体动作识别为例说明。

如图3所示,为根据本申请实施例,示出了在视频监控下地铁楼梯场景的人体动作识别。如图3所示,该场景中包括3个摄像头301和视频处理设备300,但是可以理解,本申请的技术方案所适用动作识别场景可以包括任意数量的摄像头,不限于3个。

其中,摄像头301用于采集或拍摄包含人体的视频流,而视频处理设备300用于对获取的包含人体的视频流中的人体进行动作识别,如上下楼梯、跌倒、打架、偷窃等。

在一些实施例中,摄像头301将采集得到的视频流直接传输给视频处理设备300。在其他实施例中,摄像头301还可以将采集得到的视频流传输至指定存储设备进行存储,再由视频处理设备300从该存储设备中获取该视频流,本申请实施例对此不做限制。

在本申请的一些实施例中,视频处理设备300为具有一定图像或视频处理能力的计算机设备,例如个人计算机(personal computer,PC)、笔记本电脑或者服务器等。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群,还可以是提供云数据库、云存储和CDN等基础云计算服务的服务器,服务器的规模可以根据需要处理的视频流的数量进行规划,本申请实施例对此不做限制。

作为一种示例,在对视频监控中的人体进行动作识别的场景中,摄像头301可以为设置在道路或地铁口等场所的监控摄像头,用于拍摄这些场所中的行人的视频流。在实际应用中,上述动作识别场景中可以包括较多数量的摄像头301,例如包括地铁站的各个位置设置的摄像头301。

在一些实施例中,摄像头301与视频处理设备300为相互独立的两个设备,如摄像头为监控摄像头而视频处理设备300为从监控摄像头获取视并处理视频流的服务器。在其他实施例中,摄像头301与视频处理设备300同一个设备中的不同组件,如同一手机中的不同组件。

此外,摄像头301与视频处理设备300可以通过一种或多种网络进行通信连接。其中,该网络可以是有线网络,也可以是无线网络,例如无线网络可以是移动蜂窝网络,或者可以是无线保真(Wireless-Fidelity,WIFI)网络,当然还可以是其他可能的网络,本申请实施例对此不做限制。

本申请的一些实施例中,可以通过一种动作识别的组成架构执行上述基于视频的人体动作识别方法,例如该组成架构运行在上述视频处理设备300中。

如图4所示,为本申请提供的一种动作识别场景的组成架构的示意图,该组成架构40中包括视频片段序列41、人体检测分支42、动作检测模型43、语义分割模型44、融合分支45和视频片段序列动作识别结果46。

下面具体描述动作识别场景的组成架构40的各部分。

人体检测分支42:用于对输入的视频片段序列41的连续的视频帧中的人体进行检测。人体检测分支42包括用于生成人体的边界框的人体检测模型、用于修正人体检测模型生成的边界框的光流平滑分支。具体地,人体检测模型首先对视频帧中的物体做分类,获得人体实例所在图像中的区域,然后确定人体实例所在区域在视频帧的位置,并在对应位置标出人体实例的边界框。光流平滑分支用于针对人体检测模型检测出人体边界框的多帧图像,采用该多帧图像之间的光流对这些边界框进行优化,即调整这些边界框的位置,也即调整检测出的人体实例在该多帧图像中的位置。

在其他一些实施例中,上述人体检测分支不仅用于检测图像中人体所在区域边界框,还用于检测图像中与人相关的物体,例如能够反映人的动作的物体,如与人体的脚部接触的物体“足球”能够反映人体的动作为“踢足球”。

动作检测模型43:用于综合视频片段的目标人的自身运动与其他人、物体以及长期记忆信息的交互关系,生成视频片段中人体实例的动作分类及概率分布。本申请实施例主要以拥挤场景下的待检测视频测试为例,需要考虑视频片段中人的自身运动以及与其他人与长期记忆信息的交互关系。其中,动作检测模型43包括视频片段特征提取分支431、人体动作检测分支432。

视频片段特征提取分支431:用于提取视频片段的表征信息的三维卷积神经网络。具体地,采用了SlowFast 8×8 ResNet-101(SlowFast8x8-R101)网络作为三维卷积神经网络的具体结构,该网络首先在Kinetics-700数据集上进行预训练,使用预训练后的权重初始化三维卷积网络的结构。该网络采用快、慢两个通道进行卷积操作,慢通道用于提取多帧图像中的空间特征,快通道用于提取多帧图像的时序上的运动特征,然后利用不同通道对多帧图像的不同维度的数据进行处理得到识别信息,进而可以根据识别信息预测视频片段序列41的行为信息。

人体动作检测分支432:包括带有记忆池的人体表征抽取模块、一个多交互关系建模融合网络、三个全连接层和一个sigmoid回归层。具体地,人体表征抽取模块利用RoIAlign对多帧图像行为表征上的各个边界框区域进行线性插值并经过池化得到人的区域表征的同时人体表征抽取模块通过记忆池得到记忆表征,多交互关系建模融合网络对人体的区域表征以及记忆表征进行建模融合得到鲁棒行为表征,通过全连接层和sigmoid回归层得到各个类别的预测概率。

语义分割模型44:用于输出场景图以及对应的场景特征。具体地,首先通过卷积神经网络提取图像深度特征,将提取的图像特征切分为两部分:物特征,场景特征。然后,对物体特征和场景特征分别做图像分割处理,然后融合(叠加)两种分割处理后的特征,得到最终的全图场景解析结果,得到全图场景解析结果后,在本申请的实施例中,由于我们只需要场景图和场景特征,物体所属像素和特征可不输出,输出场景图以及对应场景特征即可。

融合分支45:建立多个动作类别与多个场景的耦合关系,用于提高(动作检测模型43输出的)与语义分割模型44输出的场景耦合的动作类别的概率。例如,语义分割模型44输出的楼梯场景,同时动作检测模型43输出上下楼梯动作,站立动作,弯腰动作等以及对应的概率分布,其中,上下楼梯动作建立了楼梯场景耦合关系,则上下楼梯动作的概率提高,其他动作的概率进行归一化操作后,概率下降。最终,输出概率最高的人体实例的动作。

图5根据本申请的一些实施例,示出了一种基于视频的人体动作识别方法的流程图。下面结合图1至5,对本申请提供的基于视频的人体动作识别方法进行详细介绍。如图5所示,具体地该方法包括:

步骤502:视频处理设备300获取视频中的多帧多人体图像,其中每帧多人体图像中包括有多个人体实例。

在本申请的一些实施例中,上述步骤502中的待处理视频可以为摄像头301拍摄的监控视频,待处理视频还可以为用户上传到视频平台或者短视频社交软件的视频。待处理视频还可以为测试集中的视频,即本申请的动作识别方法用于对测试集中的视频进行人体的姿态估计。下文中主要以人流拥挤场景的视频中的人体实例动作识别为例,对本申请的基于视频的人体动作识别方法进行说明。例如,待处理视频经过预处理生成图4中示出的视频片段序列41。

在本申请的其他实施例中,步骤502可以先获取待处理视频,再实时对待处理视频进行预处理,如进行分帧操作得到视频片段序列41。例如,可以利用视频分帧软件或者视频截图软件对待处理视频进行分帧操作,具体为通过软件中Opencv库的videocapture功能对待处理视频进行分帧操作。

例如,待处理视频的时长是15分钟,按照预设的帧率进行分帧操作时,假设帧率是60fps,那么待处理视频分帧解析后得到的图像的数量应该是60*15*60=54000张,可以理解,10分钟视频分帧后获得36000张图像。其中,“*”表示相乘。

在本申请的实施例中,对待处理视频做预处理,分帧处理后获得视频片段序列41。由于待处理视频通常较长或者待处理视频为实时视频流,获取整个待处理视频的动作特征是不可能的,如图6所示,可以按时序以预设数量为m个视频帧,将分帧后的待处理视频划分成视频片段序列。具体地,可通过如下方式获取视频片段序列41:将待处理视频预处理,分帧后,按预设数量m个视频帧划分待处理视频的视频帧,得到包含m个视频帧的视频片段,按视频帧的时序,将划分的视频片段组成视频帧序列。其中,抽取视频片段的中间帧作为关键帧。

在本申请的实施例中,以楼梯场景的待处理视频为例,如图6所示,将视频平均划分为n个视频片段,将视频片段组成待处理的视频片段序列{P

具体实施时,预设数量可根据用于训练动作识别模型的训练样本集中每多少帧添加动作注释作参考,例如,训练集样本集每20帧为所有个体添加动作注释,则预设数量为40帧。也可以根据待处理视频的长短动态确定预设数量,待处理视频的长度较长时,预设数量的取值可以大些,待处理视频的长度较短时,预设数量的取值可以小些,例如预设数量和待处理视频长度正相关。

可以理解,视频片段序列41用于分别输入到人体检测分支42做人体检测、语义分割模型44做场景提取、视频片段特征提取分支431做表征信息提取。

步骤504:人体检测模型生成各帧多人体图像中的人体实例的初始人体的边界框。

人体检测模型可以实现三个任务,第一个是分类任务,即遍历输入的连续视频帧,并对视频帧的人体和非人体分类。第二个是回归任务,即确定人体区域在视频帧的位置,并在对应位置标出目标检测边界框。第三个是坐标点定位任务,即确定人体的边界框坐标点的位置,其中,边界框可以为包围人体所在区域的一个矩形框,例如,对于图7所示的视频帧,人体检测模型可以针对人体实例1生成人体的边界框1,针对人体实例2生成人体的边界框2。可以理解,上述三个任务相辅相成,例如,确定人体的边界框坐标的位置用于确定人体在视频帧中的位置。

具体的,人体检测模型生成视频帧(即各帧多人体图像)中的人体实例的初始人体的边界框,其中,一个人体的边界框可以通过其多个顶点的坐标点组成的坐标点集来表示,例如通过该人体的边界框的左下角的坐标和右上角的坐标表示。可以理解,本申请实施例中,人体检测模型检测到的一个人体实例并确定人体所在区域的人体的边界框,即为确定该人体的边界框的坐标点集。也就是说,步骤504具体检测得到视频片段序列中的视频帧的每个人体的边界框的坐标点集。

在本申请的实施例中,人体检测模型对输入的视频片段序列41中的多人体视频帧进行人体检测的过程包括:获取每个人体在视频帧中的位置,给每个人体所在的区域预测人体的边界框(bounding box)。具体地,在对视频帧做人体检测时,可以将视频帧输入到预先训练完成的人体检测模型进行人体检测,获取人体在视频帧中的区域,人体检测模型给每个人体所在的区域预测人体的边界框。其中,人体检测模型可以是一个预先训练得到的深度学习卷积神经网络,人体检测模型是利用大规模的具有人体实例标注的图像组成的训练样本集训练得到的,在模型训练中需要使得该模型能够准确的预测出视频帧的人体所在区域,从而使得人体检测模型输出预测的人体的边界框更加准确。

在本申请的的实施例中,以待处理视频为人流拥挤场景的视频为例,针对每个待处理视频分帧后的视频片段序列41,视频帧依次输入已训练的人体检测模型,得到人体检测模型输出的初始人体的边界框。

步骤506:光流平滑分支43基于多人体图像与多人体图像的前一帧图像之间的位置差数据,对多人体图像的初始人体边界框进行校正得到检测人体边界框,其中位置差数据包括多人体图像中的人体实例在前一帧图像和多人体图像中的位置差。

在本申请的实施例中,对多人体视频帧中的所有人体的边界框做光流平滑处理。其中,光流平滑处理是根据多人体视频帧与该多人体视频帧的前一帧视频帧之间的位置差(即位移)数据,对多人体视频帧的初始人体边界框进行校正得到检测人体边界框,其中位置差数据包括多人体视频帧中的人体实例在前一帧视频帧和多人体视频帧中的位置差。可以理解,通过上一帧到当前帧的时间域上的位置差来预测当前帧的人体的边界框,可以有效避免漏帧掉帧的情况。

具体的,针对同一人体,根据人体检测模型输出的当前帧的初始人体边界框和前一帧人体检测模型输出的初始人体边界框结合前一帧到当前帧的光流,获取人体所在区域的检测人体边界框。光流平滑处理,即人体在该多帧视频帧中基于时间域的运动信息,对检测出的初始边界框进行修正(即平滑处理),避免处理多帧视频帧时出现漏帧掉帧的现象,提升了最终的检测人体边界框的准确性,即提升人体动作识别的准确性。

可以理解的是,本申请实施例中,上述步骤504中对当前帧中由人体检测模型检测得到的人体的边界框做光流平滑处理,具体为对这些人体的边界框的坐标点集中的坐标点进行平滑处理,得到每个人体的边界框检测坐标点集,即得到当前帧中每个人体的检测人体边界框。其中,本申请实施例中一个人体的检测人体边界框为通过光流平滑处理优化后的人体的边界框,具体地一个人体的边界框的检测坐标点集中的坐标点为通过光流平滑处理优化后的坐标点。其中,由光流平滑处理得到的一个人体的检测人体边界框的检测坐标点集,用于后续输入动作识别模型43进行处理。

具体地,通过以下公式对视频片段中的第t帧视频帧中的第i个人体的边界框(记为人体边界框I1)的光流平滑处理为例,说明本申请实施例中光流平滑对人体检测模型检测得到的人体的边界框进行光流平滑处理,例如第t帧视频帧为上述步骤506中的多人体视频帧。

图8为第t帧多人体视频帧中人体实例I1对应的人体边界框I1的坐标点示意图。具体的,如图所示,人体边界框I1检测的坐标集合

在一种可能的实现方式中,本申请实施例通过下述公式(1)计算得出人体边界框I1经过光流平滑处理得到的检测的坐标集合

式中,

α表示权重系数,该系数为经验参数,大多数情况下取值为0.5。

可以理解,上述公式(1)可以实现根据第t-1帧到第t帧的光流预测的第t帧视频帧人体边界框I1的坐标集合

另外,本申请的一些实施例可以通过公式(2)实现上述“根据第t-1帧到第t帧的光流,预测的第t帧视频帧人体边界框I1的坐标集合

式中,F

步骤508:视频片段特征提取分支431获取视频片段的行为表征信息。

在本申请的实施例中,动作检测模型43包括视频片段特征提取分支431(即三维卷积神经网络)、人体动作检测分支432。具体地,动作检测模型可以为异步交互聚合(Asynchronous Interaction Aggregation,AIA)模型,其中,AIA模型43的主干网络为预先训练的三维卷积神经网络(3D convolutional neural network,3D CNN)。主干网络可以是膨胀卷积网络(Inflated 3D Conventional network,I3D),也可以是SlowFast 8×8ResNet-101(SlowFast8x8-R101)网络。本申请的实施例中,AIA模型的主干网络采用在Kinetics-700数据集上预先训练的SlowFast8x8-R101网络,SlowFast8x8-R101网络是一种基于快慢路径结合的视频识别的网络,该网络采用快、慢两个通道捕捉若干帧之后立即进行3D卷积操作。可以理解,慢通道(即高分辨率CNN)用来分析视频片段中的空间特征,同时快通道(即低分辨率CNN)用来分析视频中的运动特征。通过结合两个通道提取的特征对视频中的行为动作进行分类。

具体地,对待处理视频预处理,分帧获取视频片段序列41,依次将视频片段序列41输入到SlowFast8x8-R101网络,视频片段对应的视频帧分别输入至慢通道以及快通道对应的模块中,然后利用不同通道对视频帧中的不同维度的数据进行处理得到识别信息,进而可以根据识别信息预测视频片段序列41的行为表征信息,同时人体检测分支42生成的人体边界框,人体动作检测分支432获取人体边界框内的行为表征信息。其中,行为表征信息包含视频帧中人体动作和时序的综合信息,具体是指人体动作随着时间发生的变化。

具体地,图9提供了一种基于SlowFast8x8-R101网络的快慢通道连接方式的示意图,如图9和图6所示,例如,按视频帧的预设数量m划分待处理视频,预设数量m为40,则视频片段序列中一个视频片段包括40个视频帧,以一个视频片段Pt为例,视频片段Pt采样8帧和32帧分别输入慢通道和快通道,然后利用不同通道对视频帧中的不同维度的数据进行处理得到识别信息预测视频片段序列的行为表征信息。

步骤510:根据视频片段特征提取分支431生成的视频片段的行为表征信息和人体检测分支42生成的人体实例的边界框,提取人体行为表征,经过多交互建模融合网络及三个连接层和一个sigmoid回归层,预测人体实例的动作类别和概率分布。

在本申请的实施例中,AIA模型43包括视频片段特征提取分支431(即三维卷积神经网络)、人体动作检测分支432。具体的,人体检测分支42生成视频帧的人体所在区域边界框与视频片段特征提取分支431提取视频片段的行为表征信息作为人体动作检测分支432的输入,人体动作检测分支432经训练后利用人体实例的边界框得到人的区域表征以及记忆表征,并进一步在此表征上进行多分类判断。其中,人体动作检测分支432包括带有记忆池的人体表征抽取模块4321、一个多交互关系建模融合网络4322、三个全连接层和一个sigmoid回归层4323。

图10提供了一种基于AIA模型的动作识别示意图,下面结合图10说明AIA模型预测人体动作类别的方法。

在本申请的实施例中,人体动作检测分支432包括带有记忆池的人体表征抽取模块4321、一个多交互关系建模融合网络、三个全连接层和一个sigmoid回归层4323。表征抽取模块4321利用RoIAlign对视频表征上的各个边界框区域进行线性插值并经过池化得到人体的区域表征的同时表征抽取模块4321通过记忆池得到记忆表征,多交互关系建模融合网络对人和物体的区域表征以及记忆表征进行建模融合得到鲁棒行为表征,通过全连接层和sigmoid回归层得到各个类别的预测概率。

在本申请的实施例中,将该视频片段输入到视频片段特征提取分支431中,得到该视频片段的表征结合人体检测分支42生成的人体所在区域的边界框,使用表征抽取模块4321,根据人体边界框,在视频片段的行为表征上利用RoIAlign进一步池化得到人的区域表征。将生成人的区域表征的视频片段依次写入到记忆池中,如图10所示,得到人的区域表征的视频片段序列为{P’

例如,对视频片段P

具体地,图11为多交互关系建模融合网络4322的结构示意图,如图11所示多交互关系建模融合网络4322包括:两个用于接收人的区域表征的人人交互建模模块、两个用于分别接收人的区域表征和记忆表征的人记忆建模交互模块,其中:第一人人交互建模模块、第一人记忆建模交互模块、第二人人交互建模模块、第二人记忆建模交互模块依次连接并传输经依次增强的人的区域表征,每个交互建模模块对人人交互、人记忆交互中的一种交互关系进行建模,并与人的区域表征融合后传输至下一个模块中,最终输出的人的区域表征综合融合人人交互、人记忆交互关系,即为最终输出的鲁棒行为表征。其中,人人交互是指视频片段P

具体地,所述的建模是指

其中:Q,K分别为输入的两种表征,W

在本申请的实施例中,如图10所示,三个全连接层和一个sigmoid回归层4323得到各个类别的预测概率。其中,三个全连接层包括两个隐含层和一个输出层。sigmoid回归层包括sigmoid函数以及交叉熵损失函数,输出层的输出向量经过sigmoid层能够得到各个类别的预测概率,交叉熵损失函数用于训练整个网络。这里的的训练是指:将样本集中的样本及相应的物体边界框以及设置于表征抽取模块4321中的记忆池中的临近视频片段的人的区域表征作为行为检测网络的输入,采用交叉熵损失函数,结合反向传播BP算法调整网络参数,同时将该视频片段中的人的区域表征更新到记忆池中。

在本申请的实施例中,动作检测模型43包括视频片段特征提取分支431(即三维卷积神经网络)、人体动作检测分支432。动作检测模型43是利用大规模具有人体实例动作注释的训练样本集训练得到的深度学习卷积神经网络。

步骤512:语义分割模型44确定各帧多人体图像的图像场景。

在本申请的实施例中,语义分割模型44提取视频片段中的场景,其中,语义分割模型44为预先训练的卷积神经网络.具体地,首先通过卷积神经网络提取视频帧的深度特征,将提取的图像特征切分为两部分:物体特征,场景特征。然后,对物体特征和场景特征分别做图像分割处理,然后融合(叠加)两种分割处理后的特征,得到最终的全图场景解析结果,得到全图场景解析结果后,输出场景图以及对应场景特征即可。图12a为语义分割模型44输出的楼梯场景的可视化示意图,图12a左图为去掉视频帧中的人体实例后的楼梯场景图,图12a的右图为去掉视频帧中的人体实例后的楼梯场景的楼梯位置像素点图,楼梯位置像素点图即表示楼梯场景的楼梯位置信息。图12b为语义分割模型44输出的通道场景的可视化示意图,图12b左图为去掉视频帧中的人体实例后的通道场景图,图12b的右图为去掉视频帧中人体实例后的通道场景的楼梯位置像素点图,楼梯位置像素点图即表示通道场景的楼梯位置信息。

在本申请的实施例中,语义分割模型44即通过标定有语义区域标签的样本集训练的深度卷积神经网络。例如,语义分割模型是预先利用ADE20K数据集进行训练得到的。其中,ADE20K是一个复杂场景下的图像分割数据集,包含2万张图像作为训练集、2千张图像作为验证集和3千张图像作为测试集。

在本申请的实施例中,常见的用于语义分割的主干深度卷积神经网络,如AlexNet,VGG-16,GoogleNet,ResNet以及PSPNet等。以PSPNet为例说明语义分割模型提取视频帧的场景。具体地,将采用PSPNet为实现卷积神经网络的语义分割模型44。其输入为视频片段序列41的视频帧,输出结果为视频帧的场景类别。为了实现该过程,首先利用PsNet将输入视频帧处理生成特征图,其次对于生成的特征图进行金字塔池化操作,从而可以获取不同分辨率的特征图,之后,对于每一个池化特征图进行卷积操作,在结合上采样特征图将结果堆叠起来形成最终的特征图,最后通过卷积处理得到物体或场景类别的分数图,在类别输出映射时采用了Softmax激活函数,以产生一个概率分布(分数总和为1)。可以理解,以场景类别分数图为例,是指视频帧可能输出的场景类别对应概率分布图。例如,通道场景概率0.5,上下楼梯场景0.4,地铁口场景0.1。然后,根据语义融合方法,对每个像素取概率最高的语义标签,这里将这些概率称为关联语义类别标签的语义置信度。可以理解,语义分割模型44输出置信度最高的场景类别和置信度最高的物体类别。其中,场景类别作为融合分支45的输入。

步骤514:融合分支45基于多帧多人体图像的检测人体边界框和图像场景,识别多帧多人体图像中人体实例的动作。

在本申请的实施例中,对视频片段序列41做人体实例的动作识别,首先人体检测分支42对视频帧(即多帧多人体图像)的内容做人体检测,生成人体的边界框,动作检测模型43结合人体的边界框预测人体实例的动作类别及概率,然后,结合视频片段中人体实例的环境特征对预测的人体实例的动作类别及概率做后处理,即对动作检测模型43预测人体实例的动作类别及概率重新加权处理,提高与环境特征相关的动作类别的权重。其中,环境特征包括视频帧中的场景类别(楼梯场景,餐厅场景等),人与人之间的互动关系(即打架,一起跑步,聚集等),人与物之间的互动关系(人推车,拿杯子喝水等)等。

具体地,两个人体实例在一起的动作或者打架或者聚集时,视频帧中这两个人体实例的边界框交并比(Intersection over Union,IoU)会较高。根据IoU进一步对动作检测模型43输出的动作类别及概率分布重新加权处理。例如,对视频片段序列做动作识别时,动作检测模型43预测的人体实例的动作类别及概率分布为:一起跑步的概率0.6,站立的概率0.2,打架的概率0.2,其中,动作类别一起跑步与打架需要两人或多人互动,则融合分支45进一步判断是否与人体实例所在边界框重合度较高的边界框的人体实例,若不存在,则融合分支45对人体实例的动作类别及概率做重新加权处理,即一起跑步的概率降低0.5,打架的概率降低0.5,则人体实例的动作类别的概率分布变成:一起跑步的概率0.1,站立的概率0.2,打架的概率-0.3;然后对加权处理的人体实例的所有动作类别的概率进行softmax操作保证总体概率和仍为1,。则重新分配权重的动作类别及概率分布分别为一起跑步的概率0.36,站立的概率0.40,打架的0.24。具体地,融合分支45结合视频片段中人体实例的场景对预测的人体实例的动作类别及概率做后处理,即对动作检测模型43预测人体实例的动作类别及概率提高重新加权处理,提高与环境特征相关的动作类别的权重。当出现楼梯场景时,在楼梯上的人的动作与楼梯场景是强相关的。因此,融合分支45对动作检测模型43可能输出的所有动作类别与场景建立耦合关系。一种图像场景对应一类或多类动作或者多种图像场景对应一类或多类动作。

例如,图13示出了一种场景类别与动作类别建立的耦合关系示意图,如图13所示,动作检测模型43中的动作分类可能输出的动作类别包括上下楼梯,跑步,背包偷窃,打架等,语义分割模型44可能输出的场景类别包括十字路口,餐厅,楼梯,候车室等。其中,箭头标示动作类别与场景类别对应的耦合关系,动作类别上下楼梯与楼梯场景,通道场景建立耦合关系。动作类别跑步与十字路口场景,候车室场景建立耦合关系,背包偷窃与餐厅场景,候车室场景,公交车场景建立耦合关系,动作类别打架与餐厅场景,公交车场景,通道场景建立耦合关系,动作类别站立与楼梯场景,通道场景建立耦合关系,动作类别摔倒与楼梯场景,十字路口场景,通道场景建立耦合关系等等。这里的耦合关系用于对动作检测模型43输出的视频片段的边界框内的人体实例的动作类别和概率做加权处理,提高与语义分割模型44输出的场景耦合的动作类别的概率。可以理解,这里只是举例说明,动作检测模型43输出的动作类别与语义分割模型44输出的场景类别不仅限于此,动作类别与场景类别对应的耦合关系也不仅限于此。

具体地,以楼梯场景的视频做动作识别为例,例如,当语义分割模型44输出的场景为楼梯场景,动作检测模型43输出的人体实例的动作类别及概率分布分别是上下楼梯概率0.4,背包偷窃的概率0.4,打架的概率0.2,可以理解,动作类别上下楼梯与楼梯场景建立有耦合关系,则动作类别及概率重新分配权重,例如,人体实例的动作类别上下楼梯概率增加0.5,则人体实例动作类别的概率分布变成:上下楼梯的概率0.9,背包偷窃的概率0.4,打架的概率0.2;然后对所有动作的概率分布进行softmax操作保证总体概率和仍为1。则重新分配权重的动作类别及概率分布分别为上下楼梯的概率0.46,背包偷窃的概率0.3,打架的概率0.24,取概率最高的上下楼梯作为最终输出的动作。

在本申请的动作识别方案中,通过人体检测模型来对视频片段序列41中的视频帧的人体做检测,生成人体的边界框。具体地,该模型的功能和训练过程如下:

1)人体检测模型的训练目的

本申请实施例采用人体检测模型在人流拥挤场景的的待检测视频进行测试实验,人体检测模型的性能通过平均精度(Average precision,AP)和MMR这个两个指标进行测试。其中,AP反映检测结果的精确度和查全率,MMR的取值在0.01-100之间,MMR是指每帧图像假阳性的对数平均丢失率(False Positive Per Image,FPPI)。MMR对误报(falsepositives,FP)非常敏感,尤其是置信度高的FP将严重损害MMR比率。在本申请的实施例中,AP越大而MMR越小表示人体检测模型性能越好。

2)人体检测模型的模型框架的选择

现有技术中,对于人流拥挤场景的的待检测视频的人体实例检测,人体检测模型中的检测框架可以是一阶段检测框架,例如一阶段框架可以是SSD框架,YOLO框架等,也可以是两阶段框架,其中,一阶段检测框架将人体识别和人体定位放在一起检测,可以实时运行,识别速度快,准确性较二阶段框架有所下降。二阶段检测框架将人体识别和人体定位分成两个步骤,分别完成,而且识别的准确性高。

因此,在本申请实施例中,对于拥挤场景的的待检测视频的人体实例检测,采用两阶段框架,例如级联-区域卷积神经网络架构(cascade-region convolutional neuralnetworks,cascade RCNN),更快速-区域卷积神经网络架构(faster-regionconvolutional neural networks,Faster RCNN)等。其中,检测框架的主干网络可以是ResNet152网络,可以是ResNeXt101网络,也可以是SeNet154网络。

下面通过表1对人体检测模型中的框架选择结果进行评估:

表1给出了人体检测模型使用不同的主干网络和检测框架以及结合功能金字塔网络(Feature-Pyramid Networks,FPN)在HIE验证集上做人体检测得出的实验结果。其中,表中任意组成的人体检测模型均由训练样本集为HIE数据集训练获得。表中的“+”表示人体检测模型的组成部分(或称为组件),例如,ResNet152+Faster RCNN+FPN表示检测模型由主干网络ResNet50、框架Faster RCNN以及FPN组成。需要说明的是,基线模型是带有ResNet50的Faster RCNN框架的人体检测模型,表中的其他检测模型是在基线模型上搜索超参数,然后将其应用于较大的骨干或者框架。

由表1可知,主干网络ResNet152或者ResNeXt101与框架Cascade RCNN以及FPN组成的检测模型性能较基线模型性能提升明显。例如,主干网络ResNet152与框架CascadeRCNN以及FPN组成的检测模型较基线模型提高了9.38AP,减少了11.46MMR。主干网络ResNeXt101与框架Cascade RCNN以及FPN组成的检测模型较基线模型提高了9.38AP,减少了11.46MMR。首先,模型增加FPN性能提高了5.64AP,减少了5.84MMR。其次,模型主干网络的选择中:ResNet152相较于ResNet50或者SENet154,模型性能提升明显。ResNeXt101相较于SENet154性能提升明显。再其次,模型框架网络的选择中,Cascade RCNN相比较于FasterRCNN性能提高1.79AP,减少了2.33MMR。

2)人体检测模型的训练样本数据集的选择

在本申请的实施例中,对于人流拥挤场景的待检测视频的人体检测,通过预先训练的人体检测模型检测图像中的人体实例。其中,用于训练人体检测模型的人体训练样本集包括标记了人体实例的人体边界框,其中,每个人体实例都用人体的全身边界框注释,人体训练样本集中包含许多人流拥挤场景的图像。对人体训练样本集中的数据进行随机打散,按照一定的比例把样本集合分成了训练集、验证集与测试集。具体地,基于人体检测模型,利用训练集中的人体实例的视频及其标记人体实例边界框的数据训练人体检测模型,获得多个人体检测中间模型;利用视频验证集对各人体检测中间模型进行验证,提取验证结果最优的人体检测中间模型;利用视频测试集对该人体检测中间模型进行测试(防止过拟合),当测试结果与验证结果相匹配(测试结果与验证结果的差小于预设的阈值)时输出该人体检测中间模型作为人体检测模型。

下面通过表2对用于训练人体检测模型的训练样本集的选择及验证结果进行评估:

表2给出了通过不同的训练样本集训练人体检测模型41,在HIE验证集上做人体检测得出的性能结果,其中,人体检测模型41为基线模型,基线模型是带有ResNet50的FasterRCNN框架的人体检测模型。表中的“+”表示训练样本集包括的数据集,例如,HIE+CityPerson表示用于训练基线模型的训练样本集包括HIE数据集和CityPerson数据集。allextra data代表COCO数据集、CityPerson数据集、CrowndHuman数据集、自收集的数据集的组合数据集。

由表2可知,基于HIE数据集的训练样本集:增加CrowndHuman数据集和COCO数据集和CityPerson数据集检测性能提高了16.85AP,降低了15.38MMR。增加CrowndHuman数据集和自收集数据集检测性能提高了19.39AP,降低了18.43MMR,增加all extra data数据集检测性能提高了19.68AP,降低了18.84MMR。可以理解,HIE数据集与all extra data数据集组成的训练样本集训练的基线模型人体检测性能最好,但是,相较于HIE数据集和CrowndHuman数据集以及自收集的数据集组成的训练样本集训练的基线模型人体检测性能提高了0.33AP,降低了0.41MMR。性能并没有明显的改善,由于合并了COCO数据集训练时间却高出了三倍。可以理解,权衡检测性能和训练时间,本申请的实施例中用于训练人体检测模型的训练样本集包括HIE数据集、CrowndHuman数据集和自收集数据集。

3)人体检测模型的训练细节说明

现有技术的检测方法是针对单个人体实例预测单个候选框,由于检测场景中的人体实例相互重叠,重叠的多个人体实例在模型检测过程中,一部分人体实例很可能被设置的非极大值抑制(non-maximum suppression,NMS)消除掉,最终只获得其余部分人体实例对应的人体的边界框,其中NMS用于过滤掉人体检测模型41的检测结果中重合率(Intersection over Union,IOU)很高的人体边界框。)本申请应用一种方法来预测拥挤场景中的人体实例,称为“Crowd-Det”。Crowd-Det的关键思想是针对模型生成的人体的边界框作为候选框,其中,模型生成的每个候选框,不识别单个实例,而是将高度重叠的人体实例作为一个整体预测一个候选框,然后对一个候选框包含的多个人体实例做后处理,最终获得单个人体实例获得单个人体的边界框。

具体地,上述Crowd-Det算法包括以下实现方式中的至少一项,下文以一个候选框包括两个或多个人体实例,以一个候选框包括人实例A或人实例B为例说明:

a、EMD loss,用于判断人实例A和人实例B分别对应候选框经过卷积神经网络生成两个人体实例的边界框中的哪一个。具体地,例如,候选框经过卷积神经网络生成两个人实例的边界框,分别是边界框1和边界框2,假设边界框1作为人体实例A的边界框,边界框2作为人体实例B的边界框,计算EMD loss,假设边界框2作为人体实例A的边界框,边界框1作为人体实例B的边界框,计算EMD loss,以EMD loss值最小的人体实例A对应的边界框和人体实例B对应的边界框作为输出结果。

b、优化模块,用于二次预测边界框。具体地,本申请实施例中,Crowd-Det算法经过EMD loss机制得到的人体实例A的边界框和人体实例B的边界框与模型生成的预测框一起输入到优化模块,优化模块生成两个人体的边界框,利用EMD loss再次判断人体实例A与人体实例B分别对应的人体的边界框。

c、Set NMS,用于在NMS机制中每次一个人体的边界框抑制另一个人体的边界框之前,插入一个额外的判断来检查这两个框是否来自同一个候选框,如果是则跳过抑制。可以理解,上述在NMS机制中一个人体的边界框抑制另一个人体的边界框,指的是:在重叠(如重叠度较高)的两个人体分别对应的人体的边界框中,前方人体的边界框抑制后方被遮挡人体的边界框,导致后方被遮挡人体的边界框被消除。例如,为防止重叠的人实例A或人实例B预测的人体的边界框被NMS消除掉,对原始的NMS进行简单的改进,得到上述“Set NMS”机制,即每次当一个人体的边界框与另一个人体的边界框重叠,判断两个人体的边界框是否来自同一候选框;如果是,则跳过NMS抑制。

表3给出了人体检测模型为基线模型,基线模型在训练样本集上训练,在HIE验证集上做人体检测测试验证结果。其中,基线模型是带有ResNet50的Faster RCNN框架的人体检测模型,训练样本集包括HIE数据集、CityPerson数据集、COCO数据集、CrowndHuman数据集、自收集的数据集的组合数据集。

由表3可知,基线模型上增加crowd-Det的emd loss处理,检测性能提高0.37AP,减少了1.97MMR。基线模型上增加crowd-Det的emd loss处理、refine module处理,检测性能提高0.6AP,减少了4.32MMR。基线模型上增加emd loss处理、refine module处理以及crowd-Det的set NMS处理,检测性能提高0.69AP,减少了5.54MMR。可以理解,根据表中的结果,Crowd-Det算法确实提高了拥挤检测的性能。

4)人体检测模型的KD正则化

在本申请的实施例中,人体检测模型对每帧图像做人体检测的过程中,在人体检测模型的输出层输出图像中人体对应的候选框以及候选框内人体可能的类别以及类别对应的概率,人体检测模型选取类别概率最高为人体的边界框。为减少人体检测模型在检测过程中对人体的过拟合,在人体检测模型41的训练过程中额外加入知识蒸馏(KnowledgeDistillation,KD)正则化,具体地,人体检测模型41在模型训练中,除了常规的交叉熵(下面公式的第一项)作为损失函数外,KD正则化会提供一个额外的正则化公式(下面公式的第二项)。例如,在训练中,如图14所示,针对图中的人体实例,人体检测模型41的输出层可能输出的类别及类别的概率分布为人的概率0.5,树的概率0.4,椅子的概率0.1。正常的训练只会讲该概率分布与一个one-hot标签的交叉熵作为损失函数,KD正则化还会提供一个虚拟的教师模型的概率分布与该模型的概率分布的KL散度作为额外的损失函数,执行KD正则化可以使模型在结果输出层输出类别及概率分布时不过度依赖预先标注的标签,使人体检测模型41输出的类别及概率分布更准确。

如下所述为本申请提供的KD正则化的数学公式:

L

其中,H是交叉熵,p是检测模型输出的类别的概率,q是类别的ground truth,D

最后,基于以上分析,对采用HIE数据集,crowdhuman数据集和自收集的数据集训练两个人体检测模型,记为人体检测模型1和人体检测模型2。其中,在HIE验证集上验证的检测性能:人体检测模型1的主干网络ResNet152,框架选择cascade RCNN结合FPN,在模型的输出层生成的人体的边界框做crowd-Det和KD正则化后处理,检测性能为83.21AP。人体检测模型2的主干网络ResNeXt101,框架选择cascade RCNN结合FPN,在模型的输出层生成的人体的边界框做crowd-Det和KD正则化后处理,检测性能为83.78AP。人体检测模型1与人体检测模型2以权重1:1融合后的检测模型作为本申请的实施例的人体检测模型。

在本申请的动作识别方案中,通过动作检测模型43来对视频片段中的人体做动作识别,生成人体的动作类别。具体地,以动作检测模型43为AIA模型为例,该模型的功能和训练过程如下:

1)人体动作识别模型的动作训练样本数据集的选择

在本申请的实施例中,用于训练AIA模型的训练样本集包括AVA数据集、HIE数据集。

AVA数据集包含430个15分钟的标注过的Youtube视频,统一将15分钟视频分割成300个非重叠的3秒片段,采样遵循保动作序列的时间顺序,为每个3秒视频片段的中间帧的人物手动标注边界框与动作。具体地,AVA数据集有80个原子化可视动作(即80个动作类别),每个动作的标注即包含描述文本,也包含在视频帧中的边界框。这些动作可分为三组:姿势/移动动作、人物互动和人人互动。例如,走路、踢(某物)、握手、跑步等,所有动作都有时空定位,从而产生57.6k视频片段、96k标注人类动作和232k动作标签。

HIE训练集包含来自14个动作类别的33559个人类动作实例。每20帧中为所有个体添加动作注释,我们将包含动作注释的帧称为关键帧。但是,HIE数据集中所有行动类别的分配是不平衡的。单独跑步,一起跑步,坐下交谈,格斗和摔倒等类每个都只有不到400个人体实例,而有11.7k个动作被标记为单独行走。而且,HIE数据集中,针对一个视频帧,所有人体实例所在的区域面积平均占视频帧全部面积的区域的不到2%。因此,在此数据集上执行时空动作本地化是一项极富挑战性的任务。为了减轻数据不足的问题,我们增加了一些额外数据,额外数据包含2k视频帧的3k个人体实例,并给人体实例添加2.9k动作注释。

2)人体检测模型的训练细节说明

a)数据集拆分

我们尝试通过视频将数据集拆分为训练和验证集,类似于检测训练。但是,几个动作标签在训练和/或验证集中的积极实例很少,这使得使用这种拆分策略来评估效果非常困难。因此,我们使用上面的火车验证拆分进行了几轮初始实验,以验证我们实施的正确性。此后,我们将切换至没有经过验证的完整训练集的训练,然后对给定的官方测试集进行测试。

b)训练细节

对于关键帧周围的每个修剪剪辑,我们分别在剪辑中对特征提取器中的慢速分支和快速分支采样32个帧和8个帧。对于空间尺寸,在训练过程中,我们将框架的短边调整为从(320、352、384、416、448)中随机采样的长度,并将长边填充为短边的2.5倍。我们应用10%的边界框抖动和随机水平翻转来提高泛化能力。在分类预测之前,我们使用0.2的辍学率,并在训练过程中采用S型激活对数的二进制交叉熵损失作为监督。使用SGD优化器进行了总共16万次迭代的训练,其中冻结了BatchNorm统计信息。我们在8个GPU上训练每个模型,每个GPU有2个片段,这使得批处理总数达到16。

c)加权抽样

由于某些课程缺乏训练样本,我们观察到训练后稀有课程的分数分布接近零。为了减轻动作类之间的不平衡问题,我们在训练过程中对片段进行加权采样,对包含罕见动作(例如坐着,跑步等)的片段分配较高的权重,对包含频繁动作(例如步行)的片段分配较低的权重和站立)。在应用加权采样策略后,在训练过程中,最大采样动作的发生次数与最小采样动作的发生次数的比例从大约120减少到大约10。

图15根据本申请的一些实施例,示出了一种基于视频的人体动作识别装置的结构框图。如图15所示,基于视频的人体动作识别装置1500,包括:

获取模块(1502),用于获取视频中的多帧多人体图像,其中每帧多人体图像中包括有多个人体实例;

第一生成模块(1504),用于生成各帧多人体图像中的人体实例的检测人体边界框;

确定模块(1506),用于确定各帧多人体图像的图像场景,一种图像场景对应一类或多类动作;

识别模块(1508),用于基于多帧多人体图像的检测人体边界框和图像场景,识别多帧多人体图像中人体实例的动作。

可以理解,图15所示的基于视频的人体动作识别装置1500与本申请提供的基于视频的人体动作识别方法相对应,以上关于本申请提供的基于视频的人体动作识别方法的具体描述中的技术细节依然适用于图15所示的基于视频的人体动作识别装置1500,具体描述请参见上文,在此不再赘述。

图16所示为根据本申请的一个实施例的电子设备1600的框图。该电子设备可以为上述视频处理设备300。图16示意性地示出了根据多个实施例的示例电子设备1600。在一个实施例中,电子设备1600可以包括一个或多个处理器1604,与处理器1604中的至少一个连接的系统控制逻辑1608,与系统控制逻辑1608连接的系统内存1612,与系统控制逻辑1608连接的非易失性存储器(NVM)1616,以及与系统控制逻辑1608连接的网络接口1620。

在一些实施例中,处理器1604可以包括一个或多个单核或多核处理器。在一些实施例中,处理器1604可以包括通用处理器和专用处理器(例如,图形处理器,应用处理器,基带处理器等)的任意组合。在电子设备1600采用eNB(Evolved Node B,增强型基站)或RAN(Radio Access Network,无线接入网)控制器的实施例中,处理器1604可以被配置为执行各种符合的实施例,例如,如图3所示的多个实施例中的一个或多个。

在一些实施例中,系统控制逻辑1608可以包括任意合适的接口控制器,以向处理器1604中的至少一个和/或与系统控制逻辑1608通信的任意合适的设备或组件提供任意合适的接口。

在一些实施例中,系统控制逻辑1608可以包括一个或多个存储器控制器,以提供连接到系统内存1612的接口。系统内存1612可以用于加载以及存储数据和/或指令。在一些实施例中系统1600的内存1612可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(DRAM)。

NVM/存储器1616可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,NVM/存储器1616可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如HDD(Hard Disk Drive,硬盘驱动器),CD(Compact Disc,光盘)驱动器,DVD(Digital Versatile Disc,数字通用光盘)驱动器中的至少一个。

NVM/存储器1616可以包括安装电子设备1600的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口1620通过网络访问NVM/存储1616。

特别地,系统内存1612和NVM/存储器1616可以分别包括:指令1624的暂时副本和永久副本。指令1624可以包括:由处理器1604中的至少一个执行时导致电子设备1600实施如图5所示的方法的指令。在一些实施例中,指令1624、硬件、固件和/或其软件组件可另外地/替代地置于系统控制逻辑1608,网络接口1620和/或处理器1604中。

网络接口1620可以包括收发器,用于为电子设备1600提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(如前端模块,天线等)进行通信。在一些实施例中,网络接口1620可以集成于电子设备1600的其他组件。例如,网络接口1620可以集成于处理器1604的,系统内存1612,NVM/存储器1616,和具有指令的固件设备(未示出)中的至少一种,当处理器1604中的至少一个执行所述指令时,电子设备1600实现如图5所示的方法。

网络接口1620可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无线电接口。例如,网络接口1620可以是网络适配器,无线网络适配器,电话调制解调器和/或无线调制解调器。

在一个实施例中,处理器1604中的至少一个可以与用于系统控制逻辑1608的一个或多个控制器的逻辑封装在一起,以形成系统封装(SiP)。在一个实施例中,处理器1604中的至少一个可以与用于系统控制逻辑1608的一个或多个控制器的逻辑集成在同一管芯上,以形成片上系统(SoC)。

电子设备1600可以进一步包括:输入/输出(I/O)设备1632。I/O设备1632可以包括用户界面,使得用户能够与电子设备1600进行交互;外围组件接口的设计使得外围组件也能够与电子设备1600交互。在一些实施例中,电子设备1600还包括传感器,用于确定与电子设备1600相关的环境条件和位置信息的至少一种。

在一些实施例中,用户界面可包括但不限于显示器(例如,液晶显示器,触摸屏显示器等),扬声器,麦克风,一个或多个相机(例如,静止图像照相机和/或摄像机),手电筒(例如,发光二极管闪光灯)和键盘。

在一些实施例中,外围组件接口可以包括但不限于非易失性存储器端口、音频插孔和电源接口。

在一些实施例中,传感器可包括但不限于陀螺仪传感器,加速度计,近程传感器,环境光线传感器和定位单元。定位单元还可以是网络接口1620的一部分或与网络接口1620交互,以与定位网络的组件(例如,全球定位系统(GPS)卫星)进行通信。

根据本申请的实施例,图17示出了一种SoC(System on Chip,片上系统)1700的框图。在图17中,相似的部件具有同样的附图标记。另外,虚线框是更先进的SoC的可选特征。在图17中,SoC 1700包括:互连单元1750,其被耦合至应用处理器1710;系统代理单元1770;总线控制器单元1780;集成存储器控制器单元1740;一组或一个或多个协处理器1720,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(SRAM)单元1730;直接存储器存取(DMA)单元1760。在一个实施例中,协处理器1720包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处理器等等。

本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。

可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何系统。

程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。

在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。

在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。

需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。

需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号