【超分代码合集】SwinIR、StableSR、PASD、CCSR 常见超分模型的推理时间对比

本文主要是介绍【超分代码合集】SwinIR、StableSR、PASD、CCSR 常见超分模型的推理时间对比,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

从 Awesome-diffusion-model-for-image-processing 合集 [ 1 ] ^{[1]} [1] 以及 NTIRE 2023 Challenge on Efficient Super-Resolution (CVPR Workshop) [ 2 , 3 ] ^{[2,3]} [2,3] 的超分部分,选取了 4 个 star 数量较高的几个项目进行测试对比。

图像超分论文

模型论文Star 数代码仓库
SwinIRSwinIR: Image Restoration Using Swin Transformer4k+代码
StableSRExploiting diffusion prior for real-world image super-resolution1k+代码
PASDPixel-Aware Stable Diffusion for Realistic Image Super-resolution and Personalized Stylization700+代码
CCSRImproving the Stability of Diffusion Models for Content Consistent Super-Resolution300+代码

测试性能

  • 测试的功能为 x4 超分辨率,即不论任何尺寸输入,输出尺寸为输入尺寸的 4 倍
  • 输入输出尺寸单位均为 pixel
  • 硬件:GPU 是 NVIDIA GeForce RTX 3090,显存在 24000MiB左右
  • 均为推理时间,s代表秒
输入输出StableSRPASDCCSRSwinIR
120 × 80480 × 3208.49s10.12s2.67s0.28s
200 × 200800 × 80016.32s5.72s4.54s0.57s
256 x 2561024 × 102435.73s11.42s8.93s0.88s
512 x 5122048 x 2048331.04s135.81s106.20s3.95s

基于 Transformer 的 SwinIR 从推理速度上完胜 Diffusion 的模型,而实际的输出结果和前几个模型从视觉上主管感受差异并不大。

[1] https://github.com/lixinustc/Awesome-diffusion-model-for-image-processing/?tab=readme-ov-file#image-super-resolution
[2] https://cvlai.net/ntire/2023/
[3] https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10208768

这篇关于【超分代码合集】SwinIR、StableSR、PASD、CCSR 常见超分模型的推理时间对比的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/897258

相关文章

SQL中redo log 刷⼊磁盘的常见方法

《SQL中redolog刷⼊磁盘的常见方法》本文主要介绍了SQL中redolog刷⼊磁盘的常见方法,将redolog刷入磁盘的方法确保了数据的持久性和一致性,下面就来具体介绍一下,感兴趣的可以了解... 目录Redo Log 刷入磁盘的方法Redo Log 刷入磁盘的过程代码示例(伪代码)在数据库系统中,r

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

SQL BETWEEN 的常见用法小结

《SQLBETWEEN的常见用法小结》BETWEEN操作符是SQL中非常有用的工具,它允许你快速选取某个范围内的值,本文给大家介绍SQLBETWEEN的常见用法,感兴趣的朋友一起看看吧... 在SQL中,BETWEEN是一个操作符,用于选取介于两个值之间的数据。它包含这两个边界值。BETWEEN操作符常用

python中各种常见文件的读写操作与类型转换详细指南

《python中各种常见文件的读写操作与类型转换详细指南》这篇文章主要为大家详细介绍了python中各种常见文件(txt,xls,csv,sql,二进制文件)的读写操作与类型转换,感兴趣的小伙伴可以跟... 目录1.文件txt读写标准用法1.1写入文件1.2读取文件2. 二进制文件读取3. 大文件读取3.1

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

C++中初始化二维数组的几种常见方法

《C++中初始化二维数组的几种常见方法》本文详细介绍了在C++中初始化二维数组的不同方式,包括静态初始化、循环、全部为零、部分初始化、std::array和std::vector,以及std::vec... 目录1. 静态初始化2. 使用循环初始化3. 全部初始化为零4. 部分初始化5. 使用 std::a

前端下载文件时如何后端返回的文件流一些常见方法

《前端下载文件时如何后端返回的文件流一些常见方法》:本文主要介绍前端下载文件时如何后端返回的文件流一些常见方法,包括使用Blob和URL.createObjectURL创建下载链接,以及处理带有C... 目录1. 使用 Blob 和 URL.createObjectURL 创建下载链接例子:使用 Blob

使用Python实现全能手机虚拟键盘的示例代码

《使用Python实现全能手机虚拟键盘的示例代码》在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Pyth... 目录一、项目概述:不止于键盘的远程控制方案1.1 创新价值1.2 技术栈全景二、需求实现步骤一、需求

Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码

《Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码》:本文主要介绍Java中日期时间转换的多种方法,包括将Date转换为LocalD... 目录一、Date转LocalDateTime二、Date转LocalDate三、LocalDateTim