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上的实现