目标探测: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. SQL 数据库分页语句

    declare @pagesize integer,@cpage integer; ; ; SELECT TOP (@pagesize) * FROM (SELECT row_number() ove ...

  2. HTTP认证机制

    HTTP的询问/应答机制 如下图: 一个实例的图: 1.客户端请求资源 2.服务器对用户进行询问,在WWW-Authenticate首部中指明在哪里,如何进行认证 3.客户端会在Authenticat ...

  3. python学习之items()

    定义 Python 字典 items() 方法以列表返回可遍历的(键, 值) 元组数组. 语法 dict.items() 说明:没有参数. 返回值 返回可遍历的(键, 值) 元组数组. 例子 > ...

  4. RabbitMQ系列一

    1.http://www.erlang.org/downloads 下载一个比教新的版本(otp_win64_20.2.exe) 2.http://www.rabbitmq.com/install-w ...

  5. lua工具库penlight--07函数编程(一)

    函数编程 序列 Lua 迭代器 (最简单的形式) 是一个函数,可以多次调用返回一个或多个值.for in语句理解迭代器和循环,直到该函数将返回nil. Lua有标准的序列迭代器 (ipairs和pai ...

  6. 字符串的数字部分递增,如user00000001后面的数字部分递增+1

    使用存储过程方式 bengin declare@namevarchar(50) set@name=(selectmax(right('user00000001',8<8是从后往前数,从1开始&g ...

  7. 【vijos】1286 座位安排(状压dp)

    https://vijos.org/p/1286 这题好神不会捉... 首先我们知道所有情况有C(n*m, k)种,这个好搞.但是两两不相邻这个有点难搞.. 原来是状压dp..sigh. 设状态f[i ...

  8. 开发新手教程【三】Arduino开发工具

    Arduino开发环境搭建 获取Arduino IDE开发工具 下载地址 :http://arduino.cc/en/Main/Software 能够下载release 版.Beta版和前期版本号 A ...

  9. 【Python】GUI 练习1--利率计算器

    import sys from PyQt4.QtCore import * from PyQt4.QtGui import * class Form(QDialog): def __init__(se ...

  10. AngularJS bind

    闲着无聊怕手生 小练习 <!DOCTYPE html><html><head><meta charset="utf-8"><s ...