赞
踩
sctnet是由华中科技大学和美团联合2024年发表在AAAI上的一篇文章。他达到实时语义分割的新sota。
实时语义分割本质仍是语义分割,但是他追求高的推理速度。目标是可以实时部署在cpu上。
现有的几种实时语义分割网络结构:
(a)a这种方法是双边网络,如BiSeNet,他讲网络分为两个支路,分别是Spatial Path和Context Path。图(a)左边的支路是Context Path既语义分支,他最后1/32的特征图有更大的感受野,从而有更丰富的语义信息,而右边的支路为Spatial Path既空间信息分支,他的网络较浅,特征图大小是原图片的1/8,保留更多的空间信息。最后的FM模块是Feature Fusion Module模块,特征融合模块用于融合CP和SP提供的输出特征。
(b)b这种网络先对图像进行1/2、1/4和1/8的下采样,再分别用两个分支进行处理,和(a)结构类似,左边为语义分支,右边为空间分支,FM模块就是将左边语义分支的特征图经过上采样,激活函数处理,再与右边分支的特征图相乘。进一步致力于增强提取丰富远程上下文的能力或降低空间分支的计算成本,最终得到输出。
(c)c就是本文提出的单分支网络架构,他整体使用蒸馏模型。用sgeformer作为teacher模型,因为segformer显著的远程上下文建模能力,在训练时才使用teacher模型,不需要额外的分支和昂贵的推理融合模块。有效地提取信息,避免了双边网络带来的巨大计算量。SIAM是语义对齐模块,其实就是一个CWD损失函数。
下面我们仔细介绍他的网络结构。
上面的分支为CNN分支,总共分为4个stage。下面的分支为teacher分支,具体来说是segformer模型,首先得在segformer上训练数据集。然后再使用SCTnet训练。图片输入Stem模块和stage1后,使得高宽缩减到原来的1/4.,通过stage2,高宽缩为1/8,通过stage3,高宽缩为1/16,stage3后接一个下采样,高宽缩为1/32。
CF BlockM模块
为了减少transformer和CNN之间的语义差距,作者精心设计了一个类似transformer的CNN块,称为CFBlock,也就是一个卷积自注意模块。
他和transformer的encoder模块类似,不同点在于他使用Convolution Attention代替了self Attention。
他将特征图又经过两个分支,上面与Key1相乘,在通过组归一化,再与value1相乘,下面也类似,最后将上下两支路相加,输出。
源码中key1,key2实现就是生成两个可训练参数的tensor。后边将这两个key转置就能得到相应的value。
SIAM模块
是语义信息对齐模块,用于训练过程中的特征学习,如结构图所示。它可以分为主干特征对齐和共享解码器头部对齐。
主干特征对齐模块将stage3和stage4的特征上采样以进行对齐。然后将CNN的特征投影到segformer的尺寸上,进行损失计算。
共享解码器头部对齐模块他将stage2和stage4concat拼接后输入到segformer的解码头中得到最后的输出logits和输出特征图来进行损失计算。
Alignment Loss
对齐损失采用cwd损失函数。式中C为通道数,H*W为空间位置。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。