├── .DS_Store ├── figures ├── arch.png ├── hmr.png ├── pifu.png ├── sdf.png ├── sgm.png ├── smpl.png ├── vibe.png ├── .DS_Store ├── bcnet.png ├── pamir.png ├── smplx.png ├── voxel.png ├── 360degree.png ├── anicloth.png ├── archshow.png ├── bodynet.png ├── deephuman.png ├── fashion3d.png ├── multiview.png ├── normalgan.png ├── occupancy.png ├── portrait.png ├── summary.png ├── tailornet.png ├── pointcloud.png ├── polygonmesh.png ├── videoavatar.png ├── deephumanshow.png ├── deepwrinkles.png ├── doublefusion.png ├── monoclothcap.png ├── motionretarget.png ├── multigarment.png ├── 3drepresentation.png └── garmentrecovery.png ├── LICENSE └── README.md /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/.DS_Store -------------------------------------------------------------------------------- /figures/arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/arch.png -------------------------------------------------------------------------------- /figures/hmr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/hmr.png -------------------------------------------------------------------------------- /figures/pifu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/pifu.png -------------------------------------------------------------------------------- /figures/sdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/sdf.png -------------------------------------------------------------------------------- /figures/sgm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/sgm.png -------------------------------------------------------------------------------- /figures/smpl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/smpl.png -------------------------------------------------------------------------------- /figures/vibe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/vibe.png -------------------------------------------------------------------------------- /figures/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/.DS_Store -------------------------------------------------------------------------------- /figures/bcnet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/bcnet.png -------------------------------------------------------------------------------- /figures/pamir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/pamir.png -------------------------------------------------------------------------------- /figures/smplx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/smplx.png -------------------------------------------------------------------------------- /figures/voxel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/voxel.png -------------------------------------------------------------------------------- /figures/360degree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/360degree.png -------------------------------------------------------------------------------- /figures/anicloth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/anicloth.png -------------------------------------------------------------------------------- /figures/archshow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/archshow.png -------------------------------------------------------------------------------- /figures/bodynet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/bodynet.png -------------------------------------------------------------------------------- /figures/deephuman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/deephuman.png -------------------------------------------------------------------------------- /figures/fashion3d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/fashion3d.png -------------------------------------------------------------------------------- /figures/multiview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/multiview.png -------------------------------------------------------------------------------- /figures/normalgan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/normalgan.png -------------------------------------------------------------------------------- /figures/occupancy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/occupancy.png -------------------------------------------------------------------------------- /figures/portrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/portrait.png -------------------------------------------------------------------------------- /figures/summary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/summary.png -------------------------------------------------------------------------------- /figures/tailornet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/tailornet.png -------------------------------------------------------------------------------- /figures/pointcloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/pointcloud.png -------------------------------------------------------------------------------- /figures/polygonmesh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/polygonmesh.png -------------------------------------------------------------------------------- /figures/videoavatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/videoavatar.png -------------------------------------------------------------------------------- /figures/deephumanshow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/deephumanshow.png -------------------------------------------------------------------------------- /figures/deepwrinkles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/deepwrinkles.png -------------------------------------------------------------------------------- /figures/doublefusion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/doublefusion.png -------------------------------------------------------------------------------- /figures/monoclothcap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/monoclothcap.png -------------------------------------------------------------------------------- /figures/motionretarget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/motionretarget.png -------------------------------------------------------------------------------- /figures/multigarment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/multigarment.png -------------------------------------------------------------------------------- /figures/3drepresentation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/3drepresentation.png -------------------------------------------------------------------------------- /figures/garmentrecovery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YingZhangDUT/3d-human-overview/HEAD/figures/garmentrecovery.png -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 YingZhangDUT 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 3D Human 相关研究总结(Body、Pose、Reconstruction、Cloth、Animation) 2 | 3 | ## 前言 4 | 5 | 本文简要介绍与3D数字人相关的研究,包括常用3D表示、常用3D人体模型、3D人体姿态估计,带衣服3D人体重建,3D衣服建模,以及人体动作驱动等。 6 | 7 | ----- 8 | 9 | ## 常用3D表示 10 | 11 | 目前3D 学习中,物体或场景的表示包括**显式表示**与**隐式表示**两种,主流的显式表示包括基于voxel、基于point cloud、和基于polygon mesh三种,隐式表示包括基于Occupancy Function[1]、和基于Signed Distance Functions[2]两种。下表简要总结了各种表示方法的原理及其相应优缺点。 12 | 13 |
| 表示图像 | ![]() | ![]() | ![]() | ![]() | ![]() |
19 |
| 表示原理 | 体素用规则的立方体表示3D物体,体素是数据在三维空间中的最小分割单位,类似于2D图像中的像素 | 点云将多面体表示为三维空间中点的集合,一般用激光雷达或深度相机扫描后得到点云数据 | 多边形网格将多面体表示为顶点与面片的集合,包含了物体表面的拓扑信息 | occupancy function 将物体表示为一个占有函数,即空间中每个点是否在表面上 | SDF 将物体表示为符号距离函数,即空间中每个点距离表面的距离 | 22 |
| 优缺点 | + 规则表示,容易送入网络学习 + 可以处理任意拓扑结构 - 随着分辨率增加,内存呈立方级增长 - 物体表示不够精细 - 纹理不友好 | + 容易获取 + 可以处理任意拓扑结构 - 缺少点与点之间连接关系 - 物体表示不够精细 - 纹理不友好 | + 高质量描述3D几何结构 + 内存占有较少 + 纹理友好 - 不同物体类别需要不同的 mesh 模版 - 网络较难学习 | + 可以精细建模细节,理论上分辨率无穷 + 内存占有少 + 网络较易学习 - 需后处理得到显式几何结构 | + 可以精细建模细节,理论上分辨率无穷 + 内存占有少 + 网络较易学习 - 需后处理得到显式几何结构 |
25 |
| • mesh表示:6890 vertices, 13776 faces • pose控制:24个关节点,24*3维旋转向量 • shape控制:10维向量 | • mesh表示:10475 vertices, 20908 faces • pose控制:身体54个关节点,75维PCA • 手部控制:24维PCA • 表情控制:10维向量 • shape控制:10维向量 |
49 | |
![]() | ![]() |
52 |
| 单张RGB图像 | ![]() + 带衣服褶皱 + 带纹理 + 能直接驱动 |
129 |
130 | • 360-Degree Textures of People in Clothing from a Single Image. In 3DV, 2019. 131 | • Tex2Shape: Detailed Full Human Body Geometry From a Single Image. In ICCV, 2019. 132 | • ARCH: Animatable Reconstruction of Clothed Humans. In CVPR, 2020. 133 | • 3D Human Avatar Digitization from a Single Image. In VRCAI, 2019. 134 | |
135 |
136 | • 带衣服人体表示:SMPL+Deformation+Texture; 137 | • 思路1:估计3D pose采样部分纹理,再用GAN网络生成完整纹理和displacement; 138 | • 思路2:估计3D pose并warp到canonical空间中用PIFU估计Occupancy; 139 | • 优势:可直接驱动,生成纹理质量较高; 140 | • 问题:过度依赖扫描3D人体真值来训练网络;需要非常准确的Pose估计做先验;较难处理复杂形变如长发和裙子; 141 | |
142 |
![]() + 带衣服褶皱 + 带纹理 - 不能直接驱动 |
145 |
146 | • PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization. In ICCV, 2019. 147 | • PIFuHD: Multi-Level Pixel-Aligned Implicit Function for High-Resolution 3D Human Digitization. In CVPR, 2020. 148 | • SiCloPe: Silhouette-Based Clothed People. In CVPR, 2019. 149 | • PaMIR: Parametric Model-Conditioned Implicit Representation for Image-based Human Reconstruction. In TPAMI, 2020. 150 | • Reconstructing NBA Players. In ECCV, 2020. 151 | |
152 |
153 | • 带衣服人体表示:Occupancy + RGB; 154 | • 思路1:训练网络提取空间点投影到图像位置的特征,并结合该点位置预测其Occupancy值和RGB值; 155 | • 优势:适用于任意pose,可建模复杂外观如长发裙子 156 | • 问题:过度依赖扫描3D人体真值来训练网络;后期需要注册SMPL才能进行驱动;纹理质量并不是很高; 157 | |
158 | |
![]() + 带衣服褶皱 - 不带纹理 - 不能直接驱动 |
161 |
162 | • BodyNet: Volumetric Inference of 3D Human Body Shapes. In ECCV, 2018. 163 | • DeepHuman: 3D Human Reconstruction From a Single Image. In ICCV, 2019. 164 | |
165 |
166 | • 带衣服人体表示:voxel grid occupancy; 167 | • 思路1:预测voxel grid每个格子是否在body内部; 168 | • 优势:适用于任意pose,可建模复杂外观如长发裙子 169 | • 问题:需要另外估纹理;分辨率较低;过度依赖扫描3D人体真值来训练网络;后期需要注册SMPL才能进行驱动; 170 | |
171 | |
| 多视角RGB图像 | ![]() + 带衣服褶皱 + 带纹理 - 不能直接驱动 |
174 |
175 | • Deep Volumetric Video From Very Sparse Multi-View Performance Capture. In ECCV, 2018. 176 | • PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization. In ICCV, 2019. 177 | • PIFuHD: Multi-Level Pixel-Aligned Implicit Function for High-Resolution 3D Human Digitization. In CVPR, 2020. 178 | |
179 |
180 | • 带衣服人体表示:Occupancy + RGB; 181 | • 思路: 多视角PIFU; 182 | • 优势:多视角信息预测更准确;适用于任意pose;可建模复杂外观如长发和裙子; 183 | • 问题:多视角数据较难采集,过度依赖扫描3D人体真值来训练网络;后期需要注册SMPL才能进行驱动;纹理质量并不是很高; 184 | |
185 |
| 单张RGBD图像 | ![]() + 带衣服褶皱 + 带纹理 - 不能直接驱动 |
188 | 189 | • NormalGAN: Learning Detailed 3D Human from a Single RGB-D Image. In ECCV, 2020. 190 | | 191 |
192 | • 带衣服人体表示:3D point cloud + triangulation; 193 | • 思路: GAN网络生成front-view和back-view 的depth和color,再用triangulation得到mesh; 194 | • 优势:适用于任意pose;可建模复杂外观如长发和裙子; 195 | • 问题:过度依赖扫描3D人体真值来训练网络;后期需要注册SMPL才能进行驱动;纹理质量并不是很高; 196 | |
197 |
| RGB视频输入 | + 带衣服褶皱 + 带纹理 + 能直接驱动 |
200 |
201 | • Video Based Reconstruction of 3D People Models. In CVPR, 2018. 202 | • Detailed Human Avatars from Monocular Video. In 3DV, 2018. 203 | • Learning to Reconstruct People in Clothing from a Single RGB Camera. In CVPR, 2019. 204 | • Multi-Garment Net: Learning to Dress 3D People from Images. In ICCV, 2019. 205 | |
206 |
207 | • 带衣服人体表示:SMPL+Deformation+Texture; 208 | • 思路1:多帧联合估计canonical T-pose下的SMPL+D,投影回每帧提取纹理融合; 209 | • 优势:可直接驱动;生成纹理质量较高;简单场景下效果较好; 210 | • 问题:过度依赖扫描3D人体真值来训练网络;需要较准确的Pose估计和human parsing做先验;较难处理复杂形变如长发裙子 211 | |
212 |
![]() + 带衣服褶皱 - 不带纹理 - 不能直接驱动 |
215 | 216 | • MonoClothCap: Towards Temporally Coherent Clothing Capture from Monocular RGB Video. In 3DV, 2020. 217 | | 218 |
219 | • 带衣服人体表示:SMPL+Deformation; 220 | • 思路:每帧估计SMPL参数并联合多帧优化得到稳定shape和每帧pose,为不同衣服建模形变参数化模型,约束Silhouette,Clothing segmentation,Photometric,normal等信息一致 221 | • 优势:无需3D真值;可以建模较为细致的衣服形变; 222 | • 问题:依赖较准确的pose和segmentation估计;只能处理部分衣服类型; |
223 | |
| RGBD视频输入 | 226 |![]() + 带衣服 + 带纹理 + 也许能直接驱动 |
227 |
228 | • Robust 3D Self-portraits in Seconds. In CVPR, 2020. 229 | • TexMesh: Reconstructing Detailed Human Texture and Geometry from RGB-D Video. In ECCV, 2020. 230 | |
231 |
232 | • 带衣服人体表示:Occupancy+RGB; 233 | • 思路1:RGBD版PIFU生成每帧先验,TSDF (truncated signed distance function) 分为inner model和surface layer,PIFusion做double layer-based non-rigid tracking,多帧联合微调优化得到3D portrait; 234 | • 优势:建模较精细,可以处理较大形变如长发和裙子;不需要扫描真值; 235 | • 问题:流程略复杂;纹理质量一般; |
236 |
| Depth视频输入 | ![]() + 带衣服褶皱 - 不带纹理 + 也许能直接驱动 |
239 | 240 | • DoubleFusion: Real-time Capture of Human Performances with Inner Body Shapes from a Single Depth Sensor. In CVPR, 2018. 241 | | 242 |
243 | • 带衣服人体表示:outer layer + inner layer(SMPL) 244 | • 思路:joint motion tracking, geometric fusion and volumetric shape-pose optimization 245 | • 优势:建模较精细;速度快,可以实时; 246 | • 问题:无纹理; |
247 |
| 263 | • Physics-Inspired Garment Recovery from a Single-View Image. In TOG, 2018. 264 | | 265 |
266 |
267 | |
268 |
269 | • 思路:衣服分割+衣服特征估计(尺码,布料,褶皱)+人体mesh估计,材质-姿态联合优化+衣物仿真; 270 | • 优势:衣服和人体参数化表示较规范;引入物理、统计、几何先验; 271 | • 问题:衣服特征估计受光照和图像质量影响较大,受限于garment模版的丰富程度;需要后期通过衣物仿真联合优化来调整效果; 272 | |
273 |
| 277 | • DeepWrinkles: Accurate and Realistic Clothing Modeling. In ECCV, 2018. 278 | | 279 |
280 |
281 | |
282 |
283 | • 思路:统计模型学习衣服在某pose和shape下的大致效果,GAN模型生成更细致的褶皱; 284 | • 优势:用GAN可以生成逼真细致的褶皱; 285 | • 问题:依赖4D扫描动作序列真值;需提前做好衣服注册; 286 | |
287 |
| 290 | • Multi-Garment Net: Learning to Dress 3D People from Images. In ICCV, 2019. 291 | | 292 |
293 |
294 | |
295 |
296 | • 思路:human parsing分割衣服并预测类别,估计衣服PCA参数和细节Displacement; 297 | • 优势:明确3D scan segmentation和Garment registration的pipeline;引入Human parsing可以得到更准确的衣服类别; 298 | • 问题:过度依赖3D真值训练;PCA参数表示的准确性依赖dataset大小; 299 | |
300 |
| 303 | • Learning-Based Animation of Clothing for Virtual Try-On. In EUROGRAPHICS, 2019. 304 | | 305 |
306 |
307 | |
308 |
309 | • 思路:衣服仿真生成真值帮助网络训练,基于shape学习衣服模版变形,基于pose和shape学习动态褶皱, 310 | • 优势:衣物仿真可以得到任意pose下的大量真值数据; 311 | • 问题:与现实数据差距较大;依赖衣物模版的丰富程度;直接学习defromation不够稳定,容易穿模需后处理; 312 | |
313 |
| 316 | • TailorNet: Predicting Clothing in 3D as a Function of Human Pose, Shape and Garment Style. In CVPR, 2020. 317 | | 318 |
319 |
320 | |
321 |
322 | • 思路:将衣服形变分为高频和低频,低频部分用网络估计大致形变,高频部分估计多个特定style-shape模型,每个模型负责估计特定形变及加权权重; 323 | • 优势:可以得到较为细致的衣服褶皱;提出合成数据集,仿真20件衣服,1782个pose和9种shape; 324 | • 问题:在不同shape和style上训练得到结果过于平滑,不够真实; 325 | |
326 |
| 329 | • BCNet: Learning Body and Cloth Shape from A Single Image. In ECCV, 2020. 330 | | 331 |
332 |
333 | |
334 |
335 | • 思路:基于单张图像估计SMPL参数和上下身的Garment参数,用两个网络分别估计displacement和skining weight; 336 | • 优势:对garment学习蒙皮权重,动起来可以更自然;garment mesh与body mesh不绑定,可以重建更多衣服类别; 337 | • 问题:将衣服分为上下半身,对连衣裙和长款不友好; 338 | |
339 |
| 342 | • Deep Fashion3D: A Dataset and Benchmark for 3D Garment Reconstruction from Single Images. In ECCV, 2020. 343 | | 344 |
345 |
346 | |
347 |
348 | • 贡献:提出Deep Fashion3D数据集,包括2000件衣服,10种类型,标记相应点云,多视角图像,3D body pose,和feature lines; 349 | • 思路:提出基于单张图像的3D衣服重建,通过估计衣服类型,body pose,feature lines对adaptable template进行形变; 350 | • 优势:衣服类型、feature line估计可以提供更多deformation先验;引入implicit surface重建更精细; 351 | • 问题:当衣服类型与adaptable template差距较大时,handle-based Laplcacian deformation 优化较难; 352 | |
353 |