【达摩院OpenVI】开源CVPR快速实例分割FasInst模型

news/2024/11/24 11:33:57/

团队模型、论文、博文、直播合集,点击此处浏览

一、论文&代码

论文:https://arxiv.org/abs/2303.08594

模型&代码:https://modelscope.cn/models/damo/cv_resnet50_fast-instance-segmentation_coco/summary

二、背景

        实例分割旨在分割图像中所有感兴趣的物体。传统的以mask rcnn [1]为代表的双阶段实例分割方案遵循先检测后分割的理念,尽管简单直观,但那些方法会生成大量的重复区域提议,从而引入大量冗余的计算。为了提高计算效率,许多建立在全卷积网络上的单阶段方法涌现,例如SOLO [2]等。 他们放弃了区域提议操作,端到端地一步到位实现物体种类预测和掩码生成。这类方法推理速度很快,在实际部署时很有吸引力。然而,由于这些基于全卷积的单阶段方案仍采用密集预测的方式,他们仍然避免不开繁重的手工设计后处理步骤,例如非最大抑制等。

        最近,随着 DETR [3]在目标检测方面的成功,基于查询的单阶段实例分割方法应运而生。这类方法利用通用且强大的注意力机制,结合一系列可学习的查询来推断目标物体种类和分割掩码。例如,Mask2Former [4]简化了图像分割的工作流程,通过在主干之上添加像素解码器和带掩码的Transformer解码器来进行分割。 与以往的方法不同,Mask2Former 不需要额外设计的手工组件,例如训练目标分配器和 NMS 后处理。 虽然结构优雅,但Mask2Former 有其自身的问题:(1)它需要大量的解码器层来解码目标查询,因为它的查询是静态的,需要一个漫长的过程来迭代改进; (2) 它依赖繁重的像素解码器结构,因为它的目标分割掩码的特征直接来源于该像素解码器输出,这些输出被用作区分不同目标的特征嵌入; (3) 它使用的带掩码的交叉注意力层限制了每个query的感受野,可能导致transformer解码器陷入局部次优的query更新过程。

        虽然 Mask2Former 取得了出色的性能,但其在快速、高效的实例分割方面的优势还没有得到很好的证实,而这些优势对于许多现实世界的应用(例如自动驾驶和机器人技术等)至关重要。 事实上,由于先验知识的缺乏和昂贵的计算代价,基于查询的模型的效率普遍不尽如人意。高效实时实例分割基准仍然由经典的基于卷积的模型主导 [5]。

二、方法

在本文中,我们通过提出 FastInst 来填补基于查询的模型速度优势欠缺这一空白。FastInst 是一种简洁有效的基于查询的实时实例分割框架。 我们证明了基于查询的模型可以在保持快速的情况下在实例分割任务上取得出色的性能,在高效的实例分割算法设计方面展示出巨大潜力。 例如,我们设计的使用 ResNet-50 主干的最快的基于查询的模型在 COCO test-dev 上以 53.8 FPS(每秒帧数,单个 V100 GPU)的速度实现了 35.6 AP(参见上图); 此外,我们最好的权衡模型可以以 32.5 FPS 的实时速度执行,同时产生超过 40(即 40.5)的 AP,据我们所知,在相同设置下,这在以往方法中从未达到过。

具体来说,FastInst 遵循 Mask2Former 的元架构。 为了实现高效的实时实例分割,FastInst 引入了三个关键模块:

