Progressive Attention Guided Recurrent Network for Salient Object Detection (PAGRN)论文笔记
论文:Progressive Attention Guided Recurrent Network for Salient Object Detection
该论文是CVPR2018的一片关于显著目标检测的文章,其核心观点在于通过CNN来提取原始图像的特征,并对不同层级的特征图、以及同一特征图的不同空间位置的像素加以不同的权重来实现显著目标的检测,这也是文章中attention所在。通过作者最后的实验结果可以看出该文章在显著目标检测中效果非常不错,并且文章整体思路清晰简洁、也值得学习。
显著性目标检测类似于人的视觉系统,当人在观察图像内容时,眼睛对于图像中不同位置处的内容的关注程度是不同的。而在CNN中同一层级上不同通道的特征图其获取的抽象特征也具有差异,可以观察论文图1(d),在第5 卷积单元获得的特征图当中第56、13通道对于前景(原图中的鸟)响应更加明显,则在显著目标检测中应该对相应的通道增加权重,而第36通道则对于原图中的背景信息响应更加明显。并且同一通道的特征图对原图中的不同空间位置具有不同的响应,可以查看图1(a、b、c),那么相应位置处也应该增加权重,避免背景信息的干扰。基于上述特性作者提出应该对不同通道的特征图、特征图上不同的空间位置施加不同的权重,而不是直接对所有的特征图加以利用,这就是本文中的spatial attention(SA)、channel-wise attention(CA)。其中attention所对应的权重矩阵将通过以下方法得到。
Spatial Attention:在该部分实现对特征图中不同空间位置处的像素赋以不同的权重,将卷积层获得的特征图表示为,为通道数目,空间位置表示为:,为当前特征图的空间位置坐标,不同空间位置处的权重通过以下方式获得:
(1)由下式将多个通道的特征图合为一个,,为卷积核,为偏置量,两者均通过训练获得。
(2)位置处的权重通过对全部特征图m计算softmax获得:
,其中。
Channel-wise attention:在该部分对不同的卷积通道加以不同的权重。计算方式如下:
将特征图展开,表示第个通道。对每个通道计算average-pooling得到特征向量,对特征向量进行聚合获得,、通过训练获得,然后对计算softmax,获得每个通道的权重值:
,其中。
计算出空间权重及各个通道的权重后,将权重与相应位置处的像素值和对应通道相乘即可,如下:
,
整体结构可见论文图3。
Progressive Attention Guidance Mechanism:知晓如何计算不同空间位置和通道的权重之后,怎样应用到CNN当中呢?像其他网络结构一样逐级的对各个特征图施加上述的权重,通过逐步精细的过程实现最终的检测,整体结构如论文图2。
首先对最高层级的特征图通过,添加权重,表示为:,对上采样并与倒数第二层级的特征图融合,同样在对加以相应的权重值获得加权的特征图,依次获得各个层级的加权之后的特征图。在每次计算加权时都groundtruth加以监督,最后对输出的最后一级加权特征图做显著目标的检测。
该论文另一个贡献点在于对Multi-Path Recurrent Guidance Module的应用,由于接近输入层的特征图经过的卷积层数较少,所以包含高层抽象特征不足,这导致在该层级上的检测效果不佳,本文中通过图4 的结构将高层级的特征图传递到底层再进行一次卷积计算,来增加底层的语义信息,这样使得底层的特征图既包含了较高抽象等级的语义信息,又包含了较多的细节信息,使得检测效果更佳。
实验结果:
table1显示的在不同的数据集上通过MAE指标和F-measure指标的检测结果,可见效果很是不错。
图6实际的检测效果:作者特意说明在第三行中只有该算法滤掉了狗的倒影。。。。。。。
attention机制近来不仅仅在显著性目标检测上取得较好的效果,在目标检测中也会是一个研究的热点,也期待相关代码可以尽快发布。