FlowNet2超级详细安装记录+踩雷记录

2021.11.25:

博主本意是想生成optical flow用来与motion vector做对比,看一下效果。但是光是让flownet2跑起来就用了2天时间。。我巨菜。有什么不对的地方可以联系博主改,在此谢谢啦!博客参考 地址

下载flownet

第一步:在本地cmd中和Ubuntu上都可以执行,当初因为不太会在服务器上改.py文件(现在会了),所以我是在windows下载之后上传到Ubuntu上的。
cd到你自己想要的路径下,然后复制代码

git clone https://github.com/NVIDIA/flownet2-pytorch.git

第二步:修改networks/channelnorm_package、networks/resample2d_package networks/correlation_package 三个文件夹里的setup.py文件:将c++11改成c++14
修改方法是分别cd到三个文件夹:
vi setup.py #用绝对路径也可以
键盘按Esc(目的:进入命令模式)
键盘按字母i(目的:插入模式。即可以修改py文件)
再次按Esc后,按“:(冒号)wq”进行保存并退出。
如果遇到没有权限的话,可以在修改之前赋予文件权限:chmod 777 文件

第三步:将datasets.py中 1、from scipy.misc import imread, imresize 替换成
from imageio import imread。 2、将main.py中的112行和125行注释掉

第四步:在flownet2-pytorch/networks/channelnorm_package/channelnorm.py中
在第9行添加(在assert input.is_contiguous()之前)

input1 = input1.contiguous()

好了,到此之前都算顺利,接下来就是不停出bug的时候

第五步:进入install.sh所在文件夹后输入命令

./install.sh

1)、如果是直接在Ubuntu上下载的可以直接跳过,博主因为是先在windows上下载好再上传的,install.sh文件的格式是dox格式的,但是在服务器上.sh文件的格式应是unix的,所以出现了以下错误

(test) wangyiming@zkti:/data/wangyiming/code/flownet2$ ./install.sh
bash: ./install.sh: /bin/bash^M: bad interpreter: No such file or directory

如何查看自己的sh文件格式是什么样的,具体操作:
使用vi工具:vi 你的文件.sh
:set ff (冒号不能省略)。就可以看到文件是dox还是unix了,
:set ff=unix
:wq(保存后退出)
2)、改好之后重新

(test) wangyiming@zkti:/data/wangyiming/code/flownet2$ ./install.sh

出现了一个巨长无比的页面,我就只截了最后一小段展示出来

/usr/include/c++/7/bits/basic_string.tcc:1067:16: error: cannot call member function 鈥�void std::basic_string<_CharT, _Traits, _Alloc>::_Rep::_M_set_sharable() [with _CharT = char32_t; _Traits = std::char_traits<char32_t>; _Alloc = std::allocator<char32_t>]鈥� without object
error: command '/usr/local/cuda-10.1/bin/nvcc' failed with exit status 1

在网上找了好多解决办法,有的说将/usr/include/c++/7/bits/basic_string.tcc 文件下的__p->_M_set_sharable() 改为*__p…(具体格式忘记了),但是因为我们实验室权限不在我这里,所以博主改不了这个文件。。哭了。
只能再想另外的办法:
好多方法说flownet需要pytorch的版本<=0.4.1,所以博主又用了0.4.1的版本,还是不行- -,应该是因为我得python版本还是3.7的

resample2d_kernel.cu:3:10: fatal error: ATen/cuda/CUDAContext.h: No such file or directory

不得不说flownet对配置的环境要求太高了所以博主直接去新建了一个虚拟环境,python=3.6,pytorch=1.5。再重复第五步,可以了。

第六步:博主直接inference,所以用的是预训练好的模型,模型地址 地址

(flow) wangyiming@zkti:/data/wangyiming/code/flownet2$ python main.py - -inference - -model FlowNet2--save_flow --inference_dataset ImagesFromFolder - -resume /checkpoints/FlowNet2_checkpoint.pth.tar --save /output/ -inference_dataset_root /data/wangyiming/code/TapLab/Video02/image/ --number_gpus 1

如果在第五步的时候没有install成功,就会出现这个错误

(test) wangyiming@zkti:~/flownet2-pytorch$ python main.py
Traceback (most recent call last):
  File "/home/wangyiming/flownet2-pytorch/models.py", line 9, in <module>
    from networks.resample2d_package.resample2d import Resample2d
  File "/home/wangyiming/flownet2-pytorch/networks/resample2d_package/resample2d.py", line 3, in <module>
    import resample2d_cuda
ModuleNotFoundError: No module named 'resample2d_cuda'

光流图可视化

执行过第六步之后,会生成.flo光流图,但是不能直接可视化,所以用到代码来生成.png图片以及视频

pip install flowiz -U

批量转化:

python -m flowiz \
# 待转化的.flo文件地址,
/data/wangyiming/code/flownet2/output/inference/run.epoch-0-flow-field/ *.flo \ 
# 输出的png文件地址
-o /data/wangyiming/code/flownet2/output/color_coding \
# 输出的视频文件地址
-v /data/wangyiming/code/flownet2/output/color_coding/video \
-r 30

附上图片效果

在这里插入图片描述

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值