Selective Search
来源:互联网 发布:手机c语言编程软件ios 编辑:程序博客网 时间:2024/06/06 15:36
目标检测的第一步是要做区域提名(Region Proposal),也就是找出可能的感兴趣区域(Region Of Interest, ROI)。
区域提名可能的方法有:
一、滑动窗口。
滑动窗口本质上就是穷举法,利用不同的尺度和长宽比把所有可能的大大小小的块都穷举出来,然后送去识别,识别出来概率大的就留下来。很明显,这样的方法复杂度太高,产生了很多的冗余候选区域,在现实当中不可行。
二、规则块。
在穷举法的基础上进行了一些剪枝,只选用固定的大小和长宽比。这在一些特定的应用场景是很有效的,比如拍照搜题APP小猿搜题中的汉字检测,因为汉字方方正正,长宽比大多比较一致,因此用规则块做区域提名是一种比较合适的选择。但是对于普通的目标检测来说,规则块依然需要访问很多的位置,复杂度高。
三、选择性搜索(Selective Search)
选择性搜索是一种用于目标检测的区域推荐算法。它的设计速度快,召回率高。它是根据颜色、纹理、大小和形状的兼容性,计算相似区域的层次分组。
候选区域生成
使用了Selective Search方法从一张图像生成约2000-3000个候选区域。基本思路如下:
使用一种过分割手段,将图像分割成小区域
查看现有小区域,合并可能性最高的两个区域。重复直到整张图像合并成一个区域位置
输出所有曾经存在过的区域,所谓候选区域
候选区域生成和后续步骤相对独立,实际可以使用任意算法进行。
合并规则
优先合并以下四种区域:
1.颜色(颜色直方图)相近的
2.纹理(梯度直方图)相近的
3.合并后总面积小的
4.合并后,总面积在其BBOX中所占比例大的
多样化与后处理
为尽可能不遗漏候选区域,上述操作在多个颜色空间中同时进行(RGB,HSV,Lab等)。在一个颜色空间中,使用上述四条规则的不同组合进行合并。所有颜色空间与所有规则的全部结果,在去除重复后,都作为候选区域输出。作者提供了Selective Search的源码,内含较多.p文件和.mex文件,难以细查具体实现。
Selective Search方法python实现案例
#coding:utf-8from __future__ import ( division, print_function,)import matplotlib.pyplot as pltimport matplotlib.patches as mpatchesimport selectivesearchimport cv2def main(): img = cv2.imread('test.jpg') # perform selective search img_lbl, regions = selectivesearch.selective_search( img, scale=500, sigma=0.9, min_size=10) candidates = set() for r in regions: # excluding same rectangle (with different segments) if r['rect'] in candidates: continue # excluding regions smaller than 2000 pixels if r['size'] < 2000: continue # distorted rects x, y, w, h = r['rect'] if w / h > 1.2 or h / w > 1.2: continue candidates.add(r['rect']) # draw rectangles on the original image fig, ax = plt.subplots(ncols=1, nrows=1, figsize=(6, 6)) ax.imshow(img) for x, y, w, h in candidates: print(x, y, w, h) rect = mpatches.Rectangle( (x, y), w, h, fill=False, edgecolor='red', linewidth=1) ax.add_patch(rect) plt.show()if __name__ == "__main__": main()
结果
链接:http://pan.baidu.com/s/1hrJTRnA 密码:4bvp
- Selective Search
- (转载)Selective Search
- Selective Search 学习笔记
- selective search算法
- Selective Search 算法
- selective search程序理解
- 【学习笔记】Selective Search算法--Selective Search for Object Recognition
- Selective Search for Object Recognition
- Selective Search for Object Recognition
- Selective Search for Object Recognition
- Selective Search for Object Recognition
- Selective Search for Object Recognition
- Selective Search for Object Recognition
- Selective search粗略个人理解
- Selective Search for Object Recognition
- Selective Search for Object Recognition
- Selective Search for Object Recoginition
- Selective Search for Object Recoginition
- jdk8配置dubbo2.5.4
- BZOJ 4543: [POI2014]Hotel加强版 长链剖分
- matlab格式化文本读操作
- hdu1272&&1325--并查集判环及森林问题
- 阿里云系列(一)--win环境下部署Javaweb项目
- Selective Search
- 类的生命周期
- 用SS5在Linux上搭建Socks5 Proxy代理服务器
- java内部类,匿名内部类
- python基础学习笔记(八)
- 如何让springmvc在启动的时候执行特定的业务处理
- MYSQL存储过程作用及语法
- java 标签
- 清北学堂-D3-T1-tree