FlowNet2.0 安装指南

?

\(安装环境: \color{red}{Ubuntu16.04 + CUDA8.0 + cuDNN5.0}\)

安装 CUDA

CUDA 安装准备

CUDA 官方安装文档

首先查看是否电脑具有支持 CUDA 的 GPU

lspci | grep -i nvidia

查看 Linux 版本信息与 gcc 版本

uname -m && cat /etc/*release && gcc --version

下载

下载 CUDA-8.0, 注意选取 deb(local) 版本, 如下图

?

安装 CUDA

sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
sudo apt-key add /var/cuda-repo-8-0-local-ga2/7fa2af80.pub
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda

环境设置

.bashrc 中加入

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64 ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}  # 64位系统
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}   # 32位

安装 Persistence Daemon

The daemon approach provides a more elegant and robust solution to this problem than persistence mode.

/usr/bin/nvidia-persistenced --verbose

验证安装

查看 GPU 驱动和 CUDA 的版本信息

cat /proc/driver/nvidia/version && nvcc -V

执行 cuda-install-samples-8.0.sh , 然后在 目录下会出现一个文件夹NVIDIA_CUDA-8.0_Samples

cuda-install-samples-8.0.sh ~
cd ~/NVIDIA_CUDA-8.0_Samples
make -j `nproc`
cd  ~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release
./deviceQuery

安装 cuDNN

注册 Nvidia 账号, Nvidia cuDNNv5
, 选择 cuDNN v5 Library for Linux 下载

cuDNN 官方安装指南

tar -xzvf cudnn-8.0-linux-x64-v5.0-ga.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

验证安装

cp -r /usr/src/cudnn_samples_v7/ $HOME
cd  $HOME/cudnn_samples_v7/mnistCUDNN
make clean && make `nproc`
./mnistCUDNN

如果看到如下信息, 恭喜你, 安装成功

Test passed!

环境依赖安装

sudo apt-get update
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler -y
sudo apt-get install --no-install-recommends libboost-all-dev -y
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev -y
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev -y
sudo apt-get install git cmake build-essential -y

安装 opencv

下载 opencv

git clone https://github.com/opencv/opencv.git
cd opencv
git checkout 3.3.1 

编译 opencv 3.3.1

mkdir build  # 创建编译的文件目录
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j `nproc`  # 编译
sudo make install
pkg-config --modversion opencv  

安装 flownet2.0

安装前准备

在安装 flownet2.0 时, 你的安装目录的组织可能和我不同, 所以这里我按照我的安装目录来说明, 这样便于我说明, 应该也便于你理解, 当你安装时, 你只需要简单的将我的安装目录替换成你自己的就可以了, 就是这么简单, 下面开始介绍了

首先介绍下我的安装目录是

install_dir = /home/wangbin/github/
cd /home/wangbin/github/
git clone https://github.com/lmb-freiburg/flownet2
cd flownet2
cp Makefile.config.example Makefile.config

下面我们需要考虑如何来配置 caffe 的 Makefile.config 了, 如果你是第一次接触 caffe, 可以参考 官方 docker 版本的 Makefile.config配置, 你可以直接使用官方的配置文件, 不过你也可以使用我修改的版本, 下面介绍

想必大家都比较熟悉 Anaconda, 由于我们要使用 pycaffe, 所以我们需要配置 python, 貌似 caffe 对 python3 支持不好, 所以选择 python2.7. 为了不影响其他软件的运行, 我们使用 conda 配置一个虚拟 python2.7 的环境, Anaconda 安装见这里

conda create -n flownet2.0 python=2.7
conda install numpy
conda instaLL cython
conda install scipy
conda install scikit-image
pip install msgpack
pip install opencv-python

我的 Anaconda 安装目录是

/home/wangbin/software/anaconda2

然后修改 Makefile.config 中文件中的 python 相关变量

ANACONDA_HOME := $(HOME)/software/anaconda2/envs/flownet2
PYTHON_INCLUDE := $(ANACONDA_HOME)/include         $(ANACONDA_HOME)/include/python2.7         $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include

PYTHON_LIB := $(ANACONDA_HOME)/lib
LINKFLAGS := -Wl,-rpath,$(PYTHON_LIB)

便于参考这里贴出我的 Makefile.config 文件

同时修改 Makefile 文件的变量

LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial  opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs

NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

编译安装 caffe

make -j `nproc` all tools pycaffe 

编译成功之后, 将 pycaffe 加入 $PYTHONPATH

sudo echo export PYTHONPATH=:$PYTHONPATH:"~/github/flownet2/python" >> ~/.bashrc

配置环境, 每次使用 flownet2.0 时, 都要进行如下操作

source set-env.sh 

重要: 使用上述脚本建立 flownet2的环境, 要确保你的 python 路径和系统路径中不包含其他版本的 caffe

下载模型

cd models
./download-models.sh 

使用 image pair 测试模型

FlyingChairs 测试数据位于

/home/wangbin/github/flownet2/data/FlyingChairs_examples

为了后续便于操作, 我们首先将该目录下的下的第一对样例数据中的复制如下目录下

/home/wangbin/github/flownet2/models
cp /home/wangbin/github/flownet2/data/FlyingChairs_examples/0000000-*       /home/wangbin/github/flownet2/models/

0000000-gt.flo 是 ground-truth 光流

(2通道)光流, 我们是无法通过图片查看器 eog 打开, 我们需要将光流图转化为 RGB 图, 转化工具下面介绍

光流可视化工具

[Middlebury 光流可视化工具] (http://vision.middlebury.edu/flow/submit/)
具体使用见 flow-code文件夹中的 README.md

wget http://vision.middlebury.edu/flow/code/flow-code.zip
unzip flow-code.zip
cd flow-code/imageLib
make -j `nproc`
cd ..
make -j `nproc`

使用生成的可执行文件 color_flow将光流图转化成 RGB 图, 图的颜色表示运动方向, 颜色的深浅表示的是运动的快慢

usage: ./color_flow [-quiet] in.flo out.png [maxmotion]

下面使用 color_flow 将第一对 FlyingChairs 的 ground-truth 光流 0000000-gt.flo 转化为 RGB 图

./color_flow 0000000-gt.flo  0000000-gt.png

?

光流可视化代码(python)

如果想要在代码中使用光流可视化, 有个简单的 python 版本可以使用(使用 opencv), 简单的没法相信,

背景比较亮的版本

def visualize_optical_flow(frame1, blob):
    # optical flow visualization
    hsv = np.zeros_like(frame1)
    rad, ang = cv2.cartToPolar(blob[..., 0], blob[..., 1])
    hsv[..., 0] = ang * 180 / np.pi / 2
    hsv[..., 1] = cv2.normalize(rad, None, 0, 255, cv2.NORM_MINMAX)
    hsv[..., 2] = 255
    rgb = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)
    cv2.imshow('flow', rgb)

背景比较暗的版本

def visualize_optical_flow(frame1, blob):
    # optical flow visualization
    hsv = np.zeros_like(frame1)
    rad, ang = cv2.cartToPolar(blob[..., 0], blob[..., 1])
    hsv[..., 0] = ang * 180 / np.pi / 2
    hsv[..., 2] = cv2.normalize(rad, None, 0, 255, cv2.NORM_MINMAX)
    hsv[..., 1] = 255
    rgb = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)
    cv2.imshow('flow', rgb)

测试 image pair

将 flownet2.0/script 目录加入 PATH 中, 便于我们任何目录下使用 script 下的脚本

sudo echo export PATH=$PATH:"/home/wangbin/github/flownet2/scripts" >> ~/.bashrc
cd models 

run-flownet.py FlowNet2/FlowNet2_weights.caffemodel.h5  FlowNet2/FlowNet2_deploy.prototxt.template 0000000-img0.ppm 0000000-img1.ppm 0000000-pre.flo

./color_flow 0000000-pre.flo  0000000-pre.png
eog 0000000-pre.png

视频输入源

我们使用 flownet2.0 处理大部分是视频内容, 我这里写了一份关于将视频作为输入源的代码, 分享在 github 上, 有需要的自取

github flownet2_videocapture.py

原文地址:https://www.cnblogs.com/nowgood/p/FlowNet20_install.html

时间: 2024-08-30 01:24:40

FlowNet2.0 安装指南的相关文章

zabbix3.0安装指南

本次实验环境采用CentOS7.1,第一步安装zabbix的软件源 [[email protected] ~]#rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm 安装zabbix相关软件 [[email protected] ~]# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent mar

Borland C++ Builder 6.0安装指南

下载链接:http://pan.baidu.com/share/link?shareid=2552942324&uk=1260508576将下载的安装光盘文件加载到虚拟光驱后,打开这里AUTORUN.EXE为安装文件,KEYGEN.EXE为注册机.笔者选择中文安装 下一步之后需要填写序列号,打开注册机,点击Generate按钮,将生成序列号填入框内即可一路下一步,不需要做任何修改,安装过程会报错,点击忽略即可打开,会提示注册,此时将提供的Serial Number.Authorization K

Hadoop-2.4.0分布式安装手冊

文件夹 文件夹 1 1. 前言 2 2. 部署 2 2.1. 机器列表 2 2.2. 主机名 2 2.2.1. 暂时改动主机名 3 2.2.2. 永久改动主机名 3 2.3. 免password登录范围 4 3. 约定 4 3.1. 安装文件夹约定 4 3.2. 服务port约定 5 4. 工作详单 6 5. JDK安装 6 5.1. 下载安装包 6 5.2. 安装步骤 6 6. 免passwordssh2登录 7 7. Hadoop安装和配置 8 7.1. 下载安装包 8 7.2. 安装和环境

anaconda python3.7 安装 tensorflow-gpu 2.0.0 beta1 配置PyCharm

参考tensorflow 公众号<tensorflow2.0 安装指南> https://mp.weixin.qq.com/s/7rNXFEC5HYe91RJ0-9CKdQ 1. NVIDIA驱动程序安装 安装对应的CUDA 和 cudnn  (在tensorflow 公众号<tensorflow2.0 安装指南>得知 2.0-beta1对应CUDA 10.0 cudnn 7.6.0) 之前安装tensorflow-gpu 1.14的时候安装了CUDA 10.0 和CUDNN 7.

【转】VMware Converter迁移linux系统虚拟机

原始出处 今天接到一个需求,迁移一台linux的业务系统到vCenter云管理平台,其中遇到一些问题,于是进行了排错,这个过程与大家分享,下面把整个步骤进行截图说明. 1. 首先,登录到VMware Converter的服务器,打开VMware Converter Standalone工具,如图1.1所示. 图1.1 Converter 管理界面 2. 左键点击界面左上角的转换计算机选项,选择源类型已打开电源的计算机,输入远程计算机信息,包括IP.用户名.密码.操作系统信息,如图1.2所示. 图

Optical Flow 发展历程 (1)

Optical flow estimation Traditional Method Variational approach TVL-1 [1] Deep Method Supervised FlowNet [6] FlowNetC [6] FlowNetS [6] FlowNet2.0 [3] SpyNet [5] LiteFlowNet [7] PWCNet [4] Unsupervised MotionFlowNet [2] 接下来的几篇文章将详细分析这几个模型: 参考文献: [1] A

Learning the Depths of Moving People by Watching Frozen

基于双目的传统算法 对静止的物体, 在不同的 viewpoints 同一时刻进行拍摄, 根据拍摄到的结果, 使用三角测量算法计算出平面 2D 图像在 3D 图像中的坐标 单目 Ground Truth 使用 MVS 得到的深度图 使用 MVS 直接得到的深度图有一些也是不符合实验的要求的, 需要对其进行 filtering 神经网络的输入 待计算深度的 RGB 图像(target image) 使用 Mask-RCNN 得到的行人分割图 在原始的 video 中得到的 reference ima

鬃嘴释怀说太多就成真不了。

子阻撞砖奏尊仔籽着 释怀说太多就成真不了. http://passport.baidu.com/?business&un=vip&un=%E5%A4%A9%E6%B0%B4%E4%B8%8A%E9%97%A8%E8%BF%99%E5%B0%8F%E5%A7%90#0 http://passport.baidu.com/?business&un=vip&un=%E7%99%BD%E9%93%B6%E4%B8%8A%E9%97%A8%E8%BF%99%E5%B0%8F%E5%A

澜星粘鼐贩逊耐盼系甭妊倏纪傲傲sdfghjk

http://passport.baidu.com/?business&un=R&un=%E5%A4%A7%E5%AE%81%E6%A1%91%E6%8B%BF%E9%80%9A%E5%B0%8F%E5%A7%90#0 http://passport.baidu.com/?business&un=R&un=%E4%B9%A1%E5%AE%81%E6%A1%91%E6%8B%BF%E9%80%9A%E5%B0%8F%E5%A7%90#0 http://passport.bai