Mask R-CNNを簡単にカメラ映像から試す方法

Mask R-CNNを実際に動かしてみよう

こんにちは。

AI coordinatorの清水秀樹です。

現時点でおそらく最新最強の物体検出であるMask R-CNNを簡単に試せる方法を紹介します。

難しい論文なんぞ読まなくても、ここで紹介している手順通りに実行するだけでMask R-CNNを動かすことができるようになります。

Mask R-CNNの仕組みについては他のサイトに任せるとして、ここでは一切触れていません。

単純に動かすことだけに特化した記事となります。

また、すでに公開済みのGitHubからただ動かすだけでは面白くないので、webカメラからでも動くようにカスタマイズしたソースコードも合わせて紹介します。

興味がある方は試してみてください。

 

成功すれば以下の画像のように、物体の輪郭にそった物体検出ができるようになります。

いよいよ映画のターミネーターばりの画像処理が現実的になってきました。

開発環境

なんでもそうですが、この開発環境の準備が一番苦労します。

筆者もここが一番苦労します。

ただし、開発環境さえ揃えてしまえば、後はソースを動かすだけで試すことができますので頑張ってみましょう。

以下に、筆者の開発環境をゴチャゴチャと記載しておきます。

  • Mac (27-inch, Late 2012)
  • プロセッサ 2.9 GHz intel Core i5
  • macOS Sierra バージョン 10.12.4
  • conda 4.3.29
  • python 3.5.2
  • keras 2.0.8
  • tensorflow
  • Jupyter Notebook
  • Numpy, skimage, scipy, Pillow, cython, h5py 1.3.0

GitHubからMask R-CNNのソースコードをダウンロード

まずはMask R-CNNを紹介しているGitHubからソースコードをダウンロードしましょう。

ダウンロードしたフォルダ内に、「demo.ipynb」があるので、何も考えずにjupyter notebookで実行してみましょう。

まずは動かしてみるという気持ちが、何をやるにも重要な姿勢かと思います。

実行すると以下のようなエラーが出ます。

このエラーを解消するにはCOCOAPIのインストールが必要になりますので、GitHubからダウンロードしてインストールしましょう。

GitHubからダウンロードが完了したら、

cocoapi-master>PythonAPI>setup.py

のsetup.pyを実行してインストールしましょう。

以下のコマンドのみで作業は完了します。

これで先ほどのエラーが解消されるはずです。

 

では再度、「demo.ipynb」を起動しましょう。

続いて以下のようなエラーが出た方は、kerasのバージョンが古い可能性があります。

というか古いから出力されるエラーです。

kerasを2.0.8にバージョンアップしましょう。

筆者は何も考えず、以下のコマンドでkerasのバージョンアップを実施しました。

 

続いてtensorflowのバージョンアップも必要です。

以下のコマンドでtensorflowもバージョンアップしましょう。

 

さて、この状態で再度「demo.ipynb」を実行しても、以下のエラーが発生します。

なんじゃこりゃっ!て感じのエラーですが、エラーメッセージをよく確認すると”mask_rcnn_coco.h5″のダウンロードができなかったよ!というようなエラーメッセージがあることが分かるかと思います。

ということで、”mask_rcnn_coco.h5″を手動でダウンロードしましょう。

ちなみに、”mask_rcnn_coco.h5とは学習モデルのことを指します。

“mask_rcnn_coco.h5″もGitHubで公開されています。

GitHubにアクセスし、上記画像の赤枠で囲ってあるh5ファイルをダウンロードしましょう。

ダウンロードしたら、「demo.ipynb」を同じディレクトリに保存します。

これで環境準備が整いました。

実行結果

3度目の正直で「demo.ipynb」を起動してみましょう。

今度はうまく行くはずです。

無事処理が終了すると、以下のようが画像がjupyter notebook上に表示されます。(画像はランダムに選ばれて表示されます)

すげー!!

感動です。

今までは、矩形で囲んだだけの物体検出でしたが、Mask R-CNNでは輪郭まで検出できています。

この分野はみるみる進化するので、追っていて楽しいですね。

 

映像からのMask R-CNN

続いてカメラ映像からのMask R-CNNを試してみましょう。

PC内蔵カメラからでも動画からでも実行できます。

ソースコードを適当に作成してみました。

とりあえず動けばなんでも良い感じで作成しています。

cap = cv2.VideoCapture(0)を指定していますので、PC内臓のwebカメラが起動するはずです。

動画にしたい場合は、cap = cv2.VideoCapture(‘move.mp4’)といった指定をすれば、動画でもMask R-CNNを試せます。

興味がある方はぜひ挑戦してみてください。

 

それではまた。

 


その他の物体検出記事はこちらから

あなたにオススメの記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

PAGE TOP