绕开伪目标陷阱,ART框架如何重新定义高保真妆容迁移
2026/9/7 6:55:06 网站建设 项目流程

如果让我用一句话说清楚妆容迁移(Makeup Transfer)这个任务,那就是:给你一张素颜脸和一张带妆参考图,在不改变人脸身份、姿态、表情的前提下,把参考图的妆容“搬运”到素颜脸上。听起来像是在美图软件里点一个滤镜,但真正在这条路上调过模型的人都懂,这个“搬运”过程远没有想象中简单。同样是涂口红,唇形不同颜色就容易溢出;同样是画眼影,眼皮褶皱深浅不一样,出来的效果就天差地别;更别提高光、阴影这些和面部结构强耦合的东西,稍不留神整张脸就“换头”了。

ECCV 2026上出现的ART,就是冲着这个“深水区”去的。它被讨论最多的一点,不是又涨了几个点,而是它把困住这个方向多年的“伪目标(Pseudo Target)”机制整个绕开了。文章题目里那句“重新定义高保真妆容迁移”,在我读下来并不算夸张——它是真的把这个任务从“用假标签训网络”推进到了“拆解成机器真正能学明白的子问题”。

这篇文章我想把这个工作掰开揉碎讲清楚,包括它到底解决了什么问题、核心模块怎么设计、训练和落地时有哪些坑,以及这套“解耦-重建”思路能延伸到哪里。无论你是做图像翻译的研究者,还是想在美妆、电商、数字人方向落地AI能力的工程师,应该都能从中拿到点东西。

1. 妆容迁移这二十年,卡在哪道坎上

1.1 看似简单的“搬运”,难点全在“不动”

先把这个任务重新定义一遍。输入是两张图:一张源图 S(通常是素颜或淡妆),一张参考图 R(带明显妆容),目标是生成一张新图 O,让 O 拥有和 S 相同的身份、姿态、发型、表情,同时复刻 R 的妆容风格。

难点就在“不动”这两个字上。身份、姿态、表情、光照,这些都要保持不变,变动的只有“妆容”这个维度。听起来很干净,但实际操作中,“妆容”和“人脸本身”是纠缠在一起的。口红色号必须适配唇形,眼影要顺着眼窝的立体结构走,腮红要符合颧骨的位置。你动的不只是一个颜色通道,而是一整套跟面部几何强绑定的视觉信号。

早期做法更接近“贴图”。比如 BeautyGAN 那个时代的思路,基本是把妆容当成一个可叠加的“图层”,源图加上这个图层就得到结果。问题是,图层不是均匀的——嘴唇区域的口红和皮肤区域的光泽,本质上是完全不同的两种物理属性,用同一个全局变换去处理,必然顾此失彼。

1.2 伪目标的前世今生:为什么大家都在用

那么,怎么训练这样一个模型?标准的监督学习需要“输入-真值”对,即同一张脸在同一姿态、同一光照下,既有无妆版本又有上妆版本。但现实中根本找不到这样的数据——你不能让一个人在完全相同的光照、角度下,凭空变出一种妆容,然后还保证连瞳孔反光都不变。

于是研究人员想出了一个变通方案:构造伪目标(Pseudo Target)。所谓伪目标,就是训练时给网络看的“参考答案”,它并不是严格意义上的 ground truth,而是通过某种方式凑出来的近似样本。

BeautyGAN 的做法是在公开数据集 MT 上手动标注同一个人的妆前妆后视频帧,把它们当成配对的训练对。PSGAN 则是用循环感知注意力机制,在推理阶段先算源图和参考图之间的空间关系,再逐步迁移妆容。LADN 引入了局部对抗域,把不同妆容风格建模为不同域。再到后来的 EleGANt、CUSP,基本都是在“如何把伪对做得更像真对”这个方向上做文章。

1.3 伪目标的三宗罪:错位、模糊、身份漂移

