基于Adaboost-BP神经网络模型的姿势识别研究
2022-07-07薛文华李汶艾伍钊圻
祝 睿,薛文华,李汶艾,伍钊圻,邱 雪
(1.成都加百力科技有限公司,四川 成都 610000;2.成都市郫都区郫筒一小,四川 成都 611730;3.成都市草堂小学西区分校,四川 成都 610073;4.新疆克拉玛依市第八小学,新疆 克拉玛依 834000)
1 研究背景
姿势识别是计算机研究领域的重要问题,在现实中具有广泛的应用场景。一般而言,可以根据识别技术的不同,划分为两种研究范畴。第一种是根据特定传感器设备输入的信息,对姿势进行判断,比如智能手环、智能眼镜等。另一种方式是通过影像设备捕捉人体的图片,然后利用计算机视觉,判断人体的姿势。其基本的流程是通过摄像头获得人体的图片,然后通过背景处理,将图片中的人物信息进行提取。在提取人物信息的基础上,对人物的关键部位或者轮廓进行识别,然后提取关键部位的特征,对人物的姿势进行判断。采用摄像机获取人物图片较为方便,但是更容易受到各类背景数据,比如光照强度等的影响,需要精度更高的算法对人体姿势进行识别。
姿势识别具有丰富的应用场景,可以应用于游戏、工业、教育、医疗卫生等众多领域。通过姿势识别能够针对目标群体,比如小孩、老人等进行一定的识别,当其处于危险或者不良姿势习惯时进行干预。目前,常用的姿势识别模型包括各类神经网络算法,本文的目的是构建一种轻型的姿势识别模型。BP神经网络具有实现速度快,识别效果较好等特点。为更好的对姿势进行识别,本文进一步采用Adaboost模型提升BP神经网络模型的识别效果。
2 国内外研究情况
姿势识别一直是计算机领域的研究热点,Tseng等[1]针对人脸以及表情识别进行研究。在人脸识别中,采用肤色检测的方式提取人脸的信息,然后识别人脸的不同五官信息。Fischler[2]建立了图结构模型,通过计算与模板图的距离等方式,来判断人体姿态,但是这种方法的精度相对较低。Toshev和Christian Szegedy等[3]构建卷积神经网络Deeppose,采用该神经网络对图片中的多人姿势进行识别。其关键在于对不同人体的关键点进行提取,采用关键点作为姿势的特征信息,然后基于深度神经网络进行分类学习。Tompson[4]基于热力图信息构建姿势识别模型,其核心在于采用关键点的热力图作为特征,构建神经网络模型进行姿势识别。
我国学者方面,冯文宇等[5]基于OpenPose开发智能姿势识别模型,进一步提升了模型的识别效率与精度。通过权值修剪等,进一步提高了信息特征的浓度,在测试中检测速度提高三倍,并且精度高于80%。龚锐[6]采用MTCNN神经网络模型对人体姿势进行识别,并进行人物跟踪。其关键技术是采用ArcFace提取人物的脸部特征,然后根据人脸特征,对应相关的人物,并对其姿势动作进行连续识别。翟煜[7]则针对传感器信息进行人体姿势识别,并构建增强的支持向量机,结合偏二叉决策树,对处于不同动作状态的人体姿势进行识别,其模型具体效率较高、复杂性较低、准确性较高等特点。
3 模型构建
姿势识别主要包括以下环节:①图像预处理。首先获取图片,然后提取图像的单帧信息,去除背景等信息,并进行数据平滑与去噪。②对人体区域进行分割,并识别人体关键点。③提取关键点的特征信息,构建姿势识别的特征向量。④采用模型对特征进行计算,分析人体姿势的状态。本文主要针对第四点进行分析,并且本文为了研究一种轻量的姿态识别算法,选择采用BP神经网络模型。采用BP神经网络模型进行姿势识别的构建步骤如下。
(1)初始化网络及学习参数。BP神经网络模型主要分为输入层、隐含层、输出层,各层之间单层全连接。在初始化阶段,将神经单元之间的连接权重设置为[-1,1]之间的随机数。
(2)输入训练样本。将标注好不同姿势状态的图片特征信息输入到BP神经网络模型中,作为建模的素材来源。
(3)正向传播过程。对于输入的姿势图像特征,隐藏层根据不同的神经单元的激励函数以及连接权重,计算输出结果,然后根据结构对姿势状态进行判断。如果判断误差在一定范围以外,则进行第(4)步,否则返回到第(2)步,接收新的训练样本。
(4)反向传播过程。
该步骤根据对姿势判断的结构,调整BP神经网络模型不同神经单元之间的连接权重,首先计算姿势判断的误差 ,然后根据公式(1)对隐藏层的神经单元权重进行修正。
(5)重新训练。通过反向转播对BP神经网络进行调整后,重新对样本进行计算,并更新误差。如果误差处于可接受状态或者迭代次数到达一定的范围,则结束训练,返回模型,否则重复第(4)步,对BP神经网络的结构进行修正。
一般而言,直接将BP神经网络模型用于姿态的识别可能存在效果较差等问题,因此本文采用Adaboost模型对其效果进行增强。Adaboost模型是一种迭代学习框架,可以有效地提升弱学习器的预测效果。
(1)初始化权重,为每个样本分配权重,如公式(2)所示。
根据公式(6)综合不同学习模型的预测结果。
式中,f代表不同模型的投票,也就是选择获得投票数最多的姿势作为模型的输出结果。
4 实证分析
为分析Adaboost-BP神经网络模型对图像中姿势识别的效果,本文基于COCO数据集合进行识别。COCO数据集合是微软构建的大型的目标检测的数据集。本文在实证中,首先采用OpenPose识别COCO图像中的人体关键点,然后采用傅里叶变换对关键点进一步提取特征,然后将COCO图像集合中的动作进行分类,划分为叉腰、挥手等动作类型,采用BP神经网络、Adaboost-BP神经网络模型、支持向量机以及CNN卷积神经网络模型进行实证。在训练中,采用3200张图片进行训练,另外400张图片进行测试。采用遗传算法获得Adaboost-BP神经网络模型的最优参数,如表1所示。
表1 遗传算法Adaboost-BP神经网络最优参数
如表1所示,神经网络单元的结构是输入变量49 862个,3 621个隐藏神经单元,7个输出单元。学习率为0.076,隐藏层以及输出层采用sigmoid函数,识别效果如下:
图1 识别效果
同时,为了与未采用Adaboost的BP神经网络等模型进行对比,本文还采用基准模型进行学习,最后综合效果如表2所示。
表2 不同模型在测试集上的结果对比
从表2所示,Adaboost-BP神经网络模型具有与CNN卷积神经网络模型类似的识别效果,并且在双手叉腰、单臂张开、跑步与散步等动作的识别上,比CNN卷积模型具有更好的效果。同时,通过Adaboost迭代学习对BP神经网络模型进行优化,在不同的姿势识别上,都具有一定的提升效果,比采用BP神经网络模型能够更为精确的识别各类姿势。
5 研究结论
姿势识别是计算机视觉中的重要研究方向,为获得具有较好效果、轻量级的姿势识别模型,本文基于BP神经网络模型构建姿势识别模型,并采用Adaboost迭代学习对BP神经网络模型的预测效果进行提升,获得与CNN卷积神经网络模型具有类似预测效果的模型,并且直接与采用BP神经网络进行姿势识别进行对比,在识别精度上具有较大的提升。■