[论文理解]Selective Search for Object Recognition
Selective Search for Object Recognition
简介
Selective Search是现在目标检测里面非常常用的方法,rcnn、frcnn等就是通过selective search方法得到候选框,然后进行分类,也就是传统的two stage方法。本篇也是我看到frcnn之后不得不看的一篇论文,大致将自己的理解记录下来,方便以后指正。
Selective Search
算法目的
- 能够得到各种大小的框
由于图像中的物体可以有任意大小,所以selective search算法至少要能够做到得到各种大小的框。
- 考虑多种组合方法
由于图像中的颜色、纹理、光照条件等不同,我们无法只根据单一条件(如颜色)将区域合并,因此合并区域的过程中必须要综合考虑各种因素。
- 能够快速计算
selective search算法提出的目的就是要能够快速计算,这样我们能够把能多的计算量花在后面识别上,而不是得到物体的框上。
Hierarchical Grouping
大致理解
Selective Search算法采用的是分级合并的算法,具体就是从细节部分开始计算,最后到总体,也就是Bottom-up方法。由于这个过程是分级进行的,所以我们可以在不同级框定一定的区域,这样框定的区域就是各种scale的,满足了上面的要求。
细节理解
Hierarchical Grouping中很重要的一点是用了Felzenszwalb的算法得到了图像分割的区域,这是一个基于图的图像分割算法,这个算法下次博客更新会写理解,这里只需要知道经过该算法得到了若干个分隔后的图像区域,这些区域经过我们的selective search算法得到合并并且框出候选框。具体的做法是:首先,计算所有任意两region之间的相似性(这个怎么计算后面会提到,利用区域的特征计算),然后每次相似性最大的两个区域进行合并,框出合并后的集合,用合并之前两个区域集合的特征计算合并之后的区域的特征,这时候就可以再利用新的区域和其他区域计算相似度进一步迭代,迭代的终点是整个图像变成一个区域。由于相似度是基于区域特征来计算的,而合并后的特征可以基于合并之前的特征运算得到,不需要再根据图像的pixel重新计算,因此fast to compute。
下图就是该算法的细节,其中相似函数在后面讲道,所以当时我画了个问号。
计算s相似函数
首先是颜色空间的Scolor的计算,文章考虑了八种策略来计算色彩的相似性,下图列出了文章提的颜色空间:
在不同颜色空间下用直方图统计法计算相似度,每个channel分为25个bins,3channel图就是75bins。色彩相似性是使用L1范数来进行计算的。
Stexture是纹理特征的相似函数,使用的是SIFT特征来进行计算的,SIFT特征在之前的博客中有写道的。
Ssize是区域大小的相似函数,
直接这样计算还是存在问题的,因为光size相似比较大,但是两者相距比较远的情况下两个region合并之后的区域是有问题的,所以为了解决这种问题,提出了Sfill函数,其中BBi表示的是框的大小
看上面的公式就知道可以解决这个问题了。
最终呢,s相似性函数就通过下面的公式计算得到:
其中呢,ai取值为0或者1,表明是否启用该特征。
合并区域
合并区域需要考虑到的是防止从大区域开始合并,因为这样可能会导致很多小区域没有没框进来,所以应该优先从小区域开始合并,但是又要保留一定的随机性,所以作者定义了vi = RND*i,RND为随机数,范围为0-1,i表示层级数,i=1代表整个图像。这样就基本可以保证小区域优先合并并且有一定的随机性了。依次合并,直到合并为一个区域。
之后再将合并过程中的框的vi按照从大到小的顺序排序,保留阈值大小之前排序的框,这些框为算法的输出。
实现
github地址:https://github.com/AlpacaDB/selectivesearch
安装:
pip install selectivesearch
使用:
import skimage.data
import selectivesearch
img = skimage.data.astronaut()
img_lbl, regions = selectivesearch.selective_search(img, scale=500, sigma=0.9, min_size=10)
regions[:10]
=>
[{'labels': [0.0], 'rect': (0, 0, 15, 24), 'size': 260},
{'labels': [1.0], 'rect': (13, 0, 1, 12), 'size': 23},
{'labels': [2.0], 'rect': (0, 15, 15, 11), 'size': 30},
{'labels': [3.0], 'rect': (15, 14, 0, 0), 'size': 1},
{'labels': [4.0], 'rect': (0, 0, 61, 153), 'size': 4927},
{'labels': [5.0], 'rect': (0, 12, 61, 142), 'size': 177},
{'labels': [6.0], 'rect': (7, 54, 6, 17), 'size': 8},
{'labels': [7.0], 'rect': (28, 50, 18, 32), 'size': 22},
{'labels': [8.0], 'rect': (2, 99, 7, 24), 'size': 24},
{'labels': [9.0], 'rect': (14, 118, 79, 117), 'size': 4008}]
output:
论文原文:https://ivi.fnwi.uva.nl/isis/publications/2013/UijlingsIJCV2013
[论文理解]Selective Search for Object Recognition的更多相关文章
- 【计算机视觉】Selective Search for Object Recognition论文阅读3
Selective Search for Object Recoginition surgewong@gmail.com http://blog.csdn.net/surgewong 在前 ...
- 【计算机视觉】Selective Search for Object Recognition论文阅读1
Selective Search for Object Recognition 作者: J. R. R. Uijlings, K. E. A. van de Sande, T. Gevers, A. ...
- 论文笔记:Selective Search for Object Recognition
与 Selective Search 初次见面是在著名的物体检测论文 「Rich feature hierarchies for accurate object detection and seman ...
- 【计算机视觉】Selective Search for Object Recognition论文阅读2
Selective Search for Object Recognition 是J.R.R. Uijlings发表在2012 IJCV上的一篇文章.主要介绍了选择性搜索(Selective Sear ...
- 目标检测--Selective Search for Object Recognition(IJCV, 2013)
Selective Search for Object Recognition 作者: J. R. R. Uijlings, K. E. A. van de Sande, T. Gevers, A. ...
- Selective Search for Object Recognition
http://blog.csdn.net/charwing/article/details/27180421 Selective Search for Object Recognition 是J.R. ...
- Notes on 'Selective Search For Object Recognition'
UijlingsIJCV2013, Selective Search For Object Recognition code 算法思想 利用分割算法将图片细分成很多region, 或超像素. 在这个基 ...
- 机器学习:Selective Search for Object Recognition
今天介绍 IJCV 2013 年的一篇文章,Selective Search for Object Recognition,这个是后面著名的DL架构 R-CNN 的基础,后续介绍 R-CNN 的时候, ...
- Selective Search for Object Recognition(理解)
0 - 背景 在目标检测任务中,我们希望输入一副图像,输出目标所在的位置以及目标的类别.最常用的算法是滑动窗口方法,但滑动窗口其实相当于穷举图像中的所有子图像,其效率低且精度也受限.该论文提出一种新的 ...
随机推荐
- IIS 上传大文件 30MB 设置限制了上传大小
用uploadify在IIS6下上传大文件没有问题,但是迁移到IIS7下面,上传大文件时,出现HTTP 404错误. 查了半天,原来是IIS7下的默认设置限制了上传大小.这个时候Web.Config中 ...
- Unity3d 5.3.5使用sqlite3
http://blog.csdn.net/glunoy/article/details/52037598 国内讲的乱七八糟,更有故作神秘提供Mono.Data.Sqlite.dll System.Da ...
- 计算机视觉(CV)前沿国际国内期刊与会议
计算机视觉(CV)前沿国际国内期刊与会议1.国际会议 2.国际期刊 3.国内期刊 4.神经网络 5.CV 6.数字图象 7.教育资源,大学 8.常见问题 1. 国际会议现在,国际上计算机视觉方面的三大 ...
- 封装MySQL的单例,连接数据库并对数据进行增删改查操作
单例: 一个类只能有一个对象 应用场景:多次请求数据库只需要一个连接对象. 实现:三私一公 1.私有的静态属性用来保存对象的单例2.私有的构造方法用来阻止在类的外部实例化3.私有的__clone阻止在 ...
- wamp的HTTPS配置
1.需要去申请ssl证书 2.打开wamp的apache的配置文件:httpd.conf 找到 LoadModule ssl_module modules/mod_ssl.so Include con ...
- CSS揭秘—打字动效(四)
前言: 所有实例均来自<CSS揭秘>,该书以平时遇到的疑难杂症为引,提供解决方法,只能说秒极了,再一次刷新了我对CSS的认知 该书只提供了关键CSS代码,虽然有在线示例代码链接,但 ...
- git小白的学习
1.1 Git介绍 1.1.1 什么是Git Git是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理.Git 是 Linus Torvalds 为了帮助管理 Linux ...
- net core (下)
net core (下) 第一部分: https://www.cnblogs.com/cgzl/p/8450179.html 本文是基于Windows10的. Debugging javascript ...
- Spring创建对象的几种方法
一.通过构造器 无参构造器 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...
- Linux用脚本守护进程
while true; do server=`ps -aux | grep tomcat | grep -v grep` if [ ! "$server" ]; then echo ...