四个可能改进 Mask RCNN 的 Idea/Insight(下篇)

(接上一篇)。我找了夏井优的照片,运行了一个 mask rcnn demo, 分割结果如下图所示。看到这个现象,我又开始瞎思考。

四个可能改进 Mask RCNN 的 Idea/Insight(下篇)_第1张图片

0. 引子(思维逻辑链)

把自己的思考过程记录成文确实不是一件简单的事。为方便读者阅读,我尽量精简一些。

step1: 上图中的分割结果哪里最糟糕?

显然是弯腰的小弟弟和大姑娘重叠的区域,如下图所示。这种重叠区域应该不算最难分割的,因为他们的边界起码是清晰的。但是这种难度级别的样本,mask rcnn 也处理不好, 颇感失望。

四个可能改进 Mask RCNN 的 Idea/Insight(下篇)_第2张图片

step2: 造成分割结果糟糕的直接原因?

box 这一支路拖了后腿。看图得知,我们应该得到两个框,而 box 支路只给出 1 个框。

step3: 既然 box 支路可能会拖后腿,那么我们为什么要先出框,再出分割结果?

这个问题换句话说就是: 我们为什么要依赖框的检测结果?先出框的好处是什么?直接思考得不到答案。我们进行反向思考。

step4: 如果不出框,直接出实例级别的分割结果的难度怎么样?

难度非常大。如果能很好地解决这个难题,我相信目标检测任务走向了大结局。

step5: 那么,为什么不出框直接出实例级别的分割结果难度辣么大?

不出框可以 类比 mask rcnnbox 支路只出来一个等同图像大小的框。这个框里包含了太多的 同类个体。那么在后续的 mask 支路中,前景背景的语义会难以定义。

step6: 回答 step3: 先出框再出分割结果的好处是什么?

大家都能想到的一个好处就是:剔除了大量 异类 背景区域。但是这个好处不是核心,最关键的好处应该是:尽可能 地剔除了 同类 但属于其他个体的区域。

呼呼,终于可以引出 idea3idea4 了。


idea3: mask 支路中需要显示或隐式的区分两种背景区域

现有的 mask 支路中在优化时,没有区别对待两种背景区域:一种是异类背景,另一种是同类但是属于其他个体的区域。第一种背景区域其实是比较容易分割出来的,所以 第二种背景区域才应该是重点关照的区域

明确了问题,方法自然水到渠成,引入权重图 或增加 类别数 都有可能 work.

idea4: mask 支路应该使用 gt_box 内的 mask 进行优化

如前所述,mask 支路的关键是区分出同类但属于其他个体的背景区域。

  • 现有 mask rcnn训练 过程中,对 rpn 输出的,位置较为粗糙的 roi 对应的图片区域进行前景分割
  • 现有 mask rcnn预测 过程中,对 box 支路输出的,位置较为准确的 box 对应的图片区域进行前景分割

这会引入什么问题?

  • mask 支路训练时和预测时的 输入分布存在 shift
  • mask 支路训练时和预测时 背景区域的语义存在 gap, 尤其是针对第二类背景区域。

同样,明确了问题,我们解决方式就是 在训练时 ,对 roi 对应的 gt_box 覆盖下的图片区域进行前景分割


0k , 这差不多就是我对 mask rcnn 的看法和建议了。直觉上来讲这个框架应该不是解决实例分割任务的答案,我们可能需要重新定义问题方式。这些就是后话了,谁能想到完美的 box-free 甚至 detection-free 的方法,谁就能封神了。让我们拭目以待。


作 者: 月牙眼的楼下小黑
联 系: zhanglf_tmac (Wechat)
声 明: 欢迎转载本文中的图片或文字,请说明出


四个可能改进 Mask RCNN 的 Idea/Insight(下篇)_第3张图片

你可能感兴趣的:(四个可能改进 Mask RCNN 的 Idea/Insight(下篇))