孙红,杨晨,莫光萍,朱江明
(上海理工大学 光电信息与计算机工程学院,上海 200093)
语义分割是计算机视觉中的一个重要研究领域,它通过对图像执行像素级标签预测实现分割目标。近年来,语义分割在彩色图像分割等领域都受到广泛关注[1-3],这些应用领域对能够实时运行的场景理解系统要求很高,不仅需要具有低能耗和低内存的竞争性能,而且对模型的实时性有严格的要求。因此设计一个用于实时语义分割的高效神经网络成为一个具有挑战性的问题。
近年来许多实时语义分割领域的优秀研究工作试图在准确性、轻量级和高速率之间达到平衡。Paszke 等[4]提出了一种高效的实时语义分割网络ENet,通过通道裁剪实现了一个紧凑的编码器解码器框架,但是该模型的感受野太小,无法捕捉到大物体的特征信息,导致分割精度的损失。为了提取多尺度的上下文信息,Mehta 等[5]提出了高效空间金字塔网络ESPNet,采用高效空间金字塔模块和卷积分解策略。图像级联网络ICNet[6]使用3 个级联分支来高效处理图像,以推理速度的降低为代价提升分割精度。ERFNet[7]通过编码器阶段的轻量化来提取特征信息,虽然提升了分割精度,但推理速度大幅下降。此外,许多研究工作在网络结构方面作出了很多努力。Ronneberger 等[8]使用了对称的编码器–解码器结构,其策略是合并相应阶段的特征图,然而这种网络会带来巨大的额外计算成本。文献[9-11]采用双分支结构,在编码器阶段分别进行语义信息和空间信息的提取,最后在预测前使用特征融合的方法整合特征,但是这种方式仍然缺乏2 个分支之间的交互,所以还有很大的改进空间。
针对上述出现的问题,本文提出一个基于双分支特征提取的实时语义分割网络(TBFENet)。本文主要的工作和创新点如下:
1)双分支由语义信息分支(SIB)和空间细节信息分支(SDI)组成,语义信息分支具有对称的编码器–解码器结构,可以有效地提取深层语义信息;空间细节信息分支能很好地保留没有下采样操作的浅层边界细节。
2)在语义信息分支设计一个非对称残差模块(ARM),自适应地融合注意力特征,提升模型分割的准确性;在空间细节分支提出一种空间特征提取模块(SFM),以更好地获得浅层空间特征,补偿语义信息分支中丢失的空间信息细节,同时在双分支使用深度可分离卷积实现轻量化。
3)为了提高融合特征的表示能力,使用特征融合模块(FFM)来有效地融合来自语义和空间级别上的图像特征,增强网络对全局和局部特征信息的提取能力,提高网络整体分割效果。
整个网络结构可以分为3 个部分:初始块、双分支主干和特征融合模块。完整的网络结构如图1 所示。
图1 整体网络框架Fig.1 Overall network framework
初始块包括3 个3×3 卷积层,将第1 个卷积层的步幅设置为2 来收集初始特征。为了更好地保留空间特征信息,只在初始块中执行一次下采样操作。本文通过将初始块作为2 个分支的分界点,使语义和空间信息部分相关,便于后续的特征融合。双分支主干由语义信息分支(SIB)和空间细节信息分支(SDI)组成。为了减少模型的参数,在语义信息分支的深度可分离卷积层中采用空洞卷积来扩大感受野提取特征信息,同时在空间细节信息分支使用特征提取模块(SFM),以较小的计算成本最大程度地保留空间细节。此外,在语义信息分支的不同阶段使用通道注意力来增强通道之间的长距离依赖关系。为了弥补SIB中丢失的空间细节信息,使用空间注意力模块生成注意力图来关注有用的空间信息,而忽略空间细节分支中的噪声等无用信息。最后在2 个分支的末尾使用特征融合模块(FFM)来增强语义和空间双分支的特征融合。
轻量级网络见证了许多残差模块设计,其中图2a 为基础的残差设计。此外,如图2b 所示,LEDNet[12]的SS–nbt(Split-shuffle-non-bottleneck)中所展现的通道分割和通道混洗操作。尽管LEDNet 在性能和速度之间取得了相对令人满意的平衡,但仍有一定的提升空间。受这些残差设计的启发,本文设计了高效的非对称残差(ARM)模块,利用非对称残差模块的共同优点,在计算能力有限的情况下获得更好的结果。非对称残差模块如图2c 所示。首先在瓶颈处通过1×1 卷积减少输入通道数。1×1 卷积后是双分支结构。一个分支使用分解卷积收集局部特征信息,另一个分支采用空洞卷积进一步扩大深度分离卷积的感受野,以捕获复杂和远程的特征信息。此外通过在不同的不对称残差模块中使用不同的膨胀率来降低网格化伪影的影响。
图2 残差模块对比Fig.2 Comparison of various residual modules
为了实现不同分支之间的信息共享,将特征交互操作放在只含分解卷积(3×1 和1×3 卷积)分支和添加膨胀卷积分支之间,这样2 个分支提取的上下文信息可以相互补充。然后将来自2 个分支的特征图分别发送到通道注意力模块,以更好地提取判别特征。再将通道注意力模块的输出注入2 个分支中进一步提升模块的特征提取能力。之后将2 个分支提取的特征信息经过一个1×1 的逐点卷积,恢复相关通道的特征图后融合并馈送到通道注意力模块中。最后使用通道混洗对双通道特征信息进行进一步交换和共享,减少深度卷积导致的通道间信息独立的影响。上述操作可以表示如下:
式中:xARMin和yARMout为ARM 模块的输入和输出;xo为3×3 卷积的输出;yo1和yo2为ARM 模块中第1 轮特征交互2 个分支的输出;y'o1和y'o2为ARM模块中第2 轮特征交互2 个分支的输出;Cm×n为核大小为m×n的卷积运算;D为可分离卷积;R为膨胀卷积;CS( )为通道混洗操作。
本文使用非对称残差模块构建了一个深度语义信息分支,这样既保证了能捕获到更多的语义信息,得到更大的感受野,同时又保证了参数的数量和计算成本非常低。非对称残差模块在不同阶段具有不同的表示能力:在网络浅层保留了丰富的空间信息,例如边缘和角落;而在网络深层阶段具有足够的语义一致性,但预测比较粗略。因此,在分支的不同阶段,在不对称残差模块中设置不同的空洞卷积率。将第1 个到第5 个ARM 块中非对称残差模块数量分别设置为{1,2,3,4,5}。每个模块的扩张率分别依次设置为r={1}、r={1,2}、r={1,2,5}、r={2,5,7,9}、r={2,5,7,9,17}。
本文在非对称残差模块和语义信息分支中都使用通道注意力模块(CAM)来强调需要突出显示的特征。同时该方法可以抑制干扰噪声,有利于特征提取。本文采用的通道注意力来源于ECANet[13],它只占用很少的计算资源,但相比之下明显提升了分割效果。CAM 使用全局平均池化来获取全局上下文,并生成注意力图来指导特征提取,计算成本可以忽略不计,这是提高模型性能的好方法。该过程可以表示为式(7)。
式中:T表示张量维度的压缩、转置和扩展操作;fK×K表示卷积核大小为K的标准卷积;CA(F)是通道注意力输出;F表示输入特征;AvgP( )表示平均池化操作;δ表示Sigmoid 激活函数。
受ERFNet 中下采样模块的启发,本文使用的下采样模块有2 个替代输出,一个是步长为2 的3×3卷积,另一个是步长为2 的2×2 最大池化。如果输入通道的数量大于或等于输出通道的数量,下采样模块使用单个3×3 卷积。否则利用最大池化操作将这2 个分支的连接形成最终的下采样输出。具体过程如图3 所示。
图3 下采样模块Fig.3 Downsampling module
在语义信息分支的处理过程中,空间信息不可避免地会丢失。原因是深层语义信息的提取与浅层边界信息的保留是一对矛盾的关系。为了解决这个问题,本文设计了空间细节分支,它实际上是对语义丢失的细节信息的补充信息分支,以帮助模型在预测过程中实现更好的准确性。与深度语义信息分支不同,在这个分支中只使用了一个简单有效的空间特征提取模块(SFM)和一个空间注意力模块。SFM是专门为补充语义分支中丢失的细节而设计的,如图4 所示。它由3 个3×3 的卷积层和一个1×1 的逐点卷积层组成。为了获取更多的特征信息,将第 2和第 3 卷积层的通道数增加到原始输入的 4 倍(4C)。最后使用一个1×1 的卷积层再将通道数减少到C,该操作可以去除冗余特征并提取有效特征。为了减少参数数量和计算成本,将后面的2 个3×3卷积层替换为深度可分离卷积,因此空间特征提取模块可以以较少的参数和计算成本提取丰富的浅层空间特征。
图4 空间特征提取模块Fig.4 Spatial feature extraction module
空间注意力模块用于提取和保存整个模型的浅层空间特征信息。空间特征提取模块输出的特征图作为输入,通过最大池化和平均池化进行池化处理,然后将池化后的结果进行融合后经过一个卷积层将双通道的特征信息降维为一维特征信息,经过激活函数生成空间注意力特征图。空间注意力的过程如式(8)所示。
式中:f7×7为卷积核大小为7 的标准卷积;SA(F)为空间注意力特征图;F为输入特征;Concat[]为连接操作;AvgP( )为平均池化操作;MaxP( )为平均池化操作;δ为Sigmoid 激活函数。
如何有效地整合语义分支和空间分支的信息是双分支结构的关键问题。最广泛使用的方法是直接按元素添加或者直接连接它们。但是这些方法忽略了2个分支提供的功能之间的差异。为了解决这个问题,本文使用了由注意力机制驱动的方法[14]构建特征融合模块。该方法不仅可以捕获跨通道信息,还可以获取方向和位置感知信息,最重要的是它的计算成本较小,这意味着更少的参数可以换取更多的收益。
特征融合模块通过2 个过程实现对通道关系和远程依赖进行编码:坐标信息嵌入和坐标注意生成。特征融合模块(FFM)的结构如图5 所示。给定一个输入X∈RC×H×W,使用池化内核的2 个空间维度(1,W)和(H,1)分别沿水平坐标和垂直坐标对每个通道进行编码。高度h处的第c个通道的输出可以表示为式(9);长度为w的第c个通道的输出见式(10)。
图5 特征融合模块Fig.5 Feature fusion module
上述2 个变换分别沿2 个空间方向聚合特征,产生一对方向感知特征图。这2 个转换使用注意力模块一个沿空间方向捕获远程依赖关系,另一个沿空间方向保留精确的位置信息。由给定式(9)和式(10)的步骤生成聚合特征图,首先将它们连接起来,然后将它们发送到一个共享的1×1 卷积变换函数f1×1,具体过程如式(11)所示。
F=δ(f1×1(Concat[zh,zw])) (11)
式中:Concat[,]为沿空间维度的连接操作;δ为非线性激活函数;F∈RC/r×(H+W)为在水平方向和垂直方向2 个方向上编码空间信息获得的中间特征图;r为用于控制块大小的缩小率。将F沿空间维度拆分为2 个单独的张量fh∈RC/r×H和fw∈RC/r×W。使用2 个1×1 卷积变换分别将fh和fw分别变换为与输入X具有相同通道数的张量,具体过程见式(12)—(13)。
为了降低模型的复杂性,将缩小率r设置为32来减少F的通道数。然后将gh和gw分别用作注意力权重,通过该方法可以将2 个分支的特征充分融合,同时在通道和空间方向下自适应突出特征信息。最终得到坐标注意块的输出,见式(14)。
整个网络结构主要可分为3 个部分:初始块、双分支主干和特征融合模块。完整的网络结构见图1,详细的网络结构组成见图6。语义信息分支SIB 为编码器–解码器结构,而在空间细节分支SDI 中空间特征提取模块SFM 完成了“编码–解码”的过程。在图6 中体现为空间细节分支的整个过程对应语义信息分支的编码器过程,最终2 个分支输出相同尺寸的特征图。
图6 双分支特征提取网络细节Fig.6 Details of two-branch feature extraction network
本文提出的模型将会在公开数据集Camvid 和Cityscapes 上进行分割效果和推理速度的实验,采用的评价指标分别为类交并比(class IoU)、均交互比(mIoU)、帧率(FPS)、参数量(parameters)。mIoU的计算公式如式(15)所示。
式中:pij表示将i预测为j,为假负(FN);pji表示将j预测为i,为假正(FP);pii表示将i预测为i,为真正(TP)。
本文使用PyTorch 深度学习框架实现训练,所有的实验都是在单块RTX2080Ti GPU 上执行的。对CamVid 数据集进行训练时,由于输入分辨率不同,采用Adam优化器训练神经网络,batch_size 设置为8,权重衰减设置为2×10−4,此外将初始学习率设置为1×10−3。对于Cityscapes 数据集,通过随机梯度下降的方法来训练本文提出的算法。batch_size 设置为4,权重衰减设置为1×10−4,初始学习率配置为4.5×10−2,超参数momentum 设置为0.9。为了保证实验结果具有可对比性,本文所有实验均使用CrossEntropy 损失函数,采用poly 学习策略来动态调整学习率。
Camvid 是一个从驾驶汽车角度拍摄的街景数据集,它总共包括701 张图片,其中367 张图片用于训练,101 张用于验证,233 张用于测试。这些图像的分辨率为960×720,共有11 个语义类别,在训练前将这些图片尺寸调整为360×480 的大小。
Cityscapes 是一个城市景观数据集。它包含5 000张精细标注和20 000 张粗标注图像。该数据集是从50个不同城市在不同季节和天气中捕获的。对于精细标注集,它包含2 975 张训练图像、500 张验证图像和1 525 张测试图像。原始图像的分辨率为1 024×2 048。整个数据集包含19 个类别,在训练前将这些图片尺寸调整为512×1 024 的大小。
为了验证本文提出的网络的可行性和有效性,对各个模块的结构细节和分割效果在Camvid 数据集上进行对比实验。在未加入其他模块的情况下,保证网络其余结构参数不变进行消融实验,最终结果如表1 所示。
表1 消融对比实验Tab.1 Ablation contrast experiment
2.3.1 通道注意力
从表1 实验的前2 行可以看出,如果不使用通道注意力模块,网络的预测结果会更差。CAM 可以提升网络0.68%的分割精度,而计算成本几乎没有增加。实验证明了通道注意力模块的添加增强了网络的特征提取能力。
2.3.2 特征融合
特征融合方法一直是多语义特征聚合的重点研究课题,其中“添加”和“连接”操作是使用最广泛的方法。在表1 中提供“Add”“Concat”和FFM 的比较。根据表格第6 行可知,FFM 达到了70.13%的局部最佳性能,分别比“添加”和“连接”操作高出 1.01%和0.57%。与“Add”操作相比,特征整合模块只增加了极少的参数(0.001 8 M)。此外,与“Concat”直接连接操作相比,FFM 以更少的参数实现了更好的分割结果,在不增加模型复杂度的情况下有效提升模型的性能。
2.3.3 空间注意力
空间注意力机制(SA)的添加使得网络的分割准确率提升了0.45%,达到了70.58%的最佳性能,而增加的参数量几乎可以忽略不计。说明浅层空间的特征信息提取对网络性能的提升有很大的作用。
2.3.4 扩张率
如表1 实验第4 部分所示,本文设计了3 个实验来验证非对称残差模块中空洞卷积率的设置对模型分割精度的影响。首先将第1 个到第5 个ARM 块中将非对称残差模块数量分别设置为{1,1,2,2,4},每个模块的扩张率分别依次设置为r={1,1,2,1,2,2,5,7,9,17};第2 和第3 个实验将非对称残差模块的重复次数都分别设置为{1,2,3,4,5},其中将第2 个实验的扩张率依次设置为r={1,1,2,2,5,1,1,2,2,4,4,8,8,16,16},第 3 个实验的扩张率设置为r={1,1,2,2,5,1,2,5,7,9,2,5,7,9,17}。得益于模型框架的优异性,TBFENet 在第1 个实验中仅用0.52 M 参数就取得了65.75%的分割准确性。增加非对称残差模块后实验结果显著提升,证明更多的ARM 模块可以提升性能,而空洞卷积的使用进一步增强了网络的特征提取能力。在第3 个实验中实现了70.58%的最优分割结果。
为了进一步验证本文网络的分割性能,在CamVid 测试数据集上提供了与其他优秀分割方法的定量比较,实验结果如表2 所示。根据表2 可以明显看出,与类似模型大小的方法相比,本文分割网络达到了最佳的分割效果,均交互比达到了70.5%。虽然在参数量表现上不如DABNet[15],但在分割精度上高出DABNet 4.0%。相比于LEDNet,本文模型得益于空间细节信息的保留分割更加精确。与其他大型模型相比,本文网络以更少的参数取得了最优的分割结果。在推理速度方面,本文模型推理速度达到了107 帧/s。本文模型在实现轻量化的同时分割准确性表现依旧出色。充分证明本文网络在准确性和效率之间取得了很好的平衡。为了更清晰地体现本文模型在Camvid数据集上分割的效果,将本文模型得到的语义分割掩码,并与其他优秀网络模型进行对比,对比效果如图7所示。通过图7 中本文网络分割图圈出的部分可以明显看出,本文模型在边界细节特征信息的提取明显优于DABNet 和BiseNet v2 模型在边界细节特征信息的提取,充分证明空间特征提取模块的有效性。
表2 Camvid 数据集测试结果对比Tab.2 Comparison of Camvid dataset test results
表3 中提供了在Cityscapes测试数据集上与其他最先进的图像语义分割方法的定量比较。根据这些实验结果可以发现,当使用更少的参数时,本文网络可以实现更好的准确性和更快的运行速度。与本文方法具有相似数量参数的模型达不到相同的实时效果,即使实时效果更优,在分割精度上也大幅落后于本文算法。具有相同分割和实时效果的模型往往需要更多的参数运算。从参数量的角度看,ENet、ESPNet、CGNet[21]、NDNet[22]的参数量较少,但它们的分割精度分别比本文网络的低16.8%、14.9%、10.8%和10%,这在分割领域是一个很大的差距。本文算法的参数数量最多只比上述网络的多0.55 M,相对于分割精度的提升,参数量的增加是在可接受范围之内的。从实时性的角度来看,本文算法推理速度达到了97 帧/s,满足实时处理街景画面的条件。就均交互比来说,本文模型取得了75.1%的最好分割效果,本文模型不仅在分割准确性上大幅领先其他优秀网络,在网络轻量化层面,参数数量也仅有0.91 M,与分割效果较好的BiseNet v2相比,参数量仅约为BiseNet v2 的1/50。本文模型参数较少但推理速度较慢的原因是在网络中使用了注意力机制,而这些注意力机制会带来一些计算开销,导致推理速度变慢,但这些性能损失是在可以接受的范围之内的。
表3 Cityscapess 数据集测试结果对比Tab.3 Comparison of Cityscapess dataset test results
此外在表4 中提供了城市景观的所有类IoU(%)的结果。本文算法在13 个类别中的分割精度领先于其他优秀网络在13 个类别中的分割精度,而在交通标志类(Tsi)和自行车(Bic)类分割准确性只比最佳模型略低了0.2%。通过实验证明了本文算法在模型的准确性、模型大小和推理速度之间实现了最佳平衡。
表4 Cityscapes 类别分割精度对比实验Tab.4 Comparative experiment on segmentation accuracy of Cityscapes
本文提出了一个用于彩色图像分割的双分支特征提取网络。本文算法主要侧重于在分割精度、模型参数和推理速度之间取得较好的平衡。实验证明,本文提出的非对称残差模块通过深度可分离卷积和空洞卷积在减少参数计算的情况下扩大感受野,全面地提取语义信息。语义信息分支和空间细节分支可以分别提取深层语义信息并保留各边界细节。本文模型在只有0.91 M 参数的情况下,在Cityscapes 数据集上以97 帧/s 速度实现75.1%的最佳分割准确性,在Camvid 数据集上以107 帧/s 的速度取得了70.5%的最优分割效果。通过大量实验证明本文模型在准确性和效率之间取得了较好的平衡。