论文: 《BoxInst: High-Performance Instance Segmentation with Box Annotations》
github地址: https://github.com/aim-uofa/AdelaiDet
ConstInst论文: 《Conditional Convolutions for Instance Segmentation》
解决问题
通过设计损失函数,仅依靠目标框标定完成实力分割。
创新点
通过两个损失函数实现:
1、一个替代项,最小化真值框投影与预测mask之间差异,实现预测mask边界范围约束,不能超出bbox;
2、成对损失,利用先验:具有相似颜色的相邻像素之间很有可能来自于同一类。
算法原理
BoxInst基于该团队实例分割方法CondInst,增加两个损失函数项,实现bbox到Mask转变。
CondInst
网络结构如下图:
1、CondInst网络上半部分与FCOS目标检测方案相同,但增加controller分支,用于生产filter共享到Mask分支,图中为简化未显示centerness分支及box分支;
2、CondInst下半部分增加Mask分支,具体结构如下图,FPN特征经过多个目标坐标映射得到多个featuremap,而后利用controller生成filter得到各个目标Mask。
BoxInst
BoxInst在CondInst基础上增加两个损失项,如下图;
投影损失
用于限制预测Mask与目标框边缘紧贴,如式3,其中m为预测结果,即图2中间;b为检测框范围,即图2右上;
成对亲和力损失
通过成对映射形式监督Mask,像素点(i,j)与像素点(k,l)之间有相同label的可能性P计算如式4,(k,l)为(i,j)周围8个像素位置,如图2中行2,
整体Loss如式5所示,
其中式5为有Mask标签情况下损失函数,当无Mask标定时,Loss如式8,
Se为两位置之间像素相似性,当其大于一定阈值时,即为正样本,该Loss中仅计算正样本损失;
实验结果
在COCO数据集,相同backbone下,有监督CondInst方法AP=37.8;无监督BoxInst方法AP=32.1;在AP50下两者性能更加接近;
总结
作者在仅需检测框标定的情况下,生成Mask达到这种程度,很惊艳;
但是我在自己业务数据集实验过程中发现,在人体数据集上表现不错,但在个别数据集分割效果比较差,比如挖掘机场景,估计由于背景相对复杂与目标颜色接近,极容易将背景误认为前景。