
做图像处理方向的同学应该都有过这样的经历导师一句你去调研一下Image Composition融图/溶图的最新进展你打开论文库一下子涌出来几百篇从泊松编辑到生成对抗网络再到扩散模型标题全都挂着 Image Composition但各自解决的问题却南辕北辙。我在实验室整理这条研究时间线的时候最大的感受就是这领域看着热闹其实每一代方法都有自己的假想敌。有的在解决颜色不自然有的在解决边界生硬有的在处理语义冲突到后来干脆允许模型把整块内容重新生成一遍。如果不先把这条线捋清楚选基线、做对比、旅顺创新点全都会是糊涂账。这份小结不是我一次性写完的文献综述而是我在实验室里一步步调研、复现、淘汰方法时攒下来的笔记。它把图像合成拆成几个演进时代每个时代我会讲清楚它当时要解决的核心问题、代表性思路的底层原理以及它为什么被下一代方法取代。适合刚进实验室的研究生、正在选融合/合成方向课题的人也适合想快速建立图像合成十几年到底发生了什么全局观的工程师。读完之后你至少能回答一个问题面对一个具体的融图任务应该去翻哪个时代的方法。1. 为什么要在实验室里专门整理一条融图研究时间线1.1 融图、溶图和合成三个被混用的概念先说术语。在中文语境里融图溶图经常混着用英文里也有 Image Composition、Image Blending、Image Harmonization 三个词分别强调不同的侧重点。Image Composition也就是图像合成是个大筐把一张前景图放到一张背景图上让它看起来浑然一体。Image Blending图像混合强调的是边界处的无缝过渡经典场景是把两幅图的像素做一个加权融合让接缝消失。Image Harmonization图像谐调化则不关心接缝而是强调前景要融入背景的光照、色调、阴影环境。比如你把一张阳光下的苹果贴进阴天室内场景边界没缝了但色调违和这就是谐调化要解决的。这三个词的区分不是咬文嚼字它直接影响你做实验时的评估方式和失败判定。我以前带过一个新人一开始盯着一篇谐调化论文的 loss 曲线调了三天后来发现他那实验根本是混合任务——对象搞错指标怎么调都没意义。1.2 一条时间线对实验室选题的实际价值实验室里常见两个极端一种人永远盯着最新模型觉得传统方法都是老古董另一种人抱着经典方法不放坚决不碰深度学习。这两类人有个共同盲区——不知道问题定义本身是怎么迁移的。拿我自己举例。我们实验室最开始接到的是一个把物体贴到新背景里尽量看不出破绽的需求我第一反应是用泊松融合加手工特征结果在纯色墙背景上性能很稳一换到有复杂反射的地面效果直接崩。后来读了谐调化方向的几篇深度方法才知道问题根本不在于接缝而在于前景与背景的光照一致性——模型必须理解场景光靠低层像素操作不够。这就是时间线的用处它帮你快速定位当前问题在哪一代方法的射程之内。所以这篇时间线小结的结构是按问题定义的迁移来划分的。接下来从传统时代讲起这部分往往被新人低估但很多关键直觉比如接缝到底差在哪梯度域为什么重要都是那时候沉淀下来的。2. 传统时代的方法遗产从图割到泊松编辑边界拼接的黄金年代2.1 图割与抠图的角色先弄清楚把谁放进去传统方法的第一件事不是融合而是分割。你得先用某种方式把前景从原图里抠出来。早期常用图割Graph Cut配合颜色分布模型把像素标记为前景或背景再通过 alpha matting 估算半透明区域的不透明度。这步做不好后面一切融合都白搭——边缘带着一圈原背景的毛边神仙来了也救不回来。这套流程到现在都没有过时。即便你用今天最先进的扩散模型做合成输入遮罩的质量依然直接决定输出质量。我实验里经常遇到一种情况模型明明很强大但 mask 边缘锯齿多结果生成区域跟周围纹理对不齐。这不是模型不够好是前处理没做到位。传统方法里的抠图思路——比如对边缘像素做透明度渐变估计——放在今天的前处理管线里依然是最可靠的方案。2.2 泊松编辑为什么能抹掉接缝梯度域重建图割解决的是抠出谁而真正让融合效果上台阶的是泊松图像编辑Poisson Image Editing。它的核心思想很反直觉直接抄像素颜色不行因为两幅图的绝对亮度差太大但抄变化量就可以。所谓变化量就是每个像素跟周围邻居的明暗差值学名叫梯度。泊松编辑把前景内部梯度原样保留同时把边界处的前景梯度与背景梯度强制对齐然后在这个约束下重新解出每个像素的颜色。用大白话说它不关心前景本来长什么样只关心前景内部的明暗纹理关系接缝处通过梯度约束让两边的变化趋势一致于是人眼就看不出边界了。这个方法极其优雅不需要任何训练数据也没有今天的显存问题跑一张图快得惊人。我在复现时对这个思路印象最深的一点是它把融合变成了解一个带约束条件的线性系统加上稀疏矩阵求解器几十毫秒就能出结果。这也是为什么直到今天很多工业级工具里的内容感知替换后台仍然是泊松编辑而不是动辄需要几秒推理的深度模型。2.3 传统方法的边界为什么后来又需要深度学习传统方法有两个硬伤。第一它只优化低层视觉一致性。如果前景物体在光源色温、阴影方向、材质反射上和背景完全冲突梯度域救不了——因为梯度域只描述变化描述不了这种变化是否符合物理规律。你把人像从室内拖到沙漠里泊松编辑能把边缘处理得看不到缝但人脸还是室内暖光整体依旧假。第二传统方法没有语义理解能力无法脑补前景中缺失的细节。比如你把一个玻璃瓶贴到背景里背景要在瓶子表面产生折射效果传统方法无法生成这些原本不存在的像素。这就需要模型知道玻璃瓶会折射周围环境这一层常识。深度学习进入这个领域本质上就是因为光靠低层数学不够了得让算法看懂画面里是什么东西、处在什么环境里。3. 深度学习入场从颜色迁移到语义感知的合成范式转变3.1 深度谐调化让前景的长相融入背景环境深度学习真正在图像合成里立住脚跟是从谐调化方向开始的。早期深度方法的思想非常直接拿一个编码器把前景背景都提炼成特征然后在特征空间里做匹配把前景的特征往背景的风格上靠拢。特征靠拢之后再通过解码器还原成像素。这比泊松编辑强在哪儿强在特征本身。卷积网络低层特征捕获颜色纹理高层特征捕获物体部件、场景结构。当算法在高层特征上做对齐其实是在对齐这两个区域属于同一种场景的证据。所以深度方法能处理的不仅仅是接缝问题还包括阴影方向、环境光、景深层次这些偏理解层面的不一致。效果最直观的体现是同一个前景贴到海滩和贴到雪地里深度方法给出的前景明暗、色调是明显不同的而传统方法给出来的基本一样。这套范式后来衍生出无数变体。有在 encoder 特征上加注意力模块的有把全局统计量做显式对齐的还有用多尺度结构让融合更细腻的。但万变不离其宗把合成理解为特征空间的重建问题。3.2 训练数据的造法合成样本里最关键的细节深度谐调化方法必须面临一个尴尬网络上很难找到同一张前景同时存在和谐版和不和谐版的真实对照数据。数据从哪来这个问题的答案几乎决定了方法的命运。主流做法是人工制造不和谐。具体分两步第一步选一批真实图像把图像内某个区域抠出来第二步对这个区域做强烈的全局变换比如改变对比度、饱和度、滤波纹理或色温让它突兀地嵌入原图构成一个不和谐的合成样本。训练时输入是不和谐版本监督信号是原图。模型要学会把不和谐区域恢复成原始模样。这个数据策略看似简单却藏着一个很容易被忽略的隐患如果变换每次都太强模型会学到凡是前景区域无脑去饱和变成粗暴的色彩恢复如果变换太弱模型没压力学不出泛化能力。我们实验室当时调数据生成管线花的时间比调模型还多实测下来强度范围要覆盖够宽、并且交替使用多种变换类型模型才会真正学到理解场景后再调整的策略。3.3 深度方法带来的评估转型深度学习入场后评价合成质量的方式也从主观目测转变为客观指标。传统做法靠肉眼盯着接缝看深度学习时代大家开始用 PSNR、SSIM还有专门针对合成任务设计的一些感知指标。这本来是好事但实验室里很容易陷入指标刷得高效果依然假的泥潭。原因在于很多指标对色彩变化非常敏感模型只要把前景色调往背景均值靠PSNR 就能大涨但视觉上纹理细节已经糊了。这块的经验是做合成方向一定要保留一个固定的主观评估集找几个不同难度的合成场景每次模型迭代都让组里人盲测打分。客观指标负责筛选候选模型主观盲测负责最终拍板。别把论文里的指标当圣旨尤其是那些涨了 0.2 个点就宣称碾压的工作自己复现一遍往往发现不过是评估配置差异。4. 生成模型的介入GAN如何把合成问题变成生成问题4.1 判别器的新角色质量评估器与数据分布约束谐调化方法的逻辑还是把有的东西改好而 GAN 时代的核心转变是把没有的东西生成出来。这个转变的关键推手是判别器网络。在融合任务里判别器不再只是输出猫还是狗而是判断这幅图是否由合成产生。训练过程变成了一场博弈生成器想把前景融合得让判别器认不出来判别器则被训练得更敏锐地寻找融合痕迹。这个机制有个非常实用的好处——它把质量评估这件事也交给网络学习了。传统方法永远在追求某个距离指标的最小化而 GAN 的优化目标是人眼最敏感的穿帮点比如边缘异常、色块突变、物体与环境的亮度不匹配。我个人的体会是判别器特别擅长挑出那种细看才能发现但一旦发现就很假的问题这些恰恰是像素级损失训练不出来的。4.2 StyleGAN与反演路线保留身份再创造GAN 时代另一个里程碑是 StyleGAN 这类生成模型出现后图像合成多了一条反演路线。所谓反演是指先把一张真实图像映射到生成模型的隐空间找到对应的隐向量然后在这个隐空间里修改属性再解码成新图。放到融图任务里就意味着你可以先把前景编码到隐空间在隐空间里让它的光照、纹理朝着背景环境偏移然后再解码出来前景的主体身份和结构被保留环境因素却被整体替换。这种路线的优势是合成结果非常自然因为生成模型本身就建模了真实人脸的分布或场景的分布输出的图像天然在合理图像流形上。代价是反演本身不稳定同一个前景图用不同初始化反演出来的隐向量能差出十万八千里导致最终效果忽好忽坏。我们在复现时就踩过这种坑同一个框架别人报告里效果惊艳自己跑出来人脸五官都换了排查到最后不是融合模块的问题而是反演步骤的初始化和迭代次数设置不当。4.3 时代更替的信号算力门槛与训练技巧这个阶段还有一件明显的事实验门槛突然变高了。谐调化时代的模型一张消费级显卡还能勉强跑起来到了 GAN 时代融合模型动辄两个子网络对抗训练还要加一堆辅助损失和特征匹配损失随便一个实验就是几个小时的训练量级。更麻烦的是训练不稳定。对抗训练的收敛判定本来就模糊加上合成任务里前景区域占比小、背景区域占比大判别器很容易被背景带偏对前景区域缺乏监督。一个常见的解决办法是给合成区域加权让前景区域的像素损失权重高一些或者单独给前景区域配一个小的判别器。这些技巧论文里很难写全基本都是实验室里一个坑一个坑踩出来的。我建议新人做这个方向时第一周别急着跑大模型先把经典对抗训练在小数据集上从头实现一遍建立起对生成质量波动的直觉后面调参能少走很多弯路。5. 扩散模型时代从拼接到重写的全面换血5.1 扩散先验凭什么能同时处理光照、结构和语义最近一年扩散模型几乎重塑了图像合成的方法论。扩散模型的特点是在海量图文数据上预训练内部已经沉淀了一套关于真实世界图像的先验知识光照怎么打、物体怎么遮挡、材质怎么反射。这些知识恰好是传统方法和早期深度方法最欠缺的。在合成任务里扩散模型不只是做特征匹配它可以想象出前景在当前背景中最合理的样子。直观感受是你不再把前景当成一个不可修改的资产而是当成一个被深度先验接管的草稿。它以背景上下文为条件一步步去噪把前景区域重新绘制到与背景语义一致的状态。这个能力对之前那些语义级不一致的问题——比如反射、投影、环境光——是降维打击因为模型见过太多玻璃杯在桌面上会产生什么影子之类的真实样例。5.2 区域重绘与引导生成合成即局部重新想象目前实验室里最常跑的扩散合成路线可以拆成两步。第一步利用语言或区域描述明确要把前景区域改造成什么;第二步用扩散模型做局部重绘只对前景区域重新生成背景保持不变。这种路线最大的优点是灵活。你可以用一句自然语言控制把它变成黄昏暖光下的同款物体模型就会结合背景光照把前景重新绘制出来。相比 GAN 时代扩散合成对输入细节更宽容不需要精心调节隐空间参数只需要好的提示词和合适的重绘强度。对实验室做原型验证来说这种少调参、多出效果的特性很友好。不过它也有新麻烦。扩散模型逐步去噪天然偏慢一张高分辨率图的重绘经常要迭代几十步等于把传统方法的几十毫秒拉长到几秒钟。做批量评估的时候这个成本几乎会拖垮整个实验循环。我们实验室的做法是先在小分辨率上做方案筛选确认路线可行之后再上高分辨率精修能节约大量时间。5.3 时间线的最新一段评估标准也在跟着变扩散模型把合成任务从融合推向生成评估标准也在发生迁移。以前我们关心 PSNR、SSIM、边界是否可见现在大家更关心生成内容是否真实合理是否符合背景语义是否保留用户指定的前景身份。这意味着评估要从像素对齐转向语义真实和身份保留。前者有明确标准答案后者却带有主观性。现在的主流做法是组合评估低层用经典指标高层用用户调研或者用另一个预训练模型来判断内容一致性。但这里有个需要注意的问题大模型自评也会被自己的先验误导尤其当合成结果完全偏离训练分布时自评分数会虚高。别把模型评分当作绝对真理重要结果一定要人工排查。6. 把时间线落回实验室日常复现、选型与一点私货6.1 按任务选时代的实操建议这条时间线捋完之后最直接的用处是选型。我给实验室内部总结过一张任务分类对号入座表现在写在这里基本可以当做一个起点参考。任务表现优先考虑的方法时代边界接缝明显背景相对简单泊松编辑、图割加 alpha matting光照色调不自然整体违和深度谐调化模型前景有遮挡、需要生成缺失细节GAN 或扩散模型只改局部且要保留身份特征GAN 反演路线文本引导、随意性强、场景复杂扩散模型重绘一个容易被忽略的点是传统方法往往是输出稳定的下限。如果你有一个必须按时交付的演示系统建议先用泊松编辑兜底再去尝试深度方案否则很容易被训练不稳定拖住。我们在一次组内进度评审前就吃过亏一上来就上生成模型结果这个星期效果很好下个星期换了个显卡驱动训练直接崩了。稳定压倒一切先有一个能跑的方案再谈锦上添花。6.2 复现几个时代的常见坑下面这些坑我几乎都在实验室里替大家踩过每个都值得记一笔。第一评估数据集的偏差。早期深度谐调化方法的测试集倾向使用简单场景前景和背景的色温差异大但结构简单导致指标虚高。复现时一定要自己构造几个刁钻场景——比如纹理密集背景、带镜面反射的物体、有明确方向光源的室内图——再判断方法的真实水平。第二扩散模型的随机性。同样输入不同随机种子会得到差异巨大的合成结果这一点经常被论文故意忽略。复现时至少跑 5 个种子取中位数效果或者展示最佳和最差案例的差距才能判断方法是否真的稳定。第三mask 的精度问题。前面提过几乎所有方法都对输入 mask 的质量敏感但论文里给的 mask 都是人工精标的工程里的自动抠图却充满噪声。所以模型验证要用精标 mask实际部署则要在自动 mask 上专门测一遍鲁棒性。6.3 给实验室后来者的工具书式建议如果组里刚来人做这个方向我通常建议按照这条时间线的顺序读代码而不是按论文标题读。先读泊松编辑的裸实现理解线性求解和梯度域再读一个谐调化模型搞懂特征对齐和合成数据造法接着读一个 GAN 时代的融合框架体会对抗损失和不稳定训练最后再看扩散模型把重绘和引导生成的套路吃透。四步走完对全领域的理解会比乱读几十篇论文扎实得多。做时间线还有个额外的好处它逼着你给每个方法定位。当你能够说清楚这个方法在哪个环节强、哪个环节弱、被后来的什么思路替代你就已经具备了独立判断一个新方法到底新在哪的能力。这在实验室选题和论文评阅里都非常实用。最后说点个人体会。图像合成是个特别容易让人沮丧的方向因为评价标准永远在变你辛辛苦苦做出的效果图换一个场景可能就直接穿帮。但同时它又很公平——每一代方法确实在解决上一代解决不了的问题只是解决完之后新的更接近真实感知的问题又会浮现出来。读懂这条时间线上问题怎么一步步逼近真实视觉感知比背下任何模型结构都更有价值。这条时间线我也还在持续维护等扩散之后的下一代思路出现再把新的笔记补进来。