您的位置:首页 > 其它

显著性检测算法学习阶段论文总结(2)

2016-01-11 15:20 363 查看
1.Saliency detection via background and foreground seed selection, Jianpeng Wang, Huchuan Lu, Neurocomputing

  这篇文章是利用前背景种子对图像的显著性进行提取,而这篇文章值得参考的地方就是文中对前背景种子的定义以及提取方法。算法的大致流程如下图:

  


  从上图可以明确看出,论文先由背景种子生成基于背景的显著图,并从该图中提取出前景区域得到前景种子。接着由前景种子生成一个基于前景的显著图,最终将两图合并在经过平滑处理后就得到最终结果。

(1)背景种子及基于背景的显著图:论文首先是对背景种子进行提取(之所以先提取背景元素是因为在没有先验的情况下我们能正确选中背景超像素的概率更大),论文首先假设图像边界超像素为背景种子集(论文认为目标通常情况下是出现在图像中心的)而对于那些处于边界区域的前景部分,论文使用了一种边缘权重算法去从背景集中排除可能的前景。具体方法是:先利用(Learning to Detect Natural Image Boundaries Using Local Brightness, Color, and Texture Cues)得到图像边界,然后计算每个超像素所包含的边界权重,从而排除前景区域。在得到背景种子集后。利用空间和颜色距离信息计算出基于背景的显著图SbiS_i^b:

Sbi=∑n≠i,n∈BGd(ci,cn)(1−d(Ii,In)/θ)S_i^b=\sum_{n\neq i, n\in BG}{d(c_i,c_n)(1-d(I_i,I_n)/\theta)}

这里cc表示颜色II表示空间然后在取其平均做为最终结果(公式见论文)。

(2)前景种子及其显著图:在得到基于背景的显著图后,论文利用自适应阈值算法(matlab内置程序)对其进行阈值分割从而得到显著值较大的区域,就是前景区域,这样也就提取出了前景种子集FGFG。然后,按照下述公式计算出基于前景的显著图SfiS_i^f:

Sfi=∑n≠i,n∈FGλd(ci,cn)+αd(Ii,In)S_i^f=\sum_{n\neq i, n\in FG}{\frac{\lambda}{d(c_i,c_n)+\alpha d(I_i,I_n)}}

(3)最后将来那个幅显著图融合并进行再定义以后就得到了最终的显著图。部分实验结果如下图:



论文地址:Saliency detection via background and foreground seed selection

2.Hierarchical Saliency Detection, Qiong Yan, Li Xu, CVPR2013

  这篇论文的贡献在于多尺度图层的运用,这里的多尺度图层与一般的多尺度图像分割不同。所谓图层在我看来是对原图不同尺度的模糊,这样在保留图像基本颜色信息的基础上,通过区域合并排除了一些小区域的干扰,保证区域整体一致性从而达到了目标的完整性。其大致过程如下图:

  


  从上图中可以看出,不同尺度的图层对与原图细节的保留也大不相同,大尺度的图层可以除去背景干扰(如图中的花,是背景但很好可能被误检测为显著目标)。但同样也有其缺点,比如多目标检测(某个目标较小)很可能就将小目标融合到背景区域。但论文中使用多尺度的图层在一定程度上缓解了这个问题。

(1)图层构建:论文中图层的构建其实是一个区域的合并过程。首先,对于每个区域的尺寸,文中将其定义为该区域所能包含最大正方形的边长(像素数)。在得到区域尺寸后,论文设定了一个阈值(上图中3个图层分别为3,17,33),将小于这个阈值的区域与距其最近(在CIELUV颜色空间)的区域合并,并对合并后区域的颜色(平均颜色)尺寸更新。将图层1作(阈值为3)为底层,图层3(阈值为33)作为顶层(关于区域尺寸计算看论文)。

(2)单层显著图:在图层建立起来之后,论文基于每个图层都构建对应的显著图。其构建思路主要包含两个:局部颜色对比,空间位置先验,前者其实相当于程明明RC算法中的区域对比度(即空间加权的颜色对比度),其公式如下:

Ci=∑j=1nω(Rj)ϕ(i,j)∥ci−cj∥2C_i=\sum_{j=1}^{n}{\omega(R_j)\phi(i,j)}{\Vert c_i-c_j\Vert}^2

这其实就和RC算法很相似ω(Rj)\omega(R_j) 是区域大小加权,ϕ(i,j)\phi(i,j) 是空间位置加权,后一项则是颜色对比。而后者则是对目标出现位置的猜想和上一个算法的想法相似(目标更可能出现在图像中心),其公式如下:

Hi=1ω(Rj)∑xi∈Riexp(−λ∥xi−xc∥2)H_i={\frac {1}{\omega(R_j)}}{\sum_{x_i\in R_i}{exp(-\lambda \Vert x_i-x_c\Vert^2)}}

这其实就是空间中心加权。

(3)显著图融合:在三层显著图计算出来以后,论文先是自底向上更新每个节点(区域)显著值最小能量表达式,在自顶向下更新显著值。其中在自底向上过程中采用能量函数极小化求解新的显著值的表达式(新值作为变量),在自顶向下中通过优化已有的能量表达式更新显著值。部分结果:



论文地址:Hierarchical Saliency Detection

3.Saliency Detection via Absorbing Markov Chain, Bowen Jiang1, Lihe Zhang1, Huchuan Lu,ICCV2013

  这篇文章的思路以及原理都非常值得借鉴,是一篇非常不错的检测算法。文章主要是运用连通表以及马尔科夫链的原理,将图像的每个超像素节点映射为markov链的状态,通过状态之间的转移来确定超像素到背景的转移时间,若时间越长这该超像素越显著。在实现时,该马尔科夫链的状态转移矩阵是通过计算两两超像素间的权重得到的,权重越大表明两者间的转移概率越大,时间越短。论文中的吸收态是指到达该状态不再转移到其他状态,即转移的终点论文中指的是背景超像素。

(1)关联矩阵构建:论文中是通过构建关联矩阵求解转移矩阵PP,即P=D−1AP=D^{-1}A,实际上就是对AA 进行归一化处理,但在代码中归一化时在AA 的基础上另外加上了超像素到背景集的权重以用来突出背景超像素(个人认为)。对于关联矩阵的构建文中使用了两个因素:空间邻近和颜色相似,对于空间邻近论文通过构建以超像素节点双层无向图(图论)G(V,E)G(V,E),将空间邻近局限在一定范围;对于后者就是一个颜色对比ωij=e−d(ci,cj)θ\omega_{ij}=e^{-\frac{d(c_i,c_j)}{\theta}},然后,在巧妙地利用下面的融合公式,将问题转化为求局部的颜色对比(即认为图像中处于某一局部区域是目标,即某一局部区域的颜色越相近则该区域越可能是目标):

aij=⎧⎩⎨ωij10Eij≠0i=jotherwise\begin{eqnarray}
a_{ij} =
\begin{cases}
\omega _{ij} &E_{ij}\neq0\\
1 &i=j\\
0 &otherwise
\end{cases}
\end{eqnarray}

(2)显著图生成:这样就得到关联矩阵AA ,相应的状态转移矩阵PP 就可求得。通过PP得到基础矩阵NN 后每个瞬态(所有超像素)到吸收态(背景超像素)的转移时间便可计算得到,此时间就是显著值的衡量。

y=N×c=(I−Q)−1×cy=N\times c=(I-Q)^{-1}\times c

这里cc是单位列向量。

(3)对于上述显著图,论文还对其中一些较差的结果进行了改进,其具体过程见论文。实验结果:



该算法检测检测效果不错,而且时间较快,性能非常不错。

论文地址:Saliency Detection via Absorbing Markov Chain

类似论文:Saliency Region Detection Based on Markov Absorption Probabilities(这篇论文最后的导向滤波挺好用的)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: