1.人脸识别技术概述
人脸识别技术分为人脸检测和人脸识别两个环节组成。人脸检验负责检测照片中是否有人脸,更重要的是把照片中人脸无关的部分删除,
一般人脸检测可以使用opencv开源库来实现,在人脸检测环节中,主要关注三个指标:
- 检测率:存在人脸并且被检测出的图像在所有存在人脸图像中比例
- 漏检率:存在人脸但没有检测出的图像在所有存在人脸图像中比例
- 误检率:不存在人脸但是检测出存在的图像在所有不存在人脸图像中比例
一般人脸识别环节,其应用场景分为1:1和1:N
1:1为判定两个照片是否是同一人,
1:N,随着人的照片各种各样,N变大误识别率也会升高,识别时间将越来越长,在这里就需要对二个照片设置阈值,通过阈值来判定通过率。
这里的误识别率就是照片A被判定位B的比率。
通过率就是确实是A的概率。
2.人脸识别流程:
2.1 Input image到Detect
输入:原始的人脸图像
输出:人脸位置的边缘框
这步被称为人脸检测,在openface中,使用dlib或者opencv来实现,通常不存在使用深度学习方法。
2.2 Detect到Transform到Crop
输入:原始人脸图像+人脸位置的边缘框
输出:只包含人脸的图像
2.3 Crop到Representation
输入:只包含人脸的图像
输出:向量(又向量表示图像),将人脸图像转化为向量表示
应用到人脸识别判定中
可以类似VGG16模型,通过图像输入计算特征生成一个全连接类别概率。
也可以是通过对比不同人脸的向量,计算向量之间的距离来反映两个人脸之间的相似度。通过距离可以选择欧几里得距离。
3.在python环境下实现人脸识别
3.1 安装TensorFlow,opencv包
TensorFlow安装:
安装TensorFlow有二种方式一种为CPU安装,一种为GPU安装,这里的意思可以解释为因为做深度学习,TensorFlow电脑的计算量特别大,在不同的处理器下安装TensorFlow的计算速度不同。
在conda环境下安装TensorFlow:
1.运行Anacoda Prompt环境,查询自己的python版本
python --version • 1
2.创建安装TensorFlow环境
conda create --name tensorflow python=3.7.6 • 1
3.激活TensorFlow
activate tensorFlow • 1
4.确保tensorflow环境已添加
conda info --envs • 1
5.退出TensorFlow环境
deactivate • 1
6.在conda环境下安装TensorFlow
pip install tensorflow #由于TensorFlow文件很大网速过慢通常下载会报错 pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='pypi.tuna.tsinghua.edu.cn', port=443): Read timed out.
使用命令
pip --default-timeout=1000 install -U tensorFlow #设置下载默认等待时长
opencv安装:
这里介绍在Anaconda下安装opencv
1.首先找到opencv下载地址:
https://www.lfd.uci.edu/~gohlke/pythonlibs/
在网页中找到对应自己python版本下whl文件
我的python版本是3.7,因此在下面找到cp37和win_amd64的文件下载
2.通过cmd命令,进入opencv下载的文件目录下,运行以下代码
pip install opencv_python‑4.5.2‑cp37‑cp37m‑win_amd64.whl • 1