Qt Sensor Gestures

この記事は Qt Blog の "Qt Sensor Gestures" を翻訳したものです。
執筆: Lorn Potter, 2012年7月20日

ここブリスベンの日差しの中で、私達が行なっていることは年中裸足でいることだけではありません。QtDeclarative や QtMultimedia、QtLocation、QtSystems、QtSensors などの開発を活発に行っています。そうそう、品質保証(QA)と CI システムについても忘れてはいけません。

もちろん、その中で最もエキサイティングなのがこの QSensorGestures です!

QtDeclarative や Qt3D, QtMultimedia と QtSensorGestures を使う事で、膨大な可能性を持つ素晴らしいクロスプラットフォームのゲーム開発環境を手に入れる事ができます。なんと素晴らしい!

私の知る限り、ここ最近のコンソールゲーム機やタブレット、モバイル機器(やロボット)でのホットトピックというと、ジェスチャー認識です。Qt Sensors チームで働いているので、加速度センサーだけでなく、光学センサーや近接センサーを組み合わせて使ったジェスチャー認識を調査し、それを Qt の世界でも分かち合うことにしました。

ジェスチャー認識に関する多くの研究報告書があります。その多くはソフトウェアにジェスチャーを教え込むために膨大なトレーニングデータと時間を費やす高度なアプローチとアルゴリズムを用いています。これらのシステムは通常複雑なもので、サポートするジェスチャーに関しての多くの詳細なデータを持ちます。

Qt 5 の Qt Sensors ライブラリは Qt Mobility の一部として開発されていたものです。Qt Sensor Gestures API は QtSensors のコードが Qt 5 の開発ブランチに取り込まれた後に、開発が始まりました。

Qt の Sensor Gestures は認識部分にプラグインシステムを用いています。このため、システムがプラグインのインストールを許可すればですが、独自の認識ルーチンを作成する事ができます。たとえば、機械学習とコンピュータビジョン技術を用いたより複雑で一般的なジェスチャー認識ルーチンを作成する事さえ可能です。

簡単なジェスチャー認識ルーチンをいくつか QtSensorGestures プラグインとして作成しました。pickup, twist, cover, hover, whip, turnover, shake そして slam です。このプラグインではアドホックな手法でジェスチャーを検出していますが、認識用プラグインではより高度な手法を利用する事ができます。このプラグインには速度やメモリ使用量、機械的学習プロセスが不要などのメリットがありますが、ユーザが独自のジェスチャーを作成できなかったり、あるジェスチャーが他のジェスチャーとして誤認識されるなどのデメリットもあります。しかし、誤認識はセンサージェスチャーでは常にリスクとして存在します。

(Qt 5 のリリースまでは) これらのジェスチャーのドキュメントはこちらにあります。

http://doc-snapshot.qt-project.org/5.0/sensorgesture-plugins-topics.html#recognizer-plugins

QSensorGestures の現状ですが、現在のプラグインはデバイスに特化しているかもしれません。このため、実際のハードウェアで利用するためにはカスタマイズが必要かもしれません。

将来的には、デバイス対応の設定用に「属性・プロパティ」を追加したり、ライブラリからアクセスできる加速度センサーを内蔵するゲームコントローラやその他のデバイス向けに QtSensors のバックエンドを作成するかもしれません。私はオーディオセンサーや画像センサーを使った、より高度な検出アルゴリズムが必要とされるジェスチャー認識についての調査を始めました。

望んでいたような派手でクールなビデオはありませんので、詳しくはドキュメントとその中の画像を参考にしてください。

もちろん、ソースコードは Qt 5 のリポジトリにあります。

Qt 5 は今までで最良の Qt となるでしょう!


Blog Topics:

Comments