论文:A Simple Pooling-Based Design for Real-Time Salient Object Detection
Github: https://github.com/backseason/PoolNet
官网:http://mmcheng.net/poolnet/
论文提出两个模块GGM (Global Guidance Module,全局引导模块)和FAM(Feature Aggregation Module,特征整合模块),通过这2个模块锐化显著物体细节,最终模型的速度在NVIDIA Titan Xp GPU上基于300*400的输入大小可以达到30FPS。
GGM (Global Guidance Module,全局引导模块):
我们知道高层语义特征对挖掘显著对象的详细位置是很有帮助的,但是中低层的语义特征也可以提供必要的细节。因为在 top-down 的过程中,高层语义信息被稀释,而且实际上的感受野也是小于理论感受野,所以对于全局信息的捕捉十分的缺乏,导致显著物体被背景吞噬。
该PPM(pyramid pooling module)模块融合了 4 种不同金字塔尺度的特征,第一行红色是最粗糙的特征–全局池化生成单个 bin 输出,后面三行是不同尺度的池化特征。为了保证全局特征的权重,如果金字塔共有 N 个级别,则在每个级别后使用 1×1 的卷积将对于级别通道降为原本的 1/N。再通过双线性插值获得未池化前的大小,最终 concat 到一起。
FAM(Feature Aggregation Module,特征整合模块):
特征整合模块也是使用了池化技巧的模块,首先把 GGM 得到的高层语义与该级特征分别上采样之后横向连接一番得到 FAM 的输入 b,之后采取的操作是先把b用{2,4,8}的三种下采样得到蓝绿红特征图然后avg pool(平均池化)再上采样回原来尺寸,最后蓝绿红紫(紫色是 FAM 的输入 b)四个分支像素相加得到整合后的特征图。
FAM的2个优点:
网络结构:
PoolNet的整体网络结构类似于FPN结构和U-Net结构。区别就在于增加了淡蓝色的GGM模块。这样,decoder部分的特征由encoder部分对应层的特征,decoder部分前一层的特征经过上采样之后的特征和encoder最底层的特征经过上采样upsample之后的特征,这3部分组合成。
整体网络还在decoder部分增加了3个残差模块,分别对显著性物体的边缘进行预测修正,并将预测后的特征和原始的salient map进行组合,得到最终的显著性目标预测特征图。
GGM和FAM的有效性:
(a)原始图像
(b)Label图像
(c)FPN网络的预测结果
(d)FPN+FAM的预测结果
(e)FPN+PPM的预测结果
(f)FPN+GGM的预测结果
(g)FPN+GGM+FAM的预测结果
(a)经过FAM模块之前的特征图
(b)经过FAM模块之后的特征图
(c)经过2个卷积层之前的特征图
(d)经过2个卷积层之后的特征图
可以看出a比c具有更好的物体显著性和边缘效果。
融合边界检测和整体salient检测的训练:
(a)原图
(b)整体salient的Label图片
(c)单独使用salient边界训练的边界结果
(d)单独使用整体训练的整体结果
(e)同时使用边界和salient整体的训练边界结果
(f)同时使用边界和salient整体的训练的整体结果
可以看出联合边界信息和整体salient训练,可以得到更好的结果,证明联合训练的有效性。
实验结果:
论文基于vgg-16和Resnet50两个网络结构进行实验。
对于salient整体显著性目标的训练采用了标准的binary cross entropy loss。
对于salient物体的边界采用了balanced binary cross entropy loss。
准确性:
速度:
实验评价指标:
(1)precision-recall (PR)曲线
(2)F-measure score
(3)mean absolute error (MAE)
结论:
poolNet一种类似于分割的显著性检测算法,对边缘具有更好的分割效果。同时基于pool模块使得分割具有更大的感受野。并且解决了高倍数上采样带来的混叠效应。亲测分割效果优于ENet。