文章目录
- 1、人体需要检测的关键点
- 2、Top-down方法
- 3、Openpose
- 3.1 姿态估计的步骤
- 3.2 PAF(Part Affinity Fields)部分亲和场
- 3.3 制作PAF标签
- 3.4 PAF权值计算
- 3.5 匹配方法
- 4、CPM(Convolutional Pose Machines)模型
- 5、Openpose
- 5.1 序列的作用
- 5.2 整体框架
1、人体需要检测的关键点
在本项目中,需要检测人体18个关键点,除了下图所标注的17个关键点外,还有1个脖子关键点
2、Top-down方法
1、检测得到所有人的框;
2、对每一个框进行姿态估计输出结果
Top-down方法的问题
1、姿态估计做成啥样主要由人体检测所决定,能检测到效果估计也没问题
2、但是如果俩人出现重叠,只检测到一个人,那肯定会丢失一个目标
3、计算效率有点低,如果一张图像中存在很多人,那姿态估计得相当慢了
能不能设计一种方法不依赖于人体框而是直接进行预测呢?有的,接下来请看下面的方法
3、Openpose
3.1 姿态估计的步骤
姿态估计的2个步骤
1、识别出图片中所有关键点,
2、按顺序拼接同属一个人的所有关键点
如下面左图所示,我们识别人体18个关键点中的右肩关键点,就在图片中建立热度图(高斯),识别18个关键点就需要建立18个特征图
3.2 PAF(Part Affinity Fields)部分亲和场
PAF作用:将属于同一个人的不同关键点按顺序拼接
整体框架如下,1张图片经过CNN网络后分成2个网络,Parts Detection网络是预测关键点,Parts Association网络是预测方向,人体18个关键点总共需要19个不同的方向,而确定方向至少需要1个平面,即 x x x 和 y y y 坐标,所以Parts Association需要预测19x2=38个特征图
3.3 制作PAF标签
Parts Association输出38张特征图,其中19张特征图预测
x
x
x 坐标,19张特征图预测
y
y
y 坐标,每一张特征图的像素点都需要输出坐标值。在PAF标签处理中,把2个关键点所包围的矩形当中的所有像素值的方向与2个关键点的方向都一致。
蓝色和红色分别是两个关键点,
V
V
V 是其向量,
对于其中某个PAF特征图(19种连接方式种的1种),这就相当于得到PAF标签值了,包括所有人在该连接处的向量,
3.4 PAF权值计算
两个关键点j1与j2之间的权值计算方法
d
j
1
d_{j1}
dj1,
d
j
2
d_{j2}
dj2分别表示j1与j2两点的坐标,求j1和j2间各点的PAF在线段j1j2上投影的积分,其实就是线段上各点的PAF方向如果与线段的方向越接近权值就越大
3.5 匹配方法
4、CPM(Convolutional Pose Machines)模型
为OpenPose后面的工作奠定了基础,也可以当作基础框架,通过多个stage来不断优化关键点位置(stage1预测完全错误,2和3在纠正)
stage越多相当于层数越深,模型感受野越大,姿态估计需要更大的感受野,因为进行关键点检测需要更多关于人体的信息,所以感受野越大则人体的信息越多,关键点检测越能检测准确
使用多个stage级联的思想,每个stage都加损失函数,也就是中间过程也得做的好才行
5、Openpose
两个网络结构分别搞定:1、关键点预测;2、姿势的‘亲和力’向量
使用多个stage级联的思想,2个网络结构输出之后再进行特征融合,因为方向的预测离不开关键点的位置信息,关键点的位置信息也与方向有关
5.1 序列的作用
多个stage,相当于纠正的过程,不断调整预测结果
5.2 整体框架
两个分支都要经过多个阶段,注意每个阶段后要把特征拼接一起