APP下载

基于骨骼关键点的异常行为识别及异构平台部署

2021-11-25杨志芳

自动化与仪表 2021年11期
关键词:关键点部署准确率

杨志芳,李 乾

(武汉工程大学 电气信息学院,武汉430205)

随着监控设备的普及,社会的治安管理越来越依赖于视频图像的辨识,计算机视觉因此成为了一个备受关注的领域。随着在行为监控、异常行为监测、老人智能看护、体育比赛等方面的人体行为识别的需求日益增加,对人体行为进行准确,快速的识别尤为重要[1-2]。目前行为识别方法主要分为基于传统特征标注的方法和基于深度学习的方法,传统方法使用受限于特征向量的提取和编码过程中会产生较高的时空复杂度,对算法性能影响极大。而基于深度学习的方法主要分为2D CNN 和3D CNN网络,3D CNN 网络对于图像采集设备要求过高,不适合实际的监控设备部署[3]。目前研究人员大多基于目标检测来进行多人行为识别的建模和研究,文献[4]提出了一种改进的运动历史图和基于能量块的二维高斯滤波器的方法对人体的动作信息进行特征提取;文献[5]提出了一种新的局部聚集描述符的时空向量方法。以上方法其难点在于由于无法准确判断图像中的人数,不能提取出有效的特征,最终导致行为识别准确率不高。本文针对以上方法存在的问题,提出了一种基于骨骼关键点的异常行为识别方法,该方法结合姿态估计、运动特征描述和行为分类来进行异常行为识别,有效提高了准确率,本文算法在公开数据集上得到了较好的实验结果。

1 程序流程分析

基于骨骼关键点的异常行为检测程序框图如图1 所示,其中包括图像预处理模块,关键点检测模块,运动特征描述模块,行为分类模块。

图1 程序流程Fig.1 Procedure flow chart

图像预处理模块将输入视频进行由视频到图像的转换,采用25 帧每秒的标准进行提取。提取的图片进行行为类别标注后分为训练集和测试集。将图片传入关键点检测模块,模块采用AS 模型进行关键点的提取。将模型返回的数据进行坐标计算,得出关键点坐标传入运动特征描述模块进行运动特征矩阵的计算,将计算得出的运动描述矩阵作为运动特征传入行为分析模块,使用SVM 分类器进行行为分类。

1.1 模型介绍

本文采用AS 模型[6]来进行人体关键点检测,该模型通过使用关联嵌入与堆叠沙漏网络集成在一起,为每个身体关节生成检测热图和标记热图,然后将具有相似标签的身体关节分组到个人身上,通过高维空间的向量来编码不同人体的不同关键点之间的关系,即同一个人的不同关键点在空间上是尽可能接近的,不同人的不同关键点在空间上是尽可能远离的,最后可以通过2 个关键点在高维空间上的距离来判断2 个关键点是否属于同一个人,从而达到聚类的目的。在COCO 数据集进行训练,得到的17 个关键点坐标信息,将提取的关键点坐标采用NO0 到NO16 进行标记,如图2 所示。

图2 关键点位置示意图Fig.2 Schematic diagram of key points

1.2 运动特征提取

对于行为特征的描述采用传统的目标外接矩阵的长宽比、重心坐标等方法进行衡量,需要对关键点坐标进行归一化处理来消除模型得到的关键点位置坐标受相机位置、 图像分辨率等因素的影响,但归一化的方法实现起来难度较大,且判断结果受影响较大,也无法充分利用关键点坐标信息。本文提出一种新的运动特征提取方法,经过对各种行为过程中的关键点之间的数据分析,本文采用两手腕与肩部形成的向量与躯干向量的夹角角速度,两脚腕与膝盖形成的向量与躯干向量的夹角角速度,肘弯曲部分角速度,腿弯曲部分角速度这4 个角速度的变化来描述人体运动,计算公式如式(1)~式(3):

式中:ΔX 为两点X 坐标的差值;ΔY 为两点Y 坐标的差值;a tan 2 为计算反正切弧度值;计算角速度v 时需要进行象限约束,将角度的值约束在(0°,180°)。

对于行为的描述采用目标检测的方法大多只能反映当前帧的运动情况,加入时间轴描述信息会大大增加计算量导致运行缓慢,本文基于骨骼关键描述运动特征,提出将每一帧中的每个对象的运动特征用一个向量进行描述,提取该描述对象10 帧内行为的动作描述组成一个特征矩阵来描述行为,这样可以更好的利用数据,使描述更加可靠。式(4)为一帧的向量e,然后将10 帧的向量合成特征描述矩阵F,如式(5)所示:

1.3 分类器设计

