手と指の動きをインタフェースに

ここまで、腕の動きや、全身の動きを入力とした話をイメージして説明をしてきましたが、次に、手や指の動きだけを入力とした話に移ります。

まず、デプスセンサによる被接触デバイスである、「Leap Motion(リープ・モーション)」を紹介します。Leap Motionは以下の動画でデモンストレーションがされているように、「手指」の高精度な姿勢推定に特化した、被接触の3Dデプスセンサを用いたコントローラデバイスです。

Leap Motion V2 Tracking Developer Beta - Demo

Leap MotionはディスプレーやノートPCの前に置いておくと、Leap Motion上空付近が3D計測され、このデプスデータから手指の3D姿勢をリアルタイムにミリ精度で計測することができます。この3D姿勢情報により、Leap Motionの前に置いてあるディスプレー上のアプリに、ユーザーの細かい手指の動きを反映させることが可能です。

一方、PrimesenseのKinectは近接撮影(50cmより近いところ)を苦手としていましたが、Kinect2やIntelのRealSenseなどのToF(Time of Flight)形式のセンサでは、20~30cmあたりでの近接撮影も可能で、ディスプレーからかなり近い場所でのユーザーの手指の動きを捉えることまで可能です。ただし、手指専門の仕組みが用意されているLeap Motionと比べるとToFセンサ1台で捉えられる手の姿勢は限られています。カメラに指同士が重なって隠れたりする状態で写っている時は、1台のデプスセンサでは手の5本の指すべての正しい姿勢は推定しづらくなります。ただ、とはいえ、基本的な腕振りジェスチャーや指を動かすジェスチャー(特に手をデプスセンサ側に向けた姿勢)での手指の姿勢はとらえやすいです。

以下の動画はToFセンサであるIntelのRealSenseを用いた、手のジェスチャー認識のデモンストレーション動画です

Intel RealSense 3D camera will see Depth much like a Human Eye.

動画を見て頂くと、デプスセンサで撮影したユーザーの指の細かい動きや、手を振る動きや紙を持って振る動きを認識している様子がわかると思います(動画を見ている人が仕組みを理解できやすいように、ディスプレー側に撮影中のデプスデータ自体も投影されていますね)。

前回動画を紹介した仮想試着システムでの操作においても、「手を握ったときにだけ、アイテム一覧を(手でつかんでドラッグしているかのように)回転させることができる」という認識処理がありました。上記のRealSenseのデモ動画ほど近くで撮影していませんでしたが、たとえ少し遠目からデプスセンサで撮影していようとも、「手を握っている/手を開いている」という手の形の種類が区別できるだけの大きさで手の部分が撮影できていさえすれば、手のジェスチャーの認識が可能なわけです(もちろん遠い場所からだと、指の細かい動きの情報までは高精度には取得できません)。

林 昌希(はやし まさき)

慶應義塾大学大学院 理工学研究科、博士課程。
動画からのチームスポーツ映像解析プロジェクトにおいて、選手の姿勢の推定、およびその姿勢情報を用いた選手の行動認識の研究に取り組み中。人の振る舞いや属性を理解する「ヒューマンセンシング技術」全般が専門。

有料メルマガ「DERiVE メルマガ 別館」では、コンピュータビジョンの初~中級者のエンジニア向けへの情報を発信中。Point Cloud Libraryについてのセミナーも行うなど、コンピュータビジョン技術の普及やコミュニティ拡大に取り組んでいる。

翻訳書に「コンピュータビジョン アルゴリズムと応用 (3章前半担当)」。