YOLACT论文阅读笔记

论文:YOLACT Real-time Instance Segmentation

链接:https://arxiv.org/abs/1904.02689

一篇非常经典的instance segmentation的论文,出自ICCV19。文章提出了一种One Stage实例分割的方法,解决了之前主流的Two Stage实例分割(如Mask RCNN)无法实现real time的缺点。

实例分割从Two Stage拓展到One Stage并不像目标检测那样简单,因为实例分割在产生mask时需要进行feature localization,而实现这一步骤的操作正是RoIAlign,它将特征映射到bbox中。这个过程是sequential的,因此难以进行加速。

因此文章提出YOLACT,它将instacne segmentation分解成两个并行的分支:(1)生成一系列non-local的 prototype mask;(2)为每一个instance预测一组线性的组合系数。随后将这两个分支的输出进行简单的乘法操作,加上bbox裁剪、阈值处理等操作就可以得到instance mask。

YOLACT这个网络可以自发学习到如何对Instance进行定位。由于prototype mask的数目与类别数无关,因此每一个prototype mask学习到的都是跨类别的特征,从而每个instance的mask可以对应到这些prototype mask的一个线性组合。每个prototype mask可以抽相处原图像的一些特征,例如空间信息、位置信息、或者得到position-sensitive的区域信息。

所以总结来说YOLACT大法三点好:(1)速度快,由于是One Stage;(2)mask分辨率高,因为不需要做RoIAlign;(3)易拓展,这类产生prototype mask和系数的思路可移植到很多主流的detector上面。

YOLACT网络的结构如下图所示:
在这里插入图片描述
FPN后面有两个分支:

(1)Protonet

下面的Protonet负责生成k个prototype mask,整个模块是一个FCN结构,生成mask后并不在这里算loss,而是与系数线性组合后在最终的mask上面计算loss。这里还做了一个取舍:深的feature map有助于得到更加鲁棒的mask;而高分辨率的feature有助于得到高分辨率的mask。所以这里用了FPN结构,因为最深的P3拥有最大的feature size。整个Protonet的结构如下图所示:
在这里插入图片描述

(2)Prediction Head

每一个Anchor除了要预测4个bbox参数,c个类别置信度以外,还需要预测k个mask系数,因此每个Anchor总共需要预测的(4+c+k)个参数。由于系数要做线性组合来得到最终的mask,因此mask系数要有正有负,所以采用tanh激活函数来归约到(-1,1)。这个模块的结构如下图所示:
在这里插入图片描述

Mask组装

在得到上述两个分支的输出结果后,就可以通过简单的乘法来计算最终的mask:
在这里插入图片描述
这里P表示维度是 h ∗ w ∗ k h*w*k hwk的prototype mask,C表示维度为 n ∗ k n*k nk的系数矩阵(n表示在bbox经过NMS操作和阈值化以后,存活下来的anchor总数),然后 σ \sigma σ表示sigmoid激活函数。

Loss分为三部分:分类和bbox的loss与SSD一致,mask的loss采用了BCE loss。

Prototype mask的一些讨论

这部分是文章的一个亮点,在prototype mask上面做了一系列的可视化,证明了许多prototype mask只在原图中的某些区域上激活。具体这部分的分析可以参考该大佬博客,个人认为分析的很有道理,就不再赘述了。

Fast NMS

作者又提出了一种更快的NMS方法,称为Fast NMS。细节比较繁琐这里不展开了,具体的各种NMS可以参考这篇文章,讲解非常精炼。

实验结果

在这里插入图片描述
在这里插入图片描述

referece:

(1)https://blog.csdn.net/sinat_37532065/article/details/89415374

(2)https://blog.csdn.net/qq_40263477/article/details/103881569

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值