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に置換する。
以上
 
  
  
  
  

コメント