![c8b9da61fdd48e0759dcd0b88eff7504.png](https://i-blog.csdnimg.cn/blog_migrate/883672f7a0b85b609f4771d84e22abc7.jpeg)
MulayCap: Multi-layer Human Performance Capture Using A Monocular Video Camera
最近几年,深度学习的发展为基于单目RGB相机的人体动作捕捉注入了新的动力,越来越多的新方法涌现,为 AI + 5G 时代的人体动作捕捉提供了无限可能。
![1c4cd970135b76752e930080a5c6caef.png](https://i-blog.csdnimg.cn/blog_migrate/b32d15dcdf0a671cdd26334fc04f3240.jpeg)
文章作者来自清华大学、香港大学和北京航空航天大学,目前文章已经被 提交到 TVCG 期刊。当前基于单目 RGB 相机的人体动作捕捉如 MonoPerfCap [2] 、 LiveCap [3] 和 DeepCap [7] 等方法都需要预先扫描得到人体的网格模型,再使用该模型进行 3D 姿态追踪,其缺陷主要在于以下几点:
- 首先,这些方法需要花费额外的精力和时间去预先扫描人体的模板网格,这使得对于普通消费者或者互联网视频的人体动作捕捉难以应用;
- 其次,这类方法都使用单个网格来表达人体,皮肤和衣服不可分离,使得诸如分层和滑动这类的衣服和人体之间的交互难以刻画
- 最后,模板网格扫描得到之后,其对应的纹理在后面追踪的过程中一直固定,这在某些情况下会产生不够真实的重建结果。
但如果没有预先扫描得到的人体模型,基于 RGB 视频的人体动作捕捉是一个非常难的问题,在没有几何和外观的先验信息下,很难从视频帧中同时恢复出运动 (motion)、几何 (geometry)、外观 (appearance) 信息。
文章作者提出了一个基于多层表达 ("multi-layer" representations) 的 RGB 视频人体动作捕捉的新方法 MulayCap,能够不需要预先扫描的人体模板网格,直接重建人体的动态几何和纹理。这里”多层“体现在两个层面:
- 几何是多层的。作者使用多个几何层 (geometric layers) 来表达穿衣服的人体,即一个赤裸的人体网格层和一个服装层,而服装层又分为上衣层如短袖、裙子等,和下装层如短裤、长裤等。
- 纹理是多层的。作者将输入的视频图片分解为反射率层 (albedo layers) 和明暗(光照)层 (shading layers)。
多层表达的使用能够实现对人体动作更高层次的语义建模,人体、服装、albedo、shading 被分别建模,并充分地集成在一起产生一个高质量高真实感的重建结果,并能同时对重建的人体运动进行编辑,如重光照 (relighting)、人体形状编辑 (human shape editing)、服装重定向 (cloth retargeting)、服装形状编辑 (cloth apperance editing) 等等。
![74fc3af2ec79523b09265b8b7ce2b691.png](https://i-blog.csdnimg.cn/blog_migrate/ec9a112a99a227d3fee0abb4afe4367d.jpeg)
项目主页:
MulayCapwww.liuyebin.com![2a04b140e88d88c779224f05e1d3c255.png](https://i-blog.csdnimg.cn/blog_migrate/516529d63a2cf41e458965f8403b5efd.png)
Method
MulayCap 的整个流程如下图所示,其主要由两个模块组成,即
- 基于多层的几何重建 (multi-layer based geometry reconstruction):对于每一个输入视频帧,重建带衣服的人体模型。每个目标穿服装人体模型都包含表达服装的网格和人体网格模型 SMPL。作者首先检测并优化 SMPL 人体模型的形状和姿态参数来获得人体层。然后选择合适的 2D 服装图案,使用现有的布料模拟方法来自动地将衣服穿着到当前的人体模型。由于此时的服装与输入图片可能并不吻合,作者使用人体解析 (human parsing) 方法得到的分割的2D服装碎片来优化服装形状参数。作者将整个基于布料模拟的服装优化方法叫做 GfV (Garment from Video)。为了进一步对齐图像的边界,作者最后再基于输入图像的轮廓信息使用非刚性形变 (non-rigid deformation) 来完善衣服形状。
- 基于多层的纹理渲染 (multi-layer based texturing rendering):为了实现动态的无瑕疵的纹理更新,作者在3D服装上叠加了一个静态的 albedo 层和一个不断更新的几何细节层。服装 albedo 层是一个干净无阴影的纹理,而几何细节层描述了动态变化的褶皱和阴影。首先,基于在几何模块中得到的穿衣服的人体模型序列,作者使用现有的本征分解 (intrinsic decomposition) 方法将输入服装图像分解为 albedo 和 shading 图像,然后将多个 albedo 图像缝合并优化得到一个静态的 albedo 层。为了得到更多几何细节,作者将 shading 图像进一步分解为环境光照和表面法向图,并将法向图用于计算 3D 服装的表面细节。这样使用 albedo 图像渲染表面发射率,表面细节和环境光照,可以实现具有随时间变化的褶皱细节的逼真的布料渲染。
![11aa8d7136c35fb1f3567f8e68c01c22.png](https://i-blog.csdnimg.cn/blog_migrate/83fe804b6a331fadad85754d9087d3ec.jpeg)
Multi Layer Geometry
几何重建首先重建人体网格,即估计 SMPL 人体模型的形状和姿态参数,然后穿着并优化服装。
Body Estimation
作者使用 HMMR[4] 来估计每一个视频帧
Garment from Video
Dressing
衣服试穿任务包含两个步骤:1. 服装图案初始化,2. 物理模拟。为了重建服装层,作者使用多个 2D 模板服装图案来作为不同的初始 3D 服装网格,对于上衣下装分别使用两层服装,每个服装图案包含正面和反面两部分,其大小由估计的人体形状自动计算得到。
![e26eef1d970b80b96bd2026586ab9336.png](https://i-blog.csdnimg.cn/blog_migrate/b74d4a7d78799980ac3bdf24ce0ddb5f.jpeg)
为了让模板服装悬挂在处于 T 姿态的人体网格上,作者引入外力使用基于物理的模拟方法来让服装正反面缝合在一起,如下图所示。
![57e91da30c5c9e2dd503e5bbff0ec90a.png](https://i-blog.csdnimg.cn/blog_migrate/43458548ac413e256be33249a443ff69.jpeg)
作者使用基于力的质点弹簧 (Force-Based Mass-Spring) 方法,将衣服网格顶点看做被弹簧连接在一起的粒子,包括重力和衣服与身体的摩擦力在内的外力作用在每一个顶点上,碰撞约束包括衣服顶点和人头模型、衣服之间 (如短袖和短裤) 的相交。整个试穿的目标就是将服装正反面部分缝合在一起,作者在边界顶点之间加入引力,然后进行 300 轮模拟,再检测衣服是否被成功缝合,如果还是有缝隙,便更新衣服的尺寸参数并继续进行模拟,直到正反面成功缝合在一起为止。
Garment Parameter Estimation
但衣服试穿成功后,需要进一步估计服装的参数。作者通过极小化衣服模拟结果渲染得到的图片和输入图片之间的轮廓差异来优化服装形状。给定服装形状参数
其中
这里
这里
Non-rigid Deformation Refinement
前面的步骤只能对衣服有一个大概的估计,基于物理的模拟也无法描述诸如褶皱之类的衣服细微运动,而这些褶皱对于建模的真实感至关重要。因此作者进一步使用非刚性变形的方法来对动态的服装细节进行建模。首先对衣服网格上采样使其与像素分辨率匹配,然后通过极小化下面目标函数,使用服装轮廓来决定每个高分辨率网格顶点的的偏移
这里
光滑项
正则项
![6ae424ecf0f4763f8e0b74dc207c7cbb.png](https://i-blog.csdnimg.cn/blog_migrate/88ec24919b6ec4ec43a17419fc45dd52.jpeg)
Texture and Geometry Detail Refinement
接下来需要考虑将纹理映射到前面重建的服装网格上,由于随空间和时间变化的光照影响,直接进行纹理映射会导致严重的拼接瑕疵,作者将纹理分解为 shading 层和 albedo 层,前者用于计算几何细节和全局光照,后者用于生成服装的静态反射率图。
对于每张输入图像帧
Albedo Atlas Fusion
为了给3D服装生成一个静态反射率地图,作者首先根据其对应的2D服装片生成一个 UV 纹理地图 (texture atlas),反射率融合算法从均匀采样的反射率图
![58872bf98627e79bcf0d18e097d889e6.png](https://i-blog.csdnimg.cn/blog_migrate/03cf43453e51cb85e52b6ba22548ed86.jpeg)
Shading Decomposition
Shading 分解的目标是从
这里
其中
Geometry Refinement Using SfS
为了表达更加丰富的表面褶皱来渲染更加逼真的图片,作者基于估计的场景光照和 shading 图像序列
其中
这里
最后,给定一个相机模型,借助预测的全局光照、表面反射率图、动态几何细节,便可以使用球谐渲染模型渲染得到较为真实的穿衣服人体动作序列。
Experiments
除去人体实例解析和本征分解,整个系统在 3.4GHz 的 Intel Xeon E3-1231处理器上处理一个 300 帧的序列需要大约 5 小时,其中 SMPL 的形状和姿态估计需要大约15分钟,衣服参数估计迭代20次需要大概2小时,衣服变形完善每帧需要10-12秒,反射率地图生成需要10分钟,最后基于 SfS 的几何优化每帧需要30-40秒,整个系统完全在 CPU 上实现。
Qualitative Results
下图展示了文章方法的一些结果,文章方法能够生成具有较高真实感的人体动作捕捉结果。对于始终面向镜头的视频如下图底部两行,虽然背部没有展示出来,但文章方法也能生成较高质量的结果。
![a281f6ac1b6b1307d887981f2b8ffd16.png](https://i-blog.csdnimg.cn/blog_migrate/c32ddd85d0e6a04f634bbe214d23f06f.jpeg)
文章方法估计了反射率和几何细节,因此可以渲染生成 360度自由视角的人体动作视频,下图展示了从其他视角渲染得到的图片。
![ae3943eca52d289b8fd7c290657d1a28.png](https://i-blog.csdnimg.cn/blog_migrate/5ee14a35db5b7f9d8b65fb50f23d2fc1.jpeg)
Comparisons
作者将文章方法的结果与 CVPR 2018 的 Video Based Reconstruction[5] 和 DoubleFusion[6] 进行了比较,下图 (a) 中左侧是方法 [5] 的结果,右侧是文章方法的结果,中间是输入的视频帧。 (b) 中左侧是 [6] 的结果,同样右侧是文章的结果,显然文章方法的结果更加令人印象深刻。
![63e1b061b0e40082798fd326078a2d05.png](https://i-blog.csdnimg.cn/blog_migrate/5bc7d5be3f7b45d85eec03bc51f77ee5.jpeg)
Applications
文章方法有众多应用场景,作者列举了四个,分别是 服装编辑 (Garment Editing)、服装重定向 (Clothing Retargeting)、人体重打光 (Relighting)、增强现实 (Augmented Reality, AR)。
Garment Editing
文章方法可以用来进行服装编辑,由于衣服的形状和纹理已经被分别重建,因为可以对服装的形状和颜色进行编辑,如下图中第一行的长裤长袖变短裤短袖,第二行服装颜色的改变。
![6765e377e70e69408454641f68309b75.png](https://i-blog.csdnimg.cn/blog_migrate/3fb05a8aa51836fe8f165162c5afdd39.jpeg)
Retargeting
文章方法可以用来进行服装重定向,即把服装穿在同样姿态但不同体型的人体上。改变 SMPL 人体的形状参数后得到一个不同体型的人体,然后在原始人体和变形后人体之间这两个拓扑一致的网格之间计算一个非刚性变形场,便可以利用这个变形场把服装网格变形到目标人体身上,下图展示了重定向的结果。
![69a61cf4a89c69d970ef7753e1e02add.png](https://i-blog.csdnimg.cn/blog_migrate/bed1f58b27a9c3a601024bddf23bc638.jpeg)
Relighting
给定反射率和衣服几何,通过改变环境光照便可以生成重打光后的结果,如下图所示。
![b8011c71f94aaa006f8191888a683d36.png](https://i-blog.csdnimg.cn/blog_migrate/19c8c17b495a9b3ac6dbe10160c336d8.jpeg)
Augmented Reality
重建出来的人体运动序列可以放置在 AR 场景中,带上诸如 Hololens 之类的 AR 眼镜还能实现任意角度观看。
![10d4793cd9d1176c1713ac2a5d5a6b02.png](https://i-blog.csdnimg.cn/blog_migrate/cf819c3157a63b39b02a2ffc51deb4f4.jpeg)
Conclusions
文章提出了一个基于几何和纹理多层表达的从 RGB 视频进行人体动作捕捉的新方法,能够估计出基于 SMPL 模型表达的人体形状和姿态,以及人体服装的几何和纹理,在众多场景中都有所应用。
文章方法同时也存在一些缺陷:
- 无法对头部,面部表情,手、皮肤、鞋子等信息进行重建;
- 重建的人体运动序列会有抖动,对于快读、复杂的动作较难处理,对于不常见的衣服也无法处理;
- 文章最终的渲染结果依赖本征分解的结果,albedo 和 shading 分解有误会影响最终结果;
- 速度较慢,不适合实时应用。
参考
- MulayCap: Multi-layer Human Performance Capture Using A Monocular Video Camera. Zhaoqi Su, Weilin Wan, Tao Yu, Lingjie Liu, Lu Fang, Wenping Wang and Yebin Liu. ArXiv, 2020.
- MonoPerfCap: Human Performance Capture From Monocular Video. Weipeng Xu, Avishek Chatterjee, Michael Zollhoefer, Helge Rhodin, Dushyant Mehta, Hans-Peter Seidel, Christian Theobalt. SIGGRAPH, 2018.
- LiveCap: Real-time Human Performance Capture from Monocular Video. Marc Habermann, Weipeng Xu, Michael Zollhoefer, Gerard Pons-Moll, Christian Theobalt. SIGGRAPH, 2019.
- Learning 3D Human Dynamics from Video. Angjoo Kanazawa, Jason Y. Zhang, Panna Felsen, Jitendra Malik. CVPR, 2019.
- Video Based Reconstruction of 3D People Models. Thiemo Alldieck, Marcus Magnor, Weipeng Xu, Christian Theobalt, Gerard Pons-Moll. CVPR, 2018.
- DoubleFusion: Real-time Capture of Human Performance with Inner Body Shape from a Depth Sensor. Tao Yu, Zerong Zheng, Kaiwen Guo, Jianhui Zhao, Dai Quionhai, Hao Li, Gerard Pons-Moll, Yebin Liu. CVPR (Oral), 2018.
- DeepCap: Monocular Human Performance Capture Using Weak Supervision. Marc Habermann, Weipeng Xu, Michael Zollhoefer, Gerard Pons-Moll, Christian Theobalt. CVPR 2020 (Oral).
欢迎关注公众号“人脸人体重建”,和您分享值得关注的人脸人体相关技术最新文章。
![17253371de8c3ecb5b9b62369d71aa70.png](https://i-blog.csdnimg.cn/blog_migrate/e15d3287e1baf96bbaf4b65ff5c780b8.jpeg)