本文所使用的代码为 https://github.com/open-mmlab/mmsr
所使用的环境为 python 3.7.4 , CUDA 9.0.176 , cuDNN 7.6.1 ,torch 1.1
查看cuda和cuDNN版本的代码如下:
查看cuda版本
cat /usr/local/cuda/version.txt
查看cuDNN版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
1. 登入服务器,激活torch环境
source activate torch1
(本人自己在anaconda创建的独立环境)
2. 使用dcn对网络进行编译
cd ./codes/models/archs/dcn
python setup.py develop
3. 生成LR(可选)
若你的数据集包含GT和LR,则跳过此步骤。
若只有GT,则通过 mmsr-master/codes/data_scripts/generate_mod_LR_bic.py
文件生成LR。
需要修改路径和放大倍数
up_scale = 3
mod_scale = 3
# set data dir
sourcedir = '../../datasets/changping-GF2/RSdata_train_HR'
savedir = '../../datasets/changping-GF2/train_mod_LR_bic'
运行后会生成3个文件夹,Bic,HR,LR,我们需要的LR图像保存在 mmsr-master/datasets/changping-GF2/train_mod_LR_bic/LR/x3
中。LR的尺寸为GT的1/scale。Bic的尺寸为LR通过双三次插值放大scale倍,即跟GT的尺寸一样,只是清晰度变低。这里注意LR图像不要用错成Bic。train和valid的数据集都要处理。
4. 裁剪数据集
本文使用的是自己的遥感数据集,尺寸非常大,大概为几万乘几万这样(在自己的小笔记本上根本跑不动- -,只能用服务器跑),所以首先使用 extract_subimages.py对图像进行裁剪,大小为480*480.
这里的mode可以有两种选择,
(1)mode == 'pair'
,可以同时对GT和LR进行裁剪,这里需要注意,裁剪的尺寸要为scale的倍数,比如GT的裁剪尺寸为480,scale=3,那么LR的尺寸就为480/3=160。除不尽会报错。
(2) mode == 'single'
,可单独对GT或LR进行裁剪。(不建议,容易出错)
运行前要将GT和LR的路径改为自己本地的路径,然后将比例改为实际用的比例。记得train和valid的数据集都要裁剪。
elif mode == 'pair':
GT_folder = '../../datasets/changping-GF2/RSdata_train_HR'
LR_folder = '../../datasets/changping-GF2/RSdata_train_LR/X3'
save_GT_folder = '../../datasets/changping-GF2/train_HR_s