基于级联特征和图卷积的三维手部姿态估计算法
姿态估计是计算机视觉中的热门研究领域,是对人体姿态的位置估计。姿态估计一般可以分为单人姿态估计(如Open Pose[
近年来,随着深度学习的发展,针对手部的三维姿态估计研究突飞猛进。Cai等人[
2 网络结构
2.1 整体网络框架
在姿态估计中,常见的手部模型有21关键点、16关键点、36关键点。本文采用Open Pose[
用深度学习的方法进行手部姿态估计,一般是分阶段进行的。本文提出的网络框架按照处理目的分为4个部分:手部的识别、手部二维关键点的检测、手部三维关键点的检测、 手部三维关键点的精细化调整。
手部的识别采用轻量级网络回归手部边框(Bounding Box)作为后续主体网络的预处理操作,使得后续关键点的定位更加准确,同时处理后图片像素的减少也使得后续计算量减小。手部二维和三维关键点的检测通过搭建卷积神经网络提取图像特征,依据区域或者特征的重要程度对权重进行调配,引导级联特征提取模块获取更加丰富的基础提取特征,监督网络主动输出越来越精确的热度置信图。手部三维关键点的精细化调整是将三维关键点粗结果基于图卷积神经网络算法进行优化后处理,拟合出更加精确的手部三维关键点坐标。
2.2 基于YOLOv3的手部识别预处理网络
常见的手部预处理方法分为基于数字图像处理方法和基于深度学习方法两大类。前者一般采取分割算法得到手部掩模定位手部区域,例如将RGB图像转化为灰度图像再转换成二值图像并选取二值图像的前景部分作为手势提取区域[
本文采取基于深度学习方法的手部预处理网络,如
图1 网络流程图
Fig.1 Network flow chart
2.3 基于级联特征提取的手部关键点检测网络
如
二维检测模块是一个两层的全连接卷积层。输入3232256的二维特征图,输出二维热度图(Heat Maps)。二维热度图包含21个手部关键点的关节预测置信图,通过二维高斯函数编码每个像素点被每个关键点覆盖的置信度,其公式如
(1) |
其中l代表第l个关键点,σ为函数的宽度参数,(x,y)代表该点像素坐标,(u,v)是中心点坐标,即该关键点二维真值(Ground truth)坐标。
三维检测模块从多热度图和特征图回归三维手部姿态。如
图2 级联特征提取网络结构
Fig.2 Cascade feature extraction network structure
2.4 基于GCN特征增强的手部骨架回归网络
对于手部骨架而言,它本身是一个天然的图结构。因此我们很自然地想到基于图卷积神经网络(Graph Convolutional Network, GCN)方法来获取它内部的隐式关系[
利用上述模块生成热图后,采用积分回归方法[
(2) |
其中,表示第k个关节的位置估计,A表示似然区域,表示p点上的似然值。因此,每个热图矩阵都包含生成初始姿势的信息。
热图模块和坐标转换相互耦合,使得GCN特征增强网络可以获得更准确的初始化姿态,有助于在进行校正之前获得更精确的局部上下文理解。此外,由于尺寸的限制,基于热图的表示在一定程度上导致了关键点的量化误差,转化为坐标后可以解决这个问题。
由于手部姿态估计涉及的节点数量较多,我们使用切比雪夫多项式进行逼近。当有n个节点时,得到GCN层与层之间传播公式如
(3) |
其中, ,是单位矩阵,A是代表各个节点之间位置关系的n×n维的邻接矩阵(Adjacency matrix),是的度矩阵(Degree matrix)。X是输入层的特征,Z是输出层的特征,,m是特征向量的维度,W是网络需要学习的权重,,d是输出向量的维度。
考虑到特征图之间感受野的由粗到细,我们在模块中设计了一种从粗到精的学习过程,用于增强局部特征学习,纠正部分遮挡的手部关键点的坐标。由于基于坐标的模块缺少图像的上下文信息,我们为每个关节位置挖掘了相关的图像特征,并融合到模块中。如
图3 渐进GCN特征增强网络结构
Fig.3 Progressive GCN feature enhancement network structure
2.5 损失函数
整体网络是基于端到端的学习,通过多任务学习的策略使得网络结果更好地收敛。损失函数的定义如
(4) |
其中为二维热度图损失函数,表示为,这里为热度图的真值,为网络估计的热度图;为三维偏移热度图损失函数,表示为=⊙,这里作为掩模,为热度图的真值,为网络估计的热度图,⊙表示的是逐像素积。同理,三维位置热度图损失函数=⊙。是图卷积神经网络的损失函数,其定义如
(5) |
其中Ω为目标点集,对于我们的手部重建的目标关键点其个数为21个;j表示的是第j层图卷积网络的输出结果。通过这种多层级的三维骨架估计监督可以让网络表现出更好的结果。M是一维度的向量表示关键点掩模,如果关键点存在标注数据,,否则为0。
3 实验结果
3.1 实验指标
对于手部的骨架姿态估计而言,其本质是一个回归问题,回归问题的指标很难通过上述二分类的指标来进行度量。为了验证模型的优越性,这里使用3D 平均准确性(Percentage of Correct Keypoint,PCK)和2D 的关节点相识性(Object keypoint similarity,OKS)进行评价。3D PCK的计算公式如
(6) |
其中i表示关节点的编号,表示第i个关节点的预测值和表达的欧氏距离。d为人体骨架的尺度因子,T为关键点的阈值。在本次实验中d为手掌中心岛中指末端的欧式距离,T的阈值设为0.1。
(7) |
其中s通常指人体骨架的尺度因子,本次实验设置为手部最小外接框的面积的根;是一个归一化因子,与关键点标注的难易有关,这主要是根据数据集的标注分布决定的;表达的是某些关键点i是否存在标答(数据集中该关键点是否标注了真值)。
对于3D的PCK值,由于需要设定一定的阈值,因此在数值结果受到了阈值T的影响。在机器学习中通常使用一种度量方式来计算这类数字的分数,我们称之为曲线下面积值的平均(Area Under Curve,AUC)。AUC曲线的计算公式如
(8) |
这里我们设,设为20~50 mm,中间取10个间隔。
3.2 实验数据集
本文在以下5个数据集上展开模型的训练和测试,多维度验证我们设计的人体手部姿态估计器的性能。
CMU Hand Keypoints Detection Dataset[
实验所用数据的分布如
手部2D标注 | 手部3D标注 | 训练集 | 测试集 | |
---|---|---|---|---|
CMU[ | √ | - | 16 720 | - |
RHD[ | √ | √ | 41 258 | 2 728 |
Dexter+Object[ | √ | √ | - | 3 145 |
EgoDexter[ | - | √ | - | 3 190 |
GANeratedDataset[ | - | √ | 331 499 | - |
合计 | - | - | 389 477 | 9 063 |
3.3 结果与分析
实验过程中的数值曲线如
图4 网络训练时的损失函数曲线和在验证集下的AUC精度曲线
Fig.4 Loss function curves during network training and AUC accuracy curves under the validation set
本次实验主要和Xiong Zhang等人提出的Mesh2HAND[
定量的实验结果与上述4种方法比较对照如
方法 数据 | Dexter+Object[ | EgoDexter[ | RHD[ | ||||||
---|---|---|---|---|---|---|---|---|---|
20 mm | 30 mm | AUC | 20 mm | 30 mm | AUC | 20 mm | 30 mm | AUC | |
Mesh2HAND[ | 0.732 | 0.856 | 0.825 | 0.717 | 0.744 | 0.746 | 0.800 | 0.915 | 0.901 |
Mon-Cap[ | 0.795 | 0.933 | 0.912 | 0.732 | 0.811 | 0.779 | 0.816 | 0.923 | 0.911 |
Adane[ | 0.653 | 0.819 | 0.763 | 0.636 | 0.701 | 0.674 | 0.798 | 0.902 | 0.887 |
Minimal-hand[ | 0.821 | 0.953 | 0.923 | 0.838 | 0.917 | 0.914 | 0.799 | 0.883 | 0.856 |
本文方法 | 0.830 | 0.967 | 0.931 3 | 0.821 | 0.954 | 0.921 3 | 0.824 | 0.961 | 0.934 9 |
本次实验的操作系统为Ubantu18.04,CPU核为i5-6500,GPU的配置为GTX-2080 11 GB。在图像分辨率为256256的情况下,对算法处理时间和所需功耗进行分析。如
推理时间/ms | 计算量(FLOPs) | |
---|---|---|
Mesh2Hand[ | 1 173 | 11.3E10 |
Mon-Cap[ | 564 | 7.9E9 |
Adanet[ | 642 | 8.5E9 |
Minimal-hand[ | 49 | 8E8 |
本文方法 | 52 | 9.3E8 |
该结果表明在不影响算法速度的情况下,我们提出的算法在效率上得到了较大的提升,识别推理的帧率(Frames Per Second,FPS)达到了19.23,因此该算法可以使用在视频流的实时手部骨架检测中。与此同时,较小的计算量满足了对模型低功耗、轻量化的需求。
我们选择在上述定量分析中4个对照方法中精度指标表现最好的Minimal-hand[
图5 可视化实验结果对比
Fig.5 Comparison of visualization experimental results
在自然场景下,涉及手物交互时骨架回归结果如
图6 自然场景下的可视化结果
Fig.6 Visualization results in the wild
尽管如此,本文模型在精度指标上和大致的形体姿态上还是表现得足够精准,总体上算法可以在自然场景下给出合理的估计结果,这体现了我们算法整体的鲁棒性。
4 结论
本文所提出的三维手部姿态估计算法通过结合人体关节结构之间的基本约束信息以及级联神经网络和渐进图卷积神经网络挖掘出的特征图中包含的被遮挡关键点的相关数据,能够精确地调整被遮挡关键点的位置,对于人体手部骨架的检测有较高的正确率。我们在3个公开数据集上验证了网络性能,与现有的4种算法进行实验比对,本文算法在30 mm阈值下的PCK精度表现非常出色,最低精度达到95.4%,高出次优算法3.7%精度值。并且在3个测试集上的AUC曲线指标均达到最高,平均AUC精度达到92.9%。经过与其他方法的定量、定性类比,可以看出本文算法在三维关键点预测精度上比现有的方法有明显提高,并且可视化实验结果表明,本文算法在图像细节的捕捉上也具有优势。此外,本文方法推理的帧率达到了19.23,可以满足实时视频流检测的需求。模型所需FOLPs为9.3108次,复杂度较低,满足对模型轻量化的要求。综上,本文基于多任务学习的方法提出了一种端到端的训练方式,加速了网络的收敛,减少了特征的过拟合,使得网络在三维手部姿态估计任务上准确性和鲁棒性相比于现有技术有较为显著的改进。
- 2025年中科院分区表已公布!Scientific Reports降至三区
- 官方认定!CSSCI南大核心首批191家“青年学者友好期刊名单”
- 2023JCR影响因子正式公布!
- 国内核心期刊分级情况概览及说明!本篇适用人群:需要发南核、北核、CSCD、科核、AMI、SCD、RCCSE期刊的学者
- 我用了一个很复杂的图,帮你们解释下“23版最新北大核心目录有效期问题”。
- 重磅!CSSCI来源期刊(2023-2024版)最新期刊目录看点分析!全网首发!
- CSSCI官方早就公布了最新南核目录,有心的人已经拿到并且投入使用!附南核目录新增期刊!
- 北大核心期刊目录换届,我们应该熟知的10个知识点。
- 注意,最新期刊论文格式标准已发布,论文写作规则发生重大变化!文字版GB/T 7713.2—2022 学术论文编写规则
- 盘点那些评职称超管用的资源,1,3和5已经“绝种”了