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


2.创建安装TensorFlow环境

conda create --name tensorflow python=3.7.6


3.激活TensorFlow

activate tensorFlow

4.确保tensorflow环境已添加

conda info --envs

5.退出TensorFlow环境

deactivate


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

opencv中文文档教程

open中文文档

人脸识别概述-opencv中文文档相关推荐

  1. OpenCV中文文档4.0.0学习笔记(更新中……)

    系列文章目录 文章目录 系列文章目录 前言 一.简介 1.OpenCV-Python教程简介 2.OpenCV-Python 3.OpenCV-Python教程 4.OpenCV 需要你!!! 二.G ...

  2. OpenCV中文文档

    在Ubuntu系统中安装OpenCV-Python 简单介绍一种方式,网上也有很多种安装教程. 使用终端中的以下命令安装 python-opencv(以 root 用户身份). $ sudo apt- ...

  3. PlantCV中文文档

    PlantCV中文文档 1. 简介 1. 欢迎来到PlantCV文档 总览 开始 教程 贡献 版本 2. PlantCV Namespace 2.1 PlantCV 2.1.1 分析颜色 2.1.2 ...

  4. 【Scikit-Learn 中文文档】数据集加载工具 - 用户指南 | ApacheCN

    中文文档: http://sklearn.apachecn.org/cn/stable/datasets/index.html 英文文档: http://sklearn.apachecn.org/en ...

  5. Scikit-Learn 中文文档】数据集加载工具 - 用户指南 | ApacheCN

    中文文档: http://sklearn.apachecn.org/cn/stable/datasets/index.html 英文文档: http://sklearn.apachecn.org/en ...

  6. 【Scikit-Learn 中文文档】40 数据集加载工具 - 用户指南 | ApacheCN

    中文文档: http://sklearn.apachecn.org/cn/stable/datasets/index.html 英文文档: http://sklearn.apachecn.org/en ...

  7. 【Scikit-Learn 中文文档】四十:数据集加载工具 - 用户指南 | ApacheCN

    中文文档: http://sklearn.apachecn.org/cn/stable/datasets/index.html 英文文档: http://sklearn.apachecn.org/en ...

  8. OpenGIS中文文档

    OpenGIS中文文档 OpenGIS(Open Geodata Interoperation Specification,开放地理数据互操作规范) 2.1. 前言 o2.1.1. 什么是开放GIS ...

  9. Spring Cloud Dalston.RELEASE中文文档

    Spring Cloud Dalston.RELEASE中文文档 Spring Cloud 目录 特性 云原生应用程序 Spring Cloud上下文:应用程序上下文服务 引导应用程序上下文 应用程序 ...

最新文章

  1. Spring框架是怎么解决Bean之间的循环依赖的 (转)
  2. 026-请问你怎么测试网络协议
  3. jquery eval解析JSON中的注意点介绍
  4. Python 3 利用 subprocess 实现管道( pipe )交互操作读/写通信
  5. 项目问题思考之策略模式
  6. Python分类模型评估
  7. 哈啰在分布式消息治理和微服务治理中的实践
  8. linux内核的I2C子系统详解5——i2c_driver的注册、i2c_client的来源
  9. 怎么一步步编写简单的PHP的Framework(十九)
  10. 计算机自带游戏在哪里,win10自带游戏,教您Win10纸牌游戏在哪
  11. Ubuntu 20.04 搭建hadoop 集群
  12. u盘感染病毒文件夹变成exe
  13. python怎么创建窗口_python如何设计窗口
  14. 算法入门模拟-剪刀石头布
  15. 黑马程序员JAVAEE企业级开发应用教程笔记
  16. vue二级路由和重定向问题
  17. Android与鸿蒙系统安全(一)
  18. 皮球从某给定高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,……,如此反复。问皮球在第n次落地时,在空中一共经过多少距离?第n次反弹的高度是多少?
  19. 虚拟服务器安装管理工具,easypanel虚拟主机管理面板v1.9.2安装版-虚拟主机管理软件...
  20. 超清动态桌面壁纸大全

热门文章

  1. java判断一个字符串是否是数字(包括正数,负数,小数)
  2. STM32单片机接直流减速电机编码器注意点
  3. UC浏览器怎样收藏视频?UC浏览器收藏视频的方法
  4. 数据库与关键字同名解决方法
  5. iOS越狱并安装ssl kill switch解除ssl pining,抓取https包
  6. 《堂食点餐》APP代码前后端全部免费开源啦!
  7. 计算机网络传输介质的特点,计算机网络基础:数据通信技术之传输介质
  8. VoxCeleb2:深度说话人识别
  9. python Linux下的安装
  10. static修饰的特点