- 作者参考了BiSeNet,并在其基础上对模型的架构进行了改进,达到了取得了更快的速度和更高的精度(没有提到显存占用,经测试,STDC2_50在转为trt后,显存占用大致在900M左右)
- BiSeNet的设计是一个双流网络,spatial path用于提取图像的细节信息,semantic path用于提取语义信息
- 作者认为额外的spatial path会消耗更多的时间,而且是从其他预训练任务(如图像分类)中“借”来的backbone,并不是针对于语义分割任务设计的。
- 作者设计了两种STDC模块,一种保持输入尺寸不变,另一种则利用了一个stride为2的conv进行了一次下采样,使输出尺寸是输入尺寸的1/2。
- 整个网络分为6个stage
- 第1、2个stage中利用“卷积-BN-RELU”提取细节特征,第6个stage中是全连接层。
- 第3~5个stage中分别包含了若干个STDC模块(数量不一定相同),但每个stage中只有第一个STDC模块进行了下采样,其余STDC模块均保持尺寸不变。每个stage中STDC模块的数量也是一个可调节的超参数。
- 训练时通过两个head的输出计算损失
- Seg Head:计算seg loss
- Detail Head:对第3个stage输出的feature map,通过Detail Guidance模块计算detail loss。此处的Ground-truth是从原始的语义分割GT中提取出的“边缘”信息。
- 提取GT的方法:分别以stride = 1、2、4的Laplacian Conv对原GT图进行卷积,再对后两者的结果进行上采样使其与stride = 1的尺寸一致,然后利用一个可学习的1 * 1卷积核对三个结果进行融合,得到一个单通道的GT图,再以0.1为阈值,将其转化为一个二值图。
- detail loss:由于所提取的是物体边缘的轮廓信息,因此前景(边缘)与背景(非边缘)的像素数相差极大,因此采用了dice loss和binary cross-entropy的和作为detail loss,以缓解样本不均衡的问题。
论文阅读笔记——STDC-Seg
最新推荐文章于 2024-08-08 08:17:48 发布