基于OpenPose的人体姿态估计技术研究综述

2023-01-02 12:07马子越彭瑞阳孙晓晗王钰泽李欣悦孔祥勇
软件导刊 2022年11期
关键词:关键点姿态卷积

马子越,彭瑞阳,孙晓晗,王钰泽,李欣悦,孔祥勇

(上海理工大学健康科学与工程学院,上海 200093)

0 引言

20 世纪以来,人体姿态估计作为计算机视觉技术中一个具有重要研究意义的领域,已逐渐融入人们的生活当中。例如,无人驾驶环境中对行人的姿态估计、电影和视频制作中动作特效的设置等。此外,该技术在医疗健康领域发展前景和应用空间更为广阔。

人体姿态估计是从处理后的图像或视频中定位与提取人体关键点,进而完成对人体关节和肢干的重构。并且在环境改变、人数增加、对象互动、位置交叉、空间遮挡、大小不一等多种不确定的条件下均具有较高的适应性。

2017 年,Zhe 等[1]提出多人实时关键点的OpenPose 算法用于估计人体动作、面部表情、手指运动等,作为首个基于深度学习的姿态估计应用,推动了人体姿态估计发展。

1 人体姿态估计技术发展

1.1 技术分类

根据维度深度信息,可将主流姿态估计算法分为2D姿态估计和3D 姿态估计。其中,3D 姿态估计对摄像头、传感器等设备要求较高。该方法常通过微软Kinect 摄像头捕捉人体25 个骨骼关键点,以获得关键点的空间三维坐标。然而,2D 姿态估计相较于3D 姿态估计而言,前者的发展更为迅速,目前已大量应用于多种综合场景。

根据图像中检测的目标人数又可将2D 姿态估计分为单目标人体姿态估计和多目标人体姿态估计。相较于单目标人体姿态估计,多目标人体姿态估计需要增加相应的算法以解决被检测目标对象空间位置不确定、实际数量未知的问题。目前通常会选择自顶向下(Top-down)或自底向上(Bottom-up)的方法。其中,自顶向下方法“先人后点”,精度较高;自底向上方法“先点后人”,速度较快。本文选取了部分使用经典人体姿态估计算法的文章,并按照发表时间进行了整理分类,具体数据如表1所示。

Table 1 Some classical algorithms for human pose estimation表1 人体姿态估计的经典算法部分列举

1.2 经典算法

经典算法主要包括自底向上或自顶向下、单目标或多目标、单阶段或多阶段检测算法。

1.2.1 自底向上或自顶向下方法

该方法目的在于构建最优关键点检测路径。Chen等[2]提出的级联金字塔网络结构(Cascaded Pyramid Network,CPN)和Xiao 等[3]提出的Simple Baselines 算法均采用自顶而下的检测方法进行多人关键点估计。其中,CPN 网络对每一个区域框中的人体关键点进行回归处理,输出的关键点准确率较高;Simple Baselines 则较为简单地构造一个实现2D 到3D 人体关键点的回归过程神经网络。

1.2.2 单目标检测算法

该类方法以Wei 等[4]提出的卷积姿态机(Convolutional Pose Machines,CPM)和Newell 等[5]提出的堆叠沙漏网络结构(Stacked Hourglass Networks,SHN)为基础。其中,CPM 算法基于顺序化全卷积网络结构,将深度学习应用于表达图片的特征和空间信息,并在每一个阶段都添加了中间监督训练环节,在确保处理精度的同时又处理了各关键点之间的远距离关系;SHN 算法则表达了多尺度的空间信息,先对图像下采样,再上采样,然后加入中继监督训练预测损失,实现了对图片所有尺度下的信息采集和各种空间关系的识别。随后,Newell 等[6]在堆叠沙漏基础上提出了联合嵌入算法(Associative Embedding),生成每个关节点的检测热图和联合嵌入预测标签,该算法解决了多阶段人体姿态估计不连续问题。

1.2.3 多目标检测算法

Insafutdinov 等[7]提出ArtTrack 算法,通过简化关节模型图以加快识别过程,利用前馈卷积网络承担大部分计算量,在时间和空间双维度上实现了多人姿态估计。Fang等[8]提出区域多人姿态检测(Regional Multi-Person Pose Estimation,RMPE)较好地解决了区域框不精确的问题。Kocabas 等[9]提出基于姿态残差网络的多人姿态估计(Multi-Person Pose Estimation using Pose Residual Network,MultiPoseNet)算法处理姿态识别中的人检测、关键点检测、人分割和姿态估计4 大问题,首先通过两个相互独立的网络分别完成图片中人体和人体关键点检测,然后利用残差网络进行聚类分析,以保证较高的处理精度和性能。Andriluka 等[10]提出多人姿态估计和跟踪(Multi-Person Pose Estimation and Tracking,PoseTrack)算法,该算法受语义分割的启发改进了OpenPose 模型的一些缺陷,支持在单个公式中联合建模,但估计踝关节和腕关节的性能有所降低。He等[11]提出Mask R-CNN 算法,增加了一个分支为各目标生成预测分割掩码便于后期进行实例分割、姿态估计,但该算法运算速度较慢。Papandreou 等[12]提出远程方法调用(G-Remote Method Invocation,G-RMI)算法,该算法通过引入热图—偏移聚合方法提取人体关键点。

