点击上方“计算机视觉工坊”,选择“星标”

干货第一时间送达

作者丨小马

编辑丨极市平台

导读

不同的处理范式使得语义分割和实例分割存在很大的gap,极大了影响力图像分割领域一起发展。因此本文作者提出将实例分割任务和语义分割任务都用mask分类的范式来处理,并在性能上能够超过当前per-pixel分类的处理范式。

写在前面

在处理语义分割任务和实例分割任务的时候,以前的工作大多采用不同的任务范式。对于语义分割,大多都是作为per-pixel的分类任务来处理;对于实例分割,大多都是作为mask的分类任务来处理。

这种不同的处理范式使得语义分割和实例分割存在很大的gap,极大了影响力图像分割领域一起发展。因此作者就提出了,将实例分割任务和语义分割任务都用mask分类的范式来处理,并在性能上能够超过当前per-pixel分类的处理范式。

0. 基础知识

1)什么是语义分割(semantic segmentation)、实例分割(instance segmentation)、全景分割(panoptic segmentation)?

(参考:https://zhuanlan.zhihu.com/p/368904941)

语义分割 :对图像中的每个像素打上类别标签,如下图,把图像分为人(红色)、树木(深绿)、草地(浅绿)、天空(蓝色)标签。

实例分割 :目标检测和语义分割的结合,在图像中将目标检测出来(目标检测),然后对每个像素打上标签(语义分割)。对比上图、下图,如以人(person)为目标,语义分割不区分属于相同类别的不同实例(所有人都标为红色),实例分割区分同类的不同实例(使用不同颜色区分不同的人)。

全景分割 :语义分割和实例分割的结合,即要对所有目标都检测出来,又要区分出同个类别中的不同实例。对比上图、下图,实例分割只对图像中的目标(如上图中的人)进行检测和按像素分割,区分不同实例(使用不同颜色),而全景分割是对图中的所有物体包括背景都要进行检测和分割,区分不同实例(使用不同颜色)

1. 论文和代码地址

Per-Pixel Classification is Not All You Need for Semantic Segmentation

论文地址:https://arxiv.org/abs/2107.06278

代码地址:https://github.com/facebookresearch/MaskFormer

2. Motivation

目前语义分割大多被看做是一个像素级别的分类任务,而实例分割确是一个mask级别的分类任务。虽然都是分割任务,但是他们的结构却存在这么大的区别,因此作者就提出了这样的疑问:是不是可以都用mask分类来简化语义分割和实例分割的范式呢?是否mask分类能够在语义分割任务上表现比per-pixel分类的方法更好呢?

基于上面的问题,作者在这篇论文中提出,其实mask分类是非常通用的,完全可以用mask分类来统一语义分类和实例分类的范式。因此,作者提出了MaskFormer,能够将现有的per-pixel分类的模型转换为mask分类的模型。

为了验证MaskFormer的有效性,作者在五个语义分割的数据集(Cityscapes (19 classes), Mapillary Vistas (65 classes), ADE20K (150 classes), COCO-Stuff-10K (171 classes), ADE20K-Full (847 classes))上做了实验。在Cityscapes数据上,MaskFormer的性能和per-pixel分类的方式性能相近,因为这个数据集的类别比较少。在数据集中的类别比较多时,MaskFormer能够比per-pixel分类的模型性能更好。

基于Swin-Transformer的backbone,MaskFormer在ADE20K这个数据集上达到了新的SOTA性能(55.6mIoU),比相同backbone下per-pixel分类的方法性能高2.1mIoU,并且少了10%的参数量和40%的计算量。

在全景分割任务上,MaskFormer的性能也比DETR更好,并且在COCO数据集上达到了52.7PQ的SOTA性能,比原来的SOTA高出了1.6PQ。

3. 方法

3.1.  Per-pixel classification formulation

如上图(左)所示,per-pixel的分类其实就是把分割任务看做是一个对每一个像素点都进行一次分类的任务,对于一张






的图片,模型输出的结果就是,其中







是一个K维的概率分布,K为数据集中类别的数量。

由于是一个分类任务,所以per-pixel的损失函数其实就是每个像素点的cross-entropy损失函数的和,也就是下面的公式:

3.2.  Mask classification formulation

如上图(右)所示,mask分类的模型将分割任务转换成了两个步骤,第一是将图像划分成N个不同的区域,用binary mask表示(这一步只是划分出了不同类别的区域,但并没有做分类 ),第二是将区域作为一个整体与K个类别进行对应(这一步就是将不同区域分为不同的类 )。

最终模型的损失函数为第一步中分割任务的损失函数












和第二步中分类任务的损失函数的和,可以表示成下面的公式:

3.3. MaskFormer

MaskFormer的结构如上图所示,主要可以分为三个部分:

1)pixel-level module:用来提取每个像素embedding(灰色背景部分)

