機械学習で骨格検出する「Realtime Multi-Person Pose Estimation」
昨日今日の話ではないですが、機械学習について勉強しています。最近は入力画像データに写っている人の骨格を検出するアルゴリズムの「Realtime Multi-Person Pose Estimation」のデモを動かそうとしたりしています。
これにはオリジナルの「OpenPose」という骨格検出アルゴリズムが存在しており、DeNAのエンジニアのleetenkiさんがchainerを使用するように書き直したものです。オリジナルの「OpenPose」を動かすには、GPUを搭載する高性能PCが必要ですが、私はそんなPCを持っていません。なので処理速度を落としてでもCPUで動作可能な、「Realtime Multi-Person Pose Estimation」を試してみました。
「Realtime Multi-Person Pose Estimation」のサンプルを動かす
参考にした記事は以下です。Pythonからその他諸々の環境構築もkaraageさんのブログ通りに進めました。
そしてこのアルゴリズムのサンプルコードも動かすことができました。しかし私の「MacBook Air」では、1枚の画像の解析に5秒以上(どの程度かかったかあまり覚えてません)かかったので私の目的を達成するには非実用的でした。私の目的は入力"動画"に骨格情報を合成して出力することです。コードはサンプルに3,4行書き足せばよかったのですが、やはり動画を解析するとなるとGPUが必要です。
「Google Claboratory」を利用する
そこで上記のkaraageさんのブログを眺めているとこんな記事がありました。
なんとGPU環境が無料です。「Google Colaboratory」はブラウザ上でPythonコードが書けてすぐ実行もできます。
それから私は「Realtime Multi-Person Pose Estimation」のコードをGoogle driveに移しGPU環境での実行を試みているのですが、ライブラリのインストールでつまづいています・・・。「CUDA」ライブラリに関連する「cupy」のインストールでエラーが発生して進めていません。この事についてはまた別の記事に詳しく書くか後で追記しようと思います。