OpenCV笔记_20(1)基于dlib进行人脸识别( 图片检测 )
20(1)基于dlib进行人脸识别( 图片检测 )
Tommy老师视频链接
凯哥英语视频
# 1.导入库
import cv2
import dlib
import numpy as np# 定义: 关键点编码128D
def encoder_face(image, detector, predictor, encoder, upsample=1, jet=1):# 检测人脸faces = detector(image, upsample)# 对每张人脸进行关键点检测# gray = cv2.cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 灰度报错了...faces_keypoints = [predictor(image, face) for face in faces] # 每张人脸的关键点return [np.array(encoder.compute_face_descriptor(image, faces_keypoint, jet)) for faces_keypoint in faces_keypoints]# 定义: 通过关键点的欧氏距离, 人脸比较
def compare_faces(face_encoding, test_encoding):return list(np.linalg.norm(np.array(face_encoding) - np.array(test_encoding), axis=1)) # axis=1 1 按照行向量处理def main():# 2.读取4张图片img1 = cv2.imread('01.jpg')img2 = cv2.imread('02.jpg')img3 = cv2.imread('03.jpg')img4 = cv2.imread('05.jpg')test = cv2.imread('00.jpg')# opencv中是BGR, dlib读取到的是RGB格式# BGR->RGBimg1 = img1[:, :, ::-1]img2 = img2[:, :, ::-1]img3 = img3[:, :, ::-1]img4 = img4[:, :, ::-1]test = test[:, :, ::-1]# 3.加载人脸检测器detector = dlib.get_frontal_face_detector()print('333')# 4.加载关键点检测器predictor = dlib.shape_predictor('F:\\opencv\\01opencv\\16-20Face_recognition\\18face_landmarks_dlib\\shape_predictor_68_face_landmarks.dat')print('444')# 5.加载人脸特征编码模型encoder = dlib.face_recognition_model_v1('F:\\opencv\\01opencv\\16-20Face_recognition\\dlib-models\\dlib_face_recognition_resnet_model_v1.dat')print('555')# 6.调用方法: 128D特征向量输出img1_128D = encoder_face(img1, detector, predictor, encoder)[0] # 如果有多张人脸,只取第一张img2_128D = encoder_face(img2, detector, predictor, encoder)[0]img3_128D = encoder_face(img3, detector, predictor, encoder)[0]img4_128D = encoder_face(img4, detector, predictor, encoder)[0]four_128D = [img1_128D, img2_128D, img3_128D, img4_128D]test_128D = encoder_face(test, detector, predictor, encoder)[0]print('666')# 7.调用方法比较人脸, 计算箱梁之间的距离, 判断是否为同一个人distance = compare_faces(four_128D, test_128D)print('777')print(distance)if __name__ == '__main__':main()
OpenCV笔记_20(1)基于dlib进行人脸识别( 图片检测 )相关推荐
- python人脸识别毕业设计-Python基于Dlib的人脸识别系统的实现
之前已经介绍过人脸识别的基础概念,以及基于opencv的实现方式,今天,我们使用dlib来提取128维的人脸嵌入,并使用k临近值方法来实现人脸识别. 人脸识别系统的实现流程与之前是一样的,只是这里我们 ...
- dlib实现人脸识别+活体检测
目录: 一:dlib的shape_predictor_68_face_landmarks模型 二.眨眼检测 三.张口检测 四.眨眼检测+张口检测 五.人脸识别 六.人脸识别+活体检测 七.人脸识别破解 ...
- python人脸识别防小偷_基于python的人脸识别(检测人脸、眼睛、嘴巴、鼻子......)...
本文链接:https://blog.csdn.net/James_Ray_Murphy/article/details/79209172 import numpy as np import cv2 # ...
- 基于神经网络的人脸识别(Tensorflow,opencv,dlib,cnn,)
写个神经网络(Tensorflow,opencv,dlib,cnn,人脸识别) lvying 20180427 基于TensorFlow训练的人脸识别神经网络 训练一个神经网络 这段时间正在学习ten ...
- dlib 使用OpenCV,Python和深度学习进行人脸识别 源代码
请直接访问原文章 dlib 使用OpenCV,Python和深度学习进行人脸识别 源代码 https://hotdog29.com/?p=595 在 2019年7月7日 上张贴 由 hotdog发表回 ...
- 【优秀课设】基于OpenCV的Python人脸识别、检测、框选(遍历目录下所有照片依次识别 视频随时标注)
基于OpenCV的Python人脸识别.检测.框选 (遍历目录下所有照片依次识别 视频随时标注) 移步: https://blog.csdn.net/weixin_53403301/article/d ...
- 基于百度云人脸识别API与opencv的人脸识别系统
基于百度云人脸识别API与opencv的人脸识别系统 简介 弄这个东西是因为参加了学校的项目,第一次开发做的不是很好. 本系统是基于百度云人脸识别API.opencv级联器.PYQT5进行开发.百度云 ...
- dlib库包的介绍与使用,opencv+dlib检测人脸框、opencv+dlib进行人脸68关键点检测,opencv+dlib实现人脸识别,dlib进行人脸特征聚类、dlib视频目标跟踪
文章目录: 1 dlib库介绍 2 dlib人脸检测:绘制出人脸检测框 2.1 dlib人脸检测源码 2.2 opencv + dlib 人脸检测 2.3 dlib人脸检测总结 3 dlib人脸关键点 ...
- 《基于子空间的人脸识别》文献笔记
前记:本人目前研一,刚刚接触这个这个领域,仅想以这种形式记录自己走过的点点滴滴,欢迎大家批评指正. <基于子空间的人脸识别>是程正东,章毓晋编写的,清华大学出版社出版的一本关于人脸识别的书 ...
- python人脸识别训练模型_开源 | 基于Python的人脸识别:识别准确率高达99.38%!
原标题:开源 | 基于Python的人脸识别:识别准确率高达99.38%! 该库使用 dlib 顶尖的深度学习人脸识别技术构建,在户外脸部检测数据库基准(Labeled Faces in the Wi ...
最新文章
- 华为机考HJ6求质因子C语言解法
- MSLicensing​中断远程桌面连接
- cef在android中使用_嵌入Chrome cef之完整版(本教程基于cef1)
- 检查Lync SRV记录是否正常
- python哪本好-最好的Python入门教材是哪本?
- 已知服务器ftp的账号密码,求解数据库表的内容
- 方法的重写-扩展父类方法,super对象调用父类方法
- 关于双等号判断的深入面试题
- 宝塔无法安装php5,宝塔无法安装phpmyadmin怎么办
- c# 保存和打开文件的方法
- 接口测试常用工具及测试方法(新手篇)
- offset must be non-negative and no greater than buffer length (0)(tensorflow.keras)
- 深入浅出通信原理MIMO合集
- 群晖系统,部署JAVA-JAR包,SpringBoot项目,手工启动
- windows安装MySQL详细步骤
- 基于单片机的电子万年历的设计
- Android 利用Canvas实现双指拖动和双指缩放图片
- 「 微信黑科技 」神奇符号
- 使用python批量解压7z格式压缩包
- java中mapper层作用_Java的MyBatis框架中Mapper映射配置的使用及原理解析