(1)基于实例激活引导的查询。FastInst 使用从像素解码器中动态选择具有高语义的像素嵌入作为Transformer 解码器的初始查询。与静态可学习查询相比,这些选择的动态查询包含丰富的潜在对象嵌入信息,减少了 Transformer 解码器的迭代更新负担。具体来说,FastInst 首先在像素解码器输出后接上一个辅助分类头,该辅助分类头预测每个像素归属于每个类别的概率 ,其中 是像素位置, 是类别下标。在推理时,首先确定每个像素归属的类别 ,然后选取 较大的那些位置的特征。为了避免冗余特征的选取,这里我们引入一个局部极大值选取法,即首先选取 是那些在相应通道上是极大值的点,即 ,这里 是位置 的 8 邻域下标集合,再选取 最大的那些点。在推理时,FastInst 采用匈牙利匹配为每个实例分配激活目标点。为了使每个实例都有正确的激活点而不会被其他位置具有相似语义的点所激活,FastInst 在分配目标时引入一个location cost。该location cost背后的直觉是只有落在对象内部的像素点才有理由推理出该对象的类别和掩码嵌入。同时,该location cost也减小了匹配空间,加快模型训练收敛。

(2)双路径Transformer解码器结构。FastInst 在Transformer解码器中采用双路径更新策略。如上结构图所示,一个 Transformer 解码器层包含一个像素特征更新层和一个查询更新层。 整个过程就像一个 EM 聚类算法。E步:根据所属的中心(即查询)更新像素特征; M 步:更新聚类中心(查询)。与传统的单路径更新策略相比,双路径更新策略同时优化了像素特征和查询,减少了对繁重像素解码器的依赖,获得了更细粒度的特征嵌入。

(3) GT掩码引导的Transformer解码器学习。在Mask2Former中,作者证实了在Transformer解码器中使用带有预测掩码的交叉注意力层可以提高模型分割性能。虽然这种带有预测掩码的交叉注意力层引入了稀疏先验知识,加快了模型收敛,提升了性能,但它限制了每个查询的感受野,这可能导致Transformer解码器陷入局部次优的查询更新过程。为了缓解这个问题,FastInst 引入了GT 掩码引导的学习。具体而言,FastInst使用最后一个解码器层的每个查询所匹配到的GT 掩码来替换前面每一解码器层中使用的带有前一层预测掩码的交叉注意力层中的预测掩码。对于在最后一层不匹配任何实例的查询,则不替换转而使用标准的交叉注意力。然后,FastInst使用替换过后的的交叉注意力层以及原来每个 Transformer 解码器层的输出作为输入再次前向传播每一个 Transformer 解码器层。 新的输出按照与最后一层相同的固定匹配进行监督。这种固定匹配保证了每个Transformer解码器层输出预测的一致性。同时通过这种引导学习,我们允许每个查询在训练期间看到其目标预测对象的整个区域,这有助于模型学习到更合理的带有掩码的交叉注意力区域。

通过这些模块,FastInst 获得了既快又好的性能。在COCO基准上,相同实验设置下,FastInst 超越了以往大多数实时实例分割算法。

三、实验结果

1. 消融实验

(1)基于实例激活引导的查询

(2)双路径Transformer解码器结构

(3)GT掩码引导的Transformer解码器学习

2. SOTA对比

3. 效果展示

4. 拓展实验

FastInst也适用于一般图像分割任务,包括语义分割和全景分割。

四、参考文献

[1] Kaiming He, Georgia Gkioxari, Piotr Dollar, and Ross Gir- ´ shick. Mask R-CNN. In ICCV, 2017.

[2] Xinlong Wang, Tao Kong, Chunhua Shen, Yuning Jiang, and Lei Li. SOLO: Segmenting objects by locations. In ECCV, 2020.

[3] Nicolas Carion, Francisco Massa, Gabriel Synnaeve, Nicolas Usunier, Alexander Kirillov, and Sergey Zagoruyko. End-toend object detection with transformers. In ECCV, 2020.

[4] Bowen Cheng, Ishan Misra, Alexander G. Schwing, Alexander Kirillov, and Rohit Girdhar. Masked-attention mask transformer for universal image segmentation. In CVPR, 2022.

[5] Tianheng Cheng, Xinggang Wang, Shaoyu Chen, Wenqiang Zhang, Qian Zhang, Chang Huang, Zhaoxiang Zhang, and Wenyu Liu. Sparse instance activation for real-time instance segmentation. In CVPR, 2022.

