在 CentOS 上安装 GeneFace++ 的可行方案
一 前置条件与版本选择
- 建议使用 CentOS 7/8(或兼容的 RHEL 系发行版),并准备 NVIDIA GPU(显存建议 ≥ 8 GB)。GeneFace++ 的多数教程在 CUDA 11.7 + PyTorch 2.0.1 的组合下验证通过;也有教程使用 CUDA 11.3 + PyTorch 1.11.0 的搭配。为避免兼容性问题,优先选择 CUDA 11.7 路线。请确保已安装与之匹配的 NVIDIA 驱动,并可通过
nvidia-smi 正常查看 GPU 信息。
二 系统级依赖与驱动准备
- 安装 EPEL 与基础编译工具(CentOS 7/8 常用):
- sudo yum install -y epel-release
- sudo yum groupinstall -y "Development Tools"
- sudo yum install -y cmake3 gcc gcc-c++ make
- 安装多媒体与音频依赖(ALSA/PortAudio,便于音频处理与采集):
- sudo yum install -y alsa-lib-devel portaudio-devel
- 安装 FFmpeg(建议通过 conda 获取较新版本,避免系统仓库版本过旧):
- conda install -c conda-forge ffmpeg
- 驱动与 CUDA 要点:
- 确认驱动版本满足所选 CUDA 的要求(如 CUDA 11.7 建议使用 ≥515 的驱动)。
- 设置环境变量(示例,按实际路径调整):
- echo 'export PATH=/usr/local/cuda-11.7/bin:$PATH' >> ~/.bashrc
- echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
- source ~/.bashrc
- 验证:
- nvidia-smi
- nvcc --version
上述驱动与 CUDA 安装步骤在 Ubuntu 教程中有完整示范,CentOS 下仅需将包管理命令替换为 yum/dnf 即可;ALSA/PortAudio 的依赖安装方式与 Ubuntu 的 apt 不同,但作用一致。
三 创建 Conda 环境并安装 Python 依赖
- 创建隔离环境(Python 3.9 为主流选择):
- conda create -n geneface python=3.9 -y
- conda activate geneface
- 安装 PyTorch(CUDA 11.7 路线,稳定且与项目教程一致):
- conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia
- 安装 PyTorch3D(从源码安装,确保与 CUDA/PyTorch 版本匹配):
- pip install "git+https://github.com/facebookresearch/pytorch3d.git@stable"
- 安装 MMCV(使用 openmim 加速与锁定版本):
- pip install cython openmim==0.3.9
- mim install mmcv==2.1.0
- 安装项目其余 Python 依赖:
- pip install -r docs/prepare_env/requirements.txt
以上版本组合已在 GeneFace++ 多篇部署教程中验证;若网络不稳定,可使用国内镜像源加速安装。
四 编译自定义 CUDA 扩展与验证
- 编译项目自带的 CUDA 扩展(路径与脚本名以仓库为准,常见为 install_ext.sh 或 do 脚本):
- bash docs/prepare_env/install_ext.sh
- 或按仓库说明执行:bash do
- 运行环境自检与功能验证(示例):
- 测试 3D 重建模块:
- export PYTHONPATH=./
- CUDA_VISIBLE_DEVICES=0 python deep_3drecon/test.py
- 生成用于 GeneFace 的重建器配置:
- python deep_3drecon/generate_reconstructor_opt_for_geneface.py
- 若脚本或路径与仓库更新不一致,请以项目 docs/prepare_env/ 下的最新说明为准。上述验证步骤可直接复用 GeneFace 项目提供的测试脚本。
五 常见问题与排错要点
- 版本不匹配导致的问题:
- 已验证 PyTorch 2.1 + CUDA 12.1 会出现与 torch-ngp 相关的错误;建议固定为 PyTorch 2.0.1 + CUDA 11.7。
- 构建扩展失败(CUDA 架构/驱动/编译链):
- 确认
nvcc --version 与驱动匹配;检查 gcc/g++ 版本;必要时设置 TORCH_CUDA_ARCH_LIST 仅保留本机架构(如 8.6/8.9)。 - 多媒体依赖缺失:
- 若运行时报 ALSA/PortAudio 错误,请确认已安装
alsa-lib-devel 与 portaudio-devel,并重新安装相关 Python 音频包。 - FFmpeg 不可用:
- 若系统 FFmpeg 过旧或缺失编解码器,优先使用
conda-forge 提供的 FFmpeg。 - 国内网络问题:
- 安装 PyTorch、PyTorch3D、MMCV 等大型包时,可使用清华等镜像源加速(如
-i https://pypi.tuna.tsinghua.edu.cn/simple)。