分割预研 -- 2022.5

2023-11-11

MMSegmentation

MMSegmentation:标准统一的语义分割框架
非常好的分割开源集成框架:
https://link.zhihu.com/?target=https%3A//github.com/open-mmlab/mmsegmentation

研究现状

受到阈值分割方法的启发,在早期图像分割常用传统的阈值分割方法结合具体的使用场景
手动设计特征并调参进行场景分割,基于阈值的二值分割的算法得到广泛应用。这一系列基
于传统图像处理技术的分割方法有着较大的局限性,适用的分割场景也较为简单,容易受到光照环境变化干扰,泛化能力不足。因此阈值分割算法逐渐被基于聚类的方法取代。虽然基于聚类的无监督方法可以获得一定的场景泛化能力来应对光线变化,但仅使用二维图像对复杂场景分割的精度依旧有限且难以进行场景感知,亦存在较多局限性。针对室内场景目标多种多样,各目标之间差异较大,比如有靠椅、有凳子等,传统图像算法难以完整的分割出目标,且难以获得类别标签等更多的信息。近年来,随着GPU 算力的增长以及数据集的完善,基于深度学习的语义分割算法飞速发展,图像分割技术水平大幅提高,可以实现图像像素级分类,目标分割完整度得到大大 提升,进而分割精度得到大大提升Long等人于 2014 年提出了全卷积网络进行语义分割,该网络实现了端到端的逐像素分类,是深度学习语义分割方法的基石。而后,Unet、Deeplab、Pspnet等深度学习相关方法层出不穷。
具体可分为以下几类:完全卷积网络、深度卷积编码-解码架构、采用膨胀(空洞)卷积的多尺度背景分割、用于高分辨率语义分割的多路径细化网络、金字塔场景解析网络。近年来,近一年来,Transformer 在计算机视觉领域所带来的革命性提升,引起了学术界的广泛关注,有越来越多的研究人员投入其中,基于Transfomer的分割方法也在各个数据集上取得了具有强竞争力的实验结果。

SegFormer

论文地址: https://arxiv.org/pdf/2105.15203.pdf
代码: https://github.com/NVlabs/SegFormer

1. 背景
有效感受野:对于语义分割来说最重要的问题就是如何增大感受野,首先对于CNN encoder来说,有效感受野是比较小且局部的,所以需要一些decoder 的设计来增大有效感受野,比如ASPP里利用了不同大小的空洞卷积来实现这一目的。但是对于Transformer encoder来说,由于 self-attention这一牛逼的操作,有效感受野变得非常大,因此decoder 不需要更多操作来提高感受野

2. 模型
在这里插入图片描述
1.使用分层次的encoder结构,输出多尺度的特征,并在decoder中将其融合在一起。这类似于CNN里面将浅层特征图与深层特征图融合的做法,目的是使得高分辨率粗粒度的特征和低分辨率细粒度的特征能一起被捕捉到并优化分割结果
2.设计更加适合语义分割的Transformer Encoder
(1)patch设计成有overlap的,这样可以保证局部连续性
(2)彻底去掉了Positional Embedding, 取而代之的是Mix FFN。
Mix-FFN假设zero padding操作会汇入位置信息, , 即在feed forward network中引入3x3 deepwise conv传递位置信息
3.没有像SETR中那样复杂的decoder
设计简单轻量级的的MLP Decoder
仅有几个MLP 层。首先我们会对不同层的Feature分别过一个linear层确保他们的channel维度一样,其次都上采样到1/4分辨率并concat起来,再用一个linear层融合,最后一个linear层预测结果

3. 实验结果:
在这里插入图片描述
SegFormer不仅在经典语义分割数据集(如:ADE20K, Cityscapes, Coco Stuff)上取得了SOTA的精度同时速度也不错(见图1),而且在Cityscapes-C(对测试图像加各种噪声)上大幅度超过之前的方法(如:DeeplabV3+),反映出其良好的鲁棒性。
此外,作者验证了Segformer对于大型模型和小patch sizes而言,性能更好。分割器在语义分割上取得了极好的效果。

segmentor:Transformer for Semantic Segmentation

代码:https://github.com/rstrudel/segmenter
论文:https://arxiv.org/abs/2105.0563

1. 背景

根据设计,transformer 可以捕获场景元素之间的全局交互,并且没有内置的感应先验,然而,全局交互的建模需要二次方成本,这使得这些方法在应用于原始图像像素时非常昂贵。继 Vision Transformers (ViT) 的最新研究之后,将图像分割成小块,并将线性小块嵌入作为 Transformers 编码器的输入 tokens。然后由 transformer 解码器将编码器产生的上下文化 tokens 序列上采样为逐像素类分数。对于解码,本文考虑一个简单的逐点线性映射的 patch 嵌入到类分数,或者一个基于 transformer 的解码方案,其中可学习的类嵌入与 patch tokens 一起处理以生成类 mask。

2.模型

