Windows10+Kinect2+libfreenect+infiniTAM 安装记录

    xiaoxiao2025-01-26  62

    配置环境

    vs2015,windows10(x64,我的所有配置都为x64)

    一、安装libfreenect

    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编译好的文件即可)

    二、infiniTAM的配置

    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文件。

    运行成功。

     

    最新回复(0)