1. 程式人生 > >Alpha-expansion and Alpha-beta-swap Algorithm Flow

Alpha-expansion and Alpha-beta-swap Algorithm Flow

簡介

主題:採用圖割方法解決視覺問題中常見的能量最小化問題
主要參考文獻:Fast Approximate Energy Minimization via Graph Cuts, Cornell University, Boykov, Veksler, Zabih, IEEE PAMI 23(11), pp 1222ff, 2001
在諸多視覺影象問題中,研究人員最後都能將其歸結為最小化一個能量函式的問題,很多文獻中都引用這篇文章:Fast Approximate Energy Minimization via Graph Cuts,該文章在 google scholar 上顯示截至目前引用超過5k+。該文章中介紹了兩種採用圖割來解決能量最小化問題的演算法: α

-expansion and α-β swap algorithms。
下面本文通過拜讀並翻譯原文,加上個人理解試著弄清楚這兩個演算法的來龍去脈,如有錯誤敬請指出。

計算機視覺中的能量最小化問題描述

在計算機視覺領域中,我們經常需要估計一些在空間(畫素平面)上變化的量,例如影象灰度、視差大小等。這些量都有著共同的特徵:分塊平滑(piecewise smoothness)。分塊平滑意味著兩個方面:這些量在塊的內部變化平滑,在塊與塊之間(物體邊界)變化很大。對每一個畫素點 pP 我們都需要給定一個標籤(label)fpL,也就是將每個畫素對映到標籤集中的某個標籤上,這裡標籤函式(對映) f

不僅需要滿足分塊平滑的特點而且需要和觀測到的資料一致。
基於以上想法,這些視覺問題就可以表達成以下尋找標籤函式 f 以求能量最小化的形式:

E(f)=Esmooth(f)+Edata(f),
在這裡 Esmooth(f) 表達的是 f 分塊不平滑的程度,Edata(f) 表達的是標籤函式 f 與觀測到資料的不一致性。Edata(f) 的一般形式是:
Edata(f)=pPDp(fp),
其中 Dp 來度量標籤與觀測資料的一致性,例如在影象恢復中 Dp(fp)=(fpip)2 ,其中 ip 表示在畫素點 p 處的灰度值,在這裡 Edata(f) 並不是重點。
平滑項 Esmo
oth
才是關鍵所在
。為了在邊界處得到較好的效果,我們選擇一種“非連續性保留”(discontinuity-preserving) 函式(參考分塊平滑兩項性質)。
由於能量最小化是非凸優化問題,具有很多區域性極小值,並且解空間有 |P| 維,因此解這種能量最小化問題最大的障礙就是巨大的搜尋空間。模擬退化法可以優化任意能量函式,但是通常計算非常緩慢。
在這篇文章中主要考慮的平滑項具有以下形式:
Esmooth={p,q}NVp,q(fp,fq),
這裡 N 表示的是相鄰的畫素對集合。Vp,q(fp,fq) 表示畫素對 {p,q} 在標籤函式 f 下生成的標籤 (fp,fq) 之間的距離(相似度、平滑程度)。在某些特殊情況下這種能量形式是能夠精確的最優化,這裡不展開,一般來說,這個問題是 NP 難問題。
該論文中提出了兩種對任意有限大小的標籤集 L 進行近似能量最小化的演算法:α-expansion and α-β swap,分別針對兩種互作用勢(interaction potentials):度量(metric)、半度量(semi-metric)。V 在標籤空間 L 上滿足下面兩個條件時才稱之為半度量:對任意一對標籤 α,βL ,都有 V(α,β)=V(β,α)0V(α,β)=0α=β. 如果 V 對任意的 α,β,γL 還滿足三角不等式:
V(α,β)V(α,γ)+V(γ,β)
那麼我們就稱 V 是度量的。需要注意的是不論是度量還是半度量互作用勢,都包含重要的“非連續性保留”的互作用勢。這個特性在後續證明中是會用到的,也說明了兩種演算法分別適用的情況。

採用圖割來最小化能量

對所面臨的問題進行了簡單的形式化的描述後,我們下面就會採用一種圖割的方法來求解這個問題。總體思路是每一次 expansion(swap)調整一(兩)個標籤來使得能量函式下降,遍歷所有標籤(組合)直至能量函式在所有的一次 expansion(swap)調整標籤中不能下降,演算法停止,達到區域性最優。

分割和移動空間

