【ICCV 2023 Oral】High-Quality Entity Segmentation分享

news2024/11/24 14:40:07

为什么会看这篇文章呢?因为要搞所谓分割大模型,为什么要搞分割大模型,因为最终我们要搞得是,业内领先的全自动标注系统。(标完都不需要人工再修正!!!)

OK,仰望完星空了,我们现在要脚踏实地了。来看paper,尽可能简单并且通俗易懂的讲一下。可能也没那么简单。
在这里插入图片描述
先看图,我的第一个问题是,什么叫Entity Segmentation,我之前也不是做segmentation的之前主要做目标检测。分割我知道有语义分割,实例分割,全景分割,这是实体分割是什么鬼?为了搞清楚这个概念也是一通好找,简单来说就是 不输出语义信息的全景分割,这个是有依据的。

- 这篇文章主要讲两个,一个是数据集,一个是模型,然后各种实验什么都就不说了。

数据集

文章提出了一个数据集,叫 EntitySeg Dataset,由Adobe 赞助开源给学术界使用。这个数据集图像分辨率非常高(当然也有低分辨率的图像),标注质量也更好,数据来源也更加丰富。
这个数据集和COCO Panoptic、ADE20 K-Panoptic相比,每个图像平均有18.1个实体,超过了COCO和ADE20K中的11.2和13.6个实体。EntitySeg数据集中实体的形状比COCO和ADE20 K更复杂。
在这里插入图片描述
并且“ Besides, our annotation procedure is more similar to the human visual system. As evidenced in [35], the human vision system is intrinsically class-agnostic and can recognize entities without comprehending their usage and purpose.”

模型

这篇文章的模型叫CropFormer,至于这个模型是什么我们会详细讲一下,简单来说这个模型会学N个Q(N×K,k是维度),用Q去生成mask embeddings E(N×1×1×1×K),E会被用作convolution filters,对 pixellevel mask features P2 (T ×H×W,T是image view,H是height ,W是with)处理完后生成N个segmentation masks Um (N×T ×H×W )。当然这并不是真正的模型流程。在文章中说这样的基本设计只能很好地处理单个视图输入,并且不能有效地融合来自多个视图的结果,他们搞了一种一种新的关联模块和批处理级解码器(association module and batch-level decoder)来实现Crop Former的目标,即利用完整图像的全局上下文和作物的细粒度局部细节进行高质量分割。
下面我们来看完整的流程图:
在这里插入图片描述
好的paper图是非常重要的,要让人一看就感觉很清晰,把上面这个图看懂了这个模型的流程也就清楚了。

  1. Image Encoder and Decoder
    首先来说Image Encoder and Decoder这两个模块,我们把 image encoder 模块叫做Θ,image-level decoder 模块叫做 Φi。在上面说用Q去生成E。具体就是给定输入的 tensor (I) and queries (Qi),
    在这里插入图片描述

这里的 Φi(·) is a Transformer-based image-level decoder.
然后呢,用E和P去生成U,Ei是用于图像级实体性预测和像素级预测,使用低级图像特征P2(源自图像编码器Θ(I))。然后公式化是这个样

在这里插入图片描述

其中uie和uim分别表示实体预测和像素级掩码输出。在这里,我们使用i下标来区分图像级嵌入和掩码输出与关联模块的输出。

  1. Association Module.
    在这里插入图片描述
    所谓的关联模块长这个样子,从里面看起f{q,k,v}(·) are linear transformations.然后就是里面的各个E,我们将全图像EI o的图像级嵌入作为查询,而将所有图像级嵌入EI作为关键字和值。
    在这里我们说一下为什么会有E Io和Ic,
    在这里插入图片描述
    这个解释的很清楚,在一个 dataloader D 中,输入是两部分的,一部分是完整的图像,另一部分是经过裁剪的图像,两者都会经过缩放。
    然后就是外面的fXAtt和fSAtt就是交叉注意力和自注意力,FFN 是一个feed-forward network。至于这个关联模块是用来干什么,后面看完就清楚了,或者看流程图也能看懂。

  2. Batch-level Decoder
    这个模块的公式放出来大家自己都懂了,和前面的模块是一样的,但是有细微差别在于他是Batch-level的。
    在这里插入图片描述
    Ok,很熟悉。

  3. training and Inference
    在训练期间分别用了两个Loss函数,Li and Lb,一个是image-level的预测,一个是batch-level的预测,这两种损失的主要区别在于完整图像和裁剪图像中的相同实体是否绑定到同一个查询。这个怎么理解呢,就是一个Q去查的是每个图像里面的物体,查到东西就行。另一个Q是因为一个batch是包含了两张图片的一个是完整的一个是裁切过的,所以这个Q是要查两张图里面一个东西,感觉像是做一个对齐和强化。这样的设计应该是这个模型效果好的原因之一。

在这里插入图片描述
然后就是在做推理的时候,对于最终的分割输出,是通过使用平均操作融合从完整图像和4个角的每个裁剪中获得的逐像素掩码预测。就是全图和四个角的裁切都用到了,然后融合一下,就是这样。

至于剩下的就是各种实验去验证数据集和模型设计的有效性了,就没什么好说的,这篇paper就是这样了,感兴趣的可以去对着code仔细看一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1050778.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL架构 InnoDB存储引擎

1. 什么是Mysql? 我们在开发的时候,我们都需要对业务数据进行存储,这个时候,你们就会用到MySQL、Oracal等数据库。 MySQL它是一个关系型数据库,这种关系型数据库就有Oracal、 MySQL,以及最近很火的PgSQL等。…

安全基础 --- MySQL数据库解析

MySQL的ACID (1)ACID是衡量事务的四个特性 原子性(Atomicity,或称不可分割性)一致性(Consistency)隔离性(Isolation)持久性(Durability) &…

【IDEA】使用idea调试时查看对象集合的值

1、在实体类上添加toString方法 2、在要查看集合的地方右键View as→toString 3、View Text复制对象集合的值 4、复制map集合的值同理

ThemeForest – Canvas 7.2.0 – 多用途 HTML5 模板

ThemeForest 上的 HTML 网站模板受到全球数百万客户的喜爱。与包含网站所有页面并允许您在 WP 仪表板中自定义字体和样式的 WordPress 主题不同,这些设计模板是用 HTML 构建的。您可以在 HTML 编辑器中编辑模板,但不能在 WordPress 上编辑模板&#xff0…

多网卡场景数据包接收时ip匹配规则

多网卡场景数据包接收时ip匹配规则 mac地址匹配规则 接收数据包时数据包中的目的mac地址匹配接收网卡的mac地址后,数据包才会继续被传递到网络层处理 ip地址匹配规则 图1: 参见:https://zhuanlan.zhihu.com/p/529160026?utm_id0 图2&am…

在vue使用wangEditor(简单使用)

wangEditor不同的版本使用方法都不一样,这里以目前最新的参考官网方法使用2023-09-28 首先安装,参考官网,注意editor跟editor-for-vue两个都要装 yarn add wangeditor/editor # 或者 npm install wangeditor/editor --saveyarn add wangedit…

云安全之访问控制的常见攻击及防御

