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

这篇具有很好参考价值的文章主要介绍了【达摩院OpenVI】开源CVPR快速实例分割FasInst模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

一、论文&代码

论文: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]。

二、方法

【达摩院OpenVI】开源CVPR快速实例分割FasInst模型,深度 学习论文与相关应用,人工智能,深度学习,CVPR,实例分割,FastInst

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

【达摩院OpenVI】开源CVPR快速实例分割FasInst模型,深度 学习论文与相关应用,人工智能,深度学习,CVPR,实例分割,FastInst

具体来说,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)基于实例激活引导的查询

【达摩院OpenVI】开源CVPR快速实例分割FasInst模型,深度 学习论文与相关应用,人工智能,深度学习,CVPR,实例分割,FastInst

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

【达摩院OpenVI】开源CVPR快速实例分割FasInst模型,深度 学习论文与相关应用,人工智能,深度学习,CVPR,实例分割,FastInst

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

【达摩院OpenVI】开源CVPR快速实例分割FasInst模型,深度 学习论文与相关应用,人工智能,深度学习,CVPR,实例分割,FastInst

2. SOTA对比

【达摩院OpenVI】开源CVPR快速实例分割FasInst模型,深度 学习论文与相关应用,人工智能,深度学习,CVPR,实例分割,FastInst

3. 效果展示

【达摩院OpenVI】开源CVPR快速实例分割FasInst模型,深度 学习论文与相关应用,人工智能,深度学习,CVPR,实例分割,FastInst

4. 拓展实验

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

【达摩院OpenVI】开源CVPR快速实例分割FasInst模型,深度 学习论文与相关应用,人工智能,深度学习,CVPR,实例分割,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文章来源地址https://www.toymoban.com/news/detail-530828.html

到了这里,关于【达摩院OpenVI】开源CVPR快速实例分割FasInst模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【达摩院OpenVI】AIGC技术在图像超分上的创新应用

    团队模型、论文、博文、直播合集,点击此处浏览 近10年来,深度学习技术得到了长足进步,在图像增强领域取得了显著的成果,尤其是以GAN为代表的生成式模型在图像复原、老片修复,图像超分辨率等方面大放异彩。图像超分辨率是视频增强方面,用于提升画质的典型应用

    2024年02月09日
    浏览(68)
  • 【计算机视觉】CVPR 2023 上的分割论文真的是神仙打架(介绍前12篇,图像分割,全景分割,语义分割,实例分割)

    AutoFocusFormer:网格外的图像分割 论文地址: 真实世界的图像通常具有高度不平衡的内容密度。 有些区域非常均匀,例如大片蓝天,而其他区域则散布着许多小物体。 然而,卷积深度网络中常用的连续网格下采样策略平等对待所有区域。 因此,小对象在很少的空间位置表示

    2024年02月12日
    浏览(51)
  • 达摩院开源多模态对话大模型mPLUG-Owl

    miniGPT-4的热度至今未减,距离LLaVA的推出也不到半个月,而新的看图聊天模型已经问世了。今天要介绍的模型是一款类似于miniGPT-4和LLaVA的多模态对话生成模型,它的名字叫mPLUG-Owl。 论文链接:https://arxiv.org/abs/2304.14178 项目链接:https://github.com/X-PLUG/mPLUG-Owl 在线demo:https://m

    2024年02月04日
    浏览(38)
  • CVPR2023最新论文 (含语义分割、扩散模型、多模态、预训练、MAE等方向)

    2023 年 2 月 28 日凌晨,CVPR 2023 顶会论文接收结果出炉! CVPR 2023 收录的工作中 \\\" 扩散模型、多模态、预训练、MAE \\\" 相关工作的数量会显著增长。 Delivering Arbitrary-Modal Semantic Segmentation 论文/Paper: http://arxiv.org/pdf/2303.01480 代码/Code: None Conflict-Based Cross-View Consistency for Semi-Supervised

    2023年04月08日
    浏览(47)
  • yolov5-v7.0实例分割快速体验

    🚀 yolov5-v7.0 版本正式发布,本次更新的 v7.0 则是全面的大版本升级,最主要的功能就是全面集成支持了实例分割,yolov5已经集成检测、分类、分割任务。 前面几篇文章已经介绍过关于Yolov5的一些方面 yolov5目标检测:https://blog.csdn.net/qq_45066628/article/details/129470290?spm=1001.2014.30

    2024年02月09日
    浏览(38)
  • YOLOv5:使用7.0版本训练自己的实例分割模型(车辆、行人、路标、车道线等实例分割)

    由于本人水平有限,难免出现错漏,敬请批评改正。 更多精彩内容,可点击进入YOLO系列专栏或我的个人主页查看 YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制 YOLOv5:yolov5s.yaml配置文件解读、增加小目标检测层 YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU YOLOv7训练自己的数据集(口罩检测)

    2024年02月15日
    浏览(53)
  • 模型实战(3)之YOLOv7实例分割、模型训练自己数据集

    下载yolov7实例分割模型: 安装环境

    2023年04月08日
    浏览(42)
  • Fast SAM与YOLOV8检测模型一起使用实现实例分割以及指定物体分割(有代码)

    Fast SAM与YOLOV8检测模型一起使用 VX 搜索”晓理紫“ 关注并回复yolov8+fastsam获取核心代码 晓理紫 实例分割数据集的获取要比检测数据的获取更加困难,在已有检测模型不想从新标注分割数据进行训练但是又想获取相关物体的mask信息以便从像素级别对物体进行操作,这时就可以

    2024年02月13日
    浏览(32)
  • openvino部署yolov8 检测、分割、分类及姿态模型实例详解

    本文重点参考:https://github.com/openvino-book/yolov8_openvino_cpp/tree/main 文中代码为简便版本,如果要使用请自行修改并封装 openvnio部署模型比较方便和简单,而且不易出错,就是速度慢了点! 下边分别给出 部署源码

    2024年02月16日
    浏览(49)
  • 2022.09.29更新 c++下面部署yolov5实例分割模型(六)

    2023.01.11 更新: 新增加onnxruntime的1.13.x版本支持。 由于onnxruntime从1.12升级到1.13之后,GetOutputName()这个API变成了GetOutputNameAllocated(),坑就出现在这里,新版api的返回值是一个unique_ptr指针,这就意味着他使用一次时候就失效了,所以在循环跑模型的时候基本的第二次都报错

    2024年02月12日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包