简介
AttaNet主要由两个模块组成:条状注意力模块(SAM)和注意力融合模块(AFM)。对低精度分割任务图像的观察得出,垂直条带面积明显大于水平条带面积,SAM利用条带化操作,在保留大部分上下文信息的同时,大幅降低了垂直方向全局上下文编码的复杂性,与非极大值方法相比。AFM采用跨层次聚合策略限制计算量,融合时采用注意策略对每个像素的不同层次特征的重要性进行加权,获得高效的多层次表示。我们在两个语义分割基准上进行了广泛的实验,我们的网络在城市场景上实现了不同程度的速度/准确性权衡,例如71 FPS/79.9% mIoU, 130 FPS/78.5% mIoU和180FPS/70.1% mIoU,并在ADE20K上取得领先的性能

【语义分割论文】——AttaNet:strip pooling的进化,快又好_语义分割

整体网络框架
【语义分割论文】——AttaNet:strip pooling的进化,快又好_语义分割_02
为了保证推理速度的要求,网络上采用VGG式结构,区别于HRNet类的网络,和Unet类网络,直接是backbone+AFM+SAM然后从1/16的特征维度直接上采样到原始尺寸。同时,为了速度的限制,网络中大部分使用128, 64的通道数。所以才能做到速度那么快

条状注意力模块
【语义分割论文】——AttaNet:strip pooling的进化,快又好_语义分割_03
感觉像是strip pooling池化方式的进化。整体流程可以看上图。K经过strip pool之后,得到一个N × W的注意力矩阵,去掉了H方向,大幅降低了垂直方向全局上下文编码的复杂性。注意力矩阵N×W和V:W×C,得到N×C,再用一个残差链接得到最后的输出。

这里可以对比strip pool进行对比。
【语义分割论文】——AttaNet:strip pooling的进化,快又好_AAAI2021_04

基于注意力的融合模块
【语义分割论文】——AttaNet:strip pooling的进化,快又好_Attanet_05
该模块主要解决的是特征融合的问题。知乎上有一篇文章讨论的比较深刻:语义分割-多层特征融合。AttaNet是采用Global注意力机制计算一种融合权重。个人认为是SFNet中光流模块的一种简化。光流模块是对每个点用两个偏移量,Attanet则是对每个通道计算一个融合权重。光流模块更加细腻,Attanet更加大。(考虑起来的话,SFNet的方式更细腻,应该更好。但是,光流模块那么多参数,采用网络回归的方式,肯定不能做到每个点都准确的,Attanet的方式不一定比SFNet差
【语义分割论文】——AttaNet:strip pooling的进化,快又好_Attanet_06

结果
可以看到在保证精度的条件下,速度是真的快。
【语义分割论文】——AttaNet:strip pooling的进化,快又好_strip pool_07
提取的两个改进模块的效果
【语义分割论文】——AttaNet:strip pooling的进化,快又好_strip pool_08