伪目标机制最大的问题,是它决定了整个任务的上限——训练信号本身就是残缺的,模型再强也翻不出这座五指山。我把它的危害总结成三点。

第一是错位。真实的伪对里,源图和目标的姿态、表情、发型几乎不可能完全一致。哪怕只是相差几个像素的嘴角弧度,网络也会试图在两者之间找平均解,结果就是生成图容易出现重影、鬼影,尤其在唇部、眼部这些高细节区域。

第二是模糊。为了在训练时把“伪对”的损失压到最低,模型会倾向于输出保守、平滑的结果。细节丰富的眉毛、睫毛、嘴唇纹理,这些在有限的监督信号下很难被还原,模型宁可把它们“糊”过去,也不愿承担出错的代价。这也为什么很多妆容迁移结果一眼看去“像那么回事”,放大一看全是虚的。

第三是身份漂移。伪对里“身份”本身是松散对齐的,模型在权衡之后,往往会把一部分身份信息和妆容信息混在一起迁移。生成的图妆容是像了,但看久了总觉得“这个人长得不对”。这是 Makeup Transfer 领域最让人头疼的问题之一。

说白了,伪目标就像一个从来没吃过真菜的厨师,你让他照着半成品照片练手艺,他能做到及格,但永远差一口“锅气”。

2. ART的破局思路:先卸妆,再上妆

2.1 一个反直觉的两段式设计

ART 全称是 Attribute Removal and Transfer,属性移除与迁移。它最核心的思想一句话就能概括:与其从“源脸”直接映射到“带妆脸”,不如先让网络学会卸妆,把源图中的妆容属性剥离干净,得到一个纯净的“底脸”;然后再以底脸为画布,把参考图的妆容风格重建上去。

这个过程很像专业化妆师的实际工作流程。一个化妆师拿到模特照片和参考妆容,不会直接拿最大的刷子往上糊。她会先把模特的脸清洁、打底,处理好肤色不均的问题,获得一张干净的“画布”,然后再按照参考妆效一笔一笔上妆。口红画在唇线内,眼影晕染在眼窝范围内,腮红扫在颧骨的高点上。

ART 的网络结构就是照着这个逻辑设计的。它不试图让网络学习“素颜到带妆”这种跨越式的映射,而是把它拆成两个相对简单的子问题:去属性,和加属性。

2.2 一次前向的全流程推演

我们走一遍 ART 的完整推理流程。输入源图 S 和参考图 R,网络内部大致分四步走:

第一步,编码。源图 S 经过一个编码器 E,被卷入到一个特征空间。这个空间里的特征同时包含身份信息(这是谁)和外观信息(妆容、肤色、光照)。

第二步,移除。在特征层面,属性移除模块 R 把“妆容相关”的特征分量剥离出来并丢弃,只保留与身份强相关的分量。这个操作对应生成一张“底脸” I_base。

第三步,提取风格。参考图 R 经过一个风格编码器 S_enc,被压缩成一组风格向量,这些向量经过解耦,分别对应唇部、眼部、脸颊区域的不同妆容属性。

第四步,重建上妆。以上一步生成的底脸特征图为“画布”,将参考风格向量通过空间调制的方式注入特征图,再经过解码器,得到最终的输出图 O。

整个过程一次前向完成,不需要额外的优化迭代,推理开销和普通 GAN 差距不大,完全具备工程落地的潜力。

2.3 与主流方法的本质差异

这种“先卸妆再上妆”的流程,和之前的方法相比,差异是结构性的。

BeautyGAN 那种做法,本质上是“数据驱动”的思路——强行找伪对,让网络在编译统计规律。ART 则是“先验驱动”的思路——它把人类对“化妆”这个行为的知识,直接编码到网络结构里。化妆是两个步骤,网络就设计成两个阶段;化妆是局部的,网络就按语义区域调制;化妆不改变身份,网络就刻意保留身份分支。

