1、直接上干货

#!/usr/bin/python
# -*- coding: utf-8 -*-
import time
import dlib
import numpy as np
class faceDiscernModel:
def __init__(self):
# 加载预训练人脸检测CNN模型
self.cnn_face_model = "./model/mmod_human_face_detector.dat"
self.cnn_face_detector = dlib.cnn_face_detection_model_v1(self.cnn_face_model) # 加载人脸特征检测模型
self.predictor_path = "./model/shape_predictor_5_face_landmarks.dat"
self.predictor = dlib.shape_predictor(self.predictor_path) # 加载人脸特征提取模型
self.featureModel = "./model/dlib_face_recognition_resnet_model_v1.dat"
self.feater = dlib.face_recognition_model_v1(self.featureModel) def get_faces_feature(self,imgPath): # 读取人脸图片
img = dlib.load_rgb_image(imgPath) feat = [] # 检测每个人脸的边界框
dets = self.cnn_face_detector(img, 1) # len(dets) 是检测到的人脸数量
for i, d in enumerate(dets):
# print("Detection {}: Left: {} Top: {} Right: {} Bottom: {} Confidence: {}".format(
# i, d.rect.left(), d.rect.top(), d.rect.right(), d.rect.bottom(), d.confidence)) # 检测 box i 内的人脸关键点
shape = self.predictor(img, d.rect) # 计算特征向量
face_descriptor = self.feater.compute_face_descriptor(img, shape) feat.append(face_descriptor) return feat def Euclidean_distance_test(self,feature_1,feature_2):
return np.sqrt(np.sum((np.array(feature_1)-np.array(feature_2))**2)) def face_compare(self,imgPath_1,imgPath_2,assess=0.6):
feature_1 = self.get_faces_feature(imgPath_1)
feature_2 = self.get_faces_feature(imgPath_2)
score = self.Euclidean_distance_test(feature_1=feature_1,feature_2=feature_2)
if score > assess:
return False
elif 0< score < assess:
return True
else:
return False if __name__ == '__main__': imgPath_1 = "./faceImage/test.jpg"
imgPath_2 = "./faceImage/test1.jpg"
faceDiscern = faceDiscernModel()
st = time.time()
result = faceDiscern.face_compare(imgPath_1,imgPath_2) print(time.time()-st)
print(result)

  

2、模型下载地址

  http://dlib.net/files/

python 封装dlib模型进行人脸识别系统的登录认证的更多相关文章

  1. 基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【一】如何配置caffe属性表

    前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...

  2. 基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【三】VGG网络进行特征提取

    前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...

  3. 基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【二】人脸预处理

    前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...

  4. 基于深度学习的人脸识别系统系列(Caffe+OpenCV+Dlib)——【四】使用CUBLAS加速计算人脸向量的余弦距离

    前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...

  5. 人脸识别系统 —— 基于python的人工智能识别核心

    起因 自打用python+django写了一个点菜系统,就一直沉迷python编程.正好前几天公司boss要我研究一下人脸识别,于是我先用python编写了一个人脸识别系统的核心,用于之后的整个系统. ...

  6. Python3+Dlib实现简单人脸识别案例

    Python3+Dlib实现简单人脸识别案例 写在前边 很早很早之前,当我还是一个傻了吧唧的专科生的时候,我就听说过人脸识别,听说过算法,听说过人工智能,并且也出生牛犊不怕虎般的学习过TensorFl ...

  7. facenet 人脸识别(二)——创建人脸库搭建人脸识别系统

    搭建人脸库 选择的方式是从百度下载明星照片 照片下载,downloadImageByBaidu.py # coding=utf-8 """ 爬取百度图片的高清原图 &qu ...

  8. C++ 人脸识别系统的浅理解

    机器学习 机器学习的目的是把数据转换成信息. 机器学习通过从数据里提取规则或模式来把数据转成信息. 人脸识别 人脸识别通过级联分类器对特征的分级筛选来确定是否是人脸. 每个节点的正确识别率很高,但正确 ...

  9. Nodejs开发人脸识别系统-教你实现高大上的人工智能

    Nodejs开发人脸识别系统-教你实现高大上的人工智能   一.缘起缘生 前段时间有个H5很火,上传个头像就可以显示自己穿军装的样子,无意中看到了一篇帖子叫 全民刷军装背后的AI技术及简单实现 ,里面 ...

随机推荐

  1. aes前台加密后台解密

    aes加密npm地址:https://www.npmjs.com/package/crypto-js aes加密git地址/下载: https://github.com/brix/crypto-js ...

  2. 浅谈MySQL存储引擎选择 InnoDB还是MyISAM

    如果是一些小型的应用或项目,那么MyISAM 也许会更适合.当然,在大型的环境下使用MyISAM 也会有很大成功的时候,但却不总是这样的.如果你正在计划使用一个超大数据量的项目,那么你应该直接使用In ...

  3. DevExpress v19.1新版亮点——WinForms篇(五)

    行业领先的.NET界面控件DevExpress v19.1终于正式发布,本站将以连载的形式介绍各版本新增内容.在本系列文章中将为大家介绍DevExpress WinForms v19.1中新增的一些控 ...

  4. puppet 源码安装

    puppet 源码安装 作者: admin 分类: 自动化管理 发布时间: 2013-04-23 10:25 ė 1932次浏览 6 暂无评论 puppet最新源码详细安装: 在网上找了很多相关pup ...

  5. CodeForces-721A-One-dimensional Japanese Crossword

    链接: https://vjudge.net/problem/CodeForces-721A 题意: Recently Adaltik discovered japanese crosswords. ...

  6. 20180804 excel规划求解。。。

    把一个已经变量更出数据去求解

  7. aspnet:MaxHttpCollectionKeys 不起作用

    场景: vs2010  webform  表单域长度,在webconfig中加入该节点,有的项目起作用,有的项目无效,不知道是什么原因??

  8. Python 爬虫十六式 - 第五式:BeautifulSoup-美味的汤

    BeautifulSoup 美味的汤 学习一时爽,一直学习一直爽!    Hello,大家好,我是Connor,一个从无到有的技术小白.上一次我们说到了 Xpath 的使用方法.Xpath 我觉得还是 ...

  9. java文件分片上传,断点续传

    文件夹数据库处理逻辑 publicclass DbFolder { JSONObject root; public DbFolder() { this.root = new JSONObject(); ...

  10. 数据:ContentProvider类

    一个程序可以通过实现一个Content provider的抽象接口将自己的数据完全暴露出去,而且Content providers是以类似数据库中表的方式将数据暴露.   Content provid ...