1.2.4 多阶段检测算法

Li 等[13]提出多阶段人体姿态估计算法(Multi-stage Pose Estimation Network,MSPN)和Qi 等[14]提出的脉冲神经网络(Spiking Neural Network,SNN)均为多阶段网络。其中,通过MSPN 优化单阶段结构,将相邻阶段的特征相互聚合,采用多分支监督管理方式优化结果;SNN 算法相较于卷积神经网络降低了算法的能量消耗,但容易发生过激活或欠激活现象,导致准确度下降。

为了解决上述问题,Pishchulin 等[15]提出了线性规划建模的DeepCut 算法,但该算法会导致计算量增加。Insafutdinov 等[16]对这一方法进行改进后提出了DeeperCut算法,通过压缩待选节点数量,基于各节点间的距离排查重要节点是否存在重复,以减少算法的时间损耗。Sun等[17]提出高分辨率网络结构(High-Resoultion Net,HRNet),通过跨子网络多尺度融合并联网络,使算法能够持久保持高分辨率特征工作,提升了姿态识别的精确度。Cheng 等[18]提出Higher HRNet 算法解决了多人姿态估计人物尺度变化的影响,相较于HRNet 分辨率更高,通过结合多分辨率监督和多分辨率聚合,能够精准定位小型人体的关键点。Kreiss 等[19]使用部分强度域(Part Intensity Field,PIF)和部分亲和域(Part Association Field,PAF)预测关键点的位置及关系,使算法在低分辨率、多人数、场景拥挤混乱等情况下仍具有良好的检测效果。Cai等[20]提出残差阶梯网络(Residual Steps Network,RSN)将相同空间大小的内部特征进行聚合,使每一个残差阶梯网络的基本单元(Residual Steps Block,RSB)利用内部特征间信息进行准确定位。Zhang 等[21]提出分布感知的关键点坐标表示法(Distribution-Aware coordinate Representation of Keypoints,DARK),通过编码关键点坐标,提升算法的性能。Huang等[22]提出无偏数据处理(Unbiased Data Processing,UDP)方法,采用单位长度代替像素大小度量图像,在编码、解码过程中解决了统计误差,进一步提升了算法的准确度。

在实际场景中,Kocabas 等[23]提出了基于背景更新的运动目标检测(Visual Background Extractor,ViBe)算法,该算法在保证像素模型时间和空间连续性的情况下,能够对视频中的人体进行姿态估计。Zhang 等[24]提出人体分割算法(Pose2Seg),利用像素分割技术将人体姿态估计应用于实际中。Zhang 等[25]提出4D 关联图模型(4D Association Graph),利用图网络对人体姿态进行实时捕捉,构建一种可同时处理时间、空间等多维度的4D 关联图以优化实时捕捉的关节点。

2 OpenPose基本模型

OpenPose 在多人图像中主要使用了自底向上的方法对人体姿态进行估计,该方法不会随着检测人数增加而影响检测速度,部分亲和域技术可形成局部关联场,确定某些姿势是否隶属于同一个人,从而建立人体各关键点之间的联系,以提高检测精度。

图1 为OpenPose 实现人体姿态估计的流程。其中,图(a)为输入,图(b)为身体部分位置的二维置信度映射图集S,图(c)为部分亲和的二维向量场集L,图(d)为人体关键点。

Fig.1 Openpose human posture estimation process图1 OpenPose人体姿态估计流程

Fig.2 Key point of human skeleton图2 人体骨骼关键点

如图2 所示,OpenPose 提供了18 个人体关键点,设置了两分支、多阶段结构的CNN 框架。其中,第一分支预测置信图,输出图像特征;第二分支预测部分亲和域,输出空间特征。同时,采用多级级联、连续重复及在每个阶段设置中间监管损失函数的方式优化预测结果。

3 OpenPose优化模型

3.1 优化底层特征提取方式

传统OpenPose 模型通常基于VGG-19 网络,使用标准卷积提取底层特征。然而,深度可分离卷积(Depthwise Separable Convolutions,DSC)拥有更轻量级的参数,可提升运行速度。Sandler 等[26]提出基于深度可分离卷积的计算机视觉神经网络(MobileNet)模型,在小幅度降低精度的情况下,大幅度减少了模型计算量。文献[27-31]将深度可分离卷积结构引入OpenPose 模型中,对底层特征提取方式进行优化,通过减少单个卷积层的计算量、模型参数、卷积层等方法,在不损失精度的条件下,提升了模型运行速度,解决了由于运算量过大,而无法在移动设备或嵌入式设备上运行的问题。

深度可分离卷积将原OpenPose 中的一个标准卷积层因式分解为一个Depthwise 卷积和一个Pointwise 卷积。其中,Depthwise 卷积核与输入的每个通道进行卷积;Pointwise 与上层输出的不同通道特征图进行线性组合,从而将不同通道位于同一位置的特征信息进行高效利用和组合。图3(a)为标准卷积层的标准卷积核结构,卷积核K的长度和宽度均为DK,输入通道数为M,输出通道数为N。

Fig.3 Convolution kernel structure图3 卷积核结构

此外,采用残差网络算法提取底层特征代替传统模型的VGG-19 网络也可提升OpenPose 模型的检测精度和训练速度。朱洪堃等[32]将底层特征提取网络更换为Res-18网络,通过添加二阶项融合的残差网络提取底层特征,对比性能后发现改进后的模型在精度和速度上均有所提升。冯文宇等[33]使用了自适应软阈值的残差网络,显著增加了模型的检测精度且未明显影响检测速度。

3.2 优化数据分类方法

在提取人体关节点数据后,还需进行分类处理才可用于判断行为特征。目前,基于传统机器学习分类器算法的应用较为广泛,主要包括支持向量机(Support Vector Machine,SVM)、深度神经网络(Deep Neural Networks,DNN)、极限学习机(Extreme Learning Machine,ELM)、决策树(Decision Tree,DT)、K 近邻(K-NEearest Neighbors,KNN)等。本文主要介绍了SVM 和ELM 两种分类算法。

3.2.1 SVM

SVM 是一种二分类模型,对于小样本集具有较好的训练效果,并可高效处理OpenPose 提取的高维数据集。为了将它适应于多分类任务,苏超等[34]采用间接法构建基于决策树的SVM 多类分类器(ST-SVM)优化分类方法,将所有信息循环二分直到每个结点归属到唯一类别。袁鹏泰等[35]为了提高SVM 分类器准确度,将改进Yolo 算法先行引入OpenPose 算法中,避免了在无人处识别关节点信息。李梦荷等[36]为实现多人行为识别,将特征矩阵输入SVM分类器中进行分类,以提高识别准确度。蔡文郁等[37]通过原始视频图像中的关键点数据提取跌倒特征向量,经过SVM 初级分类器分类后,再利用CNN 分类器进行二次分类,以降低模型计算量。

3.2.2 ELM

如图4 所示,相较于传统神经网络模型,ELM 网络随机设定输入层与隐含层的链接权值W 和隐含层神经元的偏置O,隐含层节点个数N 设置完成后即可固定不变。在执行过程中,无需人工调整算法参数,避免了反复迭代造成的时间损耗。张青等[38]通过对150 个图像的100 次迭代测试发现,ELM 网络的测试精度和运行速度都显著优于BP 神经网络[39]。

Fig.4 ELM network computing principle图4 ELM网络计算原理

4 模型存在的不足

目前,人体姿态估计技术仍在不断发展,基于Open-Pose 模型的人体姿态估计应用也在不断更新,如表2所示。尽管对底层特征提取方式、数据分类方法等多方面均有所优化,但在实际应用中,仍暴露出许多问题:

(1)检测精度会因人体姿态的不同而变化。

(2)精度和速度在一些模型中无法同时得到提升。通常,为了提高模型运行速度会减少模型参数,造成模型精度下降。

(3)各优化模型相较于传统OpenPose 模型而言,均基于实际应用背景下的特定数据集,并不具有通用性,应用场景相对单一。

Table 2 Some algorithms for human pose estimation optimization表2 人体姿态估计优化的部分算法

5 结语

人体姿态估计技术是计算机视觉技术中具有重要研究意义的领域之一,尤其在医疗健康领域中具有更加广阔的发展前景。人体姿态估计有关的研究报告大部分侧重于对基本模型、方法的归纳和介绍[40-41],研究人员可初步了解人体姿态估计的部分经典算法,但很少有结合实际应用背景对算法进行分类的研究。为此,本文在对人体姿态估计算法进行分类列举、详细介绍后,系统地介绍了由OpenPose 算法演变而来的改进模型。首先,对25 种算法进行细致梳理和介绍。然后,对OpenPose 算法进行了具体阐述,并基于不同优化对象,选取了7 种应用于实际的OpenPose 优化模型进行深度分析。最后,总结基于Open-Pose 的改进算法的不足之处,为未来人体姿态估计技术的研究提供思路。

猜你喜欢
关键点姿态卷积
肉兔育肥抓好七个关键点
基于3D-Winograd的快速卷积算法设计及FPGA实现
攀爬的姿态
从滤波器理解卷积
全新一代宋的新姿态
跑与走的姿态
基于傅里叶域卷积表示的目标跟踪算法
医联体要把握三个关键点
一种基于卷积神经网络的性别识别方法
锁定两个关键点——我这样教《送考》