PS-GAN:如何合成高质量行人图像提升行人检测性能?

论文地址:https://arxiv.org/abs/1804.02047

摘要:本文是利用合成图像提升行人检测性能的一次有益尝试,提出一种合成行人图像的方法(PS-GAN),该方法能够合成高质量的行人图像,并能够很好地融合在周围的场景中。

背景介绍

由CNN引领的行人检测器已经在几个数据集上(INRIA、ETH、Caltech、KITTI、CityPersons)取得了很好的性能。然而检测器的训练严重依赖大量标注数据,有限的训练数据往往使得检测器的性能达到一个瓶颈就很难再有提升了;另一方面,在现实场景应用中标注数据的代价是很高的,那么能不能自动生成一些标注数据来辅助检测器的训练呢?生成的标注数据又能在多大程度上提升检测器的性能?本文对此做了一次有益尝试。

生成对抗网络(Generative Adversarial Nets, GAN)已经在图像合成领域获得了很多的成功应用(如DCGAN),其基本思路是输入一张noise图像,用生成器(Generator)生成一张伪图像去欺骗判别器,判别器(Discriminator)则努力将伪图像和真实图像区分开,在这种对抗训练的过程中,生成器会逐渐变得强大,生成的伪图像几乎和真图像一样,这样我们的目的就达到了。但是要想使得GAN生成的行人图像能够辅助检测器的训练,个人认为面临两大挑战:一是目前GAN能生成的图像分辨率还比较小;二是如何使得生成的行人图像融合到周围的场景中呢?本文就为我们解答了这两个疑惑。

本文方法

  • 基本思路:

图1给出了本文方法的一个基本思路:要训练一个GAN使得它能合成于场景相融的图像,PS-GAN的整个训练过程如下:

Generator(G):首先我把一张场景图Real image中的一个行人框全部用noise替换(目的就是在这个框中生成一个行人),然后送给生成器G,输出是一张生成的场景图。

Discriminator(D):包含两部分,DP负责生成的行人的真假,Db负责判断生成的场景图的真假。为什么要用两个Discriminator呢?因为DP只能关注到行人的细节信息,看不到场景信息,而Db则能捕捉到整个场景的信息,二者刚好形成互补优势,才能使得生成的行人图像和周围的场景能够有机融合。想法特别棒,那么网络具体是怎么训练的呢?

  • 模型结构:

图2给出了网络训练的实现流程,其网络架构借鉴了pix2pix GAN [1]的训练过程,在此基础上实现我们的目的。

Generator(G):就是用的pix2pix GAN [1]中的U-Net。

Discriminator(Db):也是用的pix2pix GAN [1]中的PatchGAN。如图2中的左半部分所示,Real image和Noise image接成6通道的图像行成一对pair,作为正样本;Generated image和Noise image行成一对pair,作为负样本,以此来训练Db;

Discriminator(Dp):用的是一个含有5层卷积层的网络,为了适应不同尺度的行人,最后接了一层空间金字塔池化层(SPP layer),SPP是经典的目标检测算法SPPNet [2]中提出的,可以保留行人的局部结构信息啊,实验证明SPP对于生成细节丰富的行人图像非常有用。在本文的实现中,用了三层空间金字塔,分别是1x1, 2x2, 4x4的池化,共21个bin,最后把这些特征拼接起来送给分类器。

  • 损失函数:

有了以上的训练流程,剩下的就是利用什么样的损失函数去指导网络去训练了。由于有两个Discriminator,本文的对抗损失函数主要包括两个部分:

1、G和Db之间:如(1)式,用的是least square loss

2、G和Dp之间:如(2)式,用的是传统的GAN中的cross entropy loss

为什么同样是Discriminator,这两个loss还不一样呢?实验效果给出了答案(见图3),作者在文中是这样解释的:least square loss比cross entropy loss能获得更大的损失值,使得模型对每个像素都更加敏感,因而会使得生成的行人图像的细节更加丰富,而Db更应该关注的是场景的全局信息,因此用cross entropy loss就更好了。此外,参考pix2pix [1],也是为了使得生成的图像尽可能逼近于真实图像,还增加了一个L1 loss:

最终整个网络的loss为:

