【技術追蹤】DiffuMatting:使用摳圖級別注釋合成任意對象(ECCV-2024)

??萬物生: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的強泛化:

超強生成能力:

在這里插入圖片描述


??實驗圖像真是賞心悅目呀~(●’?’●)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/42595.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42595.shtml
英文地址,請注明出處:http://en.pswp.cn/web/42595.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2024年06月CCF-GESP編程能力等級認證C++編程一級真題解析

本文收錄于專欄《C等級認證CCF-GESP真題解析》,專欄總目錄:點這里。訂閱后可閱讀專欄內所有文章。 一、單選題(每題 2 分,共 30 分) 第 1 題 在C中,下列不可做變量的是( )。 A. five-Star B. five_star C…

(補充):java各種進制和文本、圖像、音頻在計算機中的存儲方式

文章目錄 前言一、進制1 逢幾進一2 常見進制在java中的表示3 進制中的轉換(1)任意進制轉十進制(2)十進制轉其他進制二、計算機中的存儲1 計算機的存儲規則(文本數據)(1)ASCII碼表(2)編碼規則的發展演化2 計算機的存儲規則(圖片數據)(1)分辨率、像素(2)黑白圖與灰度…

Knife4j的介紹與使用

目錄 一、簡單介紹1.1 簡介1.2 主要特點和功能: 二、使用步驟:2.1 添加依賴:2.2 yml數據源配置2.3 創建knife4j配置類2.4 注解的作用 最后 一、簡單介紹 1.1 簡介 Knife4j 是一款基于Swagger的開源文檔管理工具,主要用于生成和管…

Java客戶端調用SOAP方式的WebService服務實現方式分析

簡介 在多系統交互中,有時候需要以Java作為客戶端來調用SOAP方式的WebService服務,本文通過分析不同的調用方式,以Demo的形式,幫助讀者在生產實踐中選擇合適的調用方式。 本文JDK環境為JDK17。 結論 推薦使用Axis2或者Jaxws&#…

拆分pdf文件最簡單的方法,pdf怎么拆成一頁一張

在數字化的時代,pdf文件已經成為我們日常辦公、學習不可或缺的文檔格式。然而,有時候我們可能需要對一個大的pdf文件進行拆分,以方便管理和分享。那么,如何將一個pdf文件拆分成多個pdf呢?本文將為你推薦一種好用的拆分…

PLSQL Day4

--使用顯式游標更新行,對所有salesman增加500獎金: declare cursor s_cursor is select * from emp where job SALESMAN for update; begin for e_s in s_cursor loop update emp set comm nvl(comm,0)500 where current of s_cur…

AFT:Attention Free Transformer論文筆記

原文鏈接 2105.14103 (arxiv.org) 原文翻譯 Abstract 我們介紹了 Attention Free Transformer (AFT),這是 Transformer [1] 的有效變體,它消除了點積自注意力的需要。在 AFT 層,鍵key和值value首先與一組學習的位置偏差position biases相結…

ubuntu22安裝Docker并配置

安裝Docker sudo apt install docker.io使用腳本自動安裝docker: curl -fsSL get.docker.com -o get-docker.sh sudo sh get-docker.sh --mirror Aliyun配置國內鏡像 /etc/docker/daemon.json 推薦配置: {"registry-mirrors": ["htt…

Lab1 論文 MapReduce

目錄 🌹前言 🦅2 Programming Model 🌼2.1 Example 🌼2.2 Types 🌼2.3 More Examples 🦅3 Implementation(實現) 🌼3.1 ~ 3.3 🌼3.4 ~ 3.6 🦅4 Refinemen…

代理IP有什么用途

代理IP主要有以下應用場景: 1、隱藏真實IP地址:通過使用代理IP,可以隱藏真實的網絡請求來源,保護用戶隱私。 2、繞過網絡限制:一些地區或網絡環境可能存在訪問限制,通過使用代理IP可以繞過這些限制&#xf…

Anaconda+Pycharm 項目運行保姆級教程(附帶視頻)

最近很多小白在問如何用anacondapycharm運行一個深度學習項目,進行代碼復現呢?于是寫下這篇文章希望能淺淺起到一個指導作用。 附視頻講解地址:AnacondaPycharm項目運行實例_嗶哩嗶哩_bilibili 一、項目運行前的準備(軟件安裝&…

BN的 作用

1、背景: 卷積神經網絡的出現,網絡參數量大大減低,使得幾十層的深層網絡成為可能。然而,在殘差網絡出現之前,網絡的加深使得網絡訓練變得非常不穩定,甚至出現網絡長時間不更新或者不收斂的情形,…

ER模型理論和三范式

ER模型理論和三范式 各種關系多對一一對一一對多多對多 三范式理論函數依賴完全函數依賴部分函數依賴傳遞(間接)函數依賴 第一范式:屬性(表字段)不可切割第二范式:不能存在 部分函數依賴(都存在完全函數依賴…

2款一鍵word生成ppt的AI工具,讓職場辦公更為簡單!

在當下主打異步溝通的職場辦公環境中,我們與很多人的溝通,都是通過書面材料來達成的,這就讓 Word 或文檔編輯軟件變得更為重要,與此同時,有時為了凸現書面材料中的重點,我們還要將 word 文檔轉換為 ppt 來進…

2024年06月CCF-GESP編程能力等級認證Python編程五級真題解析

本文收錄于專欄《Python等級認證CCF-GESP真題解析》,專欄總目錄:點這里,訂閱后可閱讀專欄內所有文章。 一、單選題(每題 2 分,共 30 分) 第 1 題 在Python中,print((c for c in “GESP”))的輸…

MiniGPT-Med 通用醫學視覺大模型:生成醫學報告 + 視覺問答 + 醫學疾病識別

MiniGPT-Med 通用醫學視覺大模型:生成醫學報告 視覺問答 醫學疾病識別 提出背景解法拆解 論文:https://arxiv.org/pdf/2407.04106 代碼:https://github.com/Vision-CAIR/MiniGPT-Med 提出背景 近年來,人工智能(AI…

如何讓自動化測試框架更自動化?

一、引言 ?對于大廠的同學來說,接口自動化是個老生常談的話題了,畢竟每年的MTSC大會議題都已經能佐證了,不是大數據測試,就是AI測試等等(越來越高大上了)。不可否認這些專項的方向是質量智能化發展的方向&…

刷題(day02)

1、leetcode136.刪除鏈表的結點 給定單向鏈表的頭指針和一個要刪除的節點的值,定義一個函數刪除該節點。 返回刪除后的鏈表的頭節點。 示例 1: 輸入: head [4,5,1,9], val 5 輸出: [4,1,9] 解釋: 給定你鏈表中值為 5 的第二個節點,那么在調用了你的函數…

Windows圖形界面(GUI)-SDK-C/C++ - 應用程序結構

公開視頻 -> 鏈接點擊跳轉公開課程博客首頁 -> 鏈接點擊跳轉博客主頁 目錄 入口函數 窗口注冊 窗口創建 窗口顯示 窗口更新 消息循環 窗口過程 窗口銷毀 調試信息 示例代碼 入口函數 在Windows應用程序中,WinMain是主函數,作為應用程序…

網格化監控:Eureka與分布式服務網格的協同監控

網格化監控:Eureka與分布式服務網格的協同監控 引言 在微服務架構中,服務網格技術提供了一種有效的方式來管理和監控服務間的通信。Eureka作為Netflix開源的服務發現框架,雖然本身不直接提供服務網格的監控功能,但可以與服務網格…