A Bi-directional Message Passing Model for Salient Object Detection
![image.png](https://i-blog.csdnimg.cn/blog_migrate/e3f75e0c7b38a1b82985dd3814e44a7e.png)
原始文档:https://www.yuque.com/lart/papers/bmpm
这是CVPR2018的一篇文章, 这里做一个简短的记录. 文章主要的目的就是通过设计网络来更好地集成不同层级得到的特征信息.
主要工作
通过一些工作的分析, 文章提出了存在的一些不足:
- 现有的工作受限于有限的感受野, 学习到的特征可能不能包含丰富的上下文信息来准确的检测尺度、 形状和位置多变的目标.
- 现有工作主要使用来自深层卷积层的高级特征, 低级的空间信息的缺少可能导致显著性图难以保持细致的边缘. 一些新工作的开始尝试利用多层级卷积特征来进行显著性检测.
- 现有的使用短连接沟通深层与浅层特征的方式, 大多是仅仅将深层的侧输出连接到浅层, 并且忽略了反向的信息传输. 因此深层侧输出仍然缺乏低级信息, 这些存在于浅层侧输出中.
- 现有的工作也有直接拼接所有的来自深层和浅层的特征来集成多级特征, 然而, 直接的拼接所有层级, 没有考虑互相的重要性权重, 这并不是一个有效的融合的方式. 因为多层级特征并不总是对于每一个输入图像有效.
针对这些问题, 本文提出了几个针对性的解决方案:
- 设计了一个利用不同扩张率的卷积层并行处理编码器特征的模块(多尺度上下文特征提取模块: MCFEM), 之后进行拼接, 以获得融合了多尺度的上下文信息的特征.
- 引入门控双向信息传递模块(GBMPM), 提供一个自适应并且有效的策略来集成多层级特征. 集成的特征互相补充, 并且对于处理不同的场景下的情况具有一定的鲁棒性.
- 使用双向结构来在不同层级之间的特征传递信息, 高层语义信息传递到浅层, 低级空间细节包含在浅层特征并传递到相反的方向. 这样语义信息和细节信息被插入到每一个层级.
- 使用门控结构, 来控制信息的传递, 从而传递有用的特征, 丢弃多余的特征.
总结起来就是:
- 多尺度特征融合
- 双向信息传递机制
- 门控机制, 控制信息传递
网络结构
图中主要包含了这样一些过程:
- 使用VGG16进行特征提取, 移除原始VGG的全连接层和最后一个池化层.
- Multi-scale Context-aware Feature Extraction
- 使用MCFEM通过拼接并行的扩张卷积处理结果获得融合了不同尺度信息的特征.
- Gated Bi-directional Message Passing
- 使用2获得的特征进一步送入GBMPM的三部分结构:h, h, G.
,
,
- 使用获得的h, h来获得h.
- 使用2获得的特征进一步送入GBMPM的三部分结构:h, h, G.
- Saliency Inference
- 使用1x1卷积处理生成阶段性的预测, 并上采样进行融合获得最后的输出
- 使用1x1卷积处理生成阶段性的预测, 并上采样进行融合获得最后的输出
- 最终使用交叉熵计算损失
实验细节
- We utilize the training set of DUTS dataset to train our proposed model. It contains 10553 images with high-quality pixel-wise annotations.
- We augment the training set by horizontal flipping and cropping the images to relieve the over-fitting problem, as suggested in [18]. We don’t use the validation set and train the model until its training loss converges.
- A NVIDIA Titan X GPU is used for training and testing.
- The parameters of the first 13 convolutional layers are initialized by VGG-16 net. For other convolutional layers, we initialize the weights using truncated normal method.
- The convolutional parameters of our message passing module in Sec. 3.3 are not shared, and the upsampling and downsampling are conducted simply by bilinear interpolation.
- Our model is trained using Adam with an initial learning rate at 1e-6. The training process of our model takes about 30 hours and converges after 12 epochs.
- During testing, our proposed model runs about 22 fps with 256 × 256 resolution.