深度篇——目标检测史(二) 细说 R-CNN 目标检测
返回主目录
返回 目标检测史 目录
上一章:深度篇——目标检测史(一) 关于 古典 目标检测
下一章:深度篇——目标检测史(三) 细说 SPP-Net 目标检测
论文地址:《Rich feature hierarchies for accurate object detection and semantic segmentation》
本小节,细说 R-CNN 目标检测,下一小节细说 SPP-Net 目标检测
二. R-CNN 目标检测 (2013年)
1. R-CNN (Region-based Convolutional Neural Networks, R-CNN) 基于区域的卷积神经网络,是一种结合区域提名(Region Proposal) 和 卷积神经网络 (CNN) 的目标检测方法。R-CNN 是 Ross Girshick 在 2013 年发布的。Ross Girshick 作为这个领域的开山鼻祖,总是神一样的存在,R-CNN,Fast R-CNN,Faster R-CNN,YOLO 都和他有关。其实在 R-CNN 之前已经有很多研究者在尝试用 Deep learning 的方法来做目标检测,包括 OverFeast,但 R-CNN 是第一个真正可以工业级应用的解决方案。
2. 深度学习相关的目标检测方法看大致分为两派:
(1). 基于区域提名
如 R-CNN,SPP-Net,Fast R-CNN,Faster R-CNN,R-FCN
(2). 端到端 (end-to-end)
无需区域提名,如 SSD,YOLO,CornerNet 等
3. R-CNN 的主要步骤
(1). Region proposal 区域提名
通过 selective search 从原始图像中提取 2k 个左右 bounding boxes 区域候选框
(2). 区域大小归一化
把所有 bounding boxes 候选框 缩放成固定大小的 图像 (原文采用 227 x 227)。
(3). 特征提取
通过 CNN 网络,提取特征
(4). 分类与回归
在特征层的基础上添加两个全连接层,再用 SVM 分类来做识别,用线性回归来微调边框位置与大小,其中每个类别单独训练一个边框分类器。
4. R-CNN 流程图
另一种角度观察如下:
上图中的 Warped image regions,是区域大小归一化,会将 bounding boxe 框内的信息,通过 crop 或 warp,全都处理为相同尺寸。这就导致了一些图像会被拉伸变形,导致图像失真。
还有,就是单独对每个 大小归一化后的图像 进行卷积操作,由于 bounding boxes 大概 2k 左右个,而且,有很可能都有重合的,这就导致在提取特征的过程中,会有许多重复操作,并且非常消耗时间资源和空间资源。
再有,SVM 适合处理有限的数据,如果数据海量,则很容易超出 SVM 的能力范围。计算量过大,模型过大,效率过低。
5. R-CNN 与 古典目标检测 的区别,只是使用 CNN 卷积提取特征,替代了 HOG 特征 + bag-of-words 特征 等提取的过程。就这些改动,使得 R-CNN 在 ILSVRC2013 检测数据中,获得了 31.4% mAP 这样的好成绩。相对于以前那些最好的结果 24.3% mAP 有了巨大的提升。并且,也第一次引起人们的注意,CNN 提取图像特征,具有非凡的能力。从此,图像处理,基本使用 CNN 来提取特征。
尽管 R-CNN 对于后来者来说,有这样那样的不足。但是,在当时,却是一个很好的检测器,效果也是蛮好的
6. R-CNN 的缺点
(1). 重复计算
R-CNN 虽然不再是穷举,但依然有 2k 个左右的 bounding boxes,这些 bounding boxes 都需要进行 CNN 操作,计算量依然很大,其中有不少其实是重复计算
(2). SVM 模型
还有线性模型,在标注数据不缺的时候,显然不是最好的选择。
(3). 训练测试分为多步
region proposal,特征提取、分类、回归都是断开的训练过程,中间数据还需要单独保存。训练分为多个阶段,不在繁琐。微调网络 + 训练 SVM + 训练边框回归器
(4). 训练的空间和时间代价很高
卷积处理的特征要先存在硬盘上,这些特征需要 几百 G 的存储空间。保存和读取的过程,都需要消耗时间和资源。
(5). 慢
前面的缺点最终导致 R-CNN 出奇的慢,GPU 上处理一张图像需要 13s,CPU 上则需要 53s。
(6). 区域大小归一化,会对目标进行 crop 或 warp 非等比例缩放,导致 大小归一化 得到的目标变形 或 缺失部分信息,和真实目标产生一定的差距,这会在后面训练和测试的时候,导致其准确率下降。
返回主目录
返回 目标检测史 目录
上一章:深度篇——目标检测史(一) 关于 古典 目标检测
下一章:深度篇——目标检测史(三) 细说 SPP-Net 目标检测
深度篇——目标检测史(二) 细说 R-CNN 目标检测相关推荐
- 深度篇——目标检测史(八) 细说 CornerNet-Lite 目标检测
返回主目录 返回 目标检测史 目录 上一章:深度篇--目标检测史(七) 细说 YOLO-V3目标检测 之 代码详解 论文地址:https://arxiv.org/pdf/1904.08900.pdf ...
- 深度篇——目标检测史(七) 细说 YOLO-V3目标检测 之 代码详解
返回主目录 返回 目标检测史 目录 上一章:深度篇--目标检测史(六) 细说 YOLO-V3目标检测 下一章:深度篇--目标检测史(八) 细说 CornerNet-Lite 目标检测 论文地址:< ...
- 激光雷达物体检测(二):点视图检测算法
综述: 1.点视图: PointNet/PointNet++,Point-RCNN,3D SSD 2.俯视图: VoxelNet,SECOND,PIXOR,AFDet 3.前视图: LaserNet, ...
- Faster R CNN
Faster R CNN 3 FASTER R-CNN 我们的Faster R CNN 由两个模块组成,第一个模块是 proposes regions 的全卷积网络,第二个是使用 proposed r ...
- realsense D455深度相机+YOLO V5结合实现目标检测(二)
realsense D455深度相机+YOLO V5结合实现目标检测(二) 1.代码来源 2.环境配置 3.代码分析: 3.1 主要展示在将detect.py转换为realsensedetect.py ...
- 使用pytorch从零开始实现YOLO-V3目标检测算法 (二)
原文:https://blog.csdn.net/u011520516/article/details/80212960 博客翻译 这是从零开始实现YOLO v3检测器的教程的第2部分.在上一节中,我 ...
- c++实验总结_史上最全场景文字检测资源合集(70篇重要论文 + 15个开源代码 + 176个实验结果 + 1305个统计信息)...
本文总结了2012年以来在场景文本检测领域的70篇代表性论文.21个常用数据集.15份开源代码,包含176个实验结果以及超过1300条统计信息.Github资源链接见文末. 一.前言 许多自然场景中包 ...
- 史上最全场景文字检测资源合集(70篇重要论文 + 15个开源代码 + 176个实验结果 + 1305个统计信息)...
点击上方"AI算法与图像处理",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者:刘崇宇 转载自:CSIG文档图像分析与识别专委会 本 ...
- 目标检测:二维码检测方案
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
最新文章
- Android -- TextView与EditText 同步显示
- c与python的区别-对比平台--C和Python之间的区别
- python之人脸识别
- DB2 SQLSTATE 消息
- 如何更改 macOS Monterey 和 iPadOS 15 中的 Safari 选项卡外观?
- Java类集框架 —— ArrayList源码分析
- 如何克服枯燥工作带来的单调感和厌烦感
- linux 向日葵教程,远程控制工具——Centos7上向日葵安装使用(转)
- 手持式频谱分析仪/路测仪推荐哪一款?TFN全新RMT系列不容错过
- 『 文件操作 』HTML文件转MD文件
- java鼠标乱跑_win7鼠标光标乱跳怎么办?解决win7鼠标光标乱跑的方法
- 迪尼斯神奇英语全32集含教材
- Visio 与 office 不兼容问题
- Android App图标静态更新方案
- 三个重要的同余式——威尔逊定理、费马小定理、欧拉定理 + 求幂大法的证明
- 判断是否为平衡二叉树(Java)
- websocket以及聊天室的实现
- [1064]旅途时间
- 快讯:今日一颗小行星2014 RC掠过地球轨道
- 协众信息技术设计师平时每天会看的几个网站有哪些?