R-CNN系列目标检测博文汇总 Fast R-CNN(理解)

R-CNN

【深度学习】R-CNN 论文解读及个人理解

【目标检测】RCNN算法详解

R-CNN论文翻译解读

总之,R-CNN取得成功的两个关键因素:
1:在候选区域上自下而上使用大型卷积神经网络(CNNs),用以定位和分割物体。
2:当带标签的训练数据不足时,先针对辅助任务进行有监督预训练,再进行特定任务的调优,就可以产生明显的性能提升

简单来说,RCNN使用以下四步实现目标检测:
a. 在图像中确定约1000-2000个候选框
b. 对于每个候选框内图像块,使用深度网络提取特征
c. 对候选框中提取出的特征,使用分类器判别是否属于一个特定类
d. 对于属于某一特征的候选框,用回归器进一步调整其位置

经典的R-CNN存在以下几个问题:
训练分多步骤(先在分类数据集上预训练,再进行fine-tune训练,然后再针对每个类别都训练一个线性SVM分类器,最后再用regressors对bounding box进行回归,并且bounding box还需要通过selective search生成)
时间和空间开销大(在训练SVM和回归的时候需要用网络训练的特征作为输入,特征保存在磁盘上再读入的时间开销较大)
测试比较慢(每张图片的每个region proposal都要做卷积,重复操作太多)
  在Fast RCNN之前提出过SPPnet来解决R-CNN中重复卷积问题,但SPPnet仍然存在与R-CNN类似的缺陷:
训练分多步骤(需要SVM分类器,额外的regressors)
空间开销大

 FAST-CNN

Fast R-CNN(理解)

目标检测算法Fast R-CNN简介

特征提取网络

改进的地方

  • 卷积不再是重复对每一个region proposal,而是对于整张图像先提取了泛化特征,这样子减少了大量的计算量(注意到,R-CNN中对于每一个region proposal做卷积会有很多重复计算)
  • ROIPooling的提出,巧妙的解决了尺度放缩的问题
  • 将regressor放进网络一起训练,同时用softmax代替SVM分类器,更加简单高效
Fast R-CNN目标检测主要流程如下:
(1). 输入一张待检测图像;
(2). 提取候选区域:利用Selective Search算法在输入图像中提取出候选区域,并把这些候选区域按照空间位置关系映射到最后的卷积特征层;
(3). 区域归一化:对于卷积特征层上的每个候选区域进行RoI Pooling操作,得到固定维度的特征;
(4). 分类与回归:将提取到的特征输入全连接层,然后用Softmax进行分类,对候选区域的位置进行回归。
不足:
region proposal的提取仍然采用selective search,整个检测流程时间大多消耗在这上面(生成region proposal大约2~3s,而特征提取+分类只需要0.32s),之后的Faster RCNN的改进之一便是此点。

 Faster-rcnn

faster-RCNN的关键点(区域推荐网络RPN)详解

 

猜你喜欢

转载自www.cnblogs.com/henuliulei/p/12112376.html