前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >笔记分享 : Mask RCNN,何凯明大神的经典论文之一

笔记分享 : Mask RCNN,何凯明大神的经典论文之一

作者头像
唐国梁Tommy
发布2021-05-28 17:14:54
2.4K0
发布2021-05-28 17:14:54
举报
文章被收录于专栏:唐国梁Tommy唐国梁Tommy

哈喽,大家好,今天我们一起来研读一篇CV(计算机视觉)领域的重量级论文《Mask RCNN》,这篇论文由大神RGB和何凯明于2018年发表。距今已有3年之久,虽然CV领域的技术日新月异,但是,这篇论文中的很多创新之处仍然是后续理论发展的基石,我们有必要阅读、理解、掌握。

接下来,我们根据论文的结构,剖析每一部分的内容,做归纳和总结。

【注:掌握一门新算法或技术,最佳的途径之一便是读该算法对应的论文。】

第一部分:Abstract

作者提出了一种针对目标实体分割的简单、灵活、通用的框架,该框架主要作用是进行实例分割,bounding box目标检测,以及人的关键点检测。Mask RCNN是基于深度学习目标检测算法Faster RCNN的一种改进,增加一个分支。

个人观点:论文中的这部分基本上对全篇论文做了一个简短的总结,例如:算法(创新点)是什么?作用是什么?收获的最佳成果是什么?基本上都是“吹嘘”自己的算法有多牛】

第二部分:Introduction

在简介部分,作者主要表达了四个方面的内容:

① instance segmentation 实例分割

首先是对物体进行检测,其次对每个实例进行分割。

如图-01所示:

② classical computer vision tasks 经典计算机视觉任务

主要有两个分支:

第一:目标检测

首先是目标分类,其次是bounding box定位每一个目标。

第二:语义分割

在不区分目标实例的前提下,对每一个像素点进行类别的划分。

③ Mask R-CNN

(1)mask rcnn主要是基于faster rcnn增加了一个分支用于对每个RoI(Region of Interest)预测分割任务,与此同时,另一个分支进行分类(classification)与bbox回归(bounding box regression)。

(2)mask分支是一个很小的FCN,应用于每个RoI,以像素到像素的方式预测分割mask。

(3)RoIAlign:正确地保存准确的空间位置信息。引入RoIAlign之后,使得mask的准确度提升了10%-15%。

④ 通用框架

Mask R-CNN除了能够实现分类、回归、分割任务外,还实现了人体姿态估计功能。

个人观点:mask rcnn主要创新点在于新增了一个分支做segmentation,同时提出了RoIAlign算法,使得计算RoI的空间位置更加精准,防止数据的丢失。】

第三部分:Related work

论文该部分主要简单描述了RCNN与instance segmentation的前世今生。

个人观点:很多论文中的这部分基本上对前人所做工作的一种肯定,表达作者现有的工作成果是基于前人的成果之上。很少有创新是无中生有的,基本上都是基于之前的创新而来。】

第四部分:Mask R-CNN

(1)这部分内容主要对创新点的详细讲解,mask rcnn的输出由三部分构成:① class label预测;② bounding box regression;③ mask分支(目标空间位置的准确提取,以及像素与像素的对齐。)

(2)损失计算

对于每一个采样的RoI进行多任务的loss计算,L_all = L_cls + L_box + L_mask,即:总的损失 = 分类损失 + box回归损失 + 分割损失。

对每一个pixel,应用sigmoid激活函数,并定义L_mask(mask损失)为平均二元交叉熵损失(average binary cross-entropy loss)。

(3)mask representation(表示)

mask会对输入目标空间布局进行编码,利用FCN(fully convolutional network)为每一个RoI预测m * m的mask。

(4)RoIAlign

该算法的提出主要解决RoI Pooling两次量化过程中,数据丢失,造成模型精度下降的问题。RoIAlign通过alignment和双线性差值计算,保留数据精度,最后通过max pooling聚类差值。

(5)Network Achitecture

Mask RCNN利用ResNet-FPN当作主干网进行特征提取,提升了accuracy和speed。我们再来看一下Head Architecture,如图-03所示:

个人观点:创新点还是这个分支及其用的算法,关于RoI, RoI pooling和RoI Align的知识点,请参考我之前分享的学习笔记,如下所示:

笔记分享 : 一文读懂3个概念 : RoI, RoI pooling, RoI Align

第五部分:Implementation details

这部分内容,主要是介绍了training和testing。建议各位同学看一下该部分,内容比较多。这里通过几幅截图看一下在COCO测试集上的对比结果:

图-04:

图-05(主干网):

图-06:

图-07:

图-08:

图-09:

mask branch (ResNet-50-FPN)

个人观点:以上ablation study(消融研究)结果对比显示用不同组件和算法,对模型的提升性能不同。】

第六部分:Mask R-CNN for human pose estimation

关键点的位置用one-hot mask表示,采取Mask R-CNN来预测K个mask,每个mask表示K个关键点类型(例如:左键、右肘等)。

如图-10所示:

在COCO测试集上关键点检测结果,如图-11所示:

box,mask,keypoint的多任务结果对比,如图-12所示:

RoIAlign vs. RoIPool 针对关键点检测对比结果,如图-13所示:

个人观点:在keypoint detection环节,作者对比了不同组件对模型性能的影响。RoIAlign还是最优的选择。】

这是论文的主要解读部分,后续我还会分享关于mask rcnn的项目实战案例,欢迎大家继续关注后续内容的更新。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 唐国梁Tommy 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档