mask_rcnn_rosをインストールしたときのメモ。
- 環境
- Ubunutu16.04
- ROS Kinetic
- 次のサイトからgit cloneする
- Mask RCNN Object Detector
- $ cd ~/catkin_ws/src
- $ git clone https://github.com/iKrishneel/mask_rcnn_ros
$ git pull --all
- Pythonの仮想環境virtualenvを使う。ライブラリバージョンの依存関係が強いのでvirtualenvを使うと便利。なお、サイトではpython3でないと動かないとあるが、ROS Kineticはpython2推奨なのでpython2でインストールする。学習などはROSパッケージではないmask_rcnnを使う。
- インストール
- sudo pip2 install virtualenv
- sudo pip2 install virtualenvwrapper
- 環境設定
- ~/.bashrcに以下を追加
- export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2
- export WORKON_HOME=~/.virtualenvs
- source /usr/local/bin/virtualenvwrapper.sh
- ~/.bashrcに以下を追加
- 仮想環境の生成
- $ venv_name=mrcnn
- $
mkvirtualenv --python=python2 $venv_name
- 依存関係のインストール
- $ cd ~/catkin_ws/src/mask_rcnn_ros
- $ workon mrcnn
- 仮想環境に入るとプロンプトの前に(mrcnn)と表示する
- (mrcnn) $ pip install -r requirements.txt
- 仮想環境から抜ける
- (mrcnn) $ deactivate
- インストール
- パッケージのダウンロード
$ cd ~/catkin_ws/src/mask_rcnn_ros
$ git submodule update --init
- ビルド
- $ catkin build mask_rcnn_ros
- 実行
- $ workon mrcnn
- Publisherとしてノード実行
- (mrcnn) $ roslaunch object_detector object_detector.launch image:=<image_topic_name> is_service:=false debug:=true
- Serviceとしてノード実行
- (mrcnn) $ roslaunch object_detector object_detector.launch image:=<image_topic_name> is_service:=true debug:=false
- roslaunchの引数
- image: 画像トピック名
- is_service: サービスのときはtrue、それ以外はfalse
- debug: trueにするとデバッグ用に画像がopencvのcv.imshow()で表示される。
- detection_threshold: 検出の閾値 [0, 1]
- model: kerasモデルファイルのパス. モデルの拡張子はh5。
- class_labels: クラス名とラベルがマッピングされたテキストファイル
- エラーがでた場合
- 実行時に以下のエラーがある場合:mask_rcnn_ros/src/mask_rcnn_ros/model.pyのtopologyをすべてsavingに置換する。
Module 'keras.engine.topology' has no attribute 'load_weights_from_hdf5_group_by_name'
File "/src/mask_rcnn_ros/src/mask_rcnn_ros/model.py", line 2004, in load_weights
topology.load_weights_from_hdf5_group_by_name(f, layers)
NameError: global name 'topology' is not defined
- 実行時に以下のエラーがある場合:mask_rcnn_ros/src/mask_rcnn_ros/model.pyのtopologyをすべてsavingに置換する。
以上
コメント