Press "Enter" to skip to content

干货分享|一文看懂实时语义分割

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

针对real-time 图像分割做的工作,最终的结果是可以在单独的GTX 980上每秒钟处理15张高分辨率图片数据,同时在cityscapes测试集上保持72.9%的Mean IOU.

 

01 主要贡献

 

1.对于一个典型的两输入的全卷积网络引入了空间稀疏性,展示了在提高inference速度的同时并没有随时太多精度;

 

2.展示了使用空间稀疏性,使用in-column和cross-column的链接、移除残差单元,能够25倍的缩小计算开销,丢掉一点精度。

 

 

这篇文章提出的架构是这种two-column的架构,接受两个输入,一个是full-resolution, 另一个是half-resolution的input。

 

最后prediction的时候,可以从这两个分支的 score maps来计算the element-wise sum/max; 或者生成scale-aware的权重,然后计算加权的element-wise sum。 实际上half-resolution的计算开销只有full-resolution的四分之一。

 

这个模型的关键是low-resolution 分支生成的稀疏的weight map, 每个值都和原分辨率的square 的区域相关。 如果在half-resolution 中的weight map是零,就表示这部分区域不需要被full resolution部分处理,half-resolution已经足够了。 而且,通过不处理一些full resolution区域的部分已经足够补偿生成weight map的额外消耗。

 

 

02 方法

 

为了增大提取出的score map的分辨率,一直以来有三个比较典型的方法。

 

 

典型的FCN,从不同resolution的feature map上预测score map,然后直接融合(sum)这些score map来做最后的prediction.

 

Deeplab移除了部分下采样的操作,使用空洞卷积来增大感受野,然而大的feature map就必然会导致计算开销的增大。

 

也就是本文使用的,从SharpMask中引入的SharpMask结构,SharpMask最先是在instance Segmentation中提出的, 将low-level的特征和high-level的语义信息结合,后面的实验也是表明了这种结构在效果和效率上有一个比较好的trade-off。

 

 

 

在语义分割这样的task上,content的size经常是有很大变化的,这也说明了multi-scale处理的重要性。 一个典型tow-column的pipeline分成三步:

 

 

计算原始输入大小image的score map;

 

下采样image, 计算另一组的score maps;

 

把这两组score map合并到一起。

 

 

其中muti-scale最后融合score maps也有多种方法:

 

 

最直接的两种放到就是做element-wise的sum/max;

 

另外一种方法是生成scale-aware weights的参数,然后用Softmax(then apply the Softmax activation function to ensure that the two entries at the same spatial location sum to one ),最后计算element-wise 加权的和,这种方法就是图中中间部分被称为 Attention-to-scale的方法。 在Attention to scale那边论文中,被称为注意力模型,就是通过一个注意力模型来获得权重融合feature maps.最终得到分割的图像。 这个权重是怎幺产生的呢? 通过学习,对于每个尺度的特征图输出一个权重图。 这种方法的缺点就是依赖全分辨率和办分辨率两个分支上的 scale-aware weights 。

 

就是本文用的,“coarse-to-fine’ approach ,scale-weight 仅仅依赖half-resolution的分支,通过卷积层去学习参数,然后经过sigmoid变为最后的weight。

 

 

03 实验

 

 

在cityscapes上的实验; 使用resnet50 MXNet.恢复原始的分辨率有两种方法:1)up-sampling layers together with jump connections on top of the features. 2) 空洞卷积, 文中把这两个方法结合起来做了实验。

 

Table1表示了单column模型在效率和精度上trade-off的一个情况,最后选择了第三组,use three up-sampling layers with jump connections. 这三组实验都是sharp-mask结构的。

 

Table2表示了模型 two-column的不同融合方法在验证集上的效果。 尽管计算量从165g to 206g, 增长了25%, IOU结果也确实有很大提升。

 

结果表明最后的scale-aware weight不必依赖full-resolution的那一个分支,这也是通过引入空间稀疏性加速inference的一个原因。 换句话说,我们可以跳过一些full-resolution分支中input image的一些区域,来减少计算消耗。

 

SCTF: 增加稀疏性

 

ISCTF : 增加稀疏性 + the cross-column connections. 使用half-resolution的long-range context information 信息来增强full-resolution的features信息。

 

 

Table3 这个表是针对空间稀疏性做的一系列对比试验,

 

开始due to the boundary problem,IOU从 74.72% 降低到了to 71.74%。

 

后来,applying the winner-take-all strategy. 也就是在那个weight map上选出最大的k个值,skip the same number of regions per image,分别是8,12,16个区域等等。

 

这里也做了 local regions 很小(变成128*128个regions时候),因为它很难克服边界问题,所以效果比较差。

 

最后的,在p = 0.5 , lamuda = 0.001时候,达到了75.4%的IOU.

 

Table 4. 表示移除resnet50部分残差unit的结果。

 

 

最下面的这张图展示了计算消耗和一些components的贡献。

 

最后计算量从786降低到31.5,缩小了25倍,only with a 0.6% loss of accuracy.最后给出一些和其他模型的对比和效果展示图。

 

 

 

 

Be First to Comment

发表评论

邮箱地址不会被公开。 必填项已用*标注