情報処理学会 インタラクション 2014
IPSJ Interaction 2014

A3-2
2014/2/27

深度センサを用いたユーザの向きの変化に頑健なジェスチャ認識
都竹尚紀†1梅澤猛†1

大澤範高†1

深度センサを用いた徒手によるジェスチャ認識は，デバイスを保持または装着する煩雑さがなく，仮想空間でのインタラクションや家電操作インタフェースとして有用である．しかし，一般に深度センサは正対しての使用を想定しており，それ以外の角度では認識率が低下する傾向がある．センサ正面とユーザの向きの角度に応じて座標変換を行う手法も提案されているが，角度によっては認識率が大きく低下するという課題が残る．そこで本稿では，Dynamic Time
Warping 法によるジェスチャ認識において，角度に応じた個別のジェスチャテンプレートを登録することで認識率を向上させる手法を提案する．様々な角度でのジェスチャ認識実験を行い，提案手法が認識率の向上に有効であることを確認した．

Improving Gesture Recognition with Depth Sensor
by Considering Direction of User
NAOKI TSUTAKE†1 TAKESHI UMEZAWA†1NORITAKA OSAWA†1In interfaces of electrical appliances and interactions in a virtual reality environment, hand gesture recognition based on informationof image and/or depth sensors outside a human body is useful because it does not require a user to hold or to wear a device.
However, gesture recognition fails sometimes when body movement of a user is not fully tracked. Although a method was proposed
which transforms coordinates of tracking data based on an angle between the user and a face of the sensor, a recognition ratedepends on the angle. This paper proposes a method that uses multiple gesture templates for different angles to improve gesturerecognition rate in Dynamic Time Warping technique. An experiment shows that the proposed method improves rates of gesturerecognition.

1. はじめにキーボード，マウス，リモコンなどの様々な入力デバイおり，横向きの時は身体の奥側がオクルージョンによりずれて認識されてしまう．また後ろ向きの場合，右手が反対に認識されてしまっていることがわかる．

スが存在するが，仮想空間(VR)での操作には不適な場合がセンサが正対していない様々なケースを次に示す．

ある．また，電気機器を操作する度にデバイスを手に取るのは煩雑である．それに対し，ジェスチャは身体動作を基・ラップトップ PC の前にセンサを配置して人の動きをにしており，より自然な動きで操作が可能である．加速度

認識する場合，モニターを見るのをセンサが妨害してセンサなどを身体に装着，保持していなければならないこしまうので脇に設置するとはユーザの負担となる．深度センサによって徒手による・ヘッドマウントディスプレイ(HMD)を利用した VR イジェスチャ認識が可能であり、Kinect[1]などの安価な深度ンタラクションにおいて，ユーザは VR 環境の映像にセンサの登場により多くの場面で徒手によるジェスチャ認即して向きを変えるため，ユーザがセンサに対して正識を利用可能になっている．Kinect は Microsoft 社のデバイ

面を向いているとは限らない

スで RGB カメラに加え，深度センサが搭載されており，・家電をジェスチャで操作するインテリジェントルーム

Kinect 用のソフトウェア開発ツールキットである Kinect forへの利用を考えた場合，ジェスチャは家電に向けて行Windows SDK[2]を用いることで，図 1 の身体 20 ヶ所部位

うため，取り付けられたセンサと向きが一致するとはの三次元位置情報を取得することが可能である．この身体限らない部位はビッグデータからの機械学習により推定されている．
しかし Kinect はユーザが正面を向いていることを想定してこのようにセンサが正面にない様々なケースが考えらいるため，ユーザが Kinect に対し横や後ろを向いた際に認れる．本稿ではセンサによって横向きや後ろ向きを認識す識がうまく出来ない問題がある．図 2 がその様子を示してるためのシステムについて検討した．

†1 千葉大学大学院融合科学研究科
Graduate School of Advanced Integration Science, Chiba University© 2014 Information Processing Society of Japan239

3. 提案手法
3.1 向き取得の改良
2 節で述べたとおり，今までの我々の手法[5]では手前の肩と肩の中心を使った場合，斜め，横方向の認識率は向上した．しかし，手前の肩のみを利用するために正面方向では頻繁に手前の肩が左肩と右肩で入れ替わってしまい，角度がずれてしまう．そのため，正面方向での認識率は長谷川らの両肩を用いる手法[3]に比べ低下した．そこで，今までの我々の斜め，横方向のジェスチャを認識できる手法[3]と長谷川らの正面から斜め方向のジェスチャを認識できる手法[5]のそれぞれの利点を活かすため，両方の手法でそれ
図 1

Kinect による骨格認識

Figure 1

Skelton tracking by Kinect.

ぞれジェスチャ認識を行い，最終的に出力するジェスチャを次のように決定する．
・両方の手法で認識した場合同一のジェスチャである場合はそのジェスチャを出力し，異なるジェスチャを認識した場合は，誤認識を防ぐためジェスチャと認識しない．
・片方の手法のみが認識した場合認識したジェスチャを出力するジェスチャとする．
・両方共認識しなかった場合ジェスチャを認識しない．

図 2
Figure 2

これにより認識率を向上させるとともに，あいまいなジ横，後ろ向きにおける誤認識
Wrong recognition in side and back.

ェスチャに対しての誤認識を防ぐことが出来ると考える．
次に，角度の求め方と座標変換について述べる．ここで

2. 関連研究
深度センサに対してユーザが正対していない場合でのジェスチャについては，いくつかの研究がなされている．
長谷川ら[3]は上半身の部位の位置情報からユーザの向きを取得し，その角度より座標変換を行う手法を提案した．
しかし，横向きの場合は奥の肩のオクルージョンによりユーザとセンサとの角度が大きくなるほど，正しいデータを取得することができない．武田ら[4]は横向きのジェスチャを手の深度情報から取得しているが，動的なユーザの方向の変化については言及していない．
今までの我々の研究[5]では長谷川ら[3]の手法を改良し，Kinect で得た手前の肩と肩の中心(SHOULDER_CENTER)，
重心（HIP_CENTER，原点）の座標を用いて角度を取得する手法を提案し，斜め方向，横方向の認識率の向上を行ったが，正面方向の認識率が低くなってしまった．
本稿では深度センサとして Kinect を用いて，我々の既存の手法[5]をさらに改良し，高精度のジェスチャ認識を可能とする手法を提案し、評価する．

© 2014 Information Processing Society of Japanは座標変換のために，各座標において図 1 の HIP_CENTERを原点としたユーザ座標系を作り，相対座標に変換した後，座標変換を行う．𝑥軸，y軸，𝑧軸はそれぞれ図 1 に示されている Kinect for Windows SDK の座標系を踏襲し，右手系としている．
・長谷川らの両肩を用いて角度を取得する手法[3]原点の座標を引いて相対座標とした左肩(SHOULDER_LEFT)の座標を𝐿 = (𝐿𝑥 , 𝐿𝑦 , 𝐿𝑧 )，右肩(SHOULDER_ RIGHT)の座標を𝑅 = (𝑅𝑥 , 𝑅𝑦 , 𝑅𝑧 )としたとき，ユーザの向き𝜃は，
𝜃 = tan−1

𝐿𝑦 𝑅𝑧 − 𝐿𝑧 𝑅𝑦
𝐿𝑥 𝑅𝑦 − 𝐿𝑦 𝑅𝑥で表すことができる．
・手前の肩と肩の中心を用いて角度を取得する手法[5]原点の座標を引いて相対座標とした左肩の座標を 𝐿 =(𝐿𝑥 , 𝐿𝑦 , 𝐿𝑧 )，右肩の座標を𝑅 = (𝑅𝑥 , 𝑅𝑦 , 𝑅𝑧 )，肩の中心を𝐶 =(𝐶𝑥 , 𝐶𝑦 , 𝐶𝑧 )としたとき，ユーザの向き𝜃は，

240

𝐿𝑦 𝐶𝑧 − 𝐿𝑧 𝐶𝑦
𝐿𝑥 𝐶𝑦 − 𝐿𝑦 𝐶𝑥
𝑅𝑦 𝐶𝑧 − 𝑅𝑧 𝐶𝑦
𝜃 = tan−1
𝑅𝑥 𝐶𝑦 − 𝑅𝑦 𝐶𝑥

𝜃 = tan−1(𝐿𝑧 ≤ 𝑅𝑧 )(𝐿𝑧 > 𝑅𝑧 )きによる座標のずれに対応することは難しい．そこであらかじめ左斜め，右斜め方向のジェスチャテンプレートを作成することで，向きによるジェスチャのずれに対応する．
座標変換を行いやすくするため，図 4 のように角度を設で表すことができる．
その後，取得した角度を用いて，変換前の座標を𝑡 𝑥 𝑦 𝑧()，変換後の座標を 𝑡(𝑥′ 𝑦′ 𝑧′)としたとき，座定し，図中の矢印の方向へのジェスチャテンプレートを作

標変換は，template，-45°template，-90°template とする．
𝑥′cos 𝜃(𝑦′) = ( 0sin 𝜃𝑧′010

成する．それぞれを左から 90°template，45°template，0°−sin 𝜃 𝑥0 ) (𝑦 )𝑧cos 𝜃で得られる．
また，ユーザが横を向いた場合，Kinect はユーザの身体と接触した箇所を部位と認識してしまうため，図 3(b)のように本来原点であるべき点と異なる点を原点と認識してしまう問題がある．その問題に対処するため，我々はユーザを半径 0.2m の円柱と考え，原点をユーザの向きに合わせ
図 4て変換を行うことで，原点のずれを低減する．