PSGAN 也考虑了空间对齐的问题,它的注意力机制是为了让参考妆容更好地贴合源脸。但它仍然没有摆脱伪目标的训练范式,只是让网络在逼近伪目标时更聪明一点。ART 则是直接换了一个问题定义:我不再要求网络去模仿“伪对”,我只要求两件事——能把妆容去掉,能把妆容加上。这两件事都可以用相对干净的监督信号训练。

这种“不解决伪目标,而是绕开伪目标”的做法,是 ART 最有价值的地方。它没有在一堆残次品里挑一个吃相最好的,而是重新定义了这顿饭应该怎么做。

3. 三个关键组件,把“高保真”落到实处

3.1 属性移除模块:把妆容和脸彻底解耦

“高保真”的第一道关口是怎么卸妆,而卸妆的核心是解耦。如果卸妆模块输出的底脸连五官都模糊了,后面上妆再漂亮也白搭。

ART 里的属性移除模块,实际上是一个“妆容感知”的残差结构。具体来说,编码器提取特征后,这个模块会预测一张注意力图 M,它表示每个空间位置与“妆容属性”的相关程度。嘴唇、眼皮、脸颊这些位置的注意力值高,额头、耳朵、背景这些位置注意力值低。然后特征图被拆成两部分:妆容相关特征(attention 掩膜加权后的部分)和身份相关特征(剩余部分),前者被直接丢弃或做特征减法。

这里有一个训练时的关键细节:模块并没有显式的“妆容 mask”做监督,这个 mask 是网络从数据里自己学出来的。为了让 mask 学得干净,论文里引入了一个正交性损失——身份特征和妆容特征的 Gram 矩阵要趋于正交,强制两条特征通路的信息不互相串门。

这个设计的工程价值在于:当你把“身份”和“妆容”在特征层面分离之后,后续如果要换参考图、做妆容强度调节、甚至做微调编辑,都变得非常简单。你不必重新训练模型,只需要在特征空间里调一下注入的强度系数。

3.2 空间可控上妆模块:让口红只落在嘴唇上

第二个关键模块是上妆。上妆要解决的核心问题是“空间可控”。如果只是简单地把参考图风格搬到整个画面,那么唇色会染到牙齿上,眼影会漫到眉毛上,这显然不可接受。

ART 的做法是用空间调制(Spatial Modulation)来代替全局风格迁移。它借鉴了 StyleGAN 里 AdaIN 的思路,但关键改进在于:调制参数不再是全局共享的,而是基于一个位置感知的先验分布。

具体来说,网络会在训练过程中学习一个“软语义分区”,相当于一个可学习的、粗细不一的人脸区域分割。这个分区把画面划分成嘴唇、眼部、脸颊、额头、背景等区域,然后每个区域使用独立的调制参数。参考图 R 的风格编码器会把妆容属性解耦成 K 个风格的向量组(论文实验里 K=3 最稳定,对应唇、眼、颊三个主要彩妆区域),分别注入到对应的空间位置。

这一招的效果是,输出图中红色只会出现在唇区,眼影只会晕染在眼皮和眼窝,腮红只会落在颧骨附近。在 512×512 分辨率下,这种区域性调制还能通过多尺度特征金字塔,进一步保证小区域(比如唇线、睫毛根)的颜色边界锐利。

3.3 四路损失监督:对抗、感知、身份、风格

网络结构是一回事,能不能训练起来,要看损失函数设计得巧不巧。ART 的损失函数由四路监督组成,每一路负责一个维度的“保真”。

第一路是对抗损失。在网络末端放置两个判别器:一个全局判别器负责整体画面的真实性,一个区域判别器负责嘴唇、眼睛、脸颊等局部区域的真实性。对抗损失的存在让输出图的纹理不再是“光滑的塑料感”,而是有真实的皮肤肌理和彩妆质地的过渡。这也是“高保真”里“自然”这一层含义的来源。

