CentOS 下 GeneFace++ 安装指南
一 环境准备与版本选择
- 建议使用 CentOS 7/8(x86_64),已验证环境为 CUDA 11.7 + PyTorch 2.0.1 + Python 3.9;不建议使用 CUDA 12.x,部分组件(如 torch-ngp)会出现兼容性问题。请确保 NVIDIA 驱动 ≥ 515(CUDA 11.7 要求)。如使用 CentOS Stream 9,为获得较新的驱动与编译链,可启用 ELRepo 的 kernel-ml 与 kmod-nvidia 仓库。另请注意 CentOS 已进入 EOL 阶段,生产环境请规划迁移或加固安全更新策略。
二 驱动与 CUDA 11.7 安装
- 安装 NVIDIA 驱动(示例为 535 系列,满足 ≥515 要求):
- ELRepo 方式(推荐):
- 导入 GPG 并启用 ELRepo:
- sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
- sudo yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm # CentOS 8
- 安装最新 LTS 内核与头文件(便于新驱动编译):
- sudo yum --enablerepo=elrepo-kernel install kernel-ml kernel-ml-devel -y
- 重启并选择新内核(grub2-set-default 0)
- 安装驱动与 DKMS 模块:
- sudo yum --enablerepo=elrepo install kmod-nvidia nvidia-x11-drv nvidia-driver-latest-dkms -y
- 通用方式(runfile,需关闭 Nouveau):
- 从 NVIDIA 获取对应系统/架构的 CUDA 11.7 runfile,执行安装时仅勾选 CUDA Toolkit(驱动单独安装更稳妥)。
- 安装 CUDA 11.7 Toolkit(runfile 或网络仓均可):
- 建议路径:/usr/local/cuda-11.7
- 配置环境变量(写入 ~/.bashrc 或 /etc/profile.d/cuda.sh):
- export PATH=/usr/local/cuda-11.7/bin:$PATH
- export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64:$LD_LIBRARY_PATH
- export CUDA_HOME=/usr/local/cuda-11.7
- 验证:
- nvidia-smi(驱动与 GPU 状态)
- nvcc --version(应显示 11.7)
- 备注:若已安装驱动,runfile 安装时可仅选择 Toolkit 以避免驱动覆盖。
三 Python 环境与核心依赖
四 数据准备与快速验证
- 3DMM 模型与必要文件(BFM2009 等):
- 将 01_MorphableModel.mat 放置到 deep_3drecon/BFM/。
- 下载 Exp_Pca.bin、BFM_model_front.mat 到同一目录。
- 下载 facerecon 预训练权重 epoch_20.pth 至 deep_3drecon/checkpoints/facerecon/。
- 生成跟踪所需文件:
- cd data_util/face_tracking
- python convert_BFM.py
- 环境自检(示例命令,按项目 README 为准):
- 测试 3D 重建模块:
- export PYTHONPATH=./
- CUDA_VISIBLE_DEVICES=0 python deep_3drecon/test.py
- 生成 GeneFace 所需重建器配置:
- python deep_3drecon/generate_reconstructor_opt_for_geneface.py
- 若后续进行训练/推理,请按仓库说明准备视频与音频数据并完成预处理。
五 常见问题与排错要点
- 驱动与 CUDA 不匹配:
- 确保 nvidia-smi 显示的驱动版本满足 CUDA 11.7(≥515);如不符,先升级驱动或重装对应版本。
- PyTorch 与 CUDA 版本冲突:
- 出现 torch-ngp 相关错误时,优先回退到 PyTorch 2.0.1 + cu117;避免 2.1 + cu121 组合。
- 自定义 CUDA 扩展编译失败:
- 确认 gcc/glibc 版本满足编译要求,已安装 kernel-devel 与对应头文件;必要时使用 mim 与国内镜像加速依赖安装。
- 音频设备/依赖缺失:
- 若运行音频相关模块报错,检查 portaudio/alsa 是否安装成功,并确认用户权限可访问音频设备。
- 运行被系统 Kill(OOM):
- 训练/渲染阶段显存或内存不足,可降低 batch size、分辨率或使用更小模型;确保 /dev/shm 空间充足(必要时挂载更大 tmpfs)。