首页 > 其他分享 >OSFormer: One-Stage Camouflaged Instance Segmentation with Transformers

OSFormer: One-Stage Camouflaged Instance Segmentation with Transformers

时间:2023-07-04 19:23:11浏览次数:44  
标签:OSFormer Segmentation Camouflaged 特征 位置 mask 查询 LST 实例

地址:https://arxiv.org/pdf/2207.02255.pdf

1. 摘要

    OSFormer为基于transformer的伪装实例分割(CIS)框架,有两个关键设计,首先是位置敏感transformer(LST),通过【位置引导查询】和【混合卷积前向传播网络】获得定位标签和实例级参数;第二,开发粗糙到精细融合模块(CFF)合并来自LST和CNN骨干的上下文信息。这两个组件的耦合使OSFormer能有效混合局部特征和远程上下文依赖,以预测伪装的实例。与两阶段框架比,OSFormer达到41%的AP,无需大量训练数据就能得到好的收敛效果(3040个样本,60个epoch)

代码:https://github.com/PJLallen/OSFormer

2. OSFormer

结构

4个基本组件:

(1) CNN骨干提取目标特征

(2) 局部敏感transformer(LST)产生实例级embedding

(3) 粗糙到精细融(CFF)合集成多尺度低级到高级特征,产生高分辨率mask特征

(4) 动态伪装实例归一化(DCIN)用于预测最后的实例掩码,如图2.

2.1 CNN骨干

    采用多尺度特征C2-C5,为减少计算代价,直接flatten和concate最后的3个特征图(C3、C4、C5)到一个256个channel的序列Xm,输入到LST编码器。对于C2特征,将其输入CFF模块中,作为高分辨率、低级特征去捕捉更多伪装实例线索。

2.2 位置敏感transformer

    transformer需要大量训练样本和高计算代价支持,由于CIS的数据有限,我们目的是设计一个收敛更快,精度相匹配的有效结构,图3展示了位置敏感trasnformer(LST)

LST编码器

    接收多尺度特征Xm取得丰富信息,将卷积运算引入到前馈网络中,称为混合卷积前馈网络(BC-FFN)。首先,根据Ci的形状将特征向量恢复到空间维度;然后,进行核大小为3×3的卷积层来学习归纳偏差;最后,添加GN和GELU形成前馈网络。在3×3卷积层之后,将特征flatten回一个序列。给定输入特征Xb,BC-FFN可表示为:

​整体生LST编码器可描述为:

Pm表示为位置编码,MDAttn和LN分别表示多头可变形自注意和层归一化。

位置引导查询

    对象查询在transformer中扮演着关键角色,它被用作解码器的初始输入,并通过解码器层获得输出嵌入;然而,普通DETR收敛速度较慢的原因之一是对象查询是零初始化的,为此,我们提出位置敏感查询,充分利用LST编码器的多尺度特征图Ti,i=3,4,5.受【SOLO】的启发,我们首先将恢复后的特征图T3-T5调整为Si×Si×D,i = 1,2,3的形状;然后,将resize后的特征划分为Si×Si的特征网格,并将其flatten,以生成位置引导查询Q。在这种情况下,所提出的位置引导查询可以利用不同位置的可学习的局部特征来优化初始化,并有效地聚合伪装区域的特征。与零初始化或随机初始化相比,该查询生成策略提高了transformer解码器中查询迭代的效率,加快了训练的收敛速度。

LST解码器

    LST解码器对于与(LST编码器产生的)全局特性和位置引导查询进行交互是必要的,以产生具有实例感知的嵌入。空间位置编码也被添加到我们的位置引导查询QL和编码器存储Xe中。之后,它们被可变形的交叉注意层融合。BC-FFN也用于可变形的注意操作后,类似于LST编码器。给定位置引导的查询QL,我们的LST解码器的pipeline被总结为:

其中,Ps表示基于特征网格的位置编码,MDCAttn表示为多头可变形的交叉注意操作。Xd是实例感知表示的输出嵌入。最后,Xd被恢复后,输入到DCIN模块用于预测mask

2.3 粗糙的精细的融合

    OSFormer致力于利用LST编码器输出的多级全局特性来产生共享mask特征,为了合并不同的上下文信息,我们还融合了来自CNN主干的低级特征C2作为补充,得到了一个统一的高分辨率特征图F,详细结构如图4.我们以多级特征C2、T3、T4和T5作为级联融合的输入。

    考虑到伪装的边缘特征的捕获更具有挑战性,设计了一个嵌入在CFF中的反向边缘注意(REA)模块来监督迭代过程中的边缘特征。REA操作于边缘特征,而不是预测的二进制mask。此外,用于监督的边缘标签是通过侵蚀实例mask标签获得的,没有任何手动标签。输入特征同时由AvgPool和MaxPool操作。然后,将它们连接并转发到一个7×7卷积和一个sigmoid函数中。之后,将注意力权重反转,并通过元素乘法将其应用到融合特征Ff中。最后,我们使用3×3卷积来预测边缘特征。假设输入特征为Ti,每个REA模块的整个过程可以表述如下:

[;]表示channel上的连接。总之,所提出的CFF提供了一个共享的mask特征F来输入DCIN,以预测每个实例的最终伪装mask.

