2. 开发环境搭建:Python环境配置、OpenCV安装、dlib库安装、face_recognition库安装、GPU环境配置(CUDA/cuDNN)
说实话,环境搭建这事儿,看着简单,但坑是真不少。我见过太多同学代码写好了,结果卡在环境上,一卡就是半天。所以这一章,咱们把每个步骤都捋清楚。
先看整体流程,心里有个谱:
2.1 Python 环境配置
我个人习惯用 Anaconda 来管理 Python 环境。为什么?因为项目多了你就知道,依赖冲突有多烦人。Anaconda 能帮你隔离环境,一个项目一个环境,互不干扰。
安装步骤很简单:
- 去 Anaconda 官网下载对应系统的安装包
- 一路默认安装,记得勾选「Add Anaconda to my PATH」
- 打开终端(Windows 用 Anaconda Prompt),验证安装:
conda --version
python --version
然后创建一个专用环境:
conda create -n face_recognition python=3.8
conda activate face_recognition
嗯,这里要注意:环境名别用中文,有些库对路径里的中文支持不好。我之前有个学生用了中文名,结果 dlib 编译死活过不去,折腾了两小时才发现是这个问题。
2.2 OpenCV 安装
OpenCV 是人脸识别的眼睛。没有它,你连图片都读不进来。
安装方式有两种:
| 方式 | 命令 | 说明 |
|---|---|---|
| pip 安装(推荐) | pip install opencv-python |
包含核心模块,够用 |
| 完整版 | pip install opencv-contrib-python |
包含扩展模块,功能更全 |
我个人建议先装核心版,等后面需要 SIFT、SURF 这些特征提取时再换完整版。别一开始就装个大包,没必要。
验证安装:
python -c "import cv2; print(cv2.__version__)"
如果输出了版本号,比如 4.8.0,那就成了。
2.3 dlib 库安装
dlib 这个库,怎么说呢,又爱又恨。爱的是它的人脸关键点检测确实准,恨的是它编译起来真能折腾人。
先试试最简单的安装方式:
pip install dlib
如果顺利,几秒钟就装好了。但如果你用的是 Windows,或者 Python 版本比较新,很可能会报错——因为 pip 上没有预编译的 wheel 包。
这时候怎么办?我教你两招:
- 方法一:用 conda 装
conda install -c conda-forge dlib,conda 会帮你处理依赖 - 方法二:从源码编译,但需要先装 CMake 和 Visual Studio Build Tools
我曾经在 Windows 上从源码编译 dlib,等了整整 20 分钟。那会儿我还以为是电脑死机了……后来发现它就是在老老实实地编译。
验证安装:
python -c "import dlib; print(dlib.__version__)"
pip install face_recognition 时让它自动装。face_recognition 依赖 dlib,安装过程会帮你处理。
2.4 face_recognition 库安装
这个库是 dlib 的上层封装,把很多复杂操作简化成了几行代码。说白了,它就是让你不用关心底层算法细节,直接调 API 就能做人脸识别。
安装命令:
pip install face_recognition
它会自动安装 dlib 和 numpy 等依赖。如果 dlib 已经装好了,这一步会很快。
验证安装:
python -c "import face_recognition; print('安装成功')"
我们来写个最简单的测试代码,看看能不能检测到人脸:
import face_recognition
# 加载一张图片
image = face_recognition.load_image_file("test.jpg")
# 检测人脸位置
face_locations = face_recognition.face_locations(image)
print(f"检测到 {len(face_locations)} 张人脸")
如果输出 检测到 1 张人脸 或者更多,那就说明环境完全 OK 了。
2.5 GPU 环境配置(CUDA / cuDNN)
如果你有 NVIDIA 显卡,那一定要配 GPU 环境。为什么?我举个例子:用 CPU 处理一张 1080p 图片的人脸检测,大概需要 0.3 秒;用 GPU 的话,0.05 秒就搞定了。你想想看,要是做实时视频流,这差距就是能不能用的区别。
配置步骤:
- 检查显卡驱动:打开终端,输入
nvidia-smi,看有没有输出 - 安装 CUDA Toolkit:去 NVIDIA 官网下载对应版本,我推荐 CUDA 11.8 或 12.1
- 安装 cuDNN:需要注册 NVIDIA 开发者账号,下载后把文件复制到 CUDA 安装目录
- 配置环境变量:把 CUDA 的 bin 和 lib 路径加到 PATH 里
验证 CUDA 是否装好:
nvcc --version
验证 cuDNN 是否装好:
python -c "import torch; print(torch.cuda.is_available())"
如果输出 True,那就说明 GPU 环境配好了。
最后,把 GPU 版本的 dlib 也装一下:
pip install dlib-gpu
或者从源码编译时加上 -DUSE_AVX_INSTRUCTIONS=ON -DDLIB_USE_CUDA=ON 选项。