第二路是感知损失。在 VGG19 的多个层级上计算 L1 距离,让生成图在语义结构上和底脸保持一致。它保证了上妆后的脸仍然是同一张脸,五官没有变形、移位。

第三路是身份损失。把生成图和源图分别输入 FaceNet 或 ArcFace,计算特征向量的余弦距离。这一路权重设置要小心,太大会压制妆容效果,让模型“不敢上妆”,太小则可能出现身份漂移。按照我的调参经验,身份损失的权重取感知损失的 0.3~0.5 倍是个安全范围。

第四路是妆容一致性损失。这一步的核心不是“原图重建”,而是“风格对齐”。它将生成图和参考图分割成语义区域,并在每个区域内分别计算颜色直方图和 Gram 矩阵的距离。这使得生成的妆容不是像素级别的粘贴复制,而是风格级别的意会。同样是红唇,ART 生成的唇色会和参考图保持一致,但唇形完全属于源脸。

4. 把ART跑起来:训练策略与工程落地的坑

4.1 数据对齐与预处理:偷懒必翻车

哪怕论文里的方法再漂亮,落到自己复现时,数据预处理往往是第一个翻车点。

这里最重要的经验是:底脸的质量完全取决于输入图的对齐质量。ART 的整个流程假设源图是“正面、中性表情、均匀光照”的人脸。如果输入是一张侧脸 45 度、头上有帽子、还带点逆光的图片,卸妆模块大概率会把帽子阴影当成妆容的一部分给卸掉,或者把反光当成高光处理,导致底脸出现诡异的色块。

推荐的做法是先用人脸关键点检测模型(比如 RetinaFace 或 MediaPipe)把五眼、轮廓、唇线、眉眼的关键点标出来,然后基于关键点做相似变换对齐,把眼睛位置固定到模板坐标。对齐之后,再统一裁剪到 256×256 或者 512×512。底层的妆容 mask 先验如果是用关键点插值生成的,会比纯卷积网络自己学出来的稳定得多,尤其是在训练初期。

数据增强方面,我建议不要用过于激进的颜色扰动,因为妆容迁移本身就是颜色敏感任务,色相偏移会直接污染妆容一致性损失。可以保留水平翻转、小角度旋转、轻度缩放,但对 HSV 通道的扰动要克制,否则网络会把颜色变换也当成可学习的目标,导致训练摇摇晃晃。

4.2 两阶段训练与端到端微调的取舍

ART 的完整训练流程不是一步到位的。论文里采用了两阶段训练,最后再端到端微调,这个设计在复现时非常关键。

第一阶段只训练“卸妆器”和重建解码器,目标是让网络学会从源图得到干净底脸。这个阶段不使用参考图,相当于训练一个鲁棒的“去妆容”网络。损失主要是重建损失加感知损失,对抗损失可以加得很轻,甚至不加。我试过一上来就把对抗损失拉满,结果底脸直接长出各种奇怪的纹理,看起来非常“假”,因为判别器给了过强的压力,网络不得不放弃一些真实细节来骗过它。

第二阶段把整个上妆路径接进来,开始训练风格编码器和空间调制模块。这时底脸编码器和卸妆器保持冻结,只更新新增模块。这样做的原因是为了防止梯度互相干扰——如果刚开始就端到端,网络会找到一条“捷径”:通过扭曲底脸来硬凑参考妆容,身份信息就保不住了。

等第二阶段训练稳定后,再解冻所有模块做端到端微调,用一个很小的学习率(1e-5 这个量级)让全网络协同。这个微调阶段的收益非常明显,尤其能消除两阶段交替带来的“风格感断层”——前一阶段生成的底脸如果含有一点妆容残留,后阶段上妆时会把残留放大,端到端微调能有效缓解这个问题。

4.3 推理性能优化与模型部署

实验做完了,真正想做成一个产品,就得考虑推理成本和边界情况。

ART 原始版本的主干网络如果直接部署,在 V100 上处理 512×512 输入大约需要 60~80ms。这个速度做离线批处理够了,但要做到手机实时试妆,还有一段距离。