本文采用SVM 进行分类,SVM 是一种典型的二类器,本文采用“一对一”方法训练多个SVM 分类器进行行为分类,对N 个分类通过构建n(n-1)/2个支持向量机,每个支持向量机训练2 种不同类别的数据,最后分类的时候采取“投票”的方式决定分类结果。把选取的12 类异常行为各截取数据3000帧,形成300 的样本,总计3600 样本作为训练集进行训练,采用SMO 方法进行优化训练。

2 异构平台部署

用传统的CPU 进行关键点检测计算时间太长,无法达到实时处理的要求。考虑到GPU 在体积和功耗方面对模型部署存在问题。本文提出使用CPU+FPGA 对卷积神经网络模型进行异构并行加速处理。训练好的卷积神经网络模型需要进行大量的运算,使本文首先对训练好的卷积神经网络模型进行优化处理,然后使用FPGA 设计加速器来对优化后的卷积神经网络模型进行异构加速处理,提高卷积神经网络的运算速度。

本项目最终部署平台为Intel 亚洲研究院推出的异构可扩展开放平台(Heterogeneous Extension Robot Platform,HERO),其尺寸外观和内部结构如图3 所示。OpenVINO 工具包包含了OpenCV 库、OpenVX 库以及Intel OpenCL 运行环境等多种工具组件,支持使用C/C++以及Python 语言进行项目开发,能够对训练好的模型进行模型优化并调用Intel的多种加速设备(GPU、FPGA 和VPU)进行加速。

图3 HERO 工具Fig.3 HERO tool

模型优化是OpenVINO 工具的核心部分,其具体流程如图4 所示。对于训练好的模型,首先转换成onnx 模型,然后调用模型优化器进行优化,将训练好的模型onnx 转化为包含网络权重的.bin 文件和包含网络拓扑结构的.xml 文件的中间模型文件。最后调用FPGA 进行加速,根据得出结果计算关键点坐标,使用关键点坐标进行特征矩阵的计算,最后送入训练好的SVM 分类器进行行为分类。

图4 FPGA 模型部署流程Fig.4 FPGA model deployment flow chart

3 实验结果及分析

3.1 实验环境

实验所配置的硬件环境如表1 所示。

表1 硬件平台Tab.1 Hardware platform

3.2 骨骼关键点检测

为了验证本文的准确度,在数据集HMDB51 上选取殴打、击剑等12 类异常行为训练进行测试,选取KTH 数据集跑、 走等6 类常见行为进行训练测试。在不同分辨率的输入图片中均能较好地检测到人体关键点,检测效果图如图5 所示。

图5 模型关键点检测Fig.5 Model key point detection

从图中可以看到as 模型可以在不同分辨率的图片中准确地检测出人体关键点,为后续提取二次特征提供了可靠的依据。为了验证本文的算法在准确率方面的优势,选取HMDB51 的12 类异常行为和KTH 中的常见行为进行测试,对比文献[7],文献[8],文献[9]和文献[10]。结果如表2 所示,本文在准确率上有较大提升。

表2 各数据集检测结果Tab.2 Test results of each data set

3.3 部署对比实验

为了探究FPGA 对CPU 的加速及各平台部署效果,本文在HMDB51 数据集进行测试,分别在CPU1、CPU1+FPGA 及CPU2+GPU 三种平台上运行算法进行对比实验。实验对比了算法模型在CPU 与CPU+GPU 以及CPU+FPGA 端上各自的检测精度、功耗、帧率。计算了不同平台的能效比,结果如表3所示。

由表3 中可以看出,采用CPU+FPGA 的方案,可以大大加速模型的运行时间达到了32 FPS 的速度,而且准确率不会有较大的损失。虽然CPU+GPU的部署方案可以获得更高的速度和帧率,但是在部署体积,特别是能效比方面,本文提出CPU+FPGA的部署方案更具备价值。

表3 不同平台功耗对比Tab.3 Energy consumption ratio of each platform

4 结语

本文提出的基于关键点的异常行为识别解决了目前异常行为识别领域检测精度不足、检测速度慢的缺点。对于存在模型部署困难的问题,本文提出CPU+FPGA 的部署方案,在模型速度和准确率还是能效比方面有较好的平衡。

本文采用的关键点检测方案由于缺少三维深度信息,下一阶段计划引入深度信息估计进行补充。

猜你喜欢

关键点部署准确率
聚焦金属关键点
一种基于Kubernetes的Web应用部署与配置系统
肉兔育肥抓好七个关键点
晋城:安排部署 统防统治
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
部署
高速公路车牌识别标识站准确率验证法
部署“萨德”意欲何为?