Selective Search for Object Recognition 论文详解

笔记一|Selective Search for Object Recognition 相关论文 分割方面【Felzenszwalb,P.F.,&Huttenlocher,D.P.(2004)】Efficent graph-based image segmentation 用分割的方法产生一系列小的class independent object locations 阅读详情

selective search算法是一种图像分割的算法,能够找到图像中可能存在目标物体的区域,是RCNN算法的基础。

参考:

  1. 《Selective Search for Object Recognition》代码及论文  https://www.koen.me/research/selectivesearch/
  2.  算法python实现  https://github.com/AlpacaDB/selectivesearch
  3.  https://www.cnblogs.com/zyly/p/9259392.html

 1、快速开始

作者主页上给出了算法的MATLAB实现,github上有一个较为简单的实现,https://github.com/AlpacaDB/selectivesearch。下面的例子基于github上的实现,可以通过 pip install selectivesearch 安装。

测试代码如下,用的是http://www.lenna.org/下载的lenna图片。

# coding:utf-8

from selectivesearch import selective_search
import cv2


img = cv2.imread("len_std.jpg")

img_lbl, regions = selective_search(img, scale=500, sigma=0.3, min_size=10)
print("regions counts", len(regions))

candidates = set()
for r in regions:
    # lenna标准图的大小是256乘256,这里选取像素个数在(5000,6000)的候选框
    if r['size'] < 5000 or r['size'] > 6000:
        continue
    candidates.add(r['rect'])

print("candidates number",len(candidates))

for x,y,w,h in candidates:
    cv2.rectangle(img,(x,y),(x+w,y+h),color=(0,255,0),thickness=2)
cv2.imwrite("lena_out.png",img)
cv2.imshow("",img)
cv2.waitKey(0)

程序运行后找到了123个区域,在这些候选区域中限制像素个数处于(5000,6000),经过过滤剩下了3个候选框,如下图所示。可以看出中间的框基本上完整的包括了lenna的脸部。

2、selective search基本流程

selective search算法的基本思想是先将整张图片分成多个较小的区域,然后再通过计算这些区域之间的相似度,将比较相似的两个区域融合在一起,以此类推。算法流程如下所示。

上面算法中提到的文献[13]是Efficient Graph-Based Image Segmentation,这篇论文提出了一个图像分割的方法,具体细节可以参考https://blog.youkuaiyun.com/root_clive/article/details/93973621。

上述算法中的要点在于如何计算两个区域之间的相似度s(r_i,r_j ),论文中给出的计算公式为:

s(r_i,r_j)=a_1s_{colour}(r_i,r_j)+a_2s_{texture}(r_i,r_j)+a_3s_{size}(r_i,r_j)+a_4s_{fill}(r_i,r_j)

其中a_i \in \{0,1\},为了保证多样性,一般a_i取1。两个区域的相似度考虑了4个不同的角度,分别为:

(1) 颜色相似度

将某个区域r_i内的像素值分成25个bins,那么3个通道就组成了长度为75的特征向量C_i,然后对C_i进行L1归一化(也就是给C_i的每一个值除以区域r_i内像素点的个数),特征向量C_i实际上表示了像素值的分布,于是区域r_i和区域r_j的颜色相似度为:

s_{colour}(r_i,r_j)=\sum_{k=1}^{n}min(c_i^k,c_j^k)

上面这个计算式度量了两个区域像素值分布的重叠程度。当两个区域合并之后,新的区域的特征向量C_t就是合并前各个特征向量之和,但是由于特征向量C_i进行了L1归一化,所以没有归一化的特征向量为size(r_i)\times C_i,因此下面的公式用来计算合并后的特征向量。

C_t=\frac{size(r_i)\times C_i + size(r_j)\times C_j}{size(r_i)+size(r_j)}

(2) 纹理相似度

论文中参考了《Exploring features in a bayesian framework for material recognition》中的做法(没有仔细研究,大意是选取了8个方向,使用方差为1的高斯滤波,然后将结果分成10个bins,那么每个通道就会有80个bins,3个通道总共240个bins,然后进行L1归一化)。纹理相似度的计算方法和颜色相似度的计算方法相同,如下所示:

s_{colour}(r_i,r_j)=\sum_{k=1}^{n}min(c_i^k,c_j^k)

两个区域合并后的纹理特征向量计算方法也和颜色特征合并计算方法类似。

(3) 让较小的区域较早的融合

s_{size}(r_i,r_j)=1-\frac{size(r_i)+size(r_j)}{size(im)}

如果两个区域比较小的话,这个值相应会比较大。

(4)  度量两个区域的匹配程度

如果某一个区域被另一个区域完全包裹的话,那么这两个区域就应该被融合,或者两个区域几乎不接触,这两个区域应该就属于不同的区域,根据这样的思想,论文中给出了一种简单的计算公式。

s_{fill}(r_i,r_j)=1-\frac{size(BB_{ij})-size(r_i)-size(r_j)}{size(im)}

其中BB_{ij}是区域r_i和区域r_j的外接矩。

2、候选框过滤

在文章开始部分我们通过selective search从一张图中提取出来123个候选框,数量显然是太多了,不便于后面的特征提取和分类,论文中提出了一种过滤的策略。

首先论文提出了3种不同的方案,如下图所示,第一种方案使用HSV颜色空间,C+T+S+F分别是前面介绍的四种相似度s_{colour},s_{texture},s_{size},s_{fill},第二种方案是Selective Search Fast(RCNN论文中就是用的这种方案),分别用了HSV和Lab两种颜色空间,然后使用了C+T+S+F和T+S+F两种相似度计算方法,超参数k使用了50和100两个不同的值,因此总共会有2\times 2\times 2=8个分割结果。同理第三种方案会产生80个分割结果。

那么怎么将80种结果综合在一起呢?首先可以给不同的层级赋予不同的权重,这个算法是先将原图分割成很多个小区域然后再融合的,将最后一次融合的层级记为i=1,层级i=1的时候权重为1,以此类推。将80个不同方案中不同层级的分割区域的权重相加,然后按照权重排序,排在前面的就是最可能存在有效目标的区域。

这里有个疑点,论文中没有明确指出,就是怎么寻找不同分割方案中的相同区域,如果要求两个区域必须所有像素位置相同似乎有些不可行,或者可以采用IOU来判断?

上面的方法存在一个问题,区域越大,在不同方案中出现的频率越高,叠加之后的概率越大,因此这种方法排序之后会倾向于找到较大的区域。论文中提出给权重乘以一个系数i\times RND,其中RND是[0,1]之间的随机数。引入了随机之后,可以一定程度上避免较大区域一定排在前面的问题。

3、selective search应用于目标识别

在通过selective search算法将图形分割成多个区域之后,论文中提出了一种基于SVM的目标识别方法,下面的流程图来自论文。

在训练阶段,初始的正样本是ground-truth标注的框,用selective search从图中选出候选框,然后将这些候选框中和ground-truth重叠20%~50%的框作为负样本,将选出的负样本中重叠超过70%的只保留一个,论文中通过随机删除负样本使得每个类别的负样本数量在2000以下。然后从每个样本中提取360000个特征 (图像特征提取这一部分不是很了解,大意是提取SIFT特征和四层空间金字塔特征等),送入SVM(togram intersection kernel,这个核函数在图像分类中比径向基效果好)进行训练,训练中会迭代add hard negative examples。

在推断阶段,将selective search产生的候选区域提特征送入模型,按照得分高低排序,和最高得分框重叠超过30%的框将被删除。(SVM算法输出的是样本属于正样本或负样本,这个得分是怎么得出的?)

<Verilog实现除法器> Verilog实现牛顿-拉夫逊(Newton-Raphson)除法器 阿斯顿阿斯顿啊啊是打发士大夫 阅读详情

相关推荐

从‘包饺子’到‘包络线’:一个生活化比喻讲透长期与短期成本决策

本文通过饺子馆经营的生活化比喻,深入浅出地解析了长期与短期成本决策的核心逻辑。从调整人力(可变成本)到扩建厨房(固定成本),揭示了包络线理论在商业决策中的实际应用,帮助企业主在规模经济与成本控制间找到平衡点。

weixin_32006655的博客 338

Selective Search for Object Recognition

Abstract 本文讨论了生成用于对象识别的可能对象位置的问题。我们介绍了选择性搜索,它结合了详尽搜索和分割的优势。与分割一样,我们使用图像结构来指导我们的采样过程。与穷举搜索一样,我们的目标是捕获所有可能的对象位置。我们不是使用单一技术来生成可能的对象位置,而是使搜索多样化并使用各种互补图像分区来处理尽可能多的图像条件。我们的选择性搜索产生了一小组数据驱动,类独立,高质量的位置,在10,09...

LYKymy的博客 440

从时序博弈到数据稳定:CS1237驱动中的信号滤波与卡尔曼实践

