OpenPoseの使い方メモ

OpenPoseとは

OpenPoseはDeep Learningを使って単眼カメラから人体姿勢を推定するライブラリで,CVPR2017でRealtime Multi-Person 2D Pose Estimation using Part Affinity Fieldsというタイトルで発表されたもの.
OpenPose
公式ページの情報を要約すると,画像,ビデオ,webcam,IPカメラから18点のキーポイントが検出可能.各種フォーマットで結果を保存可能.
他にも,左右の手から21点,顔から70点のキーポイントを検出するオプションもある.
これらはUbuntu,Windows,Nvidia Jetson TX2で動作する.
 
というわけで,色々な用途に使えるので,よく使うオプションのメモ.

実行方法

例えば,USBカメラを使う場合は以下の通り.

./build/examples/openpose/openpose.bin

ディレクトリ内の画像を一括で処理する場合

./build/examples/openpose/openpose.bin -image_dir /path/to/image

ビデオに対して処理する場合

./build/examples/openpose/openpose.bin -video /path/to/vieo

IPカメラの場合

./build/examples/openpose/openpose.bin -ip_camera (RTSPかHTTPでURLを指定)

姿勢推定結果の画像を保存したい

以下のオプションを追加

-write_images /path/to/directory

元画像を保存したい

以下のオプションを追加

-render_pose 0 -write_images /path/to/output_directory

ちなみに,-render_pose 1 でCPUを使った描画になり,デフォルトの -render_pose 2 よりも高速.

姿勢推定結果の座標値を保存したい

以下のオプションを追加

-write_keypoint /path/to/output_directory

デフォルトではyml形式で保存される.ファイルは,-write_imageをした時の画像と同じ番号が割り振られるので,画像とほぼ同じファイル名で1画像1ファイルで保存されていく.

Part Affinity Fieldsの情報を保存したい

以下のオプションを追加

--heatmaps_add_PAFs true -write_heatmaps /path/to/output_directory

デフォルトではPNG形式で保存される.ファイルは,-write_imageをした時の画像と同じ番号が割り振られるので,画像とほぼ同じファイル名で1画像1ファイルで保存されていく.
全チャネルを横に並べた横に非常に長い画像が生成される.

“OpenPoseの使い方メモ” への2件の返信

  1. 初歩的な質問で申し訳ありません。
    pose_keypoints_3dの出力方法を教えていただけないでしょうか。
    よろしくお願いします。

    1. pose_keypoints_3dを出すためには,FLIRのカメラを2台以上(3台以上がベター)をキャリブレーションしたあと,同期して撮影しないといけません.
      また,OpenPoseをそれ用にコンパイルする必要があり,結構大変です.
      https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/modules/calibration_module.md
      https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/modules/3d_reconstruction_module.md#using-a-different-camera-brand

      これは結構大変なのですが,代わりの手段として,OpenPoseの2D keypointsから3Dを推定する方法もあります.
      以下のページが参考になるかもしれません.
      http://akasuku.blog.jp/archives/73745862.html

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です