记录一次人脸识别的学习(笔记)
涉及的功能模块摄像头的调用脸部图像识别和处理活体检测多线程的应用定时器的调用邮件发送知识点大纲人脸识别基本原理人脸识别库的安装和应用多线程方法的调用第三方邮件发送组件yagmail的基本使用活体检验算法的应用以及代码实现人脸识别的基本原理所谓机器学习:按照一堆已知的数据,利用计算机去进行演算,最终得到一个合适的计算公式(机器学习模型)来拟合这些数据的过程,就是机器学习x=1 2 6y=3 5 13
·
涉及的功能模块
- 摄像头的调用
- 脸部图像识别和处理
- 活体检测
- 多线程的应用
- 定时器的调用
- 邮件发送
知识点大纲
- 人脸识别基本原理
- 人脸识别库的安装和应用
- 多线程方法的调用
- 第三方邮件发送组件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方法,每次读取其中一帧图像进行处理
主要功能:
- 打开摄像头读取图像
- 与已知人物头像进行对比,识别哪些是已知人员,哪些是未知人员
- 在摄像头图像上直接标注识别结果
- 记录每次对比的结果,并将未知人员的头像进行保存
- 发送定时邮件,通知监控记录
更多推荐
已为社区贡献5条内容
所有评论(0)