# BasicSR **Repository Path**: fishing-maintenance/basic-sr ## Basic Information - **Project Name**: BasicSR - **Description**: 毕设 基于 swinir 的项目 name:基于超分辨率的低分辨率图片增强系统设计与实现 基于 swinir 预训练,fastapi 技术的项目,提供训练功能,srcnn 插值超分方法,以及ui 对比各个超分方法的功能 纯 ai 项目,启动方法参见 readme.md或者 ai 挠头 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-09 - **Last Updated**: 2026-05-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于超分辨率的低分辨率图片增强系统设计与实现 > 基于 SwinIR 预训练 + FastAPI + Vue.js 的图像超分辨率系统,提供训练、推理、对比一体化功能。 ## 基础技术 **SwinIR** | **Swin Transformer** | **SRCNN** | **FastAPI** | **Vue.js** 主要功能:对上传的低分辨率图片进行超分 在超分辨率部分的代码,提供了 **SRCNN 训练**、**双插值生成**、**SwinIR 训练**与对应模型生成的功能 并且在完整前后端还提供了 **UI 界面**、**一键化超分**、**不同模型之间的超分对比**、常见指标如 **PSNR、SSIM、LPIPS、NIQE** 对比的功能 本项目训练 swinir使用DIV2K 、Flickr2K、BSD300作为训练集, 使用DIV2K 、Set14、Urban100、BSD300 作为验证集,使用了官方 ['001_classicalSR_DF2K_s64w8_SwinIR-M_x2.pth'](https://github.com/JingyunLiang/SwinIR/releases)的预训练权重与网络文件 --- ## 应用场景 - 低分辨率图片增强(2x / 3x / 4x 超分) - 不同超分算法效果对比(SwinIR vs SRCNN vs 插值) - 图像质量客观指标评估 - 自定义模型训练与微调 --- ## 项目结构 ``` code_dir/ ├── back_end/back_end_edu_project/ # FastAPI 后端 │ ├── main.py # 主服务入口 │ ├── ct.py # 图像质量指标计算(PSNR/SSIM/LPIPS/NIQE) │ ├── supportting/utils.py # 工具函数 │ ├── run/ # 推理脚本 │ │ ├── swinir_model.py # SwinIR 推理 │ │ ├── srcnn_model.py # SRCNN 推理 │ │ ├── srcnn_run.py # SRCNN 运行入口 │ │ └── resolution_run.py # 插值基准方法 │ └── weights/ # 预训练权重存放目录 │ ├── web_site/web_isr/ # Vue.js 前端 │ ├── src/App.vue # 主界面 │ └── src/components/ │ ├── ai_isr.vue # 超分交互页面 │ ├── train_.vue # 训练管理页面 │ └── App_save.vue # 多模型对比页面 │ ├── srcnn_train_code/ # SRCNN 训练模块 │ ├── srcnn_model.py # SRCNN 网络定义(3层CNN) │ ├── srcnn_run.py # 训练脚本 │ └── srcnn_x2.pth # 预训练权重 │ └── swinir_train_code/py_files/new_version/ # SwinIR 训练模块 ├── network_swinir.py # SwinIR 官方网络架构 ├── swinir_model.py # 模型封装与加载 ├── cloud_dataset.py # 云端数据集处理 ├── losses.py # 多指标损失函数 ├── run_on_cloud_enhanced.py # 推荐:增强版训练脚本 ├── run_on_cloud_ddp.py # 多卡 DDP 训练 ├── phase1_clean.json # 阶段1配置 ├── phase2_degrade.json # 阶段2配置 └── phase3_perceptual.json # 阶段3配置 ``` --- ## 快速启动 ### 1. 安装依赖 ```bash pip install torch numpy pillow opencv-python fastapi uvicorn python-multipart aiofiles lpips pyiqa torchvision ``` 前端依赖: ```bash cd code_dir/web_site/web_isr npm install ``` ### 2. 启动后端 ```bash cd code_dir/back_end/back_end_edu_project python main.py # 或使用 uvicorn uvicorn main:app --host 0.0.0.0 --port 8000 --reload ``` ### 3. 启动前端 ```bash cd code_dir/web_site/web_isr npm run serve ``` --- ## 训练 SwinIR 使用了官方的网络,官方的预训练权重 我们采取了 **三阶段训练**, __第一阶段:像素精度极限(Clean → 纯 L1)__ __Phase 2:真实退化对抗(Degrade → L1+SSIM+LPIPS)__ __Phase 3:感知质量优化(Perceptual → 混合损失)__ 第一阶段着重 PSNR,第二阶段着重降噪,第三阶段是多指标训练,着重优化 NIQE、LPIPS 等指标 ### 启动训练 ```bash # 推荐使用增强版训练脚本(支持 DDP、断点续训、多指标损失、智能学习率调度) torchrun --nproc_per_node=2 run_on_cloud_enhanced.py --config ./phase1_clean.json # Phase 2 torchrun --nproc_per_node=2 run_on_cloud_enhanced.py --config ./phase2_degrade.json # Phase 3 torchrun --nproc_per_node=2 run_on_cloud_enhanced.py --config ./phase3_perceptual.json ``` --- ## 后端 API 功能 后端基于 **FastAPI** 构建,主要接口: | 接口 | 功能 | |------|------| | 图片上传 | 接收用户上传的低分辨率图片 | | 超分处理 | 支持 SwinIR / SRCNN / 插值 三种方式 | | 训练管理 | 触发训练流程、传递参数配置 | | 质量评估 | 返回 PSNR、SSIM、LPIPS、NIQE 指标 | | 结果对比 | 多模型结果并排返回 | | 静态文件 | 处理后的图片下载 | --- ## 前端界面 | 页面 | 说明 | |------|------| | **ai_isr.vue** | 主超分页面:上传图片、选择模型、执行超分、查看结果 | | **train_.vue** | 训练管理:配置参数、启动训练、查看日志 | | **App_save.vue** | 对比中心:多模型结果并排对比、指标对比、保存结果 | --- ## 三阶段训练配置对比 | 参数 | Phase 1 (Pixel) | Phase 2 (Degrade) | Phase 3 (Perceptual) | |------|-----------------|-------------------|---------------------| | 目标 | 像素精度极限 | 学习真实退化 | 视觉质量优化 | | Pretrained | 官方 SwinIR | Phase 1 best | Phase 2 best | | Degradation | clean | second_order | second_order | | w-l1 | 1.0 | 1.0 | 0.3 | | w-ssim | 0.0 | 0.3 | 0.3 | | w-lpips | 0.0 | 0.05 | 0.3 | | w-fft | 0.0 | 0.0 | 0.5 | | w-edge | 0.0 | 0.0 | 0.2 | | LR | 2e-4 | 2e-4 | 1e-4 | | Epochs | 500 | 300 | 200 | --- ## 支持的超分方式对比 | 算法 | 类型 | 速度 | 效果 | 适用场景 | |------|------|------|------|---------| | **SwinIR** | Transformer | 较慢 | 最佳 | 高质量超分需求 | | **SRCNN** | CNN(浅层)| 快 | 一般 | 实时性要求高的场景 | | **双插值** | 传统方法 | 最快 | 一般 | 基线对比、资源受限 | --- ## 项目特点 - **完整的端到端系统**:训练 → 推理 → 前端交互,全部打通 - **多算法对比**:三种方法并排对比,指标量化差异 - **三阶段渐进训练**:从像素精度到感知质量的渐进优化 - **工业级训练特性**:DDP 分布式、断点续训、早停、EMA - **丰富的评估指标**:PSNR、SSIM、LPIPS、NIQE 全覆盖 - **纯 AI 项目,启动方法参见 readme.md 或者 AI 挠头** ## tips 当前所有训练参数均基于 50vcpu 与双卡 5090的硬件基础