- 1、R-CNN的缺点:
- 1)计算效率低下:RCNN需要为每一个候选框都提取特征,会导致大量重复的工作,因为候选框是原始图片的一部分,肯定是存在交集的。
- 2)需要大量的磁盘空间:在训练阶段,RCNN会将所有 提起到的特征都存储在磁盘上。
- 3)检测速度慢:使用selective search生成候选区域+候选区域特征提取。
- 2、SPPNet是如何解决的
- SPPNet(Spatial Pyramid Pooling Network)引入了空间金字塔池化。它可以在任意大小的输入图像上工作,并且对一张输入图像只进行一次卷积运算,然后通过空间金字塔池化来适应不同尺度的候选区域。空间金字塔池化是对于给定的任意特征图,分别使用3种不同尺度的池化窗口,得到4x4、2x2、1x1这三个固定尺寸的输出。得到一个21维的固定长度大小的特征向量。
- 3、SPPNet的缺点
- 1)依然使用选择性搜索(selective search)
- 2)没有联合优化整个网络:分类和回归任务分开训练,不是端到端的学习框架。
- 4、FastRCNN是如何解决的
*1)1)采用ROI池化代替金字塔池化,进一步简化结构并提升了性能。
*2)将分类器和边界框回归器一起训练。 - 5、FastRCNN的缺点
- 1)依然采用Selective search
- 6 Faster RCNN是如何解决的
*1)Faster RCNN引入了区域建议网络,能够直接从图像中高效的生成高质量的区域建议。并且RPN与FastRCNN共享卷积层,实现了真正的端到端训练。 - 7回顾Faster R-CNN的RPN网络
- 1)工作原理
- RPN是输入整张图片,经多次 卷积运算得到 一张特征图,在 特征图上运用一个滑动窗口,通常是3x3的小核。窗口会在每个位置产生一组固定数量的候选区域,称为锚框。锚框具有不同的大小和比例,覆盖了检测目标可能的大小和形状。
- 2)对于每个锚框,RPN会输出两个结果:
- 分类得分:表示锚框是前景(包含检测目标)还是背景。这是一个二分类问题,通常使用softmax函数来计算两个类别的概率。
- 预测用于调整锚点位置的四个位置信息(x, y, w, h)。在精修预测框时,是要现将锚框映射到原始图像位置。
- 1)工作原理
- 额外补充:SPPNet使用了金字塔池化,和特征金字塔的区别是什么
- 1)金字塔池化(Pyramidal Pooling)
- 定义:金字塔池化是一种提取固定长度特征向量的技术,通过在不同尺度上对输入特征图进行池化操作来捕捉更多尺度信息。
- 实现方式:通常是在一个特定层之后应用多个池化窗口(如最大池化或者平均池化),这些窗口有不同的尺寸,并且可以组织成一个金字塔结构。例如,在SPPNet中,金字塔池化层会在不同尺度上(如1x1, 2x2, 4x4等)对特征图进行池化,然后将结果展平并连接起来形成一个固定长度的特征向量。
- 用途:主要解决输入图像大小变化的问题,使得网络能够接受任意大小的输入图像,并生成固定长度的输出,适用于分类任务或者需要固定长度特征表示的任务。
- 2)特征金字塔(Feature Pyramid Networks, FPN)
- 定义特征金字塔是一种网络架构设计,旨在通过融合来自不同深度卷积层的特征来增强对多尺度目标检测的能力。它构建了一个自顶向下的路径与横向连接,以结合低层的高分辨率特征与高层的语义特征。
- 实现方式:FPN通常由两部分组成:
自底向上路径:这是普通的卷积网络,随着网络加深,特征图逐渐下采样,同时语义信息逐渐增加。
自顶向下路径和横向连接:从最深的卷积层开始,逐层上采样并添加 来自相同尺度的低层特征图的横向连接,
- 用途:主要用于多尺度目标检测,特别适合于检测不同大小的目标,因为它可以在每个尺度上产出高质量的特征图,从而提高对小目标的检测能力。
- 1)金字塔池化(Pyramidal Pooling)