基于C#winform部署RealESRGAN的onnx模型实现超分辨率图片无损放大模糊图片变清晰.7z

作品简介

 


基于C#winform部署RealESRGAN的onnx模型实现超分辨率图片无损放大模糊图片变清晰

这是是一个基于 RealESRGAN 算法的 Windows 桌面应用程序演示,用于对图像进行超分辨率增强处理。本项目使用 C# WinForms 开发,通过ONNXRuntime 加载 RealESRGAN 模型,实现高质量的图像放大与细节重建。

效果展示


算法原理

RealESRGAN 简介

RealESRGAN(Real-World Enhanced Super-Resolution Generative Adversarial Networks)是一种针对真实世界图像的超分辨率重建算法:

  • • 生成对抗网络(GAN) :采用生成器-判别器架构,生成器负责重建高分辨率图像,判别器评估图像真实性
  • • ESRGAN 基础 :在 ESRGAN 基础上改进,专门针对真实场景下的退化图像进行优化
  • • 高阶退化模拟 :通过模拟真实世界中复杂的图像退化过程(模糊、噪声、压缩伪影等)进行训练
  • • U-Net 判别器 :使用 U-Net 结构的判别器,提供像素级的真实感判断

处理流程

  1. 1. 图像预处理 :将输入图像转换为 FP32 浮点型并归一化到 [0, 1] 范围
  2. 2. 维度转换 :将图像从 HWC(高×宽×通道)格式转换为 CHW(通道×高×宽)格式
  3. 3. 模型推理 :通过 ONNX Runtime 执行神经网络前向传播
  4. 4. 后处理 :将输出张量转换回图像格式,进行反归一化和像素值裁剪(0-255)
  5. 5. 结果输出 :生成增强后的高分辨率图像

环境要求

系统要求

  • • 操作系统 :Windows 10/11 (x64)
  • • 开发环境 :Visual Studio 2019 或更高版本
  • • 目标框架 :.NET Framework 4.7.2

硬件要求

  • • 最低配置 :
  • • CPU:支持 x64 指令集的处理器
  • • 内存:4GB RAM
  • • 显卡:集成显卡(CPU 推理模式)
  • • 推荐配置 :
  • • CPU:多核处理器
  • • 内存:8GB RAM 或更高
  • • 显卡:NVIDIA GPU(支持 CUDA,用于 GPU 加速推理)

依赖库

包名版本说明OpenCvSharp44.13.0OpenCV 的 .NET 封装,用于图像处理Microsoft.ML.OnnxRuntime1.20.1ONNX 模型推理运行时System.Drawing.Common10.0.3图像绘制支持

安装步骤

1. 克隆或下载项目

git clone <项目仓库地址>

或直接下载项目压缩包并解压。

2. 安装Visual Studio

确保已安装 Visual Studio 2019 或更高版本,并包含以下工作负载:

  • • .NET 桌面开发


3. 还原NuGet包

打开项目后,Visual Studio 会自动还原 NuGet 包。如需手动还原:

  1. 1. 在解决方案资源管理器中右键点击解决方案
  2. 2. 选择"还原 NuGet 包"


4. 准备模型文件

将 RealESRGAN ONNX 模型文件放置在 bin/x64/Release/weights/ 目录下:

weights/
├── RealESRGAN_x2.onnx      # 2倍放大模型
├── RealESRGAN_x4.onnx      # 4倍放大模型
└── RealESRGAN_x8.onnx      # 8倍放大模型
注意 :模型文件需要单独下载,可参考 real-esrgan-onnx 项目获取。


运行步骤

编译运行

  1. 1. 使用 Visual Studio 打开 FIRC.sln 解决方案文件
  2. 2. 选择配置为 Release ,平台为 x64
  3. 3. 按 F5 或点击"开始"按钮运行程序

直接使用

如果已存在编译好的版本:

  1. 1. 进入 bin/x64/Release/ 目录
  2. 2. 双击运行 FIRC.exe


使用说明

  1. 1. 选择模型 :从下拉列表中选择要使用的 RealESRGAN 模型(x2/x4/x8)
  2. 2. 加载模型 :点击"加载模型"按钮,等待模型加载完成
  3. 3. 选择图像 :点击"选择图像"按钮,选择要增强的图像文件(支持 JPG、PNG、BMP 格式)
  4. 4. 开始增强 :点击"开始增强"按钮,程序将自动处理并保存结果
  5. 5. 查看结果 :增强后的图像将保存在原图像所在目录的 enhanced 文件夹中

CUDA加速(可选)

如果计算机配备NVIDIAGPU 并已安装 CUDA:

  1. 1. 勾选"使用 CUDA"选项
  2. 2. 加载模型时将自动使用 GPU 加速推理


注意事项

  1. 1. 模型文件 :首次使用前请确保已下载 RealESRGAN ONNX 模型文件并放置在正确位置
  2. 2. 内存占用 :处理高分辨率图像时需要较大内存,建议处理前关闭其他占用内存较大的程序
  3. 3. 图像尺寸 :程序会自动处理奇数尺寸的图像(裁剪为偶数),可能导致极轻微的边缘像素损失
  4. 4. CUDA 支持 :使用 GPU 加速需要:
  • • NVIDIA 显卡(计算能力 5.0 及以上)
  • • 安装 CUDA Toolkit 和 cuDNN
  • • 确保显卡驱动为最新版本
  1. 5. 输出格式 :增强后的图像保持与原图相同的格式(JPG/PNG/BMP)
  2. 6. 文件名规则 :输出文件命名格式为 {原文件名}_x{放大倍数}_enhanced.{扩展名}
  3. 7. 异常处理 :如遇到模型加载失败或处理错误,请检查:
  • • 模型文件是否完整
  • • 是否选择了正确的平台配置(x64)
  • • 系统是否满足运行要求

文件夹结构

FIRC/
├── .qoder/                     # Qoder 编辑器配置
│   ├── agents/
│   └── skills/
├── .vs/                        # Visual Studio 临时文件
├── Properties/                 # 项目属性文件
│   ├── AssemblyInfo.cs         # 程序集信息
│   ├── Resources.resx          # 资源文件
│   └── Settings.settings       # 应用程序设置
├── bin/
│   └── x64/
│       ├── Debug/              # 调试输出目录
│       └── Release/            # 发布输出目录
│           ├── dll/x64/        # OpenCV 外部依赖 DLL
│           ├── weights/        # RealESRGAN 模型文件目录
│           │   ├── RealESRGAN_x2.onnx
│           │   ├── RealESRGAN_x4.onnx
│           │   └── RealESRGAN_x8.onnx
│           └── FIRC.exe        # 可执行文件
├── images/                     # 示例图像目录
│   ├── enhanced/               # 增强后的图像输出
│   └── 1.png                   # 示例输入图像
├── packages/                   # NuGet 包缓存目录
├── App.config                  # 应用程序配置文件
├── FIRC.csproj                 # 项目文件
├── FIRC.sln                    # 解决方案文件
├── Form1.cs                    # 主窗体逻辑代码
├── Form1.Designer.cs           # 窗体设计器代码
├── Form1.resx                  # 窗体资源文件
├── Program.cs                  # 程序入口点
├── RealESRGAN.cs               # RealESRGAN 模型封装类
└── packages.config             # NuGet 包配置文件

 

创作时间: