参考代码:CTDNet
1. 概述
导读:这是一篇关于显著性目标检测的文章,文章对影响显著性目标检测的网络各个部分进行探究,也就是将需要在一张图像中获取的信息划分为3个部分:语义上下文信息、像素空间信息、显著性目标边界信息,对应的特征图的层级也是由高到低。在这篇文章中比较清晰明了总结出了影响显著性目标检测性能的几个因素,因而以此为基础针对性设计网络结构,使得整体网络展现除了较高的运算效率(排除一些冗余部分),基于ResNet-18的网络能在1080 Ti GPU上跑到180FPS,大一些基于ResNet-50的网络也能跑到110FPS。一般来讲显著性目标检测和分割类算法是具有一些相通特性的,也可以反过来作用于分割算法,从而得到更好更快的分割网络。
在显著性目标检测(语义分割)算法中会经常使用U型网络结构用以兼顾上下文语义与局部信息,从而在较大程度上提升网络的性能,也就是下面图中的a图。
而文章的方法从效率和网络特征表达的角度进行分析,将解码器网络部分划分成为了3相互关联的信息提取部分,也就结合上图b中看到的:Semantic Path、Spatial Path、Boundary Path。文章这样进行改进主要出于如下3点缘由:
- 1)U型网络在取得较为不错的性能下,其带来的计算量开销也是很大的;
- 2)在编码器阶段会采用下采样的方式会导致像素的局部空间信息丢失,虽然在解码器部分会采用shortcut的方式进行补充,但是对应的像素空间位置信息丢失问题却不能得到很好解决;
- 3)语义信息在解码器网络中传递(从高层次的语义信息到低层次的局部像素信息)是会存在语义上下文信息丢失(稀释)的情况的,这就会导致分割错误的情况;
按照上述的思想对网络进行改进之后,将该方法与其它方法在性能与速度上进行比较:
2. 方法设计
2.1 网络结构
文章提出的网路结构见下图所示:
在上图中可以看到文章的方法抽取backbone输出stride为 [ 4 , 8 , 16 , 32 ] [4,8,16,32] [4,8,16,32