一、目标检测 VS 目标识别
目标识别(objec recognition)是指明一幅输入图像中包含那类目标。其输入为一幅图像,输出是该图像中的目标属于哪个类别(class probability)。而目标检测(object detection)除了要告诉输入图像中包含了哪类目标外,还要框出该目标的具体位置(bounding boxes)。
在目标检测时,为了定位到目标的具体位置,通常会把图像分成许多子块(sub-regions / patches),然后把子块作为输入,送到目标识别的模型中。分子块的最直接方法叫滑动窗口法(sliding window approach)。滑动窗口的方法就是按照子块的大小在整幅图像上穷举所有子图像块。这种方法产生的数据量想想都头大。和滑动窗口法相对的是另外一类基于区域(region proposal)的方法。selective search就是其中之一!
选择性搜索(selective search)可以比较快速的生成候选区域
二、候选区域生成主要思想
- 使用一种过分割手段,将图像分割成小区域 (1k~2k 个)
- 查看现有小区域,按照合并规则合并可能性最高的相邻两个区域。重复直到整张图像合并成一个区域位置
- 输出所有曾经存在过的区域,所谓候选区域
三、算法流程
输入:彩色图片(三通道)
输出:物体位置的可能结果L
- step0:获取原始分割区域集R={r1,r2,…,rn},具体过程参见论文《Efficient Graph-Based Image Segmentation》
- step1:初始化相似度集合S=∅
- step2:计算区域集R里每个相邻区域的相似度S={s1,s2,…} ,将其添加到相似度集合S中
- step3:从相似度集合S中找出相似度最高的两个区域 ri 和rj,将其合并为新集rt。
- step4:从相似度集合中除去原先与ri和rj相邻区域之间计算的相似度,计算rt与其相邻区域(原先与ri或rj相邻的区域)的相似度,将其结果添加的到相似度集合S中。同时将新区域 rt 添加到区域集合R中。
- step5:获取每个区域的Bounding Boxes(具体位置),这个结果就是物体位置的可能结果L