APP下载

一种基于生成对抗网络的轻量级图像翻译模型

2021-11-22王荣达刘宁钟李强懿沈家全

计算机技术与发展 2021年11期
关键词:网络结构卷积损失

王荣达,刘宁钟,李强懿,沈家全

(南京航空航天大学 计算机科学与技术学院,江苏 南京 211106)

0 引 言

在深度学习发展迅速的今天,研究员们已经设计出了大量优秀的大型神经网络算法模型,这些模型在很多任务上都表现非常出色,例如目标检测、图像分类、细粒度识别、图像生成、图像到图像翻译等任务。但是它们都有一个共同的缺点,就是所需要的计算量和模型大小都非常大,通常需要配置大显存的GPU进行运算。而在移动互联网高速发展的今天,日常的应用更多地会放到移动端,而很多大型网络需要的运算量手机是无法进行处理或者运行时速度过慢。这时候就需要对神经网络模型进行优化压缩和加速。常见的做法有设计轻量级卷积神经网络,从而降低模型所需要的参数量,或者对一个训练完成的大型卷积神经网络进行模型剪枝。

轻量级神经网络经过了多年的发展,取得了一定的成果。例如在ICLR-2017上提出的SqueezeNet[1],它在只用到Alexnet[2]模型五十分之一的参数量的情况下,在图像分类数据集ImageNet[3]上实现了和Alexnet相同的正确率。文章中还利用了模型压缩的思想,可以将模型的大小进一步压缩到0.5 MB。随后MobileNet[4]、ShuffleNet[5]等新型轻量级网络的提出,更是进一步探讨了在非常深的卷积神经网络中该如何设计轻量级网络结构的问题。

1 相关工作

为了从预训练的模型中学习紧凑而有效的网络,Denton等人[6]利用奇异值分解(SVD)实现了全连接层中参数的低秩近似,从而降低了模型的参数量。Chen等人[7]使用了哈希函数,利用哈希表提供参数映射来节省权重参数量。Han等人[8]通过删除预训练神经网络模型中不重要的参数,减少了模型参数量,并进一步在文献[9]中利用量化、霍夫曼编码和权重稀疏等方式来获得极其紧凑的卷积神经网络模型。Luo等人[10]通过删除了多余的权重,并用全局平均池(GAP)层代替了全连接层,大大降低了模型的参数量。Vanhouche等人[11]探索了利用8位整数值的深度神经网络用来替换原始模型中的32位浮点值,从而实现模型的压缩和加速。Courbariaux和Bengio等人[12]探索了具有二进制权重和激活的小型神经网络。Restgari等人[13]更进一步地在最新的神经体系结构中应用具有二进制权重的卷积层从而实现更高的性能。Anwar等人[14]描述了一种在特征图和卷积核层次的卷积层进行结构化修剪的方法。其中权重的修剪是通过粒子过滤来完成的,具体做法是根据误分类率对所有的参数进行加权排序,最后决定需要裁减掉的卷积单元。该方法在小型卷积神经网络剪枝上展示了很好的效果,但在大型卷积神经网络上的表现差强人意。谷歌的学者在2017年提出一种用于嵌入式设备和移动端的轻量级卷积神经网络MobileNet。这个网络结构推出后受到了广大研究人员的跟踪研究,其最主要的贡献是提出了一种深度可分离卷积(depthwise separable convolution)的新型卷积结构。深度可分离卷积核与传统的卷积不同,传统卷积是用卷积核对特征图中的每个像素点相乘后进行累加,也就是使用N个DK*DK*M大小的卷积核进行特征图的卷积,最后输出结果。ShuffleNet采用的网络设计思想与前面提到的SqueezeNet和MobileNet不同,ShuffleNet是采用了一种稀疏组卷积(group convolution)的思想,组卷积是将输入层的不同特征图进行分组,然后采用不同的卷积核对各个组进行卷积,从而降低卷积过程中所需的计算量。使用组卷积设计的网络结构有很多,比如ResNeXt[15]、Xception[16]、MobileNetV2[17]等。但是这些网络当中存在一定的问题,其中的1×1卷积层需要耗费很多的计算量。为了解决这个问题,ShuffleNet采取的是对1×1卷积层进行分组卷积操作,但是这样也带来了一个问题,之前采用1×1卷积层是为了解决卷积层组间特征通讯的问题,而采用分组卷积的话就会又出现同样的问题。而ShuffleNet的作者为了解决这个问题,提出了channel shuffle的策略。这个策略简而言之就是把不同组的特征进行重新排列,不同组之间的特征进行随机调换位置,从而达到加强组间特征通讯的目的。而SqueezeNet的模型压缩思路主要使用了3个策略:(1)将3×3卷积替换成1×1卷积;(2)减少3×3卷积的通道数;(3)将降采样后置。此外,SqueezeNet还引入了大量的Fire模块,SqueezeNet是由若干个Fire模块结合卷积网络中卷积层,降采样层,全连接层等组成的。一个Fire模块由Squeeze部分和Expand部分组成。Squeeze部分是由一组连续的1×1卷积组成,Expand部分则是由一组连续的1×1卷积和一组连续的3×3卷积进行通道连接组成,因此3×3卷积需要使用same卷积。在Fire模块中,Squeeze模块中1×1卷积层的通道数记做s1x1,Expand模块1×1卷积和3×3卷积的通道数分别记做e1x1和e3x3。在Fire模块中,作者建议s1x1

