APP下载

基于BP回归神经网络的人体角度拟合研究①

2019-08-22王景中

计算机系统应用 2019年8期
关键词:骨骼卷积神经网络

王景中, 胡 凯

(北方工业大学 计算机学院,北京 100144)

1 引言

人体动作识别存在着广泛应用,比如视频监控、客户的属性分析、行为分析. 比较流行的人体动作识别方法,主要分为两种,一种基于卷积神经网络.2013年余凯提出3D卷积神经网[1,2],其通过将连续的7帧60×40图像数据送入卷积神经网络中进行训练,通过将卷积核提取的特征进行堆叠形成3D卷积核,进而实现人体行为识别. 2014年由Karen Simonyan等人提出双流卷积神经网络[3,4],结合VGGnet、GOOGLEnet等深度学习模型对视频中人的连续动作提取光流特征,再将光流特征与原始图像送入卷积神经网络中进行训练,从而实现动作识别. 2018年由 Zisserman A等人提出的I3D[5]模型是将上述两种放法进行结合. 另外一种方法为基于深度摄像机[6,7],它除了能提供人体的骨骼特征之外,还能够提供人体的相对深度信息,即输出的数据为(x,y,z),分别代表骨骼点在图像中的坐标及深度信息,然后结合支持向量机(SVM)[6]、隐马尔可夫模型(HMM)[7,8]等机器学习方法既可以对人体的动作进行有效识别.

虽然上述方法均能实现对人体动作的识别,但是其应用也有一定的局限性. 基于卷积神经网络的识别方法,只能对动作进行分类,不能给出人体姿态的其它相关信息; 对于训练数据和被识别数据必须是由连续动作组成的图像,当动作不连续时,则不能进行有效分析. 基于深度摄像机的识别方法,虽然能较好的完成人体动作识别,但对视频中快变场景或者静态图像无法完成人体动作识别.

本文中分析对象为普通视频中人的动作,视频中图像的特点为场景变化快、图像中的人物动作多变且不连续. 通过以上分析可以看出,上述方法均不能应用于这种应用场景.

近年来,随着人体姿态估计方法不断发展,其已经具有很高的识别精度. 2016年由卡内基梅隆大学Cao Z、Simon T等人提出的openpose框架[9,10],其使用卷积神经网络和PAF算法实现人体姿态估计. 另外,2017年由上海交通大学卢策吾等人提出RMPE框架[11],其使用对称空间变换网络(SSTN)、参数非最大化抑制(PNMS)等方法实现对多人人体骨骼框架的提取. 本文中定义被拟合角度的坐标空间后,利用openpose框架提取出人体骨骼特征数据,经过数据重构、预处理及增加肢体相关的先验信息,生成10个与人体角度相关的数据集. 使用基于“径向基核(RBF)”的SVR[12]回归模型作为基线,与BP神经网络的回归[13,14]结果做比较.另外通过主成分分析(PCA)[15,16]方法计算标准数据集和增维后数据集特征值,通过特征值的方差证明增维数据的有效性. 通过分析实验结果,使用加入先验信息的数据集,4层BP神经网络训练结果要优于基于RBF核SVR回归模型的训练结果,数据集增维后,数据间的关联有效减小.

2 静态图像人体角度拟合

2.1 骨骼数据提取

使用openpose框架对人体骨骼关节点数据进行提取,骨骼示意图如图1所示. 本文中只对人体相对于摄像机的正面、左侧面和右侧面时的人体手臂关节角度进行拟合,提取的骨骼数据包括:颈部、左肩膀、左手肘、左手腕、右肩膀、右手肘、右手腕、髋关节,对应的编号分别为:1、2、3、4、5、6、7、8.

图1 人体骨骼特征编号示意图

2.2 数据定义

本文中将人体骨骼以颈部为中心分为左右2个部分,通过分析人体动作特征,每半个部分只要确定4个自由度即可确定相应的动作姿态,所以共需要对8个角度进行拟合,角度左右对称. 相关数据定义以及需要拟合的角度定义见表1.

表1 相关数据对照

2.3 构建数据集

由于没有人体角度相关的标准数据集,本文中所使用的数据集,均为自行设计. 生成的数据集见表2. 相对于8个被拟合的人体角度,共生成6组数据集,对应表1中定义的角度. 6组数据中细分为5个标签,分别对应一个被拟合角度空间的不同状态,分别为∠10、∠45、∠90、∠135、∠180,其中角度Ar2和Ar3共用一组数据、其中角度Al2和Al3共用一组数据,每组数据1000张照片,其中训练集比例为80%,测试集比例为20%. 训练数据见图2.

表2 生成的数据集

图2 训练数据

提取出相应的骨骼数据后,为了保证训练数据的相对位置不变性,首先将数据集变换到同一坐标原点,本文中以颈部作为人体坐标中心,计算方法为:

为了保证数据的尺度不变性,需要对数据进行归一化处理,计算方法为:

通过观察人体骨骼特征,若不考虑观测角度,人体大臂和小臂的长度约为躯干的0.5倍左右,为了提高角度拟合的精度,对上述部分数据集加入手臂长度的先验信息,提高数据集维度,文中设定手臂与躯干的比例系数为0.6. 计算公式为(3). 重新构建数据集,将对应同一角度的两套数据集在不同的模型中的拟合结果进行比较.

2.4 主成分分析方法

通过主成分分析(PCA)方法,对增维的数据集和正常数据集进行分析,PCA计算过程如下:

计算数据集的协方差矩阵:

