摘要 1. bisenet是流行的实时分割双流网络,但是其:
- 基于从其他图像分类的主干预训练模型开始训练,对于图像分割可能效率不高
- 使用额外的网路层获取空间信息编码,耗时长
- 在解码器中使用了一个细节聚合模块,以单流的方式将学习到的空间信息集成到底层。
- 最后,融合底层特征和深度特征预测得到最终分割结果。
- 实时语义分割
- DFANet[18]和BiSeNetV1[28]选择了轻量级的骨干,使用特征融合或者聚合来提升准确性。这些模型都基于图像分类任务的轻量级主干进行训练,可能存在任务差异性设计的不足,对图像分割的结果产生一定影响。
- 限制图像的输入分辨率大小,会使得模型容易忽略边界和小物体的细节信息。
- BiSeNet采用双流框架,聚合底层细节以及高层语义信息,但是这种额外增加路径的方式耗时较高,且辅助路径缺乏底层的信息引导
- 本文提出了一种新的手工设计的网络,具有更快的推理速度,可解释的结构以及更好的性能。
- STDC模块(short - density Concatenate module),利用少量的参数得到不同的可扩展接收域。
- 然后,将STDC模块无缝集成到U-net架构中,形成STDC网络
3. 通过逐层减小滤波器大小来加速?
4. stdc采用细节引导模块来引导底层学习空间细节
- 利用细节聚合模块来生成细节的真值
- 利用二元交叉熵和dice损失来优化细节信息的学习任务
- 可视为侧信息学习
- 推理过程中没有
6. 重要贡献点:
- stdc模块以较小的计算成本用于提取具有可拓展的接收域和多尺度信息的深度特征
- 细节聚合模块保存底层空间细节信息,而无需再推理过程中增加计算参数量
- 模型设计在计算机视觉任务中起着重要的作用。SqueezeNet[16]采用了火模块和一定的策略来降低模型参数。MobileNet V1[13]利用深度可分离卷积来减少推理阶段的FLOPs。ResNet[9][10]采用了残余物建筑层,实现了卓越的性能。MobileNet V2[25]和ShuffleNet[29]使用组卷积来降低计算成本,同时保持相当的精度。这些工作是专门为图像分类任务而设计的,其扩展到语义分割应用应谨慎调整。
- 传统的分割算法,如。、阈值选择、超像素,利用手工制作的特征对图像中的像素级标签进行赋值。随着卷积神经网络的发展,基于FCN[23]的方法[3,1,32,14]在各种基准上都取得了令人印象深刻的性能。Deeplabv3[3]采用了一个atrous空间金字塔池模块来捕捉多尺度的上下文。SegNet[1]利用编码器-解码器结构来恢复高分辨率的特征图。PSPNet[32]设计了一个金字塔池来捕获扩张主干上的局部和全局上下文信息。扩展主干和编解码器结构都能同时学习底层细节和高级语义。然而,由于高分辨率的特征和复杂的网络连接,大多数方法都需要较大的计算量。在本文中,我们提出了一个高效和有效的架构,以达到良好的速度和精度之间的平衡。
- 是设计有效分割方法的两大主流。(我)轻量级的骨干。DFANet[18]采用轻量级骨干网来降低计算成本,并设计了跨层特征聚合模块来提高性能。DFNet[21]利用“偏序剪枝”算法获得了轻量级的骨干和高效的解码器。(2)多分支结构。ICNet[31]设计了多尺度图像级联,实现了良好的速度和精度权衡
- BiSeNetV1[28]和BiSeNetV2[27]提出低级细节信息和高级上下文信息的双流路径。
- 提出了一种有效的轻量级主干来提供可扩展的接收域。此外,我们设置了单路径解码器,使用细节信息引导来学习底层细节
- 本文提出
- 轻量级主干提供有效可扩展接收域
- 单路径解码器,使用细节信息引导(语义提取的过程中)底层细节的学习
- 编码器网络——短期密集连接模块STDC模块
文章图片
- 每个Convx包含一个卷积层、BN层、RELU层
- 除输入层和预测层外,共分为6个阶段。
- 阶段1 ~ 5分别对输入的空间分辨率以2为步长进行下采样,而阶段6通过一个ConvX、一个全局平均池化层和两个全连接层输出预测结果
- 阶段1-2,是特征提取底层,为了效率,只使用1个卷积块
- 阶段3-5中第一个stdc模块步长维,为了下采样,之后的stdc模块输入与输出大小相同,保持空间分辨率不变
- 在STDC模块中,第一个块的内核大小为1,其余块的内核大小简单设置为3。
- 给定STDC模块输出的信道数N,卷积层第i块的滤波器个数N/(2^i),除最后一个卷积层滤波器大小与其前一个大小相同。
- 图像分类任务通常更高的层上使用更多的通道。
- 语义分割任务关注的是可变换的接受域和多尺度信息。底层接收域较小需要足够的通道来编码更多的细粒度信息,而接收域较大的高层更注重高层信息的归纳,与底层设置相同的通道可能会导致信息冗余。
- 只有Block2中存在下采样。
- 为了丰富特征信息,本文通过跳路径连接STDC模块的输出每一个的特征图。
- 在特征级联前,通过3×3池化大小的平均池化操作将STDC模块中不同块的响应图下采样到相同的空间大小
- 在四个块中使用了stdc模块
文章图片
- 上图是stdc模块中各块的接收域大小
- stdc优点:
- 对滤波器大小进行调整,以几何级数的方式逐渐减小,从而显著降低了计算复杂度。
- STDC模块的最终输出是由串联所有块得到,保存了不同尺度的感受野和多尺度信息。
文章图片
- 如式3所示,STDC模块的参数个数受预定义的输入输出通道尺寸控制,而块数对参数大小的影响较小。特别是当n达到最大值时,STDC模块的参数数量几乎保持不变,仅由m和n决定。
文章图片
2. 解码器网络结构
- stdc网络是网络主干,采用bisenet的上下文路径对上下文信息编码
- Stage 3、4、5分别生成下采样比为1/8、1/16、1/32的特征图,然后利用全局平均池化提供具有大接收域的全局上下文信息
文章图片
- 采用U型结构将全局特征上采样后与编码器中阶段4和阶段5对应的特征结合
- 使用注意力精细化模块来细化阶段4-5的组合特性
- 采用了BiSeNet[28]中的feature Fusion模块将编码器中Stage 3的1/8下采样特征与解码器中的对应特征进行融合
- 这两个阶段的特征具有不同的特征表示层次,来自编码器主干的特征保留了丰富的细节信息,来自解码器的特征由于全局池化层而包含上下文信息
- 其中Seg head包含一个3×3的Conv-BN-ReLU操作,后面跟着一个1×1的卷积操作,得到输出维度n,也就是类别数量。
- 采用 cross-entry损失和Online Hard Example Mining(OHEM)在线硬示例挖掘来优化语义分割学习任务。
- 单流的方式学习空间信息
- 将细节预测看作是二进制分割任务
- 拉普拉斯算子对标签真值图像进行分割生成细节真值图,再阶段3中插入细节头节点来生成细节特征图,以此来引导底层学习空间细节特征
- 学习到的细节特征与解码器深层块中的上下文特征融合,进行分割预测
- 细节聚合模块:
- 拉普拉斯核的二维卷积核和一个可学习的1x1卷积实现
- 拉普拉斯核的二维卷积核使用不同步长获取多尺度细节信息特征图
- 细节特征映射采样到原始图像大小,与可学习的1x1卷积进行动态重加权
- 最后采用阈值0.1将预测的细节信息图转换为二值细节真值图,带有边界和角点信息
- 细节损失函数
- 由于细节像素的数量远远少于非细节像素,所以细节预测是一个类不平衡问题
- 由于加权交叉熵总是导致结果粗糙,根据[7]因此采用二进制交叉熵和dice损失共同优化细节学习。
- dice损失衡量的是预测图和真值之间的重叠。此外,它对前景/背景像素的数量不敏感,这意味着它可以缓解类别不平衡的问题。
- 因此对于具有高度和宽度w的预测细节图,detail lossldetail的表达式如下:
文章图片
-
文章图片
- 在推理阶段不包含此阶段,因此此侧信息可以很容易地提高分割任务的准确性,而无需任何推理成本
推荐阅读
- 带你玩转人工智能|【深度学习实践(四)】识别验证码
- 人工智能|新一年涨工资指南(AI薪资水平和就业前景分析(一定要看完!))
- 物联网|神经网络的三种训练方法,神经网络训练过程图解
- JavaScript|神经网络之智能科学与技术专业
- 物联网|脉冲神经网络原理及应用,脉冲神经网络怎么训练
- 深度学习21天学习挑战赛|【深度学习21天学习挑战赛】6、使用VGG16模型实现卷积神经网——识别眼睛状态
- 腾讯万字长文——推荐系统 embedding 技术实践总结
- 医疗NLP论文汇总|医学自然语言处理(NLP)相关论文汇总之 NAACL 2021
- 论文|SciFive: a text-to-text transformer model for biomedical literature