一种基于人体关键点的人体动作识别方法及装置
文献发布时间:2023-06-19 09:44:49
技术领域
本申请涉及动作识别技术领域,尤其涉及一种基于人体关键点的人体动作识别方法及装置。
背景技术
目前,动作识别是计算机视觉领域中最具有挑战性的研究方向之一,被广泛应用于安防领域中。
现有技术中,在对摄像头拍摄的视频中的人体动作进行识别时,是基于二维的人体关键点进行识别的,当受到拍摄角度的影响时,视频中的人体可能会被外界的其它物体遮挡,导致人体动作识别的准确度不高。
发明内容
本申请实施例提供一种基于人体关键点的人体动作识别方法及装置,以提高人体动作识别的准确度。
本申请实施例提供的具体技术方案如下:
一种基于人体关键点的人体动作识别方法,包括:
分别对待识别视频的各视频帧进行人体检测,获得各人体区域图像;
分别针对所述各视频帧,获得任意一视频帧中的人体区域图像的各二维关键点坐标,通过预设的转换方式将所述各二维关键点坐标转换为关键点热图,并通过确定所述人体区域图像的图像深度,获得所述人体区域图像的深度图;
分别针对所述各视频帧,将任意一视频帧中的人体区域图像、关键点热图和深度图输入至已训练的坐标转换模型中,通过全卷积网络对所述关键点热图、所述深度图和该人体区域图像进行特征提取,确定该人体区域图像的特征向量,并通过坐标回归网络对所述特征向量进行坐标回归处理,获得该人体区域图像的各三维关键点坐标,其中,所述坐标转换模型的网络结构至少包括全卷积网络和坐标回归网络;
根据确定出的各三维关键点坐标,对所述待识别视频中包含的人体进行动作识别,获得所述人体的人体动作类别。
可选的,获得任意一个视频帧中的人体区域图像的各二维关键点坐标之前,进一步包括:
基于已训练的图像质量检测模型,以所述人体区域图像为输入参数,确定所述人体区域图像的图像质量分值,其中,所述图像质量检测模型为根据人体区域图像样本集通过迭代训练获得的,所述人体区域图像样本集中包含各人体区域图像样本;
确定所述人体区域图像的图像质量分值大于等于预设分数阈值。
可选的,获得任意一个视频帧中的人体区域图像的各二维关键点坐标之前,进一步包括:
确定所述人体区域图像的图像宽度值,并确定所述人体区域图像的图像高度值;
确定所述图像宽度值大于等于预设宽度阈值,且所述图像高度值大于等于预设高度阈值。
可选的,通过预设的转换方式将所述各二维关键点坐标转换为关键点热图,具体包括:
对所述各二维关键点坐标进行高斯模糊处理,获得所述人体区域图像的关键点热图。
可选的,通过确定所述人体区域图像的图像深度,获得所述人体区域图像的深度图,具体包括:
基于已训练的图像深度识别模型,以所述人体区域图像为输入参数,识别所述人体区域图像的各像素点的图像深度,并根据所述各像素点的图像深度,确定所述人体区域图像的深度图,其中,所述图像深度识别模型为根据人体区域图像样本集和深度图样本集训练获得的。
可选的,若所述待识别视频为多个摄像头拍摄的待识别视频,则获得任意一个视频帧中的人体区域图像的各二维关键点坐标,具体包括:
基于已训练的图像关联模型,以所述任意一个视频帧中的各人体区域图像为输入参数,将同一个人体对应的各人体区域图像进行关联,建立所述人体与各人体区域图像之间的关联关系,其中,所述各人体区域图像是在相同时间点的不同角度下的人体区域图像;
基于已训练的人体关键点识别模型,以所述任意一个视频帧中关联的各人体区域图像为输入参数,对所述关联的各人体区域图像进行人体关键点检测,确定所述关联的各人体区域图像的各人体关键点的二维关键点坐标和对应的属性信息,其中,所述属性信息为可见或不可见。
可选的,获得该人体区域图像的各三维关键点坐标之后,进一步包括:
分别针对所述各视频帧,通过预设的坐标转换方式将任意一视频帧中属性信息为可见的三维关键点坐标,转换为世界坐标系下的三维关键点坐标,并计算各世界坐标系下的三维关键点坐标的坐标平均值,并将确定出的各坐标平均值作为该视频帧中各人体关键点的最优的三维关键点坐标。
可选的,根据确定出的各三维关键点坐标,对所述待识别视频中的人体进行动作识别,获得所述人体的人体动作类别,具体包括:
分别针对各人体关键点,根据任意一人体关键点在所述各视频帧中的三维关键点坐标,以及所述各视频帧对应的时间,确定该人体关键点的速度信息;
基于已训练的动作识别模型,以所述各人体关键点的速度信息为输入参数,对所述待识别视频中的人体动作进行识别,获得所述待识别视频对应的人体动作类别,其中,所述动作识别模型为根据包含人体动作类别的图像样本集进行迭代训练获得的。
可选的,根据确定出的各三维关键点坐标,对所述待识别视频中的人体进行动作识别,获得所述人体的人体动作类别,具体包括:
分别针对所述各视频帧,对所述各三维关键点坐标进行高斯模糊处理,获得人体区域图像的三维关键点热图;
根据所述各三维关键点热图,以及所述各视频帧对应的时间,确定各人体关键点的速度信息;
分别根据各二维关键点坐标和所述速度信息,对所述各人体区域图像进行特征提取,确定所述待识别视频的特征向量;
基于已训练的全连接网络模型,以所述特征向量为输入参数,对所述待识别视频中的人体动作进行识别,获得所述待识别视频对应的人体动作类别,其中,所述动作识别模型为根据特征向量样本集和对应的人体动作类别样本集进行迭代训练获得的。
可选的,分别根据各二维关键点坐标和所述速度信息,对所述各人体区域图像进行特征提取,确定所述待识别视频的特征向量,具体包括:
基于已训练的三维神经网络模型,以所述速度信息为输入参数,对所述速度信息进行特征提取,确定所述待识别视频的第一特征向量,其中,所述三维神经网络模型为根据包含第一特征向量的速度信息样本集进行迭代训练获得的;
基于已训练的二维神经网络模型,以各二维关键点坐标和对应的人体区域图像为输入参数,对所述各二维关键点坐标和对应的人体区域图像进行特征提取,确定所述待识别视频的第二特征向量,其中,所述二维神经网络模型为根据二维关键点坐标样本集和对应的人体区域图像样本集进行迭代训练获得的;
将所述第一特征向量和所述第二特征向量进行合并,获得所述待识别特征的特征向量。
一种基于人体关键点的人体动作识别装置,包括:
检测模块,用于分别对待识别视频的各视频帧进行人体检测,获得各人体区域图像;
处理模块,用于分别针对所述各视频帧,获得任意一个视频帧中的人体区域图像的各二维关键点坐标,通过预设的转换方式将所述各二维关键点坐标转换为关键点热图,并通过确定所述人体区域图像的图像深度,获得所述人体区域图像的深度图;
转换模块,用于分别针对所述各视频帧,将任意一视频帧中的人体区域图像、关键点热图和深度图输入至已训练的坐标转换模型中,通过全卷积网络对所述关键点热图、所述深度图和该人体区域图像进行特征提取,确定该人体区域图像的特征向量,并通过坐标回归网络对所述特征向量进行坐标回归处理,获得该人体区域图像的各三维关键点坐标,其中,所述坐标转换模型的网络结构至少包括全卷积网络和坐标回归网络;
识别模块,用于根据确定出的各三维关键点坐标,对所述待识别视频中包含的人体进行动作识别,获得所述人体的人体动作类别。
可选的,获得任意一个视频帧中的人体区域图像的各二维关键点坐标之前,处理模块进一步用于:
基于已训练的图像质量检测模型,以所述人体区域图像为输入参数,确定所述人体区域图像的图像质量分值,其中,所述图像质量检测模型为根据人体区域图像样本集通过迭代训练获得的,所述人体区域图像样本集中包含各人体区域图像样本;
确定所述人体区域图像的图像质量分值大于等于预设分数阈值。
可选的,获得任意一个视频帧中的人体区域图像的各二维关键点坐标之前,处理模块进一步用于:
确定所述人体区域图像的图像宽度值,并确定所述人体区域图像的图像高度值;
确定所述图像宽度值大于等于预设宽度阈值,且所述图像高度值大于等于预设高度阈值。
可选的,通过预设的转换方式将所述各二维关键点坐标转换为关键点热图时,处理模块具体用于:
对所述各二维关键点坐标进行高斯模糊处理,获得所述人体区域图像的关键点热图。
可选的,通过确定所述人体区域图像的图像深度,获得所述人体区域图像的深度图时,处理模块具体用于:
基于已训练的图像深度识别模型,以所述人体区域图像为输入参数,识别所述人体区域图像的各像素点的图像深度,并根据所述各像素点的图像深度,确定所述人体区域图像的深度图,其中,所述图像深度识别模型为根据人体区域图像样本集和深度图样本集训练获得的。
可选的,若所述待识别视频为多个摄像头拍摄的待识别视频,则获得任意一个视频帧中的人体区域图像的各二维关键点坐标,处理模块具体用于:
基于已训练的图像关联模型,以所述任意一个视频帧中的各人体区域图像为输入参数,将同一个人体对应的各人体区域图像进行关联,建立所述人体与各人体区域图像之间的关联关系,其中,所述各人体区域图像是在相同时间点的不同角度下的人体区域图像;
基于已训练的人体关键点识别模型,以所述任意一个视频帧中关联的各人体区域图像为输入参数,对所述关联的各人体区域图像进行人体关键点检测,确定所述关联的各人体区域图像的各人体关键点的二维关键点坐标和对应的属性信息,其中,所述属性信息为可见或不可见。
可选的,获得该人体区域图像的各三维关键点坐标之后,转换模块进一步用于:
分别针对所述各视频帧,通过预设的坐标转换方式将任意一视频帧中属性信息为可见的三维关键点坐标,转换为世界坐标系下的三维关键点坐标,并计算各世界坐标系下的三维关键点坐标的坐标平均值,并将确定出的各坐标平均值作为该视频帧中各人体关键点的最优的三维关键点坐标。
可选的,识别模块具体用于:
分别针对各人体关键点,根据任意一人体关键点在所述各视频帧中的三维关键点坐标,以及所述各视频帧对应的时间,确定该人体关键点的速度信息;
基于已训练的动作识别模型,以所述各人体关键点的速度信息为输入参数,对所述待识别视频中的人体动作进行识别,获得所述待识别视频对应的人体动作类别,其中,所述动作识别模型为根据包含人体动作类别的图像样本集进行迭代训练获得的。
可选的,识别模块具体用于:
分别针对所述各视频帧,对所述各三维关键点坐标进行高斯模糊处理,获得人体区域图像的三维关键点热图;
根据所述各三维关键点热图,以及所述各视频帧对应的时间,确定各人体关键点的速度信息;
分别根据各二维关键点坐标和所述速度信息,对所述各人体区域图像进行特征提取,确定所述待识别视频的特征向量;
基于已训练的全连接网络模型,以所述特征向量为输入参数,对所述待识别视频中的人体动作进行识别,获得所述待识别视频对应的人体动作类别,其中,所述动作识别模型为根据特征向量样本集和对应的人体动作类别样本集进行迭代训练获得的。
可选的,分别根据各二维关键点坐标和所述速度信息,对所述各人体区域图像进行特征提取,确定所述待识别视频的特征向量时,识别模块具体用于:
基于已训练的三维神经网络模型,以所述速度信息为输入参数,对所述速度信息进行特征提取,确定所述待识别视频的第一特征向量,其中,所述三维神经网络模型为根据包含第一特征向量的速度信息样本集进行迭代训练获得的;
基于已训练的二维神经网络模型,以各二维关键点坐标和对应的人体区域图像为输入参数,对所述各二维关键点坐标和对应的人体区域图像进行特征提取,确定所述待识别视频的第二特征向量,其中,所述二维神经网络模型为根据二维关键点坐标样本集和对应的人体区域图像样本集进行迭代训练获得的;
将所述第一特征向量和所述第二特征向量进行合并,获得所述待识别特征的特征向量。
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述基于人体关键点的人体动作识别方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述基于人体关键点的人体动作识别方法的步骤。
本申请实施例中,分别对待识别的各视频帧进行人体检测,获得各人体区域图像,分别针对各视频帧,获得任意一个视频帧中的人体区域图像的关键点热图和深度图,将任意一视频帧中的人体区域图像、关键点热图和深度图输入至已训练的坐标转换模型中,通过全卷积网络进行特征提取,并通过坐标回归网络对提取到的特征向量进行坐标回归处理,获得该人体区域图像的各三维关键点坐标,根据确定出的各三维关键点坐标,对人体进行动作识别,获得人体的人体动作类别,这样,将待识别视频中包含的人体对应的各人体关键点的二维关键点坐标转换为三维关键点坐标,并基于人体所包含的各人体关键点的三维关键点坐标对人体的动作进行动作识别,相比于现有技术中仅通过人体关键点的二维坐标来识别人体动作来说,能够提高人体动作识别的准确率,并且,由于人体关键点的三维坐标能够为动作识别提供更多的行为特征,因此,根据三维关键点坐标对人体的人体动作进行识别时,能够解决因自身遮挡导致的误报。
附图说明
图1为本申请实施例中一种人体的三维关键点坐标的检测方法的流程图;
图2为本申请实施例中人体检测的示意图;
图3为本申请实施例中人体关键点的人体动作识别装置的结构示意图;
图4为本申请实施例中电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,动作识别是计算机视觉领域中最具有挑战性的研究方向之一,被广泛应用于安防领域中。
现有技术中,在对摄像头拍摄的视频中的人体动作进行识别时,是基于二维的人体关键点进行识别的,当受到拍摄角度的影响时,视频中的人体可能会被外界的其它物体遮挡,导致人体动作识别的精确度不高。
本申请实施例中,分别对待识别视频的各视频帧进行人体检测,获得各人体区域图像,分别针对各视频帧,获得任意一个视频帧中的人体区域图像的关键点热图和深度图,将任意一视频帧中的人体区域图像、关键点热图和深度图输入至已训练的坐标转换模型中,通过全卷积网络进行特征提取,并通过坐标回归网络对提取到的特征向量进行坐标回归处理,获得该人体区域图像的各三维关键点坐标,根据确定出的各三维关键点坐标,对人体进行动作识别,获得人体的人体动作类别,这样,通过将人体关键点的二维坐标转换为三维坐标,并基于人体关键点的三维坐标对待识别视频中的人体动作进行识别,能够提高人体动作识别的精确度,并且,通过人体关键点的三维人体关键点坐标能够解决人体被遮挡的情况下的人体动作识别问题,能够进一步提高人体动作识别的性能,减少误报。
基于上述实施例,参阅图1所示,为本申请实施例中一种人体的三维关键点坐标的检测方法的流程图,具体包括:
步骤100:分别对待识别视频的各视频帧进行人体检测,获得各人体区域图像。
本申请实施例中,由于一个摄像头拍摄的待识别视频是由多个连续的视频帧组成的,因此,在获取摄像机传输的待识别视频之后,对待识别视频进行解帧,并分别对待识别视频的各视频帧进行人体检测,获得包含有人体的人体区域图像。
其中,人体区域图像为从待识别视频的视频帧上截取出的包含有人体的图像,因此,人体区域图像为红绿蓝(red green blue,RGB)原图。
需要说明的是,本申请实施例中的待识别视频中,可能包含有一个人,也可能包含有多个人,那么在进行人体检测时,获得的人体区域图像可能为一个,也可能为多个,但是,每一个人体区域图像中仅包含一个人体。
进一步地,本申请实施例中,在摄像头拍摄待识别视频之前,还可以对摄像头去除畸变。
本申请实施例中,提供了一种检测人体区域图像的方式,具体包括:
S1:接收摄像机传输的待识别视频,并通过已训练的人体检测网络分别对待识别视频的各视频帧进行人体检测。
本申请实施例中,由于待识别视频是由多个连续的视频帧组成的,因此,在接收到摄像机传输的待识别视频之后,从待识别视频的第1个视频帧开始,分别通过已训练的人体检测网络,对各视频帧依次进行人体检测,判断各视频帧中是否包含有人体。
其中,人体检测网络例如可以为Single Shot MultiBox Detector(SSD)、YOLO(You Only Look Once)等,本申请实施例中对此并不进行限制。
S2:若确定在待识别视频中检测到人体,则确定包含人体的视频帧进行标记,并确定视频帧中包含有人体的人体区域图像,以及人体区域图像在视频帧上的位置数据。
其中,人体区域图像中包含有人体。
本申请实施例中,若确定在待识别视频帧的某一个视频帧中检测到人体,则对该包含人体的视频帧进行标记,这样,根据视频帧的标记就能够获知在该视频帧中检测到人体,然后,通过边界矩形框标注出人体在视频帧中的位置,获得人体区域图像,并确定人体区域图像在视频帧上的位置数据,参阅图2所示,为本申请实施例中人体检测的示意图。
S3:在待识别视频的各视频帧中,根据位置数据对人体进行追踪,并获得人体在追踪到的视频帧上的人体区域图像。
本申请实施例中,在获得人体区域图像在视频帧上的位置数据之后,在待识别视频的各视频帧中,根据确定出的位置数据对各视频帧中的人体进行人体追踪,并确定人体在追踪到的视频帧上对应的人体区域图像。
其中,在对人体进行追踪时,可以通过光流神经网络(FlowNet)实现。
步骤110:分别针对各视频帧,获得任意一个视频帧中的人体区域图像的各二维关键点坐标,通过预设的转换方式将各二维关键点坐标转换为关键点热图,并通过确定人体区域图像的图像深度,获得人体区域图像的深度图。
本申请实施例中,分别针对每一个包含有人体的视频帧,对每一个包含有人体的视频帧分别执行下述操作:
对任意一个视频帧中的人体区域图像进行人体关键点检测,获得人体区域图像的各人体关键点对应的人体关键点信息,获得的各人体关键点信息中至少包括各人体关键点的二维关键点坐标,然后,读取预设的转换方式,将各二维关键点坐标转换为关键点热图,并通过预设的映射方式,将人体区域图像映射为图像深度,并生成人体区域图像的深度图。
其中,二维关键点坐标表征人体关键点在二维坐标系中的二维坐标,关键点热图表征人体区域图像中人体关键点对应的热图,深度图中每个像素值代表的是人体到相机xy平面的距离。
下面分别对本申请实施例中获得关键点热图的步骤进行详细阐述,具体包括:
对各二维关键点坐标进行高斯模糊处理,获得人体区域图像的关键点热图。
本申请实施例中,对各二维关键点坐标进行高斯模糊处理,进而根据各二维关键点坐标生成关键点热图,关键点热图的每个点为纯黑图上的对应位置的高斯核,关键点热图和人体区域图像的图像大小是相同的。
例如,假设关键点热图大小为(64,48),二维关键点的坐标为(32,24),则将一个(64,48)的黑图的中心点点亮。
下面对本申请实施例中获得人体区域图像的深度图的步骤进行详细阐述,具体包括:
基于已训练的图像深度识别模型,以人体区域图像为输入参数,识别人体区域图像的各像素点的图像深度,并根据各像素点的图像深度,确定人体区域图像的深度图。
其中,图像深度识别模型为根据人体区域图像样本集和深度图样本集训练获得的。
首先,训练图像深度识别模型,图像深度识别模型是根据人体区域图像样本集和对应的深度图样本集通过迭代训练获得的,图像深度识别模型用于学习人体区域图像到深度图的映射,人体区域图像样本集中包括多个人体区域图像样本,深度图样本集中包括多个深度图样本,每一个人体区域图像样本对应一个深度图样本。
其中,图像深度识别网络用于将人体区域图像转换为深度图,深度图和人体区域图像的图像大小是相同的。
图像深度识别模型例如可以为全卷积网络(Fully Convolutional Networks,FCN),本申请实施例中对此并不进行限制。
然后,在获得已训练的图像深度识别模型之后,以人体区域图像为输入参数,将人体区域图像输入至图像深度识别模型中,识别获得人体区域图像的各像素点的图像深度,最后,根据各像素点的图像深度,生成人体区域图像的深度图。
进一步地,若视频帧中的人体对应的图像存在遮挡或者截断时,则获取到的人体区域图像中就不能包括完整的人体,这样可能会发生误判,因此,为了提高对人体关键点检测的准确度,还需要保证人体区域图像的质量,将质量不合格的人体区域图像删除,可以通过以下两种方式过滤掉质量不合格的人体区域图像。
第一种方式,具体包括:
S1:基于已训练的图像质量检测模型,以人体区域图像为输入参数,确定人体区域图像的图像质量分值。
其中,图像质量检测模型为根据人体区域图像样本集通过迭代训练获得的,人体区域图像样本集中包含各人体区域图像样本。
本申请实施例中,获取已训练的图像质量检测模型,图像质量检测模型用于输出人体区域图像的图像质量分值,将人体区域图像输入至已训练的图像质量检测模型中,输出参数为人体区域图像的图像质量分值。
其中,图像质量检测模型例如可以为vgg神经网络模型、残差神经网络(Resnet)等,本申请实施例中对此并不进行限制。
S2:确定人体区域图像的图像质量分值大于等于预设分数阈值。
本申请实施例中,在通过预设的已训练的图像质量检测模型获得图像质量分值时,具体可以分为以下两种情况:
第一种情况:图像质量分值大于等于预设分数阈值。
确定人体区域图像的图像质量分值大于等于预设分数阈值,则确定该人体区域图像为质量合格的图像,能够继续进行后续的检测步骤。
第二种情况:图像质量分值小于预设分数阈值。
若确定人体区域图像的图像质量分值小于预设分数阈值,则确定该图像中存在截断或遮挡,为质量不合格的图像,将该人体区域图像删除。
第二种方式,具体包括:
S1:确定人体区域图像的图像宽度值,并确定人体区域图像的图像高度值。
本申请实施例中,根据人体区域图像的上边界线、下边界线、左边界线和右边界线在视频帧中的位置信息,确定其在视频帧中的坐标,并根据确定出的各坐标,确定人体区域图像的图像宽度值和图像高度值。
S2:确定图像宽度值大于等于预设宽度阈值,且图像高度值大于等于预设高度阈值。
本申请实施例中,若确定图像宽度值大于等于预设宽度阈值,且图像高度值大于等于预设高度阈值,则确定人体区域图像为质量合格的图像,若确定图像宽度值或图像高度值小于预设阈值,则确定人体区域图像为质量不合格的图像。
步骤120:分别针对各视频帧,将任意一视频帧中的人体区域图像、关键点热图和深度图输入至已训练的坐标转换模型中,通过全卷积网络对关键点热图、深度图和该人体区域图像进行特征提取,确定该人体区域图像的特征向量,并通过坐标回归网络对特征向量进行坐标回归处理,获得该人体区域图像的各三维关键点坐标。
其中,坐标转换模型的网络结构至少包括全卷积网络和坐标回归网络。
本申请实施例中,分别针对各视频帧,基于已训练的坐标转换模型,以任意一个视频帧中所包含的人体区域图像的关键点热图、深度图和人体区域图像为输入参数,将关键点热图、深度图和人体区域图像合并为多维图,并通过全卷积网络对合并后的多维图进行特征提取,确定该人体区域图像的特征向量,并通过坐标回归网络,将提取后的特征向量进行坐标回归处理,获得一个N*4的向量,该向量表征三维关键点坐标。
其中,输入到坐标转换模型中的人体区域图像为原图的截取图,可以是以人体检测框外扩一定大小,例如,1.5倍,也可以不外扩,全卷积网络例如可以为特征图金字塔网络(Feature Pyramid Networks,FPN)结构网络,坐标回归网络例如可以为两层全连接残差网络。
其中,回归获得的N*4的向量分别表示三维关键点坐标的x,y,z和该点的置信度。
本申请实施例中,输入至坐标转换模型中的参数为关键点热图、深度图和人体区域图像,并将关键点热图、深度图和人体区域图像合并为多维图,并基于多维图将人体关键点的二维关键点坐标转换为三维关键点坐标,因此,挖掘到关于人体关键点的更多特征和多重信息,即关键点热图、深度图和人体区域图像,能够在进行特征提取时,获得关于人体关键点的多特征,并且,基于挖掘到的多特征来进行坐标转换,可以提高坐标转换的准确率,并且,本申请实施例中,当坐标回归网络为全连接残差网络时,由于全连接残差网络中的残差块在学习函数时非常容易,因此,能够提高模型的训练效率,提高网络性能。
因此,本申请实施例中,将关键点热图、深度图和人体区域图像输入至全卷积网络,能够提取到人体区域图像的多个特征,并将全卷积网络提取获得的多个特征输入到全连接残差网络中,进行坐标回归,能够提升坐标转换的准确率。
进一步地,由于单目摄像头在拍摄视频时,可能会因为角度问题而造成人体被遮挡,因此,会导致对人体进行动作识别时准确率不高,因此,本申请实施例中,提供了一种可能的实施方式,通过多个摄像头来拍摄人体,进而获得多个摄像头拍摄的待识别视频中,各个人体区域图像的二维关键点坐标,并将二维关键点坐标转换为三维关键点坐标,根据多个摄像头拍摄的待识别视频中的各三维关键点坐标来实现人体动作识别,能够解决可能存在的遮挡问题,首先对本申请实施例中当待识别视频为多个摄像头拍摄的待识别视频时,获得人体区域图像的二维关键点坐标的步骤进行详细阐述,具体包括:
S1:基于已训练的图像关联模型,以任意一个视频帧中的各人体区域图像为输入参数,将同一个人体对应的各人体区域图像进行关联,建立人体与各人体区域图像之间的关联关系。
其中,各人体区域图像是在相同时间点的不同角度下的人体区域图像。
本申请实施例中,待识别视频为多个摄像头拍摄的视频,也就是说,待识别视频可以是对一个人体或多个人体从不同的角度拍摄的视频,因此,待识别视频的每一个视频帧中,都包含多个摄像头拍摄的视频图像,每一个视频帧中也会包含同一个人体的多个人体区域图像,并且,每一个摄像头都对应一个视频图像,由于每一个视频图像中可能包含有多个人体,因此,在相同的视频帧下,需要将同一个人体对应的各视频图像中的人体区域图像进行关联,因此,在本申请实施例中,训练图像关联模型,并基于已训练的图像关联模型,以任意一个视频帧中各摄像头拍摄的人体区域图像为输入参数,将同一个人体对应的各人体区域图像进行关联,并建立人体与各人体区域图像之间的关联关系。
其中,图像关联模型例如可以为重识别(Re-identification,ReID)模型,本申请实施例中对此并不进行限制。
例如,假设共有3个摄像头同时拍摄视频,分别对各个人体的前面、后面以及侧面进行拍摄,则待识别视频中包含有3个摄像头传输的视频,下面以第1个视频帧为例进行举例说明,由于有3个摄像头同时进行拍摄,则在第1个视频帧中,包含有3个视频图像,假设每一个视频图像中都包含有2个人体,分别为A和B,则对每一个视频图像进行人体检测之后,共获得6个人体区域图像,并分别将这六个人体区域图像输入至已训练的图像关联模型中,将人体A的各人体区域图像进行关联,即,与人体A关联的人体区域图像有3个,并将人体B的各人体区域图像进行关联,即,与人体B关联的人体区域图像有3个,因此获得的每一个人体关联的人体区域图像是不同摄像头拍摄的,且是关于同一个人体的。
S2:基于已训练的人体关键点识别模型,以任意一个视频帧中关联的各人体区域图像为输入参数,对关联的各人体区域图像进行人体关键点检测,确定关联的各人体区域图像的各人体关键点的二维关键点坐标和对应的属性信息。
其中,属性信息为可见或不可见。
本申请实施例中,首先,训练人体关键点识别模型,在训练人体关键点识别模型时,是通过人体区域图像样本集和对应的二维关键点坐标样本集进行迭代训练获得的,人体区域图像样本集中包含有多个人体区域图像样本,每一个人体区域图像样本对应与各人体关键点的二维关键点坐标样本。
然后,获取已训练的人体关键点识别模型,并将任意一个视频帧中各关联的人体区域图像输入至已训练的人体关键点识别模型中,并分别对关联的每一个人体区域图像执行以下操作:对人体区域图像进行人体关键点检测,获得人体区域图像的各人体关键点,并获得各人体关键点在人体区域图像中的位置信息,确定各人体关键点的二维关键点坐标,并且,在对人体区域图像进行人体关键点检测时,还会检测到各人体关键点对应的属性信息。
其中,属性信息为可见或不可见,属性信息为可见表征人体关键点未被遮挡,属性信息为不可见表征人体关键点被外部遮挡或被人体遮挡。
例如,假设与人体A关联的各人体区域图像分别为A1、A2、A3,则将各人体区域图像输入至已训练的人体关键点识别模型中,对A1进行人体关键点检测,确定A1中包含的各人体关键点对应的二维关键点坐标,以及各人体关键点对应的属性信息,对A2进行人体关键点检测,确定A2中包含的各人体关键点对应的二维关键点坐标,以及各人体关键点对应的属性信息,对A3进行人体关键点检测,确定A3中包含的各人体关键点对应的二维关键点坐标,以及各人体关键点对应的属性信息。
然后,在获得关联的各人体区域图像的各人体关键点的二维关键点坐标之后,分别针对每一个人体区域图像,通过预设的转换方式将人体区域图像的各二维关键点坐标转换为关键点热图,并通过确定人体区域图像的图像深度,获得人体区域图像的深度图,并基于已训练的坐标转换模型,以人体区域图像的关键点热图、深度图和各二维关键点坐标为输入参数,确定人体区域图像的各三维关键点坐标。
在确定出人体区域图像的三维关键点坐标之后,对于同一视频帧中,每一个人体对应多个人体区域图像,因此,需要根据各人体区域图像对应的三维关键点坐标,确定出各三维关键点坐标的平均值,进而获得最优的三维关键点坐标,下面对本申请实施例中,获得最优的三维关键点坐标的步骤进行详细阐述,具体包括:
分别针对各视频帧,通过预设的坐标转换方式将任意一视频帧中属性信息为可见的三维关键点坐标,转换为世界坐标系下的三维关键点坐标,并计算各世界坐标系下的三维关键点坐标的坐标平均值,并将确定出的各坐标平均值作为该视频帧中各人体关键点的最优的三维关键点坐标。
本申请实施例中,分别针对各视频帧,执行以下步骤:
首先,由于各视频帧中的任意一个视频帧中,一个人体有多个在不同的相机下拍摄到的关联的人体区域图像,因此,分别针对人体的各人体关键点,分别将各相机坐标系下的三维关键点坐标转换为世界坐标系下的三维关键点坐标,并计算世界坐标系下的各三维关键点的坐标平均值,并将确定出的各坐标平均值作为该视频帧中各人体关键点的最优的三维关键点坐标。
并且,在计算坐标平均值时,仅计算属性信息为可见的人体关键点对应的三维关键点坐标。
例如,假设人体A关联的人体区域图像分别为A1、A2、A3,下面以人体关键点为头部关键点为例进行说明,A1中的头部关键点的属性信息为可见,A2中的头部关键点的属性信息为可见,A3中的头部关键点的属性信息为不可见,则在计算各人体区域图像中头部关键点的三维关键点坐标的坐标平均值时,由于人体区域图像A3中的头部关键点的属性信息为不可见,则不对其进行计算,删除三维关键点坐标,将属性信息为可见的三维关键点坐标转换为世界坐标系下的三维关键点坐标,因此,人体区域图像A1中的头部关键点a1对应的世界坐标系下的三维关键点坐标为(x
因此,在确定出各人体关键点坐标的坐标平均值之后,将确定出的各坐标平均值作为任意一个视频帧中各人体关键点的最优的三维关键点坐标,进而在对待识别视频进行人体动作视频时,使用的是各视频帧中各人体关键点对应的最优的三维关键点坐标进而识别的。
需要说明的是,可以取前后n帧,共2n+1帧视频帧的视频图像分别求三维关键点坐标,其中,n大于等于1。
例如,以第5帧为例,n为1,则对第3-7帧进行三维关键点坐标求取。
步骤130:根据确定出的各三维关键点坐标,对待识别视频中包含的人体进行动作识别,获得人体的人体动作类别。
本申请实施例中,在根据确定出的各人体关键点对应的三维关键点坐标,对待识别视频中包含的人体对应的人体动作进行识别,并确定人体对应的人体动作类别时,具体可以通过以下两种不同的方式实现,但并不仅限于以下两种实现方式。
第一种方式,具体包括:
S1:分别针对各人体关键点,根据任意一人体关键点在各视频帧中的三维关键点坐标,以及各视频帧对应的时间,确定该人体关键点的速度信息。
本申请实施例中,在确定出每一个视频帧中的人体对应的各人体关键点的三维关键点坐标之后,分别针对各人体关键点,确定每一个视频帧中,任意一个人体关键点在所位于的视频帧中的三维关键点坐标,也就是说,确定出关于人体的各人体关键点在各个视频帧中的位置数据,即三维关键点坐标,然后,分别针对各人体关键点,执行以下操作:根据任意一个人体关键点在各视频帧中的三维关键点坐标,确定检测到人体的各视频帧中各人体关键点的位移,然后,将最后一个视频帧对应的时间值减去第一个视频帧对应的时间值,确定检测到人体的第1个视频帧与最后一个检测到人体的视频帧之间的时间,然后,根据任意一个人体关键点对应的位移与确定出的时间之间的比值,确定任意一个人体关键点的速度信息。
例如,假设人体关键点为头部关键点,则确定每一个视频帧中头部关键点的三维关键点坐标,假设在待识别视频中,第1个视频帧检测到人体,直到第4个视频帧没有检测到人体,因此,从第1个视频帧到第3个视频帧中检测到人体,第一个视频帧对应的时间值为s
S2:基于已训练的动作识别模型,以各人体关键点的速度信息为输入参数,对待识别视频中的人体动作进行识别,获得待识别视频对应的人体动作类别。
其中,动作识别模型为根据包含人体动作类别的图像样本集进行迭代训练获得的。
本申请实施例中,首先,训练动作识别模型,在训练动作识别模型时,是通过各人体的各人体关键点对应的速度信息样本集和对应的人体动作类别样本集进行迭代训练获得的,速度信息样本集中包含有多个人体的各人体关键点对应的速度信息样本,人体动作类别样本集中包含有多个人体动作类别样本,每一个人体的各人体关键点对应的速度信息样本对应一个人体动作类别样本。
然后,获取已训练的动作识别模型,并将待识别视频中包含的人体对应的各人体关键点的速度信息输入至已训练的动作识别模型中,并对待识别视频中的人体动作进行识别,获得待识别视频中包含的人体对应的人体动作类别。
其中,动作识别模型例如可以为ResNet网络。
第二种方式,具体包括:
S1:分别针对所述各视频帧,对所述各三维关键点坐标进行高斯模糊处理,获得人体区域图像的三维关键点热图。
本申请实施例中,分别针对待识别视频的各视频帧,对各三维关键点坐标进行高斯模糊处理,将各三维关键点映射到热图中,生成包含有人体的人体区域图像的三维关键点热图。
S2:根据各三维关键点热图,以及各视频帧对应的时间,确定各人体关键点的速度信息。
本申请实施例中,将各视频帧中的人体区域图像对应的三维关键点热图与前一个视频帧中的人体区域图像对应的三维关键点热图之间的差值,除以各视频帧之间的时间值,确定人体区域图像中各人体关键点的速度信息。
其中,速度信息也可称为速度光流。
S3:分别根据各二维关键点坐标和速度信息,对各人体区域图像进行特征提取,确定待识别视频的特征向量。
本申请实施例中,执行步骤S3时,具体包括:
A1:基于已训练的三维神经网络模型,以速度信息为输入参数,对速度信息进行特征提取,确定待识别视频的第一特征向量。
其中,三维神经网络模型为根据包含第一特征向量的速度信息样本集进行迭代训练获得的。
本申请实施例中,首先训练三维神经网络模型,三维神经网络模型为根据包含第一特征向量的速度信息样本集进行迭代训练获得的,速度信息样本集中包含多个速度信息样本与对应的第一特征向量样本,以及速度信息样本与对应的第一特征向量样本之间的关联关系。
在获得已训练的三维神经网络模型之后,将待识别视频的速度信息输入至已训练的三维神经网络模型中,对速度信息进行特征提取,最后,获得待识别视频的第一特征向量。
其中,第一特征向量例如可以为156维的向量。
A2:基于已训练的二维神经网络模型,以各二维关键点坐标和对应的人体区域图像为输入参数,对各二维关键点坐标和对应的人体区域图像进行特征提取,确定待识别视频的第二特征向量。
其中,二维神经网络模型为根据二维关键点坐标样本集和对应的人体区域图像样本集进行迭代训练获得的。
本申请实施例中,首先,训练二维神经网络模型,在对二维神经网络模型进行训练时,是基于二维关键点坐标样本集和对应的人体区域图像样本集进行迭代训练获得的,二维关键点坐标样本集中包含有多个二维关键点坐标样本,人体区域图像样本集中包含有多个人体区域图像样本,每一个人体区域图像样本对应一组人体关键点的二维关键点坐标样本。
在获得已训练的二维神经网络模型之后,将人体区域图像对应的各二维关键点坐标和对应的人体区域图像输入至已训练的二维神经网络模型中,对人体区域图像对应的各二维关键点坐标进行特征提取,并对人体区域图像进行特征提取,获得待识别视频的第二特征向量。
其中,第二特征向量例如可以为156维的向量。
A3:将第一特征向量和第二特征向量进行合并,获得待识别视频的特征向量。
本申请实施例中,在获得待识别视频的第一特征向量和第二特征向量之后,将第一特征向量和第二特征向量进行维度合并,获得待识别视频的特征向量。
例如,假设第一特征向量为156维的向量,第二特征向量为156维的向量,则获得待识别视频的318维的特征向量。
S4:基于已训练的全连接网络模型,以特征向量为输入参数,对待识别视频中的人体动作进行识别,获得待识别视频对应的人体动作类别。
其中,动作识别模型为根据特征向量样本集和对应的人体动作类别样本集进行迭代训练获得的。
本申请实施例中,首先,训练全连接网络模型,在训练全连接网络模型时,是基于特征向量样本集和对应的人体动作类别样本集进行迭代训练获得的,特征向量样本集中包含有多个特征向量样本,人体动作类别样本集中包含有多个人体动作类别样本,每一个特征向量样本对应一个人体动作类别样本,全连接网络模型用于训练特征向量样本与人体动作类别样本之间的关联关系。
然后,读取已训练的全连接网络模型,并将待识别视频的特征向量输入至已训练的全连接网络模型,根据待识别视频的特征向量与全连接网络模型中的人体动作类别,确定待识别视频对应的人体动作类别,最后,输出人体动作类别。
其中,人体动作类别例如可以为跑步、跳舞、倒地、投掷物品等。
本申请实施例中,分别对待识别视频的各视频帧进行人体检测,获得各人体区域图像,分别针对各视频帧,获得任意一个视频帧中的人体区域图像的关键点热图和深度图,将任意一视频帧中的人体区域图像、关键点热图和深度图输入至已训练的坐标转换模型中,通过全卷积网络进行特征提取,并通过坐标回归网络对提取到的特征向量进行坐标回归处理,获得该人体区域图像的各三维关键点坐标,根据确定出的各三维关键点坐标,对人体进行动作识别,获得人体的人体动作类别,这样,通过将人体区域图像中的各二维关键点坐标转换为三维关键点坐标,并基于人体关键点的三维坐标对待识别视频进行人体动作识别,能够实现对人体的动作识别,并提高人体识别的准确率。
基于同一发明构思,本申请实施例中提供了人体关键点的人体动作识别装置,该人体关键点的人体动作识别装置可以是硬件结构、软件模块、或硬件结构加软件模块。基于上述实施例,参阅图3所示,为本申请实施例中人体关键点的人体动作识别装置的结构示意图,具体包括:
检测模块300,用于分别对待识别视频的各视频帧进行人体检测,获得各人体区域图像;
处理模块310,用于分别针对所述各视频帧,获得任意一个视频帧中的人体区域图像的各二维关键点坐标,通过预设的转换方式将所述各二维关键点坐标转换为关键点热图,并通过确定所述人体区域图像的图像深度,获得所述人体区域图像的深度图;
转换模块320,用于分别针对所述各视频帧,将任意一视频帧中的人体区域图像、关键点热图和深度图输入至已训练的坐标转换模型中,通过全卷积网络对所述关键点热图、所述深度图和该人体区域图像进行特征提取,确定该人体区域图像的特征向量,并通过坐标回归网络对所述特征向量进行坐标回归处理,获得该人体区域图像的各三维关键点坐标,其中,所述坐标转换模型的网络结构至少包括全卷积网络和坐标回归网络;
识别模块330,用于根据确定出的各三维关键点坐标,对所述待识别视频中包含的人体进行动作识别,获得所述人体的人体动作类别。
可选的,获得任意一个视频帧中的人体区域图像的各二维关键点坐标之前,处理模块310进一步用于:
基于已训练的图像质量检测模型,以所述人体区域图像为输入参数,确定所述人体区域图像的图像质量分值,其中,所述图像质量检测模型为根据人体区域图像样本集通过迭代训练获得的,所述人体区域图像样本集中包含各人体区域图像样本;
确定所述人体区域图像的图像质量分值大于等于预设分数阈值。
可选的,获得任意一个视频帧中的人体区域图像的各二维关键点坐标之前,处理模块310进一步用于:
确定所述人体区域图像的图像宽度值,并确定所述人体区域图像的图像高度值;
确定所述图像宽度值大于等于预设宽度阈值,且所述图像高度值大于等于预设高度阈值。
可选的,通过预设的转换方式将所述各二维关键点坐标转换为关键点热图时,处理模块310具体用于:
对所述各二维关键点坐标进行高斯模糊处理,获得所述人体区域图像的关键点热图。
可选的,通过确定所述人体区域图像的图像深度,获得所述人体区域图像的深度图时,处理模块310具体用于:
基于已训练的图像深度识别模型,以所述人体区域图像为输入参数,识别所述人体区域图像的各像素点的图像深度,并根据所述各像素点的图像深度,确定所述人体区域图像的深度图,其中,所述图像深度识别模型为根据人体区域图像样本集和深度图样本集训练获得的。
可选的,若所述待识别视频为多个摄像头拍摄的待识别视频,则获得任意一个视频帧中的人体区域图像的各二维关键点坐标,处理模块310具体用于:
基于已训练的图像关联模型,以所述任意一个视频帧中的各人体区域图像为输入参数,将同一个人体对应的各人体区域图像进行关联,建立所述人体与各人体区域图像之间的关联关系,其中,所述各人体区域图像是在相同时间点的不同角度下的人体区域图像;
基于已训练的人体关键点识别模型,以所述任意一个视频帧中关联的各人体区域图像为输入参数,对所述关联的各人体区域图像进行人体关键点检测,确定所述关联的各人体区域图像的各人体关键点的二维关键点坐标和对应的属性信息,其中,所述属性信息为可见或不可见。
可选的,获得该人体区域图像的各三维关键点坐标之后,转换模块320进一步用于:
分别针对所述各视频帧,通过预设的坐标转换方式将任意一视频帧中属性信息为可见的三维关键点坐标,转换为世界坐标系下的三维关键点坐标,并计算各世界坐标系下的三维关键点坐标的坐标平均值,并将确定出的各坐标平均值作为该视频帧中各人体关键点的最优的三维关键点坐标。
可选的,识别模块330具体用于:
分别针对各人体关键点,根据任意一人体关键点在所述各视频帧中的三维关键点坐标,以及所述各视频帧对应的时间,确定该人体关键点的速度信息;
基于已训练的动作识别模型,以所述各人体关键点的速度信息为输入参数,对所述待识别视频中的人体动作进行识别,获得所述待识别视频对应的人体动作类别,其中,所述动作识别模型为根据包含人体动作类别的图像样本集进行迭代训练获得的。
可选的,识别模块330具体用于:
分别针对所述各视频帧,对所述各三维关键点坐标进行高斯模糊处理,获得人体区域图像的三维关键点热图;
根据所述各三维关键点热图,以及所述各视频帧对应的时间,确定各人体关键点的速度信息;
分别根据各二维关键点坐标和所述速度信息,对所述各人体区域图像进行特征提取,确定所述待识别视频的特征向量;
基于已训练的全连接网络模型,以所述特征向量为输入参数,对所述待识别视频中的人体动作进行识别,获得所述待识别视频对应的人体动作类别,其中,所述动作识别模型为根据特征向量样本集和对应的人体动作类别样本集进行迭代训练获得的。
可选的,分别根据各二维关键点坐标和所述速度信息,对所述各人体区域图像进行特征提取,确定所述待识别视频的特征向量时,识别模块330具体用于:
基于已训练的三维神经网络模型,以所述速度信息为输入参数,对所述速度信息进行特征提取,确定所述待识别视频的第一特征向量,其中,所述三维神经网络模型为根据包含第一特征向量的速度信息样本集进行迭代训练获得的;
基于已训练的二维神经网络模型,以各二维关键点坐标和对应的人体区域图像为输入参数,对所述各二维关键点坐标和对应的人体区域图像进行特征提取,确定所述待识别视频的第二特征向量,其中,所述二维神经网络模型为根据二维关键点坐标样本集和对应的人体区域图像样本集进行迭代训练获得的;
将所述第一特征向量和所述第二特征向量进行合并,获得所述待识别特征的特征向量。
基于上述实施例,参阅图4所示为本申请实施例中电子设备的结构示意图。
本申请实施例提供了一种电子设备,该电子设备可以包括处理器410(CenterProcessing Unit,CPU)、存储器420、输入设备430和输出设备440等,输入设备430可以包括键盘、鼠标、触摸屏等,输出设备440可以包括显示设备,如液晶显示器(Liquid CrystalDisplay,LCD)、阴极射线管(Cathode Ray Tube,CRT)等。
存储器420可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器410提供存储器420中存储的程序指令和数据。在本申请实施例中,存储器420可以用于存储本申请实施例中任一种基于人体关键点的人体动作识别方法的程序。
处理器410通过调用存储器420存储的程序指令,处理器410用于按照获得的程序指令执行本申请实施例中任一种基于人体关键点的人体动作识别方法。
基于上述实施例,本申请实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例中的基于人体关键点的人体动作识别方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
- 一种基于人体关键点的人体动作识别方法及装置
- 人体动作识别中的基于空时能量分解的关键点检测方法