faster rcnn细节总结
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.R-CNN 2.Fast R-CNN 3.Faster R-CNN
目标检测的选框操作:第一步:找出一些边缘信息,进行图像合并,获得少量的边框信息 1.R-CNN, 第一步:进行图像的选框,对于选出来的框,使用卷积计算其相似度,选择最相似ROI的选框,即最大值抑制RO ...
- Faster RCNN 的细节补充
一.faster rcnn的结构 通过上面的结构,我们知道该faster rcnn前面以VGG16为框架,加入RPN层,最后做分类层. 采用VGG16相对ZF来说慢一点,但是精度也高一点. 二.RPN ...
- r-cnn学习系列(三):从r-cnn到faster r-cnn
把r-cnn系列总结下,让整个流程更清晰. 整个系列是从r-cnn至spp-net到fast r-cnn再到faster r-cnn. RCNN 输入图像,使用selective search来构造 ...
- [原创]Faster R-CNN论文翻译
Faster R-CNN论文翻译 Faster R-CNN是互怼完了的好基友一起合作出来的巅峰之作,本文翻译的比例比较小,主要因为本paper是前述paper的一个简单改进,方法清晰,想法自然.什 ...
- 读论文系列:Object Detection NIPS2015 Faster RCNN
转载请注明作者:梦里茶 Faster RCNN在Fast RCNN上更进一步,将Region Proposal也用神经网络来做,如果说Fast RCNN的最大贡献是ROI pooling layer和 ...
- Faster R-CNN 的 RPN 是啥子?
 Faster R-CNN,由两个模块组成: 第一个模块是深度全卷积网络 RPN,用于 region proposal; 第二个模块是Fast R-CNN检测器,它使用了RPN产生的region p ...
- Faster R-CNN
1.R-CNN R-CNN网络架构图 R-CNN网络框架流程 1)原图像经过 selective search算法提取约2000个候选框 2)候选框缩放到同一大小,原因是上图的ConvNet需要输入图 ...
- Faster RCNN 学习笔记
下面的介绍都是基于VGG16 的Faster RCNN网络,各网络的差异在于Conv layers层提取特征时有细微差异,至于后续的RPN层.Pooling层及全连接的分类和目标定位基本相同. 一). ...
- Faster R-CNN:详解目标检测的实现过程
本文详细解释了 Faster R-CNN 的网络架构和工作流,一步步带领读者理解目标检测的工作原理,作者本人也提供了 Luminoth 实现,供大家参考. Luminoth 实现:https:// ...
随机推荐
- js页面的全屏展示和退出全屏显示
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD ...
- Linux下配置 禅道 (项目管理系统)
1.官网下载源码 2.解析一个新的子域名,然后到linux服务器上新建一个站点 3.将下载的文件上传至linux服务器(新建站点的时候已经在 /home/wwwroot/ 里建好了域名对应的文件夹,将 ...
- MarketServer 日志
2014.04.29 1. 发现有时候会跳出 Exception Infomations: 用户异常信息:Socket未连接 跟踪后发现的一次情况是: 服务器根据客户端请求从后台读取数据后,写数据 ...
- bootstrap添加多个模态对话框支持
bootstrap添加多个模态对话框支持 (2015-03-04 21:05:35) 转载▼ 标签: 房产 因为项目需要,在页面交互上要弹出多个dialog窗口,而bootstrap的modal支 ...
- [Xcode 实际操作]七、文件与数据-(23)UI Testing系统界面测试功能的使用
目录:[Swift]Xcode实际操作 本文将演示UI Testing系统界面测试功能的使用. 如果项目中尚未引入界面测试功能,请点击项目属性面板->[General]面板左下角的[+]图标 - ...
- [Swift]DJSet
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- jstl标签库不起作用,直接输出表达式
引用jstl.jar包 在jsp页面添加<%@ page isELIgnored="false"%>即可
- 快速删除node_modules文件夹
前言 当安装了较多模块后,node_modules目录下的文件会很多,直接删除整个目录会很慢,下面介绍些快速删除node_modules目录的方法. 方法一:使用rimraf模块的命令 在全局安装ri ...
- JQuery数组遍历 - $.each(),$().each()和forEach()
- springMVC-RESTful支持
RESTful支持 什么是restful? Restful就是一个资源定位及资源操作的风格.不是标准也不是协议,只是一种风格,是对http协议的诠释. 资源定位:互联网所有的事物都是资源,要求url中 ...