目标探测: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的更多相关文章

  1. 深度学习目标检测:RCNN,Fast,Faster,YOLO,SSD比较

    转载出处:http://blog.csdn.net/ikerpeng/article/details/54316814 知乎的图可以放大,更清晰,链接:https://www.zhihu.com/qu ...

  2. 物体检测丨从R-CNN到Mask R-CNN

    这篇blog是我刚入目标检测方向,导师发给我的文献导读,深入浅出总结了object detection two-stage流派Faster R-CNN的发展史,读起来非常有趣.我一直想翻译这篇博客,在 ...

  3. CNNs 在图像分割中应用简史: 从R-CNN到Mask R-CNN

    作者:嫩芽33出处:http://www.cnblogs.com/nenya33/p/6756024.html 版权:本文版权归作者和博客园共有 转载:欢迎转载,但未经作者同意,必须保留此段声明:必须 ...

  4. [Network Architecture]Mask R-CNN论文解析(转)

    前言 最近有一个idea需要去验证,比较忙,看完Mask R-CNN论文了,最近会去研究Mask R-CNN的代码,论文解析转载网上的两篇博客 技术挖掘者 remanented 文章1 论文题目:Ma ...

  5. Tensorflow实现Mask R-CNN实例分割通用框架,检测,分割和特征点定位一次搞定(多图)

    Mask R-CNN实例分割通用框架,检测,分割和特征点定位一次搞定(多图)   导语:Mask R-CNN是Faster R-CNN的扩展形式,能够有效地检测图像中的目标,同时还能为每个实例生成一个 ...

  6. Windows上配置Mask R-CNN及运行示例demo.ipynb

    最近做项目需要用到Mask R-CNN,于是花了几天时间配置.简单跑通代码,踩了很多坑,写下来分享给大家. 首先贴上官方Mask R-CNN的Github地址:https://github.com/m ...

  7. [转]CNN目标检测(一):Faster RCNN详解

    https://blog.csdn.net/a8039974/article/details/77592389 Faster RCNN github : https://github.com/rbgi ...

  8. 基于深度学习的目标检测技术演进:R-CNN、Fast R-CNN,Faster R-CNN

    基于深度学习的目标检测技术演进:R-CNN.Fast R-CNN,Faster R-CNN object detection我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别.obj ...

  9. RCNN,fast R-CNN,faster R-CNN

    转自:https://www.cnblogs.com/skyfsm/p/6806246.html object detection我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别. ...

随机推荐

  1. 热烈祝贺阿尔法Go首战告捷

    这是人类的一大杰作和进步.一个国家和民族的未来在科技,靠造房子是成不了科技强国的. 当然,也要祝贺一下北上深房价突破历史高位.这也是伟大而不朽的成果.

  2. tensolrflow之基础变量

    #优化一个乘法算子 #coding:utf- __author__ = 'similarface' import tensorflow as tf sess=tf.Session() #创建一个常量张 ...

  3. ajax请求的data数据格式

    ajax提交data类型 一.问题来源 今天使用ajax时,发现get传data时,传递json字符串时传不过去参数,所以做了一些实验测试ajax的get和post的传递data时的不同. 二.概念 ...

  4. 基于Spring4+SpringMVC4+Mybatis3+Hibernate4+Junit4框架构建高性能企业级的部标1077视频监控平台

    开发企业级的部标GPS监控平台,投入的开发力量很大,开发周期也很长,选择主流的开发语言以及成熟的开源技术框架来构建基础平台,是最恰当不过的事情,在设计之初就避免掉了技术选型的风险,避免以后在开发过程中 ...

  5. vue render函数

    基础 vue推荐在绝大多数情况下使用template来创建你的html.然而在一些场景中,你真的需要javascript的完全编程能力.这就是render函数.它比template更接近编译器 < ...

  6. springboot2.0 fastjson 日期格式化不生效解决

    网上有很多介绍,主要有两种. 1.在启动类中注入bean /** * 集成fastjson * * @return */ @Bean public HttpMessageConverters fast ...

  7. VM下redhat9.0不能上网

    近期本人在学习linux时,安装Red Hat Linux9后,可是上不了网,弄得查资料还得切换到虚拟机上去,特耗时间.还好没有疯掉! 首先,测试下你的linux看是否是这类问题,输入ping www ...

  8. nodejs对文件进行分页

    //从文件中提取文件指从x行到y行的内容 //awk -v start=5 -v end=10 -F "\x01" '{if(NR>=start && NR& ...

  9. mybatis慢查询配置

    <?xml version="1.0" encoding="UTF-8"?> <!--suppress SpringFacetInspecti ...

  10. php判断今日是本月的第几个星期几

    php判断今日是本月的第几个星期几 php中有一个非常强悍的系统函数date()函数.巧妙的利用他可以实现显示任意我们需要的时间.比如今天遇到个需要是要判断今天是本月的第几个星期几,这里就不讨论这种说 ...