计算协方差矩阵的特征值和特征向量:

在得到特征值矩阵后,计算特征值矩阵中特征值的期望和方差并比较不同数据集的计算结果.

2.5 BP神经网络模型

BP神经网络由输入层、隐层和输出层组成. 其通过有监督学习方式进行训练,即在训练时需要一定数量的有标签数据. 通过训练数据的正向传播得到训练误差,通过误差的反向传播修正神经元的权重. 本文中构建的所有神经网络均为4层,其中隐层h1和h2的神经元数量为50和32,激活函数选择为Sigmod函数,见式(7)~式(8),输出层神经元个数为1,激活函数为线性函数,见式(9),学习率α设置为0.1,训练次数为650 000次.

当BP神经网络处于正向传播时,输入数据由输入层通过隐层最终到达输出层,其计算公式为:

当BP神经网络进行反向传播时,其使用随机梯度下降进行优化,本文中BP回归神经网络的损失函数定义为:

通过上式不难看出,优化的过程即是对二次函数寻找极小值点的过程. 如图3.

图3 非凸二次函数示意图

若二次函数为非凸函数,在训练过程中,若参数选择不合理,BP神经网络会将局部极小值点[13,14]作为全局极小值点作为优化的目标,为了避免这种情况,本文中使用批量训练(minibatch)的方法进行训练,batchsize设置为40.

BP神经网络在反向传播时,通过求各个层中的偏导数获得权重的优化方向后,通过公式(12)~(13)对权重进行修改,其中w 为神经元权重、b 为神经元偏置.

由于均为复合函数,其梯度值计算为式(14)~式(15):

2.6 性能指标评估

对于拟合结果指标评估的方法包括:“平均绝对误差(MAE)”、“平方误差(MSE)”以及“R平方值(RSquared)”,本文中采用MAE作为归回结果性能评估指标之一,公式为式(16). 另外,允许拟合的结果产生一定的误差,MAE指标评估了所有训练数据的误差,并不能准确的反应回归的精度,所以本文中使用分类指标评估思想,对AUC[16]指标进了修改,其中T为正确样本数量、U为样本总数量,通过设定不同的err值确认回归结果的精度范围,公式为式(17).

3 实验测试分析

为了对比BP神经网络拟合结果的性能,使用了SVR回归模型的训练结果作为基线,该模型可以设置核函数,分别为“线性核(linear-kernel)”、“径向基核(RBFkernel)”、“多项式核(ploy-kernel)”. 其中“线性核”函数不具备非线性空间拟合的能力,“多项式核”在多维数据下训练时间比较长,所以在这里选用“径向基核”作为SVR的核函数,开发工具使用sklearn. 详细参数设置见表3.

表3 SVR回归模型参数设置

针对上述内容,共设计4组实验,为了避免重复说明,这里只对人体骨骼右臂的Ar1角度的拟合结果进行详细说明,对于其它数据集直接给出实验结果,实验设计见表4.

实验过程中,每1000次迭代记录一次训练集损失数据和测试集损失数据,分析模型的损失函数曲线,实验C4效果最好,训练集数据的损失和测试集数据的损失均为最小,分别为0.1314(红色实线)、0.1933(蓝色虚线); 实验C1效果最差,训练集数据的损失和测试集数据的损失均为最大,分别为0.5275(红色实线)、1.030(蓝色虚线). 详细实验训练曲线见图4~图7.

表4 实验设计

图4 实验C1损失函数曲线

图5 实验C2损失函数曲线

图6 实验C3损失函数曲线

图7 实验C4损失函数曲线

使用BP回归神经网络,通过数据集T3、T6、T8、T10,对人体其它7个角度进行回归训练,各项指标见表5. 实验结果见表6.

表5 Ar1角度拟合实验结果

对于增维数据的有效性,通过PCA方法对数据集进行分析,计算各数据的特征值的方差,计算结果见表7.通过分析结果看出增维后的数据集方差更小,说明数据集增维后的数据集相比较标准数据集可以有效减少数据的关联性.

4 实验结论

本文在定义了人体相关角度空间的情况下,提出利用openpose提取人体骨骼数据,经过数据重构、预处理以及升维后,生成训练数据集,通过BP回归神经网络对人体相关的8个角度进行拟合. 通过对比试验结果及相关的指标表明,该方法可以有效的拟合出对应的角度,为动作识别提供依据. 虽然卷积神经网络经过大样本训练后会有更强的表达能力,但其只是对数据整体进行评估,更适用于整体分类,不能给出分类结果的相关细节的信息. 若要使用单一的卷积神经网络对人体的动作进行分析,需要对被训练数据的各个部分进行非常精确的标注,考虑到图像中的观测视角和人的身体动作均为变量,此项工作量巨大. 使用文献[1-5]中提出的方法将卷积神经网络和光流特征结合完成动作识别,但对图像连续性有一定的要求,并且不能给出人体肢体动作的局部信息. 基于以上原因使用BP回归神经网络并结合提取的骨骼数据的方法,可以更好的完成人体动作角度识别. 下一步考虑将与深度置信网络(DBN)相结合,进一步提高其拟合的精度.

表6 其它角度拟合实验结果

表7 数据集的方差对比

猜你喜欢

骨骼卷积神经网络
基于神经网络的船舶电力系统故障诊断方法
MIV-PSO-BP神经网络用户热负荷预测
做家务的女性骨骼更强壮
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
三减三健全民行动——健康骨骼
从滤波器理解卷积
基于神经网络的中小学生情感分析