在传统的计算机视觉领域中,研究人员需要通过手动或统计的方式寻找图像中具有代表性的区域或像素点,并根据这些区域或像素点构建对该图像的全局描述特征。而利用全局描述特征解决图像分类和目标检测等计算机视觉问题时,典型的全局描述特征鲁棒性不强,且当光照、视角、明暗以及纹理等发生改变时,描述特征将会随之改变甚至失效。针对该问题,卷积神经网络为其提供一种新的特征构造方式,通过大量的训练样本寻找最佳特征构造方式,并利用这种构造方式对每张图像进行特征建模。因为有大量训练样本的支持,所以使用卷积神经网络得到的特征相比传统的全局描述特征更加稳定,并且对光照和视角等条件更加鲁棒。因此,卷积神经网络逐渐取代了传统方法,并在计算机视觉子领域中得到广泛应用。
图像语义分割作为计算机视觉领域的主要分支,受到了国内外研究人员的广泛关注。在应用于无人驾驶时,图像语义分割技术可自动划分出汽车在行驶过程中需要避让的行人、路障和其他汽车等障碍,良好的语义分割效果促进了自动驾驶技术的快速发展。
目前,国内外研究人员在图像语义分割方面已取得显著的研究成果。文献[1]将深度学习技术引入至图像语义分割领域中,并提出了著名的FCN结构。该方法利用全卷积神经网络自动对图像进行编码,且端到端的训练方式简化了语义分割问题过程,得到准确率更优的结果。文献[2]在FCN的基础上加入了生成对抗网络(Generative Adversarial Network,GAN),利用GAN能够较好拟合未知分布的能力提升了FCN结构对蓝藻的分割精度。文献[3]提出了SEGNET模型,该模型的上采样操作中使用了包含池化索引的上采样,以降低池化操作导致的信息丢失,此外还使用跳层连接传递低层特征,增加特征中包含的信息量。文献[4]基于FCN提出了UNET结构,并加入了反卷积操作、横向连接以及更多的卷积层,将上采样操作变为可学习的过程,使得从图像特征编码到最后预测结果更加平滑,有效提升分割效果。文献[5]基于UNET加入了条件GAN,利用判别器提供的额外信息来提升UNET对咬翼片的分割精度。文献[6]利用循环GAN中具备的输入与输出能够相互转化的特性对道路场景进行语义分割。文献[7]提出了Deep Lab V3模型,并在模型中加入了空洞金字塔池化模块,通过整合不同尺度的语义信息来提升模型分割的精确度。
图像语义分割问题的目标是对图像中包含每个像素的类别进行准确预测。然而在实际应用场景中,由于对图像中像素点间的关系考虑不充分,导致模型预测出现分割效果不佳以及同一目标中像素点间的类别预测不一致的现象。针对该问题,本文提出一种改进的SEGNET模型,一方面通过改进模型的结构来丰富多尺度语义信息,增强模型对输入图像的表征能力,另一方面在原有模型的基础上加入GAN[8]结构,使模型能够考虑像素点间关系。
1 研究过程与方法 1.1 改进的SEGNET模型现有SEGNET模型在实际使用中对整张图像上像素点类别预测的准确度不理想,这主要是因为SEGNET模型对多尺度语义信息的利用率有限,每个解码器中仅包含一种尺度的语义信息,而多尺度信息是模型对像素点准确分类的重要依据[9-12],缺乏该信息则限制了SEGNET模型效率的提升。
为解决上述问题,本文对SEGNET模型结构进行改进。SEGNET的结构在编码器部分存在多个卷积层,这些卷积层具备捕捉不同尺度特征的能力(即具备不同的感受野),为了使得解码器能够充分利用编码器部分包含的多尺度特征,在SEGNET中加入一条自底向上的通路。首先,编码器中各层特征在自底向上通路与跳层连接的作用下层层递进整合,得到具备多尺度语义信息的特征。然后,将该特征发送至解码器中进行下一步卷积操作。显然,相比原始的SEGNET模型通过跳层连接将编码器中的单尺度特征传递给解码器,自底向上通路的加入使得编码器中包含具有不同尺度语义信息的特征得到了充分利用,每个解码器获得了更加丰富的多尺度语义信息,为后续的解码操作提供信息支撑。
在特征融合的方式上,本文并未使用研究人员通常采用的通道连接(Concatenate)操作。原因在于通道连接操作将大幅提升通道数量,导致参数规模显著增加,该方式耗费成本较大。因此,本文选择FPN[13]的整合方式。对于需要整合的2张特征图,先使用上采样操作(本文中实现的方式为二次线性插值)对较小尺寸的特征图进行调整,以保证尺寸与较大特征图相同,接下来使用1×1卷积对齐2张特征图的通道数,再使用对应元素相加的方式进行整合。相比通道连接(Concatenate)方式,FPN整合方式在整合多尺度语义信息的同时引入的参数数量更少。改进的SEGNET整体结构如图 1所示。
|
Download:
|
| 图 1 改进的SEGNET模型结构 Fig. 1 Improved SEGNET model structure | |
在实际应用SEGNET模型对图像进行语义分割时,通常会出现对图像中同一目标内相邻的像素点预测值不一致的问题,即同属一个目标的像素点类别预测结果中出现了其他类别。这一问题产生的原因在于原始SEGNET模型训练使用的是交叉熵损失函数,这种损失函数在训练过程中仅关注当前点的类别标签,每一张图像反向传播更新参数时所使用的梯度只与预测的点标签(Predict per pixel)与人工标注的真实点标签(Ground truth per pixel)间的差异有关,而并未考虑图像中像素点与像素点间的关系。
在模型中加入生成对抗网络结构,通过该结构能够较好地拟合未知分布的能力来缓解上述问题[14-17]。具体的方法是将改进的SEGNET网络作为生成器,同时使用卷积神经网络构建一个判别器。随机初始化生成器后,使用生成器的输出与人工标注的真实值构成样本对,并利用该样本对判别器进行训练直至收敛。当判别器收敛时就具备了分辨输入来源的能力,而对于生成器的输出,判别器的响应为0,对于人工标记的真实值,判别器的响应为1。接下来使用训练好的判别器对生成器进行训练,此时生成器的目标在于尽可能骗过判别器,生成器将尽量去模仿人工标注的真实值。对于每一个人工标注的真实值,点与点间的相互关系作为帮助人类区分像素点类别的重要性质而受到关注,则生成器在模仿真实值时也会学习关注点与点间的相互关系。在加入生成对抗网络后,模型的整体结构如图 2所示。
|
Download:
|
| 图 2 加入生成对抗网络后的模型结构 Fig. 2 The model structure after adding the GAN | |
训练判别器D采用的损失函数(LD)为二分类交叉熵(Binary Cross Entropy,BCE),其中,
| $ {L}_{D}=\sum\limits_{n=1}^{N}{L}_{\mathrm{B}\mathrm{C}\mathrm{E}}\left(D\right({x}_{n}, {y}_{n})\mathrm{ }, 1)+{L}_{\mathrm{B}\mathrm{C}\mathrm{E}}\left(D\right({x}_{n}, G\left({x}_{n}\right))\mathrm{ }, 0) $ | (1) |
在判别器D训练完成后,将D固定(即暂时固定D中的参数值)并开始训练生成器G,此时的损失函数为:
| $ {L}_{G}=\sum\limits _{n=1}^{N}{L}_{\mathrm{M}\mathrm{C}\mathrm{E}}\left(G\right({x}_{n})\mathrm{ }, {y}_{n})-\lambda \left({L}_{\mathrm{B}\mathrm{C}\mathrm{E}}\right(D\left(G\right({x}_{n})\mathrm{ }, {x}_{n})\mathrm{ }, 0) $ | (2) |
判别器D损失函数中的第一项会使得生成器对单像素点的预测标签尽可能与真实值相同,第二项包含了判别器对于生成器输出G(
模型的最终整体损失函数为:
| $ L=\sum\limits _{n=1}^{N}{L}_{\mathrm{M}\mathrm{C}\mathrm{E}}\left(G\right({x}_{n})\mathrm{ }, {y}_{n})-\lambda \left({L}_{\mathrm{B}\mathrm{C}\mathrm{E}}\right(D\left(G\right({x}_{n})\mathrm{ }, {x}_{n})\mathrm{ }, 0)+ \\ \quad \quad {L}_{\mathrm{B}\mathrm{C}\mathrm{E}}(D\left(G\right({x}_{n})\mathrm{ }, {x}_{n})\mathrm{ }, 1\left)\right) $ | (3) |
需要注意的是,在本文结构中作为生成器模型的SEGNET编码器部分使用了Imagenet[18]预训练模型,在解码器部分使用了Xavier[19]初始化,并未使用经过反向传播训练好的SEGNET。这是因为原始的生成对抗网络在训练中,通常因为判别器的收敛速度总是优于生成器而导致生成器训练过程震荡,模型无法收敛,造成整个生成对抗网络训练失败。相应的如果直接使用训练好的SEGNET作为生成器,那么判别器的训练过程也会出现震荡且无法收敛。使用IMAGENET预训练模型以及Xavier初始化的意义是在判别器的优化曲面上选择了一个较好的梯度下降起始点,同时相对于常使用的随机初始化方式,IMAGENET + Xavier还可有效避免训练初期出现的梯度爆炸或梯度弥散问题,有益于算法的收敛速度和收敛结果。
2 实验过程 2.1 数据预处理本文选择CAMVID[20]数据集进行对比实验,该数据集由剑桥大学收集整理和标注,是一组分辨率大小为960×720的道路街景图像构成,标签类别数统一设置为11类。本文在CCF卫星影像的AI分类与识别竞赛提供的数据(下文简称CCF卫星影像数据集)遥感图像上进行测试,该数据集由高清分辨率遥感影像组成,图像空间分辨率为亚米级,且共包含植被(绿色)、道路(黑色)、建筑(灰色)、水体(蓝色)和其他(白色)5个类别。数据集中包含5幅人工标记的遥感图像,平均尺寸为8 000像素×8 000像素。
为进一步扩充CAMVID数据集的图像数量以防止过拟合,本文在对比实验阶段的所有数据预处理中选择与SEGNET相同的操作对数据集进行增强,主要包括高斯平滑、随机添加噪声点、颜色抖动以及图像的旋转与缩放等,而对测试集与验证集未做数据增强。
由于CCF卫星影像数据集的数据量稀少且计算资源存在限制,本文先对数据集中的5幅遥感影像进行划分,将前4张遥感影像作为训练集,而最后一张作为验证集。接下来将前4张图像切分(允许重叠)为256像素×256像素的图像块,并对得到的图像块添加椒盐噪声、颜色抖动和图像的旋转与缩放等数据增强操作,从而得到10万幅256像素×256像素的图像集合。
2.2 训练过程CAMVID数据集上的对比实验是在Ubuntu 16.0.4环境下进行的,并使用Tesla v100 GPU作为硬件环境,训练过程的批(Batch)选择由8张图像构成,优化器使用了具有自适应能力的Adam优化器,学习率初始值设置为0.000 2,针对学习率使用指数衰减策略,动量系数为0.9,共迭代了9 000轮,在迭代次数为6 000附近时达到了收敛,具体的训练过程如图 3所示。针对CCF卫星影像数据集,在Ubuntu 16.0.4的环境下使用Titan V GPU作为硬件环境,训练过程的Batch设置为16,优化器选择了具备自适应调节步长的Adam优化器,学习率的初始值设置为0.000 2,以562个Batch为一个epoch,共训练了80个epoch,具体的训练过程与图 3相同。
|
Download:
|
| 图 3 训练流程示意图 Fig. 3 Schematic diagram of training process | |
模型的测试阶段中仅使用生成器,并将测试样本送入生成器后得到预测结果。测试过程中为避免出现偏差,调整测试样本的输入尺寸与训练样本尺寸相同,且测试过程中不使用数据增强操作。
3 实验评价标准以及结果分析 3.1 评价标准在图像分割中,通常使用平均像素精度(Mean Pixel Accuracy,MPA)和均交并比(Mean Intersection Over Union,MIOU)这2种衡量指标来衡量算法精度,其中,MPA表示各个类别像素准确率的平均值,MIOU表示语义分割的标准度量,其计算模型预测得到的标注图与人工标注图的交集与并集之比。MPA和MIOU的计算方法分别如式(4)和式(5)所示。
| $ \mathrm{M}\mathrm{P}\mathrm{A}=\frac{1}{\mathrm{C}\mathrm{l}\mathrm{a}\mathrm{s}\mathrm{s}\mathrm{N}\mathrm{u}\mathrm{m}\mathrm{b}\mathrm{e}\mathrm{r}+1}\frac{\sum \mathrm{T}\mathrm{r}\mathrm{u}\mathrm{e}\mathrm{P}\mathrm{o}\mathrm{s}\mathrm{i}\mathrm{t}\mathrm{i}\mathrm{v}\mathrm{e}}{\sum \mathrm{p}\mathrm{r}\mathrm{e}\mathrm{d}\mathrm{i}\mathrm{c}\mathrm{t}\mathrm{C}\mathrm{o}\mathrm{n}\mathrm{d}\mathrm{i}\mathrm{t}\mathrm{i}\mathrm{o}\mathrm{n}\mathrm{P}\mathrm{o}\mathrm{s}\mathrm{i}\mathrm{t}\mathrm{i}\mathrm{v}\mathrm{e}} $ | (4) |
| $ \mathrm{M}\mathrm{I}\mathrm{O}\mathrm{U}=\frac{1}{\mathrm{C}\mathrm{l}\mathrm{a}\mathrm{s}\mathrm{s}\mathrm{N}\mathrm{u}\mathrm{m}\mathrm{b}\mathrm{e}\mathrm{r}+1}\sum \frac{\mathrm{t}\mathrm{a}\mathrm{r}\mathrm{g}\mathrm{e}\mathrm{t}\bigcap \mathrm{p}\mathrm{r}\mathrm{e}\mathrm{d}\mathrm{i}\mathrm{c}\mathrm{t}\mathrm{i}\mathrm{o}\mathrm{n}}{\mathrm{t}\mathrm{a}\mathrm{r}\mathrm{g}\mathrm{e}\mathrm{t}\bigcup \mathrm{p}\mathrm{r}\mathrm{e}\mathrm{d}\mathrm{i}\mathrm{c}\mathrm{t}\mathrm{i}\mathrm{o}\mathrm{n}} $ | (5) |
在CAMVID数据集和CCF卫星影像数据集上,以FCN、DeepLabV2[21]、DeepLabV3、原始SEGNET模型和原始SEGNET+GAN模型作为对比模型,验证本文改进SEGNET模型和改进SEGNET+GAN模型的性能优势。
3.2.1 CAMVID数据集上的实验结果7种模型在CAMVID数据集上的MPA与MIOU实验结果对比如表 1所示。从表 1可以看出,改进SEGNET+GAN模型的MPA与MIOU都超越了原始SEGNET模型、FCN模型和DeepLab V2模型,并且达到了与DeepLab V3相近的效果。
|
下载CSV 表 1 7种模型在CAMVID数据集上的实验结果对比 Table 1 Comparison of the experimental results of seven models on the CAMVID dataset |
原始SEGNET、原始SEGNET+GAN、改进SEGNET和改进SEGNET+GAN模型在CAMVID测试集上对建筑物、树和天空等11种类别图像分割的像素精度如表 2所示。从表 2可以看出,与原始SEGNET模型相比,在加入GAN结构后,模型对建筑物、树、天空和道路等较大目标类别的像素精确度有明显提升,并且加入自底向上通路的改进SEGNE模型得到的提升效果更加均衡,在各个类别上的像素精度都有较大提升。
|
下载CSV 表 2 4种模型在不同类别图像下的平均像素精度 Table 2 MAP of four models in different types of images |
表 3给出了在Tesla V100硬件条件下,5种模型对测试集上的各张图像预测的平均时长。从表 3可以看出,本文改进SEGNET+GAN模型在测试阶段的用时与SEGNET模型较为相近。与DeepLab V2和DeepLab V3模型相比,本文模型在得到更强和相近的分割效果的同时,推理速度更快。这是因为本文模型仅在训练时增加了参数量,在测试时并未有大量参数增加,因此对测试时的推理速度影响较小。
|
下载CSV 表 3 5种模型的平均测试运行时间 Table 3 Average test running time of five models |
为了更加直观地体现加入GAN结构对像素类别一致性的提升效果,本文对原始SEGNET模型与加入GAN结构后的原始SEGNET模型的预测结果进行可视化处理,对比结果如图 4所示(彩色效果见《计算机工程》官网HTML版)。通过对比图 4(b)和图 4(c)可以看出,与传统的SEGNET模型相比,在原始SEGNET模型中加入GAN后,模型对相邻像素间的类别一致性有明显改善,且包含在同一目标中的像素点类别误检率大幅降低。
|
Download:
|
| 图 4 原始SEGNET模型和原始SEGNET+GAN模型在CAMVID数据集上的可视化结果对比 Fig. 4 Comparison of the visualization results of the original SEGNET model and the original SEGNET+GAN model on the CAMVID dataset | |
在Titan V的硬件条件下,5种模型在CCF卫星影像数据测试集上的MPA和MIOU结果对比如表 4所示。通过表 4可以看出,本文模型的效果均优于传统的SEGNET模型和DeepLabV2模型。
|
下载CSV 表 4 5种模型在CCF数据集上的实验结果对比 Table 4 Comparison of the experimental results of seven models on the CCF dataset |
本文对原始SEGNET模型和原始SEGNET+GAN模型的预测结果进行可视化处理,对比结果如图 5所示(彩色效果见《计算机工程》官网HTML版)。从图 5可以看出,原始SEGNET+GAN对道路(黑色)中出现的同属一目标的像素类别不一致现象有所压制,在原始SEGNET预测中出现的建筑被植被包围的错误预测也大幅降低。
|
Download:
|
| 图 5 原始SEGNET模型和原始SEGNET+GAN模型在CCF数据集上的可视化结果对比 Fig. 5 Comparison of the visualization results of the original SEGNET model and the original SEGNET+GAN model on the CCF dataset | |
针对原始SEGNET对同一目标中像素点类别预测结果不一致的问题,本文提出了改进的SEGNET模型。通过在原始SEGNET中加入一条自底向上的通路,以充分利用模型中包含的多尺度语义信息,提升模型单像素的分类准确率。此外,在模型训练过程中引入有助于模型学习联合概率分布的生成对抗结构,解决同一目标中像素点类别预测不一致的问题。实验结果表明,改进的SEGNET模型在CAMVID数据集上取得了相比原始SEGNET模型更优的分割效果。下一步将使用残差网络替换当前骨干网络,并对模型的上采样过程进行改进,以减少上采样过程中引入的噪声,进一步提升模型的分割效果。
| [1] |
LONG J, SHELHAMER E, DARRELL T. Fully convolutional networks for semantic segmentation[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2015: 3431-3440.
|
| [2] |
YANG Shuo, CHEN Lifang, SHI Yu, et al. Semantic segmentation of blue-green algae based on deep generative adversary net[J]. Computer Applications, 2018, 38(6): 1554-1561. (in Chinese) 杨朔, 陈丽芳, 石瑀, 等. 基于深度生成式对抗网络的蓝藻语义分割[J]. 计算机应用, 2018, 38(6): 1554-1561. |
| [3] |
BADRINARAYANAN V, KENDALL A, CIPOLLA R. SegNet: a deep convolutional encoder-decoder architecture for image segmentation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(12): 2481-2495. DOI:10.1109/TPAMI.2016.2644615 |
| [4] |
RONNEBERGER O, FISCHER P, BROX T. U-Net: convolutional networks for biomedical image segmenta-tion[C]//Proceedings of International Conference on Medical Image Computing and Computer-Assisted Intervention. Berlin, Germany: Springer, 2015: 234-241.
|
| [5] |
JIANG Yun, TAN Ning, ZHANG Hai, et al. Bitewing radiography image segmentation based on conditional generative adversarial network[J]. Computer Engineering, 2019, 45(4): 223-227. (in Chinese) 蒋芸, 谭宁, 张海, 等. 基于条件生成对抗网络的咬翼片图像分割[J]. 计算机工程, 2019, 45(4): 223-227. |
| [6] |
LI Zhi, ZAHNG Juan, FANG Zhijun, et al. Road scene semantic segmentation with cycle-consistent adversarial networks[J]. Journal of Wuhan University (Natural Science Edition), 2019, 65(3): 303-308. (in Chinese) 李智, 张娟, 方志军, 等. 基于循环生成对抗网络的道路场景语义分割[J]. 武汉大学学报(理学版), 2019, 65(3): 303-308. |
| [7] |
CHEN L C, PAPANDREOU G, SCHROFF F, et al. Rethinking atrous convolution for semantic image segmentation[EB/OL]. [2020-03-05]. https://arxiv.org/pdf/1706.05587.pdf.
|
| [8] |
GOODFELLOW I, POUGET-ABADIE J, MIRZA M, et al. Generative adversarial nets[C]//Proceedings of the 27th International Conference on Neural Information Processing Systems. New York, USA: ACM Press, 2014: 2672-2680.
|
| [9] |
CHEN Kai, PANG Jiangmiao, WANG Jiaqi, et al. Hybrid task cascade for instance segmentation[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2019: 4974-4983.
|
| [10] |
KIRILLOV A, GIRSHICK R, HE K, et al. Panoptic feature pyramid networks[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recogni-tion. Washington D.C., USA: IEEE Press, 2019: 6399-6408.
|
| [11] |
KENDALL A, BADRINARAYANAN V, CIPOLLA R. Bayesian segnet: model uncertainty in deep convolu-tional encoder-decoder architectures for scene under-standing[EB/OL]. [2020-03-05]. https://arxiv.org/pdf/1511.02680.pdf.
|
| [12] |
ZHAO Hengshuang, SHI Jianping, QI Xiaojuan, et al. Pyramid scene parsing network[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2017: 2881-2890.
|
| [13] |
LIN T Y, DOLLAR P, GIRSHICK R, et al. Feature pyramid networks for object detection[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2017: 2117-2125.
|
| [14] |
MIRZA M, OSINDERO S. Conditional generative adversarial nets[EB/OL]. [2020-03-05]. http://de.arxiv.org/pdf/1411.1784.
|
| [15] |
CAI Z, VASCONCELOS N. Cascade R-CNN: Delving into high quality object detection[C]//Proceedings of 2018 IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2018: 6154-6162.
|
| [16] |
ZHANG Wenkai, SUN Hao, SUN Xian, et al. Image set visual summarization based on MFF-GAN[J]. Computer Engineering, 2019, 45(2): 202-206. (in Chinese) 张文凯, 孙皓, 孙显, 等. 基于MFF-GAN的图像集视觉总结[J]. 计算机工程, 2019, 45(2): 202-206. |
| [17] |
LIU Qikai, JIANG Daihong, LI Wenji. Generative adversarial network based on piecewise loss[J]. Computer Engineering, 2019, 45(5): 155-160, 168. (in Chinese) 刘其开, 姜代红, 李文吉. 基于分段损失的生成对抗网络[J]. 计算机工程, 2019, 45(5): 155-160, 168. |
| [18] |
DENG J, DONG W, SOCHER R, et al. Imagenet: a large-scale hierarchical image database[C]//Proceedings of 2009 IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2009: 248-255.
|
| [19] |
GLOROT X, BENGIO Y. Understanding the difficulty of training deep feedforward neural networks[C]//Proceedings of International Conference on Artificial Intelligence and Statistics. Washington D.C., USA: IEEE Press, 2010: 249-256.
|
| [20] |
BROSTOW G J, FAUQUEUR J, CIPOLLA R. Semantic object classes in video: a high-definition ground truth database[J]. Pattern Recognition Letters, 2009, 30(2): 88-97. DOI:10.1016/j.patrec.2008.04.005 |
| [21] |
CHEN L C, PAPANDREOU G, KOKKINOS I, et al. DeepLab: semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected CRFs[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 40(4): 834-848. |
2021, Vol. 47
