mieki256's diary



2023/05/18(木) [n年前の日記]

#1 [cg_tools] OpenPose動画を作りたい

blenderを使ってOpenPose動画を作成する手順は分かったけれど、手作業でポーズを指定してアニメーションを作らないといけないあたりが面倒臭い。既存の動画を分析してOpenPose動画を生成することはできないものだろうか。というか、本来のOpenPoseって、現実に存在する人体の動きを解析して作るものだろうし…。

そんなわけで、OpenPose動画を生成するためのツールがあるのかどうかググってみた。

環境は、Windows10 x64 22H2。CPU : AMD Ryzen 5 5600X。GPU : NVIDIA GeForce GTX 1060 6GB。

以下のページが参考になりそう。ありがたや。

_OpenPoseを使って手っ取り早く姿勢推定をしてみる(Windows10) | 技術的特異点
_OpenPose による姿勢推定(Windows 上)
_OpenPose 1.7.0 のインストール,デモの実行(Windows 上)
_OpenPose の使い方 - nomlab
_Advent Calendar | 濱川研究室Webページ
_OpenPoseの使い方メモ - .com-pound

よく分からんけど、OpenPoseDemo.exe なるものを動かせば OpenPose画像/動画が得られるようだなと…。

OpenPoseのバイナリを入手 :

以下のページから、OpenPoseを生成できる、Windows用のバイナリが入手できるらしい。

_GitHub - CMU-Perceptual-Computing-Lab/openpose: OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation
_Releases - CMU-Perceptual-Computing-Lab/openpose - GitHub

OpenPose v1.7.0 を入手。CPUを使って処理する版と、GPUを使って処理する版があるらしいけど、よく分からないので両方DLしておいた。
  • openpose-1.7.0-binaries-win64-cpu-python3.7-flir-3d.zip : CPU使用版
  • openpose-1.7.0-binaries-win64-gpu-python3.7-flir-3d_recommended.zip : GPU使用版

解凍して任意の場所に置く。今回は、D:\aiwork\openpose\cpu\ と、D:\aiwork\openpose\gpu\ に置いてみた。

学習モデルデータをダウンロード :

動かすには、学習モデルデータを入手しないといけない。modelsフォルダの中に入って、getBaseModels.bat を実行すると、拡張子が .caffemodel のファイルがいくつかDLされる。全部で400MBほどのファイルがDLされた。

サンプル画像やサンプル動画 :

examples\media\ というフォルダの中に、動作確認用のサンプル画像、サンプル動画が入っていた。jpgファイルが20ファイル、aviファイルが1ファイル入ってる。

動かしてみる :

とりあえず、動かしてみる。GPU使用版は何か色々必要になりそうなので、まずはCPU使用版を使ってみる。

サンプル画像の中の COCO_val2014_000000000328.jpg だけを、test\ というフォルダを作って、その中にコピー。

bin\ の中に実行バイナリ、OpenPoseDemo.exe が入ってるらしいので、ソレを実行。
bin\OpenPoseDemo.exe --image_dir test
--image_dir INDIR を指定すれば、画像が入ってるフォルダを指定できる。ファイル単位で指定できるわけではなくて、フォルダ単位でしか指定できないようだなと…。

> bin\OpenPoseDemo.exe --image_dir test
Starting OpenPose demo...
Configuring OpenPose...
Starting thread(s)...
---------------------------------- WARNING ----------------------------------
We have introduced an additional boost in accuracy in the CUDA version of about 0.2% with respect to the CPU/OpenCL versions. We will not port this to CPU given the considerable slow down in speed it would add to it. Nevertheless, this accuracy boost is almost insignificant so the CPU/OpenCL versions can be safely used.
-------------------------------- END WARNING --------------------------------
OpenPose demo successfully finished. Total time: 3.299756 seconds.
3.299756秒かかって、OpenPose が描き込まれた感じの画像ウインドウが一瞬表示されて消えてしまった。ひとまず、動いてはいるようだなと…。CPU使用版でもちゃんと動いてくれる。しかし、結果画像がどこにも保存されてない気がする…。

--write_images OUTDIR をつければ、結果画像を保存できるらしい。outputsフォルダを作成して、指定してみる。
bin\OpenPoseDemo.exe --image_dir test --write_images outputs

outputs\ の中にpng画像が保存された。元画像の上に、OpenPose が描き込まれている状態の画像が得られた。ちゃんと人体姿勢を検出できてる。スゴイ。

ただ、OpenPose画像だけを取得したいのだけど…。そんなことはできるのだろうか。

以下のページで、該当オプションが解説されてた。

_openpose/01_demo.md at master - CMU-Perceptual-Computing-Lab/openpose - GitHub

--disable_blending をつけてやると、元画像との合成を無効にしてくれるらしい。
bin\OpenPoseDemo.exe --image_dir test --write_images outputs --disable_blending

OpenPoseだけが描き込まれた画像が得られた。

解析結果を数値で欲しい場合は、.yml か .json で書き出すことができる模様。--write_keypoint OUTDIR か --write_json OUTDIR を使う。
bin\OpenPoseDemo.exe --image_dir test --write_images outputs --disable_blending --write_keypoint outputs --write_json outputs

2023/05/19追記 :

以下のページにコマンドのオプション一覧がまとめられていた。ありがたや…。このページを見てから作業すれば良かった…。

_OpenPose - コマンド一覧 - Qiita

以上です。

過去ログ表示

Prev - 2023/05 - Next
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project