热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

实例分割_实例分割之SOLO:SegmentingObjectsbyLocations

论文地址:https:arxiv.orgpdf1912.04488.pdf代码:https:github.comqiuhuanSOLO实例分割主要有两大

d6012e522c6edfa5bba65553dcf5b74c.png

论文地址:https://arxiv.org/pdf/1912.04488.pdf

代码:https://github.com/qiuhuan/SOLO

8302690d7cbae69b0a0a51dcad8a78f4.png

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

  • 一种是“detect-then-segment”,即先检测bbox,再分割目标,如Mask R-CNN。这类方法比较依赖于目标框的检测精度,当目标不适合用矩形框标记时,这类方法将不再适用;

  • 另一种是为每个像素学习一个嵌入向量,再通过后处理(如聚类算法)得到实例。

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

SOLO思想:

  • 将图片分为S*S个格子,每个格子负责预测落在该格子中的目标的实例掩码(Mask Branch)和类别(Category Branch)。

  • 其中,每个实例的掩码为基于全图大小的语义分割图,采用二分类方式,分为前景和背景。

db09bad56dfecdf6bf21d1d9725036f0.png

b884794ccc2edfb2f0e7dfbee90cd689.png

Loss Function

  • 对于类别分支Category Branch,采用Focal Loss。

  • 对于实例掩码分支Mask Branch,采用dice loss。

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

0165dcb032e90bb1774380d047d005d2.png

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

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

实验

373af59f7ea07a5a7ae654f413fcbf55.png

e3a1d8bf2de2322bcd5a7bd1c7d7297b.png




推荐阅读
author-avatar
arthur
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有