每一個標籤對映函式 fpL 與影象分割方式是一一對應的關係,而 fp(後簡寫為 f) 是能量函式的自變數,因此我們可以稱所有可能的 f 的取值所組成的集合為操作空間或移動空間,用數學描述如下:
任意一種標籤方式 f 都能通過畫素的一個分割來表示: P={Pl|

相關推薦

Alpha-expansion and Alpha-beta-swap Algorithm Flow

簡介 主題:採用圖割方法解決視覺問題中常見的能量最小化問題 主要參考文獻:Fast Approximate Energy Minimization via Graph Cuts, Cornell University, Boykov, Veksler, Za

2018.3.10 bellman-ford algorithm, floyd-warshall algorithm and johnson's algorithm

需要 for 出現 man LG 循環 基礎上 問題: 是我 這周還是繼續dynamic programming,不過回到了圖算法,因為之前講圖算法的時候還沒有講到動態規劃,而這三個算法要麽本身是動態規劃算法,要麽要用到動態規劃算法。 1.bellman-ford是一種求無

Cantor expansion and deCantor expansion

Cantor expansion is a way to use the Full Permutation and the id in the Permutation.In this way to map the id and the permutation,we can create a easy hash

Encrypt and Decrypt by AES algorithm in both python and android

我想在 python 把敏感的資料先加密,傳給Android 後在Android裡解密,在stackoverflow 上面找到這一個範例,滿神奇的,程式碼貼進 python 和 android 就可以跑了,而且可以互相加/解密沒問題。 我的執行畫面: 上面 terminal 是 python 的執行結

AWS AppSync region expansion and new features for API keys

AWS AppSync, a managed GraphQL service with offline and real-time data capabilities, recently launched a set of new features. Following up on thes

2015_DNN-Based Speech Bandwidth Expansion and Adding High-Frequency Missing Features Narrowband Speech

論文全名:DNN-Based Speech Bandwidth Expansion and Its Application to Adding High-Frequency Missing Features for Automatic Speech Recognition of Narrowband Spee

Announcing source{d} Engine beta for Code Retrieval and Analysis and source{d} Lookout Alpha for…

Announcing source{d} Engine beta for Code Retrieval and Analysis and source{d} Lookout Alpha for Assisted Code ReviewToday we’re excited to announce the pu

擴增子分析解讀6進化樹 Alpha Beta多樣性

temp 沒有 深度 比較 標準 www. fas oge seq 分析前準備 # 進入工作目錄 cd example_PE250 上一節回顧:我們的OTU獲得了物種註釋,並學習OTU表的各種操作————

關於版本號:alphabeta、rc、stable

版本 pos rtm 命名 tail 甚至有 改版 圖案 使用 定義好版本號,對於產品的版本發布與持續更新很重要; 但是對於版本怎麽定義,規則如何確定,卻是千差萬別。具體應用,可以結合自己目前的實際情況命名; 很多軟件在正式發布前都會發布一些預覽版或者測試版,

關於BETA、RC、ALPHA、Release、GA等版本號的意義

正式版 之前 很多 外部 and pac 字母 ability 說明 關於BETA、RC、ALPHA、Release、GA等版本號的意義 轉載 2016年06月19日 00:04:00 2049 0 1 . 最近由於工作需要經常要去SVN上拉開源項目的源碼,對項目

軟件版本中的Alpha,Beta,RC,Trial是什麽意思?

pac 數字 big eve utf8 ria 未註冊 授權 spa 版本號:V(Version):即版本,通常用數字表示版本號。(如:EVEREST Ultimate v4.20.1188 Beta )Build:用數字或日期標示版本號的一種方式。(如:VeryCD eM

項目管理: Alpha,Beta,RC,GA,Release

eval general 性能 rdquo 出現 允許 功能 ctu bug Alpha: Alpha是內部測試版,一般不向外部發布。也可以認為是演示版本。允許存在一定的問題(例如功能組合、異常流程處理、穩定性、性能存在部分問

K 班1-7,alpha,beta 作業成績匯總

mark down blog 技術分享 mar tab eve 5.4 9.1 K 班1-7,alpha,beta 作業成績匯總 千帆競發 詳細得分 短學號 名 1 2 3 4 5 6 7 alpha beta TOTAL 505 基智 4.55 1 -2

關於UI設計的心得體會-alphabeta交界期間

重點 又能 基礎上 功能 例如 行為 有一點 註意 一起 經過了一段時間大作業的進行,我不斷刷新著自己對UI設計的認識和體會,現總結如下。 UI即User Interface,即用戶界面,在我剛剛接觸它時,我曾經把它和“版式”、“視覺設計”等同,後來我發現這

POJ Find the Winning Move【minmax搜索+alpha-beta剪枝】【北大ACM/ICPC競賽訓練】

目前 剪枝 find 最大 namespace row 競賽 move icpc 1 #include<iostream> 2 using namespace std; 3 4 int row,col,chess; 5 char bo

軟體版本alphabeta、gamma等

軟體版本alpha、beta、gamma等 alpha 內測版,指開發團隊內部測試的版本或者有限使用者體驗測試版本 beta 是指公測,即針對所有使用者公開的測試版本。主要是看使用者對軟體外觀,使用方便等的反映。 如果beta1版使用者反映有問題,拿到公司修改,改

【轉】AlphaBeta、RC、GA版本的區別

http://www.blogjava.net/RomulusW/archive/2008/05/04/197985.html Alpha:是內部測試版,一般不向外部發布,會有很多Bug.一般只有測試人員使用。 Beta:也是測試版,這個階段的版本會一直加入新的功能。在Alpha版之後推出。 R

Ubuntu Linux 以“測試周”取代 Alpha,Beta 釋出模式

開源技術專案最大的優勢之一就是社群的每個人都可以自由地提出想法,如果獲得社群支援,它可以變成現實。著名的 Ubuntu 開發人員 Simon Quigley 就提出了一個可能改變 Ubuntu Linux 開發過程的想法。 最近的一些發展狀況讓 Simon 開始質疑當前里程碑釋出模式

專案管理小知識——Alpha版本,Beta版本

1. 軟體版本階段說明 * Alpha版: 此版本表示該軟體在此階段主要是以實現軟體功能為主,通常只在軟體開發者內部交流,一般而言,該版本軟體的Bug較多,需要繼續修改。 * Beta版: 該版本相對於α版已有了很大的改進,消除了嚴重的錯誤,但還是存在著一些缺陷,需要經過多次測試來進一步消除,

leetcode 486. Predict the Winner (Alpha-Beta剪枝實現關鍵點小總結)

題意 小的博弈遊戲,兩個人輪流從一個數組的兩端取數,直到取完,最後取的和最大的人獲勝。問先手能否贏?其中如果和相同,先手勝。 思路 首先如果有偶數個元素,先手必勝,這個可以參考leetcode 877題求解思路,證明連結 奇數個的時候就沒有這麼好的