face_recognition快速入门:3行代码识别照片中的人脸(附完整示例代码)
【免费下载链接】face_recognitionThe world's simplest facial recognition api for Python and the command line项目地址: https://gitcode.com/gh_mirrors/fa/face_recognition
face_recognition是一款号称"全球最简单"的 Python 人脸识别库,只需几行代码就能完成人脸检测与人脸比对,还自带命令行工具,是新手入门人脸识别的首选。本文将带你快速上手,用 3 行代码找出照片中的每个人脸,再进阶实现"识别这个人是谁"。
一、认识 face_recognition:极简的 Python 人脸识别库
face_recognition封装了 dlib 强大的检测与特征提取算法,把复杂的人脸识别流程压缩成了几个易读 API,核心能力包括:
- 人脸检测:定位照片中每个人脸的像素坐标(上、右、下、左)
- 人脸关键点:提取眼睛、鼻尖、嘴角等 68 个特征点
- 人脸识别/比对:把人脸转换为 128 维特征向量,再比较是否同一人
核心 API 全部集中在 face_recognition/api.py 中,其中 face_locations 负责检测、face_encodings负责生成特征、compare_faces负责比对。
二、3行代码实现照片人脸检测
想找出照片里有几张脸?只需 3 行代码:
import face_recognition image = face_recognition.load_image_file("obama.jpg") face_locations = face_recognition.face_locations(image)face_locations返回一个列表,每个元素是(top, right, bottom, left)四元组,即人脸边框的像素坐标。你可以用切片image[top:bottom, left:right]直接把人脸抠出来。完整的运行示例见 examples/find_faces_in_picture.py,它对图中每张脸都会打印坐标。
💡 小技巧:
face_locations的model参数可选"hog"(CPU 更快)或"cnn"(更精准,GPU 加速),详见 examples/find_faces_in_picture_cnn.py。
三、如何识别照片中的人:人脸比对教程
检测只是"找到脸",识别才是"认出是谁"。流程是:先为已知照片生成特征编码,再与新照片比对。
精简版代码(完整版见 examples/recognize_faces_in_pictures.py):
import face_recognition # 已知人物的特征编码(取图中第一张脸) obama_encoding = face_recognition.face_encodings( face_recognition.load_image_file("obama.jpg"))[0] # 待识别照片的特征编码 unknown_encoding = face_recognition.face_encodings( face_recognition.load_image_file("obama2.jpg"))[0] # 比对结果:True 表示是同一人 print(face_recognition.compare_faces([obama_encoding], unknown_encoding))如果想衡量相似程度,可用face_distance计算欧氏距离,距离越小越像。当人物较多、想按"最近邻"匹配时,可以试试 KNN 方案,训练集与说明见 examples/knn_examples/ 和 examples/face_recognition_knn.py。
四、不改代码:face_recognition 命令行快速识别
不想写脚本?安装后会自动附带两个命令行工具(实现位于 face_recognition/face_recognition_cli.py 和 face_recognition/face_detection_cli.py):
1. 人脸检测—— 直接输出每张脸的坐标:
$ face_detection ./pictures/ examples/image1.jpg,65,215,169,1122. 人脸识别—— 先准备一个"已知人物"文件夹(每人一张、以姓名命名),再扫描待识别图片:
$ face_recognition ./pictures_of_people_i_know/ ./unknown_pictures/ /unknown_pictures/unknown.jpg,Barack Obama /unknown_pictures/unknown2.jpg,unknown_person未匹配上的人会被标记为unknown_person。若同一人被误判为多人,可用--tolerance参数调低敏感度。
五、face_recognition 安装步骤
- 环境要求:Python 3.3+,官方支持 macOS / Linux(Windows 需按社区指南手动配置)
- 先安装dlib(带 Python 绑定)和cmake
- 执行安装:
pip3 install face_recognition如果本地编译 dlib 有困难,可以直接使用项目提供的 Docker 环境,参考 docker/README.md 与 docker-compose.yml。
六、更多实用示例与文档
examples/目录提供了丰富的场景代码,适合按需取用:
- 实时摄像头人脸识别:examples/facerec_from_webcam.py
- 视频文件批量识别:examples/facerec_from_video_file.py
- 批量检测照片:examples/find_faces_in_batches.py
- 网页服务(Flask):examples/web_service_example.py
📖 更完整的用法讲解见官方文档 docs/usage.rst,API 参考见 docs/face_recognition.rst。从 3 行代码到完整的人脸识别系统,face_recognition都能轻松胜任,快动手试试吧!
【免费下载链接】face_recognitionThe world's simplest facial recognition api for Python and the command line项目地址: https://gitcode.com/gh_mirrors/fa/face_recognition
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考