DEIM Forum 2019 B8-3

姿勢推定ライブラリ OpenPose を用いた機械学習による動作識別手法の検討
高崎智香子†

竹房あつ子††

中田 秀基†††

小口正人†† お茶の水女子大学〒 112–8610 東京都文京区大塚 2–1–1†† 国立情報学研究所〒 101–8430 東京都千代田区一ツ橋 2–1–2††† 産業技術総合研究所〒 305–8560 茨城県つくば市梅園 1–1–1
E-mail: †chikako@ogl.is.ocha.ac.jp, ††takefusa@nii.ac.jp, † † †hide-nakada@aist.go.jp †oguchi@is.ocha.ac.jp
あらまし

防犯カメラなどの動画像データが活用されるようになってきたが，動画像解析に要する通信量や計算量，プライバシーに関する問題が介在している．また，ディープラーニング技術が画像認識や音声認識を始めとする様々な分野に応用されているが，正確な認識処理を行うためには大量のデータの収集，処理が必要となるため，リアルタ
イムに解析するのは非常に困難である．本研究では，動画像をリアルタイムに解析し，動作の識別を行うことを目標として，姿勢推定ライブラリ OpenPose とディープラーニングフレームワーク Keras を用いた機械学習手法について考察した．画像 1 枚から抽出した特徴量のみを使用した学習では，約 80%の精度で動作を識別することが可能であることがわかった．次に，同じ動画から取得した 10 枚の画像の時系列を考慮した特徴量データを使用して動作の識別精度を測定したところ，画像 1 枚の識別と比較して識別精度は低下した．実験結果をもとに，その原因と識別精度を向上させる手法について考察する．
キーワード 機械学習，深層学習，分散処理，OpenPose，Keras

Consideration of Machine Learning-based Action Recognition Methods
using the OpenPose Keypoint Detection Library
Chikako TAKASAKI† , Atsuko TAKEFUSA†† , Hidemoto NAKADA††† , and Masato OGUCHI†† Ochanomizu University
2-1-1 Otsuka,Bunkyo-Ku, Tokyo 112–8610, Japan†† National Institute of Informatics
2-1-1 Hitotsubashi, Chiyoda-ku, Tokyo, 101-8430, Japan††† National Institute of Advanced Industrial Science and Technology (AIST)
1-1-1 Umezono, Tsukuba, Ibaraki 305–8560, Japan
E-mail: †chikako@ogl.is.ocha.ac.jp, ††takefusa@nii.ac.jp, † † †hide-nakada@aist.go.jp †oguchi@is.ocha.ac.jp

1. は じ め に
カメラやセンサ等の発達やクラウドコンピューティングの普械学習を用いて動画像を解析するためには，センサ側での前処理により特徴量を維持したままデータ量を削減した後，クラウド側に集約して処理することが望ましい．

及により，一般家庭でライフログを取得，蓄積することが可能

本研究では，深層学習を用いて人の関節情報を抽出する姿勢になり，活用されるようになってきた．しかし，取得した動画

推定ライブラリ OpenPose [1] [2] [3] [4] を使用し，動画像から像はデータサイズと解析計算量が大きく，サーバやストレージ取得した関節の特徴量データから，複数の機械学習手法を用いを一般家庭に設置して処理するのは難しい．リアルタイムに機て動作識別を行った際の認識精度を比較した．また，ディープ図 1 動画像解析システム
図 2 OpenPose によって取得したキーポイント

ラーニングフレームワーク Keras [5] で構築した NN モデルを用いた動作識別の性能改善を図った．画像 1 枚から抽出した特徴量のみを使用した動作の識別と，同じ動画から取得した 10"people":[{"pose_keypoints_2d":[283.201,461.222,

枚の画像の時系列を考慮した特徴量データを使用した動作の識

0.818301,321.728,618.22,0.751273,140.097,別を行い，各手法において 80%以上の精度で動作を識別するこ

611.302,0.643794,87.7155,911.437,0.400931,とが可能であることがわかった．しかしながら，未だ識別精度

115.677,890.546,0.379135,517.083,621.779,が十分ではないため，実験結果をもとに精度を向上させる手法

0.651862,565.945,911.436,0.742212,429.756,について考察する．

904.388,0.770721,311.119,1044.03,0.349768,

2. 背景

178.451,1019.65,0.359588,9.12998,1225.6,
0.103076,0,0,0,426.329,1085.95,0.265937,360.019,

2. 1 提案する動画像解析システムの概要と目的

1054.57,0.412622,0,0,0,237.761,426.189,0.885139,

本研究では，図 1 のようなシステムを想定している．各一般

325.128,422.815,0.826925,185.5,429.66,0.365905,

家庭に設置されたカメラやセンサで取得した動画像から特徴量405.442,401.993,0.704888,0,0,0,0,0,0,0,0,0,0,0,0,抽出を行い，その特徴量をクラウドに収集し機械学習処理を行うことで動画に含まれる動作を識別する．クラウド側では動画や静止画を用いず，センサ側で抽出した特徴量データのみを使

0,0,0,0,0,0]}]

