目标检测——Mask R-CNN算法解读

论文:Mask R-CNN
作者:Kaiming He Georgia Gkioxari Piotr Doll´ar Ross Girshick
链接:https://arxiv.org/abs/1703.06870
代码:https://github.com/facebookresearch/Detectron

R-CNN系列其他文章:

  • R-CNN算法解读
  • SPPNet算法解读
  • Fast R-CNN算法解读
  • Faster R-CNN算法解读

目录

  • 1、算法概述
  • 2、Mask R-CNN细节
    • 2.1 Mask Representation
    • 2.2 RoI Align
  • 3、实验结果
  • 4、创新点

1、算法概述

该论文主要实现的是把图片中的目标一个一个的分割出来,也叫实例分割;是在Faster R-CNN的基础上增加了一个预测实例目标掩模的分支。该算法在COCO 2016竞赛的三大任务(实例分割、目标检测、关键点预测)中都获得了单模型最好的成绩。
在这里插入图片描述
如上图所示,(d)即为实例分割,实例分割是具有挑战性的,因为它需要正确检测图像中的所有对象,同时还要精确分割每个实例。因此,它结合了对单个对象进行分类和使用边界框对每个对象进行定位。

2、Mask R-CNN细节

在这里插入图片描述
在这里插入图片描述
如上图所示,Mask R-CNN就是在Faster R-CNN的基础上增加一个mask分支,但是额外的掩码输出与原本的class和box输出不同,需要提取对象的更精细的空间布局,包括需要学习像素级对齐。对于每个RoI,Mask R-CNN在预测类别和box偏置的同时,还会输出二进制掩码。
在训练阶段,也采用多任务损失:L=Lcls+Lbox+Lmask

2.1 Mask Representation

Mask分支以RoI的特征图作为输入完成mask编码学习,它不像类别分类和box偏移以压缩形式的全连接作为输入,因为它需要以卷积的形式学习像素到像素的对应关系。Mask R-CNN的mask分支是一个FCN结构,对于每个RoI特征输入,输出大小为mxm大小的mask,若类别为K,则输出为Kmxm,对于每类(对应一个mxm大小的feature map)都在每个像素应用sigmoid操作用来评估是否属于该类。

由于mask分支为FCN结构,所以能让分支上的每一层都保持对应的空间结构,这就要求RoI特征和输入图像的特征在空间位置上要保存对应关系,不能有空间上的偏移,这促使作者改进Faster R-CNN的RoI Pooling层为RoI Align。

2.2 RoI Align

RoI Pooling是从每个RoI中提取小特征图(例如7x7)的标准操作。在Faster R-CNN中,使用RoI Pooling之前的特征图大小是原图的1/16,假设某个RoI区域在原图位置上的横坐标范围是x0到x1,纵坐标范围是y0到y1,那么这个RoI区域在经过一系列卷积后,在RoI Pooling的输入特征图上的横坐标范围应为x0/16到x1/16,纵坐标范围应为y0/16到y1/16。但是RoI Pooling操作做了取整操作,即RoI在特征图上的位置变为了[x0/16] 到[x1/16]和[y0/16]到[y1/16],这里的取整操作反映到原图上就发生了位置偏移,造成了RoI区域在空间位置上没有对齐,这可能对分类不会有太大影响,但是对应mask学习,影响太大了。所以作者没有采用RoI Pooling,而且采用了RoI Align,它没有取整操作,而且对相应位置做了双线性插值,以保证位置前后对齐。
在这里插入图片描述
在这里插入图片描述

3、实验结果

作者以ResNet50,ResNet101和ResNeXt50,ResNeXt101作为backbone,假如Faster R-CNN采用ResNet50并以第4个stage的输出作为RoI的特征就命名为ResNet-50-C4,实验在COCO数据集上进行统计,实例分割结果如下:
在这里插入图片描述
目标检测的结果如下:
在这里插入图片描述
关键点检测结果如下:
在这里插入图片描述

4、创新点

  • 创新点:
    1、在Faster R-CNN的基础上新增mask分支,对bounding box回归有相互促进的效果;
    2、提出RoI Align操作,纠正了RoI Pooling在特征图上的取值偏移,使得检测分支和mask分支在特征图上的RoI区域和原图的RoI区域在空间位置上对齐;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Leecode 【一】

环形链表: 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&…

教你用AI做治愈系风景动态视频

这几天刚发布AI小红薯商单变现案例库,同学们私信表示案例库启发很大,很有价值,只是能不能再多来点手把手式的实操教程! 这是个好需求,没问题~,今天就手把手地给大家分享一个近半年来,在各大平台…

优思学院:六西格玛项目中什么是顾客之声?

让客户的声音成就您的成功! 顾客之声(Voice of customer-VOC)是六西格玛项目中的一个重要概念,指的是从顾客的角度和需求出发,通过收集和分析顾客的反馈和意见,以了解他们对产品或服务的期望、满意度和不满意之处。顾客之声的目的…

分享几个可以免费使用GPT工具

1. 国产可以使用GPT3.5和4.0的网站,每日有免费的使用额度,响应速度,注册时不用使用手机号,等个人信息,注重用户隐私,好评! 一个好用的ChatGPT系统 ,可以免费使用3.5 和 4.0https://…

springboot+java校园自助洗衣机预约系统的分析与设计ssm+jsp

