1. 程式人生 > >segmap安裝以及tensorflow1.8的原始碼編譯

segmap安裝以及tensorflow1.8的原始碼編譯

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