人体几何模型重建

    背景

    最近在做三维人体重建方向的工作,本文会试着系统的介绍使用神经网络二维图片/视频中提取出人体参数化模型以及纹理贴图的过程。


    [0]SMPL模型学习和使用

    背景

    最近在做三维人体重建方向的工作,SMPL是基础,所以准备学习它。

    什么是SMPL

    在人体动作捕捉(motion capture)领域,SMPL 算法最为常见,它是由德国马普所提出的一种参数化的三维人体动捕模型,具有通用性、易于渲染和兼容现有商业软件(比如 UE4 和 Unity)的优点。
    -------SMPL-A-Skinned-Multi-Person-Linear-Model-20210816165705

    原理

    它是一个使用几组参数就能生成一个人体模型和姿态模型的框架。

    运行

    1. 从官网下载SMPL模型 https://smpl.is.tue.mpg.de/download.php
    2. 需要注意需要linux或者macos才能运行,我安装了WSL2 的Ubuntu
    3. 解决环境依赖,把缺少的库都用apt和pip安装了,参考这个SMPL源码安装:安装成功并实现
    4. 注意需要把smpl放入python的path中,放入后我这里需要将
      import smpl_webuser.serialization 改成 import smpl.smpl_webuser.serialization 才可以运行

    效果截图

    使用python render_smpl.py 运行生成一个随机大小姿态的人体模型的截图
    ----_20221219163301

    参考

    三维人体动捕模型 SMPL:A Skinned Multi Person Linear Model
    SMPL模型学习
    SMPL源码安装:安装成功并实现
    (week 1)【经验教训】运行SMPL示例模型中遇到的坑


    [1]HMR:End-to-end Recovery of Human Shape and Pose学习与使用

    背景

    最近在做三维人体重建方向的工作,这个HMR是一个很出色的从单张RGB图片直接估计出三维人体形状和姿态的工作,所以在这里进行学习和使用。
    https://github.com/akanazawa/hmr

    过程

    它先用二维关键点检测,类似我之前用的OpenPose 调研,先得到二维的骨架姿态预测。
    然后将二维骨架投影到三维的SMPL模型中(SMPL模型学习和使用),拟合出SMPL的那几个参数,最后使用SMPL模型生成人体形态和姿态。

    运行结果

    预测效果如下图所示:
    ----_20221220164003
    ----_20230103223919

    参考


    [2]TailorNet 学习和使用

    背景

    最近在做三维人体重建方向的事情,这个TailorNet是一个服装重建的网络,值得学习。
    TAILORNET: PREDICTING CLOTHING IN 3D AS A FUNCTION OF HUMAN POSE, SHAPE AND GARMENT STYLE
    GitHub地址为 https://github.com/chaitanya100100/TailorNet

    原理

    该网络可以输入任意的SMPL模型参数,以及衣服的种类,输出一个贴合人体模型的衣服形状
    ----_20230103185623

    过程

    • 下载项目的python代码
    • 下载各种衣服类型的网络数据,https://nextcloud.mpi-klsb.mpg.de/index.php/s/LTWJPcRt7gsgoss 这个服务器架在德国,下载会有些慢,我这里点击全部下载时下载速度会特别慢,后面改为单独下载每个文件就能到每个文件1MB/s的速度,就可以接受了。
    • 创建虚拟环境,配置好环境
    • python run_tailornet.py直接运行

    效果截图

    ----_20230103185314

    参考

    https://github.com/zycliao/TailorNet_dataset


    [3]Part Grouping Network 的学习与使用

    背景

    Part Grouping Network可以用来进行图片的语义分割,图像的分割是CV邻域常见的问题。

    过程

    该代码需要matlab
    而matlab是gui程序,我使用的环境是WSL2 Ubuntu 22.04,需要额外配置GUI
    现在暂时使用实体ubuntu20.04来跑,跑成功了。具体是结合[0]它项目本身的指引以及按照[2]的配置方式,和它项目中的issue最后运行出来的。
    result

    结果

    样例1

    0002190
    它分割出的结果如下
    0002190-1
    0002190_vis

    样例2

    0005008
    它分割出的结果如下
    0005008-1
    0005008_vis

    参考

    0.Part Grouping Network (PGN)
    1.wsl安装ubuntu并设置gnome图形界面详细步骤(win11+ubuntu18)
    2.论文《Instance-level Human Parsing via Part Grouping Network》复现
    3.Matlab R2020a For Linux 安装教程 - 尼侬的文章 - 知乎
    4.WSL2 Ubuntu图形界面安装与远程桌面
    5.WSL 2 上启用微软官方支持的 systemd
    6.Windows上通过ssh和VNC Viewer分别连接本地Ubuntu(WSL)的终端和图形界面

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

    概述

    该论文提出了一种基于隐函数的对人体服装重建的方法,可以同时复现包括衣服、裤子、鞋子、头发的模型

    论文解析

    https://zhuanlan.zhihu.com/p/362132005
    https://zhuanlan.zhihu.com/p/102904841

    运行代码过程

    由于是深度学习,需要安装Cuda以及CuDNN
    首先需要安装Cuda
    https://blog.csdn.net/a563562675/article/details/119458550

    安装kaolin
    https://blog.csdn.net/qq_41071191/article/details/121365362

    [A] python学习

    背景

    最近在跑三维人体重建论文的代码,很多都是python写的。

    内容

    下面列举一些常见的命令

    anaconda

    创建虚拟环境:
    conda create -n your_env_name python=x.x
    切换到虚拟环境:
    source activate your_env_name
    conda activate your_env_name

    pip

    换国内源
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

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

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