一 、论文原理分析
算法路线: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。
(什么是CIE color space? [https://zhuanlan.zhihu.com/p/120221837])
而每个pixel的weight就是由这4个channels下计算得到的G(x,y,θ)值的加权和。
针对普通的Pb算法,作者提出了multiscale的方法,即为mPb。
它的原理是在原有Pb算法的基础上,同时使用多个圆形直径长度δ(作者使用三个,[ δ/2 ,δ, 2δ]),针对每一个δ,计算其G(x,y,θ),最终公式如下:
- step3:计算sPb
作者首先作出了一个sparse symmetric affinity matrix W,其中每一个元素Wij的计算如下:
i,j代表两个距离不超过半径r(单位:像素,作者在代码中设定r=5)的像素,p是两个像素连成的线段上的任意一个点,找到某两个pixel连成的线段上的pixel的weight的最大值。ρ是常数,作者代码中设定为ρ= 0.1。
该矩阵W代表pixels之间的相似度,通过令:
Dii
得到矩阵D,由:
特征向量
计算得到前n+1个特征向量,代码中作者使用的是n=16.
接着,作者将每一个特征向量视为一幅图片,使用Gaussian Directional Derivative Filters对其进行卷积操作,得到:
这里写图片描述
从而得到sPb计算公式:
sPb
其中的参数:参数是将特征向量的物理解释问题视为mass-spring system得到的。
- step4:计算gPb
综合mPb和sPb,得到gPb。
gPb
β参数前面前文已经解释,参数γ是使用BSDS训练集,通过在
F-measure =这里写图片描述
上进行gradient ascent得到。
最后,对于该gPb值进行sigmoid函数变换,使其值处于0-1之间,作为该pixel作为boundary的probability,我在下文都将其称为pixel的weight。
转自: [https://blog.csdn.net/nature_xd/article/details/53375344]