本文探讨了CS1237高精度ADC驱动在复杂工业环境中的信号处理挑战,重点介绍了一阶滤波与自适应卡尔曼滤波算法的实践应用。通过参数优化和动态调整策略,有效提升了数据稳定性和抗干扰能力,为嵌入式系统在噪声环境下的精密测量提供了可靠解决方案。

rnn9storyteller的博客 862

[论文解读] 图像分割 & 目标识别 | Selective Search和python实现| <Selective Search for Object Recognition>

目录前言1 图像分割和目标识别过程:1.1 训练过程1.2 测试过程2 论文最大亮点 - selective search method2.1 主要思路:2.2 核心实现2.2.1 分析了颜色空间2.2.2 相似性判断标准的多样性2.2.3 初始region选择的多样性3 python源码说明3.1 相似度的实现3.2 主函数Reference 前言 此处只是叙述ss(selective search method)主体功能, 并且使用网上的简易实现版本-python代码,方便讲解. 官方MATLAB

熊猫小妖的AI世界 3321

从接线到组态:手把手教你搞定PROFIBUS-DP与PA的混合网络搭建(基于西门子TIA Portal)

本文详细介绍了PROFIBUS-DP与PA混合网络的搭建方法,基于西门子TIA Portal平台,从硬件选型、网络架构设计到组态配置和现场调试,提供了一套完整的实战指南。重点解析了DP/PA耦合器的使用、地址映射策略及网络诊断技巧,帮助工程师高效构建高可靠性的工业自动化网络。

weixin_32103009的博客 300

是德频谱分析仪相位噪声测量实战指南:从原理到精准操作

本文详细介绍了是德频谱分析仪在相位噪声测量中的实战操作指南,从基础概念到高级技巧全面解析。通过5G基站时钟测量等实际案例,展示如何利用是德N9030B等设备精准测量相位噪声,并分享设备预热、参数设置、环境干扰排除等关键操作要点,帮助工程师提升测量精度和效率。

jenkins8butler的博客 229

【论文阅读】Selective Search for Object Recognition

Selective Search算法

qq_34222839的博客 944

BBR算法原理与实现深度解析

BBR算法通过重新定义拥塞控制的基本范式,为现代网络应用提供了突破性的解决方案。随着QUIC协议的普及和智能网卡技术的发展,BBR类算法将在边缘计算、云游戏、工业物联网等领域发挥更重要的作用。

程序猿老樊的博客 2415

论文笔记《Selective Search for object recognition》

周一对图像语义分割的情况大致了解些情况。从周二开始花了2天半的时间读了第一篇文章《Selective Search for object recognition 》。 文章名:《物体识别中的选择性搜索方法》 作者: J.R.R. Uijlings  University of Trento, Italy.意大利特伦托大学 发表: IJCV 2012 一、摘要 本文主要介绍物体

鸟恋旧林的博客 8570

如何判断一个程序员的技术比你强?

技术大佬与普通程序员之间存在明显的认知差异:前者善于将复杂问题抽象为经典计算机科学问题,用声明式代码替代过程式逻辑;对异常和边界条件极度敏感,具备系统化的排查方法论;代码追求高可读性而非炫技,且执着于底层原理研究。这种技术压制体现在解决问题的确定性上——通过扎实的理论功底和工程直觉,快速定位问题本质,而非依赖试错或搜索。真正的技术实力源于对底层逻辑的深刻理解和对系统稳定性的敬畏。

wldtzzming的专栏 1088

Fluent验证案例03:管道中湍流流动压降计算——采用kw-sst模型计算压降更为准确。

阅读(4053) 评论(0)本案例利用Fluent计算管道中湍流流动压降。

qq_15963745的博客 873

【亲测免费】 Selective Search for Object Recognition 项目推荐

Selective Search for Object Recognition 项目推荐 1. 项目基础介绍和主要编程语言 Selective Search for Object Recognition 是一个基于 Python 的开源项目,旨在实现选择性搜索算法,该算法广泛应用于目标识别和检测任务中。项目的主要编程语言是 Python,同时包含少量的 C++ 代码用于性能优化。 2. 项目的核心...

gitblog_00041的博客 707

SolidWorks软件二次开发:使用C#进行SolidWorks二次开发