Figure 4

ユーザの角度設定

Setting of the user’s direction.

4. 実験
4.1 想定環境
3 人の被験者で，図 4 の 5 種のジェスチャを 3.3 で述べた 5 方向のテンプレートでそれぞれ作成する．その後 0°，±45°，±90°でジェスチャを 4 回ずつ試行し，それぞれ(a) 正面(Front)(b) 横向き(Side)
図 3

Figure 3

座標変換の問題点

Problem of coordinate transformation.のテンプレートでの認識回数を測定した．
ジェスチャは長谷川らの研究[3]で個人差の少ないジェスチャとして挙げられたものである．

3.2 ジェスチャ認識
ジェスチャ認識部には Dynamic Time Warping(DTW)法[6]を利用する．これは 2 つの波形の相違度を測定する手法であり，あらかじめジェスチャテンプレートを作成し，そのテンプレートとの相違度が閾値を下回った場合ジェスチャと認識する．ジェスチャの特徴量には右手，右手首，右肘の三次元位置情報を利用し，長さは 30 フレームとしている．
閾値の取得方法は村田ら[7]の手法を利用する．複数人で同一のジェスチャを行い，それぞれのジェスチャ間で DTW

図 5値を測定する．その後，中間となるジェスチャをテンプレ
Figure 5ートとして取り出し，そのジェスチャから DTW 値が最もジェスチャ一覧

Using gestures for experiment.

大きいジェスチャとの差を閾値とする．今回，学習・識別プログラムにはオープンソースの DTW [8]を C++に改良して利用した．
3.3 向きに合わせたジェスチャテンプレートの作成
従来手法[3][5]では Kinect に対して正面のデータをテンプレートとして作成していたが，正面のデータだけでは向© 2014 Information Processing Society of Japan

4.2 結果Up，Down，Right，Left，Push，全ジェスチャの認識率をそれぞれ表 1 の(a)～(f)に示す．縦軸がテンプレートで横軸がユーザと Kinect のなす角度，数値はジェスチャ認識率のパーセンテージである．

241

表 1

ジェスチャの認識率

また，全体のジェスチャにおいて，正面方向と斜め方向[縦軸：利用したジェスチャテンプレート，との認識率，正面方向と横方向との認識率をレーダ図で表

横軸：ユーザと Kinect がなす角度，数値：認識率]

したものを図 6(a)，(b)に示す．レーダの外周が角度で，内Table 1

Recognition rate of gestures.

側の数値が認識率(%)である．

(a) UpTemplate＼Angle

90°45°

0°

-45°

-90°

90°template

42
67
42
25
0

100
100
100
100
42

83
100
100
75
67

92
100
100
100
92

100
100
100
100
100

45°template
0°template-45°template-90°template(b) Down
Template＼Angle

90°

45°

0°

-45°

-90°

90°template-90°template

58
67
0
17
8

50
100
92
33
33

100
100
100
58
58

100
058
100
50

100
100
100
100
100

Template＼Angle

90°

45°

0°

-45°

-90°

90°template

17
75
58
67
8

17
100
67
17
0

25
100
100
50
8

4292
100
92
75

67
83
100
100
100

45°template
0°template-45°template(a) 0°template と±45°template の比較(Comparison 0°template and ±45°templates)(c) Right

45°template
0°template-45°template-90°template(b) 0°template と±90°template の比較(Comparison 0°template and ±90°templates)(d) Left

図 6

Template＼Angle

90°

45°

0°

-45°

-90°

90°template

58
33
8004292
75
42
33

67
92
92
75
83

100
83
10092
100

92
92
92
92
100

45°template
0°template-45°template-90°template

Figure 6

実験結果

Experimental results.

4.3 考察図 6(a)より，全ジェスチャにおいて正面のテンプレート（0°template）のみを利用する場合に比べ，斜め方向のテンプレート（±45°template）を組み合わせることで，45°，-45°，90°，-90°の認識率がそれぞれ 23%，(e) Push
Template＼Angle

90°

45°

0°

-45°

-90°22%，26%，15%増加したことがわかる．また図 6(b)よ90°template

3300008
58
000033842000892
08088350

り，横方向のテンプレート（±90°template）を組み合わ

45°template
0°template-45°template-90°template

Template＼Angle

90°

45°

0°

-45°

-90°

90°template

4248
22223439067
38
2255
858060436755739563737580
95
900°template-45°template-90°template

増加したことがわかる． (a)と(b)を比較すると，斜め方向のテンプレートに比べ，横方向のテンプレートの認識率が低かった．これは横方向ではテンプレートが正しく取得できないことに起因していると考えられる．

(f) 全ジェスチャ

45°template

せることで，90°，-90°の認識率がそれぞれ 10%，20%

さらに，90°の認識率が他の角度に比べて低い結果となった．これは 90°ではジェスチャを行う右手が手前に来るため，ジェスチャ動作により右肩の座標がずれてしまったためであると考えられる．
また，各ジェスチャを見ると，表 1 より Push ジェスチ
ャの認識率が低い結果となっており，特に正面のテンプレートで正しく認識ができていなかったことが見て取れる．

© 2014 Information Processing Society of Japan242

これより Push 動作が正面のテンプレートに適した動作でステムを拡張することを考えている．Tarik ら[9]により両はないということがわかる．今回は簡単な動作での評価に手を用いたジェスチャのテンプレートを作成する時に，動とどまっているが，動作によっては正面よりも斜め方向のきが大きい部位に重み付けを行なう手法が提案されており，方がテンプレートに向いている場合もあると思われる．さ

この手法を統合することでより複雑な両手での動作の認識らに，一度のジェスチャで２種のジェスチャが認識するケ率を高めることが可能になると考えている．

ースも見受けられた．そこで，ジェスチャごとに認識したテンプレートの数を測定し，最も認識したテンプレートの参考文献数が多いジェスチャを最終的なジェスチャにすることで，

1)2)誤認識を防ぐことができると考えている．

3)

5. おわりに
本稿では深度センサから得られた骨格情報を座標変換し，さらにジェスチャ認識に斜め，横方向のテンプレート4)を利用すること手法を提案した．そして，手を用いた 5 種のジェスチャにおいて，正面のみのジェスチャテンプレー
トを用いる場合に比べて斜め方向で 22.5%，横方向で 20.5%認識率を向上させることに成功した．

5)

6)

次に今後の課題について述べる．
5.1

複数 Kinect への拡張

1 台の Kinect で横向きのユーザのジェスチャを認識可能

7)であることを述べてきたが，後ろ向きの場合にはジェスチャがユーザの背に隠れてしまうため，骨格情報を取得することは難しい．そこで複数の Kinect を利用することでユー

8)

ザのセルフオクルージョンに頑健な認識にする方法が考え
9)られる．
我々の以前の研究[5]では図 7 のように Kinect を配置し，HMD にマーカを取り付け，そのマーカを認識した Kinect

Microsoft Kinect, http://www.xbox.com/ja-JP/kinect
Kinect for Windows SDK,
http://www.microsoft.com/en-us/kinectforwindows/develop/
長谷川秀太，赤池英夫，角田博保：姿勢を考慮したハンドジェスチャを利用する機器操作の提案・評価，情報処理学
会研究報告 ヒューマンコンピュータインタラクション（HCI），Vol.2012-HCI-147, No.24, pp.1 - 6, 2012.
武田泰幸，浅野秀胤，寺林賢司，梅田和昇：距離画像センサを用いた操作者の姿勢を考慮に入れたジェスチャ認識シス
テムの構築，日本機械学会ロボティクス・メカトロニクス
講演会 2012 講演論文集，2A2-L01，2012.
都竹尚紀，梅澤猛，大澤範高：複数の深度センサを利用したユーザの向きに依存しないジェスチャ認識手法，全国大会
講演論文集 2013(1), pp.107-109, 2013.
Sakoe, H. and Chiba, S. : Dynamic programming algorithm
optimization for spoken word recognition, IEEE Trans. on
Acoustics, Speech and Signal Processing, No.26, pp 43 - 49,
1978.
村田 龍吾，冨田 勝義，Le Van Nghia 木村 朝子，大島 登志
一：3 次元仮想空間とのインタラクションに適したジェス
チャインタフェース・ツールの開発,情報処理学会研究報告
ヒューマンコンピュータインタラクション（HCI）,
Vol.2012-HCI-147, No.26, pp.1 - 8, 2012.
waxin' lyrical,
http://www.waxinlyrical.com//KinectGestures
Arici, T. , Celebi, S. , Aydin, A. S. and Temiz , T. T. : Robust
gesture recognition using feature pre-processing and weighted
dynamic time warping, Multimedia Tools and Applications,pp.1 - 8, 2013.

をメインの Kinect とし，メインの Kinect から骨格を取得していた．しかし，様々な用途に対応するためにマーカを用いないユーザの顔部分の肌色認識でのメインの決定が必要であると考えられる．

5.2

図 7

複数 Kinect を用いたジェスチャ認識

Figure 7

Gesture recognition with multiple Kinects.

ジェスチャの種類，動作

今回は図 4 のジェスチャを右手でのみ行ったが，今後は両手を用いた複雑なジェスチャを行うことが出来るようシ© 2014 Information Processing Society of Japan243