本文档介绍了 face_recognition 库的目的、主要特性和功能。它提供了该库的功能和用法的技术概述。
有关整体架构和实现细节的信息,请参阅 架构。
face_recognition 库为面部检测和识别任务提供了一个简单的 Python 接口。它作为 dlib 强大的面部识别功能的易用包装器,使得没有专业机器学习专业知识的开发人员也能使用计算机视觉技术。底层模型在 Labeled Faces in the Wild 基准测试中达到了 99.38% 的准确率。
该库可以定位图像中的所有人脸,并返回其坐标位置
面部检测功能支持两种检测模型
HOG(默认):速度更快但精度较低,适用于 CPU 处理CNN:精度更高,但需要更多计算资源(建议使用 GPU)来源:README.md22-32 README.md255-283
该库可识别检测到的人脸内的详细面部地标
这些地标支持从面部分析到数字化妆或面部滤镜等创意应用
来源:README.md34-49 README.md294-309
该库生成面部编码并进行比较以识别人员
每个面部编码是一个 128 维向量,代表面部特征。这些编码可以进行比较,以确定两张面孔是否属于同一个人。
来源:README.md51-72 README.md311-337 examples/recognize_faces_in_pictures.py1-29
该库提供两个主要接口
Python API 提供对人脸识别操作的精确控制
| 功能 | 描述 |
|---|---|
face_recognition.load_image_file() | 将图像文件加载到 numpy 数组中 |
face_recognition.face_locations() | 返回人脸边界框数组 |
face_recognition.face_landmarks() | 返回面部特征位置 |
face_recognition.face_encodings() | 返回 128 维人脸编码 |
face_recognition.compare_faces() | 比较人脸并返回布尔匹配结果 |
face_recognition.face_distance() | 返回数值相似性度量 |
两个命令行工具简化了常见的人脸识别任务
face_recognition CLI 工具通过与已知人脸文件夹进行比较来识别图像中的人物,而 face_detection 工具则仅定位人脸并报告其坐标。
来源:README.md135-142 README.md144-174 README.md175-192
| 模型 | 参数 | 性能 | 用例 |
|---|---|---|---|
| HOG | model='hog' (默认) | 速度更快,精度较低 | 通用,仅 CPU 系统 |
| CNN | model='cnn' | 精度更高,速度较慢 | 高精度需求,GPU 系统 |
该库支持多种性能优化技术
对于大规模处理,该库可以利用多个 CPU 核心并行处理图像,从而显著提高吞吐量。
来源:README.md233-246 README.md287-288 README.md353-357
面部匹配由容差参数控制,该参数决定了匹配的严格程度
| 容差值 | 描述 |
|---|---|
| 较低的值(例如 0.4) | 匹配更严格,假阳性更少 |
| 默认值 (0.6) | 平衡的匹配精度 |
| 较高的值(例如 0.8) | 匹配更宽松,可能产生更多假阳性 |
调整此参数对于优化特定用例的识别精度至关重要。
来源:README.md379-384 README.md80-84 README.md385-397
该库可部署在各种环境中
该库灵活的设计允许其部署在各种环境中,从本地开发机器到边缘设备和容器化云解决方案。
来源: README.md102-111 README.md108-131 README.md386-397 README.md356-359