vs2015,windows10(x64,我的所有配置都为x64)
1.https://github.com/OpenKinect/libfreenect2,下载libfreenect2,解压。
2.https://github.com/daynix/UsbDk/releases,下载UsbDk,我的是UsbDk_1.0.15_x64.msi,下载后安装。
3.http://zadig.akeo.ie/,下载zadig_2.2.exe,然后运行,在菜单里选择List All Devices,去掉ignore hubs of composite pasent选项,选择libusbk(v3.0.7.0),然后install。安装好后,可在设备管理器中查看到。
4.编译libusb,在libfreenect2-master\depends文件夹下,运行对应版本的cmd文件,我的是install_libusb_vs2015.cmd。在如图所示文件夹下,生成对应版本的vs解决方案。
用对应版本的vs打开,我在x64下生成。
5.http://sourceforge.net/projects/libjpeg-turbo/files 下载安装TurboJPEG1.5.1,安装到D:\libfreenect2-master\depends\libjpeg-turbo64,环境变量中添加路径,如下:
6.http://www.glfw.org/download.html ,下载GLFW,安装到安装到D:\libfreenect2-master\depends\glfw,环境变量中添加路径,如下:
7.http://structure.io/openni下载OpenNI-Windows-x64-2.2.msi,安装到默认路径。
8.cmake生成工程。在cmd中,进入libfreenect2_master文件夹,在命令窗口输入
mkdir build && cd build
cmake .. -G "Visual Studio 14 2015 Win64"
cmake --build . --config RelWithDebInfo --target install
连接相机,运行D:\libfreenect2-master\build\install\bin\Protonect.exe,验证是否安装成功。如果无法打开,
到这里下载:https://github.com/OpenKinect/libfreenect2/issues/580,将下载的预编译好的dll文件和exe文件替换libfreenect2下bin中的dll和exe即可。
测试openni2是否可用。打开C:\Program Files\OpenNI2\Tools\NiViewer.exe,如果打不开,就把tools/Openni2/Drivers下的dll文件(freenect2-openni2.dll, libusb-1.0.dll, glfw.dll, turbojpeg.dll等统一替换成libfreenect2/build/bin编译好的文件即可)
1.需要的安装包
Cuda 8.0 - https://developer.nvidia.com/cuda-80-ga2-download-archive (里边有两个东西要安)
InfiniTAM工程包 - https://github.com/victorprad/InfiniTAM (可以看到支持 Intel 的 realsense)
freeglut 3.0 - http://freeglut.sourceforge.net/index.php#download
2.编译freeglut
打开CMake,设置好路径,点击Configure,Configure done后Generate
vs打开生成的sln项目,生成 ALL_BUILD,然后生成 INSTALL,生成INSTALL的时候我报了个错如下,解决方法就是右键 INSTALL,“属性” -> “生成事件” -> “后期生成事件” -> “在生成中使用”,改为 “否”。(后边还有这样的 error MSB3073: 命令 setlocal 。。的问题都这么解决)。重新生成后,应该可以看到
生成成功后,在freeglut文件夹会有freeflut.lib和GL文件夹;
3.编译InfiniTAM
同样方式CMake InfiniTAM,将glut目录手动修改到freeglut编译的地方,并将 WITH 中 “WITH_OPENNI” 选上,添加openni2的位置,Configure,生成。
vs打来生成的sln工程,环境设置为release模式,生成过程中有提示重新加载,选择 “全部重新加载” 就行。最后还是会出现error MSB3073: 命令 setlocal 。。的问题,将 “InfiniTAM” 的 “属性” -> “生成事件” -> “后期生成事件” -> “在生成中使用”,改为 “否” 即可。
4.测试InfiniTAM
首先从 http://www.robots.ox.ac.uk/~victor/infinitam/files/teddy_20141003.zip 下载 Teddy 模型文件,包括每一帧的彩色图和深度图,以及一个calib.txt文件,表示相机参数,我的cmd指令为:
D:\InfiniTAM\InfiniTAM\build\Apps\InfiniTAM\Release\InfiniTAM.exe D:\InfiniTAM\Teddy\calib.txt D:\InfiniTAM\Teddy\Frames\i.ppm D:\InfiniTAM\Teddy\Frames\i.pgm
效果截图如下:
因为InfiniTAM程序中调用了kinectSDK,所以还需要我们下载Kinect for Windows SDK 2.0,https://www.microsoft.com/en-us/download/details.aspx?id=44561。注意在安装时需要断开kinect相机的连接。安装完成后
安装完成后,添加新项目属性表,配置环境(我单独保存配置,每次需要使用时再添加进去),如图:
包含目录和库目录中添加刚才sdk的路径,然后在链接器->输入->附加依赖项添加Kinect20.lib。
连接kinect2,测试InfiniTAM的效果,个人的理解是,InfiniTAM调用Kinect for Windows SDK,那么就需要官方的驱动,因此在设备管理器中卸载我们安装的驱动,卸载后重新扫描自动安装官方驱动。运行程序,结果还是no devices found,或者出现“找不到OpenNI2.dll..” ,把 “C:\Program Files (x86)\OpenNI2\Redist” 目录下的所有文件赋值粘贴到 “...../InfiniTAM-master\InfiniTAM\build\Apps\InfiniTAM\Release” 下,这里放的就是刚才生成的exe文件。
运行成功。