図 3 OpenPose によって取得した座標値の一部用して十分に動作を解析できるのか，どの機械学習手法を用いると高い精度が得られるのかを調査するのが本研究の目的でンドリー，モジュール性，および拡張性により，容易に素早くある．

プロトタイプの作成が可能であるということや，CPU と GPU

2. 2 関 連 技 術

上でシームレスに動作するため，高速な演算が可能で，畳み2. 2. 1 OpenPose

込みやリカレント及びその組み合わせによるニューラルネット

OpenPose は，深層学習を用いて人の関節等のキーポイントワークにも対応可能なことが特徴である．Keras の最大の利点

情報をリアルタイムに抽出する姿勢推定ライブラリで，カリとして，非常に簡単にネットワークモデルを記述でき，迅速なフォルニア大学バークレー校やカーネギーメロン大学などに実験が可能であるという点が挙げられる．

よって開発された．動画や画像に含まれる人物の身体だけでなく，顔や手の 135 のキーポイントを検出することが可能である．

3. 実

験

加速度センサなどの特殊センサを使わずに，カメラによる画像

本稿では，OpenPose を用いて画像から抽出したキーポインや動画のみで解析できることが特徴である．また，GPU を使トの座標データを使用して，複数の機械学習手法を用いて動作用することで，画像や動画に複数の人が含まれている場合でも識別精度を比較する．実験では，1 枚の静止画による動作識別リアルタイムに解析できる．と時系列を考慮した複数静止画を用いた動作識別を行う．デー

2. 2. 2 Keras

タセットには，日常の動作 100 カテゴリの動画を約 1000 ずつ

Keras は プ ロ ジェク ト ONEIROS (Open-ended Neuro-

集めた STAIR Actions [6] から取得した画像を利用する．

Electronic Intelligent Robot Operating System) の研究の一

3. 1 実 験 概 要

環として開発された，ニューラルネットワークを実装するた

STAIR Actions データセットのうち，writing，reading news-めのライブラリである．バックエンドとして TensorFlow やpaper，bowing カテゴリの各動画から 1 秒間分の動画を切り出Theano，Microsoft Cognitive Toolkit をサポートしており，迅し，0.1 秒間隔で 1 動画につき 10 枚の静止画を抽出した．各静速な実験を可能にすることに重点を置いている．ユーザーフレ

止画に対して OpenPose を用いて 25 のキーポイントの画像上の

表 2 各手法による動作の識別精度

表 1 STAIR Actions の各カテゴリのデータ数
カテゴリデータ数writing

6470(1) ロジスティック回帰

0.688

0.640

reading newspapaer

8840(2) ランダムフォレスト

1.0000.786

bowing11230(3) SVM

1.0000.454(4) NN

1.0000.828(4a) NN w/ Dropout

0.987

0.820

(4b) NN w/ BN

1.0000.842(4c) NN w/ Dropout, BN

0.970

0.813

training validation

表 3 ロジスティック回帰，ランダムフォレスト，SVM で最適化した
パラメータ
手法

パラメータ値C0.001(1) ロジスティック回帰(2) ランダムフォレスト
図 4 使用データの分散

bootstrap

false

criterion

entropymax depthnone

max features

10min samples leaf

1min samples split

3n estimators

100(3) SVM(4) NNC10gamma

0.0001

中間層の総数3

中間層のノード数50

epoch 数

1600

活性化関数

ReLU

いを考慮してもカテゴリごとにまとまりが見られ，動作の特徴が現れていると考えられる．
各実験では，以下の 4 つの手法で動作の認識精度を測定した．
（ 1 ） ロジスティック回帰（ 2 ） ランダムフォレスト
図 5 時系列を考慮した場合のデータの分散（ 3 ） SVM (Support Vector Machine)（ 4 ） Keras で構築した NN (Neural Network) モデル

x，y 座標を取得して特徴量 50 のデータを作成した．OpenPose

ロジスティック回帰はロジスティック関数に回帰させてクラスによって抽出したキーポイントの例を図 2 に，この画像から取に属する確率を出力し，ランダムフォレストは複数の決定木の得した座標値データの一部を図 3 に示す．各カテゴリのデータ

各予測結果の多数決により結果を決定するモデルである．SVM数は表 1 の通りで，このうち 7 割を学習データ，3 割を正解デー

はカーネル関数を用いて射影した高次元空間のマージンを最大タとして使用した．このとき，同じ動画内の画像が学習データ化するように最適化するモデルで，本実験ではカーネル関数にと正解データに分かれないように振り分けた．上記のデータ

RBF を使用した．NN は人の神経細胞を模したモデルであり，を 2 点間の近さを確率分布で表現し次元圧縮を行う手法である

完全結合の NN を用いた．また，NN モデルでは性能を改善すt-SNE [7] を用いて 2 次元に圧縮し，可視化した様子を図 4 にるためにパラメータ調節を行った．

示す．この図で，紫色は writing，緑色は reading newspaper，

3. 2 画像 1 枚のデータによる動作識別

黄色は bowing カテゴリのデータを表しており，各カテゴリの1 枚の画像から抽出した特徴量データを使用した際の各手法データが分散していることがわかる．

による動作識別精度の測定結果を表 2 に示す．この表で，ロ次に，時系列を考慮したストリームデータとして動作の識別

ジスティック回帰，ランダムフォレスト，SVM は，交差検証を行うために，各動画から取得した画像 10 枚の 50 の特徴量を用いた GridSearch を行い，最も精度がよかった場合の精度を，1 枚目から時系列順に並べて特徴量 500 のデータを作成しを表しており，表 3 のようにパラメータを設定した．ロジス

た．各カテゴリのデータ数は，表 1 の 10 分の 1 になっており，

ティック回帰における C は正則化の強さを表し，C が大きくt-SNE を用いて可視化した様子は図 5 の通りである．この図で，なるほど正則化が弱まることを示す．ランダムフォレストの紫色は writing，緑色は reading newspaper，黄色は bowing カパラメータには決定技構築時に bootstrap サンプリングを行テゴリのデータを表している．図 4 と比較して，データ数の違うかどうかを表す bootstrap，決定木のデータ分割基準となる

(4a) Dropout(4b) Batch Normalization (BN)(4c) Dropout と Batch Normalization
Dropout とは，各層のノードの一部を無効化して学習を行い，ネットワークの自由度を強制的に小さくして汎化性能を上げることで過学習を防ぐ手法であり，本実験ではノードの 2 割を無効化して学習を行った．Batch Normalization とは，入力されるバッチの平均と分散を計算して正規化を行い，スケールとシフトで調整をすることで学習の精度と速度を向上させる手法である．
図 8，図 10，図 12 に (4a)，(4b)，(4c) の学習時の損失を，
図 9，図 11，図 13 に識別精度を示す．図 8 と図 12 からは過学習を防止できていることが確認できたが，図 10 からは過学習の防止は確認できなかった．また，動作の識別精度は導入前の 0.828 と比較して，Dropout のみを導入した場合は 0.820，
図 6 (4) NN による学習時の損失

Dropout と Batch Normalization の両方を導入した場合には0.813 と低下しているが，Batch Normalization のみを導入した場合は 0.842 と改善されたことがわかった．
次に，NN モデルのパラメータを最適化するために，中間層の層数とノード数の変化させて識別精度を測定した．図 14 は，中間層の層数を 3〜6，ノード数を 50, 75, 100, 125 と変化させた際に交差検証を用いて GridSearch を行い，認識精度の測定を行った結果をヒートマップで示している．結果から，最も精度が高いのは中間層の層数を 5，ノード数を 75 に設定した場合で，精度は 0.834 となった．また，層数が 3〜4，ノード数が100 以上の場合に精度が良くなる傾向が見られたため，ノード数の検証範囲を絞って更に細かいパラメータを用いた実験を行うことで，性能改善が見込めると考えられる．
上記の結果を踏まえ，最も精度が高くなった中間層の層数5，ノード数 75 に設定した NN モデルに，Dropout と Batch
Normalization のそれぞれを導入する場合としない場合につい図 7 (4) NN による学習時の識別精度て交差検証を用いた GridSearch を行った．測定した認識精度を比較したヒートマップを図 15 に示す．この図において，縦criterion，決定木の最大の深さと葉の数を設定する max depth

