当前位置: 首页 > news >正文

【超分辨率专题】PiSA-SR:单步Diff超分新突破,即快又好,还能在线调参

在这里插入图片描述


PiSA-SR:单步Diff超分新突破,即快又好,还能在线调参(2025,CVPR)

  • 专题介绍
  • 一、研究背景
  • 二、方法细节
    • 2.1 目标解耦小妙招:双LoRA训练策略
    • 2.2 像素和语义的双损失约束
    • 2.3 可调参的推理方案
  • 三、实验论证
    • 3.1 🔬**可调效果的实验分析**
    • 3.2 🔬**与其他方法对比实验**
    • 3.3 🔬**消融实验**
  • 四、总结和思考

本文将对《Pixel-level and Semantic-level Adjustable Super-resolution: A Dual-LoRA Approach》这篇文章进行解读,这是一篇关于SR领域内的单步Diff技术方案,简称PiSA🍕,跟OSEDiff是同一个研究团队,性能和功能都会优于OSEDiff。参考资料如下:
参考资料如下:
[1]. PiSA论文地址
[2]. PiSA代码地址


专题介绍

现在是数字化时代,图像与视频早已成为信息传递的关键载体。超分辨率(super resolution,SR)技术能够突破数据源的信息瓶颈,挖掘并增强低分辨率图像与视频的潜能,重塑更高品质的视觉内容,是底层视觉的核心研究方向之一。并且SR技术已有几十年的发展历程,方案也从最早的邻域插值迭代至现今的深度学习SR,但无论是经典算法还是AI算法,都在视觉应用领域内发挥着重要作用。

本专题旨在跟进和解读超分辨率技术的发展趋势,为读者分享有价值的超分辨率方法,欢迎一起探讨交流。

系列文章如下:
【1】SR+Codec Benchmark
【2】OSEDiff

一、研究背景

在图像复原任务中,像素级保真度和语义级感知在一定程度上是相互矛盾的,很多研究致力于解决这种矛盾,但难度很大。有一种解决方式是提供可灵活调整效果的方案,即无需训练,动态调整模型推理结果,以适应不同应用和个人喜好。

前几年有人提出交互式的SR方法来控制恢复强度,通过制作不同程度的退化数据对(如噪声和模糊),配合控制向量(作为输入),从而训练出可调模型。修改控制向量,使得模型给出不同程度平滑或增强的输出,这类方案比较依赖于数据退化策略。

如今有一些基于stable diffusion(SD)的多步SR方法,在每个采样步骤使用特定的引导策略(如CFG,Classifier-free guidance)来调整不同级别的语义丰富度,但精确控制和效率方面有所不足。

该论文则提出了一种名为PiSA-SR的新型超分辨率框架,通过基于预训练SD模型的双LoRA设计,将像素级保真度与语义级增强目标解耦。具体而言:

  1. 双LoRA架构:分别使用L2损失优化像素级LoRA(消除噪声/模糊),结合LPIPS损失和分类器分数蒸馏(classifier score distillation,CSD)损失优化语义级LoRA(生成丰富细节)。

  2. 灵活调控:推理阶段通过调整像素级(λpix\lambda_{pix}λpix)和语义级(λsem\lambda_{sem}λsem)引导因子,用户可自定义输出风格(如保真优先或细节增强)。

  3. 高效性能:实验表明,PiSA-SR在合成与真实数据集上均优于现有方法(如StableSR、OSEDiff),且仅需单步扩散即可实现最优效果,参数量和推理时间显著降低。

先上效果,爱因斯坦靓照。直观看,的确实现了效果控制。

  • 像素级增强:从下至上(λpix\lambda_{pix}λpix↑)逐步去噪,但顶部区域可能丢失细节。

  • 语义级增强:从左至右(λsem\lambda_{sem}λsem↑)细节更丰富,但最右侧可能出现过增强(如爱因斯坦的面部纹理变得不太自然,皱纹、胡子等)。

在这里插入图片描述

这种灵活的调整能力也是该方案的最大亮点之一。对于主观评价来说,参数可调在实际应用中可太重要了!毕竟萝卜青菜各有所爱,重训或微调模型的成本太高。

该方案也是直接以LQ为输入的单步Diff SR,可以先了解一下OSEDiff,这篇可以算是OSEDiff的升级版,均由同一个研究团队发表。多步Diff、OSEDiff和PiSA-SR的框架区别如下
在这里插入图片描述

二、方法细节

具体方案主要分为两个部分

  1. 建立SR的残差学习模型,引入双LoRA解耦像素级回归和语义级增强的学习目标
  2. 提出像素和语义引导,实现灵活的SR结果生成。

