R-CNN、Fast-RCNN和Faster-RCNN三者对比总结

目录

  • R-CNN、Fast-RCNN和Faster-RCNN三者对比总结
    • 1.R-CNN
      • 1.1 R-CNN的关键点
      • 1.2 R-CNN的整体框架
    • 2. Fast-RCNN
      • 2.1 Fast-RCNN的整体框架
      • 2.2 Fast-RCNN和RCNN的区别
    • 3. Faster-RCNN
      • 3.1 Faster-RCNN的整体框架
      • 3.2 Fast-RCNN和Faster-RCNN的区别

R-CNN、Fast-RCNN和Faster-RCNN三者对比总结

1.R-CNN

1.1 R-CNN的关键点

1) 用CNN对每张图片生成的大约2K张建议窗口进行特征提取;
2)当样本较少时,使用大量的辅助样本对模型进行预训练,之后用自己的样本对网络进行微调。

1.2 R-CNN的整体框架

1)用Selective Search生成RP(Region Proposals),RP的大小不一样,之后通过warp,把RP变成统一的227×227的大小。
2) 将227×227的RP输入到CNN中进行特征提取。
3) 用独立的SVM对RP进行特征分类。
4) 用Bb回归(Bounding box regression)校正原来的RP,生成预测窗口的坐标。
归纳:RP——>特征提取——>SVM分类——>Bb回归。
原论文中的图如下:
R-CNN、Fast-RCNN和Faster-RCNN三者对比总结_第1张图片

2. Fast-RCNN

2.1 Fast-RCNN的整体框架

1)用Selective Search生成约2K个RP。
2)强整张图像输入CNN中,提取feature map。
3)把RP映射到CNN的最后一层卷积的feature map上。
4)通过RoI pooling层使得每个RP成为固定尺寸的feature map。
5)利用Softmax Loss和Smooth L1 Loss对分类概率和Bb回归联合训练。
测试:
1)至4)同测试。
5)用Softmax Loss探测分类概率。
6)用Smooth L1 Loss探测边框回归。
7)用Bb回归值校正原来的RP,最终生成预测窗口的坐标。
归纳:RP——>整张图像feature map——>RP映射——>RoI Pooling——>Softmax Loss分类——>Smooth L1 Loss回归——>Bb回归
原论文图如下:
R-CNN、Fast-RCNN和Faster-RCNN三者对比总结_第2张图片

2.2 Fast-RCNN和RCNN的区别

Fast-RCNN融入了SPPnet的特点。
1)R-CNN是将每个RP送入CNN中进行特征提取,导致RP之间的大量重叠,特征提取冗余。Fast-RCNN将整张图像归一化后送入CNN进行特征提取,在最后一层feature map上将RP进行映射,避免了重复特征的提取,共享了特征,减少了运算能力的浪费。
2)R-CNN在用SVM分类之前,把通过CNN提取的特征存储在硬盘上。在硬盘上大量读写数据会造成训练性能低、训练速度慢。Fast-RCNN的训练数据在GPU内存里直接进入Loss层,不再需要把大量的数据存储在硬盘。
3) R-CNN中独立的SVM和Bb回归需要大量的特征作为训练样本,需要大量的硬盘空间。Fast-RCNN把分类和回归都用深度网络实现,不需要额外存储。

3. Faster-RCNN

3.1 Faster-RCNN的整体框架

训练
1)把整张图像送入CNN中进行feature map的提取。
2)用RPN生成RP,每张图片生成300个。
3)RP映射到最后一层feature map。
4)在RoI pooling层把每个RoI生成固定大小的feature map。
5)利用Softmax Loss和Smooth L1 Loss对分类概率和Bb回归联合训练。
测试。
1)至4)同测试。
5)用Softmax Loss探测分类概率。
6)用Smooth L1 Loss探测边框回归。
7)用Bb回归值校正原来的RP,最终生成预测窗口的坐标。

3.2 Fast-RCNN和Faster-RCNN的区别

1)Fast-RCNN中用Selective Search进行RP的生成,Faster-RCNN中用RPN生成RP。
2)Faster-RCNN中的产生RP的RPN和目标检测的CNN共享。

PS:这周在搭建运行Faster-RCNN的环境,遇到了很多问题,不过死磕应该是每个程序员的精神吧,加油咯!

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