DATSR:Reference-based Image Super-Resolution with Deformable Attention Transformer (ECCV 2022)
论文:https://arxiv.org/abs/2207.11938
代码:https://github.com/caojiezhang/DATSR
1、搭建环境
conda create -n DATSR python=3.8
conda activate DATSR
conda install cudatoolkit=10.1(用pip会报错ERROR: No matching distribution found for cudatoolkit==10.1)
cd DATSR
pip install -r requirements.txt -i https://pypi.douban.com/simple
(发现代码里作者没有提供requirements.txt,自己列了个,但其实也就差个timm库,注意torchvision要下载对应的0.8.2版本,个人感觉豆瓣源下载torch快一点)
2、MMCV库下载
最坑的还是mmcv库的下载,pip install mmcv==0.4.4时找不到,然后下载了最新的mmcv报错,下载了2.0.0等其他版本报错no module mmcv.runner。最后发现可以用mmcv-full(对应cuda10.1和torch1.7.1版本),对应的命令为:
pip install mmcv-full==1.2.7 -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.7.1/index.html
3、预训练文件下载及路径修改
预训练文件:Release Models and Results · caojiezhang/DATSR · GitHub
需要下载feature_extraction.pth和restoration_mse.pth这两个权重文件,放在代码根目录的experiments/pretrained_model文件夹下(我没有用restoration_gan.pth就没有下载)
注意:这里需要修改options/test/test_restoration_mse.yml文件中path的路径(作者大大应该写错了)将pretrain_model_feature_extractor: experiments/pretrained_model.pth修改为如下图所示:
4、测试集下载及路径修改
(CUFED5测试集,打不开的话自己想办法,我就不赘述啦)
https://drive.google.com/file/d/1Fa1mopExA9YGG1RxrCZZn7QFTYXLx6ph/view
同理,需要修改options/test/test_restoration_mse.yml文件中dataroot为你测试集存放的路径
5、 测试save_img修改
最后在命令行里输入PYTHONPATH="./:${PYTHONPATH}" python datsr/test.py -opt "options/test/test_restoration_mse.yml",结果保存在experiments/test/results文件夹里,但是打开visualization文件夹发现是空的!
发现还是options/test/test_restoration_mse.yml文件中的问题,应该 save_img改为true,如下图所示:
6、测试结果
重新运行PYTHONPATH="./:${PYTHONPATH}" python datsr/test.py -opt "options/test/test_restoration_mse.yml",就成功输出结果啦!(我没运行完是因为cuda没内存了,不要在意)
7、训练
跑训练文件时报错mmsr导入失败,后面发现不是缺少文件,是train.py前面的from mmsr应该改为from datsr。我的实验条件2张gpu要跑18days,我就没继续跑了。
如果你有任何问题欢迎在评论区中留言与我讨论~