高光谱融合工具箱(HIFToolBox) 旨在收录高光谱和多光谱/全色锐化领域的SOTA算法。收录算法主要分三类:基于模型的算法、自/无监督学习算法,以及监督学习算法。
获取地址 :主页
预训练权重 :HIFTool目前发布了在QB数据集上,所有收录的监督网络的预训练权重。
遥感数据集训练:Network_training_RS.py
- 在配置好PyTorch的环境中打开 Network_training_RS.py.
- 选择算法类型 > 0:包括模型(Model),1:无监督(unsupervised), 2:监督(supervised)。如下图所示,case_lst[0]中的0即表示基于模型的方法。
case_lst = ['model','unsupervised','supervised']
case = case_lst[0]
Fusion = ModeSelection(case)
- 选择方法 > 目前HIFToolBox收录了 MoGDCN, Fusformer, PSRT, MSST, DCTransformer, iDaFormer, HySure, HyMS, DBSR, UDALN,uHNTC 。如下图所示,Method = 'HyMS’即表示使用HyMS方法。
Method = 'HyMS'
model, opt = model_generator(Method,'cuda')
- 选择数据集 > 目前数据集支持 Chikusei,Pavia,XiongAn,WDCM,QB。对应的数据集可以在*./Multispectral Image Dataset/* 中的解释文档中的链接中下载,放入相应数据集即可。如下图所示, dataset_name = 'chikusei’即表示使用使用Chikusei数据集训练。
dataset_name = 'chikusei'
model_folder = Method + '/' + dataset_name + '/'
- 训练
> 监督训练:如下图所示,监督训练在此处设置 批量大小(Batch_size),最大迭代步数( end_epoch),权重保存间隔步数(ckpt_step),以及学习率( lr )。
# Training Setting
Batch_size = 2
end_epoch = 2000
ckpt_step = 50
lr = 1e-4
> 模型优化:
如下图所示,基于模型的方法需要传入相机的光谱响应函数(srf),以及点扩散函数(psf)。如果未有该类函数则输入None。
srf = sio.loadmat('Dataloader_tool/srflib/chikusei_128_4.mat')['R']
psf = None
- 测试
打开 Network_eval.py进行监督网络的测试。
可见光数据集训练:Network_training_VL.py
-
在配置好PyTorch的环境中打开 Network_training_VL.py.
-
按照下述参数表进行设置.
| 参数 | 类型 / 默认值 | 含义 | 备注/使用建议 |
|---|---|---|---|
--method | str,默认 PSRT | 模型方法名,传入 model_generator | 例如 PSRT、你的自定义方法名 |
--dataset | str,默认 CAVE(可选:CAVE,HARVARD) | 数据集名称 | 会用于数据加载与输出目录,如 PSRT/CAVE/ |
--batch_size | int,默认 16 | 训练批大小(每步样本数) | 显存不足时减小 |
--epochs | int,默认 2000 | 训练总轮数(终止 epoch) | 训练循环上限 |
--ckpt_step | int,默认 50 | 每隔多少个 epoch 进行一次验证并保存权重 | 值越小,验证/保存越频繁 |
--lr | float,默认 1e-4 | 初始学习率 | 优化器为 Adam |
--patch_size | int,默认 128 | 裁块尺寸,传给 Large_dataset | 影响显存与收敛稳定性 |
--resume | flag,默认 False | 是否从断点恢复训练 | 开启后会加载 start_epoch.pth |
--start_epoch | int,默认 0 | 恢复/测试的 epoch 号 | 搭配 --resume:读取 {method}/{dataset}/{start_epoch}.pth;搭配 --specific:指定要评测的权重号 |
--general | flag,默认 True | 执行通用训练流程 | 你的代码里默认就是开启状态 |
--specific | flag,默认 False | 执行特定图像精调/评测流程 | 通常在训练完成后再开;若单独使用,建议配合 --start_epoch 指定已有权重 |
--meta | flag,默认 False | 执行 meta_train 流程(你自定义的元训练入口) | 仅在 --general 时生效,使用 test split |
5280