軸が True の場合は Batch Normalization を導入したことを示と max features，葉の構成とノードの分割に必要な最小のサンし，False は導入していないことを示す．横軸が 0.0 の場合はプル数を表す min samples leaf と min samples split，複数決

Dropout を導入していないことを示し，それ以外の場合は 0.1〜定木の精度を測定し多数決を行うバギングに使用する決定木の0.5 の割合でノードを無効化して学習を行っていることを示す．

数を示す n estimator を設定し，SVM では誤分類を許容する結果から，無効化率 4 割の Dropout と Batch Normalization

程度を示す C，境界の複雑さを表す gamma を設定した．NNを導入した場合と，無効化率 3 割の Dropout を導入し，Batchは，ノード数 50 の中間層を 3 層，epoch 数を 1600 に設定し，Normalization を導入しない場合に識別精度が 0.823 となって分割数 3 で交差検証を行った際の平均の精度を示している．

いるが，小数点以下 4 桁目以降で差が出ており，無効化率 4 割

表 2 の (1) から (4) を比較すると，最も高い精度を示していの Dropout と Batch Normalization を導入した場合は 0.8233，るのは NN で，8 割以上の動作を識別できていた．また，NN無効化率 3 割の Dropout のみを導入した場合では 0.8228 での学習における損失を図 6 に，識別精度を図 7 に示す．青はあった．よって，中間層を 5 層，ノード数を 75 に設定した場

トレーニング，オレンジ色はバリデーションの結果である．グ

合に最も精度が高くなるのは，無効化率 3 割の Dropout を導ラフから，epoch 数が増えるにつれてトレーニングの損失が 0入し，Batch Normalization を導入しない場合であることがわに収束しているのに対し，バリデーションの損失は増加しておかった．

り，過学習が生じていることが分かる．よって，NN に対して以上の結果から，実験で得られた識別精度は十分でなく，よDropout と Batch Normalization を以下の 3 パターンで導入

り細かくノード数や Dropout の無効化率を設定して精度を比し，識別精度を測定した．

較することで，識別精度の向上が見込めることがわかった．

図 8 (4a) NN w/ Dropout の損失

図 9 (4a) NN w/ Dropout の識別精度

図 10 (4b) NN w/ BN の損失

図 11 (4b) NN w/ BN の識別精度

図 12 (4c) NN w/ Dropout, BN の損失

図 13 (4c) NN w/ Dropout, BN の識別精度

表 4 時系列を考慮したデータを使用した際の各手法による動作の識
別精度

training validation(1) ロジスティック回帰

0.869

0.580

(2) ランダムフォレスト

1.0000.828(3) SVM

1.0000.440(4) NN

0.976

0.748

(4a) NN w/ Dropout

0.9990.800(4b) NN w/ BN

0.999

0.813

(4c) NN w/ Dropout, BN

0.987

0.765

表 5 時系列を考慮したデータを使用した際のロジスティック回帰，ランダムフォレスト，SVM で最適化したパラメータ
手法

パラメータ値C0.001

bootstrap

false(1) ロジスティック回帰
図 14 中間層の層数とノード数による動作識別精度の比較(2) ランダムフォレスト

criterion

entropymax depthnone

max features

10min samples leaf

1min samples split

2estimators

300(3) SVM(4) NNC

1gamma0.0001

中間層の総数3

中間層のノード数500

epoch 数

1600

活性化関数

ReLU

精度が 0.74 となっているが，小数点以下 4 桁目までで比較す
ると，中間層の層数を 4 層，ノード数を 700 に設定した NN で
図 15 Dropout の無効化ノードの割合に関する比較

最も識別制度が高くなるのは Dropout のみを無効化率 0.2 で導入した場合であった．また，Batch Normalization を導入せ

3. 3 画像 10 枚の時系列を考慮したデータによる動作識別
同じ動画から取得した 10 枚の画像から抽出した特徴量を時系列順に並べたデータを使用した際の，各手法による動作識別精度の測定結果を表 4 に示す．また，ロジスティック回帰，ランダムフォレスト， SVM で交差検証を用いた GridSearch を行い，最も精度のよかったパラメータは表 5 のようになった．NNは，ノード数 500 の中間層を 3 層，epoch 数を 1600 に設定した際の精度を示しており，過学習防止のために無効化率 2 割のDropout，Batch Normalization とその両方を導入した際の精度も示している．ランダムフォレストによる識別精度が最も高く，0.828 となり，NN では Dropout，Batch Normalization，その両方を導入したいずれの場合においても識別精度を向上させることができた．
次に，中間層の層数とノード数を最適化するために，層数を3〜6, ノード数を 500，600，700，800 と変化させて GridSearchを行ったところ，図 16 が得られた．中間層 4 層，ノード数 700に設定したときに 0.744 と最も精度が良くなったため，このNN モデルを用いて Dropout と Batch Normalization の導入有無について GridSearch を行った結果を図 17 に示す．結果から，無効化率 0.1 と 0.2 の Dropout のみを導入した場合に識別ず，Dropout のノード無効化率を 0.0〜0.2 の範囲で変化させた場合に精度が高くなりやすいという傾向が見られたため，この範囲でより細かいパラメータ調整することで性能改善が見込めると考える．

