1.roi_pooling层是先利用spatial_scale将region proposal映射到feature map上,然后利用pooled_w、pooled_h分别将映射后的框的长度、宽度等分形成bin,最后对每个bin进行max_pooling,这其实就是一个spp-net的过程(只不过sppnet使用多个等分尺寸,这里只使用一个等分尺寸),因为他就是为了将不同大小的框都处理成相同的长方体(这也是roi_pooling的本质,对任何大小的框都是相同的输出,这样不用向rcnn那样resize图片或者resize region proposal),其实每一个点就是一个值,就有点像用固定长度进行编码。

2.roi_pooling层后面接的是一个全连接层,roi_pooling池化后生成的应该是一个固定大小的长方体(或者说正方体),即(a,b,c,d),因为pooling是在每个channel进行,pooling前和pooling后的channel应该不变;每个channel的大小变为pooled_w*pooled_h,因为roi_pooling将每个channel的宽度均分成pooled_w份,高度均分成pooled_h份,在每份里max_pooling,所以大小就变成pooled_w*pooled_h。

比如prototxt里roi_pooling的设置是这样:

roi_pooling_param {
    pooled_w: 6
    pooled_h: 6
    spatial_scale: 0.0625 # 1/16

}

那输出的shape就是(batch,channel,6,6)

下面是roi_pooling的源码,可以看到roi_pooling的输出的shape是:

  第一维:rois的个数

  第二维:conv5的channel个数

  第三维:pooled_height_,在高度上等分然后提取的个数

  第四维:pooled_width_,在宽度上等分然后提取的个数

这个问题依旧没有解决,到底batch是怎么回事

这样一个长方体是不能和全连接层直接使用的,开始以为roi_pooling层将这个转换成了batch个vector,vector的大小是channel * w * h,但后来发现这个操作其实是在InnerProduct实现的。

这是InnerProduct的cpp源码,可以看到,会先从inner_product_param的axis读取一个值,这个值其实就是要进行flatten的维度的起点

去caffe.proto里面找InnerProduct这一层的参数,可以发现axis默认是1,也就是从channel那一维开始flatten。

也就是说roi_pooling后面接的那一层InnerProduct先把roi_pooling的输出转换成(roi的个数,channel*width*height),然后每个roi进行InnerProduct计算。

CanonicalAxisIndex这个函数在blob.hpp里面定义了。要寻找这个函数的定义,你可以看到是bottom在调用这个函数,那一定是在blob里面定义,只是看到底是在cpp还是hpp了

这个函数是提供负数也可以进行索引

faster rcnn细节总结的更多相关文章

  1. 深度学习原理与框架-卷积网络细节-三代物体检测算法 1.R-CNN 2.Fast R-CNN 3.Faster R-CNN

    目标检测的选框操作:第一步:找出一些边缘信息,进行图像合并,获得少量的边框信息 1.R-CNN, 第一步:进行图像的选框,对于选出来的框,使用卷积计算其相似度,选择最相似ROI的选框,即最大值抑制RO ...

  2. Faster RCNN 的细节补充

    一.faster rcnn的结构 通过上面的结构,我们知道该faster rcnn前面以VGG16为框架,加入RPN层,最后做分类层. 采用VGG16相对ZF来说慢一点,但是精度也高一点. 二.RPN ...

  3. r-cnn学习系列(三):从r-cnn到faster r-cnn

    把r-cnn系列总结下,让整个流程更清晰. 整个系列是从r-cnn至spp-net到fast r-cnn再到faster r-cnn.  RCNN 输入图像,使用selective search来构造 ...

  4. [原创]Faster R-CNN论文翻译

    Faster R-CNN论文翻译   Faster R-CNN是互怼完了的好基友一起合作出来的巅峰之作,本文翻译的比例比较小,主要因为本paper是前述paper的一个简单改进,方法清晰,想法自然.什 ...

  5. 读论文系列:Object Detection NIPS2015 Faster RCNN

    转载请注明作者:梦里茶 Faster RCNN在Fast RCNN上更进一步,将Region Proposal也用神经网络来做,如果说Fast RCNN的最大贡献是ROI pooling layer和 ...

  6. Faster R-CNN 的 RPN 是啥子?

     Faster R-CNN,由两个模块组成: 第一个模块是深度全卷积网络 RPN,用于 region proposal; 第二个模块是Fast R-CNN检测器,它使用了RPN产生的region p ...

  7. Faster R-CNN

    1.R-CNN R-CNN网络架构图 R-CNN网络框架流程 1)原图像经过 selective search算法提取约2000个候选框 2)候选框缩放到同一大小,原因是上图的ConvNet需要输入图 ...

  8. Faster RCNN 学习笔记

    下面的介绍都是基于VGG16 的Faster RCNN网络,各网络的差异在于Conv layers层提取特征时有细微差异,至于后续的RPN层.Pooling层及全连接的分类和目标定位基本相同. 一). ...

  9. Faster R-CNN:详解目标检测的实现过程

    本文详细解释了 Faster R-CNN 的网络架构和工作流,一步步带领读者理解目标检测的工作原理,作者本人也提供了 Luminoth 实现,供大家参考.   Luminoth 实现:https:// ...

随机推荐

  1. 企业级SpringBoot与Dubbo的使用方式

    企业级SpringBoot与Dubbo的使用方式 SpringBoot越来越热门以至于达到满大街可见的程度,而Dubbo这个基于二进制的微服务框架又捐献给Apache孵化,如果不会如何使用那么是不是很 ...

  2. Swift 4.0 中的 open,public,internal,fileprivate,private

    1.private private访问级别所修饰的属性或者方法只能在当前类里访问. 2.fileprivate fileprivate访问级别所修饰的属性或者方法在当前的Swift源文件里可以访问. ...

  3. Codeforces714B【读题-水】

    题意: 给你n个数,然后让你自己选择X,先选择一些+一次:然后选择一些-一次. 思路: 首先要去判断是不是不需要处理或者处理一次的情况: 其实这样的话,你不可能选x然后最小和最大都加减一次,所以肯定是 ...

  4. Unity mesh 合并

    簡介: 基本上就是把 很多物體結合成一個物體 的作法,這種做法有很多優點,例如:1. 提高效能2. 統一材質 (只要建立一個材質,就能控制.分配給所有物體)3. 動畫控制方便 (像是你要在 Unity ...

  5. rsync 同步的艺术

    rsync是类unix系统下的数据镜像备份工具,可以提供快速的增量文件传输. rsync 也可用于本机传输,如: # rsync -v mysql--linux-glibc2.-x86_64.tar. ...

  6. [Xcode 实际操作]九、实用进阶-(20)创建位移关键帧动画:通过添加运动关键点制作位移动画

    目录:[Swift]Xcode实际操作 本文将演示如何通过添加运动关键点的方式,来制作位移动画 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIK ...

  7. idea svn 问题

    https://blog.csdn.net/liyantianmin/article/details/52837506

  8. (八)SpringBoot使用mybatis-plus+自动代码生成

    一.SpringBoot使用mybatis-plus+自动代码生成 使用mybatis-plus可以自动帮我们生成通用的 controller,service,dao,mapper 二.加入依赖 &l ...

  9. Codeforces Round #396 (Div. 2) A

    While Mahmoud and Ehab were practicing for IOI, they found a problem which name was Longest common s ...

  10. postman中添加cookie信息

    日常测试中有部分接口请求需要有登录信息,否则调用报错,那如何在postman中添加用户的cookie呢,主要分2个步骤: 第一步: Charles抓包获取Headers信息,拷贝Headers中的Co ...