【pytorch目标检测】创新之作:Fast R-CNN算法解读

背景

2015年,提出了Fast RCNN算法,训练步骤实现端到端,CNN:基于VGG6.

Fast R-CNN是基于R-CNN和SPPnets进行的改进

成果:训练速度比RCNN块9倍,测试速度快乐23倍,准确率68.4%

**SPPnets网络 **解决了:重复卷积计算和固定输出尺度的两个问题
Spatial Pyramid Pooling 空间金字塔池化

  • 创新点:在于计算整幅图像的the shared feature map,然后根据object proposal在shared feature >map上映射到对应的feature vector(就是不用重复计算feature map了)。
  • 缺点:和R-CNN一样,训练是多阶段(multiple-stage pipeline)的,速度还是不够"快",特征还要保>存到本地磁盘中

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

相比RCNN的改进点

  • 共享卷积

    • 将整张图送到卷积网络中进行区域生成,而不是一个个选取候选区
    • 虽任采用Selective Search方法,但共享卷积使得计算大大减少
  • RoI Pooling

    • 用RoI pooling层替换最后一层的max pooling层
    • 特征尺度变换:特征池化(RoI Pooling)方法
    • 使得可以有任意大小图片的输入,使得训练过程更加灵活准确
  • 多任务损失:

    • 将分类和回归网络放到一起训练,使用了 Softmax函数进行分类
    • 从而避免了SVM分类器来带的单独训练和速度慢特点

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

网络架构

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
相比于RCNN的四个部分,Fast R-CNN只有连个部分

分类器

在这里插入图片描述

边界框回归器

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

损失函数设计

将回归和分类的损失函数加到一起计算
在这里插入图片描述
边界框损失函数在这里插入图片描述
在这里插入图片描述
分类损失函数
在这里插入图片描述

训练过程

在这里插入图片描述

RoI Pooling层详解

在这里插入图片描述

  • Fast R-CNN使用全连接层,所以用RoI Pooling将不同大小的ROI转换为固定大小
  • RoI Pooling 是Pooling层的一种:特点是输入特征图尺寸不固定,但是输出特征图尺寸固定(如7x7)。

什么是RoI

图像上的区域框池化 = 感兴趣的区域池化
在这里插入图片描述

Selective Search算法提取的一系列可能含有object的bounding box,这些通常称为region proposals或者region of interest(ROI)。

RoI Pooling的输入

  1. 特征图(feature map):指的是上面所示的特征图,在Fast RCNN中,它位于RoI Pooling之前
  2. RoIs,其表示所有RoI的N*5的矩阵。其中N表示RoI的数量,第一列表示图像index,其余四列表示其余的左上角和右下角坐标
  • Fast RCNN中,指的是Selective Search的输出
  • Faster RCNN中指的是RPN的输出,一堆矩形候选框,形状为1x5x1x1(4个坐标+索引index)

RoI的具体操作

  1. 根据输入image,将ROI映射到feature map对应位置
  2. 将映射后的区域划分为相同大小的sections(sections数量与输出的维度相同)
  3. 对每个sections进行max pooling操作
  • 这样就可以从不同大小的方框得到固定大小的相应 的feature maps
  • 输出的feature maps的大小不取决于ROI和卷积feature maps大小
  • RoI Pooling 最大的好处就在于极大地提高了处理速度。

RoI Pooling的输出

RoI Pooling的过程就是将一个个大小不同的box矩形框,都映射成大小固定(w * h)的矩形框
输出是batch个vector,
batch的值等于RoI的个数
vector的大小为channel * w * h

RoI Pooling示例

在这里插入图片描述

总结

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测计算机视觉领域的重要任务,而Faster R-CNN作为目标检测领域的经典算法之一,具有较高的检测精度和鲁棒性。在睿智的目标检测系列中,我们将使用PyTorch搭建一个基于Faster R-CNN目标检测平台。 首先,我们将使用PyTorch构建一个深度学习模型的基础框架。PyTorch是一个开源的机器学习库,具有灵活的设计和易于使用的特点,因此非常适合用于搭建目标检测平台。我们将利用PyTorch提供的模块和工具,构建一个包含RPN模块、ROI pooling模块和分类回归模块的Faster R-CNN模型。 其次,我们将使用标记好的目标检测数据集,如COCO或PASCAL VOC数据集,对我们搭建的目标检测平台进行训练和验证。我们将利用PyTorch内置的数据加载和预处理工具,以及优化器和损失函数,对Faster R-CNN模型进行端到端的训练,以提高检测精度和泛化能力。 最后,我们将通过在真实场景下的目标检测任务中的应用,来验证我们搭建的Faster R-CNN目标检测平台的性能。我们将评估其在目标定位、多目标检测、不同尺寸目标检测等方面的表现,并对可能的改进和优化进行进一步的研究和实验。 通过这样一个基于PyTorch搭建的Faster R-CNN目标检测平台,我们将能够深入理解目标检测算法的原理和实现细节,提高对深度学习框架的应用能力,并为未来的研究和应用奠定基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值