实现思路:
1、使用Dlib识别并提取脸部图像
2、使用VGG Face模型提取脸部特征
3、使用余弦相似度算法比较两张脸部图像的特征
代码如下:
import time
import numpy as np
import sklearn
import sklearn.metrics.pairwise as pw
import cv2
import dlib
prototxt = 'datas/models/caffe/vgg-face/vgg_face_caffe/vgg_face_caffe/VGG_FACE_deploy.prototxt'
caffemodel = 'datas/models/caffe/vgg-face/vgg_face_caffe/vgg_face_caffe/VGG_FACE.caffemodel'
dlib_model = 'datas/models/dlib/shape_predictor_68_face_landmarks.dat'
detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor(dlib_model)
net = cv2.dnn.readNetFromCaffe(prototxt, caffemodel)
faces1 = get_faces('datas/images/face-tests/fanbb/f16.jpg')
faces2 = get_faces('datas/images/faces/fanbb.jpg')
for i,face in