FCOS进化版PolaMask,实例分割新思路
前言
FCOS回顾
简单来说,FCOS是直接预测到box上下左右四条边的距离**(l,t,r,b)**进行box回归的。考虑到box内不会全部都是物体本身,因此设置box的中心点外扩一定的范围作为正样本。当然实际情况中会出现如下图box重叠的场景,FCOS的解决办法是FPN+重叠默认预测小物体来解决。首先是FPN,利用小的特征图预测大物体,大的特征图预测小物体,一定程度上缓解了目标重重叠的现象。如果重叠box落到相同的FPN输出层上,对应重叠的点优先选择预测小物体,因为越大的目标被正样本完全漏掉的概率越小。
FCOS还有一个设置就是centerness,如下图,网络会额外预测一个centerness分支,其规律是越靠近box中心点得分越高。类似confidence map,抑制低质量检测框的产生,快速过滤负样本,降低NMS负担,提高召回率和检测性能。测试使用的时候,会将center-nessmap和classification分支直接相乘用以过滤负样本。
PolarMask总览
作为FCOS的推广,PolarMask思路就是:FCOS预测到上下左右边界的距离来回归box,那么我就预测到四面八方等到多个边界的距离是不是可以回归mask,也就是预测多条射线。论文设定回归射线数目是36根。PolarMask的总体流程几乎与FCOS一样简单和干净。它引入了可忽略的计算开销。简单性和效率是single-shot实例分割的两个关键因素,PolarMask成功实现了它们。这样对head增加的运算,微不足道PolarMask。因此PolarMask最重要的特点是:
anchor free and bbox free,不需要出检测框,更不需要预设anchor。 全卷积网络, 相比FCOS把4根射线散发到36根射线,将实例分割和目标检测用同一种建模方式来表达。
这里提前说明一下PolarMask在centernet上的推广之处:
Head回归:预测4根射线推广到36根射线; Center-ness:到4条边的最小距离推广到到四周36个位置最小距离; IOU loss:box 的iou loss 推广到 Polar IoU loss; Nms:同样使用box的nms,不过利用的是mask生成的最小外box;
网络结构
网络结构就很简单了,直接继承FCOS的结构。FPN每层分别预测3个分支,分别是Classification,Polar Centerness和Mask Regression,唯一的区别就是Mask Regression的通道数目由FCOS的4变成了36(也可以是其他数量,不过作者认为36根射线足够比较高精度地拟合一个mask了)
Polar Mask Segmentation
这里重点介绍下Mask Regression怎么做的。首先是中心点设定,这里有两种选择,分别是重心和外接box中心。论文选择重心,因为相比较,重心落入物体内部的概率更大。当然也经过实验的分析,选择重心会比box中心获取的IOU要高。当然也有极端场景,中间为空的物体,例如甜甜圈,这两种中心策略都不适用。
既然获得目标的重心,和FCOS一样,特征图上,上下左右括1.5倍,每个实例有9∼16个正样本像素, 这样做的优点是1;解决正负样本不平衡,优点2:mass center不准的时候,更多的候选区域,会帮助网络训练找到更优秀的点。
另外还有两对特殊情况的设置:
如果一条射线和轮廓有多条相交,选择最大的那一个。 如果中心点在外面,那么就会有一部分在射线和mask轮廓没有交点,那么选择默认最小数值,比如10的负6次方。
这两种corner case 导致论文方法的测试指标理论上限不到100%,不过作者说,mask 预测也不会到达100%,Pixel-wise当前的这两种做法距离理论上限都很远。我认为,没有万能覆盖全部场景的方法,符合自己的场景,就可以使用。重点是在实际表现而不是对比理论上限.
预测过程:
将centerness 和classification分支相乘,获取confidence map,每一个fpn分支选取1k个样本,然后利用阈值0.05截断,获取mask再利用nms去除重复预测的,阈值选择iou的0.5。这里的nms中的iou不是对mask求iou,而是获取mask的最小外接矩形的IOU,估计是为了加速才这么设计的。
Polar Centerness
和FCOS一样,本文方法也设置了center-ness,用来抑制低质量检测框的产生,快速过滤负样本,降低NMS负担,提高召回率和检测性能。center-ness用来度量当前位置和物体中心间的距离,越靠近中间权重越大。由于本文任务是实例分割,预测mask,所以需要改进一下做法。本文做法:其中di是对应点到轮廓四周的距离
FCOS最法:其中**(l,t,r,b)是距离边界框左上右下的距离。**
根据消融实验,Polar Centerness可以有效提高1.4的性能,同时不增加网络复杂度。
loss设计
由于预测的射线更多了,而且所有射线需要同等对待,还要保持回归和分类loss的平衡。因此本文提出Polar IOU loss,可以看成普通边界框IOU loss的升级版本。做法如下:
绿色为GT轮廓,橙色为预测轮廓,由于角度采用的离散度数,因此该Polar IOU化简为如下:
其中dmin为gt和pred之间最小的距离,dmax为最大的距离,当gt和pred完全重合的时候,该IOU的值为1;分子和分母颠倒,并去log获得polar iou loss,如下:
该loss有以下3点优点:
可微的,既可以进行梯度回传backward优化; 从整体上预测回归目标。它提高了整体性能,与smooth-l 1损失相比,性能有很大提高; 可以自动平衡分类和回归分支;
实验结果
至此,本文做法介绍完毕,实验结果上还是比较优秀的。
结语
本文介绍了anchor free 目标检测的杰出代表FCOS的推广版本Polar IOU,用来做实例分割,是一个非常有借鉴意义的尝试。
2.机器学习原来这么有趣!【第二章】:用机器学习制作超级马里奥的关卡
记得把公号加星标,会第一时间收到通知。
创作不易,如果觉得有点用,希望可以随手转发或者”在看“,拜谢各位老铁