代码:https://github.com/tinyalpha/BPR
一、简介
1.背景
预测实例mask的质量仍然不令人满意,最重要的问题之一是实例边界的不精确分割。有两个原因会导致低质量的边界分割:
- 低分辨率输出使得物体边界周围更精细的细节消失;
-
对象边界周围的像素仅占整个图像的一小部分,并且本质上很难分类。平等对待所有像素可能会导致优化偏向平滑的内部区域,同时低估边界的像素。
2. crop-then-refine策略
- 给定由任何实例分割模型产生的粗略的mask,沿着预测的实例边界提取一系列小的patch;
- 在与mask patch进行concat,边界patch被送到优化网络BPR,该细化网络执行二进制分割以优化粗糙的边界;
- 然后,细化的mask patch被重新组装成一个紧凑且高质量的mask。
二、网络结构
1.边界patch提取
在由实例分割模型产生的粗略的mask(a)后,沿着预测边界(b)通过以边界为中心,通过滑窗策略密集地生成一系列正方形边界框,并且使用NMS过滤得到边界patch的子集(c)。将给定的mask提取边界patch(d)相应的二进制mask patch(e)调整大小后一起送到BPR。
2.边界patch优化
BPR的作用是对每个提取的边界patch执行二进制分割。输入通道数为4 (3个用于RGB图像patch,1个用于二进制mask patch),输出类别为2,采用了最新的HRNetV2作为细化网络用于此任务。
3.替换
细化(f)后的mask patch代替之前的相应的patch,组装成紧凑且精确的实例mask(g)。
4.训练和推理
在训练过程中,只从预测mask与ground-truth mask的IoU大于0.5的实例中提取边界patch,而在推理过程中保留所有预测实例。
BPR损失函数:binary cross-entropy loss。
训练时NMS阈值固定为0.25,而在基于速度要求的推理过程中采用不同的阈值。
三、实验
1.数据集
Cityscapes:2,975/500/1,525张训练/验证/测试图片,1024×2048。
2.消融实验
默认设置:使用Mask R-CNN ResNet-FPN-50在COCO预训练模型上训练Cityscapes fine 数据集;边缘优化网络是HRNetV2-W18-Small ;推理的NMS阈值设为0.25;输入64x64的patch resize成256x256后输入到BPR。
mask patch的效果:
在不使用掩模贴片的情况下,可以观察到显著的性能下降;加上mask patch,通过细化Mask R-CNN的分割结果,实现了显著的提升(AP提升3.4%,AF提升11.9%)。
patch大小的影响:
无填充的64×64的patch大小效果更好。
不同的patch提取方案的影响:
dense sampling + NMS过滤效果更好。
BPR不同输入大小的影响:
输入尺寸为256×256时,性能更好。
不同的优化网络的影响:
不同的NMS阈值:
随着阈值的增大,最终的边界质量不断提高,并在0.55左右达到饱和。
3.可转移性
BPR在很大程度上改进了PointRend和SegFix的结果。
在COCO上的表现:
提升了 Mask R-CNN ResNeXt-FPN-101的性能。