我在落地时做了几个层面的优化。第一步是把骨干网络从 ResNet-50 换成 MobileNetV3 结构,并用知识蒸馏把训练好的大模型迁移到轻量网络上,这一步能节省约 40% 的耗时,同时指标退化幅度在可接受范围内。第二步是量化,用 TensorRT 做 INT8 量化,精度损失主要出现在唇部边缘,配合轻量的颜色校正层可以拉回来。第三步也是最有效的一步:在“换参考图但不换源图”的场景下,把源图的身份特征和底脸缓存下来,推理时只需要重新计算风格编码和上妆调制,这部分计算量只有全流程的 30% 左右。对于试妆类产品,这个优化几乎等于免费送了一倍的并发能力。

5. 实验验证:指标提升之外,更看细节差异

5.1 量化指标下,ART比此前方法强在哪

出一个方法,最终是要用数据说话的。ART 在 MT(Makeup Transfer)数据集和 CelebA-HQ 上的实验,是围绕“高保真”的三个维度展开的:全局真实性、身份保持度、妆容一致性。

第一个维度用 FID(Fréchet Inception Distance)衡量,主要看生成图整体的分布是否接近真实人脸分布。对比强基线 PSGAN,ART 能把 FID 从 30 出头压到 28 以内,这个数值在妆容迁移领域算是一个肉眼可感知的提升。要注意的是,FID 是分布层面的指标,它不会告诉你单张图好不好看,但对评估整个生成器是否偏移真实人脸的分布,还是有参考价值的。

第二个维度是身份保持度,计算生成图和源图在 FaceNet 特征空间里的余弦相似度。PSGAN 那一类方法通常能做到 0.85 左右,ART 报告的结果可以推到 0.92 以上。这个提升要归功于“卸妆再上妆”的流程设计——妆不直接改身份特征,而是以“经过身份编码约束的底脸”为画布去绘制。

第三个维度是妆容一致性,将生成图和参考图分割成语义区域后,计算各区域的颜色直方图距离和 LPIPS 感知距离。ART 在这个维度上没有碾压性的优势,它的口红颜色不能说和参考图“完全一样”,但在区域分布上更贴合参考妆效。这一点恰恰符合化妆的直觉——真正的妆容一致性,不在于每个像素都对齐,而在于“整体氛围”的还原。

5.2 定性对比:高保真到底高在哪

指标只能证明“比以前好了”,但“好”的细节在哪里,还要看定性结果。

我自己看对比图时,最强烈的感受是 ART 的输出图在“边缘”上干净非常多。旧方法生成的口红,往往在唇线和嘴角附近会有淡淡的晕染痕迹,就像涂口红时手抖了一下。ART 因为先卸妆得到了干净的底脸,再通过空间调制上妆,唇线的锐利程度明显更高,而且嘴唇的高光和哑光区域的过渡更自然。

眼部区域的提升也很明显。之前很多方法会在眼皮上产生“油亮”的不自然反光,那是循环一致性损失逼出来的残留。ART 的卸妆模块把眼皮原本的光泽结构先压平了,上妆时只添加参考眼影的颜色和分布,不再额外增加一个不可控的光泽分量,效果自然就更接近真实化妆。

5.3 消融实验给我的一手启发

再看消融实验,我个人觉得有三组结果特别值得琢磨。

第一组是去掉“属性移除阶段”的实验。如果直接把源图特征和参考图风格做一个简单的 AdaIN,不做卸妆,那么 FID 会立刻恶化到 34 以上,生成图出现严重的“两张脸重叠”感。这说明“先卸妆”不是锦上添花,而是整个流程的地基。第二组是去掉“空间调制”改为全局调制的实验。结果显示局部区域(唇部、眼部)的一致性分数会掉一截,原因显而易见——全局调制管不住空间位置,颜色只能往一旁乱跑。第三组是“端到端微调”的消融,去掉微调后,整体指标变化不大,但定性图上会出现底脸残留放大导致的轻微肤色不均。

