时间:2019/1/30
论文来源:MonoPerfCap: Human Performance Capture from Monocular Video
该论文中提出了第一个无标记的从单目视频中捕获包含衣物的人物模型的方法。这一方法重建了由关节组成的人物骨骼和中等尺度的非刚性形变。
主要贡献有:
- 提出了第一个只依赖单目视频的human 3D performance capture方法
- 通过结合2D和3D的keypoints检测方法,使用基于批处理的动作优化方式,解决了在单目3D姿态估测任务中固有的关节扭曲(flipping)问题
- 通过自动提取单目剪影(monocular silhouette)恢复了非刚性的形变信息
- 创建了一个涵盖了不同场景的约40k帧的基准数据集
关键点正确估计的比例(Percentage of Correct Keypoints,PCK) 是keypoint detection任务中的一个评价指标,计算检测的关键点与其对应的groundtruth间的归一化距离小于设定阈值的比例
GrabCut是微软研究院的一个课题,是采用graph cut图分割和最大流技术的一种交互式图像分割技术
问题 | 对策 |
---|---|
RGB video中人物的身体部分会存在互相遮挡的问题,但是视频中深度信息是隐式的 | 使用template mesh帮助捕获video中的信息 |
人体会产生复杂的关节运动 | 定义骨骼变形(skeleton deformation)空间 |
皮肤和衣物的变形是非刚性的 | 定义非刚性形变(non-rigid surface deformation)空间 |
主要流程如下:
- 拍摄T-pose的全角度人物视频,使用软件Agisoft Photoscan重建template mesh
- 输入单目视频,利用CNN检测的2D和3D joints,使用基于批处理的优化方法,预测3D pose
- 通过自动提取silhouette,对3D pose进行refinement,并恢复模型表面的非刚性形变信息
人物的关节运动被参数化为一个骨骼(skeleton),有16个joint的skeleton
video序列被划分成不同的batch,batch之间会出现重合的帧。每个batch都被单独处理,batch内部各帧的skeleton被统一优化。
用$B$ 表示batch内各帧的skeleton的集合,通过优化$E_{pose}(B)$ 预测3D pose: $$ E_{pose}(B)=E_{2d}(B)+w_{3d}E_{3d}(B)+w_{d}E_{d}(B) $$
-
$E_{2d}$ 惩罚了来自CNN的2D detection和3D pose投影的距离 -
$E_{3d}$ 惩罚了来自CNN的3D detection和3D pose的距离,其中$w_{3d}$ 由每帧的PCK error决定 -
$E_d$ 强制batch内的每个skeleton轨迹位于低维线性子空间内,从而确保batch内部pose的连续和光滑
从每一帧提取人物silhouette的工作基于GrabCut技术。
原始的GrabCut提取方法需要用户标记一个bounding box来初始化几个$T$ sets,为了实现自动提取,使用skeleton和template投影$R$和$M$来初始化$T$
为了提高分割方法的稳定性,将batch中相邻的颜色梯度变化小的像素分割到同一region
利用silhouette,使用ICP方法对每一帧的skeleton
-
$E_{con}$ 惩罚了3D model的投影边界点与silhouette的对应点的距离 -
$E_{stab}$ 确保优化过程中3D pose不会出现过大的变化
优化结束之后,使用优化后的模型再一次提取silhouette,用于下一步的surface重建
为了恢复人体皮肤和衣物的非刚性形变信息,使用一个参数化的deformation graph
利用优化后的silhouette,使用$E_{surf}$优化模型表面形状: $$ E_{surf}(D)=E_{con}(D)+w_{arap}E_{arap}(D) $$
-
$E_{cons}$ 鼓励模型形状与silhouette拟合 -
$E_{arap}$ 正则化非刚性形变,希望形变as-rigid-as-possible