Mask RCNN 与 Faster RCNN

参考1
2
3

mask RCNN不仅能够同时进行目标检测与分割,还很容易拓展到其他任务中。
Mask RCNN沿用了Faster RCNN的思想,特征提取采用ResNet-FPN的架构,另外多加了一个Mask预测分支。

1、Faster RCNN

参考
感觉这一篇讲的很好,本文只摘抄其中一部分,具体看原文。
Faster RCNN在结构上已经将特征抽取(feature extraction),proposal提取,bounding box regression ,classification都整合在一张网络中,综合性能有较大提升,检测速度快。其包含两个阶段。包括阶段1的Region proposal以及阶段二的bounding box回归和分类
在这里插入图片描述
1、Conv layers。作为一种CNN网络目标检测方法,Faster RCNN首先使用一组基础的conv+relu+pooling层提取image的feature maps。该feature maps被共享用于后续RPN层和全连接层。
2、Region Proposal Networks。RPN网络用于生成region proposals。该层通过softmax判断anchors属于positive或者negative,再利用bounding box regression修正anchors获得精确的proposals。
3、Roi Pooling。该层收集输入的feature maps和proposals,综合这些信息后提取proposal feature maps,送入后续全连接层判定目标类别。
4、Classification。利用proposal feature maps计算proposal的类别,同时再次bounding box regression获得检测框最终的精确位置。

在这里插入图片描述
使用CNN提取图像特征,使用region proposal network (RPN)提取出ROI(Region of Interest)。然后使用ROI pooling将这些ROI全部变成固定尺寸,再喂给全连接层进行Bounding box回归和分类预测。

2、ResNet-FPN

Feature Pyramid Network (FPN,金字塔型特征网络)是一种精心设计的多尺度检测方法。FPN结构中包括自下而上,自上而下和横向连接三个部分,如下图所示。这种结构可以将各个层级的特征进行融合,使其同时具有强语义信息和强空间信息。
在这里插入图片描述
FPN是一种通用的架构,可以结合各种骨架网络使用。
在这里插入图片描述

3、ResNet-FPN+Fast RCNN

将ResNet-FPN和Fast RCNN进行结合,实际上就是Faster RCNN的了,但与最初的Faster RCNN不同的是,FPN产生了特征金字塔 图片,而并非只是一个feature map。金字塔经过RPN之后会产生很多region proposal。这些region proposal是分别由 图片 经过RPN产生的,但用于输入到Fast RCNN中的是 图片,也就是说要在 图片 中根据region proposal切出ROI进行后续的分类和回归预测。问题来了,我们要选择哪个feature map来切出这些ROI区域呢?实际上,我们会选择最合适的尺度的feature map来切ROI。具体来说,我们通过一个公式来决定宽w和高h的ROI到底要从哪个图片 来切:
在这里插入图片描述
这里224表示用于预训练的ImageNet图片的大小。 图片 表示面积为 图片 的ROI所应该在的层级。作者将 图片 设置为4,也就是说 图片 的ROI应该从 图片 中切出来。假设ROI的scale小于224(比如说是112 * 112), 图片 ,就意味着要从更高分辨率的 图片 中产生。另外 k 值会做取整处理,防止结果不是整数。

这种做法很合理,大尺度的ROI要从低分辨率的feature map上切,有利于检测大目标,小尺度的ROI要从高分辨率的feature map上切,有利于检测小目标。
(个人理解:在这里初始设置的224以及K0,都是根据FPN的层数以及原图像的大小来决定的)

4、ResNet-FPN+Fast RCNN+mask

将ResNet-FPN+Fast RCNN+mask,则得到了最终的Mask RCNN,如下图:
在这里插入图片描述
Mask RCNN是在ROIAlign之后添加卷积层,进行mask预测的任务。

5、总结

Mask RCNN的网络:
骨干网络ResNet-FPN,用于特征提取,另外,ResNet还可以是:ResNet-50,ResNet-101,ResNeXt-50,ResNeXt-101;

头部网络,包括边界框识别(分类和回归)+mask预测。头部结构见下图:
在这里插入图片描述

6、RoIAlign

Mask RCNN中还有一个很重要的改进,就是ROIAlign。Faster R-CNN存在的问题是:特征图与原始图像是不对准的(mis-alignment),所以会影响检测精度。而Mask R-CNN提出了RoIAlign的方法来取代ROI pooling,RoIAlign可以保留大致的空间位置。
RoIAlign 效果优于 RoIPooling

RoIPooling 在定位的时候是采取的 取整操作,RoIAlingn在定位是采取不取整操作。
在RoIPooling中 有一个参数sampling ratio,在每个子区域中采样的个数==sampling ratio 的平方。

1双线性插值

1线性插值

已知数据 图片 与 图片 ,要计算 图片 区间内某一位置 图片 在直线上的 图片 值,如下图所示。
在这里插入图片描述
通过斜率公式得到:
y = +在这里插入图片描述
+
在这里插入图片描述

2双线性插值

双线性插值本质上就是在两个方向上做线性插值
在这里插入图片描述

双线性插值公式为
双线性插值公式
在这里插入图片描述
这样就得到所要的结果f(x,y)
在这里插入图片描述

引用自双线性插值

2 ROI Pooling(Region of Interest Pooling,即感兴趣区域池化)

直接通过一个例子来形象理解。假设现在我们有一个8x8大小的feature map,我们要在这个feature map上得到ROI,并且进行ROI pooling到2x2大小的输出在这里插入图片描述
假设ROI的bounding box为在这里插入图片描述
在这里插入图片描述
将它划分为2x2的网格,因为ROI的长宽除以2是不能整除的,所以会出现每个格子大小不一样的情况。
在这里插入图片描述
进行max pooling的最终2x2的输出为:
在这里插入图片描述
通过两次取整操作,此时的候选框已经和最开始回归出来的位置有一定的偏差,会影响检测或者分割的准确度。在论文中被总结为“不匹配问题”(misalignment)但是在ROI Align 中,不进行整数化的操作,使用双新型插值的方法获得坐标为浮点数的像素点上的图像数值。
在这里插入图片描述
最终的采样结果对采样位置以及采样点的个数并不敏感。

7 损失

在这里插入图片描述
在这里插入图片描述

mask分支

在Mask R-CNN中,对预测mask以及Class进行解耦 。
训练网络的时候输入Mask分支的目标是由RPN提供的,即Proposals(正样本),但预测的时候输入Mask分支的目标是由Fast R-CNN提供。

语义分割与实例分割的区别

  1. 语义分割

    • 任务:在图像中为每个像素分配一个语义类别,例如“人”、“车”、“狗”等。
    • 输出:对于输入图像的每个像素,都会预测其所属的语义类别。
    • 特点:忽略了不同个体之间的区别,只关注整体像素的类别。在像素级别上提供了语义信息,但不提供个体的区分。
    • 示例:对于一张包含人、车、狗和树的图像,语义分割将为图像中的每个像素分配一个类别标签,例如人的像素被标记为“人”,车的像素被标记为“车”,以此类推。
  2. 实例分割

    • 任务:在图像中识别和分割出每个个体对象,并为每个对象分配一个唯一的标识符(ID)。
    • 输出:对于每个检测到的对象,生成一个二进制掩码,其中像素值为 1 表示属于该对象,像素值为 0 表示属于背景。
    • 特点:不仅提供了语义信息,还提供了个体对象的识别和分割,每个对象都有一个唯一的标识符。
    • 示例:对于一张包含多个人、车、狗和树的图像,实例分割将为每个个体对象生成一个独立的二进制掩码,以区分不同的对象。

总的来说,语义分割关注的是像素级的语义信息,而实例分割不仅提供了语义信息,还能够区分不同的个体对象。

特征提取过程

  • 41
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值