五、其他开源

        另外给大家介绍下CV域上的开源免费模型,欢迎大家体验、下载(大部分手机端即可体验):

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_ddsar_face-detection_iclr23-damofd/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_resnet50_face-detection_retinaface/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_resnet101_face-detection_cvpr22papermogface/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_manual_face-detection_tinymog/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_manual_face-detection_ulfd/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_manual_face-detection_mtcnn/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_resnet_face-recognition_facemask/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_ir50_face-recognition_arcface/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_manual_face-liveness_flir/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_manual_face-liveness_flrgb/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_manual_facial-landmark-confidence_flcm/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_vgg19_facial-expression-recognition_fer/summary

ModelScope 魔搭社区https://modelscope.cn/models/damo/cv_resnet34_face-attribute-recognition_fairface/summary


http://www.ppmy.cn/news/766382.html

相关文章

关于layui实现按钮点击添加行的功能

关于layui实现按钮点击添加行的功能 实现效果 代码实现 <!DOCTYPE html> <html lang"zh" xmlns:th"http://www.thymeleaf.org"> <head><meta charset"UTF-8"><title>Title</title><link rel"styl…

lena.raw图片文件下载及打开方式

链接&#xff1a;lena.raw文件的百度网盘 https://pan.baidu.com/s/1C0HLhc81Y73mGnKrTG7qtQ 提取码&#xff1a;z2nw 打开方式&#xff1a; 1.使用Photoshop打开 注意&#xff1a;需要设置像素&#xff0c;如图 2.使用python打开 参考博客&#xff1a;https://blog.csdn.net/…

有手就能学会的,通过提取系统Boot来获取Root权限

提取官方刷机包boot文件获取root权限的方法 没有REC也好,刷入不了第三方REC也好,这一期教程可以解决这个问题 1,打开手机设置,关于手机里,看下自己系统版本找一个刷机包,下载到电脑(手机下载,后期复制到手机也行,也可以直接提取本机boot),解压.zip文件,找到boot.…

总结整理Echarts双y轴曲线图(全)

最近因为项目需要&#xff0c;用到了Echarts&#xff0c;自己学习了相关东西&#xff0c;也参考了一些文件&#xff0c;最终把双y轴曲线图实现了&#xff0c;跟大家分享一下。下面是最终需要的效果图&#xff1a; 不多说了&#xff0c;直接上代码&#xff01;O(∩_∩)O哈哈~ -…

python中x y表示_Python中表达式x += y和x = x+y 的区别详解

前言 本文主要给大家介绍的是关于Python中表达式x += y和x = x+y 区别的相关内容,分享出来供大家参考学习,下面来看看详细的介绍: 直接看下面代码: x +=y In [66]: id(a) Out[66]: 4476839480 In [67]: id(b) Out[67]: 4476839480 In [68]: a = [1, 2, 3] In [69]: b = a In…

vivoY73s和vivoY70s的区别 vivoY73s和vivoY70s哪个值得入手

vivo Y73s配备一块6.44英寸AMOLED材质屏&#xff0c;24001080分辨率&#xff0c;90.1%屏占比&#xff0c;1670万色&#xff0c;P3色域&#xff0c;支持HDR10。​机身尺寸16174.047.73mm&#xff0c;重约171.3g。 vivo手机爆降600这活动太给力了 机会不容错过 https://www.vivo.…

easy-x常用函数

## easy-x库常用函数(1)&#xff1a;与设备相关的函数 1.void clearcliprgn()&#xff1a;用于清除种植区域。 2.void cleardevice()&#xff1a;此功能用于清除绘图设备。具体地说&#xff0c;绘图设备将以当前背景色清空&#xff0c;并将当前点移动到(0,0)。 3.void closeg…

[转帖]linux笔试题

一&#xff0e;填空题&#xff1a;1. 在Linux系统中&#xff0c;以 文件 方式访问设备 。2. Linux内核引导时&#xff0c;从文件 /etc/fstab 中读取要加载的文件系统。3. Linux文件系统中每个文件用 i节点 来标识。4. 全部磁盘块由四个部分组成&#xff0c;分别为引导块 、专用…