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

伪装实例分割模型:OSFormer模型及论文解析

论文:https://arxiv.org/pdf/2207.02255.pdf
代码:https://github.com/pjlallen/osformer

1. 摘要

我们推出OSFormer,这是第一个用于伪装实例分割 (CIS) 的单级 Transformer框架。OSFormer 基于两个关键设计。首先,我们设计了一个位置感知变压器(LST),通过引入位置引导查询和混合卷积前馈网络来获取位置标签和实例感知参数。其次,我们开发了一种从粗到细的融合(CFF)来合并来自LST编码器和CNN主干的不同上下文信息。将这两个组件耦合起来使 OSFormer 能够有效地混合本地特征和远程上下文依赖关系以预测伪装实例。与两阶段框架相比,我们的OSFormer 达到了41% AP,并实现了良好的收敛效率,而无需大量训练数据,即 60个epoch下仅需要3040个样本。

2.主要贡献

1.我们提出了OSFormer,这是第一个基于变压器的单级框架,专为伪装实例分割任务而设计,它是一个灵活的框架,可以以端到端的方式进行训练。
2.提出了一个位置感知变压器来动态捕获不同位置的实例线索,我们的LST包含一个带有混合卷积前馈网络的编码器,用于提取多尺度局部特征,以及一个带有建议的位置引导查询的编码器,以带来实例感知嵌入,所提出的LST结构在有限的训练数据下快速收敛。
3.提出了一种新颖的从粗到细的融合(CFF),通过融合来自骨干网和LST块的多尺度低级和高级特征来获得高分辨率掩模特征。在该模块中,嵌入了反向边缘注意(REA)来突出伪装实例的边缘信息。
4.大量实验表明,OSFormer 在具有挑战性的CIS任务中表现良好,大幅优于11种流行的实例分割方法,例如,在COD10K 测试集上AP提高了8.5%。

3.模型图

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

4.方法

代码结构
1.用于提取对象特征表示的CNN主干
2.采用全局特征和位置引导查询来生成实例感知嵌入的位置感知转换器(LST)
3.粗到精融合,用于集成多尺度低级和高级特征并产生高分辨率掩膜特征.(CFF)
4.动态伪装实例归一化,用于预测最终实例掩码。(DCIN)
将CNN提取出来的多尺度特征,C3、C4、C5展平并串联成一个具有256通道的序列Xm,将这三个特征输入到LST编码器,C2直接输入到CFF中(将其作为高分辨率的低级特征输入到CFF模块)。然后第二部分,引入混合卷积前馈网络(BC-FFN),该网络只有两个卷积层:
在这里插入图片描述

LST编码器层的描述如下:
在这里插入图片描述

Pm位置编码,多头可变形注意力和层归一化。
然后就是我不太能看懂的位置引导Queries:
主旨就是query是transformer架构中很关键的结构,用作解码器的输入,并通过解码器进行输出嵌入。参考DETR,query的零初始化是其收敛缓慢的原因,借鉴了SOLO模型的启发,将特征图(T3-T5)调整,然后将特征划分为S2个网络,然后展平来产生位置引导。
在这里插入图片描述
在osformer.py的CISTransformer中
然后就是LST解码器:
在这里插入图片描述
CFF是说将C2,T3,T4,T5作为级联融合的输入。从输入的1/32尺度的T5开始,通过3 × 3卷积、GN和2×的双线性上采样,并加入更高分辨率的特征(1/16 比例的 T4)。在以 1/4 的尺度融合C2后,特征通过1 × 1的卷积、GN和RELU操作,生成掩膜特征 F。另外考虑到边缘特征难以捕捉,还引入了反向边缘注意力模块,在迭代过程中监督边缘特征:
在这里插入图片描述
收到CBAM的启发,将最后的共享掩膜特征Fe输入到DCIN预测最终的每一个伪装实例掩膜:
在这里插入图片描述
损失函数:
在这里插入图片描述

5.结果/发现

本文为伪装实例分割(CIS)贡献了一个全新的位置感知的单阶段的Transformer模型,称为OSFormer,OSFormer包含了一个高效的位置感知Transformer,以捕捉全局特征并动态回归伪装实例的位置和形状,作为第一个自上而下的单阶段CIS框架,模型还嵌入了一个由粗到细的融合模块,以整合多尺度特征并突出伪装的边缘,并输出全局特征,大量的实验结果表明,OSFormer的性能优于目前其他知名的模型,此外,OSFormer只需要训练3000张图像,并且收敛迅速,它还可以被灵活地扩展到其他具有较少训练样本的下游视觉任务。

相关文章:

  • 51单片机定时器
  • Tomcat快速入门
  • Python基础之异常处理
  • springboot配置项动态刷新
  • 应用层—HTTPS详解(对称加密、非对称加密、密钥……)
  • 5G_系统同步机制(八)
  • JVM篇--垃圾回收器高频面试题
  • R语言【cli】——ansi_trimws():从ANSI字符串中删除前导和/或尾随空格
  • 链表|数据结构|C语言深入学习
  • c++设计模式之单例模式
  • 力扣(leetcode)第35题搜索插入位置(Python)
  • Git 操作
  • 启动低轨道卫星LEO通讯产业与6G 3GPP NTN标准
  • 纯前端网页编辑Office文档安全预览之打开Word文档后禁止另存为....
  • P1068 [NOIP2009 普及组] 分数线划定————C++、Python
  • “大数据应用场景”之隔壁老王(连载四)
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • 【译】理解JavaScript:new 关键字
  • Docker 笔记(2):Dockerfile
  • ECS应用管理最佳实践
  • export和import的用法总结
  • iOS | NSProxy
  • IP路由与转发
  • js中的正则表达式入门
  • Laravel 中的一个后期静态绑定
  • mac修复ab及siege安装
  • vue数据传递--我有特殊的实现技巧
  • 分布式熔断降级平台aegis
  • 给新手的新浪微博 SDK 集成教程【一】
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 浏览器缓存机制分析
  • 如何选择开源的机器学习框架?
  • 实现简单的正则表达式引擎
  • Prometheus VS InfluxDB
  • ​configparser --- 配置文件解析器​
  • ​flutter 代码混淆
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)Google的Objective-C编码规范
  • (转)创业家杂志:UCWEB天使第一步
  • .gitignore文件—git忽略文件
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .NET MVC第三章、三种传值方式
  • .NET程序员迈向卓越的必由之路
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • ::before和::after 常见的用法
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  • @hook扩展分析
  • @JsonSerialize注解的使用
  • @RequestMapping-占位符映射
  • [ 隧道技术 ] cpolar 工具详解之将内网端口映射到公网