图割算法在图像分割中的应用与优化
1. 图割基础算法
在图像分割领域,图割算法是一种强大的工具。Boykov 方法在初始增广时,通过同时从源点 $S$ 和汇点 $T$ 进行广度优先搜索来寻找最小成本路径。当两个搜索树相遇时,就找到了最小成本路径并进行流量增广。
与 Floyd–Fulkerson 算法不同,Boykov 方法在后续步骤中重用两个搜索树的网络。由于增广会导致至少一条边因饱和而被移除,至少一个搜索树会在该边处断开,那些不再与 $S$ 或 $T$ 相连的节点被称为孤立节点。
在恢复步骤中,会尝试将孤立节点重新连接到它们原本所属的搜索树。虽然不一定能保证最小成本属性,但源点和汇点之间的新流量得以恢复。然后确定该路径上的瓶颈边,进行流量增广,并相应地更新残量容量图 $G_{residual}$。当无法确定路径时(即恢复步骤中孤立节点仍未连接),该过程终止。
需要注意的是,上述算法假设边的权重为正,这在 (8.2) 到 (8.5) 的加权方案中很容易保证。对于给定图像,当权重改变时,图割的计算需要重新开始。不过,我们可以使用一个简单的技巧避免最大流的完全重新计算。例如,添加新的前景节点 $p_{frg,1},…,p_{frg,N}$ 时,边 $(S,p_{frg,i})$ 的流量容量会增加 $(K - \lambda) \cdot R_{bkg}(p_{frg,i})$,边 $(T,p_{frg,i})$ 的流量容量会减少 $-\lambda \cdot R_{frg}(p_{frg,i})$。如果相应地改变边 $(S,p_{frg,i})$ 和 $(T,p_{frg,i})$ 在残量容量图 $G_{residual}$ 中的残量容量,就可以继续使用之前的
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



