目标检测--R-CNN网络

文章目录

一、R-CNN算法流程

目标检测--R-CNN网络

  1. 一张图像生成1K-2K个候选区域
  2. 对每个候选区域使用深度网络提取特征
  3. 特征送入每一个的SVM分类器,判别是否属于该类
  4. 使用回归器精细修正候选框位置
    对非极大值抑制处理后剩余的建议框进一步筛选。接着分别用20个回归器对上述20个类别中剩余的建议框进行回归操作,最终得到每个类别的修正后得分最高的bounding box.

二、利用候选区域与 CNN 结合做目标定位

借鉴了滑动窗口思想,R-CNN 采用对区域进行识别的方案。

具体是:

1.给定一张输入图片,从图片中提取 2000 个类别独立的候选区域。
2.对于每个区域利用事先训练好的AlexNet CNN 抽取一个固定长度的特征向量。
3.再对每个区域利用 SVM 进行目标分类。
目标检测--R-CNN网络
将2000x4096的特征矩阵与20个SVM组成的权值矩阵4096x20相乘,获取2000x20的概率矩阵,每一行代表一个建议框归于每个目标类别的概率。分别对上述2000x20维矩阵中每一列即每一类进行非极大值抑制剔除重叠建议框(IOU),得到该列即该类中得分最高的一些建议框。
IOU参考:
https://blog.csdn.net/weixin_48167570/article/details/120697408
目标检测--R-CNN网络
目标检测--R-CNN网络

R-CNN存在的问题

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


下一篇:[人工智能-深度学习-20]:卷积神经网络CNN - 全连接网络的缺点与CNN的使命