论文阅读 PromptIR: Prompting for All-in-One Blind Image Restoration

论文阅读 PromptIR: Prompting for All-in-One Blind Image Restoration

作者:Syed Waqas Zamir, Aditya Arora, Salman Khan, Munawar Hayat, Fahad Shahbaz Khan, Ming-Hsuan Yang

机构:Mohamed bin Zayed University of AI, Linköping University

来源期刊:NeurIPS

发表时间:2023年
 

一、研究动机

        1.研究目标


        构建一个“All-in-One”盲图像复原网络,用单一模型、单次训练、无需先验地处理多种退化(去噪、去雨、去雾),并在各任务上均达到 SOTA 性能。

        2.过去方法


        任务专用网络:DnCNN、MPRNet、Restormer 等,每类退化需独立模型,存储/部署成本高。
         早期 All-in-One:AirNet 用对比学习额外训练退化编码器,两阶段训练、参数量大,且对退化表征耦合严重。
        通用视觉 Transformer:SwinIR、Uformer 等需针对任务微调,没考虑过退化统一。

         3.本文方法      


        核心思想:把“退化类型”当作可学习的轻量提示(prompt),在解码阶段动态注入网络,引导特征自适应恢复。
关键模块:
        Prompt Generation Module (PGM):根据输入特征实时生成退化条件提示。
        Prompt Interaction Module (PIM):将提示与图像特征做通道级拼接 + Transformer 融合,实现退化感知恢复。
        整体为 4 级 U 型 Transformer,仅在解码器侧插入 3 个 Prompt Block,即插即用、端到端单阶段训练。

        4.优势以及创新点


        ① 首个把提示学习引入低层视觉,用 <0.5% 的额外参数实现多任务统一。
        ② 无需退化先验或对比学习,训练友好。
        ③ 在 denoising/deraining/dehazing 三大任务 6 个公开测试集上,平均 PSNR 比 AirNet 高 0.86 dB,最高领先 2.64 dB;参数量仅 26 M,推理速度提升 1.7×。
        ④ Prompt Block 架构无关,可一键嵌入任意现有复原网络。

二、算法主要思想与原理详解

PromptIR架构概述
  1. Prompt 架构整体就是在Restormer 的架构基础上在每层采样之间加上了一个Prompt Block模块。
  2. 整体流程
    输入退化图 I ∈ R^(H×W×3)
    → 卷积提取浅层特征 F0
    → 4 级编码器(Transformer Block 数=[4,6,6,8])下采样到 1/8 分辨率
    → 解码器逐级上采样,每两级间插入 1 个 Prompt Block(共 3 个)
    → 输出复原图 Î

        3.Prompt Block 内部机制
        (1) PGM:动态生成提示
        Fl ∈ R^(Hi×Wi×C)
        → GAP → 向量 v ∈ R^C
        → 1×1 Conv 降维 → Softmax 得权重 w ∈ R^N(N=5 个 prompt components)
        → w 对可学习组件 Pc ∈ R^(N×H×W×C) 加权求和 → 输入条件提示 P

        (2) PIM:提示-特征交互
           通道拼接 → 送入标准 Transformer Block:
        – MDTA(Multi-Dconv Head Transposed Attention)
          在通道维计算自注意力,复杂度 O(C^2) 而非 O(HW^2),适合高分辨率。
          输出 Y = Wp·V·Softmax(K·Q/α)+X
        – GDFN(Gated-Dconv Feed-Forward)
          两路 1×1+3×3 深度卷积,一路 GeLU 激活后逐元乘,增强非线性且抑制噪声。
        → 3×3 Conv 输出增强特征 F̂l

三、实验结果

  1. 数据集
  2. 训练:BSD400+WED(denoising)、Rain100L(deraining)、SOTS-indoor(dehazing)合并,共约 7.7 万张128×128块。
  3. 测试:
    – BSD68、Urban100(denoising σ=15,25,50)
    – Rain100L(deraining)
    – SOTS-indoor(dehazing)
  4. 评价指标
    PSNR (dB) 、SSIM 

四.定性试验​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

去雨场景下的性能对比

单任务专用模型再对比:
 去雾:PromptIR 31.31 dB,比 AirNet 高 8.13 dB,比 Restormer 高 0.44 dB。
 去雨:37.04 dB,比 AirNet 高 2.13 dB。
 去噪 σ=50:29.39 dB(Urban100),比 AirNet 高 0.51 dB。 

去噪场景下的性能对比

定量结果(All-in-One 单模型)

全集成修复场景下的性能对比分析
去雾场景下的性能对比
图片去雨比较
图片去噪比较
  1.  去雾场景,PromptIR 彻底去除远处雾幕,建筑边缘无伪影;AirNet 有残留灰色雾墙。
     去雨场景,雨丝密度高时,PromptIR 无条纹残留,车牌文字清晰;AirNet 可见轻微雨痕。
     去噪 σ=50,纹理细节(砖缝、窗户)保持完整,无过度平滑。
  2. 消融实验