洗衣服是每个人都必须做的事情,而洗衣机更成为了人们常见的电器,但是单个洗衣机价格不菲,如果每人都买,就会造成资源的冗余。所有就出现了公用设备,随着时代的发展,很多公用都开始向着无人看守的自助模式经…

ChatGLM2详细安装部署(chatglm2大模型安装步骤三)

ChatGLM2安装部署 1.服务器配置 服务器系统:Centos7.9 x64 显卡:RTX3090 (24G) 虚拟环境:Miniconda3 2.安装部署 2.1 ChatGLM2下载 输入命令:git clone https://github.moeyy.xyz/https://github.com/THUDM/ChatGLM2-6B.git 输入命令:cd ChatGLM2-6B 注:https://g…

【note: This is an issue with the package mentioned above, not pip.】

安装gym时出现问题,note: This is an issue with the package mentioned above, not pip. 报错原因: 缺失了某些依赖模块,所以安装报错。 Collecting package metadata (current_repodata.json): done Solving environment: failed with in…

2021年11月10日 Go生态洞察:Twelve Years of Go

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

关于电脑提示vcruntime140_1.dll无法继续执行代码的解决办法

vcruntime140_1.dll是Visual C运行时库的一个组成部分,它包含了大量用于支持C应用程序运行时的功能。这个文件通常在开发和使用C程序时被调用,特别是在使用Microsoft Visual Studio进行开发时。vcruntime140_1.dll文件丢失或损坏会导致C程序无法正常运行…

python 使用reportlab打造29页图文并茂pdf(全网reportlab最强pdf自动化生成代码)

python 使用reportlab打造29页图文并茂pdf(全网reportlab最强pdf自动化生成代码) 这次项目所使用的代码如果同志们可以灵活使用,基本上可以解决百分之九十以上的pdf模板自动化生成。 最近博主,做了一个项目,使用reportlab制作pd…

JDK10新特性

目录 传送门一、局部变量类型推断1、概念1.1、简单局部变量推断1.2、自定义对象的推断 2、可以使用的场景3、不能使用的场景4、注意事项 二、垃圾回收器的优化1、前置知识1.1、10种垃圾回收器1.2、分代与分区1.3、10种垃圾回收器小总结 2、优化点 三、新增API1、集合新方法copy…

多线程(初阶六:单例模式)

一、单例模式的简单介绍 二、饿汉模式 三、懒汉模式 四、饿汉模式和懒汉模式的线程安全问题分析 一、单例模式的简单介绍 单例模式是一种设计模式,其中设计模式是软性的规定,与它关联的框架是硬性的规定,这些都是大佬已经设计好了的&…

【工作记录】spider-flow使用插件连接并操作mongodb数据库

前言 前面说过,spider-flow有着非常优秀的插件机制,可以通过插件实现功能的扩展。前面有小伙伴问到mongodb的集成使用,本文就来梳理下spider-flow中使用mongodb插件的过程,其实非常简单。 PS: spider-flow的作者已经实现了一些常…

线程池技术总结

1. 线程池解决了什么问题 线程池是集中管理线程的,以实现线程的重用,降低资源消耗,提高响应速度,提高线程的可管理性等。线程用于执行异步任务,单个的线程既是工作单元也是执行机制,从JDK1.5开始&#xff…

文心一言 VS 讯飞星火 VS chatgpt (147)-- 算法导论12.2 2题

二、用go语言,写出 TREE-MINIMUM 和 TREE-MAXIMUM 的递归版本。 灵捷3.5 。 文心一言: 以下是用 Go 语言编写的树的最大值和最小值的递归版本代码: package main import ( "fmt" ) type TreeNode struct { Val int Le…

哈希表 LeetCode 2661. 找出叠涂元素

2661. 找出叠涂元素 给你一个下标从 0 开始的整数数组 arr 和一个 m x n 的整数 矩阵 mat 。arr 和 mat 都包含范围 [1,m * n] 内的 所有 整数。 从下标 0 开始遍历 arr 中的每个下标 i ,并将包含整数 arr[i] 的 mat 单元格涂色。 请你找出 arr 中在 …

LeetCode105.从前序和中序遍历序列构造二叉树

这道题看完题想了几分钟就想到大概的思路了,但是在写的时候有很多细节没注意出了很多问题,然后写了1个多小时,其实这道题挺简单的。 首先,最基本的知识,先序遍历是根左右,中序遍历是左根右,那么…

重磅!GPT-4 API,全面开放使用!

7月7日,OpenAI在官网宣布,GPT-4 API全面开放使用。现所有付费API用户都可直接访问8K上下文的GPT-4,无需任何等待。 预计到7月底之前,OpenAI会向全新的开发人员开放GPT-4 API使用权限。(API详细使用说明地址&#xff1…

【AB平台数据建设】从实验平台到数据管道

文章目录 前言1.从AB实验平台聊起(1)AB平台在业务中的发挥那些作用(2)AB平台进行实验工作流介绍 2.实验平台底层数据管道最小MVP解构(1)数据管道数据从哪里来?(2)数据管道的输出数据有哪些? 小结 前言 AB实验平台是一种通过小范围放量,测试不…

安装两个WIN10/WIN11系统到两个盘中,第二个系统依赖原系统盘引导的问题

前段时间折腾装一个双系统,主要两个方面考虑: 1. 原来的系统又许多软件,想着先保留; 2. 系统想安装到一个固态硬盘中; 在安装的过程中遇到了一些问题,这里记录分享一下。 问题1,运行系统自动安装…
最新文章