AugGAN:基于GAN的图像数据增强

数据增强方法无疑是需要重点研究的基本任务之一,因为我们的主流深度学习算法还是一个有监督过程。台湾国立清华大学在ECCV2018发表了一篇AugGAN开始把GAN用在数据增强方面了,当然,这并不是这个领域的第一篇。不过很具有参考意义,也很能解决实际问题。所以特地写一个blog研究一番。

读本文需要懂GAN和Auto-Encoder的基本算法流程,没有GAN和AE基础的可以看我关于GAN和AE写的详细图解教程:

GAN》《Auto-Encoder》 

论文标题: 《AugGAN: Cross Domain Adaptation with GAN-based Data Augmentation》

论文地址:   http://openaccess.thecvf.com/content_ECCV_2018/papers/Sheng-Wei_Huang_AugGAN_Cross_Domain_ECCV_2018_paper.pdf


训练数据

AugGAN的特点是转换准度高,即转换后的数据可用性高,目前在转换数据的可用性上,AugGAN是顶尖算法了。但AugGAN基于语义分割的结构意识,需要有分割数据标签。这点导致AugGAN的数据来源相当困难。不过好在AugGAN的迁移性挺好,也存在这样的数据集,比如SYNTHIA,STA等等。SYNTHIA是电脑合成的图,并非是真实世界得来的数据。SYTHIA示例如下:

上述就是AugGAN的训练数据了,包含:1. 分割掩模;2,不同领域的图像(春天和冬天,白天和黑夜)。 


AugGAN结构

数据增强可以分作很多方面,我们对原始数据进行扩充就是数据增强。此文是基于领域变换的数据增强,如文章标题所言,“跨域适应的GAN基数据增强”。首先,要理解这里的跨域的概念。

栗子是很好举的,我们通常采集数据由于各种限制会导致采集数据十分局限。比如对于行人检测而言,我们白天采集数据,然后用白天采集的数据训练模型,把这个模型用到晚上,就会发现效果很差。于是,你不得不晚上再去采集数据。当然,AugGAN的存在让你不再需要晚上再去采集数据。这里有个原因是,白天数据和晚上数据其实冗余成分很大,只是数据域(domain)的不同。如果能把一个数据域的数据搬移到另一个数据域,是不是就增强了数据呢?我们可以通过白天的数据来生成晚上的数据;我们可以通过夏天的数据生成冬天的数据;我们依然可以通过晴天的数据生成雾霾的数据。这么操作,数据量是不是大大增加了呢?

很容易让人联想到cycleGAN,这是很优秀的风格变换网络。可以一键把照片换成水彩画,甚至可以换成毕加索风格。但cycleGAN的目的不是为了数据增强,更注重其“艺术性”。数据增强这一块跟AugGAN差别还是不小的,一会儿可以看例子。

喜欢看GAN相关的文章,是因为这些文章无须过多的trick,一个网络结构就足以抽出文章的精髓(像极了几年前的卷积神经网络,那是一个回不去的年代)。直接丢图:

 用简单的话描述上图,这是自编码器和GAN结合的结构。X,Y就是代表两个领域(比如说白天和黑夜)的数据。首先对X和Y进行编码降维,都会得到一个特征域Z,这个Z会对接两个解码器,一个解码器负责伪装数据,另一个解码器负责恢复数据。

\hat{X}_{pred}\hat{Y}_{pred}为解码之后得到的掩模,将会和ground truth做一个loss。

下面详细解析这个框架图


1. 结构意识(structure-aware)与分割子任务

结构意识是这篇文章的最大卖点,意思是,让模型在转换图像的时候,明白图像不同位置分别是什么物体或者背景。这就依赖一个分割标签即掩模,如下所示:

具体怎么让模型知道各自是什么呢?依靠一个叫做权值软共享的操作! 待会儿会好好说这个权值软共享。

对于结构意识,我们只需在解码的时候还原掩模就可以了,loss function如下:

 \hat{X}表示ground truth的掩模, Px(Ex(x))表示生成的掩模,所以有以上的损失函数。y的loss function和x的完全一致,就不单独列出来了。

2. 权值共享

权值共享分为硬共享(hard-sharing)和软共享(soft-sharing),前者直接就是完全一样的权值了,后者通过一些函数约束。

如上图标注,绿色框代表权值硬共享,即每个Resblock的权值是一样的,蓝色框代表软共享,依靠一定的要求束缚。硬共享的resblock期望找到一种映射准则,而软共享的上采样模块期望建立一定的联系,这也是 structure-aware的实现基础。用掩模的上采样来束缚解压的上采样,这样使得\bar{Y}\hat{X}_{pred}享有一样的结构意识。

软共享通过训练来实现:

通过MSE来实现G和P的权值束缚。


3.循环一致性(cycle-consistency)

 一句话可以描述这个概念:X能够被重构,这就是循环一致性。也可以以此建立一个损失函数,如上。

4.对抗训练

训练GAN的生成器和判别器,GAN最基本的概念,有疑问可以看 《GAN

5.full loss function 

这就表达了整个模型训练时所用的损失函数了。就是把前面四种损失函数加到一起。


结果 

 

用YOLO和Faster RCNN测试了AugGAN的数据增强效果。当然这里的YOLO还是v1,所以表现很菜。可以看出,AugGAN的表现确实抢过非监督图图转换模型UNIT和CycleGAN。 


总结 

AugGAN是监督式算法,依赖分割标签。如果数据充足的情况下,AugGAN的转换数据的可用性非常高。但其数据来源成本十分高,虽然具有很强的迁移性,不过对于具体的项目也不太好实用。

这篇论文提供了一个结构意识的新思路,让模型理解图像的结构信息,这样做转换的时候更具有针对性,所以不容易淹没主要信息。

猜你喜欢

转载自blog.csdn.net/leviopku/article/details/83412417