SolidWorks 提供的 API(应用程序编程接口)允许开发者使用多种编程语言(如 C#、VB.NET 等)来控制和扩展 SolidWorks 的功能。API 架构基于 COM(组件对象模型),这意味着开发者可以通过引用 SolidWorks 的类型库来访问其对象模型。SolidWorks 的对象模型包括了从文档、零件、装配体到特征、草图等所有 SolidWorks 中可操作的对象。

kkchenjj的博客 3212

Selective Search for Object Recognition解读

Selective Search for Object Recoginition surgewong@gmail.com http://blog.youkuaiyun.com/surgewong       在前一段时间在看论文相关的工作,没有时间整理对这篇论文的理解。在前面的一篇博客【1】中有提到Selective Search【2】,其前期工作利用图像分割的方

Mr. Mao的专栏 5万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Selective Search for Object Recognition论文翻译

文章目录摘要2. 相关工作2.1 穷举搜索2.2 分割2.3 其他采样策略3. 选择性搜索3.1 按层次分组进行选择性搜索3.2 多样性策略3.3 区域合并4. 基于选择性搜索的对象识别5. 评估5.1 多样性策略5.1.1 平面与层次结构5.1.2 独立的多样化策略5.1.3 多样化策略的组合5.2 位置的质量5.2.1基于边框的位置5.2.2基于区域的位置5.3 对象识别5.4 Pascal ...

qq_35024702的博客 1330

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Selective Search for Object Recognition【论文笔记】

0 摘要      这篇论文主要介绍了选择性搜索(Selective Search)的方法,该方法结合了穷举搜索(Exhausticve Search)和分割(Segmentation)的优势,实现了低数据量、与类别无关且高定位质量的特点。      穷举搜索(Exhaustive Search):选择一个窗口扫描整张图像,改变窗口的大小,继续扫描整张图像。这种做法是比较原始直观,但是改变窗口大小扫描整张图像,非常耗时。 若能过滤掉一些无用的box将会节省大量时间。这就是本文中Selective Searc

Bryce-HJ 526

selective search for object recognition

reference blog:slective searchintroduction shape scale color texture conclude: in object recognition diversity hierarchical > capture all scale exhaustive search selective search: 1 image segmenta

yzb的博客 467

论文笔记:Selective Search for Object Recognition

abstract 论文发布于2012年,主要是用于解决目标坚持任务中候选框该如何选择的问题 该算法大大减少了穷举法选择出来的候选框数目,这可以机器学习算法更powerful introduction 图片本质上是可以分成各个层次。比如说图1,碗里盛的有食物,而碗又站在桌子上 images are intrinsically hierarchical: In Figure 1a the salad and spoons are inside the salad bowl, which in tur

qq_43409114的博客 517

Selective Search for Object Recognition 论文笔记【图片目标分割】

前言: 这篇论文介绍的是,如果快速的找到的可能是物体目标的区域,不像使用传统的滑动窗口来暴力进行区域识别。这里是使用算法从多个维度对找到图片中,可能的区域目标,减少目标碎片,提升物体检测效率。 介绍及引言: 图片是分层次的,比如下图中a:         沙拉和匙在沙拉碗里,而碗又在桌子上,另外桌子和木头有关或者说桌子......

weixin_36670529的博客 403

Selective Search for Object Recognition论文阅读笔记2012

Selective Search for Object Recognition论文阅读笔记2012 Abstract 本文聚焦于生成可能的目标位置用在目标检测中。我们提出选择性搜索(selective search)方法,它综合了穷举搜索以及分割,与分割类似,我们使用图像结构来知道我们的采样过程;与穷举搜索类似,我们试图得到所有可能的目标位置。我们使搜索多样化,并使用各种互补的图像分区来处理尽可能多的图像状况,而不是使用一种单独的技术来生成可能的对象位置。我们的选择性搜索生成一系列数据驱动,与类别无关的高质

weixin_43422466的博客 286

Segmentation as Selective Search for Object Recognition论文翻译

exhaustive search: 1)优点:nature(对象可以位于图像中的任何位置和比例) 2)缺点与对策: 1.要计算的图像和窗口的总数非常多,在计算上是昂贵 对策:使用具有简单计算特性的弱分类器HOG文章目录Abstract1. Introduction2. Related Work2.1 Exhaustive Search for Recognition2.2 Selective S...

qq_35024702的博客 675

Selective Search for Object Recognition——物体识别的选择性搜索

Selective Search for Object Recognition——物体识别的选择性搜索

Together_CZ的博客 1106
上一篇: KeyError: 'LeakyRelu' 解决方法
下一篇: Ubuntu16.04 循环登录解决(NVIDIA显卡安装导致的问题)
__Destiny__
博客等级 码龄9年 27粉丝 41原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值