实例分割算法BlendMask

news2024/11/24 10:06:44

实例分割算法BlendMask

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

github代码:https://github.com/aim-uofa/AdelaiDet

我的个人空间:我的个人空间

密集实例分割

​ 密集实例分割主要分为自上而下top-down与自下而上bottom-up两类方法:

Top-down方法

​ top-down方法主要表现为先检测后分割,先通过一些方法获得box区域,然后对区域内的像素进行mask提取,比如著名的Mask-RCNN就是top-down方法。

​ 这种模型一般有以下问题:

  1. 特征和mask之间的局部一致性会丢失
  2. 冗余的特征提取,不同的bbox会重新提取一次mask
  3. 由于使用了缩小的特征图卷积,位置信息会损失

Bottom-up方法

​ bottom-up方法将整个图进行逐像素的预测(per-pixel prediction),然后按照聚类等方法,对每个像素做embedding,最后group出不同的instance。虽然保留个更好的低层特征,但是效果一般略差于top-down方法。

​ 这种模型一般存在以下问题:

  1. 严重依赖逐像素预测的质量,容易导致非最优的分割
  2. 由于mask在低维度提取,对于复杂场景的分割能力有限
  3. 需要复杂的后处理方法

混合方法

​ BlendMask主要结合了top-down与botton-up两种思路,利用t-d方法生成实例级别的高维信息(如bbox),利用b-u方法生成per-pixel的预测进行融合。基于FCOS,融合的方法借鉴FCIS(裁剪)与YOLACT(权重加法)的思想,提出了blender模块,更好的将实例级别的全局信息与提供细节的底层特征融合。

总体思路

BlendMask整体架构

整体架构如上图所示,包含一个detector模块与BlendMask模块。detector模块直接采用的FCOS,BlendMask模块分为三部分:

  • Bottom Module:对底层特征进行处理,生成的score map称为Bases
  • Top Layer:串联在检测器的box head上,生成Base对应的top level attention
  • Blender:将Bases与attention融合

Bottom Module

​ 采用Deelpabv3+的decoder,包含两个输入,一个低层特征一个高层特征,对高层特征进行上采用后与低层特征融合输出,
DeepLabv3+结构

bottom输出的feature特征为:(N * K * H/s * W/s),N为channel,K为bases的数量,(H,W)为输入的size,s为scroe的步长。

Top Layer

​ 在检测的特征金字塔的每一层后都加了一层卷积,用来预测top-level attentions(A),输出的特征为:(N * (K*M*M)) * H_i * W_i),M*M为attention的分辨率,即对应的base的每个像素点的权重值,包含的粒度更细。

Blender

​ Blender的输入为bottom的输出B、top-level的输出attentions(A)和bbox§,该部分的融合如下:

  1. 使用RoiPooler来裁取每个bbox对应的区域,并resize成固定的RxR大小的特征图。训练时直接使用ground truth bbox作为propasals,而在推理时直接用FCOS的结果RoIPool

  2. attention的大小M是比R小的,因此需要插值,这里采用的双线性插值,从MxM变为RxR上采样/插值

  3. 接着插值完的attention进行softmax,产生一组score mapscore map

  4. 对每个r_d和对应的s_d进行逐像素的相加,最后将K个结果相加得到m_d在这里插入图片描述

​ 可视化的blender过程:
在这里插入图片描述

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

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

相关文章

Node.js代码实例:简单Web服务端

文章目录 前言代码仓库为什么要写一份Node.js简单Web服务端的代码实例?内容目录结构代码server.jsindex.htmlindex.cssindex.jsvalue.html 结果总结参考资料作者的话 前言 Node.js代码实例:简单Web服务端。 代码仓库 yezhening/Programming-examples: …

LVS-DR

系列文章目录 文章目录 系列文章目录一、1.2. 二、实验1.2. 总结 一、 1. 2. 二、实验 1. 先把四台机器都关闭防火墙和安全机制 vim /etc/sysconfig/selinux把selinux都改成disabled 在NFS里面建立两个共享目录 给文件执行权限并写入内容给html 和www vim /etc/expor…

【C++】C++中的类型转化

说起类型转化,我们在C语言之前的学习中可以了解到,类型转换可以分为两种情况:隐式类型转化;显示类型转化。但是为什么在c中还要继续对类型转化做文章呢?我们一起来看: 目录 1. C语言中的类型转换 2. C强制…

【Transformer系列(5)】Transformer代码超详细解读(Pytorch)

