Contour Detection and Hierarchical Image Segmentation

本文大部分内容来自下面的参考链接,加上自己对源代码和论文的一些理解。写下来以备后续查找!

一 、论文原理分析

算法路线: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,以其为圆心,做一个圆形:
globalPb计算过程示意图
用倾斜角为θ的直径,将圆形划分为两个区域,对于每一个区域中的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,θ),最终公式如下:
mPb
公式中的i代表channel,s代表scale。
意思是,对于每一个pixel,我们计算其在不同直径条件下的每一个feature channel的和,作为其mPb值。
α代表每一个不同直径条件下的每一个feature channel的权重,是针对F-measure进行gradient ascent得到,使用的训练集是BSDS。

- step3:计算sPb
作者首先作出了一个sparse symmetric affinity matrix W,其中每一个元素Wij的计算如下:
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。

1.2 OWT(Oriented Watershed Transform)

对于每一个pixel,代入八个设定的角度θ∈[0, pi],取其最大值作为边缘的权重。该E(x,y,θ)即为gPb公式。
E(x,y)
这样,每一个pixel均被赋予一个0到1之间的值,其值大小表示该pixel是boundary的可能性。

接着使用WT(Watershed Transform)技术,将以上的输入转化为一系列Po(regions)和Ko(arcs)。如图:
这里写图片描述
图中,红点为其region的minimal,arcs为其边界。

原来的WT算法,是使用该arc上的pixels的weight的平均值作为其强度。

然而这种方法,会导致一些弱arc的某些pixels因为处于强arc的周边,在计算E(x,y) 的过程中,选择了针对强arc的方向θ,从而该pixel的值偏大,于是弱arc的强度也相应偏大。

此句话的意思为:计算某一个arc pixel的值时,有八个方向的权重可以选择,之前的选择方案是无论什么情况下均选择使得E(x,y,θ)最大的θ方向的值,而并没有考虑arc的走势,可能会导致本来值应该较小的元素,因为θ方向E(x,y,θ)值最大,取该方向后,导致计算出来的该像素点的值也偏大

如下图所示,两个石头像的中间,有许多横的强arc:

  • 14
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值