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

作品简介

 


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

效果展示



📖 项目简介

这是一个基于 APISR(Anime Processing with ISR GAN) 深度学习模型的图像超分辨率处理工具。该工具使用 C# WinForms 开发,通过 ONNX Runtime 进行模型推理,能够将低分辨率图像放大 4 倍,同时保持图像细节清晰锐利。

✨ 主要特性

  • • 🎯 4 倍超分辨率放大 :采用先进的 GAN 网络结构
  • • 🚀 硬件加速 :支持 CPU 和 CUDA GPU 两种推理模式
  • • 🎨 RGB 颜色空间处理 :完整保留色彩信息
  • • 💻 现代化界面 :采用 Material Design 扁平化设计风格
  • • ⚡ 实时性能显示 :显示推理耗时和输出尺寸
  • • 🔧 易于部署 :C# winform 开发,独立可执行文件

🧠 算法原理

APISR 模型架构

APISR(AnimeProcessing with ISR GAN)是一种基于生成对抗网络(GAN)的图像超分辨率模型,专门针对动漫和插画图像优化。

网络结构特点
输入图像 (H×W×3, RGB)
    ↓
预处理
├─ BGR → RGB 转换
├─ 尺寸填充(确保能被 4 整除)
├─ 归一化到 [0,1]
    ↓
GRL (Global Residual Learning) 主干网络
├─ 多层残差块提取特征
├─ 全局跳跃连接
    ↓
上采样层
├─ PixelShuffle 亚像素卷积
├─ 4 倍放大
    ↓
后处理
├─ RGB → BGR 转换
├─ 裁剪填充区域
    ↓
输出图像 (4H×4W×3, RGB)
核心技术
  1. 1. GRL(Global Residual Learning)
  • • 通过全局残差学习提升训练稳定性
  • • 深层网络也能有效收敛
  • • 保留低频信息的同时增强高频细节
  1. 2. GAN 对抗训练
  • • 生成器(Generator):负责超分辨率重建
  • • 判别器(Discriminator):区分真实图像和生成图像
  • • 对抗损失使结果更加逼真自然
  1. 3. RGB 三通道联合处理
  • • 与 ESPCN 不同,APISR 同时处理 R、G、B 三个通道
  • • 更好地保留色彩信息和纹理细节
  • • 适合动漫、插画等色彩丰富的图像
  1. 4. 边缘填充策略
  • • 输入尺寸必须能被 4 整除
  • • 使用零填充(zero-padding)补齐尺寸
  • • 推理完成后裁剪回原始比例的 4 倍
数学公式

全局残差学习的核心思想:

F(x) = x + G(x)

其中:

  • • x 是输入图像
  • • G(x) 是网络学习的残差映射
  • • F(x) 是最终输出(原始图像 + 残差)

💻 环境要求

开发环境

组件版本要求说明操作系统Windows 10/11 (64 位)必须为 64 位系统IDEVisual Studio 2019 Community/Professional/Enterprise需包含".NET 桌面开发"工作负载.NET Framework4.7.2 或以上VS 2019 默认集成C# 语言版本5.0项目已配置MSBuild16.0 或以上VS 2019 自带

运行环境

最低配置
  • • CPU :Intel Core i3 或同等处理器
  • • 内存 :4 GB RAM
  • • 硬盘空间 :500 MB 可用空间
  • • 显卡 :支持 DirectX 11 的集成显卡
推荐配置
  • • CPU :Intel Core i5 或更高
  • • 内存 :8 GB RAM
  • • 硬盘空间 :1 GB 可用空间(含 CUDA)
  • • 显卡 :NVIDIA GTX 1060 或更高(支持 CUDA 加速),注意不支持 RTX500 系列显卡

CUDA加速要求(可选)

如需启用 GPU 加速,需要:

组件版本下载地址NVIDIA 显卡驱动≥ 451.48NVIDIA 官网CUDA Toolkit 12.x12.0 或以上NVIDIA CUDAcuDNN9.xNVIDIA cuDNN

