特許第5693729号(P5693729)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アドヴァンスト・シリコン・ソシエテ・アノニムの特許一覧

特許5693729マルチタッチ装置から任意の数のタッチを検出する方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5693729
(24)【登録日】2015年2月13日
(45)【発行日】2015年4月1日
(54)【発明の名称】マルチタッチ装置から任意の数のタッチを検出する方法
(51)【国際特許分類】
   G06F 3/041 20060101AFI20150312BHJP
   G06F 3/0488 20130101ALI20150312BHJP
【FI】
   G06F3/041
   G06F3/048 620
【請求項の数】8
【全頁数】26
(21)【出願番号】特願2013-528560(P2013-528560)
(86)(22)【出願日】2011年3月11日
(65)【公表番号】特表2013-541088(P2013-541088A)
(43)【公表日】2013年11月7日
(86)【国際出願番号】EP2011053757
(87)【国際公開番号】WO2012034715
(87)【国際公開日】20120322
【審査請求日】2013年5月15日
(31)【優先権主張番号】01480/10
(32)【優先日】2010年9月15日
(33)【優先権主張国】CH
(73)【特許権者】
【識別番号】513060636
【氏名又は名称】アドヴァンスト・シリコン・ソシエテ・アノニム
(74)【代理人】
【識別番号】100069556
【弁理士】
【氏名又は名称】江崎 光史
(74)【代理人】
【識別番号】100111486
【弁理士】
【氏名又は名称】鍛冶澤 實
(74)【代理人】
【識別番号】100157440
【弁理士】
【氏名又は名称】今村 良太
(74)【代理人】
【識別番号】100173521
【弁理士】
【氏名又は名称】篠原 淳司
(74)【代理人】
【識別番号】100153419
【弁理士】
【氏名又は名称】清田 栄章
(72)【発明者】
【氏名】ヴァイスハウプト・アンドレアス
(72)【発明者】
【氏名】ヴアダン・フランソワ
(72)【発明者】
【氏名】シャパット・ノルマン
【審査官】 鹿野 博嗣
(56)【参考文献】
【文献】 特表2007−533044(JP,A)
【文献】 国際公開第2009/007704(WO,A1)
【文献】 特開2006−133196(JP,A)
【文献】 特表2009−537051(JP,A)
【文献】 国際公開第2010/036580(WO,A1)
【文献】 国際公開第2010/084498(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/041
G06F 3/0488
(57)【特許請求の範囲】
【請求項1】
マルチタッチ装置が提供する入力画像(7000)から任意の数のタッチを検出する方法であって、
前記の入力画像(7000)を処理して、処理画像(8000)を取得する工程(1010〜1050)と、
前記の処理画像(8000)を閾値処理によりセグメント化して、セグメント化画像を取得する工程(2010)と、
前記のセグメント化画像の領域を識別する工程(2030)と、
各極大値が1画素サイズの極大値であり、各領域内の一つのサブ領域に属する、極大値を発見する工程と、
前記の極大値に基づき、少なくとも一つのタッチ位置(9000)を決定する工程と、
を有し、
前記の領域の面積、四角形類似度係数及び各領域内で発見された1画素サイズの極大値の数の中の一つ以上に基づく所定の条件により幾つかの領域を破棄し、
前記の少なくとも一つのタッチ位置を決定する工程が、この破棄後に残った各領域の幾何学的中心を計算すること(2050)から構成され、
一つの領域が一つの1画素サイズの極大値を有する場合、その領域の全ての画素を考慮して、前記の計算を実行し、一つの領域が複数の1画素サイズの極大値を有する場合、その領域の各極大値が中心に有るサブ領域内の画素だけを考慮して、前記の計算を実行する、
方法。
【請求項2】
当該のサブ領域がN×Nサイズの画素であり、ここで、Nは奇数であり、
当該の極大値を発見する工程が、複数の反復工程から成り、各反復工程において、
当該のサブ領域の中心に一つの領域の一つの画素が有り、その画素が反復工程毎に変化するように、当該のサブ領域を定義し、
当該のサブ領域の中心に有る画素以外の当該のサブ領域内の画素の値が、当該のサブ領域の中心に有る画素の値よりも小さいか否かを検証し、
前記のサブ領域の中心に有る画素以外の前記のサブ領域内の画素の値が前記のサブ領域の中心に有る画素の値よりも小さいと検証された場合に、当該のサブ領域の中心に有る画素を1画素サイズの極大値として識別する、
請求項1に記載の方法。
【請求項3】
当該の入力画像の処理工程が、当該の入力画像(7000)をフィルタリングすること(1010,1030,1050,2020)から構成される請求項1に記載の方法。
【請求項4】
当該のタッチ位置に基づき軌跡を生成する工程(3009)と、
軌跡毎に、各軌跡を割当済み又は未割当として識別する状態ビット(FIFO)を割り当てる工程と、
ラベルを付与されている軌跡毎に線形割当問題を解く工程(3010)と、
ラベルを付与されていない軌跡毎に線形割当問題を解いて、ラベルを付与されている軌跡を更新する工程(3020,3023,3024)と、
前記の更新されたラベルを付与されている軌跡をフィルタリングする工程(3030)と、
を更に有する請求項1に記載の方法。
【請求項5】
当該のタッチ位置毎に軌跡を生成する工程が、距離行列(C)を計算すること(3018)を含み、
当該のタッチ位置毎に軌跡を生成する工程が、
位置、
速度単位、
方向の変化、及び
強度の変化、
のパラメータを考慮して、尤度行列を計算することを含む、
請求項に記載の方法。
【請求項6】
一つのジェスチャ又は簡単なジェスチャを検出するために予備分析を行なうこと(4001)と、
ジェスチャを検出しなかった場合に、相対運動ベクトルの座標を出力すること(4003)と、
簡単なジェスチャを検出した場合に、シンプルジェスチャ信号を出力すること(4005)と、
一つのジェスチャであるが、簡単なジェスチャでない場合に、基準ジェスチャ(4008)との比較を実行すること(4006,4007,4009)と、
を更に有する請求項1に記載の方法。
【請求項7】
プロセッサにより実行可能な命令を有する不揮発性の有形コンピュータ読取可能媒体であって、
前記の命令が実行された場合に、請求項1に記載の方法が実施される不揮発性の有形コンピュータ読取可能媒体。
【請求項8】
マルチタッチ装置用のマルチタッチ機器であって、
マルチタッチ装置が出力する入力画像(7000)を処理して、処理画像(8000)を取得する処理手段と、
前記の処理画像(8000)を閾値処理して、セグメント化画像を取得するセグメント化手段(2010)と、
セグメント化画像の領域識別する識別手段(2030)と、
各領域内の一つのサブ領域に属する1画素サイズの極大値を計算する手段と、
前記の極大値に基づき、一つ又は複数のタッチ位置(9000)を決定する決定手段と、
前記の領域の面積、四角形類似度係数及び各領域内で発見された1画素サイズの極大値の数の中の一つ以上に基づく所定の条件により幾つかの領域を破棄する破棄手段(2040)と、
を備え
前記の少なくとも一つのタッチ位置を決定する決定手段が、この破棄後に残った各領域の幾何学的中心を計算すること(2050)から構成され、一つの領域が一つの1画素サイズの極大値を有する場合、その領域の全ての画素を考慮して、前記の計算を実行し、一つの領域が複数の1画素サイズの極大値を有する場合、その領域の各極大値が中心に有るサブ領域内の画素だけを考慮して、前記の計算を実行するように構成されている、
マルチタッチ機器。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチタッチ装置から任意の数のタッチを検出する方法に関する、本方法は、検出したタッチの追尾とジェスチャ認識も可能である。
【背景技術】
【0002】
一つの実施例は、
第一の数の行と第二の数の列の検知コンデンサから成るアレイと、
入力信号を生成して、その入力信号を行走査速度で各行にアドレス指定する手段と、
第二の数の回路と、
を備えた容量式検知装置の使用に関連するが、本発明は、如何なるタッチ検知技術をベースとしても実現できる。
【0003】
好ましい実施形態では、この回路は、
ローパスフィルタと、
入力コンデンサを備えた相関式ダブルサンプラと、
サンプラ兼ホルダと、
アナログ・デジタル変換器と、
を備え、このローパスフィルタは、入力コンデンサとシリアルレジスタを備えている。
【0004】
言い換えると、これは、ローパスフィルタと相関式ダブルサンプラを一つのブロックに統合した回路である。
【0005】
マルチタッチ装置は、複数の物体、例えば、指の接触又は接近を同時に検出できる装置である。周知のマルチタッチ装置の例は、容量式センサーをベースとしており、容量式タッチパッド、容量式タッチパネル、容量式タッチスクリーン又は容量式投影ディスプレイ(これらに限定されない)などの様々な機器で使用できる。容量方式のタッチ装置は、一般的にコンデンサの配列から構成される。誘電特性が良好な物体、例えば、指が装置に接近すると、その下に有るコンデンサの容量が変化する。容量検知式集積回路(CSIC)によって、中速度、典型的には100〜1,000fpsで配列全体が読み取られる。そのような回路のデジタル出力は、グレイスケール画像のシーケンスであり、それらの画素にはデジタル容量値が対応している。
【0006】
本発明は、そのような画像シーケンスを処理して、任意の数のタッチ位置を計算することと、それらの位置を画像シーケンスに渡って追尾することとに関する。本方法は、ジェスチャ認識も可能である。
【0007】
図1に図示されている通りのマルチタッチ方法は、通常容量式タッチパネル200と接続されたCSICのデジタル出力を処理するために使用できる。マルチタッチ方法は、例えば、校正及び予備画像処理1000、画像セグメント化及び分析2000及び追尾3000の工程から構成できる。それに代わって、ブロックマッチング/KLT(カナード・ルーカス・トマシ)式追尾又はそれ以外の同様の周知技術を用いて、画像セグメント化・分析2000を追尾3000と組み合わせて一つの工程とすることもできる。しかし、そのような取り組みは、良好な分解能を有する非常に綺麗な入力画像、即ち、雑音の少ない入力画像を必要とする。図1に図示された方法の出力は、例えば、USB接続部を介してホスト5000に伝送できる。
【0008】
指/軌跡の数によって制限されず、正確な位置決定を可能とし、複数のタッチを検出するハードウェアの実現を目的とする低い全般的処理要件を必要とするアプリケーションに適した方法を含む、ロバストで速いマルチタッチ検出/追尾が可能な改善方法に対する需要が存在する。
【0009】
特許文献1(シナプティックス社)は、タッチセンサーパッド上のタッチを検出する方法を記載しており、そこでは、水平方向(x)と垂直方向(y)の両方におけるタッチ位置が、タッチセンサー配列の個々の検知ライン上で測定した容量の加重平均を求めること(幾何学的中心の計算)によって計算されている。この方法は、複数本の指が触れている場合にロバストではないので、真のマルチタッチ検出ができない。この方法は、タップ、即ち、上下動作、ダブルタップ及びそれ以外の同様の動作のような特定の簡単なジェスチャのためだけに、検知した単一のタッチを追尾する工程を有する。これらの追尾及びジェスチャ認識は密接に関係するが、容易に拡張できない非常に特殊な実現形態となっている。
【0010】
特許文献2(ロジテック社)は、良く揃った一本以上の指とタッチパッドの間の関連動作を検出する方法を記載している。雑音抑制と校正フェーズ後に、指の空間プロフィルを走査して、xプロフィルとyプロフィルの入力を抽出している。指が二本、例えば、人指し指と中指の場合、指のプロフィル内の第一の指を示す第一の最大値の後に、指の間の隙間を示す最小値が続き、更に、第二の指を示す別の最大値が続いている。これらの指は揃っていなければならないので、二つの最大値の間の距離に閾値を適用して、偽造物を無効にできる。タッチ位置は、二つの最大値の間の中点として定義される単一の重心値を計算することによって決定できる。そこに記載されている方法は、雑音に強くない。更に、位置決定が非常に正確でなく、タッチが良く揃っていないとマルチタッチを検出できない。更に、その方法は、四本以上の指が同時にタッチパッドと触れている場合には動作しない。この特許文献は、ジェスチャ認識と密接に関係するマルチタッチトラッカーを開示しており、そこでは、最も左又は最も右のタッチをポインタとして使用し、それ以外のタッチが有れば、それを単一のジェスチャ認識のために使用している。
【0011】
特許文献3(アップル社)は、入力画像全体をフィルタリングした後、それらの境界に基づきタッチ領域を発見することによってタッチ位置の決定を行なうマルチタッチ検出方法を記載しており、入力画像のトポロジーを示す階調度データを計算して、その階調度データに基づきタッチ領域の境界を計算した後(この境界を計算した出力は、二進トポロジー画像、即ち、1である境界以外の全ての位置が0である画像)、ウオーターシェッドアルゴリズムを用いて、境界データからタッチ領域を決定している(このウォーターシェッド変換出力は領域の画像、即ち、閉じた境界(タッチ領域)の内部以外の全ての位置が0である画像である)。このタッチ位置の決定は、各タッチ領域と関連するデータを用いた重心の計算を行なうことによって実現されている。そこに記載された方法は、周知の解決策と比べて非常に高い処理要件を必要とし、そのため、手/スタイラスによる書込/描画アプリケーションには適さない。更に、それは、十本以上の指のためには設計されていないので、タッチ及び/又はこの装置を使用する人の数が制限されている。
【0012】
特許文献4(アトメル/QRG社)は、容量信号値が最も大きな検知素子の決定後に、その周りの領域を定義するマルチタッチ検出方法を記載している。その方法は、それぞれ次の工程において、その前に定義された領域内に存在する信号を除外することによって、これら二つの工程を反復して繰り返している。その方法は、隣接キー抑制方式を修正した実現形態を使用している。その方法は、又もや周知の解決策と比べて非常に高い処理要件を必要としている。更に、それは正確でなく、各領域内のタッチ位置を一層正確に決定するためには、隣接する信号値間の補間が必要である。二つの異なる時点で決定されたタッチ位置の間の全ての取り得るパスのパス長の計算に基づき、タッチを追尾している。その次に、各組合せの距離の合計を見つけて、距離が最も短い組合せが考察している物体に関する最も短い追尾距離を表し、そのため、それらの物体に関する最も有望な追尾の組合せを表している。これらの追尾工程は、特に、多数の物体が存在する場合、多数の計算を必要とする。更に、その方法の追尾部分は正確ではない。
【0013】
特許文献5(サムソン社)は、信号強度が閾値を上回る検知チャネルの数に基づき、シングルタッチであるか、或いはマルチタッチであるかを検知する工程を有するマルチタッチ方法を記載している。検知チャネルの数が第二の閾値(例えば、3)を上回った場合、コントローラは、その操作がマルチタッチ検知に基づくものであると決定している。その方法は正確ではなく、誤った検知が存在する場合に弱い。追尾に言及していない。
【0014】
特許文献6(アップル社)は、タッチ領域の楕円フィッティング、ファジーパターン認識、手及び指識別の割当問題などの高度であるが、多くの計算リソースを使用するデジタル信号処理(DSP)工程を用いて、多数のパラメータ、例えば、16個のパラメータを確実に追尾するマルチタッチ追尾方法を記載している。言い換えると、その方法は、周知の解決策と比べて非常に大きな処理及びメモリ要件を必要としている。ジェスチャは、モーションパラメータ分析とビットマスクの組合せに基づき認識している。しかし、それは柔軟でなく、追尾するパラメータの多くはジェスチャ認識には役立っていない。更に、その方法は、3本以上の手又は二人以上の人では正常に動作しない。
【0015】
特許文献7(ニューヨーク大学)は、表面とその表面の圧力を検知するセンサー配列とを有し、プロセッサに対して、その表面の圧力に対応する信号を生成するセンサーパッドを記載している。このセンサーパッドを使用するためには、ユーザが、それをコンピュータのUSBポートに差し込まなければならない。センサー配列の各行に順番に正の電圧を印加した後、センサー配列の各列の電圧値を順番に読み出している。その圧力検出は容量式ではない。ハードウェアは、センサーパッドからのアナログ値を走査した場合に、それを電圧値の二次元配列に戻して圧力に変換している。如何なる点がタッチされているか、或いは接触点を決定するために、校正値の付加的な二次元配列を計算して、最初の二次元配列から減算している。全ての接触点に対して、圧力が最大となる点又はシード点を発見している。シード点を発見した後、各シード点の周りの繋がった全ての領域を見つけ出して、区画毎に中心と偏差を計算している。繋がった区画を追尾する工程の次に、フィルタリング工程が続いている。その文献は、セグメント化工程、領域の識別及びサブ領域の使用に言及していない。
【0016】
特許文献8(アップル社)は、タッチセンサーパネルの端領域におけるタッチ接点を選択的に排除する方法を記載している。しかし、端領域における接点は、距離又は速度の閾値を超えて動いて、ジェスチャの一部として認識される可能性が有る。そのような識別も、端領域内で実行される追尾操作が可能である。端領域の大きさは、指又は親指の識別に基づき修正できる。
【先行技術文献】
【特許文献】
【0017】
【特許文献1】米国特許第5543591号明細書
【特許文献2】米国特許第5825352号明細書
【特許文献3】米国特許第7663607号明細書
【特許文献4】国際特許公開第2009/007704号明細書
【特許文献5】米国特許公開第2008/0087477号明細書
【特許文献6】米国特許第7656394号明細書
【特許文献7】国際特許公開第2009/108334号明細書
【特許文献8】欧州特許第2077490号明細書
【発明の概要】
【発明が解決しようとする課題】
【0018】
以上のことから、マルチタッチ装置から任意の数のタッチをロバストに、正確に、かつ指の整列形態と独立して検出する方法が必要とされている。
【0019】
また、検出するタッチ数を制限しない、手/スタイラスによる書込/描画アプリケーションに適した任意の数のタッチを検出する方法も必要とされている。
【0020】
周知の解決策と比べて低い全体的処理要件により任意の数のタッチを検出し、追尾する方法も必要とされている。
【0021】
追尾するタッチ数を制限しない、二人以上の人又は三本以上の手による使用に適した任意の数のタッチを追尾する方法も必要とされている。
【0022】
また、柔軟なジェスチャ認識、即ち、如何なる数の指による如何なる種類のジェスチャの認識が可能な、任意の数のタッチを追尾する方法も必要とされている。
【課題を解決するための手段】
【0023】
上記の課題は、本発明による請求項1に記載のマルチタッチ装置から任意の数のタッチを検出する方法と、請求項に記載の不揮発性の有形コンピュータ読取可能媒体及び請求項に記載のマルチタッチ機器によって達成される。
【0024】
ここで開示した方法の従来技術と比べた利点は、特に、タッチ数に関する制限が無く、周知の解決策と比べて低い全体的処理要件を必要とする「真の」マルチタッチ検出が可能なことである。
【0025】
有利には、本発明による方法は、手/スタイラスによる書込/描画アプリケーションに適用可能である。
【0026】
本方法は、追尾するタッチ数に関する制限が無く、二人以上の人による使用にも適したロバストなマルチタッチ追尾が可能である。
【0027】
有利には、本発明による方法は、如何なる種類の指による如何なる種類のジェスチャも認識できるので、柔軟なジェスチャ認識が可能である。
【0028】
本発明による方法は、従来技術による別のアプローチと比べて速く、タッチ数に対するタッチ検出速度の依存性を無視できる。更に、入力データの品質に対してロバストであり、有利には、ここで開示した方法によって、品質が低い、即ち、雑音レベルが高く解像度が低い入力データを良好に取り扱うことができる。
【0029】
本発明は、以下の図面に図示された実施例の記述によって、より良く理解される。
【図面の簡単な説明】
【0030】
図1】マルチタッチ方法の主要工程の模式図
図2】本発明による方法の一つの実施形態の簡略化したフローチャート図
図3A】3×3サブ領域方式による極大値調査の例を示す図
図3B】極大値と別の形式の最大値を発見する例を示す図
図4】タイムスロットが重なり合っていない形の真の平均化による時間領域フィルタリングの例を示す図
図5】本発明による方法の一つの実施形態の第一の濃淡レベル画像フィルタリング工程の一つの実施形態を示す図
図6】本発明による方法の一つの実施形態の第二の濃淡レベル画像フィルタリング工程の一つの実施形態を示す図
図7A】本発明による方法の一つの実施形態の二進画像フィルタリング工程に必要な3×3正方画素構造化要素を用いた基本二進モルフォロジーオペレーションの一つの実施形態を示す図
図7B】本発明による方法の一つの実施形態の二進画像フィルタリング工程に必要な3×3正方形画素構造化要素を用いた基本二進モルフォロジーオペレーションの一つの実施形態を示す図
図7C】本発明による方法の一つの実施形態の二進画像フィルタリング工程に必要な3×3正方形画素構造化要素を用いた基本二進モルフォロジーオペレーションの一つの実施形態を示す図
図8】四つの異なる2×2正方画素構造化要素によるモルフォロジーフィルタリングを用いた二進画像フィルタリング工程の一つの実施形態を示す図
図9】本発明による方法の一つの実施形態よる追尾工程のフローチャート図
図10A】本発明の一つの実施形態による線形和割当問題(LSAP)とソフトゲーティング法を説明するためのマルチタッチ追尾の一つの例を示す図
図10B】本発明の一つの実施形態による線形和割当問題(LSAP)とソフトゲーティング法を説明するためのマルチタッチ追尾の一つの例を示す図
図10C】本発明の一つの実施形態による線形和割当問題(LSAP)とソフトゲーティング法を説明するためのマルチタッチ追尾の一つの例を示す図
図11】本発明の一つの実施形態による大きな偏位に対する予測タッチ位置を用いたゲート距離及び割当変化の説明図
図12】本発明の一つの実施形態による追尾部分の主要工程の簡略化したフローチャート図
図13】本発明の一つの実施形態によるジェスチャ認識部分の主要工程のフローチャート図
【発明を実施するための形態】
【0031】
図2は、本発明による方法の一つの好ましい実施形態のフローチャート図を図示している。マルチタッチ装置の容量検知式集積回路(CSIC)の画像出力、例えば、16ビットの画像が、第一の校正・予備処理ブロック1000の入力画像7000として使用されている。この入力画像は、符号を持たない、即ち、負の画素値を含まない。この第一のブロック1000の次に、セグメント化・分析ブロック2000と追尾ブロック3000が続いている。これらのブロックは、入力画像シーケンスのフレーム毎に処理している。
【0032】
本文脈において、「ブロック」との名詞は、機能を提供する機能ユニットを意味する。一つのブロックは、ハードウェアコンポーネント及び/又はソフトウェアコンポーネントにより実現できる。
【0033】
本文脈において、「画像」との用語は、マルチタッチ装置の各検知コンデンサにおける電荷の二次元又は多値表現形式などのマルチタッチ装置の状態の二次元表現形式を表す。一つの画像は、必ずしも表示されている、或いは表示を意図している画像ではない。
【0034】
追尾ブロック3000の出力は、N個のベクトルから構成され、各ベクトルは、(N,ID,x,y,z)の形式であり、ここで、
Nは、一つの時点において、マルチタッチ装置上に存在するタッチ数であり、
IDは、特定のタッチを識別する数であり、
xとyは、IDに対応するタッチのタッチ位置の平面座標であり、
zは、タッチ強度、即ち、マルチタッチ装置の上又は近傍に物体が存在することにより生じる電界の変化に比例する値である。言い換えると、タッチ強度zは、本装置に対する物体の距離と物体の当量誘電率又は伝導度に比例する。
【0035】
ゼロタッチ基準画像或いはベースライン又はベースライン画像を取得するための初期校正1020は、平均減算1040、即ち、入力画像7000からの前記のベースライン画像の減算と共に、タッチを良好に特定できた場合に、符号付き差分画像を抽出できる。符号付き画像は、負と正の両方の画素値を持つことができる。工程1020と1040は、更に、ゼロタッチ基準原画像が理想的なケースと同様に「不均一」な場合でも、即ち、マルチタッチ装置上に物体が存在しないが、基準画像が異なる濃淡値を有する場合でも、タッチを等しく良好に検出できる。
【0036】
三つのフィルタリングブロック1010,1030,1050は、大きく崩れた画像を綺麗にするために使用でき、
時間領域フィルタリングブロック1010は、主にシステム及び周囲雑音から成る白色雑音を濾過して取り除くために、主に非巡回式高速平均処理をベースとし、
第一の濃淡レベル画像フィルタリングブロック1030は、主にマルチタッチ装置上での手との誘導結合により生じる1画素雑音などの急峻な雑音を濾過して取り除き、
第二の濃淡レベル画像フィルタリングブロック1050は、例えば、ディスプレイ、周囲又はシステムの50Hzの雑音による大きな摂動を濾過して取り除くことができる。
【0037】
前記の入力画像7000の処理工程後、処理画像8000が得られて、セグメント化・分析ブロック2000の入力として使用される。ブロック2000の第一の工程は、処理画像8000を前景、即ち、タッチ+残留雑音と背景に分離するために、一定の閾値を用いて実行される画像セグメント化2010である。その次に、処理画像内において、一つ又は複数の領域を識別する。一つの好ましい実施形態では、一つの領域は、一つのタッチに対応付けることが可能な繋がった画素のグループ、例えば、そのグループの全ての画素が所定の閾値を上回る値を有する繋がった画素のグループである。「繋がった画素」との表現における「繋がった」との意味は、N個の周囲の、或いは隣接する画素が繋がっているとの概念に関し、ここで、Nは偶数である。一つの好ましい実施形態では、N=4である。この場合、N/2個、例えば、2個の周囲の、或いは隣接する画素が同じ行又は同じ列に有って、所定の閾値を上回る値を有する場合、それらは同じ領域に属する、即ち、それらはN個、例えば、4個の繋がった画素である。
【0038】
二進画像フィルタリング2020は、疎らな、或いは無意味な領域などの二進雑音を除去する。
【0039】
領域ラベル付与ブロック2030は、前記のフィルタリング後に残った識別領域の座標を取得するために実行される。その次に、ラベルを付与されている領域が、工程2040において、面積、四角形類似度及び極大値の数に関して分析される。
【0040】
本文脈において、「四角形類似度」との表現は、その領域が如何なる程度で四角形であるのかを意味する。それは、与えられた幅(幅)と高さ(高さ)の長方形を与えられた形状の領域に嵌め込んで、次の通り定義される四角形類似度係数を計算することによって求められる。
【0041】
Min(幅,高さ)/Max(幅,高さ
本文脈において、「1画素サイズの極大値」との表現は、一つの最大値、即ち、タッチ強度zが一つの画素で最大値となることを表す。この最大値は、一つの領域内のサブ領域に関して求められるので、「局所的」である。一つの実施形態では、そのようなサブ領域のサイズは、N×N画素であり、ここで、Nは奇数である。一つの好ましい実施形態では、N=3である。
【0042】
極大値の数値決定に関する主要な問題は、強いて単一の画素とする必要が無いが、複数の画素に分散する可能性が有ることである。任意のサイズの極大値を探すことは、多くの計算資源が必要であり、一般的にグラデーション画像(空間導関数)を計算することと、多くの処理工程により微分画像を綺麗にすることとを意味する。本発明による方法は、有利には、極大値の探索を1画素サイズの極大値の探索に限定して、それを非常に容易にするとともに、それらの発見に必要な計算リソースを削減している。本方法は、そのような限定によって、タッチ検出の信頼度を大きく悪化させずに処理能力を非常に大きく削減できることの発見に基づいている。実際に、本発明の改善された方法は、誤検出される数を低減するとともに、検出されないタッチ数を大きく増大させない。その要因の一つは、複数画素に極大値を有するサブ領域は通常一時的にしか存在せず、通常数フレーム後には1画素サイズの極大値を有するサブ領域に置き換えられてしまうとの事実である。
【0043】
極大値を探索する前に実行される全てのフィルタリング工程1010,1030,1050,2020は、マルチタッチ装置上の1本の指が非常に高い確率で1画素サイズの極大値を生じさせることを保証している。そして、本発明による方法は、微分も、微分の後処理も必要とせず、そのため従来技術による別の方法と比べて全く低い処理要件しか必要としない。
【0044】
図3Aは、二つの領域AとBから構成されるセグメント化された画像SIの例を図示している。各領域は、複数の画素から成り、各画素の値は、ゼロと異なり、タッチ強度zに比例する。サブ領域SRの中心は、各領域の各画素上に有る。図3Aの例では、そのような破線で図示されたサブ領域のサイズは3×3画素である。サブ領域SRの中心の画素、即ち、調査中の画素は、サブ領域内のそれ以外の8個の画素の値が調査中の画素の値を下回れば極大値である。
【0045】
図3Aの例では、領域Bの画素Pを調査している。サブ領域SR内のそれ以外の8個の画素の中には、この画素Pの値1よりも大きい値9を有する二つの画素が有るので、Pは1画素サイズの極大値ではない。
【0046】
領域Bの値9を有する二つの画素の各々は、それらの二つの画素を中心とするサブ領域内のそれ以外の8個の画素の中には、調査中の画素と同じ値である値9を有する一つの画素が有るので、同じ理由から、一つの極大値ではない。
【0047】
領域Bは1画素サイズの極大値が無いので、その領域は破棄される。しかし、図3Aの例は、同じ大きな値を有する二つの画素が隣接することが稀であるため、領域B内の画素の一般的には珍しい配置を図示している。
【0048】
値9を有する領域Bの二つの画素は、数学的には2画素サイズの極大値である。また、それらは、領域B内で最も大きな値なので、領域Bに関する局所的な最大値RMであり、セグメント化した画像SIの全ての画素の中で最も大きな値なので、全体的な最大値GMである。異なる形式の最大値が図3Bに図示されている。
【0049】
図3Bによると、領域A内には、1画素サイズの極大値LMが三つ有り、1画素サイズの二つの極大値は値6を有し、1画素サイズの一つの極大値は値7を有し、この極大値も領域Aに関する局所的な最大値RMである。
【0050】
本発明による方法は、発見した1画素サイズの極大値に基づきタッチ位置を決定する。前述した通り、一つの領域が少なくとも一つの1画素サイズの極大値を含まない場合、その領域全体は破棄される。1画素サイズの一つの極大値を含む場合、その領域の全ての画素を用いて、その領域の幾何学的中心を計算することによって、タッチ位置が決定される。1画素サイズの極大値が複数有る場合、各極大値を中心とするサブ領域内の9個の画素だけが幾何学的中心の計算に考慮される。
【0051】
幾つかの領域は、それらの面積、四角形類似度係数、並びに前述した通り、領域内で発見された極大値の数に基づく所定の条件により破棄される。
【0052】
大きな領域、例えば、四角の形状と大きく異なる領域や多くの極大値を有する領域は、誤ったタッチである可能性が非常に高く、従って排除される。一つの領域が非常に大きい場合や複数の大きい領域が有る場合、マルチタッチ装置上に大きな物体、例えば、手、耳などが有る可能性が非常に高い。そのような場合、本発明による方法は停止される。領域内の(多少とも中心に有ると期待される)極大値の位置、画像内の(幾つかの領域は有望な候補とされ、その他は保留されるか、或いは一時的に保留される)領域の位置、(大抵のタッチは少なくとも数フレーム続く)前又は後の画像などに基づき幾つかの領域を破棄することも可能である。領域が誤ったタッチであり破棄すべき確率は、複数の条件及び重み係数に基づき計算することも可能である。
【0053】
本方法が続行される場合、工程2050において、幾つかの周知の公式に基づき各有効領域の幾何学的中心を計算する。
【0054】
これらの工程後に、タッチ位置9000が決定される。次に、全ての有効なタッチは、既に追尾(ラベルを付与)しているタッチと共に線形割当3010に送られる。ラベルの付与に成功したタッチは、軌跡フィルタリング3030に転送した後、出力できる。軌跡フィルタリングは、簡単な短いローパスフィルタによって実行される。
【0055】
割り当てられなかったタッチは、追尾している(が、ラベルを付与されていない)タッチと共に線形割当3020に転送される。ラベルを付与されていないタッチは、複数のフレームの間に割当に成功しなかった場合、誤ったタッチである可能性が非常に高く、そのため削除される。しかし、ラベルを付与されていないタッチが複数のフレームの間に割当に成功した場合、真のタッチである可能性が非常に高く、そのため同じくラベルを付与される。
【0056】
最後に、所望又は必要な場合、校正を実行できる。動的な校正を必要とする主な理由は、マルチタッチ装置上に残留する脂、汗又は液体(雨)のためであり、恐らく周囲の電界が変化するためである。
【0057】
本方法から出力されるIDは、第一の指の接触以降、その同じ指が離れるまでの運動中一定でなければならない。座標xとyは、マルチタッチ装置に対して相対的な実際のタッチ位置に関して出来る限り正確にする。
【0058】
本方法全体は、ハードウェア、ファームウェア又はソフトウェアにより、或いはそれらを組み合わせて実現できる。
【0059】
二進画像フィルタリングを含む、それまでのブロック(1010〜2010)は、(画素単位の)部分的な並列処理にも完全な並列処理にも適している。後述する通り、ブロック3000で計算されるコスト行列が大きくても、計算時間を1ms以内とすることができる。
【0060】
マルチタッチ装置上にタッチが存在しない、或いは大きな物体が存在する場合、本方法を停止し、そのため計算動作を低減する。更に、本方法のサイクル数/秒は、アイドルモードでの最大遅延要件を保証できる最低周波数、ソフトキーボードアプリケーション(電話番号ダイヤル、打鍵、メニュー選択等)のための低い周波数(10〜25Hz)、ポインタ(カーソル)指定及びマルチタッチアプリケーションのための平均的な周波数(25〜50Hz)、並びに手/スタイラスによる書込/描画アプリケーションのための高い周波数(50〜200Hz)の状況及びアプリケーションに応じて、最小値にまで動的に低減できる。
【0061】
時間領域フィルタリング1010の間に、入力画像7000の各画素信号の推移を時間に関してフィルタリングして、高い周波数成分、即ち、100〜200Hzを上回る周波数成分を抑制する。しかし、定常信号(例えば、50Hz)の特定のフィルタリングも実行できる。時間領域フィルタリング1010は、デジタルフィルタリング技術及びデジタルフィルタ設計分野において周知の様々な手法(有限インパルス応答及び無限インパルス応答フィルタ)により実現できる。図4は、タイムスロットを重ね合わせない形の複数の入力フレームに渡る真の平均化による非連続及び非再帰式時間領域フィルタリングの例を図示している。この平均は、ローパスフィルタを用いた近似平均の取得と異なり、算術平均公式により計算しているので、この時間スロットに関する真の平均である。符号1011は、所定の長さの信号を表し、この場合、N=1024であり、符号1012は、サイズW=16の時間スロットを重ね合わせた場合の真の平均を表している。このサイズは、信号1012の水平部分の長さである。
【0062】
初期校正1020は、ベースライン画像Irefを取得するために、時間領域フィルタリング1010と同様に実行される。そのため、この校正は、マルチタッチ装置上に留まる物体が無い形で実行される。多数のフレームに渡る真の平均を計算して、ベースライン画像Irefを取得した後、それを基準画像バッファに保存する。校正を時々繰り返さなければならない場合、保存しているベースライン画像は、古いベースライン画像Iref_oldを大きな重みαで加重平均することによって、時間領域フィルタリングした新たなベースライン画像Iref_newにより更新できる。この更新方法も、時間領域フィルタリングである。次に、更新された(時間領域フィルタリングした)ベースライン画像は、次の通りとなる。
【0063】
αIref_old+(1−α)Iref_new、ここで、0<<α<1
初期校正1020において、マルチタッチ装置上に導電性の物体が存在しないことが保証されない場合、ベースライン画像が「均一」であるか、或いは十分に「希薄」であるかを判定するために、幾つかの発見的方法を使用できる。そうでなければ、所望の均一性又は希薄性が得られるまで、校正を繰り返すことができる。組み合わせることも可能である幾つかの考え得る発見的方法は、
ベースライン画像の平均的な大きさと共に標準偏差を計算して、それが「十分に小さい」場合に、マルチタッチ装置上に動きが無い可能性が非常に高いとし、「十分に小さい」との意味は実験で決定することと、
全変動ノルム、即ち、ベースライン画像の空間導関数のL1ノルムを計算して、それが「十分に小さい」場合に、画像が均一であるとし、又もや「十分に小さい」との意味は実験で決定することと、
である。
【0064】
上記の提案した第二の発見的方法の方が速く信頼できるが、粗い解像度の入力画像7000を与えられた場合、空間導関数を離散化する際に特別な注意を払わなければならない。
【0065】
時間領域フィルタリング1010と校正1020に追加して、時間領域フィルタリングした画像を処理して、フレーム毎にマルチタッチ装置上の真のタッチの良好に推定した真のx−y平面座標を取得する。
【0066】
マルチタッチ検出の主要な難しさは、マルチタッチ装置上の真のタッチ数が予め定められもせず分かりもしないことである。そのため、入力画像7000を処理して、領域、即ち、異なるタッチの各々に対応する繋がった画素のグループを確実に取得しなければならない。
【0067】
完全には分からない連携モデルを用いた複数の指の接触による検知コンデンサの間の連携は、次の効果の中の一つを入力画像に与える。
【0068】
マルチタッチ装置の一方の側(下面)に、真のタッチと全く同じ強度と面積の「ゴーストタッチ」を生じさせる効果と、
マルチタッチ装置の他方の側(上面)に、同じく「ゴーストタッチ」を生じさせるが、その強度が弱く、符号が逆となる効果。
【0069】
一般的に、下側が上側と比べて幾つかの利点を有する場合でも、上側が使用される。組立済み、例えば、筐体内に組み込み済みのマルチタッチ装置では、組み立てた装置全体を分解して、引っ繰り返し、再び組み立てる必要が有るので、画面を引っ繰り返すことは難しい。そのような場合、一般的には上側が使用される。何れの側を使用するかを決定できる場合、下側では、大きな信号対雑音比を得ることができる。下側の利点は、画像フィルタリングを大幅に低減できることであるが、ゴーストの問題を適切なアルゴリズムで解決する必要が有る。
【0070】
別の幾つかの雑音源のために、逆符号の小さいピークが真の雑音ピークとなるので、メジアン(カラム)フィルタ、例えば、1×3画素のメジアンフィルタを用いた第一の濃淡レベル画像フィルタリング1030によって、それらの小さいピークを濾過して取り除く。
【0071】
メジアンフィルタリングは非線形であるので、それは分離できない、即ち、行に関する二回目の動作は、情報又は歪を相当に損失すること無しには実行できない。それに代わる手法は、2×2画素のメジアンフィルタを適用することであるが、一般的に偶数画素のマスクを用いた非二進画像フィルタリングは、フィルタの中心が存在しないので避けられている。3×3画素のメジアンフィルタを使用すると、入力画像に粗さが有る場合に大抵の真のタッチを除去してしまう可能性が非常に高い。依然として行に関する二回目の動作を追加する必要が有る場合、図5に図示されている通り実行される。第一の濃淡レベル画像フィルタリング1030の入力画像1031は、1×3画素のメジアンフィルタ1032と3×1画素のメジアンフィルタ1033に送られ、これらの両方のフィルタは並列に動作する。次に、フィルタリングされた画像1035は、二つのフィルタ1032と1033の出力を平均化することによって計算される。言い換えると、第一の濃淡レベル画像フィルタ1030は、有利には、スムーザー1034、即ち、真のタッチの単調性を回復するためのローパスアベレージャで構成される。
【0072】
次に、フィルタリングされた画像1035は、平均減算ブロック1040又はベースライン画像減算ブロックの入力となる。この減算は、タッチ(及び残留雑音)だけを含む画像を取得するために実行される。上面にマルチタッチ装置を使用した場合、真のタッチは、一般的にベースライン又はゼロタッチ基準画像よりも小さい濃淡レベル値を生じさせる。従って、ブロック1040において、次の式により、第一の濃淡レベル画像フィルタリングブロック1030の出力1035Ifiltered_からベースライン画像Irefを減算する。
【0073】
sub=Iref−Ifiltered_
ここで、Isubは、符号付き画像であり、真のタッチでは主に正であり、ゴーストタッチでは主に負である。雑音は、正と負の振幅の両方で存在し、完全には濾過して取り除かれないゴーストの周囲に誤検出を生じさせる。
【0074】
誤検出の発生を低減するために、符号付き画像Isubは、第二の濃淡レベルフィルタリングブロック1050に送られて、次の通り、マスクを用いて、例えば、3×3画素の加重平均によりフィルタリングされる。
【0075】
filtrered_=H*Isub
ここで、Hは、例えば、次の正方行列である。
【0076】
【数1】
【0077】
kとIは、それぞれ各画素の行と列の指数であり、シンボル*は、IsubとHの畳込積分を表す。
【0078】
filtrered_も符号付き画像である。ローパスフィルタの係数h11...33は、σ=1で[−2,−2]×[2,2]ドメインにおける二次元ガウス核をサンプリングすることによって得られる。
【0079】
内部及び外部雑音源は、ランダムな非定常時間関数として、行及び/又は列毎の画素の平均に大きな偏位を生じさせる。そのため、そのような形式の摂動を従来のフィルタリング技術によって濾過して取り除くことは難しい。行及び/又は列のほぼ全体の平均は一度にシフトするので、処理を逆転させることができるとともに、特殊用途の行/列フィルタを表す図6に図示されている通り、行及び/又は列毎に平均又は中間値を計算、減算することが可能である。第二の濃淡レベルフィルタリングブロック1050の入力画像1051の行毎に、行当たりの平均を計算して(1052)、それが正である場合、当該の行から減算する(1053)。全ての行を処理した後、同じことを列に適用して、入力画像1051の列毎に、列当たりの平均を計算して(1054)、それが正である場合、当該の列から減算する(1055)。全ての列を処理した後には、依然として符号付きのフィルタリングされた画像1056が得られる。次に、その画像は、整流によって、再び符号無しの画像8000に変換される、即ち、負の値がゼロに設定される。
【0080】
特殊用途フィルタの出力8000は非常に綺麗である、即ち、真のタッチ又は背景に対応する画素を多く含み、雑音及び誤検出に対応する画素を僅かしか含まない。この処理された画像は、次に、セグメント化・分析ブロック2000に送られる。そのため、二進画像セグメント化2010は、次の通り、小さい一定の閾値による簡単な閾値処理によって実現される。
【0081】
【数2】
【0082】
この閾値thは、範囲全体の0.005〜0.1、例えば、16ビットのデータに対して64〜512に設定される。セグメント化された画像は二進である。
【0083】
有効二進画像フィルタリング2020は、二進モルフォロジーフィルタリングによって実行できる。特に、モルフォロジー開始演算子は、構造化要素、即ち、所定の形状を有する画素のグループに一致する画素を維持しつつ、それ以外の画素をゼロに設定する。言い換えると、この構造化要素は、濃淡レベル/強度ではなく、型/形状に関してフィルタリングするためのパターン又は形状マスクである。
【0084】
図7A〜7Cに図示されている通り、二進モルフォロジー開始演算子2023は、モルフォロジー収縮2021とそれに続くモルフォロジー膨張2022として定義される。収縮2021は、構造化要素(フィルタマスク)によって覆われている、そのブロックの入力画像の画素にAND演算子を適用して、構造化要素の中心の画素を最終結果として設定することによって実現できる。膨張2022は、構造化要素によって覆われている画素にOR演算子を適用して、全ての覆われている画素を結果として設定することによって実現できる。最終的に、この開始演算子2023は、覆われている画素にAND演算子を適用して、それらの画素を結果として設定することによって容易に実現できる。
【0085】
構造化要素の簡単な選択肢は、一回のモルフォロジー開始操作を必要とする2×2画素の四角形である。「一回の操作」とは、フィルタリングした画像を取得するために、フィルタリングする画像の各画素を一回通過させる、或いはフィルタリングすることを意味する。「二回の操作」とは、最終的な画像を取得するために、一回目と二回目のフィルタリングを画像に実施することを意味する。「一回のモルフォロジー開始操作」との記載は、四つの異なる構造化要素を使用する方法、従って、図8に図示されている通りの四回の操作と異なり、最終的な出力を取得するために、画像全体を一回だけフィルタリングすることを意味する。
【0086】
図8は、タッチ検出のための最も有効なフィルタリングを図示しており、四つの構造化要素2024を用いたモルフォロジー開始フィルタリング2023の四回の独立したオペレーション又は異なる操作を実行した後、四つの独立したオペレーション2023から得られた画像に画素単位のOR演算子2026を適用して、フィルタリングした画像2027を取得している。構造化要素行列2024内の符号「Z」は、それが構造化要素自体の一部でない(0でも1でもない)ことを意味する。構造化要素は如何なる形状を持つこともできるが、画像処理において、保存のために四角形の行列を使用しているので、例えば、L形状を表すために、構造化要素を構成しない画素に対して、「Z」などの所定のシンボルを使用している。
【0087】
領域ラベル付与工程2030は、領域を識別するために実行される。本文脈において、一つの領域は、四つの繋がった画素の区画として定義される。隣接する画素は、それらが四つの繋がった画素であり、そのため、同じ領域に属する場合、同じIDのラベルを付与される。例えば、四つの画素は、それらが同じ行と同じ列上で隣接する場合、同じ領域に属する。領域ラベル付与アルゴリズムは、文献により周知である。
【0088】
領域の認証又は排除(工程2040)のために、領域毎に次の特性を計算する。
【0089】
領域を取り囲む四角形の幅=kmax−kmin+1(kminとkmaxは領域の最小列と最大列の指数である)、
領域を取り囲む四角形の高さ=Imax−Imin+1(IminとImaxは領域の最小行と最大行の指数である)
四角形類似度係数=min(幅,高さ)/max(幅,高さ)、
画素単位の面積、
L1ノルム(領域に対応する全ての画素の合計)、
局所的な最大値の(k,I,zmax)、ここで、zmaxは、局所的に最大な値(強度)、即ち、領域内に複数の最大値が有る場合に、領域の最も大きな最大値又は極大値の強度である。
【0090】
図3Aと3Bを参照して説明した通り、本方法は、1画素サイズの極大値の数を発見し、計数する工程を有する。好ましい実施形態では、そのサブ領域は、3×3サイズの画素である。
【0091】
次に、幾つかの領域は、それらの面積、四角形類似度係数及び発見された極大値の数に基づく所定の条件により破棄される。
【0092】
一つの実施形態では、極大値は、その極大値を中心とする3×3のサブ領域に含まれる画素の積算合計が所定の閾値を下回る場合に破棄される。
【0093】
次の条件の中の一つを満たした場合、領域は誤ったタッチ領域である可能性が非常に高い。
【0094】
面積<面積min
面積>面積max
四角形類似度係数<実験に基づき7/12(≒0.6)
極大値の数>5又は<1
面積minと面積maxの値は、実験により決定され、物理的なコンデンサの大きさに依存する。
【0095】
次の条件の中の一つを満たした場合、大きな物体がマルチタッチ装置上に存在する(或いはマルチタッチ装置が無効データを提供している)可能性が非常に高い。
【0096】
最大面積>2面積max(或いは>画像全体の面積の10%)
排除された区画の数>2(実験により、或いは例えば、二本の親指がパネルを保持している場合)
次に、それ以外の領域の重心又は幾何学的中心(x,y)を計算する。前述した通り、一つの領域が一つの1画素サイズの極大値を有する場合、タッチ位置は、その領域の全ての画素の座標を用いて、その領域の幾何学的中心を計算することによって決定される。複数の1画素サイズの極大値が有る場合、各極大値を中心とするサブ領域内の9個の画素の座標だけを考慮して、幾何学的中心を計算する。幾何学的中心の計算は、文献により周知であり、例えば、次の通り実行できる。
【0097】
【数3】
【0098】
更にデータ処理を改善した形態では、大きな物体がマルチタッチ装置上に存在する場合、その物体が複数(数千)のフレームに渡って留まる可能性が高い。そのため、画像を認証/排除した結果は、誤ったタッチ画像履歴ビットFIFOに保存される。そのFIFO内の全てのビットが「偽」である場合、有効なタッチ/領域の(x,y,zmax)を追尾部分に転送し、そうでなければ、本方法を停止して、次のフレームの取得を継続できる(恐らく低い周波数で実行される)。
【0099】
マルチタッチ方法の追尾部分の主な目的は、検出したタッチがマルチタッチ装置上に留まっている間それらのタッチの正しい識別子を維持することである。二次的ではあるが、劣らず重要な目的は、タッチの誤検出、即ち、真のタッチとして検出されるがマルチタッチ装置上に物理的に存在しないタッチを抑制することである。第三の目的は、空間的及び時間的に一定の軌跡を集めることである。それは、本質的に正しい識別子を維持することと関連する。空間的及び時間的に一定の軌跡が得られると、如何なる複雑な軌跡のフィルタリング、平滑化又は分析も可能となる。従って、空間的及び時間的に一定の軌跡によって、ユーザの入力手段及び機能性を豊富にすることができる。
【0100】
本方法の追尾部分の入力9000(N個のタッチ座標ベクトル)は希薄であるので、希薄追尾技術を適用できる。本方法全体の入力原画像7000が非常に綺麗であれば、(距離に基づく)最隣接法、(統計/状態に基づく)最隣接標準フィルタなどの簡単な手段を用いて、関連付けを実行できる。しかし、通常のマルチタッチ装置では、著しく損傷した入力データのために、多くの誤検出が発生して、複数のフレームの間に真の目標を見失う可能性が有る。そのため、線形和割当問題(LSAP)を解決して、新たなタッチを既存の軌跡にロバストに合致させることを提案する。希薄な(及び濃密な)データを関連付けるためにLSAPを使用することは文献により周知である。ここで提案する方法の追尾部分の全体が図9に図示されている。
【0101】
発見された軌跡毎に、一つの割当状態ビットFIFOが有る。次の二つの形式の軌跡が有る。
【0102】
ラベルを付与されていない軌跡(TrNL):誤検出と真の目標とする軌跡を含み、ラベルを付与されていない軌跡は、一つのID、関連付けられた割当状態ビットFIFO及び最後に成功した割当の(x,y,z)を有する。
【0103】
ラベルを付与されている軌跡(TrL):真の目標とする軌跡だけを含み(含むべきであり)、ラベルを付与されている軌跡は、一つのID、関連付けられた割当状態ビットFIFO及び最後に成功したK個の割当に関する長さKの(x,y,z)軌跡FIFOを有する。
【0104】
二つの形式の軌跡を設けることによって、ラベルを付与されている軌跡への割当に成功しなかった場合に、ラベルを付与されていない軌跡にタッチを集めること(3020)によって、誤検出を抑制することができる。ラベルを付与されていない軌跡が複数回の割当に成功したら、その軌跡はラベルを付与され、そうでなければ、削除される。最終的に、ラベルを付与されている軌跡だけが出力として使用される(3030)。
【0105】
タッチの入力毎に、軌跡追加ブロック3009は、次の通り、軌跡を生成する。
【0106】
割当完了状態FIFOを「偽」にリセットする、
IDはその時点の割当可能なIDであり、軌跡の生成後に、その時点のIDを増分する、
ラベルを付与されていない軌跡に対しては、検出したタッチの(x,y,z)に(x,y,z)を単純に設定する、
ラベルを付与されている軌跡に対しては、軌跡完了FIFOをゼロに設定して、検出したタッチの(x,y,z)をそのFIFOに挿入する。
【0107】
検出したタッチが無い場合及び入力画像全体が排除された場合には、それぞれゼロ更新軌跡ブロック3008が実行される。このブロックは、軌跡(ラベルを付与されている軌跡及びラベルを付与されていない軌跡)が得られる毎に割当状態FIFOに「偽」を挿入する。
【0108】
ラベルを付与されている軌跡の更新ブロック3023は、割当ベクトルを受け取る。そのベクトルの一つの要素の指数は、更新する軌跡の軌跡IDである。割当ベクトルの一つの要素の値は、軌跡に挿入するタッチの指数又は対応する軌跡を更新しない、或いはタッチに割り当てないことを意味するNOT_ASSIGNEDである。同様のブロック3024は、ラベルを付与されていない軌跡を更新する。ブロック3002〜3006は、全てのタッチと全てのラベルを付与されている軌跡及びラベルを付与されていない軌跡の分析が可能な判定ブロックである。
【0109】
リセット条件が満たされた場合、条件付き軌跡リセット3025が発動されて、全ての選択された軌跡が削除される。一般的に、合理的なリセット条件は、選択された軌跡の全ての状態FIFOバッファの全てのビットが、K個のフレームの間選択された軌跡の何れも割当に成功しなかったことを意味する「偽」であるか否かであり、ここで、Kは、FIFOバッファの長さである。ラベルを付与されている軌跡に関しては、全ての軌跡を一挙に削除して、その後の割当用の軌跡IDの一貫性を保証するのが賢明である。
【0110】
条件付き軌跡削除3026は、条件付きリセット3025と同様に実現できるが、一つの特定の軌跡割当状態FIFOだけが分析されて、全てのビットが「偽」である場合に、その特定の軌跡だけを削除することが相違する。その実現形態によっては、軌跡の削除は、軌跡IDの一貫性を保証しない(何れにせよ、それはラベルを付与されていない軌跡にとって重要ではない)。
【0111】
ラベルを付与されていない軌跡の割当状態FIFOは、新たなラベルを付与されていない軌跡を管理するブロック3021に繋がるブロック3007で分析される。特定のラベルを付与されていない軌跡に十分な条件を適用する場合、ラベルを付与されている軌跡を新たに生成して(3022)、その特定のラベルを付与されていない軌跡の(x,y,z)により軌跡FIFOの第一のエントリを初期化する。次に、そのラベルを付与されていない軌跡を削除する。この十分な条件とは、「真」のビット数が所定の閾値数Tを上回るか否かである。それは、それ以前のK個のフレームの間にT個を上回るフレームに渡って、ラベルを付与されていない軌跡の割当に成功したことを意味し、ここで、KはFIFOバッファの大きさである。
【0112】
次に、時間的及び空間的な関連性及び一貫性に関して、ラベルを付与されている軌跡をフィルタリングする(3030)。以下で説明する通り、フィルタリングした軌跡に基づき、幾つかのパラメータを更新できる(3031)。
【0113】
軌跡フィルタリング3030は、カルマンフィルタリングにより実行できる。しかし、使用したシステムにおいて、カルマンフィルタは、十分な平滑度を提供しない。そのため、カルマンによる平滑化は使用可能であるが、リアルタイムの実現形態において良い選択肢ではない。しかしながら、十分に満足できる平滑度は、例えば、次の通り、一定数のサンプルによる簡単な移動平均ローパスフィルタによって実現できる。
【0114】
【数4】
【0115】
使用されているマルチタッチシステムにおいて、次の通り、Nに関して良好な選択肢が三つだけ存在することが実験により発見されている。
【0116】
N=2:平滑度が最も低く、応答が速く、出力が指の動きに良く対応しているとの感覚を与え、時には、軌跡が完全にはフィルタリングされていないとの印象を残す、
N=3:平滑度は十分であり、応答も申し分無く、滑らかであるとの印象を与えるが、(依然として許容可能な)遅延を認める人も有る、
N=4:非常に滑らかで、応答が遅く、その結果非常に滑らかな軌跡となるが、それ以前の三つのフレームまでの平均を計算するとの事実が応答を遅くしている。
【0117】
N=1は、フィルタリングしないことを意味する。更に、Nの選択は、明らかに本方法を動作させる周波数に依存し、その周波数を著しく上昇させた場合には、より一層大きなNを選択するのが賢明である。
【0118】
線形和割当問題(LSAP)3010,3020は、組合せの最適化に関する昔からの問題であり、そのため周知である。その本来の形態は、次の通り記述される。
【0119】
サイズN×Nの(正方)行列Cが与えられ、その要素が0又は正である場合に、行及び列毎にちょうど一つの要素を発見して、その発見したN個の要素の合計を取り得る最も小さい合計とする。
【0120】
コスト行列Cが軌跡を目標に合致させる或る種の距離又は逆尤度で占められている場合、複数の目標を追尾するためのデータ関連付け問題を解決するために、このLSAPを使用できることも知られている。
【0121】
前述した通りの本来の形態では、この解法は、N!の合計の計算及び比較を必要とし、そのため、実行時間が指数関数的に増大する。非常に悪い状況において、O(n)により問題を解決するアルゴリズムが知られている。
【0122】
マルチタッチ追尾に関して、ムンクレス(Munkres)アルゴリズムは、(軌跡数が必ずしもタッチ数と同じではない)矩形行列に容易に拡張でき、ソフトゲーティングが可能である、即ち、事前に或る種の割当を容易に実現できないので、そのアルゴリズムをLSAPを解くために使用する。
【0123】
ラベルを付与されていない軌跡は、主に誤検出を抑制するために設けられているので、ラベルを付与されていない軌跡及びタッチのLSAPに関するコスト行列は、次の通り、簡単にソフトゲート距離から成る距離行列とすることができる。
【0124】
【数5】
【0125】
TrNLは、ラベルを付与されていない軌跡iの(x,y)を意味し、Toは、タッチjの(x,y)を意味する。
【0126】
ソフトゲート距離測度DSGは、次の式で与えられる。
【0127】
【数6】
【0128】
無限距離∝は、NOT_ALLOWED割当を意味する。実現形態では、NOT_ALLOWEDは、使用する数値範囲の最も大きな値とすることができる(例えば、コスト行列を16ビットで計算する場合、NOT_ALLOWED=0×FFFF)。
【0129】
maxは、ゲート距離である。ラベルを付与されていない軌跡の割当に関して、一定のゲート距離を使用できる。このゲート距離は、実験により、或いは物理的なコンデンサの大きさが与えられた場合に、二つの連続するフレーム間の(物理的に)取り得る最大偏位、即ち、物理的な指の最大速度との関連を推定することによって求められる。
【0130】
一つの好ましい実施形態では、二つの連続するフレーム間の最大偏位を2cmまで(物理的なコンデンサの大きさが7×7mmまで)可能とするDmax=3である。
【0131】
図10Aは、ラベルを付与されていない軌跡の初期化を可能とする、フレームKにおいて検出された三つのタッチ3015を図示している。図10Bは、フレームKにおいて検出されたタッチ3015とフレームK+1において検出されたタッチ3016を図示している。ソフトゲート3017の外の一つのタッチは、図示された半径Dmax(ゲート距離)の円内に含まれていないので、そのタッチが決定される。図10Cでは、フレームK+1において、割当3018が発見されている。
【0132】
ラベルを付与されている軌跡をタッチに合致させるためのコスト行列Cは、基本的にラベルを付与されていない軌跡用の行列と同じであるが、次の相違点を有する。
【0133】
四つ以内のサンプルが軌跡に使用可能な場合、それらに関連するコスト行列の要素がラベルを付与されていない軌跡と同じ手法で計算され、
四つ以上のサンプルが使用可能な場合、最も新しい四つのサンプルの平均速度単位(三つの近似瞬間速度値の平均)が計算され、
この平均速度単位<1の場合、コスト行列の関連する要素がラベルを付与されていない軌跡と同じ手法で計算され、
この平均速度単位≧1の場合、次の工程が実行され、
(最も新しい)四つのサンプルの平均相対方向変化(三つの近似瞬間速度値の平均)が計算され、
この平均速度単位と平均相対方向変化に基づき、次の通り、タッチ位置が予測され、
【0134】
【数7】
次の通り、ゲート距離が設定(増大)され、
max,new=平均||VTrL,i||Dmax
関連する(平均速度単位≧1の)軌跡のコスト行列の要素が、予測された位置に関して計算され、ソフトゲート処理が、ゲート距離を増大して実行される。
【0135】
これらの相違点は、大きな偏位に関する位置を予測しているので、誤検出に弱くならずに、大きな偏位(速い動き)を可能としている。図11は、大きな偏位に関して予測したタッチ位置を用いて、ゲート距離及び割当の変化(D’max<D’’max<D’’’max)を図示している。
【0136】
以下の記述は、基本的に両方(ラベルを付与されていない軌跡とラベルを付与されている軌跡)のコスト行列の計算に関して有効であるが、追尾方法の設定のために、ラベルを付与されていない軌跡だけに有効である。
【0137】
(ラベルを付与されていない軌跡とタッチの)第二のLSAP3020に関してコスト行列を計算する場合、(ラベルを付与されている軌跡とタッチの)第一のLSAP3010後に如何なるタッチに対する軌跡の割当に成功したのかを保持しなければならない。
【0138】
既に割り当てられたタッチの要素は、単純に「不定(NOT_ALLOWED)」に設定される。それは、一つのタッチが決して二回割り当てられないことを保証している。
【0139】
言い換えると、本方法の追尾部分は、データの関連付け(LSAP)とフィルタリングを意味する。
【0140】
この追尾方法の最終出力3032は、N個の(ID,N,x,y,z)であり、ここで、Nは、割当状態FIFOが一定の条件を満たす、ラベルを付与されている軌跡の数である。合理的な条件は、割当状態FIFOの中の少なくとも一つが1(真)であることである。それは、ラベルを付与されている軌跡が、K−1(Kは状態FIFOの長さ)個のフレームの間に見失われた場合でも出力されることを保証している。IDは、対応する軌跡の識別子であり、(x,y,z)は軌跡フィルタの出力である。タッチ座標(x,y)とタッチ強度zは、両方とも特定の指と関係しない。
【0141】
図12は、本発明による追尾方法の一つの実施形態の主要工程の簡略化したフローチャートを図示している。タッチ検出部分1000+2000の出力(その時点のフレーム)に基づき、その時点のフレームの検出位置と予測位置の間の距離を含む距離行列を計算する(3018)。別の実施形態では、距離行列の代わりに尤度行列を計算する。その行列は、次の四つのパラメータ(状態)の同時尤度の推定値を有する。
【0142】
距離
速度単位の変化
運動方向の変化
強度の変化
次に、線形割当問題(3010,3020)を解く。それは、パターン照合無しの追尾に関する良好な選択肢を示し、大きな偏位(速い動き)と不連続が有った場合に追尾を見失い易い。
【0143】
図示されていないフィルタリング後に、軌跡FIFO3029を更新して(3031)、軌跡の最後のエントリ(3028)に基づき、行列の計算3018を再び開始する。
【0144】
図13は、本発明の一つの実施形態によるジェスチャ認識4000の主要工程のフローチャートを図示している。簡単なジェスチャの場合、軌跡の分析が実行される。複雑なジェスチャの場合、メモリに保存している基準ジェスチャ軌跡とのロバストな比較が実行される。
【0145】
軌跡FIFO3029に関する予備分析4001は、簡単なジェスチャ又はジェスチャでないことを検出できる。ジェスチャでない場合(4002)、座標又は相対運動ベクトルが出力される(4003)。簡単なジェスチャの場合(4004)、シンプルジェスチャ信号が出力される(4005)。簡単なジェスチャでない場合、次の工程が実行される。
【0146】
軌跡の連鎖符号化(4006)
基準軌跡(4008)に関するレーベンシュタイン距離の計算(4007)
距離が最も小さいジェスチャの選択(4009)
ここで提案したジェスチャ認識は、如何なる種類の指による如何なる種類のジェスチャも認識できるので、柔軟である。
【0147】
前述した方法を用いて、複数のタッチが検出されて、それらが動かなくてもマルチタッチ装置上に留まっている限り追尾される。しかし、ソフトウェアキーボードアプリケーションは、マルチタッチ装置上に有る指からではなく、タップしている指からの入力だけを必要とする。図2の方法に適用しなければならない次の工程によって、N個の指によるソフトウェアキーボードアプリケーション、例えば、手がマルチタッチ装置上に留まることを許容する10本の指によるソフトウェアキーボードアプリケーションを実現できる。
【0148】
第二の濃淡レベルフィルタリングブロック1050の出力(F(k):t=kにおけるフレーム)を画像セグメント化2010に供給する代わりに、t=kにおけるフレームを保存して、本方法を最初から繰り返し、
一つのインスタンス後に、第二のフレーム(F(k+1):t=k+1におけるフレーム)を取得し、
離散的な時間微分(dF(k+1)=F(k+1)−F(k))を計算し、
この時間微分を整流し、即ち、負の画素に対してゼロを設定し、
dFを残る工程に供給して、(ID,N,x,y,z)を取得する。
【0149】
この時間微分を計算する処理は、時間的にほぼ一定である情報を取り除いて、動的な情報だけを含む画像を残す。そのため、dFは、手又は指がマルチタッチ装置上で静止している場合にはゼロであり、指でタップしている場合にはゼロと異なる。更なる処理は、パルス(動いていないこと)だけを許容したり、フレーム毎に一つのタッチだけを許容するように調整する必要がある。
【0150】
微分画像が悪すぎる場合、軌跡及び割当状態バッファの分析により本方法を通常通り実行するための追尾ブロック3000後に、タップ情報も抽出できる。
【0151】
本出願において説明した方法及び処理工程は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラム可能ゲートアレイ(FPGA)、個別部品又はそれらの組合せにより実行されるソフトウェアによって実施できる。異なるブロックの機能を実行するために、並びに単一のブロックに対しても、異なるハードウェアコンポーネント及び/又はソフトウェアコンポーネントを使用できる。
【0152】
従って、本発明による方法の如何なる工程も、ハードウェア、プロセッサにより実行されるソフトウェア又は両者の組合せにより実現できる。ソフトウェアには、ファームウェアが含まれ、ハードウェアのドライバは、オペレーティングシステム又はアプリケーションプログラム内で動作する。そのため、本発明は、ここで述べたオペレーションを実行するためのコンピュータプログラム製品にも関する。ソフトウェアで実現する場合、ここで述べた機能は、コンピュータ読取可能媒体に一つ以上の命令として保存できる。使用できる記憶媒体の例には、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、フラッシュメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、その他の光ディスク、或いはコンピュータやそれ以外のIT機器/器具からアクセスできる使用可能な媒体が含まれる。
図1
図2
図3A
図3B
図4
図5
図6
図7A-7C】
図8
図9
図10a-10c】
図11
図12
図13