情人节元宵节快乐
[ICCV2021] Talk-to-Edit: Fine-Grained Facial Editing via Dialo
[pdf][supp][page][code]
Question
针对于现有的模型无法提供一个与用户进行自然互动的连续和细粒度的编辑模式
Contribution
提出了一个交互式的面部编辑框架,通过用户与系统的对话来执行细粒度的属性编辑
- 与之前工作认为direction是一条直线不同,该论文认为认为direction可以为曲线,并且此曲线可由细粒度的直线拟合,以适应细粒度的编辑
- 曲线每一步的曲率都与当时的位置相关,由输入的图像和用户的请求决定
- 为了让用户参与到一个有意义的对话中,我们的系统会同时考虑用户请求以及当前图片所在语义域的位置生成语言反馈
除此之外,该论文还提供了一个新的数据集CelebA-Dialog
Method
architecture

这是第t轮的操作,对于用户的请求rt,使用一个Language Encoder E,生成编辑编码er,er决定了一个语义字段是否进行编辑,其包含的信息包括:请求类型、编辑的属性、编辑的方向、变化的程度
然后zt和er通过F生成f,将f加到zt上再通过生成器G生成编辑后的图片,P是一个预训练的模型用来预测生成的图片是否符合用户的需求
Semantic Field for Facial Editing
若要进行编辑,latent code z∈Rd,对应图片I=G(z),然后找到一个可以改变特定语义属性的向量fz∈Rd,更改后的图片z′=z+αfz,α是更改的程度,但是我们认为每张图片的fz并不是一成不变的,它是会根据z位置的不同而不断变化的,所以direction相比直线来说,更类似于一条曲线
基于此,我们提出建模一个连续的语义域,对于每个latent code z都有一个对应的向量f,这个语义域被定义为‘F:\mathbb R^d\rightarrow \mathbb R^d‘,是语义分数域S:Rd→R的梯度
loss

橙色的虚线是反向传播的路线,其中的loss有三个
Lid=∣∣Face(I′)−Face(I)∣∣1
Ldisc=−D(I′)
以上两个建立在编辑前和编辑后的两张图片之间,Face(⋅)是预训练的面部识别模型,作用是保持身份,D是预训练的鉴别器,作用是避免图片中产生不现实的伪影
假设图片有k个细粒度属性,(a1,a2,...,ai,...,ak),其中ai∈{0,1,...,C},C是对语义域离散分级的数量,在对第i个属性训练语义域时,编辑后的图片属性标签应该为(a1,a2,...,ai+1,...,ak),利用目标图片的语义标签,我们可以使用交叉熵损失优化所需的语义域
Lpred=−i=1∑kc=0∑Cyi,clog(pi,c)
C是细粒度类的数量,yi,c是对于目标类的二进制指示器,pi,c是预测器P的softmax输出
Results

定性结果比较,得益于细粒度语义域的使用,该方法编辑效果显然要更好,但是其编辑的步长是否一致文中没有明说,猜测是该方法direction为曲线导致的,很难与其他方法统一比较,但这一点也是该方法的优势所在

分数上同样优于其他方法,其中带星号的是在W+空间中进行编辑的结果
[ICCV2021] Language-Guided Global Image Editing via Cross-Modal Cyclic Mechanism
[pdf][supp][page][code]
Question
这篇论文解决的问题主要是在数据方面,由于数据集分布不足以及不平衡等问题,现有工作无法很好的理解语言请求
同时还有在全局的编辑请求上,有时需要不同区域有着不同的编辑程度,而现有工作很难做到
Contribution
通过创建一个名为Editing Description Network (EDNet)的新模型,用我们的图像生成器创建一个循环,并使用几种数据增强来解决数据不平衡的问题
提出了Image-Request Attention (IRA)模块,使得在不同区域需要不同程度的编辑时,方法可以自适应的编辑图像
提出了一个新的度量方式(RSS),比传统的度量指标更加合理
Method
architecture

对于请求t,使用了一个RNN编码器生成语言嵌入h,EDNet同样也是生成语言嵌入,不过是通过两张图片生成的
原图x和h通过生成器G生成编辑后的图片x~,x~和目标图片y作L1损失,x~与x输入到EDNet中生成嵌入ex→x~,与h作循环损失
然后,x与y输入到EDNet中生成嵌入ex→y,再和x生成x~,x~与y作重建损失
Editing Description Network.
αx→yi,j=softmaxj((W1Fxi)T(W2Fyj))
Fx→yi=j∑αx→yi,jFyj
ex→y=tanh(W3[Fx;Fx→y]+b3)
最终ex→y∈RCh,Ch是h的维度
Generator with Image-Request Attention

为实现对不同局部进行不同编辑的效果,为生成器添加了一个注意力模块,其结构如上图,公式如下
同样先使用CNN将图片x编码到图像特征图V∈RCv×H×W,此外h∈RCh×1
A=Sigmoid((W4h)T(W5V))
A∈RH×W,然后将h通过重复扩展为hˉ∈RCh×H×W,使用注意力矩阵A对hˉ中的元素进行重新加权
hˉ′=W6hˉ⊙A
再通过hˉ′生成调制参数γ、β
γ=W7hˉ′
β=W8hˉ′
最终更改后的特征图为
V′=γ⊙V+β
⊙为Hadamard乘积,以上W矩阵都是可学习的参数
loss
Generator
GAN loss如下,包括L1 loss和对抗loss
LGL1=∣x~−y∣
LGadv=−Ex~∼Pmodel[logD(x~)]
LDadv=−Ey∼Pdata[logD(y)]−Ex~∼Pmodel[log(1−D(x~))]
Cross-Modal Cyclic Mechanism
x~=G(x,h)
ex→x~=ED(x,x~)
Lcyc=1−∣∣ex→x~∣∣∣∣h∣∣ex→x~⋅h
此为Figure 2 (1)中Cycle Loss
Lrec=∣G(x,ED(x,y))−y∣
此为Figure 2(1)右半部分的L1 loss
Data Augmentation on Image Pairs
如Figure 2 (2)(3)所示,将x、y互换或者进行随机增强,再输入进行训练
x′=random_adjust(x)
y′=random_adjust(y)
Laug=∣G(y,ED(y,x))−x∣+∣G(x′,ED(x′,y′))−y′∣
互换可以解决不平衡问题,随机增强可以解决数据不够丰富的问题
Results



总结
这两篇是从ICCV2021搜索editing找到的,两篇都是通过语言控制图像编辑的,原本还有一篇关于3D编辑的,但是鉴于看了半天没看懂,而且好像是侧重于如何通过编辑2D图像编辑3D模型,与图像编辑没什么关系,所以放弃了
后来看了几篇论文,发现这两篇都是关于语言控制编辑的,所以都仔细看了看
第一篇侧重于细粒度的编辑,通过对话的形式进行,这种人机交互的模式确实更适合对图像进行微调,其中提出的语义域也是一个很好的思路,认为direction不仅与属性相关,还与z相关,所以通过z获取direction,虽然会更难训练,但是会更准确
第二篇则侧重于解决全局的图像编辑问题,比如修改亮度、对比度、色调等等,虽然同样是通过语言控制,但是内容和第一篇完全不同,这篇论文完全没有看到将它用在人脸编辑,不知道效果会怎样。