目录

    • 介绍
  • 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上的实现相关推荐

  1. 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 ...

  2. [深度学习]Ubuntu16.04 + GTX 1050 + cuda8.0 + cuDNN5.1 + caffe安装详解

    首先吐个槽,ubuntu + nvidia的显卡驱动简直是反人类,害的我折腾了一天多. 一.问题及解决办法 寒假放假回家没事干,正好给家里电脑升级了显卡gtx1050可以跑跑CNN.我在实验室的显卡是 ...

  3. Ubuntu16.04+Titan X+CUDA8.0+cudnn5.1+Caffe

    1.安装Ubuntu16.04 LTS x64 利用工具rufus制作USB系统盘(官方下载64位版本: ubuntu-16.04-desktop-amd64.iso),因为已有Win7系统,此处选择 ...

  4. tensorflow gpu python3.5_tensorflow环境搭建:Ubuntu16.04+python3.5+cuda8.0+tensorflow1.4

    Ubuntu16.04是深度学习主流的操作系统,兼容性也最好. python3.5能够安装支持tensorflow的gpu cuda是nvidia推出的运算平台,cuda8.0对tensorflow比 ...

  5. 服务器(Dell T360)Ubuntu16.04+Tesla P100+CUDA8.0+CUDNN7.0.5配置

    这篇文章的方法最后也有问题! 最终配置成功版请见下面这个链接的内容: https://blog.csdn.net/u014106566/article/details/83314626 前言: 一开始 ...

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

    注:本文原创,作者:Noah Zhang  (http://www.cnblogs.com/noahzn/) 决定加入深度学习的大军,感谢导师给配了台新设备!第一次接触服务器并配置开发环境,整个过程中 ...

  7. 安装ubuntu16.04+Nvidia驱动+Cuda8.0+Cudnn5.1+Matlab R2017b+Pycharm+WPS

    硬件环境:NVIDIA GTX 760+i5 本文只是为了方便以后自己再安装时比较方便,做的一个记录.所以基本所有步骤都来自各参考文章的步骤. 安装ubuntu16.04 安装Nvidia驱动 安装C ...

  8. ubuntu16.04 配置显卡驱动+cuda8.0+cudnn+pytorch

    ubuntu1604 配置显卡驱动cuda80cudnnpytorch 在线安装显卡驱动 离线安装cuda 安装cudnn 配置环境变量 离线安装cond 配置pytorch 测试pytorch 感悟 ...

  9. 深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结

    深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow opencv 1 安装ubantu16.04 安装时不要在线更新,在 ...

最新文章

  1. Linux grep 命令
  2. Win32 堆内存分配示例
  3. 第十一节,利用yolov3训练自己的数据集
  4. android listview 数据同步,android中ListView数据刷新时的同步方法
  5. 单行、多行文本超出显示省略号
  6. java取模多位数_JAVA大数类—基础操作(加减乘除、取模、四舍五入、设置保留位数)...
  7. LIBCMTD.lib与libcpmtd冲突的解决方法。
  8. 数据结构之线性表:顺序线性表 Java 实现(底层基于数组)
  9. 美国《国家地理》:年度十大新闻
  10. 从零开始学习Linux笔记
  11. Python爬虫学习笔记-第二十七课(MongoDB下)
  12. ps切图技巧、基础工具,使用方法总结
  13. PHP 毕生功力 图片,视听发烧网_汇集毕生功力的代表作:静神Monitor Acoustics KenStyle Silver Signature...
  14. 中国定制家具市场营销态势与盈利前景预测报告(2022-2028年)
  15. 英语学习资料下载大全
  16. Java位语句_卫语句 - 宿小帅的个人空间 - OSCHINA - 中文开源技术交流社区
  17. 渗透之——使用Metasploit实现对缓冲区栈的溢出攻击
  18. Beautifulsoup官方文档
  19. ASP.NET Core MVC中的viewmodel
  20. 微博Python SDK 发微博

热门文章

  1. 安卓系统开机动画制作
  2. C语言操作符—左移右移操作符
  3. 关于MySQL命令行登录问题
  4. 简单神经网络入门-损失率为nan
  5. Python网络爬虫与聚焦爬虫,如何用爬虫爬取段子
  6. 怎么做好压铸件的产品结构设计
  7. 河南省第六届大学生程序设计竞赛——外星人的供给站
  8. Python信号处理小试牛刀——快速傅里叶变换(FFT)
  9. Java多线程总结版
  10. 锐龙r5 6600h和酷睿i5 12500h处理器哪个好 r56600h和i512500h差多少