人脸识别方法综述

Posted Arrow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了人脸识别方法综述相关的知识,希望对你有一定的参考价值。

1. 简介

1.1 人脸识别步骤

  1. 人脸检测
  2. 人脸预处理:人脸关键点检测 + 人脸矫正
  3. 人脸表示:提取具有较好表达能力的特征向量
  4. 特征比对/特征匹配

1.2 网络模型

  • 网络结构
    • DeepFace
    • DeepID
    • VGGFace
    • VGGFace2
    • FaceNet
    • CenterLoss
  • 损失函数
    • 基于欧几里德距离的损失 (Euclidean distance based loss)
    • 基于角度/余弦边界的损失(Angular/cosine-margin-based loss)
    • softmax 损失(Softmax 损失)
  • 数据集
    • LFW
    • IJB-A/B/C
    • Megaface
    • MSCeleb-1M

2. 人脸识别组件(Components of Face Recognition)

  • 人脸检测器(Face Detector):定位人脸在图像中的位置
  • 人脸关键点检测器(facial landmark detector):人脸与归一化坐标系对齐
  • 人脸识别使用这些对齐的人脸图像实现
    在这里插入图片描述

2.1 判别损失函数的发展史

在这里插入图片描述
在这里插入图片描述

  • 基于欧几里德距离的损失 (Euclidean-distance-based Loss)
    • 对比损失(contrastive loss)
    • 三重损失(triplet loss)
    • 中心损失(center loss)
  • 基于角度/余弦余量的损失 (Angular/cosine-margin-based Loss)
    • 种类

      • L-Softmax
      • A-Softmax
    • 在softmax损失中的决策边界
      ( W 1 − W 2 ) x + b 1 − b 2 = 0 (W_1 - W_2)x + b_1 - b_2 = 0 (W1W2)x+b1b2=0

      • x x x:特征向量(feature vector)
      • W i W_i Wi:权重
      • b i b_i bi:偏差
    • 损失函数定义如下:
      在这里插入图片描述

      • m m m:是一个正整数,用于引入角余量
      • θ i \\theta_i θi:是权重 W i W_i Wi与特征向量 x x x间的夹角
    • 决策边界
      在这里插入图片描述

    • 二者比较

      • 基于余弦边际的损失:明确地在超球面流形上增加了判别约束,这在本质上与人脸位于流形上的先验相匹配
        在这里插入图片描述

      • 基于余弦边际的损失:在干净的数据集上获得更好的结果,但容易受到噪声的影响,在高噪声区域变得比中心损失和 softmax 更差
        在这里插入图片描述

2.2 网络结构的发展史

2.2.1 主干网络 (Backbone Network)

  • 主流架构 (Mainstream architectures)
    在这里插入图片描述
    在这里插入图片描述
  • 轻量级网络 (Light-weight networks)
    • MobiFace
    • SqueezeNet
    • MobileNet
    • ShffleNet
    • Xception
  • 自适应架构网络 (Adaptive-architecture networks)
    • NAS: Neural Architecture Search
    • c-CNN:Conditional Convolutional Neural Network
  • 联合对齐识别网络 (Joint alignment-recognition networks)
    在这里插入图片描述

2.2.2 组合网络 (Assembled Networks)

  • 多输入网络(Multi-input networks)
    • 在“一对多增强”中,从一张图像生成多张具有多样性的图像以增强训练数据
    • 以多幅图像作为输入,多个网络也被组合在一起,以提取和组合不同输入类型的特征,这可以胜过单个网络
    • 多视图深度网络(MvDN)由特定视角子网络和公共子网络组成; 前者去除特定视角的变化,后者获得了共同的表示
  • 多任务网络(Multi-task networks)
    • 人脸识别与姿势(pose)、光照(illumination)、年龄(age)等多种因素交织在一起
    • 为了解决这个问题,引入了多任务学习来从其他相关任务中转移知识并解开滋扰因素
    • 特定任务的子网络被专用于学习人脸检测、人脸对齐、姿态估计、性别识别、微笑检测、年龄估计和 人脸识别
      在这里插入图片描述

2.2.3 通过深度特征进行人脸匹配 (Face Matching by deep features)

  • 测试步骤
    • 第一步:采用余弦距离和L2距离来衡量深度特征 x 1 x_1 x1 x 2 x_2 x2之间的相似度
    • 第二步:阈值比较和最近邻(NN)分类器用于做出验证和识别的决策
  • 人脸验证(Face verification)
  • 人脸识别(Face identification)

2.3 人脸处理(为训练和识别)

2.3.1 一对多增强 (One-to-Many Augmentation)

  • 一对多增强”:可以减轻数据收集的挑战,它们不仅可以用来扩充训练数据,还可以用来扩充测试数据库。 我们将它们分为四类:
    • 数据增强
      • 光度变换
      • 几何变换:如过采样(通过在不同尺度裁剪获得的多个补丁)、镜像 和旋转图像。
    • 3D 模型
    • 自动编码器模型
    • GAN 模型

2.3.2 多对一归一化(Many-to-One Normalization)

  • 多对一归一化”:产生正面人脸并减少测试数据的外观可变性,使人脸对齐且易于比较。
  • 包括以下几种类型:
    • 自动编码器模型

      • 自编码器模型通过编码器学习姿势不变的人脸表示,并通过没有姿势代码的解码器直接对人脸进行归一化
    • CNN 模型

      • CNN 模型通常直接学习非正面人脸图像和正面图像之间的 2D 映射,并利用这些映射对像素空间中的图像进行归一化
        在这里插入图片描述
    • GAN 模型
      在这里插入图片描述

3. 数据集

  • 数据集在这里插入图片描述
  • 数据集说明
    在这里插入图片描述

以上是关于人脸识别方法综述的主要内容,如果未能解决你的问题,请参考以下文章

人脸识别07_人脸业务场景综述

Python基于OpenCV的人脸表情识别系统[源码&部署教程]

人脸识别技术全面总结:从传统方法到深度学习

综述 | 小样本深度学习图像识别

MTCNN人脸识别

opencv的人脸识别基于啥特征