这个程序我写了两个晚上,识别人脸很成功,我就不贴上识别结果了,因为我长的不好看,哈哈哈。
1 打开已知人员的照片库人脸信息,并调用摄像头
2 与已知人物头像信息进行对比,识别哪些是已知人员,哪些是未知人员
3 在摄像头图像上直接标注对比结果(加框)
4 记录每次对比的结果,并将未知人员的图像保存下来
5 定时发送邮件,通知监控信息
6 活体检测,防止用图片混入(眨眼:通过眼睛的纵横比)
需要这九个模块(dlib模块只有python3.6才能pip安装,其他版本需要下载vs2017以上版本才可以正确安装,我就是后者)
import dlib
import face_recognition
import io,os,cv2
from PIL import ImageDraw,Image,ImageFont
import numpy as np
import datetime
import threading
先将已知人员的脸部编码信息全部读进来,并将脸部对应的姓名取出,方便后面处理。
def load_image(path):
print('正在加载已知人员的图片库...')
for dir_path,dir_names,file_names in os.walk(path): #要学会用这种方法
print(dir_path,dir_names,file_names)
face_lib=[]
for file_name in file_names:
file_path=os.sep.join([dir_path,file_name]) #拼接创建路径
face_image=face_recognition.load_image_file(file_path)
face_encoding=face_recognition.face_encodings(face_image)[0]
face_lib.append(face_encoding)
return face_lib,file_names
path