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. js页面的全屏展示和退出全屏显示

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD ...

  2. Linux下配置 禅道 (项目管理系统)

    1.官网下载源码 2.解析一个新的子域名,然后到linux服务器上新建一个站点 3.将下载的文件上传至linux服务器(新建站点的时候已经在 /home/wwwroot/ 里建好了域名对应的文件夹,将 ...

  3. MarketServer 日志

    2014.04.29 1. 发现有时候会跳出 Exception Infomations:   用户异常信息:Socket未连接 跟踪后发现的一次情况是: 服务器根据客户端请求从后台读取数据后,写数据 ...

  4. bootstrap添加多个模态对话框支持

    bootstrap添加多个模态对话框支持 (2015-03-04 21:05:35) 转载▼ 标签: 房产   因为项目需要,在页面交互上要弹出多个dialog窗口,而bootstrap的modal支 ...

  5. [Xcode 实际操作]七、文件与数据-(23)UI Testing系统界面测试功能的使用

    目录:[Swift]Xcode实际操作 本文将演示UI Testing系统界面测试功能的使用. 如果项目中尚未引入界面测试功能,请点击项目属性面板->[General]面板左下角的[+]图标 - ...

  6. [Swift]DJSet

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  7. jstl标签库不起作用,直接输出表达式

    引用jstl.jar包 在jsp页面添加<%@ page isELIgnored="false"%>即可

  8. 快速删除node_modules文件夹

    前言 当安装了较多模块后,node_modules目录下的文件会很多,直接删除整个目录会很慢,下面介绍些快速删除node_modules目录的方法. 方法一:使用rimraf模块的命令 在全局安装ri ...

  9. JQuery数组遍历 - $.each(),$().each()和forEach()

  10. springMVC-RESTful支持

    RESTful支持 什么是restful? Restful就是一个资源定位及资源操作的风格.不是标准也不是协议,只是一种风格,是对http协议的诠释. 资源定位:互联网所有的事物都是资源,要求url中 ...