王榕榕 徐樹公 黃劍波
(1. 上海大學上海電影學院, 上海 200072; 2. 上海大學上海先進通信與數據科學研究院, 上海 200444;3. 上海大學上海電影特效工程技術研究中心, 上海 200072)
圖像摳圖是將圖像中的目標前景物體從背景圖像中分割出來的技術, 是圖像融合、圖像增強復原等圖像編輯技術的基礎. 隨著數字圖像領域的不斷發展與成熟, 圖像摳圖技術已經廣泛應用于日常生活、影視制作、廣告宣傳等領域[1]. 手機、平板等移動端設備也推出了一些集成摳圖功能的APP 應用[2], 以滿足人們的日常需求.
傳統的摳圖算法通常根據顏色、紋理等低級特征從已知確定像素部分推測出不確定像素部分, 而沒有利用高級語義信息, 這些方法并不適用于前背景顏色相似或者紋理復雜的圖像,逐像素的處理方式也需較長時間, 而在日常應用場景中, 往往對摳取前景有高質量要求和快速處理大量圖像的要求, 傳統圖像摳圖方法難以滿足實際應用需求.
近年來, 隨著深度學習理論不斷完善和網絡大數據爆發時代的到來, Russakovsky 等[3]建立了ImageNet大型數據集, 該數據集依賴于大數據集的卷積神經網絡, 在計算機視覺、自然語言處理等領域顯示了強大生命力. 圖像摳圖與深度學習的結合也受到了廣泛關注, 深度卷積神經網絡的強大擬合能力, 能有效提取前景與背景之間的結構信息、語義信息, 因而不完全依賴于簡單的顏色信息, 從而獲得更好的摳圖效果.
基于深度學習的摳圖算法相比于傳統算法在生成α圖的質量上有了很大的提升, 本工作在原有深度學習摳圖算法基礎上, 根據摳圖任務的特點做了相應的改進, 使得最終網絡輸出的α圖在細節上有更好的預測結果.
圖像摳圖的核心在于將圖像中的前景物體和背景部分分離, 一張圖像可以看作是前景圖像和背景圖像中的顏色按照一定權重(α透明度)結合[4]:

式中:Ii為像素塊i的RGB 色彩值;Fi和Bi為前景圖像和背景圖像.
于是, 摳圖任務就可以轉換為求解上述方程中的α值, 即由Porter 等[4]首次提出的α通道, 表示前景與背景的混合比例. 但從像素層面來說, 前景圖像和背景圖像都包含R、G、B這3 個未知量, 則式(1)中有3 個已知量(原圖的R、G、B值)和7 個未知量(前景圖像和背景圖像的R、G、B值以及α值), 由于一個約束方程顯然是無法解出α值的, 故需要添加額外的輔助信息, 如三元圖(trimap)和草圖(scribble)(見圖1). 其中使用最為廣泛的是三元圖, 包含有確定的前景像素值部分(如圖1(b)中白色部分)、確定的背景部分(如圖1(b)中黑色部分)和前背景結合的不確定部分(如圖1(b)中灰色部分).

