目标探测:r-cnn, fast-rcnn, faster-rcnn, yolo, mask-rcnn
目标探测:r-cnn, fast-rcnn, faster-rcnn, yolo, mask-rcnn
作者:尼箍纳斯凯奇
链接: https://www.zhihu.com/question/57403701/answer/153447728
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
第一篇r-cnn是rcnn是ross girshick在UCB Darrell组的时候的工作,这篇论文主要是先selective search去选出若干proposals,然后resize到同一个scale放入alexnet类似的网络抽特征,加k个svm或者softmax得到分类结果。然后测试阶段走个非极大值抑制的算法去得到结果。整个网络是最初始化的rcnn,很多人都觉得思路很简单,不过在那个时候算是最开始利用CNN做detection的一批。
selective search:在目标检测时,为了定位到目标的具体位置,通常会把图像分成许多子块(sub-regions / patches),然后把子块作为输入,送到目标识别的模型中。分子块的最直接方法叫滑动窗口法(sliding window approach)。滑动窗口的方法就是按照子块的大小在整幅图像上穷举所有子图像块。这种方法产生的数据量想想都头大。和滑动窗口法相对的是另外一类基于区域(region proposal)的方法。selective search就是其中之一!参考这篇:https://blog.csdn.net/guoyunfei20/article/details/78723646
非极大值抑制:感觉可以理解为同一个物体可能检测出多个框,故将这些框排序,选出得分最高的框。参考这篇:https://blog.csdn.net/shuzfan/article/details/52711706
第二篇fast-rcnn RBG去了MSR,然后单手撸了一篇改进版fast rcnn。看看paper作者那栏,一个人孤单寂寞的编曲。。。还是基于ss得到的proposals,这篇论文重点在roipool那部分,怎么做呢?参考论文2.1求得sub-windows大小之后,划分为7*7的grid。这样无论你的RoI的scale多大,都可以map到同一个size。这样你可以把之前2000次前向,缩减到只有一次前向就可以得到若干个roi部分的特征,然后跟两个sibling layers,一个做分类,一个回归bb。这样测试阶段比第一篇节省了很多很多时间。
roipool(ROI pooling):一种pooling方式,输入特征图尺寸不固定,输出特征图尺寸固定
第三篇faster-rcnn论文Ross开始和MSRA的学者合作了,shaoqing、kaiming、jian sun等。终于不再孤单的编曲。。。这篇论文基于fast rcnn干了这么一个事情,把selective search那种很傻很笨的办法用RPN的网络取代了。然后这个RPN网络可以直接在一个完整的网络中给ROIpool那块提供proposal的信息。训练过程中,RPN的region proposal的task和object detection的task部分实际上是交替训练的。另外看论文图三那个最重要的图示,他在top的conv feature maps那里接一个3*3的sliding windows。这部分本身receptive fields比较大嘛~然后作者在这里加了9种anchors的变化,对应图一c中的multi scale。这样之后再sibling layers然后做是不是object的score和坐标回归。整个思路就是加了这些。
RPN网络:区域推荐网络。主要解决从一张图片中获取proposal。见这篇https://blog.csdn.net/wfei101/article/details/77150573
第四篇mask-rcnn论文,也就是知乎提问的mask rcnn。此时此刻,RBG去了FAIR,而kaiming又和RBG重逢了,满满的基情就是你在哪,我的paper就跟你一起挂在哪。实际上本篇就在第三篇faster rcnn基础上加了roialign部分【这一部分实际上是对roipool的改进】,以及加了一个segmentation的branch。为什么roipool不好呢?因为在你roi缩到7*7的过程中,如果你roi刚好是8*7的大小,那么你按w/W,h/H取整缩小是不是漏了几个pixel,这几个pixel对应的receptive field确是很大的,带来所谓的misalignment。那么怎么办?好,借鉴STN论文里面的双线性插值,我把8*7的大小扩大到14*14,然后再做聚合,到7*7的大小。这样就充分利用了那个被忽略了的部分。(这部分细节上可能我理解不对,具体要等ross源码公布了再能确定,如有错误,希望指出)。然后看论文图三,就可以分出一个branch给segmentation的部分,这部分deconv做到28*28之后,直接resize到roi的大小,然后参考第三页左下角,用per-pixel sigmoid和binary loss的方式优化。
roialign:roipooling中的最近邻插值改为双线性插值后得到的pooling方式
双线性插值:即对f(x,y)二元函数的x和y两个方向上进行线性插值,是图片放缩中的常用技术,同样的图片放缩技术还有双三次插值等。
目标探测:r-cnn, fast-rcnn, faster-rcnn, yolo, mask-rcnn的更多相关文章
- 深度学习目标检测:RCNN,Fast,Faster,YOLO,SSD比较
转载出处:http://blog.csdn.net/ikerpeng/article/details/54316814 知乎的图可以放大,更清晰,链接:https://www.zhihu.com/qu ...
- 物体检测丨从R-CNN到Mask R-CNN
这篇blog是我刚入目标检测方向,导师发给我的文献导读,深入浅出总结了object detection two-stage流派Faster R-CNN的发展史,读起来非常有趣.我一直想翻译这篇博客,在 ...
- CNNs 在图像分割中应用简史: 从R-CNN到Mask R-CNN
作者:嫩芽33出处:http://www.cnblogs.com/nenya33/p/6756024.html 版权:本文版权归作者和博客园共有 转载:欢迎转载,但未经作者同意,必须保留此段声明:必须 ...
- [Network Architecture]Mask R-CNN论文解析(转)
前言 最近有一个idea需要去验证,比较忙,看完Mask R-CNN论文了,最近会去研究Mask R-CNN的代码,论文解析转载网上的两篇博客 技术挖掘者 remanented 文章1 论文题目:Ma ...
- Tensorflow实现Mask R-CNN实例分割通用框架,检测,分割和特征点定位一次搞定(多图)
Mask R-CNN实例分割通用框架,检测,分割和特征点定位一次搞定(多图) 导语:Mask R-CNN是Faster R-CNN的扩展形式,能够有效地检测图像中的目标,同时还能为每个实例生成一个 ...
- Windows上配置Mask R-CNN及运行示例demo.ipynb
最近做项目需要用到Mask R-CNN,于是花了几天时间配置.简单跑通代码,踩了很多坑,写下来分享给大家. 首先贴上官方Mask R-CNN的Github地址:https://github.com/m ...
- [转]CNN目标检测(一):Faster RCNN详解
https://blog.csdn.net/a8039974/article/details/77592389 Faster RCNN github : https://github.com/rbgi ...
- 基于深度学习的目标检测技术演进:R-CNN、Fast R-CNN,Faster R-CNN
基于深度学习的目标检测技术演进:R-CNN.Fast R-CNN,Faster R-CNN object detection我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别.obj ...
- RCNN,fast R-CNN,faster R-CNN
转自:https://www.cnblogs.com/skyfsm/p/6806246.html object detection我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别. ...
随机推荐
- (2.0)Smali系列学习之Smali语法
一.smali的包中信息 .class public Lcom/aaaaa;.super Lcom/bbbbb;.source "ccccc.java" 1.它是com.aaa ...
- 1.3 Services - 服务
服务是一种应用组件,它可以在后台执行耗时的操作,它是没有用户界面的.其它的应用组件都可以开启一个服务,服务开启后,即使用户离开了应用,服务仍然可以在后台运行.此外,绑定到服务的组件可以与服务进行交互, ...
- Servlet -doGet() doPost()原理
一.自定义类只需要重写doGet(HttpServletRequest request, HttpServletResponse response) 和doPost(HttpServletReques ...
- ubuntu12.10更新源
ubuntu12.10更新源 2013-03-10 20:48:17| 分类: Linux |字号 订阅 不同的网络状况连接以下源的速度不同, 建议在添加前手动验证以下源的连接速度(ping下就 ...
- HTML页面中直接加载其他JSP页面
1.在经典的框架中填充页面时 要填充2处的页面,2处为内容页面,是另外的一个JSP页面 2.左侧页面代码 <%@ page language="java" import=&q ...
- bash脚本IFS=',' read的意思
IFS is the Input Field Separator, which means the string read will be split based on the characters ...
- MathType输入补集符号的步骤有哪些
集合符号在很多的数学领域都会用到,其基本的集合运算可以分为交.并.补这三种.但是一些用户朋友们在编辑文档的时候想输入集合符号这个时候就需要用到数学公式编辑器MathType,但是很多人能够快速地编辑出 ...
- ORB特征提取与匹配
ORB特征是目前最优秀的特征提取与匹配算法之一,下面具体讲解一下: 特征点的检测 图像的特征点可以简单的理解为图像中比较显著显著的点,如轮廓点,较暗区域中的亮点,较亮区域中的暗点等.ORB采用FAST ...
- css中div高度自适应
高度的自适应(父div高度随子div的高度改变而改变) 1.如果父div不定义height.子div均为标准流的时候,父div的height随内容的变化而变化,实现父div高度随子div的高度改变而改 ...
- Innodb间隙锁,细节讲解(转)
关于innodb间隙锁,网上有很多资料,在此不做赘述,我们讲解一下关于innodb的间隙锁什么情况下会产生的问题. 网上有些资料说innodb的间隙锁是为了防止幻读,这个论点真的是误人子弟.了解inn ...