EDVR复现Vid4中的Segmentation Fault

  • EDVR介绍
    • Segmentation Fault
    • 升级gcc
    • 重新编译运行
    • 运行结果

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