用简单Mask分类实现语义分割、实例分割“大一统”!Facebook&UIUC开源MaskFormer

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

干货第一时间送达

作者丨小马

编辑丨极市平台

导读

 

不同的处理范式使得语义分割和实例分割存在很大的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天内无条件退款

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

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

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值