前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >face3d: 3D人脸处理Python开源工具

face3d: 3D人脸处理Python开源工具

作者头像
实验盒
发布2021-09-22 12:12:06
2.9K0
发布2021-09-22 12:12:06
举报
文章被收录于专栏:实验盒

项目作者:Yao Feng Github: https://github.com/YadiraF/face3d

简介

3D 人脸是非常有趣的研究领域。face3D 是一个基于 Python 的开源项目,实现了 3D 人脸研究的众多功能。它可以处理网格数据,用形变模型生成 3D 人脸,从单张二维人脸图片和关键点重建三维图像,渲染不同光照条件的人脸。 face3D 非常轻量化,最开始完全是基于 Numpy 写的。但有些函数(比如光栅化)不能用向量化进行优化,在 Python 中非常慢。这部分函数作者改用 C++ 编写,没有调用 OpenCV、Eigen 等大型的库,再用 Cpython 编译以供 Python 调用。 项目作者考虑到初学者刚开始学习时应该聚焦在算法本身,同时让研究人员能够快速修改和验证他们的想法,Numpy 版本也被保留下来。此外,作者也尽量在每个函数中添加了引用的公式,以方便初学者学习基础知识、理解代码。更多的 3D 人脸研究信息,包括论文和代码,也可以在项目Github中找到。

结构

克隆项目仓库后,可以看到有 examples 和 face3d 两个文件夹。 example 文件夹提供了不同例子,包括代码、图像数据。 face3D 中有 mesh、mesh_numpy 和 morphable_model 3个文件夹,mesh 是网格处理的主要部分,mesh_numpy 是 mesh 的纯 Numpy 版本,morphable_model 提供了 3DMM 方法的实现。3DMM 是非常流行的3D人脸生成和重建的一个方法,具体可以参考《Regressing Robust and Discriminative 3D Morphable Models with a very Deep Neural Network》这篇论文。

开始使用

环境要求

- Python 2 或 3 - Python包: - numpy - skimage - scipy - matplotlib - Cython

简短说明

1. 克隆仓库:

代码语言:javascript
复制
git clone https://github.com/YadiraF/face3d
cd face3d

2. 如果不是使用numpy版,需要编译c++文件:

代码语言:javascript
复制
cd face3d/mesh/cython
python setup.py build_ext -i

3. 如果要使用3DMM模型,需要准备 BFM 文件,可参考:

https://github.com/YadiraF/face3d/blob/master/examples/Data/BFM/readme.md 。 接下来,就可以尝试一些例子。

例子

进入 example 文件夹,直接就能运行一些例子:

3DMM

直接运行2_3dmm.py就能看到3dmm的运行示例。

代码语言:javascript
复制
python 2_3dmm.py

3DMM生成的随机例子:

使用了68个关键点生成的例子:

变换

代码语言:javascript
复制
python 3_transform.py

修复相机位置并使用正交投影;然后变换人脸(缩放,改变pitch、yaw、roll 姿态角):

修复obj position并使用透视投影 (fovy = 30);然后移动相机位置并旋转相机(从远到近,向下和向上,向左和向右,旋转相机):

Image map

代码语言:javascript
复制
python 4_light.py

渲染图像像素中的不同属性,深度、pncc和uv坐标:

uv map

代码语言:javascript
复制
python 7_uv_map.py

在uv坐标中渲染不同的属性,颜色(纹理贴图)、位置(2D面部图像和相应的位置图):

结语

尝试完一些例子,如果要进行更深入的研究,建议按顺序阅读例子的代码,然后阅读 mesh_numpy 的代码和当中的原理。 3D图像是非常有趣的玩意,后续会有更多开源项目或文献的介绍。

记得关注 AI 实验室,开启 AI 动手之旅!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 实验盒 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档