变焦慢动作:快速准确的一级时空视频超分辨率----代码调试
论文地址:https://ieeexplore.ieee.org/document/9157519
代码地址:https://github.com/Mukosame/Zooming-Slow-Mo-CVPR-2020
一、搭建环境:创建虚拟环境
(1)安装pytorch1.7和cuda11.0版本
运行命令:
conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=11.0 -c pytorch
(2)安装必须的软件包:
pip install numpy opencv-python lmdb pyyaml pickle5 matplotlib seaborn
注意:pickle5是python集成的包,不需要自己手动安装了!
步骤(2)也可以直接运行下面的命令进行安装!
pip install -r requirements.txt
二、编译DNCv2
运行命令:
python setup.py build develop
python test.py
DNCv2编译不成功问题:解决办法:
1、首先需要更新代码,使代码支持pytorch1.7及以上版本
下载链接:https://github.com/lbin/DCNv2/tree/pytorch_1.7
将下载的文件,替换ZSM中的DNCv2文件。
2、检查电脑中的vs版本,是不是vs2017,这个编译C++,只能使用VS2017及以上版本,本次使用的是VS2017版本。
下载地址:https://pan.baidu.com/s/1ihZ0rd381CFRakqj6aomZQ
提取码:77vc
之后进行安装就可以了!
进入DNCv2目录下
终端输入:
python setup.py build develop
出现如下图片,编译DNCv2成功!
接下来运行test.py
文件,会出现如下结果,这个runtimeError
可以不用理会!
代码中有提到这是double
和float
精度的问题。
这是因为torch
的gradcheck
需要double
,而输入的都是float
类型。不过dcnv2
的readme.md
里也有提到,如下:
运行结果如下,就可以了!
如果出现导包问题:
出现如下红色波浪线:
如下方法解决:将codes
文件夹mark
成Sources Root
就可以了。
三、进行测试
进入codes
目录终端下运行:
python test.py
运行代码出现下列问题:
修改方法:加输出语句测试,更改import
的级联关系,发现缺少DCN_sep
分析出错原因:DNCv2包里面缺少类DCN_sep,导致调用包时出错。
解决办法:将带有DNC_sep类的dnc_v2.py文件替换现在的dnc_v2.py(论文代码中的dnc_v2.py代替自己上一步下载的支持pytorch1.7版本的DNCv2中的dnc_v2.py代码)
接下来进入到codes
目录下,进行测试,加载预训练模型,如下,测试成功!
测试结果保存在E:\PycharmWorkPlace\Zooming-Slow-Mo-CVPR-2020-master\results
(根目录下results
中)
结果如下:
接下来可以测试自己的数据集了:
① 将自己的测试文件夹放在test_example
中。
② 在test.py
中更改输入路径、帧数等。
自定义测试结果将保存到以下文件夹中:$ZOOMING_ROOT/results/your_data_name/
中
自己进行相关参数的修改
如果测试自己的数据集出现下图错误:
分析原因:CUDA内存不够用了。
解决办法:(1)减小batchsize
(2)不计算梯度和释放内存
(3)自己PS工具裁剪图片大小
参考链接:https://blog.csdn.net/weixin_41529093/article/details/114780036
PS–论文模型及原理见:https://blog.csdn.net/BingY_998/article/details/122244556