劉世光, 宋志超
(天津大學 計算機科學與技術學院,天津 300350)
圖像表觀遷移旨在使目標圖像能擁有和源圖像盡可能相似的視覺表觀.人們對一幅圖像表觀的感知,往往包括顏色、紋理以及光照等多個方面.傳統的顏色遷移方法[1]考慮圖像的顏色信息,可以成功地將源圖像的顏色風格遷移到目標圖像上,例如天空的顏色、草地的顏色等.但早期的顏色遷移方法,僅僅著眼于對整幅圖像的處理,當顏色分布的差異過大時,便無法得到理想的顏色遷移結果.之后,研究者提出了許多局部顏色遷移方法[2].但顏色遷移方法只考慮圖像間的顏色信息,并不能在目標圖像中生成需要的新內容.紋理遷移考慮圖像的紋理信息,可以將源圖像中指定的紋理遷移到目標圖像中,但紋理遷移會覆蓋原來的像素,從而破壞圖像的原本結構.近年來,Okura等[3]提出了一種結合顏色和紋理信息的圖像表觀遷移方法. 該方法利用基于塊的匹配技術來建立圖像間表觀遷移的對應關系,需要源圖像和目標圖像視覺相似,而且需要額外的樣本圖像作遷移源.當用戶無法提供滿足需求的源圖像和樣本圖像時,該方法要求用戶通過Photoshop軟件進行手動分割,這大大限制了實際應用,而且該表觀遷移方法使用單一的遷移源,難以應對復雜圖像的表觀遷移任務.
為了解決以上問題,筆者提出一種新的基于編輯傳播的多源圖像表觀遷移方法.用戶通過基于編輯傳播的筆畫交互系統,將多源圖像中需要的顏色或紋理信息遷移到目標圖像中.筆者提出了一種新的筆畫自動修正方法來保證筆畫只覆蓋用戶感興趣的像素,可以得到更好的編輯傳播效果.最后利用顏色遷移和紋理遷移技術,將需要的顏色或紋理信息遷移到目標圖像中.該方法結合了編輯傳播和表觀遷移方法的優點,為用戶提供了一種方便、充分的圖像表觀遷移方法.
傳統的表觀遷移方法包括顏色遷移方法、紋理遷移方法及同時結合顏色遷移和紋理遷移的方法.
顏色遷移方法主要可以分為3類[4]:基于幾何的顏色遷移方法[2]、基于統計信息的顏色遷移方法[1,5-6]和基于用戶交互的顏色遷移方法.Reinhard等[1]首次提出使用高斯模型和變換矩陣進行圖像顏色遷移的方法,該方法簡單高效,但是當兩幅圖像的顏色分布差異比較大時,無法得到自然的顏色遷移結果.Pouli等[7]提出一種漸進的顏色遷移方法,利用直方圖匹配使源圖像和目標圖像擁有相似的顏色風格.Nguyen等[8]提出一種基于色域的顏色遷移方法,將遷移的色域控制在參考圖像的色域范圍內,使結果與源圖像顏色風格更加相似.Huang等[9]提出一種基于移動最小二乘法的顏色遷移方法.
紋理遷移[10]指通過合成新的紋理,使兩幅圖像有類似的表觀.基于樣圖的紋理合成[11]是紋理合成中的主流技術.趙進超等[12]提出了一種Hadoop的紋理特征提取方法.Bonneel等[13]使用紋理遷移去增強3D模型的表觀.Okura等[3]首次提出一種顏色遷移和紋理遷移結合的表觀遷移方法.筆者與該方法類似,同時考慮顏色和紋理信息,結合了兩種方法的優點.
Guo等[14]提出了一種基于多標簽決策樹的多源顏色遷移方法.但該方法需要大量源圖像作為訓練集,而且無法使用用戶指定的源圖像作為遷移源,降低了使用的靈活性.Yao等[15]提出了一種基于選擇性的多源圖像顏色遷移方法.該方法的選擇策略旨在得到更加自然的遷移結果,但在很多情況下并不滿足用戶的需求.
近年來,基于筆畫的編輯傳播技術得到了廣泛的研究.用戶只需要用簡單的筆畫標記,并為筆畫指定編輯參數,這些編輯信息就會自動傳播到圖像中其它的相似區域.Levin等[16]提出了第一個編輯傳播框架,并完成灰度圖像著色工作.之后,有研究者提出了全局的編輯傳播框架[17].An等[18]在編輯傳播中引入了參考圖像來提供編輯信息.然而,所有的編輯傳播方法都假設用戶的筆畫標記是精確的,即筆畫只覆蓋用戶感興趣的像素,當筆畫標記不滿足該假設時,會直接影響最后的傳播結果.因此,Subr等[19]和Sener等[20]分別提出了解決這個問題的方法.但是,由于這兩種方法都利用馬爾科夫隨機場,導致計算復雜度過高.筆者利用編輯傳播的特點,設計了一種簡單有效的筆畫自動修正方法.對筆畫標記進行分析處理后,將得到的精確筆畫用于編輯傳播中,得到了更好的傳播效果.
圖1為筆者方法的流程圖.用戶提供一幅待處理的目標圖像和多幅源圖像,并使用筆畫在圖像的感興趣區域上進行標記.筆畫修正過程中,目標圖像中的紅色方框標記的粉色筆畫因不滿足要求而被修正.編輯傳播過程將編輯傳播結果中與筆畫標記相似的區域用相同的顏色顯示.遷移源選擇過程將遷移源和目標區域的掩碼一一對應起來.最后為表觀遷移過程,通過顏色遷移和紋理遷移技術將源圖像中黃綠鮮亮的草地和白云藍天遷移到目標圖像中,得到最終的表觀遷移結果.

圖1 本算法基本流程Fig.1 The flow chart of our method
3.1.1 筆畫標記和筆畫自動修正
筆者在編輯傳播之前先采用一種筆畫自動修正的方法對用戶標記的筆畫進行分析和修正.使用K-means對圖像進行顏色聚類,得到K個顏色的聚類,使圖像中每個像素都獲得一個顏色聚類的編號.記Ω={p}θ為筆畫θ覆蓋的像素的集合,Nθ為筆畫θ所含的顏色的種類.筆畫的自動修正主要基于以下兩個原則:①如果一個筆畫覆蓋的像素包含所有K個顏色聚類,則該筆畫標記無效;②每一個筆畫覆蓋的像素中包含的顏色盡可能地少,并且不同筆畫之間所含顏色的差距盡可能大.
對于第一個原則,可以由以下公式來表示:
(1)
式中:如果P(θ)=0,則表示該筆畫無效;如果P(θ)=1,則表示該筆畫為有效的標記.無效的筆畫不會作為下一步編輯傳播的輸入數據.
為了保證第二個原則,筆者先確定每個筆畫覆蓋的所有像素的主要顏色,即Ω={p}θ中出現次數最多的顏色,記為CΩ.已經作為一個筆畫主顏色的顏色不能再作為另一個筆畫的主顏色.然后,刪除那些出現概率小于30%的顏色.圖2(a)為原始用戶筆畫標記,(b)為自動修正后的筆畫標記.其中,紅色矩形框標記了淺綠色筆畫修正前后的結果.

