1. ホーム
  2. ディープラーニング

OpenPoseによる人体姿勢の検出

2022-03-16 04:39:05
<パス

I. 概要

  • OpenPoseは、カーネギーメロン大学が最初に提案し、その後、いくつかの出版物で提案されたモデルでの実装を主にベースにしています。
    • CVPR2016の様子。畳み込みポーズマシン(CPM)
    • CVPR2017 : リアルタイム多人数ポーズ推定
    • CVPR2017 : マルチビューブートストラップを用いた単一画像における手のキーポイント検出
  • しかし、非常に計算量が多く、通常はGPUで動作し、フレームレートが低い(5fps以下)ため、その後、改良が加えられている
  • 改良版では主にモデルの改良やカットを行い、モバイル版(各種ダンスアプリなど)ではアルゴリズム自体をOpenPoseを介して動作するように最適化し、ネットワーク構造を変えて計算量を減らしていますが、同時に精度もそれなりに落としています。

次に、OpenPoseの実装コードの簡略版

21


テストは次のように動作します。

  • 一人の人物とポーズを展開した場合の検出効果の良さは、次の2つの図に例示されています。



  • 複数の人物や特殊なポーズがあると、検出力が低下する(つながりが乱れたり、キーポイントが欠けたりする)ことを、次の2枚の画像で説明します。



  • 左上に表示されている処理時間からわかるように、基本的に1枚の画像に0.5Sかかる遅い処理です

3つ目は、より複雑なバージョンのOpenPoseの実装コードです

  • コードソース GitHub。 カメラオープンポーズケラス
  • コードも少し複雑になり、モデル(大きめ:200M)も学習済みで、単体でもダウンロードできますが、エクストラネットではなかなかダウンロードできないので、Baidu Cloud:でダウンロードすることもできます。 model.h5
  • 完全な実装コードは demo_camera.py ファイルにあり、以下のコードはテスト用のリードインイメージを取るために少し修正しました。
1
15


プログラムは次のように実行されます。

20


  • ` - -image の後に入力画像へのパスを指定します.

検出効果は次のとおりです。

  • まず、上記のコードの簡易版でうまくいかなかった2つの画像が、このモデルでどのように処理されたかを比較しました。



  • さらに、他の画像でも効果を検証してみたところ、人物を鮮明にレンダリングした方が、より正確に関節点を検出できることが分かりました