当前位置: 代码迷 >> 综合 >> DensePose:Dense Human Pose Estimation In TheWild
  详细解决方案

DensePose:Dense Human Pose Estimation In TheWild

热度:88   发布时间:2023-12-13 09:11:29.0

个人的一些拙见,欢迎批评指正,欢迎互相交流…

一、概述预览
DensePose 估计旨在完成从 RGB图像中所有的人体像素 到 人体3D表面 的映射。
相关构成,用文中的话即为(Mask-RCNN + DenseReg)

二、主要工作
主要工作可以总结为三点:
1.通过收集SMPL与COCO中人的密集坐标对应,手动标注建立标注了DensePose COCO数据集。
2.设计了一个可以用于输出uv坐标的框架。
3.训练了一个‘teacher’网络模型,来补齐稀疏点图像到密集监督信号。

三、相关知识
个人认为,要理解整篇文章需要的知识储备,涉及的比较多

1.UV纹理贴图坐标:
请参考:

https://www.cnblogs.com/jenry/p/4083415.html

2.Mask-RCNN

https://blog.csdn.net/linolzhang/article/details/71774168

3.DenseReg
没有找到相关的介绍教程,可以看看原论文,或者过些日子写一篇关于DenseReg的个人理解。

4.Detectron
和Mask-RCNN一样都是在FaceBook的Detectron平台上实现。

https://github.com/facebookresearch/Detectron

四、具体任务解析

1.COCO-DensePose Dataset
挑选了50K个人,手动标注了近5百万标注点
Fig2:
Task1:通过让注释者将图像分割成语义区域来标注图像和3D表面模型之间的密集对应。Task2:然后对任意点上的每个采样点进行相应的表面点定位渲染部分的图像。“红叉”指出当前的注释点。已渲染的表面坐标,将收集2D点在3D模型上的定位。

Fig3:
(待补图)
用于收集各部分对应的用户界面注解:我们为注解者提供了六个预先录制好的注解身体部分的视图,使整个部分表面是可见的。一旦对某一目标点进行了注释,则点同时显示在所有渲染的图像上。

对于每一张图像k,利用di,k来估计正确表面点 i 与人工标注者估计的对应点 i^ 的测量距离。g(·,·)表示了两个测量点之间的距离。
(补公式)

对于任何图像k,只注释 和 估计错误 在一组随机抽样的曲面点上Sk 和 内插表面其余部分的误差。最后, 我们对所有用于评估的K个示例中的错误进行平均注释器的性能。
Fig5:
(补图)
注释错误非常小的在表面上有明显的特征,可以帮助定位(脸,手,脚),而在比较大的时候通常被衣服覆盖的区域(躯干,后面,臀部)注释器错误可以变得更大。

2.网络结构
在densepose这部分采用了FCN结构,这一点也是因为以前有人证明过卷积核拥有着不错的分类功能。在网络的细节上,采用了局部化处理回归,首先进行二分类,得出前景与背景,然后将前景再进行细分成各个不同的身体部位进行分别回归,因此也会建立局部的二维坐标系。
第一个步骤先要去进行身体部位的回归分类,分为了24+1类,然后再对每一个去回归出U,V两个feature maps。
由于人体结构复杂,因此作者将其分解为多个独立的部分,并使用局部二维坐标系对每个部分进行参数化,以识别该表面部分上任何节点的位置。

2.2 Region based Dense Pose Regression
fig7

2.3 Multitask cascaded architectures
fig8
利用了多任务的Multi-task cascaded architectures结构,将 mask 和 keypoint的输出特征 与 densepose 的特征 互相融合训练。而且也可以看出来使用了多stage的思想,进行“中继监督”训练。

四、实验部分
1.teacher net
尽管目标是在测试时进行密集的姿态估计时间,在每一个训练样本中,只标注了稀疏像素的子集,每个人大约100-150。这并不一定会在训练中造成问题,因为可以进行分类/回归loss忽略了基本GT对应的坐标没有收集到,,只要不把它们包含在求和里在单像素损失。
但是,作者在实验椎中观察们通过“inpainting”获得了更好的结果。
特别地,我们只保留网络对被标记为前景的预测,以忽略网络错误在背景区域。

2.Conclusion
table 1

  相关解决方案