首页 > 技术文章 > Contour Detection and Hierarchical Image Segmentation【阅读笔记】

janmng 2020-12-07 19:42 原文

一 、论文原理分析

算法路线: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]

推荐阅读