项目详情

face_recognition

世界上最简单的人脸识别 API

GitHub 地址 MIT Python 99.38% LFW

更新于 2026-06-25 · 创建于 2017-03

← 返回汇总
项目速览

一句话定位

几行 Python 代码搞定人脸检测、定位、识别

基于 dlib 的深度学习人脸识别库,提供 Python 和命令行两种调用方式。在 Labeled Faces in the Wild 基准上准确率 99.38%——达到工业级。API 设计极简:找脸、找五官、算编码、比人脸,四个函数覆盖绝大多数场景。还能结合 OpenCV 做实时摄像头识别。是 Python 人脸识别领域最经典的入门项目,文档完善、示例丰富、跨平台部署(含树莓派/Jetson Nano)。

项目速览

核心数据

56k
GitHub Stars
99.38%
LFW 准确率
4
核心 API
2017
诞生年份

MIT 许可证 · 基于 dlib · 树莓派/Jetson Nano/Docker/VM 全覆盖

🔥 四大核心功能

四个函数搞定一切

① 找人脸 face_locations() 返回图中所有脸的位置 (坐标框) ② 找五官 face_landmarks() 眼睛/鼻子/嘴巴/下巴 的轮廓点 ③ 算编码 face_encodings() 把脸转成 128 维向量 (特征 embedding) ④ 比人脸 compare_faces() 判断两张脸是不是 同一个人 ③ → ④ 是识别的核心:编码后用向量距离比较 128 维 embedding 来自 dlib 的 ResNet 模型,LFW 99.38% 准确率 底层引擎:dlib 的深度学习人脸识别(ResNet,state-of-the-art)
API 详解

四大功能代码示例

import face_recognition

# ① 找人脸位置
image = face_recognition.load_image_file("photo.jpg")
locations = face_recognition.face_locations(image)

# ② 找五官轮廓(眼/鼻/嘴/下巴)
landmarks = face_recognition.face_landmarks(image)

# ③ 把脸编码成 128 维向量
encodings = face_recognition.face_encodings(image)

# ④ 比较两张脸是否同一人
known = face_recognition.load_image_file("biden.jpg")
unknown = face_recognition.load_image_file("unknown.jpg")
known_enc = face_recognition.face_encodings(known)[0]
unknown_enc = face_recognition.face_encodings(unknown)[0]
results = face_recognition.compare_faces([known_enc], unknown_enc)
命令行工具

不用写代码也能用

# 命令行对一整个文件夹的图片做人脸识别
face_recognition ./pictures_of_people_i_know/ ./unknown_pictures/

# 输出示例
unknown_pictures/unknown1.jpg,unknown_person
unknown_pictures/unknown2.jpg,unknown_person
unknown_pictures/unknown3.jpg,biden

# 只想找脸在哪(不识别是谁)
face_recognition_face_locations ./unknown_pictures/

装完即用,把已知人脸放一文件夹,未知图放另一文件夹,命令一行出结果。

实时识别

配合 OpenCV 做摄像头识别

结合 cv2(OpenCV),可做实时摄像头人脸识别——每帧抓脸、编码、与已知库比对、画框标名。

examples/ 目录含大量现成示例,复制即用。

技术原理

128 维向量 + 余弦距离

人脸编码(Embedding)

用 dlib 的 ResNet 模型把每张脸压成 128 维向量。同一个人的脸向量距离近,不同人远。这是现代人脸识别的通用范式。

比对策略

compare_faces() 用阈值判断;face_distance() 返回精确距离,可排序找最像的。调阈值平衡误识率与拒识率。

dlib 用 HOG + CNN 两种检测器:HOG 快(CPU 可用),CNN 精但需 GPU。

部署矩阵

跨平台广泛部署

macOS / Linux

官方支持,pip 装 dlib 后即用。

Raspberry Pi

Pi 2+ 有专门安装指南,边缘部署。

Jetson Nano

NVIDIA 边缘 AI 板,有 $150 搭硬件识别系统的教程。

Docker / VM

预配置 Docker 镜像 + VM image,免环境折腾。

Windows 非官方支持,但有社区安装指南。FreeBSD 亦有 pkg。

快速上手

三步安装运行

# 1. 先装 dlib(macOS 示例)
#    见 gist.github.com/ageitgey/629d75c1baac34dfa5ca2a1928a7aeaf

# 2. 装 cmake
brew install cmake

# 3. pip 装
pip3 install face_recognition

# 立即可用
face_recognition ./known/ ./unknown/
适用场景

适合谁用

风险提示

需要警惕

vs Faceswap

与 Faceswap 的区别

face_recognitionFaceswap
核心任务识别(这是谁)生成(把脸换成另一个)
技术检测 + 编码 + 比对训练生成模型 + 转换
模型dlib 预训练(开箱即用)需自己训练 12-48 小时
硬件CPU 可用(HOG 模型)GPU 几乎必须
伦理敏感度中(生物特征隐私)高(deepfake 滥用)
许可证MIT(宽松)GPL-3.0(传染)
潜力评估

历史地位与现状

Python 人脸识别的「Hello World」——极简 API + 99.38% 准确率 + 海量示例,是无数开发者入门 CV 的第一站。但项目近年维护放缓,技术栈(dlib)相对固定,新一代方案(insightface、facenet-pytorch、MediaPipe)在精度与速度上有超越。作为学习样本、快速原型、低规模应用,依然是最佳起点之一。


上一个
Faceswap
下一个
Anthropic Skills
1 / 15