勉強しないとな~blog

ちゃんと勉強せねば…な電気設計エンジニアです。

OpenPoseやってみる - 2

前回の続き。
公式のOpenPoseのサンプルから試しに動かしてみる。

nokixa.hatenablog.com

ビルド済みバイナリを動かしてみる

Pythonから動かす前に、ビルド済みバイナリを動かしてみることが推奨されていたので。

github.com

リリース版ダウンロード

Windows版のv1.7.0をダウンロードする。

Release OpenPose v1.7.0 · CMU-Perceptual-Computing-Lab/openpose · GitHub

ダウンロードしたzipファイルを適当なところに展開。
中身はこんな感じ。

モデルダウンロード

展開した中身のInstruction.txtを見ると、バッチファイルを実行して、必要なモデルファイルをダウンロードせよと書いてある。
OpenPoseドキュメントのinstallationのところにも書いてあった。

openpose/doc/installation/0_index.md at master · CMU-Perceptual-Computing-Lab/openpose · GitHub

getBaseModels.batをダブルクリックで実行。

Windows Defenderから警告が出てしまった。
気にしない。

どうも指定のURLに接続できない。

------------------------- BODY, FOOT, FACE, AND HAND MODELS -------------------------
----- Downloading body pose (COCO and MPI), face and hand models -----

------------------------- POSE (BODY+FOOT) MODELS -------------------------
Body (BODY_25)
--2023-08-31 06:35:26--  http://posefs1.perception.cs.cmu.edu/OpenPose/models/pose/body_25/pose_iter_584000.caffemodel
Resolving posefs1.perception.cs.cmu.edu (posefs1.perception.cs.cmu.edu)... 128.2.220.57
Connecting to posefs1.perception.cs.cmu.edu (posefs1.perception.cs.cmu.edu)|128.2.220.57|:80... failed: Unknown error.
Retrying.

--2023-08-31 06:35:48--  (try: 2)  http://posefs1.perception.cs.cmu.edu/OpenPose/models/pose/body_25/pose_iter_584000.caffemodel
Connecting to posefs1.perception.cs.cmu.edu (posefs1.perception.cs.cmu.edu)|128.2.220.57|:80... failed: Unknown error.
Retrying.

--2023-08-31 06:36:11--  (try: 3)  http://posefs1.perception.cs.cmu.edu/OpenPose/models/pose/body_25/pose_iter_584000.caffemodel
Connecting to posefs1.perception.cs.cmu.edu (posefs1.perception.cs.cmu.edu)|128.2.220.57|:80... failed: Unknown error.
Retrying.

調べてみると、このサーバーがよく落ちるよう。
ただ、この投稿を見ると、DropboxとかKaggleとかにあげてくれている人がいるので、そこから手動でダウンロードする。

Models are not available at URL http://posefs1.perception.cs.cmu.edu · Issue #1567 · CMU-Perceptual-Computing-Lab/openpose · GitHub

こちらのKaggleのデータを使わせてもらった。

openpose_model | Kaggle

先ほどのバッチファイルの中身を見てみると、以下の3つを所定の場所にダウンロードするようになっていた。
ダウンロードしてその通りに配置する。

  • pose_iter_584000.caffemodel -> models/pose/body_25フォルダ
  • pose_iter_116000.caffemodel -> models/faceフォルダ
  • pose_iter_102000.caffemodel -> models/handフォルダ

デモ実行

早速動画データをOpenPoseにかけてみる。
使うデータは、YOLO試しのときに使ったのと同様、MOT16のものにする。

nokixa.hatenablog.com

PowerShellで、bin/OpenPoseDemo.exeを実行する。
--image_dirオプションで、画像ファイルのディレクトリを指定可能。

実行結果。

(base) PS C:\work\openpose_test\openpose> .\bin\OpenPoseDemo.exe --image_dir ..\..\MOT16\train\Mot16-09\img1\
Starting OpenPose demo...
Configuring OpenPose...
Starting thread(s)...
Auto-detecting all available GPUs... Detected 1 GPU(s), using 1 of them starting at GPU 0.
OpenPose demo successfully finished. Total time: 56.761785 seconds.
(base) PS C:\work\openpose_test\openpose>

なんだかできてる感じ。
これがディレクトリ内の全画像に対して実施された。

※MOT16データは連番の静止画になっている。

ただし、exeを実行すると、専用のウィンドウが現れて、検出した骨格を元画像に重畳して表示して、それで終わり。
データとしては残っていない。

今回はここまで

ひとまず動くのは確認できた。
このデモのexeだけでも、ほかに色々オプションがあったので、もう少し試してみる。