基于卷积神经网络的运动辅助决策系统设计

2021-08-15 11:36冯宏伟
电子设计工程 2021年15期
关键词:姿势遗传算法阈值

查 毅,冯宏伟

(1.西安文理学院,陕西 西安 710065;2.西北大学,陕西 西安 710069)

运动训练辅助决策系统,对于辅助运动训练管理者预测、决策、评价与提高运动员的综合训练水平具有重要意义。但该系统是一种具有高度复杂性的智能数据分析处理平台,其核心技术是人体姿势的精确识别技术。近年来,人体姿势识别技术已逐渐成熟,而衡量姿势识别算法性能的关键参数是实时性与准确性[1]。随着人工智能技术的发展,神经网络的深度学习被广泛应用于多个领域[2]。因反向传播(BP)神经网络具有适应性高、原理简单、易于实现等优点,通常被应用于手势和动作姿态识别[3]。

文中基于OpenPose 与神经网络进行了姿势识别与运动状态分析,基本思想是对来自视觉相机的人体姿势进行识别、分类与存储[4]。通过使用卷积神经网络的方法[5],对抽象为优化问题的运动数据进行分析[6]。

1 人体姿态识别建模

在姿势判断中定义人体姿势描述符至关重要,因此必须选择一种适当的数据集来精确描绘每个动作。通过需求分析可知,姿势描述方法必须满足以下要求:1)数据冗余少[7];2)鲁棒性高[8];3)传感器方向不变性[9];4)信号连续性。

基于上述考虑,对关节数据的处理进行重点设计,系统架构如图1 所示。

图1 系统结构

1.1 关节位置确定

文中使用OpenPose 展开设计,其是一种基于OpenCV 与Caffe 的C++实时多人关键点检测和多线程库,可实现在单个图像上动态联合检测人体手部和面部最多130 个关键点。

OpenPose 提供了18 个身体关节的实时位置,如图2 所示。文中以JSON 格式获取包含身体部位位置和检测置信度的数据。这18 个关节坐标能够完整且独特地表示每个姿势,且可确保较低的计算复杂度。但由于这些基于像素的描述符在几何变换过程中会发生变化,因此难以定义距离度量,文中使用关节轨迹估计的方法解决该问题。

图2 身体关节图

1.2 关节轨迹估计

由于单张图片的信息存在不连续性,因此无法使用连续的关节位置信息,该次选择运动轨迹来解决此问题。运动轨迹定义为在某些顺序帧之间通过相同关节连接的曲线,身体运动轨迹描述符不需要进行标准化,且可以适应不同的情况。

为了使系统对输入噪声具有鲁棒性,将轨迹方程细化为Bezier 曲线。对于某个关节的第k个位置,其噪声信息可表示为qk=(xk,yk),(0 ≤k≤n)。混 合上述坐标可以生成位置矢量Q(i),如式(1)所示:

其中,贝塞尔混合函数BEZk,n(i)是伯恩斯坦多项式,如式(2)所示:

其中,C(n,k)是二项式系数:

由于贝塞尔曲线是一种近似曲线而不是插值曲线,因此计算贝塞尔曲线有助于平滑轨迹,并减少输入噪声的影响。

2 基于CNN的运动分析算法设计

对于上文中建立的关节分类模型,抽象出常用的优化问题,如下式所示:

其中,xi是研究变量,即各个关节的离散化函数,其变量范围是[ai,bi],r是变量数。

对神经网络算法的基本步骤分别进行了重新设计:

1)个体编码[10]。通常通过二进制编码与实数编码来实现,该文采用实数编码方法对xi进行编码,xi代表BP 神经网络的权重值和阈值。编码长度为14×13+13+13×5+5=265,种群大小为15,最大遗传代数为20。

2)确定适应度函数[11]。BP 神经网络的实际输出为Ti,预期输出为Oi,因此BP 神经网络误差定义为:

由于该文的目标最优解是一个最小化问题,因此选择BP 神经网络的倒数作为适应度值,即:

3)选择过程[12]。选择过程是人口演变的重要组成部分,文中将轮盘赌选择方法与精英选择方法相结合,产生下一代个体。适应度值最大的个体不进行交叉和变异操作,而是通过遗传直接转移给下一代。使用轮盘赌选择方法选择剩下的个体,每个个体被选为下一代的概率为:

4)交叉操作。交叉操作在遗传算法中起着重要作用,其与遗传算法的搜索能力密切相关[13]。采用模拟二进制分频器实现分频器运算,首先可通过下式计算分频系数ri:

其中,ui是属于[0,1]的随机数,i∈[0,length-1],ηc=10,是父代个体p1和p2通过下式确定的个体后代[14]:

5)变异运算[15]。变异的主要作用是引入变异算子以生成新的个体,并丰富模式的多样性。采用变化规律的多项式形式,且可以通过下式获得变化系数δ:

其中,u是[0,1]内的随机数,ηm通常也为随机常数,该文定义ηm=10。突变后的每个单独基因可表示为:

其中,Δmax是最大变化范围。

6)进化停止标准[16]。当迭代次数k到达阈值或连续5 个迭代后,最佳个体保持不变,则遗传算法结束并输出最优解。

神经网络计算得出最优结果的速度较慢,因此将混沌扰动添加到遗传种群变量中,以加快优化速度。假设优化个体为,在对遗传算法进行选择、交叉和变异后,采用混沌算法对该个体进行扰动。其扰动公式为:

其中,δk是第k次迭代的混沌扰动矢量,δ∗是最优解的矢量,是随机混沌扰动向量。为获得α,使用可变尺度混沌方法,具体方程为:

在迭代开始时,α值较大,且混沌遍历空间较大。因此,在这种情况下进行了粗略搜索。随着迭代次数的增加,α的值逐渐减小,详细搜索工作正式开始。

每次迭代后,计算新个体的适应度值。当其适应度值大于原始个体时,该算法将选择受混乱影响的新个体作为当前最佳个体;否则,迭代将继续。若在连续5 次迭代后最佳个体值未有变化,则迭代将停止。最优解将被输出并从混沌空间映射到解空间,映射公式如下:

3 实验验证

为验证运动辅助决策系统,在Ubuntu 18.04 计算机操作系统中进行验证。系统搭载在Intel 10700K CPU、NVIDIA 3070Ti 图形处理器上,配置CUDA 与CUDNN 架构。分别采用BP 神经网络、遗传算法(GA)改进的BP 神经网络以及卷积遗传算法(CGA)改进的BP 神经网络来复现算法,这3 个网络的学习误差下降曲线如图3~5 所示。

图3 BP网络学习曲线

在图3 中,使用BP 神经网络学习5 000 次后,最终系统误差为0.005 655 8,误差变化率接近于0,但落入了局部最优状态。

在图4中,GA 修改了BP神经网络并学习了5 000次,系统误差为0.000 418。结果较为接近期望误差,且误差率不为0。这意味着其不会落入局部最小值,但学习时间更长。

图4 遗传算法改进的BP网络学习曲线

在图5 中,CGA 修改后的BP 神经网络仅学习608 次就达到了理想误差,学习时间大幅减少,最终误差小于GA改进的BP神经网络结果。从以上数据分析可看出,CGA 可优化BP 神经网络,避免神经网络陷入局部最小值,能够有效提高识别速度与准确性。

图5 CGA改进的BP网络学习曲线

在训练完成的基础上,使用视觉相机进行实际实验验证,测试员佩戴时获得的信号数据是一个连续数据流。在应用程序开发过程中,使用计时器对连续数据流进行采样,并获得离散的静态姿势。测得的姿势与数据库中现有的数据模板进行比对,然后输出最佳解决方案。为避免外界干扰,设置了错误阈值。当误差小于阈值时,程序开始识别无效姿势。16 s 的姿势匹配数据流曲线如图6 所示。Matlab 的仿真结果表明,当误差小于0.1 时,两个连续的姿势段可能会产生干扰现象;当误差大于0.1 时,所有姿势均可正常识别,因此将0.1 设置为错误阈值。

图6 姿势识别匹配曲线

基于数据手套和可穿戴传感器的姿势识别平台是采用VS2008 MFC 商用套件开发的,识别结果如图7 所示。

图7 姿势识别结果

在此基础上,选择10 个不同的操作者戴着传感器进行姿势识别,每个人重复相同姿势30 次,记录正确识别时间和平均识别率。统计结果表明,平均识别准确率可达到98.67%。

4 结束语

该文综合了混沌算法与遗传算法,优化了神经网络,并基于优化后的神经网络实现了精确的人体运动姿势识别。所提出的改进算法首先建立神经网络的拓扑结构,对神经网络的权重和阈值进行编码以形成单个物种,并通过遗传算法进行选择、交叉和进化,获得最优解。从实验结果可知,CGA 改进的BP神经网络不仅可以解决容易陷入局部最小值的问题,而且能够加快收敛速度,明显提高优化神经网络的精度,对人体姿势的检测精确度可提高到98%以上,有效提高了运动辅助决策系统的实时性和识别精度。

猜你喜欢
姿势遗传算法阈值
倒挂在树上,我的主要姿势
看书的姿势
小波阈值去噪在深小孔钻削声发射信号处理中的应用
解锁咳嗽的正确姿势
基于自适应阈值和连通域的隧道裂缝提取
基于自适应遗传算法的CSAMT一维反演
比值遥感蚀变信息提取及阈值确定(插图)
一种基于遗传算法的聚类分析方法在DNA序列比较中的应用
基于遗传算法和LS-SVM的财务危机预测
室内表面平均氡析出率阈值探讨