参数设置和pix2pix GAN [1]中一样。下面我们看一下生成效果,其中A是指不用SPP layer的效果,B是指两个Discriminator都用least square loss,C是指两个Discriminator都用cross entropy loss,可以发现PS-GAN生成效果最好

实验分析

  • 实验细节:

(1)为了验证生成图像的质量,PS-GAN的训练图像来自于Cityscapes [3],PS-GAN的测试图像分别来自Cityscapes和Tsinghua-Daimler Cyclist Benchmark [4]。

(2)为了验证生成图像是否有利于提升行人检测性能,选用Faster R-CNN作为检测器,验证合生图像到底能在多大程度上提升Faster R-CNN的性能。

  • 实验结果:

(1)生成图像的质量:

和图3相比,图4表明,即使在空白图像上,PS-GAN也能生成和场景比较匹配的高质量行人图像。以上图像都是随机从原图上crop出来的256x256大小的图像,把这些crop出来的图像贴合原图,就得到如下图所示的例子:

可以发现这些合成图像已经和真实图像很接近,不仔细看,肉眼都无法判断是合成图像。那么这些“如此真实”的合成图像到底能给检测器的训练带来多少的性能提升呢?

(2)生成图像对检测器的提升:

上表为在Cityscapes [3]的检测性能,可以看到pix2pix GAN[1]生成的图像基本没有提升检测器的性能啊,说明图像生成的质量还是很关键的,但是本文的PS-GAN是有效的,从表中可以得到以下三点结论:

1、合成图像对性能提升是有上限的,在1826张真实图像下,加5000个合成行人时检测器性能达到饱和,个人认为主要还是因为合成的行人较为单一,而这些合成图像中的背景信息是不变的;

2、不同domain上训练得到的model很难generalize,比如在Pascal VOC上训练的model只有37%的AP,甚至不如我们用300张真实图像训练的结果;

3、对于PS-GAN,见过更多的训练图像,其生成的图像更能提升检测器的性能,在有300张真实图像时能提升1%,而有1000张真实图像时能提升4%,个人认为还是因为1000张真实图像比300张图像多了更丰富的场景信息,使得检测器在训练过程中学到了更为general的信息。

下表则展示了在Tsinghua-Daimler Cyclist Benchmark [4] 的检测性能,结论同上,但也说明了本文方法可以迁移到另外一个数据集上。

下面看一看生成的图像能不能被我们的检测器成功检测出来呢:如果能检测率越高,岂不是证明了我们生成的行人图像更加真实?从下表可以看出,PS-GAN生成的图像,检测率能达到90%,而pix2pix GAN[1]生成的图像最高只有70%左右,再一次证明我们PS-GAN在生成行人图像上的优势。

总结展望

  • 本文贡献:

(1)提出了一种生成行人图像的全新方法PS-GAN,能够生成与背景相容的高质量图像;

(2)生成的行人图像能够提升检测器的检测性能,为无监督行人检测提供了一种可行思路。

  • 个人见解:

(1)熟悉GAN的同学可能知道,这篇文章主要借鉴了pix2pix GAN[1]的核心思想,装出了新酒——PS-GAN,并将其用在行人检测领域,是利用GAN合成图像提升detection performance的又一次成功应用,相似应用可见于Person Re-ID领域 [5]。

(2)在合成图像上的检测率能达到90%,而真实图像上的检测率只有60%?合成图像上的行人目标这么容易被检测出来?这是因为本文PS-GAN生成的行人图像还比较单一,而真实图像中行人目标的变化更为复杂:尺度范围更大,遮挡程度也千变万化,正式这些复杂变化导致很难被检测器学习到,因而利用有限的训练数据检测器的性能达到一定的瓶颈后再难以提升,而这些复杂变化是PS-GAN无法生成的,因而在合成图像上的检测率能达到90%,进而用PS-GAN生成的图像对检测器带来的提升也是有限的。

总之,本文为生成行人图像提供了一种很好的思路,如何使得生成的行人目标更为丰富,能够cover现实场景中的各种变化,是下一个要攻克的堡垒。

参考文献

