当前位置:   article > 正文

Faster R-CNN学习笔记_faster rcnn反向传播在哪

faster rcnn反向传播在哪

经典的目标检测模型,有必要庖丁解牛般深入学习下。

此blog主要参考的是陈云大佬的GitHub pytorch实现simple-faster-rcnn-pytorch

1.模型网络框图

1.1 网络结构–训练

在这里插入图片描述

1.2 网络结构–推断

对比上图+1.3 Loss,可以看出,由于不需要求Loss进行反向传播,推断过程仅包括了proposal creator,没有anchor target creator及proposal target creator这两个模块(分别用于生成stage 1及stage 2 的target label和loc)。
在这里插入图片描述

1.3 Loss

相对YOLO来说,faster rcnn的Loss函数是比较简单的。针对两个stage,各采用一组相同的loss(包括类别及位置的损失函数)。

这里就不再多做介绍。
在这里插入图片描述

2.关于Faster R-CNN的anchor

由于Faster R-CNN中没有multi-scale 特征图的概念,其anchor仅为对anchor_base在每一个grid location上的平移。

下图给出了 800 ∗ 800 800*800 800800的image(经过vgg extractor后其grid_size为 50 ∗ 50 50*50 5050),第一个grid位置及中心点位置的anchor。
在这里插入图片描述

3.关于ROI pooling

参考代码中此过程直接使用了pytorch官方实现的API:torchvision.ops.RoIPool()

参考2中的一张图片,如有一个target为bicycle的ROI,将其映射到feature_map上,再通过pooling成固定大小(如7*7)。
在这里插入图片描述
注意:ROI的尺寸是对应于原图,而非feature_map。

因此参考6 你真的学会RoI Pooling了吗?给出了ROI pooling中的两次量化损失:

  • 在原图上生成的region proposal 映射到feature map需要除以16或者32的时候,边界出现小数,这是第一次量化。

  • 在每个roi里划分成k×k(7×7)的bins,对每个bin中均匀选取多少个采样点,然后进行max pooling,也会出现小数,这是第二次量化。

其过程可简单示意如下(下图来自https://blog.deepsense.ai/region-of-interest-pooling-explained/):
在这里插入图片描述

参考文献

[1] https://github.com/chenyuntc/simple-faster-rcnn-pytorch
[2] Object Detection and Classification using R-CNNs
[3] 知乎 白裳 一文读懂Faster RCNN
[4] 知乎 陈云 从编程实现角度学习Faster R-CNN(附极简实现)
[5] https://blog.deepsense.ai/region-of-interest-pooling-explained/
[6] 知乎 你真的学会RoI Pooling了吗?

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/250233
推荐阅读
相关标签
  

闽ICP备14008679号