segmap安裝以及tensorflow1.8的原始碼編譯
阿新 • • 發佈:2018-12-04
segmap 18年出的一篇文章,使用深度學習的方法來計算分割後點雲的描述符。所以需要安裝tensorflow。而且因為需要c++呼叫tensorflow,所以必須使用自己編譯的tensorflow,本文章將詳細介紹編譯的方法。
tensorlfow需要的依賴的安裝說明見:https://blog.csdn.net/ziliwangmoe/article/details/84372485。只需要把driver和cuda兩部分安裝完。
segmap推薦使用1.8,那我們就用1.8吧。
安裝bazel
注意bazel用最新的版本會有問題。這裡使用16.1。
下載安裝檔案:https://pan.baidu.com/s/1PbXNemZjaM-KByTcmNpC6w 提取碼: f6mc
下載後使用命令進行安裝
sudo apt-get install pkg-config zip g++ zlib1g-dev unzip python
chmod +x bazel-0.16.1-installer-linux-x86_64.sh
./bazel-0.16.1-installer-linux-x86_64.sh --user
gedit ~/.bashrc
export PATH="$PATH:$HOME/bin"
編譯tensorflow
下載tensorflow1.8的原始碼:https://pan.baidu.com/s/1VdFvx4OOPlP3_I3DJJQ57Q 提取碼: h5j9
在解壓出來的資料夾中:
sudo apt-get install python-numpy python-dev python-pip python-wheel python-virtualenv virtualenv ~/segmappyenv source ~/segmappyenv/bin/activate pip install --upgrade pip sudo pip install six numpy wheel mock pip install catkin_pkg empy pyyaml ./configure bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg sudo pip install /tmp/tensorflow_pkg/tensorflow-1.8.0-py2-none-any.whl
./configure執行後,會被問很多問題,只用在問否使用cuda的時候選y,其他都回車,採用預設選項
bazel build開始編譯,編譯時間很長,中間如果報python - ImportError: No module named mock - Stack Overflow類似的文集,就用pip安裝對應的包。
這裡使用virtualenv,把tensorflow裝在segmappyenv這個虛擬環境中。
編譯segmap
保持在segmappyenv狀態中:命令列前面有(segmappyenv)符號。
$ sudo apt-get install python-wstool doxygen dh-autoreconf
$ mkdir -p ~/segmap_ws/src
$ cd ~/segmap_ws
$ catkin init
$ catkin config --merge-devel
$ catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
$ cd src
$ git clone https://github.com/ethz-asl/segmap.git
$ wstool init
$ wstool merge segmap/dependencies.rosinstall
$ wstool update
$ cd ~/segmap_ws
$ catkin build tensorflow_ros_cpp --cmake-args -DFORCE_TF_PIP_SEARCH="ON"
$ cd ~/segmap_ws
$ catkin build segmapper