深度学习—人脸识别·笔记

2020-07-14  本文已影响0人  90000Tank

依赖知识

问题分类

人脸检测
关键点检测
人脸识别
识别过程

人脸检测模型

模型1:小波变换 + Adaboost算法

训练过程

- 输入固定大小的图像:24×24灰度图 
- 使用HaarLike小波提取特征:得到10w+个特征 
- 特征过多需要进行特征筛选 
- 使用Adaboost进行二分类 
- 训练过程中需要24×24大小的人脸进行训练
  - 提取特征需要付出较多精力 
  - 数据预处理很麻烦 

推断过程

- 输入任意大小的图像进行检测 
- 使用滑动窗在图像上进行检测 
- 有些时候人脸是大于28×28 
  - 建立图像金字塔
  - 为检测不同大小的人脸 
- 候选Box过多:非极大值抑制(NMS)
  - 概念:交并比IoU 
  - 按照置信度排序,并删除交并比较大的候选Box 

模型2:卷积神经网络

预测过程

PNet
- 输入固定12×12大小的彩色图像 
- 网络为纯卷积神经网络
- 主要目标为识别候选区域
- 需要注意,人脸较小,因此读取零碎文件时可能较慢。
RNet,ONet
- 输入固定大小的彩色图像
- 网络为卷积+全连接

预测过程

PNet
- 输入任意大小的彩色图像 
- 网络为纯卷积网络
RNet、ONet
- 输入也是固定大小的 
- 其需要使用PNet识别后进行截取输入到网络中 
- 可以获取更高精度 

整合——MTCNN

  1. 使用了多级结构,PNet可以较快速度检测候选区域,RNet、ONet较高精度处理
  2. 相比于传统机器学习算法,不需要特征工程(或少量特征工程)
  3. 相比于传统机器学习算法,准确度相对更好
  4. 可以使用后续课程中的物体检测模型
  5. MTCNN同样可以用于物体检测

注意问题

拓展应用

重点知识

人脸识别问题

识别不同的人

如何搭建一个合理的深度神经网络

如何识别任意多类人脸

解决方式1:构建三元损失函数
- 使用三张图片两张是同一个人脸,一张不同人脸
- 分别计算成向量v1,v2,vp 
- 使得相同人脸距离越来越近 
- $loss = \max((v1-v2)^2+\alpha-(v1-vp)^2, 0)$
- 收敛速度较慢,可能需要训练几个星期。 
解决方式2:构建分类问题损失函数+中心损失
- 先使用分类问题进行训练
- 再加入中心损失(使得同一类之间的距离更近,同一类的方差更小)
- 收敛速度会更快 

目前人脸识别问题

知识重点

上一篇下一篇

猜你喜欢

热点阅读