VisageFuture 智颜未来:AI + 赝复产业
主要业务是:用 AI 技术对残缺的人脸进行建模和修补,然后使用 3D 打印技术打印人面部的假体。
这个项目是我在 港科广 参加 红鸟挑战营 时用三天时间完成的。由于本人没有计算机视觉方面的经验,所以技术部分大多是对现有技术的堆砌。
2D 面部修补 - Stable Diffusion + ControlNet
我们使用 Stable Diffusion 对 2D 的图像输入进行修复,使患者的 2D 面部形象正常。
主要技术点:
- Inpaint 覆盖缺陷部分
- ControlNet 使用 OpenPose 对面部五官准确定位
- 少量提示词
实现细节待后续补充
基于 2D 图像的 3D 重建 - DECA
DECA 是德国马普所提出的一个基于 2D 图像重建 3D 头部的模型。他还具备表情的迁移功能(可用于换脸)。
由于 DECA 是 2021 年发表的,官方公布的 Demo 配置存在一些问题,在部署时踩了一些坑,在这里总结一下。
基础环境
- Windows 11 x64 (需要安装好最新的 Nvidia 驱动以及 CUDA,实测 CUDA 12 可用)
- WSL 2 (Debian / Ubuntu 应该都可)
- Miniconda (在 WSL 2 中安装)
环境配置
- 在 Windows 上安装驱动和 WSL 比较简单,请参考微软文档。
- 安装 Conda。请参考 Miniconda — conda documentation 根据 Linux 内的 Python 版本决定下载哪个安装包。下载后直接运行即可。
拉取 DECA 仓库到本地。
git clone https://github.com/yfeng95/DECA.git
创建虚拟环境
conda create -n deca python=3.8.10 conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1 -c pytorch -c conda-forge conda install -c fvcore -c iopath -c conda-forge fvcore iopath conda install pytorch3d -c pytorch3d
继续使用 pip 安装剩余的依赖
创建一个依赖列表,例如alter_requirements.txt
。
打开该文件,写入:numpy==1.23.0 scipy chumpy scikit-image opencv-python scikit-image PyYAML face-alignment==1.3.4 yacs kornia==0.5.0 ninja
然后使用 pip 安装所有依赖:
pip install -r alter_requirements.txt
下载模型文件。仓库提供了脚本用于下载并安装模型文件,但是需要注册。请根据脚本的提示到指定网站注册。
bash fetch_data.sh
测试安装情况。
python demos/demo_reconstruct.py -i TestSamples/examples --saveDepth True --saveObj True --rasterizer_type=pytorch3d
如果运行完毕中没有错误,并且在提示的输出文件夹中有运行的结果(深度信息图片、.obj 3D 模型)即为安装成功。
模型使用
由于我对计算机视觉领域并不熟悉,因此就仅对 DECA 提供的 Demo 脚本进行讲解。
主要的功能有两个:头部重建和表情迁移。
具体的文档可以在 yfeng95/DECA: DECA: Detailed Expression Capture and Animation (SIGGRAPH 2021) (github.com) 找到。
头部重建的脚本为:
python demos/demo_reconstruct.py --help
请根据 --help
打印出的帮助信息调整参数,获得需要的效果。
表情迁移的脚本为:
python demos/demo_transfer.py
模型生成的 .obj 文件,可以下载 MeshLab 进行查看和编辑。也可以使用微软在 Windows 商店中提供的 3D Builder 查看。
其他
为了将 OBJ 模型放到 PPT 中展示,我探索了如何将其转换为 GIF 图。
方法是用 3D Builder 打开 OBJ,选择另存为 3MF (一种 3D 打印格式)。然后再使用 Windows 内置的画图 3D 打开,继续选择另存为,此时会出现”视频“选项,选择视频再选择 GIF 格式即可。
另外画图 3D 中可以设置 GIF 中展示模型的角度和动画,非常方便。
感谢三位队友宝贵的意见和建议!
本文章中采用的所有图片均来自公开报道资料,若利益相关人需要撤下,欢迎随时联系。
3天实现,太 nin