《计算机视觉》集大网课笔记【7】

目标检测算法

问题及简史

滑动窗口法:不断在图像中切出小的图像块,检测完所有图像块后再进行置信度判断,留下的方框作为检测结果。①对图像尺寸进行缩放。②图像窗口尺寸变化。

AdaBoost:加大错分样本的权重,以使下一次分类正确。不断构造弱分类器,实现多个弱分类器的结连,从而形成强分类器

基于深度学习的检测算法

R-CNN基本策略

  1. 输入测试图像;
  2. 利用selective search算法在图像中从上到下提取2000个左右的候选区域;
  3. 将每个候选区域缩放成227*227的大小并输入到CNN,将CNN的fc7层的输出作为特征;
  4. 将每个候选区域提取的CNN特征输入到SVM进行分类;
  5. 对于SVM分好类的候选区域做边框回归 

R-CNN的缺点:

  1. 训练分为多个阶段,步骤繁琐:微调网络+训练SVM+训练边框回归器;
  2. 训练耗时,占用磁盘空间大;5000张图像产生几百G的特征文件;
  3. 速度慢:使用GPU,VGG16模型处理一张图像需要47s;
  4. 测试速度慢:每个候选区域需要运行整个前向CNN计算;
  5. SVM和回归是事后操作,在SVM和回归过程中CNN特征没有被学习更新。

Fast R-CNN基本策略

  1. 输入测试图像;
  2. 利用selective search算法在图像中从上到下提取2000个左右的候选窗口;
  3. 将整张图片输入CNN,进行特征提取;
  4. 把候选窗口映射到CNN的最后一层卷积特征图上;
  5. 通过RoI pooling层使每个候选窗口生成固定尺寸的特征图/向量;
  6. 利用Softmax Loss和Smooth L1 Loss(探测边框回归)对分类概率和边框回归进行联合训练。  

与R-CNN相比:

  • 最后一层卷积层后加了一个ROI pooling layer;
  • 损失函数使用了多任务损失函数(multi-task-loss),将边框回归直接加入到CNN网络中训练

改进之处:

  • 速度的提升: R-CNN的候选框之间大量重叠,造成了运算能力的浪费。FAST-RCNN将整张图像归一化后直接送入CNN,在最后的卷积层输出的feature map上,加入建议框信息,使得在此之前的CNN运算得以共享。

Faster R-CNN

  1. 输入测试图像;
  2. 将整张图片输入CNN,进行特征提取;
  3. 用RPN生成候选窗口,每张图片保留约300个Proposal;
  4. 把候选窗口映射到CNN的最后一层卷积特征图上;
  5. 通过RoI pooling层使每个RoI生成固定尺寸的特征图;
  6. 利用Softmax Loss和Smooth L1 Loss(探测边框回归)对分类概率和边框回归的联合训练。

Region Proposal Network(RPN)

  • 在feature map上滑动窗口,在每个位置上产生若干个候选anchor(N=9)
  • 建一个神经网络用于anchor分类+框位置的回归
  • 滑动窗口的位置提供了物体的大体位置信息
  • 框的回归提供了框更精确的位置

猜你喜欢

转载自blog.csdn.net/fjyalzl/article/details/127194151