图片去雾比较
消融实验

        无 Prompt Block:平均 PSNR 降 0.38 dB。  固定 Prompt:再降 0.19 dB。 Prompt 放在编码器+解码器:性能反而下降 0.92 dB,说明“解码器单侧注入”最佳。  未见噪声水平 σ=35:AirNet 仅 13.64 dB,PromptIR 21.03 dB,差距 7.4 dB,验证泛化能力。

五、结论

PromptIR 首次把提示学习引入图像复原,用极轻量插件实现“一个模型、三种退化、盲设置”下的新 SOTA。未来工作将:

  1. 把 Prompt Block 拓展到更多退化(模糊、低分辨率、混合失真)以逼近“通用复原大模型”
  2. 结合物理退化模型与对抗训练,进一步提升极端场景鲁棒性

Read more

Llama Factory微调优化:如何选择最佳的超参数

Llama Factory微调优化:如何选择最佳的超参数 微调大语言模型(LLM)是让模型适应特定任务的关键步骤,而选择合适的超参数往往决定了微调效果的好坏。作为一名刚接触Llama模型微调的研究人员,面对众多超参数选项时可能会感到无从下手。本文将基于LLaMA-Factory框架,分享如何选择最佳超参数的实用指南,帮助你在有限资源下获得更好的微调效果。 这类任务通常需要GPU环境支持,目前ZEEKLOG算力平台提供了包含LLaMA-Factory的预置镜像,可快速部署验证。下面我们将从关键参数解析、显存优化策略到典型配置方案,一步步拆解超参数选择的奥秘。 关键超参数解析与作用 1. 学习率(Learning Rate) * 作用:控制模型参数更新的步长,是最重要的超参数之一 * 典型范围: * 全参数微调:1e-5到5e-5 * LoRA微调:1e-4到5e-4 * 调整建议: * 初始可设为3e-5(全参)或3e-4(LoRA) * 观察loss曲线,如果震荡剧烈则降低学习率 2. 批量大小(Batch Size) * 显存影响:与显存消耗成正比关系

英文论文查AI率,用这两个权威的AIGC检测工具!

现在英文论文也需要检测论文AI率了,针对英文论文AI率检测,目前有两个系统可以用来检测AIGC率,主要是IThenticate系统和Turnitin系统。 一、IThenticate检测系统 IThenticate检测系统:http://students.ithenticate.checkpass.net/ Ithenticate为Turnitin公司旗下的反剽窃检测系统。2000年1月13日,12个世界顶级学术出版商联合创办了非营利性会员制协会组织CrossRef, 世界上绝大多数顶级出版商均为此联盟成员。 该系统没有版本的选择,目前检测得到的报告是自带有AI率的报告。 二、Turnitin国际版+AI Turnitin国际版+AI检测:https://truth-turnai.similarity-check.com/ 这个系统实际上也是属于turnitin系统,但是这个主要是针对目前比较流行英文内容的AI内容进行检测,使用这个网址进行检测的话,是可以出具AI报告和查重报告的。 同一篇内容,使用Turnitin系统检测AI率的结果: 使用IThenticate系统

技术速递|GitHub Copilot SDK 与云原生的完美融合

技术速递|GitHub Copilot SDK 与云原生的完美融合

作者:卢建晖 - 微软高级云技术布道师 排版:Alan Wang 引言 在当今快速演进的 AI 技术格局中,我们已经见证了从简单聊天机器人到复杂智能体系统的转变。作为一名开发者和技术布道者,我观察到一个正在形成的趋势——重点不在于让 AI 无所不能,而在于让每一个 AI Agent 在特定领域做到极致、做到专业。 今天,我想分享一套令人兴奋的技术组合:GitHub Copilot SDK(将生产级智能体引擎嵌入任意应用的开发工具包) + Agent-to-Agent(A2A)Protocol(实现智能体标准化协作的通信规范) + 云原生部署(支撑生产系统的基础设施)。这三者结合在一起,使我们能够构建真正具备协作能力的多智能体系统。 从 AI 助手到智能体引擎:重新定义能力边界 传统的 AI 助手往往追求“全能”——试图回答你抛给它的任何问题。但在真实的生产环境中,这种方式会遇到严重挑战: * 质量不一致:一个模型同时写代码、做数据分析、

使用 LLaMA-Factory 微调 Qwen2.5 模型,并转换为 GGUF 格式部署

在开源大模型领域,Qwen 系列凭借强大的中文能力和友好的协议受到广泛欢迎。然而,直接使用基座模型往往无法满足特定业务场景的需求,需要通过微调来注入领域知识。微调后的模型如何高效部署?GGUF 格式是目前 llama.cpp 等推理后端广泛支持的格式,具有跨平台、内存映射等优点。本文将完整记录使用 LLaMA-Factory 微调 Qwen2.5-7B-Instruct 模型,并通过 llama.cpp 将微调后的模型转换为 GGUF 格式的全过程,并分享在转换过程中遇到的经典错误及其解决方案。 1.环境准备 我们在一台 Linux 服务器上操作,安装了 Conda 用于环境隔离。需要准备以下组件: Python 3.10 LLaMA-Factory(用于微调) llama.cpp(用于格式转换) transformers、peft、accelerate 等依赖库 1.1