【導入方法】コマンドのみでopenposeを使って姿勢推定してみる(windows)
目次
openpose
openposeは人骨格検出して姿勢推定できるもの。
注意点としてはある程度のスペックのPC・GPUが必要です。
低スペックだと1フレームでも時間がかかってコマ送りになってしまう。
使うもの
openpose(Github)
Download visualstudio
Download CUDA Toolkit 10.0
Download cuDNN
導入方法
cuDNN、CUDAのダウンロード
cuDNN、CUDAもバージョンを確認しながらセットアップしておく。
セットアップ方法は
などが参考になる。
cuDNN,CUDA versionについて www.tensorflow.org
openposeの取得
openposeをGithubから取ってくる。
以下のコマンドで取得できる。
cd c:\tools git clone --recursive https://github.com/CMU-Perceptual-Computing-Lab/openpose
cmake の実行
「Visual Studio 15 2017 Win64" -T host=x64」の部分は使用しているVisual Studio*1を選択してほしい。
cd c:\tools\openpose del CMakeCache.txt cmake -G "Visual Studio 15 2017 Win64" -T host=x64 ^ -DDOWNLOAD_BODY_25_MODEL=ON ^ -DDOWNLOAD_BODY_COCO_MODEL=ON ^ -DDOWNLOAD_BODY_MPI_MODEL=ON ^ -DBUILD_PYTHON=ON ^ .
ビルド
releaseモードでビルドする。
cmake --build . --config release
ファイルをコピー
binファイルに x64\release内にあるものをコピーする。
cd c:\tools\openpose copy x64\release\*.* bin
姿勢推定してみる
デモの動画で姿勢推定
examples\media内にデモの動画があるのでそれを使ってみる。
bin\OpenPoseDemo.exe --video examples\media\video.avi
処理中
終了時のログ
結果
GPUGTX 1660 SUPER:約13fps
発見した人の最大数:たぶん16人
Total time:平均で約17seconds.
考察
奥の横断歩道の手前までは認識しているが、奥は認識していない。
つまり認識できる限界距離が横断歩道の手前までの距離。1枚目に関して、手前の人と人が重なっているところは認識できていない。
つまり人から見ても人と判断しにくいところは認識できない場合がある。3枚目の画像の左半分にある複雑になっているところにいる黒い服の人は認識できていない。
動画でみるとたまに認識(骨格が付いたり消えたりしている)手前の人達は骨格が安定していたが、奥になる(小さい骨格)の人は骨格が小刻みに揺れていた。
デモの画像で姿勢推定
examples\mediai内に複数のデモ画像があるのでそれを使ってみる。
bin\OpenPoseDemo.exe --image_dir examples\media
処理中
デモ画像の総数は20枚なんだけど、目視では確認できなかった画像もあった。
なので画像を目視で確認するには画像の保存か骨格のデータ保存が必要そう。
終了時のログ
結果
デモ画像の総数は20枚に対して、録画して目視できるのは10枚ほど
GPUGTX 1660 SUPER:約11fps(録画したので若干下がってるかも)
発見した人の最大数:(8Frameの赤い服の電話しているおじさんで)9人
Total time:平均で約3seconds.
*1:Visual Studio 2019 64 ビット版:cmake -G "Visual Studio 16 2019" -A x64 -T host=x64