文章目录
一 安装部分
1.1 face_recognition简介
face_recognition主要是对dlib机器学习库的二次开发,主要功能包括人脸检测、人脸关键点检测、人脸识别。
1.2 环境参数
Python3.4+
dlib
face_recognition
1.3 下载face_recognition源代码
下载地址:https://github.com/ageitgey/face_recognition
二 简单的命令行界面使用
安装face_recogniton时,将获得一个命令行程序,称为face_recogniton,可进行人脸识别。
2.1 人脸识别
首先准备./pictures_of_people_i_know/和./unknown_pictures/文件夹,分别保存已知人员和未知人员的图片,见下图:
进入文件夹所在目录,运行:
# face_recognition ./pictures_of_people_i_know/ ./unknown_pictures/
调整检测阈值(默认0.6),运行:
# face_recognition --tolerance 0.54 ./pictures_of_people_i_know/ ./unknown_pictures/
显示两面部匹配的距离,运行:
# face_recognition --show-distance true ./pictures_of_people_i_know/ ./unknown_pictures/
三 人脸检测
3.1 HOG+SVM模型
3.1.1 代码
代码:examples/find_faces_in_picture.py
3.1.2 测试结果
(左边原图,右边人脸检测图)
3.2 cnn模型
官网上描述cnn模型比HOG+SVM模型的检测效果要好,但是速度较慢。
3.2.1 代码
代码:examples/find_faces_in_picture_cnn.py
3.2.2 测试结果
(左边原图,右边人脸检测图)
3.3 视频中的人脸检测
3.3.1 代码
代码:examples/blur_faces_on_webcam.py
3.3.2 测试结果
(略)
四 人脸关键点检测
4.1 人脸关键点检测(级联回归算法)
4.1.1 代码
代码:examples/find_facial_feature_in_picture.py
4.1.2 测试结果
4.2 人脸关键点检测的化妆应用
4.2.1 代码
代码:examples/digital_makeup.py
4.2.2 测试结果
五 人脸识别
5.1 人脸识别(残差网络模型)
5.1.1 代码
代码:examples/recognize_faces_in_picture.py
5.1.2 检测结果
5.2 视频中的人脸识别
5.2.1 代码
代码:examples/facerec_from_webcam_faster.py
5.3 人脸识别(残差网络模型+knn近邻分类器)
当存在大量已知人员(即同一个人存有多张图片)时可使用该案例。人脸识别的128维特征提取仍是用残差网络模型,只不过预测时,knn算法会从训练集中找出k个最相似的面孔,进行多数投票进行人脸预测。
5.3.1 算法说明
算法步骤:
(1) 生成数据集及标签:
(2) 训练,生成knn分类器
(3) 测试,判断匹配脸最接近的距离是否小于阈值,若大于则预测人脸为unknown,若小于则进行knn的人脸识别预测
5.3.2 代码
代码:examples/face_recognition_knn.py
5.3.3 检测结果
六 代码运行方式
进入代码所在目录,运行:
# python3 XXX.py