《CondInst:Conditional Convolutions for Instance Segmentation》论文笔记

参考代码:

  1. 非官方: CondInst,这篇文章使用的代码来源于此
  2. 官方:AdelaiDet

1. 概述

介绍:这篇文章描述的是单阶段的实例分割算法,类似与SOLO模型将不同的实例编码到channel和动态卷积参数中一样,这篇文章借鉴的是动态卷积参数去独立表征每个实例mask。回顾之前的两阶段实例分割算法(以Mask RCNN)为代表其存在如下的一些问题:1) 该方法通常会根据RoI box使用RoI Align的策略将特征图实现对齐与抠取,但是在一些情况下会引入较多背景区域的干扰,特别是对于存在旋转的目标(现在也有针对旋转目标的检测算法,但是其更加复杂);2) 为了更好区分前景和背景往往分割网络需要较大的感受野,因而在Mask RCNN算法中会堆叠多个kernel为 3 ∗ 3 3*3 33的卷积,这样带来的问题就是耗时会增加;3) 实例分割对目标的边界是比较敏感的,在Mask RCNN中统一会将其分辨率压缩到 28 ∗ 28 28*28 2828,这显然不利于细节信息的表达;而直接使用分割算法却无法感知不同目标的外观信息与定位信息,导致实例分割的效果不佳。对此文行引入Conditional卷积,为每一个满足训练要求的实例生成对应的预测参数,从而实现在分割框架下完成实例分割。

这里将文章的方法与之前的一些实例分割方法进行对比,见下图:
在这里插入图片描述

2. 方法设计

2.1 整体pipeline

文章方法的流程图见下图所示:
在这里插入图片描述
通看文章的方法,其是建立在FCOS算法之上的,主要的区别有两点:

  • 1)在原有分类、box回归、center-ness分支上增加了一个预测动态卷积参数的controller模块,其生成169个channel的特征;
  • 2)在FPN网络输出P3部分增加Mask-branch,生成用于实例mask预测的 F m a s k F_{mask} Fmask特征,该特征之后会concat上相对位置结合动态卷积参数生成每个实例的预测mask;

上述内容中 F m a s k F_{mask} Fmask生成过程中包含的layer_nums和channels对整体分割性能和速度的影响见下表:
在这里插入图片描述
最后生成 F m a s k F_{mask} Fmask的时候其channel数量对性能的影响见下表(channel数为8也能达到不错的效果):
在这里插入图片描述

2.2 实例预测过程

在上面提到动态参数channel维度是169维度的,其实这169维度里面是包含了3个动态卷积的参数的,其decode过程(也是实例分割预测的过程)可以描述为下面的这一段代码:

# fcos/modeling/fcos/fcos_outputs.py#L366
def forward_for_mask(self, boxlists):
    N, dim,
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值