Segmenter 基于一个完全基于转换器的编码器-解码器架构,它将一系列 patch 嵌入映射到像素级的类注释。模型的概览如图所示。patch 序列由变压器编码器编码,并由mask Transformer 解码。本文的模型采用逐像素交叉熵损失的端到端训练。在推理时,上采样后应用 argmax,获得每个像素单类。解码阶段采用了联合处理图像块和类嵌入的简单方法,解码器Mask Transformer可以通过用对象嵌入代替类嵌入来直接进行全景分割。
在这里插入图片描述

3.结果
在这里插入图片描述
广泛的消融研究了不同参数的影响,特别是性能更好的大模型和小 patch 尺寸。分割器获得了良好的语义分割效果。它在具有挑战性的 ADE20K 数据集上的性能优于现有水平,在Pascal Context 和 Cityscapes 上的性能与现有水平相当。

Maskformer

1.背景
现在的方法通常将语义分割制定为per-pixel classification任务,而实例分割则使用mask classification来处理。
本文作者的观点是:mask classification完全可以通用,即可以使用完全相同的模型、损失和训练程序以统一的方式解决语义和实例级别的分割任务。

提出了一个简单的mask classification模型——MaskFormer,预测一组二进制掩码,每个掩码都与单个全局类标签预测相关联,并且可以将任何现有的per-pixel classification模型无缝转换为mask classification。

掩码分类将分割任务拆分为
1)将图像划分/分组为N个区域(N不需要等于K),用二值掩码表示;
2)将每个区域作为一个整体与 K 个类别的分布相关联。

2. 模型

在这里插入图片描述

MaskFormer包含三个模块:
1) 像素级模块:用于提取图像特征的backbone和用于生成per-pixel嵌入的像素级解码器;
Backbone可采用 FPN等,经过Backbone之后,对解码器中的低分辨率特征图进行 2× 上采样,并将其与来自主干的相应分辨率的投影特征图(投影是为了与特征图维度匹配,通过1×1 卷积层+GroupNorm实现)相加。 接下来,通过一个额外的 3×3 卷积层+GN+ReLU将串联特征融合。 重复这个过程,直到获得最终特征图。最后,应用单个 1×1 卷积层来获得peri-pixel嵌入。

2) Transformer模块:使用堆叠的Transformer解码器层计算N个per-segment嵌入;
使用标准 Transformer 解码器(与 DETR 相同) 从图像特征 F 和 N 个可学习的位置嵌入(即查询)计算输出N 个per-segments嵌入 Q ,它编码了 MaskFormer 预测的每个段的全局信息。 与 DETR 类似,解码器并行生成所有预测。N 个查询嵌入初始化为零向量且各与一个可学习的位置编码相关联。本文使用 6 个 Transformer 解码器层和 100 个查询,并且在每个解码器之后应用 DETR 相同的损失。实验中,作者观察到 MaskFormer 在使用单个解码器层进行语义分割也相当有竞争力,但在实例分割中多个层对于从最终预测中删除重复项是必要的。
3)分割模块:从上述两个embeddings生成预测结果的概率-掩码对。
使用一个带softmax 激活的线性分类器,在per-segments嵌入 Q 上产生类概率预测。且预测一个额外的“无对象”类别 (∅) 来防止嵌入不对应任何区域。
对于Mask预测,使用包含 2 个隐藏层的多层感知器 (MLP) 将per-segments嵌入 Q 转换为 N 个Mask嵌入 Emask。
最后,通过计算的第 i 个Mask嵌入和per-pixel嵌入之间的点积获得对应的二值掩码预测 mi(点积后使用 sigmoid 激活)

3.实验结果
在这里插入图片描述

MaskFormer 的性能优于SOTA的语义分割模型(ADE20K 上的 55.6 mIoU)和全景分割模型(COCO 上的 52.7 PQ),特别是类别数量很大时, MaskFormer不仅结果更好,而且速度更快参数更少。

总结

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分割预研 -- 2022.5 的相关文章