这三组实验给我的启发是:ART 的收益不是来自某一个模块的威力,而是来自整个“解耦-重建”逻辑的闭环。哪个环节断了,高保真都会泄气。

6. 这套“解耦-重建”框架,远不止妆容迁移

6.1 从论文到产品:虚拟试妆与美妆电商的落地空间

妆容迁移从来不是一个只停留在论文里的任务,它的商业价值非常直接。美妆电商最大的痛点之一是“色号焦虑”——用户在网上看口红色板,总觉得跟涂到自己嘴上不是一回事。如果能让用户上传一张自己的素颜照,然后在 100 支不同色号的口红之间一键切换,所见即所得,这几乎是完美匹配 ART 能力的场景。

ART 的“底脸缓存”设计在电商场景尤其加分。用户只上传一次照片,系统可以离线把底脸和身份特征算好,之后每次换色号只需要重新计算风格编码和上妆调制,响应时间能压到几十毫秒。这在用户体量上去之后,服务器成本的优势会非常明显。

6.2 从妆容到泛属性编辑,ART思路的迁移价值

ART 的“属性移除+属性重建”思路,并不仅仅适用于妆容。年龄、肤色、光照、配饰,这些都属于“人脸属性”的范畴,而它们的共同特点是:和身份信息高度耦合,很难直接做图像翻译。

我在这方向做了一些探索,发现一个很有意思的结论:如果把人脸表情当作“属性”来移除和重建,ART 的框架可以直接迁移到“表情编辑”任务上。做法是先用表征模型把表情和身份解耦,移除表情特征,得到“中性表情底脸”,再把目标表情的风格向量注入回去。这个路径有天然的优势——它不需要配对的“表情数据集”,只需要无监督的“移除-重建”循环,这和伪目标问题的解法是同构的。

另一个看好的方向是数字人制作。虚拟主播换妆、换造型、换肤质,本质上都是“保持身份不变、更新风格属性”的任务。ART 的底脸特征天然适合做这种模板化生产。组合上姿势控制模型,可以搭建一条“任意脸型 + 任意妆容 + 任意动作”的自动化虚拟人生产流水线,这在直播、短视频、影视预演的工业化流程里都有切切实实的需求。

6.3 现存局限与可能的方向

ART 当然不是终点。就我现在复现和使用的体验来看,它有几个明显的边界。

对极端姿态和遮挡的鲁棒性问题仍然没有彻底解决。虽然空间调制让妆容能贴合五官,但当输入图是大幅度侧脸、低头,或者佩戴眼镜、口罩时,语义区域的先验会被破坏,上妆的位置容易偏移。这个问题需要结合更鲁棒的人脸对齐模型,或者引入 3D 先验来解决。

高分辨率下的细节还原还有提升空间。512×512 尺寸下,ART 的口红、眼影的颜色分布已经相当稳定,但睫毛、眉毛这些与结构强相关的纹理细节,在放大看时仍会显得略有涂抹感。如果能引入更强的频率域损失或者扩散先验,细节表现力应该还能再上一个台阶。

还有一点值得期待的是多参考图融合,也就是从参考图 A 拿唇色、从参考图 B 拿眼影、从参考图 C 拿腮红,组合成一个新的妆容。ART 的风格编码器已经把不同区域的风格向量解耦了,理论上做这个不需要改模型结构,只需要设计一个风格向量的拼接规则。如果有人在这上面做一套可交互的编辑产品,应该会非常好用。

我个人比较看好的方向,其实是 ART 背后这套“解耦-重建”范式在其他图像翻译任务里的泛化。很多任务的问题不是网络不够强,而是监督信号的伪劣程度太长没被正视。从“伪造伪目标”走向“拆解子问题”,ART 给整个领域提供了一个很有意思的起点。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询