在图像复原领域内,很早就有人提出过残差学习的方案,用于降噪和超分。但Diffusion Model需要多步迭代,直接应用残差学习有难度。然而,单步Diff的提出,又使残差学习策略具有了可行性。残差学习的优势在于,

  • 有助于模型从HQ特征中学习所需的高频信息。
  • 加速模型训练过程的收敛,且学残差可降低优化复杂度。

论文中在潜空间做残差学习,其主要公式如下
zH=zL−λϵθ(zL)z_H = z_L - \lambda \epsilon_{\theta}(z_L)zH=zLλϵθ(zL)

训练时λ固定为1。推理阶段则可以基于用户喜好进行调整。下面讨论该如何围绕这个关键公式来实现最终目标。

2.1 目标解耦小妙招:双LoRA训练策略

上面提过,要保证像素级和语义级的双重复原是比较困难的(具有一定矛盾性)。有用双阶段训练方式,但会导致误差传递;也有用双独立模型训练,会增加计算负担。而作者提出了有别于这两种方式的新思路,用LoRA微调技术来实现像素目标和语义目标的解耦。
在这里插入图片描述
训练框架如上图,先训练上半部分,后训练下半部分(蓝框,PiSA LoRA)。

  • 首先,构建一个VAE encoder + SD + VAE decoder的主网络架构,参数均冻结。
  • 其次,在SD中引入两个可训练的LoRA模块。
  • 接着,由于LQ图像受到噪声、模糊和下采样等退化的破坏,因此先训练**像素级LoRA(Pixel-level LoRA,红框部分) ** 以减少损坏的影响,其参数记为Δθpix\Delta \theta_{\text{pix}}Δθpix,这部分输出则可表示为zHpix=zL−ϵθpix(zL)z_H^{\text{pix}} = z_L - \epsilon_{\theta_{\text{pix}}}(z_L)zHpix=zLϵθpix(zL)
  • 然后,为了增强语义效果,进一步训练语义级LoRA(SemAntic-level LoRA,蓝框部分)。这里会将训练好的Δθpix\Delta \theta_{\text{pix}}Δθpix先冻结,然后与SemAntic-level LoRA(Δθsem\Delta \theta_{\text{sem}}Δθsem)组合,成为PiSA LoRA,重点训练Δθsem\Delta \theta_{\text{sem}}Δθsem,这确保了优化过程专注于语义细节,而不会受到Δθpix\Delta \theta_{\text{pix}}Δθpix的太多干扰。其输出则表示为zHsem=zL−ϵθPiSA(zL)z_H^{\text{sem}} = z_L - \epsilon_{\theta_{\text{PiSA}}}(z_L)zHsem=zLϵθPiSA(zL)

所以,PiSA LoRA模块即具备像素级复原能力,又有语义级增强能力。推理阶段跑它就够了,那单独的Pixel-level LoRA有何用?后续再说。先来看下关键的损失函数。

2.2 像素和语义的双损失约束

其实从上面的流程图就可以看出,训练Pixel-level LoRA采用了L2 Loss(像素级约束),训练SemAntic-level LoRA采用LPIPS Loss + CSD Loss(语义级约束)。

作者展示了不同损失约束下的残差输出,如下图。可以看到L2损失的结果以降噪和边缘增强为主,但缺少语义基本的细节,看不出“鸟头”结构。

在这里插入图片描述
而LPIPS虽说可以将深层特征与预训练分类器VGG对齐来激活语义细节,但VGG能力也有限。于是采用了能力更强的SD模型,CSD损失约束,并构建隐分类器(也就是CFG的思路),CSD的梯度公式表征为
∇ℓCSDλdfg=Et,ϵ,zt,c[wt(f(zt,ϵreal)−f(zt,ϵrealλcfg))∂zHsem∂θPiSA]\nabla \ell_{CSD}^{\lambda_{\text{dfg}}} = \mathbb{E}_{t, \epsilon, z_t, c} \left[ w_t \left( f(z_t, \epsilon_{\text{real}}) - f(z_t, \epsilon_{\text{real}}^{\lambda_{\text{cfg}}}) \right) \frac{\partial z_H^{\text{sem}}}{\partial \theta_{\text{PiSA}}} \right]CSDλdfg=Et,ϵ,zt,c[wt(f(zt,ϵreal)f(zt,ϵrealλcfg))θPiSAzHsem]

