pythonopencv人脸相似度_OpenCV3与深度学习实例:Dlib+VGG Face实现两张脸部图像相似度比较...

实现思路:

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 enumerate(faces1):

cv2.imshow('face1_%d' % i,face)

for i,face in enumerate(faces2):

cv2.imshow('face2_%d' % i,face)

face_1 = faces1[0]

face_2 = faces2[0]

result = compare_faces(face_1,face_2)

print('prob of similarity:',result)

cv2.waitKey()

cv2.destroyAllWindows()

第一张图像与第二张图像人脸的相似度为:0.8697828

第一张图像与第三张图像人脸的相似度为:0.998867

第一张图像与第四张图像人脸的相似度为:0.00211427

以上测试图像来源网络,仅作程序演示使用,如有侵权,请告知删除。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值