目标检测 Faster-RCNN

文章目录

  • 标题目标检测算法:Faster-RCNN
    • R-CNN
      • Region Proposals 候选区域
      • RCNN结构原理
      • RCNN存在的问题
      • 用SPP-Net改进(spatial pyramid pooling layer空间金字塔池化)
    • Fast R-CNN
      • Fast R-CNN结构图
      • Fast R-CNN的缺陷
    • Faster R-CNN

标题目标检测算法:Faster-RCNN

R-CNN

Region Proposals 候选区域

原先都是用Selective Search算法产生候选区域(根据图片像素和纹理),比较慢(CPU上几秒种),效率慢,一张图要几秒钟。一张图片会产生1—2K个候选区域

目标检测 Faster-RCNN_第1张图片

RCNN结构原理

目标检测 Faster-RCNN_第2张图片首先通过SS算法在图像上产生候选框(大约1~2K个),对每个候选框执行卷积的操作。得到每个候选框的特征(特征不是共享的

然后进行候选框的回归,还有候选区域的分类

整个过程是分阶段进行的,不是端到端进行(从输入到输出,只有一个结构),每一小块都要单独执行。

RCNN存在的问题

目标检测 Faster-RCNN_第3张图片(1)每个候选区域都有一个单独的卷积网络,不是所有候选区域共享同一个卷积网络。主要是卷积网络中的全连接层无法共享,因为每个候选区域的大小不一样。
(2)SVM分类损失太高,外接矩形框回归(最小二乘)
(3)速度太慢,训练花了84个小时

用SPP-Net改进(spatial pyramid pooling layer空间金字塔池化)

目标检测 Faster-RCNN_第4张图片目标检测 Faster-RCNN_第5张图片crop就是从一个大图扣出网络输入大小的patch,比如227×227

warp就是把一个边界框bounding box的内容resize成227×227

但warp/crop这种预处理,导致的问题要么被拉伸变形、要么物体不全,限制了识别精确度。没太明白?说句人话就是,一张16:9比例的图片你硬是要Resize成1:1的图片,你说图片失真不?

目标检测 Faster-RCNN_第6张图片SPP能保证将卷积层得到的特征图,串联成一个新的特征,并能保证每个候选框串联后的特征是相同长度的。
目标检测 Faster-RCNN_第7张图片由此实现了特征提取部分的共享计算。

Fast R-CNN

目标检测 Faster-RCNN_第8张图片目标检测 Faster-RCNN_第9张图片

Fast R-CNN结构图

目标检测 Faster-RCNN_第10张图片一,首先我们对整个图像做卷积处理。
二、根据在原图像上的候选框,找到经过卷积后特征图上的候选框。(因为特征图对应原图上,有特定大小的感受野
优势:(1)卷积共享(2)速度更快

三、将候选区域经过ROI pooling layers,类似于spp的作用,这样就可以对所有的候选区域,使用统一的全连接层。

四、经过全连接层,然后做softmax分类,和边界框回归(此时分类和回归是一同进行的

优势:基本实现了 端到端

Fast R-CNN的缺陷

前提条件:必须在原图像的候选框区域上进行,这里的候选区域,其实还是用SS算法得到的,一张图片可能会有1~2K个候选区域。
没有完全实现 端到端算法
目标检测 Faster-RCNN_第11张图片从上图对比中可以看到,候选区域的寻找过程严重拖慢了Fast R-CNN的速度。

怎么把这个候选框寻找过程整合到神经网络训练中?????

Faster R-CNN

目标检测 Faster-RCNN_第12张图片
一、整个图片卷积处理,得到原图的特征图。
二、Region Proposal Network(区域建议网络),在特征图中产生候选框。
三、对产生出来的候选框,先做二分类(判断是物体or不是物体,即是前景还是背景),然后在二分类中是物体的侯选框,进行微调。
四、将得到的特征图(含有不同大小的候选框),经过ROI pooling 后,再进行多分类确定,和候选框区域确定。

目标检测 Faster-RCNN_第13张图片
从图中速度对比可以看出,Faster R-CNN速度可以达到一秒钟读取5张图片的速度。

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