其中ϵreal\epsilon_{\text{real}}ϵreal是预训练SD的预测结果,ztz_tzt是某一采样时间步长ttt的的zHz_HzH加噪结果,ccc是从zHsemz_H^{\text{sem}}zHsem提取的本文prompt,作用于CFG中,而f()f()f()则是Diffusion去噪过程的函数表征,z^0=f(zt,ϵθ)=zt−1−αˉtϵθ(zt,xL,t)αˉt\hat{z}_0 = f(z_t, \epsilon_{\theta}) = \frac{z_t - \sqrt{1 - \bar{\alpha}_t} \epsilon_{\theta}(z_t, x_L, t)}{\sqrt{\bar{\alpha}_t}}z^0=f(zt,ϵθ)=αˉtzt1αˉtϵθ(zt,xL,t)wtw_twt是与时间步长相关的标量权重,ϵrealλcfg\epsilon_{\text{real}}^{\lambda_{\text{cfg}}}ϵrealλcfg是带有CFG的预训练SD输出结果,其具体表征如下

ϵrealλcfg=ϵreal(zt,t)+λcfg(ϵreal(zt,t,c)−ϵreal(zt,t))⏟ϵrealcls(zt,t,c)\epsilon_{\text{real}}^{\lambda_{\text{cfg}}} = \epsilon_{\text{real}}(z_t, t) + \underbrace{\lambda_{\text{cfg}} \left( \epsilon_{\text{real}}(z_t, t, c) - \epsilon_{\text{real}}(z_t, t) \right)}_{\epsilon_{\text{real}}^{\text{cls}}(z_t, t, c)}ϵrealλcfg=ϵreal(zt,t)+ϵrealcls(zt,t,c)λcfg(ϵreal(zt,t,c)ϵreal(zt,t))

其实模型是与与ϵreal\epsilon_{\text{real}}ϵreal一样,只不过一个不带分类分数,一个带。如果把其中一个模型设置成可调,λcfg\lambda_{\text{cfg}}λcfg参数设置成0,就成了OSEDIff中的VSD。与OSEDiff中的VSD一样,作用在潜空间中。但不同的是,CSD不需要双模型约束,减少了训练资源和迭代时间。上图对比中也可以看出,VSD损失弱化了语义细节,CSD Loss对语义增强的贡献更为显著。因此该论文最终采用了CSD损失。

2.3 可调参的推理方案

损失介绍完了,继续回到上一个问题,单独的Pixel-level LoRA有何用?这就牵引了出该论文另一个特色,可调参的设计,其实也不复杂, 看图便可明了。

在这里插入图片描述
PiSA的推理过程分为两个模式,DefaultAdjustable

Default模式——

数据流为实线+绿色虚线组合。LQ经VAE编码器后,仅用PiSA-LoRA+预训练SD一起处理,通过单步Diff预测残差。并与输入相减,再经解码器得到SR结果。

Adjustable模式——

数据流为实线+黑色虚线组合。LQ经VAE编码器后,分别做两次推理,1)Pixel-level LoRA+SD;2)PiSA-LoRA+SD。然后设定两个控制系数,λpixλ_{pix}λpixλsemλ_{sem}λsem,将两次推理的结果加权相加。后续处理与Default一致。当然,由于θPiSA同时包含语义细节和像素退化,为了更精确的控制,需要对推理结果先做差ϵθPiSA−ϵθpix\epsilon_{\theta_{\text{PiSA}}} - \epsilon_{\theta_{\text{pix}}}ϵθPiSAϵθpix,分离出像素退化。至此,使用者就可以通过控制这两个参数来灵活调整最终的SR效果了。代价嘛就是多一次生成模型的推理耗时。

三、实验论证

实验设置基本与OSEDiff一致。

3.1 🔬可调效果的实验分析

  • 固定一个引导因子(λpix或λsem=1),调整另一个因子,观察输出变化。

  • 评估指标:

    • 保真度:PSNR(像素级)、SSIM(结构相似性)
    • 感知质量:LPIPS(参考GT)、DISTS
    • 无参考质量:CLIPIQA、MUSIQ、MANIQA

在这里插入图片描述

  • 像素级因子(λpixλ_{pix}λpix)影响

    • 增大λpixλ_{pix}λpix可有效消除噪声和压缩伪影,但过度增强(如λpixλ_{pix}λpix>0.8)会导致细节过度平滑(PSNR先升后降,峰值为0.5,LPIPS最佳值在λpixλ_{pix}λpix=0.8)。
    • 无参考指标(CLIPIQA/MUSIQ)持续提升,因边缘增强更符合人类视觉偏好。
  • 语义级因子(λsemλ_{sem}λsem)影响

    • 增大λsemλ_{sem}λsem显著丰富语义细节(如皱纹、毛发),但过高(如λsemλ_{sem}λsem>1.2)会引入伪影(PSNR持续下降,LPIPS峰值在λsemλ_{sem}λsem=0.8)。
    • 无参考指标上限高于像素级调整,但需平衡保真度与细节真实性。