随机推荐

  • lv4 嵌入式开发-4 标准IO的读写(二进制方式)

    目录 1 标准I O 按对象读写 2 标准I O 小结 3 标准I O 思考和练习 文本文件和二进制的区别 存储的格式不同 文本文件只能存储文本 除了文本都是二进制文件 补充计算机内码概念 文本符号在计算机内部的编码 计算机内部只能存储数字
  • SpringCloud搭建分布式服务架构(通俗易懂,步骤清晰)(转载)

    问题引入 什么是SpringCloud 在了解这个之前需要有微服务的概念 基于springBoot的一套实现微服务的框架 提供了微服务所需的配置管理 基于Http协议的restful风格 返回异步数据 SpringCould组件架构图 在这
  • python如何安装sklearn库_1.sklearn库的安装

    sklearn库 sklearn是scikit learn的简称 是一个基于Python的第三方模块 sklearn库集成了一些常用的机器学习方法 在进行机器学习任务时 并不需要实现算法 只需要简单的调用sklearn库中提供的模块就能完成
  • 微信小程序:canvas生成图片分享

    背景 小程序通常会开发生成图片 分享到朋友圈的功能 如图所示该图片由 背景图 用户上传图片 用户昵称 小程序码构成 首先 在小程序里进行绘图操作需要用到
  • java 方法引用无效_java – 方法引用 – 无效的方法引用 – 不能从静态上下文引用...

    因为StringJoiner length占用零个参数 所以方法引用总是需要一个StringJoiner 任意实例 并返回一个整数 换句话说 第一个分配的方法ref等效于 Function lengthFunc new Function O
  • Ubuntu12.0.4 安装xmpp 服务器ejabberd

    http www cnblogs com dyingbleed archive 2013 04 04 2999885 html
  • 计算机图形学常用算法实现3 多边形扫描转换算法-扫描线算法

    运行环境 vs2015 winform 其他环境只需要替换对应的画点画线算法即可 这个算法其实很复杂的 实现起来需要有耐心 一步一步按照算法思路来写代码 在算法中 我使用的是静态链表 c 没有指针 下面的AET为活性边表 NET存储新边表
  • JS 数组转其他格式

    let arr 1 2 const arr 1 2 const newArr arr map item gt return key item value item console log newArr key 1 value 1 key 2
  • PyTorch学习笔记9

    PyTorch学习笔记9 整理笔记视频来源 问答系统 文本摘要系统 大规模预训练语言模型 一 问答系统 SQuAD数据集 给定一段文字作为context 给定一个问题question 从context中寻找一段连续的文字 text span
  • 毕业三周年,又一个离别季

    今天应该算是一个特别的日子 2011年的6月23日 我正式离校了 当时分别的场景还依稀在眼前展现 虽然我们没有跟别人一样哭的稀里哗啦 但是谁心里都明白 以后见面的日子真的不会太多 今天是2014年6月23日 看着很多人在空间发表大学生涯结束
  • 【超分顶会详解+部署】ESRT:Transformer for Single Image Super-Resolution

    文章目录 ESRT 1 超分基本知识 1 1 SRF 1 2 xxx img 1 3 裁剪 1 4 超分模型评估标准 2 LCB LTB 模块 2 1 序列模型 3 损失函数 4 部署运行 4 1 数据集 4 1 1 训练集 4 1 2 验
  • [专利与论文-19]:江苏省南京市2022年电子信息申报通知(中、高级)

    官网地址 南京人力资源和社会保障学会 官网通知 南京人力资源和社会保障学会 申报时间 2022 6 21到2022 07 29 过时不候 2021年申报地址 网上学习 江苏人社网办大厅 南京人社网上办事大厅 2022年申报地址 江苏省人力资
  • 华为OD机试 - We Are A Team

    题目描述 总共有 n 个人在机房 每个人有一个标号 1 lt 标号 lt n 他们分成了多个团队 需要你根据收到的 m 条消息判定指定的两个人是否在一个团队中 具体的 消息构成为 a b c 整数 a b 分别代表两个人的标号 整数 c 代
  • 计算机日期函数公式大全,常用的Excel日期函数大全

    Excel日期大家都会用 但是你知道Excel中有多少日期和时间函数吗 Excel为我们提供了大约20个日期和时间函数 这些函数对于处理表格中的日期数据都是非常有用的 下面介绍几个常用的Excel日期函数及其实际应用案例 1 处理动态日期
  • 对区块链的分析理解

    概述 狭义来讲 区块链是一种按照时间顺序将数据区块以链条的方式组合成特定数据结构 并以密码学方式保证的不可篡改和不可伪造的去中心化共享总账 Decentralized shared ledger 能够安全存储简单的 有先后关系的 能在系统内
  • PowerOJ2512: 小红灌溉【染色】

    题目链接 划重点 每个有菜的点只能浇一次且恰好一次 所以意思就是 譬如某个菜的位置是 x y 那么 行x 列y的浇水方案只能使用其中的一个 以此类推 我们给每个有蔬菜的位置的 x y 的x点与y点链接一条无向边 代表x和y只能选择其中的一个
  • MySQL5.7.xx安装卡在Staring the server解决方案--亲测有效

    安装mysql时卡在Staring the server 一般是两个问题 之前安装过mysql 卸载不彻底 你的电脑名称中有中文 我当时用在网上查找的方法 将mysql删除之后 依旧卡在Staring the server这个地方 接着重新
  • 《数据分析原理》:6步解决业务分析难题

    点击上方卡片关注我 回复 8 加入数据分析 领地 一起学习数据分析 持续更新数据分析学习路径相关资料 精彩数据观点 学习资料 数据课程分享 读书会 分享会等你一起来乘风破浪 回复 小飞象 领取数据分析知识大礼包 读书交流 7期 数据分析原理
  • IntelliJ IDEA 下载安装教程,超详细图文教程

    1 IDEA 下载 1 打开浏览器输入https www jetbrains com 进入 Jetbrains官网 点击 Developer Tools 再点击 Intellij IDEA 2 点击中间的 Download 进入IDEA下载
  • 分割预研 -- 2022.5

    MMSegmentation MMSegmentation 标准统一的语义分割框架 非常好的分割开源集成框架 https link zhihu com target https 3A github com open mmlab mmsegm