记录一次人脸识别的学习(笔记)

涉及的功能模块

  • 摄像头的调用
  • 脸部图像识别和处理
  • 活体检测
  • 多线程的应用
  • 定时器的调用
  • 邮件发送

知识点大纲

  • 人脸识别基本原理
  • 人脸识别库的安装和应用
  • 多线程方法的调用
  • 第三方邮件发送组件yagmail的基本使用
  • 活体检验算法的应用以及代码实现

人脸识别的基本原理

所谓机器学习:按照一堆已知的数据,利用计算机去进行演算,最终得到一个合适的计算公式(机器学习模型)来拟合这些数据的过程,就是机器学习

x=1 2 6

y=3 5 13

得到y=2x+1

再往下就是根据公式去预测新的值 如x=3 得到y=7

基本步骤:

  • 人脸的68个基本特征点的位置及顺序,判断68个点在图像上是否存在、是否完整
  • 人脸detect,定位人脸在图像中的位置,利用目标检测算法输出人脸位置矩形框
  • 人脸Shape predictor,找出眼睛眉毛鼻子嘴巴具体的位置
  • 人脸对齐alignment,通过投影几何变换出标准脸
  • 人脸识别,在对齐的人脸图像上提取128维的特征向量,提取特征向量间的距离来进行判断

dlib库的安装

https://blog.csdn.net/qq_44173974/article/details/107452336

face_recognition库(基于dlib的)

安装 pip install face_recognition

主要方法

  • load_image_file 加载要识别的人脸图像,加载返回Numpy数组 ,记录了图片的所有像素的特征向量
  • face_location 定位所有图中人脸的位置
    • 返回一个列表,列表每一行就是一张人脸的位置信息,包括[top,right,bottom,left]
  • face_landmarks 识别人脸关键特征点,主要用途 勾勒脸部轮廓
    • 参数是待检测的人脸图像,返回值是带面部特征点字典的列表,列表长度为人脸数量
    • 面部特征点包括:chin,left_eyebrow,right_eyebrow,nose_tip,left_eye,right_eye,top_lip,bottom_lip
  • face_encodings 获取图像文件中所有面部编码信息,每张人脸的编码信息是128维的向量
    • 返回值:一个编码列表,参数仍然是待检测的人脸图像
    • 是进行人像对比的重要信息
  • compare_faces 由面部编码信息进行面部匹配
    • 主要用于匹配两个面部特征编码,利用这两个特征向量的内积衡量相似度,确认是否是同一个人
    • 第一个参数是面部编码列表,第二个是单个的面部编码,会将第二个参数与第一个参数依次匹配,返回一个bool列表
    • 参数有个tolerance=0.6,一般经验值是0.39,值越小匹配越严格

安装 PIL 库的方法

安装命令: pip install Pillow
测试方法:import PIL

安装opencv

pip install opencv-python

最后的监控系统案例

获取摄像头的图像信息

使用cv2模块的VideoCapture方法,每次读取其中一帧图像进行处理

主要功能:

  1. 打开摄像头读取图像
  2. 与已知人物头像进行对比,识别哪些是已知人员,哪些是未知人员
  3. 在摄像头图像上直接标注识别结果
  4. 记录每次对比的结果,并将未知人员的头像进行保存
  5. 发送定时邮件,通知监控记录
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值