Efficient Graph-Based Image Segmentation

Paper : Efficient Graph-Based Image Segmentation
Code :

摘要

Efficient Graph-Based Image Segmentation 一文是将图片看作是图论中的图进行处理,用到的方法比较简单易懂,涉及到OI/ACM中常见的概念MST,而类MST的算法流程保证算法的时间复杂度为O(n log n)。Efficient Graph-Based Image Segmentation 是在像素级上进行融合,为Selective Search 算法提供了初始的区域。

基于图的分割

设无向带权图 G ( V , E ) G(V,E) G(V,E) w ( v i , v j ) w(v_i,v_j) w(vi,vj) 为非负实数,表示节点 v i , v j v_i,v_j vi,vj 之间的差异度,那么基于图的分割方法中,分割 S S S 定义为对点集 V V V 的划分。

区域间边界断言(Pairwise Region Comparison Predicate) : 用于断言两区域之间是否有明确的证据表明存在边界。

对于区域 C ∈ S C\in S CS,定义区域 C C C 的内部差异度为

Int ( C ) = max ⁡ e ∈ M S T ( C , E ) w ( e ) \textrm{Int}(C) = \max_{e\in MST(C,E)} w(e) Int(C)=eMST(C,E)maxw(e)

对于区域 C 1 , C 2 ∈ S C_1,C_2\in S C1,C2S,定义它们之间的差异度为

Dif ( C 1 , C 2 ) = min ⁡ v i ∈ C 1 , v j ∈ C 2 , ( v i , v j ) ∈ E w ( v i , v j ) \textrm{Dif}(C_1,C_2) = \min_{v_i\in C_1,v_j\in C_2,(v_i,v_j)\in E w(v_i,v_j)} Dif(C1,C2)=viC1,vjC2,(vi,vj)Ew(vi,vj)min

如果不存在连接两区域之间的边,令 Dif ( C 1 , C 2 ) = ∞ \textrm{Dif}(C_1,C_2) = \infty Dif(C1,C2)=

区域间边界断言定义为

D ( C 1 , C 2 ) = { true Dif ( C 1 , C 2 ) > MInt ( C 1 , C 2 ) false otherwise D(C_1,C_2) = \left\{\begin{matrix} \textrm{true} & \textrm{Dif}(C_1,C_2)>\textrm{MInt}(C_1,C_2)\\ \textrm{false} & \textrm{otherwise} \end{matrix}\right. D(C1,C2)={truefalseDif(C1,C2)>MInt(C1,C2)otherwise

其中最小内部差异值 MInt 定位为

M I n t ( C 1 , C 2 ) = min ⁡ ( Int ( C 1 ) + τ ( C 1 ) , Int ( C 2 ) + τ ( C 2 ) ) MInt(C_1,C_2) = \min(\textrm{Int}(C_1)+\tau(C_1),\textrm{Int}(C_2)+\tau(C_2)) MInt(C1,C2)=min(Int(C1)+τ(C1),Int(C2)+τ(C2))

∣ C ∣ |C| C 较小时, Int ( C ) \textrm{Int}(C) Int(C) 不是一个很好的评价局部数据性质的指标,例如 ∣ C ∣ = 1 |C| = 1 C=1时为0,因此引入阈值函数 τ \tau τ,定义为

τ ( C ) = k ∣ C ∣ \tau(C) = \frac{k}{|C|} τ(C)=Ck

其中更大的超参数k,表示更倾向于生成更大的划分块。通过修改 τ \tau τ 函数的定义,还可以表现出对区域形状的倾向性。

算法

过于细致的分割:对于分割 S S S,当存在区域 C 1 , C 2 C_1,C_2 C1,C2 ,满足 C 1 , C 2 C_1,C_2 C1,C2 的区域间边界断言为假,我们称分割 S S S 过于细致了。

过于粗糙的分割:对于分割 S S S,当存在对分割 S S S 更细致的划分 S ′ S' S,且 S ′ S' S 不是过于细致的分割,那么我们称分割 S S S 过于粗糙了。

存在性:对于有限图 G ( V , E ) G(V,E) G(V,E),存在一个分割 S S S 不会过于细致或粗糙。

基于图的分割算法:

  1. 将边集根据边权 w w w 由小到大排序 π = ( o 1 . . . o m ) \pi = (o_1...o_m) π=(o1...om),设 S 0 S^0 S0 表示初始分割,每个点自己组成一个区域
  2. 重复步骤3 m 次
  3. 根据以下方法从 S q − 1 S^{q-1} Sq1 生成 S q S^q Sq:设 v i ∈ C i q − 1 , v j ∈ C j q − 1 v_i \in C_i^{q-1},v_j \in C_j^{q-1} viCiq1,vjCjq1,当 C i q − 1 ≠ C j q − 1 C_i^{q-1}\not = C_j^{q-1} Ciq1=Cjq1 w ( o q ) = w ( v i , v j ) ≤ MInt ( C i q − 1 , C j q − 1 ) w(o_q) = w(v_i,v_j) \leq \textrm{MInt}(C_i^{q-1},C_j^{q-1}) w(oq)=w(vi,vj)MInt(Ciq1,Cjq1),那么合并 C i q − 1 , C j q − 1 C_i^{q-1},C_j^{q-1} Ciq1,Cjq1,否则不变

可以证明,基于图的分割算法产生的分割 S S S 不会过于细致或粗糙。

应用到图片上

图片可以理解成由像素构成的矩阵,可以有以下两种方式建图

  1. 使用高斯模糊 σ = 0.8 \sigma = 0.8 σ=0.8 对图片进行降噪后,令每个像素对应一个点,向八相邻的像素建边,权值为 w ( v i , v j ) = ∣ I ( p i ) − I ( p j ) ∣ w(v_i,v_j) = |I(p_i)-I(p_j)| w(vi,vj)=I(pi)I(pj),对于彩色图,我们对RGB分别处理,只将三个通道上都划分为一个区域的点看作一个区域。
  2. 使用高斯模糊 σ = 0.8 \sigma = 0.8 σ=0.8 对图片进行降噪后,将图片中每个像素映射到特征空间中,例如 ( x , y , r , g , b ) (x,y,r,g,b) (x,y,r,g,b),使用 L2 正则作为距离函数,每个点连接固定数量的近邻

总结

基于图的分割算法给出了三个评价分割算法好坏的指标,并从数学上证明了算法的满足这三个标准。为了保证基于图的分割算法的时间复杂度是 O(n log n)的,作者使用了最大权重、最小权重等作为评价区域内、区域间的标准,可能会对算法的鲁棒性造成一定的影响。两种建图的方式一个更关注局部的特性,一个在感性上能够更关注图片的全局特性,可以根据实际问题进行调整。不过对于SS来说,前一种显然更优

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值