注意 :项目已内置 CUDA 12.x 运行时 DLL,通常无需单独安装 CUDA Toolkit。

📦 安装步骤

步骤 1:克隆或下载项目

# 如果使用 Git
git clone 
cd FIRC

# 或直接解压下载的 ZIP 文件

步骤 2:准备ONNX模型文件

将 APISR 模型文件放置到指定目录:

# 模型文件应位于以下路径
FIRC/
└── bin/
    └── x64/
        └── Release/
            └── weights/
                └── 4x_APISR_GRL_GAN_generator.onnx.onnx    # 4 倍放大模型

模型获取方式 :

  1. 1. 从 APISR 官方仓库下载预训练模型
  2. 2. 或自行训练并导出为 ONNX 格式


步骤 3:安装依赖包

项目已通过 NuGet 配置自动恢复依赖,如需手动安装:

# 在 Visual Studio 中打开 FIRC.sln
# 右键解决方案 → 管理 NuGet 程序包
# 安装以下包:

# 或使用 Package Manager Console
Install-Package Microsoft.ML.OnnxRuntime.Gpu -Version 1.20.1
Install-Package OpenCvSharp4 -Version 4.10.0.20241024
Install-Package OpenCvSharp4.Extensions -Version 4.10.0.20241024

步骤 4:编译项目

方法一:Visual Studio 图形界面
  1. 1. 双击打开 FIRC.sln 解决方案文件
  2. 2. 顶部菜单栏选择: 生成 → 重新生成解决方案
  3. 3. 等待编译完成,输出窗口应显示"成功 1 个"
方法二:命令行编译
# 打开"Developer Command Prompt for VS 2019"
cd C:\Users\Administrator\Downloads\FIRC

# 清理并编译 Release 版本"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe" FIRC.sln /p:Configuration=Release /p:Platform=x64 /t:Rebuild /verbosity:minimal

步骤 5:验证编译结果

编译成功后,检查以下文件是否存在:

bin/x64/Release/
├── FIRC.exe              # 主程序(必需)
├── FIRC.pdb              # 调试符号(可选)
├── Microsoft.ML.OnnxRuntime.dll
├── OpenCvSharp.dll
├── OpenCvSharp.Extensions.dll
└── weights/
    └── 4x_APISR_GRL_GAN_generator.onnx.onnx

🚀 运行步骤

首次启动

  1. 1. 启动程序
# 方式 1:直接双击
bin\x64\Release\FIRC.exe

# 方式 2:命令行启动
cd bin\x64\Release
.\FIRC.exe
  1. 2. 检查界面
  • • 窗口标题:“APISR 图像超分辨率工具 - GAN 模型”
  • • 状态栏应显示:“状态:请加载 APISR 模型”(橙色文字)
  • • 模型信息显示:“当前模型:4x_APISR_GRL_GAN (4 倍放大)”

完整使用流程

1️⃣ 加载模型

点击 “🔧 加载模型” 按钮:

  • • 程序会自动从 weights 文件夹读取 4x_APISR_GRL_GAN_generator.onnx.onnx 文件
  • • 加载成功后,状态栏变为绿色:“状态:✓ APISR 模型已加载 (4 倍) [CPU]”
  • • 此时 “⚡ 开始推理” 按钮变为可用
提示 :如需启用 CUDA 加速,勾选 “🚀 CUDA 加速” 复选框后再加载模型
2️⃣ 上传图片

点击 “📁 上传图片” 按钮:

  • • 支持的格式:BMP, JPG, JPEG, TIFF, PNG
  • • 选择的图像会显示在左侧"原始图像"区域
  • • 状态栏显示:“状态:图像已加载 - xxx.png”(蓝色文字)
3️⃣ 开始推理

点击 “⚡ 开始推理” 按钮:

  • • 状态栏变为蓝色:“状态:正在推理…”
  • • 右下角显示推理耗时和输出尺寸,例如:“推理耗时:125.3ms 输出尺寸:1024x1024”
  • • 处理完成后,结果图像显示在右侧"超分结果 (4 倍放大)"区域
  • • 状态栏变为绿色:“状态:处理完成”
