??萬物生:Diffusion與綠幕摳圖,影視領域的福音~
論文:DiffuMatting: Synthesizing Arbitrary Objects with Matting-level Annotation
代碼:https://github.com/HUuxiaobin/DiffuMatting (即將開源)
0、摘要
??獲得高精度或摳圖注釋是非常困難和費力的,為了解決這一挑戰,本文提出了 DiffuMatting,它繼承了擴散強大的萬物生成能力,并賦予了“matting anything”的能力。
??DiffuMatting 可作為一個具有高精度注釋的任意摳圖工廠,其與社區 LoRAs 或各種條件控制方法良好兼容,以實現社區友好的藝術設計和可控生成。
??具體來說,受綠幕摳圖的啟發,我們的目標是教擴散模型在固定的綠幕畫布上畫畫:
??(1)本文收集了一個大規模的 green-screen 數據集(Green100K)作為 DiffuMatting 的訓練數據集;
??(2)提出了綠色背景控制損失(green background control loss),以保持畫板作為純綠色,以區分前景和背景;
??(3)為保證合成目標具有更多的邊緣細節,提出了一種過渡邊界損失(transition boundary loss)的細節增強方法,以生成具有更復雜邊緣結構的目標;
??(4)為了同時生成目標及其摳圖注釋,本文構建了一個摳圖頭(matting head),在 VAE 解碼器的潛在空間中進行綠色去除;
??DiffuMatting 顯示了幾個潛在的應用(例如,摳圖數據生成器,藝術設計和可控生成)。作為一個摳圖數據生成器,DiffuMatting 合成了一般目標和人像摳圖數據集,有效地將一般目標摳圖和人像摳圖任務的相對 MSE 誤差分別降低了15.4%和11.4%。
DiffuMatting 在綠幕上生成的目標及其摳圖注釋:
1、引言
1.1、高精度注釋
??(1)在增強現實、圖像編輯、三維重建、圖像合成等許多應用中,精確的標注提供了更幾何化的描述和更一目了然的目標;
??(2)鑒于費力的標記過程和不可接受的成本,目前只存在有限的訓練對;
??(3)問題:如何構建一個高度精確和高效的數據工廠來同時合成精細對象及其摳圖級注釋;
1.2、擴散模型
??(1)擴散模型的高質量圖像生成能力是否有利于下游任務,特別是在摳圖、分割和圖像合成等方面,一些研究已經進行了探索;
??(2)用于分割任務的擴散生成模型可采用有條件和無條件兩種形式,無條件生成可以很大程度上擴展生成空間,不局限于語義。但它仍面臨著一些挑戰:①沒有充分利用去噪擴散概率模型的萬物生成能力(Anything Generation),沒有訓練集之外的類先驗;②無法生成摳圖級別的標注;
1.3、本文貢獻
??(1)出了兩種新的損失函數:綠色背景控制損失和過渡邊界損失。前者利用了“綠色”的交叉注意功能來確保一個穩定的畫布背景,而后者則專注于增強邊界細節和避免過渡邊界崩潰;
??(2)為了產生摳圖級的注釋,收集 Green100K 進行訓練,建立 matting head,對 VAE 解碼器的潛空間進行綠色去除,這避免了參與基于粗級噪聲的合成過程;
??(3)本文分別對一般目標和人像摳圖數據集進行了合成,結果表明,合成數據的加入使一般目標摳圖任務的相對 MSE 誤差降低了15.4%,人像摳圖任務的相對 MSE 誤差降低了11.4%;
??(4)DiffuMatting 與各種社區 LoRAs 和現有的控制模型(例如ControlNet)很好地兼容,無需額外的訓練,允許用戶使用摳圖注釋自定義特定樣式的圖像;
現有模型在純綠幕上生成圖像存在困難:
2、相關工作
2.1、由文本生成圖像的擴散模型
??(1)有名的文生圖模型:Stable diffusion、Imagen、DALL-E3以及一些其他變體;
??(2)但這些 SOTA 擴散模型不能通過基于文本的提示控制在綠色畫布上穩定地生成任意的超詳細對象;(對齊顆粒度,我要追求細致~)
2.2、數據合成
??(1)早期關于數據集合成的研究主要采用三維場景圖,與現實世界的數據集相比,合成數據集往往表現出領域差距,包括外觀和內容的差異;
??(2)生成式對抗網絡利用圖像到圖像的轉換來記住這個在外觀和內容上的差距,如DatasetGAN、BigDatasetGAN;
??(3)擴散模型出現后,已初步嘗試應用它們來生成下游任務的合成圖像,如:FreeMask、DiffuMask;
??(4)理想情況下,文本條件的生成模型能夠放松嚴格的約束,并通過文本短語合成任意對象,這使得它有可能生成“任何東西”;
2.3、Matting-level數據集
??(1)圖像摳圖是指對圖像和視頻中前景目標的精確估計;
??(2)摳圖級標注費時費力,目前使用廣泛的數據集 Composition-1k、Distinctions-646、AIM-500、P3M-500、AM-2k 的數據量并不大;
3、方法
3.1、Green100k 數據集的數據收集
??(1)自收集的肖像視頻:在綠屏背景上總共收集了20個肖像視頻,使用 Adobe Premiere Pro Chromakey 和 Adobe Photoshop 標注,為避免一些連續的視頻幀,每20幀連續采樣一幀,自采集的圖像數量達到11963;
??(2)收集公開數據集,增加數據多樣性:Adobe matting (454 張)、Distinction646 (590 張)、P3M (481 張)、PPM (98 張)、Video240k mattingset (50000 張)、AM2K (1942 張)、DIS5K (5314 張)、HRSOD (1918 張)、MSRA10k (9884 張)、 DUTS (10426 張) 以及 Thinobject5k (5594 張) ;
??(3)使用instruct-blip算法為 Green100k 添加文字標題,為避免內容和標題之間的錯位,對所有數據都進行了大量的人工修正;
3.2、交叉注意機制
??給定輸入圖像 x 0 {x_0} x0?,Stable diffusion 的噪聲估計過程定義為:
??分自動編碼器 E {\mathcal{E}} E 將輸入圖像 x {x} x 壓縮為低維隱空間 z {z} z,條件 UNet 去噪網絡 ? θ {\epsilon_{\theta}} ?θ? 利用時間步長 t {t} t、第 t {t} t 次噪聲的潛在表示 z t {z_{t}} zt? 和其他由文本編碼器提取的文本提示條件 C {C} C 來估計潛在空間中的噪聲 ? {\epsilon} ? 。
??交叉注意機制通過以下方式融合視覺和文本嵌入:
??其中, l Q ( φ ( z t ) ) {\mathcal{l}_{Q}(\varphi(z_t))} lQ?(φ(zt?)) 將噪聲圖像 φ ( z t ) {\varphi(z_t)} φ(zt?) 的深度空間特征展平并線性投影到 Query 向量; l K ( τ θ ( P ) ) {\mathcal{l}_{K}(\tau_{\theta}(\mathcal{P}))} lK?(τθ?(P)) 是文本提示 P \mathcal{P} P 的嵌入,作為 Key 矩陣; d {d} d 是隱投影維度, l Q {\mathcal{l}_{Q}} lQ? 和 l K {\mathcal{l}_{K}} lK? 是線性可學習矩陣。
3.3、綠色背景控制
??給定 Green100k 數據集,我們需要強先驗來限制前部和背景,以確保背景區域的綠色純凈。理論上,可以直接將提示的主要對象與交叉注意 mask 結合在一起,分割前景和背景。
??然而,為了增強模型的萬物生成能力,并大大增強模型的泛化能力,我們無法事先獲得目標的類先驗。(沒法提前知道 prompt 類信息)
??相反,“綠色”的文本標記是一個可用且穩定的提示符,可以在沒有類先驗的情況下生成背景。對于“綠色”(第 j {j} j 個)文本 token,對應的權重為 A j ∈ R H × W {\mathcal{A}_{j} \in \mathbb{R}^{H×W}} Aj?∈RH×W ,本文提出的綠色背景控制機制是:
??其中, M {M} M 為歸一化為 [ 0 , 1 ] {[0,1]} [0,1] 的主目標的 GT 掩碼, A j {\mathcal{A}_{j}} Aj? 表示第 l {l} l 個交叉注意層對應的第 j {j} j 個交叉注意圖, u {u} u 是交叉層總數,我們監督交叉注意圖 A j {\mathcal{A}_{j}} Aj? 接近背景分割掩碼 ( 1 ? M ) {(1?M)} (1?M), m e a n {mean} mean 為像素級平均。
DiffuMatting 總覽:
3.4、過渡段邊界的細節增強
??為了保持細節目標的生成,避免過渡邊界的崩潰,本文提取高頻信息(如邊緣)來增強過渡邊界周圍的細節生成。
??其中 S x {S_x} Sx?, S y {S_y} Sy? 指水平和垂直的 Sobel 算子獲得的高頻先驗, I {I} I 和 M {M} M 分別是輸入的灰度圖像和掩碼。?表示卷積運算,⊙為像素級上的 Haramard 積。
??為引導合成圖像模擬細節物體,本文將合成圖像限制為更接近 GT 圖像的高頻特征:
??其中 z 0 {z_0} z0? 是圖像 x 0 {x_0} x0? 的潛在表示, z ^ 0 {\hat{z}_0} z^0? 是 t {t} t 步去噪估計的潛在表示:
3.5、Mask 生成和細化
??本文的目標是在生成綠幕圖像的同時,獲得摳圖級標注,為此,首先通過添加一個 matting header 來得到粗掩碼 M ~ c p {\tilde{M}_{cp}} M~cp?:
??其中 ConR 是具有兩個二維卷積層和 SiLU 激活函數的 matting-header,隨后,根據 Dice 和 L1 損失將 M ~ c p {\tilde{M}_{cp}} M~cp? 與 GT (M) 聯系起來:
??其中, N {N} N 是總像素個數,最后采用后處理 GreenPost,利用綠色背景先驗來細化像素級掩碼。GreenPost 引入 BackgroundMattingV2 作為后處理,使用 K-Means 對像素級掩碼 M ~ c p {\tilde{M}_{cp}} M~cp? 計算的背景顏色進行聚類,以填充前景像素值。然后將原始圖像和精確背景導入 GreenPost 中,得到摳圖級標注 M ~ p {\tilde{M}_{p}} M~p?:
3.6、目標函數
?? L g {\mathcal{L}_{g}} Lg?:通過雙向的方式優化交叉注意特征,實現準確的前景和背景學習;
?? L d e t a i l {\mathcal{L}_{detail}} Ldetail?:過渡邊界的細節增強損失,通過高頻信息對齊來促進邊界細節;
?? L l a t e n t {\mathcal{L}_{latent}} Llatent?:衡量生成注釋與 GT 的差距;
?? L n o i s e {\mathcal{L}_{noise}} Lnoise?:擴散去噪損失;
4、實驗與結果
4.1、實驗設置
??(1)實施細節:Stable Diffusion V1.5 預訓練模型,2塊 NVIDIA V100 GPUs,學習率 2e-6,batch size=2;先訓練沒有摳圖參數的 DiffuMatting 生成模型,然后共同訓練生成和摳圖;
??(2)評價指標: 提出 green-screen generation quality (GSG),使用K-Means對合成圖像的主色進行聚類,并計算與綠幕顏色的距離;
??其他指標包括:絕對差值之和(SAD)、均方誤差(MSE)、梯度(Grad.)、連通性(Conn.);
4.2、一致性綠幕生成能力
??隨機生成10個類圖像,每類包含10張圖片, A s {A_s} As? 為美學評分:
DiffuMatting 圖像生成質量評估與可視化:
4.3、摳圖級注釋分析
與DiffuMask相比,DiffuMatting 實現了更精細的注釋:
4.4、應用
4.4.1、下游摳圖任務
(1)一般目標摳圖: 合成了 500 個目標類別 10K 的通用目標摳圖數據集 GOM;
Ratio 表示來自真實數據的比例,(1-Ratio)為合成數據的比例:
(2)肖像摳圖:生成了不同的年齡階段、種族、性別和國籍的肖像;
4.2、圖像合成:生成、復制和粘貼
DiffuMatting 生成綠幕對象,復制帶有摳圖級別注釋的對象,然后將其粘貼到所需的場景中:
4.3、社區友好型藝術設計與可控生成
藝術設計,青花瓷質感風格:
與 LoRAs 接軌:
可控圖像編輯功能:
4.5、消融實驗
(1)綠色背景控制:沒有綠色背景控件的設置會導致前背景過渡區域周圍的顏色滲出;
(2)過渡邊界的細節增強:未對過渡邊界進行細節增強的設置會造成邊界細節的丟失,特別是在毛發區域;
綠色背景控制與過渡邊界的細節增強消融實驗:
(3)掩碼的生成和細化:經過 GreenPost 摳圖細化處理后,摳圖輸出的信息更加透明;
毛發更飄逸了:
(4)超越Green100K的強泛化:
超強生成能力:
??實驗圖像真是賞心悅目呀~(●’?’●)