Region proposals 是什么?如何提取?
文章目录Region proposals 是什么?如何提取?如何直观的理解 region proposals ?R-CNN 中的 region proposals 起什么作用?R-CNN 实现检测目标的三个步骤?region proposals 是如何提取的?selective search (提取 region proposals 的方法)的三个特点region proposals 最终的每一个
文章目录
Region proposals 是什么?如何提取?
- 背景介绍:在使用 region proposal(候选区域) 之前的目标检测都是使用滑动窗口遍历(穷举)图片。
R-CNN论文链接:Rich feature hierarchies for accurate object detection and semantic segmentation, Cited by 7848
1. 如何直观的理解 region proposals ?
- 上图中每一个黄色的框框住的内容都是一个 region propoal ,方方正正的。
- region propoal 通常是使用一种叫 selective search 的方法来确定的。selective search 可以简单的理解为对图片中的每一个像素进行聚类:相邻的相同颜色的像素是一个类别,相邻的相同纹理的像素是一个类别。一个又一个的像素点聚集起来之后就是就变成了上图中一个又一个的块状斑。每一个块状斑就极有可能是我们需要检测的目标。
- 斑的正外接矩形就是我们需要的 region propoal 。
- 块状斑的特点:斑与斑之间的差异较大,斑内的成分与成分之间的差异小。就是低耦合高内聚的意思。
2. R-CNN 中的 region proposals 起什么作用?
- 为后续的CNN网络提供输入。
2.1. R-CNN 实现检测目标的三个步骤?
- 第一步:使用传统方法从原始图片中提取2k个形状大小不统一的 region proposals
- 第二步:将每一个 region proposal 转变成相同大小(227*227),再使用CNN网络提取特征,输出特征向量。
- 第三步:使用SVM分类提取出的特征向量(包含背景类别)。
2.2. region proposals 是如何提取的?
- R-CNN 借用一种叫 selective search 的方法合并出 region proposals。
selective search 论文链接:Selective search for object recognition. IJCV, 2013, Cited by 2781
2.2.1. selective search (提取 region proposals 的方法)的三个特点
- Capture All Scales:能通捕获不同尺寸的额目标。因为 selective search 方式是通过分层算法对每一个像素进行处理后一步步得到更大的目标,所以只要像素合并的算法足够合理,理论上说,selective search 就能区分开每一个我们想要区分的物体。
- Diversificatio:多元化。即结合多种方法(颜色,纹理……)来分析各个 region 之间的相似度,保证最后生成的 region proposals 的质量更高。
- Fast to Compute:算法比较快。
2.2.2. region proposals 最终的每一个 region 是如何合并变大的?
- 第一步,通过 Efficient Graph-Based Image Segmentation 算法生成最初的小 region。
论文链接:Efficient Graph-Based Image Segmentation,Cited by 5808 - 第二步,使用贪心算法将这些 region 迭代合并。
- 计算当前每一个 region 与相邻 region 之间的相似度。
- 合并相邻且最相似的 region,这样就可以将小 region 变成一个更大一点的 region(整幅图中的 region 数目就会变少)。
- 重复上面的两个步骤,直到合并完所有的 region,最后只剩下一个 region(整幅图),贪心算法计算完成。
- 说明:贪心算法计算过程中的每一步都可以做作为最终的 region proposal ,具体取哪一步值之后的 region proposals 是由相似度阈值(参数)来确定的。
2.2.3. region proposals 最初的每一个 region 是如何生成的?
- 通过论文(Selective search for object recognition)的方法生成的。
- 这是一种自底部向上聚合的方法(Bottom-up grouping)。
论文链接:Efficient Graph-Based Image Segmentation,Cited by 5808
- 待写
2.2.4. 合并相似的 region 时 ,相似度是怎样定义和度量的?
-
scolour(ri, rj) 使用颜色来度量 region 之间的相似度 :每一个 region 的每一种颜色使用25个值来表示(HOG特征)。如果一个 region 有三个颜色通道,那么就需要使用75(3*25)个值来描述这个 region 的颜色信息。
- 每个 region 用颜色直方图表示为(n=75):
- 两个 region 之间的相似度使用直方图间的交集的累加表示:==不理解为什么使用最小和表示,而不是使用两者之间的差值呢?==计算C1和C2的HOG,计算两个HOG的重叠面积即为相似度。
- 两个 region 合并之后的颜色直方图和大小分别是:
- 每个 region 用颜色直方图表示为(n=75):
-
** stexture(ri, rj) 使用纹理来度量 region 之间的相似度**:每一个 region 的每一种颜色使用使用8个方向的信息来表示,每个方向的信息是使用10个数据来表示的。如果一个 region 有三个颜色通道,那么就需要使用240(3*8*10)个数据来描述这个 region 的信息。
- 这里的信息提取使用的是SIFT(局部特征描述子)[后续补充相关点]()
- 每个 region 用纹理直方图表示为(n=240):
- 两个 region 之间的相似度:
-
ssize(ri, rj) 鼓励合并较小的两个的 region:
- 在尺度上,不是应该合并相似尺度的 region,而是应该合并较小的两个region,所以当两个 region 的尺寸都很小时,应该被鼓励合并,此时度量值应该较大。size(im)表示整幅图的尺寸大小 。
- 两个 region 因尺寸原因需要被合并的程度(越小越该合并,值越大):
-
sfill(ri, rj) 度量两个 region 在外形上的匹配程度:应该优先合并两个 region 的外界矩形的空余部分较少的情况。
- size(BiBj):表示两个两个 region 合并起来之后的图形的外接矩形的大小。
- 两个 region 外接矩形的空白越少,就越应该合并,这个度量值就应该越大。
- 同样条件下,下图中的BC将优先于BA先合并。因为BC组合之后更像一个整体,因为组合之后不会之后的外接矩形没有太多的空白。
-
上面的4个值越大,表示两个 region 之间的颜色越相似,纹理越相似,尺寸越小,形状越匹配。
-
最后会选取这些度量方法中的部分来使用。参数a设置为1时,就表示启用了这种度量方法。
必看相关论文
- R-CNN:Rich feature hierarchies for accurate object detection and semantic segmentation,2014,Cited by 7848
- Selective Search for Object Recognition, 2013,Cited by 2781
- Efficient Graph-Based Image Segmentation,2004, Cited by 5808
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)