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

3DDFA_master代码复现以及所遇到的bug合集

宗晟
2023-12-01

代码来源

https://github.com/cleardusk/3DDFA

论文

Face Alignment in Full Pose Range: A 3D Total Solution.

所遇到的问题

运行3DDFA中的main.py时

出现错误:RuntimeError: Unable to open models/shape_predictor_68_face_landmarks.dat

解决方法:在https://pan.baidu.com/s/1bx-GxGf50-KDk4xz3bCYcw下载shape_ predictor_ 68_ face_ landmarks.dat

运行3DDFA中的main.py时

出现错误TypeError: ‘NoneType’ object is not iterable

解决方法:运行时的缺少参数

在Linux环境下,虚拟环境torch-python3.7中,下载dlib库时:

先下载 cmake -> boost -> dlib

pip install cmake出现错误:
ERROR: Could not install packages due to an OSError: Missing dependencies for SOCKS support.

ValueError: Unable to determine SOCKS version from socks://127.0.0.1:1080

解决方法:
unset all_proxy


下载cmake后出现警告:WARNING: Running pip as the ‘root’ user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
切换成非root用户即可

给非root用户添加权限:
vi /etc/sudoers
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
非root用户名 ALL=(ALL) NOPASSWD: ALL

下载dlib-19.19.0.tar.gz压缩文件
pip install dlib-19.19.0.tar.gz


记录:关于linux解压文件

tar解压到指定目录下
tar -xvf 压缩包名.tar -C 指定位置文件夹

gz文件解压
gunzip FileName.gz

zip文件解压到当前文件夹(到指定目录)
unzip Filename.zip (-d 指定目录)

运行3DDFA中的train.py时:

准备工作:(链接是GitHub博主提供)
在https://pan.baidu.com/s/1ozZVs26-xE49sF7nystrKQ#list/path=%2F下载train.config
在https://pan.baidu.com/s/19QNGst2E1pRKL7Dtx_L1MA下载train_aug_120x120.zip
在https://pan.baidu.com/s/1DTVGCG5k0jjjhOc8GcSLOw下载test.data.zip下载裁剪后的测试集 ALFW 和 ALFW-2000-3D ,然后将其解压缩并放在根目录中

关于GPU设备个数匹配问题总结

在Linux上出现错误:
AssertionError: Invalid device id
解决方法:
本地只有一个显卡,代码中带入了2个id因此
parser.add_argument(‘–devices-id’, default=‘0,1’, type=str)
改成:parser.add_argument(‘–devices-id’, default=‘0’, type=str)
同时也要修改sh train_wpdc.sh中的–devices-id=0,1 \ 改为–devices-id=0 \

在windows上出现错误:
AttributeError: module ‘torch._C’ has no attribute ‘_cuda_setDevice’
解决方法:
python train.py --gpu_ids -1 (CPU版本)或者在脚本中修改默认的gpu_ids(devices-id)

linux运行.sh脚本时:sh train_wpdc.sh

注意:这里将train.py和train_wpdc.sh都放在了根目录下

问题1:
train_wpdc.sh:行10: ./train.py: 没有那个文件或目录

解决方法:
将./train.py --arch=“mobilenet_1” \ 改成:
/home/hyh/Deep_Learning/3DDFA/3DDFA-master/train.py --arch=“mobilenet_1” \ (×)
把train.py放在了training文件夹下


问题2:
train_wpdc.sh:行10: ./train.py: 权限不够
将sh脚本的第一行#!/usr/bin/env bash 修改为:#!/mnt/usr/local/anaconda3/envstorch-python3.7/python bash (×)
解决方法:
chmod 777 ./train.py(√)

运行.sh脚本时

问题1:
FileNotFoundError: [Errno 2] No such file or directory: ‘…/train.configs/train_aug_120x120.list.train’
解决问题:
找到.sh脚本文件,修改.sh文件路径
–filelists-train=“train.configs/train_aug_120x120.list.train”
–filelists-val=“train.configs/train_aug_120x120.list.val”
–param-fp-train=‘train.configs/param_all_norm.pkl’
–param-fp-val=‘train.configs/param_all_norm_val.pkl’ \


问题2:
AttributeError: ‘NoneType’ object has no attribute ‘sub_’
文件路径有问题 找不到路径下的文件
解决方法:
解压了train_aug_120x120.zip 并修改.sh文件路径
–root=“train_aug_120x120” \

 类似资料: