CN112906545B - 一种针对多人场景的实时动作识别方法及系统 - Google Patents
一种针对多人场景的实时动作识别方法及系统 Download PDFInfo
- Publication number
- CN112906545B CN112906545B CN202110174914.XA CN202110174914A CN112906545B CN 112906545 B CN112906545 B CN 112906545B CN 202110174914 A CN202110174914 A CN 202110174914A CN 112906545 B CN112906545 B CN 112906545B
- Authority
- CN
- China
- Prior art keywords
- human body
- skeleton
- human
- target detection
- detection frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Social Psychology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Psychiatry (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Biomedical Technology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种针对多人场景的实时动作识别方法及系统,其中,所述方法包括:对接收到的待识别视频信息进行目标检测处理,获得人体目标检测框;将人体目标检测框中的各个人的图像进行裁剪并归一化尺寸,合并为一批待处理的人体图像;对所述批待处理的人体图像批量提取人体骨架的关节点信息;进行人体目标检测框过滤处理;将过滤后的人体目标检测框输入卷积神经网络,输出人体图像特征;对应的人体骨架和人体图像特征在SORT算法分配对应的追踪ID;进行动作识别,获得各动作的置信度,并选取动作的置信度最高且大于预设阈值的动作类型及对应的目标图像反馈用户端。在本发明实施例中,可有效、精确识别视频中的多个人物的动作并实时反馈。
Description
技术领域
本发明涉及计算机视觉技术领域,尤其涉及一种针对多人场景的实时动作识别方法及系统。
背景技术
随着人工智能发展,人体动作识别技术取得巨大进步,已逐步广泛应用于安防、医疗保健、人机互动等领域,具有广阔的市场前景。然而,在实际落地中仍在实时视频动作连续识别、多视角及遮挡姿态时的动作识别、多人动作识别等方面充满挑战。
目前,动作识别的研究主要集中在预录制视频的动作分类,该类视频数据大多动作单一、背景单一、视角单一、人数少(一般1-2人)。当视频中存在多个人,每人动作不尽相同时,由该类数据训练的模型将无法直接预测每个人的动作。动作数据的采集、标注成本高。
当今的动作分类算法大多需要对整段视频或序列作处理后才能预测。处理原始的高维RGB帧数据需要强大的算力保障,即便是单路,对于安防、急救等对实时性要求高的应用,部署成本较高,难以定义合适的滑动窗口(即包含当前帧与过去若干帧的序列)大小来平衡识别准确率和响应时间。基于固定滑动窗口的方法用于识别持续时间差异较大的动作,特别是当某些动作短于窗口、而某些动作可持续多个窗口的时候,性能不佳。
同类技术中有部分采用深度相机如Kinect获取三维坐标的人体姿态序列作为动作识别的模态。相比RGB数据,人体姿态具有维度低、运算开销小的优势,且能过滤背景的无用信息。然而,这类途径有两大问题:一是深度相机成本高、普及性差;二是若不采用深度相机,仅利用RGB像素信息来估计多人的姿态,在人较多、较密的场景下精度不佳,如OpenPose算法。此外,单目获取三维人体姿态的精度尚不及二维的精度。
发明内容
本发明的目的在于克服现有技术的不足,本发明提供了一种针对多人场景的实时动作识别方法及系统,可有效、精确识别视频中的多个人物的动作并实时反馈。
为了解决上述技术问题,本发明实施例提供了一种针对多人场景的实时动作识别方法,所述方法包括:
基于TensorRT的目标检测器对接收到的待识别视频信息进行目标检测处理,获得人体目标检测框;
将人体目标检测框中的各个人的图像进行裁剪并归一化尺寸,合并为一批待处理的人体图像;
基于TensorRT的AlphaPose算法对所述一批待处理的人体图像进行人体骨架的关节点提取处理,获得人体骨架的关节点信息,所述关节点信息包括二维坐标和置信度;
基于所述人体骨架的关节点信息进行人体目标检测框过滤处理,获得过滤后的人体目标检测框;
将过滤后的人体目标检测框输入具有IBN和Non-local模块的卷积神经网络,输出人体图像特征;
基于所述过滤后的人体目标检测框、过滤后的人体目标检测框对应的人体骨架和人体图像特征在SORT算法分配对应的追踪ID;
将每一个追踪ID所记录的人体骨架输入动作识别网络,输出所述人体骨架中的各动作的置信度,并为各个追踪ID选取动作的置信度最高且大于预设阈值的动作类型及对应的目标图像反馈用户端。
可选的,所述基于TensorRT的目标检测器对接收到的待识别视频信息进行目标检测处理,获得人体目标检测框,包括:
接收视频信息,所述视频信息包括用户上传视频信息及监控设备采集到的视频信息;
对所述视频信息中的各视频帧基于OpenCV解码并将像素值归一化至[0,1]区间,同时填充视频帧的短边使得视频帧的宽高一致,获得待识别视频信息;
基于TensorRT的目标检测器对所述待识别视频信息进行目标检测处理,获得人体目标检测框;
所述目标检测器为基于TensorRT构建的网络架构,支持半精度推理与动态batchsize;所述网络结构为YOLOv5s。
可选的,所述将人体目标检测框中的各个人的图像进行裁剪并归一化尺寸,合并为一批待处理的人体图像,包括:
基于所述人体目标检测框裁剪出各个人的图像区域;
对裁剪出各个人的图像区域进行填充处理,在填充完成后进行尺寸归一化处理,并合并为一批待处理的人体图像;
所述尺寸归一化处理为将填充完成后的图像区域的宽高比归一化在1:2至3:4之间。
可选的,所述基于TensorRT的AlphaPose算法对所述一批待处理的人体图像进行人体骨架的关节点提取处理,获得人体骨架的关节点信息,包括:
基于TensorRT在AlphaPose算法上进行部署,形成姿态估计模型;
将所述一批待处理的人体图像输入所述姿态估计模型中,输出所述一批待处理的人体图像内的人体骨架的关节点的热图;
取人体骨架的关节点的热图的最大像素值作为该人体骨架的关节点的置信度,再将人体骨架的关节点的热图的最大像素值的位置变换到对应的视频帧的坐标系中,得到人体骨架的关节点的二维坐标。
可选的,所述姿态估计模型计算所述人体骨架的包围盒,并且所述人体骨架的包围盒的坐标为(xleft,ytop,xright,ybottom)如下:
令所述人体骨架对应的视频帧的左上角为原点,则有:
xleft=min({xj:0≤j<Np});
xright=max({xj:0≤j<Np});
ytop=min({yj:0≤j<Np});
ybottom=max({yj:0≤j<Np});
其中,j表示每个关节点的序号;Np表示关节点类型的数量。
可选的,所述基于所述人体骨架的关节点信息进行人体目标检测框过滤处理,获得过滤后的人体目标检测框,包括:
基于所述人体骨架的关节点信息计算人体骨架包围盒内的所有关节点的平均置信度;
判断所述评价置信度是否小于预设置信度,若小于,则过滤所述人体骨架包围盒对应的人体骨架、人体目标检测框,获得过滤后的人体目标检测框。
可选的,所述基于所述过滤后的人体目标检测框、过滤后的人体目标检测框对应的人体骨架和人体图像特征在SORT算法分配对应的追踪ID,包括:
基于过滤后的人体目标检测框、过滤后的人体目标检测框对应的人体骨架和人体图像特征将前一帧的跟踪框和当前帧中的人体目标信息进行关联;
计算两帧的人体图像特征的余弦距离及过滤后的人体目标检测框的交并比,获得代价矩阵;
基于匈牙利算法对所述代价矩阵进行匹配计算,获得跨帧人体目标,并利用卡尔曼滤波器来预测各目标下一帧的位置以确认目标是否处于被追踪状态,在处于被跟踪状态时,分配对应的追踪ID。
可选的,所述将每一个追踪ID所记录的人体骨架输入动作识别网络,输出所述人体骨架中的各动作的置信度,包括:
在将每一个追踪ID所记录的人体骨架输入动作识别网络之后,在所述动作识别网络内对输入的每一个追踪ID所记录的人体骨架作自适应仿射变换,再由两个或以上的卷积模块提取高维度空间特征,连结经变换的人体骨架的坐标数据后,送入循环神经网络模块提取高维时间特征,输出所述人体骨架中的各动作的置信度。
可选的,所述在所述动作识别网络内对输入的每一个追踪ID所记录的人体骨架作自适应仿射变换,包括:
其中:X′tjd表示变换后的骨架序列;Xtjd表示变换前的骨架序列;Θt为第t帧的变换参数向量,Θt=[Θt0 Θt1 Θt2 Θt3 Θt4 Θt5]。
另外,本发明实施例还提供了一种针对多人场景的实时动作识别系统,所述系统包括:
检测模块:用于基于TensorRT的目标检测器对接收到的待识别视频信息进行目标检测处理,获得人体目标检测框;
裁剪归一化模块:用于将人体目标检测框中的各个人的图像进行裁剪并归一化尺寸,合并为一批待处理的人体图像;
关节点提取模块:用于基于TensorRT的AlphaPose算法对所述一批待处理的人体图像进行人体骨架的关节点提取处理,获得人体骨架的关节点信息,所述关节点信息包括二维坐标和置信度;
过滤模块:用于基于所述人体骨架的关节点信息进行人体目标检测框过滤处理,获得过滤后的人体目标检测框;
人体图像特征输出模块:用于将过滤后的人体目标检测框输入具有IBN和Non-local模块的卷积神经网络,输出人体图像特征;
追踪ID分配模块:用于基于所述过滤后的人体目标检测框、过滤后的人体目标检测框对应的人体骨架和人体图像特征在SORT算法分配对应的追踪ID;
动作识别反馈模块:用于将每一个追踪ID所记录的人体骨架输入动作识别网络,输出所述人体骨架中的各动作的置信度,并为各个追踪ID选取动作的置信度最高且大于预设阈值的动作类型及对应的目标图像反馈用户端。
在本发明实施例中,可有效、精确识别视频中的多个人物的动作并实时反馈。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例中的针对多人场景的实时动作识别方法的流程示意图;
图2是本发明实施例中的针对多人场景的实时动作识别系统的结构组成示意图;
图3是本发明实施例中的针对多人场景的实时动作识别系统的另一结构组成示意图;
图4是本发明实施例中的具有IBN和Non-local模块的卷积神经网络的结构组成示意图;
图5是本发明实施例中的动作识别网络的结构组成示意图;
图6是本发明实施例中的动作识别网络内的循环神经网络模块的结构组成示意图;
图7是本发明实施例中的动作识别网络内的图卷积模块的结构组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例,请参阅图1,图1是本发明实施例中的针对多人场景的实时动作识别方法的流程示意图。
如图1所示,一种针对多人场景的实时动作识别方法,所述方法包括:
S11:基于TensorRT的目标检测器对接收到的待识别视频信息进行目标检测处理,获得人体目标检测框;
在本发明具体实施过程中,所述基于TensorRT的目标检测器对接收到的待识别视频信息进行目标检测处理,获得人体目标检测框,包括:接收视频信息,所述视频信息包括用户上传视频信息及监控设备采集到的视频信息;对所述视频信息中的各视频帧基于OpenCV解码并将像素值归一化至[0,1]区间,同时填充视频帧的短边使得视频帧的宽高一致,获得待识别视频信息;基于TensorRT的目标检测器对所述待识别视频信息进行目标检测处理,获得人体目标检测框;所述目标检测器为基于TensorRT构建的网络架构,支持半精度推理与动态batch size;所述网络结构为YOLOv5s。
具体的视频信息可以收各类摄像头(USB、RTSP等)采集到的视频信息,也可以为用户直接从终端上上传的视频信息;然后对视频信息进行分帧,对该视频信息中的视频帧通过OpenCV解码并将像素值归一化到[0,1]区间;同时填充视频帧的短边使得视频帧的宽高一致,获得待识别视频信息;然后使得填充较短边的视频帧的宽高一致;视频帧的边长也可调整为32的任意整数倍;然后将该待识别视频信息输入目标检测器进行检测处理,从而得到人体目标检测框;该目标检测器可以为TinyYOLOv4、YOLOv5s、YOLOv5m等;在本申请中,选择YOLOv5s;并且该目标检测器为基于TensorRT构建的网络架构,支持半精度推理与动态batch size;即网络结构为YOLOv5s。
S12:将人体目标检测框中的各个人的图像进行裁剪并归一化尺寸,合并为一批待处理的人体图像;
在本发明具体实施过程中,所述将人体目标检测框中的各个人的图像进行裁剪并归一化尺寸,合并为一批待处理的人体图像,包括:基于所述人体目标检测框裁剪出各个人的图像区域;对裁剪出各个人的图像区域进行填充处理,在填充完成后进行尺寸归一化处理,并合并为一批待处理的人体图像;所述尺寸归一化处理为将填充完成后的图像区域的宽高比归一化在1:2至3:4之间。
具体的,输出的人体目标检测框先按照置信度阈值过滤,然后设定IoU阈值以合并重叠度高的检测框,保留类别为“person”的检测框。因为人体检测框可能没有完全围住人的边缘部位(如手指、脚趾、头发),影响后续的姿态估计,所以对各检测框扩大10-20个像素。最后,依据检测框裁剪出人的图像区域,对该图像作填充、缩放使其尺寸归一化,宽高比在1:2到3:4之间,具体大小可调整为32的任意整数倍。
S13:基于TensorRT的AlphaPose算法对所述一批待处理的人体图像进行人体骨架的关节点提取处理,获得人体骨架的关节点信息,所述关节点信息包括二维坐标和置信度;
在本发明具体实施过程中,所述基于TensorRT的AlphaPose算法对所述一批待处理的人体图像进行人体骨架的关节点提取处理,获得人体骨架的关节点信息,包括:基于TensorRT在AlphaPose算法上进行部署,形成姿态估计模型;将所述一批待处理的人体图像输入所述姿态估计模型中,输出所述一批待处理的人体图像内的人体骨架的关节点的热图;取人体骨架的关节点的热图的最大像素值作为该人体骨架的关节点的置信度,再将人体骨架的关节点的热图的最大像素值的位置变换到对应的视频帧的坐标系中,得到所述人体骨架的关节点的二维坐标。
进一步的,所述姿态估计模型计算所述人体骨架的包围盒,并且所述人体骨架的包围盒的坐标为(xleft,ytop,xright,ybottom)如下:
令所述人体骨架对应的视频帧的左上角为原点,则有:
xleft=min({xj:0≤j<Np});
xright=max({xj:0≤j<Np});
ytop=min({yj:0≤j<Np});
ybottom=max({yj:0≤j<Np});
其中,j表示每个关节点的序号;Np表示关节点类型的数量。
具体的,在进行单人姿态估计中,采用AlphaPose算法实现,在AlphaPose算法模型中,选取ResNet50或ResNet101,一般前者即可满足精度要求。模型基于TensorRT部署,支持动态batch size。目标检测及过滤后输出的行人图像合并为batch输入姿态估计模型。模型对骨架的关节点输出热图,取热图的最大像素值为该关节点的置信度c,再将该像素的位置变换到原帧的坐标系得到该关节点的二维坐标(x,y);由于精度相近及运算开销的原因,本方案省略了原AlphaPose算法中对输出姿态做NMS的操作。之后计算每个骨架的包围盒(xleft,ytop,xright,ybottom)如下,原点在帧的左上角:
xleft=min({xj:0≤j<Np});
xright=max({xj:0≤j<Np});
ytop=min({yj:0≤j<Np});
ybottom=max({yj:0≤j<Np});
其中,j表示每个关节点的序号;Np表示关节点类型的数量。
如MSCOCO包含17种关节点。若发现以下情况将会舍弃该骨架:存在无效值的xj或yj;包围盒的宽xright-xleft,高度ybottom-ytop小于对应的尺寸阈值wmin和hmin;骨架各关节点的平均置信度低于阈值。舍弃骨架的同时也会舍弃对应的检测框位置和裁剪的图像。尽管后续的追踪不使用这里的包围盒位置信息,这一过滤步骤仍非常关键,因为上一步的目标检测可能输出误检的人(例如搭了外套的椅背),导致姿态模型输出的骨架信息非常凌乱、置信率低,过滤后便可避免人的误检和不必要的后续运算。
S14:基于所述人体骨架的关节点信息进行人体目标检测框过滤处理,获得过滤后的人体目标检测框;
在本发明具体实施过程中,所述基于所述人体骨架的关节点信息进行人体目标检测框过滤处理,获得过滤后的人体目标检测框,包括:基于所述人体骨架的关节点信息计算人体骨架包围盒内的所有关节点的平均置信度;判断所述评价置信度是否小于预设置信度,若小于,则过滤所述人体骨架包围盒对应的人体骨架、人体目标检测框,获得过滤后的人体目标检测框。
具体的,对人体骨架重新计算包围盒并获得人体骨架内关节点的平均置信度,若包围盒的宽、高或平均置信度小于阈值,则舍弃骨架数据并过滤对应的目标,从而得到过滤后的人体目标检测框。
S15:将过滤后的人体目标检测框输入具有IBN和Non-local模块的卷积神经网络,输出人体图像特征;
在本发明具体实施过程中,请参阅图4,图4是本发明实施例中的具有IBN和Non-local模块的卷积神经网络的结构组成示意图。
如图4所示,通过具有IBN和Non-local模块的卷积神经网络输出特征向量;该特征向量即为人体图像特征;在图4中,32、64为各层输出的特征图的通道数;新增IBN模块和Non-local模块,对同一人的重识别性能提升达10个基点。其中,IBN模块可显著提升模型在测试数据与训练数据差距较大时的泛化能力,而Non-local模块添加了一种注意力机制。模型基于TensorRT部署,支持动态batch size。由于在训练阶段开启了自动混合精度(AMP)模式,可用半精度推理。输入该模型的行人目标图片较单人姿态估计的会缩小,提速的同时对匹配效果影响较小。
S16:基于所述过滤后的人体目标检测框、过滤后的人体目标检测框对应的人体骨架和人体图像特征在SORT算法分配对应的追踪ID;
在本发明具体实施过程中,所述基于所述过滤后的人体目标检测框、过滤后的人体目标检测框对应的人体骨架和人体图像特征在SORT算法分配对应的追踪ID,包括:基于过滤后的人体目标检测框、过滤后的人体目标检测框对应的人体骨架和人体图像特征将前一帧的跟踪框和当前帧中的人体目标信息进行关联;计算两帧的人体图像特征的余弦距离及过滤后的人体目标检测框的交并比,获得代价矩阵;基于匈牙利算法对所述代价矩阵进行匹配计算,获得跨帧人体目标,并利用卡尔曼滤波器来预测各目标下一帧的位置以确认目标是否处于被追踪状态,在处于被跟踪状态时,分配对应的追踪ID。
具体的,将前一帧中的跟踪框与当前帧中的目标信息进行关联,计算两帧的目标特征的余弦距离还有检测框的交并比,得出代价矩阵,继而通过匈牙利算法得到匹配成功的跨帧目标,利用了卡尔曼滤波器来预测各目标下一帧的位置以确认目标是否处于被追踪状态,并分配对应的追踪ID;在本发明中,对SORT的改进是将大部分矩阵运算改为在GPU上进行,进一步压缩时间。另外,对每个已被追踪的目标采用队列记录其当前帧及过去数帧的骨架数据,作为下一步动作识别的输入,队列容量等于滑动窗口大小。
S17:将每一个追踪ID所记录的人体骨架输入动作识别网络,输出所述人体骨架中的各动作的置信度,并为各个追踪ID选取动作的置信度最高且大于预设阈值的动作类型及对应的目标图像反馈用户端。
在本发明具体实施过程中,所述将每一个追踪ID所记录的人体骨架输入动作识别网络,输出所述人体骨架中的各动作的置信度,包括:在将每一个追踪ID所记录的人体骨架输入动作识别网络之后,在所述动作识别网络内对输入的每一个追踪ID所记录的人体骨架作自适应仿射变换,再由两个或以上的卷积模块提取高维度空间特征,连结经变换的人体骨架的坐标数据后,送入循环神经网络模块提取高维时间特征,输出所述人体骨架中的各动作的置信度。
进一步的,所述在所述动作识别网络内对输入的每一个追踪ID所记录的人体骨架作自适应仿射变换,包括:
其中:X′tjd表示变换后的骨架序列;Xtjd表示变换前的骨架序列;Θt为第t帧的变换参数向量,Θt=[Θt0 Θt1 Θt2 Θt3 Θt4 Θt5]。
具体的,参阅图5-图7;图5是本发明实施例中的动作识别网络的结构组成示意图;图6是本发明实施例中的动作识别网络内的循环神经网络模块的结构组成示意图;图7是本发明实施例中的动作识别网络内的图卷积模块的结构组成示意图。
如图5-图7所示,在图5中,l为序列长度、3即每个关节点的信息(x,y,c)的维度,表示某个被追踪ID的骨架序列、表示为动作类别置信度序列,Nc表示动作类别数量,在实际推理中,对帧数大于1的滑动窗口,一般只取Y的最后一个向量。
首先对X要进行归一化操作,先对所有x,y坐标分别除以视频帧的宽w和高h,然后再按照当前帧的t的最大和最小坐标调整;对于第t帧(0≤t<l)第j个关节点,其x,y坐标分别为Xtj0和Xtj1,预处理如下:
X′tj0=Xtj0/w;
X′tj1=Xtj1/h;
X′t_max=max({Xtjd:0≤j<Np,d∈{0,1}});
X′t_min=min({Xtjd:0≤j<Np,d∈{0,1}});
坐标X″tjd被归一化到[1,1],模型的第一部分,从Spatial Transformer Network(STN)获得启发,本模型提出对关节点坐标作自适应仿射变换,使后续的网络层提取更易于判别的时空特征。令X为归一化后的骨架序列X″,先将X输入一个RNN层,再经过一个全连接层输出二维仿射变换的参数对于第t帧的人体骨架的关节点坐标(Xtj0,Xtj1),仿射变换为:
其中:X′tjd表示变换后的骨架序列;Xtjd表示变换前的骨架序列;Θt为第t帧的变换参数向量,Θt=[Θt0 Θt1 Θt2 Θt3 Θt4 Θt5]。此处不对X的置信度维度(d=2)作变换。为了在训练时让损失更好地收敛,初始化时令X′tj0=Xtj0、X′tj1=Xtj1。因此,Θt0=Θt3=1,其余的Θ元素均为0,这样,此处的全连接层的参数矩阵W初始化为0、偏置(bias)参数b初始化为[1,0,0,1,0,0]。
自适应仿射变换模块的第一层为循环神经网络(RNN)(如图6所示)层,可选择门控循环单元(GRU)或简单循环单元(SRU)作为神经元;先由一个神经元为门控循环单元或简单循环单元的循环神经网络层提取各关节点和特征向量通道的高维时间特征,再经一个全连接层加上Mish或HardSwish激活函数对不同通道的时间特征做关联,最后加入Dropout防止过拟合。图5中的图卷积模块,如图7所示,图卷积模块具有如下图所示的构成,卷积层数量减为一个,加入了对图的边的注意力机制,与骨架图的特征相乘,激活函数替换为Mish或HardSwish,包含了残差连接。
GRU作为长短期记忆(LSTM)神经元的变种,在保留其防止梯度爆炸或消失的优势的同时,参数量、运算量皆降低1/3,更适用于训练样本较少的情况。但GRU未能解决普通RNN无法对时间维度做并行运算的问题,倘若要加入Layer Normalization(相当于卷积神经网络的Batch Normalization)来提高泛化性能,运算速度将大打折扣。简单循环单元神经元,其原理如下:
ft=σ(Wifxt+vf⊙ct-1+bf);
ct=ft⊙ct-1+(1-ft)⊙(Wxxt);
rt=σ(Wirxt+vr⊙ct-1+br);
ht=rt⊙g(ct)+(1-rt)⊙αxxt;
其中,xt为第t帧的输入向量,ht、ct表示第t帧的隐藏状态和单元状态;Wx、Wif、Wir、vf、vr、bf、br为可训练的参数;αx是一个比例因数;σ()表示sigmoid函数,g()表示tanh或恒等函数;⊙表示哈达玛积。将原LSTM/GRU中的矩阵乘法替换为哈达玛积,对时间维度运算的并行效率得以提升,而(1-rt)⊙αxxt这一残差连接有助于梯度下降。参数量方面SRU比GRU少35%,且在使用Layer Normalization后可有效抑制过拟合。不过,在动作识别的准确度上,GRU仍略优于SRU,可按需选其一。
在图卷积模块中,先将仿射变换后的X′转化为邻接矩阵的序列,再通过图卷积模块提取各帧骨架的高维空间特征。图卷积模块的设计参考了ResNet的Basic Block,考虑到时间特征由后续的循环神经网络模块完成,去除了第二个卷积层+BatchNorm+激活函数的组合以降低参数量和运算量。保留的卷积层执行图卷积操作,并加入一种注意力机制:模型可学习骨架图的边的重要性,产生值域[0,1]的掩模,与图的特征相乘来突出判别动作的关键节点或边。另外,激活函数由ReLU替换为:
Mish(x)=x tanh(log(1+ex));
相比ReLU在x=0处不可导,Mish的一阶导数和二阶导数较为平滑,使损失曲面也变得平滑,有利于加快收敛。Mish(x)的值在x<0时不为0,可以解决“dead ReLU”的问题。在本模型中,使用Mish可提升识别准确率2-3个基点。然而,Mish中的指数运算部分开销较大,因此本发明中亦可选择HardSwish,对CPU等硬件更友好,可作为Mish的近似函数,识别性能的下降有限。
RNN层可按需选择SRU或GRU,前者速度较快、参数较少,而后者准确度较高。激活函数可按需选择Mish或HardSwish。Dropout的概率可根据数据分布情况调整,一般为0.1、0.25或0.5。
模型最后的部分为分类器,由一个全连接层与SoftMax函数组成,输出每帧每个动作类别的置信度。在训练阶段,序列中每帧的预测结果都用于计算损失。而在推理时,只保留滑动窗口中最后一帧作为动作预测的输出。
由于动作识别模型涉及到隐藏状态,隐藏状态需与特定的被追踪的ID挂钩,才能分辨不同ID的动作。因此,动作识别模型包含一个隐藏状态池,容量可按场景调整,并通过一个相同容量的队列记录出现过的ID、一个哈希表映射ID与隐藏状态的在池中的索引。当队列已满时,队头的ID出队,同时用新入队的ID更新哈希表的映射,并将对应的隐态重置为0。
在对动作识别网络进行训练过程中,针对动作数据有限、类间不平衡而可能导致模型泛化较差这一核心问题,提出在训练模型的过程中运用以下策略:
去除序列的前后8-15帧,可能存在脏标签的问题。对动作的标签序列平滑化,在one-hot编码中正样本所在索引的置信度设定为90%,其余索引设定为0.1/(Nc-1)×100%。对输入样本X做数据增强,包括:向关节点坐标值添加±10个像素的均匀分布的抖动;向关节点置信度添加±0.05的均匀分布的抖动;对序列的时间维度做随机上采样(插帧)或下采样(去帧)。由普通的Back-propagation Through Time(BPTT)算法改为Truncated BPTT,即不使用整段序列计算梯度再反向传播,而是将序列分为几段,对每段分别做梯度计算和反向传播。这样,模型中的RNN部分能更好地捕捉到关键的短期动态特征。切分后的序列长度也不是相等的,相当于做了某种数据增强。对不同类别的损失按类别的样本数比例乘以权重,且损失函数由普通的交叉熵改为focal loss,可使模型更注意类别较少、较难判别的样本。学习率的调整采用warm-up和余弦退火:初始时由0线性地增加到设定的最大学习率,一般为10-4;经过一定迭代后再以余弦曲线的规律慢慢衰减到所设定的最小学习率,一般为10-6。能增强梯度下降的稳定性。
在本发明实施例中,可有效、精确识别视频中的多个人物的动作并实时反馈。
实施例
请参阅图2,图2是本发明实施例中的针对多人场景的实时动作识别系统的结构组成示意图。
如图2所示,一种针对多人场景的实时动作识别系统,所述系统包括:
检测模块21:用于基于TensorRT的目标检测器对接收到的待识别视频信息进行目标检测处理,获得人体目标检测框;
在本发明具体实施过程中,所述基于TensorRT的目标检测器对接收到的待识别视频信息进行目标检测处理,获得人体目标检测框,包括:接收视频信息,所述视频信息包括用户上传视频信息及监控设备采集到的视频信息;对所述视频信息中的各视频帧基于OpenCV解码并将像素值归一化至[0,1]区间,同时填充视频帧的短边使得视频帧的宽高一致,获得待识别视频信息;基于TensorRT的目标检测器对所述待识别视频信息进行目标检测处理,获得人体目标检测框;所述目标检测器为基于TensorRT构建的网络架构,支持半精度推理与动态batch size;所述网络结构为YOLOv5s。
具体的视频信息可以收各类摄像头(USB、RTSP等)采集到的视频信息,也可以为用户直接从终端上上传的视频信息;然后对视频信息进行分帧,对该视频信息中的视频帧通过OpenCV解码并将像素值归一化到[0,1]区间;同时填充视频帧的短边使得视频帧的宽高一致,获得待识别视频信息;然后使得填充较短边的视频帧的宽高一致;视频帧的边长也可调整为32的任意整数倍;然后将该待识别视频信息输入目标检测器进行检测处理,从而得到人体目标检测框;该目标检测器可以为TinyYOLOv4、YOLOv5s、YOLOv5m等;在本申请中,选择YOLOv5s;并且该目标检测器为基于TensorRT构建的网络架构,支持半精度推理与动态batch size;即网络结构为YOLOv5s。
裁剪归一化模块22:用于将人体目标检测框中的各个人的图像进行裁剪并归一化尺寸,合并为一批待处理的人体图像;
在本发明具体实施过程中,所述将人体目标检测框中的各个人的图像进行裁剪并归一化尺寸,合并为一批待处理的人体图像;,包括:基于所述人体目标检测框裁剪出各个人的图像区域;对裁剪出各个人的图像区域进行填充处理,在填充完成后进行尺寸归一化处理,并合并为一批待处理的人体图像;所述尺寸归一化处理为将填充完成后的图像区域的宽高比归一化在1:2至3:4之间。
具体的,输出的人体目标检测框先按照置信度阈值过滤,然后设定IoU阈值以合并重叠度高的检测框,保留类别为“person”的检测框。因为人体检测框可能没有完全围住人的边缘部位(如手指、脚趾、头发),影响后续的姿态估计,所以对各检测框扩大10-20个像素。最后,依据检测框裁剪出人的图像区域,对该图像作填充、缩放使其尺寸归一化,宽高比在1:2到3:4之间,具体大小可调整为32的任意整数倍。
关节点提取模块23:用于
基于TensorRT的AlphaPose算法对所述一批待处理的人体图像进行人体骨架的关节点提取处理,获得人体骨架的关节点信息,所述关节点信息包括二维坐标和置信度;
在本发明具体实施过程中,所述基于TensorRT的AlphaPose算法对所述一批待处理的人体图像进行人体骨架的关节点提取处理,获得人体骨架的关节点信息,包括:基于TensorRT在AlphaPose算法上进行部署,形成姿态估计模型;将所述一批待处理的人体图像输入所述姿态估计模型中,输出所述一批待处理的人体图像内的人体骨架的关节点的热图;取人体骨架的关节点的热图的最大像素值作为该人体骨架的关节点的置信度,再将人体骨架的关节点的热图的最大像素值的位置变换到对应的视频帧的坐标系中,得到所述人体骨架的关节点的二维坐标。
进一步的,所述姿态估计模型计算所述人体骨架的包围盒,并且所述人体骨架的包围盒的坐标为(xleft,ytop,xright,ybottom)如下:
令所述人体骨架对应的视频帧的左上角为原点,则有:
xleft=min({xj:0≤j<Np});
xright=max({xj:0≤j<Np});
ytop=min({yj:0≤j<Np});
ybottom=max({yj:0≤j<Np});
其中,j表示每个关节点的序号;Np表示关节点类型的数量。
具体的,在进行单人姿态估计中,采用AlphaPose算法实现,在AlphaPose算法模型中,选取ResNet50或ResNet101,一般前者即可满足精度要求。模型基于TensorRT部署,支持动态batch size。目标检测及过滤后输出的行人图像合并为batch输入姿态估计模型。模型对骨架的关节点输出热图,取热图的最大像素值为该关节点的置信度c,再将该像素的位置变换到原帧的坐标系得到该关节点的二维坐标(x,y);由于精度相近及运算开销的原因,本方案省略了原AlphaPose算法中对输出姿态做NMS的操作。之后计算每个骨架的包围盒(xleft,ytop,xright,ybottom)如下,原点在帧的左上角:
xleft=min({xj:0≤j<Np});
xright=max({xj:0≤j<Np});
ytop=min({yj:0≤j<Np});
ybottom=max({yj:0≤j<Np});
其中,j表示每个关节点的序号;Np表示关节点类型的数量。
如MSCOCO包含17种关节点。若发现以下情况将会舍弃该骨架:存在无效值的xj或yj;包围盒的宽xright-xleft,高度ybottom-ytop小于对应的尺寸阈值wmin和hmin;骨架各关节点的平均置信度低于阈值。舍弃骨架的同时也会舍弃对应的检测框位置和裁剪的图像。尽管后续的追踪不使用这里的包围盒位置信息,这一过滤步骤仍非常关键,因为上一步的目标检测可能输出误检的人(例如搭了外套的椅背),导致姿态模型输出的骨架信息非常凌乱、置信率低,过滤后便可避免人的误检和不必要的后续运算。
过滤模块24:用于基于所述人体骨架的关节点信息进行人体目标检测框过滤处理,获得过滤后的人体目标检测框;
在本发明具体实施过程中,所述基于所述人体骨架的关节点信息进行人体目标检测框过滤处理,获得过滤后的人体目标检测框,包括:基于所述人体骨架的关节点信息计算人体骨架包围盒内的所有关节点的平均置信度;判断所述评价置信度是否小于预设置信度,若小于,则过滤所述人体骨架包围盒对应的人体骨架、人体目标检测框,获得过滤后的人体目标检测框。
具体的,对每个人体骨架重新计算包围盒并获得人体骨架内关节点的平均置信度,若包围盒的宽、高或平均置信度小于阈值,则舍弃骨架数据并过滤对应的目标,从而得到过滤后的人体目标检测框。
人体图像特征输出模块25:用于将过滤后的人体目标检测框输入具有IBN和Non-local模块的卷积神经网络,输出人体图像特征;
在本发明具体实施过程中,请参阅图4,图4是本发明实施例中的具有IBN和Non-local模块的卷积神经网络的结构组成示意图。
如图4所示,通过具有IBN和Non-local模块的卷积神经网络输出特征向量;该特征向量即为人体图像特征;在图4中,32、64为各层输出的特征图的通道数;新增BN模块和Non-local模块,对同一人的重识别性能提升达10个基点。其中,IBN模块可显著提升模型在测试数据与训练数据差距较大时的泛化能力,而Non-local模块添加了一种注意力机制。模型基于TensorRT部署,支持动态batch size。由于在训练阶段开启了自动混合精度(AMP)模式,可用半精度推理。输入该模型的行人目标图片较单人姿态估计的会缩小,提速的同时对匹配效果影响较小。
追踪ID分配模块26:用于基于所述过滤后的人体目标检测框、过滤后的人体目标检测框对应的人体骨架和人体图像特征在SORT算法分配对应的追踪ID;
在本发明具体实施过程中,所述基于所述过滤后的人体目标检测框、过滤后的人体目标检测框对应的人体骨架和人体图像特征在SORT算法分配对应的追踪ID,包括:基于过滤后的人体目标检测框、过滤后的人体目标检测框对应的人体骨架和人体图像特征将前一帧的跟踪框和当前帧中的人体目标信息进行关联;计算两帧的人体图像特征的余弦距离及过滤后的人体目标检测框的交并比,获得代价矩阵;基于匈牙利算法对所述代价矩阵进行匹配计算,获得跨帧人体目标,并利用卡尔曼滤波器来预测各目标下一帧的位置以确认目标是否处于被追踪状态,在处于被跟踪状态时,分配对应的追踪ID。
具体的,将前一帧中的跟踪框与当前帧中的目标信息进行关联,计算两帧的目标特征的余弦距离还有检测框的交并比,得出代价矩阵,继而通过匈牙利算法得到匹配成功的跨帧目标,利用了卡尔曼滤波器来预测各目标下一帧的位置以确认目标是否处于被追踪状态,并分配对应的追踪ID;在本发明中,对SORT的改进是将大部分矩阵运算改为在GPU上进行,进一步压缩时间。另外,对每个已被追踪的目标采用队列记录其当前帧及过去数帧的骨架数据,作为下一步动作识别的输入,队列容量等于滑动窗口大小。
动作识别反馈模块27:用于将每一个追踪ID所记录的人体骨架输入动作识别网络,输出所述人体骨架中的各动作的置信度,并为各个追踪ID选取动作的置信度最高且大于预设阈值的动作类型及对应的目标图像反馈用户端。
在本发明具体实施过程中,所述将每一个追踪ID所记录的人体骨架输入动作识别网络,输出所述人体骨架中的各动作的置信度,包括:在将每一个追踪ID所记录的人体骨架输入动作识别网络之后,在所述动作识别网络内对输入的每一个追踪ID所记录的人体骨架作自适应仿射变换,再由两个或以上的卷积模块提取高维度空间特征,连结经变换的人体骨架的坐标数据后,送入循环神经网络模块提取高维时间特征,输出所述人体骨架中的各动作的置信度。
进一步的,所述在所述动作识别网络内对输入的每一个追踪ID所记录的人体骨架作自适应仿射变换,包括:
其中:X′tjd表示变换后的骨架序列;Xtjd表示变换前的骨架序列;Θt为第t帧的变换参数向量,Θt=[Θt0 Θt1 Θt2 Θt3 Θt4 Θt5]。
具体的,参阅图5-图7;图5是本发明实施例中的动作识别网络的结构组成示意图;图6是本发明实施例中的动作识别网络内的循环神经网络模块的结构组成示意图;图7是本发明实施例中的动作识别网络内的图卷积模块的结构组成示意图。
如图5-图7所示,在图5中,l为序列长度、3即每个关节点的信息(x,y,c)的维度,表示某个被追踪ID的骨架序列、表示为动作类别置信度序列,Nc表示动作类别数量,在实际推理中,对帧数大于1的滑动窗口,一般只取Y的最后一个向量。
首先对X要进行归一化操作,先对所有x,y坐标分别除以视频帧的宽w和高h,然后再按照当前帧的t的最大和最小坐标调整;对于第t帧(0≤t<l)第j个关节点,其x,y坐标分别为Xtj0和Xtj1,预处理如下:
X′tj0=Xtj0/w;
X′tj1=Xtj1/h;
X′t_max=max({Xtjd:0≤j<Np,d∈{0,1}});
X′t_min=min({Xtjd:0≤j<Np,d∈{0,1}});
坐标X″tjd被归一化到[1,1],模型的第一部分,从Spatial Transformer Network(STN)获得启发,本模型提出对关节点坐标作自适应仿射变换,使后续的网络层提取更易于判别的时空特征。令X为归一化后的骨架序列X″,先将X输入一个RNN层,再经过一个全连接层输出二维仿射变换的参数对于第t帧的人体骨架的关节点坐标(Xtj0,Xtj1),仿射变换为:
此处不对X的置信度维度(d=2)作变换。为了在训练时让损失更好地收敛,初始化时令X′tj0=Xtj0、X′tj1=Xtj1因此,Θt0=Θt3=1,其余的Θ元素均为0,这样,此处的全连接层的参数矩阵W初始化为0、偏置(bias)参数b初始化为[1,0,0,1,0,0];其中:X′tjd表示变换后的骨架序列;Xtjd表示变换前的骨架序列;Θt为第t帧的变换参数向量,Θt=[Θt0 Θt1Θt2 Θt3 Θt4 Θt5]。
自适应仿射变换模块的第一层为循环神经网络(RNN)(如图6所示)层,可选择门控循环单元(GRU)或简单循环单元(SRU)作为神经元;先由一个神经元为门控循环单元或简单循环单元的循环神经网络层提取各关节点和特征向量通道的高维时间特征,再经一个全连接层加上Mish或HardSwish激活函数对不同通道的时间特征做关联,最后加入Dropout防止过拟合。图5中的图卷积模块,如图7所示,图卷积模块具有如下图所示的构成,卷积层数量减为一个,加入了对图的边的注意力机制,与骨架图的特征相乘,激活函数替换为Mish或HardSwish,包含了残差连接。
GRU作为长短期记忆(LSTM)神经元的变种,在保留其防止梯度爆炸或消失的优势的同时,参数量、运算量皆降低1/3,更适用于训练样本较少的情况。但GRU未能解决普通RNN无法对时间维度做并行运算的问题,倘若要加入Layer Normalization(相当于卷积神经网络的Batch Normalization)来提高泛化性能,运算速度将大打折扣。简单循环单元神经元,其原理如下:
ft=σ(Wifxt+vf⊙ct-1+bf);
ct=ft⊙ct-1+(1-ft)⊙(Wxxt);
rt=σ(Wirxt+vr⊙ct-1+br);
ht=rt⊙g(ct)+(1-rt)⊙αxxt;
其中,xt为第t帧的输入向量,ht、ct表示第t帧的隐藏状态和单元状态;Wx、Wif、Wir、vf、vr、bf、br为可训练的参数;αx是一个比例因数;σ()表示sigmoid函数,g()表示tanh或恒等函数;⊙表示哈达玛积。将原LSTM/GRU中的矩阵乘法替换为哈达玛积,对时间维度运算的并行效率得以提升,而(1-rt)⊙αxxt这一残差连接有助于梯度下降。参数量方面SRU比GRU少35%,且在使用Layer Normalization后可有效抑制过拟合。不过,在动作识别的准确度上,GRU仍略优于SRU,可按需选其一。
在图卷积模块中,先将仿射变换后的X′转化为邻接矩阵的序列,再通过图卷积模块提取各帧骨架的高维空间特征。图卷积模块的设计参考了ResNet的Basic Block,考虑到时间特征由后续的循环神经网络模块完成,去除了第二个卷积层+BatchNorm+激活函数的组合以降低参数量和运算量。保留的卷积层执行图卷积操作,并加入一种注意力机制:模型可学习骨架图的边的重要性,产生值域[0,1]的掩模,与图的特征相乘来突出判别动作的关键节点或边。另外,激活函数由ReLU替换为:
Mish(x)=x tanh(log(1+ex));
相比ReLU在x=0处不可导,Mish的一阶导数和二阶导数较为平滑,使损失曲面也变得平滑,有利于加快收敛。Mish(x)的值在x<0时不为0,可以解决“dead ReLU”的问题。在本模型中,使用Mish可提升识别准确率2-3个基点。然而,Mish中的指数运算部分开销较大,因此本发明中亦可选择HardSwish,对CPU等硬件更友好,可作为Mish的近似函数,识别性能的下降有限。
RNN层可按需选择SRU或GRU,前者速度较快、参数较少,而后者准确度较高。激活函数可按需选择Mish或HardSwish。Dropout的概率可根据数据分布情况调整,一般为0.1、0.25或0.5。
模型最后的部分为分类器,由一个全连接层与SoftMax函数组成,输出每帧每个动作类别的置信度。在训练阶段,序列中每帧的预测结果都用于计算损失。而在推理时,只保留滑动窗口中最后一帧作为动作预测的输出。
由于动作识别模型涉及到隐藏状态,隐藏状态需与特定的被追踪的ID挂钩,才能分辨不同ID的动作。因此,动作识别模型包含一个隐藏状态池,容量可按场景调整,并通过一个相同容量的队列记录出现过的ID、一个哈希表映射ID与隐藏状态的在池中的索引。当队列已满时,队头的ID出队,同时用新入队的ID更新哈希表的映射,并将对应的隐态重置为0。
在对动作识别网络进行训练过程中,针对动作数据有限、类间不平衡而可能导致模型泛化较差这一核心问题,提出在训练模型的过程中运用以下策略:
去除序列的前后8-15帧,可能存在脏标签的问题。对动作的标签序列平滑化,在one-hot编码中正样本所在索引的置信度设定为90%,其余索引设定为0.1/(Nc-1)×100%。对输入样本X做数据增强,包括:向关节点坐标值添加±10个像素的均匀分布的抖动;向关节点置信度添加±0.05的均匀分布的抖动;对序列的时间维度做随机上采样(插帧)或下采样(去帧)。由普通的Back-propagation Through Time(BPTT)算法改为Truncated BPTT,即不使用整段序列计算梯度再反向传播,而是将序列分为几段,对每段分别做梯度计算和反向传播。这样,模型中的RNN部分能更好地捕捉到关键的短期动态特征。切分后的序列长度也不是相等的,相当于做了某种数据增强。对不同类别的损失按类别的样本数比例乘以权重,且损失函数由普通的交叉熵改为focal loss,可使模型更注意类别较少、较难判别的样本。学习率的调整采用warm-up和余弦退火:初始时由0线性地增加到设定的最大学习率,一般为10-4;经过一定迭代后再以余弦曲线的规律慢慢衰减到所设定的最小学习率,一般为10-6。能增强梯度下降的稳定性。
在本发明实施例中,可有效、精确识别视频中的多个人物的动作并实时反馈。
实施例
请参阅图3,图3是本发明实施例中的针对多人场景的实时动作识别系统的另一结构组成示意图。
如图3所示,一种针对多人场景的实时动作识别系统,所述系统包括:客户端和服务器;具体的如下:
首先,系统的输入为各类摄像头(USB、RTSP等)的视频流,或从客户端上传的视频由后端读取;视频帧通过OpenCV解码并将像素值归一化到[0,1]区间;基于TensorRT的目标检测器(如YOLOv5s)返回检测框,经过第一次置信度过滤、非极大值抑制(NMS)后得到人的目标;将各个人的图像裁剪出来,尺寸归一化后合并为batch送入基于TensorRT的AlphaPose算法提取关节点,关节点的信息为二维坐标和置信度;对每个骨架重新计算包围盒并获取骨架内关节点的平均置信度,若包围盒的宽、高或平均置信度小于阈值,则舍弃骨架数据并过滤对应的目标;将合格的目标人图像送入特征提取器,通过具有IBN和Non-local模块的卷积神经网络输出特征向量;将各个人的骨架、检测框位置、目标人特征输入SORT算法,匹配当前帧与上一帧的检测框的交并比(IoU)以及目标人特征的余弦距离等信息,分配追踪ID;每帧都对各个已被追踪的ID所记录的骨架数据分别输入动作识别网络,得到各动作的置信度;最后,为各ID选取置信度最高且大于阈值的动作类型及其之前检测的目标图,返回客户端,客户端可以是警报系统等装置,在发现异常行为如挥手求救、摔倒、暴力等时便可立即响应。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
另外,以上对本发明实施例所提供的一种针对多人场景的实时动作识别方法及系统进行了详细介绍,本文中应采用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种针对多人场景的实时动作识别方法,其特征在于,所述方法包括:
基于TensorRT的目标检测器对接收到的待识别视频信息进行目标检测处理,获得人体目标检测框;
将人体目标检测框中的各个人的图像进行裁剪并归一化尺寸,合并为一批待处理的人体图像;
基于TensorRT的AlphaPose算法对所述一批待处理的人体图像进行人体骨架的关节点提取处理,获得人体骨架的关节点信息,所述关节点信息包括二维坐标和置信度;
基于所述人体骨架的关节点信息进行人体目标检测框过滤处理,获得过滤后的人体目标检测框;
将过滤后的人体目标检测框输入具有IBN和Non-local模块的卷积神经网络,输出人体图像特征;
基于所述过滤后的人体目标检测框、过滤后的人体目标检测框对应的人体骨架和人体图像特征在SORT算法分配对应的追踪ID;
将每一个追踪ID所记录的人体骨架输入动作识别网络,输出所述人体骨架中的各动作的置信度,并为各个追踪ID选取动作的置信度最高且大于预设阈值的动作类型及对应的目标图像反馈用户端;
所述将每一个追踪ID所记录的人体骨架输入动作识别网络,输出所述人体骨架中的各动作的置信度,包括:
在将每一个追踪ID所记录的人体骨架输入动作识别网络之后,在所述动作识别网络内对输入的每一个追踪ID所记录的人体骨架作自适应仿射变换,再由两个或以上的卷积模块提取高维度空间特征,连结经变换的人体骨架的坐标数据后,送入循环神经网络模块提取高维时间特征,输出所述人体骨架中的各动作的置信度;
所述在所述动作识别网络内对输入的每一个追踪ID所记录的人体骨架作自适应仿射变换,包括:
在所述动作识别网络内对输入的每一个追踪ID所记录的人体骨架作自适应仿射变换时,l表示序列长度;Np表示关节点类型的数量;
参数由循环神经网络模块叠加一个全连接层产生;变换方程如下:
其中:X′tjd表示变换后的骨架序列;Xtjd表示变换前的骨架序列;Θt为第t帧的变换参数向量,Θt=[Θt0 Θt1 Θt2 Θt3 Θt4 Θt5]。
2.根据权利要求1所述的实时动作识别方法,其特征在于,所述基于TensorRT的目标检测器对接收到的待识别视频信息进行目标检测处理,获得人体目标检测框,包括:
接收视频信息,所述视频信息包括用户上传的视频信息及监控设备采集到的视频信息;
对所述视频信息中的各视频帧基于OpenCV解码并将像素值归一化至[0,1]区间,同时填充视频帧的较短边使得视频帧的宽高一致,获得待识别视频信息;
基于TensorRT的目标检测器对所述待识别视频信息进行目标检测处理,获得人体目标检测框;
所述目标检测器为基于TensorRT构建的网络架构,支持半精度推理与动态batchsize;所述网络结构为YOLOv5s。
3.根据权利要求1所述的实时动作识别方法,其特征在于,所述将人体目标检测框中的各个人的图像进行裁剪,并将裁剪结果进行尺寸归一化后合并为一批待处理的人体图像,包括:
基于所述人体目标检测框裁剪出各个人的图像区域;
对裁剪出各个人的图像区域进行填充处理,在填充完成后进行尺寸归一化处理,并合并为一批待处理的人体图像;
所述尺寸归一化处理为将填充完成后的图像区域的宽高比归一化在1:2至3:4之间。
4.根据权利要求1所述的实时动作识别方法,其特征在于,所述基于TensorRT的AlphaPose算法对所述一批待处理的人体图像进行人体骨架的关节点提取处理,获得人体骨架的关节点信息,包括:
基于TensorRT在AlphaPose算法上进行部署,形成姿态估计模型;
将所述一批待处理的人体图像输入所述姿态估计模型中,输出所述一批待处理的人体图像内的人体骨架的关节点的热图;
取人体骨架的关节点的热图的最大像素值作为该人体骨架的关节点的置信度,再将人体骨架的关节点的热图的最大像素值的位置变换到对应的视频帧的坐标系中,得到所述人体骨架的关节点的二维坐标。
5.根据权利要求4所述的实时动作识别方法,其特征在于,所述姿态估计模型计算所述人体骨架的包围盒,并且所述人体骨架的包围盒的坐标为(xleft,ytop,xright,ybottom)如下:
令所述人体骨架对应的视频帧的左上角为原点,则有:
xleft=min({xj:0≤j<Np});
xright=max({xj:0≤j<Np});
ytop=min({yj:0≤j<Np});
ybottom=max({yj:0≤j<Np});
其中,j表示每个关节点的序号;Np表示关节点类型的数量。
6.根据权利要求1所述的实时动作识别方法,其特征在于,所述基于所述人体骨架的关节点信息进行人体目标检测框过滤处理,获得过滤后的人体目标检测框,包括:
基于所述人体骨架的关节点信息计算人体骨架包围盒内的所有关节点的平均置信度;
判断所述平均置信度是否小于预设置信度,若小于,则过滤所述人体骨架包围盒对应的人体骨架、人体目标检测框,获得过滤后的人体目标检测框。
7.根据权利要求1所述的实时动作识别方法,其特征在于,所述基于所述过滤后的人体目标检测框、过滤后的人体目标检测框对应的人体骨架和人体图像特征在SORT算法分配对应的追踪ID,包括:
基于过滤后的人体目标检测框、过滤后的人体目标检测框对应的人体骨架和人体图像特征将前一帧的跟踪框和当前帧中的人体目标信息进行关联;
计算两帧的人体图像特征的余弦距离及过滤后的人体目标检测框的交并比,获得代价矩阵;
基于匈牙利算法对所述代价矩阵进行匹配计算,获得跨帧人体目标,并利用卡尔曼滤波器来预测各目标下一帧的位置以确认目标是否处于被追踪状态,在处于被跟踪状态时,分配对应的追踪ID。
8.一种针对多人场景的实时动作识别系统,其特征在于,所述系统包括:
检测模块:用于基于TensorRT的目标检测器对接收到的待识别视频信息进行目标检测处理,获得人体目标检测框;
裁剪归一化模块:用于将人体目标检测框中的各个人的图像进行裁剪并归一化尺寸,合并为一批待处理的人体图像;
关节点提取模块:用于基于TensorRT的AlphaPose算法对所述一批待处理的人体图像进行人体骨架的关节点提取处理,获得人体骨架的关节点信息,所述关节点信息包括二维坐标和置信度;
过滤模块:用于基于所述人体骨架的关节点信息进行人体目标检测框过滤处理,获得过滤后的人体目标检测框;
人体图像特征输出模块:用于将过滤后的人体目标检测框输入具有IBN和Non-local模块的卷积神经网络,输出人体图像特征;
追踪ID分配模块:用于基于所述过滤后的人体目标检测框、过滤后的人体目标检测框对应的人体骨架和人体图像特征在SORT算法分配对应的追踪ID;
动作识别反馈模块:用于将每一个追踪ID所记录的人体骨架输入动作识别网络,输出所述人体骨架中的各动作的置信度,并为各个追踪ID选取动作的置信度最高且大于预设阈值的动作类型及对应的目标图像反馈用户端;
所述将每一个追踪ID所记录的人体骨架输入动作识别网络,输出所述人体骨架中的各动作的置信度,包括:
在将每一个追踪ID所记录的人体骨架输入动作识别网络之后,在所述动作识别网络内对输入的每一个追踪ID所记录的人体骨架作自适应仿射变换,再由两个或以上的卷积模块提取高维度空间特征,连结经变换的人体骨架的坐标数据后,送入循环神经网络模块提取高维时间特征,输出所述人体骨架中的各动作的置信度;
所述在所述动作识别网络内对输入的每一个追踪ID所记录的人体骨架作自适应仿射变换,包括:
在所述动作识别网络内对输入的每一个追踪ID所记录的人体骨架作自适应仿射变换时,l表示序列长度;Np表示关节点类型的数量;
参数由循环神经网络模块叠加一个全连接层产生;变换方程如下:
其中:X′tjd表示变换后的骨架序列;Xtjd表示变换前的骨架序列;Θt为第t帧的变换参数向量,Θt=[Θt0 Θt1 Θt2 Θt3 Θt4 Θt5]。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110174914.XA CN112906545B (zh) | 2021-02-07 | 2021-02-07 | 一种针对多人场景的实时动作识别方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110174914.XA CN112906545B (zh) | 2021-02-07 | 2021-02-07 | 一种针对多人场景的实时动作识别方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112906545A CN112906545A (zh) | 2021-06-04 |
CN112906545B true CN112906545B (zh) | 2023-05-05 |
Family
ID=76122885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110174914.XA Active CN112906545B (zh) | 2021-02-07 | 2021-02-07 | 一种针对多人场景的实时动作识别方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112906545B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113780176B (zh) * | 2021-09-10 | 2023-08-25 | 平安科技(深圳)有限公司 | 局部遮挡对象识别方法、装置、设备及存储介质 |
CN113989626B (zh) * | 2021-12-27 | 2022-04-05 | 北京文安智能技术股份有限公司 | 一种基于目标检测模型的多类别垃圾场景区分方法 |
CN114735165B (zh) * | 2022-03-08 | 2023-02-07 | 三峡大学 | 智能水下救生系统及溺水检测、救援方法 |
CN114560059B (zh) * | 2022-03-08 | 2023-02-03 | 三峡大学 | 水下救生机器人及救援方法 |
CN114494357B (zh) * | 2022-04-07 | 2022-07-12 | 长沙海信智能系统研究院有限公司 | 目标跟踪方法及其装置、设备、可读存储介质、程序产品 |
CN115798055B (zh) * | 2023-02-10 | 2023-04-28 | 四川大学 | 一种基于cornersort跟踪算法的暴力行为检测方法 |
CN116665308B (zh) * | 2023-06-21 | 2024-01-23 | 石家庄铁道大学 | 双人交互时空特征提取方法 |
CN118015049A (zh) * | 2024-04-09 | 2024-05-10 | 湖南大学 | 一种结合yolo和gcn的海上目标追踪方法及其模型 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2020100371A4 (en) * | 2020-03-12 | 2020-04-16 | Jilin University | Hierarchical multi-object tracking method based on saliency detection |
CN111914639A (zh) * | 2020-06-30 | 2020-11-10 | 吴�荣 | 轻量级卷积时空简单循环单元模型的驾驶动作识别方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107330920B (zh) * | 2017-06-28 | 2020-01-03 | 华中科技大学 | 一种基于深度学习的监控视频多目标追踪方法 |
CN109117701B (zh) * | 2018-06-05 | 2022-01-28 | 东南大学 | 基于图卷积的行人意图识别方法 |
CN110147743B (zh) * | 2019-05-08 | 2021-08-06 | 中国石油大学(华东) | 一种复杂场景下的实时在线行人分析与计数系统及方法 |
CN110378259A (zh) * | 2019-07-05 | 2019-10-25 | 桂林电子科技大学 | 一种面向监控视频的多目标行为识别方法及系统 |
CN110532852B (zh) * | 2019-07-09 | 2022-10-18 | 长沙理工大学 | 基于深度学习的地铁站行人异常事件检测方法 |
CN111368770B (zh) * | 2020-03-11 | 2022-06-07 | 桂林理工大学 | 基于骨骼点检测与跟踪的手势识别方法 |
CN111862044A (zh) * | 2020-07-21 | 2020-10-30 | 长沙大端信息科技有限公司 | 超声图像处理方法、装置、计算机设备和存储介质 |
-
2021
- 2021-02-07 CN CN202110174914.XA patent/CN112906545B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2020100371A4 (en) * | 2020-03-12 | 2020-04-16 | Jilin University | Hierarchical multi-object tracking method based on saliency detection |
CN111914639A (zh) * | 2020-06-30 | 2020-11-10 | 吴�荣 | 轻量级卷积时空简单循环单元模型的驾驶动作识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112906545A (zh) | 2021-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112906545B (zh) | 一种针对多人场景的实时动作识别方法及系统 | |
US11657525B2 (en) | Extracting information from images | |
US11281921B2 (en) | Anti-spoofing | |
Pavani et al. | Haar-like features with optimally weighted rectangles for rapid object detection | |
US8855363B2 (en) | Efficient method for tracking people | |
CN111723611A (zh) | 行人再识别方法、装置及存储介质 | |
Anila et al. | Simple and fast face detection system based on edges | |
CN113963032A (zh) | 一种融合目标重识别的孪生网络结构目标跟踪方法 | |
US20110182497A1 (en) | Cascade structure for classifying objects in an image | |
CN111539351A (zh) | 一种多任务级联的人脸选帧比对方法 | |
Berlin et al. | Light weight convolutional models with spiking neural network based human action recognition | |
Begampure et al. | Intelligent video analytics for human action detection: a deep learning approach with transfer learning | |
Yadav et al. | DroneAttention: Sparse weighted temporal attention for drone-camera based activity recognition | |
Hoang et al. | Action recognition based on sequential 2D-CNN for surveillance systems | |
Ahmed et al. | Two person interaction recognition based on effective hybrid learning | |
Rashidan et al. | Moving object detection and classification using Neuro-Fuzzy approach | |
de Oliveira et al. | A fast eye localization and verification method to improve face matching in surveillance videos | |
CN114495151A (zh) | 一种群组行为识别方法 | |
Olaniyi et al. | Intelligent Video Surveillance Systems: A Survey | |
Srinivasan | Analysis of Gait Biometric in the frequency domain | |
Polla et al. | Action recognition from low-resolution infrared sensor for indoor use: a comparative study between deep learning and classical approaches | |
Dong et al. | Foreground detection with simultaneous dictionary learning and historical pixel maintenance | |
Basly et al. | Lahar-CNN: human activity recognition from one image using convolutional neural network learning approach | |
Tang et al. | A head gesture recognition algorithm | |
Kim et al. | Face detection for low power event detection in intelligent surveillance system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |