DynamicFusion在ubuntu16.04+显卡GT740+cuda8.0上的实现
目录
- 介绍
- 1、驱动与cuda安装
- (1)驱动安装
- a.驱动下载
- b.禁用nouveau驱动
- c.禁用X-Window服务
- d.命令行安装驱动
- e.驱动测试
- (2)cuda7.5安装
- 2、环境配置
- (1)apt-get install 依赖安装
- (2)安装gflags、glog、Eigen、Ceres
- 安装gflags、glog、Eigen
- 配置ceres-solver
- (3)安装OpenCV 2.4.13
- (4)安装Boost
- 3、代码修改与dataset获取
- (1)配置deps/terra
- (2)配置deps/Opt
- (3)修改kfusion/src/warp_field.cpp
- (4)dataset下载
- 4、运行
- (1)编译
- (2)运行与报错
- (3)升级cuda7.5到8.0
- 卸载cuda7.5
- 安装cuda8.0
- (4)运行与结果
介绍
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、驱动与cuda安装
(1)驱动安装
a.驱动下载
#查看显卡型号
lspci | grep -i nvidia
nvidia官网 https://www.geforce.cn/drivers 搜索显卡型号对应的驱动,下载(别用最新的)后放到home文件夹
b.禁用nouveau驱动
sudo gedit /etc/modprobe.d/blacklist.conf
在文本最后添加:
blacklist nouveau
options nouveau modeset=0
然后执行:
sudo update-initramfs -u
重启后,屏幕分辨率可能不对不用管,命令行执行:lsmod | grep nouveau
,如果没有屏幕输出,说明禁用nouveau成功。
c.禁用X-Window服务
#注意:这会关闭图形界面,提前用手机或者笔记本看下面的步骤
sudo service lightdm stop
按Ctrl-Alt+F1
进入命令行界面,输入用户名和密码登录。
d.命令行安装驱动
#给驱动run文件赋予执行权限:
sudo chmod +x NVIDIA-Linux-x86_64-384.59.run
#后面的参数不可省略:
sudo ./NVIDIA-Linux-x86_64-384.59.run –no-opengl-files
按照提示安装,回车确定,成功安装后在命令行输入:sudo service lightdm start
,恢复到图形界面,此时屏幕分辨率恢复正常,重启。
e.驱动测试
sudo nvidia-smi
若列出GPU的信息列表,表示驱动安装成功。
(2)cuda7.5安装
cuda7.5可以使用命令行安装,到了cuda8.0以及往上就不行了
sudo apt-get update
sudo 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 依赖安装
sudo apt-get install cmake libvtk5-dev libsuitesparse-dev liblapack-dev --fix-missing
sudo apt-get install libblas-dev libgtk2.0-dev pkg-config libopenni-dev --fix-missing
sudo apt-get install libusb-1.0-0-dev wget zip clang --fix-missing
(2)安装gflags、glog、Eigen、Ceres
进入dynamicfusion-master
文件夹的上一目录
安装gflags、glog、Eigen
#安装 gflags
git clone https://github.com/gflags/gflags.git
cd gflags
mkdir -p build/ && cd build
cmake .. && make
cd ../../
#安装 glog
git clone https://github.com/google/glog.git
cd glog
mkdir -p build/ && cd build/
cmake .. && make
cd ../../
#安装 Eigen 3.3.4
wget http://bitbucket.org/eigen/eigen/get/3.3.4.tar.gz
tar -xf 3.3.4.tar.gz
cd eigen-eigen-5a0156e40feb
mkdir -p build && cd build
cmake ..
sudo make install
cd ../../
配置ceres-solver
#下载ceres-solver:https://github.com/ceres-solver/ceres-solver 并解压到dynamicfusion-master文件夹的上一目录
,将ceres-solver-master重命名为ceres-solver
#配置 Ceres
cd ceres-solver
mkdir -p build/ && cd build/
cmake ..
make -j4
sudo make install
cd ../../
(3)安装OpenCV 2.4.13
注:opencv的下载过程非常非常慢,建议前天晚上下载,第二天再接着配置
git clone https://github.com/opencv/opencv
cd opencv/
git checkout 2.4.13.3
mkdir -p build && cd build
cmake -DWITH_VTK=ON -DBUILD_opencv_calib3d=ON -DBUILD_opencv_imgproc=ON -DWITH_CUDA=OFF ..
make -j4
sudo make install
cd ../../
(4)安装Boost
wget https://dl.bintray.com/boostorg/release/1.64.0/source/boost_1_64_0.tar.gz
tar -xf boost_1_64_0.tar.gz
cd boost_1_64_0
sudo ./bootstrap.sh
./b2
sudo ./b2 install
cd ..
删除掉无用的压缩包,最终目录如图
3、代码修改与dataset获取
(1)配置deps/terra
cd dynamicfusion-master/deps
wget https://github.com/zdevito/terra/releases/download/release-2016-03-25/terra-Linux-x86_64-332a506.zip
unzip terra-Linux-x86_64-332a506.zip
rm terra-Linux-x86_64-332a506.zip
mv terra-Linux-x86_64-332a506 terra
(2)配置deps/Opt
#下载Opt:https://github.com/niessner/Opt/tree/c6012e7e4c67fa3bea96161ba24fe88a2b79deed ,并解压到deps,重命名为Opt
cd Opt/API/
make -j4
(3)修改kfusion/src/warp_field.cpp
为了解决之后运行代码会出现的报错
.../dynamicfusion/kfusion/src/warp_field.cpp:158:10: error: ‘struct ceres::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文件夹中,运行
mkdir -p data/umbrella/depth
mkdir -p data/umbrella/colormv umbrella_data.zip data/umbrella
cd data/umbrella
unzip umbrella_data.zip
rm *.txt
mv *color*.png color/
mv *depth*.png depth/
rm umbrella_data.zip
4、运行
(1)编译
进入dynamicfusion-master文件夹,运行
mkdir -p build && cd build
cmake -DOpenCV_DIR=~/opencv/build -DBOOST_ROOT=~/boost_1_64_0/ -DOPENNI_INCLUDE_DIR=/usr/include/ni -DOpenCV_FOUND=TRUE ..
make -j4
(2)运行与报错
进入dynamicfusion-master文件夹,运行
./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
sudo apt-get autoremove nvidia-cuda-toolkit
安装cuda8.0
#下载cuda8.0:https://developer.nvidia.com/cuda-80-ga2-download-archive
#安装依赖
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
#安装cuda8.0
sudo chmod 777 cuda_8.0.61_375.26_linux.run
sudo ./cuda_8.0.61_375.26_linux.run
执行后会先出现一个声明,需要阅读到100%才会开始安装,直接ctr+c跳过
按照提示输入回答就行,位置全部选择默认,注:第二个选择是否安装nvidia驱动时,一定要选择否
安装完依赖后,如果仍然提示
Installing the CUDA Toolkit in /usr/local/cuda-8.0 …
Missing recommended library: libXmu.so
不用管
#添加环境变量
sudo gedit ~/.bashrc
将以下内容写入到~/.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}}
重启后,输入nvcc --version
测试是否安装成功
(4)运行与结果
sudo apt-get install nvidia-cuda-dev nvidia-cuda-toolkit nvidia-nsight nvidia-prime
#编译
进入dynamicfusion-master文件夹,运行
mkdir -p build && cd build
cmake -DOpenCV_DIR=~/opencv/build -DBOOST_ROOT=~/boost_1_64_0/ -DOPENNI_INCLUDE_DIR=/usr/include/ni -DOpenCV_FOUND=TRUE ..
make -j4
#运行
进入dynamicfusion-master文件夹,运行
./build/bin/dynamicfusion data/umbrella
#结果
DynamicFusion效果(项目视频):
视频地址:https://www.youtube.com/watch?v=i1eZekcc_lM
DynamicFusion在ubuntu16.04+显卡GT740+cuda8.0上的实现相关推荐
- tesla p100 linux,服务器(Tesla P100)Ubuntu16.04+显卡驱动+cuda8.0+cudnn7.0.5
首先推荐这两篇文章,写完之后才发现: https://blog.csdn.net/yhaolpz/article/details/71375762 https://blog.csdn.net/bali ...
- [深度学习]Ubuntu16.04 + GTX 1050 + cuda8.0 + cuDNN5.1 + caffe安装详解
首先吐个槽,ubuntu + nvidia的显卡驱动简直是反人类,害的我折腾了一天多. 一.问题及解决办法 寒假放假回家没事干,正好给家里电脑升级了显卡gtx1050可以跑跑CNN.我在实验室的显卡是 ...
- Ubuntu16.04+Titan X+CUDA8.0+cudnn5.1+Caffe
1.安装Ubuntu16.04 LTS x64 利用工具rufus制作USB系统盘(官方下载64位版本: ubuntu-16.04-desktop-amd64.iso),因为已有Win7系统,此处选择 ...
- tensorflow gpu python3.5_tensorflow环境搭建:Ubuntu16.04+python3.5+cuda8.0+tensorflow1.4
Ubuntu16.04是深度学习主流的操作系统,兼容性也最好. python3.5能够安装支持tensorflow的gpu cuda是nvidia推出的运算平台,cuda8.0对tensorflow比 ...
- 服务器(Dell T360)Ubuntu16.04+Tesla P100+CUDA8.0+CUDNN7.0.5配置
这篇文章的方法最后也有问题! 最终配置成功版请见下面这个链接的内容: https://blog.csdn.net/u014106566/article/details/83314626 前言: 一开始 ...
- 配有Tesla K40c的服务器新装Ubuntu16.04并安装CUDA8.0、Anaconda3、Matlab2016a、OPENCV3.1、CuDNN5.1、MXNet...
注:本文原创,作者:Noah Zhang (http://www.cnblogs.com/noahzn/) 决定加入深度学习的大军,感谢导师给配了台新设备!第一次接触服务器并配置开发环境,整个过程中 ...
- 安装ubuntu16.04+Nvidia驱动+Cuda8.0+Cudnn5.1+Matlab R2017b+Pycharm+WPS
硬件环境:NVIDIA GTX 760+i5 本文只是为了方便以后自己再安装时比较方便,做的一个记录.所以基本所有步骤都来自各参考文章的步骤. 安装ubuntu16.04 安装Nvidia驱动 安装C ...
- ubuntu16.04 配置显卡驱动+cuda8.0+cudnn+pytorch
ubuntu1604 配置显卡驱动cuda80cudnnpytorch 在线安装显卡驱动 离线安装cuda 安装cudnn 配置环境变量 离线安装cond 配置pytorch 测试pytorch 感悟 ...
- 深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结
深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow opencv 1 安装ubantu16.04 安装时不要在线更新,在 ...
最新文章
- Linux grep 命令
- Win32 堆内存分配示例
- 第十一节,利用yolov3训练自己的数据集
- android listview 数据同步,android中ListView数据刷新时的同步方法
- 单行、多行文本超出显示省略号
- java取模多位数_JAVA大数类—基础操作(加减乘除、取模、四舍五入、设置保留位数)...
- LIBCMTD.lib与libcpmtd冲突的解决方法。
- 数据结构之线性表:顺序线性表 Java 实现(底层基于数组)
- 美国《国家地理》:年度十大新闻
- 从零开始学习Linux笔记
- Python爬虫学习笔记-第二十七课(MongoDB下)
- ps切图技巧、基础工具,使用方法总结
- PHP 毕生功力 图片,视听发烧网_汇集毕生功力的代表作:静神Monitor Acoustics KenStyle Silver Signature...
- 中国定制家具市场营销态势与盈利前景预测报告(2022-2028年)
- 英语学习资料下载大全
- Java位语句_卫语句 - 宿小帅的个人空间 - OSCHINA - 中文开源技术交流社区
- 渗透之——使用Metasploit实现对缓冲区栈的溢出攻击
- Beautifulsoup官方文档
- ASP.NET Core MVC中的viewmodel
- 微博Python SDK 发微博