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

博主详细记录了在Ubuntu上安装Flownet2过程中的问题及解决方案,包括修改setup.py文件、处理.sh文件格式、解决编译错误等,并分享了安装成功后的运行步骤以及光流图的可视化方法。
部署运行你感兴趣的模型镜像

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

附上图片效果

在这里插入图片描述

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### Flownet2深度学习模型的安装方法 Flownet2是一个基于深度学习的光流估计框架,目前有多个实现版本可供选择。以下是两种主流实现方式——`Flownet2-TF` 和 `FlowNet2-pytorch` 的安装指南。 #### TensorFlow 实现 (Flownet2-TF) 对于希望使用 TensorFlow 进行开发的用户,可以参考以下步骤完成 `Flownet2-TF` 的安装: 1. **环境配置** 需要先安装 Python 3.x 及其依赖项 Tensorflow >= 1.15 或更高版本[^1]。 ```bash pip install tensorflow>=1.15 ``` 2. **克隆仓库** 使用 Git 将官方存储库克隆至本地机器。 ```bash git clone https://github.com/tensorflow/flownet2-tf.git cd flownet2-tf ``` 3. **数据集下载与预处理** 下载 KITTI 数据集或其他公开可用的数据集并按照文档说明进行预处理。 4. **模型权重加载** 如果需要直接测试预训练模型效果,则需从官方链接获取预训练权重文件,并将其放置于指定目录下。 #### PyTorch 实现 (FlowNet2-pytorch) 如果倾向于采用 PyTorch 构建解决方案,则推荐使用 `FlowNet2-pytorch` 版本。具体操作如下所示: 1. **设置虚拟环境** 创建一个新的 Conda 虚拟环境以隔离依赖关系。 ```bash conda create -n flow_env python=3.7 source activate flow_env ``` 2. **安装必要组件** 根据项目需求列表逐一安装所需软件包。 ```bash pip install torch==0.3.0 torchvision matplotlib numpy scipy scikit-image h5py tqdm opencv-python ``` 3. **同步最新代码** 获取最新的开源实现副本以便后续调试修改。 ```bash git clone https://github.com/ClementPinard/FlowNetPytorch.git cd FlowNetPytorch ``` 4. **执行样例脚本** 浏览 README 文件了解基本功能演示命令行参数含义后尝试运行示例程序验证安装成功与否。 ```python from models import * model = FlowNetS().cuda() output = model(torch.randn(1, 3, 256, 256).cuda()) print(output.size()) # Should be [1, 2, 256, 256] ``` 以上便是关于如何安装 Flownet2 模型的主要流程介绍[^2]。 ```python import torch from models.flownets import FlowNetS model = FlowNetS(batchNorm=False) input_tensor = torch.rand((1, 3, 256, 256)) output_flow = model(input_tensor.cuda()) print(f&#39;Output shape: {output_flow.shape}&#39;) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值