4️⃣ 保存结果

点击 “💾 保存结果” 按钮:

  • • 选择保存位置和文件格式
  • • 推荐保存为 PNG 格式以保留最佳质量
  • • 系统会弹出"保存成功"提示框

使用示例

示例:4 倍放大动漫图像
1. 点击"🔧 加载模型"(确保 weights 文件夹有模型文件)
2. 勾选"🚀 CUDA 加速"(如果有 NVIDIA 显卡)
3. 再次点击"🔧 加载模型"
4. 点击"📁 上传图片" → 选择 anime_input.png
5. 点击"⚡ 开始推理"
6. 等待处理完成(取决于图像大小和硬件)
7. 查看效果,点击"💾 保存结果" → 保存为 anime_sr_x4.png

⚠️ 注意事项

1. 模型文件相关

  • • ✅ 必须确保 weights 文件夹中包含 4x_APISR_GRL_GAN_generator.onnx.onnx 文件
  • • ❌ 模型文件不存在时,程序会弹出错误提示
  • • 🔍 模型固定为 4 倍放大,不可更改

2. CUDA 加速相关

  • • 📌 CUDA 检测 :首次使用 CUDA 加速时,程序会自动检测 CUDA 环境
  • • ⚠️ 常见错误 :
  • • “CUDA execution provider not available” → 未安装 CUDA Toolkit 或 cuDNN
  • • “No CUDA-capable GPU is detected” → 显卡不支持 CUDA 或驱动过旧
  • • RTX 500 系列不支持 → 请使用其他型号的 NVIDIA 显卡
  • • 💡 解决方案 :
  • • 更新 NVIDIA 显卡驱动到最新版本
  • • 安装 CUDA Toolkit 12.x 和 cuDNN 9.x
  • • 或取消勾选"CUDA 加速"使用 CPU 模式

3. 图像处理限制

  • • 📐 最小图像尺寸 :建议输入图像不小于 50×50 像素
  • • 📐 最大图像尺寸 :受限于系统内存,建议不超过 2000×2000 像素
  • • 🎨 推荐图像类型 :
  • • ✅ 动漫、漫画、插画(APISR 对此类图像效果最佳)
  • • ✅ 二次元图片、游戏截图
  • • ⚠️ 真实照片(效果良好,但可能不如专业照片超分模型)

4. 输入尺寸要求

  • • 🔲 尺寸填充 :APISR 要求输入图像的宽和高都能被 4 整除
  • • 📏 自动处理 :程序会自动填充图像到最近的 4 的倍数
  • • ✂️ 智能裁剪 :输出时会自动裁剪掉填充区域

5. 性能优化建议

  • • 🚀 GPU 加速 :对于 1080P 以上图像,强烈建议使用 CUDA 加速
  • • CPU 模式:约 500-2000ms(取决于图像大小)
  • • GPU 模式:约 50-200ms(提升 10 倍以上)
  • • 💾 内存管理 :处理大图像时关闭其他占用内存的程序
  • • 🔄 批量处理 :当前版本不支持批量处理,可通过多次操作实现

6. 常见问题排查

Q1: 程序启动后闪退

原因 :缺少运行时依赖库

解决 :确保 bin\x64\Release 目录下有所有必需的 DLL 文件

Q2: 模型加载失败

原因 :模型文件损坏或格式不正确

解决 :重新下载 APISR ONNX 模型文件

Q3: 推理速度极慢

原因 :图像过大或 CPU 负载过高

解决 :缩小输入图像尺寸,或启用 CUDA 加速

Q4: 输出图像有伪影

原因 :GAN模型对某些纹理的泛化能力有限

解决 :这是正常现象,可尝试使用其他超分模型对比

