Pre
title: Painterly Image Harmonization using Diffusion Model
accepted: AAAI2023
paper: https://arxiv.org/abs/2212.08846
code: https://github.com/bcmi/PHDiffusion-Painterly-Image-Harmonization
ref: https://mp.weixin.qq.com/s/0AzaD8qVOFJrFeeIaJ4sTg
ref: https://zhuanlan.zhihu.com/p/603227426 (PHDNet)
关键词: painterly image harmonization, diffusion model, style transfer
阅读理由: 很有趣,而且想学习一下里面的风格对比损失
Idea
在ddpm.LatentDiffusion的基础上屏蔽文本条件输入c,将拼接图片comp作为z扔进去,然后comp和前景mask拼接过编码器作为条件来引导扩散模型,得到和谐化的图片pred_x0。也就是把扩散模型套到了painterly image harmonization任务上。
Motivation&Solution
- 第一个将扩散模型引入风格图像和谐化任务
- 现有的基于优化的方法通过最小化所设计的损失函数来优化合成图像,非常耗时。而前馈方法主要依赖GAN,训练好的模型可以直接生成和谐的图像,然而它在复杂前景的控制上存在局限性,导致前景协调效果不理想,例如内容和风格细节的丢失。
Background
"painterly image harmonization" (风格图像和谐化) 指的是将照片中的物体(photographic objects)插入绘画中,并使二者风格艺术和谐统一。之前的方法大致可以分为:基于优化(inference optimization)和前馈方法(如GAN)两类,但它们都十分耗时,或难以精确把握前景物体(纹理或内容细节)。为此作者提出了Painterly Harmonization stable Diffusion model (PHDiffusion)
图1 风格图像和谐化希望让插入的前景物体与背景和谐一致。PHDNet为作者所在实验室的上一个工作。
standard image harmonization 专注于适应低阶统计数据(颜色、亮度),而 painterly image harmonization 更具有挑战性,需要转换高阶的风格
一些现存的工作已经用上了扩散模型到相似的任务中,如跨域图片合成和图片编辑任务。例如CDC提出了推理时方法(inference-time conditioning method),用背景的高频细节和前景物体的低频风格来做图片合成,但高频特征=风格,低频特征=内容这一结论未必总是成立。SDEidt则通过加噪去噪来迭代合成图片,但是降噪时缺少恰当和充足的引导,导致最终的图片缺少充足的风格和内容。
Method(Model)
Overview
图2 PHDiffusion架构 给定合成图片I_c和它的前景mask M,I_c送入预训练的SD模型(上方灰色),首先编码到潜空间z^'_0,再加噪声得到z^'_t,推理时再逐步降噪,最终经由解码器得到和谐化的图片\tilde{I}_0。同时I_c跟M拼接送入自适应编码器,再用双编码器融合(DEF)来为降噪过程提供引导。L_{LDM}损失约束降噪过程,还有俩风格损失负责前景风格化,用内容损失做内容维持。
PHDiffusion包含一个是轻量自适应编码器和一个是双编码器融合模块(DEF),它们首先将前景特征风格化,然后风格化特征用于引导和谐化过程。训练时除了扩散模型的噪声损失(noise loss),还引入了两个额外的风格损失:AdaIN风格损失和对比风格损失,以平衡风格迁移和内容维持两部分。
Adaptive Encoder
轻量自适应编码器是受条件扩散模型(T2I-Adapter)的启发,旨在从合成图像中提取所需的条件信息,即背景风格、图像内容。它以合成图像和前景掩码的串联作为输入,产生添加给去噪编码器特征图的残差。
之前多用文本来约束降噪过程,本文扔掉了文本CLIP编码器,改用图片和mask的拼接来提供信息。介绍模型架构,说\(F^i_c\)共有4个,模型中不同层的输出结果,分辨率不同
Dual Encoder Fusion Module
图3 Dual Encoder Fusion (DEF) 架构,左边蓝黄两个块又细分为前景、背景特征,前景的作query背景作key,value进行交叉注意力,然后拼接过全连接再跟黄色的背景特征以及蓝色一整块结合得到粉色。
基于自适应编码器和扩散模型中的去噪编码器,作者引入了一个双编码器融合(DEF)模块来融合两个编码器的信息。具体而言,给定两个编码器提取的图像特征,双编码器融合模块将背景风格融入前景内容中并生成风格化的前景特征。图中是将自适应编码器的\(F^i_c\)和相应的降噪特征图\(F^i_{z_t}\)编码为新的降噪特征图\(\hat{F}^i_{z_t}\)。然后,来自两个编码器的风格化前景特征被组合在一起,在去噪步骤中提供多步引导。
说是直接相加或拼接 \(F^i_c,\; F^i_{z_t}\) 的效果很差,考虑到CNN无法建模长距离依赖...策略是浅层的(i=1,2)特征直接相加来保留局部结构,深层的(3,4)使用DEF模块来捕捉全局风格。
Stylized Feature Extraction 以 \(F^i_c\) 为例,要提取前景背景特征就通过mask+flatten,如背景特征 \(F^i_{c,b} = Flatten(F^i_c \circ (1-M))\),然后就能送入Transformer...
Stylized Feature Fusion Transformer输出靠全连接结合,再直接加上蓝黄的一部分
Objective Function
为了利用预训练的稳定扩散模型(SD)中丰富的先验知识并减轻训练负担,作者冻结了SD的模型参数,并仅在训练过程中更新自适应编码器和双编码器融合模块。扩散模型中使用的标准噪声损失只能从潜空间重建图片特征,无法将背景风格迁移到前景上。因此进一步引入了两个额外的风格损失,即AdaIN损失和对比风格损失,以平衡前景对象的风格和内容。
Noise Loss. DDPM的降噪是要去掉\(z'_T\)的噪声,最终重建原始合成图片\(z'_0\),因此该目标函数是要预测第t步的噪声,其中y是条件信息(合成图片和前景mask)
公式8
AdaIN Loss 公式8的noise loss只涉及潜空间,而风格损失无法直接在潜空间计算。给定解码器输出的图片\(\hat{I}_0 = \mathcal{D}(\hat{z}^t_0)\),这里标错了?图2中是\(\tilde{I}_0\)
公式9
其中\(\phi^l\)表示预训练VGG-19里第l层ReLU,\(I_b\)是完整的背景图片,\(\bar{M}^l\)是下采样到相应尺寸的前景mask。AdaIN损失将前景对象的多尺度统计数据(例如均值、方差)与背景绘画进行对齐,看起来是约束生成图片中前景部分的均值方差与背景图片一致,确实有AdaIN的感觉,但这是不是等于加了个AdaIN层呢。
Contrastive Style Loss 对比风格损失旨在将前景风格推向背景风格。同样把\(\hat{I}_0\)输入VGG,从特征图中裁出前景的部分,再将其投影为anchor向量\(f_q\),同样地从\(I_b\)的输出特征里抽取正样本\(f^+_b\),从其他风格图片里抽取负样本\(f^-_b\)。
图4 对比风格损失中 anchor, 正样本, 负样本 三元组的构建
公式10
其中温度\(\eta\)调节推拉力度,将其设置为0.2
Content Loss. 在平衡noise loss和风格损失时,内容细节可能被过度保留,导致风格迁移不充足,因此减少了noise loss的权重并引入内容损失。这玩意也是风格迁移常用的,维持高层级内容信息且不会牺牲风格:
\[\mathcal{L}_{con} = \| \phi^4(\hat{I}_0) - \phi^4(I_c) \|^2_2 \tag{11} \]其中\(\phi^4\)的定义和公式9一样
Total Loss. 通过噪声损失、风格损失和内容损失,PHDiffusion能够理解背景风格并保持前景内容。在测试中PHDiffusion可以直接用于生成协调的图像,避免了额外的耗时推理优化,总损失如下:
\[\mathcal{L}_{ 标签:Diffusion,编码器,Painterly,Harmonization,前景,损失,风格,模型,图片 From: https://www.cnblogs.com/Stareven233/p/17777720.html