图像生成模型应用系列——图像擦除:
图像擦除论文-1:PixelHacker、PowerPanint等
图像擦除论文-2:擦除类型数据集构建(1)
Erase Diffusion: Empowering Object Removal Through Calibrating Diffusion Pathways
https://github.com/longtaojiang/SmartEraser
CVPR-2025
论文出发点主要为:1、动态图像组合:区别常规的图像去除实验target image就是我们的去除内容之后的图片,在该文中将其替换为:$x_t^{mix} = (1-\lambda_t)x_0^{ori}+ \lambda_t x_0^{obj}$ 也就是随着解噪过程(t逐渐减小)图片中所添加的实体($x^{obj}_0$)所占的权重越来越小,同时将 input image也替换为动态的过程:$x_t^{min}=\sqrt{\alpha_t}x_t^{min}+ \sqrt{1- \alpha_t}\epsilon$;2、改变模型的预测过程:上面两部分公式处理之后那么得到的输入图像是一个“图像链”输出图像也是一个“图像链”,那么模型需要做的就是将对应“图像链”之间的loss进行计算。
3、改进注意力计算方式:这部分比较容易理解在计算注意力过程中将mask加入到计算也就是:$QK^T\bigodot Mask$
SmartEraser: Remove Anything from Images using Masked-Region Guidance
CVPR-2025
合成数据集构建思路上使用思路是:实体过滤背景检测而后将两部分进行组合。Step-1:实体过滤:直接通过语义分割模型(如SAM等)分割出实体之后,通过CLIP计算实体的score并且过滤掉过大/小的分割实体(保留5%-95%)进而获得需要粘贴的实体;Step-2:过滤背景图片:直接通过计算分辨率等从COCONut 和SAM-1B数据集中挑选出合适图片背景;Step-3:图片组合:首先将实体和背景图像中相同实体大小保持一致,而后通过计算我分割实体$c_1$ 以及背景中的实体 $c_i$之间的IoU:$R_1$,以及保证需要粘贴实体在整个背景中的位置(保证不超出背景图片):$R_2$而后取两部分交集得到图像应该插入的合理位置。最后通过 alpha blending
将两部分图像(实体+背景)进行组合。
论文主要就是将模型的输入进行改进:将模型图像输入由$[mask, image\bigodot (1-mask)]$ 改为 $[mask, image]$,除此之外将DF模型的condition改进(将图像编码嵌入到文本编码中):$[\text{CLIP-TextEncoder(text)}, \text{MLP}(\text{Image}\bigodot \text{Mask})]$。除此之外就是将mask由“规则”(实体分割是规则的)变为“不规则”(将实体分割mask进行额外处理如膨胀处理等)最后测试效果是:
ME:将mask变不规则;RG:改变模型输入;VG:将图像编码嵌入到clip文本编码中
微调测试效果 |
---|
![]() |
![]() |
![]() |
![]() |
![]() |
值得注意的是,在其合成的数据里面,合成得到结果很粗糙(感觉就像是随机贴图),因此感觉数据可用性不高
https://pris-cv.github.io/Omnieraser/
通过视频来获取(mask-image)数据集,具体操作流程如下:
首先获取一段视频 $\mathbf{V}$ 通过 混合高斯算法(MOG)去检查视频中移动的物体以及静止的物体这样一来就可以得到两部分内容:Background和Foreground而后通过计算两部分之间的MSE($MSE(V_i^{fg}, V_j^{bg})$)就可以得到source-image和 target-image对。对于mask内容直接通过 GroundDINO+SAM2 算法来构建mask这样一来就可以得到:foreground-image,mask,background-image。模型算法这是直接去微调 FLUX.1-dev
实际测试效果(使用prompt为:'There is nothing here.'
)
原图 | Mask | 结果 | 测试细节 |
---|---|---|---|
![]() |
![]() |
![]() |
|
![]() |
![]() |
![]() |
|
![]() |
![]() |
![]() |
|
![]() |
![]() |
![]() |
![]() |