博客
关于我
R-CNN算法
阅读量:577 次
发布时间:2019-03-10

本文共 1386 字,大约阅读时间需要 4 分钟。

  R-CNN算法可以说是利用深度学习进行目标检测的开山之作。2012年AlexNet网络在ImageNet LSVRC中效果显著,因此R-CNN的作者想要尝试将AlexNet在图像分类上的能力迁移到PASCAL VOC的目标检测上。这就要解决两个问题:

  • 如何利用卷积网络去进行目标定位;
  • 如何在小规模的数据集上训练出较好的网络模型。

  对于利用卷积网络去进行目标定位的问题,R-CNN利用候选区域(Region Proposal)的方法,这也是该网络被称为R-CNN的原因:Regions with CNN features。对于小规模数据集的问题,R-CNN使用了微调的方法,利用AlexNet网络在ImageNet上预训练好的模型。

  R-CNN算法步骤

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

在这里插入图片描述

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

在这里插入图片描述

step2:对每个候选区域,使用深度卷积神经网络提取特征
  将2000候选区域缩放为227×227的大小,接着将候选区域输入到预训练好的AlexNet CNN网络获取4096维的特征得到2000×4096维矩阵。

在这里插入图片描述

step3:提取的特征送入每一类的SVM分类器,判定类别
  将2000×4096维特征与20个SVM组成的权值矩阵4096×20相乘,得到2000×20维矩阵表示每个候选框是某个目标类别的得分。分别对上述2000×20维矩阵中每一列即每一类进行非极大值抑制剔除重叠候选框,得到该列即该类中得分最高的一些候选框框。
  非极大值抑制步骤:寻找得分最高的目标;计算其他目标与该目标的IoU(交并比)值;删除所有IoU值大于给定阈值的目标。

在这里插入图片描述

在这里插入图片描述
step4:使用回归器精细修正候选框位置
  对NMS处理后剩余的候选框进一步筛选。接着分别用20个回归器对上述20个类别中剩余的候选框进行回归操作,最终得到每个类别的修正后的得分最高的bounding box。
  如图,黄色框口 P P P表示建议框Region Proposal,绿色窗口 G G G表示实际框Ground Truth,红色窗口 G ^ \hat{G} G^表示Region Proposal进行回归后的预测窗口,可以用最小二乘法解决的线性回归问题。

在这里插入图片描述

  R-CNN存在的问题

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

转载地址:http://tqfvz.baihongyu.com/

你可能感兴趣的文章
MySQL Cluster 7.0.36 发布
查看>>
Multimodal Unsupervised Image-to-Image Translation多通道无监督图像翻译
查看>>
MySQL Cluster与MGR集群实战
查看>>
multipart/form-data与application/octet-stream的区别、application/x-www-form-urlencoded
查看>>
mysql cmake 报错,MySQL云服务器应用及cmake报错解决办法
查看>>
Multiple websites on single instance of IIS
查看>>
mysql CONCAT()函数拼接有NULL
查看>>
multiprocessing.Manager 嵌套共享对象不适用于队列
查看>>
multiprocessing.pool.map 和带有两个参数的函数
查看>>
MYSQL CONCAT函数
查看>>
multiprocessing.Pool:map_async 和 imap 有什么区别?
查看>>
MySQL Connector/Net 句柄泄露
查看>>
multiprocessor(中)
查看>>
mysql CPU使用率过高的一次处理经历
查看>>
Multisim中555定时器使用技巧
查看>>
MySQL CRUD 数据表基础操作实战
查看>>
multisim变压器反馈式_穿过隔离栅供电:认识隔离式直流/ 直流偏置电源
查看>>
mysql csv import meets charset
查看>>
multivariate_normal TypeError: ufunc ‘add‘ output (typecode ‘O‘) could not be coerced to provided……
查看>>
MySQL DBA 数据库优化策略
查看>>