用户评价

  • 用户研究显示,98%参与者认可增大λsemλ_{sem}λsem(1.2 vs 0.6)能提升语义细节,验证了调控机制的有效性。

3.2 🔬与其他方法对比实验

在多项指标上全面领先,视觉效果上也具备了更丰富自然的细节纹理。

在这里插入图片描述
在这里插入图片描述

单步推理时间仅0.09秒(A100 GPU),总参数为1.3B。推理速度上,PiSA-SR-def会比OSEDiff还要快,主要是因为没有了text prompt提取过程。不过PiSA-SR-adj模式需要两个扩散步骤来分别计算像素级输出和语义级输出,因此推理耗时会有所增加。

补充材料中与GAN-based方法对比,也展现出了效果优势。以及相比于OSEDiff在纹理结构方面的效果提升,还是比较明显的。

3.3 🔬消融实验

双LoRA有效性——
仅用像素级LoRA(V1)导致感知细节不足;仅用语义级LoRA(V2)降低保真度。双LoRA联合优化能够较好地平衡两者。但从指标上看整体仍更偏向语义级增强多一些。
在这里插入图片描述

LoRA秩大小的影响——

通过对两个LoRA的秩大小的测试,发现这俩训练任务确实存在矛盾,单一提高某LoRA任务的秩,会对该项任务有提升,但会损害另一个LoRA任务的效果。
在这里插入图片描述

CFG跟语义引导策略的差异——

单步方案里增加CFG大小,无法改善无参考指标,甚至会降低全参考指标。论文所提出的语义引导则可以有效控制复原图像的语义信息强弱。
在这里插入图片描述

输入时间步分析——

时间步越大,模型降噪能力越强,生成效果更明显,因此语义相关指标会有提升,但保真度降低。为了尽量保留LQ的原始特征,因此时间步选择了1。
在这里插入图片描述

四、总结和思考

PiSA-SR通过双LoRA模块和残差学习的创新思路实现了高质量且可控效果的单步Diff超分,有效平衡了像素级回归和感知质量。可根据用户喜好进行能力调整,具有不错的实用价值。后续可能会探索针对不同图像退化的细化LoRA空间和图像自适应尺度因子的可能性。也就是未来模型能在可调的范围内,默认先出个效果最佳的。

其实该方案的残差设计和可调参设计的并不复杂,很多地方能看到类似思路,关键还是在于如何解耦并权衡像素特征和语义特征的复原。


感谢阅读,欢迎留言或私信,一起探讨和交流。
如果对你有帮助的话,也希望可以给博主点一个关注,感谢。

http://www.xdnf.cn/news/1235935.html

相关文章:

  • Linux 摄像头实时抓取:V4L2、FFmpeg 与 GStreamer 全面讲解
  • python工具方法51 视频数据的扩充(翻转、resize、crop、re_fps)
  • Transformer模型用于MT信号相关性预测与分析
  • 《深入浅出RabbitMQ:从零基础到面试通关》
  • 渗透作业4
  • wordpress登陆前登陆后显示不同的顶部菜单
  • 数据结构代码
  • 08.Redis 持久化
  • AOP动态代理
  • #C语言——刷题攻略:牛客编程入门训练(四):运算
  • 大屏项目展示
  • 面向智能体的上下文工程:策略、实现与 LangGraph 实践
  • 09.Redis 常用命令
  • STM32-ESP8266通过MQTT与阿里云通讯
  • Coze 打通飞书多维表格,实现数据增删改查操作实战详解
  • Java线程安全类设计思路总结
  • kafka 是一个怎样的系统?是消息队列(MQ)还是一个分布式流处理平台?
  • RabbitMQ死信队列与消息幂等性实践指南
  • Rust:如何访问 *.ini 配置文件?
  • 关于车位引导及汽车乘梯解决方案的专业性、系统性、可落地性强的综合设计方案与技术实现说明,旨在为现代智慧停车楼提供高效、安全、智能的停车体验。
  • Noob靶场练习
  • 【python实用小脚本-169】『Python』所见即所得 Markdown 编辑器:写完即出网页预览——告别“写完→保存→刷新”三连
  • Rustdesk中继服务器搭建(windows 服务器)
  • SQL注入SQLi-LABS 靶场less31-38详细通关攻略
  • Python篇--- Python 的加载、缓存、覆盖机制
  • (FD Conv)Frequency Dynamic Convolution for Dense Image Prediction论文精读(逐段解析)
  • vscode的Remote-SSH插件配置SSH主机方法
  • 构造类型--结构体,共同体联合体,枚举
  • 知识蒸馏 - 基于KL散度的知识蒸馏 HelloWorld 示例 采用PyTorch 内置函数F.kl_div的实现方式
  • 标记-清除算法中的可达性判定与Chrome DevTools内存分析实践