李海涛,胡泽涛,张俊虎
(青岛科技大学信息科学与技术学院,山东 青岛 266061)
随着人工神经网络的不断发展,深度学习这一人工智能重要领域有了更好的前景,其中图像识别与分类已经有了广泛的应用,包括人脸识别、停车场车牌识别、医疗图像分析、安防监控等[1]。但是当深度学习逐渐扩展到更多行业中时,其局限性也慢慢暴露出来:数据的不足会使深度学习与其他传统方法相比没有优势,甚至达不到其他传统方法取得的效果。这一局限性在图像识别与分类中,具体表现为数据集质量参差不齐、数据多样性不足、数据集类别不平衡等问题[2]。其中数据集类别不平衡问题较为常见且影响较大,表现为数据集中某几类样本的数据量较多,而另外几类样本的数据量较少,若人工神经网络采用此种数据集训练,最后的判别准确率会在某几类上出现明显的偏差。解决类别不平衡问题最直观、有效的方法是对数量少的样本图像进行扩充。
传统的图像扩充方法主要依据计算机图形学相关理论,通过在几何变换方面对原始图像进行平移、缩放、旋转、仿射、透视;在图像增强方面对原始图像进行亮度、色度、对比度、锐度调整;在噪声方面对原始图像添加高斯噪声或椒盐噪声[3]。采用传统图像扩充方法可以在不增加无意义数据的同时简单快速地扩充样本图像数量,但在数据多样性提升方面效果不佳。近年来随着神经网络不断改进变革,涌现出了卷积神经网络、递归神经网络、深度神经网络等众多复杂的多节点网络模型,依托于此,诞生了生成对抗网络(Generative Adversarial Networks,GANs)及其一系列改进网络。生成对抗网络通过生成器与判别器二者进行博弈式训练,可使生成器生成与真实样本极其相似的生成样本[4]。根据生成对抗网络的结构和特性,可以利用其进行有效的图像扩充,使生成图像多样性更加丰富。
考虑到生成对抗网络所生成样本的分辨率、多样性等指标,本文选取StyleGAN2 作为原始网络。在StyleGAN2的基础上,针对鱼类图像由低到高不同层级特征的变化特点,以及StyleGAN2控制不同层级特征变化的方式,本文设计一种噪声抑制样式生成对抗网络NS-StyleGAN2。NS-StyleGAN2 通过去除StyleGAN2的合成网络中4×4至16×16分辨率层的噪声叠加模块,保留其他分辨率层的噪声叠加模块,抑制了StyleGAN2合成网络中的低分辨率层噪声输入。同时本文对DCGAN、WGAN等其他生成对抗网络进行相同实验对比,发现利用NS-StyleGAN2 网络对鱼类图像样本训练,可以生成更真实、更多样化的鱼类图像样本。
GANs 于2014 年由Goodfellow 等人提出,是一种无监督学习方法[5]。GANs 包括2 大部分:生成器G(Generator)和判别器D(Discriminator)[6]。生成器将随机噪声z作为输入,经过多层网络运算处理输出生成样本图像G(z)。判别器将生成样本图像和真实样本图像作为输入x,经过多层网络运算处理得到二值输出D(x),值为0 时表示输入x为生成样本图像,值为1时表示输入x为真实样本图像[7]。
最初的GANs 使用梯度下降法达到纳什均衡,训练过程极不稳定,会出现梯度消失、模式崩溃(Model Collapse)等问题,造成训练能效低、生成样本多样性低、图像质量差[8-12]等问题。为了解决原始GANs 的问题,经过后人研究衍生了若干GANs的变种。
深度卷积生成对抗网络与原始GANs 相比修改了生成器和判别器的网络结构,在生成器中使用分数步长卷积(Fractional-strided Convolutions)代替池化层,在判别器中使用步长卷积(Strided Convolutions)代替池化层,以此加深网络层级,学习样本更多的特征[13]。为了加快网络收敛,DCGAN 使用池化层将生成器和判别器的随机输入直接与卷积层特征输入进行连接,去掉了参数过多的全连接层[14-15]。
基于推土机距离的生成对抗网络(Wasserstein GAN,WGAN)的改进方式与DCGAN 的根据经验调整网络架构不同,它从原始GANs 的公式定理方面着手,针对推理出的问题从算法逻辑进行改进。WGAN相较于原始GANs,从理论上解决了梯度消失问题,同时引入了Wasserstein 距离作为GAN 训练指标,使网络训练更加稳定并减少了模式崩塌现象[16-18]。但WGAN没有对网络结构进行大幅度调整,仍然难以生成高分辨率图像。
基于样式的生成对抗网络(Style Based GAN,StyleGAN)是英伟达公司于2019 年提出的一种基于ProGAN 改进的生成对抗网络变体[19]。StyleGAN 网络结构与GANs 类似,包括生成器和判别器,其改进点主要集中在生成器。StyleGAN 的生成器网络主要包括2个部分:映射网络(Mapping Network)和合成网络(Synthesis Network),整体网络结构如图1 所示。
图1 StyleGAN网络结构
Mapping Network 主要对隐藏空间(Latent Space)进行解耦,寻找数据之间耦合性高的特征之间更深层次的关系,将这些关系解耦得到隐藏特征(Latent Code)。Mapping Network 的8 个全连接层将Latent Code(z)仿射变换(A)为中间变量w,使z的分布函数变为非均匀密度分布函数,更符合实际情况的特征分布。通过Mapping Network 模型可以生成一个不需要跟随训练数据分布的向量w,并可以减少样本特征之间的耦合性,达到控制单一特征而不影响其原始被纠缠的特征[20-23]。
StyleGAN 作为目前最先进的高分辨率图像生成方法之一,其仍存在缺点,包括网络训练速度慢以及生成的各级特征图像都包含明显的斑点伪影(artifacts)。为解决StyleGAN 出现的问题,NVIDIA发布了StyleGAN的升级版——StyleGAN2。
StyleGAN2通过实验发现出现artifacts的原因在于AdaIN操作,于是在一代的基础上修改合成网络架构,首先将AdaIN转化为归一化与调制这2个操作,并将多余的偏差和噪声广播操作移至不同分辨率层之间,最终使用解调代替归一化[24-27]。StyleGAN2可以有效减少artifacts现象,加快网络训练速度。StyleGAN2网络结构如图2所示。
图2 与图1 相比可明显看出,StyleGAN2 生成器除了将StyleGAN 中的AdaIN 模块使用调制解调模块Mod、Demod 代替,同时将噪声B 叠加的位置从Conv模块与AdaIN模块之间移至不同分辨率层之间。
图2 StyleGAN2网络结构
原始StyleGAN2 通过噪声广播将噪声叠加到合成网络的从低到高所有分辨率层,以此增加图像基础特征到高级特征的多样性,例如增加人脸图像的肤色、头发颜色、背景色到姿态、脸型、穿戴等特征的多样性。但是对于使用StyleGAN2 扩充鱼类图像以增加图像识别分类准确率来说,每种鱼的基础特征,如鱼表面颜色及外轮廓应较为一致,因此需要减少图像基础特征的多样性。
针对上述StyleGAN2 在鱼类图像应用的问题,本文构建一种噪声抑制样式生成对抗网络(Noise-Suppressed Style Generative Adversarial Networks 2,NS-StyleGAN2)。NS-StyleGAN2 在4×4 至16×16 分辨率层中去除噪声叠加,在32×32及更高分辨率层保留噪声叠加,以增加高分辨率层噪声权重,抑制低分辨率层噪声权重。图3 为NS-StyleGAN2 结构,可明显看出4×4、8×8 及16×16 分辨率层没有了噪声叠加模块。
图3 NS-StyleGAN2网络结构
基于StyleGAN2网络结构,NS-StyleGAN2网络包括生成器和鉴别器,其样本图像生成过程主要由3 个步骤构成:
步骤1 输入随机噪声到8 个全连接层,输出中间变量w。
步骤2 中间变量w先后经过仿射变换、调制解调,与常量或来自上一分辨率层的输出进入卷积层运算。
步骤3 32×32 及更高分辨率层经过步骤2 得到的输出与噪声B叠加输入下一分辨率层,最高分辨率层的输出即为最终生成图像。
实验电脑配置如下:操作系统为Ubuntu 20.04,CPU 为i9-9900k,GPU 为2 张NVIDIA GeForce RTX3090,单张显存为12 GB,内存为32 GB,Python版本为3.9.7,Pytorch版本为1.9.1。
本文实验使用202 幅从不同角度实际拍摄的鲢鱼图像作为数据集,每幅图像分辨率为256×256,颜色为彩色。DCGAN 和WGAN 模型训练时由于难以生成高分辨率图像,所以将DCGAN 和WGAN 模型训练所用图像使用中心裁剪方法裁剪至64×64分辨率。
本文采用起始分数(Inception Score,IS)、弗雷歇起始距离(Frechet Inception Distance,FID)、内核起始距离(Kernel Inception Distance,KID)这3 种GANs 常用的评价标准作为实验结果评价指标。
3.3.1 起始分数IS
起始分数使用图片分类网络Inception Network第3 个版本以及ImageNet 数据集,从生成图片的清晰度和多样性2 个方面验证生成模型的性能。在清晰度方面,IS 计算生成的图片属于1000 类图片中某个类别的概率的熵,熵越小代表被检测图片越清晰,最理想的情况为生成的图片属于某一类图片的概率极大,属于其他类别的概率极小; 在多样性方面,IS 计算所有生成图片在1000 类图片中概率的边缘分布的熵,熵越大代表图片多样性越高,最理想的情况为生成的图片在各类图片中均匀分布。综合2 方面可得公式(1):
其中,exp 没有具体含义,x~Pg表示从生成器中生成图片样本分布,p(y|x)表示生成图片x属于各个类别图片y的概率分布,p(y)表示生成器所有图片在所有类别图片上的边缘分布,DKL表示KL 散度,用以衡量2 个概率分布的距离。通过前面分析可知,生成器性能最好情况下p(y|x)为极尖锐分布,p(y)为均匀分布,因此这2 个分布的KL 散度越大生成器性能越好。
3.3.2 弗雷歇起始距离FID
FID 同样借助Inception Network 得到图片样本的n维特征并将其简化为向量,使用弗雷歇距离(Frechet Distance)计算真实样本特征和生成样本特征这2个多维向量所服从分布之间的距离。2幅相同的图片样本其特征向量的分布会重合,因此FID 越小,生成样本与真实样本越相似。FID计算如公式(2)所示:
其中,μr表示真实图片的特征的均值,μg表示生成图片的特征的均值,∑r表示真实图片的特征的协方差矩阵,∑g表示生成图片的特征的协方差矩阵。FID与IS 不同,考虑了真实样本与生成样本的关系,而IS 只依据ImageNet 数据集,从判别依据上提升了合理性。同时FID 不需要对生成样本进行分类,可以避免生成样本类别模糊、不存在于ImageNet数据集等多样性问题对计算结果造成的影响。
3.3.3 内核起始距离KID
KID 与FID 类似,使用Inception Network 计算表征之间最大均值差异的平方来衡量生成样本与真实样本之间的差异。与FID 不同之处在于,KID 拥有一个3次核的无偏估计值,计算结果与人类感知类似。
本文使用基于Pytorch 框架实现在DCGAN、WGAN、StyleGAN2 以及本文提出的NS-StyleGAN2 网络上对相同的鲢鱼数据集进行训练,每种网络分别训练1000 个epoch,每个epoch 为使用训练集的全部数据对模型进行一次完整训练,使用训练完成保存的模型分别生成1000 幅图像作为生成样本,最后使用生成样本计算GANs 评价量化指标,并通过人眼观察作出评价。
图4为NS-StyleGAN2对鲢鱼数据集进行1000个epoch 训练的FID 得分变化趋势。前200 个epoch 训练过程中FID 得分迅速下降,在第800个epoch 时FID得分下降到最低值,说明NS-StyleGAN2 在前1000 个epoch训练中可以收敛。
图4 NS-StyleGAN2的FID变化趋势
表1 为4 种模型所生成样本在IS、FID、KID 量化指标上的对比情况,IS 得分越高、FID 与KID 得分越低表明生成样本越接近真实样本、生成器性能越好。本文提出的NS-StyleGAN2 在IS 分数为3.54,FID 分数为206.56,KID 分数为0.15,IS 分数在4 种模型中最高,而FID、KID 分数均最低。由于DCGAN、WGAN 所生成的样本分辨率为64×64,远低于StyleGAN2 与NS-StyleGAN2 生成样本的256×256 分辨率,所以生成样本清晰度远不如真实样本清晰度,导致DCGAN、WGAN 的评价得分与StyleGAN2、NS-StyleGAN2 的评价得分差距较大。NS-StyleGAN2与StyleGAN2相比,通过噪声抑制手段在减少生成样本基础特征变化的同时保持了高级特征的变化,使生成样本在更接近于真实样本的同时保持了多样性,因此NS-StyleGAN2的各项得分均优于StyleGAN2。上述结果表明本文提出的NS-StyleGAN2生成的图像与真实图像更为相似,且具有较高的质量与多样性。
表1 4种模型的3种量化评价指标对比
图5 为使用原始StyleGAN2 和NS-StyleGAN2 生成的结果对比,通过对比发现原始StyleGAN2 生成图像整体较为模糊,鱼表面有明显不同颜色色块,且缺失纹理细节。NS-StyleGAN2 生成图像整体较为清晰,鱼鳍边缘细节、鱼表面纹理较为明显,鱼表面颜色过渡平滑。由于StyleGAN2 在合成网络的各个分辨率层都输入了噪声,鱼表面颜色、纹理等基础特征变化幅度较大,导致其模糊不清甚至缺失;而NSStyleGAN2 通过抑制低分辨率层的噪声输入,控制了基础特征的变化幅度,使得基础特征更加清晰、符合真实情况。因此本文提出的NS-StyleGAN2可以为鱼类识别提供更真实客观的样本。
图5 原始网络与改进网络生成图像
图6 为去除不同分辨率层噪声叠加的NSStyleGAN2 所生成图像对比。通过对比发现,去除8×8及以下分辨率层噪声叠加所生成的图像与去除16×16 及以下的相比,鱼鳃及其附近的鱼鳍边界更为模糊,鱼表面颜色过渡不自然;去除32×32 及以下分辨率层噪声叠加所生成的图像与去除16×16 及以下的相比,鱼鳃形状模糊,鱼鳍形状姿态单一且丢失背鳍细节。去除噪声叠加的分辨率过低,只能抑制较少的基础特征变化,而去除噪声叠加的分辨率过高,会影响背鳍等高级特征的产生。因此去除16×16 及以下分辨率层噪声叠加的NS-StyleGAN2能够取得更理想的图像生成效果。
图6 去除不同层级噪声生成图像
图7为4种模型生成样本与真实样本对比,通过人眼观察发现,DCGAN与WGAN生成的图像较为类似,图中鱼的整体轮廓较为明显,鱼表面和背景色调与真实图像的较为一致,但由于分辨率和模型收敛程度限制,鱼鳍、鱼鳃等细节特征较为模糊,无法从图像上观察出来,且图像中噪点较为明显。StyleGAN2生成样本几乎没有噪点,鱼的外轮廓较为清晰,但细节特征仍然模糊,鱼表面呈现大量不均匀色块。而本文提出的NS-StyleGAN2生成的图像中鱼外轮廓边界鲜明,背景及鱼身颜色过渡平滑,鱼鳃、鱼鳍等结构可明显辨别。
图7 4种模型生成图像
本文在生成对抗网络架构基础上,提出了一种噪声抑制生成对抗网络的鱼类图像生成方法,应用于鱼类图像生成。本文方法与DCGAN、WGAN、StyleGAN2这3 种方法各生成1000 个样本,在IS、FID、KID 这3种量化指标以及人眼观察评价方面进行比较,结果表明本文方法在鱼类图像方面可以生成更加真实、客观的图像,实现对鱼类图像数据集的扩充,有助于解决图像类别不平衡问题。