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ファイルで保存されていく.
全チャネルを横に並べた横に非常に長い画像が生成される.