圖像生成模型應用系列——圖像擦除:
圖像擦除論文-1:PixelHacker、PowerPanint等
圖像擦除論文-2:擦除類型數據集構建(1)
Erase Diffusion
Erase Diffusion: Empowering Object Removal Through Calibrating Diffusion Pathways
https://github.com/longtaojiang/SmartEraser
CVPR-2025
1、模型結構
論文出發點主要為:1、動態圖像組合:區別常規的圖像去除實驗target image就是我們的去除內容之后的圖片,在該文中將其替換為: x t m i x = ( 1 ? λ t ) x 0 o r i + λ t x 0 o b j x_t^{mix} = (1-\lambda_t)x_0^{ori}+ \lambda_t x_0^{obj} xtmix?=(1?λt?)x0ori?+λt?x0obj? 也就是隨著解噪過程(t逐漸減小)圖片中所添加的實體( x 0 o b j x^{obj}_0 x0obj?)所占的權重越來越小,同時將 input image也替換為動態的過程: x t m i n = α t x t m i n + 1 ? α t ? x_t^{min}=\sqrt{\alpha_t}x_t^{min}+ \sqrt{1- \alpha_t}\epsilon xtmin?=αt??xtmin?+1?αt???;2、改變模型的預測過程:上面兩部分公式處理之后那么得到的輸入圖像是一個“圖像鏈”輸出圖像也是一個“圖像鏈”,那么模型需要做的就是將對應“圖像鏈”之間的loss進行計算。
3、改進注意力計算方式:這部分比較容易理解在計算注意力過程中將mask加入到計算也就是: Q K T ? M a s k QK^T\bigodot Mask QKT?Mask
SmartEraser
SmartEraser: Remove Anything from Images using Masked-Region Guidance
CVPR-2025
1、數據集構建
合成數據集構建思路上使用思路是:實體過濾背景檢測而后將兩部分進行組合。Step-1:實體過濾:直接通過語義分割模型(如SAM等)分割出實體之后,通過CLIP計算實體的score并且過濾掉過大/小的分割實體(保留5%-95%)進而獲得需要粘貼的實體;Step-2:過濾背景圖片:直接通過計算分辨率等從COCONut 和SAM-1B數據集中挑選出合適圖片背景;Step-3:圖片組合:首先將實體和背景圖像中相同實體大小保持一致,而后通過計算我分割實體 c 1 c_1 c1? 以及背景中的實體 c i c_i ci?之間的IoU: R 1 R_1 R1?,以及保證需要粘貼實體在整個背景中的位置(保證不超出背景圖片): R 2 R_2 R2?而后取兩部分交集得到圖像應該插入的合理位置。最后通過 alpha blending
將兩部分圖像(實體+背景)進行組合。
2、模型結構測試效果
論文主要就是將模型的輸入進行改進:將模型圖像輸入由 [ m a s k , i m a g e ? ( 1 ? m a s k ) ] [mask, image\bigodot (1-mask)] [mask,image?(1?mask)] 改為 [ m a s k , i m a g e ] [mask, image] [mask,image],除此之外將DF模型的condition改進(將圖像編碼嵌入到文本編碼中): [ CLIP-TextEncoder(text) , MLP ( Image ? Mask ) ] [\text{CLIP-TextEncoder(text)}, \text{MLP}(\text{Image}\bigodot \text{Mask})] [CLIP-TextEncoder(text),MLP(Image?Mask)]。除此之外就是將mask由“規則”(實體分割是規則的)變為“不規則”(將實體分割mask進行額外處理如膨脹處理等)最后測試效果是:
ME:將mask變不規則;RG:改變模型輸入;VG:將圖像編碼嵌入到clip文本編碼中
微調測試效果 |
---|
![]() |
![]() |
![]() |
![]() |
![]() |
值得注意的是,在其合成的數據里面,合成得到結果很粗糙(感覺就像是隨機貼圖),因此感覺數據可用性不高
OmniEraser
https://pris-cv.github.io/Omnieraser/
1、數據集構建
通過視頻來獲取(mask-image)數據集,具體操作流程如下:
首先獲取一段視頻 V \mathbf{V} V 通過 混合高斯算法(MOG)去檢查視頻中移動的物體以及靜止的物體這樣一來就可以得到兩部分內容:Background和Foreground而后通過計算兩部分之間的MSE( M S E ( V i f g , V j b g ) MSE(V_i^{fg}, V_j^{bg}) MSE(Vifg?,Vjbg?))就可以得到source-image和 target-image對。對于mask內容直接通過 GroundDINO+SAM2 算法來構建mask這樣一來就可以得到:foreground-image,mask,background-image。模型算法這是直接去微調 FLUX.1-dev
2、模型結構測試效果
實際測試效果(使用prompt為:'There is nothing here.'
)
原圖 | Mask | 結果 | 測試細節 |
---|---|---|---|
![]() | ![]() | ![]() | |
![]() | ![]() | ![]() | |
![]() | ![]() | ![]() | |
![]() | ![]() | ![]() | ![]() |