EDVR复现过程中的Segmentation Fault
EDVR复现Vid4中的Segmentation Fault
EDVR介绍
EDVR全称是:Video Restoration with Enhanced Deformable Convolutional Networks,是CVPR 2019 Workshop NTIRE 2019的冠军。在视频超分辨率Vid4数据集上测试结果仅次于今年的ISeeBetter,只有一点点的差距。
EDVR提出了一个PCD 对齐模块和时空注意力融合模型TSA:
详细介绍见paper
本文使用官方提供的code、model以及Vid4数据
Segmentation Fault
初次编译运行后,出现Segmentation Fault,定位后发现是Deformable Convolution的问题,详情见issue。由于本文使用的是gcc4.8,需要升级到gcc5.3
升级gcc
本文使用的系统是centos 7,可以使用devtoolset-4安装gcc5.3以避免重新编译gcc。然而官方已经停止维护devtoolset-4,不得已使用devtoolset-6,仍然报错。一番查找后在这里找到了可以用的devtoolset-4包,下载devtoolset-4-gcc-5.3.1-6.1.el7.x86_64.rpm和devtoolset-4-gcc-c+±5.3.1-6.1.el7.x86_64.rpm使用yum localinstall *.rpm进行安装。
但安装gcc时提示需要devtoolset-4-runtime,后来阴差阳错在另一个包里找到了devtoolset-4-runtime,下载 devtoolset-4-runtime-4.1-3.el7.x86_64.rpm安装后再安装gcc。
最后安装g++时提示要按装devtoolset-4-libstdc++,在原网站下载 devtoolset-4-libstdc+±devel-5.3.1-6.1.el7.x86_64.rpm安装即可继续安装g++5.3.1。
重新编译运行
使用scl重新编译dcn:
scl enable devtoolset-4 -- python setup.py develop
若出现sysroot报错,参考这篇文章解决。
运行结果
从运行结果来看,Vid4部分和论文中的是一样的。如下表所示:
本文地址:https://blog.csdn.net/change_things/article/details/107287770
上一篇: dos下删除文件夹和文件的方法
下一篇: Ver、Vol、Ctty命令的使用教程