(57)【特許請求の範囲】
【請求項１】
パッシブタッチシステムであって、
タッチ面と、
該タッチ面に関連付けられた少なくとも２個の撮像装置であって、異なった位置から前記タッチ面の画像を取得し、かつ重複した視野を有する前記少なくとも２個の撮像装置と、
各撮像装置に関連付けられたデジタル信号プロセッサであって、前記少なくとも２個の撮像装置に関連付けられて、前記少なくとも２個の撮像装置によって取得された画像のピクセルサブセットを選択し、該選択された画像のサブセットによって取得されたピクセルデータを処理して、ポインタが前記取得された画像内に存在する場合、ポインタ特徴データを生成するデジタル信号プロセッサと、
該デジタル信号プロセッサと通信する主デジタル信号プロセッサであって、前記デジタル信号プロセッサからポインタ特徴データを受信し、該ポインタ特徴データを三角測量して前記タッチ面に対する前記ポインタの位置を決定する主デジタル信号プロセッサと、
を有するパッシブタッチシステム。
【請求項２】
タッチシステムであって、
フレームによって囲まれたタッチ面に関連付けられた少なくとも２個のＣＭＯＳデジタルカメラであって、異なった位置から前記タッチ面の画像を取得し、かつ重複した視野を有する前記少なくとも２個のＣＭＯＳデジタルカメラと、
前記少なくとも２個のデジタルカメラによって取得された画像データを受信し処理して、ポインタが前記画像内に存在することを検出し、前記タッチ面に対する前記ポインタの位置を決定し、前記各デジタルカメラの視野と前記タッチ面の周辺のなす角度を基準として補償することによって各デジタルカメラの画像データをさらに処理する処理構造と、
を有し、
各デジタルカメラの視野は前記フレームの隣接する周辺エッジを越えて延びている、
タッチシステム。
【請求項３】
位置トラッキングシステムであって、
フレームと、
該フレーム内の少なくとも一部の興味のある領域と、
異なった位置から（i）前記興味のある領域の画像と（ii）前記フレームの少なくとも一部にある画像を取得し、かつ重複した視野を有する、前記フレームに関連付けられた少なくとも２個の撮像装置と、
各撮像装置に関連付けられたデジタル信号プロセッサであって、前記少なくとも２個の撮像装置によって取得された画像のピクセルサブセットのピクセルデータを処理し、ポインタが前記取得された画像内に存在する場合、ポインタ特徴データを生成するデジタル信号プロセッサと、
該デジタル信号プロセッサと通信する主デジタル信号プロセッサであって、前記デジタル信号プロセッサからポインタ特徴データを受信し、該ポインタ特徴データを三角測量して前記ポインタの位置を決定する主デジタル信号プロセッサと、
を有し、
各デジタルカメラの視野は前記フレームの隣接する周辺エッジを越えて延びている、
位置トラッキングシステム。
【請求項４】
インタラクティブディスプレイシステムであって、
ディスプレイ面と、
該ディスプレイ面の前の興味のある領域と、
フレームに関連付けられた少なくとも２個の光記録装置であって、異なった位置から前記興味のある領域の画像と前記フレームの少なくとも一部にある画像を取得し、かつ重複した視野を有する前記少なくとも２個の光記録装置と、
前記少なくとも２個の光記録装置によって処理前に取得された画像データのサブセットを受信し、該画像データのサブセットを処理して、ポインタが前記画像内に存在することを検出し、前記ポインタの位置を決定する処理構造であって、前記処理構造は、各々が前記光記録装置のそれぞれ１つと関連付けられた複数のプロセッサを含み、各プロセッサは前記関連付けられた光記録装置からの前記サブセットの画像データを処理のみし、ポインタパラメータデータを生成する第１の処理段階と、該第１の処理段階からの画像データを処理して前記ポインタの位置を決定する第２の処理段階と、を含む処理構造と、
を有し、
各プロセッサと各光記録装置は共通のボード上に搭載されている、
インタラクティブディスプレイシステム。
【請求項５】
位置トラッキングシステムであって、
興味のある領域に関連付けられ、かつ重複した視野を有する少なくとも２個のＣＭＯＳデジタルカメラセンサであって、前記少なくとも２個のＣＭＯＳデジタルカメラセンサの各々はピクセルの配列を有し、異なった位置からの前記興味のある領域の画像を取得し、前記ＣＭＯＳデジタルカメラセンサの少なくとも１つは、単一の方向に少なくとも６４０個の画素を有する、前記少なくとも２個のＣＭＯＳデジタルカメラセンサと、
前記少なくとも２個のＣＭＯＳデジタルカメラセンサの各々のピクセルの配列内でよりも小さいピクセルのウィンドウを画像データ処理前に受信し、前記ウィンドウ内のピクセルデータを処理のみして、ポインタが前記画像内に１ピクセルの解像度まで存在することを検出し、前記ポインタの位置を三角測量し、前記各デジタルカメラセンサの視野と前記タッチ面の周辺のなす角度を基準として補償することによって各デジタルカメラセンサのピクセルをさらに処理する処理構造と、
を有し、
各デジタルカメラセンサの視野は前記興味のある領域の隣接する周辺エッジを越えて延びている、
位置トラッキングシステム。
【請求項６】
タッチシステムであって、
タッチ面に関連付けられ、前記タッチ面を包含する重複した視野を有する少なくとも２個のデジタル撮像装置であって、異なった位置から（i）前記タッチ面と（ii）該タッチ面の周辺上のフレームの画像を取得して、各取得された画像について、該取得された画像のピクセル行のサブセットからのピクセルデータから成る前記取得された画像のピクセルサブセットを生成する前記少なくとも２個のデジタル撮像装置と、
前記少なくとも２個のデジタル撮像装置によって生成された取得された画像の前記ピクセルサブセットを受信し、前記ピクセルサブセットのピクセルデータは処理されて、ポインタが前記取得された画像内に存在する場合に、前記ポインタのデータを生成し、該ポインタのデータを三角測量して前記タッチ面に対する前記ポインタの位置を決定し、（i）前記各デジタル撮像装置の視野と（ii）前記タッチ面の周辺のなす角度を基準として補償することによって各デジタル撮像装置のピクセルデータをさらに処理する処理構造と、
有し、
各デジタル撮像装置の視野は前記タッチ面の隣接する周辺エッジを越えて延びている、
を有するタッチシステム。
【請求項７】
カメラベースのタッチシステムであって、
ポインタを使用して接触がなされる略矩形のパッシブタッチ面と、
前記パッシブタッチ面の少なくとも２つのコーナーに隣接して取り付けられたデジタルカメラであって、前記パッシブタッチ面を包含する重複した視野を有し、前記ポインタが前記デジタルカメラによって取得された画像内に撮像された場合、前記パッシブタッチ面の画像を取得して、各取得された画像に対して、ポインタ中線ｘおよびポインタ先端位置ｚを含み、ピクセル行のサブセットからのピクセルデータを含むピクセルサブセットから成る画像データを生成する前記デジタルカメラと、
前記デジタルカメラによって生成された画像データのピクセルサブセットを受信して、前記ピクセルサブセットのピクセルデータを処理し、前記パッシブタッチ面に対する前記ポインタ位置を決定し、前記ポインタが前記パッシブタッチ面と接触しているかどうかを判定し、前記各デジタルカメラの視野と、前記タッチ面の周辺のなす角度を基準として補償することによって各デジタルカメラの画像データをさらに処理する処理構造とを、
有し、
各デジタルカメラの視野は前記タッチ面の隣接する周辺エッジを越えて延びている、
カメラベースのタッチシステム。
【請求項８】
カメラベースのタッチシステムであって、
タッチ面に関連付けられ、前記タッチ面を包含する重複した視野を有する少なくとも２個のデジタルカメラであって、異なった位置から前記タッチ面の画像を取得して、各取得された画像について、該取得された画像の選択されたピクセル行からのピクセルデータから成る前記取得された画像のピクセルサブセットを生成する前記少なくとも２個のデジタルカメラと、
前記少なくとも２個のデジタルカメラによって生成された取得された画像の前記ピクセルサブセットを受信し、前記ピクセルサブセットのピクセルデータは処理されて、ポインタが前記取得された画像内に存在する場合に、前記ポインタデータを生成し、該ポインタデータを三角測量して前記タッチ面に対する前記ポインタの位置を決定する処理構造と、
を、有し、
各デジタルカメラは、イメージセンサとデジタル信号プロセッサを含み、前記デジタル信号プロセッサは、前記イメージセンサからの画像出力を受信して、ポインタが前記デジタルカメラによって取得された各画像内にあるかどうかを判定し、もしあった場合には前記ポインタ中線ｘがあるかどうかを判定するポインタ検出ルーチンを実行し、各デジタルカメラのデジタル信号プロセッサは、各画像が取得されたあと、背景画像を更新する背景画像更新ルーチンをさらに実行する、
カメラベースのタッチシステム。
【請求項９】
タッチ面に対するポインタの位置を検出する方法であって、
前記タッチ面の各コーナーに位置するカメラ装置を用いて、前記タッチ面を基準としたポインタの多数の重複した画像を取得するステップと、
前記取得した画像のピクセルサブセットを受信し、各々が前記カメラ装置のそれぞれ１つに関連付けられ、かつ共通のボード上に搭載された複数のプロセッサを用いて前記ピクセルサブセットのピクセルデータを処理して、前記画像内のポインタの存在を検出してポインタデータを生成し、マスタープロセッサを用いて前記ポインタデータを処理し、三角測量法を用いて前記タッチ面を基準とした前記ポインタの位置を決定するステップと、
を有する、タッチ面に対するポインタの位置を検出する方法。
【請求項１０】
タッチ面に対するポインタの位置を検出する方法であって、
タッチ面を見る視野を有するカメラを使用して前記タッチ面に近いポインタの多数の重複した画像を取得し、各カメラから各画像のピクセルサブセットを出力し、各前記ピクセルサブセットは取得された画像の選択されたピクセル行からのピクセルデータから成るステップと、
処理構造において前記取得された画像の出力されたピクセルサブセットを受信し、前記ピクセルサブセットのピクセルデータを処理して各カメラの視野と前記タッチ面の少なくとも一部のなす角度を基準として補償し、三角測量法を用いて前記タッチ面に対する前記ポインタの位置を決定し、前記ピクセルデータの処理中に前記ポインタの中線の交点を計算することによって前記ポインタの存在が決定され、前記ポインタの位置は、前記ポインタの中線の交点を計算し、該交点の座標を決定するのに三角測量法を用いることによって決定されるステップと、
を有し、
各カメラの視野はフレームの隣接した周辺エッジを越えて延びている、
タッチ面に対するポインタの位置を検出する方法。
【請求項１１】
撮像アセンブリであって、
ディスプレイ表面を囲む実質的に矩形のベゼルと、
該ベゼルの各コーナーに隣接して搭載されたデジタルカメラであって、前記ディスプレイ表面の重複した画像を撮像するように向けられているデジタルカメラと、
前記デジタルカメラによって取得された画像データを処理して、取得された画像内のポインタの存在を1ピルセルの解像度まで検出する、各デジタルカメラにおけるプロセッサと、
を有し、
各デジタルカメラの視野は前記ベゼルの隣接する周辺エッジを越えて延びている、
撮像アセンブリ。
【請求項１２】
撮像アセンブリと、
ディスプレイ表面の前の興味のある領域を囲む実質的に矩形のフレームと、
該フレームの各コーナーに隣接して搭載され、前記興味のある領域の重複した画像を撮像するように向けられているデジタルカメラと、
前記デジタルカメラによって取得された画像データを受信、処理して、前記画像内にポインタが存在することを検出し、前記ポインタの前記タッチ面に対する位置を決定する処理プロセッサと、
有し、
前記プロセッサ構造は第１および第２の処理段階を含み、前記第１の処理段階は少なくとも４対の、対になったデジタルカメラの画像データを処理し、前記第２の処理段階は前記第１の処理段階からの画像データを処理して前記ポインタの位置を決定し、
前記第１の処理段階は各々が前記デジタルカメラのそれぞれ１つに関連付けられた複数のデジタルシグナルプロセッサを含み、前記デジタルシグナルプロセッサは前記デジタルカメラのピクセルサブセットからピクセルデータを処理し、ポインタパラメータデータを生成し、
前記プロセッサ構造は（i）前記各デジタルカメラの視野と（ii）前記フレームの少なくとも一部のなす角度を基準として補償することによって各デジタルカメラの画像を処理する、
撮像アセンブリ。
【発明の詳細な説明】
【０００１】
（技術分野）
本発明は、一般にタッチシステムに関し、特にカメラベースのタッチシステムに関する。
【０００２】
（背景技術）
タッチシステムは、公知技術であり、ユーザ入力を生成するためにポインタを使用して接触がなされるタッチ面を有するタッチスクリーンを含むのが一般的である。タッチ面上のポインタ接触を検出して、接触がなされているタッチ面の領域に応じて、対応する出力を生成するのに使用される。基本的には利用可能な２種類の一般的なタッチシステムがあり、それらは、大別すると「アクティブ（ａｃｔｉｖｅ）」タッチシステムと「パッシブ（ｐａｓｓｉｖｅ）」タッチシステムに分類できる。
【０００３】
アクティブタッチシステムでは、ユーザは、ある形態のオンボード電源（通常はバッテリ）を通常必要とする特別なポインタで、タッチ面と接触してユーザ入力を生成する。その特別なポインタは、赤外光、可視光線、超音波周波数、電磁周波数等のようなタッチ面を励起する信号を放射する。
【０００４】
パッシブタッチシステムは、パッシブポインタがタッチ面と接触することによって、ユーザ入力を生成し、タッチ面を励起するのに特別なポインタを使用する必要がない。パッシブポインタは、指、ある素材の円筒状のもの、またはタッチ面上の予め定められた、ある関心ある領域と接触するのに使用するどんな適切な物体でもよい。
【０００５】
タッチ面に接触するのに、ユーザの指を含むどんな適切なポインティングデバイスでもポインタとして使用可能な点で、パッシブタッチシステムは、アクティブタッチシステムよりも利点がある。その結果、ユーザ入力が容易に生成可能となる。また、パッシブタッチシステムでは特別なアクティブポインタを必要としないので、ユーザは、バッテリ電力レベルおよび／またはポインタ損傷、盗難、またはポインタの置き間違いを心配しなくてすむ。
【０００６】
パッシブタッチシステムは、コンピュータ操作およびビデオディスプレイに関連した多くのアプリケーションがある。例えば、１つの対話型アプリケーションにおいて、本発明の譲受人に譲渡されたマーティン（Ｍａｒｔｉｎ）の米国特許第５、４４８、２６３号に開示されているように、パッシブタッチシステムは、コンピュータと結合し、コンピュータディスプレイがタッチスクリーンのタッチ面に表示される。特定の位置を表示しているタッチ面上の座標が、コンピュータディスプレイにマップされる。ユーザがタッチ面と接触すると、接触位置の座標がコンピュータにフィードバックされてコンピュータディスプレイにマップされるので、その結果、ユーザは、単にタッチ面と接触することでコンピュータマウスを使用するのと同様にコンピュータを操作できる。さらに、コンピュータにフィードバックされた座標は、アプリケーションに記憶でき、あとで、再表示可能である。一般的に、接触座標の記憶は、ユーザがタッチ面に書き込みまたは描画した情報を記憶する必要があるときに実行される。
【０００７】
パッシブタッチスクリーンの解像度は、タッチシステムが、タッチスクリーン上に書き込みまたは描画される記録情報に適しているか、またはコンピュータまたはビデオディスプレイを操作するのに、コンピュータまたはビデオディスプレイの領域にマップされるタッチスクリーンの領域を選択するのに役に立つかどうかだけかで決定される。解像度は、一般的にドット／インチ（ＤＰＩ：  ｄｏｔｓ  ｐｅｒ  ｉｎｃｈ）で測定される。ＤＰＩは、タッチスクリーンの大きさ、およびタッチ面上の接触を検出するのに使用するタッチシステムのハードウェアおよびソフトウェアのサンプリング能力に関連する。
【０００８】
低解像度のパッシブタッチスクリーンは、コンピュータまたはビデオディスプレイが表示する画素の大きなグループ内のタッチ面上の接触を検出するのに足るＤＰＩを有するだけでよい。したがって、これらの低解像度のパッシブタッチスクリーンは、コンピュータまたはビデオディスプレイを処理する用途にのみ有効である。
【０００９】
一方、高解像度のパッシブタッチスクリーンは、コンピュータまたはビデオディスプレイの少数の画素またはサブピクセルに比例する接触を検出するのに充分なＤＰＩを有している。しかし、高解像度タッチスクリーンに対する要求条件は、ポインタがタッチ面と接触した時の検出能力である。この能力は、書き込み、描画、マウス−クリック操作等に必要である。もしタッチスクリーンとのポインタ接触を検出する能力がないとしたら、書込みおよび描画は、１つの連続操作となり、マウスクリックができなくなり、そのため実質的にコンピュータディスプレイの操作は不可能になる。第２の要求条件は、ポインタがタッチ面上に「浮上している」ときに、検出する能力である。書き込みまたは描画には必要ないが、今日のコンピュータオペレーティングシステムが、コンピュータまたはビデオディスプレイ、またはポップアップ情報ボックスを操作するのに浮上情報を使用する用途がますます増えている。
【００１０】
パッシブタッチスクリーンは、一般的にアナログ電気抵抗タイプ、表面弾性波（ＳＡＷ：  ｓｕｒｆａｃｅ  ａｃｏｕｓｔｉｃ  ｗａｖｅ）タイプ、または容量性タイプのいずれかである。残念なことに、これらのタッチスクリーンは、後述するように多くの問題や短所を欠点として持っている。
【００１１】
アナログ電気抵抗タッチスクリーンは、一般的に高解像度を有している。タッチシステムの複雑さによるが、タッチスクリーンの解像度としては、４０９６×４０９６  ＤＰＩ、またはそれ以上を発生可能である。アナログ電気抵抗タッチスクリーンは、抵抗材料を塗布し、サンドイッチのように配置した２枚のフレキシブルシートを使用して構成される。接触が発生するまではシートは互いに接触しない。２枚のシートは、一般的に絶縁性マイクロドットまたは絶縁空気層で分離される。シートは、大半、透明なＩＴＯ（Ｉｎｄｉｕｍ  Ｔｉｎ  Ｏｘｉｄｅ）から構成される。したがって、タッチスクリーンは、若干の画像歪みをもたらすが、視差はほとんど生じない。
【００１２】
アナログ電気抵抗パッシブタッチスクリーンの操作中には、均一な電圧勾配が第１のシートに沿った一方向へ印加される。タッチ面上に接触した結果、２枚のシートが互に接触するときに、第２シートは、第１のシートに沿った電圧を測定する。第１のシートの電圧勾配を第１のシートに沿った距離に変換できるので、測定電圧は、タッチ面上の接触の位置と比例している。第１のシート上の接触座標が取得されると、その後、均一な電圧勾配が第２シートに印加され、第１のシートが第２シートに沿った電圧を測定する。第２シートの電圧勾配は、第２シートに沿った距離に比例している。この２個の接触座標は、デカルト座標系のタッチ面上の接触位置Ｘ−Ｙを表示する。
【００１３】
残念なことに、両方のシートを接触させるには機械的圧力が必要になるので、２枚のシートを共に接触させるのに充分な圧力が加えられたときだけアナログ電気抵抗タッチスクリーンは、接触を検出できる。アナログ電気抵抗パッシブタッチスクリーンは、また、ポインタがタッチ面上に浮上しているときには感知することができない。したがって、アナログ電気抵抗タッチスクリーンの場合、実際の接触がタッチ面に発生したときに、接触したという事象および位置が検出されるだけである。
【００１４】
表面弾性波（ＳＡＷ）タッチスクリーンでは、一般的に中間的な解像度を得られるが、良い書き込み品質を記憶するには適切でない。ＳＡＷタッチスクリーンは、ガラスを振動させてガラス表面上に波紋を起こす音波を発生するので、ガラス表面の縁上に変換器が使用される。ガラス表面に接触が発生すると音波が反射して戻り、接触位置が反射された音波のシグネチャー（ｓｉｇｎａｔｕｒｅ）から決定される。
【００１５】
残念なことに、ＳＡＷタッチスクリーンは、ビデオまたはコンピュータディスプレイの表面に配置される振動ガラスの厚みにより顕著な視差を示す。また、実際にガラス表面と接触したとき、接触したという事象および位置が検出されるだけである。さらに、ＳＡＷタッチスクリーンは、対角線で２、３フィートを越える大きさには拡大できない。
【００１６】
大面積（およそ１／２インチ×１／２インチ）の接触を決定するだけなので、容量性のタッチスクリーンは、低解像度である。したがって、容量性タッチスクリーンは、書き込みまたは描画を記憶するには使用できないが、ビデオまたはコンピュータディスプレイに表示されるコンピュータ生成ボタンに対応した、タッチスクリーン上の領域を選択するには適している。容量性のタッチスクリーンもまたそれらが温度や湿度に影響されやすいという不利な欠点を持っている。アナログ電気抵抗タッチスクリーンおよびＳＡＷタッチスクリーンと同様に、容量性タッチスクリーンは、また、実際の接触がタッチ面に発生したとき、接触したという事象および位置を検出できるだけである。
【００１７】
より大規模な電子デジタイザの要求が増大しているので、パッシブタッチスクリーンの拡張性は、重要である。デジタイザは、かつては小さいデスクトップ機器に応用されていたが、今日では、電子ホワイトボードへのアプリケーションに発展してきた。新規なタッチスクリーンアプリケーションへの要求条件として、パッシブタッチに敏感な「壁」を造る必要性が生じてきた。上記に説明したタイプの既存のパッシブタッチスクリーンは、それらがまだ機能できる最大サイズという点で全てが制限されている。
【００１８】
パッシブタッチシステムに対する改良が望まれているのは当然である。したがって、本発明の目的は、新規なカメラベースのタッチシステムを提供することにある。
【００１９】
（発明の開示）
本発明の一態様によれば、
パッシブタッチ面に関連付けられ、前記タッチ面を包含する重複した視野を有する少なくとも２個のカメラであって、異なった位置から前記タッチ面の画像を取得して画像データを生成する前記少なくとも２個のカメラと、
前記少なくとも２個のカメラが生成した画像データを受信して処理し、ポインタが前記少なくとも２個のカメラで取得した画像内に撮像された場合、前記タッチ面を基準とした前記ポインタ位置を決定するプロセッサとを、
備えるカメラベースのタッチシステムを提供する。
【００２０】
少なくとも２個のカメラは、通常、タッチ面の平面に沿って見通す視野を有するデジタルカメラであるのが好ましい。各デジタルカメラが生成する画像データは、ポインタ中線ｘおよびポインタ先端位置ｚを含む。それぞれのデジタルカメラは、選択可能な画素行を有する画素配列を含む。選択可能な画素行内の画素の画素輝度は、画像データの生成中に使用される。選択可能な画素行内の関心ある領域の画素の画素輝度は、画像データの生成中に使用されるのが好ましい。
【００２１】
好適な実施例において、それぞれのデジタルカメラは、ＣＭＯＳカメライメージセンサおよびデジタル信号プロセッサを含む。デジタル信号プロセッサは、ＣＭＯＳカメライメージセンサからの画像出力を受信して、ポインタがデジタルカメラにより取得された各画像内にあるかどうかを判定し、もしあった場合にはポインタの中線ｘがあるかどうかを判定するポインタ検出ルーチンを実行する。また、各画像が取得されたあと、各デジタルカメラのデジタル信号プロセッサは、背景画像更新ルーチンを実行して背景画像を更新するのが好ましい。各デジタルカメラのデジタル信号プロセッサは、さらに、各取得した画像および背景画像の差分を判定して光条件の変化を検出するのが好ましい。
【００２２】
本発明の別の態様では、
ポインタを使用して接触する略矩形のパッシブタッチ面と、
前記タッチ面の各コーナーに隣接して取り付けられたデジタルカメラであって、前記タッチ面を包含する重複した視野を有し、前記ポインタが前記デジタルカメラで取得した画像内に撮像された場合、前記タッチ面の画像を取得してポインタ中線ｘおよびポインタ先端位置ｚを含む画像データを生成する前記デジタルカメラと、
前記デジタルカメラが生成した画像データを受信して処理し、前記タッチ面を基準とした前記ポインタ位置を決定し、前記ポインタが前記タッチ面と接触しているかどうかを判定するプロセッサとを、
備えるカメラベースのタッチシステムを提供する。
【００２３】
さらに、本発明のこの態様では、
重複した視野を有して画像データを生成するカメラを使用して異なった位置からタッチ面の画像を取得するステップと、
前記取得した画像内のポインタの存在を検出して前記タッチ面を基準とした前記ポインタの位置を決定するのに前記画像データを処理するステップと、
からなるタッチ面を基準としたポインタ位置を検出する方法を提供する。
【００２４】
本発明は、このパッシブタッチシステムが高解像度であり、ポインタがタッチ面に実際に接触していても、ポインタがタッチ面上に浮上していても検出可能で、対応する出力を生成するという利点を提供する。また、本パッシブタッチシステムは、従来技術のパッシブタッチシステムが持っていた視差、画像歪み、ポインタ位置の制約、画像射影、およびスケーラビリティの問題を欠点として持たないという利点を提供する。
【００２５】
さらに、本発明は、ＣＭＯＳデジタルカメラを使用するので、デジタルカメラの画素配列の任意の画素行を選択できる利点がある。これで、デジタルカメラのフレーム速度を著しく向上できる。また、画素行を任意に選択できるので、画素配列を所与のデジタルカメラのフレーム速度より長い時間露光でき、明るい部屋だけでなく暗い部屋でも十分な操作性を得ることができる。
【００２６】
（発明を実施するための最良の形態）
さてここで、参照番号５０で全般的に識別される本発明のカメラベースのタッチシステムを示す図１に戻る。理解できるように、タッチシステム５０は、デジタル信号プロセッサ（ＤＳＰ：  ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）ベースの主制御装置５４に結合するタッチスクリーン５２を含む。主制御装置５４は、またコンピュータ５６に結合する。コンピュータ５６は、１つまたはそれ以上のアプリケーションプログラムを実行し、プロジェクタ５８を介してタッチスクリーン５２に表示する表示出力を出力する。タッチスクリーン５２、主制御装置５４、コンピュータ５６、およびプロジェクタ５８は、閉ループを形成し、タッチスクリーン５２とのユーザ接触を書き込みまたは描画として記憶し、またはコンピュータ５６が実行するアプリケーションプログラムの実行を制御する。
【００２７】
図２〜４にタッチスクリーン５２をより適切に例示する。タッチスクリーン５２は、矩形のフレーム６２で縁付けされたタッチ面６０を含む。タッチ面６０は、パッシブ素材の矩形の平面シート形状をしている。ＤＳＰベースのＣＭＯＳデジタルカメラ６３は、タッチスクリーン５２の各コーナーに関連付けられる。各デジタルカメラ６３をフレームアセンブリ６４に取り付ける。各フレームアセンブリ６４は、デジタルカメラ６３が取り付けられた角度のついたサポート板６６を含む。フレームサポートエレメント７０および７２を、ポスト７４を介してプレート６６に取り付け、プレート６６をフレーム６２に固定する。
【００２８】
各デジタルカメラ６３は、二次元ＣＭＯＳカメライメージセンサおよび関連するレンズアセンブリ８０、データバスでＣＭＯＳカメライメージセンサおよびレンズアセンブリ８０に結合した先入れ先出し方式（ＦＩＦＯ：  ｆｉｒｓｔ−ｉｎ−ｆｉｒｓｔ−ｏｕｔ）バッファ８２、およびデータバスでＦＩＦＯ８２に、制御バスでＣＭＯＳカメライメージセンサおよびレンズアセンブリ８０に結合したデジタル信号プロセッサ（ＤＳＰ：  ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）８４を含む。ブートＥＰＲＯＭ８６および電源サブシステム８８も、また、含まれる。
【００２９】
本実施例において、ＣＭＯＳカメラのイメージセンサは、２０×６４０画素サブアレイの任意の画素行を選択できるので、２００フレーム／秒を上回る速度で画像フレームを撮像するように動作可能なフォトビット（Ｐｈｏｔｏｂｉｔ）ＰＢ３００イメージセンサを配置する。また、画素行を任意に選択できるので、画素サブ配列を所与のデジタルカメラのフレーム速度より長い時間露光でき明るい部屋だけでなく暗い部屋でも十分な操作性を得ることができる。ＦＩＦＯバッファ８２は、サイプレス社（Ｃｙｐｒｅｓｓ）が製造する製品番号ＣＹ７Ｃ４２１１Ｖ、ＤＳＰ８４は、アナログデバイセズ社（Ａｎａｌｏｇ  Ｄｅｖｉｃｅｓ）が製造する部品番号ＡＤＳＰ２１８５Ｍである。
【００３０】
ＤＳＰ８４は、制御バスを介してＣＭＯＳカメライメージセンサおよびレンズアセンブリ８０に制御情報を提供する。制御情報によって、ＤＳＰ８４は、露出、利得、配列構成、リセット、および初期化のようなＣＭＯＳカメライメージセンサおよびレンズアセンブリ８０のパラメータを制御できる。ＤＳＰ８４は、また、ＣＭＯＳカメライメージセンサおよびレンズアセンブリ８０にクロック信号を出力し、ＣＭＯＳカメライメージセンサおよびレンズアセンブリ８０のフレーム速度を制御する。
【００３１】
図１１に示すように、各デジタルカメラ６３の視野（ＦＯＶ：  ｆｉｅｌｄ  ｏｆ  ｖｉｅｗ）がタッチ面６０の指定された周辺エッジの向こうに延びるように、プレート６６の角度を選択する。これで、タッチ面６０は、全て、デジタルカメラ６３の視野内にはいる。
【００３２】
図５に最も適切に例示する主制御装置５４は、ＤＳＰ９０、ブートＥＰＲＯＭ９２、シリアルラインドライバ９４、および電源サブシステム９５を含む。ＤＳＰ９０は、シリアルポート９６を介してデータバス上でデジタルカメラ６３のＤＳＰ８４と通信し、シリアルポート９８およびシリアルラインドライバ９４を介してデータバス上でコンピュータ５６と通信する。本実施例では、ＤＳＰ９０は、また、アナログデバイセズが製造する製品番号ＡＤＳＰ２１８５Ｍである。シリアルラインドライバ９４は、アナログデバイセズ社が製造する製品番号ＡＤＭ２２２である。
【００３３】
主制御装置５４および各デジタルカメラ６３は、ユニバーサルシリアルバス（ＵＳＢ：  ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）と同様な共通シリアルケーブルを介して双方向通信を可能にする通信プロトコルに従う。伝送帯域は、１６ビット３２チャネルに分割される。３２チャネル中、６チャネルは、デジタルカメラ６３のそれぞれのＤＳＰ８４に、および主制御装置５４のＤＳＰ９０に割り当てられ、残りの２チャネルは未使用である。主制御装置５４は、ＤＳＰ８４に割り当てられた２４チャネルをモニターし、一方、ＤＳＰ８４は、主制御装置５４のＤＳＰ９０に割り当てられた６チャネルをモニターする。主制御装置５４とデジタルカメラ６３間の通信は、割り込みに応答したバックグラウンドプロセスとして実行される。
【００３４】
以下、タッチシステム５０の一般的な操作について説明する。各デジタルカメラ６３は、所望のフレーム速度でそのＣＭＯＳカメライメージセンサおよびレンズアセンブリ８０の視野内のタッチ面６０の画像を取得し、その取得した各画像を処理してポインタが取得した画像内にあるかどうかを判定する。ポインタが取得した画像内にある場合、タッチ面６０と接触、またはその上に浮上しているポインタの特性を判定するのに、さらに、その画像を処理する。その後、デジタルカメラ６３は、ポインタ特性を含むポインタ情報パケット（ＰＩＰ：  Ｐｏｉｎｔｅｒ  ｉｎｆｏｒｍａｔｉｏｎ  ｐａｃｋｅｔｓ）、ステータスおよび／または診断情報を生成し、ＰＩＰは、主制御装置５４に送信するのに待ち行列に入れられる。デジタルカメラ６３は、また、主制御装置５４が生成するコマンドＰＩＰを受信して応答する。
【００３５】
主制御装置５４は、ＰＩＰについてデジタルカメラ６３にポーリングする。ＰＩＰがポインタ特性情報を含む場合、主制御装置５４は、ＰＩＰのポインタ特性を三角測量してデカルト直交座標のタッチ面６０を基準としたポインタ位置を決定する。主制御装置５４は、算出ポインタ位置情報、ステータスおよび／または診断情報をパーソナルコンピュータ５６に順番に送信する。このように、パーソナルコンピュータ５６に送信されたポインタ位置情報は、書き込みまたは描画として記憶でき、またはコンピュータ５６が実行するアプリケーションプログラムの制御実行に使用できる。タッチ面６０に示される情報がポインタアクティビティを反映するように、コンピュータ５６は、また、プロジェクタ５８へ伝送される表示出力を更新する。
【００３６】
主制御装置５４は、また、コマンドＰＩＰを生成してデジタルカメラ６３へ伝達するだけでなく、パーソナルコンピュータ５６からのコマンドを受信してそれに応じて応答する。
【００３７】
次に、取得した画像の処理およびＰＩＰ中のポインタ特性の三角測量法に関する詳細を、特に図６〜図８を参照して説明する。
【００３８】
まず、タッチ面６０を基準としたポインタの接触または浮上位置を正確に決定できるように、カメラオフセット角較正ルーチンを実行して各デジタルカメラ６３のオフセット角δを決定する（図１１参照）。カメラオフセット角較正の詳細は、「三角測量フィールドを利用した対象物の位置決定を容易にするカメラのオフセット較正（Ｃａｌｉｂｒａｔｉｎｇ  Ｃａｍｅｒａ  Ｏｆｆｓｅｔｓ  ｔｏ  Ｆａｃｉｌｉｔａｔｅ  Ｏｂｊｅｃｔ  Ｐｏｓｉｔｉｏｎ  Ｄｅｔｅｒｍｉｎａｔｉｏｎ  Ｕｓｉｎｇ  Ｔｒｉａｎｇｕｌａｔｉｏｎ  ｆｉｅｌｄ）」という発明の名称で２００１年６月１日、本出願人が出願中の米国出願に記載されているが、その要旨を本願明細書に参考として引用している。
【００３９】
カメラオフセット角較正ルーチンに続いて、表面検出ルーチンを実行して、ポインタが所与のポイントでタッチ面６０と接触しているか、またはタッチ面上に浮上しているかどうかについての判定をより確実なものにする。
【００４０】
カメラオフセット角較正から正確に知ることができるタッチ面６０の面内のポインタの直交座標によって、各デジタルカメラ６３が見通すタッチ面６０の方向を決定できる。これは、デジタルカメラがタッチ面６０の面に沿ってだけではなく、それに対して垂直な方向もまた見るという事実のために必要である。いくぶん、各デジタルカメラ６３は、タッチ面６０を下方に見下ろす。図１４は、通常デジタルカメラ６３が見たタッチ面６０の形状を示す。このため、直交座標（ｘ、ｙ）の関数としてタッチ面の位置を記述する「垂直」座標ｚを定めるのが望ましい。
【００４１】
ポインタのｚ座標は、デジタルカメラ画像から測定でき、それで、タッチ面６０上のポインタ位置のｚ座標を決定できる。この垂直方向の較正とは、ｚ座標データを所与の直交座標（ｘ、ｙ）に適合させる事である。垂直方向の較正は、一般式として次のように記述できる。
【００４２】
ｚ（ｘ、ｙ）＝Ａｘ＋Ｂｙ＋Ｃｘ2＋Ｄｙ2＋Ｅｘｙ＋Ｆ      （０．１）
係数Ｃ、Ｄ、およびＥがゼロの場合、これは平面になる。式（０．１）は、線形最小二乗問題を記述しているので、最適値を容易に計算できる。該当する行列は、次の形式をとる。
【００４３】
【数３】
0005042437.tif 000002
式（０．１）に直交座標（ｘ、ｙ）を適用して係数Ａ〜Ｅ決定するのに、特異値分解（ＳＶＤ：  ｓｉｎｇｕｌａｒ  ｖａｌｕｅ  ｄｅｃｏｍｐｏｓｉｔｉｏｎ）に基づいたムーアペンローゼ（Ｍｏｏｒｅ−Ｐｅｎｒｏｓｅ）擬似逆行列手法を使用して最小ノルム最小２乗法の解を求める。
【００４４】
行列は、常に次のように分解できるのは当然である。
【００４５】
Ａ＝ＵＳＶT                                            （０．２）
行列Ａは、どんな形式も可能である。行列ＵおよびＶは直交行列で、次式を意味する。
【００４６】
ＵTＵ＝Ｉ＝ＶTＶ
対角行列Ｓは、完全に、行列Ａの固有値の二乗と関連する行列Ａの特異値からなる。その特異値分解（ＳＶＤ）の重要性は、行列Ａの逆行列は、常に計算できるという事実とともにある。さらに、不完全に決定された問題に遭遇した場合、この逆を制御することは可能である。次の線形方程式の系を考慮する。
【００４７】
【数４】
0005042437.tif 000003
その解は、次のようになるであろう。
【００４８】
【数５】
0005042437.tif 000004
逆行列は、ＳＶＤによって、次のように記述される。
【００４９】
Ａ-1＝ＶＳ-1ＵT                                      （０．３）
何故なら、両行列ＵとＶは、直交するからである。不完全に決定された状況においては、特異値のいくつかは、非常に小さいが、その結果、行列Ｓ-1が形成されると、望ましくない大きい値が発生する。この場合、最も小さい特異値の逆数をゼロに設定する。これは、不完全に決定された解の一部を無視する効果を持つ。最小２乗問題にとって、これは、強力な武器である。最小２乗問題の通常の正規方程式法は、次式を解くことである。
【００５０】
【数６】
0005042437.tif 000005
解が大きすぎる場合には、次式を解き、
【００５１】
【数７】
0005042437.tif 000006
解が小さすぎる場合には、次式を解く。
【００５２】
【数８】
0005042437.tif 000007
式（０．１）に系の式をあてはめる時、カメラオフセット角δを決定中に使用したのと同一手法を用いるのは当然である。同一手法が使用できるので、メモリー使用率および処理速度を所望のレベルに維持できる。
【００５３】
既知の係数Ａ〜Ｅを用いて、タッチ面上のどんな任意のポイント（ｘ、ｙ）についてもｚ座標が算出でき、したがって、ポインタがタッチ面６０と接触しているか、またはその上に浮上しているかどうかについての判定が可能になる。
【００５４】
較正されたタッチシステム５０では、各デジタルカメラ６３は、操作中にその視野内のタッチ面６０の画像を取得する。ＣＭＯＳカメライメージセンサおよびレンズアセンブリ８０は、ＤＳＰ８４から受信したクロック信号に応答した、ある間隔で画像を取得する。ＣＭＯＳカメライメージセンサおよびレンズアセンブリ８０が取得した各画像は、ＦＩＦＯバッファ８２に送信される。ＤＳＰ８４は、ＦＩＦＯバッファ８２からの各画像を順番に読み込んで画像を処理する。有益な情報を含まない多数の画素数の処理を避けるために、図９に示すように、取得した画像の画素のサブセットだけを処理する。
【００５５】
デジタルカメラ６３が取得した画像を処理する間に、ＤＳＰ８４は、図６で示すプロセスフレームルーチンを実行する。画像が処理可能な場合（ステップ１２０）、デジタルカメラ６３を調整するのに、画像を撮像したかどうかをチェックして判定する（ステップ１２２）。画像が露出調整の目的で取得された場合、ｅｘｐｏｓｕｒｅＣｏｎｔｒｏｌ（露出調整）ルーチンをデジタルカメラ６３の露出を調整するのに呼び出す（ステップ１２４）。これに続いて、ＤＳＰ８４は処理可能な次の画像の受信を待ち受ける。
【００５６】
ステップ１２２で、画像がデジタルカメラ６３の露出を調整するのに撮像されていなかった場合、画像が背景画像を交換するために撮像されていたかどうかをチェックして判定する（ステップ１２６）。画像を背景画像の交換の目的で取得していた場合、ｃａｐｔｕｒｅＢａｃｋｇｒｏｕｎｄ（背景画像取得）ルーチンを呼び出して（ステップ１２８）、取得した画像を背景画像として使用する。これは、デジタルカメラが画像を取得してポインタが画像内にあることを示すＰＩＰを主制御装置に送信したが、それが実際にはノイズであった場合に実行される。効果的に背景画像を交換することで、デジタルカメラにそれ以後のＰＩＰ中のポインタを誤って識別させないようにする。これに続いて、ＤＳＰ８４は、処理可能な次の画像の受信を待ち受ける。
【００５７】
ステップ１２６において、画像を背景画像交換の目的で撮像していなかった場合、ＤＳＰ８４は、ｃｏｐｙＩＣｕｒ（現在画像コピー）ルーチンを呼び出す（ステップ１３０）。このルーチン中に現在取得した画像は、メモリーにコピーされ、現在取得した画像と背景画像間の差分を表す差分画像を形成するだけでなく背景画像を更新するのにも使用される。ｃｏｐｙＩＣｕｒルーチン完了後、ｓｅｇｍｅｎｔＰｏｉｎｔｅｒ（セグメントポインタ）ルーチンを呼び出し、ポインタが取得した画像内にあるかどうかを判定し、もしあった場合には、タッチ面６０を基準としたポインタ位置、およびポインタがタッチ面６０と接触しているか、またはその上に浮上しているかについて判定する（ステップ１３２）。ＳｅｇｍｅｎｔＰｏｉｎｔｅｒルーチン１３２は、また、光条件の変化を検出可能にする。ＳｓｅｇｍｅｎｔＰｏｉｎｔｅｒルーチン１３２に続いて、ＤＳＰ８４は、ｆｉｌｌＰＩＰ（ＰＩＰ情報設定）ルーチンを呼び出し（ステップ１３４）、主制御装置５４へ送信するＰＩＰにポインタおよび光条件情報を設定する。その後、ＤＳＰ８４は、処理可能な次の画像の受信を待ち受ける。
【００５８】
図７は、ｓｅｇｍｅｎｔＰｏｉｎｔｅｒルーチン１３２の実行中にＤＳＰ８４が実行するステップを例示する。理解できるように、ＤＳＰ８４がｓｅｇｍｅｎｔＰｏｉｎｔｅｒルーチンを実行すると、ＤＳＰ８４は、ｆｉｎｄＰｏｉｎｔｅｒ（ポインタ検出）ルーチンを呼び出してポインタが取得した画像内にあるかどうかを判定し、もしあった場合には、現在取得した画像内のポインタ位置を判定する（ステップ１４０）。ＦｉｎｄＰｏｉｎｔｅｒルーチン１４０が完了するとすぐに、ＤＳＰ８４は、ｕｐｄａｔｅＢａｃｋｇｒｏｕｎｄ（背景画像更新）ルーチンを呼び出して、それで背景画像を更新して照明条件の変化を処理する（ステップ１４２）。
【００５９】
ＵｐｄａｔｅＢａｃｋｇｒｏｕｎｄルーチンの実行中に、ＤＳＰ８４は、次式を使用して背景画像を連続的に更新する。
【００６０】
Ｂn+1（ｉ、ｊ）＝（１−ａ）Ｂn（ｉ、ｊ）＋ａＩ（ｉ、ｊ）
ここで、
Ｂn+1は、新規な背景画像、
Ｂnは、現在の背景画像、
Ｉは、現在取得した画像、
ｉ、ｊは、更新された背景画像画素の行および列の座標、
ａは、現在取得した画像Ｉから得られるべき学習段階を示す０〜１の数である。ａの値が大きければ大きいほど、背景画像はより速く更新される。
【００６１】
ＵｐｄａｔｅＢａｃｋｇｒｏｕｎｄルーチン１４２が実行されると、ＤＳＰ８４は、現在取得した画像と背景画像間の輝度の差分を算出する。この情報を主制御装置５４に送信して主制御装置にデジタルカメラ６３が再度露出される必要があるかどうかを判定させる。照明条件の急激な変化が発生した場合（すなわち周囲の照明がオン、オフされた）、これが必要になるであろう。デジタルカメラ６３の再露出が必要な場合、主制御装置５４は、デジタルカメラ６３にコマンドＰＩＰを送信して露出調整のために画像を取得するようにデジタルカメラに指示する。
【００６２】
図８は、ｆｉｎｄＰｏｉｎｔｅｒルーチン１４０の実行中にＤＳＰ８４が実行するステップを例示する。理解できるように、ＤＳＰ８４がｆｉｎｄＰｏｉｎｔｅｒルーチン１４０を実行する場合、ＤＳＰ８４は、ポインタ位置とポインタ先端パラメータ、ｘとｚを丁寧にクリアする（ステップ１５０）。その後、垂直輝度ヒストグラムを作成する（ステップ１５２）。この段階中に現在の画像と背景画像間の差分を表している差分画像が形成され、差分画像内の画素輝度を列ごとに合計する。このように、６４０×２０の差分画像内の各列の和を表す６４０×１のベクトルが形成される。したがって、６４０×１のベクトル内の第１のエレメントは、６４０×２０の差分画像の第１の列内の２０の画素の和を表し、６４０×１のベクトル内の第２のエレメントは、６４０×２０の差分画像の第２列内の２０の画素の和を表し、以下同様である。さらに、この処理の詳細は、Ｖ．チェン、その他（Ｖ．Ｃｈｅｎｇ  ｅｔ  ａｌ）により著され、２０００年７月出版の写真−光学計測技術者協会ジャーナル  オブ  エレクトロニック  イメージング（ＳＰＩＥ  Ｊｏｕｒｎａｌ  ｏｆ  Ｅｌｅｃｔｒｏｎｉｃ  Ｉｍａｇｉｎｇ）の中の「高性能カメラの応用：  ＤＳＰベースの人体検出と追跡（Ａ  ｓｍａｒｔ  ｃａｍｅｒａ  ａｐｐｌｉｃａｔｉｏｎ：  ＤＳＰ−ｂａｓｅｄ  ｐｅｏｐｌｅ  ｄｅｔｅｃｔｉｏｎ  ａｎｄ  ｔｒａｃｋｉｎｇ）」という題名の論文に記載されている。
【００６３】
ステップ１５２の垂直輝度ヒストグラムの作成に続き、ポインタ位置パラメータｘを、垂直輝度ヒストグラム内で、ノイズ閾値（ステップ１５４）より高い、最も高い輝度を有する列を検出して決定する。この列を垂直輝度ヒストグラムが作成したピーク基準と等しい、関心ある領域（ＲＯＩ：  ｒｅｇｉｏｎ  ｏｆ  ｉｎｔｅｒｅｓｔ）の幅として処理されるＲＯＩの中心として使用する（図１０参照）。どの列もノイズ閾値より高い輝度を持たない場合、ポインタは、取得した画像内に存在しないと推定される。
【００６４】
ポインタ位置パラメータｘを決定する場合、ＤＳＰ８４は、ポインタ先端が位置する画素行を判定し、ＲＯＩを分析してその行がタッチ面接触または浮上を表すかどうか判定する（ステップ１５６）。具体的には、ＤＳＰ８４は、図１２に示すように、白色画素がポインタを表し、黒色画素が背景を表すようにＲＯＩ内にバイナリマスクを生成する。マスクから、ポインタ中線とポインタ先端位置ｚを容易に算出できる。
【００６５】
ｆｉｌｌＰＩＰルーチン１３４中に、ＤＳＰ８４は、ｓｅｇｍｅｎｔＰｏｉｎｔｅｒルーチン１３２の実行中に取得したポインタと光条件情報を使用してＰＩＰを生成し、それで取得した画像を小さいデータセットに縮小して帯域幅の効率性を向上させる。ＰＩＰは、パケット内の各ワードが１６ビットからなる６個のワードパケット形式である。ＰＩＰは、一般的に次の形式をとる。
【００６６】
【表１】
0005042437.tif 000008
ＰＩＰのヘッダ部分は、一般的に１６ビットで、決定／ソースフィールド、データタイプフィールド、画像フレーム数フィールド、シーケンス番号フィールド、パケット番号フィールドを含む。デスティネーション（宛て先）／ソースフィールドは、ＰＩＰの宛て先およびＰＩＰの送信元を識別する。ＰＩＰを主制御装置５４が生成する場合、デスティネーション（宛て先）は、単一のデジタルカメラ６３または全てのデジタルカメラとなる。データタイプは、ＰＩＰがポインタ情報、またはステータスおよび診断情報のような他の情報と関連しているかどうかを示す。画像フレーム数フィールドは、各デジタルカメラ６３からの画像を順番に主制御装置５４が処理するように番号を格納する。シーケンス番号フィールドは、ＰＩＰを他のＰＩＰと関連づける番号を格納する。パケット番号フィールドは、パケット識別番号を格納する。
【００６７】
ＰＩＰのデータ部分は、一般的に６４ビットで、ポインタＩＤフィールド、ポインタ位置パラメーターフィールド、ポインタ先端パラメーターフィールド、接触状態フィールド、ポインタの良好性フィールドを含む。ポインタＩＤフィールドは、ポインタの識別子を格納して複数のポインタを追跡可能にする。ポインタ位置パラメーターフィールドは、ＤＳＰ８４が算出するｘ値を格納する。ポインタ先端パラメーターフィールドは、ＤＳＰ８４が算出するｚ値を格納する。接触状態フィールドは、ポインタがタッチ面６０と接触、非接触、または多分接触しているという状態を示す値を格納する。ポインタの良好性フィールドは、検出されたポインタの実物の可能性に関する統計値を格納する。
【００６８】
ＰＩＰのチェックサム部分は、ＰＩＰ送信の完全性を保証するのに使用される。ＰＩＰチェックサムエラーがまれな場合、チェックサムエラーを示すＰＩＰは、宛て先のデバイスにより無視される。
【００６９】
ポインタ情報に関連がないステータスＰＩＰは、説明した上記識別されたＰＩＰとは違った形式を持つ。この性質のＰＩＰについては、データ部分は、命令タイプフィールド、命令コードフィールド、およびデータフィールドを含む。命令タイプフィールドは、命令タイプが実行すべき命令か、またはステータス要求であるかどうか識別する。命令コードフィールドは、実効命令またはステータス要求識別子を格納する。データフィールドは、命令のタイプによって、変化するデータを格納する。ステータスＰＩＰの例は、フレームヘッダＰＩＰ、コマンドＰＩＰ、およびエラーメッセージＰＩＰを含む。
【００７０】
フレームヘッダＰＩＰは、現在取得した画像と前の画像間の輝度分散のような、現在の画像の統計量を有する現在取得した画像にそったポインタＰＩＰ数値を含むのが一般的である。主制御装置５４発行のコマンドＰＩＰは、デジタルカメラに指示して露出のような１つまたはそれ以上の設定を調整するか、または新規の背景画像として使用する画像を撮像してもよい。エラーＰＩＰは、デジタルカメラ６３から主制御装置５４にエラー条件を送信してエラーログに格納してもよい。
【００７１】
各デジタルカメラ６３は、上記の方法で取得した各画像を、そのＤＳＰ８４が発生する各クロック信号に応答して処理する。主制御装置５４がデジタルカメラ６３にポーリングする場合、ＤＳＰ８４が生成したＰＩＰは、主制御装置５４に送信されるだけである。
【００７２】
主制御装置５４がデジタルカメラ６３にポーリングする場合、フレーム同期パルスをデジタルカメラ６３に送信してＤＳＰ８４が生成したＰＩＰ送信を開始する。フレーム同期パルスを受信すると、各ＤＳＰ８４は、データバス上で主制御装置５４にＰＩＰを送信する。主制御装置５４に送信されたＰＩＰは、シリアルポート９６を介して受信され、ＤＳＰ９０の中に自動バッファされる。
【００７３】
ＤＳＰ９０がデジタルカメラ６３をポーリングしてポインタ情報を含むＰＩＰをそれぞれのデジタルカメラ６３からの受信したあと、ＤＳＰ９０は、三角測量法を用いてＰＩＰを処理して座標（ｘ、ｙ）にタッチ面６０を基準としたポインタ位置を決定する。具体的には、ペアのデジタルカメラ６３からのＰＩＰは、三角測量法を用いて処理される。
【００７４】
図１１は、２つの角度φcam1とφcam2がタッチスクリーン６０を基準としたポインタ位置（ｘ0、ｙ0）を三角測量するために必要なことを示す。各デジタルカメラ６３が生成するＰＩＰは、ポインタの中線または先端を識別する数θ（図１２参照）を含む。主制御装置５４がデジタルカメラ６３からのＰＩＰを受信すると、主制御装置は、中線またはポインタ先端およびデジタルカメラの視野を表す数を使用して次式を用いて角度φcamを算出する。
【００７５】
【数９】
0005042437.tif 000009
ここで、
ｘは、中線またはポインタ先端を表す数、
ａは、カメラからの所望の距離のデジタルカメラの視野（ＦＯＶ：  ｆｉｅｌｄ  ｏｆ  ｖｉｅｗ）が囲む全長。
【００７６】
算出角φcamは、ＰＩＰを生成したデジタルカメラ６３のタッチ面６０の指定された周辺エッジの向こうに延長した視野の端と、取得した画像内でポインタと交差するデジタルカメラの光軸から延長した直線との間で形成される角度と等しい。視野の端は、視野内のタッチ面６０の指定された周辺エッジ（すなわち、この場合ｘ軸）の向こうに、わかっている量だけ延長するのが好ましい。しかし、ほとんど全ての場合、各デジタルカメラ６３の角度オフセット走査は、異なるものであり未知である。
【００７７】
一旦、主制御装置５４が角度φcamを算出すると、主制御装置５４は、カメラオフセット較正中に決定されたオフセット角δcamを使用して角度φcamを調整する。利用できる２つの角度および調整された角度φcamを用いて、主制御装置５４は、角度φcamを使用し、三角測量法を用いてタッチ面６０を基準としたポインタ位置を決定する。
【００７８】
本実施例では、タッチスクリーン５２が４個のデジタルカメラ６３を含むので、６個のペアのデジタルカメラを三角測量に用いることができる。以下の説明は、ポインタ位置をデジタルカメラ６３の各ペアに対して三角測量によって、決定する方法について記述する。
【００７９】
タッチスクリーン５２の左側に沿ったデジタルカメラ６３から受信したＰＩＰを使用してポインタ位置を決定するには、次式を使用して上下のデジタルカメラの角度φ0、φ1が与えられたポインタ位置座標（ｘ0、ｙ0）を決定する。
【００８０】
【数１０】
0005042437.tif 000010
ここで、
ｈは、タッチスクリーン５２の高さ、すなわち、２個のデジタルカメラの各焦点を合わせた垂直距離、
ｗは、タッチスクリーン５２の幅、すなわち、２個のデジタルカメラの各焦点を合わせた水平距離、
φiは、水平に対する角度で、デジタルカメラｉと式（０．７）を使用して測定される。
【００８１】
タッチスクリーン５２の右辺に沿ったデジタルカメラ６３については、次式を使用して上下のデジタルカメラの角度φ2、φ3が与えられたポインタ位置座標（ｘ0、ｙ0）を決定する。
【００８２】
【数１１】
0005042437.tif 000011
式（０．８）と（０．１０）間の類似性、すなわち、式（０．８）の角φ1、φ2に角φ2、φ3をそれぞれ代入すると、式（０．１０）＝１−式（０．８）が得られることは明白であろう。同様に、式（０．９）と（０．１１）も関連性がある。
【００８３】
タッチスクリーン５２の最下段に沿ったデジタルカメラ６３を使用してポインタ位置を決定するのに、次式を使用して左下と右下デジタルカメラの角度φ0、φ3が与えられたポインタ位置座標（ｘ0、ｙ0）を決定する。
【００８４】
【数１２】
0005042437.tif 000012
タッチスクリーン５２の最上部に沿ったデジタルカメラ６３を使用してポインタ位置を決定するのに、次式を使用して左上と右上のデジタルカメラ角度φ1、φ2が与えられたポインタ位置座標（ｘ0、ｙ0）を決定する。
【００８５】
【数１３】
0005042437.tif 000013
式（０．１２）と（０．１４）間の類似性、すなわち、式（０．１４）＝式（０．１２）は、式（０．１２）の角φ0、φ3に角φ1、φ2をそれぞれ代入して得られたものであることは明らかであろう。式（０．１３）と（０．１５）は、次のような関係を有する、すなわち、式（０．１３）の角φ0、φ3に角φ1、φ2をそれぞれ代入すると、式（０．１５）＝１−式（０．１３）が得られる。
【００８６】
左下隅と右上隅を結ぶ対角線を横切るデジタルカメラ６３を使用してポインタ位置を決定するのに、次式を使用して左下と右上のデジタルカメラの角度φ0、φ2が与えられたポインタ位置座標（ｘ0、ｙ0）を決定する。
【００８７】
【数１４】
0005042437.tif 000014
右下と左上を結ぶ対角線を横切るデジタルカメラ６３を使用してポインタ位置を決定するのに、次式を使用して左上と右下のデジタルカメラ角度φ1、φ3が与えられたポインタ位置座標（ｘ0、ｙ0）を決定する。
【００８８】
【数１５】
0005042437.tif 000015
式（０．１６）と（０．１８）間の類似性、すなわち、式（０．１６）の角φ0、φ2に角φ1、φ3をそれぞれ代入すると式（０．１６）＝式（０．１８）が得られることは明白でであろう。式（０．１７）と（０．１９）は、次のような関係を有する、すなわち、式（０．１７）の角φ0、φ2に角φ1、φ3をそれぞれ代入すると式（０．１９）＝１−式（０．１７）が得られる。
【００８９】
上記の式が目盛り［０、１］上の座標（ｘ0、ｙ0）を生成するのは、当然であろう。したがって、最大値Ｘ、最大値Ｙをｘ0、ｙ0にそれぞれ乗じてどんな適切な座標目盛りを使用しても報告できる。
【００９０】
本実施例において、ＤＳＰ９０は、対角線ペアを除く各デジタルカメラペアの三角測量法を用いてポインタ位置を算出する。その後、その結果得られたポインタ位置を平均化し、その結果得られたポインタ位置座標をシリアルポート９８およびシリアルラインドライバ９４を介してパーソナルコンピュータ５６に送信するために待ち行列に入れる。
【００９１】
三角測量によって、わかるポインタ位置（ｘ、ｙ）と共に、表面検出較正中に算出される係数Ａ〜Ｅを使用して、位置（ｘ、ｙ）に対応するｚ座標を式（０．１）を用いて決定できる。ｚ座標を算出してＰＩＰ内のｚ座標をｚパラメータと比較することで、ポインタがタッチ面６０より上に浮上しているか、またはタッチ面と実際に接触しているかどうかに関する示度が得られる。
【００９２】
図１３に示すように、必要に応じて、ＤＳＰ９０は、ポインタ速度ｖと角度を算出する。ポインタ速度は、連続したＰＩＰのポインタ位置ｚ（またはｘ切片）の変化分を調べてカメラフレーム速度を知ることで算出される。例えば、カメラフレーム速度が２００フレーム／秒で位置ｚが１画素行／フレームで変化する場合、ポインタ速度は、２００画素／秒となる。
【００９３】
ポインタの角度は、ＰＩＰが中線の画素行０と１９でｘ切片を含むという事実により決定できる。ｘ方向の距離（ｘ切片間差分）とｙ方向の距離（画素行の数）がわかるので、ポインタ角度を算出するのに必要な全ての情報が得られたことになる。
【００９４】
ポインタがタッチ面６０のある距離の範囲内にある場合、効果的にポインタを「追跡する」のにカルマンフィルタ（本質的に帰納的最小二乗法）を必要に応じて使用できる。これを実行するにはシステム方程式やフィルタで使用されるモデルを定義する必要がある。主制御装置５４からポインタ位置ｚおよび速度ｖの両方を得ることができるので、次式を用いることができる。
【００９５】
ｚ＝ｚ0＋ｖｔ
ｖ＝ｖ
フィルタは、速度の処理法を知っていなければならず、また、ｚおよびｖの両方が測定可能なので上記の第２式が必要なる。状態ベクトルを次のように定義する。
【００９６】
［ｚｖ］T
２つの連続した時間ｎおよびｎ＋１でシステムの状態を関連させるために、行列差分方程式としてシステム式を次のように記述する。
【００９７】
【数１６】
0005042437.tif 000016
または行列ノーテーションで、
【００９８】
【数１７】
0005042437.tif 000017
ここで、ｄｔは連続した時間ステップ間の時間間隔を示す。また、ここで、「処理ノイズ」項をＲＨＳに導入する。それは単に公式であるが、カルマンフィルタ法の一部である。また、手順に測定値をどのように導入するかを指定することが必要である。これは、行列方程式によって、実行できる。
【００９９】
ｚn＝Ｈｘn＋ｗ
ここで、ｚnは、位置と速度の測定値で、Ｈは、恒等行列と考えられる「測定行列」、ｘnは、状態ベクトル、ｗは、測定ノイズである。本質的に、測定は、状態ベクトルの雑音が多いバージョンと仮定される。また、ｗに関連する共分散行列を定義することが必要である。ｚ内の測定誤差が０．５画素の場合には、共分散行列は次のようになる。
【０１００】
【数１８】
0005042437.tif 000018
相似な行列Ｑが上で導入された処理ノイズに必要になるが、それは多少任意なので、それをフィルタの調整パラメータとみなしてもよい。この例では、行列Ｑは、一次係数項またはそれより小さい係数を乗じた恒等行列と考えられる。上記で確定した内容でフィルタ処理を開始する充分な情報が得られた。第１の（予測）ステップは、次のとおりである。
【０１０１】
【数１９】
0005042437.tif 000019
ここで、（−）記号は、測定がまだなされていないことを意味し、一方（＋）記号は、すでに測定がなされたことを意味する（ただし、この場合、（＋）記号は、前のステップを意味する）。また、行列Ｐの行列方程式は、共分散行列を予測する。次のステップは、フィルタ利得計算である
【０１０２】
【数２０】
0005042437.tif 000020
一旦、測定を実行すると、状態推定およびその共分散を更新できる。
【０１０３】
【数２１】
0005042437.tif 000021
それは、タッチ面との接触が発生したか否かを判定するのに使用される状態ｘのこの推定である。行列ＨおよびＲは、共に時間に関し定数で、行列ＫおよびＰだけが変化する（実際、Ｐは一定の行列に漸近する）ことは、注意を要する。複雑な制御処理がないので付加的な簡略化が可能である。
【０１０４】
等速度でタッチ面６０に接近しているポインタを表す一連の測定値を使用してカルマンフィルタのＭａｔｌａｂ（行列計算用コンピュータ言語、以下Ｍａｔｌａｂとよぶ）シミュレーション結果を実行した。図１５および図１６は、時間ステップｄｔ＝０．１秒、および測定精度＝０．５画素、の場合のシミュレーションを例示する。白抜きの記号は、データを表し、線は、カルマンフィルタからの推定状態を表す。明らかに、状態推定は、非常によくデータに従っている。
【０１０５】
第２のＭａｔｌａｂシミュレーションをポインタの垂直（ｚ）および水平（ｘ）運動の両方を考慮に入れて実行した。基本的に、このシミュレーションは、「平行」形態で一緒に動作している２個の類似したカルマンフィルタである。その公式化は、考慮すべき変数の数が２倍になるという点を除いて、全く同一である。図１７ａ〜図１７ｄは、そのシミュレーションの結果を示し、等速度でゆっくりｘ位置を変えながら（すなわち人の手が固定していない）タッチ面６０の方向へ向かうポインタの移動を表す。
【０１０６】
タッチシステム５０を、タッチスクリーン上に画像を表示するプロジェクタを含むように説明したが、それが必ずしも必要でないことは当業者にとっては当然であろう。タッチスクリーン５２は、ディスプレイユニットに表示される表示がタッチスクリーンを通して見えるように、透明または半透明で、ディスプレイユニット上に設置される。また、タッチスクリーンは、フレームで縁付けされた矩形シート材である必要はない。実際、タッチスクリーンは、実質的に２個またはそれ以上のデジタルカメラの重複する視野内のどんな表面でもよい。
【０１０７】
また、タッチシステム５０をデジタルカメラから分離した主制御装置を含むように説明しているが、必要に応じて、デジタルカメラの１個をカメラと主制御装置の両方として機能させ、ＰＩＰ用の他のデジタルカメラにポーリングするように調整できる。この場合、主制御装置として機能するデジタルカメラは、残りのデジタルカメラよりも高速のＤＳＰ８４を含むのが好ましい。
【０１０８】
さらに、表面検出ルーチンは、タッチスクリーンを基準とした任意のポイント（ｘ、ｙ）のポインタのｚ座標を算出するのに式（０．１）で使用する係数Ａ〜Ｅを決定するように記述しているが、表面検出ルーチン中に、タッチ面の固有の（ｘ、ｙ）領域のｚ座標を算出し、ルックアップテーブル（ＬＵＴ：  Ｌｏｏｋ  ｕｐ  ｔａｂｌｅ）内にｚ座標を格納するように主制御装置５４をプログラムすることもできる。この場合、ポインタがデジタルカメラで撮像した画像内に現れてタッチ面を基準としたポインタ位置（ｘ、ｙ）が決定されると、ポインタが位置する（ｘ、ｙ）領域に対応しているＬＵＴ内のｚ座標をポインタ先端が位置するＣＭＯＳカメライメージセンサおよびレンズアセンブリの画素行と比較することによって、ポインタがタッチ面と接触しているかどうかを判定できる。
【０１０９】
上記のように、主制御装置５４は、各デジタルカメラのタッチ面のｚ座標を算出、または検索し、そしてｚ座標をポインタ先端位置ｚと比較してポインタがタッチ面と実際に接触しているかどうかを判定する。しかし、デジタルカメラ内のＤＳＰ８４が、画像処理ソフトウェアを含み、ポインタがタッチ面と実際に接触しているかどうかを判定できることは当業者にとっては当然であろう。この画像処理は、主制御装置ポインタ接触決定と連動してまたはその代わりに予め形成できる。
【０１１０】
本発明の好適な実施例を説明したが、添付の特許請求の範囲に記載のその趣旨および範囲から逸脱することなく、変更および修正ができることは当業者にとっては当然であろう。
【図面の簡単な説明】
【図１】  本発明のカメラベースのタッチシステムの概略図である。
【図２】  図１のタッチシステムの一部を形成しているタッチスクリーンの等角図である。
【図３】  図２のタッチスクリーンのコーナー部分の等角図である。
【図４】  図２のタッチスクリーンの一部を形成しているデジタルカメラの概略図である。
【図５】  図１のタッチシステムの一部を形成している主制御装置の概略図である。
【図６】  プロセスフレームルーチンの実行中に実行されるステップを示しているフローチャートである。
【図７】  セグメントポインタルーチンの実行中に実行されるステップを示しているフローチャートである。
【図８】  ポインタ検出ルーチンの実行中に実行されるステップを示しているフローチャートである。
【図９】  デジタルカメラが取得する画像と処理される画像の画素サブセットを示す。
【図１０】  図９の画素サブセット内の関心ある領域（ＲＯＩ）を示す。
【図１１】  図２において、例示されるタッチスクリーンのタッチ面上のポインタ接触位置を算出するのに使用する三角測量の幾何学的配列を示す。
【図１２】  ポインタ先端とその中線を含むデジタルカメラにより取得された画像を示す。
【図１３】  ポインタの異なった方向のポインタ接触とポインタ浮上を示す。
【図１４】  デジタルカメラで見たタッチスクリーンのタッチ面の画像である。
【図１５】  カルマンフィルタを使用したポインタ追跡のＭａｔｌａｂシミュレーションの結果を示す。
【図１６】  カルマンフィルタを使用したポインタ追跡のＭａｔｌａｂシミュレーションの結果を示す。
【図１７ａ】  カルマンフィルタを使用したポインタ追跡の他のＭａｔｌａｂシミュレーションの結果を示す。
【図１７ｂ】  カルマンフィルタを使用したポインタ追跡の他のＭａｔｌａｂシミュレーションの結果を示す。
【図１７ｃ】  カルマンフィルタを使用したポインタ追跡の他のＭａｔｌａｂシミュレーションの結果を示す。
【図１７ｄ】  カルマンフィルタを使用したポインタ追跡の他のＭａｔｌａｂシミュレーションの結果を示す。
【図１】
0005042437.tif 000022
【図２】
0005042437.tif 000023
【図３】
0005042437.tif 000024
【図４】
0005042437.tif 000025
【図５】
0005042437.tif 000026
【図６】
0005042437.tif 000027
【図７】
0005042437.tif 000028
【図８】
0005042437.tif 000029
【図９】
0005042437.tif 000030
【図１０】
0005042437.tif 000031
【図１１】
0005042437.tif 000032
【図１２】
0005042437.tif 000033
【図１３】
0005042437.tif 000034
【図１４】
0005042437.tif 000035
【図１５】
0005042437.tif 000036
【図１６】
0005042437.tif 000037
【図１７】
0005042437.tif 000038