部分內容轉自https://blog.csdn.net/jthree2012/article/details/80837661
ElasticFusion編譯過程(Ubuntu16.04)
1. ElasticFusion簡介
ElasticFusion是三維重建領域效果比較顯著的開源庫,其作者爲Facebook Reality Labs的Thomas Whelan博士。ElasticFusion的github源碼主頁,是本次編譯過程的主要參考資料。
2. 編譯前準備
2.1 硬件配置
本文使用的硬件配置如下:
+ Intel i7
+ NVIDIA GeForce940MX(GPU太差了)
2.2 庫依賴
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
很多我都已經配好了 只把那些沒安裝了安了 大概是cmake-qt-gui git openjdk-7-jdk 這三個 build-essential不確定
2.2.1 因爲cuda我已經安裝過了 是cuda9.0 步驟在另外一篇博客裏看.
2.2.2 安裝openjdk-7-jdk的時候找不到該文件,參考鏈接
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
- 安裝openNI(不是官方版本,而是occipital的fork版本 )
cmake .. CMake Error: The source directory "/home/zbq/append/OpenNI2" does not appear to contain CMakeLists.txt. Specify --help for usage, or press the help button on the CMake GUI. zbq@zbq-TP:~/append/OpenNI2/build$ make -j8 make: *** 沒有指明目標並且找不到 makefile。 停止。 zbq@zbq-TP:~/append/OpenNI2/build$ make make: *** 沒有指明目標並且找不到 makefile。 停止。 zbq@zbq-TP:~/append/OpenNI2/build$ cd .. zbq@zbq-TP:~/append/OpenNI2$ make -j8 只有這個成功了,make了.本來查了半天不知道怎麼辦,因爲跟參考鏈接步驟不一樣 發現官網就是這樣的,索性就這樣了
參考鏈接的編譯命令:(我沒使用)
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 (我把以前安裝的/usr/local/include 和/usr/local/lib的pangolin相關的備份後刪除了,然後重新安裝)
3. 編譯過程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,編譯順序如下所示。
3.1 Core編譯
參考鏈接的版本
cd ElasticFusion
cd Core
mkdir build && cd build
make -j8
sudo make install
cmake ..
sudo ldconfig
我是在src文件夾裏面新建了build文件夾 然後安裝的
3.2 GPUTest(我的安裝步驟錯了,我先跳到3.3了)
cd ElasticFusion
cd GPUTest
mkdir build && cd build
make -j8
sudo make install
cmake ..
sudo ldconfig
到了install 哪一步說無法install 我沒管了 因爲這個似乎也不是很需要
3.3 GUI然後報錯說是在core/build裏面找不到東西(因爲我在core/src/build嘛 改了一下cmakelists就好了)
cd ElasticFusion cd GUI mkdir build && cd build make -j8 sudo make install cmake .. sudo ldconfig
在src文件夾裏面新建了build文件夾 然後安裝的
4. 運行datasets
在此處下載數據集, 運行命令如下:
cd ElasticFusion
cd GUI/build
./ElasticFusion -l dyson_lab.klg
我的狀況:剛開始報錯,退出再進入就可以不會報錯了,但是出現界面後.卡住不能動,只能重啓.
zbq@zbq-TP:~/append/projects/ElasticFusion/GUI/src/build$ ./ElasticFusion Creating live capture... failed! DeviceOpen using default: no devices found zbq@zbq-TP:~/append/projects/ElasticFusion/GUI/src/build$ 失敗了 但是應該是可以運行的 說檢測不到器件 界面出來然後卡住了