欢迎光临散文网 会员登陆 & 注册

1.1Faster RCNN理论合集

2022-04-03 17:17 作者:小清舍  | 我要投稿

Faster RCNN

是由RCNN——Faster RCNN

R-CNN(Region with CNN feature)

原论文:Rich feature hierarchies for accurate object detection and semantic segmentation

论文地址:https://static.aminer.cn/upload/pdf/program/556f622a2401b4b38c23635c_0.pdf

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

论文提出于2014年,将目标检测的最高准确率提高了30%。

RCNN算法流程:

  1. 一张图像生成1K~2K个候选区域(使用Selective Search方法)
  2. 对每个候选区域,使用深度网络提取特征
  3. 特征送入每一类的SVM分类器,判别是否属于该类
  4. 使用回归器精细修正候选框位置


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


2.对每个候选区域,使用深度网络提取特征:将2000候选区域缩放到227*227pixel,接着将候选区域输入事先训练好的AlexNet CNN 网络,获取4096维的特征得到2000*4096维矩阵


3.特征送入每一类的SVM分类器,判定类别:将2000*4096维特征与20个SVM组成的权值矩阵4096*20相乘,获得2000*20维矩阵表示每个候选框是某个目标类别的得分分别对上述2000*20维矩阵中每一列即每一类进行非极大值抑制剔除重叠候选框,得到该列即该类中得分最高的一些候选框



非极大值抑制剔除重叠候选框

IoU(Intersection over Union)

4.使用回归器精细修正候选框位置

对NMS处理后剩余的建议框进一步筛选。接着分别用20个回归器对上述20个类别中剩余的建议框进行回归操作,最终得到每个类别的修正后的得分最高的bounding box.

总结:RCNN分为4个步骤

  1. 一张图像生成1K~2K个候选区域
  2. 对每个候选区域,使用深度网络提取特征
  3. 特征送入每一类的SVM分类器,判别是否属于该类
  4. 使用回归器精细修正候选框的位置


R-CNN框架

R-CNN存在的问题:

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



Fast R-CNN

论文地址:https://openaccess.thecvf.com/content_iccv_2015/papers/Girshick_Fast_R-CNN_ICCV_2015_paper.pdf


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


Fast R-CNN 算法流程:

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

对比R-CNN(左边)和Fast R-CNN(右边)如何生成候选框特征

R-CNN依次将候选框区域输入卷积神经网络得到特征

Fast R-CNN将整张图像送入网络,紧接着从特征图像上提取相应的候选区域。这些候选区域的特征不需要再重复计算

数据采样,分正样本、负样本

ROI Pooling Layer 不限制输入图像的尺寸

忽略了深度channel

网络框架

分类器输出N+1个类别的概率(N为检测目标的种类,1为背景)共N+1个节点

边界框回归器输出对应N+1个类别的候选边界框回归参数(dx,dy,dw,dh)共(N+1)*4个节点



多任务损失设计


交叉熵损失


总结






Faster R-CNN


算法步骤:

  1. 将图像输入网络得到相应的特征图
  2. 使用RPN结构生成候选框,将RPN生成的候选框投影到特征图上获得相应的特征矩阵
  3. 将每个特征矩阵通过ROI pooling层缩放到7*7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果



每个物体分为前景和背景,两两一组


通过一个小的感受野预测一个大的边界框是有可能的

CNN感受野


三种尺度,三种比例

anchor和候选框不是同一个东西

利用RPN生成的边界框回归参数,将anchor调整到我们所需要的候选框

正负样本

定义为正负样本的解释

RPN损失


二分类 预测1个值

边界框回归损失

Fast R-CNN损失计算

分类损失


边界框损失


Faster R-CNN训练

直接采用RPN Loss+Fast R-CNN Loss的联合训练方法

  1. 利用ImageNet预训练分类模型初始化前置卷积网络层参数,并开始单独训练RPN网络参数
  2. 固定RPN网络独有的卷积层以及全连接层参数,再利用ImageNet预训练分类模型初始化前置卷积网络参数,并利用RPN网络生成的目标候选框去训练Fast R-CNN网络参数
  3. 固定利用Fast R-CNN训练好的前置卷积网络层参数
  4. 同样保持固定前置卷积网络层参数,去微调Fast R-CNN网络的全连接层参数。最后RPN网络与Fast RCNN网络共享前置卷积网络层参数,构成一个统一网络


总结 实现端到端,模块多融合

对比

框架越来越简洁,效果越来越好

与UP主交流方式


1.1Faster RCNN理论合集的评论 (共 条)

分享到微博请遵守国家法律