(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5882220
(24)【登録日】2016年2月12日
(45)【発行日】2016年3月9日
(54)【発明の名称】人間の動きに関連するキャラクタおよびコマンドを認識するためのハンドヘルドコンピュータシステムおよび技術
(51)【国際特許分類】
G06F 3/01 20060101AFI20160225BHJP
G06F 3/0346 20130101ALI20160225BHJP
A63F 13/211 20140101ALI20160225BHJP
【FI】
G06F3/01 570
G06F3/0346 425
A63F13/211
【請求項の数】44
【全頁数】42
(21)【出願番号】特願2012-538914(P2012-538914)
(86)(22)【出願日】2010年11月9日
(65)【公表番号】特表2013-510381(P2013-510381A)
(43)【公表日】2013年3月21日
(86)【国際出願番号】US2010056065
(87)【国際公開番号】WO2011057287
(87)【国際公開日】20110512
【審査請求日】2013年10月4日
(31)【優先権主張番号】61/259,288
(32)【優先日】2009年11月9日
(33)【優先権主張国】US
(31)【優先権主張番号】12/832,707
(32)【優先日】2010年7月8日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】506135224
【氏名又は名称】インベンセンス インコーポレイテッド
【氏名又は名称原語表記】INVENSENSE INC.
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100088683
【弁理士】
【氏名又は名称】中村 誠
(74)【代理人】
【識別番号】100109830
【弁理士】
【氏名又は名称】福原 淑弘
(74)【代理人】
【識別番号】100075672
【弁理士】
【氏名又は名称】峰 隆司
(74)【代理人】
【識別番号】100095441
【弁理士】
【氏名又は名称】白根 俊郎
(74)【代理人】
【識別番号】100103034
【弁理士】
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100140176
【弁理士】
【氏名又は名称】砂川 克
(72)【発明者】
【氏名】ナシリ、スティーブ
(72)【発明者】
【氏名】サクス、デイビッド
(72)【発明者】
【氏名】カストロ、アレックス
(72)【発明者】
【氏名】グ、アンジャ
(72)【発明者】
【氏名】リン、シャン−フン
(72)【発明者】
【氏名】中山 隆史
(72)【発明者】
【氏名】リ、リチャード
【審査官】
遠藤 尊志
(56)【参考文献】
【文献】
特開2009−054129(JP,A)
【文献】
特開2008−299866(JP,A)
【文献】
国際公開第2009/026337(WO,A1)
【文献】
特開2009−165826(JP,A)
【文献】
特開2001−236174(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/033−3/038
A63F 13/211
(57)【特許請求の範囲】
【請求項1】
ハンドヘルドデバイスにおいて、
前記ハンドヘルドデバイスの動きの軌道を表すジャイロスコープデータを発生するジャイロスコープと地球の重力に対して前記ハンドヘルドデバイスの傾きを表す加速度計データを発生する加速度計を具備する慣性センサーと、
前記ハンドヘルドデバイスの前記動きの軌道を表す前記ジャイロスコープデータと地球の重力に対して前記ハンドヘルドデバイスの前記傾きを表す前記加速度計データを組み合わせることにより、前記ハンドヘルドデバイスの前記動きの軌道を決定し、
トレーニングモードを介して、前記データの第1の部分を、第1の複数の別々の特徴に対応する第1の組の値に変換し、
前記第1の組の値をキャラクタに関係付け、トレーニングデータベースに前記第1の組の値と前記キャラクタを表す情報を記憶し、
認識モードを介して、前記データの第2の部分を、第2の複数の別々の特徴に対応する第2の組の値に変換し、前記第1の複数の別々の特徴または前記第2の複数の別々の特徴のうちの別々の特徴は、前記軌道の角度、前記動きに関係付けられているピッチにおける変化を前記動きに関係付けられているヨーにおける変化で除算した逆タンジェント、前記キャラクタに関係付けられている交差するポイントの位置、または前記軌道が方向を変える回数のうち少なくとも1つを含み、
前記第2の組の値が、規定された条件に関して、前記第1の組の値に一致するという決定に応答して、前記キャラクタを表示する
処理コンポーネントとを
具備するハンドヘルドデバイス。
【請求項2】
前記慣性センサーは、コンパスをさらに具備する請求項1記載のハンドヘルドデバイス。
【請求項3】
前記処理コンポーネントは、データ記憶装置に、前記第2の組の値の少なくとも一部を記憶する請求項1記載のハンドヘルドデバイス。
【請求項4】
前記動きの軌道をディスプレイ上にリアルタイムで表示するための前記ディスプレイをさらに具備する請求項1記載のハンドヘルドデバイス。
【請求項5】
前記キャラクタは、アルファベットからの文字、ローマ数字、ユーザのアイデンティティに関係付けられている署名、または認証信号のうちの少なくとも1つに関係付けられている請求項1記載のハンドヘルドデバイス。
【請求項6】
前記処理コンポーネントは、前記ハンドヘルドデバイスに関係付けられているアプリケーションプログラムあるいは前記ハンドヘルドデバイスに関係付けられているオペレーティングシステムに関係付けられているコマンドを実行する請求項1記載のハンドヘルドデバイス。
【請求項7】
前記コマンドは、ビデオゲームにおけるイベントをトリガする請求項6記載のハンドヘルドデバイス。
【請求項8】
前記コマンドは、アプリケーションプログラムを開きまたは閉じ、またはオペレーティングシステム内で動作している1組のアプリケーションを制御する請求項6記載のハンドヘルドデバイス。
【請求項9】
前記処理コンポーネントは、前記認識モードを介して、ルックアップテーブル、隠れマルコフモデル(HMM)、ニューラルネットワーク、またはサポートベクターマシンのうちの少なくとも1つを使用して、前記第2の組の値を前記第1の組の値に一致させる請求項1記載のハンドヘルドデバイス。
【請求項10】
前記処理コンポーネントは、前記認識モードを介して、1つ以上のセグメントにしたがって前記第2の組の値を前記第1の組の値に一致させる請求項1記載のハンドヘルドデバイス。
【請求項11】
前記1つ以上のセグメントは文字を表し、前記第1の組の値または前記第2の組の値は単語を表す請求項10記載のハンドヘルドデバイス。
【請求項12】
ジェスチャー認識のための方法において、
ジャイロスコープおよび加速度計を使用することにより、ハンドヘルドデバイスの第1の動きの第1の軌道に関連する第1のトレーニングデータを取得することと、
前記ジャイロスコープに関係付けられている前記第1のトレーニングデータの部分を地球の重力に対して前記ハンドヘルドデバイスの第1の傾きを表す前記加速度計に関係付けられている前記第1のトレーニングデータの別の部分と統合することに応答して、前記第1の軌道を決定することと、
前記第1の軌道データを、複数の別々の特徴の第1の組に対応する第1の値に変換することと、前記複数の別々の特徴のうちの別々の特徴は、前記軌道の角度、前記動きに関係付けられているピッチにおける変化を前記動きに関係付けられているヨーにおける変化で除算した逆タンジェント、前記ピッチ、前記ヨー、キャラクタに関係付けられている交差するポイントの位置、または前記軌道が方向を変える回数のうちの少なくとも1つを含み、
前記第1の値を第1のキャラクタに関係付けることと、
データ記憶装置に、前記第1の値と前記第1のキャラクタを表す情報とを記憶することと、
前記第1の値に基づいて、前記第1のキャラクタを表示することとを具備する方法。
【請求項13】
前記第1のトレーニングデータを取得することは、
前記ジャイロスコープ、前記加速度計、およびコンパスを具備するセンサーとを使用して、前記第1のトレーニングデータを取得することを含む請求項12記載の方法。
【請求項14】
前記複数の別々の特徴は、方向変化の数を表す請求項12記載の方法。
【請求項15】
前記複数の別々の特徴は、前記ハンドヘルドデバイスの角度の動きに関連する請求項12記載の方法。
【請求項16】
複数のベクトルにしたがって、複数のストロークでキャラクタを学習することをさらに具備する請求項12記載の方法。
【請求項17】
ハンドヘルドデバイスにおいて、
ジャイロスコープと、
加速度計と、
前記ハンドヘルドデバイスの動きの軌道を表す前記ジャイロスコープからジャイロスコープデータを受信し、地球の重力に対して前記ハンドヘルドデバイスの傾きを表す前記加速度計から前記加速度計データを受信する処理コンポーネントと、
前記処理コンポーネントに結合され、前記ハンドヘルドデバイスの前記動きの軌道および前記ハンドヘルドデバイスの前記傾きを具備する複数の別々の特徴を複数のキャラクタに関係付けるルックアップテーブルを含むプログラマブルモジュールと、
前記複数の別々の特徴に対応する複数の組の値を記憶するためのデータ記憶装置とを具備し、前記処理コンポーネントは、前記データの第1の部分を、前記複数の別々の特徴の第1の特徴に対応する第1の組の値に変換し、前記ルックアップテーブルを利用して、前記第1の組の値を、前記第1の特徴に基づいて前記複数のキャラクタのうちのキャラクタと関係付け、前記データ記憶装置に、前記第1の組の値と前記キャラクタを表す情報を記憶し、前記データの第2の部分を、前記複数の別々の特徴の第2の特徴に対応する第2の組の値に変換し、前記データ記憶装置を使用して、前記第2の組の値を前記複数の組の値の1つに一致させ、前記情報を使用して前記キャラクタを表示し、前記複数の別々の特徴のうちの別々の特徴は、前記軌道の角度、前記動きに関係付けられているピッチにおける変化を前記動きに関係付けられているヨーにおける変化で除算した逆タンジェント、前記キャラクタに関係付けられている交差するポイントの位置、または前記軌道が方向を変える回数のうち少なくとも1つを含むハンドヘルドデバイス。
【請求項18】
前記軌道をリアルタイムで表示するためと、前記軌道に対応する第3の組の値に基づいて、前記キャラクタを表示するためのディスプレイをさらに具備する請求項17記載のハンドヘルドデバイス。
【請求項19】
方法において、
ハンドヘルドデバイスの第1の動きの第1の軌道に基づいて、ジャイロスコープから第1の情報を取得することと、
トレーニングデータ記憶装置に、前記第1の情報とユーザのアイデンティティを表す認証情報を記憶し、
前記ハンドヘルドデバイスの第2の動きの第2の軌道に基づいて、前記ジャイロスコープから第2の情報を取得することと、
磁力計を利用して前記ハンドヘルドデバイスの向きを決定することに応答して、前記向きにしたがって前記第1の情報および前記第2の情報を修正することと、前記第1の軌道および前記第2の軌道は、選択された別々の特徴の組に対応する値の組に接続され、前記複数の別々の特徴のうちの別々の特徴は、前記軌道の角度、前記動きに関係付けられているピッチにおける変化を前記動きに関係付けられているヨーにおける変化で除算した逆タンジェント、キャラクタに関係付けられている交差するポイントの位置、または前記軌道が方向を変える回数のうち少なくとも1つを含み、
前記修正することに応答して、前記第2の情報を前記第1の情報と比較することと、
前記第2の情報を第1の情報と比較することに応答して、前記ユーザの前記アイデンティティを認証することとを含む方法。
【請求項20】
前記第1の動きまたは前記第2の動きは、前記ユーザの署名を表す請求項19記載の方法。
【請求項21】
前記第2の動きの前の予め定められた時間期間内に、または、前記第2の動きの後の予め定められた時間期間内に、サウンドを発生することと、
前記ハンドヘルドデバイスに埋め込まれているマイクロフォンを使用して、前記サウンドを検出することと、
前記比較することおよび前記検出することに応答して、前記ユーザを認証することとをさらに具備する請求項19記載の方法。
【請求項22】
ハンドヘルドデバイスにおいて、
第1のプロセッサと、
前記ハンドヘルドデバイスの動きの軌道を表す複数の別々の特徴を複数のコマンドに関係付けるルックアップテーブルを具備するプログラマブルモジュールと、前記複数の別々の特徴のうちの別々の特徴は、前記軌道の角度、前記動きに関係付けられているピッチにおける変化を前記動きに関係付けられているヨーにおける変化で除算した逆タンジェント、キャラクタに関係付けられている交差するポイントの位置、または前記軌道が方向を変える回数のうち少なくとも1つを含み、
ジャイロスコープとを具備し、前記第1のプロセッサは、前記ジャイロスコープから、前記ハンドヘルドデバイスの第1の動きに関連する第1の情報の少なくとも一部を受信し、前記一部に基づいて前記第1の動きを決定し、前記ルックアップテーブルを調べ、前記第1の動きを、前記複数のコマンドからのコマンドに一致させ、前記第1のプロセッサに結合された第1のコンポーネントは、前記コマンドに基づいてスリープ動作モードから第1のアクティブ動作モードを入力するハンドヘルドデバイス。
【請求項23】
前記第1の情報を処理するための前記ジャイロスコープに結合された第2のプロセッサをさらに具備する請求項22記載のハンドヘルドデバイス。
【請求項24】
前記第2のプロセッサは、前記ジャイロスコープから前記第1の情報を受信し、前記第1のプロセッサは、前記第2のプロセッサから前記第1の情報の別の部分を受信することに応答して、第2のアクティブ動作モードを入力する請求項23記載のハンドヘルドデバイス。
【請求項25】
前記ハンドヘルドデバイスの前記第1の動きに関連する第2の情報を提供するための加速度計をさらに具備し、
前記第1のコンポーネントは、前記第2の情報に基づいて、前記第1のアクティブ動作モードを入力する請求項22記載のハンドヘルドデバイス。
【請求項26】
スマートフォンをさらに具備する請求項22記載のハンドヘルドデバイス。
【請求項27】
カメラと、
ディスプレイとをさらに具備し、
前記カメラは、前記第1の動きに基づいて、前記スリープモードから前記第1のアクティブモードにスイッチし、
前記カメラが、前記アクティブモードの間に前記スリープモードの間よりも多い電力を使用し、前記ディスプレイは、前記第1の動きに基づいて、前記スリープモードから前記第1のアクティブモードにスイッチされない請求項22記載のハンドヘルドデバイス。
【請求項28】
前記第1の動きに基づいて、前記第1のプロセッサを、前記第1のアクティブモードに入らせるための第2のプロセッサは、前記ジャイロスコープに結合されている請求項22記載のハンドヘルドデバイス。
【請求項29】
前記第1の動きに基づいて、前記スリープモードから前記第1のアクティブモードに前記マイクロプロセッサをスイッチすることを促進する第2のプロセッサをさらに具備し、
前記第1のプロセッサは、マイクロプロセッサを具備し、
前記第1のコンポーネントは、カメラを具備し、
前記マイクロプロセッサは、前記第1の動きに基づいて、前記カメラを、前記スリープモードから前記第1のアクティブモードにスイッチすることを促進し、
前記マイクロプロセッサは、前記ハンドヘルドデバイスの第2の動きに基づき、および前記第1の動きに基づかないで、前記ディスプレイを、前記スリープモードから前記第1のアクティブ動作モードにスイッチすることを促進し、
前記第1のアクティブ動作モードは、前記スリープ動作モードに関係付けられている第2の電力の消費よりも多い第1の電力の消費に関係付けられている請求項22記載のハンドヘルドデバイス。
【請求項30】
方法において、
プロセッサを具備するシステムによって、前記システムの動きに関して、ジャイロスコープから情報を受信することと、
前記システムの動きの軌道を表す別々の特徴を、複数のコマンドに関係付けるルックアップテーブルを調べることと、
前記第1の複数の別々の特徴または前記第2の複数の別々の特徴のうちの別々の特徴は、前記軌道の角度、前記動きに関係付けられているピッチにおける変化を前記動きに関係付けられているヨーにおける変化で除算した逆タンジェント、前記キャラクタに関係付けられている交差するポイントの位置、または前記軌道が方向を変える回数のうち少なくとも1つを含み、
前記動きを前記複数のコマンドからのコマンドに一致させ、
前記コマンドに基づいて、前記システムのコンポーネントをスリープ動作モードからアクティブ動作モードにスイッチすることとを具備する方法。
【請求項31】
前記情報は、加速度計から受信された情報をさらに具備する請求項30記載の方法。
【請求項32】
前記コンポーネントは、カメラを具備する請求項30記載の方法。
【請求項33】
前記コンポーネントは、ディスプレイを具備する請求項30記載の方法。
【請求項34】
前記コンポーネントは、マイクロフォンを具備する請求項30記載の方法。
【請求項35】
前記動きは、前記システムのタッチに対応する請求項30記載の方法。
【請求項36】
前記システムの別のコンポーネントが、前記動きに基づいて、前記スリープモードから前記アクティブモードにスイッチしないよう防ぐことをさらに具備する請求項30記載の方法。
【請求項37】
前記処理コンポーネントは、前記決定を介して、前記第1の組の値を前記第2の組の値と比較する請求項1記載のハンドヘルドデバイス。
【請求項38】
前記処理コンポーネントは、前記第2の組の値が、前記第1の組の値に一致するという前記決定に応答して、コマンドを実行する請求項1記載のハンドヘルドデバイス。
【請求項39】
前記第1の値に関係付けられている第1のコマンドを実行することをさらに具備する請求項12記載の方法。
【請求項40】
前記処理コンポーネントは、コマンドを実行し、前記ルックアップテーブルは、前記複数の別々の特徴を前記コマンドに関係付ける請求項17記載のハンドヘルドデバイス。
【請求項41】
前記ジャイロスコープおよび前記加速度計を使用して、前記ハンドヘルドデバイスの第2の動きの第2の軌道に関連する第2のトレーニングデータを取得することと、
前記ジャイロスコープに関係付けられている前記第2のトレーニングデータの部分を地球の重力に対して前記ハンドヘルドデバイスの第2の傾きを表す前記加速度計に関係付けられている前記第2のトレーニングデータの別の部分と統合することに応答して、前記第2の軌道を決定することと、
前記第2のトレーニングデータを、前記複数の別々の特徴の第2の組に対応する第2の値に変換することと、
前記第2の値を、第2のキャラクタと関係付けることと、
前記データ記憶装置に、前記第2の値と前記第2のキャラクタとを表す情報を記憶することと、
前記ジャイロスコープおよび前記加速度計を使用して、前記ハンドヘルドデバイスの第3の動きの第3の軌道に関連する軌道データを取得することと、
前記軌道データを、前記複数の別々の特徴の第3の組に対応する第3の値に変換することと、
前記第3の値を、前記第1の値または前記第2の値に一致させることと、
前記一致させることに応答して、前記第1のキャラクタまたは前記第2のキャラクタを表示する請求項12記載の方法。
【請求項42】
前記ルックアップテーブルは、前記複数の別々の特徴を、前記ルックアップテーブルの列に対応する値の組を利用して前記複数のキャラクタに関係付ける請求項17記載のハンドヘルドデバイス。
【請求項43】
前記ルックアップテーブルは、前記複数の動きを、値の組に対応する列を使用して前記複数のコマンドに関係付ける請求項22記載のハンドヘルドデバイス。
【請求項44】
前記複数の動きは、前記ルックアップテーブルの列に対応する値の組に基づいて前記複数のコマンドに関係付けられている請求項30記載の方法。
【発明の詳細な説明】
【0001】
本出願は、“人間の動きに関連するキャラクタおよびコマンドを認識するためのインテリジェントコンピュータシステムおよび技術”と題され、2009年11月9日に出願された、米国仮出願シリアル番号第61/259,288号の利益を主張する。上述の出願のすべては、参照によりここに組み込まれている。本出願は、“人間の動きに関連するキャラクタおよびコマンドを認識するためのハンドヘルドコンピュータシステムおよび技術”と題され、2010年7月8日に出願された、米国特許出願シリアル番号第12/832,707号の利益も主張する。上述の出願のすべては、参照によりここに組み込まれている。
【0002】
本発明は、ハンドヘルドのコンピュータ化された人間の手のジェスチャーを認識するシステムに関し、特に、ジャイロスコープおよび加速度計を備えるマイクロマシンシステム(MEMS)ベースの慣性センサーと、ミニチュアコンパスとを有するハンドヘルドデバイスを含む、ハンドヘルドデバイスコンピュータシステムに関する。
【0003】
手のジェスチャーは、目に見える手のアクションにより個人がメッセージを伝えることを可能にする非言語コミュニケーションの一形態である。数学的アルゴリズムにより人間のジェスチャーを解釈するという目的のために、手のジェスチャーの認識がコンピュータ技術でますます使用されるようになっている。手のジェスチャーの認識技術により、何らかの機械的なデバイスがなくても、人間がコンピュータとインターフェースして、自然に対話することが可能になる。例えば、ジェスチャー認識の概念を使用すると、コンピュータスクリーンを指差し、それにしたがってカーソルが動くようにすることが可能である。
【0004】
手のジェスチャー認識の概念は、ビデオゲーム技術でもますます使用されるようになっており、ビデオゲーム技術では、プレーヤーの手のジェスチャーがハンドヘルドデバイスによりコンピュータシステムに通信される。例えば、任天堂株式会社により製作された家庭用ビデオゲームコンソールであるWii(登録商標)は、Wiiリモコン(登録商標)というワイヤレスコントローラを使用し、Wiiリモコンは、ハンドヘルドポインティングデバイスとして使用することができ、3次元での動きを検出することができる。Wiiリモコンは、ジェスチャーを表す、経時的な加速度の変化を調べることができる。
【0005】
従来のジェスチャー認識コンピュータシステムおよびソフトウェアの正確性ならびに有用性に関係する多くの課題がある。一般的に、従来のシステムが線形センサーを頼りにしているのに対し、人間の手のジェスチャーは角度の動きを多く含んでいるため、従来のシステムは、それほど正確ではない。したがって、従来のシステムは、大きな手の動きのみを適切に認識することができ、互いにわずかにだけ異なる手のジェスチャーを適切に区別することができない。類似する手のジェスチャーを区別することができる認識システムを有することが望ましいだろう。
【発明の概要】
【0006】
以下のものは、主題的な開示のいくつかの態様の基本的な理解を提供するために、主題的な開示の簡略化した概要を提示する。本概要は、主題的な開示のさまざまな実施形態の広範囲にわたる概略ではない。キーエレメントまたは重要なエレメントを識別することや、あるいは、何らかの範囲を線引きすることのどちらも意図していない。この唯一の目的は、後に提示するさらに詳細な説明に対する前置きとして、いくつかの概念を簡略化した形で提示することである。
【0007】
本発明は、人間の手のジェスチャーを認識するための、新規で効率的なハンドヘルドコンピュータシステムおよび方法に関する。コンピュータシステムは、例えば、ジャイロスコープ、加速度計、および/または、コンパスのような、慣性センサーを備える遠隔ハンドヘルドデバイスを含む。トレーニングモードにおいて、ユーザは、コマンドまたはキャラクタを伝えるために、ハンドヘルドデバイスを手に持ちながら、意図的な手のジェスチャーを行う。慣性センサーによってジェスチャーの動きに関連するデータが捕捉され、提供される。データは、前処理され、フィルタリングされ、1組の別々の特徴に対応する1組の値に変換される。1組の値は、データベースに記憶され、コマンドまたはキャラクタが、この組に関係付けられる。データベースには、さまざまな手のジェスチャーが格納される。動作の間に、データ捕捉および変換の同じステップが、ユーザの手のジェスチャーに対して実行され、1組の値がデータベースと比較される。一致または最も近い一致に関係付けられているコマンドが実行されるか、あるいは、一致または最も近い一致に関係付けられているキャラクタがハンドヘルドデバイスのディスプレイ上に表示される。
【0008】
先の目的および関連する目的を達成するために、1つ以上の態様は、後に完全に説明する特徴、および、特許請求の範囲中で特に指摘する特徴を含んでいる。以下の説明および添付した図面により、1つ以上の態様のうちのある例示的な態様を詳細に述べる。これらの特徴は、さまざまな態様の原理を用いることができるさまざまな方法のうちのいくつかだけを示しているが、本説明は、このようなすべての態様およびそれらの均等物を含むことを意図している。
【図面の簡単な説明】
【0009】
同一の参照キャラクタが全体を通して同一の部分を指す添付図面とともに使用される、以下の詳細な説明を考えたときに、本発明の上の目的および利点と、他の目的および利点は明らかであるだろう。
【
図1】
図1は、本発明の方法のための例示的なフローダイヤグラムを示している。
【
図2】
図2は、本発明を実現することができる例示的なコンピュータネットワークを示している。
【
図3】
図3は、本発明を実現することができる例示的なコンピューティング環境を示している。
【
図4】
図4は、ユーザにリアルタイムフィードバックを提供する例示的なディスプレイを示している。
【
図5】
図5は、本発明のトレーニングモード方法のための例示的なフローダイヤグラムを示している。
【
図6】
図6は、本発明の認識モード方法のための例示的なフローダイヤグラムを示している。
【
図7】
図7は、本発明のジェスチャー認識エンジンにより使用することができる例示的なコンピュータモジュールを示している。
【
図8】
図8は、本発明の動作モード方法のための例示的なフローダイヤグラムを示している。
【
図9】
図9は、本発明の動作モード方法のための例示的なアルゴリズムを示している。
【
図10】
図10は、電力管理のために慣性センサーが使用される、本発明の例示的な実施形態にしたがったシステムを示している。
【
図11】
図11は、本発明の例示的な電力管理の方法を示している。
【
図12】
図12は、本発明の電力管理技術を実現することができる例示的なハンドヘルドデバイスを示している。
【
図13】
図13は、カメラアプリケーションがスリープモードからアクティブモードにスイッチされる、本発明の例示的な方法を示している。
【
図14】
図14は、ハンドヘルドデバイスがアクティブモードからスリープモードにスイッチされ、そしてアクティブモードに戻る、本発明の例示的な方法を示している。
【
図15】
図15は、慣性センサーおよび非慣性センサーを含む、本発明の例示的なハンドヘルドデバイスを示している。
【
図16】
図16は、慣性センサーにより提供されるデータを組み合わせるための、本発明の例示的な方法を示している。
【
図17】
図17は、角度の動きを線形の動きに相関させる、本発明の例示的な方法を示している。
【
図18】
図18は、ユーザ認証のためにマイクロフォンおよび慣性センサーが使用される、本発明の例示的な方法を示している。
【
図19】
図19は、ハンドセットスクリーンをロック解除するための、本発明の例示的な方法を示している。
【0010】
本発明は、人間の動きにより意図されたキャラクタまたはコマンドを認識して、キャラクタを表示するための、あるいは、コマンドを実行するための、システムおよび技術を開示する。クレームされている主題事項は、ここでは図面を参照して説明し、同一の参照番号は、全体を通して同一のエレメントを指すように使用される。以下の説明では、説明の目的上、主題的なイノベーションの完全な理解を提供するために、多くの特定の詳細および例を述べる。しかしながら、これらの特定の詳細がなくても、主題的なイノベーションを実施でき、主題的なイノベーションは、これらの特定の詳細および例によって限定されないことを当業者は理解するだろう。クレームされている主題事項の説明を容易にするために、よく知られている構造およびデバイスは、ブロックダイヤグラムの形で示されていることも、当業者は正しく認識するだろう。
【0011】
本出願で使用するような、用語“コンポーネント”、“モジュール”、“システム”、または、これらに類するものは、必ずしもそうではないが、ハードウェアや、ハードウェアとソフトウェアの組み合わせや、ソフトウェアや、または、実行中のソフトウェアのいずれかである、コンピュータ関連エンティティを指すことがある。例えば、コンポーネントは、これらに限定されないが、プロセッサ上で動作しているプロセス、プロセッサ、オブジェクト、実行ファイル、実行のスレッド、プログラム、および/または、コンピュータであってもよい。例として、制御装置上で動作しているアプリケーションおよび制御装置の双方ともコンポーネントとすることができる。1つ以上のコンポーネントは、実行のプロセスおよび/またはスレッド内に存在することがあり、コンポーネントは、1つのコンピュータ上に局所化されていることがあり、および/または、2つ以上のコンピュータ間に分散されていることがある。
【0012】
さらに、開示されている主題事項を実現するようにコンピュータを制御するために、標準のプログラミングおよび/またはエンジニアリング技法を使用して、ソフトウェア、ファームウェア、ハードウェア、あるいは、これらの何らかの組み合わせを生成させる、方法、装置、または、製造物として、クレームされている主題事項を実現してもよい。ここで使用されるような用語“製造物”は、何らかのコンピュータ読取可能デバイス、キャリア、または、媒体から、アクセス可能なコンピュータプログラムを含むことを意図している。例えば、コンピュータ読取可能媒体は、これらに限定されないが、磁気記憶デバイス(例えば、ハードディスク、フロッピー(登録商標)ディスク、磁気ストリップ...)や、光ディスク(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)...)や、スマートカードや、フラッシュメモリデバイス(例えば、カード、スティック、キードライブ...)を含むことがある。さらに、電子メールを送受信する際に、あるいは、インターネットまたはローカルエリアネットワーク(LAN)のようなネットワークにアクセスする際に使用するもののような、コンピュータ読取可能な電子データを運ぶために、搬送波を用いることができることを正しく認識すべきである。当然、当業者は、クレームされている主題事項の範囲または精神から逸脱することなく、このコンフィギュレーションに対して多くの改良がなされてもよいことを認識するだろう。
【0013】
さらに、例として、事例として、あるいは、例示としての役割を果たすことを意味するために、“例示的な”という文言がここで使用される。“例示的な”ものとして、ここで説明するいずれの態様または設計は、他の態様または設計と比較して、必ずしも好ましいものとして、または、利益のあるものとして解釈すべきではない。むしろ、例示的なという文言の使用は、具体的な形で概念を提示することを意図している。本出願で使用されているような、“または”という用語は、排他的な“または”というよりむしろ、包含的な“または”を意味することを意図している。それゆえ、そうではないと特に述べられていない限り、または、文脈から明らかでない限り、“XがAまたはBを用いる”は、自然な包含的順列のうちのいずれかを意味することを意図している。すなわち、XがAを用いる;XがBを用いる;あるいは、XがAおよびBの双方とも用いる場合、“XがAまたはBを用いる”は、先の例のうちのいずれのものの下でも満たされる。加えて、本願明細書および添付した特許請求の範囲で使用している冠詞“a”および“an”は、そうではないと特に述べられていない限り、または、単数形を意図する文脈から明らかでない限り、一般的に、“1つ以上”を意味すると解釈すべきである。
【0014】
ここで使用されるような、“推測する”または“推測”という用語は、一般的に、イベントおよび/またはデータを通して捕捉されるような1組の観測から、システム、環境、および/または、ユーザの状態について推理するもしくは推測するプロセスのことを指す。推測は、特定の状況またはアクションを識別するために用いることができ、あるいは、例えば、状態に対する確率分布を発生させることができる。推測は、確率論的とすることができる−すなわち、データおよびイベントの考察に基づいての、対象の状態に対する確率分布の計算とすることができる。推測はまた、1組のイベントおよび/またはデータから、より高いレベルのイベントを構成するために用いられる技法のことを指すこともある。このような推測は、イベントが時間的に近いところで相関しているか否かにかかわらず、ならびに、イベントおよびデータが、1つまたはいくつかの、イベントならびにデータソースから到来したか否かにかかわらず、結果として、1組の観測されたイベントおよび/または記憶されたイベントデータからの、新しいイベントまたはアクションの構築になる。
【0015】
MEMSベースのモーションセンサーは、加速度計とジャイロスコープを含んでいる。線形加速度を測定するために、加速度計を使用することができる。MEMSベースの加速度計の基礎となる物理メカニズムは、静電容量性、ピエゾ抵抗、電磁気、圧電、強誘電、光学、および、トンネリングを含む。MEMSベースの加速度計は、(プルーフマス、サイスミックマスとしても知られる)予め定められたテストマスを持つ片持ち梁からなるシンプルなデバイスとすることができる。外的な加速度の影響下で、マスは、その中立なポジションから逸れる。この逸れは、アナログな方法またはデジタルな方法で測定される。一般に、1組の固定された梁とプルーフマスに取り付けられた1組の梁との間のキャパシタンスが測定される。
【0016】
他のタイプのMEMSベースの加速度計は、非常に小型のドームの底に小型ヒーターを含んでいることがあり、小型ヒーターは、ドーム内部の空気を熱して上昇させる。熱せられた空気がドームに達した場合に、ドーム上の熱電対が決定され、中心からの逸れは、センサーに適用される加速度の尺度である。一般的に、MEMSベースの加速度計は、面内で動作する、すなわち、ダイの平面の方向にのみ敏感であるように設計されている。2つのデバイスを単一のダイ上で垂直に統合することにより、2軸加速度計を作ることができる。追加の面外素子を追加することにより、3軸を測定することができる。積分回路を持つ加速度計は、読み出し回路と自己診断機能を提供する。
【0017】
コンパスは、地球の磁極に対する方向を決定するために使用される機器である。コンパスは、それ自体を地球の磁界と自由に調整することができる磁化されたポインターからなる。ミニチュアコンパスは、通常、マイクロプロセッサにデータを提供する、例えば、ホールセンサーのような、2個または3個の磁界センサーから作られる。コンパスに対する正しい進行方向は、三角法を使用して計算される。当然、ミニチュアコンパスは、その向きに比例するデジタル信号またはアナログ信号のいずれかを出力するディスクリートコンポーネントである。制御装置またはマイクロプロセッサにより、この信号が解釈される。コンパスは、高較正内部回路を使用して、地球の磁界に対するコンパスの応答を測定することができる。市場で入手可能なミニチュアコンパスの例は、ハネウェルインターナショナル社により販売されているHMC1051Z 1軸磁気抵抗センサーおよびHMC1052 2軸磁気抵抗センサーと、旭化成エレクトロニクス株式会社により販売されているAK8973 3軸電子コンパスと、日本のアイチマイクロインテリジェント株式会社により販売されているAMI201(2軸)電子コンパスモジュールおよびAMI302(3軸)電子コンパスモジュールである。
【0018】
ジャイロスコープは、角運動量の保存の法則に基づいて、向きを測定または維持するために使用されるデバイスである。MEMSベースのジャイロスコープは、振動するプルーフマスを使用する。典型的に、これらのマスは、高い周波数において振動する。センサーのハウジングが慣性空間で回転するときに、プルーフマス上にコリオリの力が誘発される。コリオリの力は、直交平面に振動を生じさせ、直交運動の振幅は、測定することができる。このタイプのデバイスは、コリオリ振動ジャイロとしても知られている。その理由は、発振の平面が回転されるときに、トランスデューサーにより検出される応答は、その運動の式のコリオリの項(“コリオリの力”)に起因するからである。振動する構造のジャイロスコープは、MEMS技術を使用した、音叉共振器、振動ホイール、または、ワイングラス型共振器として実現することができる。
【0019】
本発明がMEMSベースのデバイスに限定されないこと、ここで開示するMEMSベースの実施形態は例示であること、ならびに、ハンドヘルドデバイスに組み込むことができる何らかの加速度計、コンパス、およびジャイロスコープにより本発明を実現できることを、当業者は正しく認識するだろう。ハンドヘルドデバイスに含めることができる、例えば、水晶センサーのような、他のタイプの慣性センサーを本発明で使用することもできることを、当業者は正しく認識するだろう。ミクロンまたはミリメーターのスケールにおける機械コンポーネントを含み、回路と組み合わせることができる、他のタイプの慣性センサーを、本発明で使用することもできる。
【0020】
図1は、本発明の方法に対する例示的なフローダイヤグラム100を示している。フローダイヤグラム100は、トレーニングモードコンポーネント110と、認識モードコンポーネント130の2つのコンポーネントを含んでいる。トレーニングモード110において、ユーザは、ハンドヘルドデバイスの意図的な動きを空中で生じさせることにより開始する(ステップ112)。ユーザの意図的な動きは、コマンドまたはキャラクタに対応する。1つの実施形態では、ハンドヘルドデバイスは、MEMSベースのジャイロスコープおよび加速度計を備えることがある。別の実施形態では、ハンドヘルドデバイスは、MEMSベースのジャイロスコープおよび加速度計と、ミニチュアコンパスとを備えることがある。
【0021】
ステップ114において、ハンドヘルドデバイスに埋め込まれているジャイロスコープ、加速度計、および、コンパスを使用することにより、ステップ112において行われたジェスチャーの軌道に関連するデータが抽出される。人間の動きの大部分は角度があるので、手によって空中に描かれた軌道は、ジャイロスコープを使用して、主として角度の動きで表現することができる。生のジャイロスコープデータは、角速度に比例するので、このデータを、何らかのオフセットを除去するように前処理して、角度の動きの推定を提供するために積分することができる。ヌル電圧としても知られるジャイロバイアスオフセットは、ジャイロがその受感軸の周りを回転しないときに測定される電圧である。バイアスオフセットを上回るジャイロ出力電圧測定は、1つの方向(例えば、時計回り)での回転を示す一方で、バイアスオフセットを下回る電圧測定は、反対方向(例えば、反時計回り)での回転を示す。
【0022】
信号をきれいにするための追加のフィルタリングは、無意識の手の震えや、他の望ましくない高周波成分を除去することができる。震えは、人間の手に本質的に存在する、小さくて速い振動である。遅くて意図的でない動きを除去するためには、不感帯または類似のメカニズムを使用することができる。センサーの不感帯は、センサーが機能しないポイント、期間、エリア、または、ゾーンである。本特許出願の譲受人であるInvenSense社は、MEMSベースのジャイロスコープおよび加速度計を、ならびに/あるいは、ミニチュアコンパスを有する、ハンドヘルドデバイスの誤差を較正または訂正するための、独自の方法、ソフトウェア、および、アーキテクチャを開発してきた。異なるコマンドおよびキャラクタが、互いにわずかにだけ異なる手のジェスチャーによって表されているときでさえ、これらのイノベーションにより、ジェスチャー認識システムが、ユーザによって意図されたさまざまなコマンドおよびキャラクタを解釈して区別することが可能になる。
【0023】
ステップ114に戻ると、ジャイロスコープのバイアスを安定させるのを助けるためと、重力の方向を決定するのを促進するためにも、加速度計のデータを使用することができる。加速度計のデータは、ジャイロスコープのデータと相関させて、空中での意図的な動きを示す強い線形成分、すなわち、モーメントアームを持つ回転と、ユーザの手の中での意図的でないデバイスの回転を示す、このような成分を持たない回転の成分とを区別することもできる。ハンドヘルドデバイスにコンパスを組み込んで、ヨー方向におけるジャイロスコープバイアスを安定させることもできる。この前処理の結果は、ヨーの角度の動きと、ピッチの角度の動きとに対応する、Xデータポイントと、Yデータポイントとを含む軌道である。ピッチ、ロール、および、ヨーは、角度として測定される物体の動きのことを指す。ピッチは、箱のふたのような上下の動きである。ヨーは、ちょうつがいのドアのような左右の動きである。ロールは、回転の動きである。
【0024】
軌道を分離するのを助けるために、1つの実施形態では、ハンドヘルドデバイス上のボタンを使用して、意図的なジェスチャーの動きと、意図的でない動きまたはワインドアップの動きとを区別することができる。ジェスチャーの経過中にボタンを押さえることができ、あるいは、ジェスチャーの開始において1度、および、ジェスチャーの終わりにおいて1度、ボタンを押すことができる。別の実施形態では、ジェスチャーの始まりと終わりを決定するために、軌道のスピードを使用することがある。例えば、ユーザが、大きくて速い動きを開始したときに、ジェスチャーが開始したと仮定される。ある時間が経過して、動きの総量またはスピードが、何らかのしきい値を下回るまで減少したときに、ジェスチャーが終わったと仮定される。さらに別の実施形態では、何らかの動きが、ジェスチャーの動きでありうると仮定され、ジェスチャーを捕捉するために、移動窓法(moving window)のデータが使用される。
【0025】
手の動きを使用して、予め定められた軌道を空中で描くという経験に、ユーザが慣れていないことがあるので、ユーザが軌道の制御を学習するのを助けるためにフィードバックを使用することができる。このケースでは、ジェスチャー認識アルゴリズムにおいて使用されるだろう軌道をユーザに知らせるために、軌道のXパスおよびYパスに対応するイメージを、例えば、コンピュータディスプレイ上に表示することができる。データベース構造における、記憶、問い合わせ、および、比較に適していることから、空間および時間において軌道を正規化することが有用であることを当業者は正しく認識するだろう。空間において軌道を正規化するために、総Xスパンならびに総Yスパンの最大量により決定された量または比率だけ、軌道をスケールダウンすることができる。時間において正規化するために、平均化を使用して、データポイントの数を減少させることができる。正規化の後で、すべての軌道は、同じサイズおよび同じ数のデータポイントを有するだろう。それにより、それらを形によって比較することがさらに容易になる。
【0026】
ステップ116において、軌道データを、1組の選択された別々の特徴に対応する1組の値に変換することができる。1組の特徴の1つの例は、何らかの所定の時点における軌道の角度である。ピッチにおける変化をヨーにおける変化で除算した逆タンジェントを使用して、これを計算することができる。1組の特徴の別の例は、Xの二乗とYの二乗を足したものを構成する、半径の二乗成分である。1組の特徴の別の例は、ピッチのみ、すなわち、Yデータポイントのみを含むピッチ成分である。1組の特徴の別の例は、ヨーのみ、すなわち、Xデータポイントのみを含むヨー成分である。1組の特徴の別の例は、例えば、文字“U”を文字“V”と区別するのに有用な、軌道の変化のレートである。1組の特徴の別の例は、例えば、数字“8”を数字“0”と区別するのに有用な、交差するポイントの位置である。1組の特徴の別の例は、軌道内で軌道が方向を変える回数であり、方向における角度の変化は、しきい値よりも大きいという限定がある。本発明のシステムの前提および目的内で、他の組の類似するタイプの特徴も使用できることを、当業者は正しく認識するだろう。
【0027】
ステップ118において、予め定められた組の別々の特徴に対応する1組の値が生成された後で、例えばID番号のような、対応する識別子とともに、所望のジェスチャーを示す1組の値をデータベースに記憶することができる。ステップ120において、データベースには、所望の特徴に対応する多くの組の値を格納することができ、データベースは、さまざまな識別子を所望のジェスチャーに関係付けることができる。以下は、ステップ120において生成することができる例示的なデータベースである。以下の表は、1組のN個の特徴、および、N個の特徴に対するM組の値を含んでいる。コマンドまたはキャラクタは、各組の値に関係付けられている。
【表1】
【0028】
トレーニングモード110の間に格納されたデータベースは、その後、認識モード130の間に、ジェスチャー認識モードに対して使用することができる。認識モードでは、ステップ132において、ユーザは、ハンドヘルドデバイスを動かすか、または、彼/彼女の手だけを空中で動かすかのいずれかにより、手のジェスチャーを行う。ステップ134において、ハンドヘルドデバイスは、ハンドヘルドデバイスに埋め込まれているジャイロスコープ、加速度計、およびコンパスを使用することにより、ステップ132において行われたジェスチャーの軌道に関連するデータを抽出する。
【0029】
ステップ136において、ステップ134において抽出された軌道データが、何らかの別々の特徴に対応する1組の値に変換される。トレーニングモード110においてステップ114およびステップ116がそれぞれ実現されたのと同じ方法または類似する方法で、ステップ134およびステップ136を実現することができる。ステップ138において、ステップ136において入力された軌道から決定された1組の値を、ジェスチャーライブラリ中に記憶されているすべての組の値か、または、ジェスチャーライブラリ中に記憶されている値の組のサブセットと比較することができる。このライブラリは、ステップ120においてトレーニングデータを使用することにより、または、ハードコード化されたデータを使用することにより、発生されたものである。ステップ140において、ユーザの入力軌道により発生された1組の値に一致する、または、最も近く一致する1組の値をライブラリから識別したときに、その組の値に対応するキャラクタが表示されるか、あるいは、その組の値に対応するコマンドが実行される。キャラクタは、英語または別の言語のアルファベットからの文字を含むことがある。使用されているような用語“キャラクタ”は、単語、フレーズ、または、署名も含むことがあることを、当業者は正しく認識するだろう。キャラクタは、例えば、ローマ数字のような、数字も含むことがある。例えば、マイクロソフト(登録商標)ワードのような、ワードプロセッシングアプリケーション文書において、キャラクタを表示することができる。
【0030】
ステップ140において、特徴の組に対応するユーザ入力値の組と、ライブラリ内の特徴の組に対応する値の組とを比較するために、ルックアップテーブル、隠れマルコフモデル(HMM)、ニューラルネットワーク、および、サポートベクターマシンを含む、使用できるさまざまな技術が存在する。最適な実施形態では、最適化のために何らかの改良をされたHMMが使用される。HMMは、状態遷移行列および放出行列を含む。状態遷移行列では、各状態の後に次の状態が続くにちがいない左右モデルが使用される。
【表2】
【0031】
放出行列では、特徴に対する各ライブラリ値により行列中での最適なポイントが与えられる行列を発生させるために、ライブラリからの特徴を使用することができるが、特徴に対するライブラリ値の両側に何らかの許容される確率がある。例えば、所定の状態が、所定のライブラリ特徴の組に対して特徴#4で記録されていた場合に、放出行列中の対応する列は、0ABCBA00等を含むかもしれない。
【0032】
Cが高い確率に対応している場合に、BおよびAは、それぞれ、より低い確率に対応している。この行列は、バウム−ウェルチ方法のようなトレーニング方法を使用して発生されてもよく、または、特徴ライブラリから直接入力されてもよい。状態遷移行列および放出行列が発生された後で、前向きアルゴリズムまたはビタビアルゴリズムのような標準アルゴリズムを使用して、入力された特徴の組の値が、ライブラリの特徴の組の値に一致する確率を評価するために、これらの行列が使用されてもよい。過剰なスケーリング差を防ぐために、最終的な確率はログとして発生されてもよい。
【0033】
入力軌道を評価するためにいくつかの異なる特徴の組が使用されるときに、各特徴の組に対して確率が発生されるだろう。例えば、確率Aは、角度の特徴に対する確率を反映し、確率Bは、半径の特徴に対する確率を反映する等である。すべてのタイプの特徴に対するすべての確率の、重み付けされた線形の組み合わせとして、最終的な確率が与えられることがあり、重みは、実験的に決定される。最も高い確率は、軌道に対する最良の一致を決定する。最も高い確率がしきい値を下回る場合には、一致は何も返されない。
【0034】
1つの実施形態では、1組の数字、キャラクタ、または、類似する長さの他の軌道のような、1組の短いジェスチャーが、予めトレーニングされてもよい。各ジェスチャーに対して、1組の異なる軌道がトレーニングされてもよい。例えば、2は、下の左隅におけるループありで、または、下の左隅におけるループなしで、トレーニングされてもよい。予め定められた特徴の組のうちの1つに一致する軌道をユーザが入力したときに、デバイスのアプリケーションまたはオペレーティングシステムにおいて、イベントがトリガされる。1つの実施形態では、ジェスチャーは、アプリケーション内あるいはゲーム内でのモード変更またはイベントをトリガすることがある。別の実施形態では、ジェスチャーは、アプリケーションを開くか、または、閉じてもよく、あるいは、そうでなければ、オペレーティングシステム内で動作する1組のアプリケーションを制御してもよい。別の実施形態では、数字または文字は、プログラム内あるいはオペレーティングシステム内のリスト中のエレメントを示してもよい。
【0035】
1つの例では、電話機内の連絡先リストにおいて、文字を描くことは、アルファベット中のその文字へと連絡先リストがスクロールすべきであることを示してもよい。別の例では、メインメニュー内で、(‘W’のような)文字を描くことは、(ウェブブラウザのような)アプリケーションを開始させてもよい。予め規定されたジェスチャーのリストは、デバイスのベンダーにより予めプログラミングされていてもよく、または、ユーザによりトレーニングされてもよく、または、その双方であってもよい。
【0036】
別の実施形態では、一致することになる軌道は、デバイスをロック解除するために、デバイス上で動作しているプログラムをロック解除するために、あるいは、購入または他の金銭上の取引を成立させるために使用される認証信号であってもよい。このような認証信号は、署名に類似し、シンプルなキャラクタまたは数字よりも長いことがある。このような空中署名は、形および曲線の抽象的な組であってもよく、あるいは、空中で描かれる実際の署名であってもよい。ユーザによって描かれた軌道は、何らかの対立が起こった場合に、後に表示することができるように、データベース中に記憶させてもよい。ユーザによって描かれた軌道を、ユーザの予め定められた空中署名にリアルタイムで一致させてもよく、トリガするように意図されているイベントのトリガは、一致の確率が十分に高い場合にのみ成功する。
【0037】
何人かのユーザは、他の人よりも長い署名を使いたいと思っていることがあるので、空中署名のような、任意に長い軌道を記録するために、すべてのユーザの署名に対して、ハードコード化された数の特徴を使用するのでは十分でないことがある。このケースでは、使用されることになる特徴の数は、署名内での方向の変化の数によって決定されてもよい。
【0038】
別の実施形態では、すべての認識可能な軌道に対して、ハードコード化された数の特徴を使用することがあり、より長い軌道は、より短い軌道の組み合わせからなる。このケースでは、長い署名は、記録および比較されるさらに短い単位に解体されなければならず、正しい順序で認識が成功する1組のより短い軌道を長い署名が含んでいる場合にのみ、長い署名の認識は成功する。
【0039】
1つの実施形態では、ユーザによって動かされるデバイスは、モーションセンサーとディスプレイの双方を組み込んでおり、フィードバック軌道とジェスチャー認識の結果とが、ディスプレイ上に描かれてもよい。このケースでは、デバイスは、ハンドセット、ポータブルゲーミングシステム、または、1組のモーションセンサーおよびディスプレイを含む他の電子システムであってもよい。別の実施形態では、デバイスは、モーションセンサーを含むが、ディスプレイを含んでいないことがあり、デバイスから物理的に離れているディスプレイが、フィードバックおよび結果を示してもよい。例えば、デバイスは、リモートコントロール、エアマウス、または、ゲームコントローラに類似してもよく、ディスプレイは、コンピュータ、TV、または、ゲームコンソールモニタであってもよい。
図4は、ユーザにリアルタイムフィードバックを提供するための例示的なディスプレイを示している。この例では、ユーザが、ハンドヘルドデバイス400を動かすことによって空中に文字“W”を描いて、ディスプレイが、リアルタイムで軌道を表示した。
【0040】
図5は、本発明に対するトレーニングモード方法からの例示的なフローダイヤグラム500を示している。この例では、ユーザは、ハンドヘルドデバイスを手に持ちながら、空中で文字“W”を描いた。ステップ502において、ハンドヘルドデバイス内部にある慣性センサーが、“W”の軌道に関連する生のデータを提供する。このデータは、ハンドヘルドデバイス内またはハンドヘルドデバイス外にあってもよいプロセッサにより、ノイズ等を取り除くために前処理され、正規化される。ステップ504において、軌道データは、1組の予め定められた別々の特徴に対応する1組の値に変換される。特徴の組に含まれる別々の特徴のタイプは、プログラム可能であることがあり、変更することができる。例として、組中の別々の特徴のうちの1つは、軌道が方向を変える回数を含むことがある。文字“W”のケースでは、その特徴の値は3であるだろう。この値は、その後、データベース中に記憶される。ステップ506において、コマンドまたはキャラクタが、“W”を表す1組の値に関係付けられる。1つの例では、“W”は、ワールドワイドウェブブラウザを開くまたは閉じるためのコマンドを表すことがある。別の例では、“W”は、単に、キャラクタWを表すことがあり、キャラクタWは、電子メール中またはワードプロセッシング文書中にタイプされ、入力され、または、表示されるものである。1組の値に関係付けられているキャラクタまたはコマンドは、ユーザプログラム可能とすることができる。
【0041】
図6は、本発明にしたがった、ジェスチャーを認識するための例示的なフローダイヤグラム600を示している。この例では、ユーザは、慣性センサーを備えるハンドヘルドデバイスを手に持ちながら、空中で文字“U”を描く。ステップ602において、慣性センサーは、“U”の軌道に関連するデータを提供する。前処理およびフィルタリング後に、ステップ604において、軌道データは、選択されたグループの別々の特徴に対応する1組の値に変換される。ステップ606において、1組の値は、同じグループの別々の特徴に対応する値の組と比較され、一致または最も近い一致が見つけられる。例として、軌道の変化のレートは、“U”(よりゆるやかな変化)と“V”(より急な変化)とを差別化するので、ここでは有用な特徴であることがある。ステップ608において、アプリケーション中で、“U”に関係付けられているコマンドが実行されるか、または、文字“U”が表示される。
【0042】
図7は、本発明のジェスチャー認識エンジン700により使用することができる例示的なコンピュータモジュールを示している。エンジンは、それぞれ、ハンドヘルドデバイスの動きの軌道に関連するデータを取得するため(702)と、軌道データを、選択された別々の特徴に対応する1組の値に変換するため(704)と、変換された組の値を、データ記憶装置中に記憶されている値の組と比較して、一致を見つけるため(706)と、一致に関係付けられているキャラクタを表示するか、または、一致に関係付けられているコマンドを実行するため(708)の、さまざまなモジュールを含んでいる。モジュール702〜708は、ハードウェア中、ソフトウェア中、または、ファームウェア中で実現することができる。モジュール702〜708は、単一のコンピュータ上または複数のコンピュータ上で実現することができる。モジュール702〜708は、プログラム可能であるか、または、ハードワイヤードとすることができる。
【0043】
1つの実施形態では、描かれる軌道が、ハンドヘルドデバイスの座標系中にあってもよい。このケースでは、垂直に描かれる1は、ユーザが立っている場合には、地球に対して垂直であるだろうが、ユーザが横になっている場合には、水平であるかもしれない。軌道は、ハンドヘルドデバイスの座標系に対して常に同じであるだろう。
【0044】
別の実施形態では、描かれる軌道は、地球の座標系中にあってもよく、または、モーションセンサーに取り付けられていない別個のディスプレイの座標系中にあってもよい。このケースでは、垂直に描かれる1は、1として正しく認識されるために、地球に対して常に垂直でなければならない。このケースでは、ジャイロスコープデータが、地球ではなく、デバイスの座標系中にあるので、重力の方向を決定するためと、ジャイロスコープデータを処理するために、加速度計データを使用することができる。センサー融合技術を使用して、リアルタイムでこれを行うことができ、または、ルックアップテーブルを使用して、後処理中でこれを行うことができる。
【0045】
何らかの回転誤差なしに、正しい座標系で確実にジェスチャーを描くようにユーザが期待されることがないケースでは、比較アルゴリズムが、わずかに異なる角度オフセットを使用して複数回動作してもよく、最良の一致が最終的な確率として選ばれる。例えば、軌道は、0、22.5度、−22.5、45、および、−45の回転を持つライブラリ特徴の値の組と比較されてもよい。
【0046】
ユーザまたはデバイスの設計者はまた、さまざまな方法で、認識しきい値を調整してもよい。軌道が、あるしきい値よりも空間において大きいか、または、あるしきい値よりも小さい場合にのみ、軌道は有効であるかもしれない。ジェスチャーの実行時間が、しきい値よりも長いか、または、しきい値よりも短い場合にのみ、軌道は有効であるかもしれない。ジェスチャーのスピードが、しきい値を上回るか、または、しきい値を下回ったままである場合にのみ、軌道は有効であるかもしれない。各個々のジェスチャーは、個別のしきい値を含んでいてもよく、他のジェスチャーと比べてジェスチャーに重み付けする、最終的な確率のスケール係数を含んでいてもよく、アプリケーションの設計者が、2つの類似するジェスチャーから、トリガがより容易であるジェスチャーを選ぶことが可能になる。
【0047】
本発明のある態様にしたがうと、より長いジェスチャーを認識するために、長い軌道をセグメントに解体する技術を使用することができ、各セグメントは、個々の軌道のように扱われる。
図8は、長いジェスチャーを処理するための、本発明の方法に対する例示的なフローダイヤグラムを示している。フローダイヤグラム800にしたがうと、ステップ802において、ハンドヘルドデバイスを振ることによりユーザによって作られた軌道が、セグメントに分割される。例えば、5文字の筆記体の単語は、5個のセグメントに分割することができる。セグメントの数は、予め定められた数を含むことができ、または、軌道全体の複雑さを解析することにより、例えば、軌道全体での方向の変化の数を計算することにより、決定することができる。ステップ804において、何らかの確率しきい値内で、各セグメントがライブラリ中で認識されるかどうか、すなわち、各セグメントがライブラリ中に一致を有しているかどうか、決定がなされ、一致が確実なレベルを示す確率の値が、セグメントに割り当てられる。各個々のセグメントが十分に認識された場合には、ステップ806において、最終的な確率の値、すなわち、軌道全体に対して累積的に計算された確率の値が計算される。さまざまな方法で、例えば、個々の確率値を平均化したり、または、共に乗算したりして、個々の確率値を組み合わせることにより、最終的な確率を計算することができる。ステップ808において、最終的な確率の値が最終的な確率のしきい値を満たしているかどうか、または、最終的な確率の値が最終的な確率のしきい値を超えたかどうか、決定がなされる。
【0048】
ジェスチャーが認識されるためにユーザが超えなければならない最終的な確率のしきい値を決定することは、難しい。その理由は、異なる軌道は、異なるしきい値を必要とすることがあり、異なるユーザは、動きの正確さの程度が異なっていることがあるからである。ジェスチャーが何回かトレーニングされた場合に、確率のしきい値の決定を自動化することができる。例えば、ジェスチャー‘M’が5回トレーニングされた場合に、ライブラリは、M1、M2、M3、M4、および、M5と呼ばれる、ジェスチャー‘M’の5回の繰り返しをそのメモリ中に含んでいる。ユーザは、これらの5回の繰り返しはすべて同じジェスチャーであると考えているので、ライブラリ内で、軌道M1が、M2、M3、M4、および/または、M5として認識される可能性があるべきである。M1対M2、M1対M3、M1対M4等の一致の確率をチェックすることにより、1組の一致の確率を決定することができる。新しい‘M’が認識されるべき推奨される確率は、例えば、平均すること、または、最小の確率を選ぶことのような、何らかの方法で、個々の一致確率をすべて組み合わせることにより、決定することができる。
【0049】
本発明のある態様にしたがうと、ユーザは、間にスペースのある複数のストロークを含むジェスチャーをトレーニングしたいことがある。例えば、中国語、韓国語、または、日本語のキャラクタをジェスチャーとしてトレーニングするときである。このケースでは、どの動きが“ストローク”に対応するのかを決定するためのメカニズムが、適切であるにちがいない。例えば、ハンドヘルドデバイスは、押されているときに、ユーザがストロークを“描いている”ことを示すボタンを含んでいることがある。ボタンが押されていないときには、これは、ユーザがストローク間を移動していることを示す。ユーザの手のジェスチャーがストローク間を移動しているときに、ユーザはカーソルの動きを見ることができ、それにより、次のストロークの始まりの所定の位置が明らかになるメカニズムもまた、適切であることがある。それゆえ、ユーザは、空中での手の動きを使用して、マルチストロークのキャラクタをディスプレイ上に描くことができる。
【0050】
トレーニングの間に、各ストロークをジェスチャーとして記憶することができる。移動の動きは、前のジェスチャーの終わりと新しいジェスチャーの始まりとの間の直線を示す<x,y>ベクトルとして記憶することができる。各ストロークはまた、ストロークの始まりとストロークの終わりの間の直線を示すベクトルを有することもある。動作の間に、マルチストロークキャラクタが一致するためには、すべてのストロークおよび移動ベクトルが一致しなければならない。ユーザがストロークを伝えている間に、最初の数ストロークをデータベースのキャラクタに一致させるように試み、最も可能性のある一致を決定するオートコンプリート特徴をアクティブにすることができる。オートコンプリート提案の数が十分に小さいときには、ユーザは、単に、リストから正しいキャラクタを選択することができる。動作の間に、マルチストロークキャラクタは、正しい順序および正しいストロークの方向を有することがある一方で、ユーザは、トレーニングの間にマルチストロークキャラクタがライブラリ中に記憶された方法と比べて、必ずしも正確な順序または正確な方向で、ストロークを描く必要がないかもしれない。しかしながら、本発明のジェスチャー認識エンジンは、結果のキャラクタがそれでもなお所望のキャラクタに一致すると決定することができる。
【0051】
図9は、ストロークを含むジェスチャーを認識するための本発明の例示的な技術を示している。トレーニングシーケンス910は、ストロークA、B、および、Cを持つ3ストロークのキャラクタに対するシーケンスを含んでいる。トレーニングシーケンス910は、正しいストローク順序とも呼ばれる。正しいストローク順序910は、ベクトルvA(Aの開始からAの終わりまで)と、vAB(ストロークAとストロークBの間の移動)と、vBと、vBCと、vCとを含む。HMM、ニューラルネットワーク、サポートベクターマシン、または、他の類似する技術であることがある所望のマシン学習技術を使用して、すべての3個のストロークおよび5個のベクトルを一致させるだろう。
【0052】
動作の間に、ストロークA、B、および、Cを含む同じキャラクタが、異なる順序または間違った順序で描かれることがある。例えば、B、A、Cという間違った順序でのストローク920によりキャラクタが描かれた場合に、このキャラクタもまた、ライブラリ中の記憶されているキャラクタの変形したバージョンに対して一致することがある。ストロークB、A、および、Cによるキャラクタ、ならびに、ベクトルvB、vBA、vA、vAC、および、vCを比較することにより、一致を取得することができる。シンプルなベクトル計算を使用することにより、新しいベクトルを計算することができる:vAC=vAB+vB+vBC、かつ、vBA=−vB−vAB−vAである。加えて、間違った方向で描かれた1つ以上のストロークによりキャラクタが描かれた場合に、個々のストロークを逆にすることにより、および、記憶されているライブラリに対して結果をテストすることにより、一致を行うことができる。この方法で、サーチを行ってもよく、サーチでは、ライブラリ中に一致が見つかるまでか、または、何ら一致が見つからないまで、ストロークの順序および方向のすべての組み合わせをテストすることができる。
【0053】
本発明のある態様にしたがうと、ジャイロスコープを備える慣性センサーは、ハンドヘルドデバイスに対する拡張された電力管理を提供するために使用される。電力管理は、電力をオフにすること、あるいは、アクティブでないときに、システム、コンポーネント、機能、または、アプリケーションを、より低い電力状態にスイッチすることを指す。バッテリー寿命を伸ばすためと、冷却要件を減少させるためと、ノイズを減少させるためと、エネルギーおよび冷却に対する動作コストを減少させるために、ハンドヘルドデバイスに対する電力管理が望ましい。より低い電力消費は、より低い熱放散も意味し、より低い熱放散は、システム安定性を増加させ、エネルギー使用を減少させ、コストを減少させ、環境への影響を減少させる。
【0054】
図10は、電力管理のために慣性センサーが使用される、本発明の例示的な実施形態にしたがったシステムを示している。ハンドヘルドデバイス1000は、モーション処理ユニット1012に結合されているメインマイクロプロセッサ1008を備える。モーション処理ユニット1012は、慣性センサーモジュール1016に結合されているプロセッサ1014を含み、慣性センサーモジュール1016は、ジャイロスコープや、加速度計や、または、その双方を含むことがある。慣性センサーモジュール1016は、コンパスも含むことがある。プロセッサ1014は、ジャイロおよび加速度計1016を制御し、ジャイロおよび加速度計1016により提供される情報(または、データ)を処理する。プロセッサ1014は、コンパスを制御し、コンパスにより提供される情報を処理するために、コンパスに結合されることもある。プロセッサ1014は、プログラマブルモジュール1018と、メインマイクロプロセッサ1008にも結合されている。プログラマブルモジュール1018は、メインマイクロプロセッサ1018中のソフトウェアモジュールとして含まれることもある。プログラマブルモジュールは、モーション処理ユニット1012に含まれることもある。
【0055】
メインマイクロプロセッサ1008は、主として、ハンドヘルドデバイス1000のコンポーネントの動作の管理を担っている。マイクロプロセッサ1008は、ネットワークブラウザ1002(例えば、インターネットブラウザ)と、ディスプレイ1004と、カメラ1006と、マイクロフォン1010と、キーパッド1020とを含むアプリケーション(または、コンポーネント)に結合されている。メインマイクロプロセッサ1008は、プログラマブルモジュール1018にも結合されている。プログラマブルモジュール1018は、マイクロプロセッサ1008により、キーパッド1020と、ネットワーク1022とに結合されている。キーパッド1020は、ユーザがそこからのプログラミングモジュール1018をプログラムすることができる、スマートフォンに対するキーパッドを含むことがある。ネットワーク1022は、ワイヤードネットワーク、ワイヤレスネットワークまたは光ネットワークや、インターネットや、ローカルエリアネットワーク(LAN)や、あるいは、そこからのプログラミングモジュール1018をプログラムすることができるコンピュータを含むことがある。
【0056】
ディスプレイスクリーン1004は、必須のユーザインターフェースコンポーネントであり、スマートフォンを動作させるために必須である。ディスプレイ1004は、バッテリー電力を最も消費するハンドヘルドデバイス1000のコンポーネントのうちの1つでもある。本発明の態様にしたがうと、モーション処理ユニット1012は、ハンドセット1000のディスプレイ1004への依存を軽減するために使用される。
図10において示されているように、ジャイロスコーププロセッサ1014およびジャイロ1016は、専用の電力区分に配置され、ディスプレイ1004およびメインプロセッサ1008から離れている。大きさの観点からいえば、慣性センサー1016の電力消費は、ディスプレイ1006の電力消費よりもかなり小さい。
【0057】
図11は、本発明の例示的な電力管理方法を示している。フローダイヤグラム1100にしたがうと、ステップ1102において、さまざまな“ウェークアップ”コマンドを認識するようにプログラマブルモジュール1018がプログラムされる。“ウェークアップ”は、ハンドヘルドデバイス1000のコンポーネントを、低電力(すなわち、オフ)モードから、高電力(すなわち、オン)動作モードへとスイッチすることを指す。キーボード1020を使用することにより、ユーザによってプログラマブルモジュール1018をプログラムすることができる。プログラマブルモジュール1022は、ネットワーク1022を通して遠隔にプログラムすることもできる。例えば、インターネットにより、プログラマブルモジュール1022に“ウェークアップ”コマンドをアップロードすることができる。
【0058】
プログラマブルモジュールは、さまざまな手のモーションおよびそれらの対応するコマンドを含むルックアップテーブルを含むことがある。モーションコマンドの例は、電話に出るコマンドを表す、シェークするアクションまたは特別な動きのパターン(すなわち、署名)と、カメラをオンにするコマンドを表す文字“C”の手書きモーションと、電話機のロックを解除する手のジェスチャーと、電話番号を短縮ダイヤルする手のジェスチャーと、他のユーザ特有のショートカットを表す手のモーションとを含むことがある。例えば、電話に出る、電話番号を短縮ダイヤルするといった、あるモーションコマンドに対して、ディスプレイ1004およびタッチパネル1020はオフになったままであることがある。
【0059】
ステップ1104において、ハンドヘルドデバイス1000はスタンバイ(または、スリープモード、低電力モード、または、オフモード)中である。例えば、デバイス1000が、予め定められた期間の時間よりも長い間アイドルでいたために、デバイス1000が、スリープモードに入ることがある。スリープモードは、ハンドヘルドデバイス1000がその電力消費を著しく減少させる低電力モードのことを指すが、プログラミングコードをリセットするようにユーザに要求することなく、または、ハンドヘルドデバイス1000がリブートするのを待つことなく、デバイス1000が、即座に動作を再開する(すなわち、アクティブモードにスイッチバックする)ことが可能になる。スリープモードでは、ネットワークブラウザ1002と、ディスプレイ1004と、カメラ1006と、マイクロフォン1010とがオフにされ、メインマイクロプロセッサ1008は、その最低電力状態に減速される。しかしながら、本発明のある態様にしたがうと、ハンドヘルドデバイス1000がスリープモードであり、何らかのモーションコマンドに対する監視を続けているときに、モーション処理ユニット1012は、動作し続ける(すなわち、アクティブであり続ける)。
【0060】
ステップ1106において、ユーザは、ユーザの所望のコマンドを表すハンドヘルドデバイス1000の動きを生じさせる。動きの軌道は、ジャイロ1016により検出される。本発明の1つの実施形態では、ジャイロ1016は、モーションの軌道を表すデータを発生させ、それをジャイロプロセッサ1014に提供する。ジャイロプロセッサ1014は、モーションの軌道データに対応するコマンドを識別するために、プログラマブルモジュール1018と通信する。ジャイロプロセッサ1014は、メインマイクロプロセッサ1008に、ウェークアップ信号(ステップ1108)と、ユーザのモーションコマンドの識別を提供する。ウェークアップ信号に応答して、メインマイクロプロセッサ1008は、スリープモードからアクティブ(すなわち、高電力)動作モードにスイッチする。
【0061】
本発明の別の実施形態では、ジャイロプロセッサ1014は、メインプロセッサ1008に、ウェークアップ信号と、ユーザのモーションの軌道に関連するデータを提供する。ウェークアップ信号は、メインマイクロプロセッサ1008を、スリープモードからアクティブモードにスイッチさせる(ステップ1108)。ステップ1110において、メインマイクロプロセッサ1008は、ジャイロデータに対応するコマンドを識別するために、プログラマブルモジュール1018と通信する。ステップ1112において、メインマイクロプロセッサ1008は、コマンドを実行するように要求されるアプリケーションをウェークアップさせる(すなわち、アプリケーションをスリープモードからアクティブモードにスイッチさせる)。ステップ1114において、メインマイクロプロセッサ1008および現在アクティブなアプリケーションは、コマンドを実行する。したがって、本発明は、ハンドヘルドデバイスをウェークアップさせるために、ハンドヘルドデバイス上のプッシュ(または、ソフト)ボタンではなく、モーショントリガを使用する。
【0062】
本発明の1つの実施形態では、ユーザのモーションを検出するためにジャイロ1016だけが使用される。ジャイロは、角度の動きを検出する。人間の手の動きの大半は角度があり、一般的に、線形の手の動きでさえ角度の動きを伴っているので、ジャイロ1016は、手のモーションを検出するのによく適している。
図12において示されているように、ジャイロ1016は、ハンドヘルドデバイス1000のX軸、Y軸、およびZ軸の周りの、何らかの回転運動または角運動を検出することができる。したがって、本発明は、ハンドヘルドデバイス1000に対するモーションコマンドをプログラムし、検出し、実行するために、ユーザに、すべての3つの軸(X、Y、およびZ)に沿って360度の自由を提供する。本発明の別の実施形態では、モーション処理ユニット1012中に含まれているジャイロ1016および加速度計の双方により、ユーザのモーションの軌道が検出される。軌道に関係する角度の動きを検出するためにジャイロ1016が使用され、軌道に関係する線形の動きを検出するために加速度計が使用される。この実施形態では、プロセッサ1014は、ジャイロデータと加速度計データの双方を処理することができる。
【0063】
本発明のある態様にしたがうと、ユーザの手の動きを検出するためのユーザインターフェースとして、モーション処理ユニット1012が使用される。本発明の例示的な実施形態では、モーション処理ユニット1012は、メインマイクロプロセッサ1008のサブシステムである。本発明の別の実施形態では、モーション処理ユニット1012は、メインマイクロプロセッサ1008により直接制御される。双方の実施形態において、例えば、ハンドヘルドデバイス1000が、予め定められた量の時間よりも長い間アイドルしたままであったために、アプリケーション1002、1004、1006、1010、1018、および1020がスリープモードに入ったときでさえ、メインマイクロプロセッサ1008およびモーション処理ユニット1012は、アクティブモードであり続ける。
【0064】
したがって、
図11において開示されている実施形態とは異なり、これらの実施形態では、メインマイクロプロセッサ1008は、アクティブモードであり続けるので、アウェークされる必要がない。ハンドヘルドデバイス1000の動きの検出に応答して、メインマイクロプロセッサ1008−MPU1012システムは、以下の機能のうちの少なくとも2つまたはすべてを自動的に実行する:ユーザの認証、動きに関係するコマンドの識別、関連するアプリケーションのウェークアップ(すなわち、スリープからアクティブモードへのスイッチ)、および、現在アウェークしているアプリケーションを使用することによるコマンドの実行である。
【0065】
従来技術では、移動体電話機のようなハンドヘルドデバイスに対して、ハンドヘルドデバイスをスリープからアクティブモードにスイッチさせるために、ユーザは、ハンドヘルドデバイスのキーパッド(または、タッチパネル)上のボタンをプッシュしなければならない。このことは、ユーザが実行を望んでいない機能性がディスプレイの使用を要求しない場合でさえ、ハンドヘルドデバイスの高電力消費ディスプレイをアクティブモードにスイッチさせる。例えば、ユーザがミーティング中であり、彼/彼女のスマート移動体電話機を使用して、ミーティングの一部をオーディオ記録することを望んでいる場合に、従来技術では、オーディオ記録のためにディスプレイが必要なくとも、ユーザは、最初にディスプレイをアウェークして、その後、例えば、オーディオ記録アプリケーションを選択するために、ソフトキーまたはハードキーを押すことによって、オーディオ記録アプリケーションを選択しなければならない。したがって、従来技術は、電力と時間の浪費を生じさせ、ユーザによる複数のアクションを要求する。
【0066】
本発明の実施形態にしたがうと、ユーザは、ミーティングをオーディオ記録したいという彼/彼女の望みを伝えるために、単一の予め定められたジェスチャー、例えば、文字“R”の形での空中軌道を作ることだけが必要である。ハンドヘルドデバイス1000の“R”のモーションに応答して、メインマイクロプロセッサ1008−MPU1012システムは、プログラマブルモジュール1018と自動的に通信して、ユーザがオーディオ記録アプリケーションの起動を望んでいると決定し、例えば、マイクロフォンのようなオーディオ記録アプリケーションコンポーネントをウェークアップするようにオーディオ記録アプリケーションへの関数呼び出しを行い、ミーティングのオーディオ記録を開始する。上のステップのすべては、ユーザによる単一の“R”のジェスチャーに応答して自動的に実行され、ディスプレイ1004のような関連のないアプリケーションをアウェークさせることなく実行される。本発明は、減少した数のステップ、より少ない電力消費、および、所望の機能を実行するための減少した時間の形で、従来技術に対する利点を提供する。
【0067】
図13は、カメラアプリケーションをスリープモードからアクティブモードにスイッチさせる、本発明の例示的な方法を示している。フローダイヤグラム1300にしたがうと、ステップ1302において、ハンドヘルドデバイス1000はスリープモードであり、ユーザは、ユーザが写真を撮りたいと思う物体を見かける。ステップ1304において、ユーザは、ハンドヘルドデバイス1000を手に持ちながら、空中で“C”の手のジェスチャーを行う。ユーザは、彼/彼女の手首を回転させることにより、“C”のジェスチャーを行うことができる。ジャイロ1016は、“C”のジェスチャーを検出し、ジャイロプロセッサ1014に軌道データを提供する。1つの実施形態では、ジャイロプロセッサ1014は、メインマイクロプロセッサ1008をウェークアップさせる。別の実施形態では、メインマイクロプロセッサ1008は、デバイス1000がスリープモードであるときに、アクティブモードであり続け、ジャイロプロセッサ1014を直接制御するように構成されている。メインマイクロプロセッサ1008は、プログラマブルモジュール1018と通信し、“カメラをオンにする”ことを含む“C”のジェスチャーに対応するコマンドを識別する。
【0068】
ステップ1306において、メインマイクロプロセッサ1008は、カメラアプリケーション1006をスリープからアクティブモードにスイッチさせる。メインプロセッサ1008は、プログラミングモジュール1018中に含まれるモーションコマンドに依存して、ディスプレイ1004をスリープからアクティブモードにスイッチさせることもできる。ネットワークブラウザ1002およびマイクロフォン1010は、スリープモードであり続ける。ディスプレイ1004がオンにされない場合に、ユーザは、カメラのビューファインダーを使用することによって物体を見ることができ、クリックボタンを使用して、写真を撮影することができる。カメラ1006とディスプレイ1004の双方がオンにされている場合に、ユーザは、ディスプレイ1004上で物体を見ることができ、クリックボタンを使用することにより、写真を撮ることができる。本発明は、プッシュボタンを要求することなく、特に、デバイスおよびアプリケーションをウェークアップさせるためのトリガとしてハンドヘルドデバイスの動きを使用することにより、ハンドヘルドデバイス内部のデバイスおよびアプリケーションをウェークアップさせる能力を提供する。
【0069】
図14は、ハンドヘルドデバイスがアクティブモードからスリープモードにスイッチし、そして、アクティブモードに戻る、本発明の例示的な方法を示している。フローダイヤグラム1400にしたがうと、ステップ1402において、スマートフォン1000のメインマイクロプロセッサ1008およびジャイロプロセッサ1014は、アクティブモードである。ステップ1404において、ユーザは、テーブルトップ上に電話機1000を下向きに置く、すなわち、電話機1000のディスプレイスクリーン1004とキーパッド1020は下向きである。ステップ1406において、モーション処理ユニット1012は、電話機1000の向きが下を向いていることを検出する。ステップ1408において、電話機1000の下向きの向きに基づいて、プロセッサ1014と、メインマイクロプロセッサ1008と、プログラマブルモジュール1018は、マイクロフォン(または、スピーカー)1010をオフにさせ、電話機をミュートモードに設定させる。
【0070】
ステップ1410において、ユーザは、ユーザが到来電話機コールに出たいことを示すために、例えば、電話機上のどこかを2回タッピングすることにより、電話機1000の動きを生じさせる。タッピングに起因する電話機1000の小さな角度の動きは、ジャイロ1016により検出される。応答して、ステップ1412において、ジャイロ1016と、ジャイロプロセッサ1014と、メインマイクロプロセッサ1008と、プログラマブルモジュール1018は、電話機1000を非ミュートのアクティブモードに戻させ、マイクロフォン1010をオンにさせる。
【0071】
本発明のある態様にしたがうと、ユーザ認証を実行するために他のセンサーとの組み合わせで慣性センサーが使用される。
図15は、慣性センサーと非慣性センサーとを含む本発明の例示的なハンドヘルドデバイスを示している。ハンドヘルドデバイス1500は、3つのタイプの慣性センサーを備える:ジャイロスコープ(1502)と、加速度計(1504)と、コンパス(1506)である。他の実施形態では、ハンドヘルドデバイスは、ジャイロスコープ(1502)のみか、あるいは、ジャイロスコープ(1502)および加速度計(1504)のいずれかを含むことがある。ハンドヘルドデバイス1500は、カメラ1510、RFセンサー1512、および、マイクロフォン1514を含む他のセンサーも備えている。他の実施形態では、ハンドヘルドデバイス1500は、これらの非慣性センサー1510、1512、または、1514のうちの1つあるいは2つだけを含むことがある。処理モジュール1508は、マイクロプロセッサとメモリを含むことがあり、センサー1502、1504、1506、1510、1512、および、1514により提供される情報を処理するために使用される。
【0072】
本発明のある実施形態では、1つ以上のジャイロスコープ、加速度計、および/または、コンパスを含む慣性センサーと、メモリと、慣性センサーを制御するマイクロプロセッサが、基板上に位置している。基板は、慣性センサーによるモーション検出に応答して、ハンドヘルドデバイスに対するアプリケーションプロセッサをトリガする割り込みモジュールを含むこともある。
【0073】
図16は、ジャイロスコープにより提供されるデータを、他の慣性センサーにより提供されるデータと組み合わせるための例示的な方法を示している。フローダイヤグラム1600は、サブフローダイヤグラム1610、1620、および、1630を含む。フローダイヤグラム1610にしたがうと、ハンドヘルドデバイス1500に対する軌道情報は、ジャイロスコープ1502を含むハンドヘルドデバイス1500の基準系において、ジャイロスコープから取得することができる(ステップ1612)。このケースでは、他のセンサーを使用することなく、ピッチおよびヨーのジャイロスコープ1502を個別に積分するので十分であることがあるが、ジャイロスコープ1502を較正するために他のセンサーもなお使用することができる(ステップ1614)。
【0074】
フローダイヤグラム1620にしたがうと、地球の基準系において、ジャイロスコープ1502から軌道情報を取得することができる(ステップ1622)。このケースでは、地球に対するハンドヘルドデバイス1500の傾きを決定し(ステップ1624)、ヨーが地球に対して水平であり、ピッチが地球に対して垂直である軌道を形成する(ステップ1626)ために、ジャイロスコープ1502に加えて加速度計1504を使用することができる。
【0075】
フローダイヤグラム1630にしたがうと、傾き補償のために加速度計1504を使用することなく、ハンドヘルドデバイス1500の基準系において、ジャイロスコープ1502から軌道情報を取得することができる(ステップ1632)。しかしながら、第3のジャイロ軸を使用して、ローリングする手首のモーションを検出することができ(1634)、軌道の間のこのローリングモーションに起因する何らかの歪みに対して軌道を補償することができる。磁力計1506は、地球の磁界を測定するために使用することもでき、何らかのジャイロスコープ1502ドリフトを補償するために使用することができる(ステップ1640)固定された測定の向きを提供する(ステップ1638)。
【0076】
図17は、角度の動きを線形の動きに相関させる、本発明の例示的な方法を示している。フローダイヤグラム1700にしたがうと、ステップ1702において、ユーザは、ハンドヘルドデバイス1500の動きを生じさせる。人間の体の動きは主として角度があるので、ジャイロスコープベースのモーション追跡によく適している一方で、ユーザは、多くの線形モーションを含む軌道を実行してもよく、多くの線形モーションは、そのどちらも主として線形的である、黒板に書くことや、または、鉛筆で紙に書くことのような、線形の筆記での彼らの習慣または経験に起因するものである。
【0077】
ステップ1704において、ハンドヘルドデバイス1500の角度の動きに関連する情報を取得するために、ジャイロ1502が使用される。ステップ1706において、ハンドヘルドデバイス1500の線形の動きに関連する情報を取得するために、加速度計1504が使用される。加速度計1504とジャイロスコープ1502の間のセンサー融合後に、ポジションの変化を決定するために、線形加速度を抽出して、二重積分することがある。しかしながら、センサーにおける不正確さのせいで、二重積分は安定しないことがあり、線形の動きについての正確な情報につながらないかもしれない。角度の動きは、たとえそれが小さい場合でも、角度の動きは二重積分を必要としないという事実に起因して、動きの方向と質を決定するために使用することができる。角度の動きを線形の動きに相関させることにより、角度の動きの間に発生する線形の動きが非常に小さい場合でさえも使用可能である、最終的な軌道を計算することができる(ステップ1708)。
【0078】
図15に戻ると、本発明のある態様にしたがって、軌道形成を増大させるために、モーションセンサーとしてカメラ1510を使用することができる。カメラ1510ベースのモーション追跡は、相互相関、特徴追跡、オプティカルフロー、および、顔追跡のような、既存の技術を使用することができる。これらの技術は、軌道形成のために使用することができるピクセルの動きの情報を提供することができる。カメラ1510ベースの追跡は、通常、それ自体だけでは信頼できないが、安定したモーション追跡を提供するために、加速度計1504およびジャイロスコープ1502と組み合わせて使用することができる。ジャイロスコープ1502を使用して、角度の動きに相関させるピクセルの動きの量を抽出することにより、線形の動きに相関させるものとして、残りのピクセルの動きを識別することができる。
【0079】
より正確な線形の軌道を提供するために、短い線形距離に対しては加速度計1504データを使用し、長い線形距離に対してはカメラ1510ピクセル追跡を使用する、センサー融合アルゴリズムを使用することができる。カメラ1510追跡は、ドリフトを減少させることにより、回転の動きを安定させるのを助けることができる。ジャイロスコープ1502および加速度計1504は、短い期間の時間に対してより正確な動きの情報を提供し、カメラ1510の視野内の、光の変化または動いている物体からの妨害を排除するのを助ける。
【0080】
本発明のある態様にしたがうと、RF(無線周波数)ネットワーク、据え置き型のコンピュータシステム、または、別の類似するデバイスのような、何らかの外部基準1516に対する、RF信号の大きさと、いくつかのケースでは、RF信号の方向とを追跡することによるモーション追跡に対して、ハンドヘルドデバイス1500内のRFセンサー1512も使用してもよい。RF信号は、ブルートゥース(登録商標)、WiFi(登録商標)、GPS、赤外線、または、他の何らかのRF信号を含むことがある。何らかの外部基準系に対して、固定された基準を提供することにより、他のモーションセンサーを補完するために、信号追跡を使用することがある。ハンドヘルドデバイス1500によりRF信号を送出することができ、または、ハンドヘルドデバイス1500によりRF信号を受信することができ、あるいは、その双方である。
【0081】
1つの実施形態では、例えば、ユーザの顔がタッチスクリーンに近い場合に、モーションセンサーを補完し、決定のために使用される近接センサーとしての役割も果たすために、同じ赤外線RF信号を使用することがある。別の実施形態では、各目的のために別個の赤外線信号を使用することができる。TVの制御、コンピュータの制御、メディアセンターの制御、または、ホームオートメーションシステムの制御のような、他の送信目的のために、RF信号を使用することもできる。専用のアンテナにより、または、地球の磁界の測定も担当する磁力計により、RF信号をピックアップすることができる。
【0082】
本発明のある態様にしたがうと、モーション追跡センサーからの情報は、コンテキストを決定する他のセンサーからの情報と組み合わせられる。コマンドを実行すべきかどうか、コマンドの結果の性質、または、利用可能な1組のコマンドを決定するために、コンテキストが使用される。このようなコンテキスト測定センサーは、グローバルポジショニングシステム(GPS)、RFネットワーク内のデバイスの位置を決定するRFセンサー、タッチスクリーン、温度センサー、近接センサー、または、マイクロフォンのような、位置センサーを含むことがある。
【0083】
図18は、ユーザ認証のためにマイクロフォンおよび慣性センサーが使用される、本発明の例示的な方法を示している。フローダイヤグラム1800にしたがうと、ステップ1802において、ユーザは、マイクロフォン1514を備えるハンドヘルドデバイス1500を使用して、空中署名を行う。ステップ1804において、ユーザのモーションを解析するために、1つ以上の慣性センサー1502、1504、および、1506が使用される。ステップ1806において、モーションジェスチャーの前の時間、モーションジェスチャーの間の時間、または、モーションジェスチャーの後の時間を含む、予め定められた時間あるいは予めプログラムされた時間において、あるサウンドまたは話された単語がマイクロフォン1514により検出されたかどうか決定がなされる。
【0084】
サウンドは、例えば、ハンドヘルドデバイス1500をスクラッチするか、または、タッピングするかのいずれかによる、デバイスとの接触を通して生じたサウンドを含むことがある。スクラッチモーションは、見て真似るのが非常に難しく、認証手順をより安全にするだろう。タッピングあるいはスクラッチは、コマンドとして、または、認証の一部として使用することができる。タッピングあるいはスクラッチは、加速度計1504、ジャイロスコープ1502、磁力計1506、および、マイクロフォン(1514)により提供される情報の組み合わせにより、検出することができる。タッピングまたはスクラッチに応答して、加速度計1504、ジャイロスコープ1502、および、磁力計1506により検出されたモーション信号は、マイクロフォン1514により検出されたオーディオ信号と組み合わせることができる。これは、無意識のタッピング、例えば、手を切り替えることにより行われる無意識のタッピングを排除するのを助けることができる。これはまた、指の腹によるタッピングと、爪によるタッピングとを区別することを可能にする。ステップ1808において、ユーザの署名が、ライブラリ中の署名に一致し、マイクロフォンにより検出されたサウンドが、予め定められたサウンドまたは予めプログラムされたサウンドに一致する場合に、ユーザが認証に成功したとみなされる。したがって、ユーザ認証のために、モーションセンサーとマイクロフォンの双方が使用される。
【0085】
図10および
図15において示されているモーション処理デバイスおよびセンサーにより捕捉することができるモーション軌道は、生体の特色であり、個人のアイデンティティを認証するのに使用することができる。
図19の方法により示されているように、ハンドセット1000、1500に対するモーションベースのアイデンティティ認証の応用が、スクリーンのロック解除である。従来のスマートフォンにおけるスクリーンのロック解除の標準的な設計では、スクリーンのロックを解除するために、ユーザは、4個の数字または文字のパスワードを入力するか、あるいは、ユーザ規定の線のパターンを入力することができる。このようなタッチパネルベースのスクリーンロックの欠点は、詐欺師が、ユーザの指紋よごれに基づいて、パスワードを推量できるということである。電話機のロックを解除するためのモーションコマンドを使用することにより、さらに高いレベルの安全性をユーザに提供する。
【0086】
フローダイヤグラム1900にしたがうと、ステップ1902において、ハンドセット1000、1500のスクリーン(例えば、
図10の1004)は、ロックされている。ステップ1904において、ユーザは、ハンドセット1000、1500を使用することにより、空中署名を実行する。ステップ1906において、ハンドセット1000、1500は、ユーザ署名が本物であることを検証する。ステップ1908において、ハンドセット1000、1500は、スクリーンのロックを解除する。モーションベースの
アイデンティティ認証は、幅広い範囲の応用を有している。これは、オンライン購入の間のスマートフォン上での煩わしいパスワードタイピングに容易に取って代わることができる。キオスクまたはスーパーマーケットでのレジの順番を待つ列において、ハンドセットは、捕捉した空中署名を、ブルートゥースまたは他のワイヤレス通信手段を通して、キャッシュレジスターに送ることができる。
【0087】
さらに、スマートフォンは、モーションベースのアイデンティティ認証を実現できるプラットフォームというだけではない。慣性センサーおよびプロセッサを含むモーション処理ユニット(例えば、
図10の1012)は、時計、キーチェーン、バッジ、または、ペンのような、身につけられる装飾品の中に配置することができるように、物理的に非常に小さく、低電力を消費する。モーション処理ユニットを持つバッジは、署名パターンとともにID(識別子)を送信する。これは、何者かがバッジを盗んで、無許可のエントリーを行うというリスクを防ぐ。生体の特性は、アクセス制御ポイントにおける安全性保護の追加のレイヤを提供する。生体認証方法は、家庭用、オフィス用、および、車用のアクセス制御や、TV番組の親によるコントロール用のアクセス制御や、あるいは、例えば、その所有者を認識するおもちゃにおけるもののような、娯楽目的のアクセス制御に適用することができる。
【0088】
本発明のある態様にしたがうと、モーションコマンドを、常に数字やアルファベットのシンボルに関係付ける必要はない。モーションコマンドは、何らかの予め規定されたモーションパターンを含むことがある。例えば、ビデオゲームコンソールは、強力な攻撃を起動させるための特別な剣振りシーケンスを規定することができ、あるいは、オーケストラのゲームにおいて、指揮者が3ビートまたは4ビートのパターンを振るかどうかを決定することができる。モーションコマンドは、娯楽目的と教育目的の双方に対して使用することができる。例えば、ゴルフの生徒は、手のグリップが正しい方法でターンしているかどうかをチェックするために、モーション処理デバイスを手に持ち、スイングを練習することができる。また、テレビ(TV)のリモコンを使用することにより、ユーザは、空中で“C”を書いて、チャンネルをCNN(登録商標)に変えたり、または、“E”を書いて、チャンネルをESPN(登録商標)に変えることができる。
【0089】
例示的なネットワーク環境および分散型環境
ここで説明したポインティングベースサービスおよび関連する実施形態に対する方法ならびにデバイスのさまざまな実施形態は、何らかのコンピュータにあるいは他のクライアントまたはサーバデバイスに関連して実現することができ、何らかのコンピュータあるいは他のクライアントまたはサーバデバイスは、コンピュータネットワークの一部として、または、分散型コンピューティング環境中で、展開することができ、何らかの種類のデータ記憶装置に接続することができることを当業者は正しく認識することができる。この点で、ここで説明したさまざまな実施形態は、任意の数のメモリまたは記憶装置ユニットを有する何らかのコンピュータシステムまたは環境で実現することができ、任意の数のアプリケーションおよびプロセスが、任意の数の記憶装置ユニットにわたって発生する。このことは、これらに限定されないが、遠隔記憶装置またはローカル記憶装置を有する、ネットワーク環境中あるいは分散型コンピューティング環境中に展開されているサーバコンピュータおよびクライアントコンピュータを持つ環境を含む。
【0090】
図2は、例示的なネットワークコンピューティング環境または分散型コンピューティング環境の限定的でない概略図を提供する。分散型コンピューティング環境は、コンピューティングオブジェクト210、212等と、コンピューティングオブジェクトまたはデバイス220、222、224、226、228等とを含み、これらは、アプリケーション230、232、234、236、238により表されるプログラム、方法、データ記憶装置、プログラマブル論理等を含んでもよい。オブジェクト210、212等と、コンピューティングオブジェクトまたはデバイス220、222、224、226、228等とは、遠隔制御装置、PDA、オーディオ/ビデオデバイス、移動体電話機、MP3プレーヤー、ラップトップ等のような、異なるデバイスを含んでもよいことを正しく認識することができる。
【0091】
各オブジェクト210、212等ならびにコンピューティングオブジェクトまたはデバイス220、222、224、226、228等は、通信ネットワーク240により、直接的にまたは間接的にのいずれかで、1つ以上の他のオブジェクト210、212等ならびにコンピューティングオブジェクトまたはデバイス220、222、224、226、228等と通信することができる。
図2では、単一のエレメントとして示されているが、ネットワーク240は、
図2のシステムにサービスを提供する他のコンピューティングオブジェクトおよびコンピューティングデバイスを含んでいてもよく、ならびに/あるいは、示されていない複数の相互に接続されたネットワークを表してもよい。各オブジェクト210、212等または220、222、224、226、228等は、API、または、他のオブジェクト、ソフトウェア、ファームウェア、ならびに/あるいは、ハードウェアを利用してもよい、さまざまな実施形態にしたがって提供されているような遅延相互作用モデルと通信するまたはこうした遅延相互作用モデルを実現するのに適した、アプリケーション230、232、234、236、238のような、アプリケーションも含むことができる。
【0092】
分散型コンピューティング環境をサポートする、さまざまなシステム、コンポーネント、および、ネットワークコンフィギュレーションがある。例えば、コンピューティングシステムは、ワイヤードシステムあるいはワイヤレスシステムにより、ローカルネットワークまたは広い分散型ネットワークにより、互いに接続することができる。現在、多くのネットワークがインターネットに接続され、インターネットは、広い分散型コンピューティングのためのインフラストラクチャを提供し、多くの異なるネットワークを含んでいるが、さまざまな実施形態で説明したような技術に付帯的な例示的な通信のために、何らかのネットワークインフラストラクチャを使用することができる。
【0093】
したがって、クライアント/サーバアーキテクチャ、ピア・ツー・ピアアーキテクチャ、または、ハイブリッドアーキテクチャのような、ネットワークトポロジーならびにネットワークインフラストラクチャの、ホストを利用することができる。クライアント/サーバアーキテクチャ、特に、ネットワークシステムでは、クライアントは、通常、例えば、サーバのような別のコンピュータにより提供される共有ネットワークリソースにアクセスするコンピュータである。
図2の例示では、限定的でない例として、コンピュータ220、222、224、226、228等は、クライアントとして考えることができ、コンピュータ210、212等は、サーバとして考えることができ、ここで、サーバ210、212等は、クライアントコンピュータ220、222、224、226、228等からのデータの受信、データの記憶、データの処理、クライアントコンピュータ220、222、224、226、228等へのデータの送信のような、データサービスを提供するが、いずれのコンピュータも、状況に依存して、クライアント、サーバ、または、その双方として考えることができる。これらのコンピューティングデバイスのうちのいずれかは、データを処理してもよく、もしくは、遅延相互作用モデルに、および、1つ以上の実施形態に対してここで説明した関連技術に、関わることがあるサービスあるいはタスクを要求してもよい。
【0094】
典型的に、サーバは、インターネットまたはワイヤレスネットワークインフラストラクチャのような、遠隔ネットワークまたはローカルネットワークを通して、アクセス可能な遠隔コンピュータシステムである。クライアントプロセスは、第1のコンピュータシステム中でアクティブであってもよく、サーバプロセスは、第2のコンピュータシステム中でアクティブであってもよく、通信媒体を通して互いに通信し、したがって、分散された機能性を提供し、複数のクライアントが、サーバの情報収集能力を活用することができる。方向ベースのサービスにしたがって利用される何らかのソフトウェアオブジェクトは、単独で提供することができ、あるいは、複数のコンピューティングデバイスまたはオブジェクトにわたって分散することができる。
【0095】
例えば、通信ネットワーク/バス240がインターネットであるネットワーク環境では、サーバ210、212等は、ハイパーテキスト転送プロトコル(HTTP)のような、多数の既知のプロトコルのうちのいずれかを介して、クライアント220、222、224、226、228等が通信するウェブサーバとすることができる。サーバ210、212等は、分散型コンピューティング環境の特性であるように、クライアント220、222、224、226、228等としての役割も果たす。
【0096】
例示的なコンピューティングデバイス
述べたように、ここで説明したさまざまな実施形態は、何らかのデバイスに適用し、ここで、ポインティングベースサービスと、対象のポイントとの遅延相互作用とを実行することが望ましいことがある。それゆえ、ハンドヘルドデバイス、ポータブルデバイス、および、他のコンピューティングデバイスと、すべての種類のコンピューティングオブジェクトとは、ここで説明したさまざまな実施形態に関連する使用に対して、すなわち、デバイスがポインティングベースサービスを要求することができるどこでも、考えられることを理解すべきである。したがって、
図3において以下で説明する汎用遠隔コンピュータは一例に過ぎず、ネットワーク/バスの相互運用性および相互作用を有する何らかのクライアントにより、主題的な開示の実施形態が実現されてもよい。
【0097】
要求されていないが、デバイスまたはオブジェクトに対するサービスの開発者による使用のために、オペレーティングシステムを介して、実施形態のうちのいずれかを部分的に実現することができ、ならびに/あるいは、動作可能なコンポーネントに関連して動作するアプリケーションソフトウェア内に含めることができる。クライアントワークステーション、サーバ、または、他のデバイスのような、1つ以上のコンピュータにより実行される、プログラムモジュールのような、コンピュータ実行可能な命令の一般的な文脈で、ソフトウェアが説明されてもよい。さまざまなコンピュータシステムコンフィギュレーションおよびプロトコルにより、ネットワーク対話を実施してもよいことを当業者は正しく認識するだろう。
【0098】
したがって、
図3は、実施形態のうちの1つ以上を実現してもよい適切なコンピューティングシステム環境300の例を示しているが、上で明確にしたように、コンピューティングシステム環境300は、適切なコンピューティング環境の一例に過ぎず、実施形態のうちのいずれかの使用または機能性の範囲に関して、何らかの限定を示唆することを意図していない。例示的な動作環境300で示されているコンポーネントのうちの何らかの1つまたは組み合わせに関連する何らかの依存性あるいは要件を有するものとして、コンピューティング環境300を解釈すべきでもない。
【0099】
図3を参照すると、ここでの1つ以上の実施形態を実現するための例示的な遠隔デバイスは、ハンドヘルドコンピュータ310の形で、汎用コンピューティングデバイスを含むことがある。ハンドヘルドコンピュータ310のコンポーネントは、これらに限定されないが、処理ユニット320と、システムメモリ330と、システムメモリを含むさまざまなシステムコンポーネントを処理ユニット320に結合するシステムバス321とを含んでもよい。
【0100】
コンピュータ310は、典型的に、さまざまなコンピュータ読取可能媒体を含み、コンピュータ310によりアクセスできる何らかの利用可能な媒体とすることができる。システムメモリ330は、リードオンリーメモリ(ROM)および/またはランダムアクセスメモリ(RAM)のような、揮発性メモリならびに/あるいは不揮発性メモリの形で、コンピュータ記憶媒体を含んでもよい。例として、これらに限定されないが、メモリ330は、オペレーティングシステム、アプリケーションプログラム、他のプログラムモジュール、および、プログラムデータも含んでもよい。
【0101】
ユーザは、入力デバイス340を通してコンピュータ310にコマンドおよび情報を入力してもよい。モニタまたは他のタイプのディスプレイデバイスも、出力インターフェース350のようなインターフェースを介して、システムバス321に接続される。コンピュータは、モニタに加えて、スピーカーおよびプリンタのような、他の周辺出力デバイスも含んでもよく、これらは、出力インターフェース350を通して接続されてもよい。
【0102】
コンピュータ310は、遠隔コンピュータ370のような、1つ以上の他の遠隔コンピュータに対する論理結合を使用して、ネットワーク環境または分散型環境で動作してもよい。遠隔コンピュータ370は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスまたは他の共通ネットワークノード、あるいは、他の何らかの遠隔媒体消費または送信デバイスであってもよく、コンピュータ310に対して上で説明したエレメントのうちのいずれかまたはすべてを含んでもよい。
図3において表されている論理結合は、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)のような、ネットワーク371を含むが、他のネットワーク/バスも含んでもよい。このようなネットワーキング環境は、家庭全体、オフィス全体、企業全体のコンピュータネットワーク、イントラネット、および、インターネットでは、珍しくない。
【0103】
上で述べたように、さまざまなコンピューティングデバイス、ネットワーク、および、アドバタイジングアーキテクチャに関連して、例示的な実施形態を説明してきたが、根底にある概念は、周囲の対象ポイントについての情報を取り出すことが望ましい、任意のネットワークシステムならびに任意のコンピューティングデバイスまたはシステムに適用されてもよい。
【0104】
例えば、アプリケーションおよびサービスが、ポインティングベースサービスを使用することを可能にする、適切なAPI、ツールキット、ドライバコード、オペレーティングシステム、制御、単独でのまたはダウンロード可能なソフトウェアオブジェクト等、ここで説明した実施形態のうちの1つ以上を実現する複数の方法がある。API(または、他のソフトウェアオブジェクト)の観点からばかりでなく、説明した実施形態のうちの1つ以上にしたがってポインティングプラットフォームサービスを提供するソフトウェアまたはハードウェアオブジェクトから、実施形態が考えられもてよい。ここで説明したさまざまなインプリメンテーションおよび実施形態は、ハードウェアにおいて全体的に、ハードウェアにおいて部分的に、および、ソフトウェアにおいて部分的に、さらに、ソフトウェアにおいても、存在する態様を有していてもよい。
【0105】
例として、事例として、あるいは、例示としての役割を果たすことを意味するために、“例示的な”という文言がここで使用された。誤解を避けるために、ここで開示した主題事項は、このような例により限定されない。“例示的な”ものとして、ここで説明したいずれの態様または設計は、他の態様または設計と比較して、必ずしも好ましいものとして、または、利益のあるものとして解釈されるものではなく、当業者に知られている均等な例示的構造および技術を排除することを意味しない。さらに、“備える”、“有する”、“含む”という用語、および、他の類似する文言が、詳細な説明または特許請求の範囲のいずれかで使用される限り、誤解を避けるために、このような用語は、何らかの追加のエレメントまたは他のエレメントを排除することなく、制限のない移行語として“具備する”という用語に類似した方法で包含的であることが意図されている。
【0106】
述べたように、ここで開示したさまざまな技術は、ハードウェアに、ソフトウェアに、または、適切な場合には、その双方に関連して実現されてもよい。ここで使用されているような、“コンポーネント”、“システム”という文言、および、これらに類するものは、同様に、コンピュータ関連エンティティを指すことを意図しており、コンピュータ関連エンティティは、ハードウェア、ハードウェアとソフトウェアとを組み合わせたもの、ソフトウェア、または実行中のソフトウェアのいずれかである。例えば、コンポーネントは、これらに限定されないが、プロセッサ上で実行しているプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および/または、コンピュータであってもよい。例示として、コンピュータ上で実行しているアプリケーションおよびコンピュータの双方ともコンポーネントであることがある。1つ以上のコンポーネントは、実行のプロセスおよび/またはスレッド内に存在してもよく、コンポーネントは、1つのコンピュータ上に局所化されていてもよく、ならびに/あるいは、2つ以上のコンピュータ間に分散されていてもよい。
【0107】
いくつかのコンポーネント間の対話に関して、先述のシステムを説明してきた。このようなシステムおよびコンポーネントは、このようなコンポーネントまたは特定のサブコンポーネント、特定のコンポーネントまたはサブコンポーネントのうちのいくつか、ならびに/あるいは、追加のコンポーネントを含むことがあり、先述のもののさまざまな置換および組み合わせにしたがうことができることを正しく認識することができる。サブコンポーネントは、ペアレントコンポーネント内に含まれる(階層型)のではなく、他のコンポーネントに通信可能に結合されるコンポーネントとして実現することもできる。さらに、1つ以上のコンポーネントは、組み合わせて、集合的な機能性を提供する単一のコンポーネントにしてもよく、または、いくつかの別個のサブコンポーネントに分割してもよく、統合された機能性を提供するためにこのようなサブコンポーネントに通信可能に結合するために、管理レイヤのような、何らかの1つ以上の中間レイヤが提供されてもよいことに留意すべきである。ここで説明した何らかのコンポーネントはまた、ここで特に説明していないが、当業者により一般的に知られている1つ以上の他のコンポーネントと対話してもよい。
【0108】
上で説明した例示的なシステムを考慮すると、開示した主題的事項にしたがって実現されてもよい方法は、さまざまな図のフローチャートを参照して、より正しく認識されるだろう。説明を簡単にする目的のために、一連のブロックとして方法が示され、説明されているが、いくつかのブロックは、ここで表され、説明されているものとは異なる順序で、および/または、他のブロックと同時に、発生することがあるので、クレームされている主題事項は、ブロックの順序によって限定されないことを理解し、正しく認識すべきである。シーケンシャルでない、または、分岐しているフローが、フローチャートにより示されている場合に、同じ結果または類似する結果を達成する、さまざまな他の分岐、フローパス、および、ブロックの順序が、実現されてもよいことを正しく認識することができる。さらに、以下で説明する方法を実現するために、示されているすべてのブロックが必要とされるわけではない。
【0109】
さまざまな図の好ましい実施形態に関連して、さまざまな実施形態を説明してきたが、他の類似する実施形態を使用してもよく、そこから逸脱することなく同じ機能を実行するために、説明した実施形態に対する改良または追加を行ってもよいことを理解すべきである。さらに、上で説明した実施形態のうちの1つ以上の態様は、複数の処理チップまたはデバイスにわたって実現されてもよく、記憶装置も、同様に、複数のデバイスにわたって生じさせてもよい。それゆえ、本発明を何らかの単一の実施形態に限定すべきではなく、添付の特許請求の範囲にしたがった広さおよび範囲で解釈すべきである。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ハンドヘルドデバイスにおいて、
ジャイロスコープと加速度計を含む慣性センサーと、
前記ハンドヘルドデバイスに結合されているプロセッサとを具備し、
前記センサーは、前記ハンドヘルドデバイスの動きの軌道に関連するデータを提供するためのものであり、
前記プロセッサは、前記軌道データを受け取って、前記軌道データを、複数の別々の特徴に対応する1組の値に変換するためのものであり、
前記プロセッサは、前記1組の値をデータベース中に記憶させるためのものであり、
前記プロセッサは、キャラクタまたはコマンドを前記1組の値に関係付けるためのものであり、
前記軌道データは、前記ハンドヘルドデバイスの回転の軌道に関連するデータを含み、
前記プロセッサは、複数のセンサーから受け取ったデータを融合するためのアルゴリズムを実行することにより、前記軌道データを1組の値に変換するためのものであるハンドヘルドデバイス。
[C2]
コンパスをさらに具備するC1記載のハンドヘルドデバイス。
[C3]
前記複数の別々の特徴に対応する複数の組の値に関係付けられているキャラクタまたはコマンドを前記データベースに格納することをさらに含むC1記載のハンドヘルドデバイス。
[C4]
前記動きの軌道をディスプレイ上にリアルタイムで表示するための前記ディスプレイをさらに具備するC1記載のハンドヘルドデバイス。
[C5]
前記プロセッサは遠隔に位置し、前記プロセッサは、クラウドコンピューティング技術を使用することによりネットワークを通して前記ハンドヘルドデバイスと通信するためのものであるC1記載のハンドヘルドデバイス。
[C6]
前記複数の別々の特徴のうちの別々の特徴は、(i)ある時点における前記軌道の角度と、(ii)ヨーにおける変化でピッチにおける変化を除算した逆タンジェントと、(iii)前記ピッチ成分と、(iv)前記ヨー成分と、(v)前記軌道の変化のレートと、(vi)交差するポイントの位置と、(vii)前記軌道内で前記軌道が方向を変える回数とからなるグループから選択されるC1記載のハンドヘルドデバイス。
[C7]
前記ハンドヘルドデバイスの動きの軌道に関連するデータを提供するための慣性センサーと、
前記軌道データを受け取って、前記軌道データを、複数の別々の特徴に対応する1組の値に変換するための前記プロセッサと、
前記変換された組の値を、前記データベース中に記憶されている前記複数の別々の特徴に対応する値の組と比較するための前記プロセッサと、
前記データベースから1組の値を選択するための前記プロセッサと、
前記選択された組の値に関係付けられたキャラクタを表示するか、または、前記選択された組の値に関係付けられたコマンドを実行するための前記プロセッサとをさらに具備するC3記載のハンドヘルドデバイス。
[C8]
アルファベットからの文字と、ローマ数字と、ユーザの署名と、認証信号とからなるグループから、前記キャラクタを選択することができるC7記載のハンドヘルドデバイス。
[C9]
前記コマンドは、前記ハンドヘルドデバイスのアプリケーションプログラムあるいはオペレーティングシステムにおける、モード変更またはイベントをトリガすることができるC7記載のハンドヘルドデバイス。
[C10]
前記コマンドは、ビデオゲームにおける、モード変更またはイベントをトリガすることができるC7記載のハンドヘルドデバイス。
[C11]
前記コマンドは、アプリケーションプログラムを開くまたは閉じることができ、オペレーティングシステム内で動作している1組のアプリケーションを制御することができるC7記載のハンドヘルドデバイス。
[C12]
前記プロセッサは、ルックアップテーブルと、隠れマルコフモデル(HMM)と、ニューラルネットワークと、サポートベクターマシンとからなるグループから選択されたアルゴリズムデバイスを使用することにより、前記選択を実行するためのものであるC7記載のハンドヘルドデバイス。
[C13]
前記プロセッサは、前記軌道データを複数のセグメントに分割するためのものであり、
前記プロセッサは、セグメントに関係付けられている前記軌道データを、複数の別々の特徴に対応する1組の値に変換するためのものであり、
前記プロセッサは、前記セグメントに対する前記変換された組の値を、前記データベース中に記憶されている前記複数の別々の特徴に対応する値の組と比較するためのものであり、
前記プロセッサは、前記データベースから1組の値を選択するためのものであり、
前記プロセッサは、前記選択された組の値に関係付けられているキャラクタを表示するためのものであるC7記載のハンドヘルドデバイス。
[C14]
前記セグメントは文字を表し、前記複数のセグメントは大ざっぱな単語を表すC13記載のハンドヘルドデバイス。
[C15]
ジェスチャー認識のための方法において、
ジャイロスコープを使用することにより、ハンドヘルドデバイスの動きの軌道に関連するデータを取得することと、
前記軌道データを、複数の別々の特徴に対応する値に変換することと、
前記変換された組の値を、データベース中に記憶されている前記複数の別々の特徴に対応する値の組と比較することと、
前記比較に基づいて、前記データベースから1組の値を選択することと、
前記選択した組の値に関係付けられているキャラクタを表示するか、または、前記選択した組の値に関係付けられているコマンドを実行することとを含み、
前記軌道データは、前記ハンドヘルドデバイスの回転の動きと線形の動きに関連する方法。
[C16]
前記ジャイロスコープと、加速度計およびコンパスからなるグループから選択されたセンサーとを使用することにより、前記軌道に関連するデータを取得することをさらに含むC15記載の方法。
[C17]
前記加速度計により取得された前記線形の動きのデータを、前記ジャイロスコープにより取得された前記角度の動きのデータと相関させるC16記載の方法。
[C18]
前記別々の特徴は、前記ハンドヘルドデバイスの角度の動きに関連するC15記載の方法。
[C19]
ユーザのさまざまな手のジェスチャーを、キャラクタまたはコマンドに関係付けることにより、前記データベースに格納するC15記載の方法。
[C20]
ハンドヘルドデバイスにおいて、
ジャイロスコープと、
加速度計と、
コンパスと、
前記ジャイロスコープと、前記加速度計と、前記コンパスとに結合されているプロセッサと、
前記プロセッサに結合されているプログラマブルモジュールと、
前記プロセッサに結合されており、複数の別々の特徴に対応する値の組と、前記値の組に関係付けられているキャラクタまたはコマンドとを含むメモリとを具備し、
前記ジャイロスコープと、前記加速度計と、前記コンパスは、前記ハンドヘルドデバイスの動きの軌道に関連するデータを提供するためのものであり、
前記プログラマブルモジュールは、前記軌道データを処理するための命令を前記プロセッサに提供するためのものであり、
前記プロセッサは、前記プログラマブルモジュールにより提供される命令を使用することにより、前記軌道データを、前記複数の別々の特徴に対応する1組の値に変換するためのものであり、
前記プロセッサは、前記変換された組の値を、前記データベース中に記憶されている値の組と比較して、最も近い一致を選択するためのものであり、
前記プロセッサは、前記選択された組の値に関係付けられているキャラクタを表示するか、または、前記選択された組の値に関係付けられているコマンドを実行するためのものであり、
前記プロセッサは、前記軌道データを使用して、前記ハンドヘルドデバイスの傾きを決定するためのものであり、
前記軌道データは、前記ハンドヘルドデバイスの回転の動きに関連するデータを含むハンドヘルドデバイス。
[C21]
前記軌道をリアルタイムで表示するためと、前記選択された組の値に関係付けられている前記キャラクタを表示するためのディスプレイをさらに具備するC20記載のハンドヘルドデバイス。
[C22]
ユーザを認証するための方法において、
ハンドヘルドデバイスの空中での動きを生じさせることと、
ジャイロスコープを使用して、前記動きの軌道に関連する情報を取得することと、
前記情報をデータベースと比較することと、
前記比較に基づいて前記ユーザを認証することとを含む方法。
[C23]
前記動きは、前記ユーザの署名を表すC22記載の方法。
[C24]
前記動きの発生の前の予め定められた時間期間内に、または、前記動きの発生の後の予め定められた時間期間内に、サウンドを発生させることと、
前記ハンドヘルドデバイスに埋め込まれているマイクロフォンを使用することにより、前記サウンドを検出することと、
前記ユーザを認証するために、前記検出したサウンドと、前記軌道情報とを使用することとを含むC22記載の方法。
[C25]
ハンドヘルドデバイスにおいて、
第1のプロセッサと、
前記第1のプロセッサに結合されている第1のコンポーネントと
前記ハンドヘルドデバイスの第1の動きに関連する情報を提供するためのジャイロスコープとを具備し、
前記第1のプロセッサは、前記第1の動きに応答して、前記第1のコンポーネントをアクティブ動作モードに入らせるためのものであるハンドヘルドデバイス。
[C26]
前記第1のプロセッサに結合されているプログラマブルモジュールをさらに具備し、
前記プログラマブルモジュールは、前記ハンドヘルドデバイスの前記第1の動きに関連する第1のコマンドを含み、
前記第1のコマンドは、前記第1のコンポーネントを前記アクティブ動作モードに入らせるためのコマンドを含むC25記載のハンドヘルドデバイス。
[C27]
前記第1のプロセッサは、マイクロプロセッサを備え、
第2のプロセッサは、前記ジャイロスコープにより提供される情報を処理するために、前記ジャイロスコープに結合されているC25記載のハンドヘルドデバイス。
[C28]
前記ジャイロスコープからの情報の受け取りに応答して、前記第1のプロセッサをアクティブ動作モードに入らせるための前記第2のプロセッサをさらに具備し、
前記第2のプロセッサは、前記ジャイロスコープから受け取った情報を前記第1のプロセッサに提供するためのものであるC27記載のハンドヘルドデバイス。
[C29]
前記ハンドヘルドデバイスの前記第1の動きに関連する情報を提供するための加速度計をさらに具備し、
前記第1のプロセッサは、前記ジャイロスコープと前記加速度計とにより提供される情報に基づいて、前記第1のコンポーネントをアクティブ動作モードに入らせるためのものであるC28記載のハンドヘルドデバイス。
[C30]
前記ハンドヘルドデバイスはスマートフォンを含むC25記載のハンドヘルドデバイス。
[C31]
カメラを備える前記第1のコンポーネントと、
ディスプレイを備える第2のコンポーネントと、
前記第1の動きに応答して、前記カメラをスリープモードからアクティブモードにスイッチさせるための前記第1のプロセッサとをさらに具備し、
前記カメラが、前記アクティブモードの間に前記スリープモードよりも多い電力を使用するときに、前記ディスプレイは、前記第1の動きに応答して、前記スリープモードから前記アクティブモードにスイッチされないC25記載のハンドヘルドデバイス。
[C32]
前記第1の動きに応答して、前記第1のプロセッサを、アクティブ動作モードに入らせるための第2のプロセッサは、前記ジャイロスコープに結合されているC25記載のハンドヘルドデバイス。
[C33]
マイクロプロセッサを備える前記第1のプロセッサと、
カメラを備える前記第1のコンポーネントと、
前記ジャイロスコープにより提供される情報を処理するために、前記ジャイロスコープに結合されている第2のプロセッサとをさらに具備し、
前記マイクロプロセッサは、前記カメラ、ディスプレイ、マイクロフォン、ネットワークブラウザアプリケーションプログラム、および、キーパッドを含む複数のコンポーネントに結合され、
前記マイクロプロセッサおよび前記複数のコンポーネントは、スリープ動作モードに設定され、
前記第2のプロセッサは、前記第1の動きに応答して、前記マイクロプロセッサを、前記スリープモードから前記アクティブ動作モードにスイッチさせるためのものであり、
前記マイクロプロセッサは、前記第1の動きに応答して、前記カメラを、前記スリープモードから前記アクティブ動作モードにスイッチさせるためのものであり、
前記マイクロプロセッサは、前記第1の動きに応答して、前記ディスプレイを、前記スリープモードから前記アクティブ動作モードにスイッチさせないためのものであり、
前記マイクロプロセッサは、第2の動きに応答して、前記ディスプレイを、前記スリープモードから前記アクティブ動作モードにスイッチさせるためのものであり、
前記アクティブ動作モードは、前記スリープ動作モードよりも多い電力を必要とするC25記載のハンドヘルドデバイス。
[C34]
ハンドヘルドデバイスに対する電力を管理するための方法において、
第1のコンポーネントを、スリープ動作モードに入らせることと、
第1のプロセッサを、スリープ動作モードに入らせることと、
前記ハンドヘルドデバイスの動きを生じさせることと、
ジャイロスコープを使用して、前記動きを検出することと、
前記動きに応答して、前記第1のプロセッサおよび前記第1のコンポーネントをアクティブ動作モードにスイッチさせることと、
前記モードをスイッチさせるためのトリガとして前記動きを使用することとを含む方法。
[C35]
加速度計を使用して、前記動きを検出することをさらに含むC34記載の方法。
[C36]
前記ジャイロスコープにより検出された前記動きに関係付けられているコマンドを識別することをさらに含むC34記載の方法。
[C37]
前記コマンドは、前記ハンドヘルドデバイス中に備えられているカメラを、スリープモードから、アクティブ動作モードにスイッチさせるためのコマンドを含むC36記載の方法。
[C38]
前記コマンドは、ディスプレイを、スリープモードからアクティブ動作モードにスイッチさせるためのコマンドを含むC36記載の方法。
[C39]
前記コマンドは、マイクロフォンを、スリープモードからアクティブ動作モードにスイッチさせるためのコマンドを含むC36記載の方法。
[C40]
ユーザが前記ハンドヘルドデバイスをタッピングすることにより、前記動きが生じるC39記載の方法。
[C41]
前記動きに応答して、第2のコンポーネントを、アクティブ動作モードにスイッチさせないことをさらに含むC34記載の方法。
[C42]
移動体電話機に対する電力を管理するための方法において、
前記移動体電話機を第1のポジションに配置することと、
ジャイロスコープを使用することにより、前記移動体電話機の前記第1のポジションを検出することと、
前記第1のポジションの検出に応答して、前記移動体電話機のコンポーネントを、スリープ動作モードに入らせることとを含む方法。
[C43]
加速度計を使用することにより、前記移動体電話機の前記第1のポジションを検出することをさらに含むC42記載の方法。
[C44]
前記移動体電話機の前記ポジションを第2のポジションに変更することと、
前記ジャイロスコープを使用することにより、前記移動体電話機の前記第2のポジションを検出することと、
前記第2のポジションの検出に応答して、前記移動体電話機の前記コンポーネントを、アクティブ動作モードに入らせることとをさらに含むC42記載の方法。