一种基于单张rgb图像的双流多尺度手部姿态估计方法
技术领域
1.本发明属于计算机视觉领域,具体涉及一种针对rgb图像的基于双流多尺度网络的手部姿态估计方法。
背景技术:2.人与人之间的日常交际过程中,自然语言、书面语言和肢体语言是三个最为主要的表达方式,但是前两者均会受到地域、国家、种族、文化的限制,而肢体语言不仅灵活多变,能够表达人们一些基本的意图,并且直观易懂,不容易产生歧义。因此,肢体语言逐步受到人机交互研究者的青睐。而人类的双手更是肢体语言表达时最为重要的部分之一,能够传达丰富的信息,所以,让计算机读懂人类的手所传达的信息是有价值而且有必要的。
3.手势是人类与外界传递信息的主要方式,由于它的灵活自由和复杂多变,手势动作包含了大量的有用信息,手承担了生活中的绝大多数如交流、操作等工作。众所周知,绝大多数机器的操作都是通过手来操作完成的。因此,无论是自然人机交互,还是为机器人传递人手操作经验,首先需要做的是估计人手的姿态,并将手的姿态信息传递给机器设备,进而进行人机交互。
4.目前手姿态估计的方法大致分为两个阶段,首先输入图像估计出手的2d姿态,然后再通过2d姿态回归手的3d姿态。根据输入图像的种类可以将手姿态估计大致分为三类:1)根据深度图像进行手部姿态估计:传统上基于深度图像的方法是手部姿态估计的主要方法。深度图像包含一定的深度信息,在进行3d姿态回归过程中能够更好的得到手部关节的三维信息,但是现阶段的深度摄像机的成像范围十分有限,而且质量不够高,会给依赖深度图像作为输入的手部姿态估计方法带来很大影响;同时深度图像在实际中的应用不多,通常人们很难获得深度图像。2)根据多张rgb图像进行手部姿态估计:与基于深度图像的方法相比,基于多张rgb的图像获取比较容易,同时从不同视图拍摄的多个rgb图像包含丰富的3d信息,因此,有些方法将多幅图像作为输入,以减轻咬合问题。此方法虽能够得到一个较高的精度且能够有效的解决手的自遮挡问题,但是所需要的训练、测试资源较大,且数据集的采集也比较复杂。3)根据单张rgb图像进行手部姿态估计:与上述两种方法相比,单张rgb图像更容易获取,更实用,目前基于rgb单张图像的手势姿态估计广受关注。但是仅从单张rgb图像估计三维手部姿态,因为输入深度信息的缺失,面临更大的挑战性。手势姿态估计方法通常包括两个阶段,分别是基于输入图像估计手的2d姿态,以及通过2d姿态回归手的3d姿态。
5.影响手势姿态估计的因素包括部分手势存在自遮挡现象、某些近邻关节在3d姿态回归时存在预测歧义等,本发明针对这些问题开展工作。
技术实现要素:6.本发明针对手势自遮挡、近邻关节预测歧义、传统图卷积在每个节点共享权重从而缺少语义信息这三个问题,从手势姿态估计的两个阶段着手,提出了改进的手部姿态估
计方法。包括:提出基于两种拓扑结构的双流手势姿态估计方法,解决手势自遮挡问题;提出多尺度u
‑
net的3d手势姿态回归方法,解决邻近关节在回归时预测歧义的问题;首次引入语义图卷积网络到手姿态估计问题,使每个关节的节点权重不同,从而有力描述了各关节的语义信息,综上提升了2d姿态估计和3d姿态回归的精度。具体技术方案如下:
7.步骤1)提取单张图像的特征并得到手部关节2d姿态初始坐标;
8.步骤2)利用双分支网络进行2d姿态估计,得到手部关节2d姿态准确坐标,所述的双分支网络具有结构相同的两路分支;
9.通过第一步得到一个n
×
f的特征矩阵,n表示手部关节的数量,f表示特征维度,同时可以得到一个图。我们在第二步中利用第一步得到的图,根据手的不同连接关系设计了两种图结构,每种图结构使用不同的邻接矩阵表示,从而设计出了双分支的网络结构。各分支都将上述得到的特征矩阵以及相应的邻接矩阵输入到由语义图卷积层组成的2d姿态优化网络中,从而每个分支都得到一个手部的2d姿态。
10.步骤3)利用多尺度语义图u
‑
net网络估计手部关节的3d坐标,所述多尺度语义图u
‑
net网络具有结构相同的两路分支,每个分支的多尺度语义图u
‑
net网络输入均为步骤2)中一路分支得到的2d姿态坐标和相应的邻接矩阵,输出为手部关节的3d姿态;然后再将两个分支得到的3d姿态进行加和求平均,最终输出手部关节的3d坐标。
11.有益效果
12.本发明提出了一种新的基于手部关节的两种拓扑结构的双流、多尺度的网络模型,解决了上述基于单张rgb图像的自遮挡、近邻关节预测歧义问题,实现了从单张rgb图像中获得高精度的手部关节的三维坐标。现有的方法大多是在训练过程中使用深度图像对网络模型的训练作为引导从而得到较为准确的手部关节三维坐标。与现有的方法相比,本发明是基于手的两种不同的拓扑结构从而更好的利用了手的关节之间的信息,同时利用不同手部关节的信息可能存在于不同的特征上设计了双流多尺度的网络模型。最终实现高精度的手部姿态估计。
附图说明
13.图1手部姿态估计方法整体示意图;
14.图2手的两种拓扑结构示意图;
15.图3多尺度图u
‑
net网络模型;
16.图4手骨骼损失示意图。
具体实施方式
17.本发明由三个部分组成:1)特征提取和2d姿态初始化,将图像输入到网络中提取图像的特征并获得初始的手部关节的2d姿态;2)2d姿态估计,利用1)中得到的特征和初始2d姿态,获得手部关节的两种拓扑结构分别输入到2d姿态优化网络中细化2d姿态;3)3d姿态回归,利用手部不同关节可能在不同尺度的特征上的特征,设计出多尺度特征融合的图unet 3d回归模型。该手部姿态估计方法的整体示意图如图1所示,两种拓扑结构如图2所示,3d回归模型如图3所示。
18.1)特征提取和2d姿态初始化
19.首先使用resnet50网络提取输入图像的2048维特征向量,并将这2048维向量经过一个额外的全连接层得到初始的2d关节坐标,再将resnet50网络提取的2048维特征向量与得到的初始2d关节坐标进行拼接得到一个n
×
f的特征矩阵,其中n表示手部关节的数量,在本发明中n=21,包括1个手腕关节、5个掌指关节、各手指3个指关节;f表示特征维度,在本发明中f=2050,包括图像的2048维特征和每个关节点的2d关节坐标x和y。
20.2)2d姿态估计
21.通过第一步中得到的图,我们设计了手的两种不同的图结构,从而设计出双分支网络;两种图结构利用手的不同连接方式,可以在后续网络中进行特征互补,从而得到更准确的手部姿态。这两种图结构在本发明中分别使用不同的邻接矩阵进行表示,将第一步中得到的特征矩阵n
×
f以及每个分支的邻接矩阵a分别输入到由3层语义图卷积层组成的2d姿态优化网络中得到手部的2d姿态。鉴于之前的手部姿态估计方法使用图卷积网络时不能更好的表达手部关节之间的相关联系,本发明设计了两种不同的图结构从而更好的表达手关节之间的联系。两种图结构如图2所示。第一种图结构称为物理连接,它是利用手的物理关节之间的联系,这也是以往方法中常用的一种拓扑结构,它可以有效的利用每个手指上的关节之间的关系,从而对于表示一些较为简单的手势更有优势。第二种图结构称为对称连接,它是利用每个手指相同关节之间的联系,以往方法中都未曾考虑手指相同关节处的相互作用及其空间联系,它可以有效的利用每个手指相同关节处之间的联系,从而有效地解决一些自遮挡问题,而且由于手的运动中,手指相同关节处的动作极为相似,那么在运动过程中相邻关节之间就存在着某种关系,这种图结构能够更好的表述这种关系,比如在手抓取物体和握拳的动作中,手部存在着自遮挡的情况,利用这种连接方式,我们可以根据可以看到的关节更好的去估计那些被遮挡的关节。因此该结构对于一些具有自遮挡的手部关节的手势更有优势。两种图结构分别使用不同的邻接矩阵进行表示。对称连接的邻接矩阵的构建方法为:令g={v,e}表示一个图,其中v是n个手关节点的集合,e表示边;邻接矩阵a,当两个关节点之间相连时a
ij
=1否则a
ij
=0,i和j分别表示手的两个关节;每个手指有三个关节,指尖处为第三关节,指尖之下的两个关节分别为第二关节和第一关关节,例如中指从掌关节之上的关节开始分别为中指第一关节、中指第二关节、中指第三关节;相邻手指的第一关节之间相互连接、同样第二关节之间相互连接、第三关节之间相互连接;手掌有6个关节,其中一个为腕关节,腕关节与其余的5个掌指关节相连,相邻掌指关节之间相连。
22.由于手部各关节之间存在着一定关联性,关节与关节之间的邻接关系可以使用邻接矩阵表示,而语义图卷积可以很好的描述这种关节与关节之间的联系并能更好的提取各关节点的语义信息,从而得到更好的特征表示,因此本发明采用由3层语义图卷积层组成的2d姿态优化网络作为2d姿态估计的基础网络模型。
23.传统图卷积的基本公式如下:
[0024][0025]
其中,是第l层输入特征矩阵,表示第l层输出特征矩阵;表示关节数量,k表示图卷积网络的输入特征维度,是相对于a对称归一化后的矩阵,a表示邻接矩阵。
[0026]
可见传统的图卷积操作在各个节点共享权重,事实上,手部每个关节对手部其他
关节的影响不同,因此,共享权重是不够恰当的,为了更好描述每个节点的语义信息,本发明首次引入语义图卷积到手姿态估计以期望达到更好的效果。语义图卷积公式如下:
[0027]
x
(l+1)
=σ(wx
(l)
ρ
i
(m
⊙
a))
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0028]
其中ρ
i
是softmax非线性变换,用于归一化矩阵元素。
⊙
表示矩阵像素级运算,如果矩阵a中元素a
ij
的值为1,那么返回矩阵m中m
ij
元素的值,否则的话,返回值经过ρ
i
操作得到近似0的值。矩阵a是节点的邻接矩阵,表示各节点间的连接关系。σ表示relu非线性激活函数。表示可学习的加权矩阵。x0为网络的输入,在本发明中x0=n
×
f为第一阶段得到的特征矩阵。
[0029]
在本发明中,精确的2d姿态估计通过3个语义图卷积层实现,输入x0=n
×
f的特征矩阵,输出是准确估计的n个关节点的2d坐标。每层的输入输出维度如下,其中箭头表示语义图卷积操作:(21,2050)
→
(21,128)
→
(21,16)
→
(21,2)。括号内第一个数21表示手的关节数量,第二个数表示每个关节的特征维度。
[0030]
3)基于双分支的多尺度3d手部姿态估计
[0031]
大多数文献采用图卷积和nonlocal模块作为3d姿态回归器,在本发明采用图u
‑
net网络作为基础网络模型,同时设计出多尺度特征融合的过程,从而更准确地得到点与点之间的关系,这样能够更好的消除由2d姿态到3d姿态产生的歧义性。其网络图如图3所示。其中输入为在第二步中得到的2d手部姿态坐标,经过下采样、上采样和多尺度特征融合后,在经过一个语义图卷积层输出手部关节的三维坐标。
[0032]
多尺度的特征在计算机视觉问题中一直都是有应用的,而且多尺度特征的融合也表现出了惊人的性能。由于手关节各部分的特征并不一定都集中在最后一层特征上,不同部位的关节可能分布在不同尺度的特征上,因此本发明利用图u
‑
net网络的解码器过程进行多尺度的特征融合,最终利用一个语义图卷积层得到手部关节的三维坐标。该网络包括三个阶段:下采样、上采样、多尺度特征融合,网络首先在下采样过程中得到手关节的全局信息,然后通过上采样来恢复分辨率。为了保留底层信息,通过一些跳过连接将下采样阶段的特征加到上采样分支中。最后将多尺度下得到的特征合并后预测手部关节的三维坐标。其具体过程如下。
[0033]
下采样阶段:大多数文献中,图池化都是使用sigmoid函数,而使用sigmoid函数会在反向传播过程中产生非常小的梯度,从而导致网络在整个训练阶段都没有更新随机初始化的选定节点,失去了池化层的优势。本发明中使用了一个全连接层,并将其应用于特征矩阵的转置,这种完全连接层可以作为每个特征的内核,并输出所需节点的数量。其下采样的计算过程如下:
[0034]
y0=g0(x)
ꢀꢀꢀꢀꢀꢀ
(3)
[0035]
p
i
=pooling
i
(y
i
‑1) i=1,2,
…
,5
ꢀꢀꢀꢀꢀ
(4)
[0036][0037]
其中表示网络的输入,为第二阶段得到的手部关节2d姿态坐标矩阵,n为关节数,l为特征维度(在此n=21,l=2);i表示下采样的次数,表示下采样的图卷积运算,y
i
表示图卷积的输出,pooling
i
(
·
)表示下采样计算即池化计算,p
i
表示池化层的输
出,fc(
·
)表示全连接层运算。
[0038]
上采样阶段:在本发明中,上采样即反池化层使用转置卷积的方法,使用完全连接层将其应用到特征的转置矩阵以获得所需数量的输出节点,然后再次对矩阵进行转置。其反池化的计算过程如下:
[0039][0040]
其中u
i
表示上采过程中每层的输出,unpooling
i
(
·
)表示反池化计算(即上采样),表示特征融合即特征拼接,表示下采样的图卷积运算。
[0041]
多尺度特征提取阶段:由于多尺度策略可以更好的捕获全局上下文信息,因此本发明是在上采样阶段中,在每个尺度分别直接上采样到21个节点,然后通过一个图卷积层,将节点的维度输出为4维即(21,4),然后将各个尺度的特征进行拼接后通过两个图卷积层得到手关节的三维坐标。其计算过程如下:
[0042][0043][0044]
其中表示多尺度图卷积计算,f
i
为不同尺度下图卷积层的输出,unpooling
i
(
·
)表示反池化计算(即上采样)。out表示多尺度融合后的输出。
[0045]
为了能够更好的端到端地训练网络,我们采用以下损失函数作为整个网络的目标函数。
[0046]
在2d姿态估计和2d姿态初始过程中,我们使用的损失为:
[0047][0048]
其中h
j
表示2d姿态的标签,即公开数据集中自带的2d坐标,表示预测的2d姿态坐标,n表示手关节的总数,在此处n=21。
[0049]
在3d姿态估计中使用姿态损失l
pose
,骨骼长度损失l
len
和骨骼方向损失l
dir
。
[0050]
姿态损失l
pose
为:
[0051][0052]
其中表示3d姿态的标签,即公开数据集中自带的3d坐标,表示预测的3d姿态坐标。
[0053]
骨骼长度损失l
len
和骨骼方向损失l
dir
为:
[0054][0055][0056]
其中b
i,j
表示手部第i个关节和第j个关节之间的骨骼矢量,即:
[0057][0058]
3d手部姿态估计网络的损失函数l
3d
为:
[0059]
l
3d
=λ
pose
l
pose
+λ
len
l
len
+λ
dir
l
dir
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(14)
[0060]
其中λ
pose
、λ
len
和λ
dir
分别为3d姿态损失、骨骼长度损失和骨骼方向损失之间的权重超参数,在此处设λ
pose
=1、λ
len
=0.01、λ
dir
=0.1。其骨骼损失示意图如图4所示。
[0061]
总的目标函数l为:
[0062]
l=λ
init
l
init
+λ
2d
l
2d
+λ
3d
l
3d
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(15)
[0063]
其中λ
init
、λ
2d
和λ
3d
分别为初始2d姿态损失、2d姿态损失和3d姿态损失的超参数,在此设为:λ
init
=0.01、λ
2d
=0.01、λ
3d
=1。
[0064]
本发明使用公开的数据集stb和ferihand作为模型的训练和测试数据集进行验证,同时使用公开的obman数据集作为网络模型的预训练数据集。
[0065]
数据集
[0066]
ferihand数据集:该数据集由真实图像组成,并显示带有和不带有对象交互作用的样本。它是通过多视图设置捕获的,包含33,000个样本。记录赖在32个对象的手势,提供了21个关节点的3d注释。对于本项发明,将数据集划分为80%进行训练和20%进行测试。
[0067]
stb数据集:stb数据集是一个真实的数据集,包含18000张图像,21个三维手关节位置的ground truth和相应的深度图像。在实验中将15,000张图像用于训练样本,3000张图像用于测试样本。为了与obman数据集一致,将stb数据集的根关节从手掌中心移动到手腕处。
[0068]
obman数据集:obman数据集是合成的用于手姿态估计验证的大型数据集。该数据集中的图像是使用shapenet渲染手得到的。obman包含141,550个训练数据、6463个验证数据和6285个测试数据。尽管有大量标注数据,但是这些合成的图像训练的模型推广到真实图像的效果并不好。但是可以在obman的大规模数据集上对模型进行预训练,然后使用真实图像对网络模型进行微调对本发明的模型训练是有帮助的。
[0069]
评估指标
[0070]
本发明通过计算3d标签坐标与估计的坐标之间的欧氏距离来评估模型。其计算公式如下:
[0071][0072]
其中mpjpe是平均关节误差,t表示样本数量,n表示关节点的数量(在此n=21),表示第t张图像的第i个关节的标签坐标,表示第t张图像的第i个关节的预测坐标。
[0073]
实验与结果
[0074]
本发明的实验是在intel core i5 cpu,11gb ram和nvidia gtx2080ti gpu的ubuntu16.04系统计算机上进行训练和测试。使用的框架为pytorch1.3.1。我们首先使用合成数据集obman对网络模型进行预训练。初始学习率设置为0.001,每500个epoch学习率乘以0.1,共训练5000个epoch;然后使用ferihand数据集将模型端到端训练500个epoch,其初始学习率为0.001,每100个epoch学习率乘以0.1.所有图像大小均调整为224
×
224像素,并传递到resnet网络中。
[0075]
本发明设计完成了两个实验,第一个实验旨在与本发明的bseline进行比对;这里baseline采用bardia等人的方法,使用resnet50网络提取图像特征,再利用自适应的图卷积和图u
‑
net网络进行2d和3d姿态回归;对本发明涉及的双流网络和多尺度模型分别进行
了消融实验。第二个实验是与基于rgb图像的手部姿态估计的一些最新研究方法进行比较。其实验结果如下表所示:
[0076]
表1与现有方法在stb数据集上的比较
[0077]
方法平均关节误差(单位:mm)theodoridis et al.6.93spurr et al.8.56ge et al.6.37yang et al.7.05本发明5.972
[0078]
表2与现有方法在ferihand数据集上的比较
[0079]
方法平均关节误差(单位:mm)parelli m et al.11doosti b et al.8.887ge et al.15.36本发明8.247
[0080]
表3本发明提出的方法的消融实验(平均关节误差,单位:mm)
[0081]
方法stb数据集ferihand数据集baseline8.5738.887baseline+语义图卷积7.2568.406resnet50+双流网络8.0448.637resnet50+双流网络+语义图卷积7.2028.358resnet50+多尺度7.6578.559resnet50+多尺度+语义图卷积6.6558.435resnet50+双流+多尺度6.0858.401resnet50+双流+多尺度+语义图卷积5.9728.247
[0082]
综上分析,本发明提出的双流、多尺度网络模型优于传统的手部姿态估计方法,即它可以在单张rgb图像作为输入的情况下,得到更高精度的手部姿态估计。本发明的模型使用了手的两种不同的图结构,从而能够更好的利用手关节相邻关节之间的特征,同时两种结构之间也存在互补结构特征;而多尺度的特征能够更好的利用手部关节的语义信息从而降低单张rgb图像回归过程中近邻关节在预测时的歧义性;引入语义图卷积网络到手部姿态估计,更有力地描述了各关节的语义信息。从而得到更为准确的3d手部姿态。