目标探测: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我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别. ...
随机推荐
- Atitit.antlr实现词法分析
Atitit.antlr实现词法分析 1.1. antlrworks-1.4.3.jar wizard1 1.2. 词法的类型 id,int,float ,comment,str,char,wh ...
- MooseFS基础和安装
一.MooseFS简介 1.介绍 MooseFS是一个具备冗余容错功能的分布式网络文件系统,它将数据分别存放在多个物理服务器单独磁盘或分区上,确保一份数据有多个备份副本.对于访问的客户端或者用户来说, ...
- MVC & Entity Framework(2)- controller、Models单独DLL
继上一篇MVC & Entity Framework(1)- 开发环境之后,已经很久没更新了.接下来记录一下怎么把MVC中的controller单独拆为一个类库,然后在web项目中引用.另外, ...
- linux内存排查工具valgrind
官网:http://valgrind.org/info/about.html 百科介绍:http://baike.baidu.com/link?url=ZdXzff0omzoPpE_yZUlNW9lJ ...
- 把一个project相关的jar放到project的lib文件夹中
例如你有一个project名为xxx,/xxx 文件夹中有src.bin.等等,然后你手工创建一个lib文件夹,这样你就把解压出来的第三方lib(jar包,含javadoc)都放到lib文件夹中,这样 ...
- Hello,Ajax
学习了Ajax技术,写了一个最简单的Ajax应用 <%@page contentType="text/html; charset=utf-8" language=" ...
- 玩黑客学校CTF
关卡很简单就不细说.不懂的百度 第一关: 源码: 解密得出为JO 第二关: 很明白,表单问题. </script> <div style = "text-align: ce ...
- 折腾WordPress感想
以前在cnblogs上写博客没感觉什么,一旦要搭建自己的博客,我感觉好麻烦啊,具体就体现在一下方面: 1. 域名得要申请 2. 还要购买虚拟机 3. 自己搭建php,mysql,wordpress,a ...
- 目录视图摘要视图订阅 基于Extjs开发不允许为空的文本框提示及相应的验证错误提示(转)
原文地址:http://blog.csdn.net/kunoy/article/details/8007585 本文主要解决问题: 1.区分哪些文本框不允许为空,很多网站都采用在文本框后加*号,ext ...
- 线程同步工具CountDownLatch
CountDownLatch的一个非常典型的应用场景是:有一个任务想要往下执行,但必须要等到其他的任务执行完毕后才可以继续往下执行.假如我们这个想要继续往下执行的任务调用一个CountDownLatc ...