R-CNN 和 Fast R-CNN
Carpe Tu Black Whistle

R-CNN

R-CNN: Region with CNN feature

R-CNN是利用深度学习进行目标检测的开山之作。作者Ross Girshick多次在PASCAL VOC的目标检测竞赛中折桂,曾在2010年带领团队获得终身成就奖。

Paper

Rich feature hierarchies for accurate object detection and semantic segementation

pipline

R-CNN算法流程可分为4个步骤

  • 一张图像生成 1k~2K个候选区域*(使用Selective Search方法)
  • 对每个候选区域,使用深度网络提取特征
  • 特征送入每一类的SVM分类器,判别是否属于该类
  • 使用回归期精细修正候选框位置(SS算法不是很准,专门设计回归期修正

image

  1. 利用 Selective Search 算法通过图像分割的方法得到一些原始区域,然后使用一些合并策略进行合并,得到一个层次化的区域结构,而这个结构就包含着可能需要的物体。

feature extraction

  1. 将2000候选区缩放到 227x227 pixel, 接着将候选区域输入是预先训练好的AlexNet CNN网络获取4096维的特征得到2000x4096维矩阵。

SVM判别

  1. 2000x4096唯独特征与20个SVM组成的权值矩阵4096x20相乘,获得2000x20纬度矩阵的概率矩阵,每行代表一个候选框归于每个目标类别的概率。
  2. 分别对上述2000x20维矩阵中每一列即每一类进行非极大值一直剔除重叠建议框,得到该列即分类中得分最高的一些建议框。

Non maximum suppression

非极大值抑制

image
IoU: Intersection over Union
IoC score =

  1. 寻找得分最高的目标
  2. 计算器他目标与该目标的IoU值
  3. 删除所有IoU大于给定阈值的目标
  4. 返回1.

回归期修正

分别用20个回归器对NMS处理后剩余的建议框进一步筛选。

20个回归器对20个类别中剩余的建议框进行回归操作,最终得到每个类别的修正后的得分最高的bouding box。

image

R-CNN 模型结构图

image

R-CNN 存在的问题

  • 测试速度慢
    • 测试一张图片约53s(CPU)用Selective Search算法提取候选框用时约2秒,一张图像内候选框之间存在最大重叠,提取特征操作冗余。
  • 训练速度慢
    • 过程及其繁琐
  • 训练所需空间大:
    • 对于SVM和bbox回归训练,需要从每个图像中的每个目标候选框提取特征,并写入磁盘。
    • 对于非常深的网络,如VGG16,从VOC07训练机上的5k图像上提取的特征需要数百GB的存储空间。

Fast R-CNN

Fast R-CNN是作者Ross Girshick继R-CNN后的又一力作。同样适用VGG16作为网络的backbone,与R-CNN相比训练时间快了9倍,测试推理事件快213倍,从准确率从62%上升到了66%(在Pascal VOC数据集上

paper

Fast R-CNN

pipeline

  • 一张图像生成1K~2K个候选区域(使用Selective Search方法)
  • 将图像输入网络得到对应的特征图,将SS算法生成的候选框投影到特征图上获得相应的特征矩阵
  • 将每个特征矩阵通过ROI pooling层缩放到7x7大小的特征图,接着将特征图战平通过一系列全联接层得到预测结果

image

image
Fast R-CNN利用了原图位置与特征图位置的映射关系,直接获取候选框对应特征图上的位置。(参考了SPP-net)

训练数据采样

(正样本,负样本)
正样本:目标类
负样本:背景
在采样的过程中,需要平衡正负样本的balance

对每张图片,2000个候选框中采集了64个候选区域,其中一部分为正样本,另一部分为负样本。
正样本定义: 候选框与真实目标边界框 IoU>0.5
负样本定义: 与真实边界框 0.1<IoU<0.5

RoI Pooling Layer

不对输入图像大小进行限制,将图片切割成7X7大小,每个图片网格

分类器与回归器

  • RoI pooling layer的输出为 7x7 的feature map
  • 将 7x7 的tensor展平处理,通过两个FC(全链接层)-> RoI feature vector
  • RoI feature vector -> (并联)两个全链接层
    • 目标概率预测: 通过 softmax 进行N+1分类(其中第一类为背景
    • 候选框回归: 回归决定(N+1)个类别的候选框4参数:()总共 4*(N+1)个参数





分别为候选框的中心(x,y)坐标,以及高宽
分别为最终预测的边界框中心(x,y),以及宽高

Multi-task loss


对应边界框回归期预测的对应类别u对回归参数(
对应真实目标的边界框回归参数()

reference: https://www.cnblogs.com/wangguchangqing/p/12021638.html

Fast R-CNN结构图

image

模型缺点

比起 R-CNN 网络结构以及被划分为两个结构了

  1. Selective Search算法提取候选框(Region proposal
  2. CNN融合完成了三个任务(特征提取、分类、候选框回归)

Reference

https://github.com/WZMIAOMIAO/deep-learning-for-image-processing/tree/master/pytorch_object_detection/faster_rcnn