基于深度神经网络的遮挡人脸识别算法的研究(小白初学)

基于深度神经网络的遮挡人脸识别算法的研究(小白初学)

研究背景

在自然条件下人脸面部的光照变化、角度变化、表情变化以及存在遮挡物,使得采集到的人脸图像存在人脸特征的损失。因此研究遮挡人脸识别算法提高识别的准确率具有重大的意义。

算法介绍

  • 基于卷积神经网络(CNN)的人脸识别模型
  • 基于级联卷积神经网络(MTCNN)的人脸识别算法
  • 基于对抗网络(GAN)的人脸修复算法

基于卷积神经网络(CNN)的人脸识别算法

首先先介绍感知器的相关知识。
感知器:接受多个输入,产生一个输出。
在这里插入图片描述

多层网络:由多个感知器组成(增加了隐含层)。
在这里插入图片描述
在隐含层中,应用激活函数给感知器引入非线性因素。

在这里插入图片描述

在这里,我们介绍3个激活函数

  • Sigmoid函数:把输入的值变为0和1之间的输入。
    在这里插入图片描述
    它的函数表达式是这样的:
    在这里插入图片描述
    因此我们可以求得他的导数表达式,其函数图像为两端趋近于0的正态函数。因此会导致梯度离散的情况。

  • Tanh函数:把输入的值变换为-1和1之间的输出。
    在这里插入图片描述
    它的函数表达式是这样的:
    在这里插入图片描述
    求得他的导数表达式,其函数图像和Sigmoid导函数的图像相似。因此也会导致梯度离散的情况。

  • Relu函数:只需要判别输入的数据大于0或小于0。
    在这里插入图片描述
    它的函数表达式是这样的:
    在这里插入图片描述
    因此我们可以得到它的导函数图像,如下:
    在这里插入图片描述
    可以看到它的导函数在x>0的情况下始终取值为1,因此可以有效的减少梯度离散的情况。

在了解上述知识后,我们来介绍CNN结构

CNN由输入层卷积层池化层全连接层组成

  • 输入层:将图像转换为矩阵输入神经网络。

在这里插入图片描述

  • 卷积层:对输入的数据进行特征提取,即将输入的人脸图像转换为机器学习的数字特征,然后进行卷积操作。

卷积操作:对输入的图像进行卷积,即在原图像上滑动卷积核。卷积操作主要有相加和相乘的操作。

在这里插入图片描述

  • 池化层
    ①特征不变性
    ②特征降维(去除冗余信息)

这里的特征不变性即假设输入的一张图片是猫,不管经过怎样的变化(平移,旋转等),仍可识别为猫。

在这里插入图片描述
而将上述提到的卷积、激活函数、池化相结合就得到深度神经网络

全连接层:对深度网络的结果进行识别分类。
首先将经过卷积、激活函数、池化的深度网络后的结果串起来,在模型训练后得出权重进行加权求和,得到各个结果的预测值,最大值即为结果。
在这里插入图片描述

基于级联卷积神经网络(MTCNN)的人脸识别算法

MTCNN实现的流程:

  • 1.构建图像金字塔。
    在这里插入图片描述

介绍完图像金字塔后,我们先插入介绍一个NMS算法:去除预测结果中重复的框。

在这里插入图片描述

  • 2.P-Net,NMS。
    P-Net:对上一步构造的图像金字塔进行初步特征提取与标定边框并进行NMS算法对大部分窗口进行过滤。

在这里插入图片描述

  • 3.R-Net,NMS。
    R-Net:精细化建议框。
    在这里插入图片描述

  • 4.O-Net,NMS。
    O-Net:输出最终的结果。
    在这里插入图片描述

基于GAN网络的人脸去遮挡

  • 生成器(Generator):生成尽可能真实的伪数据
  • 鉴别器(Discriminator):判断数据是否是真数据

在这里插入图片描述
是一个动态博弈的过程。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_52338896/article/details/125483958