2.4 动态伪装实例归一化

    引入动态伪装实例规范化(DCIN)来预测最终mask。当DCIN从LST解码器接收到输出嵌入Xd时,使用全连接层(FC)来获得位置标签。同时,多层感知机(MLP)来获得大小为D(即256)的实例参数。在训练阶段,根据GT指定正例、负例位置。利用正例位置的实例感知参数来生成分割掩码。在测试阶段,利用位置标签的置信度来过滤(见图5)无效的参数(例如阈值> 0.5)

    随后,对过滤后的位置感知参数进行两层线性操作,获得仿射权值ω和偏置β。最后,它们与共享mask特征F一起使用来预测伪装实例,可以描述为:

P为预测mask(HxWxN),N为预测实例的数量,Ux4为上采样4倍。最后,使用Matrix NMS【参考SOLOV2】去获得最终的实例。

2.5 损失函数

    整体损失函数可写为:

其中Ledge是监督我们的CFF中不同级别的边缘的边缘损失.

边缘损失可定义为:

J表示用于监督的边缘特征级别的总数,λedge是边缘损失的权重,默认设置为1。由于CIS任务是类别不可知的,我们使用每个位置的伪装存在(Lloc)的置信度,而不是一般实例分割中的分类置信度。Lloc由Focal loss实现,Lmask为Dice loss,λloc和λmask分别设置为1和3,以平衡总损失。

 

3. 实验

文章同步自公众号【卫超cv】

 

 

 

标签:OSFormer,Segmentation,Camouflaged,特征,位置,mask,查询,LST,实例
From: https://www.cnblogs.com/BlogLwc/p/17526761.html

相关文章

  • 论文解读- nnU-Net: Self-adapting Framework for U-Net-Based Medical Image Segment
    本篇主要解读论文“nnU-Net:Self-adaptingFrameworkforU-Net-BasedMedicalImageSegmentation”==nnU-Net:基于U-Net的自适应医学图像分割框架。实现见本专栏下其他博文。直达链接......
  • opennmmlab实战营二期-mmsegmentation理论课(八)
    opennmmlab实战营二期-mmsegmentation理论课(八)视频链接前言mmsegmentation算法库的介绍比如特点、模型库、数据集、应用场景(医疗、遥感、生活、工业)什么是语义分割将图像按照物体的类别分割成不同的区域==对每个像素进行分类应用:无人驾驶汽车、人像分割(抠图)、卫星遥感......
  • Incrementer:Transformer for Class-Incremental Semantic Segmentation with Knowledg
    摘要目前已有的连续语义分割方法通常基于卷积神经网络,需要添加额外的卷积层来分辨新类别,且在蒸馏特征时没有对属于旧类别/新类别的区域加以区分。为此,作者提出了基于Transformer的网络incrementer,在学习新类别时只需要往decoder中加入对应的token。同时,作者还提出了对于旧类别区......
  • [CVPR23 Highlight] Side Adapter Network for Open-Vocabulary Semantic Segmentatio
    **摘要本文提出了一个用于开放词汇语义分割的新框架SAN,将语义分割任务建模为区域识别问题,提取maskproposals并使用CLIP对mask进行识别。SAN可以重新利用CLIP的特征,因此其本身可以非常轻量;同时网络可以端到端地进行训练,从而使SAN适应冻结的CLIP模型。本文方法需要很少的参数量,且......
  • CLIP-S^4:Language-Guided Self-Supervised Semantic Segmentation论文阅读笔记
    摘要作者提出了CLIP-S4,借助自监督像素表示学习和V-L模型实现各种语义分割任务,不需要使用任何像素级别标注以及未知类的信息。作者首先通过对图像的不同增强视角进行像素-分割对比学习来学习像素嵌入。之后,为进一步改善像素嵌入并实现基于自然语言的语义分割,作者设计了由V-L模型指......
  • 自动驾驶图像全景分隔,基于HRnetSegmentation从训练工程到tensorRT工程部署Demo闭环一
    自动驾驶图像全景分隔,基于HRnetSegmentation从训练工程到tensorRT工程部署Demo闭环一套,包含训练工程及部署工程,和环境的配置说明,已在实际项目中使用。大厂自动驾驶工程师沉淀实实在在的工作经验总结资料是一线自动驾驶工程师辛苦工作的结果。ID:3150671806789047......
  • IC99680: SEGMENTATION FAULT AND CRASH DURING DSMSERV FORMAT COMMAND
      APARstatusClosedasprogramerror. ErrordescriptionThedsmservformatprocesscancrashwithasegmentationfaultwheninitiatedbyanadministratorduringmanualinstanceconfiguration.Forexample:$/opt/tivoli/tsm/serv......
  • M3AE: Multimodal Representation Learning for Brain Tumor Segmentation with Missi
     摘要 提出SimCLR,用于视觉表征的对比学习,简化了最近提出的对比自监督学习算法,为了理解是什么使对比预测任务能够学习有用的表示,系统研究了提出框架的主要组成部分,发现:(1)数据增强的组成在定义有效的预测任务中起着关键的作用(2)在表示和对比损失之间引入一个可学习的非线性变换......
  • 【segmentation fault】std::string析构崩溃
    今天写了一个小工具,运行时发生segmentationfault,现象如下第一步:review崩溃附近代码,产生疑惑,崩溃的地方居然是变量定义的地方std::stringaccessToken;崩溃在这个地方,我直接懵了,只是变量定义为啥会报错,没有任何思路,打算单步调试。第二步:单步调试代码,发现并且是定义的时候崩......
  • [CVPR2020] RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clou
    大佬的TensorFlow代码:here另一个大佬的Pytorch代码:等我看完代码再贴链接,之前那个不太行keywords高分辨率点云——约\(10^5\)点云语义分割多层次特征在正式开始......