shimada-kの日記

ソフトウェア・エンジニアのブログです

Leap Motion SDK V2 Betaで遊んでみる

Leap Motionの新しいSDKのpublic Beta版が5月28日に公開されました。試してみて分かったことを書いておきます。

まずはビジュアライザーを起動してみます。

f:id:shimada-k:20140619005909p:plain

グーも認識してくれます。

f:id:shimada-k:20140619005922p:plain

X方向に手を重ねるのはこれくらいが限度。これ以上近づけると片方が認識から外れるか指の認識がうまくいかなくなりました。

f:id:shimada-k:20140619005936p:plain

Y方向に手を重ねるのはこれくらいが限度。試した感じだと手の平の部分が重なるとダメみたいです。これ以上重ねると上にある方の手が認識から外れます。

SDK V2の新しい機能としてboneが取り上げられることが多いですが、右手・左手の区別って結構難しいのではないかと思っているので、センサーが検出可能な範囲に手が存在する場合、特定の状況下で右手・左手がどの程度認識できているのか試してみました。

leap motionが認識した手の信頼度を出力するHTMLを作って調査しました。コードはGistにあげておきました。

Gist

左手のデータは左側の青いdivに、右手のデータは右側の赤いdivに出力されます。片方の手しか認識されて無い場合は認識されて無い方のdivのフォントの色をグレーアウトします。

今回は以下の4つのパターンで、左手・右手の判定、信頼度を取得してみました。

  1. 手の甲を上にした片手(左手)
  2. 手の甲を下にした片手(左手)
  3. 手の甲を上にした両手
  4. 手の甲を下にした左手と手の甲を上にした右手

左手・右手はhand.typeで、信頼度はhand.confidenceで取得できます。両方ともSDK V2から使用可能なパラメータです。

手の甲を上にした片手(左手)

信頼度は1なので左手と認識されてます。そのまま手のひらをひっくり返しても左手と認識されたままでした。手のひらをひっくりかえす間は手のセンサーに対して手のひらの角度が変化するので信頼度も下がるようです。

f:id:shimada-k:20140621004356p:plain

手の甲を下にした片手(左手)

右手と認識されました。信頼度も1に近い数値なので右手だと認識されているのでしょう。

f:id:shimada-k:20140621004408p:plain

手の甲を上にした両手

両手とも正しく認識されています。信頼度は両手とも1です。

f:id:shimada-k:20140621011401p:plain

手の甲を下にした左手と手の甲を上にした右手

データは0.9付近と1が交互に出力されています。左手のdivには何も出力されていないので左手は存在しないと認識されているのでしょう。

右手のdivには「same hand detected」が出力されているので同じ手が2本あると認識されています(hand.typeが同じであるかどうかで「same hand detected」を出力しています)。

f:id:shimada-k:20140621012506p:plain

leap motion楽しいです。boneやgestureも試してみたいですね。