Creep

  • 2

    获得赞
  • 1

    发布的文章
  • 0

    答辩的项目

Fast R-CNN & Faster R-CNN 经验漫谈

目标检测

最后更新 2020-04-16 14:21 阅读 304

最后更新 2020-04-16 14:21

阅读 304

目标检测

image.png

R-CNN缺点: 

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

SPPNet缺点:

  1. 为了克服R-CNN在CNN过程中重复计算造成的计算冗余,SPP将图像经过CNN得到feature map,让候选区域与feature map直接映射,得到特征向量。这就使卷积层只能固定,不能通过前向传播进行微调。限制了网络的准确性。
  2. Fast R-CNN架构。将输入图像和候选区域(ROI)输入到全卷积网络中。每个ROI被汇集到一个固定大小的feature map中,然后通过完全连接层(full connected layers, FCs)映射到一个feature vector中。该网络每个ROI有两个输出向量:softmax概率和每个类bbox回归偏移量。该架构是用多任务损失来端对端地进行训练的。

ROI pooling层

  1. 输入图像经过深度卷积会得到卷积feature map,然后将候选区域在卷积feature map上投影出特征向量,输出给ROI pooling层。ROI pooling层使用max pooling把传递进来的有效的候选区域,转化成一个小的feature map(固定大小H x W),其中H、W是超参数(即训练前就赋值的),文中采用7x7的。
  2. ROI是一个矩形窗口,其中,左上角坐标(r,c),高和宽(h,w)。ROI工作是将大窗口(h,w)分成一个个小窗口(H,W),共有(h/H)x(w/W)个,然后在每个小窗口的max-pooling值放到相应的输出网格单元。RoI层只是SPPNets中使用的空间金字塔池层的特例,其中只有一个金字塔层。 

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

RPN(region proposal networks)

  1. 输入任意大小图像,会输出一组目标候选框,并带有目标分数。为了生成区域建议,在最后一个共享卷积层输出的卷积feature map上滑动一个小网络(n×n空间的小窗口)。
  2. 每个滑动窗口都将feature map映射到一个较低维度的特征向量。最后,这个特征向量被输入到两个完全连接层——box-regression layer (reg)和box-classification layer (cls)。
  3. 参考框称之为anchor(锚),锚中心位于滑动窗口中心,并于框的比例和纵横比有关。默认情况下,使用3个比例和3个纵横比,在每个滑动位置产生k = 9个锚。因此,reg层有4k输出(确定k个框的坐标和框的长宽),cls层输出2k,用于估计每个目标区域是分类对象或背景的概率。
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可,转载请附上原文出处链接和本声明。
本文链接地址:https://www.flyai.com/article/375
讨论
500字
表情
每日优质讨论奖励 20FAI
发送
每日优质讨论奖励 20FAI
删除确认
是否删除该条评论?
取消 删除