ElasticFusion编译过程(Ubuntu16.04)

匿名 (未验证) 提交于 2019-12-03 00:37:01

ElasticFusion是三维重建领域效果比较显著的开源库,其作者为Facebook Reality Labs的Thomas Whelan博士。ElasticFusion的github源码主页,是本次编译过程的主要参考资料。

本文使用的硬件配置如下:
+ Intel i7-7700HQ
GPU必不可少,否则无法完成编译,可参见ElasticFusion页面8.FAQ内容
+ 16GB DDR4 2400MHz 内存

本文采用使用Ubuntu16.04系统,ElasticFusion也支持Ubuntu14.04和Unbuntu15.04,但本人并未亲自验证。以下所有步骤均默认在Ubuntu16.04下完成。


  • sudo apt-get install cmake-qt-gui

  • sudo apt-get install git

  • sudo apt-get install build-essential

  • sudo apt-get install libusb-1.0-0-dev

  • sudo apt-get install libudev-dev

  • sudo apt-get install openjdk-7-jdk

  • sudo apt-get install freeglut3-dev

  • sudo apt-get install python-vtk

  • sudo apt-get install libvtk-java

  • sudo apt-get install libglew-dev

  • sudo apt-get install libsuitesparse-dev

  • sudo apt-get install libeigen3-dev

  • sudo apt-get install zlib1g-dev

  • sudo apt-get install libjpeg-dev
    上述的库依赖均可以通过Ubuntu自带的apt-get安装,之所以分别列开,也是为了让读者明白各个依赖库的作用和功能,一键安装命令如下:
    sudo apt-get install -y cmake-qt-gui git build-essential libusb-1.0-0-dev libudev-dev openjdk-7-jdk freeglut3-dev libglew-dev libsuitesparse-dev libeigen3-dev zlib1g-dev libjpeg-dev
    特别强调,和github的安装命令不同的是,我没有安装使用cuda7.5的库,推荐大家根据自己的显卡型号安装适合自己的CUDA版本。
    然后下面就是安装一些需要下载或者自己编译的依赖库:
    • CUDA
      CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台,支持NVIDIA硬件显卡(所以,如果你的显卡不是N家的,结果你懂得。。。),ElasticFusion和Kintinuous需要CUDA版本大于7.0
      CUDA的手动安装比较繁琐,Ubuntu16.04用户可以参考下面这篇教程
      https://blog.csdn.net/eliminatedacmer/article/details/80528980
    • OpenNI2
      OpenNI中文译为开放自然语言交互,用官方的表述来讲就是a standard framework for 3D sensing,用于3D感知的开发接口;OpenNI2是第二代版本,相对于第一代更加专注于对3D设备的支持和数据的获取,移除了手势识别等中间件的方式,代码更加的精简,简而言之OpenNI2就是一个RGBD相机的用户态驱动,对上提供统一的接口,方便用户获取RGBD的图像数据,对下提供统一的标准类,方便RGBD厂商进行适配;目前OpenNI2支持的设备包括PS1080、PSLink、orbbec、Kinect等设备,由于其清晰的代码结构,很容易对第三方设备进行适配;OpenNI2的源码地址为https://github.com/OpenNI/OpenNI2。编译命令如下: 注意,不是上面的官方版本,而是occipital的fork版本

      git clone https://github.com/occipital/OpenNI2
      cd OpenNI2
      mkdir build && cd build
      cmake ..
      make -j8
      sudo make install
      sudo ldconfig

      * Note, you may need to manually tell CMake where OpenNI2 is since Occipital’s fork does not have an install option. It is important to build Pangolin last so that it can find some of the libraries it has optional dependencies on. *
    • Pangolin
      Pangolin是对OpenGL进行封装的轻量级的OpenGL输入/输出和视频显示的库。可以用于3D视觉和3D导航的视觉图,可以输入各种类型的视频、并且可以保留视频和输入数据用于debug。编译命令如下:

      git clone https://github.com/stevenlovegrove/Pangolin.git
      cd Pangolin
      mkdir build && cd build
      cmake ..
      make -j8
      sudo make install
      sudo ldconfig

首先通过git下载源码,命令如下:
git clone https://github.com/mp3guy/ElasticFusion.git
ElasticFusion文件夹中包含三个子文件夹,分别是Core,GPUTest和GUI,编译顺序如下所示。

cd ElasticFusion cd Core mkdir build && cd build cmake .. make -j8 sudo make install sudo ldconfig

3.2 GPUTest

cd ElasticFusion cd GPUTest mkdir build && cd build cmake .. make -j8 sudo make install sudo ldconfig

3.3 GUI

cd ElasticFusion cd GUI mkdir build && cd build cmake .. make -j8 sudo make install sudo ldconfig

此处下载数据集, 运行命令如下:

cd ElasticFusion cd GUI/build ./ElasticFusion -l dyson_lab.klg

效果如图所示:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!