论文地址:https://arxiv.org/abs/2108.03551
代码:https://github.com/luckybird1994/HQSOD
发表于:ICCV’21
Abstract
为了从视觉场景中发现与定位最有区分性的物体,显著目标检测(SOD)在各种计算机视觉系统中发挥着重要的作用。随着高分辨率时代的到来,SOD方法正面临着新的挑战。以前方法的主要局限性在于,它们试图在低分辨率下通过单一的回归任务同时识别出显著区域并估计出准确的对象边界。这种做法忽视了这两个困难问题之间的内在差异,导致检测效果低下。在本文中,我们为高分辨率SOD任务提出了一个新的深度学习框架,该框架将任务分解为低分辨率显著性分类网络(Low-Resolution Saliency Classification Network,LRSCN)和高分辨率细化网络(High-Resolution Refinement Network,HRRN)。作为一个像素级的分类任务,LRSCN被设计为在低分辨率下捕捉足够的语义,以识别明确的显著、背景和不确定的图像区域。HRRN是一项回归任务,其目的是准确地完善不确定区域中像素的显著值,以便在高分辨率与有限的显存下,保留一个清晰的物体边界。值得注意的是,通过在训练过程中引入不确定性,我们的HRRN可以在不使用任何高分辨率训练数据的情况下很好地解决高分辨率细化的任务。在高分辨率显著数据集以及一些广泛使用的显著基准测试上进行的广泛实验表明,与现有的方法相比,我们所提出的方法取得了SOTA。
I. Motivation
目前实际场景中的图片基本是高分辨率的,但是传统的SOD方法大多都是低分辨率的,并且在高分辨率图像下表现不佳。文中认为低分辨率模型无法解决高分辨率图片的原因是这些方法将确定显著区域与确定显著对象边界这两个问题给一步解决了,但是这两个问题在本质上是不同的。对于前者,需要大量高级的语义信息,因此所需的感受野较大;对于后者,需要大量低级的结构信息,因此所需的感受野较小。从这里可以看到,如果直接应用低分辨率模型的话,此时大感受野会带来更大的计算开销,因此往往需要先将图片进行下采样,而这样就会导致低级结构信息的丢失。
对于目前的方法,事实上是将SOD视为了一个回归任务,因此会导致边缘的模糊。因此本文提出考虑将SOD拆分为两种任务来处理。观察目前显著预测的一些结果如下:
可以发现,事实上能将预测结果中的像素分为三类:
- 显著区域内部的像素,其saliency value很高,可以将其记做确定显著像素(definite salient pixels)
- 显著区域外部(背景区)的像素,其saliency value很低,可以将其记做确定背景像素(definite background pixels)
- 显著区域边界的像素,其saliency value在0.5附近波动,难以确定其属于前景还是背景,可以将其记做不确定像素(uncertain pixels)
对于理想的SOD方法,首先肯定得确定好前景像素与背景像素,然后解决关键的难点——不确定像素,以获得清晰的显著对象边界。至此,我们便可以发现,既然是三类,其本身是一个分类问题,可以先将图片分为前景、背景、不确定这三个区域;接着,再用传统的回归方法来着重解决不确定区域的saliency value。落实到具体实现上,本文首先用一个低分辨率的LRSCN网络来完成分类任务,再用一个高分辨率的HRRN网络来对不确定区域中的像素进行回归预测。
最后,本文还有一个有意思的点。综合上面这些东西,本文可以进行高分辨率的显著性预测,那么一般来说也需要相应配套的高分辨率的训练集。但是本文依然只用了低分辨率的训练集。而我们知道一个问题,低分辨率数据其在边缘处的标注很多都是有些不准确的,因此如果直接用的话会导致网络学不到足够的边缘细节。为此,本文的解决方案是引入“uncertainty”,具体做法将会在后面看到。
II. Network Architecture
对于LRSCN,其基本上就是用了个基础的UNet架构,没有加太多别的东西,backbone使用的是VGG16;HRNN的backbone看图应该是ResNet-50。
III. LRSCN
在本节中我们将介绍低分辨率分类网络LRSCN,其结构如下:
输入图像尺寸为352×352。从VGG的使用细节来讲,由于Conv1-2与Conv2-2过浅,感受野太小,因此没有使用这两层的特征。接下来,分析LRSCN中所提出的两个模块SGA与MECF。
SGA
SGA即saliency guide attention,其作用是在生成saliency map的同时得到trimap,结构如下所示:
首先,其使用3×3 conv与sigmoid处理输出特征D-3来获得saliency map。然后,可以将saliency map视为spatial weight map,即权重(注意力)。因此便可以将其与D-3相乘进行加权,然后残差连接,最后通过3×3 conv与softmax处理便可以得到trimap。
MECF
MECF包含ME(multi-scale feature extraction)与CF(cross-level feature fusion),结构如下所示:
ME是做多尺度特征提取的,那么实现这种功能模块其实就已经有比较多了,本文直接用的是GCN(Global Convolutional Network)。CF的话…其实就是skip connection,将Encoder特征与Decoder特征给连接起来。这个MECF最关键的地方还是将传入特征给按通道切成了两半,一半拿去提取多尺度特征, 一半拿去做skip connection,最后再给融合回来。这个策略有个名字叫split-transform-merge,最早源自[1]。
IV. HRRN
在本节中我们将介绍高分辨率预测网络HRRN,其结构如下:
主要看几个小实现细节。首先,decoder是先与encoder相应特征进行融合,然后再upsample。这个其实就是encoder特征在哪融的问题。此外,在encoder feature后用了两组卷积层进行处理,文中称其为shortcut,作用是调整通道数以供融合。比较关键的一点在于原始输入图像会直接输入最后一个卷积层来做残差,这个算是在一些refinement网络中的策略。
V. Loss Function of LRSCN
抛开loss,LRSCN的一个关键问题在于怎么去生成trimap的ground truth。那么文中的做法是借用matting问题中trimap的生成方法,即对saliency的ground truth进行随机的膨胀腐蚀操作。最终的loss由softmax cross-entropy loss与一个saliency loss构成。这里的saliency loss用的是BASNet中的loss: L L R S C N = L saliency + L trimap L_{L R S C N}=L_{\text {saliency }}+L_{\text {trimap }} LLRSCN=Lsaliency +Ltrimap
VI. Loss Function of HRRN
比较复杂,这里暂时不进行阐述,有兴趣可以阅读原文相应部分。
VII. Experiment
For LRSCN:
- optimizer SGD
- batch size 32
- max epoch 100
- data augmentation horizontal flip & multi scale input
- learning rate for backbone 0.001
- learning rate for other 0.01
- learning rate strategy warm-up & linear decay
- momentum 0.9
- weight decay 0.0005
- GPU GTX 1080Ti
For HRRN:
- batch size 20
- max iteration 10000
- learning rate 0.0005
- learning rate strategy warm-up & cosine decay
HRRN还有个处理细节,在训练时的输入其实也只有512×512,测试时输入是1024×1024,不过会切成四个512×512的块,然后再融合回去。
Ref
[1] Saining Xie, Ross B. Girshick, Piotr Doll´ar, Zhuowen Tu, and Kaiming He. Aggregated residual transformations for deep neural networks. In CVPR, pages 5987–5995. IEEE, 2017. 4, 7