当前位置: 首页 > 工具软件 > 3DDFA > 使用案例 >

3DDFA代码复现

傅花蜂
2023-12-01

文章标题:Face Alignment in Full Pose Range A 3D Total SolutionA 3D Total Solution
GitHub链接:3DDFA

1.安装Python环境和anaconda

1.1安装Python

Linux(Ubuntu)系统安装Python (biancheng.net)

1.2安装anaconda

点击Anaconda官方下载链接

参考链接:Linux-Anaconda安装和虚拟环境配置 - 知乎 (zhihu.com)

1.3新建一个虚拟环境

conda create -n myenv python=3.8

1.4激活虚拟环境

conda activate myenv

2.在Ubuntu系统下安装显卡驱动(本机环境是GTX1060(5G)显卡)

2.1首先禁用nouveau

打开编辑配置文件:

sudo gedit /etc/modprobe.d/blacklist.conf

在最后一行添加:

blacklist nouveau

由于nouveau是构建在内核中的,所以要执行下面命令生效:

sudo update-initramfs -u

重启

reboot

重启之后,可以查看nouveau有没有运行:

lsmod | grep nouveau  # 没输出代表禁用生效

2.2显卡驱动下载:官方驱动 | NVIDIA

给驱动文件增加可执行权限:

sudo chmod a+x xxxxxxx.run

然后执行安装:

sudo sh ./xxxxxxx.run --no-opengl-files

安装完成后重启即可,记得验证是否安装成功,参考前面所讲。

ps:–no-opengl-files 参数必须加否则会循环登录,也就是loop login

参考链接:Linux Nvidia显卡驱动安装 - 知乎 (zhihu.com)

Linux安装NVIDIA显卡驱动的正确姿势_

3、安装CUDA

官方下载:CUDA Toolkit 12.0 Downloads | NVIDIA Developer

检查安装是否成功

nvidia-smi

或者

nvcc -V

并查看对应的cuda编译版本号

参考链接:一文讲清楚CUDA、CUDA toolkit、CUDNN、NVCC关系

linux系统安装显卡驱动(Nvidia driver) + cuda10.2

4、安装pytorch

4.1查询cuda版本

cat /usr/local/cuda/version.txt

输出结果如下:

CUDA Version xxxxxx
CUDA Patch Version xx.x.x.x
CUDA Patch Version xx.x.x.x
CUDA Patch Version xx.x.x.x

4.2安装pytorch

在myenv环境下安装torch,打开Start Locally | PyTorch,找到对应cuda的版本安装命令。安装完后测试

import torch
torch.__version__
torch.cuda.is_available()

都为True,则安装成功。

参考链接:Linux下安装pytorch的GPU版本

5.安装numpy,scipy,matplotlib

sudo pip3 install numpy scipy matplotlib

6.安装dlib

方法一(官方推荐方法,试了一下未成功):

sudo pip3 install dlib==19.5.0

方法二

打开dlib官网链接下载压缩包到本地,然后cmake一下,最后在myenv环境下安装dlib

参考链接: dlib 安装教程(三种方法)

7.安装opencv

sudo pip3 install opencv-python

8.安装cython

sudo pip3 install cython

9.新建文件夹作为项目文件夹,克隆项目并打开

git clone https://github.com/cleardusk/3DDFA.git
cd 3DDFA

10.在文件夹下面导入模型

这里的模型需要到百度云下载:shape_predictor_68_face_landmarks.dat

下载后放到models中。

11.构建cython模型

cd utils/cython
python3 setup.py build_ext -i

12.运行

python3 main.py -f samples/test1.jpg

运行成功后在窗口弹出结果:

Dump tp samples/test1_0.ply
Save 68 3d landmarks to samples/test1_0.txt
Dump obj with sampled texture to samples/test1_0.obj
Dump tp samples/test1_1.ply
Save 68 3d landmarks to samples/test1_1.txt
Dump obj with sampled texture to samples/test1_1.obj
Dump to samples/test1_pose.jpg
Dump to samples/test1_depth.png
Dump to samples/test1_pncc.png
Save visualization result to samples/test1_3DDFA.jpg

本人硬件配置及系统环境:Linux(Ubuntu20.04)、NVIDIA GTX1060(5g)显卡、i5-8400处理器
如有小伙伴在复现中出现问题,欢迎评论区或私信交流,文章如有问题望批评指正!

 类似资料: