Mask R-CNN演变之路

Outline

Frome RCNN to Mask R-CNN

  1. R-CNN
  2. Fast R-CNN
  3. Faster R-CNN
  4. FPN
  5. FPN+RPN+Fast R-CNN
  6. FPN+RPN+Fast R-CNN+Mask Prediction

Mask R-CNN

  1. ROI Align
    Bilnear interpolation
    ROI Pooling -> ROI Align
  2. Loss Function
  3. Application

一、Sliding Windows detector

RCNN

RCNN是来解决滑动窗检测这种暴力算法的方法,提出了Selective Search,将颜色,纹理等相似的特征信息放在一个边界框中,减少了很多框,提升了效率。
Selective Search

RCNN Architecture

在这里插入图片描述
大致过程:
首先输入一张图片,经过Selective Rearch 进行选择性搜索,选出感兴趣的区域,经过ROI的回归校正,resize成为固定的尺寸大小,在经过CNN,生成Feature Map,再经过两个全连接层后进行,分类和回归。

Bounding Box Regression:对偏移的边界框进行校正。

Fast R-CNN

Fast R-CNN
大致过程:
首先分别喂一张图片给CNN和Selective Rearch,经过CNN的处理,原图生成一个Feature Map,提取出图片的各种特征信息,经过Selective Search将图片中的类用BB框出来,,再根据这个ROI从Feature Map中切出来对应的特征区域,再经过ROI Pooling变成尺寸大小一样的区域输入到FC中,再经过两个全连接层后进行,分类和回归。

不难看出Fast RCNN与RCNN的区别就是:
Fast RCNN不是将ROI放入放入CNN中的,而是将一张图片喂给CNN中,从Feature Map中切出来对应的特征(语义)信息,这样做大大节省了时间。

ROI Pooling

ROI Pooling

Faster R-CNN

因为Fast RCNN仍然用Selective Search来提取ROI,费时,所以,Faster RCNN选用一个网络来选取ROI。
用RPN(Region Proposal Network)取代Selective Search。
Faster RCNN
大致过程:
将一张图片送入CNN,然后得到Feature Map。将Feature Map送入RPN生成ROI,将ROI从Feature Map中切出来,但是切出来的大小大小不一样,经过ROI Pooling后调整为大小一样的Feature Map,再经过两个全连接层后进行,分类和回归。
Faster RCNN每个点对应着9个anchor,就是做9次预测,9个边界框,选取最接近的一个最后的结果。
在这里插入图片描述
自己去拟合最match的BB

FPN(是一种思想)

Faster RCNN是一个单一对象目标检测。
在这里插入图片描述
最常用VGG网络,将2242243的原图,用77512的Feature Map,会损失很多小物体的位置信息,大物体还行。没用到其他层的Feature Map。
卷积层次越深,越抽象,分类效果越好,语义信息越强,但分辨率下降,不利于小物体,于是引入FPN,低层位置信息好,高层语义信息强。
在这里插入图片描述
FPN(特征金字塔网络)
在这里插入图片描述
优点:低层的位置信息加高层的语义信息。
自底向上,自上而下的传递信息。
上采样包括:双线性差值(无参数,速度快)和反卷积(耗时)。

ResNet + FPN

在这里插入图片描述
11:用来减少通道数
3
3:由于横向链接和上采样可能会导致混叠效应,所以要经过一个3*3的卷积
FPN,多尺度特征融合

FPN + RPN + Fast RCNN

在这里插入图片描述
大致过程:
将原图输入特征金字塔网络,生成多尺度特征映射,传入RPN,生成ROI,再根据多尺度特征映射来切出对应的特征,然后经过ROI Pooling调整大小,再经过两个全连接层后进行分类和回归。
感受野:ROI上的点映射回原图所对应的区域
在这里插入图片描述
通过上述公式来决定我们拿到xywh后具体拿到那个scale特征图来切ROI

FPN + RPN + Faster - RCNN + Mask Prediction

在这里插入图片描述
Mask RCNN只是在Faster RCNN的基础上加入了掩膜预测,就是将resize后的Feature Map传入
Mask Prediction branch:
在这里插入图片描述
他是对边界框进行预测,默认80个类

总结

  1. FPN是融合多个阶段的特征图,FPN的结果是得到了多个scale的特征图
  2. 然后把FPN用于

Loss Function

ROI Align

在这里插入图片描述
损失函数:
在这里插入图片描述
Mask Loss:用的是sigmoid,即预测某个点,它是那个类,就在80个类上的那个位置记1,并计算Loss,可以有效解决类间竞争问题,而softmax则会预测出一个类,另一个概率则会受影响,变小,此消彼长。
Mask RCNN既预测了类,也预测了Mask,性能大有提升。
在这里插入图片描述

  1. Mask RCNN是做实例分割的,比语义分割更进一步,边缘信息更好。
    在这里插入图片描述
  2. 稍微改进就可以做人体的姿势预测,eg:将80个类改为人身体的部位信息。
    在这里插入图片描述
    以上为本人观看B站视频做的笔记,视频链接在:Mask RCNN
posted @ 2019-12-06 17:18  旅人_Eric  阅读(336)  评论(0编辑  收藏  举报