(57)【要約】装置および方法が、イメージセンサを使用するタッチユーザインタフェースについて示される。ユーザインタフェースのためにイメージベース入力コマンドを処理する方法は、センサからイメージフレームを受信すること、前記センサがカバー状態に入るときを決定すること、後続のイメージフレームから、前記センサが非カバー状態に入るときを決定すること、ユーザコマンドを解釈するために、前記後続のイメージフレームに基づき情報を分析すること、前記ユーザコマンドをユーザインタフェースへ出すこと、を含む。イメージベースのユーザインタフェースを持つ装置は、イメージセンサとメモリに接続されたプロセッサとを含み、前記プロセッサは、前記イメージセンサからイメージフレームを受信し、前記イメージセンサがカバー状態に入るときを決定し、後続のイメージフレームから前記イメージセンサが非カバー状態に入るときを決定し、ユーザコマンドを解釈するために前記後続のイメージフレームに基づき情報を分析し、前記ユーザコマンドをユーザインタフェースへ出すロジックで構成される。【選択図】  図３
2011510383.tif 000002
【特許請求の範囲】
【請求項１】
ユーザインタフェースのためのイメージベース入力コマンドを処理する方法であって、
センサからイメージフレームを受信すること；
前記センサがカバー状態に入るときを決定すること；
後続のイメージフレームから、前記センサが非カバー状態に入るときを決定すること；
ユーザコマンドを解釈するために、前記後続のイメージフレームに基づき情報を分析すること；および
ユーザインタフェースへユーザコマンドを出すこと；
を含む方法。
【請求項２】
イメージフレームを複数のタイルに分割すること；
各タイルの軽量値を計算すること；および
前記計量値について予め定められた値をもつタイルのカウントを実行すること；
をさらに含む請求項１記載の方法。
【請求項３】
前記カウント値が予め定められた数を超えるまで、後続の受信フレームに対し、請求項２の方法を行なうこと、をさらに含む請求項２の方法。
【請求項４】
前記カウント値が前記予め定められた数を超えるとき、さらに、
各タイルに対する参照計量値を記憶すること；
前記後続のフレームを複数のタイルに分割すること；
各タイルの計量値を計算すること；および
予め定められた値を超える計量値をもつタイルについて、少なくとも１つのトレイル値を計算すること；
をさらに含む請求項３の方法。
【請求項５】
全てのタイルが対応するトレイル値を持つまで、後続の受信フレームに対し請求項４の方法を行なうこと、をさらに含む、請求項４に従った方法。
【請求項６】
全てのタイルが対応するトレイル値を持つ前に、予め定められた数のイメージフレームが処理された場合、前記ユーザコマンドを「選択」または「入力」と解釈すること、をさらに含む請求項５に従った方法。
【請求項７】
非カバーマップの勾配を計算すること；
前記勾配に基づき動きの方向を決定すること；および
前記方向に基づき前記ユーザインタフェースへコマンドを出すこと；
をさらに含む請求項１に従った方法。
【請求項８】
前記勾配が予め定められた値を超えているかどうかを決定すること；
予め定められた数のトレイル値が予め定められた値を超えているかどうかを決定すること；および
前記勾配およびトレイル決定に基づき、ユーザコマンドを「選択」または「入力」と解釈すること；
をさらに含む請求項７に従った方法。
【請求項９】
前記計量値は前記輝度の平均値および前記輝度の標準偏差を含む、請求項２に従った方法。
【請求項１０】
前記センサはカメラである、請求項１に従った方法。
【請求項１１】
前記ユーザコマンドは、前記カメラ上に指を置くことにより入力される、請求項１０に従った方法。
【請求項１２】
一連のジェスチャが、前記カメラの制御パラメータに関連するコマンドと解釈される、請求項１１に従った方法。
【請求項１３】
前記センサから受信されたイメージフレームは実質的に赤外線に基づく、請求項１に従った方法。
【請求項１４】
イメージベースのユーザインタフェースをもつ装置であって、
イメージセンサと、
メモリに接続されたプロセッサと、
を備え、前記プロセッサは、
前記イメージセンサからイメージフレームを受信し、
前記イメージセンサがカバー状態に入るときを決定し、
後続のイメージフレームから、前記イメージセンサが非カバー状態に入るときを決定し、
ユーザコマンドを解釈するために、前記後続のイメージフレームに基づき情報を分析し、
ユーザインタフェースへ前記ユーザコマンドを出すロジックで構成される、装置。
【請求項１５】
前記プロセッサは、さらに、
イメージフレームを複数のタイルに分割し、
各タイルの計量値を計算し、
予め定められた値の前記計量値をもつタイルのカウントを実行する、ロジックで構成される請求項１４に従った装置。
【請求項１６】
前記プロセッサは、さらに、
前記カウント値が予め定められた数を超えるまで、後続の受信フレームに対し、請求項１５のロジックを実行するロジックで構成される、請求項１５に従った装置。
【請求項１７】
前記プロセッサは、さらに、各タイルに対する参照計量値を記憶し、
前記後続のフレームを複数のタイルに分割し、
各タイルの計量値を計算し、
予め定められた値を超える計量値を持つタイルに対し、少なくとも１つのトレイル値を計算するロジックで構成される、請求項１６に従った装置。
【請求項１８】
前記プロセッサは、さらに、全てのタイルが対応するトレイル値を持つまで、後続の受信フレームに対し請求項４のロジックを実行するロジックで構成される、請求項１７に従った装置。
【請求項１９】
前記プロセッサは、さらに、全てのタイルが対応するトレイル値を持つ前に、予め定められた数のイメージフレームが処理された場合、前記ユーザコマンドを「選択」または「入力」と解釈するロジックで構成される、請求項１８に従った装置。
【請求項２０】
前記プロセッサは、さらに、
非カバーマップの勾配を計算し、
前記勾配に基づき動きの方向を決定し、
前記方向に基づき前記ユーザインタフェースへコマンドを出す
ロジックで構成される請求項１４に従った装置。
【請求項２１】
前記プロセッサは、さらに、
前記勾配が予め定められた値を超えているかどうかを決定し、
予め定められた数のトレイル値が予め定められた値を超えているかどうかを決定し、
前記勾配およびトレイル決定に基づき、前記ユーザコマンドを「選択」または「入力」と解釈するロジックで構成される、請求項２０に従った装置。
【請求項２２】
前記計量値は前記輝度の平均および前記輝度の標準偏差を含む、請求項１５に従った装置。
【請求項２３】
前記センサはカメラであり、前記ユーザコマンドは、前記カメラ上に指を置くことにより入力される、請求項１４に従った装置。
【請求項２４】
前記カメラは、前記指が前記カメラと物理的に接触しないように、前記装置の本体から奥まったところに置かれる、請求項２３に従った装置。
【請求項２５】
イメージベースのタッチユーザインタフェースをもつモバイルデバイスであって、
カメラと、
メモリに接続されたプロセッサと、を備え、
前記プロセッサは、
前記カメラからイメージフレームを受信し、
前記イメージフレームを複数のタイルに分割し、
各タイルについて計量値を計算し、
前記計量値について予め定められた値をもつタイルのカウントを行い、
後続のイメージファイルから、トレイル値に基づき非カバーマップを決定し、
非カバーマップの勾配を計算し、
前記勾配に基づき動きの方向を決定し、
前記方向に基づき前記ユーザインタフェースへコマンドを出すように構成されたロジックを含む、モバイルデバイス。
【請求項２６】
ユーザインタフェースのためのイメージベース入力コマンドを処理する装置であって、
センサからイメージフレームを受信する手段と、
前記センサがカバー状態に入るときを決定する手段と、
後続のイメージフレームから、前記センサが非カバー状態に入るときを決定する手段と、
ユーザコマンドを解釈するために、前記後続のイメージフレームに基づき情報を分析する手段と、
ユーザインタフェースへ前記ユーザコマンドを出す手段と、
を備える装置。
【請求項２７】
イメージフレームを複数のタイルに分割する手段と、
各タイルについて計量値を計算する手段と、
前記計量値に対し予め定められた値を持つタイルのカウントを行う手段と、
をさらに備える請求項２６に従った装置。
【請求項２８】
前記カウント値が予め定められた数を超えるまで、後続の受信フレームを処理する手段をさらに備える請求項２７に従った装置。
【請求項２９】
前記カウント値が前記予め定められた数を超えるとき、さらに、
各タイルについて参照計量値を記憶する手段と、
前記後続のフレームを複数のタイルに分割する手段と、
各タイルについて計量値を計算する手段と、
予め定められた値を超える計量値を持つタイルに対し、少なくとも１つのトレイル値を計算する手段と、
をさらに備える、請求項２８に従った装置。
【請求項３０】
機械によって実行されたとき、前記機械に、ユーザインタフェースに対するイメージベース入力コマンドを処理する動作を行なわせるプログラムコードが記憶されたコンピュータ読み取り可能媒体であって、
前記コンピュータ読み取り可能媒体は、
センサからイメージフレームを受信するプログラムコードと、
前記センサがカバー状態に入るときを決定するプログラムコードと、
後続のイメージフレームから、前記センサが非カバー状態に入るときを決定するプログラムコードと、
ユーザコマンドを解釈するために、前記後続のイメージフレームに基づき情報を分析するプログラムコードと、
前記ユーザコマンドをユーザインタフェースへ出すプログラムコードと、
を含むコンピュータ読み取り可能媒体。
【請求項３１】
前記イメージフレームを複数のタイルに分割するプログラムコードと、
各タイルについて計量値を計算するプログラムコードと、
前記計量値について予め定められた値をもつタイルのカウントを行うプログラムコードと、
をさらに含む請求項３０に従ったコンピュータ読み取り可能媒体。
【請求項３２】
前記カウント値が予め定められた値を超えるまで、後続の受信フレームを処理するプログラムコードをさらに含む請求項３１に従ったコンピュータ読み取り可能媒体。
【請求項３３】
前記カウント値が前記予め定められた数を超えるとき、
各タイルについて参照計量値を記憶するプログラムコードと、
前記後続のフレームを複数のタイルに分割するプログラムコードと、
各タイルについて計量値を計算するプログラムコードと、
予め定められた値を超える計量値をもつタイルについて少なくとも１つのトレイル値を計算するプログラムコードと、
をさらに含む請求項３２に従ったコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の実施形態は、一般的に、イメージセンサーベースのインタフェースに関するもので、より具体的には、ユーザコマンドを受信するためにイメージセンサを利用するインタフェースを持つモバイルデバイスに関する。
【背景技術】
【０００２】
モバイルデバイスがパワーおよび精巧さが増したので、ユーザインタフェース開発者は、同時にそれらの使いやすさを改善しながら、デバイスの拡大する能力を活かすための挑戦に直面している。
【０００３】
タッチスクリーンは、最近の進歩したマルチタッチ機能と、複雑なユーザインタフェース・ナビゲーションを単純化する直感的アプローチにより、モバイルデバイスのためのユーザインタフェースとして一般的になってきた。タッチスクリーンはまた、キーボードおよびまたは他の物理的なカーソル制御インタフェースを省略することができるという理由で、モバイルデバイスの画面サイズを最大限に活かすという利点を持つ。しかしながら、タッチスクリーンは、バーチャルキーボードおよび他の制御機器の感触のフィードバックの欠如、ユーザの指とスクリーンとの咬み合わせ、およびまたは使用中のディスプレイ表面の汚れ、のような多くの操作上の欠点に関係している。さらに、タッチスクリーンディスプレイは一般的に、非接触の相当装置より開発し製造するのにより高価である。
【０００４】
タッチスクリーンディスプレイの前述の欠点により、いくらかのユーザはモバイルデバイス上でより小さなディスプレイと共に物理的なキーパッドを使用することを好む。そのような物理的なユーザインタフェースと共に、別の従来のアプローチは、既存および将来のモバイルデバイスでの使用のために、タッチスクリーン機能の直感的な性質をもたらすものとして提案されている。これらのアプローチは、通常多くのモバイルデバイスに含まれている一体型デジタルカメラに活用することができる。
【０００５】
これらの従来のアプローチのうちのいくつかは、ユーザがカメラの前でどのように手を動かしているか決定するためにＭＰＥＧ動きベクトルアルゴリズムを使用することを提案している。他のシステムは、ユーザ入力の決定のため、一体型カメラを使用して、モバイルデバイスの方向（例えば傾斜）を推定できる。これらのアプローチは、ユーザインタフェースが十分に反応することを保証するためにリアルタイムに動作するアルゴリズムを含むことができる。従って、それらは計算集中的となり、モバイルデバイスの内蔵の１つ又は複数のプロセッサに負担をかけ、およびまたは、専用ハードウェアを利用する。したがって、従来のアプローチはコスト的にマイナスであり、モバイルデバイスの電力消費量を増加させる。
【０００６】
さらに、これらの従来のアプローチは、ユーザが、カメラの前で大げさに手およびまたは腕を動かすことを要求することがあり、それはユーザの注意を好ましくなく引き付けおよびまたは長時間にわたる疲労を引き起こす。さらに、これらのアルゴリズムは、選択ポイントをどのように指定するかを決定すること、およびまたは相対的なナビゲーションタスク（例えば、滑る／ドラッグする／などで単一ユーザの動きを超える距離にユーザインタフェース中のオブジェクトをスライド／ドラッグするときに選択ポイントをリセットすること）を行なうこと、の挑戦を提示する。さらに、そのような技術は、適切に選択するために、およびまたは無意識にアイテムを選択することを回避するために、ユーザにその手を安定または動かないようにしておくことを要求する。
【０００７】
従って、既存および将来のカメラ電話のためにタッチユーザインタフェース・ナビゲーション技術を提供することが望まれる。それは前述の欠点を回避し、コスト効率の良いやり方で実行することができる。
【発明の概要】
【０００８】
発明の典型的な実施形態は、イメージセンサを使用するタッチユーザインタフェースのための装置および方法に向けられている。
【０００９】
一実施形態において、ユーザインタフェースのためのイメージベース入力コマンドを処理する方法が与えられる。方法は、センサからイメージフレームを受信すること、センサがカバー状態に入るときを決定すること、後続のイメージフレームから、センサが非カバー状態に入るときを決定すること、ユーザコマンドを解釈するために、該後続イメージフレームに基づく情報を分析すること、該ユーザコマンドをユーザインタフェースへ出すること、を含むことができる。
【００１０】
別の実施形態では、イメージベースのユーザインタフェースを持つ装置が与えられる。装置は、イメージセンサ、およびメモリに接続されたプロセッサを含むことができ、該プロセッサは、該イメージセンサからのイメージフレームを受信し、該イメージセンサがカバー状態に入るときを決定し、後続のイメージフレームからイメージセンサが非カバー状態に入るときを決定し、ユーザコマンドを解釈するために、該後続のイメージフレームに基づく情報を分析し、該ユーザコマンドをユーザインタフェースへ出すロジックで構成される。
【００１１】
発明の別の実施形態は、イメージベースのタッチユーザインタフェースを持つモバイルデバイスを含むことができ、これは、カメラ、及びメモリに接続されたプロセッサを含む。該プロセッサは、該カメラからイメージフレームを受信し；該イメージフレームを複数のタイルに分割し；各タイルの計量値を計算し；該計量値について予め定められた値をもつタイルをカウントし；後続のイメージファイルからのトレイル（trail）値に基づき非カバーマップを決定し；非カバーマップの勾配を計算し；該勾配に基づき動きの方向を決定し；および、該方向に基づきユーザインタフェースへコマンドを出す、ロジックを含む。
【００１２】
発明の別の実施形態は、ユーザインタフェースのためのイメージベース入力コマンドを処理する装置を含むことができ、該装置は、センサからイメージフレームを受信する手段；該センサがカバー状態に入るときを決定する手段；後続のイメージフレームから、該センサが非カバー状態に入るときを決定する手段；ユーザコマンドを解釈するために、該後続のイメージフレームに基づく情報を分析する手段；および、ユーザインタフェースへ該ユーザコマンドを出す手段を含む。
【００１３】
発明の別の実施形態は、機械によって実行された時、該機械にユーザインタフェースのためのイメージベース入力コマンドを処理する操作を実行させるプログラムコードを含むコンピュータ読み取り可能媒体を含むことができる。該コンピュータ読み取り可能媒体は、センサからイメージフレームを受信するプログラムコード；該センサがカバー状態に入るときを決定するプログラムコード；後続のイメージフレームから、該センサが非カバー状態に入るときを決定するプログラムコード；ユーザコマンドを解釈するために、該後続のイメージフレームに基づき情報を分析するプログラムコード；ユーザインタフェースへ該ユーザコマンドを出すプログラムコード；を含む。
【００１４】
添付の図面は、発明の実施形態の説明を助けるために示され、もっぱらそれの限定するのではなく実施形態の実例として提供される。
【図面の簡単な説明】
【００１５】
【図１Ａ】図１Ａ−Ｄは、イメージベースのタッチユーザインタフェースを持つ、典型的なモバイルデバイスの動作の概観を示すブロック図。
【図１Ｂ】図１Ａ−Ｄは、イメージベースのタッチユーザインタフェースを持つ、典型的なモバイルデバイスの動作の概観を示すブロック図。
【図１Ｃ】図１Ａ−Ｄは、イメージベースのタッチユーザインタフェースを持つ、典型的なモバイルデバイスの動作の概観を示すブロック図。
【図１Ｄ】図１Ａ−Ｄは、イメージベースのタッチユーザインタフェースを持つ、典型的なモバイルデバイスの動作の概観を示すブロック図。
【図２】図２は、イメージベースのタッチユーザインタフェースを持つモバイルデバイスの典型的な構成を示すブロック図。
【図３】図３は、イメージベースのタッチユーザインタフェースに関連した典型的なトップレベルプロセスを描いた流れ図。
【図４】図４は、イメージベースのタッチユーザインタフェースに関連したカバー状態を決定する典型的なプロセスを描いた流れ図。
【図５】図５は、イメージベースのタッチユーザインタフェースに関連した非カバー状態を決定する典型的なプロセスを描いた流れ図。
【図６】図６は、イメージベースのタッチユーザインタフェースに関連したユーザコマンドを決定する典型的なプロセスを描いた流れ図。
【発明を実施するための形態】
【００１６】
発明の側面は、発明の特定の実施形態に向けられた、次の説明および関連する図面で開示される。代替の実施形態は、本発明の要旨を逸脱しない範囲で考案できる。さらに、発明の周知の要素は詳細に説明されないか、または、発明に関連のある詳細が不明瞭にならないよう省略される。
【００１７】
「典型的な（exemplary）」という語は「例（example, instance, or illustration）として与える」ことを意味するためにこの中で使用される。「典型的」とここで記載された任意の実施形態は、他の実施形態よりも好ましいかまたは有利である、として解釈される必要はない。同様に、「発明の実施形態」という用語は、発明のすべての実施形態が議論された特性、利点あるいは動作モードを含むことを必要としない。
【００１８】
ここで使用される用語は、特定の実施形態だけについて記述するためにあり、発明の実施形態を制限するように意図されていない。ここで用いられているように、単数形の「１つ（ａ、ａｎ）」、「該または前記（ｔｈｅ）」は、コンテキストが明白に示している場合を除き、複数形を含むように意図される。さらに、用語「備える（comprise、comprising）」、「含む（include、including）」は、ここで使用されるとき、提示された特徴、整数、ステップ、オペレーション、エレメントおよびまたはコンポーネントの存在を特定することが理解されるが、１つまたは複数の他の特徴、整数、ステップ、オペレーション、エレメント、コンポーネント、およびまたはそれらのグループの存在または追加を除外するものではない。
【００１９】
さらに、多くの実施形態が、例えばコンピュータグデバイスのエレメントによって行なわれるアクションのシーケンスの観点から記述される。ここに記述された様々なアクションは、特定の回路（例えば特定用途向け集積回路（ＡＳＩＣ））によって、または１つまたは複数のプロセッサによって実行されるプログラム命令、または両方の組合せによって行なえることが分かるだろう。さらに、ここに記述されたアクションのこれらのシーケンスは、実行されると、関連するプロセッサにここに記述された機能を実行させるコンピュータ命令の対応するセットを持つコンピュータ読取り可能な記憶媒体の任意の形式で完全に実施されると考えることができる。したがって、発明の様々な側面は、多くの異なる形式で実施することができ、それらのすべてはクレームされた事項の範囲内であると意図される。さらに、ここに記述した実施形態のそれぞれについて、任意のそのような実施形態の対応する形式は、例えば、記述されたアクションを実行するように「構成されたロジック」としてここに記述され得る。
【００２０】
図１Ａ−１Ｄは、イメージベースのタッチユーザインタフェース（ＩＢＴＵＩ：image-based touch user interface）を持つ、典型的なモバイルデバイス１００の動作の概観を示すブロック図である。図１Ａは、（電話の上部を削除して示されている）折りたたみ式携帯電話のような典型的なモバイルデバイス１００を示す。該デバイスの背面１０５は、連続的にイメージフレーム１１５を収集できるイメージセンサー１１０の外側部を含む。動作中に、ＩＢＴＵＩは、センサが覆われた後、センサ１１０の視界から出る物体の経路を追跡することができる。追跡が終了すると、コマンドは、追跡された動きの性質に基づいてＩＢＴＵＩによって解釈される。
【００２１】
図１Ｂで示されるように、ユーザは、最初にイメージセンサ１１０上に指１２０を置くことにより、コマンドエントリーを始めることができる。この動作は、低い輝度値を持つ１つまたは複数のイメージフレーム１２５を生成するために、イメージセンサ１１０を実質的に覆うかまたは完全に覆う。これはＩＢＴＵＩを「カバー状態」にし、指がイメージセンサ１１０の視界を離れるときに、指１２０の動きを追跡するようにＩＢＴＵＩに信号で伝える。図１Ｃに示すように、指１２０はページの左方へ動くことによりイメージセンサ１１０の視界を離れていきつつある。一連のイメージフレーム１３０は、この動きに対応する輝度変化をもつように生成される。イメージフレームは、コマンドとして動きを解釈するために処理される。この例では、指の動きは、モバイルデバイスのグラフィカル・ユーザインタフェース（ＧＵＩ）中の対応するカーソルの移動を生成するコマンドとして解釈される。図１Ｄは、ページの下端の方へ行くユーザの指１２０の動きと、対応する輝度変化を作り出している一連のイメージフレーム１３５を示す。この動きは、モバイルデバイスＧＵＩのカーソルを下方に動かすコマンドを生成する。以下に記述するように、他の動きおよびまたはジェスチャは異なるコマンドとして解釈することができる。
【００２２】
モバイルデバイス１００はカメラ付き折りたたみ式電話機として示されているが、より詳細に以下に記述されるように、発明の他の実施形態は任意のタイプのデバイスに適用することができる。
【００２３】
図２は、イメージベースのタッチユーザインタフェース（ＩＢＴＵＩ）を持つモバイルデバイス２００の典型的な構成２１０を示すブロック図である。モバイルデバイス２００は、ネットワーク上でデータおよびまたはコマンドをやりとりできるプラットフォーム２１０を持つことができる。プラットフォーム２１０は、プロセッサ２２０、あるいは他のコントローラ、マイクロプロセッサー、ＡＳＩＣ、論理回路あるいは他のデータ処理デバイスに動作可能なように繋がれたトランシーバ２１５（それは明示的に示されない送信機および受信機をさらに含むことができる）を含むことができる。プロセッサ２２０は、モバイルデバイス２００のメモリ２２５に記憶されたプログラムを実行することができる。そこで実行するプログラムは、モバイルデバイス２００のグラフィカル・ユーザインタフェースに入力を与える、イメージベースのタッチユーザインタフェースに関連させることができる。メモリ２２５は、実行可能なモジュール（例えばＩＢＴＵＩ、ＧＵＩなど）、イメージフレーム、およびＩＢＴＵＩの動作と関連するものを含む他のデータ構造を記憶することができる。メモリ２２５は、リードオンリーおよびまたはランダムアクセスメモリ（ＲＡＭとＲＯＭ）、ＥＥＰＲＯＭ、フラッシュカードあるいはそのようなプラットフォームに共通の任意のメモリで構成することができる。イメージセンサ２３０は、プロセッサ２２０に機能的につながれ、通常可視光に敏感である。発明の他の実施形態は、ＩＢＴＵＩが可視光のない状態でも動作することができるように、他の波長を利用することができるイメージセンサ２３０に特徴がある。モバイルデバイス２００の外側表面に関連するイメージセンサの光学部品（例えばカメラレンズを保護する透明カバー）は、埋め込み方式で取り付けることができる。この配置により、ユーザの指は、実際にイメージセンサと物理的接触がなくなり、従って、ユーザの指がイメージセンサの光学経路に異物（例えば、汚れ、グリース（grease）など）を取り込んだり、あるいはそうでなければイメージセンサを破損する（例えば、ひっかき傷）ことを防ぐことができる。従って、イメージベースのタッチユーザインタフェースは、イメージセンサに実際に触れる必要はない。
【００２４】
イメージセンサ２３０は、周期的なレート（例えば３０フレーム／秒）でイメージフレームを記録するカメラであり得、従来のデジタルビデオフォーマットを使用することができる。ＩＢＴＵＩによってユーザ入力を受け入れるとき、イメージセンサ２３０はＩＢＴＵＩ処理に継続的にイメージフレームを供給することができる。例えば、ユーザが「コンタクト（Contacts）」スクリーンを表示しているとき、該スクリーン内のカーソル移動およびまたは選択に使用されるユーザの指から入力を受け入れるために、イメージセンサ２３０はプロセッサ２２０に複数のイメージフレームを供給する。イメージセンサ２３０がＩＢＴＵＩにイメージフレームを供給していないとき、イメージセンサはピクチャおよびまたはビデオを供給する働きをすることができる。さらに、イメージセンサ２３０は、イメージフレームの美的特性の改善に関連した従来の処理なしで、イメージフレームを集めることができ、また、ＩＢＴＵＩはそのイメージフレームを利用することができる。例えば、イメージセンサがＩＢＴＵＩのために使用されている場合、イメージフレームは、ホワイトバランス、カラーバランス、オートフォーカス、イメージ鮮明化などを持たなくてもよい。そのような処理の省略は、ＩＢＴＵＩを使用する時、モバイルデバイス１００の上の計算負荷を減らし、電池寿命を一層延ばすことができる。
【００２５】
コマンドを提供するための様々なロジックエレメントは、個別のエレメント、プロセッサで実行されるソフトウェアモジュール、または、ここに示された機能を達成するソフトウェアとハードウェアの任意の組合せで具体化することができる。例えば、プロセッサ２２０およびメモリ２２５は、すべて、ここに示された様々な関数をロードし、格納し、かつ実行するために協調して使用することができる。したがって、これらの関数を実行するロジックは、様々なエレメント上に分散することができる。あるいは、１つの個別部品（例えばプロセッサ２２０中に埋め込まれたメモリ）の中に機能を組み入れることができる。したがって、図２のモバイルデバイス２００の特徴は、単に実例として考えたものであり、発明の実施形態は図で示した特徴や配置に制限されない。
【００２６】
さらに、発明の実施形態は任意のデバイスと共に使用することができ、図で示した実施形態に制限されない。例えば、デバイスは携帯電話、アクセス端末、ＰＤＡ（personal digital assistants）、音楽プレーヤー、ラジオ、ＧＰＳ受信機、ラップトップコンピュータ、公衆電話ボックス、などを含むことができる。
【００２７】
図３は、イメージベースのタッチユーザインタフェース（ＩＢＴＵＩ）に関連した典型的なトップレベルのプロセス３００を描くフローチャートである。プロセス３００は、モバイルデバイス２００が最初に電源オンされるか、電源が再投入された時、始まる。そして、プロセッサ２２０は、デバイスオペレーションの様々なプロセスの初期化を始める（３１０）。これは、イメージセンサ２３０からのイメージフレームの受信と処理に関連した、グラフィカル・ユーザインタフェース、ハードウェア、ソフトウェア／ファームウェア／ロジックコンポーネントの初期化を含むことができる。イメージフレームは、従来のビデオフォーマット（例えば、各フレームが２４０ｘ３２０ピクセルで３０フレーム／秒）で示され、輝度−クロミナンス・カラースペース（ＹＣｒＣｂ）を使用することができる。フレームも、各イメージフレーム内で低減されたフレームレートおよびまたはより低い空間サンプリングをもつ疑似（quasi）ビデオフォーマットで示すことができる。さらに、イメージフレームは、色、ホワイトバランス、鋭さを強めるための、およびまたは他の美的特性を改善するための前処理なしにすませる。
【００２８】
その後、そのプロセスは、イメージセンサがカバー状態かどうか決定するために、イメージセンサ２３０によって生成されたイメージの分析を開始する。ここに定義されるように、イメージセンサ２３０がオブジェクト（典型的にはユーザの指）によって覆われる場合、カバー状態が生じる。この分析はイメージフレームの輝度チャネルについて行われ、平均の明るさおよびまたは詳細に基づいた１つまたは複数の計量値（metric）を計算することを含む（３１５）。これらの計量値は、本来は統計にもとづくものであり、下記により詳細に記述される。その後、該プロセスは、ブロック３１５で計算された計量値を使用して閾値比較を実行することにより、イメージセンサがカバー状態かどうかを決定する（３２０）。当該決定が、イメージセンサ２３０がカバー状態であることを示すとき、該プロセスはブロック３２５に進む。そうでなければ、カバー状態になるまで、ブロック３１５で分析を継続する。ブロック３１５および３２０の詳細は、図４の説明で以下に示される。
【００２９】
イメージセンサがカバー状態に入ったと決定されたとき、その後、プロセス３００は、イメージセンサが「非カバー状態」に遷移するときを決定するため、後に続くイメージフレームの分析を開始する（３２５と３３０）。ここに使用されるように、非カバー状態は、ユーザの指が、その動きが確実に追跡できる程度にイメージセンサから離れていった時の状態として定義される。これは、輝度およびまたは詳細な計量値およびそれらの経時変化の計算により決定できる。このプロセスの間、非カバーマップが、計算された計量値およびそれらの一時的な変化を記憶するために生成される。一旦非カバーマップが完成すると、非カバーマップが分析されるプロセス３３５へ進む。ブロック３２５および３３０の詳細は、図５の説明で以下に示される。
【００３０】
ブロック３３５では、非カバーマップが分析され、指がイメージセンサ２３０からどのように立ち去ったかを決定する。非カバーマップ内の空間の変化を分析することによって、指の動きの方向が決定できる（３３５）。この情報は、モバイルデバイスのグラフィカル・ユーザインタフェースに順に供給されるコマンドを解釈するために使用される。ブロック３３５および３４０の詳細は、図６の説明で以下に示される。
【００３１】
従って、発明の実施形態は、ユーザインタフェースのためのイメージベースの入力コマンドを処理する方法３００を含むことができる。該方法は、センサからイメージフレームを受信すること、およびセンサがカバー状態に入る時を決定すること（３１５、３２０）、後続のイメージフレームから、センサが非カバー状態に入る時を決定すること（３２５、３３０）、ユーザコマンドを解釈するために、該後続のイメージフレームに基づき情報を分析すること（３３５、３３０）、ユーザインタフェースへユーザコマンドを出すこと（３４０）、を含む。
【００３２】
さらに、発明の別の実施形態は、イメージベースのユーザインタフェースを持つ装置２００を含む。該装置はイメージセンサ２３０、およびメモリ２２５に接続されたプロセッサ２２０を含む。プロセッサは、センサからイメージフレームを受信し、センサがカバー状態に入る時を決定し（３１５、３２０）、後続のイメージフレームから、センサが非カバー状態に入る時を決定し（３２５、３３０）、ユーザコマンドを解釈するために該後続のイメージフレームに基づき情報を分析し（３３５、３３０）、ユーザインタフェースへユーザコマンドを出すロジック（３４０）、で構成できる。
【００３３】
図４は、イメージベースのタッチユーザインタフェースに関連したカバー状態を決定する典型的なプロセス４００を表現するフローチャートである。プロセス４００は、イメージセンサ２００からイメージフレームｉを受け取ることにより開始する（４１０）。その後、イメージフレームは、ｎ × ｍ個のタイルに分割される（例えば、２４０×３２０ポートレートプレビューフレーム（portrait preview frame）について、各タイルは、およそ６０×８０ピクセルを含み、ｎ＝ｍ＝４である）。その後、各タイルについて、プロセッサ２２０によって、輝度およびまたは詳細な計量値が、イメージの輝度チャネルからのピクセルに対し計算される（４２０）。各タイルの輝度の計量値は、各タイル内の平均輝度を決定することにより計算できる。詳細な計量値は、各タイルの標準偏差を決定することにより計算できる。標準偏差（ｓｔｄ）は、プロセッサ２２０による迅速な実行のために、以下の式で近似できる。
【数１】
2011510383.tif 000003
【００３４】
ここで、
ｖａｌ：８ビットのピクセルによって得られる強度値；
ｈｉｓｔ（ｖａｌ）：輝度値のヒストグラム、すなわち、輝度ｖａｌを持つタイル中のピクセル数；
ａｖｇ：以前に計算された平均輝度値。
【００３５】
上式が、輝度ピクセルが８ビットの整数を使用して記憶されると仮定することに注意すること。しかし、この式は他のデータタイプに対応するために修正することができ、また、発明の実施形態は、上述の式またはデータタイプに制限されない。
【００３６】
一旦輝度およびまたは詳細な計量値が、イメージフレームｉの中のすべてのタイルについて計算されると、プロセス４００は、予め定められた閾値を超えるタイルの数をカウントすること（４２５）へ進む。例えば、１つの実施形態では、３０未満の平均値および１００未満のｓｔｄ値を持つタイルの数が、カウントするために用いられる。その後、このカウント値は、それが閾値を超えるかどうかを決定するためにテストされる（４３０）。この閾値は予め定められていて、それは、イメージフレーム中のタイルの総数のある比率に設定することができる（例えば、予め定められた閾値数は、 .９５＊ｎ＊ｍに設定できる）。該カウント数が該閾値を超えない場合、フレームカウントはインクリメントされ、そして、次のイメージフレームがカバー状態の決定処理のために受信される（４３５、４１０）。一旦、当該カウント数が予め定められた閾値数を超えると決定されると、イメージセンサ２３０はカバー状態であると決定される。その後、次に述べるように、処理は非カバープロセス５００に進む。
【００３７】
図５は、イメージベースのタッチユーザインタフェースに関連した非カバー状態を決定する典型的なプロセス５００を描くフローチャートである。最初に、カバー状態が検知された時のイメージフレームに対応するタイル値の計量値は、５１０で記憶される。例えば、各タイルについて平均輝度およびｓｔｄが記憶される。これらの計量値は、参照タイル計量値としてここで呼ばれるデータ構造で記憶され、そこではテーブルは多次元マトリックスの形式をとる。
【００３８】
その後、次のイメージフレームがイメージセンサ２３０から受信され、上記のように  ｎ×ｍ個のタイルに分割される（５１５、５２０）。その後、プロセス５００は、カバー値決定のため、上述の方法で各タイルについて輝度およびまたは詳細な計量値を計算する（５２５）。一旦、プロセッサ２２０が各タイルの（１つまたは複数の）計量値を計算すると、各タイルは調べられ、そして、現在のタイルの計量値が、予め定められた量だけ参照タイル計量値を超えるとき、そこへトレイル値が割り当てられる。この比較プロセスは、現在のイメージフレームｊの中の各タイルと、イメージフレームｉに関連する以前に記憶された参照タイル計量値との間で実行される。この比較動作は、予め定められた閾値に基づくことができる。例えば、任意のタイルの平均輝度が対応する参照タイルの平均輝度を３０レベル超える場合、およびまたは該任意のタイルのｓｔｄが参照タイルのｓｔｄを９０レベル超える場合、タイルに対するトレイル値が計算される。
【００３９】
各トレイル値は１つのタイルに関連し、したがって、ｎ×ｍデータ構造に記憶される。トレイル値は次式を使用して計算できる。
【数２】
2011510383.tif 000004
【００４０】
ここで、
ｊ：時間に対応する現在のフレーム番号；
ａｖｇ（ｘ、ｙ）：フレームｊの中の位置ｘ、ｙのタイルの平均輝度値；
ｒｅｆＴｉｌｅ（ｘ、ｙ）：位置ｘ、ｙの参照タイルの平均輝度値；
およびＴ：閾値（例えば３０）。
【００４１】
一般に、トレイル値は、特定のタイルの覆いがいつなくなったかを示す。トレイル値が大きいほど、個々の覆いがなくなる時間が遅い。しかしながら、トレイル値は、様々なタイルの覆いがいつなくなったかに関し、「つながりを断つ」ために得た輝度の量と時間との両方の情報を含む。トレイル値の時間コンポーネントは、フレーム番号ｊによって符号化され、単に整数値を持つ。トレイル値の時間コンポーネントにより大きな精度を与えるために、時間情報（ｊ）が、現在のタイルの平均輝度とそれに対応する参照との間の違いによって修正できる。この違いが大きい場合、それは問題のタイルがより早くアンカバー（ｕｎｃｏｖｅｒ）となったことを示唆し、したがって、ある量が時間情報から差し引かれる（この量はスケーリングされた差異である）。各トレイル値は非カバーマップと呼ばれる二次元構造で記憶される。非カバーマップは、ｎ×ｍエントリーをもち、それぞれは現在のイメージフレームｊ中のタイル位置に対応する。例えば、トレイル値２９２をもつタイルは、トレイル１９２のタイルの後でアンカバーとなる（２００の範囲のタイルは、１００の範囲のタイルの後で非カバーとなる）。同じイメージフレームの間中アンカバーとなっているタイル間の「つながり（ties）」は、得られた光レベルに基づき「断たれる（broken）」ことになる。例えば、トレイル２９９をもつタイル（フレームｊ＝３、まだ少し暗い）は、トレイル２９２をもつタイル（フレームｊ＝３、しかし、記憶されているカバー状態での輝度値に比べてはるかに明るい）の後で非カバーとなったと仮定する。
【００４２】
一旦トレイル値が各タイル位置（ｎ、ｍタイル上の各ｘ、ｙ）について計算されると、非カバーマップは完成する。テストは、予め定められた数のタイルが、関連するトレイル値をもつかどうかを決定するために行われ（５３５）、これは、非カバー状態に関連する。予め定められた数のタイルは、例えば、フレーム内の大多数のタイルである。判定が真の場合、プロセスはプロセス６００のへ進む。そうでなければ、閾値数のフレームが処理されたかどうかを決定するためテストが行なわれる（５４０、５４５）。フレームの数が閾値を越える場合、それはユーザがイメージセンサ上に指を置いていることを示唆し、そして、コマンドは、「選択」あるいは「入力」と解釈できる。（例えば、通過したフレームの数は、２秒間に対応させるよう設定できる。）選択／入力コマンドは、マウスクリックあるいはキーボードで「Ｅｎｔｅｒ」キーを押すことと類似している。そして、それは、モバイルデバイス２００のＧＵＩにオブジェクトを選択するかあるいは値を入力するために使用することができる。
【００４３】
図６は、イメージベースのタッチユーザインタフェースに関連したユーザコマンドを決定する典型的なプロセス６００を描くフローチャートである。非カバーマップ（de-cover map）は、３次元表面と見なすことができ、ここで、ｘ、ｙインデックスはタイル位置であり、ｚ値は、レンズをデカバー（decover）するような指の動きの時間に対応するタイル値である。ブロック６１０では、非カバーマップの勾配が計算され、非カバーマップの最も急なアセント（assent）を決定する。非カバーマップ中の勾配およびトレイル値は、補助的または代替方法として閾値と比較され、ユーザがＧＵＩに「選択／入力」コマンドを入力したいかどうかを決定する（６１５と６３０）。この例では、トレイル値が高く、勾配が低い場合（トレイル値が一定であることを示す）、ユーザは、「選択／入力」コマンドを指示するため、指をイメージセンサ上にしっかりと保持している。
【００４４】
非カバーマップの勾配から、指の動きの方向は、多くの異なる方法で決定される（６２０）。例えば、プロセッサ２２０は、ｎ x ｍ 非カバーマップ中のｎ行およびｍ列のどれが最も強いかを計算で求めることができる。例えば次の非カバーマップについて：
４８０  ４８０  ５６０  ５７０
４７０  ４８０  ４８０  ５６０
４６０  ４７０  ４８０  ４８０
４４０  ４６０  ４７０  ４７０
最大の列は最後の列であり、また、最大の行は最初の行である。したがって、アルゴリズムは、カーソルを右上へ移動させるようにシステムに伝える。その方向がトレイル値の中で最大の密度を持つからである。一旦動きの方向が決定されれば、コマンドはユーザインタフェースに出力され、方向を示す。通常、これらのコマンドは、モバイルデバイス２００のデバイスドライバが容易に受け取れるフォーマットで作られる。
【００４５】
他の実施形態では、ユニークなユーザジェスチャが、他のコマンドとしてＩＢＴＵＩに与えられる。例えば、指の複数の動きは、モバイルデバイス２００のユニークな特徴を制御するのに使用されるか、または複数のステップをとる複数のコマンドのための「ショートカット」として使用される。例えば、イメージセンサを横切る指の２つの下方への動きは、特定の状況（例えばバーコードを走査するため短い露光を設定すること）で、写真を撮るために、イメージセンサのパラメータを制御するために使用される（つまり、オートフォーカス、自動露出、ハンドジッター（hand-jitter）低減などの制御）。
【００４６】
上で述べたように、イメージセンサ２００は、可視光線に対応する波長だけでなく、他の波長にも敏感である。例えば、イメージセンサ２００は、赤外線に敏感であり、よって微光の状況の中で使用できる。そのような実施形態は、ＩＲブロッキングフィルタを外す能力を持つセンサを利用できる。他のセンサは、可視光線の量が使用可能な閾値未満である場合に起動されるIＲ放射ソース（例えばＩＲ  ＬＥＤ）を利用できる。
【００４７】
さらに、非カバーマップは時間に対応する１つの次元を持つ多次元構造まで拡張できる。そのようなデータ構造は、位置に対応するｘ−ｙ次元、および時間に対応するｚ次元をもつ、３次元の矩形として視覚化できる。このデータ「ボリューム」において、各データ要素は、時間ｔｊのイメージフレーム中の ｘ,ｙ 地点におけるトレイル値に対応する。
【００４８】
当業者は、情報と信号は、様々な異なる技術および技法のうちのどれを使用しても表されることが理解できよう。例えば、上記の説明全体にわたって参照されているデータ、命令（instruction）、コマンド、情報、信号、ビット、シンボルおよびチップは、電圧、流れ、電磁波、磁界または磁粉、光場または光子、あるいはそれの任意の組合せによって表わすことができる。
【００４９】
さらに、当業者は、ここに示された実施形態に関して記述された、様々な実例となる論理的ブロック、モジュール、回路、およびアルゴリズムステップが、電子ハードウエア、コンピュータソフトウエア、あるいはこれら両方の組合せで実行されてもよいことは理解できよう。ハードウェアとソフトウェアのこの互換性を明瞭に説明するため、様々な実例となるコンポーネント、ブロック、モジュール、回路およびステップが、それらの機能性の点から、概略を上記で説明した。そのような機能性がハードウェアまたはソフトウェアで実装されるかどうかは、システム全体に課された特定用途および設計制約に依存する。当業者は、各特定用途向けに変更して説明された機能を実装できるが、そのような実装の決定は、発明の実施形態の範囲から逸脱するものとは解釈されるべきでない。
【００５０】
ここに示された実施形態に関して説明された方法、シーケンスおよびまたはアルゴリズムは、ハードウェアや、プロセッサによって実行されるソフトウェアモジュール、あるいはこの２つの組合せで直接的に具体化できる。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭあるいは他の従来技術で既知の記憶媒体の形式で存在し得る。典型的な記憶媒体は、プロセッサに接続され、プロセッサが該記憶媒体に対し情報の読み書きできるようになっている。あるいは、記憶媒体はプロセッサと一体となっている。
【００５１】
従って、発明の実施形態は、ここに説明された機能、ステップおよびまたはアクションに従うイメージベースのタッチユーザインタフェースについての方法を具体化するコンピュータ読み取り可能な媒体を含むことができる。したがって、発明の実施形態は、機械により実行されると、該機械に、ユーザインタフェースのイメージベースの入力コマンドを処理するオペレーションを実行させるプログラムコードを記憶した、コンピュータ読み取り可能媒体を含むことができる。該コンピュータ読み取り可能媒体は、センサからイメージフレームを受信するプログラムコード；該センサがカバー状態に入るときを決定するプログラムコード；後続のイメージフレームから、該センサが非カバー状態に入るときを決定するプログラムコード；ユーザコマンドを解釈するため、該後続のイメージフレームに基づき情報を分析するプログラムコード；および、ユーザインタフェースへ該ユーザコマンドを出すプログラムコード；を含む。従って、発明は図示された例に制限されず、しかも、ここに説明された機能を行なう任意の手段は発明の実施形態に含まれる。
【００５２】
前述の開示は、発明の実例となる実施形態を示しているが、添付のクレームによって定義されるように、本発明の要旨を逸脱しない範囲で様々な変更および修正が可能であることは明らかであろう。ここに説明された発明の実施形態に従った方法クレームの機能、ステップおよびまたはアクションは、特定の順序で実行される必要はない。更に、発明の複数の要素は、単数で記述されまたはクレームされているが、単数に限定することが明記されていなければ、複数を考慮している。
【図１Ａ】
2011510383.tif 000005
【図１Ｂ】
2011510383.tif 000006
【図１Ｃ】
2011510383.tif 000007
【図１Ｄ】
2011510383.tif 000008
【図２】
2011510383.tif 000009
【図３】
2011510383.tif 000010
【図４】
2011510383.tif 000011
【図５】
2011510383.tif 000012
【図６】
2011510383.tif 000013
【国際調査報告】
2011510383.tif 000014
2011510383.tif 000015