圖2 筆畫自動修正與編輯傳播Fig.2 Automatic modification and edit propagation of strokes
3.1.2 編輯傳播
編輯傳播技術使得圖像像素在相似顏色處接受類似的編輯.將編輯傳播作為一個最優化的問題,其中用戶筆畫標記g作為傳播結果e的約束,最小化以下能量方程[16]:
∑i∑jwjzij(ei-gj)2+λ∑i∑jzij(ei-ej)2,
(2)
zi,j= exp(-‖fi-fj‖2/σa)·exp(-‖xi-
xj‖2/σs),
(3)
式中:zi,j表示像素i和像素j之間的親和力,衡量像素i和像素j的特征向量fi和坐標xi的相似度;fi為像素i的特征向量,包含其三個通道的顏色信息和位置信息;fj為像素j的特征向量,σa和σs為編輯傳播的控制參數;gj為被筆畫覆蓋的像素j的值;ei為像素i受到編輯后的結果;λ為兩項的權重系數.wj∈[0,1],如果像素j被筆畫標記,則wj=1,未被標記,則wj=0.式(2)表示為兩項的和,其中第一項是為了保證編輯傳播后像素的值e滿足用戶筆畫給定的像素編輯值g,第二項保證最終結果中相似的像素可以得到相似的編輯,通過最小化式(2)得到編輯傳播的結果.
編輯傳播的效果主要由λ、σa、σs3個參數控制.試驗中,設置λ=∑iwi/n,σa=0.2,σs=0.12.因為直接將筆畫的顏色作為指定的編輯進行傳播,所以在編輯傳播的結果中與筆畫標記相似的區域以相同的顏色顯示.圖2每幅圖右下角的小圖為相應筆畫標記的傳播結果.從圖2中可以看出,經過筆畫修正后的方法可以更好地將圖中的花朵和莖葉區分開.
筆者使用SSIM(結構相似性指標)來衡量源圖像和目標圖像的相似性.SSIM值越大表示兩幅圖像越相似.最大為1,此時表明兩幅圖像完全一樣.SSIM的計算公式如下:
(4)
式中:μx和μy、σx和σy分別為像素x和像素y的均值和標準差;σxy為像素x和像素y的相關系數.為了避免分母為0,設C1和C2為非零常數.最后使用兩幅圖像的SSIM均值(MSSIM)衡量兩幅圖像的相似性.
為了實現更加充分的表觀遷移,筆者同時考慮顏色和紋理這兩類表觀信息. 某一組對應的遷移源和目標區域要判斷對其進行顏色遷移還是紋理遷移.這里可以采用自動的方法,規定紋理較豐富的對應區域間進行紋理遷移,紋理不豐富的進行顏色遷移.筆者考慮到用戶可能需要將某些紋理遷移到目標圖像中紋理并不豐富的區域.例如,將多云的天空遷移到晴朗無云的天空中.自動方法并不能滿足用戶的需求,所以筆者通過用戶指定遷移的類型,然后通過顏色遷移和紋理遷移得到最終的表觀遷移結果.
3.3.1 顏色遷移
通過編輯傳播得到筆畫標記的相似區域后,就可以在對應的區域間進行顏色遷移.利用Reinhard等[1]提出的基于統計的顏色遷移方法.將源圖像和目標圖像轉換到lαβ顏色空間,對3個通道分別進行顏色遷移,然后合并得到顏色遷移結果.遷移公式如下:
(5)
式中:ct為目標圖像中某一像素的值;co為顏色遷移后該像素的值;μs和μt分別為源圖像和目標圖像某一通道的均值;σs和σt為對應通道的標準差. 通過式(5)將目標圖像的顏色分布線性變換成與源圖像相似的分布.
對上一步得到的對應區域進行顏色遷移,因此,需要分別計算對應區域中各通道下的均值和標準差,然后利用式(5)完成局部顏色遷移.
3.3.2 紋理遷移
本節將多源圖像中指定區域的紋理遷移到目標圖像中.紋理遷移將區域S處的紋理遷移到目標區域T中.采用由粗到精的迭代方法,將紋理遷移作為一個基于塊的最優化問題,最小化下面關于S和T的能量方程[21]:

