首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

【深度学习项目】带你一文读懂R-CNN(Region with CNN feature)

  • 25-02-16 04:41
  • 4449
  • 7709
blog.csdn.net

文章目录

  • 介绍
    • R-CNN的工作流程
    • R-CNN的优点
    • R-CNN的局限性
    • R-CNN的发展
  • R-CNN详解
    • RNN框架
    • 算法流程
      • 1.候选区域的生成
      • 2.深度网络提取特征
      • 3.SVM分类器判定
        • 非极大值抑制剔除重叠建议框
      • 4.精细修正候选框位置

介绍

R-CNN(Region-based Convolutional Neural Network)是目标检测领域的一个重要里程碑,它首次将深度学习技术成功应用于目标检测任务中。R-CNN由Ross Girshick等人于2014年提出,并在PASCAL VOC等多个基准数据集上取得了当时最佳的表现。

R-CNN的工作流程

  • 候选区域生成(Selective Search):
    • 使用一种名为选择性搜索(Selective Search)的算法从输入图像中提取大约2000个候选区域(Region Proposals)。这些候选区域旨在覆盖图像中所有可能的对象。
  • 特征提取:
    • 对每个候选区域进行变形以适应固定尺寸(如227x227像素),然后通过一个预训练的卷积神经网络(通常是AlexNet)来提取特征。这一步骤中的CNN权重是在ImageNet数据集上预先训练好的,然后再针对目标检测任务进行微调。
  • 分类与回归:
    • 提取到的特征向量被送入支持向量机(SVMs)进行分类,确定每个候选区域所属的类别。
    • 同时,使用线性回归模型对每个候选区域的边界框进行精修,以提高定位精度。
  • 非极大值抑制(Non-Maximum Suppression, NMS):
    • 由于同一对象可能会被多个候选区域覆盖,因此最后一步是对重叠度较高的预测结果应用NMS算法,保留置信度最高的那个边界框作为最终输出。

R-CNN的优点

  • 开创性:它是首个成功结合深度学习和候选区域生成方法的目标检测框架,为后续研究奠定了基础。
  • 高精度:在当时的基准测试中,R-CNN显著提升了目标检测的准确率。

R-CNN的局限性

  • 计算效率低:因为需要对每个候选区域单独运行一次完整的CNN前向传播过程,所以R-CNN非常耗时,难以满足实时处理的需求。测试一张图片约53s(CPU)。用SelectiveSearch算法提取候选框用时约2秒,一张图像内候选框之间存在大量重叠,提取特征操作冗余。
  • 内存占用大:为了存储每个候选区域的特征向量,R-CNN需要大量的内存空间。对于SVM和bbox回归训练,需要从每个图像中的每个目标候选框提取特征,并写入磁盘。对于非常深的网络,如VGG16,从VOC07训练集上的5k图像上提取的特征需要数百GB的存储空间
  • 训练复杂:训练过程中涉及三个独立步骤(CNN微调、SVM训练、边界框回归),导致整个训练流程较为繁琐。

R-CNN的发展

  • 随着技术的进步,R-CNN系列不断演进,衍生出了Fast R-CNN、Faster R-CNN等改进版本,它们通过共享卷积特征图、引入区域建议网络等方式解决了原始R-CNN的一些问题,大幅提高了检测速度和效率。例如:
    • Fast R-CNN:实现了特征共享,减少了重复计算;直接在全连接层上进行边界框回归和分类,简化了训练流程。
    • Faster R-CNN:进一步引入了区域建议网络(RPN),实现了候选区域生成与检测一体化,成为现代两阶段目标检测器的标准架构之一。

R-CNN可以说是利用深度学习进行目标检测的开山之作。作者Ross Girshick多次 在PASCAL VOC的目标检测竞赛中折桂,曾在2010年带领团队获得终身成就奖。

R-CNN详解

RNN框架

在这里插入图片描述

算法流程

  • RCNN算法流程可分为4个步骤:
      1. 一张图像生成1K~2K个候选区域(使用SelectiveSearch方法)
      1. 对每个候选区域使用深度网络提取特征
      1. 特征送入每一类的SVM分类器,判别是否属于该类
      1. 使用回归器精细修正候选框位置

在这里插入图片描述

1.候选区域的生成

利用SelectiveSearch算法通过图像分割的方法得到一些原始区域,然后使用一些合并策略将这些区域合并,得到一个层次化的区域结构,而这些结构就包含着可能需要的物体。
在这里插入图片描述

2.深度网络提取特征

将2000候选区域缩放到227x227pixel,接着将候选区域输入事先训练好的AlexNetCNN网络获取4096维的特征得到2000×4096维矩阵。
在这里插入图片描述

3.SVM分类器判定

特征送入每一类的SVM分类器,判定类别。将2000×4096维特征与20个SVM组成的权值矩阵4096×20相乘,获得2000×20维矩阵表示每个建议框是某个目标类别的得分。分别对上述2000×20维矩阵中每一列即每一类进行非极大值抑制剔除重叠建议框,得到该列即该类中得分最高的一些建议框。

在这里插入图片描述
在这里插入图片描述

非极大值抑制剔除重叠建议框

IoU(Intersection over Union) 表示(A∩B)/(A∪B)
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

4.精细修正候选框位置

  • 对NMS处理后剩余的建议框进一步筛选。接着分别用20个回归器对上述20个类别中剩余的建议框进行回归操作,最终得到每个类别的修正后的得分最高的 boundingbox。
  • 如图,黄色框口P表示建议框RegionProposal,绿色窗口G表示实际框Ground Truth,红色窗口Gˆ表示RegionProposal进行回归后的预测窗口,可以用最小二乘法解决的线性回归问题。
  • 依旧针对CNN 输出的特征向量进行预测。
    在这里插入图片描述
注:本文转载自blog.csdn.net的道友老李的文章"https://blog.csdn.net/u014608435/article/details/144446223"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top