codeformer 中文文档 下载 App

dlib 人脸检测器安装:conda / pip / 源码编译三条路

dlib 是什么,要不要装

dlib 是一个 C++ 写的机器学习库,CodeFormer 用它做人脸检测和 5 点 landmark 对齐:

如果用 conda install -c conda-forge dlib 一次成功,那就装;如果折腾半小时还失败,放弃 dlib 就行,不影响主要功能。

方案一:Conda(最推荐)

conda activate codeformer
conda install -c conda-forge dlib

Conda-forge 提供了预编译好的 wheel,Linux/Mac/Windows 都有。正常情况下这行命令 5 分钟内装好,不需要 CMake 或 C++ 编译器。

如果 conda-forge 没有你的 Python 版本的包,跳到方案二或三。

方案二:Pip 预编译 wheel

pip install dlib

但 Python 3.8+ 在 Windows 上经常没有预编译 wheel,pip 会尝试源码编译——而 dlib 的源码编译在 Windows 上是出了名的难。

解决:找第三方预编译 wheel

去 [Gohlke 的 dlib wheel 集合](<URL> 下载对应你 Python 版本和位数的 .whl 文件(注意这个网站可能挂了),或者去 GitHub 找社区维护的 wheel。

下载后本地安装:

pip install dlib-19.24.0-cp38-cp38-win_amd64.whl

方案三:源码编译(最后手段)

如果你一定想从源码编译:

Windows 前置条件

  1. 安装 CMake ≥ 3.18(cmake.org/download)
  2. 安装 Visual Studio Build Tools(只需 C++ 桌面开发组件)
  3. 安装 boost(用 vcpkg 或 conda)
# 用 vcpkg 装 boost
git clone <仓库地址>
cd vcpkg
.\bootstrap-vcpkg.bat
.\vcpkg install boost
.\vcpkg integrate install

编译

# 在 codeformer 环境里
git clone -b v19.24.0 <URL>
cd dlib
python setup.py install --set DLIB_USE_CUDA=OFF
# DLIB_USE_CUDA=OFF 关 dlib 的 CUDA,省得和 PyTorch CUDA 冲突

常见编译错误

错误原因修复
CMake was unable to find a build program没装 VS Build Tools装 Visual Studio Build Tools,选 C++ 桌面开发
boost not foundvcpkg 没 integratevcpkg integrate install 后重开 PowerShell
内存不足编译 dlib 吃内存关闭其他程序,或只编译 dlib 的 Python 绑定(cd dlib/python_examples 再编译)
error C2471VS 版本太旧用 VS 2019 或 VS 2022

安装验证

import dlib
print(f"dlib version: {dlib.__version__}")
detector = dlib.get_frontal_face_detector()
print("dlib 人脸检测器初始化成功")

放弃 dlib 的替代方案

如果 dlib 死活装不上,CodeFormer 默认的 YOLOv5-face 检测器(通过 facexlib)已经够好了。它的人脸检测精度不输 dlib,速度还更快。

只是 landmark 对齐的精度,dlib 的 68 点 landmark 比 YOLOv5 的 5 点更精细——对于大多数人脸修复场景,5 点足够。