跳转至

AddMe: Zero-Shot Group-Photo Synthesis by Inserting People Into Scenes

会议: ECCV 2024
arXiv: 无
代码: 无
领域: 图像生成
关键词: 人像插入, 群体照片合成, 扩散模型, 身份保持, 零样本生成

一句话总结

本文提出 AddMe,一个基于扩散模型的零样本人像生成器,通过身份解耦适配器和增强型人像注意力模块,能够将给定的人像自然地插入到现有场景图像的指定位置,同时保持身份一致性和群体交互的合理性。

研究背景与动机

领域现状:大型文本到图像扩散模型(如 Stable Diffusion)在高质量图像生成方面取得了巨大进展。个性化定制方法(如 DreamBooth、IP-Adapter)可以根据参考图像生成特定人物的新图像;图像编辑方法(如 Inpainting)可以对局部区域进行修改。然而,将特定人像的面部身份插入到已有照片中——特别是群体照片合成——仍然是一个充满挑战的任务。

现有痛点:当前方法面临三个主要困难:(1) 现有个性化定制方法(如 DreamBooth)擅长生成包含目标人物的新图像,但无法精确控制人物在已有场景中的位置和姿态,难以完成"在已有群体照中指定位置插入新人"的任务;(2) 现有局部图像编辑方法(如 Inpainting)可以在指定区域生成内容,但对面部细节的处理能力不足,生成的面部往往缺乏真实感或无法保持目标身份;(3) 最关键的是,插入的人物需要与场景中已有的人物产生合理的空间和社交交互关系(如视线方向、身体朝向、相对距离等),这需要对群体照的上下文有深入理解。

核心矛盾:身份保持和场景融合之间存在天然矛盾——要保持身份就需要忠实于参考人像,但要自然融入场景就需要根据场景上下文调整人物的姿态、光照和表情,两者难以兼顾。

本文目标 (1) 如何在保持面部身份的同时,让生成的人像在姿态、光照和风格上与场景一致?(2) 如何确保插入的人物与场景中已有的人物之间存在合理的社交交互关系?(3) 如何实现零样本推理,不需要对每个新身份进行额外训练?

切入角度:作者设计了一个两阶段解决方案:首先通过身份适配器学习一个与场景中已有人物解耦的面部表征,然后通过增强型人像注意力模块在生成过程中捕获场景上下文,确保生成的人像与现有人物的交互合理。

核心 idea:通过解耦的身份表征和上下文感知的人像注意力,实现零样本条件下在群体照中自然插入新人像。

方法详解

整体框架

AddMe 基于预训练的文本到图像扩散模型构建,输入包含三部分:(1) 场景图像(可能已包含其他人物),(2) 待插入的参考人像照片,(3) 指定插入位置的空间条件(如 mask 或关键点)。整体流程分为两个关键模块的协作:身份适配器(Identity Adapter)从参考人像中提取与身份强相关但与场景中已有人物无关的面部表征;增强型人像注意力模块(Enhanced Portrait Attention)在扩散去噪过程中,让生成区域能够感知场景中已有人物的信息,从而产生合理的交互效果。最终输出为一张包含新人物的合成群体照片。

关键设计

  1. 身份适配器(Identity Adapter):

    • 功能:从参考人像中学习一个面部身份表征,该表征与场景中已有人物的特征解耦,确保不会"张冠李戴"
    • 核心思路:使用预训练的面部识别模型(如 ArcFace)提取参考人像的身份嵌入向量,然后通过一组可学习的映射层将其转换为与扩散模型兼容的条件向量。关键设计是解耦机制:在训练时,模型同时看到场景中已有人物和待插入人物的面部特征,通过对比学习约束确保身份适配器输出的条件向量仅编码待插入人物的身份信息,而不混淆场景中已有人物的特征。具体地,对于场景中已有的每个人物,计算其面部特征与身份条件向量的相似度,并通过对比损失最小化这种相似度
    • 设计动机:不做解耦的话,模型在生成时可能会将场景中已有人物的面部特征"泄漏"到新生成的区域,导致生成的人像与场景中的某个已有人物相似而非目标身份
  2. 增强型人像注意力模块(Enhanced Portrait Attention):

    • 功能:在扩散去噪过程中捕获场景上下文信息,使生成的人像能与场景中已有的人物产生合理的社交交互
    • 核心思路:在 U-Net 的 cross-attention 层中,除了标准的文本条件外,额外引入场景级别的上下文条件。具体做法是:将场景图像(排除待生成区域)经过编码器得到场景特征图,然后在每个去噪步的 attention 计算中,让生成区域的 query 不仅 attend 到文本嵌入,还 attend 到场景特征中与已有人物相关的区域。这使得生成过程能"看到"周围人物的姿态和位置,从而调整生成人物的朝向、表情和身体语言
    • 设计动机:群体照中人物之间通常存在社交互动——他们面向相机、彼此靠近、甚至有肢体接触。如果新插入的人物"无视"周围人的存在,合成结果会看起来非常不自然。通过让生成过程感知上下文,可以产生更真实的群体照效果
  3. 空间条件控制:

    • 功能:精确控制生成人像的位置、大小和基本姿态
    • 核心思路:方法兼容文本条件和多种空间条件输入,包括 binary mask(指定生成区域)、关键点(指定人体骨架)和语义分割图。这些空间条件通过 ControlNet 或类似结构注入到扩散模型中,使用户能够精确指定新人物的位置和基本姿势
    • 设计动机:群体照合成的实际使用场景要求用户能够精确控制新人物的位置(如站在某两个人之间),仅靠文本描述无法实现这种精细控制

