赞
踩
视频链接:B站-人体关键点检测与MMPose
关键点提取,属于模式识别
人体姿态估计的下游任务:行为识别(比如:拥抱。。)
下游任务:CG和动画,这个是最常见的应用
下游任务:人机交互(手势识别,依据收拾做出不同的响应,比如:HoloLens会对五指手势(3D)做出不同的反应)
包括:
2D人体姿态估计的任务:
注意,这里的输出是固定对应(预定义的)18个关节的坐标,就是要找这18个位置的坐标
使用深度学习的模型直接回归坐标有些困难,精度不是最优(效果不好)
另一种思路是:不直接回归关键点的坐标,而是预测关键点位于每个位置的概率。
基于热力图天然符合神经网络的卷积算子(对每个像素都进行计算,得到每个像素的概率)
如果想要使用基于热力图的方式,那么首先要根据已有的标注数据生成热力图。
复习一下高斯函数(红色线代表标准正态分布):
上图是用期望值及方差作为参数表示的高斯曲线
高斯函数是正态分布的密度函数,下图的红色是标准正态分布
正态分布的数学期望值或期望值
μ
μ
μ等于位置参数,决定了分布的位置;其方差
σ
2
\sigma^2
σ2的开平方或标准差
σ
\sigma
σ 等于尺度参数,决定了分布的幅度。
可以直接看:
将通过关键点标注生成的真值热力图,作为True label,与预测模型预测出来的热力图Predict label逐点比对(就是关键点附近那一小片区域的热力图),计算损失
所以基于热力图的方法关键就是中心点位置
(
x
j
,
y
j
)
(x_j,y_j)
(xj,yj)(训练目标,优化的参数)和区域大小
α
\alpha
α(可以是超参,也可以基于图像缩放得到,缩放系数也是超参)
另一种从热力图还原关键点的方式就是:
这种计算方式还有很好的一个性质:
上面讲的是单人的姿态估计,但是也会有多人姿态估计
最直观的一种方式(自顶向下):
模型串联的坏处,
自底向上方法:先把关键点检测完,再去聚类其属于哪个人
优点:
以分类网络为基础,将最后一层分类改为回归,一次性预测所有J个关键点的坐标
网络结构不变的情况下,使用级联模型的方式,来提高精度。
类似医疗影像分割里的级联:
优势:
劣势:
之前的基于回归方法的姿态估计,
另外,下面这篇文章创新点的部分,要先去看下面的背景知识,看完就基本就懂这个创新点了。
论文就直接在MMPose里找了,这里Topdown Regression + Mobilenetv2 + Rle on Coco
论文arxiv链接:Human Pose Regression with Residual Log-likelihood Estimation
标准化流Normalizing Flow:
在学习确定所有
f
f
f的准确形式后,考虑根据
f
f
f反向推导出
p
0
(
z
0
)
p_0(z_0)
p0(z0)(模型推理),在模型参数确定(
f
f
f已知)后,计算给定数据点(例如:
x
x
x)的概率密度(
p
K
(
z
K
=
x
)
p_K(z_K=x)
pK(zK=x))
模型学习(求解损失函数,对损失函数进行化简)上述公式,对
p
k
(
x
)
p_k(x)
pk(x)取对数,
-1
,因此就变成
p
0
(
z
0
)
−
∑
i
=
1
K
l
o
g
∣
d
e
t
∂
f
i
(
z
i
−
1
)
∂
(
z
i
−
1
)
∣
p_0(z_0) - \sum^K_{i=1}log|det\frac{\partial f_i(z_{i-1})}{\partial (z_{i-1})}|
p0(z0)−∑i=1Klog∣det∂(zi−1)∂fi(zi−1)∣了\Phi
概率分布 p K p_K pK受到构建该分布的神经网络 f 1 , . . . , f K f_1,...,f_K f1,...,fK的全体参数 Φ \Phi Φ控制
除了基于标准化流构建分布(RLE的主要目标,找出关键点的位置分布),RLE还使用了以下两个技巧来降低模型拟合真实分布的难度:
为降低建模分布的难度,假设所有关键点的分布属于同一个位置尺度族,即所有分布由某个零均值的基础分布通过平移缩放得来。(重参数化,重复一部分参数)
所以整体就是:
❓❓❓
推理阶段,则只需要卷积网络预测的平移(❓为什么不考虑缩放)参数,❓不用推理标准化流
挺好理解的,看ppt就行
对标准化流模型得到的标准分布,进一步使用残差似然函数,就变成上图了
MMPose中这个网络的位置:
论文:Stacked Hourglass Networks for Human Pose Estimation
Hourgalss网络,是姿态估计领域标志性的工作
上图的网络结构中,
局部信息是有限的,单纯依赖这个尺度下的局部信息,无法做出有效判断
所以需要组合不同尺度的输入信息进行推断
每级模块分支输出热力图,和GT热力图比较,计算损失。
这个实验就是不同的级联方式和监督方式的消融实验效果。
从上到下依次进行的实验是:
蓝色和绿色最好,说明在中间添加监督信号是更有效的,但是级联和long hourglass的效果最后看起来似乎没有差很多
在当时是SOTA的水平,持续了一段时间。
MMPose中这个网络的位置
使用ResNet配合反卷积形成编码器-解码器结构
位于MMPose的这里,链接
论文链接:Deep High-Resolution Representation Learning for Human Pose Estimation
可以看看这个讲解:陀飞轮-一文读懂HRNet
核心思路:
同时,除了进行人体姿态估计,配合不同的任务头,也可以用来做别的事情。
a. 只取第一层输出,用于人体姿态估计(HRNetV1的操作方式,只使用分辨率最高的feature map。)
b. HRNetV2的操作方式,将所有分辨率的feature map(小的特征图进行upsample)进行concate,主要用于语义分割和面部关键点检测。
c. HRNetV2p的操作方式,在HRNetV2的基础上,使用了一个特征金字塔,主要用于目标检测。
MMPose中这个网络的位置,没有找到这个文章
这个有很明显的缺陷啊。。。
σ
\sigma
σ以内距离,小孩和成年相同关节关键点的距离肯定有很大差距,这个
σ
\sigma
σ的距离设置,挺值得探讨的
另外,这里关于亲合度的定义,也有些问题:
这里的
L
c
L_c
Lc就是一个单纯的单位向量,只给出一个方向,那么在握手等多人某段肢体相连的情况,同时方向还类似的时候,就会被判定属于一个人??
图论:
目前在MMPose中也没看到这个网络
SPM首次提出单阶段解决方案,在取得速度优势的同时,也保留了很高的检测率,同时该方法可以直接从2D扩展到3D(有些坎坷)。
SPM的思想和Yolo很像。
除了之前说的人体姿态估计固定的18个关键点,SPR引入了一个辅助关节(根关节点,Root Joints),来连接其他关键点,统一人体实例和身体关节的信息位置
所以在SPR的基础上提出了Hierarchical SPR,其根据自由度和变形程度将根关节和身体关节划分为四个层次
同样,损失函数也是包含根关节和位移图的两部分loss,不难看出
MMPose的网络里没有
人体姿态估计和物体检测都包含对图像内容的定位
人体检测和关键点检测共用同一个图像特征网络(共用backbone,这和之前基于物体检测的姿态估计是很像的)
注意,
难点,如何从2D恢复3D信息
方式1:直接预测
方式2,利用视频信息
方式3:利用多视角图像
直接运用同一对象的多视角拍摄的图像来预测和还原出3D信息(2D图像生成3D模型)
粗粒度到细粒度,体数据预测??
论文地址:Coarse-to-Fine Volumetric Prediction for Single-Image 3D Human Pose
注意,这里输出的就是一个3D的热力图了(Volume 一般指体数据,3D数据)
采用的是Hourglass级联,深度信息每次逐渐加深,8个Hourglass对应的输出的3D热力图的级联部分的深度大小依次为:{1,2,4,8,16,32,64},(
2
n
,
n
∈
[
0
,
6
]
2^n, n\in[0,6]
2n,n∈[0,6],7个输出),最后一个Hourglass没有级联了,就是自己最后的输出,也是64
上面讲过一个Simple Baseline 2D,这里的Simple Baseline 3D的发现是:
直接用2D坐标预测3D坐标就可以取得比较好的效果,不需要借助图像
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。