閱讀筆記----Graphcut Textures-Image and Video Synthesis Using Graph Cuts

Graphcut Textures-Image and Video Synthesis Using Graph Cuts

算法分爲兩塊:1.從候選矩形中根據比較候選塊與已輸出的像素進行比較,選擇一個合適的塊 2.從矩形先選出最優部分(不規則的形狀),僅這一部分選入輸出圖。

其中取一個塊的部分需要用到圖割算法,是本算法的核心。

Seam是接縫,offset是相對左上角原點的偏移量。

 

通過圖割選出塊中合適區域

在接縫時,使用一個較小的塊(block),如32*32.

第一個塊(block)隨機放,第二個塊(block)與之前的塊重疊這放,兩個塊重疊部分爲4或8個像素寬度。

爲了將這個問題轉化成圖割問題,首先需要選取一個匹配兩個塊(patch)像素質量的方法。舊的塊(patch)即輸出圖,新的塊(patch)即輸入圖。最簡單的手段即使比較兩個塊(patch)重相鄰像素對之間的顏色差異作爲標準。

S,t是相鄰的像素,A,B分別表示舊塊(patch)新塊(patch)。

自上而下找到一條低損失的路徑。即M最小。切斷的地方要算M。

A與1、2、3像素之間權重無窮大,表現爲1、2、3像素必須來自A塊。

 

當輸出圖像的一個區域內已經有多個塊(patch),並且有潛在可見的接縫,若有一個新的塊(patch)要加入時,舊的接縫可能會被改變。

A,B爲已有的塊,新進來一個C,可能會更新AB接縫。

在老的接縫處插入新的接縫節點s1,s2,s3,s4,並將新的節點連向新的塊(patch)。計算M,1到s1的損失函數M(1,4,A1,B4)(只在4被分配到B時計算),s1到4的損失函數M(1,4,B1,A4)(只在1被分配到B時計算)。但是我個人認爲在這裏1是不可能歸到B去的,因爲1到A的權重爲正無窮。圖片和文字沒有對應。

如果接縫節點和B的路徑被切斷,說明舊的接縫未被改變。

如果s1與B的路徑未被切割,說明舊的接縫被改變。

如果一個接縫節點與相鄰像素被分割,說明有一個新的接縫在同一位置,並且一個新的損失函數需要被加入到最終損失量中。

對於接縫節點之多一條邊可以被割,爲了滿足度量的三角不等式規則

 

其實不只重疊一個邊界,在這個算法中嘗試在整個區域中已經被早期塊(patch)放置的像素覆蓋區域中放一個新(patch)的塊很常見。這樣做的目的是用新的塊覆蓋潛在可見的接縫。

圖中大的淺色方塊是已經輸出的像素塊A,深色小的方塊是新來的塊(patch)B,可以看到其覆蓋了舊的接縫,重新定義了新的接縫。

 

 

選取候選塊(即選取合適的偏移位置)

1隨機放置 2整塊匹配 3子塊選取

限制條件:只選取未被選過的偏移位置

此外對於2和3需要先在當前輸出中找到一個需要大量改進的區域。

用現存的接縫的損失量量化特定區域的誤差,然後選擇誤差最大的區域。

當選出這種區域後,強制選塊(patch)算法選出來的塊(patch)完全重疊這個區域。當輸出圖未被完全初始化時(即還未被塊完全覆蓋時),選出來的誤差可能包含空白區域。包含了不同的目的:擴展紋理區域,以及和初始化部分的結構保持一致。

 

1.隨機放置

一個新的塊(patch)(整張輸入圖像)被隨機放到一個偏移位置。使用圖割算法選取合適部分放入到輸出圖中,重複此方法。

 

2.整塊匹配

找到與當前合成輸出圖中誤差區域最匹配的部分,併合成輸出。

計算並規範化方差和,公式如下:

其中I,O表示輸入輸出圖,p爲像素位置,t爲偏移位置,At表示偏移後的輸入圖與輸出圖的重疊部分。

 

通過C(t)求概率函數

其中σ 是標準差,k控制選擇的隨機性,k越小越準確與C有關,k越大越隨機。

 

3.子塊(sub-patch)匹配

先選一個小的子塊(sub-patch)(一般來說小於輸入圖像)從輸出圖中選

在實現過程中,這個子塊(sub-patch)略大於或等於誤差區域大小。

從輸入圖中找與這個輸出圖像子塊(sub-patch)匹配的子塊(sub-patch)。

並且通過偏移,使他們重合。

損失函數爲:

其中So表示輸出圖像子塊(sub-patch)。

然後用同(3)的概率函數。

 

拓展

更改損失函數

  1. 未考慮頻率,通常接縫更多的分佈在低頻部分(平滑區域)

通過計算水平垂直梯度表現

重新定義:

d表示像素s、t的方向 表示A沿d方向的梯度

 

羽化和多分辨率拼接

當沒有一個好的接縫時,可以羽化(通常使用高斯核)接縫處像素,使其逼真。

提前找出會與接縫相遇的偏移塊(patch),通過高斯覈對其進行羽化,再去計算P(s)公式3.

另外使用多尺度拼接,可以讓接縫不那麼明顯,但是會降低對比度。

 

用快速傅里葉變化加速

將(4)重寫爲上式。

前兩項可以通過區域求和表(summed-area tables),最後一項用FFT。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章