Finding Tiny Faces in the Wild with Generative Adversarial Network
2018年的cvpr
论文地址:http://openaccess.thecvf.com/content_cvpr_2018/papers/Bai_Finding_Tiny_Faces_CVPR_2018_paper.pdf
Abstract
挑战:在无限制条件寻找低分辨率的人脸
方法:采用GAN从低分辨率人脸生成高分辨率人脸
一. Introduction
低分辨率面临的挑战:
1. 缺乏细节用于区分
2. 目前CNN模型卷积核步长太长,对于低分辨率人脸识别容易丢失大部分信息
本文做出的贡献:
1. 提出了一种新的人脸检测的统一端到端卷积神经网络结构,采用超分辨率和细化网络生成真实清晰的高分辨率图像,并引入判别网络对人脸与非人脸进行分类。
2. 引入新的判别器loss
二. Related Work
2.1 face detection
介绍了下过去人脸识别的发展,从手工构建特征人脸识别,到RCNN,再到本文。
2.2 Super-resolution and Refinement Network
2.3. Generative Adversarial Networks
三. Proposed Method
3.1 GAN
其中y是标签(区分是脸or不是脸)
3.2. Network Architecture
简介:生成器包含两个子网络:超分辨率 和 细化网络
判别器中加入分支网络,用于区分人脸非人脸 和 生成图片和真实图片
Generator network:
Discriminator network:
可以看到右边有两个分支
3.3. Loss Function
Pixel-wise loss:
其中G1是上采样子网,G2是细化网络
Adversarial loss:
Classification loss:
yn=1或yn=0表示图像是人脸还是非人脸
联合起来
G_loss:
包含
像素loss+GAN_loss+分类loss
D_loss:
包含GAN_loss+分类loss
四. Experiments
4.1. Training and Validation Datasets
有两个数据集,包括WIDER FACE dataset和FDDB,用WINDER FACE训练GAN
4.2. Implementation Details
α = 0.001 and β = 0.01,用β1=0.9的Adam优化器
从零开始,对生成器网络进行训练,用标准偏差为0.02的零均值高斯分布初始化各层的权重,用0初始化偏差。
为了避免不希望的局部最优,首先训练一个基于MSE的SR网络去初始化生成网络
采用在ImageNet上预先训练的VGG19模型作为骨干网络,用两个并行的f c层替换所有的fc层。用标准偏差为0.1的零均值高斯分布对f c层进行初始化,所有偏置用0初始化。
作者的基线MB-FCN检测器基于RESNET50网络,它是对ImageNet进行预训练的
通过它从WINDER FACE中获取人脸与非人脸,通过使用因子为4的双三次插值对高分辨率图像进行下采样来生成相应的低分辨率图像。
所有GAN变异体均以10^-4的学习速率训练前3个阶段,以10^-5的较低学习速率训练后3个阶段。
4.3. Ablation Studies
(消融研究通常指去除模型或算法的一些“特征”,并观察这些特征如何影响性能)
refinement network的效果图(可以减少光照和模糊的影响)
4.4. Comparison with the State-of-the-Art
Evaluation on WIDER FACE.:
提升效果的原因:
(1)上采样子网
(2)细化网络
(3)GAN的分类损失
Evaluation on FDDB
4.5. Qualitative Results
5. Conclusion
就到总结了,结尾作者说了下本文的贡献,基本都是重复内容。
p.s. 还有点疑问啊,到底是怎么检测图片中人脸的呢??用判别器?