访问控制攻击概述 访问控制漏洞即应用程序允许攻击者执行或者访问某种攻击者不具备相应权限的功能或资源。 常见的访问控制可以分为垂直访问控制、水平访问控制及多阶段访问控制 (上下文相关访问控制),与其相应的访问控制漏洞为也垂直越权漏洞(普通用户可以访问或…

ElasticSearch - 在 微服务项目 中基于 RabbitMQ 实现 ES 和 MySQL 数据异步同步(考点)

目录 一、数据同步 1.1、什么是数据同步 1.2、解决数据同步面临的问题 1.3、解决办法 1.3.1、同步调用 1.3.2、异步通知(推荐) 1.3.3、监听 binlog 1.3、基于 RabbitMQ 实现数据同步 1.3.1、需求 1.3.2、在“酒店搜索服务”中 声明 exchange、…

【C++】vector的介绍 | 常见接口的使用

目录 vector的介绍 常见接口 构造函数 尾插push_back() vector的遍历 1.用方括号下标 遍历: 2.调用at()来访问: 3.用迭代器遍历: 4.范围for遍历: vector空间 vector增删查改 覆盖assign() 查找find() 插入insert() …

css自学框架之幻灯片展示效果

这一节,我自学了焦点图效果(自动播放,圆点控制),首先看一下效果: 下面我们还是老思路,css展示学习三个主要步骤:一是CSS代码,二是Javascript代码,三是Html代码。 一、css代码主要如…

【JavaEE】锁策略

文章目录 前言1. 乐观锁和悲观锁2. 重量级锁和轻量级锁3. 自旋锁和挂起等待锁4. 公平锁和非公平锁5. 可重入锁和非可重入锁6. 读写锁Java synchronized 分别对应哪些锁策略1. 乐观锁和悲观锁2. 重量级锁和轻量级锁3. 自旋锁和挂起等待锁4. 公平锁和非公平锁5. 可重入锁和非可重…

Scala第八章节

Scala第八章节 scala总目录 章节目标 能够使用trait独立完成适配器, 模板方法, 职责链设计模式能够独立叙述trait的构造机制能够了解trait继承class的写法能够独立完成程序员案例 1. 特质入门 1.1 概述 有些时候, 我们会遇到一些特定的需求, 即: 在不影响当前继承体系的情…

基于Java的图书管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

JavaScript系列从入门到精通系列第十篇:JavaScript中的相等运算符与条件运算符

文章目录 一:相等运算符 1: 2:! 3:与! (一): (二):! 二:条件运算符 1:语法 2:使用 3:容易挨打的写法 一:相等运算符 用于比较两个值是…

前端框架介绍

一、node.js 配置淘宝镜像源 npm config set registry https://registry.npm.taobao.org可以使用npm config list命令来确认镜像地址是否已成功更改。 如果需要将配置的镜像恢复为默认的npm官方源,可以执行以下命令: npm config delete registry二、vue 1、创建Vue项目 …

算法的时间复杂度分析习题专题

之前写了一篇重点是讲理论,今天重点在于对于题目的分析 题目难度不分先后,有题目来源会直接给出链接或者位置 第一题:消失的数字 题目来源:LeetCode消失的数字 分析 第一种思路分析: 参考代码: #include …

RTSP协议抓包及讲解

文章目录 前言一、RTSP 亲手搭建直播点播1、数据源为视频文件2、数据源为摄像头①、搭建 RTSP 流媒体服务器②、客户端拉流 二、RTSP 协议简介三、手撕 RTSP 协议1、Wireshark 抓包①、搭建环境②、wireshark 抓包 2、RTSP 交互流程①、OPTIONS②、DESCRIBE③、SETUP④、PLAY⑤…

全面横扫:dlib Python API在Linux和Windows的配置方案

前言 在计算机视觉和人工智能领域,dlib是一个备受推崇的工具库。它为开发者提供了强大的图像处理、机器学习和深度学习功能。在计算机视觉项目中,配置dlib Python API是一个重要的初始步骤。本文将引导读者详细了解在Linux和Windows系统上安装和配置dli…

【算法分析与设计】动态规划(下)

目录 一、最长公共子序列1.1 最长公共子序列的结构1.2 子问题的递归结构1.3 计算最优值1.4 举例说明1.5 算法的改进 二、最大子段和2.1 代码2.2 最大子段和问题的分治算法2.3 代码2.4 分治算法的时间复杂度2.5 最大子段和问题的动态规划算法 三、凸多边形最优三角剖分3.1 三角剖…

Flutter笔记:关于应用程序中提交图片作为头像

Flutter笔记 关于应用程序中提交图片作为头像 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/details/133418554…