尽管这些方法在几种基准模型上都实现了相当大的加速比和压缩率,但它们中的大多数是为识别任务而开发的,例如图像分类和目标检测,所以这些剪枝方法不能直接应用在生成对抗网络上。因为生成对抗网络的结构和传统的卷积神经网络不同,是由生成器和判别器两个网络模型成对组成,其输出是高维和具有复杂结构的图像。

近年来图像到图像翻译任务也是深度学习领域的一个研究热点,特别是在生成对抗网络结构[18]和条件生成对抗网络[19]提出后,更是受到了广泛的关注。图像到图像翻译是一类视觉和图形问题,其目标是使用一组对齐的图像对来学习输入图像和输出图像之间的映射。Phillip Isola等人[20]提出了一种pix2pix的cGAN模型pix2pix,能够实现图像到图像的端到端映射,作者在文章中研究的重点是如何将条件生成对抗网络应用在通用图像到图像翻译任务。作者设计出的生成对抗网络可以学习从输入图像到输出图像的映射,同时通过优化内容损失函数来学习图像到图像之间的映射。作者提出的方法解决了以前方法中每次训练不同的图像到图像翻译任务都需要进行改进损失函数的问题,并且在多种数据集上进行了验证,例如通过标签生成图片、通过航拍图生成地图、通过边缘画稿重建对象、对图像进行着色和白天到夜晚的转变等等。自从作者在GitHub中发布pix2pix以来,很多研究人员甚至艺术家已经基于pix2pix创造出了属于自己的作品,进一步证明了其广泛的适用性。此后CycleGAN[21]更是解决了不成对数据集的图像到图像翻译任务的训练问题,降低了对图像到图像翻译数据集的采集难度。这也和pix2pix的训练方式不同,CycleGAN只需要两种不同风格的图像数据集进行训练即可,并不需要每个图像都进行对应。

文中提出了一种基于生成对抗网络的图像到图像翻译新型网络结构,用于对自然图像进行风格转换,例如将图像中的马转换为斑马。实验结果表明,通过使用轻量级的网络结构,该方法可以在速度和准确性上表现良好。

文中的主要贡献如下:

(1)提出了一种应用在图像到图像翻译任务的基于生成对抗网络的轻量级网络结构。

(2)通过在CycleGAN的骨干网络中引入轻量级的网络结构,降低了基于CycleGAN的图像到图像翻译模型的参数量和运行时间。

2 轻量级神经网络模型结构

2.1 模型网络结构

