论文阅读:BASNet:Boundary-Aware Salient Object Detection

论文地址:https://webdocs.cs.ualberta.ca/~xuebin/BASNet.pdf

内容简介
  • 这个网络是用来做显著目标检测的(SOD),可以在边界处取得比较出色的效果
  • Boundary Aware指的是用了个针对边界进行关注的loss
  • 有种把预测问题建模成了中间预测和边缘预测的感觉
网络结构

在这里插入图片描述

还是算一个比较经典的Encoder-Decoder + Refine的结构,先整一个粗的结果,然后再考虑怎么优化。
Encoder-Decoder:

  • 每个decoder的输出(图中的sup)受ground truth监督,从而降低过拟合的风险
  • Encoder用的是修改后的Resnet-34

Refine:
大多数情况下一个Encoder-Decoder出来其实就"高度可用"了,后面要做的就是疯狂尝试怎么去打磨。首先是这么个思想:
S refined  = S coarse  + S residual  S_{\text {refined }}=S_{\text {coarse }}+S_{\text {residual }} Srefined =Scoarse +Sresidual 

这个式子这么理解:refine网络需要学习的是ground truth(实际值)减去coarse(预测值)得到的"残差"。
而这篇文章很有意思的分析了什么叫coarse:
在这里插入图片描述
a是ground truth,gt显著图只有0和1两种情况。
b是第一种coarse的情形。因为模型输出的是一个概率图,所以会有个从0到1过渡的过程,但在视觉上这就会造成边缘变淡,看起来模糊。而这个模糊对应的gt有一部分是0,有一部分是1,因此确实有可能找到一个"自适应"的阈值将其分割,从而使得边缘更加锐利。
c是第二种coarse的情形。没有绝对的0和1,中间区域呈现出模糊的情况,这也是目前大部分模型在解决的问题。
d是一般的情形,结合两种coarse的综合情况,中间和边缘都糊。

而具体落实到refine网络的结构上…其实就是一个简化的一阶段encoder-decoder,个人感觉没有太多好研究的。

Loss

首先总的loss是6个side output加上2个output(sup7,sup8)的loss:
L = ∑ k = 1 K α k ℓ ( k ) \mathcal{L}=\sum_{k=1}^{K} \alpha_{k} \ell^{(k)} L=k=1Kαk(k)
l ( k ) l^{(k)} l(k)就是第k个side output的loss, α k \alpha_{k} αk是权重,对中间层的输出进行监督训练有助于减轻过拟合。
而对于某个具体的 l ( k ) l^{(k)} l(k)而言:
ℓ ( k ) = ℓ b c e ( k ) + ℓ s s i m ( k ) + ℓ i o u ( k ) \ell^{(k)}=\ell_{b c e}^{(k)}+\ell_{s s i m}^{(k)}+\ell_{i o u}^{(k)} (k)=bce(k)+ssim(k)+iou(k)
给人的感觉就比较,缝合(文中也直接干脆叫了Hybrid Loss,混合损失)…标题中所谓的"Boundary Aware"也是源自于里面的 ℓ s s i m ( k ) \ell_{s s i m}^{(k)} ssim(k),一个用来针对边界进行监督的loss。
个人感觉这个loss对整个结果贡献巨大:
在这里插入图片描述
把Hybrid Loss换成别的单(双)loss后…结果有点过于夸张。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值