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

Mask R-CNN(keras)で人物検出 on Colaboratory

More than 1 year has passed since last update.

はじめに

最新の物体検出手法というMask R-CNN(keras版)を動かしてみます。
せっかくなので、Google Colaboratoryでやってみることにしました。

実行ソースはこちら→GitHub

Mask R-CNN

物体検出、セグメンテーションのみならず、人の骨格推定も可能なようです。
mask_rnn.PNG
mask_rnn2.PNG

出典:https://arxiv.org/pdf/1703.06870v1.pdf

処理内容についての説明は、以下サイトを参考に

環境

Google Colaboratory(python3/GPU)

Google Colaboratoryのノートブックを新規作成し、「ランタイム」「ランタイムのタイプを変更」で、python3/GPUを選択。
colaboratory.PNG

インストール

今回試すのは、こちら→Github
ReadMeの「Installation」に従って、作業を進めていきます。

■1.Clone this repository

githubからソースを取得します。

maskRnn-keras.ipynb
# gitからソースを取得
!git clone https://github.com/matterport/Mask_RCNN.git

# 確認
!ls

■2.Install dependencies

Mask_RCNN-master/requirements.txt に記載されている関連ライブラリをインストールします。

maskRnn-keras.ipynb
# フォルダへ移動
%cd Mask_RCNN

# 確認
!ls

# ライブラリを取得
!pip install -r requirements.txt

■3.Run setup from the repository root directory

Mask_RCNN-master/setup.py を実行します。

maskRnn-keras.ipynb
# フォルダへ移動
%cd Mask_RCNN

# setup.pyを実行
%run -i setup.py install

■4.Download pre-trained COCO weights (mask_rcnn_coco.h5)

学習済の重み (mask_rcnn_coco.h5)を取得します。

maskRnn-keras.ipynb
# フォルダへ移動
%cd Mask_RCNN

# 重みを取得
!wget https://github.com/matterport/Mask_RCNN/releases/download/v2.0/mask_rcnn_coco.h5

■5.MS COCO install

Microsoft COCO が提供する画像データセット用APIをインストールします。

maskRnn-keras.ipynb
# COCO 用ソースを取得
!git clone https://github.com/waleedka/coco.git

# 確認
!ls

# cythonをインストール
!pip install cython 

# python用APIをインストール
%cd Mask_RCNN/coco/PythonAPI
%run -i setup.py build_ext --inplace
%run -i setup.py build_ext install

上記で問題ないようなのですが、、、インストールしたpycocotoolsがない、とエラーになってしまうので、
パスを設定しました。

maskRnn-keras.ipynb
import sys
sys.path.append('/content/Mask_RCNN/coco/PythonAPI')

デモを実行

■1.kerasをインストール

Google Colaboratoryにはデフォルトで入っていないkerasをインストール

maskRnn-keras.ipynb
!pip install keras

■2.demo.ipynbを実行

https://github.com/matterport/Mask_RCNN/blob/master/samples/demo.ipynb をコピペして実行

実行結果。キリンとシマウマを見分けてます。

colaboratory-run.PNG

人物検出

openCVとKerasで画像から人物検出 でも使ったスポーツシーンの画像で試した結果
mask-rnn-keras.PNG

まとめ

同じ形状のものが重なっている場合にうまく検出できていない?
(人が重なっている場合に、別人と判定したり、人が検出できていなかったり)
ただ、前回試したSSDでは検出できなかったボールやバット、グローブなど小さな形状まで検出できていて、すごい。
利用目的に合わせて、使い分けるのがよいのかな??

参考サイト

Why not register and get more from Qiita?
  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
No 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
ユーザーは見つかりませんでした