2)transformer module:用来计算N个segment的embedding(绿色背景部分)

3)segmentation module:根据上面的per-pixel embedding和per-segment embedding,生成预测结果。(蓝色背景部分)

3.3.1. Pixel-level module

在Pixel-level module中,首先用backbone对图片的H和W进行压缩,通道维度进行提升,提取视觉特征




,这一部分和正常CNN提取特征类似。然后用一个pixel Decoder去将长宽重新转换为H和W。

3.3.2. Transformer module

Transformer module的结构就是标准的Transformer Decoder的结构,根据视觉特征




和N个可学习的query来计算输出。

3.3.3. Segmentation module

Segmentation  module就是一个FC的结构,后面接上softmax激活函数。它的输出就是segment的概率估计,因此根据这个概率估计和GroundTruth做分类的损失。

对于mask的预测,作者将per-segment embedding通过一个两层的MLP转换成了N个mask embedding。接着,作者将mask embedding和per-pixel embedding进行了点乘,后面接上了sigmoid激活函数,来获得最后mask的预测结果。

4.实验

4.1. 语义分割

上表比较了在ADE20K数据集上,MaskFormer和per-pixel分类模型的性能。可以看出,MaskFormer在语义分割方面具有显著的潜力。

除了ADE20K之外,作者还比较了在其他数据集上的性能,可以看出在其他数据集上MaskFormer相比于per-pixel分类baseline方法,具有很大的优越性。

4.2. 全景分割

可以看出,MaskFormer在全景分割任务上也能达到非常好的效果,并能够在ADE20K数据集上达到新的SOTA效果。

4.3. 消融实验

4.3.1. Per-pixel vs. mask classification

从上表中可以看出,per-pixel的方法转换到MaskFormer的方法能够带来性能的提升。

4.3.2. Number of queries

为了探究query数量N对实验结果的影响,作者也做了消融实验。随着N数量的上升,模型的性能先上升在下降,N=100时,模型能够达到比较好的性能。

4.3.3. Number of Transformer decoder layers

可以看出六层的Transformer Decoder比一层的效果更好。

5. 总结

语义级分割和实例分割之间的范式差异导致每个任务需要完全不同的模型,阻碍了整个图像分割的发展。作者通过实验表明,一个简单的mask分类模型可以优于SOTA的per-pixel分类模型,特别是在存在大量类别的情况下。本文提出的MaskFormer在全景分割任务上也保持着很强的竞争力,最重要的不需要改变模型架构、损失或训练过程。

这篇文章将语义分割是实例分割的范式进行了融合,极大的减小了语义分割和实例分割的gap,确实是一篇很有意义的工作。

本文亮点总结

1.作者在这篇论文中提出,其实mask分类是非常通用的,完全可以用mask分类来统一语义分类和实例分类的范式。因此,作者提出了MaskFormer,能够将现有的per-pixel分类的模型转换为mask分类的模型。

2.作者通过实验表明,一个简单的mask分类模型可以优于SOTA的per-pixel分类模型,特别是在存在大量类别的情况下。本文提出的MaskFormer在全景分割任务上也保持着很强的竞争力,最重要的不需要改变模型架构、损失或训练过程。

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「计算机视觉工坊」公众号后台回复:深度学习,即可下载深度学习算法、3D深度学习、深度学习框架、目标检测、GAN等相关内容近30本pdf书籍。

下载2

在「计算机视觉工坊」公众号后台回复:计算机视觉,即可下载计算机视觉相关17本pdf书籍,包含计算机视觉算法、Python视觉实战、Opencv3.0学习等。

下载3

在「计算机视觉工坊」公众号后台回复:SLAM,即可下载独家SLAM相关视频课程,包含视觉SLAM、激光SLAM精品课程。

重磅!计算机视觉工坊-学习交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

