(57)【要約】【課題】接触入力型のデバイスにおけるオブジェクトの姿勢を精度よく検知する。【解決手段】ユーザの入力をコンピュータによって受け付けるシステムであって、接触検知型のディスプレイを用いて接触のイベントを検出するモジュールと、ディスプレイの表面近傍の画像をカメラを用いて撮影するモジュールと、ディスプレイに接触しているオブジェクトとディスプレイとの接触点を、前記接触検知型のディスプレイを用いて判断し、前記接触点の情報を前記接触のイベントに対応付けてメモリに格納するモジュールと、前記接触のイベントを検出したことに応じて、前記接触点の情報及び撮影した前記画像に基づいて、前記ディスプレイに接触しているオブジェクトの姿勢を、前記コンピュータのプロセッサを用いて判断するモジュールと、を備えるシステムを提供する。【選択図】図１
2014216006.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの入力をコンピュータによって受け付けるシステムであって、
接触検知型のディスプレイを用いて接触のイベントを検出するモジュールと、
前記ディスプレイの表面近傍の画像をカメラを用いて撮影するモジュールと、
前記ディスプレイに接触しているオブジェクトと前記ディスプレイとの接触点を、前記接触検知型のディスプレイを用いて判断し、前記接触点の情報を前記接触のイベントに対応付けてメモリに格納するモジュールと、
前記接触のイベントを検出したことに応じて、前記接触点の情報及び撮影した前記画像に基づいて、前記ディスプレイに接触しているオブジェクトの姿勢を、前記コンピュータのプロセッサを用いて判断するモジュールと、
を備えるシステム。
【請求項２】
前記接触検知型のディスプレイは、ユーザ・インターフェイスのウィジェットを表示し、
前記判断するモジュールは、表示された前記ウィジェットへのユーザによる接触のイベントを検出したことに応じて、接触している前記オブジェクトの前記ディスプレイの表面に対する傾き、および、前記ディスプレイの表面に垂直な軸を中心とした回転角度を判断する、
請求項１に記載のシステム。
【請求項３】
前記カメラは、前記ディスプレイの表面近傍の画像をポイント・クラウドとして捉えるために、奥行き方向の距離を検出する機能を備え、
前記判断するモジュールは、前記オブジェクトの前記接触点から予め定められた範囲のポイント・クラウドが形成する空間内の形状を、前記ディスプレイに接触しているオブジェクトの空間内の形状として判断し、当該形状に基づいて前記オブジェクトの姿勢を判断する、
請求項２に記載のシステム。
【請求項４】
前記判断するモジュールは、前記ポイント・クラウドを予め定められた円柱状の３次元モデルに近似することによって、当該３次元モデルが形成する形状を、前記ディスプレイに接触しているオブジェクトの形状として判断する、
請求項３に記載のシステム。
【請求項５】
前記検出するモジュールは、共に行われる前記ディスプレイに対する複数の接触のイベントを検出し、
前記格納するモジュールは、オブジェクトと前記ディスプレイとの複数の接触点をそれぞれ判断し、判断した前記接触点の情報をそれぞれの接触のイベントに対応付けて格納し、
前記判断するモジュールは、接触点ごとに、前記ディスプレイに接触しているオブジェクトの姿勢を判断する、
請求項４に記載のシステム。
【請求項６】
前記撮影するモジュールは、複数のカメラを用いて前記ディスプレイの表面近傍の画像を撮影し、
前記判断するモジュールは、前記複数のカメラを用いて撮影された複数の画像を合成することで得られるポイント・クラウドのうち、それぞれの前記接触点から予め定められた範囲にあるポイント・クラウドをそれぞれ選択し、選択したそれぞれのポイント・クラウドにより形成される形状を、接触しているそれぞれのオブジェクトの形状として判断する、
請求項５に記載のシステム。
【請求項７】
コンピュータを、ユーザの入力を受け付けるシステムとして機能させるためのプログラムであって、
前記コンピュータを、
接触検知型のディスプレイを用いて接触のイベントを検出するモジュールと、
前記ディスプレイの表面近傍の画像をカメラを用いて撮影するモジュールと、
前記ディスプレイに接触しているオブジェクトと前記ディスプレイとの接触点を、前記接触検知型のディスプレイを用いて判断し、前記接触点の情報を前記接触のイベントに対応付けてメモリに格納するモジュールと、
前記接触のイベントを検出したことに応じて、前記接触点の情報及び撮影した前記画像に基づいて、前記ディスプレイに接触しているオブジェクトの姿勢を判断するモジュールと、
として機能させるためのプログラム。
【請求項８】
ユーザの入力をコンピュータによって受け付ける方法であって、
前記コンピュータのプロセッサが、
接触検知型のディスプレイを用いて接触のイベントを検出し、
前記ディスプレイの表面近傍の画像をカメラを用いて撮影し、
前記ディスプレイに接触しているオブジェクトと前記ディスプレイとの接触点を、前記接触検知型のディスプレイを用いて判断し、前記接触点の情報を前記接触のイベントに対応付けてメモリに格納し、
前記接触のイベントを検出したことに応じて、前記接触点の情報及び撮影した前記画像に基づいて、前記ディスプレイに接触しているオブジェクトの姿勢を判断する、
方法。
【発明の詳細な説明】
【技術分野】
【０００１】
コンピュータ・デバイスのユーザ・インターフェイスに関連し、より具体的には、接触検知型のスクリーン上でオブジェクトの姿勢を判断するシステム及び方法に関する。
【背景技術】
【０００２】
接触型の入力デバイスが、スマートフォンやタブレットといった端末で使われるようになっている。接触型の入力デバイスにおいて、接触したか否かだけではなく、接触した領域のサイズを検知する技術も研究されている（非特許文献１を参照。）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ボアリング（Boring）ら、「大きい親指：一方の手によるモバイル・インタラクションのための親指接触サイズの使用（The Fat Thumb: Using the Thumb's Contact Size for Single-Handed Mobile Interaction）」、モバイル・デバイス及びサービスとのヒューマン−コンピュータ・インタラクションに関するＡＣＭ  ＳＩＧＣＨＩ国際会議予稿集（モバイルＨＣＩ２０１２）（Proceedings of the ACM SIGCHI's International Conference on Human-Computer Interaction with Mobile Devices and Services (Mobile HCI 2012)）、米国カリフォルニア州サンフランシスコ、２０１２年９月２１日〜２４日、頁１０
【非特許文献２】ルス（Rusu）ら、「３次元はここ：ポイント・クラウド・ライブラリ（ＰＣＬ）（3D is here: Point Cloud Library (PCL)）」、ロボティクス及び自動生産に関するＩＥＥＥ国際会議（ＩＣＲＡ）（IEEE International Conference on Robotics and Automation (ICRA)）、中国・上海、２０１１年
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、接触型の入力デバイスにおいて、これまで、接触したオブジェクト（例えばユーザの指）の姿勢を高い精度で検知することはできなかった。
【課題を解決するための手段】
【０００５】
本発明の第１の態様は、ユーザの入力をコンピュータによって受け付けるシステムであって、接触検知型のディスプレイを用いて接触のイベントを検出するモジュールと、前記ディスプレイの表面近傍の画像をカメラを用いて撮影するモジュールと、前記ディスプレイに接触しているオブジェクトと前記ディスプレイとの接触点を、前記接触検知型のディスプレイを用いて判断し、前記接触点の情報を前記接触のイベントに対応付けてメモリに格納するモジュールと、前記接触のイベントを検出したことに応じて、前記接触点の情報及び撮影した前記画像に基づいて、前記ディスプレイに接触しているオブジェクトの姿勢を、前記コンピュータのプロセッサを用いて判断するモジュールと、を備える。
【０００６】
本発明の第２の態様は、第１の態様のシステムであって、前記接触検知型のディスプレイは、ユーザ・インターフェイスのウィジェットを表示し、前記判断するモジュールは、表示された前記ウィジェットへのユーザによる接触のイベントを検出したことに応じて、接触している前記オブジェクトの前記ディスプレイの表面に対する傾き、および、前記ディスプレイの表面に垂直な軸を中心とした回転角度を判断する。
【０００７】
本発明の第３の態様は、第２の態様のシステムであって、前記カメラは、前記ディスプレイの表面近傍の画像をポイント・クラウドとして捉えるために、奥行き方向の距離を検出する機能を備え、前記判断するモジュールは、前記オブジェクトの前記接触点から予め定められた範囲のポイント・クラウドが形成する空間内の形状を、前記ディスプレイに接触しているオブジェクトの空間内の形状として判断し、当該形状に基づいて前記オブジェクトの姿勢を判断する。
【０００８】
本発明の第４の態様は、第３の態様のシステムであって、前記判断するモジュールは、前記ポイント・クラウドを予め定められた円柱状の３次元モデルに近似することによって、当該３次元モデルが形成する形状を、前記ディスプレイに接触しているオブジェクトの形状として判断する。
【０００９】
本発明の第５の態様は、第４の態様のシステムであって、前記検出するモジュールは、共に行われる前記ディスプレイに対する複数の接触のイベントを検出し、前記格納するモジュールは、オブジェクトと前記ディスプレイとの複数の接触点をそれぞれ判断し、判断した前記接触点の情報をそれぞれの接触のイベントに対応付けて格納し、前記判断するモジュールは、接触点ごとに、前記ディスプレイに接触しているオブジェクトの姿勢を判断する。
【００１０】
本発明の第６の態様は、第５の態様のシステムであって、前記撮影するモジュールは、複数のカメラを用いて前記ディスプレイの表面近傍の画像を撮影し、前記判断するモジュールは、前記複数のカメラを用いて撮影された複数の画像を合成することで得られるポイント・クラウドのうち、それぞれの前記接触点から予め定められた範囲にあるポイント・クラウドをそれぞれ選択し、選択したそれぞれのポイント・クラウドにより形成される形状を、接触しているそれぞれのオブジェクトの形状として判断する。
【００１１】
本発明の第７の態様は、コンピュータを、ユーザの入力を受け付けるシステムとして機能させるためのプログラムであって、前記コンピュータを、接触検知型のディスプレイを用いて接触のイベントを検出するモジュールと、前記ディスプレイの表面近傍の画像をカメラを用いて撮影するモジュールと、前記ディスプレイに接触しているオブジェクトと前記ディスプレイとの接触点を、前記接触検知型のディスプレイを用いて判断し、前記接触点の情報を前記接触のイベントに対応付けてメモリに格納するモジュールと、前記接触のイベントを検出したことに応じて、前記接触点の情報及び撮影した前記画像に基づいて、前記ディスプレイに接触しているオブジェクトの姿勢を判断するモジュールと、として機能させる。
【００１２】
本発明の第８の態様は、ユーザの入力をコンピュータによって受け付ける方法であって、前記コンピュータのプロセッサが、接触検知型のディスプレイを用いて接触のイベントを検出し、前記ディスプレイの表面近傍の画像をカメラを用いて撮影し、前記ディスプレイに接触しているオブジェクトと前記ディスプレイとの接触点を、前記接触検知型のディスプレイを用いて判断し、前記接触点の情報を前記接触のイベントに対応付けてメモリに格納し、前記接触のイベントを検出したことに応じて、前記接触点の情報及び撮影した前記画像に基づいて、前記ディスプレイに接触しているオブジェクトの姿勢を判断する。
【発明の効果】
【００１３】
本発明の構成を備えない場合と比較して、接触型の入力デバイスにおいて接触したオブジェクトの姿勢を検出する精度を高めることができる。
【図面の簡単な説明】
【００１４】
【図１】本実施例における、接触のイベントの間に指の姿勢を判断することができる携帯型のコンピュータ・システムを示す。
【図２】本実施例における、接触のイベントの間に指の姿勢を判断することができるデスクトップ型のコンピュータ・システムを示す。
【図３】接触のイベントの間に指の姿勢を判断することができるコンピュータ・システムの例において、それぞれのコンポーネントが配置される例を示す。
【図４】接触のイベントの間に指の姿勢を判断できるコンピュータ・システム４００の例を示す。
【図５】接触のイベントの間に指の姿勢を判断する方法における処理シーケンスの例を示す。
【図６】指の姿勢を判断する処理の例を視覚化したものである。
【図７】複数の奥行き検出機能つきカメラを用いて指の姿勢を判断するシステムの例を示す。
【発明を実施するための形態】
【００１５】
「関連技術の説明」
接触型の入力は、いまやスマートフォンやタブレットなどの携帯デバイスにおいてよく使われる入力方法となった。接触型の入力は、デスクトップ型のコンピュータの分野でも需要が増大しており、さらに、大型のテーブル型のシステムや壁面型のディスプレイでも広く使われるようになっている。関連の技術では、ユーザの入力にしたがって接触点の座標を得ることしかできなかった。最も高性能なタッチスクリーンを用いても、接触のイベントに関連付けて接触した領域のサイズを知ることしかできない。例えば、先述の非特許文献１を参照されたい。そして、そのような関連技術によっては、接触のイベントに関してそれ以上の情報を得ることはできなかった。
【００１６】
多くのアプリケーション・プログラムにとっては、ユーザによる接触のイベントに関して、ユーザの指の垂直軸(タッチスクリーンの平面に直角な軸)に対する回転角度や、その傾きなどの、追加の情報を得ることができれば有用であろう。そのような回転角度や傾きの情報を得ることで、入力のためのジェスチャーを表現力が豊かで特徴的なものにすることができるばかりでなく、そのような追加的な入力の自由度を活かした新たなタイプのウィジェットを画面に表示できるようになろう。
【００１７】
ゆえに、ユーザから接触の入力を受け付けることのできる改善されたシステム及び方法が必要である。
【００１８】
ここで述べる技術は接触型の入力を行ったオブジェクトについて、奥行き検出機能付きのカメラを用いて、傾きおよび回転のパラメータを判断する。この技術分野においてはよく知られるように、奥行き検出機能つきのカメラは、従来の画像イメージ（カラーの場合もある）の撮影だけでなく、撮影された画像イメージの各ピクセルについて奥行きの情報を取得することができる（即ち、奥行き情報付き画像を撮影することができる）。ある実施例においては、以下に述べるように、タッチスクリーンと少なくとも１つの奥行き検出機能付きカメラを組み合わせたコンピュータ・システムが用いられる。これらのタッチスクリーンおよび奥行き検出機能付きカメラは、ここで述べるソフトウェア・モジュールと組み合わせて用いられ、タッチスクリーンへの入力に指の姿勢を判断する機能を付け加え、これによって、ユーザによるタッチスクリーンとのやり取りを優れたものにすることができる。ここで用いられる「姿勢」という用語は、例えば傾きや回転角度のパラメータによって決定することができる、空間的な向きを意味する。
【００１９】
「実施形態」
図１は、接触のイベント中に上述の指の姿勢の判断を行うことができるモバイル・コンピュータ・システム１００の例を示す。ある実施例において、モバイル・コンピュータ・システム１００は、例えばスマートフォン、パーソナル・デジタル・アシスタント（ＰＤＡ）、あるいはタブレット・コンピュータなどの、商業的に利用可能であって当業者にはよく知られたモバイル・コンピュータ・システムのフォームファクタとして実装されてもよい。他の例として、モバイル・コンピュータ・システム１００は、ラップトップ型やノートブック型のコンピュータとして実装されてもよい。更に他の例として、モバイル・コンピュータ・システム１００は、エンベデッド・システム、例えば電子ブックリーダ(e-book)などの、特定の機能を有する電子デバイスに組み込まれてもよい。
【００２０】
モバイル・コンピュータ・システム１００は、それが有する様々なハードウェア・コンポーネントの間で通信するために、データバス１０４やその他の相互接続機能を有してもよい。さらに、モバイル・コンピュータ・システム１００は、情報の処理を行ったり、計算の処理や制御の処理を行ったりするために、データバス１０４と電気的に接続された中央処理装置（ＣＰＵあるいは単にプロセッサ）を有してもよい。モバイル・コンピュータ・システム１００は、ランダムアクセスメモリ（ＲＡＭ）などのメモリ１１２、あるいは、他の動的なストレージデバイスをさらに有し、様々な情報のみならずプロセッサ１０１によって実行されるべき命令列を格納する。メモリ１１２は、例えば磁気ディスク、光学ディスク、ソリッドステート・フラッシュメモリ、あるいはその他の不揮発性のソリッドステート・ストレージデバイスなどの、恒久的なストレージデバイスをさらに含んでよい。
【００２１】
ある実施例において、メモリ１１２は、プロセッサ１０１による命令列の実行中に、一時的な変数や他の中間情報を保存するために更に用いられてもよい。また、モバイル・コンピュータ・システム１００は、データバス１０４に接続された読み出し専用メモリ（ＲＯＭやＥＰＲＯＭなど）１０２や他の静的なストレージデバイスを有し、プロセッサ１０１の静的な情報や命令列、例えば、モバイル・コンピュータ・システム１００の動作に必要なファームウェア、基本入出力システム（ＢＩＯＳ）、その他の設定パラメータなどを格納してもよい。
【００２２】
ある実施例において、モバイル・コンピュータ・システム１００は、ディスプレイ装置１０９を含んでよく、そして、ディスプレイ装置１０９は、データバス１０４に接続されて、モバイル・コンピュータ・システム１００のユーザに、様々な情報を表示する。これに代えて、ディスプレイ装置１０９は、不図示のグラフィックコントローラおよび／またはグラフィックプロセッサと関連付けられていても良い。当業者であれば明らかであるが、薄膜トランジスタ（ＴＦＴ）技術を用いて、あるいは、有機発光ダイオード（ＯＬＥＤ）技術を用いて製造された、液晶ディスプレイ（ＬＣＤ）としてディスプレイ装置１０９が実装されてもよい。様々な実施例において、ディスプレイ装置１０９は、モバイル・コンピュータ・システム１００のその他のコンポーネントと同じ筐体に組み込まれても良い。これに代えて、ディスプレイ装置１０９は、そのような筐体の外に、例えば机やテーブルの表面に設けられても良い。
【００２３】
ある実施例においては、当業者であれば明らかであるが、モバイル・コンピュータ・システム１００は、ＭＰＥＧ−３ファイルや、様々なビデオファイルの音声トラックであるＭＰＥＧ−４などの様々な音声ファイルを再生可能であって、データバス１０４に電子的に接続された、音声（オーディオ）再生装置１２５をさらに含んでよい。この目的のため、モバイル・コンピュータ・システム１００は、不図示の音声波形プロセッサまたはそれに類するデバイスをさらに組み込んで良い。
【００２４】
ある実施例において、モバイル・コンピュータ・システム１００は、例えばユーザの接触のコマンドを受け付けるためのタッチスクリーン・インターフェイス１１０などの、１つまたは複数の入力デバイスを組み込んでいてもよい。タッチスクリーン・インターフェイス１１０は、当業者にとって良く知られているように、電気抵抗、音響、電気容量、またはその他の物理的な原理や効果に基づいて動作するものであってよい。ディスプレイ装置１０９と組み合わせて用いられるタッチスクリーン・インターフェイス１１０によって、ディスプレイ装置１０９は、タッチスクリーンとしての役割を果たすことができる。このような、タッチスクリーン・インターフェイス１１０とともに動作するディスプレイ装置１０９を、接触検知型のディスプレイ装置、あるいは、単にタッチスクリーンと呼ぶ。
【００２５】
モバイル・コンピュータ・システム１００は、指の姿勢を判断するために用いられる画像やビデオをキャプチャするための奥行き検出カメラ１１１や、キーボード１０６を備えてよく、これらはデータバス１０４に接続され、プロセッサ１０１に対するユーザのコマンドや、画像やビデオなどを含む情報を、やり取りしてよい。ある実施例において、入力デバイスは、モバイル・コンピュータ・システム１００の背面（前面、すなわち表示面の反対）に位置する接触検知型のデバイスをさらに備えてもよい。
【００２６】
ある実施例において、モバイル・コンピュータ・システム１００は、現在のその地理的な位置や空間的な向きのみならず、加速度などの情報を、データバス１０４を介してプロセッサ１０１に供給してもよい。地理的な位置の情報は、例えば、全地球位置測位システム（ＧＰＳ）技術、および／または、携帯電話の電波タワーやＷｉＦｉホットスポットによって供給される情報を用いた他の技術などを用いて、位置及び向き検出モジュール１０３によって取得されてもよい。加速度のデータは、位置及び向き検出モジュール１０３に組み込まれた加速度計によって供給されてもよい。最後に、向きの情報は、重力方向を含む３軸すべての方向における加速度の測定によって取得されてもよい。ある実施例において、位置、向き、および、加速度のメタデータは、データ・ストレージ・ユニット１２０によって継続的に記録され、保存されてよい。
【００２７】
ある実施例において、モバイル・コンピュータ・システム１００は、データバス１０４に接続されたネットワーク・インターフェイス１０５などを含む通信インターフェイスをさらに有してもよい。ネットワーク・インターフェイス１０５は、ＷｉＦｉアダプタ１０７および／または携帯電話のネットワーク（ＧＳＭ（登録商標）あるいはＣＤＭＡ）のアダプタ１０８の少なくとも１つを用いて、モバイル・コンピュータ・システム１００およびインターネット１２４の間の接続を確立してよい。ネットワーク・インターフェイス１０５は、モバイル・コンピュータ・システム１００およびインターネット１２４の間の２方向のデータ通信を可能にしてもよい。ＷｉＦｉアダプタ１０７は、当業者によく知られた８０２．１１ａ、８０２．１１ｂ、８０２．１１ｇおよび／または８０２．１１ｎのプロトコルだけでなく、Ｂｌｕｅｔｏｏｔｈ（登録商標）のプロトコルに従って動作して良い。ある実施例において、ＷｉＦｉアダプタ１０７および携帯電話のネットワーク（ＧＳＭ（登録商標）またはＣＤＭＡ）のアダプタ１０８は、様々なタイプの情報を表すデジタルデータのストリームを伝搬させるための、電子的なあるいは電磁的な信号を送受信しても良い。
【００２８】
ある実施例において、インターネット１２４は、典型的には、１つまたは複数のサブネットワークを介して他のネットワーク資源とデータ通信を行う。このように、モバイル・コンピュータ・システム１００は、遠隔のメディアサーバ、ウェブサーバ、他のコンテンツサーバのみならず、他のネットワーク型データ・ストレージなどの、インターネット１２４上の如何なる場所に位置する多様なネットワーク資源にアクセスすることができる。ある実施例において、モバイル・コンピュータ・システム１００は、ネットワーク・インターフェイス１０５を用いることで、インターネット１２４を含むさまざまなネットワークを介して、メッセージ、メディア、アプリケーション・プログラムのコードを含む他のデータなどを送受信できる。インターネットの例において、モバイル・コンピュータ・システム１００がネットワーク・クライアントとして機能した場合、モバイル・コンピュータ・システム１００で実行されるアプリケーション・プログラムのために、コードまたはデータを要求してもよい。同様に、様々なデータやコンピュータのコードを他のネットワーク資源に対して送信しても良い。
【００２９】
ある実施例において、ここで述べた機能は、プロセッサ１０１がメモリ１１２に含まれる１つまたは複数の命令列を実行することに応じて、モバイル・コンピュータ・システム１００によって実現されてよい。このような命令列は、他のコンピュータ可読媒体からメモリ１１２に読み込まれても良い。メモリ１１２に含まれる命令列の実行によって、プロセッサ１０１はここで述べた様々な処理ステップを実行することができる。他の実施例において、この発明の実施例を実現するために、ソフトウェアの命令列に代えて、またはこれと組み合わせて、ハードウェア組み込み型の回路が用いられてもよい。このように、この発明について述べた実施例は、ハードウェアによる回路および／またはソフトウェアの特定の組み合わせに限定されるものではない。
【００３０】
ここで用いられた「コンピュータ可読媒体」という用語は、プロセッサ１０１による実行のために供給される命令列を供給するために関与する如何なる種類の媒体をさしてもよい。コンピュータ可読媒体は、機械可読媒体の単なる１つの例であって、それによって、ここで述べた方法および／または技術を実現するための命令列を搬送できるようにするものである。そのような媒体は、不揮発性または揮発性の媒体を含む様々な形態を取りうるが、これに限定されない。
【００３１】
非一時的なコンピュータ可読媒体の形態とは、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、あるいは、他の磁気媒体、ＣＤ−ＲＯＭ、他の光学媒体、パンチカード、紙テープ、穿孔のパターンを伴う他の物理的な媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、フラッシュＥＰＲＯＭ、フラッシュドライブ、メモリカード、他のメモリチップまたはメモリカードリッジ、あるいは、コンピュータが読みだすことのできる如何なる他の媒体である。様々な形態のコンピュータ可読媒体を、１つまたは複数の命令を含む１つまたは複数の命令列をプロセッサ１０１による実行のために搬送するため、用いることができる。例えば、離れた場所にあるコンピュータから、まず始めに、命令列が磁気ディスクに移される。これに代えて、離れた場所にあるコンピュータは、命令列をダイナミック・メモリにロードし、その命令列をインターネット１２４を経由して送信しても良い。具体的には、当業者には明らかであるが、これらのコンピュータの命令列は上述の離れた位置にあるコンピュータから、インターネット１２４を介して、ネットワーク上のデータ通信に関する様々なプロトコルを用いて、メモリ１１２にダウンロードされてもよい。
【００３２】
ある実施例において、モバイル・コンピュータ・システム１００のメモリ１１２は、下記の如何なるソフトウェアプログラム、アプリケーション、またはモジュールを格納してもよい：
【００３３】
１．オペレーティング・システム（ＯＳ）１１３。モバイル・コンピュータ・システム１００の基本的なシステムサービスおよび様々なハードウェア・コンポーネントを管理するため。オペレーティング・システム１１３の具体例は当業者には明らかであり、そして、如何なる既知の、あるいは、今後に開発されるモバイル用のオペレーティング・システムを含んでよい。
【００３４】
２．アプリケーション１１４。アプリケーション１１４は、例えば、モバイル・コンピュータ・システム１００のプロセッサ１０１によって実行される一連のアプリケーション・プログラムを含む。これにより、モバイル・コンピュータ・システム１００は、奥行き検出機能付きカメラ１１１を用いて画像やビデオをキャプチャしたり、タッチスクリーン・インターフェイス１１０を用いてユーザからの接触型の入力を検出したりといった、予め定められた特定の機能を実行することができる。ある実施例において、アプリケーション１１４は、後に詳しく述べるような、本発明に係る接触型の入力を検出するためのアプリケーション１１５を含んでもよい。
【００３５】
３．データ・ストレージ１２０。データ・ストレージ１２０は、キャリブレーション・モジュール１１９によって生成されたキャリブレーション・データを格納するために、例えば、キャリブレーション・データ・ストレージ１２１を有してよい。
【００３６】
ある実施例において、本実施例に係る接触型入力アプリケーション１１５は、ユーザ・インターフェイス生成モジュール１１６を有し、モバイル・コンピュータ・システム１００のディスプレイ装置１０９にユーザ・インターフェイスを表示してもよい。本実施例に係る接触型入力アプリケーション１１５は、画像キャプチャ・モジュール１１７を更に有し、例えばユーザの手の画像を奥行き検出機能付きカメラ１１１で撮影させたり、タッチスクリーン上の指の姿勢を判断するために撮影した画像を処理モジュール１１８によって処理させたり、あるいは、下記に詳しく述べるキャリブレーション処理をキャリブレーション・モジュール１１９によって実行させたりしてもよい。
【００３７】
他の実施例においては、図２に例示するように、ここで述べる接触のイベントの最中に指の姿勢を判断する技術は、デスクトップ型のコンピュータ・システム２００において実装されてもよい。ある実施例において、デスクトップ型のコンピュータ・システム２００は、図１のモバイル・コンピュータ・システム１００のデータバス１０４と同一または実質同一な役割を果たすデータバス２０４を有してよい。さまざまな実施例において、データバス２０４は、データバス１０４と同一または異なる相互接続、および／または通信のためのプロトコルを用いてよい。デスクトップ型のコンピュータ・システム２００について、１つまたは複数のプロセッサ（ＣＰＵ）２０１、ネットワーク・インターフェイス（アダプタ）２０５、ＥＰＲＯＭ／ファームウェア・ストレージ２０２、ディスプレイ装置２０９およびキーボード２０６は、これらがデスクトップ型の装置に実装されることのほかは、モバイル・コンピュータ・システム１００におけるプロセッサ１０１、ネットワーク・インターフェイス１０５、ＥＰＲＯＭ／ファームウェア・ストレージ１０２、ディスプレイ装置１０９およびキーボード１０６と、それぞれ、実質的に同様である。さまざまな実装において、１つまたは複数のプロセッサ２０１は、プロセッサ１０１と比べて大幅に処理能力が高い。
【００３８】
入力デバイス２０６（キーボード）に加えて、デスクトップ型のコンピュータ・システム２００は、さらにタッチスクリーン・インターフェイス２１０を備え、ユーザによる接触のコマンドを受け付けてもよいし、奥行き検出カメラ２１１を備え、指の姿勢を判断するために画像やビデオをキャプチャしてもよい。
【００３９】
デスクトップ型のコンピュータ・システム２００のＬＡＮ／ＩＳＤＮアダプタ２０７が更に実装されてもよく、これにより、例えば、サービス総合デジタル網（ＩＳＤＮ）またはモデムを用いて、それぞれそれに対応する種類の電話回線に接続し、インターネット・サービスプロバイダのハードウェア（不図示）を用いてインターネット１２４に接続してよい。他の例として、ＬＡＮ／ＩＳＤＮアダプタ２０７は、ローカルエリアネットワーク・インターフェイス・カード（ＬＡＮ  ＮＩＣ）であってもよく、これにより、それと互換性を有するＬＡＮおよびインターネット１２４とデータ通信を行ってもよい。さまざまなメディアファイルを格納するために、デスクトップ型のコンピュータ・システム２００は、ストレージ・コントローラ２０３によってデータバス２０４に接続されたメディア・ストレージ２０８とともに用いられてもよい。
【００４０】
ある実施例において、デスクトップ型のコンピュータ・システム２００のメモリ２１２は、以下に説明するアプリケーションまたはモジュールのいずれかを格納してもよい：
【００４１】
１．オペレーティング・システム（ＯＳ）２１３。デスクトップ型のコンピュータ・システム２００の基本的なシステムサービスおよび様々なハードウェア・コンポーネントを管理するため。オペレーティング・システム２１３の具体例は当業者には明らかであり、そして、如何なる既知の、あるいは、今後に開発されるモバイル用のオペレーティング・システムを含んでよい。
【００４２】
２．ネットワーク通信モジュール２１４。ネットワーク通信モジュール２１４は、例えば、１つまたは複数のネットワーク・プロトコル・スタックを有してよく、これを用いることで、デスクトップ型のコンピュータ・システム２００とインターネット１２４上の、例えばモバイル・コンピュータ・システム１００のような、さまざまなネットワーク構成要素との間で、ＬＡＮ／ＩＳＤＮアダプタ２０７とともに動作するネットワーク・インターフェイス（アダプタ）２０５を用いて、通信を確立させることができる。
【００４３】
３．アプリケーション２１５。アプリケーション２１５は、例えば、デスクトップ型のコンピュータ・システム２００のプロセッサ２０１によって実行される一連のアプリケーション・プログラムを含む。これにより、デスクトップ型のコンピュータ・システム２００は、予め定められた特定の機能を実行することができる。ある実施例において、アプリケーション２１５は、上述のモバイル・コンピュータ・システム１００の接触型入力アプリケーション１１５と実質的に同じように動作する、接触型入力アプリケーション２１６を含んでよい。
【００４４】
ある実施例において、接触型入力アプリケーション２１６は、デスクトップ型のコンピュータ・システム２００のディスプレイ装置２０９にユーザ・インターフェイスを表示させるためのユーザ・インターフェイス生成モジュール２１７を有してよい。接触型入力アプリケーション２１６は、さらに、奥行き検出カメラ２１１に例えばユーザの手の画像をキャプチャさせるための画像キャプチャ・モジュール２１８と、タッチスクリーン上の指の姿勢を判断するためにキャプチャした画像を処理する処理モジュール２１９と、キャリブレーション処理を行うキャリブレーション・モジュール２２０とを有する。接触型入力アプリケーション２１６に関する上述のモジュール２１７、２１８、２１９および２２０は、モバイル・コンピュータ・システム１００に実装された接触型入力アプリケーション１１５に関するモジュール１１６、１１７、１１８および１１９の各々と実質的に同じように動作してよい。
【００４５】
４．データ・ストレージ２２１。データ・ストレージ２２１は、例えば、キャリブレーション・モジュール２２０によって生成されるキャリブレーション・データを格納するキャリブレーション・データ・ストレージ２２２を有してよい。
【００４６】
図３は、接触のイベントの際に指の姿勢を判断することができるコンピュータ・システム３００に関して、ある特定のコンポーネントが配列される例を示す。ここで示す実施例において、奥行き検出カメラ１１１は、奥行き検出カメラ１１１の視野３０３にモバイル・コンピュータ・システム１００のタッチスクリーン１０９／１１０が収まるように、モバイル・コンピュータ・システム１００の筐体の中に設けられるか、あるいは、その筐体に取り付けられる。ある実施例において、奥行き検出カメラ１１１は、接触イベントの際にユーザの指３０６の画像を適切に撮影できるようにするため、モバイル・コンピュータ・システム１００のタッチスクリーン１０９／１１０の表面と実質的に平行な方向３０５を向いている。モバイル・コンピュータ・システム１００について、奥行き検出カメラ１１１およびタッチスクリーン１０９／１１０をここで説明したように配列することで、タッチスクリーン１０９／１１０に対する指の傾きの角度３０７を検出するばかりでなく、タッチスクリーン１０９／１１０の平面に垂直な軸３０８を中心とした指の回転角度３０９（方位角）をも検出することができる。即ち、図３に説明した実施例３００によれば、傾きの角度３０７だけでなく回転の角度３０９（方位角）をも含む２つの自由度を持った２つの座標を、接触のイベントに関連付けて検出することができる。これらの２つの角度は、接触のイベントの際に、指３０６とタッチスクリーン１０９／１１０の表面との接触点についての平面上の２つの座標値（ｘおよびｙ）に加えて提供される。
【００４７】
ある実施例において、奥行き検出カメラ１１１は、図３に説明したものと同様な形態で、デスクトップ型のコンピュータ・システム２００のディスプレイ装置２０９に組み込まれて、あるいは、これに取り付けられてよい。注目すべきことに、本発明は、ここで示した奥行き検出カメラ１１１およびタッチスクリーン・ディスプレイ１０９／１１０の配列だけに限定されず、本発明の範囲及び精神から逸脱することなく、ほかにもさまざまな適切な配列を行うことができる。奥行き検出カメラ１１１は、接触のイベントの際にユーザの指の画像を撮影できるようにするために、タッチスクリーン・ディスプレイ１０９／１１０に対して先述のものとは異なる位置において、異なる角度を向くように配置されてもよい。
【００４８】
図４は、接触のイベントの際に指の姿勢を判断することができるコンピュータ・システム４００の例を示す。本実施例に係るコンピュータ・システム４００は、奥行き検出カメラ１１１を取り付けたタブレット・コンピュータあるモバイル・コンピュータ・システム１００を含み、この奥行き検出カメラ１１１は、奥行き検出カメラ１１１の視野にタブレット・コンピュータ（モバイル・コンピュータ・システム１００）のタッチスクリーン・ディスプレイ１０９／１１０が収まるように取り付けられる。接触のイベントの際に、奥行き検出カメラ１１１は、不図示のユーザの指の画像を撮影する。
【００４９】
モバイル・コンピュータ・システム１００および／またはデスクトップ型のコンピュータ・システム２００に実装されるさまざまなソフトウェア・モジュールの動作について詳しく述べる。下記の説明においては、モバイル・コンピュータ・システム１００について具体的なハードウェア・コンポーネントおよびソフトウェア・モジュールについて詳しく述べるが、同様なハードウェア及びソフトウェアがデスクトップ型のコンピュータ・システム２００にも実装し得ることを理解されたい。
【００５０】
ある実施例において、接触型入力アプリケーション１１５は、タッチスクリーン・インターフェイス１１０から受取った信号に基づいて接触のイベントを検出し、奥行き検出カメラ１１１を用いてユーザの指の画像を撮影し、撮影した奥行き情報付き画像の処理を実行する。この画像の処理においては、ユーザの１本の指を現すポイント・クラウドの一部をシリンダーの形状に近似する処理を行う。具体的には、図５は、接触のイベントの際に指の姿勢を判断する方法の処理シーケンス５００の例を示す。
【００５１】
図５を参照すると、まず、ステップ５０１において、接触型入力アプリケーション１１５は、ユーザによる接触のイベントを検出するためのタッチスクリーン・インターフェイス１１０を用いる。ある実施例において、上述の接触のイベントは、ユーザが、接触型入力アプリケーション１１５のユーザ・インターフェイス生成モジュール１１６によってディスプレイ装置１０９上に生成されたグラフィック・ユーザ・インターフェイスに関連して行うものである。ここでいうグラフィック・ユーザ・インターフェイスには、ユーザによって制御される、複数のユーザ・インターフェイスのウィジェットが含まれる。
【００５２】
ステップ５０１においてユーザによる接触のイベントが検出されると、接触型入力アプリケーション１１５の画像キャプチャ・モジュールは、ステップ５０２に示すように、奥行き検出カメラ１１１を用いて１つまたは複数の画像の撮影を開始する。奥行き検出カメラ１１１によって撮影された画像は、既存の画像情報とともに、奥行き（カメラからオブジェクトまでの距離）の情報をその画像の各ピクセルに対応付けて取得する。奥行き検出カメラによって撮影された、奥行き方向の情報を含む画像は、奥行き画像（depth image）と呼ばれる。ステップ５０３において、処理モジュール１１８は、２次元の奥行き情報付きの入力画像の各ピクセルを、現実世界の座標系の３次元の点に変換する。変換された２次元の奥行き画像の全てのピクセルは、この後のステップにおいて用いられるポイント・クラウドを形成する。ステップ５０４において、処理モジュール１１８は、ステップ５０３において取得されたポイント・クラウドをフィルタして、ユーザがタッチスクリーンとやり取りする際の関心空間に位置する点の群、すなわち、ユーザの指がタッチスクリーンと物理的に接触するために位置しなければならない空間に位置する点の群を選択する。ある実施例において、関心空間は、タッチスクリーンの真上の１５センチメートル（６インチ）ほどの空間を含む。
【００５３】
ある実施例において、奥行き検出機能付きカメラの解像度によっては、ステップ５０５において、処理モジュール１１８はポイント・クラウドの中の点の数を減らして管理可能な数に変換し（サンプル抽出、あるいは、ダウンサンプルし）、後の処理の負荷を減らすようにしてもよい。ある実施例において、ポイント・クラウドは、当業者には良く知られたボクセルグリッドを用いてダウンサンプルされてもよい。ステップ５０６において、処理モジュール１１８は、タッチスクリーン１０９／１１０の平面上に位置する奥行き検出カメラ１１１に最も近い点を探すことで、ユーザの指がタッチスクリーン１０９／１１０とやり取りする位置を特定してもよい。ステップ５０６において最も近い点を識別しやすくするため、指とタッチスクリーンの接触点の座標５１０が、種(シード)となる点として用いられてもよい。
【００５４】
ステップ５０７において、処理モジュール１１８は、ステップ５０６において特定された最も近い点の近傍において、当該最も近い点に近い点の集合を更に探し出す。ある実施例においては、上述の近い点の集合を探し出すために、当業者には良く知られた最近傍探索またはフラッドフィル（Flood Fill）のアルゴリズムが用いられてもよい。ある実施例において、処理モジュール１１８は、種となる点に最も近い予め定められたＮ個の点を探し出してもよい。他の実施例において、処理モジュール１１８は、予め定められた値よりもその種となる点からの距離が短い点の集合を探し出してもよい。
【００５５】
このようにして見つけられた最も近い点の集合は、ユーザの指の画像に対応する。ステップ５０８において、処理モジュール１１８は、指の空間的な向きに関するパラメータを判断するために、これらの最も近い点の集合を、シリンダー・モデルによって近似する。ある実施例において、これは、当業者によく知られたランダム・サンプル・コンセンサス（ＲＡＮＳＡＣ）の手法によって実現されてもよい。
【００５６】
最後に、ステップ５０９において、指の傾き角度３０７および回転角度３０９に関する回転行列（クォータニオン）、あるいは、オイラー角が出力として返される。注目するべきことに、この手法は、シリンダー・モデルへの近似を利用することには限定されず、ユーザの指の形を近似するのに適した他の如何なる３次元モデルを用いることもできる。これに加えて、ランダム・サンプル・コンセンサスの代わりに、他の適切なモデルによる近似の手法が用いられてもよい。注目するべきことに、ここで述べられた技術は、ユーザの指を用いたタッチスクリーンとのやり取りには限定されず、他のオブジェクトや体の一部がユーザによってタッチスクリーン１０９／１１０とやり取りするために用いられてもよく、そしてその場合には、入力に用いられる特定のオブジェクトや体の一部に適した３次元モデルが、ポイント・クラウドの近似のために選択されてもよい。
【００５７】
ある実施例において、ここで述べられた手法を、複数の指の姿勢を検出することに拡張することもできる。このためには、処理モジュール１１８は、タッチスクリーン１０９／１１０に接触する複数の指（あるいは複数のその他のオブジェクト）に対応する空間において、近似のために複数のシリンダーを配置してよい。ある実施例において、図５に関連して説明した上述の手法は、接触のイベントのたびに、タッチスクリーン１０９／１１０に接触する指の形状を近似するために用いることができる。具体的には、モバイル・コンピュータ・システム１００のタッチスクリーン・インターフェイス１１０によって、指とタッチスクリーンとが接触するそれぞれの接触点の位置の情報が提供される。それぞれの接触点の位置は、上述のような各指に種を与えてポイント・クラウドを形成するような処理における、種（シード）として後の処理で利用される。この結果、それぞれの指について、対応する点群が選択される。選択されたそれぞれの点群は、その後、対応する指の姿勢（回転行列またはオイラー角として表される）を判断する目的のため、シリンダーに近似するパラメータを推定するために用いられる。ある実施例において、上述の指の姿勢の判断のアルゴリズムは、当業者にはよく知られるように、ポイント・クラウド・ライブラリ(Point Cloud Library)の中の関数を用いてC++プログラム言語によって実装されてよい。詳しくは、例えば、非特許文献２を参照されたい。
【００５８】
図６は、指の姿勢を判断するプロセスの実施例を視覚化して示す。ポイント・クラウドのうちの点群６０１は、モバイル・コンピュータ・システム１００のタッチスクリーン１０９／１１０上のユーザの手の形に対応する。図６において、タッチスクリーン１０９／１１０はＸＹ平面に位置づけられる。点群６０２は、タッチスクリーン１０９／１１０に接触するユーザの指に対応し、ポイント・クラウド中の他の点群とは切り離される。シリンダーのワイヤーフレーム６０３を見ることで、推定される回転角度や傾きのパラメータを視覚的に捉えることができる。
【００５９】
ある実施例において、ポイント・クラウドで有効に表現する事が出来る領域を拡大するため、また、姿勢の判断の精度を改善するため、さらには、ユーザの他の指によって遮蔽されにくくするため、図７に説明するように、タッチスクリーン１０９／１１０の近傍に奥行き検出カメラ１１１が追加して備え付けられてもよい。ある実施例において、奥行き検出カメラ１１１は、ユーザの指による遮蔽の影響を軽減できるように、それぞれの視野が互いに重なるように設けられても良い。例えば、角度αによって規定される視野の組み合わせは、Ｎ個の奥行き検出カメラ１１１を用いて実現されることを要する。すなわち、カメラ１１１は、タッチスクリーン１０９／１１０の周囲に、図７の番号７０１に示すように、α／Ｎの角度の増分ごとに配置される。注目するべきことに、本実施例は、ここで示す複数の奥行き検出カメラ１１１の位置に限定されず、本発明の範囲や精神を逸脱することなく他の様々な設計を採用することができる。
【００６０】
ある実施例において、複数の奥行き検出カメラ１１１から生成された複数のポイント・クラウドを利用するためには、キャリブレーション処理によって個別のポイント・クラウドが併合される必要がある。キャリブレーション処理は、それぞれの奥行き検出カメラ１１１によって生成されたポイント・クラウドの局所的な座標系を、併合されたポイント・クラウドの座標系に変換するためのテーブルまたは計算式を作り出すことを含む。ある実施例において、キャリブレーションは、下記の処理によって行う。まず、各奥行き検出カメラ１１１を取り付けたタッチスクリーン１０９／１１０に、キャリブレーション・オブジェクトを配置し、その画像を撮影する。そして、撮影した画像を解析することで、複数のカメラで撮影した同じキャリブレーション・オブジェクトの座標を判断する。その情報に基づいて、キャリブレーションの変換ルールが生成され、キャリブレーション・データ・ストレージ１２１に格納される。注目するべきことに、異なる複数の奥行き検出カメラ１１１から得られたポイント・クラウドを併合するためには、それに適した他のキャリブレーション処理が用いられてもよく、したがって、本実施例は如何なる特定のキャリブレーション処理にも限定されることはない。複数のカメラシステムについてキャリブレーション処理がされると、個別の奥行き検出カメラ１１１によって生成されたポイント・クラウドは単一のポイント・クラウドに併合され、そして、図５に示した指の姿勢を判断するためのアルゴリズム５００が、その併合されたポイント・クラウドについて適用される。
【００６１】
ある実施例において、モバイル・コンピュータ・システム１００の奥行き検出カメラ１１１によって撮影された画像は、ネットワーク・インターフェイス１０５およびＷＩＦＩアダプタ１０７を介して、より大きい処理能力を有するデスクトップ型のコンピュータ・システム２００に送信されてもよい。その後、傾き及び回転の情報は、同じネットワークを経由して、モバイル・コンピュータ・システム１００に返信されてもよい。モバイル・コンピュータ・システム１００において、そのようにして受信された傾き及び回転の情報は、ユーザの指がタッチスクリーン１０９／１１０に触れた点の平面上の座標の情報とともに、１つまたは複数のアプリケーション１１４を制御するために用いられる。
【００６２】
重要な点は、ここで述べられた指の姿勢を判断するための新規な技術が、接触検知型ディスプレイ装置を用いることなく実装されても良いことである。例えば、同じ奥行き検知カメラ１１１や、既知の、あるいは、今後開発される他の如何なる装置が、指の接触点を検出するために用いられても良い。このように、接触のイベントの発生時に指の接触点を検出するための如何なる特定の手法にも限定されることがない。
【００６３】
いくつかの実施例が示されて説明されたが、これらの実施例は、ここで述べられた主題をこの分野に詳しい方々に説明するために提供されるものである。ここで説明された主題は、ここで説明された実施例に限定されること無くさまざまな形で実施化されうることが理解されるべきである。ここで述べられた主題は、これら具体的に定義された、あるいは、説明された事柄を伴わなくても実施化でき、あるいは、ここで述べられなかった他のあるいは異なる要素や事柄を伴って実施化されうる。この分野に詳しい方々には、そのような変更が、ここに添付されたクレームやその均等範囲によって定義され、ここで述べられた主題から逸脱することなく、この実施例の中で可能であることを理解されるだろう。
【００６４】
この実施例に関連する複数の側面について、部分的には上述の説明の中で説明されてきており、部分的には上述の説明から明らかなはずであり、また、本発明の実施化から理解されうる。本実施例の複数の側面は、さまざまな要素や詳細な説明および添付のクレームにおいて特に指摘した側面の組み合わせから実現あるいは達成されてよく、さらに、さまざまな要素からなる方法によって、実現あるいは達成されてもよい。
【００６５】
上述の説明は、例示あるいは説明のためだけであって、限定を意図したものではないことが理解されよう。
【図３】
2014216006.tif 000003
【図６】
2014216006.tif 000004
【図１】
2014216006.tif 000005
【図２】
2014216006.tif 000006
【図４】
2014216006.tif 000007
【図５】
2014216006.tif 000008
【図７】
2014216006.tif 000009