赞
踩
经典的目标检测模型,有必要庖丁解牛般深入学习下。
此blog主要参考的是陈云大佬的GitHub pytorch实现simple-faster-rcnn-pytorch 。
、
对比上图+1.3 Loss,可以看出,由于不需要求Loss进行反向传播,推断过程仅包括了proposal creator,没有anchor target creator及proposal target creator这两个模块(分别用于生成stage 1及stage 2 的target label和loc)。
相对YOLO来说,faster rcnn的Loss函数是比较简单的。针对两个stage,各采用一组相同的loss(包括类别及位置的损失函数)。
这里就不再多做介绍。
由于Faster R-CNN中没有multi-scale 特征图的概念,其anchor仅为对anchor_base在每一个grid location上的平移。
下图给出了
800
∗
800
800*800
800∗800的image(经过vgg extractor后其grid_size为
50
∗
50
50*50
50∗50),第一个grid位置及中心点位置的anchor。
参考代码中此过程直接使用了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了吗?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。