> ## Content Index
> Fetch the complete content index at: https://cms.yufeiran.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Human Geometry Model Reconstruction
- URL: https://cms.yufeiran.com/en-ren-ti-mo-xing-zhong-jian/
- Published: 2022-12-18T23:59:31.000Z
- Updated: 2026-09-27T12:37:58.000Z
- Author: Feiran Yu
- Tags: #lang-en, #legacy-import

# Background

Recently I have been working on 3D human reconstruction. This article tries to systematically introduce the process of extracting a **parametric human body model** and **texture maps** from **2D images or videos** using **neural networks**.

---

# \[0\] Learning and Using the SMPL Model

## Background

Recently I have been working on 3D human reconstruction. SMPL is a foundation for this direction, so I decided to study it.

## What Is SMPL?

In the field of human motion capture, the SMPL algorithm is one of the most common methods. It is a parametric 3D human motion-capture model proposed by the Max Planck Institute in Germany. It has the advantages of generality, easy rendering, and compatibility with existing commercial software such as UE4 and Unity.

![SMPL model](https://yufeiran.com/content/images/2022/12/-------SMPL-A-Skinned-Multi-Person-Linear-Model-20210816165705.png)

## Principle

SMPL is a framework that can generate a human body model and pose model from several groups of parameters.

## Running It

1. Download the SMPL model from the official website: [https://smpl.is.tue.mpg.de/download.php](https://smpl.is.tue.mpg.de/download.php?ref=cms.yufeiran.com)
2. Note that Linux or macOS is needed to run it. I installed Ubuntu through WSL2.
3. Resolve environment dependencies. I installed missing libraries using `apt` and `pip`, referring to [SMPL source-code installation: successfully installed and implemented](https://blog.csdn.net/nbxuwentao/article/details/99708914?ref=cms.yufeiran.com).
4. Note that `smpl` needs to be added to Python’s path. After adding it, I had to change `import smpl_webuser.serialization` to `import smpl.smpl_webuser.serialization` before it could run.

## Result Screenshot

Running `python render_smpl.py` generates a human model with random size and pose:

![SMPL render result](https://yufeiran.com/content/images/2022/12/----_20221219163301.png)

## References

[3D human motion capture model SMPL: A Skinned Multi-Person Linear Model](https://yunyang1994.github.io/2021/08/21/%E4%B8%89%E7%BB%B4%E4%BA%BA%E4%BD%93%E6%A8%A1%E5%9E%8B-SMPL-A-Skinned-Multi-Person-Linear-Model/?ref=cms.yufeiran.com)

[SMPL model study](https://www.cnblogs.com/sariel-sakura/p/14321818.html?ref=cms.yufeiran.com)

[SMPL source-code installation: successfully installed and implemented](https://blog.csdn.net/nbxuwentao/article/details/99708914?ref=cms.yufeiran.com)

[(Week 1) Lessons learned: pitfalls when running SMPL sample models](https://blog.csdn.net/weixin%5F36595565/article/details/88670957?ref=cms.yufeiran.com)

---

# \[1\] HMR: Learning and Using End-to-End Recovery of Human Shape and Pose

## Background

Recently I have been working on 3D human reconstruction. [HMR](https://github.com/akanazawa/hmr?ref=cms.yufeiran.com) is an excellent work that directly estimates 3D human shape and pose from a single RGB image, so I studied and used it here.

[https://github.com/akanazawa/hmr](https://github.com/akanazawa/hmr?ref=cms.yufeiran.com)

## Process

It first uses 2D keypoint detection, similar to what I used in [OpenPose Research Notes](https://yufeiran.com/en/openpose-diao-yan/?ref=cms.yufeiran.com), to obtain a 2D skeleton pose prediction.

Then it projects the 2D skeleton onto a 3D SMPL model, fits the SMPL parameters, and finally uses the SMPL model to generate the human shape and pose.

## Running Results

The prediction results are shown below:

![HMR result](https://yufeiran.com/content/images/2022/12/----_20221220164003.png)

![HMR result](https://yufeiran.com/content/images/2023/01/----_20230103223919.png)

## References

---

# \[2\] Learning and Using TailorNet

## Background

Recently I have been working on 3D human reconstruction. TailorNet is a clothing reconstruction network and is worth studying.

[TAILORNET: Predicting Clothing in 3D as a Function of Human Pose, Shape and Garment Style](https://virtualhumans.mpi-inf.mpg.de/tailornet/?ref=cms.yufeiran.com)

GitHub: [https://github.com/chaitanya100100/TailorNet](https://github.com/chaitanya100100/TailorNet?ref=cms.yufeiran.com)

## Principle

This network can input arbitrary SMPL model parameters and a garment type, then output clothing geometry fitted to the human body model.

![TailorNet principle](https://yufeiran.com/content/images/2023/01/----_20230103185623.png)

## Process

- Download the project’s Python code.
- Download network data for various clothing types. [https://nextcloud.mpi-klsb.mpg.de/index.php/s/LTWJPcRt7gsgoss](https://nextcloud.mpi-klsb.mpg.de/index.php/s/LTWJPcRt7gsgoss?ref=cms.yufeiran.com) is hosted in Germany, so downloading can be slow. When I clicked “download all”, the speed was extremely slow. Later I downloaded each file separately and reached about 1 MB/s per file, which was acceptable.
- Create a virtual environment and configure it.
- Run `python run_tailornet.py` directly.

## Result Screenshot

![TailorNet result](https://yufeiran.com/content/images/2023/01/----_20230103185314.png)

## Reference

[https://github.com/zycliao/TailorNet\_dataset](https://github.com/zycliao/TailorNet%5Fdataset?ref=cms.yufeiran.com)

---

# \[3\] Learning and Using Part Grouping Network

## Background

Part Grouping Network can be used for semantic segmentation of images. Image segmentation is a common problem in computer vision.

## Process

This code requires MATLAB.

MATLAB is a GUI program. My environment was WSL2 Ubuntu 22.04, so extra GUI configuration was needed.

For now, I used a physical Ubuntu 20.04 system and ran it successfully. The final setup combined the project’s own instructions, the configuration method from reference \[2\], and information from the project’s issues.

![result](https://yufeiran.com/content/images/2023/01/result.png)

## Results

### Sample 1

![0002190](https://yufeiran.com/content/images/2023/01/0002190.png)

The segmentation result:

![0002190-1](https://yufeiran.com/content/images/2023/01/0002190-1.png)

![0002190_vis](https://yufeiran.com/content/images/2023/01/0002190_vis.png)

### Sample 2

![0005008](https://yufeiran.com/content/images/2023/01/0005008.jpg)

The segmentation result:

![0005008-1](https://yufeiran.com/content/images/2023/01/0005008-1.png)

![0005008_vis](https://yufeiran.com/content/images/2023/01/0005008_vis.png)

## References

1. [Part Grouping Network (PGN)](https://github.com/Engineering-Course/CIHP%5FPGN?ref=cms.yufeiran.com)
2. [Detailed steps for installing Ubuntu on WSL and setting up a GNOME GUI, Win11 + Ubuntu 18](https://blog.csdn.net/m0%5F51194302/article/details/127891929?ref=cms.yufeiran.com)
3. [Reproducing the paper Instance-level Human Parsing via Part Grouping Network](https://www.cnblogs.com/Jody9123/p/13453595.html?ref=cms.yufeiran.com)
4. [MATLAB R2020a for Linux installation tutorial](https://zhuanlan.zhihu.com/p/255088205?ref=cms.yufeiran.com)
5. [WSL2 Ubuntu GUI installation and remote desktop](https://blog.csdn.net/qq%5F43878324/article/details/113616883?ref=cms.yufeiran.com)
6. [Enabling Microsoft’s official systemd support on WSL2](https://www.cnblogs.com/wswind/p/wsl2-official-systemd.html?ref=cms.yufeiran.com)
7. [Connecting to local Ubuntu WSL terminal and GUI on Windows through SSH and VNC Viewer](https://blog.csdn.net/weixin%5F39278265/article/details/103391805?ref=cms.yufeiran.com)

# \[4\] SMPLicit: Topology-aware Generative Model for Clothed People

# Overview

This paper proposes an implicit-function-based method for reconstructing clothed humans. It can reproduce models including clothing, pants, shoes, and hair.

# Paper Analysis

[https://zhuanlan.zhihu.com/p/362132005](https://zhuanlan.zhihu.com/p/362132005?ref=cms.yufeiran.com)

[https://zhuanlan.zhihu.com/p/102904841](https://zhuanlan.zhihu.com/p/102904841?ref=cms.yufeiran.com)

# Running the Code

Since this is deep learning, CUDA and cuDNN need to be installed.

First install CUDA:

[https://blog.csdn.net/a563562675/article/details/119458550](https://blog.csdn.net/a563562675/article/details/119458550?ref=cms.yufeiran.com)

Install Kaolin:

[https://blog.csdn.net/qq\_41071191/article/details/121365362](https://blog.csdn.net/qq%5F41071191/article/details/121365362?ref=cms.yufeiran.com)

# \[A\] Python Study

## Background

Recently I have been running code for 3D human reconstruction papers, and many of them are written in Python.

## Content

Here are some common commands.

### Anaconda

Create a virtual environment:

```bash
conda create -n your_env_name python=x.x

```

Switch to the virtual environment:

```bash
source activate your_env_name

```

or:

```bash
conda activate your_env_name

```

### pip

Switch to domestic mirrors:

```bash
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

```

```bash
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/

```

```bash
pip config set global.index-url http://pypi.douban.com/simple/

```