圖1 輔助信息Fig.1 Auxiliary information
目前, 圖像摳圖方法主要有3 類: 基于采樣、基于傳播和基于深度學習.
(1) 基于采樣. 在三元圖標記的前景背景區域中為每個未標記像素選取候選樣本集合, 再在其中選擇合適的前景背景樣本點對. 例如, Robust matting 法[5]會構建一個較大的候選樣本集合, 在計算未知像素點的α值時, 從樣本集合中選出相似度較高的幾對樣本點對, 計算其α值來作為該未知像素的α值.
(2) 基于傳播. 在未知像素點周圍局部小范圍像素內, 通過具有相似性的已知像素點的α值的加權來估計該未知像素點的α值. 例如, KNN matting 法[6]選取未知像素高維特征空間中的前K個近鄰來計算α值, 相似性的確定依賴于顏色、距離和紋理特性; Closed-form matting法[7]假設局部顏色分布遵循線性模型, 在此基礎上構建了摳圖拉普拉斯矩陣, 證明了前景圖像的α值可以以封閉的形式進行求解.
(3) 基于深度學習. Learning based matting 法[8]中將摳圖問題看作一個半監督學習問題,用更通用的學習方法擬合顏色模型來求解α值. 不同于Closed-form matting 法中的局部顏色滿足線性模型的假設, 該方法引入核函數, 使預測α值更具有線性表達能力. 通過卷積神經網絡擬合能力來估計α值, 如DCNN matting 法[9]是第一個將摳圖任務和深度卷積神經網絡相結合的方法, 該方法將KNN matting 法[6]和Closed-form matting 法[7]計算輸出的α預測圖和RGB 圖像一起作為神經網絡的輸入, 以此融合局部與非局部的特征, 但整個網絡只包含6個卷積層, 無法獲得較好的擬合效果; 而Deep image matting (DIM)法[10]首次構建了可用于訓練神經網絡的摳圖數據集, 在VGG16 網絡基礎上搭建了2 階段深度卷積神經網絡, 學習圖像中的結構、顏色信息和語義信息等, 對α圖從粗到細進行估計以達到最優值.
本工作在DIM 法的網絡結構基礎上根據摳圖任務的特點進行了如下2 個部分的改進.
(1) 由于摳圖訓練集個體圖像之間差異較大, 易導致訓練網絡時的損失值產生較大振蕩, 并且存在收斂速度慢的問題, 因此在DIM 原網絡結構中的每層卷積層后面加上標準批量化(batch normalization, BN)層[11], 將網絡中的批訓練數據歸一化可有效防止過擬合, 加快模型收斂速度; 設置訓練時批量大小(batch size)為16, 代替DIM 訓練時的1, 此時反向傳播更新參數更符合數據集特性, 減少訓練時損失振蕩, 有更加穩定的回傳梯度.
(2) 由于預測的未知區域一般集中于前景物體邊緣部分, 故根據摳圖任務的特點, 將原網絡結構中的部分普通卷積層替換為可變形卷積(deformable convolution)層[12], 這樣可有效擴大感受野范圍, 卷積采樣點更集中于物體邊緣, 以獲得更好的細節處理效果.
整個摳圖網絡的具體結構如圖2 所示, 由原圖和與其對應的三元圖組成四通道輸入, 經過下、上采樣, 輸出為一通道α圖. 下采樣的特征提取網絡與VGG16 網絡類似, 可按特征圖大小變換分為5 個階段, 將VGG16 網絡中的最后一層全連接層替換為卷積層, 每個卷積結構都由卷積層、BN 層和Relu 激活函數組成. 針對摳圖任務的特點, 將第3~5 階段的2 個普通卷積層替換為可變形卷積層. 在下采樣的卷積層和可變形卷積層中, 卷積核大小均為3×3, 卷積時步長為2, padding 為1, 即在卷積前后不改變特征圖大小. 另外, 下采樣時使用最大值池化操作來丟棄冗余信息, 并保留最大值池化映射; 在上采樣時根據該映射進行反池化, 從而一步步擴大特征圖, 以此更好地保留和恢復邊緣信息; 在反池化層后接5×5 卷積核的卷積層, 將反池化后的稀疏特征圖通過卷積計算得到更為稠密的特征圖.

圖2 摳圖網絡結構Fig.2 Matting network structure
2.1.1 BN 層
神經網0絡的訓練主要是學習數據的分布. 在基于深度學習完成圖像摳圖任務時, 由于摳圖訓練集中各圖像差異較大, 又常設置batch size 為1 來進行訓練, 因此每次輸入網絡訓練數據的分布千差萬別, 網絡在每次迭代時需要進行大范圍的參數更新以適應不同分布的數據, 整個網絡在訓練時不穩定, 且收斂慢. 如果在卷積層之間加入BN 層, 對輸入卷積層的數據進行歸一化處理, 則可有效改善訓練過程中出現的不穩定、收斂慢等問題. 加入BN 層的具體公式為[11]