目标是通过端到端的方法转换不同风格的图片。为了确保可以学习从风格X图像到风格Y图像的映射,设计了类似于CycleGAN的网络架构。此外,将线性瓶颈结构引入到该骨干网络中,从实验结果得出,该网络结构显著提高了图像到图像翻译模型的准确性和速度。类似于CycleGAN,该模型架构也包含两个生成器和两个判别器。两个生成器代表两个不同的映射,分别标记为G和F,而两个判别器记为Dx和Dy。其中G代表从风格X图像到风格Y的映射,而F代表从风格X图像到风格Y图像的映射。判别器Dx的作用是区分图像是否是风格X图像,而判别器Dy则旨在区分图像是否是风格Y图像。这两对生成器和判别器构建出了一个用于训练图像到图像翻译任务的网络框架。

网络架构如图1所示。它包含两个重要部分:生成器和判别器。就G和F这两个生成器而言,它们拥有相同的网络结构,如图2所示,其中包含一个7*7卷积层、两个的3*3卷积层、两个转置卷积层,几个线性瓶颈块[17]、若干个实例归一化的规范化层(Instance norm layer[22])、ReLU[2]函数和Tanh函数。

图1 网络模型整体结构

图2 生成器结构

线性瓶颈块是在MobileNetV2当中提出的新型轻量级结构,其中含有3个卷积层,它的结构类似于ResNet结构[23]。不同的是,线性瓶颈块包含一个3*3卷积块和两个1*1卷积块,而不是ResNet中使用的两个3*3卷积块,通过组卷积和深度可分离卷积技术进行参数压缩[17]。文中使用的线性瓶颈块和MobileNetV2不同,其中第二层采用的是一个5*5的depthwise卷积层。模型在经过两个线性瓶颈块后,采用一个1*1的卷积层对上面两个线性瓶颈层中的5*5卷积层输出的特征层进行处理,最后输入转置卷积层。采用的特征图融合方式是concat,也就是特征图通道维度的合并。

文中提出这种结构的意图在于能够对两个线性瓶颈块中输出的特征图进行融合处理,从而提高模型对图像细节的处理能力。此外,文中提出的算法模型中的两个判别器Dx和Dy都拥有相同的PatchGAN架构[20]。同时,使用LSGAN[24]作为生成对抗网络的损失函数。

2.2 损失函数

将对抗损失和循环一致性损失引入损失函数当中。映射G:X=>Y的损失函数及判别器Dy的对抗损失可以写成如下形式:

LGAN(G,Dy,X,Y)=Ey~p(data(y))[logDY(y)]+

Ex~pdata(x)[1-logDY(G(x))]

(1)

其中,G定义为生成器,作用是生成风格Y图像。而Dy作为判别器用来区分给定风格Y图像x是来自假样本分布G(x)还是真实样本分布Y。换句话说,判别器Dy通过使损失函数LGAN(G,DY,X,Y)值最大化来提升区分生成的图像和真实图像之间的能力。与此同时,生成器G通过最小化损失函数LGAN(G,DY,X,Y)来提升生成接近Y真实分布图像的能力。与此同时,映射F:Y=>X与它对应的判别器Dx之间的优化损失函数可以写为:

LGAN(G,Dx,X,Y)=Ex~p(data(x))[logDx(x)]+

Ey~pdata(y)[1-logDx(G(y))]

(2)

与CycleGAN相似,将循环一致性损失引入损失函数,从而确保模型能够学习从风格X图像到风格Y图像之间的正确映射。循环一致性损失函数写为:

Lcycle(G,Y)=Ex~p(data(x))[‖F(G(x))-x‖1]+

Ey~pdata(y)[‖G(F(y))-y‖1]

(3)

其中,G为将风格X图像x转换为风格Y图像G(x)的映射函数。F类似于将风格X图像转换为风格Y图像的生成器G。F最有意义的作用是确保可以将生成的风格Y图像还原为原始风格X图像。假如通过之前的单向生成对抗网络模型pix2pix学习了从风格X图像到风格Y图像的映射函数G,即使生成器G在实验中出良好的结果,也仍然不知道生成模型是不是学到了正确的映射。为了解决该问题,将能够学习从风格Y图像到风格X图像的映射的生成器F添加到网络体系结构中。此外,将循环一致性损失引入到生成对抗网络的损失函数中用来比较原始图像和还原后图像之间的差异。

3 实验和结果

3.1 实验细节

