D5-Fast R-CNN & Faster R-CNN论文解读

Fast R-CNN & Faster R-CNN

R-CNN缺点:

  1. 训练分为多个阶段。首先使用log损失函数对ConvNet候选区域进行微调。然后,将SVM与CNN相结合。这些SVM作为对象检测器,代替了通过微调学习的softmax分类器。在第三个训练阶段,学习bbox回归函数。
  2. 训练浪费大量内存空间和训练时间。每个候选区域都要经过CNN提取特征,然后前向传播。
  3. 测试比较慢。

SPPNet缺点:

  • 为了克服R-CNN在CNN过程中重复计算造成的计算冗余,SPP将图像经过CNN得到feature map,让候选区域与feature map直接映射,得到特征向量。这就使卷积层只能固定,不能通过前向传播进行微调。限制了网络的准确性

Fast R-CNN

D5-Fast R-CNN & Faster R-CNN论文解读_第1张图片
Faste R-CNN架构

将输入图像和候选区域(ROI)输入到全卷积网络中。每个ROI被汇集到一个固定大小的feature map中,然后通过完全连接层(full connected layers, FCs)映射到一个feature vector中。该网络每个ROI有两个输出向量:softmax概率和每个类bbox回归偏移量。该架构是用多任务损失来端对端地进行训练的。

ROI pooling层

输入图像经过深度卷积会得到卷积feature map,然后将候选区域在卷积feature map上投影出特征向量,输出给ROI pooling层。ROI pooling层使用max pooling把传递进来的有效的候选区域,转化成一个小的feature map(固定大小H x W),其中H、W是超参数(即训练前就赋值的),文中采用7x7的。

ROI是一个矩形窗口,其中,左上角坐标(r,c),高和宽(h,w)。ROI工作是将大窗口(h,w)分成一个个小窗口(H,W),共有(h/H)x(w/W)个,然后在每个小窗口的max-pooling值放到相应的输出网格单元。RoI层只是SPPNets中使用的空间金字塔池层的特例,其中只有一个金字塔层。
D5-Fast R-CNN & Faster R-CNN论文解读_第2张图片

Faster R-CNN

D5-Fast R-CNN & Faster R-CNN论文解读_第3张图片

由于传统的selective search生成候选区域比较耗时,相比于后面的检测相差一个数量级。Faster R-CNN由2个模块组成,第一个模块是一个生成候选区域的深度全卷积网络,第二个模块是一个Fast R-CNN检测器。

RPN(region proposal networks)

输入任意大小图像,会输出一组目标候选框,并带有目标分数。为了生成区域建议,在最后一个共享卷积层输出的卷积feature map上滑动一个小网络(n×n空间的小窗口)。每个滑动窗口都将feature map映射到一个较低维度的特征向量。最后,这个特征向量被输入到两个完全连接层——box-regression layer (reg)和box-classification layer (cls)。

D5-Fast R-CNN & Faster R-CNN论文解读_第4张图片

参考框称之为anchor(锚),锚中心位于滑动窗口中心,并于框的比例和纵横比有关。默认情况下,使用3个比例和3个纵横比,在每个滑动位置产生k = 9个锚。因此,reg层有4k输出(确定k个框的坐标和框的长宽),cls层输出2k,用于估计每个目标区域是分类对象或背景的概率。
D5-Fast R-CNN & Faster R-CNN论文解读_第5张图片

你可能感兴趣的:(#,目标检测,目标检测)