Face3D学习笔记(1)Face3D介绍与开发环境搭建

举报
ESRSchao 发表于 2022/11/25 21:38:35 2022/11/25
【摘要】 Face3D 是博主做本科毕设时的灵感来源,相对于现在各式各样的深度学习人脸重建方法,Face3D 中所使用的3DMM模型以及利用二维特征点进行三维人脸拟合时所使用的黄金标准算法展示了经典算法的精简有效。 本系列文章系博主在CSDN原文章上的整合修改,如有疑问可以随时交流。 PS:封面图来源是个人十分喜欢的画师ちょん*,侵删。

Face3D简介

face3d:用于处理 3D 人脸的 Python 工具

前言

Face3D 是博主做本科毕设时的灵感来源,相对于现在各式各样的深度学习人脸重建方法,Face3D 中所使用的3DMM模型以及利用二维特征点进行三维人脸拟合时所使用的黄金标准算法展示了经典算法的精简有效。
本系列文章系博主在CSDN原文章上的整合修改,如有疑问可以随时交流。

介绍

Face3D实现了一些与 3D 人脸相关的基本功能。

我们可以使用它来处理网格数据,从可变形模型生成3D Mesh,使用单个图像和关键点作为输入重建3D Mesh,使用不同的照明渲染Mesh。

Face3D采用C++编写核心部分(没有任何其他大型库,例如opencv,eigen),并使用Cython编译它们以供python使用。因此,最终版本非常轻巧,速度快。

此外,还保留了numpy版本,考虑到初学者可以在python中专注于算法本身,并且研究人员可以快速修改和验证他们的想法。

文件结构

# Since triangle mesh is the most popular representation of 3D face, 
# the main part is mesh processing.
mesh/             # written in python and c++
|  cython/               # c++ files, use cython to compile 
|  io.py                 # read & write obj
|  vis.py                # plot mesh
|  transform.py          # transform mesh & estimate matrix
|  light.py              # add light & estimate light(to do)
|  render.py             # obj to image using rasterization render

mesh_numpy/      # the same with mesh/, with each part written in numpy
                 # slow but easy to learn and modify

# 3DMM is one of the most popular methods to generate & reconstruct 3D face.
morphable_model/
|  morphable_model.py    # morphable model class: generate & fit
|  fit.py                # estimate shape&expression parameters. 3dmm fitting.
|  load.py               # load 3dmm data

开发环境搭建

0.开发环境

Ubuntu 18.04.6 LTS
Python 3.6.9

1.安装依赖库

所需要的库有:
numpy
skimage (对应的库为scikit-image)
scipy
matplotlib
Cython

这边因为要用python3运行所以用pip3下载(没有pip的自行下载)
可以直接复制下面的命令图个省事

pip3 install numpy -i  https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install scikit-image -i  https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install scipy -i  https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install matplotlib -i  https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install Cython -i  https://pypi.tuna.tsinghua.edu.cn/simple

2.下载Face3D

可以直接在github克隆过来

git clone https://github.com/YadiraF/face3d
cd face3d

下载好了进入face3d目录去执行下面的操作

3.编译Face3D

在face3d目录下执行以下命令:

cd face3d/mesh/cython
sudo python3 setup.py build_ext -i 

这边注意我是python3环境, 所以使用python3运行‘setup.py’,如果你是python2请自行更改一下。而且这一步是需要root权限的,不然会报错。

4.运行示例

如果没报错走到这里基本上环境就没有什么问题了
这时候可以运行示例程序(我还是使用python3)

cd examples
python3 1_pipeline.py 

得到如下输出
结果图片
而且在example/results/pipeline目录下面生成了这样一个图片

生成图片
这时候整个开发环境搭建和验证就完成了,可以进行下面的学习了
后面的部分我将用jupyter拆解学习Face3D的代码,资源将在系列完结后放出。

本系列会持续更新,欢迎大家关注

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。