实例分割之SOLO: Segmenting Objects by Locations

SOLO: Segmenting Objects by Locations

code

实例分割主要有两大类方法:

  • 一种是“detect-then-segment”,即先检测bbox,再分割目标,如Mask R-CNN。这类方法比较依赖于目标框的检测精度,当目标不适合用矩形框标记时,这类方法将不再适用;
  • 另一种是为每个像素学习一个嵌入向量,再通过后处理(如聚类算法)得到实例。

与Mask R-CNN这类实例分割相比,SOLO不必检测目标框,可直接得到实例的像素分割结果。若不能简单地用矩形框标记目标,那么采用Mask R-CNN这类先检测矩形框,再分割目标的方法,显然是不合适的。此时,SOLO不失为一种可尝试的方案。

SOLO思想:

  • 将图片分为S*S个格子,每个格子负责预测落在该格子中的目标的实例掩码(Mask Branch)和类别(Category Branch)。
  • 其中,每个实例的掩码为基于全图大小的语义分割图,采用二分类方式,分为前景和背景。

Loss Function

  • 对于类别分支Category Branch,采用Focal Loss。
  • 对于实例掩码分支Mask Branch,采用dice loss。

但是,SOLO在预测实例掩码时,有S*S个分割图,而其中有很多是冗余的(并不是每个格子都有目标,那么必然有的分割图是无用的,多余的)。为节省资源,作者将分割图分解为X方向的分割图和Y方向的分割图,叫Decoupled head。如下图所示。

对于最终的实例分割mask,为Y-branch与X-branch掩码对应位置相乘后的结果。假如格子坐标为(i,j),那么,最终的Mask为Y-branch上第i个掩码与X-branch上第j个掩码对应位置相乘的结果。

Decoupled head在节省计算资源的同时,精度并未降低。

参考:

https://blog.csdn.net/qq_36530992/article/details/103857123

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值