欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

EDVR复现过程中的Segmentation Fault

程序员文章站 2022-06-23 21:22:49
EDVR复现Vid4中的Segmentation FaultEDVR介绍Segmentation Fault升级gcc重新编译运行运行结果EDVR介绍EDVR全称是:Video Restoration with Enhanced Deformable Convolutional Networks,是CVPR 2019 Workshop NTIRE 2019的冠军。在视频超分辨率Vid4数据集上测试结果仅次于今年的ISeeBetter,只有一点点的差距。EDVR提出了一个PCD 对齐模块和时空注意力融合...

EDVR复现Vid4中的Segmentation Fault

EDVR介绍

EDVR全称是:Video Restoration with Enhanced Deformable Convolutional Networks,是CVPR 2019 Workshop NTIRE 2019的冠军。在视频超分辨率Vid4数据集上测试结果仅次于今年的ISeeBetter,只有一点点的差距。
EDVR提出了一个PCD 对齐模块和时空注意力融合模型TSA:
EDVR复现过程中的Segmentation Fault
详细介绍见paper
本文使用官方提供的codemodel以及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报错,参考这篇文章解决。

运行结果

EDVR复现过程中的Segmentation Fault
从运行结果来看,Vid4部分和论文中的是一样的。如下表所示:
EDVR复现过程中的Segmentation Fault

本文地址:https://blog.csdn.net/change_things/article/details/107287770