赞
踩
Giving a Hand to Diffusion Models: a Two-Stage Approach to Improving Conditional Human Image Generation
公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)
目录
近年来,在扩散模型的进展方面,人类图像生成取得了显著的进步。然而,现有的扩散方法在生成一致的手部解剖结构方面面临挑战,并且生成的图像通常缺乏对手部姿势的精确控制。为了解决这一局限性,我们提出了一种新颖的姿势条件的人类图像生成方法,将过程分为两个阶段:手部生成和随后在手部周围绘制身体。我们建议在多任务设置中训练手部生成器,以产生手部图像及其相应的分割掩模,并在生成的第一阶段使用训练好的模型。然后,在第二阶段使用调整后的 ControlNet 模型来在生成的手部周围绘制身体,产生最终结果。在第二阶段引入了一种新颖的混合技术,以在合乎逻辑的方式将两个阶段的结果结合起来,以保留手部的细节。这涉及对绘制的区域进行顺序扩展,同时融合潜在表示,以确保最终图像的无缝和连贯合成。实验评估证明了我们提出的方法在姿势准确性和图像质量方面优于最先进的技术,经过 HaGRID 数据集的验证。我们的方法不仅提高了生成手部的质量,还提供了对手部姿势的改进控制,推进了姿势条件的人类图像生成的能力。
项目页面:https://github.com/apelykh/hand-to-diffusion
姿势条件的人类图像生成。尽管无条件和文本条件的方法通常能够产生高质量的逼真结果,但是对生成的有限控制使得这样的模型无法用于许多内容生成用例。
生成对抗网络(GAN)[9] 被广泛用于向图像生成引入姿势控制。
扩散模型已被广泛用于姿势条件的人类图像生成。
值得注意的是,最近的大多数姿势条件的图像生成方法 [3,4,14,26,37] 不包括手部关键点到骨架表示,因此不能控制手部姿势。另一方面,提供这种控制的模型,如 ControlNet,无法产生逼真和解剖正确的手部。我们提出的方法解决了这个缺点。
提出的框架的一般概述如图 2 所示。在这项工作中,我们建议将图像生成任务分解为两个子问题:手部生成和围绕手部的身体外画(outpainting)。
通过使用提出的顺序掩模扩展的混合策略,我们能够以和谐的方式将两个阶段结合在一起。将任务分解为两个子组件旨在减少手部生成器的复杂性,使其能够优先考虑姿势精度和关节活动度。同时,使用单独的模型进行外画阶段使我们的系统能够通过文本提示对生成的外观和风格具有更大的控制。
我们使用预训练的 SD 模型作为提出的手部生成器 H_θ 的基础,并在多任务设置中微调它,以预测生成的手部的噪声和分割掩模。Baldrati 等人 [3] 和 Ju 等人 [14] 证明了 SD 架构可通过串联额外输入而成功地调节(conditioned),而不需要使用单独的编码器。受到 [3] 和 [14] 的启发,我们的手部生成器接受一个额外的条件 c_p ∈ R^(K×Hh×Wh),它与噪声输入潜变量串联在一起,引导生成过程朝向指定的手部形状。这里将 DDIM [40] 中的噪声项 ϵθ(xt, t) 表示为 ˆϵθ,它与分割掩模 mθ 一起由提出的条件模型预测:
在扩散过程的每个步骤中,使用预测的噪声 ˆϵθ 进行 DDIM 采样,得到去噪的手部潜变量 ˆx0。
在这项工作中,条件输入 c_p 具有 K = 11 个通道,其中 10 个通道被手部关键点热图占据,1 个通道表示手部分割掩模。热图的每个通道包含单个手指的关键点,以在手指重叠或遮挡时提供更好的可分离性。此外,手部的分割掩模包含在输入中,为模型提供额外的空间指导。在训练过程中,掩模以概率 p = 0.5 填充为零,以增加模型的鲁棒性并实现无掩模推断。手部关键点热图和手部分割掩模都通过双线性插值缩小到潜变量维度,以为生成器提供明确的姿势和布局控制。为了容纳增加的输入通道数量,我们使用随机初始化的权重扩展了预训练的 SD 架构的第一卷积层,并进一步训练了网络。
手部分割掩模由包含尺寸为 2×2 的内核和步幅 2 的 4 个转置卷积层 f_m 预测。每个非最终层的输出通过 Sigmoid 线性单元(SiLU [11])激活函数。掩模预测头建立在 SD 解码器的最后一层之上,并在输入图像 I 的空间分辨率上产生输出。预测的掩模进一步用于定义身体外画模块的目标区域,并以和谐的方式混合手部和身体。
网络使用组合目标进行训练:
其中 Mi 是第 i 个样本的地面真实分割掩模,λ 是定义分割损失权重的超参数,ˆϵθ, mθ 是手部生成器的输出,如 (7) 所示。除了在下一阶段使用预测的分割掩模的实际用途之外,包含额外的目标提供了对训练过程的额外正则化,从而使生成器更加稳健。
给定生成的手部图像及其预测的分割掩模,移除图像背景。将得到的前景图像和掩模进一步缩小并与全身骨架对齐,形成外画 I_c 的画布及其相应的掩模。然后,使用编码器 xc = E(Ic) 将 Ic 编码到潜空间,并将 m_(θ_c) 缩小以匹配潜表示的空间尺寸:
通过使用 ControlNet 模型 Ω_W 在手部周围绘制身体,获取最终生成的图像。模型的目标是在输入画布的未知潜像素 (1 − m_latent) ⊙ xc 预测出来,同时保持掩模(mask)区域 m_latent ⊙ xc 不变,其受身体姿势的引导,以骨架图像的形式和目标区域的掩模。尽管 ControlNet 接收掩模作为条件,但在整个潜空间上执行扩散过程,因此会损坏手部区域。为了保留手部细节,每个步骤的潜变量都是通过将输入画布和当前步骤的去噪潜变量混合而获得的,类似于 [1, 2]:
预训练的骨架条件的 ControlNet 模型可以通过对输入的掩模区域添加噪声,然后恢复该区域,从而自然地解决修复(inpainting)任务。然而,在身体外画(outpainting)的情况下,由于模型在通用训练中学习到将非中性(non-neutral)手部形状与持有物体相关联,因此它往往会在手部周围产生对象和不自然的背景幻觉。此外,预训练模型通常会尝试在掩模范围之外完成手部,从而使其解剖结构不正确。
为了缓解这些问题,我们通过提供一个从原始图像分割出的包含手部的初始画布,并要求模型通过预测外部区域完成图像,来对 ControlNet 进行身体外画的微调。我们将骨架图像作为条件输入到模型的编码器中,并根据 (11) 中描述的方式混合噪声和手部潜变量。训练过程中使用掩模的 L2 重建损失。
在围绕先前生成的手部进行身体外画时,确保手部细节的保留以及两个区域之间的无缝过渡和自然连接非常重要。虽然在 (11) 中描述的简单混合策略强制手部区域在整个扩散过程中保持不变,但在非均匀背景的情况下,这通常会导致区域边界周围的异常。尽管调整 ControlNet 进行身体外画有助于缓解这个问题,但模型仍倾向于在掩模区域之外扩展手部,添加额外的手指或为复杂的手部形状引入错误的纹理。
为了解决掩模边界周围的不规则性,我们建议 T 次迭代来逐渐膨胀(dilate)输入手部掩模,其中 T 是扩散步的数量,然后从最大掩模开始使用扩展的掩模作为 (11) 中的 m_latent,并在第 T 步到达原始掩模。同时,身体外画器的底层去噪 UNet 在扩散过程的每个迭代中接收到精确的手部掩模。这个过程背后的直觉是,模型可能在手部区域周围显示的可能的扭曲将被初始画布的均匀背景的潜像素替换。同时,替换的区域将在下一步扩散过程中与其余的潜在混合和协调。对于每个扩散步骤使用较小的掩模允许冲洗(washing out)扩展区域的硬边界,并避免可见的边缘伪影。最后两个扩散迭代是在完整的潜像素上执行的,而不使用掩模,以进一步统一两个区域,使其在过渡平滑性、颜色分布和阴影方面保持一致。
在混合潜在扩散(Blended Latent Diffusion) [1] 中,采用了渐进式掩模缩小,以实现在一个薄(thin)掩模区域进行文本引导的图像编辑。然而,我们的掩模扩展方法解决的是一个概念上不同的任务,即在潜像素表示的两个区域之间进行和谐的混合,而不限制修复区域的大小。在我们的情况下,扩散区域通常跨越大部分图像,并通过逐渐扩展掩模的方式以一种连贯和无伪影的方式包围生成的手部。
扩散过程完成后,将去噪的潜像素通过解码器 D 映射回像素空间,即 ^I_c = D(^x_0)。然后,使用初始掩模 mc 按照 (11) 中的简单策略将得到的图像与输入手部区域进行混合。这样可以在不影响混合一致性的情况下,重新引入可能在未掩模的扩散步骤中减少的手部锐度。
我们使用 InterHand2.6M [25]、Re:InterHand [24] 和 HaGRID [15] 数据集的组合来训练手部生成器。为了构建用于训练外画模型的数据集,我们利用了 LAION-Human(来自 HumanSD [14])。
手部生成器从官方 SD v1.5 检查点初始化,并在 InterHand2.6M、Re:InterHand 和 HaGRID 的组合上进行了进一步调优,调优了 5 个 epoch(30,000次迭代)。分割掩模损失权重 λ(来自(8))设置为 0.5。
身体外画阶段的 ControlNet 模型从官方 Openpose 预训练检查点初始化,并在我们的 LAION-Human 的过滤版本上进行了 5 个 epoch(6000 次迭代)的调优。两个模型都在 Nvidia A1000 GPU 上以批量大小 32 和学习率 1e − 5 进行训练。
为了评估所提方法的性能,我们衡量生成的三个方面:姿势准确性,包括手部姿势的孤立评估,文本图像一致性和图像质量。
姿势准确性由基于距离的平均精度(Distance-based Average Precision,DAP)[18] 和平均每关节位置误差(Mean Per Joint Position Error,MPJPE)来衡量,计算了由 Mediapipe 从生成的图像中预测的关键点与地面真实关键点之间的距离。
Frechet Inception Distance (FID [12]) 和 Kernel Inception Distance (KID [5]) 是已经建立的评估指标,通过比较从真实图像和生成图像中提取的 Inception [41] 特征的分布来显示合成的整体质量。FID 和 KID 可以根据选择的 Inception 网络的不同层的特征来计算,选择层的选择会影响指标对图像质量和多样性各个方面的敏感性。由于本工作旨在改进扩散模型中的手部生成,我们特别关注与手指相关的手部结构和模式的质量。考虑到这一点,我们探索了来自不同层的 Inception 特征,并确定特征维度 192 最适合我们的评估。我们使用 Torchmetrics [6] 对 FID 和 KID 进行实现,并报告所选特征维度的结果。特征维度 192 的特征可见于图 4。
最后,我们使用 CLIP [30] 相似性评分(CLIPSIM)来衡量输入文本提示和生成图像之间的一致性,方法是将两者投影到共享的潜在空间,并计算嵌入之间的距离。
在这项工作中,我们提出了一种新颖的人体图像生成方法,解决了手部合成质量低和对生成手部姿势缺乏控制的问题。对 HaGRID 数据集的实验评估显示,与许多基于扩散的图像生成方法相比,我们的方法在姿势精度和图像质量方面性能提高。尽管所提出的模型产生了令人印象深刻的视觉效果,但它也有一些局限性。我们依赖于输入身体关键点中手臂和手腕之间的连通性。在手部关键点存在但骨架中缺少手臂的情况下,模型可能会在生成图像中产生不连续性。这是因为手部将在流程的第一阶段生成,但可能没有手臂与之连接。
此外,所提出的方法集中于手部占据框架中重要面积的情况。这是因为 SD 潜在空间的空间尺寸 64×64 可能不足以容纳外画步骤中小的手部掩模的精细细节。因此,在所提出的设置中,小的手部区域的质量可能会降低。
目前,手部生成器的结果被解码到像素空间,以便再次编码成潜变量,用于外画阶段。由于 VAE 潜在编码解码过程是有损的,这可能导致手部区域质量降低。从推理时间的角度来看,这也不够高效。我们把将流程的两个阶段带入共享潜在空间留给未来的工作。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。