Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
40
Help us understand the problem. What is going on with this article?
@nanako_ut

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

More than 3 years have 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では検出できなかったボールやバット、グローブなど小さな形状まで検出できていて、すごい。
利用目的に合わせて、使い分けるのがよいのかな??

参考サイト

40
Help us understand the problem. What is going on with this article?
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.
Sign Up
If you already have a Qiita account Login
40
Help us understand the problem. What is going on with this article?