式中:m為批量輸入網絡的數據個數, 即batch size;xi為輸入數據;μB和σ2B分別為輸入數據的均值和方差; ^xi為歸一化后數據;γ和β為2 個可學習參數;yi為經過BN 層后的輸出數據.
由上述公式可以看出, BN 層的加入不僅使輸入數據進行了歸一化操作, 并且還引入了2 個可學習參數, 不影響網絡的非線性表達能力. 因此, 在摳圖網絡的每層卷積后都加入了BN層, 并且設置batch size 為16 進行訓練, 網絡是在小批量數據的基礎上進行參數更新, 更有利于網絡進行有效的學習數據分布, 同時也加快了網絡訓練速度和收斂速度, 穩定網絡訓練過程, 防止過擬合.
2.1.2 可變形卷積
普通卷積層一般采用1×1、3×3 或5×5 等大小不一的正方形卷積核, 對于不同的輸入數據都采用相同幾何結構和尺寸的卷積核進行卷積計算, 因為有固定大小的感受野, 網絡就無法根據輸入數據的不同, 自適應地迎合物體尺寸、形狀變換. 在原始卷積核的基礎上, 添加學習的2 維偏移量, 根據物體形狀進行調整, 偏移后的卷積核不再是固定形狀, 更符合實際輸入.以3×3 普通卷積核ω為例, 對于輸入圖像x在p0處的像素點, 卷積后得到y(p0)的具體公式[12]:

式中:R={(-1,-1),(-1,0),··· ,(0,1),(1,1)}, 即pn為p0處周圍3×3 范圍內的像素點位置. 而可變形卷積層在此基礎上加入網絡單獨分支學習到的卷積核偏移量, 則上述p0處卷積操作可變為

式中: Δpn為偏移值.
摳圖任務主要是預測三元圖中未知區域的α值, 而未知區域部分往往位于物體的邊緣部分, 因此卷積核形狀多變的可變形卷積層比普通卷積層更適合于進行摳圖任務. 通過迭代學習, 可變性卷積層使網絡能根據圖像前背景特性來自適應學習卷積核, 卷積區域也會始終覆蓋在物體形狀的相關區域, 從而有效地擴大感受野范圍, 更好地結合語義信息進行α圖的估計.
2.2.1 數據集合成
訓練使用的是DIM[10]構建的數據集, 其中包含訓練集的431 幅前景圖像、測試集的50 幅前景圖像.訓練集中的每幅前景圖像與100 幅不同的背景圖像通過α圖合成, 組成一個共43 100 幅圖像的合成訓練數據集, 測試集中的每幅前景圖像與20 幅不同的背景圖像進行合成,組成一個共1 000 幅圖像的合成測試數據集Composition-1k, 其中背景圖像來自目標檢測數據集COCO 2014 和VOC 2007, 具體合成流程如圖3 所示.

圖3 數據集的合成Fig.3 Process of compositing dataset
2.2.2 三元圖的生成
在摳圖算法中, 三元圖的輔助信息必不可少, 三元圖的輔助信息越精確則最后的摳圖結果越好. 訓練網絡所需的三元圖是通過α圖的腐蝕膨脹獲得, 三元圖生成過程如圖4 所示. 圖中,對α圖白色區域進行腐蝕操作得到腐蝕圖; 再對α圖白色區域進行膨脹操作得到膨脹圖; 將膨脹圖與腐蝕圖相減, 得到灰色未知區域; 將灰色未知區域與腐蝕后的白色區域相結合得到最終的三元圖. 通過設置不同腐蝕膨脹率, 可以獲得大小不同未知區域的三元圖. 本工作中腐蝕膨脹核為1~5 之間的隨機值, 迭代次數為1~20 之間的隨機值, 可有效提高摳圖網絡的魯棒性.

圖4 三元圖的生成過程Fig.4 Generation of trimap
2.2.3 模型訓練
訓練時使用如式(8)所示的損失函數, 計算預測的α圖和Groundtruth 圖(公開數據集提供的標準圖, 即α真實值)之間的差異:

式中:αp為預測的α圖;αg為Groundtruth;ε=1.0×10-6.
數據增廣是深度學習模型訓練時常用的技巧之一, 能在數據集數量有限的情況下增加訓練數據的多樣性, 提高模型的泛化性能. 在訓練摳圖網絡時采用的數據增廣方式有水平翻轉、平移、裁剪、色彩變換, 其中裁剪是以三元圖中的未知區域為中心, 進行一定大小的裁剪, 裁剪出像素為320×320、640×640 大小的圖像, 送入網絡進行訓練.
訓練時, 下采樣網絡采用經ImageNet 預訓練的VGG16 網絡參數進行初始化, 其中輸入卷積層的第4 通道采用全0 初始化, 可變形卷積層和上采樣網絡卷積層中的參數使用Xavier初始化, 設置batch size 為16, 迭代30 次, 學習率設置為0.000 01, 在第20 次迭代時減小學習率為0.000 001, 采用Adam 優化器進行梯度下降優化參數.
為了比較各方法優劣性, 本工作將幾種傳統方法和基于深度學習的摳圖方法在Compsition-1k 上進行了測試. 評測是基于Rhemann 等[13]提出的4 個常用指標, 即絕對誤差之和(sum of absolute difference, SAD)、均方誤差(mean squared error, MSE)、Gradient 和Connectivity, 其中SAD 是計算預測α圖和Groundtruth 各像素值之間的絕對誤差和; MSE計算預測的α圖和Groundtruth 各像素值之間的平均平方誤差. 單純比較二者之間的數值差異并不能全面衡量最終估計的α圖質量, 因此本工作另外加入了2 個評價指標Gradient 和Connectivity 來評估整體誤差, Gradient 指標主要計算二者的歸一化梯度差異, 預測的α圖和Groundtruth 越相似, 則該指標值越小; Connectivity 主要計算二者像素的連通性差異, 該指標值越小連通性越好,α圖上的斷點越少圖像質量越好. 具體數值結果如表1 所示.
從表1 數據可以看出: DCNN matting 是基于深度學習的方法, 但由于缺少大型的訓練數據集, 沒有發揮出卷積神經網絡的作用, 沒有在KNN matting、Learning based matting 和Closed-form matting 傳統方法的基礎上有較大提升; DIM 構建了摳圖數據集, 在摳圖評測結果上有了大幅度的提升; 在DIM 網絡基礎上加入BN 結構, 雖然在SAD 指標上略微有性能下降, 但在MSE 和Gradient 2 個指標上均有提升, 并且在實驗中網絡的收斂速度明顯加快; 用可變形卷積層替換普通卷積層在細節方面也獲得了更好的效果, 在4 個評測指標上均有提升,其中Gradient 指標從36.7 提升至29.6.

表1 幾種方法在Compsition-1k 測試集上的結果比較Table 1 Comparison results of several methods on Compsition-1k test set
幾種方法在Compsition-1k 測試集上的結果圖如圖5 所示. 從圖中可以看出,傳統方法幾乎不能在大片未知區域部分預測出圖像前景的α值, 如燈泡的球體部分以及蒲公英的觸須部分; DCNN matting 是基于深度學習的方法, 但從可視化結果圖中也可以看出, 預測結果仍不理想, 在圖像透明燈泡中的背景部分仍清稀可見; DIM 算法相比于傳統算法有較好的預測結果, 但細節部分仍有缺失, 如燈泡的燈芯部分. 從實驗結果可以看出, 在DIM 結構基礎上加入了BN 層和可變形卷積層, 細節部分有了更精確的預測, 生成的α圖也有更高的質量.

圖5 幾種方法Composition-1k 測試集上的部分結果Fig.5 Partial results of several methods on Composition-1k test set
表2 為幾種方法在相同圖像上的平均行計算時間, 其中DIM 和本方法是在GPU 2080 Ti 上計算所得. 由表2 可見, 基于深度學習的方法對于相同圖像的計算遠快于如KNN matting 等傳統算法. 由于DCNN matting 輸入包含KNN matting 和Closed-form matting 的結果, 故此處未進行運行時間的比較, 因為本方法用可變形卷積層替換普通卷積層引入了更多參數, 從而在運行時間上略慢于DIM, 但本方法在摳圖結果上有更高的質量.

表2 幾種方法運行時間比較Table 2 Comparison of running time of several methods
本工作提出了一種基于深度學習的摳圖方法, 根據摳圖任務的特點, 在原有下、上采樣結構中的每層卷積層后加入了BN 層, 并且用可變形卷積層替換普通卷積層, 網絡能根據不同的輸入數據自適應學習卷積核的偏移量, 有效擴大圖像的感受野. 實驗表明, 這種改進使得摳圖網絡在Composition-1k 數據集上的4 個性能指標都有一定提升, 在生成的α圖的細節部分也有更好的效果.
雖然本方法在測試數據集上獲得了較好的結果, 但在實際應用過程中仍存在依賴GPU 硬件加速以及計算量大、速度慢的問題, 在以后的研究中仍要著重于減少網絡參數, 用更輕量的結構來獲得更優的效果. 另外在實際應用過程中, 對全新的任務來說三元圖的獲取也需要人工標注, 故在之后的研究中高質量三元圖的自動生成也是一個重要的課題.