用简单Mask分类实现语义分割、实例分割“大一统”!FacebookUIUC开源MaskFormer相关推荐

  1. 基于三维点云场景的语义及实例分割:RandLA-Net和3D-BoNet

    本文整理自牛津大学的杨波和胡庆拥在深蓝学院的线上公开课论文演讲.两位作者都是来自牛津大学的博士生,RandLA-Net和3D-BoNet分别发表在CVPR20和NeurIPS19上,两份工作都具有非常 ...

  2. Mask RCNN综述以及建筑物实例分割

    基于Mask RCNN建筑物轮廓识别 介绍 实例分割研究综述 问题与难点 实例分割的基本流程 实例分割主要技术路线 自上而下的实例分割方法 自下而上的实例分割方法 实例分割方法的发展历程 实例分割方法 ...

  3. 【CV】Mask R-CNN:用于目标实例分割的通用框架

    论文名称:Mask R-CNN 论文下载:https://arxiv.org/abs/1703.06870 论文年份:2017 论文被引:18354(2022/05/03) Abstract We p ...

  4. CV之IS:计算机视觉之图像分割(Image Segmentation)算法的挑战任务、算法演化、目标检测和图像分割(语义分割/实例分割/全景分割)的对比

    CV之IS:计算机视觉之图像分割(Image Segmentation)算法的挑战任务.算法演化.目标检测和图像分割(语义分割/实例分割/全景分割)的对比 相关文章 CV之IS:计算机视觉之图像分割( ...

  5. 视频语义显著实例分割数据集SESIV

    视频区域中,显著区域中有语义意义的组建,即语义显著实例.为解决视频语义显著实例分割,来自日本SOKENDAI和National Institute of Informatics的学者构建了一个新的数据 ...

  6. matlab 图像分割 提取人像_几种典型的图像处理技术(分类 目标提取 目标跟踪 语义分割 实例分割)...

    目前,在处理海上无人艇的感知系统的开发.其中,比较核心的一个部分就是基于光电的目标识别(Object Detection). 任务目标 如图所示,从包含舰艇的图片中,标识舰艇的位置 本文的学习笔记,主 ...

  7. 何恺明团队推出Mask^X R-CNN,将实例分割扩展到3000类

    翻译 | AI科技大本营(ID:rgznai100) 参与 | shawn,刘畅 今年10月,何恺明的论文"Mask R-CNN"摘下ICCV 2017的最佳论文奖(Best Pa ...

  8. 完美替代Mask RCNN!BlendMask:实例分割新标杆

    点击我爱计算机视觉标星,更快获取CVML新技术 今天新出的论文BlendMask: Top-Down Meets Bottom-Up for Instance Segmentation,提出一种自顶向 ...

  9. 2021-08-27 分割之后mask在原图中提取出来(语义分割—实例分割)

    1.生成分割后的mask 原图和mask如下: 2.mask二值化 from PIL import Image import matplotlib.pyplot as plt import numpy ...

  10. 字节跳动实习生提出实例分割新方法:性能超过何恺明Mask R-CNN

    乾明 十三 发自 凹非寺 量子位 报道 | 公众号 QbitAI 框架更简单,但实现了比Mask R-CNN还好的性能. 这是字节跳动实习生提出的实例分割新方法,名为SOLO. 核心在于通过引入&qu ...

最新文章

  1. 医院数据中心机房建设资料汇总(31篇)
  2. linux内核kfifo(一)
  3. 第十五讲 傅里叶级数引入
  4. 强大的Mockito测试框架(转)
  5. 成为一名优秀数据分析师的必经之路
  6. URLSearchParams 接口
  7. 用python写helloworld_Python Helloworld程序简单实现
  8. 计算机专业大学排名_U.S.News全美大学排名出炉:UCLA超越伯克利;计算机MIT排第一,斯坦福跌出前四...
  9. Spring Boot通过@RequestParam接收前端表单传来的数据
  10. 中关村海龙大厦-买本上当经历给大家提个醒
  11. dwr框架java解析excel_dwr poi java 将excel 导出到客户端
  12. C#中计算两个时间的差
  13. Debian下安装万兆网卡驱动
  14. 老旧小区智慧用电改造方案
  15. java使用itext合并pdf文件
  16. [3D图形学]视锥剔除入门(翻译)
  17. 公众号两年,粉丝一万,收益五千。
  18. 【程序员的自我修养】[动态图文] 超详解函数栈帧
  19. python商品销售情况数据分析_用python分析小红书销售情况
  20. 简智音科技:抖音与快手相比,谁的前景更好?

热门文章

  1. Python-运算符和其优先级
  2. Hadoop 参数配置优化
  3. 一段获取视频的简易方法
  4. [引]VS2005帮助文档 : 加密 概述
  5. Memcached在Windows7上的安装问题
  6. Java编程实现获取本机IP和计算机名的功能
  7. SpringBoot建立数据库连接JdbcTemplate和Mybatis两种方式
  8. plsql设置代码提示和自动补全
  9. C#读取所有PC中所有进程
  10. procedure mysql_所有子节点、Procedure、MySQL