论文:HybridAgent。
一句话概括:它不是重新发明一个恢复网络,而是把“用户说了什么、图像里有什么退化、该调用哪个工具、结果是否需要继续修复”串成一个自动闭环。
先给结论:它主要解决的是系统调度问题 #
读完这篇论文,我觉得最容易误解的一点是:看到 Agent、MLLM 和混合退化,很容易以为它提出了一个新的生成式图像修复模型。其实不是。
HybridAgent 的主体可以写成:
$$ \text{用户指令} \rightarrow \text{意图解析} \rightarrow \text{退化识别} \rightarrow \text{恢复工具调用} \rightarrow \text{结果反馈}. $$真正修改像素的是 PromptIR 系列的恢复工具;Agent 负责决定调用什么、以什么顺序调用,以及什么时候停止。它没有动态生成一个新的恢复算法,也没有在推理时重新训练恢复网络。
这件事看起来像“加了几个分类器”,但它确实击中了传统图像修复系统的一个实际问题:模型越来越多,用户却必须先知道每个模型适合什么退化。
为什么要做 HybridAgent #
传统方案大致分成两类。一类是单任务模型,一套模型只处理噪声、模糊或雾霾中的一种;另一类是 All-in-One 模型,用一个网络覆盖多种退化。它们的共同点是:模型本身不会替用户判断,也不会根据修复结果自动调整下一步操作。
现实图像往往并不干净利落。雨滴、模糊、噪声、压缩伪影和低光可能同时出现。用户说“帮我修一下这张老照片”,系统不能只靠一个关键词判断究竟该去噪还是去模糊。
近年的 MLLM 修复 Agent 解决了“能看懂指令”的问题,却又出现两个新麻烦:简单的“去除噪声”也要调用重型多模态模型;复杂退化被拆成“先去雾、再去噪、再去模糊”后,每一步的误差会传给下一步。
HybridAgent 的思路就是把调度分层,并且给复合退化准备一个可以一次处理的工具。
三个 Agent 分别看到什么、输出什么 #
FastAgent:只看文字的快速分流 #
FastAgent 使用轻量级 LLM(Llama 3.2-1B-Instruct),输入只有用户文本,不看图像。它处理的是明确、低歧义的指令,例如:
“去除这张照片里的噪声。”
这种情况下,系统不需要调用视觉大模型,FastAgent 直接输出去噪工具名即可。如果用户只说“修复一下这张图片”,文字本身无法确定退化类型,FastAgent 就把请求转交 SlowAgent。
所以 FastAgent 不是图像恢复器,更像一个低成本的前置路由器。论文报告的核心收益是:简单请求不再经过重型 MLLM,平均推理耗时降到纯 SlowAgent 流程的约 12%。
SlowAgent:看图识别退化 #
SlowAgent 使用经过图像修复指令微调的多模态大模型。它接收图像、用户的模糊描述以及已有的历史信息,输出对退化类型的判断和工具调用建议。
它可以判断噪声、高斯模糊、运动模糊、JPEG 伪影、雨、雾、暗光以及混合退化。这里才真正发生图像理解,但它仍然不直接恢复像素。
FeedbackAgent:判断是否继续 #
图片经过工具处理后,会送入 FeedbackAgent。它看到的是修复结果和工具历史,输出一个相对简单的决策:
$$ \text{Continue}\quad\text{or}\quad\text{End}. $$如果结果已经足够干净,流程结束;如果仍有明显残留,就把当前结果送回 SlowAgent 重新识别,再调用下一个工具。它提供的是闭环,而不是一次性“调用完就结束”。
这里也要保留一点边界感:FeedbackAgent 主要判断“还有没有明显退化”,并不能严格证明图像内容没有被改错,也不等于一个真正理解图像语义的审美评委。
SlowAgent 为什么要多数投票 #
MLLM 对同一张图的判断并不总是稳定。一次可能说是噪声,下一次可能把噪声误认为运动模糊。若系统只相信一次判断,错误工具调用会直接破坏结果。
论文对同一张图重复询问 SlowAgent 多次,再统计退化类别的出现频率。例如五次判断为:
噪声、噪声、运动模糊、噪声、噪声最终选择噪声工具。形式上可以写成:
$$ \hat d=\arg\max_{d\in\mathcal D} \sum_{n=1}^{N}\mathbf 1(d_n=d), $$其中 $d_n$ 是第 $n$ 次识别结果,$\mathcal D$ 是退化类别集合。
多数投票不能消除 MLLM 的所有幻觉,但能过滤少数异常判断,尤其适合这种“识别结果最终要驱动工具调用”的场景。代价也很直接:每次投票都要多调用几次 MLLM,时间和显存开销会上升,因此它更适合 SlowAgent 路径,而不适合所有请求默认启用。
Agent 最终调用的恢复器是什么 #
恢复工具不是一个会自己规划的通用大模型,而是 PromptIR 系列的图像恢复网络。论文采用三阶段训练:
Stage I:训练共享基础模型 #
先在多类退化数据上训练一个共享底座,让模型学习不同图像恢复任务之间的通用特征。网络前部使用更强的 RHAG/移位窗口模块,增强对多种退化的表征能力。
Stage II:用 LoRA 得到单退化工具 #
在基础模型上针对噪声、模糊、JPEG、雨、雾、暗光等退化分别进行 LoRA 微调。提示参数重新初始化,并和 LoRA 一起训练:提示负责传递退化描述,LoRA 负责适配深层退化特征。
因此,系统不需要为每个工具复制一套完整网络,而是共享主干,只切换轻量适配器。
Stage III:训练混合退化工具 #
最后再训练一个专门处理复合退化的 LoRA 工具。它使用混合退化合成数据,并用 Stage II 学到的提示参数初始化,使模型同时继承通用底座和单退化工具的知识。
为什么不能简单地逐项修复 #
如果退化之间互不影响,当然可以先去噪、再去模糊。但真实退化通常是纠缠的。去雾会改变亮度和对比度,去噪会抹掉本来就很弱的纹理,去模糊又可能放大压缩伪影。第一步的输出已经不是第二个模型训练时看到的输入分布。
把三个工具串起来,相当于:
$$ I_1=f_{\text{denoise}}(I),\qquad I_2=f_{\text{deblur}}(I_1),\qquad I_3=f_{\text{dehaze}}(I_2). $$每个函数都只针对自己的训练分布优化,$I_1$、$I_2$ 的误差会不断累积,后面的工具还可能把前一步产生的伪影当成真实结构。
混合工具则直接学习:
$$ \hat I=f_{\text{hybrid}}(I_{\text{rain+noise+blur+...}}), $$让多种退化在同一次特征提取和重建中共同建模。论文的复合退化实验中,混合工具与单工具配合的方案平均 PSNR 从约 19.84 提升到 24.83,LPIPS 从约 0.444 降到 0.284。这个结果支持了“同步处理比盲目串行更稳”的判断。
但这并不意味着串行流程完全没用。对极端或训练集没有覆盖的退化,混合工具先做整体修复,再用一个专门工具微调,可能比一次性全交给混合模型更可靠。FeedbackAgent 的价值就在于决定是否需要这一步。
它和 Diffusion、All-in-One、动态退化采样是什么关系 #
和 Diffusion 的关系 #
HybridAgent 本身不是 Diffusion。它的恢复工具是 PromptIR 系列的前馈式网络,不通过扩散时间步逐步采样。Agent 可以调度 Diffusion 修复器,但本文的核心实验并不是在设计新的扩散过程。
和 All-in-One Restoration 的关系 #
All-in-One 模型试图用一个网络覆盖多种退化;HybridAgent 则把多个专用工具、混合工具和调度逻辑组织成一个系统。前者重点是“一个模型能做多少事”,后者重点是“系统知道什么时候调用什么工具”。
和动态退化采样的关系 #
动态退化采样发生在训练数据层面,例如根据任务性能变化调整不同退化的采样概率。HybridAgent 不修改训练数据分布,也不在线调整数据权重。它处理的是推理时的用户请求、退化判断和工具路由。
这篇论文到底贡献在哪里 #
我认为它最有价值的地方有三点:
- 把简单请求和复杂请求分开,避免所有任务都消耗 MLLM;
- 用多数投票降低视觉语言模型一次判断错误造成的误调用;
- 用混合退化工具替代机械的逐项串行修复,并通过 FeedbackAgent 保留必要的迭代空间。
它没有解决的事情同样重要:Agent 没有参与恢复网络的训练策略学习;FeedbackAgent 不能保证内容语义绝对正确;混合工具仍然依赖预先定义的退化集合;对开放世界中完全未知的退化,系统能力最终受工具库限制;三个 Agent 很大程度上仍是专用路由器和二分类器,而不是能够长期规划、自主学习的通用智能体。
所以我的评价是:HybridAgent 的创新主要在系统层,而不是恢复网络层。它把“模型选择”变成了一个可以自动完成的过程,也把多退化修复从固定串行流程推进到“混合工具主修复 + 反馈迭代”的组合方式。对于普通用户和真实复杂图像,这种系统化改造很实用;但如果只问“恢复模型本身有没有新的理论”,答案并不强。
PS:我觉得还可以继续追问的几个问题 #
第一,论文中的多数投票次数、温度和随机性如何设置,会直接影响速度与稳定性,最好报告完整敏感性实验。第二,FeedbackAgent 只判断是否干净,未来可以加入 OCR、颜色一致性、结构相似度或局部伪影检测,避免“看起来干净但内容被改坏”。第三,混合退化工具目前依赖预先定义的退化组合,真正开放世界的系统还需要退化组合生成器或更强的工具发现机制。第四,若把动态数据配比策略用于 HybridAgent 的训练集,可能进一步减少某些工具的过拟合,但这属于训练数据调度问题,不是本文已经解决的内容。