[实例分割] SOLOv2: Dynamic, Faster and Stronger
转载请注明作者和出处: http://blog.****.net/john_bh/
论文链接: SOLOv2: Dynamic, Faster and Stronger
作者及团队:阿德莱德大学 & 清华大学 & 字节跳动 AI Lab
会议及时间:Arxiv 2020.3
code1:开源github 地址1:https://github.com/WXinlong/SOLO
1.主要贡献
SOLOv2中作者旨在建立一个性能强大的简单,直接,快速的实例分割框架。
- 提出动态学习对象分割器的 mask head,这样使mask head 就依赖于它的位置。具体来说,将掩码分支分解为mask kernel分支和mask feature 分支,分别学习卷积核和卷积特征。
- 提出矩阵NMS(non maximum suppression)以显着减少由于掩码的NMS造成的推理时间开销。Matrix NMS一次性使用并行矩阵操作执行NMS,并产生了更好的结果。
- SOLOv2 可以用于目标检测和全景分割任务,也可以作为势力级识别任务的baseline,代码地址:https://git.io/AdelaiDet 。
2. SOLOv1
3. SOLOv2
3.1 Dynamic Instance Segmentation
SOLOv2继承了SOLOv1的大部分设置,如网格单元、多级预测、CoordConv 和loss function。在此基础上,引入了将原始掩码分支解耦为mask kernel 分支和 mask feature 分支的动态方案,分别用于预测卷积核和卷积特征。图2显示了与SOLOv1的比较。
-
Mask Kernel Branch
Mask kernel 分支位于预测head内,平行的有语义类别分支。预测 head 在 FPN 输出的特征图金字塔上工作。Head内的2个分支都有4个卷积层来提取特征,最终的的一个卷积层做预测。Head 的权重在不同的特征图层级上共享。作者在kernel分支上增加了空间性,做法是在第一个卷积内加入了归一化的坐标,即输入后面跟着两个额外的通道。对于每个网格,kernel分支预测 维输出,表示预测的卷积核权重,其中 是参数的数量。 当为了生成具有 个输入通道的 卷积的权重,,当 卷积,。这些生成的权重取决于位置,即网格单元。 如果将输入图像划分为 个网格,则输出空间将为 。
注意到这里不需要**函数
。(这里输入为 的特征 ,其中 是输入特征的通道数;输出为卷积核 ,其中 是划分的网格数目, 是卷积核的通道数。对应关系如下: 的卷积核,则 , 的卷积核,则 ,以此类推) 。 -
Mask Feature Branch