bundlefusion环境搭建
利用kinect2搭建bundlefusion有几个关键步骤,选择正确的cuda版本、相机型号,修改几行代码。
环境要求
下载bundlefusion源码及依赖
- bundlefusion源码
- mLib
- 从github下载,解压后替换掉该目录 BundleFusion-master\external\mLib
- mLib external
- 下载 解压后放到与bundlefusion同级的目录里
修改代码
修改cuda版本,用notepad++打开BundleFusion-master\FriedLiver\FriedLiver.vcxproj
并修改如下两行题
# 第35行
<Import Project="$(VCTargetsPath)\BuildCustomizations\CUDA 7.0.props" />
# 将7.0,修改为我们8.0的cuda版本
<Import Project="$(VCTargetsPath)\BuildCustomizations\CUDA 8.0.props" />
# 第375行
<Import Project="$(VCTargetsPath)\BuildCustomizations\CUDA 7.0.targets" />
# 将7.0,修改为8.0
<Import Project="$(VCTargetsPath)\BuildCustomizations\CUDA 8.0.targets" />
接着我们需要用VS2013打开BundleFusion-master\FriedLiver\FriedLiver.sln
该工程,修改 GlobalAppState.h
文件,修改成如下的样子:
#pragma once
// define KINECT
#define KINECT_ONE
//#define OPEN_NI
#define BINARY_DUMP_READER
//define INTEL_SENSOR
//define REAL_SENSE
#define STRUCTURE_SENSOR
#define SENSOR_DATA_READER
#define RUN_MULTITHREADED
然后修改为 Release
版本,然后选择 生成->生成解决方法 或者使用快捷键 CTRL + SHIFT + B
- 配置一下工程
将BundleFusion-master\FriedLiver
目录下的zParametersBundlingDefault.txt
和zParametersDefault.txt
拷贝到BundleFusion-master\FriedLiver\x64/Release
,然后用Notepad++打开zParametersDefault.txt
配置文件,并做如下修改:
# 修改第2行为如下,来使用KinectOne (Kinect v2)
s_sensorIdx = 2;
# 修改第49行为如下,100000视乎是配置文件中默认值
s_hashNumSDFBlocks = 100000; //smaller voxels require more space
我们还需要对工程 FriedLiver
里的目录DepthSensing
中的DepthSensing.cpp
做如下修改:
# 将986行
bool bGotDepth = g_CudaImageManager->process()
# 替换为
bool bGotDepth;
while (!(bGotDepth = g_CudaImageManager->process()));
运行工程
我们用电脑连接我们的Kinect v2
双击运行 BundleFusion-master\FriedLiver\x64\Release\FriedLiver.exe
然后就可以看到已经可以成功运行该项目了