R-CNN学习笔记

📅 2026/7/12 5:11:58
R-CNN学习笔记
目录1. 目标检测算法分类2. RCNN的诞生3. RCNN算法流程1区域提议生成2特征提取3类别分类4边界框回归4. RCNN的优缺点分析1 优点2 缺点与局限性1. 目标检测算法分类目标检测算法主要分为两大类两阶段Two-Stage目标检测算法和单阶段One-Stage目标检测算法。两阶段目标检测算法将目标检测任务分为候选区域生成和目标分类定位两个阶段如R-CNN系列首先生成区域建议然后对这些区域进行分类和边框回归算法通常具有较高的检测精度但速度较慢。单阶段目标检测算法通过将图像分割为网格单元并为每个单元预测目标的类别和位置如SSD和YOLO系列算法检测速度快但精度相对较低。2. RCNN的诞生目标检测任务旨在定位图像中感兴趣物体的位置通常用边界框表示并识别其类别。传统的目标检测方法如滑动窗口手工特征存在计算效率低、特征表达能力有限等问题。2014年Ross Girshick等人提出的RCNNRegions with CNN features首次将深度卷积神经网络CNN成功应用于目标检测开启了基于深度学习的目标检测新时代。RCNN的核心思想是将检测问题分解为“区域提议”和“分类”两个阶段。它不再对整张图像进行密集滑动窗口扫描而是先利用选择性搜索Selective Search等算法生成约2000个可能包含物体的候选区域Region Proposals然后对每个候选区域提取CNN特征然后使用支持向量机SVM进行分类最后对边界框位置进行修正。3. RCNN算法流程RCNN的完整流程可以分为以下四个步骤1区域提议生成使用选择性搜索算法从输入图像中生成约2000个类别无关的候选区域。2特征提取将每个候选区域缩放到固定尺寸如227×227然后通过预训练的CNN如AlexNet前向传播提取出4096维的特征向量。3类别分类为每个类别训练一个二元SVM分类器使用上一步提取的特征对每个候选区域进行分类判断其是否属于该类别。4边界框回归为每个类别训练一个线性回归模型用于微调候选区域边界框的位置和大小使其更精确地贴合目标物体。4. RCNN的优缺点分析1 优点性能大幅提升在PASCAL VOC 2010数据集上mAP从传统方法的约35.1%提升至53.7%。证明了CNN特征的有效性CNN提取的深度特征显著优于手工设计特征如HOG、SIFT。2 缺点与局限性训练复杂、多阶段需要单独训练CNN微调、SVM分类和边界框回归三个模块流程繁琐。速度极慢对每个候选区域都要进行CNN前向传播重复计算导致检测一张图片时间花销大。存储开销大所有候选区域的特征需要写入磁盘用于SVM和回归器训练占用大量存储空间。输入尺寸固定候选区域需要被扭曲Warp或裁剪Crop到固定尺寸可能破坏物体的原始长宽比。