Help us understand the problem. What is going on with this article?

Mask R-CNN をwindowsで環境構築

More than 1 year has passed since last update.

はじめに

自身のWindows端末でMask R-CNNを動かしてみようと思ったとき、一部戸惑ったところがあったので、ほんのちょっとしたことですが記事にします。

実行環境

  • Windows10
  • Anaconda

環境構築

一連の流れは色々な方がすでに記事にしてはいますが、流れにそって紹介します。

c:/~/> conda create -n r_cnn python=3.6
c:/~/> active r_cnn

まずはAnacondaで仮想環境を作成し、起動します。


続いてこちらからクローンします

(r_cnn)c:/~/> git clone https://github.com/matterport/Mask_RCNN.git

次に必要なライブラリを一括インストールするために

(r_cnn)c:/~/> cd Mask_RCNN
(r_cnn)c:/~/Mask_RCNN> pip install -r requirements.txt 
(r_cnn)c:/~/Mask_RCNN> python setup.py install

これで環境構築自体は完了なのですが、サンプルプログラムを動かすにはpycocotoolsというモジュールが必要なので、こちらもクローンし、インストールします

(r_cnn)c:/~/Mask_RCNN> git clone https://github.com/pdollar/coco.git
(r_cnn)c:/~/Mask_RCNN> cd coco/PythonAPI
(r_cnn)c:/~/Mask_RCNN/coco/PythonAPI> python setup.py install

これで、環境構築は完了できます。また、学習済みサンプルモデルも別途にあります。


環境構築が完了したので、sample/demo.ipynb を実行すれば、サンプルプログラムが動き、実際にサンプルで入ってる画像にオブジェクト検知とセグメンテーションを行うはずです。

Windows環境で起きた問題

本来、この手順で環境構築は完了し、サンプルプログラムが正常に実行されるはずなのですが、このようなエラーが出てしまいました。

ModuleNotFoundError: No module named 'pycocotools'

先ほど、cocoapiというモジュールをインストールしたはずなのに、このエラーが出てしまいました。再度インストールしなおしても、改善はされませんでした。

解決方法

こちらの記事を参考にさせていただきました。

引用;Mask R-CNNをWindows+Keras環境で動かす
(http://blog.livedoor.jp/tmako123-programming/archives/51025848.html)

Mask_RCNN/coco//PythonAPI/setup.py
#14行目
extra_compile_args=['-Wno-cpp', '-Wno-unused-function', '-std=c99'],
#修正後
extra_compile_args=['-std=c99'],

この修正を行ってから、再度

(r_cnn)c:/~/Mask_RCNN/coco/PythonAPI> python setup.py install

を実行することで、エラーが解消され、正常に実行することが出来ました。

手持ちの画像で実行

蛇足ではありますが、サンプル画像ではなく、自分自身が所持している画像で実行する方法の紹介です。

サンプルプログラムの最初のセル(jupyter-notebookで開いた場合)の最終行の

sample/demo.ipynb
IMAGE_DIR = os.path.join(ROOT_DIR, "images")

こちらのディレクトリ名やパスを変更し、また最終セルの

sample/demo.ipynb
file_names = next(os.walk(IMAGE_DIR))[2]
image = skimage.io.imread(os.path.join(IMAGE_DIR, random.choice(file_names)))

もともとimagesフォルダの中からランダムに画像を選択。となっているので、ここに手を加えれば、好きな画像をセグメンテーション出来ます。


また、少々強引ではありますが、そもそものサンプルで指定されているimagesフォルダの中身を全部消去し、新たに好きな画像を追加すれば、頭を使わずに好きな画像で実行することが出来ます。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away