Windows 10 VS 2013 Bundle fusion 代码运行笔记

最近在搞人体面部重建,本来打算通过一个正视图或者两个侧视图进行三维重建,实践中发现无论相机以哪个角度拍摄人脸,较少张的图像数据都不能包含所有部位的人脸数据。经过分析,想实现完整的人体面部重建,只能通过连续的图像序列实现人脸三维重建。经过网上检索bundle fusion在RGBD相机三维重建中,效果算是比较好的,所以下载下来运行下试试,由于使用的是国产的奥比中光的RGBD深度相机,所以这里先采用公开数据集进行实验。

安装的速度还是蛮快的,就是开始有点纠结要不要安装VS2013,想先看下算法效果就果断安装了。

 

操作系统:Windows 10 2004 update sep

CPU:i7-8750H

显卡:GTX1060 Max-Q

安装步骤如下

1.IDE visual studio 2013 update 5

地址:https://docs.microsoft.com/zh-cn/visualstudio/releasenotes/vs2013-update5-vs

2.CUDA 8.0 安装后命令行输入nvcc -V,验证安装是否成功。

安装的时候驱动可以使用最新的驱动,cuda安装8.0即可,如下图选择安装内容。

地址:https://developer.nvidia.com/cuda-80-ga2-download-archive

3.DirectX SDK

地址:http://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe 

4.下载代码,我把代码放到了D:\workspace\git_rep下面

#下载 BundleFusion
git clone https://github.com/niessner/BundleFusion
#下载mLib代码,如果失败手动下载并复制到对应目录,mLib地址:https://github.com/niessner/mLib
git submodule update --init --recursive

mLib external下载地址:
http://kaldir.vc.in.tum.de/mLib/mLibExternal.zip 或者https://www.dropbox.com/s/fve3uen5mzonidx/mLibExternal.zip?dl=0,解压后,放到 BundleFusioin 同级目录。

代码下载好后目录如下:

 

 

5.修改文件

(1)原来代码中设置的是使用cuda 7.0,这里安装的是cuda 8.0,所以要把设置改为8.0。

编辑BundleFusion/FriedLiver/FriedLiver.vcxproj,将所有的CUDA 7.0.props都变成CUDA 8.0.props即可,共两处,35行和375行。

(2)修改GlobalAppState.h为如下

 

然后用Release编译(debug会报dll缺失的错),编译成功。

如果想要用debug编译,需要将mLibExternal/libsWindows/dll64里的FreeImage.dll放入C:\Windows\System32和C:\Windows\SysWOW64即可。

将zParametersDefault.txt中的s_sensorIdx 设为8,使用离线模式。

 

下载数据集:http://graphics.stanford.edu/projects/bundlefusion/

将s_binaryDumpSensorFile = "../data/apt0.sens";设置为你自己的数据集路径。

 

回到程序里直接ctrl+f5运行即可,使用公开数据集测试完结,附一张结果图。

 

 

参考文献:

1.BundleFusion使用Intel RealSense D435i深度相机实现

2.win10+cuda8.0+vs2013+kinectv2+bundlefusion的安装配置

3.https://github.com/niessner/BundleFusion

4.BundleFusion在win10+vs2013+cuda8.0上的实现