在输入深度图像中密集地选取锚点,其stride 为4个像素(
S
t
=
4
S_t=4
St=4),以同时提取全局-局部空间信息,如下图所示
2.2.3 计算关节位置
需要计算关节以下两个位置:
关节
j
j
j的平面内位置
关节
j
j
j的深度值
锚点用途
本质上,每个锚点
a
a
a 都用作局部回归器,以通过平面内偏移预测分支
O
j
(
a
)
O_j(a)
Oj(a)和深度估计分支
D
j
(
a
)
D_j(a)
Dj(a)预测所有关节的3D位置
对于特定的关节,每个锚点的贡献是不同的,通过锚点提案分支获得对应的权重
P
j
(
a
)
P_j(a)
Pj(a)
如何得到关节的3D位置?
对于指定关节,最终通过整合所有锚点的输出来进行本关节的定位,以求得关节的3D位置
关节
j
j
j 的平面内位置和深度值:通过所有锚点输出的加权平均值获得
计算关节
j
j
j在平面内的位置和深度值
{
S
^
j
=
∑
a
∈
A
P
^
j
(
a
)
(
S
(
a
)
+
O
j
(
a
)
)
D
^
j
=
∑
a
∈
A
P
^
j
(
a
)
D
j
(
a
)
(
1
)
\begin{cases} \hat{S}_j = \sum_{a \in A} \hat{P}_j(a)( S(a) + O_j(a) ) \\ \hat{D}_j= \sum_{a \in A} \hat{P}_j(a) D_j(a) \end{cases} \quad \quad (1)
{S^j=∑a∈AP^j(a)(S(a)+Oj(a))D^j=∑a∈AP^j(a)Dj(a)(1)
S
^
j
\hat{S}_j
S^j:关节
j
j
j 在平面内的估计值
D
^
j
\hat{D}_j
D^j:关节
j
j
j 的深度估计值
P
^
j
(
a
)
\hat{P}_j(a)
P^j(a):是锚点
a
a
a 相对于关节
j
j
j的归一化权重,使用softmax进行计算而得
P
^
j
(
a
)
=
e
P
j
(
a
)
∑
a
∈
A
e
P
j
(
a
)
(
2
)
\hat{P}_j(a) = \frac{e^{P_j(a)}}{\sum_{a \in A} e^{P_j(a)}} \quad \quad (2)
P^j(a)=∑a∈AePj(a)ePj(a)(2)
当
P
^
j
(
a
)
>
0.02
\hat{P}_j(a) > 0.02
P^j(a)>0.02:则认为此锚点
a
a
a对关节
j
j
j来说,是一个信息丰富的锚点(informative anchor point)
2.2.4 平面内偏移
O
j
(
a
)
O_j(a)
Oj(a)和深度估计
D
j
(
a
)
D_j(a)
Dj(a)
O
j
(
a
)
O_j(a)
Oj(a):
预测的2D偏移量,由神经网络输出
尺寸:[5184, 15, 2]
总共5184 (72x72) 个锚点,每一个锚点回归出每一个关节的偏移量
D
j
(
a
)
D_j(a)
Dj(a):
预测的深度值,由神经网络输出
尺寸:[5184, 15]
总共5184 (72x72) 个锚点,每一个锚点回归出每一个关节的深度值
功能:
预测关节的3D位置
平面内偏移估计:估计当前锚点
a
a
a与每个关节的偏移量
O
j
(
a
)
O_j(a)
Oj(a)
每个锚点作为局部回归器以预测关节的3D位置,其损失函数为:
l
o
s
s
1
=
α
∑
j
∈
J
L
τ
1
(
∑
a
∈
A
P
^
J
(
a
)
(
S
(
a
)
+
O
j
(
a
)
)
−
T
j
i
)
+
∑
j
∈
J
L
τ
2
(
∑
a
∈
A
P
^
j
(
a
)
D
j
(
a
)
−
T
j
d
)
=
α
∑
j
∈
J
L
τ
1
(
S
^
j
−
T
j
i
)
+
∑
j
∈
J
L
τ
2
(
D
^
j
−
T
j
d
)
(
4
)
loss_1 = \alpha \sum_{j \in J} L_{\tau_1} (\sum_{a \in A} \hat{P}_J(a)(S(a) + O_j(a)) - T_j^i) +\\ \sum_{j \in J} L_{\tau_2} (\sum_{a \in A}\hat{P}_j(a)D_j(a) - T_j^d) \\ \quad = \alpha \sum_{j \in J} L_{\tau_1} (\hat {S}_j - T_j^i) + \sum_{j \in J} L_{\tau_2} (\hat{D}_j - T_j^d) \quad (4)
loss1=αj∈J∑Lτ1(a∈A∑P^J(a)(S(a)+Oj(a))−Tji)+j∈J∑Lτ2(a∈A∑P^j(a)Dj(a)−Tjd)=αj∈J∑Lτ1(S^j−Tji)+j∈J∑Lτ2(D^j−Tjd)(4)
物理含义
预测值(2D位置和深度值)与真值的差异
α
=
0.5
\alpha = 0.5
α=0.5:是平面内偏移量估计与深度估计的平衡参数
T
j
i
和
T
j
d
T_j^i和T_j^d
Tji和Tjd:分别是关节
j
j
j的平面内坐标真值和深度真值
L
τ
(
⋅
)
L_{\tau}(\cdot)
Lτ(⋅):是一个平滑函数
s
m
o
o
t
h
L
1
smooth_{L1}
smoothL1
L
τ
(
x
)
=
{
1
2
τ
x
2
,
f
o
r
∣
x
∣
<
τ
∣
x
∣
−
τ
2
,
otherwise
(
5
)
L_{\tau}(x)= \begin{cases} \frac{1}{2 \tau} x^2, & for |x| < \tau \\ |x| - \frac{\tau}{2}, & \text {otherwise} \end{cases} \quad \quad (5)
Lτ(x)={2τ1x2,∣x∣−2τ,for∣x∣<τotherwise(5)
τ
1
=
1
\tau_1 = 1
τ1=1
τ
2
=
3
\tau_2 = 3
τ2=3:因为深度值的噪声比坐标位置的噪声大
2.3.4.2 信息锚点包围损失
根据从多个不同视角观测关节点的原理,倾向于关节附近信息量大的锚点
信息锚点包围损失如下:
l
o
s
s
2
=
∑
j
∈
J
L
τ
1
(
∑
a
∈
A
P
^
j
(
a
)
S
(
a
)
−
T
j
i
)
(
6
)
loss_2 = \sum_{j \in J} L_{\tau_1} (\sum_{a \in A} \hat{P}_j(a) S(a) - T_j^i) \quad (6)
loss2=j∈J∑Lτ1(a∈A∑P^j(a)S(a)−Tji)(6)
输出尺寸: 输入深度图像通过裁剪和缩放至固定分辨率(Hand: 176 x 176, Body: 288x288)
数据增强:
在平面和深度两个维度进行随机旋转和随机缩放
增加随机高斯噪声(以0.5的概率)
优化器: Adam
学习率: 0.00035,且权重衰减率为0.0001
Body训练epochs: 26
2.4.4 与先进方法的比较
V2V-PoseNet是A2J强有力的竞争者
方法
模型数量
推理速度
A2J
1
快
V2V-PoseNet
10
慢
2.4.4.1 NYU Hand Pose数据集对比测试
2.4.4.2 ITOP Body Pose数据集对比测试
索引号
时间
名称
33
2011
Jamie Shotton, Andrew Fitzgibbon, Mat Cook, Toby Sharp,Mark Finocchio, Richard Moore, Alex Kipman, and Andrew Blake. Real-time human pose recognition in parts from single depth images
50
2015
Ho Yub Jung, Soochahn Lee, Yong Seok Heo, and Il Dong Yun. Random tree walk toward instantaneous 3d human pose estimation
5
2016
Joao Carreira, Pulkit Agrawal, Katerina Fragkiadaki, and Jitendra Malik. Human pose estimation with iterative error feedback
20
2016
Albert Haque, Boya Peng, Zelun Luo, Alexandre Alahi, Serena Yeung, and Li Fei-Fei. Towards viewpoint invariant 3d human pose estimation
41
2018
Keze Wang, Liang Lin, Chuangjie Ren, Wei Zhang, and Wenxiu Sun. Convolutional memory blocks for depth data representation learning
18
2017
Hengkai Guo, Guijin Wang, Xinghao Chen, and Cairong Zhang. Towards good practices for deep 3d hand pose estimation
26
2018
Gyeongsik Moon, Ju Yong Chang, and Kyoung Mu Lee.V2V-PoseNet: Voxel-to-voxel prediction network for accurate 3d hand and human pose estimation from a single depth map
2.4.4.3 K2HPD Body Pose数据集对比测试
2D深度学习数据集
Ground Truth:像素级的平面坐标
网络:删除了深度估计分支
索引号
时间
名称
2
2016
Adrian Bulat and Georgios Tzimiropoulos. Human pose estimation via convolutional part heatmap regression
基于深度图的位姿估计[2018至今]1. 简介2. A2J回归网络2.1 历史总结2.1.1 先进的非深度学习方案2.1.2 2D深度学习方案2.1.3 3D深度学习方案2.1.3.1 基于3D-CNN1. 简介2. A2J回归网络论文:A2J: Anchor-to-Joint Regression Network for 3D Articulated Pose Estimation from a Single Depth Image (2019)核心思想本着整体学习以增强泛化能力的精神,通过