【深度学习】R-CNN、Fast R-CNN、Faster R-CNN、Mask R-CNN总结

1. R-CNN

论文题目:《Rich feature hierarchies for accurate oject detection and semantic segmentation》
推荐博文:【深度学习】R-CNN 论文解读及个人理解

架构

【深度学习】R-CNN、Fast R-CNN、Faster R-CNN、Mask R-CNN总结_第1张图片
【深度学习】R-CNN、Fast R-CNN、Faster R-CNN、Mask R-CNN总结_第2张图片

步骤

  1. Selective Search(SS)算法:提取大约2000个候选区域RP(Region Proposal);
  2. warped region:相当于resize到固定尺寸,送入CNN;
  3. 卷积神经网络CNN:对每一个RP使用CNN(论文中使用AlexNet)提取抽象特征向量(固定长度的);
  4. Linear SVM:对每一个RP的特征向量进行分类Classification,每一个类别都对应一个SVM,然后采用NMS去除冗余;
  5. Linear Regression:分类后,用线性回归器对RP和GT的四点坐标进行线性回归,生成Bounding Box。

总结

R-CNN本质是用SS提取海量的RPwarped后,让每一个RP都前向通过CNN,提取特征向量,并以此训练/预测每一类的线性SVM分类器,再用线性回归器对BBOX进行回归预测。并且,论文中引入了在超大数据集上预训练pre-train、在自己规模较小的数据集上微调fine-tuning,即现在的迁移模型的概念。

2. Fast R-CNN

论文题目:《Fast R-CNN》
推荐博文:【目标检测】Fast RCNN算法详解

架构

【深度学习】R-CNN、Fast R-CNN、Faster R-CNN、Mask R-CNN总结_第3张图片
【深度学习】R-CNN、Fast R-CNN、Faster R-CNN、Mask R-CNN总结_第4张图片

多任务损失函数

【深度学习】R-CNN、Fast R-CNN、Faster R-CNN、Mask R-CNN总结_第5张图片
【深度学习】R-CNN、Fast R-CNN、Faster R-CNN、Mask R-CNN总结_第6张图片

步骤

  1. CNN:提取feature map,实现共享卷积,提高效率
  2. SS:在feature map上投影出ROI
  3. ROI Pooling:SPP空间金字塔池化的简化版,把不同尺度的ROI 池化为相同尺度
  4. Softmax:ROI Pooling后拉成一维向量,全连接层FCs,得到ROI feature vector,用Softmax分类
  5. Bbox Regression:对BBox四点坐标进行线性回归预测

总结

相较于R-CNN,Fast R-CNN的特点:

  1. 把SS提取RP和CNN位置前后交换,实现了CNN的卷积参数共享,提高了效率
  2. 简化SPP,提出了ROI Pooling,实现了不同尺度ROI能够池化为fix-length
  3. Softmax替换了线性SVM,实现了除SS提供RP外,从CNN到分类、回归的端到端训练

3. Faster R-CNN

论文题目:《Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks》
推荐博文:【目标检测】Faster RCNN算法详解

架构

【深度学习】R-CNN、Fast R-CNN、Faster R-CNN、Mask R-CNN总结_第7张图片

损失函数

【深度学习】R-CNN、Fast R-CNN、Faster R-CNN、Mask R-CNN总结_第8张图片

步骤

  1. CNN:得到feature map
  2. RPN:输入-conv feature map,输出-ROI
  3. ROI Pooling:得到fix-length特征向量,在送入fc
  4. softmax分类和regressor回归Bbox

轮流训练

  1. 先训练RPN
  2. 再训练Fast R-CNN
  3. 再训练RPN
  4. 再训练Fast R-CNN。。。
  5. 完成上述2次迭代

总结

Faster R-CNN = Fast R-CNN + RPN
RPN网络中引入了Anchor锚点的概念:
每个像素点,都有3种面积x3种尺度(1:1,1:2,2:1)共9个Anchor boxes,
对每个Anchor boxes进行二分类(前景(即ROI)和背景),
对每个Anchor boxes进行ROI box的粗略回归定位,(后面的regressor会对ROI进行refine)
【深度学习】R-CNN、Fast R-CNN、Faster R-CNN、Mask R-CNN总结_第9张图片

4. Mask R-CNN

论文题目:《Mask R-CNN》
推荐博文:Mask R-CNN原理详细解读

架构

【深度学习】R-CNN、Fast R-CNN、Faster R-CNN、Mask R-CNN总结_第10张图片
【深度学习】R-CNN、Fast R-CNN、Faster R-CNN、Mask R-CNN总结_第11张图片

特点

  1. 采用了ResNet-FPN作为backbone网络,有利于多尺度检测
  2. ROI Pooling改良成了ROI Align:因为ROI Pooling有2次整数化的过程(生成ROI时坐标整数化,Pooling分块时坐标整数化),影响Bbox的回归精度。而ROI Align直接避开整数化的处理过程,采用双线性插值,计算坐标的浮点坐标值
  3. 加入了Mask分支:即在ROI Align后面加入FCN全卷积网络,实现segmentation(实质是对像素级别的分类)

你可能感兴趣的:(深度学习)