[LRFR] (GAN) Finding Tiny Faces in the Wild with Generative Adversarial Network

ぃ、小莉子 提交于 2020-03-05 07:26:06

参考:https://zhuanlan.zhihu.com/p/36245761

本文主要解决无限制场景下的微小人脸检测问题,tiny face指尺寸小,分辨率低,模糊并缺乏必要信息的人脸patch,tiny face检测问题如下图所示。通过利用GAN模型对tiny face进行高分辨和去模糊的人脸生成,在通过判别器来进行识别。

生成网络包含 :
super-resolving(超分辨率重建):
Prob : 分辨率低 algorithm:SR-GAN
refining (精炼) :
Prob : 人脸模糊 algorithm:cycle-GAN
在这里插入图片描述
整体网络结构主要包括MB-FCNGAN两部分,如下图所示。在这里插入图片描述
MB-FCN detector检测器

用于初步检测,训练时为GAN网络提供样本,测试时为GAN提供ROI(Region of Interest)。

(ROI Pooling是针对RoIs的Pooling,其特点是输入特征图尺寸不固定,但是输出特征图尺寸固定。
在Fast RCNN中, RoI是指Selective Search完成后得到的“候选框”在特征图上的映射在Faster RCNN中,候选框是经过RPN产生的,然后再把各个“候选框”映射到特征图上,得到RoIs)

GAN网络使用生成器和判别器构成。

Generator Network 生成器网络:

由两个sub-network构成,一个是up-sample sub-network,另一个是refinement sub-network,其目的是生成高分辨率去模糊的人脸patch

  1. up-sample sub-network (SR超分辨率重建) :
    SR超分辨率重建,由于tiny face 缺乏细节信息重建误差MSE loss的影响(保留低频信息,丢失高频信息,这是由误差函数导致的),生成的超分辨人脸往往比较模糊。其中up-sample sub-network中有两个de-conv layer用来做上采样,使分辨率提升4倍
  2. refinement sub-network(去模糊)
    需要设计refinement sub-network来去除模糊现象。refinement sub-network中除了最后一层,其余每个conv之后都有BN和Relu。

Discriminator Network 判别器网络 :

有两个判别任务,一个是人脸是否是高分辨,另一个是patch是否是人脸
判别网络使用VGG作为backbone,同时 去除conv5之后的max-pooling,替换全连接层fc6,fc7,fc8为两个并行的fc_GAN和fc_clc, 网络结构参数如下图所示。
在这里插入图片描述在这里插入图片描述
Loss function

网络结构的多任务学习通过混合多个loss来实现。
整体loss主要分为三个部分:

  1. pixel-wise loss (图像SR超分辨重构误差)
    生成网络的输入是tiny face加上随机noise,该MSE loss(均方误)是强制使生成人脸逼近高分辨人脸,公式如下所示。G1表示up-sample sub-network,G2表示refinement sub-network。
    在这里插入图片描述
  2. adversarial loss (GAN网络误差 )
    生成网络的损失定义为如下公式,该loss引导图像生成尽可能多含有高频信息。
    在这里插入图片描述
  3. classification loss(分类误差)
    该loss是判别器的损失函数,为了区分人脸与非人脸,人脸样本主要包括高分辨人脸和有生成器生成的低分辨人脸。该loss可以使生成网络重建image更sharper。
    在这里插入图片描述
    Objective function
    将以上三个loss合并,可以得到整体目标函数,如下公式所示。
    在这里插入图片描述
    考虑到生成网络和监督网络的优化,可以修改上述loss,分为生成网络G的loss和监督网络D的loss,如下图所示。

在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!