损失函数 / 训练策略

训练采用标准的扩散去噪损失加上身份一致性损失和解耦对比损失的组合。身份一致性损失确保生成人像与参考人像在面部特征空间的距离最小化;解耦对比损失确保身份表征不被场景中已有人物污染。训练数据来自大规模群体照数据集,通过随机遮挡群体照中的一个人物来构造训练对。

实验关键数据

主实验

数据集 指标 本文(AddMe) 之前SOTA 提升
自建群体照测试集 身份相似度(FaceNet) 显著优于 Paint-by-Example, IP-Adapter 大幅领先
自建群体照测试集 FID 优于 对比方法 更好的图像质量
自建群体照测试集 人类偏好评测 优于 对比方法 自然度和身份保持双优

消融实验

配置 关键指标 说明
w/o Identity Adapter 身份相似度显著下降 无法保持目标人物身份
w/o 解耦机制 出现身份混淆 生成人像可能混合场景中已有人物的面貌
w/o Enhanced Portrait Attention 交互合理性下降 生成人物与周围人物缺乏互动感
Full Model 所有指标最优 各模块协同工作

关键发现

  • 身份解耦是群体照合成中至关重要的设计,没有它模型容易产生身份混淆
  • 增强型人像注意力有效提升了生成人像与场景交互的自然度,人类评测中这一指标提升最为显著
  • 方法在不同人数的群体照(2-8人)中都能保持良好效果,展现了对不同场景复杂度的鲁棒性
  • 零样本推理效率高,每个新身份无需额外训练即可使用

亮点与洞察

  • 身份解耦的设计非常关键且巧妙——在多人场景中,简单的身份注入会导致身份混淆,解耦机制从根本上解决了这一问题
  • 通过注意力机制实现场景上下文感知是一种优雅的方案,无需显式建模社交关系就能隐式生成合理的交互
  • 方法的实际应用价值很高——"帮不在场的人加入群体照"是一个非常常见的真实需求
  • 兼容多种空间条件(mask、关键点等)为用户提供了灵活的控制方式

局限与展望

  • 没有公开代码,可复现性受限
  • 当场景中人物非常密集或有严重遮挡时,合成效果可能下降
  • 对于侧面或极端角度的参考人像,身份保持的质量可能受影响
  • 未考虑视频场景——在视频中连续帧地插入同一人物并保持时序一致性是一个更有挑战性的方向
  • 潜在的伦理问题:该技术可能被滥用于深度伪造,需要考虑安全防护措施

相关工作与启发

  • 个性化图像生成(DreamBooth, Textual Inversion, IP-Adapter)是近年热门方向,本文将其从"生成"扩展到了"插入"这一更实用的场景
  • 图像 Inpainting 技术(如 LaMa, Stable Diffusion Inpaint)提供了区域生成的基础,但面部身份保持需要额外设计
  • 面部身份保持与场景融合的矛盾在换脸(face swapping)领域也有深入研究,本文方法的解耦思想可以借鉴到换脸任务中

评分

  • 新颖性: ⭐⭐⭐⭐ 群体照人像插入是一个新颖且有价值的任务定义,解耦+上下文感知的方案设计巧妙
  • 实验充分度: ⭐⭐⭐ 与多种基线对比充分,但缺少大规模定量评测基准
  • 写作质量: ⭐⭐⭐⭐ 任务定义清晰,方法动机充分,论述流畅
  • 价值: ⭐⭐⭐⭐ 实际应用价值很高,技术方案完整

相关论文