欢迎来到OnePiece

Click here for English version.

恭喜你找到了One Piece!

OnePiece(libonepiece)是一个关于RGBD SLAM以及三维场景重建的C++库。这个库主要是对一些基础知识的总结,并且用来满足作者的强迫症。它尝试被设计得比较简单,结构清晰,通俗易懂,对新手友好,但是限制于作者的水平,可能还是存在很多设计不够好的地方。目前这个库除了可视化部分,没有用到GPU。作者希望OnePiece可以帮助一些对这个领域比较感兴趣的人更快地入门,所以OnePiece的首要任务是尽可能简单,依赖较少,相对来说在效率和速度上没有什么优势。在示例中,你可以看到,使用OnePiece,可以很容易搭建出一个简单的RGBD SLAM系统,并最终提取出三维模型,如下图:

FBAFusion in example

开始搞

OnePiece开发环境是ubuntu 16.04,但是它的依赖库很少,所以对于18的ubuntu应该也是没什么问题的。它比较出名的依赖是OpenCV,Eigen以及OpenGL,比较轻量级的依赖都被整合到3rdParty中,一般来说只要环境中有OpenCV,OpenGL,就能一键编译运行了。

  • 安装OpenCV(3.4):
    1. 下载opencv
    2. 解压后,进入对应文件夹:
$ mkdir build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -DBUILD_opencv_stitching=OFF -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D WITH_CUDA=OFF -DENABLE_PRECOMPILED_HEADERS=OFF -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_DOCS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_TESTS=OFF ..
$ make -j
$ sudo make install
$ sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
$ sudo ldconfig
  • 安装OpenNI2(可选):
$ apt-cache search openni2
$ sudo apt-get install libopenni2-dev 
  • 安装OpenGL:
$ sudo apt-get install build-essential libgl1-mesa-dev
$ sudo apt-get install freeglut3-dev
$ sudo apt-get install libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev
  • 进入到OnePiece目录下,输入
$ mkdir build && cd build && cmake .. && make -j

另外说一句,为什么不设计得再少点依赖呢?除了作者水平不行,还有一点是,OpenCV和Eigen等有些开源库用得很多,如果什么io接口都用更底层的,这样并不方便库用在更多别的项目中(作者最开始用Open3D中某个算法时,Open3D图片读取用的都是更底层的库,而不是OpenCV,而自己的项目中用的是OpenCV的mat。这样格式转换就变得很麻烦,后来就自己实现了那个算法,这段代码成了OnePiece最早的一段代码)。

下载

源码可以在OnePiece下载,用于测试的数据可以在TestData下载。

为什么是One Piece?

  • One Piece是海贼王里的大秘宝,恭喜你找到宝藏(我希望它能帮到你,并且对你来说是个宝藏)!
  • One Piece直译是一块,正如这个库一样,它只是整个三维视觉,图形学体系知识的一小块,还有一片汪洋等你探索。