【显著性物体检测】【CVPR2018】Progressive Attention Guided Recurrent Network for Salient Object Detection【论文笔记】

论文连接

这篇cvpr感觉比起同年的其他几篇显著性物体检测的,各有各的不同,使用的方法,看问题的角度也不一样,但都实现了比较不错的检测效果。给我的启示就是:目前的方法虽然效果很强,但一定有很多更强的方法等待去发现,希望自己不断积累,早点做出点东西。虽然也有人做了这篇文章的论文笔记,但是还是自己做一份,说说我的看法与感受。

摘要

显著性物体检测现在主流都是在backbone的基础上,充分利用提取的特征进行显著性检测。本文也一样,主要贡献分为两点:一、引入注意力机制,具体表现为对channel的注意力筛选以及特征图上的空间特征筛选机制,从而实现标题中的逐步注意力引导。二、同样是最近比较流行的将高层特征中的语义信息引入低层特征对其进行指导,作者实现的方式为二重循环卷积。

首先看总体的网络架构:

【显著性物体检测】【CVPR2018】Progressive Attention Guided Recurrent Network for Salient Object Detection【论文笔记】_第1张图片

 作者采用的是去掉全连接的VGG19作为backbone,一般也有使用VGG16的。在VGG的第三四五的卷积层中引入了多路循环循环连接(Multi-Path Recurrent Connections),目的是将高层信息语义信息引入底层从而提升检测效果。将conv5输出特征图经过注意模块依次结合conv4和conv3的特征图,逐步生成最后显著性图像,每一步注意模块的输出都由真图进行监督。

接下来分两点说明:

多路循环连接

【显著性物体检测】【CVPR2018】Progressive Attention Guided Recurrent Network for Salient Object Detection【论文笔记】_第2张图片

用公式表达如下,整体分为两次,第一次得到特征图,以及公式中W对应的权重,然后将conv5对应HL进行数次反卷积得到公式的第二项,然后进行第二次特征图前向传播,第二次特征图与反卷积的特征图相各自L2正则化后相加,在经过fl(激活函数和池化层)的作用得到下一次的特征图。【与CVPR2018那篇双向传播的思想比较类似,特别是加上下一个注意力机制,整个网络结构非常像只是网络执行次序有区别】

【显著性物体检测】【CVPR2018】Progressive Attention Guided Recurrent Network for Salient Object Detection【论文笔记】_第3张图片

 渐进式注意力指导模型

【显著性物体检测】【CVPR2018】Progressive Attention Guided Recurrent Network for Salient Object Detection【论文笔记】_第4张图片

文中详细说明了在channel上以及特征图上的注意力实现机制,比较简单,看上图,首先对f也就是特征图,首先使用均值池化得到一个channel维度的向量v,然后对v进行标准卷积,再使用Sofmax操作归一化,得到如图ac向量,表征每一个通道的权重,然后每一个通道的权重与特征图相乘 ,得到fca(channel-wise attention ),然后第二步,对整个fca进行卷积与Softmax操作,得到一张注意力图(权重图),与每一个channel内的特征图进行点积,即可得到最终的特征图fcsa(channel-wise spatial-wise attention)。

再整体模型的粉色部分,可以看到,原本Conv5输出的特征图经过注意力模块后得到初步显著性图像,显著图与Conv4的特征结合,再经过注意力模块得到精细化一次的显著图,再经过Conv3以及注意力模块,得到最终的显著性。其中前两次的显著图也受到真图的监督,可以称之为middle supervise。作者也验证了middle supervise这种方式能够提升效果。

结论与实验结果

大多数实验结果与结论都大同小异,这部分就简化,相信大家也不会具体看,

数据集: ECSSD , HKU-IS ,THUR15K,PASCAL-S , DUT-OMRON 和 DUTS

评估指标:precision-recall (PR) curves, F-measure, mean absolute error (MAE) 和最近提出的 S-measure

首先,作者取得的效果好,是肯定的,都是state-of-the-art,不必多说,

溶解实验:

验证了注意力机制以及多通道循环连接的有效性,取得了性能的提升。作者确定的最佳循环次数为T=2,就是如图中所示循环两次,使用的层数为345层,这也说明了底层确实学不到东西

使用middle supervise 也有一定程度的提升。

 

 

整个网络结构大概就这样,具体细节可以去看原文。

说几个有意思的点:

一个是注意力机制:一般大家都是用在特征图里也就是Spatial-wise,然后作者还加了个channel-wise,确实我以前单看每个channel时,也发现了对于输入会不同的一部分channel都没处于活跃状态,或者结果与真图差距过大。

二个是循环连接,作者使用的是反卷积,增加了参数,如果使用双线性上采样,可以降低参数量但不确定会不会降低性能。

三是前两层对于最后的结果图没什么帮助,反而取得一定的负优化。

四是middle supervise,也有几篇论文使用这个,可能是提升性能的trick之一。

你可能感兴趣的:(S)