基于C#winform部署RealESRGAN的onnx模型实现超分辨率图片无损放大模糊图片变清晰
这是是一个基于 RealESRGAN 算法的 Windows 桌面应用程序演示,用于对图像进行超分辨率增强处理。本项目使用 C# WinForms 开发,通过 ONNX Runtime 加载 RealESRGAN 模型,实现高质量的图像放大与细节重建。
效果展示

算法原理
RealESRGAN 简介
RealESRGAN(Real-World Enhanced Super-Resolution Generative Adversarial Networks)是一种针对真实世界图像的超分辨率重建算法:
- 生成对抗网络(GAN):采用生成器-判别器架构,生成器负责重建高分辨率图像,判别器评估图像真实性
- ESRGAN 基础:在 ESRGAN 基础上改进,专门针对真实场景下的退化图像进行优化
- 高阶退化模拟:通过模拟真实世界中复杂的图像退化过程(模糊、噪声、压缩伪影等)进行训练
- U-Net 判别器:使用 U-Net 结构的判别器,提供像素级的真实感判断
处理流程
- 图像预处理:将输入图像转换为 FP32 浮点型并归一化到 [0, 1] 范围
- 维度转换:将图像从 HWC(高×宽×通道)格式转换为 CHW(通道×高×宽)格式
- 模型推理:通过 ONNX Runtime 执行神经网络前向传播
- 后处理:将输出张量转换回图像格式,进行反归一化和像素值裁剪(0-255)
- 结果输出:生成增强后的高分辨率图像
环境要求
系统要求
- 操作系统:Windows 10/11 (x64)
- 开发环境:Visual Studio 2019 或更高版本
- 目标框架:.NET Framework 4.7.2
硬件要求
-
最低配置:
- CPU:支持 x64 指令集的处理器
- 内存:4GB RAM
- 显卡:集成显卡(CPU 推理模式)
-
推荐配置:
- CPU:多核处理器
- 内存:8GB RAM 或更高
- 显卡:NVIDIA GPU(支持 CUDA,用于 GPU 加速推理)
依赖库
| 包名 | 版本 | 说明 |
|---|---|---|
| OpenCvSharp4 | 4.13.0 | OpenCV 的 .NET 封装,用于图像处理 |
| Microsoft.ML.OnnxRuntime | 1.20.1 | ONNX 模型推理运行时 |
| System.Drawing.Common | 10.0.3 | 图像绘制支持 |
安装步骤
1. 克隆或下载项目
git clone <项目仓库地址>
或直接下载项目压缩包并解压。
2. 安装 Visual Studio
确保已安装 Visual Studio 2019 或更高版本,并包含以下工作负载:
- .NET 桌面开发
3. 还原 NuGet 包
打开项目后,Visual Studio 会自动还原 NuGet 包。如需手动还原:
- 在解决方案资源管理器中右键点击解决方案
- 选择"还原 NuGet 包"
4. 准备模型文件
将 RealESRGAN ONNX 模型文件放置在 bin/x64/Release/weights/ 目录下:
weights/
├── RealESRGAN_x2.onnx # 2倍放大模型
├── RealESRGAN_x4.onnx # 4倍放大模型
└── RealESRGAN_x8.onnx # 8倍放大模型
注意:模型文件需要单独下载,可参考 real-esrgan-onnx 项目获取。
运行步骤
编译运行
- 使用 Visual Studio 打开
FIRC.sln解决方案文件 - 选择配置为 Release,平台为 x64
- 按
F5或点击"开始"按钮运行程序
直接使用
如果已存在编译好的版本:
- 进入
bin/x64/Release/目录 - 双击运行
FIRC.exe
使用说明
- 选择模型:从下拉列表中选择要使用的 RealESRGAN 模型(x2/x4/x8)
- 加载模型:点击"加载模型"按钮,等待模型加载完成
- 选择图像:点击"选择图像"按钮,选择要增强的图像文件(支持 JPG、PNG、BMP 格式)
- 开始增强:点击"开始增强"按钮,程序将自动处理并保存结果
- 查看结果:增强后的图像将保存在原图像所在目录的
enhanced文件夹中
CUDA 加速(可选)
如果计算机配备 NVIDIA GPU 并已安装 CUDA:
- 勾选"使用 CUDA"选项
- 加载模型时将自动使用 GPU 加速推理
注意事项
-
模型文件:首次使用前请确保已下载 RealESRGAN ONNX 模型文件并放置在正确位置
-
内存占用:处理高分辨率图像时需要较大内存,建议处理前关闭其他占用内存较大的程序
-
图像尺寸:程序会自动处理奇数尺寸的图像(裁剪为偶数),可能导致极轻微的边缘像素损失
-
CUDA 支持:使用 GPU 加速需要:
- NVIDIA 显卡(计算能力 5.0 及以上)
- 安装 CUDA Toolkit 和 cuDNN
- 确保显卡驱动为最新版本
-
输出格式:增强后的图像保持与原图相同的格式(JPG/PNG/BMP)
-
文件名规则:输出文件命名格式为
{原文件名}_x{放大倍数}_enhanced.{扩展名} -
异常处理:如遇到模型加载失败或处理错误,请检查:
- 模型文件是否完整
- 是否选择了正确的平台配置(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 包配置文件
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)