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