万物生: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的强泛化:
超强生成能力:
实验图像真是赏心悦目呀~(●’◡’●)