一文详解你必须熟知的实例分割模型 Mask R-CNN

©作者 |小欣

01 简述

实例分割(instance segmentation)是机器视觉研究中比较重要、复杂和具有挑战性的领域之一。在机器人,自动驾驶,监视等领域均有应用。

不同于语义分割(semantic segmentation),实例分割的要求更难,具体如下所示,下图(a)为语义分割,它需要预测每个像素的类别,比如分辨下图的人,羊,背景,狗;而实例分割的要求更进一步,它还需要在预测类别的基础上区分开每一个实例。

02 模型简述

在实例分割领域中,代表性的模型有Mask R-CNN等。Mask R-CNN是R-CNN系列模型的集大成者,它在Faster R-CNN的基础上进行了改进,使得它不仅能更好地解决目标检测问题,还可以用来做实例分割。

简单的来说,在理想情况下,像Mask R-CNN这种实例分割模型,它首先需要先找到一张图中哪些位置可能有物体存在,把它们从原图中找出来,称之为候选框,这里涉及到的部分是模型中的backbone, RPN (Region Proposal Network)和ROI Align层。

然后再进一步进行处理,判断找到的候选框是什么类别的,并判断候选框内中哪些像素是物体,哪些像素只是单纯的背景,模型剩下的部分就是为了实现这个目的。按照这种思路,在通过反向传播的技术进行梯度下降,能实现目标检测和实例分割的功能。

对于如Mask R-CNN这类分成两个步骤去做的模型,被称为二阶段(two-stage)模型,它们一般速度较慢,但都有较好的性能。

虽然Mask R-CNN是2016年提出的实例分割模型,但其强劲的性能使得它仍然在许多比赛中出现,也常被人们当作baseline,而后续慢慢涌现的性能更好的Cascade Mask R-CNN, HTC等模型,事实上都是在Mask R-CNN的基础上进行改良的,所以理解它对于未来的进一步学习是有巨大帮助的。

这里接下来将对它做一个简单的介绍,Mask R-CNN的细节之处很多,推荐看它的源码论文,若是想更详细的知道Mask R-CNN的前世今生,还需要从R-CNN开始看起。

这里将从较宏观的层面上对Mask R-CNN进行解释,希望对小白起到帮助,在心里有个大体的模型流程后再去看更具体的代码实现,也能更加流畅。

03 模型详解

整体上,该模型的流程图如下所示,Mask R-CNN可以分成四块部分进行讲解:backbone,RPN,ROIAlign和最后的prediction head。

Backbone

首先,我们输入图片,假设它是224X224的尺寸,进入模型的backbone,这个backbone一般是图像分类模型去掉最后的全连接层得到的骨干框架,用于得到原图中具有高度语义信息的特征图,这个特征图内蕴含着各个物体的信息,因为backbone里面会都有pooling层缩小特征图尺寸,假设此时最后输出的特征图尺寸为28X28X256,则说明原图和特征图之间的比例为8倍,可以理解成特征图一个像素蕴含了原图八个像素的信息。

RPN层

RPN层比较创新,是Faster R-CNN的核心,只看代码可能不明白它的原理,希望这里的文字解释能对读者后续细读代码起到帮助。

通过backbone得到的特征图,会进入下方RPN层。RPN层就是一个小型的神经网络,它的作用是让模型自己去原图中寻找哪些地方可能存在物体。

继续引用上面的例子,在这一层里,由前面可知,特征图和原图的尺寸存在一个倍的关系,所以模型在原图中每隔个像素会生成若干个bbox,假设生成9个,这九个bbox和特征图对应的那个像素有关,这时一张图就有(28x28x9)个bbox了,一个bbox的坐标可以由它的左上角和右下角的坐标进行表示,即(x1,y1,x2,y2)这种形式。

然后将特征图传入3X1,1X1卷积中,两条分支的输出尺寸分别为28X28X36,28X28X18 , 前者的36可以被理解成9X4,也就是特征图该像素对应的bbox的四个坐标的预测偏移量,而后者的18可以被理解成9X2,代表的就是该像素对应的bbox属于前景/背景的预测概率,根据输出的预测偏移量对bbox进行偏移,并确定它们是否为背景,然后从这若干个bbox中按概率排序,去除部分无用的bbox,剩下的bbox将根据一定的采样方式取出,传入到下一步骤去使用。到这一步骤,模型知道了哪些位置可能有物体,哪些位置可能没物体。

总而言之,RPN的作用就是让模型自己去学原图中哪些地方有物体,哪些地方没有物体。但是若让它凭空就学,难度太高了,所以一开始我们创建了(28X28X9)个bbox,这也称之为先验框,放统计学的贝叶斯角度,就是引入了先验知识。

因为模型有了先验知识,我们只需要让RPN网络去学先验框的偏移量和是否有物体的概率,这比凭空去学简单了不少,最后将这一块学出来的,模型觉得有概率有 物体的若干个bbox,传入下一个阶段,继续去学习。

ROI Align层

接下来进入ROI Align部分,它是Mask R-CNN的创新点之一。

在RPN阶段我们拿到了若干个原图中 可能有物体的bbox,但这些bbox肯定还不够准,还需要细调。

为了将bbox进行细调,Mask R-CNN需要将每个bbox映射到尺寸为的特征图上,至于怎么映射,就是ROI Align干的事了,它和早期的ROI pooling层的作用是一样的,但是更准确,能尽可能找到比较准确的位置。

映射过去之后的bbox其实都会很小,毕竟小了8倍,所以在这一层它内部还会进行插值的操作,最后得到的bbox都是统一尺寸的,比如7X7X256。

总的来说,通过ROI Align,能找到原图的bbox在特征图上的位置,这时候的bbox就完成了原图到特征图的映射,这个bbox蕴含高度的原图信息,可能包含物体。

Predicted Head

先不看右上方的mask head,随后的prediction head就是再次确定,映射后得到的bbox是否是真的有物体,并将它们的坐标再次进行细调。

具体做法就是将那些7X7X256的bbox,经过average pooling变成一维向量,经过全连接层,分别得到它们的坐标偏移量和类别概率,这个坐标偏移量和RPN一样,是预测的bbox的偏移量,但类别那一块,这时候就是具体地去预测这个bbox是什么类别,或者是背景,比RPN网络的预测更具体。

到这一步位置位置,其实基本就是广为人知的Faster R-CNN的模型流程,我们确定了RPN筛选过后的bbox具体是什么类别,并再对它们的bbox进行微调,得到更准确的位置。

事实上,这些步骤中还涉及到一个nms的技术,它能删除冗余的框,让输出的预测框更加的准确,不过这里就不再展开,它也是目标检测领域十分重要的技术。

最后再说一下mask分支,到了这一步,就是根据bbox,再进一步确定bbox内部的像素的类别。

但是我们的bbox只是7X7X256的尺寸,肯定与实际物体大小的不符,所以,这里又用到了一个全卷积层(FCN)和上采样的技术,将这个bbox进一步进行上采样,就是逐步恢复它的尺寸,再通过FCN确定 bbox位置的像素哪些位置可能是物体,哪些地方不是。

04 总结

综上,通过Mask R-CNN的这一套操作流程,我们顺利知道了原图哪些位置可能有目标,哪些像素属于什么类别,即到了实例分割!

对于这种复杂模型的创新,实在不容易做到,向这些优秀的学者致敬!

私信我领取目标检测与R-CNN/数据分析的应用/电商数据分析/数据分析在医疗领域的应用/NLP学员项目展示/中文NLP的介绍与实际应用/NLP系列直播课/NLP前沿模型训练营等干货学习资源。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容