SOLO:Segmenting Objects by Locations

在这里插入图片描述在这里插入图片描述

SOLO

SOLO的中心思想是把instance segmentation的问题分解为两个相似的分类问题,分别是category-aware预测和instance-aware mask的生成
把输入图片分成SxS个格子,如果一个物体的中心落入到了一个格子中,那么这个格子就负责两件事情,
1)预测semantic category
2)生成instance mask。

———————————————————————————————————————————————
Semantic Category
每个grid有C个维度,用来预测C个类别中每个类别的可能性。如果划分SxS个格子,那么输出是SxSxC,这种设计是基于每个grid都属于不同实例的假设,因此也必然只属于一个semantic category。
Instance Mask
每个正例的grid还要生成对应的instance mask。如果一张图片分成SxS个格子,那么最多预测S的平方个mask。所以mask层的输出是 ,如果k=i*S+j,那么第k个channel的map会负责(i,j)位置的grid。从而将semantic category与instance mask一一对应起来了。
Inference
通过mask与grid的对应,很容易得到每个mask的类别信息,最后通过NMS整合出最后的输出结果。
SOLO:Segmenting Objects by Locations_第1张图片

CoordConv

FCN全卷积网络对位置信息不敏感,这样对分类问题有利,但是对于定位问题位置信息比较重要。另外SOLO的每个mask需要与grid cell对应,因此也需要对位置敏感。作者的解决方案是引入了CoordConv方法。
SOLO:Segmenting Objects by Locations_第2张图片在这里插入图片描述

———————————————————————————————————————————————SOLO:Segmenting Objects by Locations_第3张图片SOLO:Segmenting Objects by Locations_第4张图片SOLO:Segmenting Objects by Locations_第5张图片
SOLO作为无需后处理,无需anchor的one-stage的网络,相比需要聚类的one-stage网络和two-stage的网络也有不差的精度。
———————————————————————————————————————————————

消融实验1

SOLO:Segmenting Objects by Locations_第6张图片
如果只有一个feature map作为输出,并且grid number为12,24,36的结果。Pyramid表示FPN的结构。可见FPN的结构非常有用,FPN的结构见table 3.SOLO:Segmenting Objects by Locations_第7张图片SOLO:Segmenting Objects by Locations_第8张图片SOLO:Segmenting Objects by Locations_第9张图片

消融实验2

SOLO:Segmenting Objects by Locations_第10张图片SOLO:Segmenting Objects by Locations_第11张图片
FPN后feature的尺寸使用Align的方式对齐到SxS,Align的方式做了对比试验发现无论是线性插值还是adaptive pool或者基于grid的线性插值,效果都差不多。

小尺寸SOLO

SOLO:Segmenting Objects by Locations_第12张图片
在这里插入图片描述SOLO:Segmenting Objects by Locations_第13张图片SOLO:Segmenting Objects by Locations_第14张图片

你可能感兴趣的:(2019论文精度)