(6)
式中:Q=N(q)是一個左上角為像素q的大小為ω×ω的塊.記f為一個變換操作,包括平移、旋轉、縮放以及投影變換.將f作用于像素p周圍的一個鄰域N,因此P=f(N(p))也是一個大小為ω×ω的塊.每個塊都有5個通道:包括lαβ顏色空間下的3個顏色通道和每個像素處光照的2個梯度通道.在式(6)中為了方便表示, 用Q(或P)代表該塊的3個顏色通道;Q(或P)代表2個光照梯度通道;參數λ′為梯度通道的權重系數;D用來計算所有通道的距離平方和.能量方程的兩項分別確保遷移后的塊出現在和原來塊中最相似的塊周圍.筆者使用5×5大小的塊,并設置梯度權重λ′=0.2.
筆者采用C++和Opencv 2.4.8實現編程.所有試驗在如下配置的計算機上進行:Intel? CoreTMi5-4460處理器,NVIDIA GeForce GTX 745 M顯卡,8 GB內存(RAM).
圖3為單源圖像時筆者的方法與已有表觀遷移方法的對比.Reinhard等[1]和Pouli等[7]的方法可以成功地將源圖像中天空的顏色遷移到目標圖像中,但是由于這兩個方法只考慮了圖像的顏色信息,并不能將源圖像中的樹和草地的表觀也同時遷移到目標圖像中.Okura等[3]的方法同時考慮了顏色和紋理信息,但是受限于塊匹配方法的精度,該方法并不能準確地得到需要進行紋理遷移的區域,從而難以得到自然的紋理遷移結果(如圖3中紅色矩形框標記的區域).筆者通過編輯傳播技術提高了區域分割的準確性,可以得到更加自然的紋理遷移結果.文獻[3]的天空中出現了灰蒙蒙的效果,這種不自然的現象也沒有出現在筆者的結果中.
圖4和圖5為筆者方法的試驗結果.從試驗結果可以看出,在表觀遷移中結合顏色和紋理信息,利用兩種方法的優點,能夠得到更加充分的表觀遷移結果.而筆者提出的基于編輯傳播的交互系統,很好地支持了這種遷移過程.

圖3 表觀遷移結果對比Fig.3 Comparisons of appearance transfer results among different methods

圖4 單源表觀遷移結果Fig.4 The appearance transfer results with a single source image

圖5 多源表觀遷移結果Fig.5 The appearance transfer results with multiple source images
筆者使用Bhattacharya系數來衡量表觀遷移結果與源圖像的相似性.試驗中,我們將彩色圖像變換到HSV顏色空間下,計算H通道和S通道的二維直方圖,通過計算直方圖間的Bhattacharya距離,來衡量兩幅彩色圖像的相似性.Bhattacharya系數值越小表示兩幅圖像的相似性越高.圖3(b)~(e) 和源圖像的Bhattacharya系數分別為0.762、0.508、0.514和0.421.可以看到,筆者的表觀遷移結果和源圖像的Bhattacharya系數值更小,即筆者的表觀遷移結果和源圖像的相似性更高.表1為圖4中表觀遷移前后目標圖像與源圖像的Bhattacharya系數.可以發現,經過筆者的表觀遷移,可以使目標圖像與源圖像更為相似.

表1 表觀遷移前后Bhattacharya系數對比(圖4)Tab.1 Comparison before and after appearance transfer in terms of Bhattacharya coefficient (Fig.4)
提出了一種基于編輯傳播的多源圖像表觀遷移方法.該方法結合了編輯傳播和表觀遷移的優點,使用戶可以方便地完成對目標圖像的表觀遷移.一方面,通過自動筆畫修正方法得到精確的筆畫標記,可以更好地建立目標圖像和源圖像間的對應關系.另一方面,將表觀遷移推廣到多源領域,可以滿足用戶對復雜圖像的遷移需求.
筆者的方法適用于大部分圖像表觀遷移,但是仍有一些限制.使用基于統計的顏色遷移方法,如果用戶指定兩個顏色風格差異很大的子區域間進行遷移,將產生不自然的結果,這一點可以通過使用基于其他策略的顏色遷移方法來改進,使得編輯傳播效果更為準確.隨著紋理遷移的方法的發展,筆者方法的遷移效果也會得到進一步改善,此外,筆者也將嘗試采用深度卷積神經網絡解決圖像表觀遷移問題.