前言 前面几篇我们一起读了transformer的论文,更进一步了解了它的模型架构,这一篇呢,我们就来看看它是如何代码实现的! (建议大家在读这一篇之前,先去看看上一篇模型结构讲解 这样可以理解更深刻噢&…

Python 基础(十二):字典

❤️ 博客主页:水滴技术 🌸 订阅专栏:Python 入门核心技术 🚀 支持水滴:点赞👍 收藏⭐ 留言💬 文章目录 一、声明字典1.1 使用 {} 声明字典1.2 使用 dict 函数声明字典1.3 声明一个空的字典 二…

【数据结构】AVLTree

1.AVL树的概念 二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。因此,两位俄罗斯的数G.M.Adelson-Velskii 和E.M.Landis在1962年 发明了一种解决上…

会话与会话技术(Session)

前言 Cookie将用户的信息保存在各自的浏览器中,并且可以在多次请求下实现数据的共享。但是如果当传递的信息较多时,Cookie技术会增大服务器程序处理的难度,因此,Servlet提供了另一种会话技术————Session,Session可…

跟李沐学AI——实用机器学习(入门版)

机器学习目录 2.1 探索性数据分析 2.2 数据清理 2.3 数据变换 2.4 特征工程 2.5 数据科学家的日常 Stanford University Practical machine learning 2.1 探索性数据分析 ​ 对目标的ftr数据进行处理,针对不同的信息做出不同的图形 输出数据集的行数和列数以及前十…

ArcGIS Pro地理空间数据处理完整工作流实训及python技术融合

GIS是利用电子计算机及其外部设备,采集、存储、分析和描述整个或部分地球表面与空间信息系统。简单地讲,它是在一定的地域内,将地理空间信息和 一些与该地域地理信息相关的属性信息结合起来,达到对地理和属性信息的综合管理。GIS的…

1、TI335x环境建立

记录裸机开发,TI A8系列处理器的AM335x过程,本次开发的是3352,在此基础上开发。 1、硬件准备: 已经测试调试ok的3352测试板,经过查看发现,am3352引出的下载接口是JTAG口,而我手里只有Jlink&…

Kubernetes---Pod调度、标签、配额、策略

静态pod 静态pod由user直接创建调用,不能迁移 由kebelet守护进程直接管理的pod,无需APIserver监管 kubelet监视每个静态pod 静态pod永远绑定到一个指定节点上的kubelet 静态pod spec不能引用其他API对象 静态pod配置路径/var/lib/kubelet/config.yaml里面…

CSS背景相关属性

一、背景颜色 属性名:background-color (bgc) 属性值:颜色取值:关键字,rgb表示法,rgba表示法,十六进制表示。 注: 背景颜色默认透明:rgba(0,0&#xff0c…

C语言积锦

代码区:text 代码执行二进制码(程序指令) 具有共享、只读特性 数据区:1.初始化数据区data 2.未初始化数据区 bss 3.常量区 栈区:系统为每一个程序分配一个临时的空间 局部变量、函数信息、函数参数、数组。栈区大…

干货|Graphpad Prism也能做ERP图?So Easy!

Hello,大家好! 这里是壹脑云科研圈,我是喵君姐姐~ 不知道你是否注意过这样一个现象。 在心理学大会报告的时候,专家经常会说一句话: 这个结果很漂亮!!! 第一次听见的时候&#x…

K8s图形化管理工具Dasboard部署及使用

文章目录 一、Dashboard简介二、Dashboard部署安装三、配置Dashboard登入用户1、通过Token令牌登入2、通过kubeconfig文件登入 四、Dashboard创建容器 一、Dashboard简介 Kubernetes Dashboard是一个Web UI,用于管理Kubernetes集群中的应用程序和资源。它提供了一个…

使用wireshark抓包理解tcp协议和tls

首先下载安装wireshark 打开软件 1.选则自己连结的网络; 此时就会捕获的数据 2.加上端口过滤。 3.启动一个本地的http服务(这里采用的nodejs); // server.js import koa from koa; const app new koa(); app.use(ctx > {ctx.body "hell…

托福听力专项 // Unit1 Listening for Main Ideas // Practice with Lectures // 共4篇

目录 Listening for Main Idea Lecture A a music class 单词 内容总结 Lecture B 单词 错题分析 Lecture C 单词 错题分析 Lecture D 单词 Listening for Main Idea Lecture A a music class 单词 evolve(v)to develop slowlyincorporate(v)to take in or includ…

Spring Boot使用(基础)

目录 1.Spring Boot是什么? 2.Spring Boot使用 2.1Spring目录介绍 2.2SpringBoot的使用 1.Spring Boot是什么? Spring Boot就是Spring脚手架,就是为了简化Spring开发而诞生的 Spring Boot的优点: 1.快速集成框架,提供了秒级继承各种框架,提供了启动添加依赖的功能 2.内…

修炼汇编语言第一章:汇编基础知识概述

目录 前言 一、汇编语言的组成 二:存储器 三:指令和数据 四:存储单元 五:CPU对存储器的读写 地址总线 控制总线 数据总线 前言 汇编语言是数据结构,操作系统,微机原理等重要课程的基础&#xff0…

【算法】冒泡排序

一.冒泡排序 主要思想: 反复交换相邻的元素,使较大的元素 逐渐冒泡到数组的末尾,从而实现排序的效果 实现过程: 1.遍历待排序数组,比较相邻的元素,如果前面的元素比后面的元素大, 就交换这两…