66.物体检测算法:区域卷积神经网络(R-CNN)系列

1. R-CNN


ps:在计算机视觉中,深度学习之前,分类器用的是SVM

2. 兴趣区域(RoI)池化层

66.物体检测算法:区域卷积神经网络(R-CNN)系列_第1张图片
66.物体检测算法:区域卷积神经网络(R-CNN)系列_第2张图片
目的是为了让每个锚框都可以变成一个自己想要的形状。

3. Fast RCNN


具体步骤如下:

  1. 对整张图片用CNN抽特征(ps:不是对锚框抽特征),并且抽特征不需要头,就得到7 x 7或者14 x 14的feature map
  2. 再用选择性搜索在原始图片中搜索到锚框,再把它映射到CNN的输出,CNN的输出是一个feature map,把原图的锚框在feature map中按比例映射。
  3. 再用RoI Pooling对每个锚框抽取特征,假设如图中所示,抽取之后变成两个长为4的向量。图中黄色框框区域可以把一张图片(100个锚框)变成一个100 x 4的向量,这里先不管通道数。
  4. 之后再进入全连接层,(注意这里100是100个样本),做分类预测和锚框预测

比之前R-CNN快的原因:不再是对每一个锚框抽取特征,是对整个图片进行特征抽取。

4. Faster R-CNN

使用一个区域提议网络(Region proposal network)来替代之前的启发式搜索来获得更好的锚框。

66.物体检测算法:区域卷积神经网络(R-CNN)系列_第3张图片

具体来说,区域提议网络的计算步骤如下:

  1. 使用填充为1的的3 x 3卷积层变换卷积神经网络的输出,并将输出通道数记为c。这样,卷积神经网络为图像抽取的特征图中的每个单元均得到一个长度为c的新特征。

  2. 以特征图的每个像素为中心,生成多个不同大小和宽高比的锚框并标注它们。

  3. 使用锚框中心单元长度为c的特征,分别预测该锚框的二元类别(含目标还是背景)和边界框。

  4. 使用非极大值抑制,从预测类别为目标的预测边界框中移除相似的结果。最终输出的预测边界框即是兴趣区域汇聚层所需的提议区域。

5. Mask R-CNN

如果有像素级别的标号,使用FCN来利用这些信息


Mask R-CNN是基于Faster R-CNN修改而来的。 具体来说,Mask R-CNN将兴趣区域汇聚层替换为了 兴趣区域对齐层,使用双线性插值(bilinear interpolation)来保留特征图上的空间信息,从而更适于像素级预测。 兴趣区域对齐层的输出包含了所有与兴趣区域的形状相同的特征图。 它们不仅被用于预测每个兴趣区域的类别和边界框,还通过额外的全卷积网络预测目标的像素级位置

RoI Pooling改成了RoI align,因为RoI Pooling对于像素级别不适用,会可能生成像素级的偏移,会导致在边界的地方是预测不准标号的。

RoI align 则是不像之前分割成4、2、2、1,而是直接在中间切开,沿着左右对称的对称轴切开,和上下对称的对称轴切开,这样会存在把一个像素分割的可能,然后再取出一个像素的一小部分。

6. 模型精度比较

66.物体检测算法:区域卷积神经网络(R-CNN)系列_第4张图片

从图中可以看出,Faster RCNN精度很高,但是处理很慢。

7. 总结

  • R-CNN是最早、也是最有名的一类基于锚框和CNN的目标检测算法
  • Faster/Faster R-CNN持续提升性能
  • Faster R-CNN和Mask R-CNN是在最求最高精度场景下的常用算法(Mask R-CNN在无人机中应用比较多)

你可能感兴趣的:(深度学习,算法,cnn)