3. 4 考察

1 枚の静止画による動作識別実験と時系列を考慮した複数静止画を用いた動作識別実験を行い，いずれの実験でも 8 割以上の識別制度を得ることができた．しかしながら，本実験では中間層の層数とノード数，Dropout と Batch Normalization の導入についての 2 つのパラメータでのみ交差検証を行っている
ため，層数とノード数，Dropout の無効化率，BN の有無の全通りについて実験を行い精度を測定する必要があると考える．
また，画像 1 枚による識別と画像 10 枚による識別を比較すると，画像 10 枚の方が動作の特徴を捉えやすいがデータ数が少ないため，トレーニングデータを増やして学習を行うことで識別精度を向上できる可能性がある．

4. まとめと今後の予定
STAIR Actions データセットの動画から取得した画像をOpenPose を用いてキーポイントの座標値に変換した後，そ装し，動画の特徴量取得から動作識別までにかかる時間についての評価や，解析時間と認識精度のバランスを考慮した改善を行う．

謝辞

この成果の一部は，JSPS 科研費 JP16K00177，平成 30 年度国立情報学研究所公募型共同研究，国立研究開発 法人新エネ
ルギー・産業技術総合開発機構 (NEDO) および JST CREST

JPMJCR1503 の委託業務の結果得られたものです.
文

図 16 時系列を考慮したデータを使用した際の中間層の層数とノード数による動作識別精度の比較

図 17 時系列を考慮したデータを使用した際の Dropout の無効化ノードの割合に関する比較

れを特徴量として複数の機械学習手法で動作の識別精度を測定した．1 枚の静止画から識別する実験から，NN の精度が最も高くなることが示された．また，NN では過学習が生じていることがり，NN のパラメータ調整，Dropout と BatchNormalization の導入や，中間層の層数とノード数，Dropoutと Batch Normalization の導入有無に関して交差検証を用いた GridSearch を行うことで，精度の向上が期待できることがわかった．時系列を考慮して複数静止画を用いた動作識別実験
では，ランダムフォレストの精度が最もよくなった．動作の識別精度は未だ十分とは言えないが，得られた傾向をもとにパラメータの範囲を絞って識別精度の比較したり，トレーニングデータを増やすことで性能改善が見込めると考えられる．
今後の課題として，中間層の層数，ノード数，Dropout とBN の有無の全てを考慮した交差検証による Gridsearch を行うことで NN の性能改善を図る．また，本研究ではリアルタイムに動作の識別処理を行うことを目標としているため，動作識別モデルをセンサ側とクラウド側のクラウド側の分散環境に実献[1] Z. Cao, G. Hidalgo, T. Simon, S. Wei, Y.Sheikh: Realtime
Multi-Person 2D Pose Estimation using Part Aﬃnity Fields,
arXiv preprint arXiv:1812.08008 (2018).
[2] Z. Cao and T. Simon and S. Wei and Y. Sheikh: Realtime
Multi-Person 2D Pose Estimation using Part Aﬃnity Fields,
CVPR (2017).
[3] T. Simon and H. Joo and I. Matthews and Y. Sheikh: Hand
Keypoint Detection in Single Images using Multiview Bootstrapping, CVPR (2017).
[4] S. Wei and V. Ramakrishna and T Kanade and Y Sheikh:Convolutional pose machines, CVPR (2016).
[5] Chollet, François and others: Keras: The Python Deep
Learning library, https://keras.io/ (2015).
[6] Y. Yoshikawa, J. Lin, A. Takeuchi: STAIR Actions: A
Video Dataset of Everyday Home Actions, arXiv preprint
arXiv:1804.04326 (2018).
[7] L. V. Maaten, G. E. Hinton: Visualizing Data using t-SNE,
Journal of Machine Learning Research 9, 2579-2605 (2008).