文中模型是通过Pytorch框架进行设计和训练的,该框架是当前比较可靠和高效的深度学习框架。使用的CPU为 Intel(R) Core(TM) i7-7700 @ 3.50 GHz,在单个NVIDIA TITAN Xp GPU上进行了模型训练,使用的操作系统是Ubuntu16.04。

在训练过程中,使用了下一节中提到的两个数据集,通过Pytorch框架实现了文中算法模型,并且复现了CycleGAN进行对比实验。输入和输出的图像尺寸均为372×372。根据上一节介绍的网络体系结构,初始化了两个生成器G和F以及两个判别器Dx和Dy。更具体的训练细节是,在训练模型的过程中使用Adam[25]优化器更新网络权重,初始学习率设置为0.000 2,并且按照每100个epoch都会衰减一次的规则进行迭代。同时,还设置了两个GAN损失函数用来优化生成器和判别器的参数。最终,训练过程在200个epoch后停止,每个epoch中的batch大小设置为1。

3.2 数据集

这部分将介绍本章用到的训练和测试数据集:

horse2zebra[21]:

该数据集作为训练样本的有1 067张普通马图像和1 334张斑马图像;作为测试样本的有120张普通马图像和140张斑马图像。

summer2winter[21]:

该数据集作为训练样本的有1 231张夏天风景图和962张秋天图像;该数据集作为训练样本的有309张夏天风景图和238张秋天图像。

3.3 实验结果

测试了文中提出的剪枝算法在通用图像到图像翻译任务上的表现,选取了常见的两个图像到图像翻译任务数据集进行训练和测试。在衡量测试结果的时候用的是Frechet Inception Distance (FID),这个指标通过比较生成的图像特征和原有数据集之间的差异性,来衡量生成对抗网络生成的图像质量,是目前研究生成对抗网络模型性能最常用的一个图像评价指标。测试结果如表1所示,可以看出,文中方法在summer2winter数据集上表现良好,甚至超过原CycleGAN的表现,领先ThiNet[10]和coEGAN[26]。在horse2zebra数据集上表现则略逊一筹,和coEAN的表现相仿,同时大幅度领先ThiNet,但是相比原CycleGAN而言要逊色不小。整体来说,文中提出的轻量级网络结构在图像到图像翻译任务上表现良好。

表1 各模型FID分数对比

表2 CycleGAN和文中方法的性能对比

结合一下原CyleGAN模型和文中提出的轻量级生成对抗网络模型结构进行进一步的讨论,如表2所示。从表2中可以看出,文中提出的轻量级生成对抗网络的模型大小仅仅为原来CycleGAN模型的四分之一左右。文中提出的网络结构在只用到原CycleGAN模型大约四分之一左右的参数量的情况下,在horse2zebra和summer2winter数据集上实现了接近和超过原CycleGAN的性能,并且运行速度比原来降低了10%左右,证明了文中提出的轻量级生成对抗网络结构的有效性。

图3 文中算法和CycleGAN测试结果对比

图3展示了CycleGAN和文中算法分别在horse2zebra和summer2winter测试集上的几个测试结果。从图中可以看出,文中算法接近原CycleGAN的表现,具体表现为在背景和细节纹路等方面文中算法和CycleGAN较为一致。这也证明了文中提出的网络结构的有效性,不仅能够节省大量模型参数,还能加快模型的运行速度。

4 结束语

提出了一种轻量级的新型生成对抗网络结构,用于图像到图像翻译任务。该模型比起CycleGAN拥有更少的计算成本和更小的模型尺寸,同时图像到图像翻译任务中达到了最好的性能。实验证明,提出的基于生成对抗网络的轻量级在图像到图像翻译任务上表现良好,在只用到原CycleGAN模型大约四分之一左右的参数量的情况下,在horse2zebra和summer2winter数据集上实现了接近和超过原CycleGAN的性能,并且运行速度比原来降低了10%左右。证明了该轻量级网络结构的有效性。

猜你喜欢

网络结构卷积损失
洪涝造成孟加拉损失25.4万吨大米
基于全卷积神经网络的猪背膘厚快速准确测定
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
两败俱伤
试论分布式计算机网络结构分析与优化
带通信配网故障指示器故障监测方法及安装分析
损失
非常规突发事件跨组织合作网络结构演化机理研究