本文大部分内容来自下面的参考链接,加上自己对源代码和论文的一些理解。写下来以备后续查找!
一 、论文原理分析
算法路线:gPb—->OWT—–>UCM
每一部分的功能:
- gPb(Global Pb):计算每一个pixel作为boundary的可能性,即pixel的weight;
- OWT(Oriented Watershed Transform)将上述gPb的结果转换为多个闭合的regions;
- UCM(Ultrametric Contour Map)将上述regions集,转换为hierarchical tree。
这里出现了很多名词,如:什么是hierarchical tree?什么是Oriented Watershed Transform。
1.1 gPb(Global Probability of Boundary)
gPb是mPb和sPb的加权和。
mPb是什么?sPb是什么?
- step1:计算G(x,y,θ)
对于每一个pixel,以其为圆心,做一个圆形:
用倾斜角为θ的直径,将圆形划分为两个区域,对于每一个区域中的pixels,做出它们的histogram,如下:
使用histogram数据,计算其卡方距离:
该距离即为G(x,y,θ),代表pixel(x,y)以θ为方向的gradient magnitude;
- step2:计算mPb
普通的Pb算法,将一幅图片,分解为4个不同的feature channels,分别为brightness、color a、color b以及texture channel,其中前三个channels是基于CIE color space。
而每个pixel的weight就是由这4个channels下计算得到的G(x,y,θ)值的加权和。
针对普通的Pb算法,作者提出了multiscale的方法,即为mPb。
它的原理是在原有Pb算法的基础上,同时使用多个圆形直径长度δ(作者使用三个,[ δ/2 ,δ, 2δ]),针对每一个δ,计算其G(x,y,θ),最终公式如下:
公式中的i代表channel,s代表scale。
意思是,对于每一个pixel,我们计算其在不同直径条件下的每一个feature channel的和,作为其mPb值。
α代表每一个不同直径条件下的每一个feature channel的权重,是针对F-measure进行gradient ascent得到,使用的训练集是BSDS。
- step3:计算sPb
作者首先作出了一个sparse symmetric affinity matrix W,其中每一个元素Wij的计算如下:
i,j代表两个距离不超过半径r(单位:像素,作者在代码中设定r=5)的像素,p是两个像素连成的线段上的任意一个点,找到某两个pixel连成的线段上的pixel的weight的最大值。ρ是常数,作者代码中设定为ρ= 0.1。
该矩阵W代表pixels之间的相似度,通过令:
得到矩阵D,由:
计算得到前n+1个特征向量,代码中作者使用的是n=16.
接着,作者将每一个特征向量视为一幅图片,使用Gaussian Directional Derivative Filters对其进行卷积操作,得到:
从而得到sPb计算公式:
其中的参数:是将特征向量的物理解释问题视为mass-spring system得到的。
- step4:计算gPb
综合mPb和sPb,得到gPb。
β参数前面前文已经解释,参数γ是使用BSDS训练集,通过在
F-measure =
上进行gradient ascent得到。
最后,对于该gPb值进行sigmoid函数变换,使其值处于0-1之间,作为该pixel作为boundary的probability,我在下文都将其称为pixel的weight。
1.2 OWT(Oriented Watershed Transform)
对于每一个pixel,代入八个设定的角度θ∈[0, pi],取其最大值作为边缘的权重。该E(x,y,θ)即为gPb公式。
这样,每一个pixel均被赋予一个0到1之间的值,其值大小表示该pixel是boundary的可能性。
接着使用WT(Watershed Transform)技术,将以上的输入转化为一系列Po(regions)和Ko(arcs)。如图:
图中,红点为其region的minimal,arcs为其边界。
原来的WT算法,是使用该arc上的pixels的weight的平均值作为其强度。
然而这种方法,会导致一些弱arc的某些pixels因为处于强arc的周边,在计算 的过程中,选择了针对强arc的方向θ,从而该pixel的值偏大,于是弱arc的强度也相应偏大。
此句话的意思为:计算某一个arc pixel的值时,有八个方向的权重可以选择,之前的选择方案是无论什么情况下均选择使得E(x,y,θ)最大的θ方向的值,而并没有考虑arc的走势,可能会导致本来值应该较小的元素,因为θ方向E(x,y,θ)值最大,取该方向后,导致计算出来的该像素点的值也偏大
如下图所示,两个石头像的中间,有许多横的强arc: