Windows 中编译 InfiniTAM

2020/12/29 Library

InfiniTAM (https://github.com/victorprad/InfiniTAM) 是一个很有名的开源实时三维重建算法。这里总结一下在 Windows 中的编译方法以及注意事项。

环境

  • 任意版本 Visual Studio (我的是 VS 2019)
  • 支持机器显卡的 CUDA 版本(我的是 CUDA 11.1)
  • OpenNI2
  • cmake-gui
  • OpenGL:系统自带
  • freeglut:可以从这里下载然后解压到 InfiniTAM/InfiniTAM/freeglut 文件夹中
  • 其余的代码主页中列出的依赖库是 optional 的

编译

主要参考 InfiniTAM/InfiniTAM/build-win.sh,但是 Windows 中同时使用 bash 和 Visual Studio 命令行不太方便,于是这里总结一下手动的编译步骤:

  1. 安装所有依赖库
  2. 使用 cmake-gui,source 设置为 InfiniTAM/InfiniTAM 路径(即有 CMakeLists.txt 的路径),build 路径可以设为InfiniTAM/InfiniTAM/build。选择使用的 Visual Studio 16 2019 版本。
  3. Configure -> Generate。没有什么压力。不过默认是没有 WITH_PNG 这个选项的,如果要用 libpng,请自行安装。
  4. 找到 InfiniTAM/InfiniTAM/build 路径下的 Visual Studio 工程 .sln 文件,用对应的 Visual Studio 2019 打开,然后编译即可。

整个过程很流畅,代码没有 bug。

测试并使用

Ref: https://stackoverflow.com/questions/7882295/how-to-include-the-percent-character-in-the-visual-studio-debugger-command-line

一个值得注意的小问题是,代码主页给出的读取 offline RGBD sequence 的使用方法是:

./InfiniTAM Teddy/calib.txt Teddy/Frames/%04i.ppm Teddy/Frames/%04i.pgm

但是,如果把这个输入设置到 Visual Studio 的 Command Arguments 中时会出错,显示找不到图片路径。这是因为, Windows 中把百分号 % 和后面一个字符一起给解析成另一个 ASCII 字符了。如果想要保留百分号,应当使用 %25,它会被解析为单独一个 %。即,上面的命令改成这样:

./InfiniTAM Teddy/calib.txt Teddy/Frames/%2504i.ppm Teddy/Frames/%2504i.pgm

Search

    Table of Contents