当前位置: 首页 > 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比较

在这里插入图片描述

相关文章:

CenterMask paper笔记

CenterMask是一个anchor free的实例分割模型, 来自paper: CenterMask: Real-Time Anchor-Free Instance Segmentation 提起anchor free, 会想到FCOS模型,是用来目标检测的, 那么这里就用到了FCOS, 不过换了backbone, 在FCOS检测出目标框后&…...

06- OpenCV查找图像轮廓 (OpenCV基础) (机器视觉)

知识重点 灰度图转换: gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)二值化: 返回两个东西,一个阈值, 一个是二值化的图: thresh, binary cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY)查找轮廓: 返回两个结果,分别是轮廓和层级: c…...

OpenGL学习日记之模型绘制

自己编译运行过程中遇到的一些问题 下载Assimp已编译的lib(因为我们公司的电脑有很多权限和限制,也不能自己安装一些没有报备的软件,所以愁方便我就没有用cMake自己编译了)找到一位免费分享的博主的。 https://blog.csdn.net/lady_killer9/article/deta…...

Springboot接口多个DTO入参的Postman上传方式

在Java中使用Spring Boot框架时,可以同时使用多个DTO作为方法参数。 TO(Data Transfer Object)是一个常见的设计模式,用于封装数据传输对象。它通常用于将数据从一个层传递到另一个层,例如将数据从服务层传递到控制器…...

软考各科目考核内容详细介绍,看这里

新手在准备报考软考时,都会遇到这样的一个问题——科目这么多,我适合考什么?要想知道自己适合报什么科目,就需要了解每个科目是什么,考什么等一系列的问题。 接下来,就为大家介绍一下软考的各个科目&#…...

连续时间信号与离散时间信号

前言 《信号与系统》是一门很难的课,也是许多学校考研要考的专业课,由于每周只有两节课,所以每次上完都要及时的去复习,这里参考的教材是奥本海姆著作,刘海棠译,北京:电子工业出版社&#xff0…...

TPM密钥管理、使用

前面讲过证书相关内容,除了在软件方面有所应用外,在硬件方面也有很多应用。本次讲一下TPM相关的内容。 一、TPM介绍 1.1背景 TCG基于硬件安全的架构是为应对1990s后期日益增多的复杂恶意软件攻击应用而生的。当时以及现在,抵御PC客户端网络…...

return和finally执行顺序、运行时异常与一般异常异同、error和exception区别、Java异常处理机制原理与应用

文章目录1.try {}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?2.运行时异常与一般异常有何异同?3.java 程序中的错误有三种类型分别是什么4.error和exception有什么…...

我为什么放弃WinUI3

基于WinUI3开发HiNote已经有一个多月的时间了,算是做出来一个简单能用的C端软件。 基于个人的经历,说说其中的开发体验。 UI设计语言 无论是否抄袭苹果,WinUI3给人的感觉都是眼前一亮的。简洁美观,现代化,毛玻璃的美…...

2023年全国最新安全员精选真题及答案2

百分百题库提供安全员考试试题、建筑安全员考试预测题、建筑安全员ABC考试真题、安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 21.(单选题)静作用压路机在施工过程,要求实际含水量…...

计算机408考研先导课---C语言难点

以下为小编在重温C语言时,容易犯错的一些点,希望列出来对大家有一定帮助! 一、整型变量数的范围 类型说明符长度(字节)数的范围int4/2(有些为4字节,有些为2字节)-32768~32767short2…...

K8S 部署 Redis-Cluster 集群

本文使用 bitnami 镜像部署 redis-cluster 官方文档:https://github.com/bitnami/charts/tree/main/bitnami/redis-cluster 添加 bitnami 仓库 helm repo add bitnami https://charts.bitnami.com/bitnami自定义 values.yaml storageClass:集群的存储…...

[oeasy]python0089_大型机的衰落_Dec小型机崛起_PDP_VAX网络

编码进化 回忆上次内容 上次 回顾了 计算机存储单位的演变 最小的读写单位 是 bit 8-bit 固定下来 成为了字节(Byte) 位数容量8-bit1Byte1024Byte1 KB1024 KB1 MB1024 MB1 GB1024 GB1 TB 存储字符时 第1位 是 标志位后7位 是 ascii具体的值 可以用 1Byte 存储 计算机之间 …...

Apache Shiro与Spring Security对比

Apache Shiro VS Spring Security 1.Spring Security 官方文档:https://spring.io/projects/spring-security#overview介绍: Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spr…...

23春招-mysql事务相关高频面试题

1、什么是事务 对于一个事务,要么事务内的sql全部执行,要么都不执行 2、 事务的特性ACID 原子性 整个事务中所有的操作要么全部提交成功,要么全部失败会滚。 一致性 数据库总是从一个一致性状态转换到另一个一致性状态。假如有三个sql语句…...

天线理论知识1——基础概念介绍

基础概念介绍 文章目录 基础概念介绍前言一、主要参数二、天线的种类三、天线的测量前言 天线是用于发射和接收电磁波设备。其功能可以概括为转换自由空间中的电磁波和设备中的导行波。 一、主要参数 天线设计中要考虑的参数较多,包括 方向性函数:距离天线 r r r处的远区…...

【云原生之Docker实战】使用Docker部署StackEdit在线Markdown编辑器

【云原生之Docker实战】使用Docker部署StackEdit在线Markdown编辑器 一、StackEdit介绍1.StackEdit简介2.StackEdit中文版简介3.StackEdit中文版功能二、检查本地Docker环境1.检查系统版本2.检查系统Docker版本3.检查docker compose版本三、下载StackEdit镜像四、部署StackEdit…...

特征工程:特征构造以及时间序列特征构造

数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。由此可见,特征工程在机器学习中占有相当重要的地位。在实际应用当中,可以说特征工程是机器学习成功的关键。 那特征工程是什么? 特征工程是利用数据领域的相关…...

单master部署简要步骤

准备多台服务器,选定一台为master例如设置ip为192.168.0.10,host: k8s.master,其他分别为 k8s.s11 192.168.0.11k8s.s12 192.168.0.12....hostname可以使用命令配置hostname k8s.masterip解析可以在hosts文件中写入,如果有内部dns解析可以在内…...

【算法基础】(一)基础算法 --- 前缀和与差分

✨个人主页:bit me ✨当前专栏:算法基础 🔥专栏简介:该专栏主要更新一些基础算法题,有参加蓝桥杯等算法题竞赛或者正在刷题的铁汁们可以关注一下,互相监督打卡学习 🌹 🌹 &#x1f3…...

idea大量爆红问题解决

问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

ios苹果系统,js 滑动屏幕、锚定无效

现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...