Mask R-CNN论文笔记

  1. 背景及大致思路
    a. 何凯明基于Faster R-CNN提出的用于实例分割的结构框架。该框架在原本的结构上增加了用于预测mask的新支路,速度仍达到了5fps。同时,这个结构也能用于其他的视觉任务如检测,人物关键点检测。
    b. 实例分割:是物体检测和语义分割的结合,也就是要对每个像素都给出其对应的分类。
    c. 方法的主要改变在于,在对ROI操作时,增加了一条平行的用于预测分割的支路。这条支路是一个小的全卷积网络,也就是给出像素到像素的结果。
    d. ROI在操作时,会进行两次取整操作,分别是对应到FeatureMap的一次和分割为k*k个bin的一次。每次取整造成的偏移,对于检测任务可能不是很重要,但对于分割任务就不是很能接受了。针对这个问题,使用了ROIAlign来解决。
    e. 作者认为,将mask和类别预测分开是很重要的。所以对于每个分类,都独立的给出一个mask,使得类间无竞争。
    f. 整个结构看起来就是FPN+Faster R-CNN+mask branch

  2. 主要模块
    a. Faster R-CNN:Mask R-CNN的主干部分及主要思想。两步的检测器,第一步使用RPN得到ROI的大致边框,然后第二步使用RoIPool,得到候选区域对应的Feature Map,并作出分类和边框回归。
    b. Mask R-CNN:第一步也是通过RPN,得到ROI。但在第二步中,在分类和回归的基础上,并行的得到一个二分类的mask。在训练时,损失函数如下:
    在这里插入图片描述
    分别对应分类的损失,回归框的损失和mask的损失。在mask那一路中,我们会对于每一个类别得到一个mask,也就是说对于m * m大小的ROI,我们会得到 k * m * m个mask。但在训练中,我们只会使用和gt一致的k的那层来计算损失。这一步和大部分的FCN网络不一样,因为我们对于每个pixel并不是直接用softmax来预测类别,而是对于每个分类进行二分类得到最后结果。实验显示,这是一个很关键的部分。
    c. Mask Representation:不同于分类和回归框,这一步我们不需要使用全连接层。全连接层会丢失空间信息,也会增加参数的数量,在实验中,不使用全连接层也让结果更加的准确。但这就需要在进行ROI操作时,准确的对齐于原图,因此,作者提出了接下来的方法:RoiAlign层。
    d. RoIAlign:就像在第一部分所说,ROI的两次取整操作,使得Feature Map和原图有一定的漂移,那么当感受野很大时,即使是一格的漂移,也会造成很大的误差。于是,对于每一块,我们都是算出对应的真实值,然后通过双线性插值的方法,得到对应点的像素值。
    e. Network Architecture:作者选择了FPN作为backbone,这里主要发生的改变就是,根据他们的尺寸,在不同的特征层上提取RoI。具体的各层锚框大小,选择某一层特征层的部分在FPN中有提及。

  3. 实现细节
    a. 训练时,只有正样本的loss才会被计算,并保证正负样本在1:3的比例,每张图被缩放到800像素的尺寸。锚框的选择和FPN中一致。
    b. 预测时,采用FPN为backbone时会给出1000个预选框,在这些框上做预测,再使用NMS,最后对预测分最高的100个框使用mask的分支。虽然对于每一个RoI都会产生k种mask,但最后只采用分类的那个结果的那层。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值