RCNN系列

从RCNN到FasterRCNN,目标检测技术经历了显著提升。RCNN通过候选框和深度网络进行特征提取,FastRCNN引入共享卷积层加速,而FasterRCNN利用RPN网络自动生成候选框,大幅提高了检测速度和精度。

https://www.cnblogs.com/skyfsm/p/6806246.html

RCNN的处理流程是先提proposal,然后CNN提取特征,之后用SVM分类器,最后再做bbox regression

Fast-RCNN中,作者巧妙的把bbox regression放进了神经网络内部,与region分类和并成为了一个multi-task模型

R-CNN有一些相当大的缺点(把这些缺点都改掉了,就成了Fast R-CNN)。
缺点:由于每一个候选框都要独自经过CNN,这使得花费的时间非常多。
解决:共享卷积层,现在不是每一个候选框都当做输入进入CNN了,而是输入一张完整的图片,在第五个卷积层再得到每个候选框的特征

原来的方法:许多候选框(比如两千个)-->CNN-->得到每个候选框的特征-->分类+回归
现在的方法:一张完整图片-->CNN-->得到每张候选框的特征-->分类+回归

所以容易看见,Fast RCNN相对于RCNN的提速原因就在于:不过不像RCNN把每个候选区域给深度网络提特征,而是整张图提一次特征,再把候选框映射到conv5上,而SPP只需要计算一次特征,剩下的只需要在conv5层上操作就可以了。

Faster R-CNN

https://zhuanlan.zhihu.com/p/31426458

Fast R-CNN存在的问题:存在瓶颈:选择性搜索,找出所有的候选框,这个也非常耗时。那我们能不能找出一个更加高效的方法来求出这些候选框呢?
解决:加入一个提取边缘的神经网络,也就说找到候选框的工作也交给神经网络来做了。
做这样的任务的神经网络叫做Region Proposal Network(RPN)。

具体做法:
  • 将RPN放在最后一个卷积层的后面
  • RPN直接训练得到候选区域

RPN简介:
  • 在feature map上滑动窗口
  • 建一个神经网络用于物体分类+框位置的回归
  • 滑动窗口的位置提供了物体的大体位置信息
  • 框的回归提供了框更精确的位置

一种网络,四个损失函数;
  • RPN calssification(anchor good.bad)
  • RPN regression(anchor->propoasal)
  • Fast R-CNN classification(over classes)
  • Fast R-CNN regression(proposal ->box)

Faster R-CNN的主要贡献是设计了提取候选区域的网络RPN,代替了费时的选择性搜索,使得检测速度大幅提高。


最后总结一下各大算法的步骤:
RCNN
  1. 在图像中确定约1000-2000个候选框 (使用选择性搜索)
  2. 每个候选框内图像块缩放至相同大小,并输入到CNN内进行特征提取 
  3. 对候选框中提取出的特征,使用分类器判别是否属于一个特定类 
  4. 对于属于某一特征的候选框,用回归器进一步调整其位置

Fast RCNN
  1. 在图像中确定约1000-2000个候选框 (使用选择性搜索)
  2. 对整张图片输进CNN,得到feature map
  3. 找到每个候选框在feature map上的映射patch,将此patch作为每个候选框的卷积特征输入到SPP layer和之后的层
  4. 对候选框中提取出的特征,使用分类器判别是否属于一个特定类 
  5. 对于属于某一特征的候选框,用回归器进一步调整其位置

Faster RCNN
  1. 对整张图片输进CNN,得到feature map
  2. 卷积特征输入到RPN,得到候选框的特征信息
  3. 对候选框中提取出的特征,使用分类器判别是否属于一个特定类 
  4. 对于属于某一特征的候选框,用回归器进一步调整其位置

总的来说,从R-CNN, SPP-NET, Fast R-CNN, Faster R-CNN一路走来,基于深度学习目标检测的流程变得越来越精简,精度越来越高,速度也越来越快。可以说基于region proposal的R-CNN系列目标检测方法是当前目标检测技术领域最主要的一个分支。

### RCNN 系列概述 RCNN(Region with CNN feature)系列算法是目标检测领域的重要里程碑,通过结合区域提议方法和卷积神经网络的强大特征提取能力,显著提高了目标检测的性能。以下是关于 RCNN 系列的关键信息及其发展: #### 1. **R-CNN** R-CNN 是最早将深度学习应用于目标检测的经典算法之一。该方法的核心思想是从图像中生成候选区域(region proposals),并通过卷积神经网络提取这些区域的特征[^1]。随后,利用支持向量机(SVM)进行分类,并通过回归器调整边界框的位置。 然而,R-CNN 存在一些明显的缺点,例如计算效率低下以及训练过程复杂。这些问题促使后续改进版本的研发。 --- #### 2. **Fast R-CNN** 为了提高效率并简化流程,Fast R-CNN 提出了两项重要创新:感兴趣区域池化层(ROI Pooling Layer)和多任务损失函数(Multi-task Loss Function)。 - ROI Pooling 层允许直接从卷积特征图上提取固定大小的特征,从而避免了多次重复计算[^5]。 - 多任务损失函数则在同一网络中联合完成分类和边界框回归的任务,进一步减少了计算负担。 相比原始的 R-CNN,Fast R-CNN 显著降低了运行时间,同时保持较高的准确性。 --- #### 3. **Faster R-CNN** Faster R-CNN 进一步优化了目标检测的速度与效果。它的核心贡献在于引入了一种名为 Region Proposal Network (RPN) 的新机制,取代了传统的选择性搜索算法(Selective Search Algorithm)。这种设计使得整个目标检测流水线完全基于卷积神经网络实现,大幅提升了实时处理的能力[^3]。 具体来说,Faster R-CNN 的框架由以下几个部分组成: - 特征提取模块(Feature Extraction using CNN) - 区域提议网络(Region Proposal Network, RPN) - 感兴趣区域池化层(ROI Pooling Layer) - 分类与边界框回归模块(Classification and Bounding Box Regression) 这一架构不仅实现了端到端的学习,还为后来的目标检测算法奠定了基础。 --- #### 4. **Mask R-CNN** 作为 Faster R-CNN 的扩展版,Mask R-CNN 增加了一个分支用于预测像素级掩码(mask),使其能够执行实例分割任务。这表明 RCNN 家族不仅可以解决矩形框级别的目标定位问题,还能应对更复杂的语义理解需求[^4]。 --- ### 应用场景 由于其强大的泛化能力和灵活性,RCNN 系列广泛应用于多个实际领域,包括但不限于: - 自动驾驶中的障碍物识别 - 医疗影像分析中的病灶标注 - 零售业的商品盘点自动化 - 工业生产线上的质量控制 以下是一个简单的 Python 实现片段展示如何加载预训练好的 Faster R-CNN 模型来进行目标检测: ```python import torch from torchvision import models # 加载预训练模型 model = models.detection.fasterrcnn_resnet50_fpn(pretrained=True) # 设置评估模式 model.eval() # 输入数据准备 example_input = torch.rand(1, 3, 224, 224) # 执行推理 output = model(example_input) print(output) ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值