DynamicFusion在ubuntu16.04+显卡GT740+cuda8.0上的实现

介绍


DynamicFusion构建了一个可以实时重建 非刚性变形 动态场景 的系统,随着新的数据融合进模型当中,模型得到降噪、细节更加精细。

论文地址:http://grail.cs.washington.edu/projects/dynamicfusion/papers/DynamicFusion.pdf
GitHub地址:https://github.com/mihaibujanca/dynamicfusion
注意:这个项目是对论文的复现,但是目前尚未准确复现论文内容,运行速度仍然有待优化,10s/frame不满足实时运行,建议转换成离线数据,再进行运行。

这里记录DynamicFusion在ubuntu16.04+显卡GT740+cuda8.0上的实现。(虽然可以实现,但是GT740真的是太慢慢慢慢了…电脑是刚重装完系统的机子)

(1)驱动安装

a.驱动下载

#查看显卡型号

1
lspci | grep -i nvidia

nvidia官网 https://www.geforce.cn/drivers 搜索显卡型号对应的驱动,下载(别用最新的)后放到home文件夹

b.禁用nouveau驱动

1
sudo gedit /etc/modprobe.d/blacklist.conf

在文本最后添加:

12
blacklist nouveauoptions nouveau modeset=0

然后执行:

1
sudo update-initramfs -u

重启后,屏幕分辨率可能不对不用管,命令行执行:lsmod | grep nouveau ,如果没有屏幕输出,说明禁用nouveau成功。

c.禁用X-Window服务

#注意:这会关闭图形界面,提前用手机或者笔记本看下面的步骤

1
sudo service lightdm stop

Ctrl-Alt+F1进入命令行界面,输入用户名和密码登录。

d.命令行安装驱动

#给驱动run文件赋予执行权限:

1
sudo chmod +x NVIDIA-Linux-x86_64-384.59.run

#后面的参数不可省略:

1
sudo ./NVIDIA-Linux-x86_64-384.59.run –no-opengl-files

按照提示安装,回车确定,成功安装后在命令行输入:sudo service lightdm start,恢复到图形界面,此时屏幕分辨率恢复正常,重启。

e.驱动测试

1
sudo nvidia-smi

若列出GPU的信息列表,表示驱动安装成功。

(2)cuda7.5安装

cuda7.5可以使用命令行安装,到了cuda8.0以及往上就不行了

12
sudo apt-get updatesudo apt-get install nvidia-cuda-dev nvidia-cuda-toolkit nvidia-nsight nvidia-prime

等待安装完成后,输入nvcc -V,检查是否安装成功。

2、环境配置

下载DynamicFusion代码:https://github.com/mihaibujanca/dynamicfusion
整个配置过程参考dynamicfusion-master/build.sh 文件(不要直接运行build.sh会有各种报错)

(1)apt-get install 依赖安装

123
sudo apt-get install cmake libvtk5-dev libsuitesparse-dev liblapack-dev --fix-missingsudo apt-get install libblas-dev libgtk2.0-dev pkg-config libopenni-dev --fix-missingsudo apt-get install libusb-1.0-0-dev wget zip clang --fix-missing

(2)安装gflags、glog、Eigen、Ceres

进入dynamicfusion-master文件夹的上一目录

安装gflags、glog、Eigen

#安装 gflags

12345
git clone https:cd gflagsmkdir -p build/ && cd buildcmake .. && make cd ../../

#安装 glog

12345
git clone https://github.com/google/glog.gitcd glogmkdir -p build/ && cd build/cmake .. && makecd ../../

#安装 Eigen 3.3.4

1234567
wget http://bitbucket.org/eigen/eigen/get/3.3.4.tar.gztar -xf 3.3.4.tar.gzcd eigen-eigen-5a0156e40febmkdir -p build && cd buildcmake ..sudo make installcd ../../

配置ceres-solver

#下载ceres-solver:https://github.com/ceres-solver/ceres-solver 并解压到dynamicfusion-master文件夹的上一目录 ,将ceres-solver-master重命名为ceres-solver

#配置 Ceres

123456
cd ceres-solvermkdir -p build/ && cd build/cmake ..make -j4sudo make installcd ../../

(3)安装OpenCV 2.4.13

注:opencv的下载过程非常非常慢,建议前天晚上下载,第二天再接着配置

12345678
git clone https://github.com/opencv/opencvcd opencv/git checkout 2.4.13.3mkdir -p build && cd buildcmake -DWITH_VTK=ON -DBUILD_opencv_calib3d=ON -DBUILD_opencv_imgproc=ON -DWITH_CUDA=OFF ..make -j4sudo make installcd ../../

(4)安装Boost

大专栏  DynamicFusion在ubuntu16.04+显卡GT740+cuda8.0上的实现gutter">

1234567
wget https://dl.bintray.com/boostorg/release/1.64.0/source/boost_1_64_0.tar.gztar -xf boost_1_64_0.tar.gzcd boost_1_64_0sudo ./bootstrap.sh./b2sudo ./b2 installcd ..

删除掉无用的压缩包,最终目录如图

3、代码修改与dataset获取

(1)配置deps/terra

12345
cd dynamicfusion-master/depswget https://github.com/zdevito/terra/releases/download/release-2016-03-25/terra-Linux-x86_64-332a506.zipunzip terra-Linux-x86_64-332a506.ziprm terra-Linux-x86_64-332a506.zipmv terra-Linux-x86_64-332a506 terra

(2)配置deps/Opt

#下载Opt:https://github.com/niessner/Opt/tree/c6012e7e4c67fa3bea96161ba24fe88a2b79deed ,并解压到deps,重命名为Opt

12
cd Opt/API/make -j4

(3)修改kfusion/src/warp_field.cpp

为了解决之后运行代码会出现的报错

12
.../dynamicfusion/kfusion/src/warp_field.cpp:158:10: error: ‘struct ::Solver::Options’ has no member named ‘num_threads_used’options.num_threads_used = 8;

将第157行options.num_linear_solver_threads = 8;注释掉

(4)dataset下载

下载地址 https://www.dropbox.com/sh/qgy2n9bmioofqnj/AABUnT7pi2ECpxSi80EmXOXna?dl=0 (给的数据挺多的,如果网站上不去可以下载我传到百度云的数据,只传了作为demo的umbrella_data.zip)

umbrella_data.zip下载链接:https://pan.baidu.com/s/1PRf7-xl5vgj2SUQVNiuk-g ,提取码:25s1
下载后放置到dynamicfusion-master文件夹中,运行

12345678910
mkdir -p data/umbrella/depthmkdir -p data/umbrella/color

mv umbrella_data.zip data/umbrellacd data/umbrellaunzip umbrella_data.ziprm *.txtmv *color*.png color/mv *depth*.png depth/rm umbrella_data.zip

4、运行

(1)编译

进入dynamicfusion-master文件夹,运行

123
mkdir -p build && cd buildcmake -DOpenCV_DIR=~/opencv/build -DBOOST_ROOT=~/boost_1_64_0/ -DOPENNI_INCLUDE_DIR=/usr/include/ni -DOpenCV_FOUND=TRUE ..make -j4

(2)运行与报错

进入dynamicfusion-master文件夹,运行

1
./build/bin/dynamicfusion data/umbrella

运行后报错 llvm: No such file or directory ,查看这里:https://github.com/mihaibujanca/dynamicfusion/issues/54
升级cuda7.5到8.0能够解决

(3)升级cuda7.5到8.0

卸载cuda7.5

1
sudo apt-get autoremove nvidia-cuda-toolkit

安装cuda8.0

#下载cuda8.0:https://developer.nvidia.com/cuda-80-ga2-download-archive

#安装依赖

1
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

#安装cuda8.0

12
sudo chmod 777 cuda_8.0.61_375.26_linux.run sudo ./cuda_8.0.61_375.26_linux.run

执行后会先出现一个声明,需要阅读到100%才会开始安装,直接ctr+c跳过
按照提示输入回答就行,位置全部选择默认,注:第二个选择是否安装nvidia驱动时,一定要选择否
安装完依赖后,如果仍然提示

12
Installing the CUDA Toolkit in /usr/local/cuda-8.0 … Missing recommended library: libXmu.so

不用管

#添加环境变量

1
sudo gedit ~/.bashrc

将以下内容写入到~/.bashrc尾部:

12
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}}

重启后,输入nvcc --version 测试是否安装成功

(4)运行与结果

1
sudo apt-get install nvidia-cuda-dev nvidia-cuda-toolkit nvidia-nsight nvidia-prime

#编译
进入dynamicfusion-master文件夹,运行

123
mkdir -p build && cd buildcmake -DOpenCV_DIR=~/opencv/build -DBOOST_ROOT=~/boost_1_64_0/ -DOPENNI_INCLUDE_DIR=/usr/include/ni -DOpenCV_FOUND=TRUE ..make -j4

#运行
进入dynamicfusion-master文件夹,运行

1
./build/bin/dynamicfusion data/umbrella

#结果

DynamicFusion效果(项目视频):

视频地址:https://www.youtube.com/watch?v=i1eZekcc_lM

原文地址:https://www.cnblogs.com/liuzhongrong/p/12251305.html

时间: 2024-10-21 04:21:44

DynamicFusion在ubuntu16.04+显卡GT740+cuda8.0上的实现的相关文章

配有Tesla K40c的服务器新装Ubuntu16.04并安装CUDA8.0、Anaconda3、Matlab2016a、OPENCV3.1、CuDNN5.1、MXNet

注:本文原创,作者:Noah Zhang  (http://www.cnblogs.com/noahzn/) 决定加入深度学习的大军,感谢导师给配了台新设备!第一次接触服务器并配置开发环境,整个过程中遇到不少坑,但是好在最后都成功解决了.不过有点担心的是,Tesla k40c 默认还要一个辅助供电,我目前只插了8pin的供电接口,6pin的供电接口没插,不知道后续计算会不会受影响……心里怕怕的…… 首先报一下硬件配置: 服务器:联想TD350: CPU:Intel® Xeon(R) CPU E5

ubuntu16.04下安装cuda8.0

一.首先安装NVIDIA显卡驱动 通过NVIDIA-Linux-x86_64-367.44.run文件安装. 1. 添加 PPA. sudo add-apt-repository ppa:graphics-drivers/ppa 2. 刷新并安装新的驱动程序 sudoapt-get update sudoapt-get install nvidia-367 nvidia-settings (如果需要的话,) 卸载: 删除所有的 nvidia 包: apt-get purge nvidia* 二.

Ubuntu 16.04系统下CUDA8.0配置Caffe教程

由于最近安装了Ubuntu 16.04,本文教程的特点是不需要降级gcc的版本,毕竟cuda8.0已经支持gcc5以上(默认不支持,实际支持). 本文是在参考caffe官网教程以及http://www.linuxidc.com/Linux/2015-07/120449.htm结合自己总结经验而来,对此表示感谢. Ubuntu 14.04安装Nvidia CUDA7.5并搭建Python Theano深度学习开发环境http://www.linuxidc.com/Linux/2015-09/123

ubuntu16.04安装CUDA 8.0(很详尽,包括一些坑的解决方法)

每次配置环境都头疼得要死,总是会遇到各种各样的问题,这次决心一劳永逸地解决这个问题,踩最多的坑,装最稳的环境. 先介绍用于测试的电脑:操作系统是在清华镜像上下载的ubuntu16.04LTS,内核版本是4.15.0-29-generic,电脑是联想Y430P,显卡我没记错的话是GTX850M. 本篇绝大部分操作需要管理员权限,即sudo,也许不把cuda安装到/usr/lib而是自己的home目录下可以不用sudo权限,但我没有尝试,有兴趣的可以自己尝试一下. 一.更换内核 CUDA8.0最高仅

Ubuntu 14.04(x64) 安装cuda8.0

由于之前已经在Ubuntu 14.04 x64上面安装cuda7.0+caffe, 并且已经配置好,caffe也已经跑通. 但是最近需要使用Torch,而Torch对cuda的要求是8.0,因此决定对cuda的版本进行升级,以满足Torch平台的需求. 而最新版的caffe也已经支持cuda8.0. 话不多说,开始安装cuda8.0. 显卡:GeForce GTX TITAN X 系统:Ubuntu 14.04(x_64) CUDA:cuda_8.0.61_375.26_linux.run cu

Ubuntu16.04下编译android6.0源码

http://blog.csdn.net/cnliwy/article/details/52189349 作为一名合格的android开发人员,怎么能不会编译android源码呢!一定要来一次说编译就编译的旅程,否则你的人生是不完整的!好,那么我们进入正题! 本次编译环境采用Ubuntu16.04LTE,android源码选择android6.0!官方建议采用Ubuntu14版本,主要是我刚开始没在意系统版本,然后就直接下载安装16.04版本了,然后也懒得换了,所以就选择了这个版本....下面我

2.Ubuntu16.04安装QT5.8.0

VSCode编辑器开发CPP:http://www.cnblogs.com/dotnetcrazy/p/6661921.html 下载QT run文件(安装包),一般都是这两个下载的比较多,我这边使用第一个 贴一下清华大学的镜像地址:https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/5.8/5.8.0/ Ftp上传到Linux,基础部分就不说了,这篇文章的前期准备过程写的很好(http://www.cnblogs.com/dunitian/p/

ubuntu16.04 安装opencv3.2.0

2.2 安装opencv3.2.0 2.2.1 安装opencv依赖库 在终端输入以下命令,进行安装opencv依赖库: 1. sudo apt-get install build-essential 2. sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev 3. sudo apt-get install python-dev python-nu

Ubuntu16.04 - 安装gtk+-3.0和appindicator3-0.1

今天在Ubuntu里面遇到这样的问题: # pkg-config --cflags gtk+-3.0 appindicator3-0.1Package gtk+-3.0 was not found in the pkg-config search path.Perhaps you should add the directory containing `gtk+-3.0.pc'to the PKG_CONFIG_PATH environment variableNo package 'gtk+-