challenge
关键点可见性受穿着,姿态,视角影响很大,而且面临着遮挡,光照,雾等环境的影响,2d人体检测和3d人体关键点视觉上会有明显的差异,身体的不同部位有视觉缩短的效果,使得人体骨骼关键点。
关键点检测算法
关键点检测算法主要分为自上而下和自下而上两种。
- 自上而下
就是目标检测+单人骨骼关键点检测
1关键点的局部信息区分度很弱,背景中很容易出现同样的局部信息造成的混淆,需要考虑较大的感受野区域。
2 对于人体的不同部位,关键点检测的难易程度不一样,腰部腿部这类关键点检测明显难于头部关键点的检测,所以不同的关键点要区别对待
3 自上而下的关键点依赖于检测算法提出的proposals,会有检测不准,或者重复检测
人体检测加从人体关键点检测,目标检测将人检测出来,然后在检测框的基础上针对单个人做人体骨骼关键点的检测,主要有G-RMI,CFN,PMPE,MASK-RCNN.
**convolution pose machine:**本文将深度学习应用到人体姿态估计用卷积图层表示纹理信息加空间信息,主要网络结构分为多个stage,第一个stage会产生初步的关键点检测,结果,接下来的几个stage均以前一个stage的输出从原图中提取的特征作为输入进一步提高关键点检测的效果。
各局部响应图来表示部件之间的空间约束,响应图和特征图一起作为数据在网络中传递,人体关键点在空间上的先验分布会指导网络学习。
使用多阶段监督,对各个阶段预测输出都有监督训练,避免过深网络的难以优化问题,感受野随着stage的增多而逐渐变大,最后值得一提的是,第一阶段对于原图提取特征的网络区别于stage->1的特征提取网络,因为第一个阶段是预测初步的结果,而后几个阶段是结合关键点空间先验知识,对原图特征提取上一个stage预测结果的进一步精化。
cascade pyramid network
不同类别的关键点检测的难以程度不一样,整个结构的思路是先检测比较简单的关键点然后再检测比较难的关键点,最后检测更难或者更不可见的关键点。
GlobalNet。负责检测容易和难检测的关键点,较难的检测主要出现在较深层,使用高层的语义信息。
refinanet:更难或者更不可见的关键点,使用hard negation mining策略来界定难以程度,训练时取损失较大的top-k,关键点计算损失,然后进行梯度更新,不考虑损失较小的关键点,
PMPE:
自上而下的keypoint检测在目标产生的proposals的过程中,可能出现检测定位框定位误差,对同一个物体重复检测的问题。
采用空间变换网络将同一个人体产生的不同的裁剪区域都变换到一个较好的结果,如人体在裁剪区域的正中央,一个人体的产生的不同proposals有不同关键点检测效果。
- 自下而上
依赖于人体检测器的表现,姿态估计是对有人自的区域执行的,定位误差和重复的边界框预测可能导致姿态估计提取错误,只能得到次优解,用sstn从不标准的边界框提取高质量的担任区域,sppe来估计这个人体姿态骨架图,利用空间变换器网络将估计的姿态映射会原始图像坐标,利用参数化姿态估计非极大值抑制技术解决冗余问题。使用pose guided proposals generator来增强训练样本,以更好的训练sppe和sstn网络。
首先将所有的关键点检测出来,通过相关策略,将所有的关键点聚类,对关键点关系进行建模.
openpose首先检测图像中的部件,利用部件置信图,再部件之间形成二分图,利用Paf值,对二分图较弱的链接进行剪枝,估计出人体姿态框架图,并将其分配给图像中的每个人。
deepcut
1 生成候选集合,表示图像中所有人体部位所有可能的位置从身体部件候选集中选择身体部件的子集。
2 使用身体部件集合中类别标签中的每个身体部位,身体部位表示部件的类型,如,手臂,眼,躯干
3 分配属于同一个人的身体部位。
mask-rcnn
提取特征图-RPN(区域候选网络{在特征途中进行})-RoIAligh减少所提取特征的尺寸使得大小一致,将提取的特征传递cnn并行分支,将最终预测边界框和分割掩码,分割问题,训练目标检测来来识别人脸位置,并结合人的位置和他们关键,我们将得到的每个人体姿态框架图。
part segmentation:
人体不同部位的分割;关键点落在分割区域的特定位置,通过部件分割对关键点之间关系建模,既可以显示的提供人体关键点的空间先验知识,指导网络的学习,同时最后对人体关键点进行聚类也能起到相应连接关键点的作用。
part affinity field:对人体的不同肢体结果进行建模,使用向量场来模拟肢体结构,解决了单纯使用中间点是否在枝干上造成的错误连接问题、
association embeding:使用高维空间向量编码不同关键点之间的关系,即同一个人的不同关键点在空间上是尽可能接近的,不同人不同关键点在高维空间的距离来判断两个关键点是否属于同一个人。
coordinate,heatmap,heatmap+offset
coordinate:直接将关键点左边作为最后网络需要回归的坐标,这种情况可以直接得到每个坐标的位置信息。
heatmap:每一类坐标用一个概率图表示,图片中的每个像素位置都给一个概率图,,该点对应类别关键点的概率,比较自然的是距离类别关键点越近的像素概率越接近1,距离关键点越远的概率越接近0,可用高斯函数模拟,coordinate的本质就是回归每个关键点相对于一个图片的offset,而长距离的offset在实际过程中很难回归的。
heatmap回归关键点的概率,在一定程度上提供了监督信息,网络收敛的快,同时对每个像素位置进行预测,能够提高关键点的定位精度,在可视化方面,heatmap优于coordinate。
heatmap+offset
Google的heatmap是指的距离目标关键点一定范围内的所有的点概率值为1,除了heatmap以外,使用offset偏移量来表示距离关键点一定范围内像素位置与关键点之间的关系,这种方式不仅构造了位置信息,同时offset也表示对应像素位置与目标关键点之间的方向信息。
人体关键点检测是计算机视觉较为活跃的一个研究方向,人体骨骼关键点检测算法还没有达到比较完美的境界,较为复杂的场景上仍然会出现很多错误的检测结果。
自下而上不如自上而下,因为后者加入了整个人体的空间先验,个人认为,自下而上的关键点定位没有显示的去建模整个人体的空间信息,而只是建模了局部的空间信息。