# fusion **Repository Path**: llxxjj_gitee/fusion ## Basic Information - **Project Name**: fusion - **Description**: 1111111111 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-12 - **Last Updated**: 2026-01-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于双流残差 U-Net 的自监督遥感图像全色锐化 本项目实现了一个 **自监督(Self-Supervised)** 的全色锐化(Pansharpening)深度学习框架。 项目采用了 **双流编码器 U-Net (Dual-Stream U-Net)** 架构,结合 **残差学习** 策略,并设计了包含 **拉普拉斯空间一致性** 和 **SAM 光谱一致性** 的混合损失函数,有效解决了传统方法中的光谱失真和纹理模糊问题。 ## 🌟 核心特性 * **自监督训练范式**:无需人工标注或模拟的高分真值,直接使用原始 PAN 和 MS 图像对进行训练,解决了跨域泛化难题。 * **残差学习架构**:网络仅学习高频纹理残差,并将其叠加在原始 MS 上。这种设计极大地保留了原始光谱信息,**有效解决了光谱失真问题**。 * **物理一致性损失函数**: * **空间损失**:基于 **拉普拉斯算子** 的二阶微分梯度损失,强迫融合图像的纹理强度与 PAN 高度一致。 * **光谱损失**:结合 **L1** 和 **SAM (光谱角映射)**,在下采样尺度上约束颜色和亮度,确保物理正确性。 * **全自动化流水线**:提供 `run_pipeline.py` 脚本,一键完成“训练 -> 自动定位最新模型 -> 推理 -> 可视化”,实现 MLOps 级别的实验管理。 * **工程化配置**:通过 `yaml` 文件统一管理数据、模型、优化器及推理参数,支持实验配置的自动备份与回溯。 * **高性能训练**:支持多 GPU 并行,针对 11-bit 遥感数据设计了固定数值归一化策略。 ## 📁 目录结构 ```text . ├── configs/ │ └── base.yaml # 全局配置文件(控制训练、推理、数据路径等) ├── data/ │ ├── train/ # 训练数据 │ ├── real/ # 真实推理数据 │ └── test/ # 测试数据 ├── output/ # 实验输出 (自动按时间戳生成文件夹) ├── src/ │ ├── dataset.py # 数据集加载 (支持内存缓存、数据增强、固定归一化) │ ├── model.py # Dual-Stream Residual U-Net 模型定义 │ ├── loss.py # 自监督混合损失 (L1 + SAM + Laplacian) │ ├── train.py # 训练主脚本 │ ├── inference.py # 推理与可视化脚本 │ └── config.py # 配置解析工具 ├── run_pipeline.py # 一键自动化运行脚本 └── README.md # 项目说明文档 ``` ## 🛠️ 环境依赖 请确保你的环境安装了以下 Python 库: ```bash pip install torch torchvision numpy rasterio matplotlib pyyaml tqdm ``` ## 💾 数据准备 本项目训练数据无需 Ground Truth。请按以下格式准备数据: 1. **PAN 图像**:文件名以 `_pan.tif` 结尾。 2. **MS 图像**:文件名以 `_mul.tif` 结尾。 **推荐的文件结构:** ```text data/ └── train/ ├── scene01_pan.tif ├── scene01_mul.tif ├── scene02_pan.tif └── ... ``` ## 🚀 快速开始 ### 1. 修改配置 打开 `configs/base.yaml`,根据你的数据情况修改关键参数: * `fixed_max`: 归一化数值。如果数据是 11-bit,建议设为 `2047.0`。 * `train_dir`: 训练数据路径。 * `input_dir`: 推理输入路径。 ### 2. 一键全流程运行(推荐) 该脚本会自动读取配置,开始训练,并在训练结束后自动寻找最新的模型对数据进行推理。 ```bash python run_pipeline.py ``` ### 3. 单独训练 如果只想训练模型: ```bash python src/train.py --config configs/base.yaml ``` *提示:设置 `verbose: False` 可关闭进度条,加速小批量数据的训练速度。* ### 4. 单独推理 如果已有训练好的模型,想对新数据进行推理: ```bash # 方法 A: 手动指定模型路径 python src/inference.py --config configs/base.yaml --checkpoint output/xxxx/checkpoints/model_ep500.pth # 方法 B: 使用配置文件中定义的路径 python src/inference.py --config configs/base.yaml ``` ## 🧠 算法原理 ### 模型结构 采用双流编码器(Dual Encoder),分别提取全色图像的空间特征和多光谱图像的光谱特征。在解码器阶段进行多尺度融合,最后通过 **残差连接** 输出: $$ \text{Output} = \text{Input}_{MS} + \text{Net}(\text{PAN}, \text{Input}_{MS}) $$ ### 损失函数 总损失由光谱损失和空间损失加权组成: $$ L_{total} = L_{spectral} + \lambda_{spat} \cdot L_{spatial} $$ 1. **光谱损失 (Spectral)**: 在下采样尺度(Scale=4)上计算 L1 距离和光谱角(SAM),确保融合图像退化后与原始 MS 一致。 2. **空间损失 (Spatial)**: 计算融合图像亮度分量的 **拉普拉斯 (Laplacian)** 二阶梯度,并强迫其逼近 PAN 的纹理梯度。 ## 📊 实验结果 ### 1. 可视化效果对比 | 场景 | 原始全色 (PAN) | 原始多光谱 (MS) | 本项目融合结果 (Fused) | | :---: | :---: | :---: | :---: | | **Scene 1**
(M0-1) | ![PAN](md/images/M0-1_vis_pan.png) | ![MS](md/images/M0-1_vis_ms.png) | ![Fused](md/images/M0-1_vis_fused_5.0.png) | | **Scene 2**
(M11-3) | ![PAN](md/images/M11-3_vis_pan.png) | ![MS](md/images/M11-3_vis_ms.png) | ![Fused](md/images/M11-3_vis_fused_5.0.png) | --- ### 2. 空间权重参数分析 空间损失权重 $\lambda_{spat}$ 是平衡**光谱保真度**与**空间锐度**的关键参数。 * **$\lambda_{spat}=1.0$**:纹理较柔和,光谱保真度高,但细节提升有限。 * **$\lambda_{spat}=5.0$**:**(推荐)** 在色彩与纹理之间达到了最佳平衡,视觉效果最自然。 * **$\lambda_{spat}=10.0$**:纹理锐利,但有过度锐化的伪影和较大的光谱失真。 | 场景 | 原始输入 | $\lambda_{spat} = 1.0$ | $\lambda_{spat} = 5.0$ (Best) | $\lambda_{spat} = 10.0$ | | :---: | :---: | :---: | :---: | :---: | | **M0-1** | PAN
![PAN](md/images/M0-1_vis_pan.png) | ![1.0](md/images/M0-1_vis_fused_1.0.png) | ![5.0](md/images/M0-1_vis_fused_5.0.png)| ![10.0](md/images/M0-1_vis_fused_10.0.png)| | **M11-3** | MS
![MS](md/images/M11-3_vis_ms.png) | ![1.0](md/images/M11-3_vis_fused_1.0.png)| ![5.0](md/images/M11-3_vis_fused_5.0.png)| ![10.0](md/images/M11-3_vis_fused_10.0.png)| --- ### 3. 定量指标评估 (Quantitative Evaluation) #### 📉 测试数据集测试 (Wald Protocol) 在测试数据集上进行的有参考&无参考评估,Ground Truth 为原始多光谱图像。 | 指标 | 结果 | 最优方向 | 说明 | | :--- | :---: | :---: | :--- | | **CC** | **0.8656** | $\uparrow$ 1.0 | 相关系数,衡量光谱相似性 | | **SAM** | **9.6806** | $\downarrow$ 0.0 | 光谱角映射,衡量光谱相似性 | | **ERGAS** | **7.3476** | $\downarrow$ 0.0 | 全局相对光谱损失,衡量光谱失真度 | | **SSIM** | **0.6523** | $\uparrow$ 1.0 | 结构相似度,衡量纹理与结构的一致性 | | **QNR** | **0.7624** | $\uparrow$ 1.0 | 无参考综合质量指标 | | **$D_{\lambda}$** | **0.0699** | $\downarrow$ 0.0 | QNR子项:无参考光谱评价指标 | | **$D_s$** | **0.1814** | $\downarrow$ 0.0 | QNR子项:无参考空间评价指标 | #### 🌍 真实分辨率测试 在真实分辨率数据上进行的无参考评估。 | 指标 | 结果 | 最优方向 | 说明 | | :--- | :---: | :---: | :--- | | **QNR** | **0.9629** | $\uparrow$ 1.0 | 综合评价指标,分数越高代表融合质量越好 | | **$D_{\lambda}$** | **0.0120** | $\downarrow$ 0.0 | 光谱一致性较佳,几乎无颜色偏移 | | **$D_s$** | **0.0254** | $\downarrow$ 0.0 | 空间细节注入准确,纹理损失极低 |