ubuntu16.04+cuda8.0配置DynamicFusion

参考连接:https://blog.youkuaiyun.com/ffcjjhv/article/details/89151382

1. 预备

Dataset下载

官方下载地址

百度云下载链接提取码:25s1
下载后放置到dynamicfusion-master文件夹中,运行

mkdir -p data/umbrella/depth
mkdir -p data/umbrella/color

mv 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

CUDA8.0下载并安装

下载cuda8.0

安装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 测试是否安装成功
在这里插入图片描述

2 .配置环境

(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到dynamicfusion-master文件夹的上一目录

git clone https://github.com/ceres-solver/ceres-solver

将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. 代码修改

(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:

git clone 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. 运行与结果

(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)结果

RGB
Depth

Scene

Depth_diff
Viz
以下为终端结果:

wya@wya:~/Project/DF/dynamicfusion$ ./build/bin/dynamicfusion data/umbrella
Using Opt v0.2.2
No unknownwise residuals for ispaces(s) D. Creating zero-valued stand-ins.
nUnknowns = 	289038
nResiduals = 	0 + (@parametersSym).DataG.N * 3 + 48173 * 1

nnz = 	0 + (@parametersSym).DataG.N * 24 + 48173 * 0

compile time: 	1.8949518203735
problem plan complete
GPU memory usage: used = 908.500000, free = 1088.062500 MB, total = 1996.562500 MB
17351.477539062
 ITERATION0  (Opt(LM)) ///
 cost=221.951691 
 model_cost=209.799591 
 model_cost_change=12.152100 
 cost=209.799530 
 model_cost=208.982788 
 model_cost_change=0.816742 
zeta=-0.00516877882182598114, breaking at iteration: 100
 cost=208.982834 
 model_cost=208.906982 
 model_cost_change=0.075851 
 cost=208.907059 
 model_cost=208.878204 
 model_cost_change=0.028854 
 cost=208.878296 
 model_cost=208.875076 
 model_cost_change=0.003220 
final cost=208.875046
--------------------------------------------------------
        Kernel        |   Count  |   Total   | Average 
----------------------+----------+-----------+----------
----------------------+----------+-----------+----------
 overall              |      1   | 65068.980ms| 65068.9805ms
----------------------+----------+-----------+----------
 computeCost_D        |      6   |    0.795ms|  0.1325ms
----------------------+----------+-----------+----------
 computeCost_Graph_DataG |      6   |   53.166ms|  8.8611ms
----------------------+----------+-----------+----------
 PCGInit1_D           |      5   |    4.904ms|  0.9807ms
----------------------+----------+-----------+----------
 PCGInit1_Graph_DataG |      5   |  803.065ms| 160.6130ms
----------------------+----------+-----------+----------
 PCGInit1_Finish_D    |      5   |    2.864ms|  0.5729ms
----------------------+----------+-----------+----------
 PCGSaveSSq_D         |      1   |    0.737ms|  0.7372ms
----------------------+----------+-----------+----------
 PCGComputeCtC_D      |      5   |    5.176ms|  1.0351ms
----------------------+----------+-----------+----------
 PCGComputeCtC_Graph_DataG |      5   |  659.266ms| 131.8533ms
----------------------+----------+-----------+----------
 PCGFinalizeDiagonal_D |      5   |   14.790ms|  2.9580ms
----------------------+----------+-----------+----------
 PCGStep1_D           |    500   |  525.099ms|  1.0502ms
----------------------+----------+-----------+----------
 PCGStep1_Graph_DataG |    500   | 55452.184ms| 110.9044ms
----------------------+----------+-----------+----------
 PCGStep2_D           |    450   | 1083.362ms|  2.4075ms
----------------------+----------+-----------+----------
 PCGStep3_D           |    500   |  237.108ms|  0.4742ms
----------------------+----------+-----------+----------
 PCGStep2_1stHalf_D   |     50   |   49.922ms|  0.9984ms
----------------------+----------+-----------+----------
 computeAdelta_D      |     50   |   21.615ms|  0.4323ms
----------------------+----------+-----------+----------
 computeAdelta_Graph_DataG |     50   | 5902.342ms| 118.0468ms
----------------------+----------+-----------+----------
 PCGStep2_2ndHalf_D   |     50   |   62.856ms|  1.2571ms
----------------------+----------+-----------+----------
 computeModelCost_D   |      5   |    4.286ms|  0.8573ms
----------------------+----------+-----------+----------
 computeModelCost_Graph_DataG |      5   |   58.531ms| 11.7063ms
----------------------+----------+-----------+----------
 savePreviousUnknowns_D |      5   |    2.358ms|  0.4717ms
----------------------+----------+-----------+----------
 PCGLinearUpdate_D    |      5   |    2.286ms|  0.4572ms
--------------------------------------------------------
TIMING 65068.980469 4.903712 803.064880 2.864352 525.098816 55452.183594 
Per-iter times ms (nonlinear,linear): 1557.5272	56214.3906
===Robust Mesh Deformation===
**Final Costs**
Opt GN,Opt LM,CERES
,2.08875045776367187500e+02,
 ITERATION0  (Opt(LM)) ///
zeta=-0.000764104421250522137, breaking at iteration: 81
 cost=309.546417 
 model_cost=297.105835 
 model_cost_change=12.440582 
 cost=297.105469 
 model_cost=295.469604 
 model_cost_change=1.635864 
 cost=295.469574 
 model_cost=294.755707 
 model_cost_change=0.713867 
 cost=294.755524 
 model_cost=294.440399 
 model_cost_change=0.315125 
 cost=294.440369 
 model_cost=294.345428 
 model_cost_change=0.094940 
final cost=294.345367
--------------------------------------------------------
        Kernel        |   Count  |   Total   | Average 
----------------------+----------+-----------+----------
----------------------+----------+-----------+----------
 overall              |      1   | 43057.883ms| 43057.8828ms
----------------------+----------+-----------+----------
 computeCost_D        |      6   |    0.458ms|  0.0763ms
----------------------+----------+-----------+----------
 computeCost_Graph_DataG |      6   |   46.990ms|  7.8317ms
----------------------+----------+-----------+----------
 PCGInit1_D           |      5   |    4.314ms|  0.8628ms
----------------------+----------+-----------+----------
 PCGInit1_Graph_DataG |      5   |  533.020ms| 106.6040ms
----------------------+----------+-----------+----------
 PCGInit1_Finish_D    |      5   |    2.917ms|  0.5835ms
----------------------+----------+-----------+----------
 PCGSaveSSq_D         |      1   |    0.334ms|  0.3337ms
----------------------+----------+-----------+----------
 PCGComputeCtC_D      |      5   |    1.274ms|  0.2548ms
----------------------+----------+-----------+----------
 PCGComputeCtC_Graph_DataG |      5   |  389.239ms| 77.8477ms
----------------------+----------+-----------+----------
 PCGFinalizeDiagonal_D |      5   |    6.222ms|  1.2444ms
----------------------+----------+-----------+----------
 PCGStep1_D           |    481   |  295.044ms|  0.6134ms
----------------------+----------+-----------+----------
 PCGStep1_Graph_DataG |    481   | 36988.441ms| 76.8990ms
----------------------+----------+-----------+----------
 PCGStep2_D           |    433   |  595.695ms|  1.3757ms
----------------------+----------+-----------+----------
 PCGStep3_D           |    481   |  217.198ms|  0.4516ms
----------------------+----------+-----------+----------
 PCGStep2_1stHalf_D   |     48   |   30.610ms|  0.6377ms
----------------------+----------+-----------+----------
 computeAdelta_D      |     48   |   20.922ms|  0.4359ms
----------------------+----------+-----------+----------
 computeAdelta_Graph_DataG |     48   | 3701.486ms| 77.1143ms
----------------------+----------+-----------+----------
 PCGStep2_2ndHalf_D   |     48   |   39.580ms|  0.8246ms
----------------------+----------+-----------+----------
 computeModelCost_D   |      5   |    0.191ms|  0.0383ms
----------------------+----------+-----------+----------
 computeModelCost_Graph_DataG |      5   |   38.792ms|  7.7585ms
----------------------+----------+-----------+----------
 savePreviousUnknowns_D |      5   |    1.789ms|  0.3579ms
----------------------+----------+-----------+----------
 PCGLinearUpdate_D    |      5   |    2.234ms|  0.4468ms
--------------------------------------------------------
TIMING 43057.882812 4.314144 533.019775 2.917344 295.044373 36988.441406 
Per-iter times ms (nonlinear,linear): 979.9932	37500.6836
===Robust Mesh Deformation===
**Final Costs**

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值