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

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

R-CNN算法是目标检测领域的重要里程碑之一,该算法成功地将深度学习技术应用于目标检测,开创了历史新篇章。2012年AlexNet在ImageNet LSVRC中取得突破性成绩后,R-CNN的作者希望将AlexNet的图像分类能力迁移到PASCAL VOC目标检测任务中。这一目标需要解决两个关键问题:如何利用卷积网络进行目标定位,以及如何在小规模的数据集上训练出高性能的网络模型。

针对目标定位问题,R-CNN采用了候选区域(Region Proposal)的方法,这也是该算法得名的由来。通过生成一系列候选区域,结合与CNN特征提取的结果,从而实现对目标的定位。为了应对小规模数据集的训练挑战,R-CNN利用了AlexNet网络在ImageNet上的预训练模型进行微调,同时结合小规模、针对性的数据增加训练样本,使得模型性能得以显著提升。

R-CNN的完整流程可以分为以下几个关键步骤:

  • 候选区域的生成

    通过Selective Search算法对图像进行分割,得到原始候选区域,然后通过合并策略生成层次化的区域结构。这一层次化的区域结构能够有效覆盖图像中的潜在目标区域。

  • 特征提取

    将生成的2000个候选区域调整为227×227的尺寸,作为输入,发送到预训练好的AlexNet卷积神经网络中,提取4096维特征,形成2000×4096维的特征矩阵。

  • 分类与非极大值抑制

    将提取的4096维特征与20个SVM分类器结合,计算每个候选区域对应的类别得分。通过非极大值抑制(Non-Maximum Suppression,NMS)进一步优化,删除同一类中得分较低且与其他候选区域重叠较高的区域,确保每个类别只保留部分最优的候选框。

  • 回归调整

    使用20个回归器对剩余的候选框进行位置精细修正,最终生成对应类别的准确目标边界框输出。

  • R-CNN在实践中面临以下主要问题:

  • 检测速度较慢:特别是在CPU环境下,一张图像的处理时间可达53秒,主要原因在于Selective Search算法生成的候选框数量庞大且存在大量重叠,导致后续特征提取和分类过程的冗余计算。
  • 训练效率低下:整个训练过程耗时漫长,尤其是特征提取、SVM和回归器的训练需要从大量数据中获取特征,存储和处理成本高昂。
  • 存储需求过大:对于深度网络(如VGG16)和大型数据集(如VOCO7)的处理,所需存储空间达到数百GB,显著增加了硬件要求。
  • 模型更新受限:SVM分类器和回归器的训练与CNN特征提取过程并行,无法实现模型参数的联合优化,限制了模型性能的提升空间。
  • 转载地址:http://tqfvz.baihongyu.com/

    你可能感兴趣的文章
    Pyhon之常用操作符 - 零基础入门学习Python006
    查看>>
    pyhton验证码识别
    查看>>
    PyInstaller 中的 Kivy Garden - 试图跟踪导入
    查看>>
    Pyinstaller 和 PyQt5 macOS Mojave 兼容性问题
    查看>>
    pytorch tensor灰度图和RGB图相互转换的三种方法
    查看>>
    pyinstaller 打包资源文件
    查看>>
    PyInstaller 构建的 Windows EXE 因多处理而失败
    查看>>
    Pyinstaller--Windowed或--noconsole.exe不允许打开chromedriver
    查看>>
    Pyinstaller依赖项的许可证
    查看>>
    PyInstaller可执行文件找不到包含的flASK-COMPRESS
    查看>>
    Pyinstaller和海运
    查看>>
    PyInstaller图标选项在Mac上不起作用
    查看>>
    pyinstaller的使用
    查看>>
    pyinstaller超级加密 (加壳和转c)
    查看>>
    pyinstaller错误:OSError:找不到Python库:libpython3.4mu.so.1.0、libpython3.4m.so.1.0、libpython3.4.so.1.0
    查看>>
    Pyinstaller:‘;Fiona‘;没有属性‘;_loading‘;(很可能是由于循环导入)
    查看>>
    pyinstaller:更改应用程序图标
    查看>>
    Pylint“未解决的导入“;Visual Studio 代码中的错误
    查看>>
    pyLoad远程代码执行漏洞复现(CVE-2023-0297)
    查看>>
    pymongo update_one(),upsert=True,不使用$运算符
    查看>>