1. はじめに
以前から動物の骨格推定の例が無いか気になっていました。調べたところ、既存のモデルで意外と簡単に試せました。
Google Colab上で、動物骨格推定モデルに自前の画像を入力して推定させるまでの流れとその結果を紹介します。
2. 環境構築
ailia SDKの「AnimalPose」を使います。
下記のコマンドをcolabのセルに入力・実行し、ailia-models
をクローンします。
!git clone https://github.com/axinc-ai/ailia-models.git
colabを開いてからカレントディレクトリを変更していなければ、/content
下にローカルリポジトリが作られます。
クローンしたリポジトリをカレントディレクトリにし、必要なパッケージをインストールします。
%cd /content/ailia-models
!pip install -r requirements.txt
3. 動物骨格推定を実行
サンプル画像を入力とした場合
まずはリポジトリに含まれるサンプル画像で動物の骨格推定を試してみます。
pose_estimation/animalpose
に移動しanimalpose.py
を実行します。
# pose_estimation/animalposeに移動し、試しに実行してみる
%cd /content/ailia-models/pose_estimation/animalpose
!python3 animalpose.py --input input.jpg --savepath output.jpg
実行に成功すると、animalpose
ディレクトリにREADMEの通りに推定された骨格が描画された画像output.jpg
が出力されます。
自前の画像を入力とした場合
今回は下のウサギの画像を入力とします。
この画像を、Google Colabのファイル
上にアップロードします。
(/content
下にアップロードした前提とします。)
骨格推定の実行方法はサンプル画像の時と同様です。
# サンプル画像以外の画像をモデルに入力する
!python3 animalpose.py --input /content/img.jpg --savepath /content/test_result.jpg
実行に成功すると、下図のように骨格推定の結果が確認できます。
後ろ足を見つけられていないようですが、概ね骨格推定ができているかと思います。
動画を入力とした場合
--video
オプションに動画ファイルのパスを指定することで、動画に対しても骨格推定を行えるようです。
# 動画を入力として骨格推定を実行
!python3 animalpose.py --video /content/video.mp4 --savepath /content/output.mp4
注意点として、元のソースコードをcolabで実行するとcv2.imshow
の使用箇所でエラーが発生します。
animalpose.py 363-364行目と372行目をコメントアウトすれば、推論を実行できます。
精度は微妙ですが、骨格推定の結果が描画された動画を出力できました。
4. おわりに
環境構築の観点から、MMPoseのモデルを使うよりも簡単に動物骨格推定を試せました。
手間のかかる導入無しに動物骨格推定を試したい時にお勧めできます。