7. 兼容性说明

  • • ✅ Windows 10/11 :完全兼容
  • • ⚠️ Windows 7/8.1 :需要安装 .NET Framework 4.7.2,部分功能可能受限
  • • ❌ macOS/Linux :不支持(可通过 Wine 或虚拟机运行)

📁 文件夹结构

完整项目结构

FIRC/
│
├── 📄 FIRC.sln                          # Visual Studio 解决方案文件
├── 📄 FIRC.csproj                       # C# 项目配置文件
├── 📄 App.config                        # 应用程序配置文件
├── 📄 Program.cs                        # 程序入口点
│
├── 📄 Form1.cs                          # 主窗体业务逻辑
├── 📄 Form1.Designer.cs                 # 主窗体 UI 设计代码
├── 📄 ApisrSuperResolver.cs             # APISR 超分辨率核心处理器
│
├── 📂 Properties/
│   ├── AssemblyInfo.cs                  # 程序集元数据
│   ├── Resources.Designer.cs            # 资源文件设计器
│   ├── Resources.resx                   # 资源文件
│   ├── Settings.Designer.cs             # 设置设计器
│   └── Settings.settings                # 用户设置
│
├── 📂 bin/
│   └── x64/
│       └── Release/
│           ├── FIRC.exe                 # 编译后的可执行文件
│           ├── FIRC.pdb                 # 调试符号
│           ├── *.dll                    # 依赖库(ONNX Runtime, OpenCvSharp 等)
│           ├── cublas64_12.dll          # CUDA BLAS 库
│           ├── cudnn64_9.dll            # CUDA DNN 库
│           ├── onnxruntime.dll          # ONNX Runtime 核心库
│           └── weights/
│               └── 4x_APISR_GRL_GAN_generator.onnx.onnx
│
├── 📂 images/                           # 示例图像目录
│   ├── 1.png                            # 测试输入图像
│   └── enhanced/
│       └── 1_x2_enhanced.png            # 超分结果示例
│
├── 📄 README.md                         # 项目说明文档(本文件)
└── 📄 .gitignore                        # Git 忽略规则

核心文件说明

文件名类型作用描述ApisrSuperResolver.cs核心类APISR 模型推理引擎,包含预处理、推理、后处理全流程Form1.cs窗体类主界面业务逻辑,处理用户交互和事件响应Form1.Designer.cs设计器类界面控件布局和初始化代码FIRC.csproj项目文件定义编译配置、依赖引用、目标框架等4x_APISR_GRL_GAN_generator.onnx.onnx模型文件预训练的 APISR 超分辨率模型(ONNX 格式)

🛠️ 技术栈

开发语言与框架

  • • 编程语言 :C# 5.0
  • • UI 框架 :Windows Forms (.NET Framework 4.7.2)
  • • 图像处理 :OpenCvSharp 4.x
  • • AI 推理 :ONNX Runtime 1.20.1

第三方库

<PackageReference Include="Microsoft.ML.OnnxRuntime.Gpu" Version="1.20.1" />
<PackageReference Include="OpenCvSharp4" Version="4.10.0.20241024" />
<PackageReference Include="OpenCvSharp4.Extensions" Version="4.10.0.20241024" />

内置 CUDA 运行时

项目已打包以下 CUDA 相关 DLL,无需单独安装:

  • • cublas64_12.dll - CUDA BLAS 线性代数库
  • • cublasLt64_12.dll - CUDA BLAS Lite 库
  • • cudart64_12.dll - CUDA 运行时库
  • • cudnn64_9.dll - CUDA 深度神经网络库
  • • onnxruntime_providers_cuda.dll - ONNX CUDA 提供程序

👨‍💻 开发信息

  • • 项目名称 :FIRC - APISR 图像超分辨率工具(GAN 模型)
  • • 开发环境 :Visual Studio 2019 + .NET Framework 4.7.2
  • • 主要技术 :C# WinForms, ONNX Runtime, OpenCvSharp
  • • 适用场景 :动漫图像放大、二次元图片增强、老照片修复、截图清晰度增强

 

创作时间: