深度篇——目标检测史(二) 细说 R-CNN 目标检测

返回主目录

返回 目标检测史 目录

上一章:深度篇——目标检测史(一) 关于 古典 目标检测

下一章:深度篇——目标检测史(三)  细说 SPP-Net 目标检测

论文地址:《Rich feature hierarchies for accurate object detection and semantic segmentation》

本小节,细说 R-CNN 目标检测,下一小节细说 SPP-Net 目标检测

二. R-CNN 目标检测 (2013年)

1. R-CNN (Region-based Convolutional Neural Networks, R-CNN) 基于区域的卷积神经网络,是一种结合区域提名(Region Proposal) 和 卷积神经网络 (CNN) 的目标检测方法。R-CNN 是 Ross Girshick 在 2013 年发布的。Ross Girshick 作为这个领域的开山鼻祖,总是神一样的存在,R-CNN,Fast R-CNN,Faster R-CNN,YOLO 都和他有关。其实在 R-CNN 之前已经有很多研究者在尝试用 Deep learning 的方法来做目标检测,包括 OverFeast,但 R-CNN 是第一个真正可以工业级应用的解决方案。

 

2. 深度学习相关的目标检测方法看大致分为两派:

   (1). 基于区域提名

         如 R-CNN,SPP-Net,Fast R-CNN,Faster R-CNN,R-FCN

   (2). 端到端 (end-to-end)

          无需区域提名,如 SSD,YOLO,CornerNet 等

 

3.  R-CNN 的主要步骤

   (1). Region proposal 区域提名

        通过 selective search 从原始图像中提取 2k 个左右 bounding boxes 区域候选框

   (2). 区域大小归一化

         把所有 bounding boxes 候选框 缩放成固定大小的 图像 (原文采用 227 x 227)。

   (3). 特征提取

         通过 CNN 网络,提取特征

   (4). 分类与回归

         在特征层的基础上添加两个全连接层,再用 SVM 分类来做识别,用线性回归来微调边框位置与大小,其中每个类别单独训练一个边框分类器。

 

4. R-CNN 流程图

      另一种角度观察如下:

上图中的 Warped image regions,是区域大小归一化,会将 bounding boxe 框内的信息,通过 crop 或 warp,全都处理为相同尺寸。这就导致了一些图像会被拉伸变形,导致图像失真。

  还有,就是单独对每个 大小归一化后的图像 进行卷积操作,由于 bounding boxes 大概 2k 左右个,而且,有很可能都有重合的,这就导致在提取特征的过程中,会有许多重复操作,并且非常消耗时间资源和空间资源。

   再有,SVM 适合处理有限的数据,如果数据海量,则很容易超出 SVM 的能力范围。计算量过大,模型过大,效率过低。

 

5. R-CNN 与 古典目标检测 的区别,只是使用 CNN 卷积提取特征,替代了 HOG 特征 + bag-of-words 特征 等提取的过程。就这些改动,使得 R-CNN 在 ILSVRC2013 检测数据中,获得了 31.4% mAP 这样的好成绩。相对于以前那些最好的结果 24.3% mAP 有了巨大的提升。并且,也第一次引起人们的注意,CNN 提取图像特征,具有非凡的能力。从此,图像处理,基本使用 CNN 来提取特征。

    尽管 R-CNN 对于后来者来说,有这样那样的不足。但是,在当时,却是一个很好的检测器,效果也是蛮好的

 

6. R-CNN 的缺点

   (1). 重复计算

         R-CNN 虽然不再是穷举,但依然有 2k 个左右的 bounding boxes,这些 bounding boxes 都需要进行 CNN 操作,计算量依然很大,其中有不少其实是重复计算

   (2). SVM 模型

          还有线性模型,在标注数据不缺的时候,显然不是最好的选择。

   (3). 训练测试分为多步

          region proposal,特征提取、分类、回归都是断开的训练过程,中间数据还需要单独保存。训练分为多个阶段,不在繁琐。微调网络 + 训练 SVM + 训练边框回归器

   (4). 训练的空间和时间代价很高

         卷积处理的特征要先存在硬盘上,这些特征需要 几百 G 的存储空间。保存和读取的过程,都需要消耗时间和资源。

   (5). 慢

          前面的缺点最终导致 R-CNN 出奇的慢,GPU 上处理一张图像需要 13s,CPU 上则需要 53s。

    (6). 区域大小归一化,会对目标进行 crop 或 warp 非等比例缩放,导致 大小归一化 得到的目标变形 或 缺失部分信息,和真实目标产生一定的差距,这会在后面训练和测试的时候,导致其准确率下降。

 

                  

返回主目录

返回 目标检测史 目录

上一章:深度篇——目标检测史(一) 关于 古典 目标检测

下一章:深度篇——目标检测史(三)  细说 SPP-Net 目标检测

发布了63 篇原创文章 · 获赞 16 · 访问量 5987

猜你喜欢

转载自blog.csdn.net/qq_38299170/article/details/104470641