Papers

  • J. Hosang, R. Benenson, P. Dollár, and B. Schiele. What makes for effective detection proposals? arXiv:1502.05082, 2015.
    arXiv
    @ARTICLE{Hosang2015arXiv,
    author = {J. Hosang and R. Benenson and P. Doll\'ar and B. Schiele},
    title = {What makes for effective detection proposals?},
    journal = {arXiv:1502.05082},
    year = {2015}
    }
  • J. Hosang, R. Benenson, and B. Schiele. How good are detection proposals, really? BMVC 2014.
    PDF, arXiv
    @INPROCEEDINGS{Hosang2014Bmvc,
    author = {J. Hosang and R. Benenson and B. Schiele},
    title = {How good are detection proposals, really?},
    booktitle = {BMVC},
    year = {2014}
    }

转自:http://zhangliliang.com/2015/05/19/paper-note-object-proposal-review-pami15/

论文的项目地址:
https://www.mpi-inf.mpg.de/departments/computer-vision-and-multimodal-computing/research/object-recognition-and-scene-understanding/how-good-are-detection-proposals-really/

大纲

根据文章的描述顺序,以下内容大概会是:

  1. 回顾object proposal(以下简称为OP)的各种方法,将其分类。
  2. 讨论不同OP在图片被扰动之后的在复现上的鲁棒性
  3. 讨论不同OP在PASCAL和ImageNet上的Recall,这里作者提出了Average Recall(简称AR)的一种新的标准
  4. 讨论不同OP对于实际分类的性能比较(用了DPM和RCNN这两个著名detector进行比较),以及说明了AR是一个跟性能相当相关的标准。

先上一个效果的一览表格:


注意到这里只列出了可以找到源码的方法,那么,下面一点点开始整理。

各种OP方法的回顾

作者大致将OP方法分成了两类,一类叫grouping method,一类叫window scoring method。前者是指先将图片打碎,然后再聚合的一种方法,比如selective search。后者是生成大量window并打分,然后过滤掉低分的一种方法,比如objectness。另外还有一些介乎两者之间的方法,比如multibox。

Grouping proposal methods

作者将grouping的方法继续细分为三个小类。SP,对superpixel进行聚合;GC,使用种子点然后groupcut进行分割;EC,从边缘图提取proposal。下面分别调一个进行介绍

  • SelectiveSearch (SP): 无需学习,首先将图片打散为superpixel,然后根据人为定义的距离进行聚合。
  • CPMC (GC): 随机初始化种子点,然后做graphcut进行分割,反复多次,然后定义了某个很长的特征进行排序。(所以速度超级慢)
  • MCG (EC): 首先用现成方法快速得到一个层次分割的结果,然后利用边缘信息进行聚合。

Window scoring proposal methods

不同于前者需要通过聚合小块来生成候选框,这里的方法是先生成候选框,然后直接打分排序来过滤掉低分的候选框。介绍两种比较出名的方法,

  • Bing: 训练了一个简单的线性分类器来通过类似滑窗的方式来过滤候选框,速度惊人地快,在CPU上能够达到ms级别。但是被文献[40]攻击说分类性能不是来自于学习而是几何学。
  • EdgeBoxes: 跟selective search一样是一个不需要学习的方法,结合滑窗,通过计算窗口内边缘个数进行打分,最后排序。

Aliternate proposal methods

  • multibox,目前笔者所知唯一基于CNN提取proposal的方法,通过CNN回归N个候选框的位置并进行打分,目前在ImageNet的dectection track上应该是第一的。

Baseline proposal methods

这里用了Uniform,Gaussian,Sliding Window和Superpixels作为baseline,不是重点就不展开说了。

各种OP方法对于复现的鲁棒性的讨论

这里作者提出这样的假设:一个好的OP方法应该具有比较好的复现能力,也就是相似的图片中检索出来的object应该是具有一致性的。验证的方法是对PASCAL的图片做了各种扰动(如Figure 2),然后看是否还能检测出来相同的object的recall是多少,根据IoU的严格与否能够得到一条曲线,最后计算曲线下面积得到repeatability。


这里图表很多具体请看原论文,这里直接上作者的结论,Bing和Edgeboxes在repeatability上表现最好。

各种OP方法的recall

这里提出了好的OP方法应该有着较高的recall,不然就要漏掉检测的物体了。这里讨论了三种衡量recall的方式:

  1. Recall versus IoU threshold: 固定proposal数量,根据不同的IoU标准来计算recall
  2. Recall versus number of proposal windows: 跟1互补,这里先固定IoU,根据不同的proposal数目来计算recall
  3. Average recall(AR): 作者提出的,这里只是根据不同的proposal数目,计算IoU在0.5到1之间Recall。

数据集方面,作者在PASCAL VOC07和ImagNet Detection dataset上面做了测试。

这里又有不少图,这里只贴一张AP的,其他请参考原论文咯。


还是直接上结论

  • MCG, EdgeBox,SelectiveSearch, Rigor和Geodesic在不同proposal数目下表现都不错
  • 如果只限制小于1000的proposal,MCG,endres和CPMC效果最好
  • 如果一开始没有较好地定位好候选框的位置,随着IoU标准严格,recall会下降比较快的包括了Bing, Rahtu, Objectness和Edgeboxes。其中Bing下降尤为明显。
  • 在AR这个标准下,MCG表现稳定;Endres和Edgeboxes在较少proposal时候表现比较好,当允许有较多的proposal时候,Rigor和SelectiveSearch的表现会比其他要好。
  • PASCAL和ImageNet上,各个OP方法都是比较相似的,这说明了这些OP方法的泛化性能都不错。

各种OP方法在实际做detection任务时候的效果

这里作者在OP之后接上了两种在detection上很出名的detector来进行测试,一个是文献[54]的LM-LLDA(一个DPM变种),另外一个自然是R-CNN了,值得注意的是,这两个detector的作者都是rbg。。。真大神也。。。

这里用了各种OP方法提取了1k个proposal,之后作比较。

也是直接给作者结论:

  • 如果OP方法定位越准确,那么对分类器帮助会越大,因为定位越准确,分类器返回的分数会越高:
  • 在LM-LLDA和R-CNN下,使得mAP最高的前5个OP方法都是MCG,SeletiveSearch,EdgeBoxes,Rigor和Geodesic。

    分数一览如下图。
  • 通过分析,作者发现AR和mAP有着很强的相关性:
  • 作者用AR作为指导去tuning EdgeBoxes的参数,然后取得了更好的mAP(提高1.7个点)

全文的总结和讨论

总结:

  1. 对于repeatability这个标准,目前的OP方法效果都一般。可能通过对噪声和扰动更加鲁棒的特征能够提高OP方法的repeatablilty。但是repeatability低不代表最后mAP就低,比如SelectiveSearch,所以最后还是看要应用场景。
  2. 如果OP方法定位越准确,那么对分类器帮助会越大。所以对于OP方法来说,IoU为0.5的recall不是一个好的标准。高recall但是定位不准确,会伤害到最后的mAP
  3. MCG,SeletiveSearch,EdgeBoxes,Rigor和Geodesic是目前表现最好的5个方法,其中速度以EdgeBoxes和Geodesic为优。
  4. 目前的OP方法在VOC07和ImageNet的表现都差不多,说明它们都有着不错的泛化性能。

讨论:

  1. 如果计算能力上去了,OP还有用吗?作者认为如果运算性能允许的话,滑动窗口加上CNN等强分类器会有着更好的效果。
  2. 作者观察到在目前OP中使用的特征(比如object boundary和superpixel),不会在分类器中使用;然后OP方法中除了MultiBox之外就没有其他OP有使用CNN特征。作者期待会有工作能够结合下这两者的优势。
  3. 最后,作者对做了三点猜测:之后top down可能会在OP中起到更加重要的作用;以后OP和detector的联系会更加紧密;OP生成的segmentation mask会起到更加重要的作用。

【计算机视觉】detection/region/object proposal 方法综述文章的更多相关文章

  1. Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象。

    Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象. 语法EDIT Object.defineProperty(obj, ...

  2. 讲的很详细的一篇关于object equals() & hashCode() 的文章

    转: 讲的很详细的一篇关于object equals() & hashCode() 的文章 哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率.在Java ...

  3. javascript学习总结之Object.assign()方法详解

    最近再写ES6的文章时候发现自己对Object.assign()方法不太了解,之前也没有接触过所以就就查阅了相关的资料,为了自己以后肯能会用到以及对知识进行巩固,所以在这里记录下自己学习的点点滴滴,毕 ...

  4. 关于Java的Object.clone()方法与对象的深浅拷贝

    文章同步更新在个人博客:关于Java的Object.clone()方法与对象的深浅拷贝 引言 在某些场景中,我们需要获取到一个对象的拷贝用于某些处理.这时候就可以用到Java中的Object.clon ...

  5. 如何重写object虚方法

    在 C# 中 Object 是所有类的基类,所有的结构和类都直接或间接的派生自它.前面这段话可以说所有的 C# 开发人员都知道,但是我相信其中有一部分程序员并不清楚甚至不知道我们常用的 ToStrin ...

  6. C# IComparable接口、IComparer接口和CompareTo(Object x)方法、Compare()方法

    在项目中经常会用到字符串比较,但是有时候对字符串的操作比较多,规则各异.比如有的地方我们需要用排序规则,有的地方需要忽略大小写,我们该如何写一个比较容易操作的比较方法呢?重新实现IComparer接口 ...

  7. Object.assign方法复制或合并对象

    Object.assign() 方法可以把任意多个的源对象自身的可枚举属性拷贝给目标对象,然后返回目标对象 var obj = { a: 1 }; var copy = Object.assign({ ...

  8. Object.assign()方法

    对象的扩展 1.ES6中,对象的属性和方法可简写:对象的属性值可不写,前提是属性名已经声明: var name = "zhangsan"; "; var obj = { ...

  9. -[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object' 解决方法

    -[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object' 解决方法: 错误:NSMutableD ...

随机推荐

  1. 学到了林海峰,武沛齐讲的Day19 迭代细讲

    在家加1个月学了8day的课  出差6天看了8day的课..说明再忙也是可以挤挤多学习的. 广州出差最后两天没学习.一天做车,一天做公司的事...4天就过去了. 老师讲的包子和鸡蛋需求不好...讲的有 ...

  2. 常见的时间字符串与timestamp之间的转换 时间戳

    这里说的字符串不是一般意义上的字符串,是指在读取日期类型的数据时,如果还没有及时解析字符串,它就还不是日期类型,那么此时的字符串该怎么与时间戳之间进行转换呢? ① 时间字符串转化成时间戳 将时间字符串 ...

  3. [CERC2015]Juice Junctions(边双连通+字符串hash)

    做法 考虑边数限制的特殊条件,显然答案仅有\(\{0,1,2,3\}\) 0:不联通 1:连通 2:边双连通 3:任意删掉一条边都为边双连通 考虑每次删边后记录各点的边双染色情况来特判\(3\):是否 ...

  4. centos7 安装 mysql5.6(MySQL-5.6.44-1.el7.x86_64.rpm-bundle.tar)

    1.卸载MariaDB rpm -qa | grep -i mariadb rpm -e --nodeps mariadb-libs--.el7.x86_64 2.卸载已有Mysql 卸载旧版本mys ...

  5. wireshark新手导航

    本篇教你如何开始使用Wireshark.开始本篇之前,请先已经安装完wireshark 3.0.0. 初始界面 启动wireshark,可以看到程序界面主要由以下几部分组成: 窗口标题-window ...

  6. 2.linux的增删改查

    一.增删改查       1.建立文件和目录         mkdir /tmp/xueying       2.cd 进入的路径         绝对路径:以根目录为其实目录的路径         ...

  7. [RK3399] Type-C改为MicroUSB

    CPU:RK3399 系统:Android 7.1.2 为了降低成本,主板将 Type-C 改为 MicroUSB 接口,节省了 fusb302芯片 参考 Rockchip 的官方文档第4部分:Mic ...

  8. appium 小程序自动化测试

    https://www.cnblogs.com/yoyoketang/p/9144987.html adb shell su ACTIVITY com.tencent.mm/.plugin.appbr ...

  9. arcgis 地理坐标系 699个,投影坐标系是4767

    import arcpy # Get the list of spatial references and print it. srs = arcpy.ListSpatialReferences(sp ...

  10. raid卷性能测试

    #RAID卷 独立磁盘冗余阵列RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术.组成磁盘阵列的不同方式成为R ...