Efficient Graph-Based Image Segmentation

本文相关

原文链接

基础知识

  • 一张图是由不同的像素点构成的,本文的计算和构建都是基于像素点的运算,即(RGB)
  • 高斯模糊/拉普拉斯变换:用于转换图像,减少图像噪声的平滑算法
  • 最小生成树(Minimum Spanning Tree | MST)指的是,在图中建立一个连通图并且没有回路是生成树,而最小生成树指的是构成结果权值最小
  • 不同像素点之间的差:即RGB值之间的欧氏距离
    • ( R 1 − R 2 ) 2 + ( G 1 − G 2 ) 2 + ( B 1 − B 2 ) 2 \sqrt{(R_1-R_2)^2+(G_1-G_2)^2+(B_1-B_2)^2} (R1R2)2+(G1G2)2+(B1B2)2
  • 并查集算法(union find set)以及克鲁斯卡尔算法(Kruskal),使用边建立并查集,并且使用kruskal进行搜索合并

早期的分割方法

  • Zahn提出了一种*基于图的最小生成树(MST)*的分割方法,用来进行点聚类以及图像分割,前者权值是点间距离,后者权值是像素差异。
  • 不足:根据阈值不同,会导致高可变性(大约是色彩对比强的一个区域)区域划分为多个区域;将ramp和constant region合并到一起。
  • Urquhart提出用边相连的点中边权值最小的进行归一化,找周围相似的。
  • 根据各个区域是否符合某种均匀性标准来分割,找均匀强度或梯度的区域,不适用于某个变化很大的区域。
  • 使用特征空间聚类:通过平滑数据——给定半径的超球面对各个点扩张其连通分量,找到簇,来保持该区域的边界,并对数据进行转换。

基于图的分割

定义

  • G:将图像由像素点转化为图
  • V:每一个像素点都是图中的点
  • E:任意两个相邻像素点之间边
  • C:被划分的Segmentation,一个C中有至少1个像素点
  • Int(C):区域内最小生成树权值最大的边,表示的是,记为
    • I n t ( C ) = max ⁡ w ( e ) , e ∈ M S T ( C , E ) Int(C) = \max{w(e)} , e∈MST(C,E) Int(C)=maxw(e),eMST(CE)
  • Dif(C1,C2):表示C1和C2之间的距离,记为
    • D i f ( C 1 , C 2 ) = min ⁡ w ( v i , v j ) , v i ∈ C 1 , v j ∈ C 2 , ( v i , v j ) ∈ E Dif(C1,C2) = \min{w(vi,vj)} ,vi∈C1,vj∈C2,(vi,vj)∈E Dif(C1,C2)=minw(vi,vj),viC1,vjC2,(vi,vj)E
  • 最后要形成的分组要求是(表示了所有区域之间的最小距离都比区域内的最大距离和权值的和要大)
    • D ( C 1 , C 2 ) = { t r u e ,   i f D i f ( C 1 , C 2 ) > M I n t ( C 1 , C 2 ) f a l s e ,   o t h e r w i s e D(C1,C2)=\left\{ \begin{aligned} true, & & \ if Dif(C1,C2)>MInt(C1,C2) \\ false, & & \ otherwise \end{aligned} \right. D(C1,C2)={true,false, ifDif(C1,C2)>MInt(C1,C2) otherwise
  • 其中MInt(C1,C2)的值为:
    • M I n t ( C 1 , C 2 ) = ( I n t ( C 1 ) + τ ( C 1 ) , I n t ( C 2 ) + τ ( C 2 ) ) MInt(C1,C2) = (Int(C1)+τ(C1),Int(C2)+τ(C2)) MInt(C1,C2)=(Int(C1)+τ(C1),Int(C2)+τ(C2))
  • 阈值设定的原因是为了在开始时,因为只有单个像素点,那么点内的距离为0,而点之间的距离还存在,那么导致无法合并。所以加入阈值。
    • τ ( C ) = k / ∣ C ∣ τ(C) = k/|C| τ(C)=k/C

分割算法(与克鲁斯卡尔算法构建最小生成树有密切关系。)

  • 输入是一个有n个节点和m条边的图G,输出是一系列区域。步骤如下:
  • 0.将边按照权重值以非递减方式排序
  • 1.最初的分割记为S(0),即每一个节点属于一个区域。
  • 2.按照以下的方式由S(q-1)构造S(q):记第q条边连接的两个节点为vi和vj,如果在S(q-1)中vi和vj是分别属于两个区域并且第q条边的权重小于两个区域的区域内间距,则合并两个区域。否则令S(q) = S(q-1)。
  • 3.从q=1到q=m,重复步骤2。
  • 4.返回S(m)即为所求分割区域集合。

补充

高斯滤波器

  • 高斯变换就是用高斯函数对图像进行卷积,高斯滤波器是一种线性滤波器,能够有效抑制噪声,并平滑图像。其实质是取滤波器窗口内像素的均值作为输出。
  • 高斯函数公式如下:
    • f ( x ) = 1 σ 2 π e − ( x − μ ) 2 2 σ 2 f(x) = \frac{1}{\sigma\sqrt{2\pi}}e^{ -\frac{(x-\mu)^2}{2\sigma^2}} f(x)=σ2π 1e2σ2(xμ)2
      其中,ux的均值,σ是方差。
  • 由一维函数,我们可以推导出二维函数的公式如下:
    • f ( x , y ) = 1 2 π σ 2 e − ( x 2 + y 2 ) 2 σ 2 f(x,y) = \frac{1}{2\pi \sigma^2} e^{-\frac{(x^2+y^2)}{2\sigma^2} } f(x,y)=2πσ21e2σ2(x2+y2)
  • 高斯函数在图像处理中的使用,实际上就是对每个像素点的周边像素取平均值,从而达到平滑的效果,在取值(周边半径)时,周围像素点的半径越大,则图像的模糊度就越强。在实际计算时,利用高斯模糊按正态曲线分配周边像素的权重,从而求中心点的加权平均值。
  • 高斯模糊的具体计算方式如下:
    • 1.将中心点周围的八个点带入到高斯函数中,从而得到权重矩阵A1;
    • 2.为使归一化,将矩阵A1中的各个点除以所有点(9个点)的权重和,得到归一化后的权重矩阵A2;
    • 3.图片原始的像素矩阵分别乘以A2中各自的权重值,将得到的所有点的值加起来求平均,便得到中心点的高斯模糊值。图像中其余点相同求法。
    • 注:1.彩色图片,可对RGB三通道分别作高斯模糊。
  • 2.σ代表数据的离散程度,σ越大,中心系数越小,图像越平滑;反之,反之。

拉普拉斯变换:是为解决傅立叶变换等幅振荡的缺点。

  • 首先了解一下傅立叶变换:傅立叶变换是一种物理上探究频谱的方法,三角公式是:
    • f ( t ) = ∑ n = 1 ∞ A n c o s ( n w 0 t + φ n ) + B f(t) = \sum_{n=1}^\infty A_ncos(nw_0t+\varphi_n)+B f(t)=n=1Ancos(nw0t+φn)+B
    • 其中,w0表示基波。
  • 由欧拉公式:
    • { e i x = c o s x + i s i n x , e − i x = c o s x − i s i n x , \left\{ \begin{aligned} e^{ix} =cosx+isinx, \\ e^{-ix} =cosx -isinx, \end{aligned} \right. {eix=cosx+isinx,eix=cosxisinx,
  • 将傅立叶三角形式公式中的正余弦函数用指数函数表示,改写为用复指数表示的公式,如下:
    • f ( t ) = ∑ − ∞ ∞ F ( n w 0 ) e j w 0 t f(t) = \sum_{-\infty}^\infty F(nw_0)e^{jw_0t} f(t)=F(nw0)ejw0t
  • 将上述公式改为积分形式,即得到复指数形式公式为:
    • F ( w ) = ∫ − ∞ ∞ f ( t ) e − j w t d t F(w) =\int_{-\infty}^\infty f(t)e^{-jwt}dt F(w)=f(t)ejwtdt
  • 但由于傅立叶变换是等幅振荡的正弦波,故当f(t)不断趋向无穷时,此时函数将不再收敛,这时候便不再适合使用傅立叶变换。于是,我们引入一个衰减因子,对其作变换。对函数y=f(t)乘上一个 e σ t e^{\sigma t} eσt,其中,σ>0。
    • F ( w ) = ∫ − ∞ ∞ f ( t ) e − σ t e − j w t d t F(w) =\int_{-\infty}^\infty f(t)e^{-\sigma t}e^{-jwt}dt F(w)=f(t)eσtejwtdt
  • 对上式进行合并同类项,可得到 F ( w ) = ∫ − ∞ ∞ f ( t ) e − t ( σ + j w ) d t F(w) =\int_{-\infty}^\infty f(t)e^{-t(\sigma+jw)}dt F(w)=f(t)et(σ+jw)dt
  • 我们将指数中的σ+jw最初的分割记为S,于是得到拉普拉斯公式:
    • ⇒ \Rightarrow    F ( w ) = ∫ − ∞ ∞ f ( t ) e − s t d t F(w) =\int_{-\infty}^\infty f(t)e^{-st}dt F(w)=f(t)estdt
  • 由上式推导,很清楚的知道,当s=jw时,拉普拉斯函数就变成了傅立叶函数,也就相当于拉氏不再具有衰减功能。
  • 又由上述公式可以很直观地看到当取值 σ 0 \sigma_0 σ0刚好收敛时,则 σ \sigma σ> σ 0 \sigma_0 σ0的区域全都收敛。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Efficient graph-based image segmentation 是一种高效的基于图的图像分割算法。该算法的目标是将一张输入图像分割成具有相似特征的区域,从而更好地理解图像内容。 在这个算法中,图像被表示为一个图,由一组节点和边组成。每个节点代表图像中的一个像素,而边则表示两个像素之间的相似性或连接性。为了实现图像的分割,算法使用了一种称为最小生成树的技术。通过计算图中边的权重,然后根据权重构建一棵最小生成树,算法可以将图像分割成多个区域。 具体来说,算法从每个像素开始,计算其与相邻像素的相似性,并将相似性作为边的权重。然后,根据这些权重构建最小生成树。接着,算法通过逐步将较大的边替换为较小的边,来划分不同的区域。这个过程一直持续到图中没有更多的边可以替换为止。最终,每个区域被分配一个唯一的标签,从而实现了图像的分割。 通过使用这种算法,可以得到高质量的图像分割结果,该结果可以用于各种图像处理任务,如目标检测、图像分析等。与其他图像分割算法相比,Efficient graph-based image segmentation 算法具有计算效率高和分割结果准确度高的优势,因此在图像处理领域得到广泛应用。 总之,Efficient graph-based image segmentation 是一种高效且精确的图像分割算法,通过构建最小生成树来划分图像区域,为图像处理提供了强大的工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值