CVPR 2018 |“寻找”极小人脸
作者:Panzer
论文地址:https://ivul.kaust.edu.sa/Pages/pub-tiny-faces.aspx
背景介绍
极小目标检测是当前目标检测领域的一个非常具有挑战性的问题,也是制约当前检测器在各类榜单上排名的关键因素。该问题不局限于人脸检测,但在人脸检测领域显得尤为突出,尤其是在现实场景下人脸目标的尺度变化范围则更为广泛。众所周知,极小目标检测的困难在于:极小目标在图像上表现为尺寸小分辨率低,因而缺乏具有高判别性的信息,使得检测器难以将其从背景中区分出来;从检测结果上来看,检测器对极小目标patch的打分往往较低,使得极小目标“淹没”在大量的虚检之中,如何提高这些极小目标patch的得分,将其从大量的虚检中 “打捞”出来,是解决该问题的必由之路。
生成对抗网络(Generative Adversarial Nets, GAN)已经在图像合成领域获得了很多的成功应用(如DCGAN),其中的一个成功应用是超分辨率重建(super-resolution, SR),发表于CVPR2017的[1]利用GAN在超分重建性能上取得了重大突破。
既然极小目标在图像上具有高判别性的信息,能否利用超分重建的思想,将低分辨率的极小目标从图像层面上重建为高分辨率的图像?这样检测器就可以成功捕捉到这些极小目标了。就是这样一个非常朴素的想法,本文进行了实验尝试并验证了其有效性。
本文方法
基本思想:
图1从图像层面上直观给出了本文方法的一个基本思路,图(a)是原始的极小目标patch,要检测这样的目标对检测器来说是非常有挑战的,一种方式是如图(b)所示对原始目标进行resize,然而resize并不会带来信息的增加,因此可以采用图(c)超分辨率重建(SR)的方式得到重建后的图像,直观上可以看到该图像上的信息变得更为丰富了,而(d)则是本文方法重建后的效果,比图(c)更具有判别性,下面我们具体看下本文是怎么做到的。
模型结构:
图2给出了本文方法的整体网络架构,主要包括MB-FCN检测器和GAN两个子模块。MB-FCN检测器是作者之前公开的一个sigle-stage检测器,类似于SSD,用于生成初始的目标候选框,为后续的GAN提供训练和测试样本;GAN模块是本文的贡献所在,包括生成网络和判别网络,其中生成网络又由两个子网络组成:上采样网络(up-sample sub-network)和提纯网络 (refinement sub-network),其目的是将低分辨率的目标候选框生成为高分辨率的人脸patch。判别网络最后包含两个分支,一个负责判别是否是高分辨率另一个负责判别是否是人脸。
损失函数:
本文的对抗损失函数主要包括三个部分:
1、Pixel-wise loss:如下式所示,目的是使得生成的人脸在像素级别上逼近高分辨人脸, G1和G2分别代表上采样网络和提纯网络。
2、Adversarial loss:如下式所示,目的是为了区分生成的是否是高分辨人脸,使得生成的人脸包含更多的高频信息,用的是传统的GAN中的cross entropy loss。
3、Classification loss:如下式所示,目的是为了区分是否是真实高分辨率人脸以及是否是人脸,用的还是传统的GAN中的cross entropy loss。
结合上述各式,最终整个网络(包含生成网络G和判别网络D)的优化目标采取如下式所示:
本文所采用的MB-FCN检测器本质是类似于SSD的一个单步检测器,也是作者之前发表的一篇工作,该检测器作为本文方法的baseline。对于后端GAN的训练,首先利用训练好的前端检测器提取人脸图像patch,这些人脸图像patch构成GAN的训练数据,其中将高分辨率的人脸图像patch进行降采样用于训练GAN的生成器。对于GAN的判别器的训练:第一个分支由真实的人脸图像patch和GAN生成器生成的人脸图像patch组成,第二个分支由人脸图像patch和非人脸图像patch组成。测试时,首先由前端检测器提取人脸图像patch,再将这些人脸图像patch输入后端的GAN,由GAN的判别器对这些人脸图像patch重新打分,得到最终的检测结果。
实验分析
实验细节:
(1)实验在通用的WIDER FACE 和FDDB上验证人脸检测的性能。
(2)训练:首先训练MB-FCN检测器,并利用其提取目标候选框训练本文的GAN。测试:选取MB-FCN检测器产生的600个候选框,输入GAN对这些候选框进行重新打分。更多实验细节可参考原文。
实验结果:
(1)本文GAN对检测器的提升:
上表展示了本文GAN在WIDER FACE验证集上的检测性能提升, 可以发现本文方法(最后一列)相比较于Baseline在不同评估设定下都取得了较大的性能提升,其中在Hard子集上的提升最为明显,因为Hard子集中包含了更多的极小目标,从侧面证明了本文方法对极小目标检测的有效性。此外,上表还展示了有无Refinement network以及不同对抗loss的组合对最终性能的影响,可以发现在GAN的训练过程中,网络架构和loss的设计是多么的重要。下图则展示了本文GAN生成高分辨率人脸的有效性,直观证明了本文方法提升极小人脸分辨率的有效性。
下表展示了在本文方法在WIDER FACE验证集上与主流算法的对比实验,显然,取得了state-of-the-art的结果,同样在FDDB上也是state-of-the-art。
总结展望
本文贡献:
(1)成功利用GAN将极小人脸图像生成为高分辨率人脸图像,生成效果较已有方法更为逼真;
(2)成功将GAN进行超分重建的思想应用到目标检测领域,并提升了极小人脸检测的性能。
个人见解:
(1)将GAN应用到目标检测领域,近年来已经有相关工作陆续发表。而将GAN用于提升极小目标检测,本文并非第一篇,在CVPR2017已经有相关工作[3],其核心思想是在特征层面上提升小目标的特征判别性,提升了小目标检测的性能,而本文则是聚焦于图像层面,确切地说是利用GAN进行超分重建的思想生成高分辨率的人脸图像patch,进而增强目标候选框中极小目标的语义判别信息来提升极小目标的召回率,但二者本质上都是追求网络对小目标的判别能力。
(2)从图4展示的效果来看,本文GAN在提升极小人脸分辨率上确是达到了预期效果,并在人脸检测的性能提升中得到了验证,然而这种提升所带来的算法耗时在论文中并没有得到展示。笔者认为,本文方法基于作者之前提出的单步检测器,并在此基础上增加了 GAN的后处理,实际上是牺牲了前端单步检测器的速度优势,这对于人脸检测的落地应用是无益的,能否将后端的GAN网络架构和前端的检测器融合在一个统一框架下,是值得探索的一个可行思路。
(3)极小目标和遮挡是目标检测领域两个最具挑战性的问题,本文尝试利用GAN重点解决了前一个问题,对于遮挡问题,是否可以从当前GAN的丰富多彩的应用中发掘到一些金子来加以解决?期待你的精彩发现!
参考文献:
[1] Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network. CVPR (2017)
[2] Multi-branch fully convolutional network for face detection. CoRR, abs/1707.06330, 2017
[3] Perceptual Generative Adversarial Networks for Small Object Detection. CVPR (2017)
END
—本文为极市原创,欢迎大家投稿,转载请后台留言—
*推荐文章*
CVPR 2017 | Tiny Faces 小人脸检测算法简介
如何走近深度学习人脸识别?你需要这篇超长综述 | 附开源代码
PS.7月14日(本周六)上午10:00~11:30,南加州大学博士高继扬,将为我们讲解时序动作检测的相关内容,详情点击:极市分享| 高继扬 Temporal Action Proposal Generation and Detection in Videos.(时序动作检测)