当前位置: 首页 > news >正文

CenterMask paper笔记

CenterMask是一个anchor free的实例分割模型,
来自paper: CenterMask: Real-Time Anchor-Free Instance Segmentation

提起anchor free, 会想到FCOS模型,是用来目标检测的,
那么这里就用到了FCOS, 不过换了backbone,

在FCOS检测出目标框后,提取目标框内的特征,用了一个SAG Mask, 这是一个spatial attention module,
这个attention的输出会和输入端相乘,再上采样,过1x1 conv, 就得到了每个class的mask,

具体见下面的结构图:

在这里插入图片描述

backbone的改进

backbone用的是VoVNetV2, 改进自VoVNet(paper),这篇paper没有看,就不在这里展开了,但是有几个改进的点如下。

1.OSA模块添加residual connection

把OSA模块叠加之后,发现效果是下降的,比如VoVNetV1-99, 作者联想到和ResNet的原理有关,于是在每个OSA模块中都添加了residual connection, 提升了效果。

2.eSE channel attention

VoVNet中用的是SE(Squeeze-Excitation)channel attention, 作者发现FC layer会减少channel size, 引起channel信息的损失。所以将两个FC layer换成了一个,保持了channel的维度,防止信息的损失,提升了效果。
改进后成为effective SE (eSE).

在这里插入图片描述

前面说了,CenterMask是在FCOS预测的目标框基础上提取mask,
类似Mask R-CNN,
ROI是根据FPN中不同层的feature中预测的,所以ROI Align也应该从FPN的不同层中提取特征。
至于在哪个层中提取,有一个函数。

Adaptive RoI Assignment Function的改进

直觉上来说,大尺寸的ROI对应的感受野大,应该从FPN的高层中提取feature,反之同样。
在Mask R-CNN中,FPN的层数是这样指定的:
在这里插入图片描述
k0是4,w,h是每个ROI的宽和高。
224是imageNet的输入,这个是写S的。
也就是说,看ROI和input size的比例,以4层为中心移动,
如果刚好w和h都是224, 那么log项为0,就从第4层提取,如果w和h都是112,log项为-1,k=3。

但是这个公式不适用于FCOS,想必你们也能看出来,首先224写S的这一项就不符合,
如果input size变了呢。
另外,公式(1)中中心层设的是4,以第4层为中心移动,这个是two-stage detector适用的,
因为two-stage用的是P2~P5层。
但是one-stage用的是P3~P7层。

所以作者做了如下改进:
在这里插入图片描述
直接用了input size和ROI size的比例,用最大层去减,就不存在几个写S的问题。
这样做可以提高小目标的AP。
作者设kmaxk_{max}kmax为P5,kmink_{min}kmin为P3.

SAG Mask

这个是从ROI region中提取attention feature的部分。
再来看下结构图。

在这里插入图片描述
在object detection领域,attention被广泛应用,其中,
channel attention强调了注意哪个channel, 强调的是"what",
而spatial attention强调的是"where", 注意哪个region.

所以这里用的是spatial attention. 强调的是注意哪些pixel.

上面图中,ROI区域内的feature被ROI Align (14x14)提取,然后送给4个conv和SAG Mask。
设SAM的输入为XiX_iXi, size为C x W x H,
可以看到SAM结构中,先把Xi分别过max pooling 和 avg pooling, 注意是沿channel进行pooling,
所以它们得到的结果都是1 x W x H, 把它们concatenate到一起,
再过一个3x3 conv, 再过一个sigmoid.
对应paper的如下部分:

在这里插入图片描述
当然了,现在得到的是一个attention map, 相当于一个权重map.
还需要和input的Xi相乘,会得到一个attention guided feature map.
在这里插入图片描述
然后这个feature map 会过一个2x2的deconv, 上采样到28x28.
最后过一个1x1 conv得到每个class对应的mask.

实现细节

FCOS的超参调整,positive score 阈值从0.05降到0.03, 因为在初始训练时positive ROI产生不是太好。
还用了mask score来进一步过滤mask。

Lite版本把FPN的channel从256降到128以提升效率。
centerness branch是被box branch shared.
conv layer 和 channel的削减。

训练

FCOS的detection box个数设为100个,其中score最高的放进SAG mask branch作为训练.
mask target选择和gt mask的ROI较大的。

损失函数加上LmaskL_{mask}Lmask, 也就是BCE loss。
在这里插入图片描述

Ablation study

SAM和Mask score.
在这里插入图片描述
Feature level的选取,
所以前面的kmaxk_{max}kmax取5,kmink_{min}kmin取3。
在这里插入图片描述

各种method比较

在这里插入图片描述

http://www.lryc.cn/news/14933.html

相关文章:

  • 06- OpenCV查找图像轮廓 (OpenCV基础) (机器视觉)
  • OpenGL学习日记之模型绘制
  • Springboot接口多个DTO入参的Postman上传方式
  • 软考各科目考核内容详细介绍,看这里
  • 连续时间信号与离散时间信号
  • TPM密钥管理、使用
  • return和finally执行顺序、运行时异常与一般异常异同、error和exception区别、Java异常处理机制原理与应用
  • 我为什么放弃WinUI3
  • 2023年全国最新安全员精选真题及答案2
  • 计算机408考研先导课---C语言难点
  • K8S 部署 Redis-Cluster 集群
  • [oeasy]python0089_大型机的衰落_Dec小型机崛起_PDP_VAX网络
  • Apache Shiro与Spring Security对比
  • 23春招-mysql事务相关高频面试题
  • 天线理论知识1——基础概念介绍
  • 【云原生之Docker实战】使用Docker部署StackEdit在线Markdown编辑器
  • 特征工程:特征构造以及时间序列特征构造
  • 单master部署简要步骤
  • 【算法基础】(一)基础算法 --- 前缀和与差分
  • c++提高篇——stack容器
  • HTTP安全与HTTPS协议
  • 【c++】类和对象4—c++对象模型和this指针
  • 嵌入式Qt 开发一个视频播放器
  • 阿里巴巴内网 Spring Cloud Alibaba 强势来袭,开创微服务的新时代
  • 边界检测方法总结
  • Softing dataFEED OPC Suite Extended新版本支持从XML文件中读取生产数据
  • 央行罚单!金融机构被罚原因揭秘
  • js中var、let、const详解
  • 【数据库】MySQL概念知识语法-基础篇(DCL),真的很详细,一篇文章你就会了
  • Blender骨骼动画快速教程