Fast R-CNN 个人理解

Fast R-CNN是在R-CNN的基础上进行的改进,大致框架是一致的。总体而言,Fast R-CNN相对于R-CNN而言,主要提出了三个改进策略:
1. 提出了RoIPooling,避免了对提取的region proposals进行缩放到224x224,然后经过pre-trained CNN进行检测的步骤,加速了整个网络的learning与inference过程,这个是巨大的改进,并且RoIPooling是可导的,因此使得整个网络可以实现end-to-end learning,这个可以认为是Fast R-CNN相对于R-CNN最大的改进之处。

2. 采用了Multi-task loss进行边框回归,这个在R-CNN中也有这方面的实验。

3. 利用了截断的奇异值分解(Truncated SVD for faster detection)加速了网络。
下图是Fast R-CNN的总体框图(以VGG16为骨干网)

这个图比较详细的表达了Fast R-CNN的结构以及操作,但是该图中有些细节是没有展示出来的,因此在这里我们指出这些细节,首先我们圈画部分,region proposals是通过相关算法实现的,原论文中并没有标明,提取的每一个region proposal都有一个对应的Ground-truth Bounding Box 和 Ground-truth class label。其中值得注意的是,这里的坐标均是对应原图像的,而不是输出的feature maps。因此,还需要把原图像的坐标系映射到feature maps上。这一点也很简单,比如采用的是pre-trained 网络模型为VGG16的话,RoIPooling替换掉最后一个max pooling层的话,则原图像要经过4个max pooling层,输出的feature maps是原图像的1/16,因此,将原图像对应的四元数组转换到feature maps上就是每个值都除以16,并量化到最接近的整数。这样我们就实现了将原图中region proposals 到特征图中的转换、接下来就是将region proposals框起来的那部分特征图输RoIPooling,得到固定大小的输出特征图,这里假设(原论文中分成了7x7)每一个框的被划分为6x6的网格大小,根据规则我们知道,从每一个框中挑选出一个最大值,作为输出,所以经过池化后,产生的特征图的大小为6x6,由于是按通道池化(最大池化)的,所以每一个ROI对应一个6x6x256的特征图,并且有P个类别,所以这些特征图组合之后,形成6x6x256xP的特征图,即为ROIPooling的层的输出,然后进行全连接,形成4096*P的特征图,这样我们就可以利用得到的特征图去进行线性回归和分类,这就是对本人fast RCNN的一个个人理解,也有可能存在欠缺。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值