[1] Isola, P., Zhu, J.Y., Zhou, T., Efros, A.A.: Image-to-image translation with conditional adversarial networks. CVPR (2017)

[2] He, K., Zhang, X., Ren, S., Sun, J.: Spatial pyramid pooling in deep convolutional networks for visual recognition. ECCV (2014)

[3] Marius, C., Mohamed, O., Sebastian, R., Timo, R., Markus, E., Rodrigo, B.,Uwe, F., Stefan, R., Bernt, S.: The cityscapes dataset for semantic urban scene understanding. CVPR(2016)

[4] Li, X., Flohr, F., Yang, Y., Xiong, H., Braun, M., Pan, S., Li, K., Gavrila, D.M.: A new benchmark for vision-based cyclist detection. In: 2016 IEEE IntelligentVehicles Symposium (IV). (2016)

[5] Zhedong Zheng, Liang Zheng, Yi Yang.: Unlabeled Samples Generated by GAN Improve the Person Re-identification Baseline in vitro. ICCV(2017)

(0)

相关推荐

  • 生成对抗网络(GAN)的发展史

    来源:https://en.wikipedia.org/wiki/Edmond_de_Belamy 五年前,Generative Adversarial Networks(GANs)在深度学习领域掀起 ...

  • 【每周CV论文】初学GAN图像风格化必须要读的文章

    欢迎来到<每周CV论文>.在这个专栏里,还是本着有三AI一贯的原则,专注于让大家能够系统性完成学习,所以我们推荐的文章也必定是同一主题的. 图像风格化是生成对抗网络的一大应用,今天给大家推 ...

  • Pix2Pix与人工智能做设计

    设计是一个创造的过程,目前大部分的设计类产品大多是基于模版的,外加一些图像匹配的处理,做出来的设计,缺少创造的成分,更多的是预设的结果. 基于深度学习算法,是否可能满足设计创造性的要求?像图像分类可以 ...

  • 字节跳动开源最新 GAN 压缩算法,算力消耗可减少至 1/46

    8月27日消息,字节跳动近期开源了一项代号为OMGD的压缩技术.这是字节自研的GAN(生成对抗网络)压缩算法,在保证生成效果不变的前提下,算力消耗最低可以减少到原来的1/46,相比之前业界的最佳压缩效 ...

  • 对抗性分割损失素描着色

    重磅干货,第一时间送达 小白导读 论文是学术研究的精华和未来发展的明灯.小白决心每天为大家带来经典或者最新论文的解读和分享,旨在帮助各位读者快速了解论文内容.个人能力有限,理解难免出现偏差,建议对文章 ...

  • 【星球知识卡片】图像风格化与翻译都有哪些核心技术,如何对其长期深入学习

    【星球知识卡片】图像风格化与翻译都有哪些核心技术,如何对其长期深入学习

  • 【总结】从视频到图文,代码实战,有三AI-GAN学习资料汇总!

    GAN无疑是这几年深度学习领域里最酷的技术,不管是理论的研究,还是GAN在图像生成,图像翻译,语音图像等基础领域的应用,都非常的丰富.我们公众号输出过非常多的GAN相关资源,本次做一个简单汇总,我们平 ...

  • 利用合成图像对热图像进行鲁棒行人检测

    重磅干货,第一时间送达 小黑导读 论文是学术研究的精华和未来发展的明灯.小黑决心每天为大家带来经典或者最新论文的解读和分享,旨在帮助各位读者快速了解论文内容.个人能力有限,理解难免出现偏差,建议对文章 ...

  • 字节跳动提出面向GAN压缩的在线多粒度蒸馏算法,算力降至1/46

    机器之心专栏 字节跳动-智能创作团队 字节跳动 - 智能创作团队提出了一种用于学习轻量级 GAN 的在线多粒度蒸馏算法 OMGD.该算法能够把 GAN 模型的计算量减少到最低 1/46.参数量减少到最 ...

  • APS:大型多模态室内摄像机定位系统

    重磅干货,第一时间送达 小白导读 论文是学术研究的精华和未来发展的明灯.小白决心每天为大家带来经典或者最新论文的解读和分享,旨在帮助各位读者快速了解论文内容.个人能力有限,理解难免出现偏差,建议对文章 ...