魏鹏磊,雷菊阳
(上海工程技术大学 机械与汽车工程学院,上海 201620)
常见的基于深度卷积神经网络的模型,如FCN[1]、Deeplab v3[2]、SegNet[3]等在传统语义分割任务上有着很好的效果,但是对于城市道路场景的分割仍然难以达到理想的状态。随着Transformer在NLP 领域表现优异性能之后,越来越多的人尝试将其应用在CV 领域,并取得了可观进步。继ViT[4]之后,出现了很多Transformer 运用在CV 各个任务上的工作,而Swin Transformer[5]是第一个备受青睐的可以在下游任务中使用的纯Transformer 结构的方式,但却有着如下缺点:参数量过大、显存占用高、训练时间长。究其原因,下游任务,如语义分割是高密度预测任务,对于分割精度要求很高,从而使得训练参数量巨大,增加了训练成本。故本文在SwinT的基础上改进了网络结构,可以明显加快训练速度,也可以很好地定位分割边界。其次,针对特征信息学习不充分问题,传统做法为通过设置不同参数的卷积层或池化层,先提取到不同尺度的特征图,再将这些特征图送入网络做融合。但是由于图像金字塔的多尺度输入,在计算时需要保存大量梯度,故对硬件的要求很高。而本次研究是将网络进行多尺度训练,在测试阶段进行多尺度融合,这样可减少参数和内存占用,且由于引入多尺度信息,可以更好地定位分割边界,提高了网络性能。
本文使用Pascal VOC 2012 扩增数据集做基础研究,Cityscapes 数据集做进一步验证。
Pascal VOC 挑战赛是一个世界级的计算机视觉挑战赛。Pascal VOC 挑战赛整体上可分为如下几类:图像分类、目标检测、目标分割、行为识别等。在Pascal VOC 数据集中主要包含20 个目标类别和1 个背景类别。
对于图像语义分割,Pascal VOC 2012 中共有训练集图像1 464 张、验证集图像1 449 张、测试集图像1 456张,但是对于语义分割,特别是基于Transformer 骨干网络而言,拥有大量的数据是很有必要的,所以本文使用了Pascal VOC 的扩增数据集,共有训练集图像10 582张。
另外,在语义分割中对应的标注图像(.png)用PIL的Image.open()函数读取时,默认是P 模式(调色板模式),即一个单通道的图像。在背景处的像素值为0,目标边缘处用的像素值为255,目标区域根据目标类别的类别索引信息进行填充,如图1所示,人对应的目标索引是15,所以目标区域的像素值用15 填充。具体调色板信息见表1。
图1 P 模式下的标签图Fig.1 Label map in P mode
表1 不同类别的索引值Tab.1 Index values for different categories
Cityscapes 数据集于2016 年发布,在自动驾驶领域是权威且热门的语义分割数据集之一,该数据集含有国外50 个道路场景的高分辨率图像,其中精细标注图像共有5 000张,粗略标记图像共19 998张,为保证能够最大限度地获取充足的数据信息。本文使用含粗略标注和精细标注数据集24 998张,共分为建筑、行人、天空等19 个类别。
基于Transformer 网络架构相对于深度卷积神经网络更容易出现过拟合现象,除需对网络中的模型结构进行优化外,拥有大量的数据也能够减少过拟合的发生,故考虑对图像进行预处理。本文的数据扩增操作是在OpenCV 上完成的,包括对图像进行-10°~10°的旋转、随机裁剪crop_size的0.5~2倍、随机水平翻转以及模糊图像等操作。
本文算法是由2 个路径组成的,分别是编码器提取路径与解码器提取路径。其中,编码器块是在Swin Transformer 的基础上改进后得到的,不仅加快了训练速度,而且也缓解了过拟合。解码器块中的Prediction Head 则是基于ASPP+模块,考虑通过利用跳跃连接以及捷径分支优化模块结构,使其可以更好地解决目标多尺度的问题。具体来说,是以改进后的Swin Transformer 模型SwinLab 为骨干网络,再对ASPP 模块进行优化,并构建模块ASPP+,使ASPP+可以多尺度理解上下文信息的能力。整体模型通过3 个阶段构建不同大小的特征图,且又在SwinT 的基础上剔除掉Patch Partition 和Linear Embeding 模块,并添加1 个和后2 个阶段同样的Patch Merging 层进行下采样。网络总体模型结构如图2 所示。
图2 网络总体模型结构Fig.2 Overall model structure of the network
编码块是有2 个结构,一个使用了W-MSA 结构,另一个使用SW-MSA 结构。一般情况下,这2 个结构是成对使用的,先使用W-MSA 结构,而后使用SW-MSA 结构,具体编码器模型如图3、图4 所示。
图3 编码器结构图Fig.3 Encoder structure diagram
图4 MLP 结构图Fig.4 MLP structure diagram
解码块包括ASPP+模块和Prediction Head 模块。ASPP+在ASPP 的基础上摒弃了膨胀系数为36的空洞卷积层,并采用自适应平均池化层,即共有4个并行分支,分别为1 个1×1 卷积层、3 个3×3 空洞卷积层,以及1 个自适应全局平均池化层,该层目的是可以增加1 个全局上下文信息。其中,使用concat方法对4 个并行分支进行拼接之前,先利用自注意力机制对不同分支获得的信息进行注意力处理,这样有利于不同特征信息的融合,而虚线部分的捷径分支则使用1×1 卷积核进行维度处理。对于Prediction Head 模块来说,得到ASPP+模块的输出后,添加一个跳跃连接残差模块[6],其后续接一个Layer Norm层,再通过一个1×1 卷积层来融合信息。Prediction Head 通过双线性插值的方法还原输入图像的尺寸大小[7],网络模型细节如图5 所示。
图5 解码器结构图Fig.5 Decoder structure diagram
在Pascal VOC2012 数据集和Cityscapes 数据集上的分割效果如图6、图7 所示。图6、图7中,从(a)到(d)分别是原图、标签、DeepLabv3 预测图以及SwinLab 预测图。
图6 Pascal VOC2012 数据集Fig.6 Pascal VOC2012 dataset
图7 Cityscapes 数据集Fig.7 Cityscapes dataset
针对道路场景识别任务,本文提出了一种基于Transformer 的SwinLab 模型架构。该网络架构增强了网络在多尺度下多类别分割时的鲁棒性,同时使用不同的采样比例与感受野提取特征,使其可以在多个尺度上捕获上下文信息。实验结果表明,基于Transformer 构建的SwinLab 模型网络相比于传统基于深度卷积神经网络的语义分割模型,效果,及性能均获提升,虽不及SOTA,但在Pascal VOC2012 数据集上mIoU可达80.1,在Cityscapes 数据集上也有不错的效果。除此之外,本文重点关注的训练速度也得到了显著改善,对于后续的研究有着实际参考意义。另外,本文使用的显卡为单张英伟达最新3090显卡,再加上网络性能指标与实验环境有较大的相关性,故理论上本文所构建网络的性能仍然有较大可提升的空间。