コード化されたパターンを識別することによる対話型表示面上の物体の識別
【課題】物体が対話型表示装置の表示面上に置かれた場合に精度良く識別される、物体に付けられるコード化パターンを提供する。
【解決手段】表面検知システムによって決定可能な値をコード化するために物体に取り付けられる二次元識別子130は、表面検知システムによって検知可能な材料の連続領域132を含み、二次元識別子130の配向を示す軸を有する手掛かりコンポーネント134と、表面検知システムによって検出可能なバイナリ要素によって値をコード化するためのコード部分136と、連続領域132及びコード部分136を囲み、表面検知システムによって検知されない検出不可能な材料からなり、連続領域132とコード部分136との周囲の干渉マスクとして機能してノイズを最小に抑える境界領域138とを具備する。
【解決手段】表面検知システムによって決定可能な値をコード化するために物体に取り付けられる二次元識別子130は、表面検知システムによって検知可能な材料の連続領域132を含み、二次元識別子130の配向を示す軸を有する手掛かりコンポーネント134と、表面検知システムによって検出可能なバイナリ要素によって値をコード化するためのコード部分136と、連続領域132及びコード部分136を囲み、表面検知システムによって検知されない検出不可能な材料からなり、連続領域132とコード部分136との周囲の干渉マスクとして機能してノイズを最小に抑える境界領域138とを具備する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的に、コード化されたパターンを使用して物体を光学的に識別することに関係しており、より具体的には、物体が対話型表示面の表面上またはその付近に置かれた場合にパターンから反射された赤外線に基づいての物体を識別できるように、その物体に付けることができるさまざまなコード化されたパターンに関係する。
【背景技術】
【0002】
通常、所定の物体に一意的識別子(数またはバイナリビットコード(binary bit code)を関連付ける場合に、UPC記号などの視覚的コードが使用される。この一意的識別子は、物体上に印刷されている視覚的パターンの一部分の配列を分析する画像処理手法を使用して検出される。このような視覚的コーディングスキーム(visual coding schemes)を設計する場合、パターンは物体を撮像することで容易に検出できるか、像内でパターンが特定された後そのパターンから識別子を容易に復元できるか、およびコード化されたビットの個数、誤り検出および/または訂正、回転依存性または不変性などの視覚的コードのさまざまな特徴を考察することが重要である。
【0003】
視覚的コードが復号化されなければならないアプリケーションでは、物体に識別子を付けるために使用される視覚的コードの形態に制約条件を課すことが多い。例えば、視覚的コードが付けられる物体は、比較的小さく、そのため、視覚的コードはコンパクトでなければならない。さらに、視覚的コーディングに使用されるパターンは、そのパターンを読み取るために使用される撮像システムから、その解像度制約条件の範囲内で、認知できなければならない。小物体が特定の形状を有する、例えば、視覚的コードが検出される表面上の丸い「フットプリント」を有する場合には、一般的に物体のその丸い形状にマッチする円形の視覚的コードを使用することが望ましいであろう。同様に、小物体が矩形または長円形の場合、物体の形状は、視覚的コードの向きを判別しやすくし、コードで使用されるパターンの復号化を容易にし、物体を識別できるようにする形状であるのが望ましいであろう。
【0004】
市場またはその他の小売店で売られている製品のUPCバーコードに使用される視覚的コードは、通常、コヒーレント光レーザ光源を使用してバーコードをスキャンすることにより読み取られる。このようなレーザ走査システムは比較的高い解像度を持ち、周辺光からの干渉を受けることなくバーコードを走査できる十分に高い強度のレーザ光原を採用している。対照的に、像内の物体の視覚的コードを復号化することはかなり難しく、特に、対話型表示装置の表示面などの比較的大きな面の像の場合には困難である。撮像システムは、まず、表面の像の中の物体を検出し、その後、物体に付けられている視覚的コードのパターンを復号化しなければならない。
【0005】
当業では視覚的コードを使用して物体を識別する対話型表示装置が知られている。例えば、対話型表示装置プラットフォームは、MIT Media Labで開発された(例えば、非特許文献1を参照)。metaDESKは、二次元地理的情報を表示するために使用される水平に近い地理的表面を含む。デスクユニット内の(つまり、グラフィカルサーフェスの下の)コンピュータ視覚システムは、赤外線(IR)ランプ、IRカメラ、ビデオカメラ、ビデオプロジェクタ、および鏡を備える。これらの鏡は、プロジェクタによって投射されたグラフィック画像をグラフィック表示面の下側に反射する。IRカメラは、グラフィック面上に置かれている「ファイコン(phicons)」と呼ばれる物体の下面の材料バッキングを含む「ホットミラー」から反射されたIR光を検出することができる。「グレートドームファイコン(Great Dome phicon)」の底面に適用される可視光線に対し透過的なこの材料からのIR反射をIRカメラが検出したことに対する応答として、MITキャンパスの地図が、グレートドームファイコンが置かれている場所に位置するその地図内のグレートドームの実際の場所とともに、グラフィック面に表示される。本明細書では、IRパターンを使用するということの教示または示唆を与えず、また、視覚フレーム毎にソフトウェアが「シーンから抽出された未識別『ブロブ』のリスト」を出力することを示す以外に、検出され、識別される仕方に関する詳細を教示または説明しない。
【0006】
表示面上の物体を感知する類似のアプローチは、他社と協同でJun Rekimoto of Sony Computer Science Laboratory,Inc.社により発表されているいくつかの論文で開示されている。これらの論文では、「HoloWall」および「HoloTable」について簡単に説明しており、これらは両方とも、IR光を使用して、後面投射された像が見える表示面に近い、または接触している物体を検出する。HoloWall内では垂直、HoloTable内では水平の後面投射パネルは、半不透明で拡散的であり、物体は近づくにつれはっきり見えるようになり、やがてパネルに接触する。識別のため物体上のIR検出可能パターンを使用することを述べたが、ここでもまた、IRパターンについて、または物体を識別するためにIRパターンを検出する方法について詳しくは説明しない。
【非特許文献1】Brygg Ullmer and Hiroshi Ishii in "The metaDESK: Models and Prototypes for Tangible User Interfaces," Proceedings of UIST 10/1997: 14-17
【非特許文献2】"Connected Components Analysis" by Andrew Hunter, www.dur.ac.uk/andrewl.hunter/Vision/CV02ConnectedComponents.pdf
【発明の開示】
【発明が解決しようとする課題】
【0007】
従来技術では、さまざまな種類の視覚的コードが知られている。しかし、上述の解像度およびその他の制約条件に制限があるため、高解像度のスキャナと連動するように設計されている従来技術の視覚的コードの多くは、像内の比較的小さな物体に付けられている視覚的コードを読み取るために表示面全体の像内の反射されたIR光を使用しなければならない視覚システムとともに使用するのには適さないことが多い。したがって、識別すべき物体の形状およびサイズに適している、比較的限られた解像度を持つ視覚検知システムにより識別できる視覚的コードを採用することが望ましいであろう。コード化されたパターンを持つ物体が表面上を動き回っている間にリアルタイムで復号化できるためには、十分簡単に復号化できる適当なコード化されたパターンが必要である。パターンは、表面の像内で比較的高いコントラストのIRを与え、拡散面を通じてパターンを復号化できることが望ましいが、それは、多くの従来技術のコード化されたパターンは、必要な解像度が大きすぎてそのような表面上では使用できないからである。好適なコード化パターンのさらに望ましい特性は、それが固有の配向性を持ち、そのため、表面上のコード化されたパターンを見つけるために必要な探索空間が絞り込まれることである。同様の理由から、コード化されたパターンは、検出および復号化を容易に行えるように、単一の接続されたコンポーネントとして認識可能であることが好ましいであろう。従来技術では、上述のように、拡散表示面および視覚検知システムに比較的特有のこれらの問題の多くを解決していない。
【課題を解決するための手段】
【0008】
本発明の利点の1つは、物体の形状およびサイズ、識別子を撮像するために使用される視覚検知システムの解像度により課される制限、および物体が使用されるソフトウェアアプリケーションの要件に基づき、対話型表示テーブルとともに使用される物体に対し適切な識別子を使用できるという点である。したがって、本発明の一態様は、二次元識別子が対話型テーブルの表面検知システムの隣に配置された場合に値を決定することができるように値をコード化するために物体に付けられる二次元識別子を対象とする。二次元識別子は、表面検知システムが応答する検出可能な材料の連続領域を持つ手掛かり(cue)コンポーネントを含む。手掛かりコンポーネントは、表面検知システムにより検出された場合に楕円で近似され、この楕円は表面検知システムの座標系に関して二次元識別子の配向(orientation)を示す軸を持つ。識別子のコード部分は、手掛かりコンポーネントに関する定義済みの場所内に配置される。コード部分では、表面検知システムにより検出可能な少なくとも1つのバイナリ要素で値をコード化する。さらに含まれているのは、手掛かりコンポーネントおよびコード部分を囲む境界領域である。境界領域は、表面検知システムにより二次元識別子の一部として検知されず、手掛かりコンポーネントおよびコード部分を囲む干渉マスクとして機能し、ノイズを最小限に抑える検出不可能な材料を含む。検出可能な材料は、表面検知システムが応答する赤外線を反射する反射材料を含む。
【0009】
この識別子では、いくつかの異なる種類のコード化が使用される。ある種類のコード化では、値をコード化するために放射状コード(radial code)が使用され、この種のコード化では、手掛かりコンポーネントは検出可能材料の連続放射状領域を含む。放射状領域は、放射状領域の中心から第1の定義済み半径のところに配置された検出不可能な材料の部分領域を含む。この部分領域は、コード部分が読み取られる開始位置を示す開始ビットを表す。また、コード部分は、放射状領域の中心から第2の定義済み半径のところに配置された領域内に構成され、第2の定義済み半径は、第1の定義済み半径よりも大きく、コード部分は、一般的に、手掛かりコンポーネントの周りに伸びる。
【0010】
他のコード化スキームでは、値をコード化するため可変長線形コードを採用する。このスキームでは、手掛かりコンポーネントは、実質的に長さが等しく、開始ビットとして使用される検出可能な材料の定義済み領域により第1の端部に接続されている検出可能な材料でできている平行な複数のストリップを含む。平行なストリップは、第1の端部の反対側にある第2の端部で検出不可能な材料により分離され、第2の端部の検出不可能な材料は終了ビットとして使用される。コード部分は、検出可能な領域と検出不可能な領域からなるパターンを含む。それぞれの検出可能な領域およびそれぞれの検出不可能な領域は、定義済み寸法を持ち、平行なストリップ同士の間および開始ビットと終了ビットとの間に配置される。
【0011】
他のコード化スキームでは、値をコード化するため可変ビット長コードが使用される。この場合、手掛かりコンポーネントは、定義済み寸法および可変長寸法を含む。定義済み寸法は、常に、可変長寸法よりも小さく、可変長寸法は、基準配向および符合部分の範囲を示す。コード部分は、手掛かりコンポーネントから定義済みオフセットのところにある第1のバイナリ要素から始まり、追加バイナリ要素は、手掛かりコンポーネントの基準配向に一般的に平行な方向で可変長寸法により示されるコード部分の範囲で終わる1行分のバイナリ要素を形成する、または可変長寸法に一般的に垂直な方向で1行が表面検知システムにより検出可能な少なくとも1つのバイナリ要素を含まない場合に終わるバイナリ要素のマトリクスを形成する、または直前のバイナリ要素に関する定義済み方向および定義済み距離で互いに関して定義済み位置にある一連のバイナリ要素を形成する3つの方法のうちの少なくとも1つで第1のバイナリ要素から伸びてゆく。
【0012】
他の種類のコード化では、値は多層可変ビット長コードを使用してコード化されるため、手掛かりコンポーネントは、2値化しきい値で検出可能であり、少なくとも1つの可変長寸法を持つ定義済み形状を有する。少なくとも1つの可変長寸法は、基準配向およびコード部分の範囲を示す。コード部分は、グレースケールのしきい値で検出可能な少なくとも1つのバイナリ要素を含むが、2値化しきい値では検出可能ではない。グレースケールのしきい値で検出可能な少なくとも1つのバイナリ要素は、手掛かりコンポーネント内に配置され、手掛かりコンポーネントは、2値化しきい値で一様であるが、グレースケールのしきい値では少なくとも1つのバイナリ要素を明らかにする。また、コード部分は、ローカルの原点から定義済みオフセットのところに配置され、手掛かりコンポーネントに関して定義済み位置に配置されている第1のバイナリ要素から開始することができ、追加バイナリ要素は、表面検知システムにより使用される1つの軸に一般的に平行な方向および直前のバイナリ要素に関する定義済み方向および定義済み距離のうちの少なくとも1つで第1のバイナリ要素から伸びてゆき、コード部分が定義済み形状を含むように互いに関する定義済み位置に一連のバイナリ要素を形成する。
【0013】
本発明の他の態様は、物体が表面検知システムの表面の近くに置かれた場合に物体に付けられる二次元識別子から値を決定する方法を対象とする。この方法は、一般的に上述のように識別子を検出する。
【0014】
本発明のさらに他の態様は、物体を近くに置くことができる対話型の側と対側を持つ対話型表示面を含む物体に付けられる二次元識別子から値を決定するためのシステムを対象とする。システム内の光源は、IR光を対話型表示面の対側に向けて、対話型表示面を通して、対話型の側に当てる。光センサは、対話型表示面を通じてパターン形成された物体から反射されて戻ってくるIR光を受け取って感知し、物体に付けられている二次元識別子を含む像を形成するように配置される。光センサと通信しているプロセッサは、メモリ内に格納されているマシン命令を実行し、この命令により、プロセッサは、対話型表示面上またはその近くに置かれている物体に付けられている識別子によりコード化された値を決定するために使用される方法の複数のステップと一般的に一致する複数の機能を実行する。
【0015】
本発明の前述の態様およびその結果の利点の多くは、添付の図面に関して、以下の詳細な説明を参照することにより容易に理解できるため明白であろう。
【発明を実施するための最良の形態】
【0016】
本発明を実装するコンピューティングシステム例
図1を参照すると、本発明のさまざまな部分を実装するのに好適なシステム例が示されている。システムは、処理ユニット21、システムメモリ22、およびシステムバス23を備える従来のPC20の形態の汎用コンピューティングデバイスを含む。システムバスは、システムメモリを含むさまざまなシステムコンポーネントを処理ユニット21に結合し、またメモリバスまたはメモリコントローラ、周辺機器バス、およびさまざまなバスアーキテクチャを使用するローカルバスを含む数種類のバス構造のいずれでもよい。システムメモリは、読み取り専用メモリ(ROM)24およびランダムアクセスメモリ(RAM)25を含む。起動時などにPC20内の要素間の情報伝送を助ける基本ルーチンを含む基本入出力システム26(BIOS)は通常、ROM24に格納される。PC20は、さらに、ハードディスク(図に示されていない)への読み書きを行うためのハードディスクドライブ27、取り外し可能磁気ディスク29への読み書きを行うための磁気ディスクドライブ28、およびコンパクトディスク読み取り専用メモリ(CD−ROM)またはその他の光媒体などの取り外し可能光ディスク31への読み書きを行うための光ディスクドライブ30を備える。ハードディスクドライブ27、磁気ディスクドライブ28、および光ディスクドライブ30は、ハードディスクドライブインターフェイス32、磁気ディスクドライブインターフェイス33、および光ディスクドライブインターフェイス34によりそれぞれシステムバス23に接続される。ドライブおよび関連コンピュータ可読媒体は、PC20用のコンピュータ可読マシン命令、データ構造体、プログラムモジュール、およびその他のデータを格納する不揮発性記憶装置を実現する。本明細書で説明されている環境例ではハードディスク、取り外し可能磁気ディスク29、および取り外し可能光ディスク31を採用しているが、当業者であれば、磁気カセット、フラッシュメモリカード、デジタルビデオディスク(DVD)、ベルヌーイカートリッジ、RAM、ROMなどのコンピュータからアクセス可能なデータおよびマシン命令を格納できる他のタイプのコンピュータ可読媒体もこの動作環境例で使用できることを理解するであろう。
【0017】
オペレーティングシステム35、1つまたは複数のアプリケーションプログラム36、その他のプログラムモジュール37、およびプログラムデータ38を含む、多くのプログラムモジュールは、ハードディスク、磁気ディスク29、光ディスク31、ROM24、またはRAM25に格納されることができる。ユーザはキーボード40およびポインティングデバイス42などの入力デバイスを通じてPC20にコマンドおよび情報を入力し、制御入力を送ることができる。ポインティングデバイス42は、マウス、ペン、ワイヤレスリモコン、またはその他のポインタを含むことができるが、本発明に関して、ユーザ側で入力および制御に対話型表示装置を採用することができるため、そのような従来のポインティングデバイスを省くことができる。これ以降使用されるように、「マウス」という用語は、画面上のカーソルの位置を制御するために使用される実質的にいかなるポインティングデバイスをも包含することを意図している。他の入力デバイス(図に示されていない)としては、マイク、ジョイスティック、触覚ジョイスティック、ヨーク、フットペダル、ゲームパッド、衛星放送受信アンテナ、スキャナなどがある。これらおよびその他の入力/出力(I/O)デバイスは、システムバス23に結合されているI/Oインターフェイス46を通じて処理ユニット21に接続されることが多い。I/Oインターフェイスという用語は、シリアルポート、パラレルポート、ゲームポート、キーボードポート、および/またはユニバーサルシリアルバス(USB)に特に使用されるそれぞれのインターフェイスを包含することを意図している。システムバス23は、さらに、カメラインターフェイス59にも接続され、後述のように、このインターフェイスは、対話型表示装置60に結合され、対話型表示装置60に搭載されているデジタルビデオカメラから信号を受信する。代わりに、デジタルビデオカメラをUSBバージョン2.0ポートなどの適切なシリアルポートI/Oに結合することもできる。任意選択で、モニタ47をビデオアダプタ48などの適切なインターフェイスを介してシステムバス23に接続することができるが、ただし、本発明の対話型表示テーブルは、かなり情報豊富な表示を行い、ユーザによる対話操作により、情報の入力およびソフトウェアアプリケーションの制御を行うことができ、したがって、ビデオアダプタに結合されることが好ましい。PCは、スピーカ(サウンドカードまたは他のオーディオインターフェイス−図には示されていない)およびプリンタなどの、他の周辺出力デバイス(図に示されていない)に結合されることが多いことは理解されるであろう。
【0018】
本発明は、単一のマシン上で実施することができるが、PC20は、リモートコンピュータ49などの1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク接続環境で動作することもできる。リモートコンピュータ49は、他のPC、サーバ(一般的にPC20とまったく同様に構成されるのがふつう)、ルータ、ネットワークPC、ピアデバイス、または衛星またはその他の共通ネットワークノードでもよく、通常は、PC20に関して上述の要素の多くまたはすべてを含むが、外部メモリ記憶デバイス50だけが図1に例示されている。図1で説明されている論理接続は、ローカルエリアネットワーク(LAN)51とワイドエリアネットワーク(WAN)52を含む。このようなネットワーキング環境は、オフィス、企業全体にわたるコンピュータネットワーク、イントラネット、およびインターネットでは一般的である。
【0019】
LANネットワーキング環境で使用される場合、PC20は、ネットワークインターフェイスまたはアダプタ53を介してLAN51に接続される。WANネットワーキング環境で使用する場合、PC20は、通常、インターネットなどのWAN52上で通信を確立するために、モデム54、またはケーブルモデム、デジタル加入者回線(DSL)インターフェイス、または総合デジタル通信網(ISDN)インターフェイスなどの他の手段を含む。モデム54は、内蔵でも外付けでもよいが、システムバス23に接続されるか、またはI/Oデバイスインターフェイス46、つまり、シリアルポートを介してバスに接続される。ネットワーク接続環境では、PC20により使用されるプログラムモジュールはまたはその一部分は、リモートメモリ記憶デバイスに格納することができる。図に示されているネットワーク接続は実施例であり、無線通信および広帯域ネットワークリンクなどのコンピュータ間の通信リンクを確立するのに他の手段が使用可能であることは理解されるであろう。
【0020】
対話型の表面の実施例
図2には、フレーム62内にPC20を含み、コンピュータの光入力およびビデオ表示デバイスの両方として使用される対話型表示テーブル60の実施例が示されている。対話型表示テーブルのこの切り欠き図では、テキストおよびグラフィック画像を表示するために使用される光線は、一般的に、点線を使用して示され、対話型表示テーブルの表示面64aに載っている、または真上にある物体を感知するために使用される赤外線(IR)光は、破線を使用して示されている。表示面64aは、対話型表示テーブルの上面64内にセットされる。テーブル面の周辺は、表示面64a上に表示されているグラフィック画像または仮想環境を対話形式で操作するために使用することができる物体を含む、ユーザの腕またはその他の物体を支えるために使用される。
【0021】
IR光源66は、複数のIR発光ダイオード(LED)を備えるのが好ましく、フレーム62の内側に取り付けられる。IR光源66により出力されるIR光は、破線78a、78b、および78cにより示されるように、上向きに、表示面64aの下側に当てられる。IR光源66から出たIR光は、光拡散特性を有するベラムまたは他の好適な半透明材料のシートを含む、テーブルの半透明層64bを通過した後、表示面の上または近いところにある物体から反射される。図にはIR光源66が1つしか示されていないが、そのような複数のIR光源は、フレーム62の内側の周りの間隔を空けた位置に取り付けて、表示面64aを均等に照らすようにできることは理解されるであろう。IR光源により出力される赤外線は、
・破線78aにより示されているように、物体を照らさずに、テーブル面を抜けるか、
・破線78bにより示されているように、テーブル面上の物体を照らすか、
・破線78cにより示されているように、テーブル面から上に短い距離のところにあり
、テーブル面と接触していない物体を照らすことができる。
【0022】
表示面64aの上にある物体は、表示面の上に載る「タッチ」物体76aおよび表示面に近いが実際には接触していない「ホバー」物体76bを含む。半透明層64bを表示面の下に使用し、表示面を通過するIR光を拡散させた結果、物体が表示面64aに近づくにつれ、物体により反射されるIR光の量は、物体が実際に表示面と接触した場合に得られる最大レベルまで増大する。
【0023】
デジタルビデオカメラ68は、表示面64aの下のフレーム62に取り付けられ、表示面64aの上の方に配置されたタッチ物体またはホバー物体から反射されるIR光を受信するのに適切な位置にある。デジタルビデオカメラ68は、IR光のみを透過し、点線84aに沿って表示面64a内を伝わる周辺可視光線をブロッキングするIRパスフィルタ86aを装備している。IR光源66とデジタルビデオカメラとの間に邪魔板79を配置し、IR光源から直接放射されたIR光がデジタルビデオカメラに入らないようにしたが、なぜかというと、このデジタルビデオカメラは、表示面64aから上に短い距離のところにある、または表示面64aに接触する物体から反射されたIR光にのみ反応(応答)し、表示面に載っている、またはその上の方にある物体から反射されたIR光の像に対応する出力信号を発生しなければならないからである。デジタルビデオカメラ68は、さらに、上から表示面64aを通り、対話型表示装置の内側に入る周辺光(例えば、点線84aにより示されている経路に沿っても伝わる周囲IR光)に含まれるIR光にも反応することは理解されるであろう。
【0024】
テーブル面にある、またはその上の方にある物体から反射されたIR光は、
・反射して戻り、破線80aおよび80bにより示されているように、半透明層64bを通り、IRパスフィルタ86aを通り、デジタルビデオカメラ68のレンズ内に入るか、または
・破線80cに示されているように、デジタルビデオカメラ68のレンズに入ることなく、対話型表示装置内の他の内面により反射または吸収される可能性がある。
【0025】
半透明層64bは、入射IR光と反射IR光の両方を拡散する。したがって、上で説明したように、表示面64aに近い「ホバー」物体ほど、表示面から遠い同じ反射率の物体と比べてより多くのIR光を反射して、デジタルビデオカメラ68に返す。デジタルビデオカメラ68は、撮像フィールド内の「タッチ」および「ホバー」物体から反射されたIR光を検知し、それぞれのそのような物体の位置、および任意選択により、物体のサイズ、配向、および形状を決定する処理のため、PC20に入力された反射IR光の像に対応するデジタル信号を出力する。物体の一部(ユーザの指など)が表示面に接触している間に、物体の他の部分(ユーザの前腕など)がテーブルの上にあってよいことに留意されたい。さらに、物体は、その物体またはその物体が一員である関連する物体のクラスに特有のその物体に固有の底面についているIR光反射パターンまたはコード化された識別子(例えば、バーコード)を含むことができる。したがって、デジタルビデオカメラ68からの撮像信号は、さらに、本発明により、反射パターンから反射されたIR光に基づいて、それぞれのそのような固有の物体を検出するだけでなく、その配向を決定するのにも使用することができる。この機能を実行するために実装される論理的ステップについて以下で説明する。
【0026】
PC20は、図2に示されているように対話型表示テーブル60と一体であるか、またはその代わりに、図3の実施形態に示されているように、対話型表示テーブルに対し外付けとすることもできる。図3では、対話型表示テーブル60’は、データケーブル63を通じて外部のPC20(上述のように、オプションのモニタ47を含む)に接続されている。さらに、この図に示されているように、1組の直交軸XおよびYが、表示面64aに関連付けられており、また「0」で示される原点も関連付けられている。個別には示されていないが、それぞれの直交軸に沿う複数の座標位置を使用して、表示面64a上の位置を指定できることは理解されるであろう。
【0027】
対話型表示テーブルが外部のPC20に接続されるか(図3のように)、またはセットトップボックス、テレビゲーム機、ラップトップコンピュータ、またはメディアコンピュータ(図に示されていない)などの他の種類の外部コンピューティングデバイスに接続されている場合、対話型表示テーブルは入力/出力デバイスを備える。対話型表示テーブルに送られる電力は、従来の交流(AC)電源(図に示されていない)に結合されている電源リード61を通じて供給される。対話型表示テーブル60’に接続されるデータケーブル63は、PC20上のUSB2.0ポート、Institute of Electrical and Electronics Engineers(IEEE)1394(またはファイヤワイヤ)ポート、またはEthernet(登録商標)ポートに結合することができる。また、無線接続の速度が向上し続けると、対話型表示テーブルも、そのような高速無線接続、または他の何らかの適切な有線または無線データ通信リンクを介して、PC20などのコンピューティングデバイスに接続されることもありうると考えられる。対話型表示装置の一体部分として内蔵されるか、または外付けされるかに関係なく、PC20は、デジタルビデオカメラ68からのデジタル画像を処理するアルゴリズムを実行し、よい所をひき立てて対話型表示テーブル60のより直観的なユーザインターフェイス機能を使用するように設計されたソフトウェアアプリケーションを実行し、さらに、そのような機能を利用するように特に設計されていないが、それでも、対話型表示テーブルの入力および出力機能を適切に使用できる他のソフトウェアアプリケーションをも実行する。
【0028】
対話型表示テーブル(つまり、上述のいずれかの実施形態)の重要で強力な特徴は、ゲームまたはその他のソフトウェアアプリケーションのためのグラフィック画像または仮想環境を表示し、グラフィック画像または仮想環境の間の対話操作を表示面64a上に表示できるようにし、物体76aなどの表示面の上に載っている物体、または物体76bなどの、その真上でホバリングしている物体を識別する機能である。
【0029】
ここでもまた、図2を参照すると、対話型表示テーブル60は、グラフィック画像、仮想環境、またはテキスト情報を表示面64a上に表示するために使用されるビデオプロジェクタ70を備えている。ビデオプロジェクタは、解像度が少なくとも640×480ピクセルの液晶表示装置(LCD)またはデジタルライトプロセッサ(DLP)タイプであるのが好ましい。IRカットフィルタ86bは、ビデオプロジェクタ70のプロジェクタレンズの前面に取り付けられ、これにより、ビデオプロジェクタにより放射されたIR光が対話型表示テーブルの内部に入ってIR光が表示面64aに載っている、またはその上にある物体から反射されたIR光と干渉するのを防止する。第1の鏡組立部品72aは、投射光が第2の鏡組立品72b上に入射するように、点線82aに沿ってプロジェクタレンズから伝わる投射光をフレーム62内の透明開口部90aに通す。第2の鏡組立品72bは、投射像が見えるように、また表示のため表示面64a上に焦点が合うように、プロジェクタレンズの焦点のところにある半透明層64b上に投射光を反射する。
【0030】
表示面に投射された像が表示面と必ず揃うように第1および第2の鏡組立品の角度を調整するため、位置合わせデバイス74aおよび74bが用意され、ネジ棒および回転可能調整ナット74cを含む。投射像を所望の方向に向ける他に、これら2つの鏡組立品を使用することで、プロジェクタ70と半透明層64bとの間の経路を長くできるため、焦点距離の長い(したがって低コストの)プロジェクタレンズをプロジェクタとともに使用することができる。
【0031】
物体のコード認識
図4には、コード化された物体の二次元識別子コードを認識するための論理全体を例示する流れ図が示されている。ステップ100で、ゲームなどのアプリケーションプログラムでは、そのアプリケーション側でテーブル上にある物体に付いていることを検知することを期待する種類のコードを指定する。本発明で使用可能なコードの種類には、円形、リニア、マトリクス、可変ビット長マトリクス、多層マトリクス、白黒(バイナリ)、およびグレースケールがある。コードの種類を指定する方法としては、コードパターンの特性のロード、しきい値の設定、および/またはパターン認識に対するテンプレートの有効化が考えられる。テンプレートの有効化は、さらに、物体認識を容易にするテンプレートのいくつかの回転バージョンを生成することをも含むことができる。
【0032】
図4の残りの論理回路は、現在実行中のソフトウェアアプリケーションと通信する画像処理モジュールにより実行されるのが好ましい。このようにして、ソフトウェアアプリケーションは、標準的な方法により画像処理モジュールとインターフェイスすることができる。以下で詳しく説明するが、画像処理モジュールは、形状、ピクセル強度、コードタイプ、および対応するコード値を通じて物体を検出することに関係するさまざまな機能を実行する。例としては、物体がテーブル上に、任意の向きで出現できる場合にコード化された物体を見つけることを試みるテンプレート照合またはしきい値設定がある。
【0033】
ステップ102で、画像処理モジュールは、表示面上またはその付近にある1つまたは複数の物体から、テーブルの表示面から届いた反射されたIR光に対する応答としてIRビデオカメラにより出力される現在の入力像の2値画像内の接続コンポーネントを検出する。IR視覚システムのこの実施例では、接続コンポーネントは2値画像内の1組の隣接する「オン」ピクセルを含む。これらのピクセルは、IRビデオカメラに向かって反射IR光が戻るIR反射材料を含む二次元識別子コードの一部分を含む。接続コンポーネントは、対話型テーブル上に置かれている物体に付けられている識別子コード全体、またはその識別子付号のコード部分から分離されているサブコンポーネントに対応することができる。後述のいくつかの場合には、別々のサブコンポーネントが、識別子コードの位置および配向を決定するのを補助する手掛かりコンポーネントとして機能する。他の場合には、識別子コード全体がそれ専用の手掛かりコンポーネントとして使用され、それにより、識別子コードの位置および配向を特定する。2値画像は、正規化された入力画像のどのピクセルが所定の2値化しきい値を超えるかを判別することにより形成される。接続コンポーネント検出は、B.K.P.Horn(「ロボット視覚」を参照)により説明されているアルゴリズムなどの標準アルゴリズムを使用して実行される。
【0034】
ステップ104では、画像処理モジュールは、接続コンポーネントを楕円として表し、楕円の長軸および短軸の中心および長さを計算する。その後、画像処理モジュールは、接続コンポーネントのピクセルに対する平均値および共分散値を求め、楕円軸に沿ってのピクセルの統計的平均および共分散に基づき、対話型表示テーブルの座標に関して接続コンポーネントの位置および配向を決定する。この手法の詳細については、例えば、非特許文献2を参照のこと。
【0035】
接続コンポーネントの位置および配向を決定した後、画像処理モジュールは1つまたは複数の任意選択の決定ステップを実行することによりコードのタイプおよび値を容易に決定できる。一実施形態では、任意選択の決定ステップ106、110、114、118、および120は、使用されず、プロセスは順次、ステップ104からコード決定ステップ108、112、116、122、124を通り、ステップ126へと流れ、そこでコード決定の結果の順位付けを行い、統計解析に基づいて最も近いコードタイプを選択する。第2の実施形態では、これらの任意選択の決定ステップは、実行されるべきコード決定ステップを選択するために使用される。例えば、任意選択の決定ステップ106は、コード決定ステップ108が実行されるべきかどうかを示す。したがって、この実施形態は、コード検出に必要な計算量を減らすフィルタとして機能する。
【0036】
コードタイプがうっかり捨てられないようにするため、上記の手法の組み合わせを使用することができる。組み合わせられた手法では、複数の任意選択の決定ステップを使用して、「信頼度」係数を決定されるそれぞれのコードタイプに割り当てることができる。例えば、画像処理システムでは、決定ステップ106での決定に従い、指定された半径内に収まる接続コンポーネントの統計解析に基づいて信頼度係数を割り当てることができる。同様に、画像処理モジュールでは、同じ接続コンポーネントが決定ステップ110での決定に従い指定された正方形領域内に収まる場合に他の信頼度係数を割り当てることができる。他の信頼度係数は、さらに、接続コンポーネントの短軸と指定された長さとが等しいかどうか(決定ステップ114の場合)、接続コンポーネントと指定された形状との一致(決定ステップ118の場合)、または接続コンポーネントへのビットの近さ(決定ステップ120の場合)について決定することもできる。一般に、信頼度係数は、コードタイプ毎に決定することができ、現在の検出されたコンポーネントに最も当てはまるコードタイプを決定する際にこの信頼度係数を使用できる。例えば、信頼度係数は、ピクセルがどれだけよく「読み取られるか」、つまり、白黒強度レベルにどれだけくっきりと分けられるか、およびさらにピクセル値が有効なコードのコードブックからの有効なビットコードのうちの1つとしてどれだけよく「読み取られるか」ということからも決定することができる。また、信頼度レベルは、最大および最小ピクセル強度レベルが少なくともある程度の所定の値だけ異なるかどうかにより決定することができるが、それは、それらの強度の差の値が小さすぎると、ピクセルはノイズとなる可能性があるからである。
【0037】
例として、図4では、接続コンポーネントが少なくとも最小基準条件を満たすそれぞれのコードタイプに対するコード値を決定しながら、それぞれのコードタイプに対する最小基準条件を満たさないコードタイプを除去するために使用される第1と第2の実施形態の組み合わせを示している。これらの任意選択の決定ステップは、一致する可能性のあるコードタイプについて接続コンポーネントを最初にふるいにかけるため単独で、または組み合わせて実行することができる。接続コンポーネントが一致する可能性のあるコードタイプについて、画像処理モジュールでは、それぞれの一致する可能性のあるコードタイプから接続コンポーネントの分散を決定するのが好ましい。その後、画像処理モジュールは、最良適合により決定を順位付けして、最も一致度の高いコードタイプおよび対応するコード値を、物体に付けられたコードとして選択する。
【0038】
上で示されているように、任意選択の決定ステップ106で、画像処理モジュールは、特定の半径または放射状マスク内に収まるかどうかについて接続コンポーネントをテストする。接続コンポーネント軸の長さおよび/またはピクセル値の総和が定義済み範囲内にある(つまり、接続コンポーネントが放射状マスクの範囲内に収まる)場合、画像処理モジュールはステップ108に進み、放射状コードを決定する。放射状コードの決定の詳細は、図5および6に関して以下で説明される。放射状コードを決定した後、または接続コンポーネントが定義済み半径または放射状マスクの範囲内に収まらない場合、処理は任意選択の決定ステップ110に進む。
【0039】
任意選択の決定ステップ110では、画像処理モジュールは、ダイの寸法に対応する指定正方形領域内に収まるかどうかについて接続コンポーネントをテストする。接続コンポーネントが回転された白色の正方形テンプレートと一致するか、または主軸および副軸が等しい長さであり、定義済みダイ寸法に対応する(つまり、接続コンポーネントがダイ寸法の範囲内に収まる)場合、画像処理モジュールはステップ112に進み、ダイのスポットパターンを決定する。ダイのスポットパターンの決定の詳細は、図7および8に関して以下で説明される。ダイのスポットパターンを決定した後、または接続コンポーネントが知られているダイの寸法に対応する指定された正方形領域の範囲内に収まらない場合、処理は任意選択の決定ステップ114に進む。
【0040】
任意選択の決定ステップ114では、画像処理モジュールは、リニアコード高さに対応する所定の長さと等しいかどうかについて接続コンポーネントをテストする。接続コンポーネントの短軸の長さが所定の長さに等しい(つまり、接続コンポーネントの2番目の軸がリニアコード高さに等しい)場合、画像処理モジュールはステップ116に進み、そのリニアコードを決定する。リニアコードの決定の詳細は、図9および10に関して以下で説明される。リニアコードを決定した後、または接続コンポーネントの副軸が所定の長さに等しくない場合、処理は任意選択の決定ステップ118に進む。
【0041】
任意選択の決定ステップ118では、画像処理モジュールは、所定の形状または手掛かりコンポーネントと一致するかどうかについて接続コンポーネントをテストする。接続コンポーネントが1つの知られている寸法を持つ直線の形状でない(つまり、接続コンポーネントは手掛かりコンポーネントと一致していない)場合、画像処理モジュールはステップ126に進み、そのような直線の形状である場合、画像処理モジュールは任意選択の決定ステップ120に進む。
【0042】
任意選択の決定ステップ120で、画像処理モジュールは、近隣コードビットについて接続コンポーネントをテストする。接続コンポーネントの所定の距離および配向の範囲内に非連結ビットがある(つまり、接続コンポーネントが近隣コードビットを持つ)場合、画像処理モジュールはステップ122に進み、マトリクスコードを決定する。マトリクスコードの決定の詳細は、図11および12に関して以下で説明される。マトリクスコードを決定した後、または接続コンポーネントの所定の距離および配向の範囲内に非連結ビットがない(つまり、接続コンポーネントが近隣コードビットを持たない)場合、画像処理モジュールはステップ124に進み、グレースケールコードを決定する。グレースケールコードの決定の詳細は、図13、14、および15に関して以下で説明される(ステップ122からステップ124への論理の流れは第1の実施形態の順次的な論理の流れを示す)。
【0043】
ステップ126で、画像処理モジュールは、(複数の)コード決定の結果を順位付けし、その後、統計解析を実行して、接続コンポーネントが適合する可能性が最も高いコードタイプを選択する。接続コンポーネントが、コードとして検出されない場合、画像処理モジュールは、その接続コンポーネントを識別子が付けられていない、ユーザの指または非コード化物体などの他のタイプの物体であると評価することができる。
【0044】
放射状コード認識
図5は、丸い物体、つまり丸い「フットプリント」を持つ物体に識別子を付ける際に特に有用な放射状コード130の実施例を示している。放射状コード130は、暗い「開始ビット」134を持つ光反射内部円形領域132を含む。開始ビット134は、コード化領域の中心から定義済みの第1の半径のところに配置されるのが好ましく、キーストーン、パイスライスの形状、または開始ビットを簡単に特定できるその他の形状を取ることができる。光反射内部円形領域内の開始ビットは、コード値を決定できる開始基準点を定める。開始ビットは、光反射内部円形領域に関して、さらに、コードが付けられる物体の配向を定義する。
【0045】
放射状コード130は、さらに、明るいキーストーン形状と暗いキーストーン形状の「データビット」を伴う外側の均等に分割された同心状円環136を含む。円環136は、第1の半径よりも大きい中心からの第2の半径のところに配置される。破線は、この図の中にのみ含まれ、データビットの配置をより明確に示すことに留意されたい。しかし、実際の放射状コードは、そのような線を含まず、光反射領域全体が単一の接続コンポーネントを含む。この場合、識別子コード全体がそれ独自の手掛かりコンポーネントとして機能する。外側の均等に分割された同心状円環は、コードの値を、明るいキーストーン形状と暗いキーストーン形状のビットの一連の並びとして含む。コード値は、定義済みの時計回り(または代わりに、好ましい反時計回り)の方向で開始ビットを配置することから始めて、読み取られる。
【0046】
暗い背景138は、放射状コードが接続コンポーネントとして簡単に検出できるように、放射状コード130を囲む。暗い背景では、「ノイズ」ピクセルが接続コンポーネントの一部としてみなされるリスクを極力小さくする。
【0047】
図6は、放射状コードを処理するため画像処理モジュールにより実行される論理的ステップを例示する流れ図である。ステップ140で、画像処理モジュールは、円形領域の中心から定義済み半径のところで開始ビットを探索する。探索領域は、データビットの半径以内に配置される。一般に、画像処理モジュールでは、定義済み固定しきい値を使用して、任意のビットの値を決定することができる。しかし、信頼性を高めるために、画像処理モジュールは、しきい値をコードパターンの最小ピクセル値と最大ピクセル値との平均値として計算するのが好ましい。上述のように、最小ピクセル値と最大ピクセル値との差が小さすぎるのは、ノイズを復号化しようとすることが原因である可能性がある。
【0048】
決定ステップ142で、画像処理モジュールは、定義済み半径のところで開始ビットが見つかったかどうかを判定する。開始ビットが見つからない場合、放射状コード決定のプロセスは終了する。しかし、開始ビットが見つかった場合、画像処理モジュールはステップ144に進み、定義済みの時計回り(または反時計回り)の方向に円形領域の中心から定義済み半径のところでデータビットを読み込む。これらのビットは、入力画像からの変形されたテーブル座標に関して知られている半径方向の幅を持つ。
【0049】
任意選択の決定ステップ146で、有効な放射状コードかどうかをテストする。放射状コードの有効性をテストするために、画像処理モジュールは、検出されたビットが可能な有効なコード値からなるテーブル内に存在するコード値を表すことを検証することを試みることができる。その代わりに、画像処理モジュールは、接続コンポーネントを有効な放射状コードのテンプレートと比較することができる。このパターンマッチング手法を、図8に関して詳述する。検出されたコードが有効なコードでない場合、放射状コード決定のプロセスは終了する。検出されたコードが有効な場合、または任意選択の有効性検査が実行されない場合、画像処理モジュールは、ステップ148に進み、テーブルルックアップまたは他のそのような方法を使用してコード内で検出されたビットから物体IDを決定する。
【0050】
ダイマトリクスコード認識
図7は、ダイの面などの正方形の物体を認識する際に使用されるマトリクスコード150の実施例を示している。マトリクスコード150は、1から6個のデータビット154(ダイスポット)が3×3のグリッド158内に6つの所定のパターンで配列されている接続コンポーネントの正方形領域152(白色で示されている)を含む。破線は、データビットを例示するために図に含まれているだけであり、実際のダイマトリクスコードは線を含まないことに留意されたい。
【0051】
ダイのピクセルは、正方形領域内の3×3グリッドから読み取られる。この後、3×3グリッドパターンは、6つの許容可能なダイフェースパターンのそれぞれと比較され、「2」、「3」、または「6」のスポットダイフェースの場合は、さらに、90度回転されたバージョンのダイフェースパターンとも比較される。その代わりに、任意のサイズおよび関連するダイフェースビットパターンのグリッドを読み取ることもできる。表示面に面しているダイフェースが識別された後、反対側のダイフェースは常に定義済みの関係を持つ、つまり、知られているダイフェースに向かい合うダイフェースは7と知られているダイフェースとの差に等しい数のスポットを持つため上を向いているダイフェースが知られる。
【0052】
暗い背景156は、マトリクスコードが接続コンポーネントとして簡単に検出できるように、マトリクスコード150を囲む。暗い背景では、「ノイズ」ピクセルが接続コンポーネントの一部としてみなされるリスクを極力小さくする。
【0053】
図8は、ダイマトリクスコードを決定するため画像処理モジュールにより実行される論理的ステップを例示する流れ図である。ステップ160で、画像処理モジュールは、白色の正方形テンプレートを90度までの所定の角度だけ回転し、テンプレートと接続コンポーネントとの照合を行うことにより正方形の接続コンポーネントの配向を決定する。その後、画像処理モジュールは、ステップ162に進んで、3×3グリッド内から接続コンポーネントの2値化画像のピクセルパターンを読み取る。
【0054】
ステップ164aでは、それぞれの知られているダイフェースパターン(および「2」、「3」、または「6」個のスポットがあるダイフェースの場合には、90度回転させたバージョンのダイフェースパターン)を繰り返し調べるプロセスを開始する。決定ステップ166で、接続コンポーネントから読み取られたピクセルパターンと知られているダイフェースパターンとを比較する。ピクセルパターンが知られているダイフェースパターンと一致した場合、画像処理モジュールはステップ168に進み、ダイの上面の値を決定する。上述のように、ダイ上の対面の合計は7に等しく、上面の値は7引く検出パターン内のスポット数に等しい。上面の値を決定した後、画像処理モジュールは終了する。ただし、知られているダイフェースパターンが接続コンポーネントのピクセルパターンと一致しない場合、反復プロセスはステップ164bで終了する。
【0055】
リニアコード認識
図9は、物体の認識で使用されるリニアコード170の実施例を示す。リニアコード172は、2つの明るい平行なバー174aと174b、明るい開始ビット176、暗い停止ビット178、および複数の明るいまたは暗いコードビット180を含む。「明るい」および「暗い」という用語は、物体または物体自体の材料上のコード化パターンを作成するために適用される材料のIR反射率を意味することは明白であろう。明るいビットは、IR光の良好な反射器である識別子の一部に対応し、暗いビットまたは領域は、識別子の一部またはIR光を吸収する、またはあまりよく反射しない物体の囲む部分に対応する。これらの用語は、表示面の像は電子的に容易に反転できるため、いくぶん恣意的である。
【0056】
暗い背景182は、リニアコードが接続コンポーネントとして簡単に検出できるように、リニアコードを囲む。暗い背景では、「ノイズ」ピクセルが接続コンポーネントの一部としてみなされるリスクを極力小さくする。ここでもまた、データビットを線引きする線は、データビットを例示するだけのために図に含まれていることに留意されたい。実際のリニアコードは、通常、識別可能な線を含まない。
【0057】
リニアコードは、接続コンポーネントであり、主軸または長軸に関して対称的である。接続コンポーネントプロセスから計算されるような配向は、コードを表示する物体の真の向きから180度ずれることがある。開始ビットおよび停止ビットの位置を調べることにより、復号化アルゴリズムにより、配向の訂正を行うことができる。リニアコード内のビットの個数は可変である。ビットのサイズ(例えば、幅)が与えられると、リニアコード内のビットの個数は、明るい平行なバーの長さから直接決定することができる。リニアコードの実施例172aから172hは、3ビットコードの8つすべてのインスタンスを示している。
【0058】
図10は、リニアコードを決定するため画像処理モジュールにより実行される論理的ステップの論理的ステップを例示する流れ図である。ステップ190で、画像処理モジュールは、主軸(長軸)の角から開始し、接続コンポーネントの主軸に垂直なそれぞれの線の中のピクセル値を総和することにより、接続コンポーネントの終了辺を特定する。リニアコンポーネント終端は、総和が0か、または所定の低いしきい値以下である場合に確認される。開始ビットの終了では、終了ビットの終了よりも大きな総和を持つことになる。決定ステップ192で、画像処理モジュールは、開始ビットの存在についてテストする。開始ビットが見つからない場合、リニアコードを決定するプロセスは終了し、見つかれば、プロセスはステップ194に続き、ステップ190で見つかった接続コンポーネントの終わりからコードの長さを決定する。
【0059】
任意選択の決定ステップ196で、画像処理モジュールは、有効なコード長についてテストする。物体が検出されるソフトウェアアプリケーションに基づき、コードの長さが予期した通りでない場合、リニアコードを決定するプロセスは終了する。ソフトウェアアプリケーションにより、コードの長さが予期した通りの場合、または有効なコード長についてテストする任意選択の決定が実行されない場合、プロセスはステップ198に進み、コード内のビットの個数を決定する。コード内のビットの個数は、以下の式で計算される。
【0060】
コードビット=(接続コンポーネント長/ビット幅)−2
プロセスはステップ200に進み、長軸または主軸に沿ってそれぞれのコードビットの値を決定する。コードビット値は、
・コードビットの中心にあるピクセルの値に基づくか、または
・コードビットの領域内のすべての値の総和の平均値と所定のしきい値とを比較し、平均値が所定のしきい値よりも大きい場合には、コードビット値は「1」であるとすることにより、または
・パターンマッチングによるか、または
・他の何らかの司法使用することにより決定することが可能である。
【0061】
プロセスはステップ202に進み、テーブルルックアップまたは他のそのような方法を介してコードビットの値から物体IDを決定する。
【0062】
可変ビット長マトリクスコード認識
図11は、物体の認識で使用される可変ビット長マトリクスコード210の実施例を示す。可変ビット長マトリクスコード212は、明るい矩形の接続「手掛かり」コンポーネント214を含む。手掛かりコンポーネントの副軸または短軸は固定長であるが、主軸または長軸は、任意の長さ(短軸よりも長い)でよい。可変ビット長マトリクスコードの配向の推定は、リニアコードとほとんど同じようにして導かれる。手掛かりコンポーネントの配向は、最大180度の回転まで正しく、これは、さらに、ビットフィールドが配置されている手掛かりコンポーネントの辺を決定することにより訂正することができる。手掛かりコンポーネントの形状により、対応する楕円形モデルの配向信頼性を高めることが好ましい。
【0063】
可変ビット長マトリクスコードは、さらに、マトリクスフィールド216も含み、これは、手掛かりコンポーネントの一辺または両辺上の手掛かりコンポーネントの主軸から一定距離のところに配置される。データビットを線引きする線は、データビットを例示するだけのために図に含まれているのであり、実際のダイマトリクスコードは見える線を含まないことに留意されたい。マトリクスフィールドの幅は、手掛かりコンポーネントの主軸の長さに等しい。マトリクスフィールドは、1つまたは複数のデータビット行を含む。マトリクスフィールドの各行は、少なくとも1つの明るい、または白色ビットを含み、このため、復号化アルゴリズムでは、1行内に白色ビットが見つからなくなるまで、手掛かりコンポーネントから外に向かって連続する行を読み取ることによりビットの行数を決定することができる。その代わりに、マトリクスフィールド内の行の数は、マトリクスフィールドの第1の行の中にコード化することができる。手がかりコンポーネントの可変長の主軸とともに、可変個数の行を使用することにより、コードはさまざまな物体サイズに合わせて適切な形状を取るようにできる。マトリクスフィールドは、1つまたは複数のチェックサムビットを含むことができるので、画像分析によりビットシーケンスが復号化された後、復号化の誤りを検出することができる。チェックサムビットは、さらに、復号化プロセスが手掛かりコンポーネントの正しい辺からビットシーケンスを読み取ったかどうかについて、その問題を判別する他の手順がない場合に、それを決定するために使用することができる。そのようなアルゴリズムは、単に、手掛かりコンポーネントの両辺から復号化を試みて、有効なシーケンスを正しいビットパターンとして使用するだけである。その代わりに、手掛かりコンポーネントの形状は、コードが配置されているマトリクスの辺を示すことができる。
【0064】
可変ビット長マトリクスコードは、暗い背景218により囲まれる。暗い背景により、手掛かりコンポーネントを接続コンポーネントとして容易に検出することができ、「ノイズ」ピクセルを手掛かりコンポーネントおよびマトリクスフィールドの一部とみなす危険性を最小限に抑えられる。
【0065】
図12は、可変ビット長マトリクスコードを決定するため画像処理モジュールにより実行される論理的ステップを例示する流れ図である。ステップ230で、画像処理モジュールは、手掛かりコンポーネントの長さを決定する。画像処理モジュールは、手掛かりコンポーネントを楕円として表し、楕円の長軸および短軸の中心および長さを計算する。次に、画像処理モジュールは、楕円形の軸の統計学的平均および共分散から、テーブル座標に関する手掛かりコンポーネントの位置および配向を決定する。
【0066】
処理はステップ232に進み、マトリクスフィールドの1行当たりのビット数を決定する。コードビットの幅は固定であり、知られているため、1行当たりのビット数はコードビットの知られている幅で除算された手掛かりコンポーネントの長さに等しい。
【0067】
好ましい任意選択のステップ234では、画像処理モジュールは、2値化画像の代わりに正規化された画像にアクセスして、さらに処理を容易にする。正規化された画像を2値化すると、ノイズピクセルが入り込むことが多いが、正規化された画像からビットを読み取ると、比較的信頼性の高いピクセル値が得られ、より小さなビットパターンを読み取ることができる。
【0068】
ブロック236a内のプロセスは、手掛かりコンポーネントの一辺上の可変ビット長マトリクスコードの値を確認する。ステップ238aでは、手掛かりコンポーネントの一辺のマトリクスフィールドの各行を繰り返しアドレス指定するプロセスを開始する。マトリクスフィールドの各行は手掛かりコンポーネントから連続する所定のオフセット距離のところに配置されているため、コードビットの読み取りの反復は、離散ステップで実行される。ステップ240aで、プロセスはマトリクスフィールドの1行内のデータビットを読み取る。データビットの読み取りは、定義済みの固定しきい値または相対的しきい値を使用して実行されるのが好ましく、その場合、相対的しきい値は、最大ピクセル強度と最小ピクセル強度との差の関数として決定される。パターンマッチングは可能であるが、可変長の行と可変個の行を検出する自由度は制限される。
【0069】
決定ステップ242aで、コードの終わりを示す、コードビットの不足がないかをテストする。その行にコードビットが含まれていない場合、反復プロセスは終了し、含まれている場合、プロセスはステップ244aに進み、行コードを格納しておいて後で処理する。反復プロセスはステップ246aに進む。
【0070】
続いて、ブロック236b内の任意選択のプロセスは、手掛かりコンポーネントの対辺上の可変ビット長マトリクスコードの値を確認する。このステップは、アプリケーションプログラム側で可変ビット長マトリクスフィールドが手掛かりコンポーネントの両辺に含まれるべきと予期している場合、またはアプリケーションプログラムが手掛かりコンポーネントの両辺から読み取りを試み、アルゴリズムを使用し、チェックサムまたはその他の妥当性確認プロセスを使ってコードの妥当性を確認する場合に実行されるが、それは、マトリクスコードの配向が±180度で決定されるからである。
【0071】
任意選択のステップ238bでは、手掛かりコンポーネントの対辺のマトリクスフィールドの各行を繰り返しアドレス指定するプロセスを開始する。これ以降、任意選択のステップ240b、242b、244b、および246bは、ステップ240a、242a、244a、および246aと同じ機能をそれぞれ実行するが、ただし、手掛かりコンポーネントの対辺上のビットに対してである。コード決定プロセスはステップ248に進み、そこで、ルックアップテーブルまたは他の適切な方法使用してステップ244で格納されているコードビットから物体IDを決定する。
【0072】
グレースケールコードおよび任意形状コードの認識
図13は、物体の認識で使用されるグレースケールコード252の実施例を示す。グレースケールコードでは、複数のしきい値を使用して、白黒画像だけでなくグレースケール画像をも検出する。グレースケールコード252aは、接続「手掛かり」コンポーネント254aを含む。暗い背景252aは、グレースケールコードが接続コンポーネントとして簡単に検出できるように、グレースケールコードを囲む。暗い背景により、手掛かりコンポーネントを容易に検出することができ、「ノイズ」ピクセルを手掛かりコンポーネントの一部とみなす危険性を最小限に抑えられる。入力画像の2値化では、しきい値を、入力画像を白黒でレンダリングする所定のレベルに設定する。したがって、2値化された手掛かりコンポーネントは白色であり、そのため、手掛かりコンポーネントとして容易に識別可能である(灰色ビットは2値化画像内では白色である)。
【0073】
手掛かりコンポーネントが検出された場合、第2の所定のしきい値が正規化された画像に適用され、手掛かりコンポーネント内の灰色および白色のコードビットを現す。この所定の第2のしきい値は、さらに、上で説明したように決定される、相対的しきい値であってよい。したがって、2値化された手掛かりコンポーネント254a、254c、254e、および254gは対をなす片割れのグレースケールコンポーネント254b、254d、254f、および254hをそれぞれ含む。灰色および白色のデータビットは、手掛かりコンポーネントに関する定義済み位置に配置される。データビットを線引きする線は、データビットを例示するだけのために図に含まれていることに留意されたい。ただし、実際のグレースケールコードは、通常、そのような見える線を含まない。
【0074】
グレースケールコードに対する手掛かりコンポーネントは、手掛かりコンポーネント例254cおよび254gにより示されているように、矩形である必要はない。接続コンポーネントが認識された後、第2の所定のしきい値は、接続コンポーネント内のグレースケールコードビットを現すことができる。その代わりに、グレースケールコードでは、手掛かりコンポーネントを特定するためにパターン認識を使用することもできる。
【0075】
グレースケールコードの埋め込みの性質により、共通の中心を持つ2つの接続コンポーネントを使用することができる。接続コンポーネントのこのような配列は、偶然起こることは非常にあり得ず、容易に検出される。手掛かりコンポーネント例252eは、他の接続コンポーネント254e内に中心を置く接続コンポーネント255eを含む。グレースケールコードの配向は、手掛かりコンポーネント内のいくつかのコードビットが白色、灰色、またはその独自の組み合わせであると規定することにより定義することができる。例えば、グレースケールコンポーネント254bおよび254fの配向は、コーナービットの1つだけ除いて全部が灰色である必要がある場合に容易に確認される。254cおよび254gなどの非対称の手掛かりコンポーネントの形状は、グレースケールコードの配向を明確に示すことができる。グレースケールコードは、複数のチェックサムビットを含むことができるので、画像分析によりビットシーケンスが復号化された後、復号化の誤りを検出することができる。
【0076】
図14は、物体、特に奇妙な形の物体を認識する際に使用される任意形状コード例260を示す。任意形状コード260は、接続「手掛かり」コンポーネント262、および1つまたは複数のデータビット264を含む。任意形状コードは、暗い背景268により囲まれる。暗い背景により、手掛かりコンポーネントデータビットを容易に検出することができ、「ノイズ」ピクセルをコードの一部とみなす危険性を最小限に抑えられる。任意形状コードのデータビットは、手掛かりコンポーネントに関する定義済み位置に置かれている。その代わりに、データビットを、それぞれのデータビットの位置が予め定義されるように前のデータビットに関する定義済み位置に置くこともできる。
【0077】
任意形状コードは、さらに、1つまたは複数の空の領域266を含むこともできる。このような空の領域は、コードが付けられる物体の形状に内在することがある。空の領域は、データビットの配置に影響を及ぼす場合がある。例えば、データビット264bは、空の領域266によりデータビット264aから隔てられる。その代わりに、空の領域は、一定の力でつる巻きバネ304を押したときに、例えば、IR反射領域306を移動して表示面と接触させることによりコード内の1つまたは複数のビットの値を変化させるボタン302を含む物体などで、コードに影響を及ぼすことができるメカニズムに関連付けることができる。その代わりに、ボタンは、前述のコードのどれかで通常ビットの反射率を変えることもできる。
【0078】
図15は、接続コンポーネントを特定した後にグレースケールまたは任意形状コードを決定するため画像処理モジュールにより実行される論理的ステップを例示する流れ図である。ステップ270で、画像処理モジュールは、灰色の陰影を含む現在の正規化された画像にアクセスする。ステップ272で、画像処理モジュールは、接続コンポーネント内の最小灰色強度を決定する。このステップでは、グレースケールまたは任意形状コードの暗い背景をグレースケールまたは任意形状コード内のコードから区別する。ステップ274は、画像処理モジュールで、以下の式で定義される第2のしきい値Tを設定することを示している。
【0079】
T=(最大白色強度−最小灰色強度)/2
このしきい値を正規化された画像に適用することにより、灰色ビットと白色ビットとを区別できる。ステップ270、272、および274は、任意形状コードのビットを読み取るうえで必要ではない。しかし、正規化された画像にアクセスすると、小さなビットも正確に読み取ることができる。
【0080】
ステップ276で、画像処理モジュールは、予想されるビット位置の定義済みパターンにアクセスする。これらの定義済み位置は、手掛かりコンポーネント内のビットおよび/または手掛かりコンポーネントの外部の、ただしそれに関する定義済みビット位置に適用可能である。画像処理モジュールは、ステップ278において、接続コンポーネントの形状および配向に関してステップ276で事前に定義されているパターンでデータビットを読み取る。これらのデータビットは、第2のしきい値を使用して読み取られる。
【0081】
任意選択の決定ステップ280で、画像処理モジュールは、有効なコード値についてテストする。コード値が有効でなければ、プロセスは終了し、有効であれば、プロセスはステップ282に進み、そこで、テーブルルックアップまたは他のそのような方法を介してコードビットから物体IDを決定する。
【0082】
本発明に関連して使用される他のアプローチでは、物体に付けられているコード化されたパターンは、任意形状について認識される。この場合、領域外(ただし、ある定義済みのさらに大きな領域内)のすべての画像ピクセルは、黒色でなければならないが、コード化されたパターン上の画像ピクセルは黒色または白色(または灰色)であると規定される。このプロセスは、本当に有効なコードであることを保証するため知られているコードブックと突き合わせて、読み取られたコードの妥当性を確認する、上記の手法と連携するとうまく機能する。
【0083】
本発明は、本発明を実施する好ましい形態に関して説明されているが、当業者であれば、請求項の範囲内で多数の修正を加えられることを理解するであろう。したがって、本発明の範囲は、いかなる点でも上の説明により限定されることを意図していないが、その代わりに請求項を参照することで全体が定められる。
【0084】
排他的権利が主張されている本発明は、請求項により定められる。
【図面の簡単な説明】
【0085】
【図1】本発明を実施する際に使用されるような対話型表示テーブルの画像処理に好適な一般的に従来のコンピューティングデバイスまたはパーソナルコンピュータ(PC)の機能ブロック図である。
【図2】含まれているハードウェアコンポーネントを示す対話型表示テーブルの内側、および対話型表示テーブル内の光がたどる経路、および対話型表示テーブルの表面とその上の方に配置されている物体例の図である。
【図3】PCが外付けされている対話型表示テーブルの等角図である。
【図4】表示面上またはその近くに置かれている物体に付けられている二次元識別子コードを認識する論理回路全体を例示する流れ図である。
【図5】本発明による放射状コードの実施例の図である。
【図6】表示面上にある物体に付けられている放射状コードを決定する場合に画像処理モジュールにより実行される論理的ステップを例示する流れ図である。
【図7】本発明によるマトリクスコードの実施例の図である。
【図8】ダイマトリクスコードを決定するため画像処理モジュールにより実行される論理的ステップの論理的ステップを示す流れ図である。
【図9】本発明による線形コードの実施例の図である。
【図10】線形コードを決定するため画像処理モジュールにより実行される論理的ステップの論理的ステップを例示する流れ図である。
【図11】本発明による可変ビット長マトリクスコードの実施例の図である。
【図12】物体に付けられている可変ビット長マトリクスコードを決定するための論理的ステップを示す流れ図である。
【図13】本発明によるグレースケールコードの実施例の図である。
【図14】本発明による任意形状コードの実施例の図である。
【図14A】図14の任意形状コードを持ち、形状コードを修正するためユーザが押しボタンを備える物体の実施例の図である。
【図15】グレースケールまたは任意形状コードを決定するため画像処理モジュールにより実行される論理的ステップを例示する流れ図である。
【技術分野】
【0001】
本発明は、一般的に、コード化されたパターンを使用して物体を光学的に識別することに関係しており、より具体的には、物体が対話型表示面の表面上またはその付近に置かれた場合にパターンから反射された赤外線に基づいての物体を識別できるように、その物体に付けることができるさまざまなコード化されたパターンに関係する。
【背景技術】
【0002】
通常、所定の物体に一意的識別子(数またはバイナリビットコード(binary bit code)を関連付ける場合に、UPC記号などの視覚的コードが使用される。この一意的識別子は、物体上に印刷されている視覚的パターンの一部分の配列を分析する画像処理手法を使用して検出される。このような視覚的コーディングスキーム(visual coding schemes)を設計する場合、パターンは物体を撮像することで容易に検出できるか、像内でパターンが特定された後そのパターンから識別子を容易に復元できるか、およびコード化されたビットの個数、誤り検出および/または訂正、回転依存性または不変性などの視覚的コードのさまざまな特徴を考察することが重要である。
【0003】
視覚的コードが復号化されなければならないアプリケーションでは、物体に識別子を付けるために使用される視覚的コードの形態に制約条件を課すことが多い。例えば、視覚的コードが付けられる物体は、比較的小さく、そのため、視覚的コードはコンパクトでなければならない。さらに、視覚的コーディングに使用されるパターンは、そのパターンを読み取るために使用される撮像システムから、その解像度制約条件の範囲内で、認知できなければならない。小物体が特定の形状を有する、例えば、視覚的コードが検出される表面上の丸い「フットプリント」を有する場合には、一般的に物体のその丸い形状にマッチする円形の視覚的コードを使用することが望ましいであろう。同様に、小物体が矩形または長円形の場合、物体の形状は、視覚的コードの向きを判別しやすくし、コードで使用されるパターンの復号化を容易にし、物体を識別できるようにする形状であるのが望ましいであろう。
【0004】
市場またはその他の小売店で売られている製品のUPCバーコードに使用される視覚的コードは、通常、コヒーレント光レーザ光源を使用してバーコードをスキャンすることにより読み取られる。このようなレーザ走査システムは比較的高い解像度を持ち、周辺光からの干渉を受けることなくバーコードを走査できる十分に高い強度のレーザ光原を採用している。対照的に、像内の物体の視覚的コードを復号化することはかなり難しく、特に、対話型表示装置の表示面などの比較的大きな面の像の場合には困難である。撮像システムは、まず、表面の像の中の物体を検出し、その後、物体に付けられている視覚的コードのパターンを復号化しなければならない。
【0005】
当業では視覚的コードを使用して物体を識別する対話型表示装置が知られている。例えば、対話型表示装置プラットフォームは、MIT Media Labで開発された(例えば、非特許文献1を参照)。metaDESKは、二次元地理的情報を表示するために使用される水平に近い地理的表面を含む。デスクユニット内の(つまり、グラフィカルサーフェスの下の)コンピュータ視覚システムは、赤外線(IR)ランプ、IRカメラ、ビデオカメラ、ビデオプロジェクタ、および鏡を備える。これらの鏡は、プロジェクタによって投射されたグラフィック画像をグラフィック表示面の下側に反射する。IRカメラは、グラフィック面上に置かれている「ファイコン(phicons)」と呼ばれる物体の下面の材料バッキングを含む「ホットミラー」から反射されたIR光を検出することができる。「グレートドームファイコン(Great Dome phicon)」の底面に適用される可視光線に対し透過的なこの材料からのIR反射をIRカメラが検出したことに対する応答として、MITキャンパスの地図が、グレートドームファイコンが置かれている場所に位置するその地図内のグレートドームの実際の場所とともに、グラフィック面に表示される。本明細書では、IRパターンを使用するということの教示または示唆を与えず、また、視覚フレーム毎にソフトウェアが「シーンから抽出された未識別『ブロブ』のリスト」を出力することを示す以外に、検出され、識別される仕方に関する詳細を教示または説明しない。
【0006】
表示面上の物体を感知する類似のアプローチは、他社と協同でJun Rekimoto of Sony Computer Science Laboratory,Inc.社により発表されているいくつかの論文で開示されている。これらの論文では、「HoloWall」および「HoloTable」について簡単に説明しており、これらは両方とも、IR光を使用して、後面投射された像が見える表示面に近い、または接触している物体を検出する。HoloWall内では垂直、HoloTable内では水平の後面投射パネルは、半不透明で拡散的であり、物体は近づくにつれはっきり見えるようになり、やがてパネルに接触する。識別のため物体上のIR検出可能パターンを使用することを述べたが、ここでもまた、IRパターンについて、または物体を識別するためにIRパターンを検出する方法について詳しくは説明しない。
【非特許文献1】Brygg Ullmer and Hiroshi Ishii in "The metaDESK: Models and Prototypes for Tangible User Interfaces," Proceedings of UIST 10/1997: 14-17
【非特許文献2】"Connected Components Analysis" by Andrew Hunter, www.dur.ac.uk/andrewl.hunter/Vision/CV02ConnectedComponents.pdf
【発明の開示】
【発明が解決しようとする課題】
【0007】
従来技術では、さまざまな種類の視覚的コードが知られている。しかし、上述の解像度およびその他の制約条件に制限があるため、高解像度のスキャナと連動するように設計されている従来技術の視覚的コードの多くは、像内の比較的小さな物体に付けられている視覚的コードを読み取るために表示面全体の像内の反射されたIR光を使用しなければならない視覚システムとともに使用するのには適さないことが多い。したがって、識別すべき物体の形状およびサイズに適している、比較的限られた解像度を持つ視覚検知システムにより識別できる視覚的コードを採用することが望ましいであろう。コード化されたパターンを持つ物体が表面上を動き回っている間にリアルタイムで復号化できるためには、十分簡単に復号化できる適当なコード化されたパターンが必要である。パターンは、表面の像内で比較的高いコントラストのIRを与え、拡散面を通じてパターンを復号化できることが望ましいが、それは、多くの従来技術のコード化されたパターンは、必要な解像度が大きすぎてそのような表面上では使用できないからである。好適なコード化パターンのさらに望ましい特性は、それが固有の配向性を持ち、そのため、表面上のコード化されたパターンを見つけるために必要な探索空間が絞り込まれることである。同様の理由から、コード化されたパターンは、検出および復号化を容易に行えるように、単一の接続されたコンポーネントとして認識可能であることが好ましいであろう。従来技術では、上述のように、拡散表示面および視覚検知システムに比較的特有のこれらの問題の多くを解決していない。
【課題を解決するための手段】
【0008】
本発明の利点の1つは、物体の形状およびサイズ、識別子を撮像するために使用される視覚検知システムの解像度により課される制限、および物体が使用されるソフトウェアアプリケーションの要件に基づき、対話型表示テーブルとともに使用される物体に対し適切な識別子を使用できるという点である。したがって、本発明の一態様は、二次元識別子が対話型テーブルの表面検知システムの隣に配置された場合に値を決定することができるように値をコード化するために物体に付けられる二次元識別子を対象とする。二次元識別子は、表面検知システムが応答する検出可能な材料の連続領域を持つ手掛かり(cue)コンポーネントを含む。手掛かりコンポーネントは、表面検知システムにより検出された場合に楕円で近似され、この楕円は表面検知システムの座標系に関して二次元識別子の配向(orientation)を示す軸を持つ。識別子のコード部分は、手掛かりコンポーネントに関する定義済みの場所内に配置される。コード部分では、表面検知システムにより検出可能な少なくとも1つのバイナリ要素で値をコード化する。さらに含まれているのは、手掛かりコンポーネントおよびコード部分を囲む境界領域である。境界領域は、表面検知システムにより二次元識別子の一部として検知されず、手掛かりコンポーネントおよびコード部分を囲む干渉マスクとして機能し、ノイズを最小限に抑える検出不可能な材料を含む。検出可能な材料は、表面検知システムが応答する赤外線を反射する反射材料を含む。
【0009】
この識別子では、いくつかの異なる種類のコード化が使用される。ある種類のコード化では、値をコード化するために放射状コード(radial code)が使用され、この種のコード化では、手掛かりコンポーネントは検出可能材料の連続放射状領域を含む。放射状領域は、放射状領域の中心から第1の定義済み半径のところに配置された検出不可能な材料の部分領域を含む。この部分領域は、コード部分が読み取られる開始位置を示す開始ビットを表す。また、コード部分は、放射状領域の中心から第2の定義済み半径のところに配置された領域内に構成され、第2の定義済み半径は、第1の定義済み半径よりも大きく、コード部分は、一般的に、手掛かりコンポーネントの周りに伸びる。
【0010】
他のコード化スキームでは、値をコード化するため可変長線形コードを採用する。このスキームでは、手掛かりコンポーネントは、実質的に長さが等しく、開始ビットとして使用される検出可能な材料の定義済み領域により第1の端部に接続されている検出可能な材料でできている平行な複数のストリップを含む。平行なストリップは、第1の端部の反対側にある第2の端部で検出不可能な材料により分離され、第2の端部の検出不可能な材料は終了ビットとして使用される。コード部分は、検出可能な領域と検出不可能な領域からなるパターンを含む。それぞれの検出可能な領域およびそれぞれの検出不可能な領域は、定義済み寸法を持ち、平行なストリップ同士の間および開始ビットと終了ビットとの間に配置される。
【0011】
他のコード化スキームでは、値をコード化するため可変ビット長コードが使用される。この場合、手掛かりコンポーネントは、定義済み寸法および可変長寸法を含む。定義済み寸法は、常に、可変長寸法よりも小さく、可変長寸法は、基準配向および符合部分の範囲を示す。コード部分は、手掛かりコンポーネントから定義済みオフセットのところにある第1のバイナリ要素から始まり、追加バイナリ要素は、手掛かりコンポーネントの基準配向に一般的に平行な方向で可変長寸法により示されるコード部分の範囲で終わる1行分のバイナリ要素を形成する、または可変長寸法に一般的に垂直な方向で1行が表面検知システムにより検出可能な少なくとも1つのバイナリ要素を含まない場合に終わるバイナリ要素のマトリクスを形成する、または直前のバイナリ要素に関する定義済み方向および定義済み距離で互いに関して定義済み位置にある一連のバイナリ要素を形成する3つの方法のうちの少なくとも1つで第1のバイナリ要素から伸びてゆく。
【0012】
他の種類のコード化では、値は多層可変ビット長コードを使用してコード化されるため、手掛かりコンポーネントは、2値化しきい値で検出可能であり、少なくとも1つの可変長寸法を持つ定義済み形状を有する。少なくとも1つの可変長寸法は、基準配向およびコード部分の範囲を示す。コード部分は、グレースケールのしきい値で検出可能な少なくとも1つのバイナリ要素を含むが、2値化しきい値では検出可能ではない。グレースケールのしきい値で検出可能な少なくとも1つのバイナリ要素は、手掛かりコンポーネント内に配置され、手掛かりコンポーネントは、2値化しきい値で一様であるが、グレースケールのしきい値では少なくとも1つのバイナリ要素を明らかにする。また、コード部分は、ローカルの原点から定義済みオフセットのところに配置され、手掛かりコンポーネントに関して定義済み位置に配置されている第1のバイナリ要素から開始することができ、追加バイナリ要素は、表面検知システムにより使用される1つの軸に一般的に平行な方向および直前のバイナリ要素に関する定義済み方向および定義済み距離のうちの少なくとも1つで第1のバイナリ要素から伸びてゆき、コード部分が定義済み形状を含むように互いに関する定義済み位置に一連のバイナリ要素を形成する。
【0013】
本発明の他の態様は、物体が表面検知システムの表面の近くに置かれた場合に物体に付けられる二次元識別子から値を決定する方法を対象とする。この方法は、一般的に上述のように識別子を検出する。
【0014】
本発明のさらに他の態様は、物体を近くに置くことができる対話型の側と対側を持つ対話型表示面を含む物体に付けられる二次元識別子から値を決定するためのシステムを対象とする。システム内の光源は、IR光を対話型表示面の対側に向けて、対話型表示面を通して、対話型の側に当てる。光センサは、対話型表示面を通じてパターン形成された物体から反射されて戻ってくるIR光を受け取って感知し、物体に付けられている二次元識別子を含む像を形成するように配置される。光センサと通信しているプロセッサは、メモリ内に格納されているマシン命令を実行し、この命令により、プロセッサは、対話型表示面上またはその近くに置かれている物体に付けられている識別子によりコード化された値を決定するために使用される方法の複数のステップと一般的に一致する複数の機能を実行する。
【0015】
本発明の前述の態様およびその結果の利点の多くは、添付の図面に関して、以下の詳細な説明を参照することにより容易に理解できるため明白であろう。
【発明を実施するための最良の形態】
【0016】
本発明を実装するコンピューティングシステム例
図1を参照すると、本発明のさまざまな部分を実装するのに好適なシステム例が示されている。システムは、処理ユニット21、システムメモリ22、およびシステムバス23を備える従来のPC20の形態の汎用コンピューティングデバイスを含む。システムバスは、システムメモリを含むさまざまなシステムコンポーネントを処理ユニット21に結合し、またメモリバスまたはメモリコントローラ、周辺機器バス、およびさまざまなバスアーキテクチャを使用するローカルバスを含む数種類のバス構造のいずれでもよい。システムメモリは、読み取り専用メモリ(ROM)24およびランダムアクセスメモリ(RAM)25を含む。起動時などにPC20内の要素間の情報伝送を助ける基本ルーチンを含む基本入出力システム26(BIOS)は通常、ROM24に格納される。PC20は、さらに、ハードディスク(図に示されていない)への読み書きを行うためのハードディスクドライブ27、取り外し可能磁気ディスク29への読み書きを行うための磁気ディスクドライブ28、およびコンパクトディスク読み取り専用メモリ(CD−ROM)またはその他の光媒体などの取り外し可能光ディスク31への読み書きを行うための光ディスクドライブ30を備える。ハードディスクドライブ27、磁気ディスクドライブ28、および光ディスクドライブ30は、ハードディスクドライブインターフェイス32、磁気ディスクドライブインターフェイス33、および光ディスクドライブインターフェイス34によりそれぞれシステムバス23に接続される。ドライブおよび関連コンピュータ可読媒体は、PC20用のコンピュータ可読マシン命令、データ構造体、プログラムモジュール、およびその他のデータを格納する不揮発性記憶装置を実現する。本明細書で説明されている環境例ではハードディスク、取り外し可能磁気ディスク29、および取り外し可能光ディスク31を採用しているが、当業者であれば、磁気カセット、フラッシュメモリカード、デジタルビデオディスク(DVD)、ベルヌーイカートリッジ、RAM、ROMなどのコンピュータからアクセス可能なデータおよびマシン命令を格納できる他のタイプのコンピュータ可読媒体もこの動作環境例で使用できることを理解するであろう。
【0017】
オペレーティングシステム35、1つまたは複数のアプリケーションプログラム36、その他のプログラムモジュール37、およびプログラムデータ38を含む、多くのプログラムモジュールは、ハードディスク、磁気ディスク29、光ディスク31、ROM24、またはRAM25に格納されることができる。ユーザはキーボード40およびポインティングデバイス42などの入力デバイスを通じてPC20にコマンドおよび情報を入力し、制御入力を送ることができる。ポインティングデバイス42は、マウス、ペン、ワイヤレスリモコン、またはその他のポインタを含むことができるが、本発明に関して、ユーザ側で入力および制御に対話型表示装置を採用することができるため、そのような従来のポインティングデバイスを省くことができる。これ以降使用されるように、「マウス」という用語は、画面上のカーソルの位置を制御するために使用される実質的にいかなるポインティングデバイスをも包含することを意図している。他の入力デバイス(図に示されていない)としては、マイク、ジョイスティック、触覚ジョイスティック、ヨーク、フットペダル、ゲームパッド、衛星放送受信アンテナ、スキャナなどがある。これらおよびその他の入力/出力(I/O)デバイスは、システムバス23に結合されているI/Oインターフェイス46を通じて処理ユニット21に接続されることが多い。I/Oインターフェイスという用語は、シリアルポート、パラレルポート、ゲームポート、キーボードポート、および/またはユニバーサルシリアルバス(USB)に特に使用されるそれぞれのインターフェイスを包含することを意図している。システムバス23は、さらに、カメラインターフェイス59にも接続され、後述のように、このインターフェイスは、対話型表示装置60に結合され、対話型表示装置60に搭載されているデジタルビデオカメラから信号を受信する。代わりに、デジタルビデオカメラをUSBバージョン2.0ポートなどの適切なシリアルポートI/Oに結合することもできる。任意選択で、モニタ47をビデオアダプタ48などの適切なインターフェイスを介してシステムバス23に接続することができるが、ただし、本発明の対話型表示テーブルは、かなり情報豊富な表示を行い、ユーザによる対話操作により、情報の入力およびソフトウェアアプリケーションの制御を行うことができ、したがって、ビデオアダプタに結合されることが好ましい。PCは、スピーカ(サウンドカードまたは他のオーディオインターフェイス−図には示されていない)およびプリンタなどの、他の周辺出力デバイス(図に示されていない)に結合されることが多いことは理解されるであろう。
【0018】
本発明は、単一のマシン上で実施することができるが、PC20は、リモートコンピュータ49などの1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク接続環境で動作することもできる。リモートコンピュータ49は、他のPC、サーバ(一般的にPC20とまったく同様に構成されるのがふつう)、ルータ、ネットワークPC、ピアデバイス、または衛星またはその他の共通ネットワークノードでもよく、通常は、PC20に関して上述の要素の多くまたはすべてを含むが、外部メモリ記憶デバイス50だけが図1に例示されている。図1で説明されている論理接続は、ローカルエリアネットワーク(LAN)51とワイドエリアネットワーク(WAN)52を含む。このようなネットワーキング環境は、オフィス、企業全体にわたるコンピュータネットワーク、イントラネット、およびインターネットでは一般的である。
【0019】
LANネットワーキング環境で使用される場合、PC20は、ネットワークインターフェイスまたはアダプタ53を介してLAN51に接続される。WANネットワーキング環境で使用する場合、PC20は、通常、インターネットなどのWAN52上で通信を確立するために、モデム54、またはケーブルモデム、デジタル加入者回線(DSL)インターフェイス、または総合デジタル通信網(ISDN)インターフェイスなどの他の手段を含む。モデム54は、内蔵でも外付けでもよいが、システムバス23に接続されるか、またはI/Oデバイスインターフェイス46、つまり、シリアルポートを介してバスに接続される。ネットワーク接続環境では、PC20により使用されるプログラムモジュールはまたはその一部分は、リモートメモリ記憶デバイスに格納することができる。図に示されているネットワーク接続は実施例であり、無線通信および広帯域ネットワークリンクなどのコンピュータ間の通信リンクを確立するのに他の手段が使用可能であることは理解されるであろう。
【0020】
対話型の表面の実施例
図2には、フレーム62内にPC20を含み、コンピュータの光入力およびビデオ表示デバイスの両方として使用される対話型表示テーブル60の実施例が示されている。対話型表示テーブルのこの切り欠き図では、テキストおよびグラフィック画像を表示するために使用される光線は、一般的に、点線を使用して示され、対話型表示テーブルの表示面64aに載っている、または真上にある物体を感知するために使用される赤外線(IR)光は、破線を使用して示されている。表示面64aは、対話型表示テーブルの上面64内にセットされる。テーブル面の周辺は、表示面64a上に表示されているグラフィック画像または仮想環境を対話形式で操作するために使用することができる物体を含む、ユーザの腕またはその他の物体を支えるために使用される。
【0021】
IR光源66は、複数のIR発光ダイオード(LED)を備えるのが好ましく、フレーム62の内側に取り付けられる。IR光源66により出力されるIR光は、破線78a、78b、および78cにより示されるように、上向きに、表示面64aの下側に当てられる。IR光源66から出たIR光は、光拡散特性を有するベラムまたは他の好適な半透明材料のシートを含む、テーブルの半透明層64bを通過した後、表示面の上または近いところにある物体から反射される。図にはIR光源66が1つしか示されていないが、そのような複数のIR光源は、フレーム62の内側の周りの間隔を空けた位置に取り付けて、表示面64aを均等に照らすようにできることは理解されるであろう。IR光源により出力される赤外線は、
・破線78aにより示されているように、物体を照らさずに、テーブル面を抜けるか、
・破線78bにより示されているように、テーブル面上の物体を照らすか、
・破線78cにより示されているように、テーブル面から上に短い距離のところにあり
、テーブル面と接触していない物体を照らすことができる。
【0022】
表示面64aの上にある物体は、表示面の上に載る「タッチ」物体76aおよび表示面に近いが実際には接触していない「ホバー」物体76bを含む。半透明層64bを表示面の下に使用し、表示面を通過するIR光を拡散させた結果、物体が表示面64aに近づくにつれ、物体により反射されるIR光の量は、物体が実際に表示面と接触した場合に得られる最大レベルまで増大する。
【0023】
デジタルビデオカメラ68は、表示面64aの下のフレーム62に取り付けられ、表示面64aの上の方に配置されたタッチ物体またはホバー物体から反射されるIR光を受信するのに適切な位置にある。デジタルビデオカメラ68は、IR光のみを透過し、点線84aに沿って表示面64a内を伝わる周辺可視光線をブロッキングするIRパスフィルタ86aを装備している。IR光源66とデジタルビデオカメラとの間に邪魔板79を配置し、IR光源から直接放射されたIR光がデジタルビデオカメラに入らないようにしたが、なぜかというと、このデジタルビデオカメラは、表示面64aから上に短い距離のところにある、または表示面64aに接触する物体から反射されたIR光にのみ反応(応答)し、表示面に載っている、またはその上の方にある物体から反射されたIR光の像に対応する出力信号を発生しなければならないからである。デジタルビデオカメラ68は、さらに、上から表示面64aを通り、対話型表示装置の内側に入る周辺光(例えば、点線84aにより示されている経路に沿っても伝わる周囲IR光)に含まれるIR光にも反応することは理解されるであろう。
【0024】
テーブル面にある、またはその上の方にある物体から反射されたIR光は、
・反射して戻り、破線80aおよび80bにより示されているように、半透明層64bを通り、IRパスフィルタ86aを通り、デジタルビデオカメラ68のレンズ内に入るか、または
・破線80cに示されているように、デジタルビデオカメラ68のレンズに入ることなく、対話型表示装置内の他の内面により反射または吸収される可能性がある。
【0025】
半透明層64bは、入射IR光と反射IR光の両方を拡散する。したがって、上で説明したように、表示面64aに近い「ホバー」物体ほど、表示面から遠い同じ反射率の物体と比べてより多くのIR光を反射して、デジタルビデオカメラ68に返す。デジタルビデオカメラ68は、撮像フィールド内の「タッチ」および「ホバー」物体から反射されたIR光を検知し、それぞれのそのような物体の位置、および任意選択により、物体のサイズ、配向、および形状を決定する処理のため、PC20に入力された反射IR光の像に対応するデジタル信号を出力する。物体の一部(ユーザの指など)が表示面に接触している間に、物体の他の部分(ユーザの前腕など)がテーブルの上にあってよいことに留意されたい。さらに、物体は、その物体またはその物体が一員である関連する物体のクラスに特有のその物体に固有の底面についているIR光反射パターンまたはコード化された識別子(例えば、バーコード)を含むことができる。したがって、デジタルビデオカメラ68からの撮像信号は、さらに、本発明により、反射パターンから反射されたIR光に基づいて、それぞれのそのような固有の物体を検出するだけでなく、その配向を決定するのにも使用することができる。この機能を実行するために実装される論理的ステップについて以下で説明する。
【0026】
PC20は、図2に示されているように対話型表示テーブル60と一体であるか、またはその代わりに、図3の実施形態に示されているように、対話型表示テーブルに対し外付けとすることもできる。図3では、対話型表示テーブル60’は、データケーブル63を通じて外部のPC20(上述のように、オプションのモニタ47を含む)に接続されている。さらに、この図に示されているように、1組の直交軸XおよびYが、表示面64aに関連付けられており、また「0」で示される原点も関連付けられている。個別には示されていないが、それぞれの直交軸に沿う複数の座標位置を使用して、表示面64a上の位置を指定できることは理解されるであろう。
【0027】
対話型表示テーブルが外部のPC20に接続されるか(図3のように)、またはセットトップボックス、テレビゲーム機、ラップトップコンピュータ、またはメディアコンピュータ(図に示されていない)などの他の種類の外部コンピューティングデバイスに接続されている場合、対話型表示テーブルは入力/出力デバイスを備える。対話型表示テーブルに送られる電力は、従来の交流(AC)電源(図に示されていない)に結合されている電源リード61を通じて供給される。対話型表示テーブル60’に接続されるデータケーブル63は、PC20上のUSB2.0ポート、Institute of Electrical and Electronics Engineers(IEEE)1394(またはファイヤワイヤ)ポート、またはEthernet(登録商標)ポートに結合することができる。また、無線接続の速度が向上し続けると、対話型表示テーブルも、そのような高速無線接続、または他の何らかの適切な有線または無線データ通信リンクを介して、PC20などのコンピューティングデバイスに接続されることもありうると考えられる。対話型表示装置の一体部分として内蔵されるか、または外付けされるかに関係なく、PC20は、デジタルビデオカメラ68からのデジタル画像を処理するアルゴリズムを実行し、よい所をひき立てて対話型表示テーブル60のより直観的なユーザインターフェイス機能を使用するように設計されたソフトウェアアプリケーションを実行し、さらに、そのような機能を利用するように特に設計されていないが、それでも、対話型表示テーブルの入力および出力機能を適切に使用できる他のソフトウェアアプリケーションをも実行する。
【0028】
対話型表示テーブル(つまり、上述のいずれかの実施形態)の重要で強力な特徴は、ゲームまたはその他のソフトウェアアプリケーションのためのグラフィック画像または仮想環境を表示し、グラフィック画像または仮想環境の間の対話操作を表示面64a上に表示できるようにし、物体76aなどの表示面の上に載っている物体、または物体76bなどの、その真上でホバリングしている物体を識別する機能である。
【0029】
ここでもまた、図2を参照すると、対話型表示テーブル60は、グラフィック画像、仮想環境、またはテキスト情報を表示面64a上に表示するために使用されるビデオプロジェクタ70を備えている。ビデオプロジェクタは、解像度が少なくとも640×480ピクセルの液晶表示装置(LCD)またはデジタルライトプロセッサ(DLP)タイプであるのが好ましい。IRカットフィルタ86bは、ビデオプロジェクタ70のプロジェクタレンズの前面に取り付けられ、これにより、ビデオプロジェクタにより放射されたIR光が対話型表示テーブルの内部に入ってIR光が表示面64aに載っている、またはその上にある物体から反射されたIR光と干渉するのを防止する。第1の鏡組立部品72aは、投射光が第2の鏡組立品72b上に入射するように、点線82aに沿ってプロジェクタレンズから伝わる投射光をフレーム62内の透明開口部90aに通す。第2の鏡組立品72bは、投射像が見えるように、また表示のため表示面64a上に焦点が合うように、プロジェクタレンズの焦点のところにある半透明層64b上に投射光を反射する。
【0030】
表示面に投射された像が表示面と必ず揃うように第1および第2の鏡組立品の角度を調整するため、位置合わせデバイス74aおよび74bが用意され、ネジ棒および回転可能調整ナット74cを含む。投射像を所望の方向に向ける他に、これら2つの鏡組立品を使用することで、プロジェクタ70と半透明層64bとの間の経路を長くできるため、焦点距離の長い(したがって低コストの)プロジェクタレンズをプロジェクタとともに使用することができる。
【0031】
物体のコード認識
図4には、コード化された物体の二次元識別子コードを認識するための論理全体を例示する流れ図が示されている。ステップ100で、ゲームなどのアプリケーションプログラムでは、そのアプリケーション側でテーブル上にある物体に付いていることを検知することを期待する種類のコードを指定する。本発明で使用可能なコードの種類には、円形、リニア、マトリクス、可変ビット長マトリクス、多層マトリクス、白黒(バイナリ)、およびグレースケールがある。コードの種類を指定する方法としては、コードパターンの特性のロード、しきい値の設定、および/またはパターン認識に対するテンプレートの有効化が考えられる。テンプレートの有効化は、さらに、物体認識を容易にするテンプレートのいくつかの回転バージョンを生成することをも含むことができる。
【0032】
図4の残りの論理回路は、現在実行中のソフトウェアアプリケーションと通信する画像処理モジュールにより実行されるのが好ましい。このようにして、ソフトウェアアプリケーションは、標準的な方法により画像処理モジュールとインターフェイスすることができる。以下で詳しく説明するが、画像処理モジュールは、形状、ピクセル強度、コードタイプ、および対応するコード値を通じて物体を検出することに関係するさまざまな機能を実行する。例としては、物体がテーブル上に、任意の向きで出現できる場合にコード化された物体を見つけることを試みるテンプレート照合またはしきい値設定がある。
【0033】
ステップ102で、画像処理モジュールは、表示面上またはその付近にある1つまたは複数の物体から、テーブルの表示面から届いた反射されたIR光に対する応答としてIRビデオカメラにより出力される現在の入力像の2値画像内の接続コンポーネントを検出する。IR視覚システムのこの実施例では、接続コンポーネントは2値画像内の1組の隣接する「オン」ピクセルを含む。これらのピクセルは、IRビデオカメラに向かって反射IR光が戻るIR反射材料を含む二次元識別子コードの一部分を含む。接続コンポーネントは、対話型テーブル上に置かれている物体に付けられている識別子コード全体、またはその識別子付号のコード部分から分離されているサブコンポーネントに対応することができる。後述のいくつかの場合には、別々のサブコンポーネントが、識別子コードの位置および配向を決定するのを補助する手掛かりコンポーネントとして機能する。他の場合には、識別子コード全体がそれ専用の手掛かりコンポーネントとして使用され、それにより、識別子コードの位置および配向を特定する。2値画像は、正規化された入力画像のどのピクセルが所定の2値化しきい値を超えるかを判別することにより形成される。接続コンポーネント検出は、B.K.P.Horn(「ロボット視覚」を参照)により説明されているアルゴリズムなどの標準アルゴリズムを使用して実行される。
【0034】
ステップ104では、画像処理モジュールは、接続コンポーネントを楕円として表し、楕円の長軸および短軸の中心および長さを計算する。その後、画像処理モジュールは、接続コンポーネントのピクセルに対する平均値および共分散値を求め、楕円軸に沿ってのピクセルの統計的平均および共分散に基づき、対話型表示テーブルの座標に関して接続コンポーネントの位置および配向を決定する。この手法の詳細については、例えば、非特許文献2を参照のこと。
【0035】
接続コンポーネントの位置および配向を決定した後、画像処理モジュールは1つまたは複数の任意選択の決定ステップを実行することによりコードのタイプおよび値を容易に決定できる。一実施形態では、任意選択の決定ステップ106、110、114、118、および120は、使用されず、プロセスは順次、ステップ104からコード決定ステップ108、112、116、122、124を通り、ステップ126へと流れ、そこでコード決定の結果の順位付けを行い、統計解析に基づいて最も近いコードタイプを選択する。第2の実施形態では、これらの任意選択の決定ステップは、実行されるべきコード決定ステップを選択するために使用される。例えば、任意選択の決定ステップ106は、コード決定ステップ108が実行されるべきかどうかを示す。したがって、この実施形態は、コード検出に必要な計算量を減らすフィルタとして機能する。
【0036】
コードタイプがうっかり捨てられないようにするため、上記の手法の組み合わせを使用することができる。組み合わせられた手法では、複数の任意選択の決定ステップを使用して、「信頼度」係数を決定されるそれぞれのコードタイプに割り当てることができる。例えば、画像処理システムでは、決定ステップ106での決定に従い、指定された半径内に収まる接続コンポーネントの統計解析に基づいて信頼度係数を割り当てることができる。同様に、画像処理モジュールでは、同じ接続コンポーネントが決定ステップ110での決定に従い指定された正方形領域内に収まる場合に他の信頼度係数を割り当てることができる。他の信頼度係数は、さらに、接続コンポーネントの短軸と指定された長さとが等しいかどうか(決定ステップ114の場合)、接続コンポーネントと指定された形状との一致(決定ステップ118の場合)、または接続コンポーネントへのビットの近さ(決定ステップ120の場合)について決定することもできる。一般に、信頼度係数は、コードタイプ毎に決定することができ、現在の検出されたコンポーネントに最も当てはまるコードタイプを決定する際にこの信頼度係数を使用できる。例えば、信頼度係数は、ピクセルがどれだけよく「読み取られるか」、つまり、白黒強度レベルにどれだけくっきりと分けられるか、およびさらにピクセル値が有効なコードのコードブックからの有効なビットコードのうちの1つとしてどれだけよく「読み取られるか」ということからも決定することができる。また、信頼度レベルは、最大および最小ピクセル強度レベルが少なくともある程度の所定の値だけ異なるかどうかにより決定することができるが、それは、それらの強度の差の値が小さすぎると、ピクセルはノイズとなる可能性があるからである。
【0037】
例として、図4では、接続コンポーネントが少なくとも最小基準条件を満たすそれぞれのコードタイプに対するコード値を決定しながら、それぞれのコードタイプに対する最小基準条件を満たさないコードタイプを除去するために使用される第1と第2の実施形態の組み合わせを示している。これらの任意選択の決定ステップは、一致する可能性のあるコードタイプについて接続コンポーネントを最初にふるいにかけるため単独で、または組み合わせて実行することができる。接続コンポーネントが一致する可能性のあるコードタイプについて、画像処理モジュールでは、それぞれの一致する可能性のあるコードタイプから接続コンポーネントの分散を決定するのが好ましい。その後、画像処理モジュールは、最良適合により決定を順位付けして、最も一致度の高いコードタイプおよび対応するコード値を、物体に付けられたコードとして選択する。
【0038】
上で示されているように、任意選択の決定ステップ106で、画像処理モジュールは、特定の半径または放射状マスク内に収まるかどうかについて接続コンポーネントをテストする。接続コンポーネント軸の長さおよび/またはピクセル値の総和が定義済み範囲内にある(つまり、接続コンポーネントが放射状マスクの範囲内に収まる)場合、画像処理モジュールはステップ108に進み、放射状コードを決定する。放射状コードの決定の詳細は、図5および6に関して以下で説明される。放射状コードを決定した後、または接続コンポーネントが定義済み半径または放射状マスクの範囲内に収まらない場合、処理は任意選択の決定ステップ110に進む。
【0039】
任意選択の決定ステップ110では、画像処理モジュールは、ダイの寸法に対応する指定正方形領域内に収まるかどうかについて接続コンポーネントをテストする。接続コンポーネントが回転された白色の正方形テンプレートと一致するか、または主軸および副軸が等しい長さであり、定義済みダイ寸法に対応する(つまり、接続コンポーネントがダイ寸法の範囲内に収まる)場合、画像処理モジュールはステップ112に進み、ダイのスポットパターンを決定する。ダイのスポットパターンの決定の詳細は、図7および8に関して以下で説明される。ダイのスポットパターンを決定した後、または接続コンポーネントが知られているダイの寸法に対応する指定された正方形領域の範囲内に収まらない場合、処理は任意選択の決定ステップ114に進む。
【0040】
任意選択の決定ステップ114では、画像処理モジュールは、リニアコード高さに対応する所定の長さと等しいかどうかについて接続コンポーネントをテストする。接続コンポーネントの短軸の長さが所定の長さに等しい(つまり、接続コンポーネントの2番目の軸がリニアコード高さに等しい)場合、画像処理モジュールはステップ116に進み、そのリニアコードを決定する。リニアコードの決定の詳細は、図9および10に関して以下で説明される。リニアコードを決定した後、または接続コンポーネントの副軸が所定の長さに等しくない場合、処理は任意選択の決定ステップ118に進む。
【0041】
任意選択の決定ステップ118では、画像処理モジュールは、所定の形状または手掛かりコンポーネントと一致するかどうかについて接続コンポーネントをテストする。接続コンポーネントが1つの知られている寸法を持つ直線の形状でない(つまり、接続コンポーネントは手掛かりコンポーネントと一致していない)場合、画像処理モジュールはステップ126に進み、そのような直線の形状である場合、画像処理モジュールは任意選択の決定ステップ120に進む。
【0042】
任意選択の決定ステップ120で、画像処理モジュールは、近隣コードビットについて接続コンポーネントをテストする。接続コンポーネントの所定の距離および配向の範囲内に非連結ビットがある(つまり、接続コンポーネントが近隣コードビットを持つ)場合、画像処理モジュールはステップ122に進み、マトリクスコードを決定する。マトリクスコードの決定の詳細は、図11および12に関して以下で説明される。マトリクスコードを決定した後、または接続コンポーネントの所定の距離および配向の範囲内に非連結ビットがない(つまり、接続コンポーネントが近隣コードビットを持たない)場合、画像処理モジュールはステップ124に進み、グレースケールコードを決定する。グレースケールコードの決定の詳細は、図13、14、および15に関して以下で説明される(ステップ122からステップ124への論理の流れは第1の実施形態の順次的な論理の流れを示す)。
【0043】
ステップ126で、画像処理モジュールは、(複数の)コード決定の結果を順位付けし、その後、統計解析を実行して、接続コンポーネントが適合する可能性が最も高いコードタイプを選択する。接続コンポーネントが、コードとして検出されない場合、画像処理モジュールは、その接続コンポーネントを識別子が付けられていない、ユーザの指または非コード化物体などの他のタイプの物体であると評価することができる。
【0044】
放射状コード認識
図5は、丸い物体、つまり丸い「フットプリント」を持つ物体に識別子を付ける際に特に有用な放射状コード130の実施例を示している。放射状コード130は、暗い「開始ビット」134を持つ光反射内部円形領域132を含む。開始ビット134は、コード化領域の中心から定義済みの第1の半径のところに配置されるのが好ましく、キーストーン、パイスライスの形状、または開始ビットを簡単に特定できるその他の形状を取ることができる。光反射内部円形領域内の開始ビットは、コード値を決定できる開始基準点を定める。開始ビットは、光反射内部円形領域に関して、さらに、コードが付けられる物体の配向を定義する。
【0045】
放射状コード130は、さらに、明るいキーストーン形状と暗いキーストーン形状の「データビット」を伴う外側の均等に分割された同心状円環136を含む。円環136は、第1の半径よりも大きい中心からの第2の半径のところに配置される。破線は、この図の中にのみ含まれ、データビットの配置をより明確に示すことに留意されたい。しかし、実際の放射状コードは、そのような線を含まず、光反射領域全体が単一の接続コンポーネントを含む。この場合、識別子コード全体がそれ独自の手掛かりコンポーネントとして機能する。外側の均等に分割された同心状円環は、コードの値を、明るいキーストーン形状と暗いキーストーン形状のビットの一連の並びとして含む。コード値は、定義済みの時計回り(または代わりに、好ましい反時計回り)の方向で開始ビットを配置することから始めて、読み取られる。
【0046】
暗い背景138は、放射状コードが接続コンポーネントとして簡単に検出できるように、放射状コード130を囲む。暗い背景では、「ノイズ」ピクセルが接続コンポーネントの一部としてみなされるリスクを極力小さくする。
【0047】
図6は、放射状コードを処理するため画像処理モジュールにより実行される論理的ステップを例示する流れ図である。ステップ140で、画像処理モジュールは、円形領域の中心から定義済み半径のところで開始ビットを探索する。探索領域は、データビットの半径以内に配置される。一般に、画像処理モジュールでは、定義済み固定しきい値を使用して、任意のビットの値を決定することができる。しかし、信頼性を高めるために、画像処理モジュールは、しきい値をコードパターンの最小ピクセル値と最大ピクセル値との平均値として計算するのが好ましい。上述のように、最小ピクセル値と最大ピクセル値との差が小さすぎるのは、ノイズを復号化しようとすることが原因である可能性がある。
【0048】
決定ステップ142で、画像処理モジュールは、定義済み半径のところで開始ビットが見つかったかどうかを判定する。開始ビットが見つからない場合、放射状コード決定のプロセスは終了する。しかし、開始ビットが見つかった場合、画像処理モジュールはステップ144に進み、定義済みの時計回り(または反時計回り)の方向に円形領域の中心から定義済み半径のところでデータビットを読み込む。これらのビットは、入力画像からの変形されたテーブル座標に関して知られている半径方向の幅を持つ。
【0049】
任意選択の決定ステップ146で、有効な放射状コードかどうかをテストする。放射状コードの有効性をテストするために、画像処理モジュールは、検出されたビットが可能な有効なコード値からなるテーブル内に存在するコード値を表すことを検証することを試みることができる。その代わりに、画像処理モジュールは、接続コンポーネントを有効な放射状コードのテンプレートと比較することができる。このパターンマッチング手法を、図8に関して詳述する。検出されたコードが有効なコードでない場合、放射状コード決定のプロセスは終了する。検出されたコードが有効な場合、または任意選択の有効性検査が実行されない場合、画像処理モジュールは、ステップ148に進み、テーブルルックアップまたは他のそのような方法を使用してコード内で検出されたビットから物体IDを決定する。
【0050】
ダイマトリクスコード認識
図7は、ダイの面などの正方形の物体を認識する際に使用されるマトリクスコード150の実施例を示している。マトリクスコード150は、1から6個のデータビット154(ダイスポット)が3×3のグリッド158内に6つの所定のパターンで配列されている接続コンポーネントの正方形領域152(白色で示されている)を含む。破線は、データビットを例示するために図に含まれているだけであり、実際のダイマトリクスコードは線を含まないことに留意されたい。
【0051】
ダイのピクセルは、正方形領域内の3×3グリッドから読み取られる。この後、3×3グリッドパターンは、6つの許容可能なダイフェースパターンのそれぞれと比較され、「2」、「3」、または「6」のスポットダイフェースの場合は、さらに、90度回転されたバージョンのダイフェースパターンとも比較される。その代わりに、任意のサイズおよび関連するダイフェースビットパターンのグリッドを読み取ることもできる。表示面に面しているダイフェースが識別された後、反対側のダイフェースは常に定義済みの関係を持つ、つまり、知られているダイフェースに向かい合うダイフェースは7と知られているダイフェースとの差に等しい数のスポットを持つため上を向いているダイフェースが知られる。
【0052】
暗い背景156は、マトリクスコードが接続コンポーネントとして簡単に検出できるように、マトリクスコード150を囲む。暗い背景では、「ノイズ」ピクセルが接続コンポーネントの一部としてみなされるリスクを極力小さくする。
【0053】
図8は、ダイマトリクスコードを決定するため画像処理モジュールにより実行される論理的ステップを例示する流れ図である。ステップ160で、画像処理モジュールは、白色の正方形テンプレートを90度までの所定の角度だけ回転し、テンプレートと接続コンポーネントとの照合を行うことにより正方形の接続コンポーネントの配向を決定する。その後、画像処理モジュールは、ステップ162に進んで、3×3グリッド内から接続コンポーネントの2値化画像のピクセルパターンを読み取る。
【0054】
ステップ164aでは、それぞれの知られているダイフェースパターン(および「2」、「3」、または「6」個のスポットがあるダイフェースの場合には、90度回転させたバージョンのダイフェースパターン)を繰り返し調べるプロセスを開始する。決定ステップ166で、接続コンポーネントから読み取られたピクセルパターンと知られているダイフェースパターンとを比較する。ピクセルパターンが知られているダイフェースパターンと一致した場合、画像処理モジュールはステップ168に進み、ダイの上面の値を決定する。上述のように、ダイ上の対面の合計は7に等しく、上面の値は7引く検出パターン内のスポット数に等しい。上面の値を決定した後、画像処理モジュールは終了する。ただし、知られているダイフェースパターンが接続コンポーネントのピクセルパターンと一致しない場合、反復プロセスはステップ164bで終了する。
【0055】
リニアコード認識
図9は、物体の認識で使用されるリニアコード170の実施例を示す。リニアコード172は、2つの明るい平行なバー174aと174b、明るい開始ビット176、暗い停止ビット178、および複数の明るいまたは暗いコードビット180を含む。「明るい」および「暗い」という用語は、物体または物体自体の材料上のコード化パターンを作成するために適用される材料のIR反射率を意味することは明白であろう。明るいビットは、IR光の良好な反射器である識別子の一部に対応し、暗いビットまたは領域は、識別子の一部またはIR光を吸収する、またはあまりよく反射しない物体の囲む部分に対応する。これらの用語は、表示面の像は電子的に容易に反転できるため、いくぶん恣意的である。
【0056】
暗い背景182は、リニアコードが接続コンポーネントとして簡単に検出できるように、リニアコードを囲む。暗い背景では、「ノイズ」ピクセルが接続コンポーネントの一部としてみなされるリスクを極力小さくする。ここでもまた、データビットを線引きする線は、データビットを例示するだけのために図に含まれていることに留意されたい。実際のリニアコードは、通常、識別可能な線を含まない。
【0057】
リニアコードは、接続コンポーネントであり、主軸または長軸に関して対称的である。接続コンポーネントプロセスから計算されるような配向は、コードを表示する物体の真の向きから180度ずれることがある。開始ビットおよび停止ビットの位置を調べることにより、復号化アルゴリズムにより、配向の訂正を行うことができる。リニアコード内のビットの個数は可変である。ビットのサイズ(例えば、幅)が与えられると、リニアコード内のビットの個数は、明るい平行なバーの長さから直接決定することができる。リニアコードの実施例172aから172hは、3ビットコードの8つすべてのインスタンスを示している。
【0058】
図10は、リニアコードを決定するため画像処理モジュールにより実行される論理的ステップの論理的ステップを例示する流れ図である。ステップ190で、画像処理モジュールは、主軸(長軸)の角から開始し、接続コンポーネントの主軸に垂直なそれぞれの線の中のピクセル値を総和することにより、接続コンポーネントの終了辺を特定する。リニアコンポーネント終端は、総和が0か、または所定の低いしきい値以下である場合に確認される。開始ビットの終了では、終了ビットの終了よりも大きな総和を持つことになる。決定ステップ192で、画像処理モジュールは、開始ビットの存在についてテストする。開始ビットが見つからない場合、リニアコードを決定するプロセスは終了し、見つかれば、プロセスはステップ194に続き、ステップ190で見つかった接続コンポーネントの終わりからコードの長さを決定する。
【0059】
任意選択の決定ステップ196で、画像処理モジュールは、有効なコード長についてテストする。物体が検出されるソフトウェアアプリケーションに基づき、コードの長さが予期した通りでない場合、リニアコードを決定するプロセスは終了する。ソフトウェアアプリケーションにより、コードの長さが予期した通りの場合、または有効なコード長についてテストする任意選択の決定が実行されない場合、プロセスはステップ198に進み、コード内のビットの個数を決定する。コード内のビットの個数は、以下の式で計算される。
【0060】
コードビット=(接続コンポーネント長/ビット幅)−2
プロセスはステップ200に進み、長軸または主軸に沿ってそれぞれのコードビットの値を決定する。コードビット値は、
・コードビットの中心にあるピクセルの値に基づくか、または
・コードビットの領域内のすべての値の総和の平均値と所定のしきい値とを比較し、平均値が所定のしきい値よりも大きい場合には、コードビット値は「1」であるとすることにより、または
・パターンマッチングによるか、または
・他の何らかの司法使用することにより決定することが可能である。
【0061】
プロセスはステップ202に進み、テーブルルックアップまたは他のそのような方法を介してコードビットの値から物体IDを決定する。
【0062】
可変ビット長マトリクスコード認識
図11は、物体の認識で使用される可変ビット長マトリクスコード210の実施例を示す。可変ビット長マトリクスコード212は、明るい矩形の接続「手掛かり」コンポーネント214を含む。手掛かりコンポーネントの副軸または短軸は固定長であるが、主軸または長軸は、任意の長さ(短軸よりも長い)でよい。可変ビット長マトリクスコードの配向の推定は、リニアコードとほとんど同じようにして導かれる。手掛かりコンポーネントの配向は、最大180度の回転まで正しく、これは、さらに、ビットフィールドが配置されている手掛かりコンポーネントの辺を決定することにより訂正することができる。手掛かりコンポーネントの形状により、対応する楕円形モデルの配向信頼性を高めることが好ましい。
【0063】
可変ビット長マトリクスコードは、さらに、マトリクスフィールド216も含み、これは、手掛かりコンポーネントの一辺または両辺上の手掛かりコンポーネントの主軸から一定距離のところに配置される。データビットを線引きする線は、データビットを例示するだけのために図に含まれているのであり、実際のダイマトリクスコードは見える線を含まないことに留意されたい。マトリクスフィールドの幅は、手掛かりコンポーネントの主軸の長さに等しい。マトリクスフィールドは、1つまたは複数のデータビット行を含む。マトリクスフィールドの各行は、少なくとも1つの明るい、または白色ビットを含み、このため、復号化アルゴリズムでは、1行内に白色ビットが見つからなくなるまで、手掛かりコンポーネントから外に向かって連続する行を読み取ることによりビットの行数を決定することができる。その代わりに、マトリクスフィールド内の行の数は、マトリクスフィールドの第1の行の中にコード化することができる。手がかりコンポーネントの可変長の主軸とともに、可変個数の行を使用することにより、コードはさまざまな物体サイズに合わせて適切な形状を取るようにできる。マトリクスフィールドは、1つまたは複数のチェックサムビットを含むことができるので、画像分析によりビットシーケンスが復号化された後、復号化の誤りを検出することができる。チェックサムビットは、さらに、復号化プロセスが手掛かりコンポーネントの正しい辺からビットシーケンスを読み取ったかどうかについて、その問題を判別する他の手順がない場合に、それを決定するために使用することができる。そのようなアルゴリズムは、単に、手掛かりコンポーネントの両辺から復号化を試みて、有効なシーケンスを正しいビットパターンとして使用するだけである。その代わりに、手掛かりコンポーネントの形状は、コードが配置されているマトリクスの辺を示すことができる。
【0064】
可変ビット長マトリクスコードは、暗い背景218により囲まれる。暗い背景により、手掛かりコンポーネントを接続コンポーネントとして容易に検出することができ、「ノイズ」ピクセルを手掛かりコンポーネントおよびマトリクスフィールドの一部とみなす危険性を最小限に抑えられる。
【0065】
図12は、可変ビット長マトリクスコードを決定するため画像処理モジュールにより実行される論理的ステップを例示する流れ図である。ステップ230で、画像処理モジュールは、手掛かりコンポーネントの長さを決定する。画像処理モジュールは、手掛かりコンポーネントを楕円として表し、楕円の長軸および短軸の中心および長さを計算する。次に、画像処理モジュールは、楕円形の軸の統計学的平均および共分散から、テーブル座標に関する手掛かりコンポーネントの位置および配向を決定する。
【0066】
処理はステップ232に進み、マトリクスフィールドの1行当たりのビット数を決定する。コードビットの幅は固定であり、知られているため、1行当たりのビット数はコードビットの知られている幅で除算された手掛かりコンポーネントの長さに等しい。
【0067】
好ましい任意選択のステップ234では、画像処理モジュールは、2値化画像の代わりに正規化された画像にアクセスして、さらに処理を容易にする。正規化された画像を2値化すると、ノイズピクセルが入り込むことが多いが、正規化された画像からビットを読み取ると、比較的信頼性の高いピクセル値が得られ、より小さなビットパターンを読み取ることができる。
【0068】
ブロック236a内のプロセスは、手掛かりコンポーネントの一辺上の可変ビット長マトリクスコードの値を確認する。ステップ238aでは、手掛かりコンポーネントの一辺のマトリクスフィールドの各行を繰り返しアドレス指定するプロセスを開始する。マトリクスフィールドの各行は手掛かりコンポーネントから連続する所定のオフセット距離のところに配置されているため、コードビットの読み取りの反復は、離散ステップで実行される。ステップ240aで、プロセスはマトリクスフィールドの1行内のデータビットを読み取る。データビットの読み取りは、定義済みの固定しきい値または相対的しきい値を使用して実行されるのが好ましく、その場合、相対的しきい値は、最大ピクセル強度と最小ピクセル強度との差の関数として決定される。パターンマッチングは可能であるが、可変長の行と可変個の行を検出する自由度は制限される。
【0069】
決定ステップ242aで、コードの終わりを示す、コードビットの不足がないかをテストする。その行にコードビットが含まれていない場合、反復プロセスは終了し、含まれている場合、プロセスはステップ244aに進み、行コードを格納しておいて後で処理する。反復プロセスはステップ246aに進む。
【0070】
続いて、ブロック236b内の任意選択のプロセスは、手掛かりコンポーネントの対辺上の可変ビット長マトリクスコードの値を確認する。このステップは、アプリケーションプログラム側で可変ビット長マトリクスフィールドが手掛かりコンポーネントの両辺に含まれるべきと予期している場合、またはアプリケーションプログラムが手掛かりコンポーネントの両辺から読み取りを試み、アルゴリズムを使用し、チェックサムまたはその他の妥当性確認プロセスを使ってコードの妥当性を確認する場合に実行されるが、それは、マトリクスコードの配向が±180度で決定されるからである。
【0071】
任意選択のステップ238bでは、手掛かりコンポーネントの対辺のマトリクスフィールドの各行を繰り返しアドレス指定するプロセスを開始する。これ以降、任意選択のステップ240b、242b、244b、および246bは、ステップ240a、242a、244a、および246aと同じ機能をそれぞれ実行するが、ただし、手掛かりコンポーネントの対辺上のビットに対してである。コード決定プロセスはステップ248に進み、そこで、ルックアップテーブルまたは他の適切な方法使用してステップ244で格納されているコードビットから物体IDを決定する。
【0072】
グレースケールコードおよび任意形状コードの認識
図13は、物体の認識で使用されるグレースケールコード252の実施例を示す。グレースケールコードでは、複数のしきい値を使用して、白黒画像だけでなくグレースケール画像をも検出する。グレースケールコード252aは、接続「手掛かり」コンポーネント254aを含む。暗い背景252aは、グレースケールコードが接続コンポーネントとして簡単に検出できるように、グレースケールコードを囲む。暗い背景により、手掛かりコンポーネントを容易に検出することができ、「ノイズ」ピクセルを手掛かりコンポーネントの一部とみなす危険性を最小限に抑えられる。入力画像の2値化では、しきい値を、入力画像を白黒でレンダリングする所定のレベルに設定する。したがって、2値化された手掛かりコンポーネントは白色であり、そのため、手掛かりコンポーネントとして容易に識別可能である(灰色ビットは2値化画像内では白色である)。
【0073】
手掛かりコンポーネントが検出された場合、第2の所定のしきい値が正規化された画像に適用され、手掛かりコンポーネント内の灰色および白色のコードビットを現す。この所定の第2のしきい値は、さらに、上で説明したように決定される、相対的しきい値であってよい。したがって、2値化された手掛かりコンポーネント254a、254c、254e、および254gは対をなす片割れのグレースケールコンポーネント254b、254d、254f、および254hをそれぞれ含む。灰色および白色のデータビットは、手掛かりコンポーネントに関する定義済み位置に配置される。データビットを線引きする線は、データビットを例示するだけのために図に含まれていることに留意されたい。ただし、実際のグレースケールコードは、通常、そのような見える線を含まない。
【0074】
グレースケールコードに対する手掛かりコンポーネントは、手掛かりコンポーネント例254cおよび254gにより示されているように、矩形である必要はない。接続コンポーネントが認識された後、第2の所定のしきい値は、接続コンポーネント内のグレースケールコードビットを現すことができる。その代わりに、グレースケールコードでは、手掛かりコンポーネントを特定するためにパターン認識を使用することもできる。
【0075】
グレースケールコードの埋め込みの性質により、共通の中心を持つ2つの接続コンポーネントを使用することができる。接続コンポーネントのこのような配列は、偶然起こることは非常にあり得ず、容易に検出される。手掛かりコンポーネント例252eは、他の接続コンポーネント254e内に中心を置く接続コンポーネント255eを含む。グレースケールコードの配向は、手掛かりコンポーネント内のいくつかのコードビットが白色、灰色、またはその独自の組み合わせであると規定することにより定義することができる。例えば、グレースケールコンポーネント254bおよび254fの配向は、コーナービットの1つだけ除いて全部が灰色である必要がある場合に容易に確認される。254cおよび254gなどの非対称の手掛かりコンポーネントの形状は、グレースケールコードの配向を明確に示すことができる。グレースケールコードは、複数のチェックサムビットを含むことができるので、画像分析によりビットシーケンスが復号化された後、復号化の誤りを検出することができる。
【0076】
図14は、物体、特に奇妙な形の物体を認識する際に使用される任意形状コード例260を示す。任意形状コード260は、接続「手掛かり」コンポーネント262、および1つまたは複数のデータビット264を含む。任意形状コードは、暗い背景268により囲まれる。暗い背景により、手掛かりコンポーネントデータビットを容易に検出することができ、「ノイズ」ピクセルをコードの一部とみなす危険性を最小限に抑えられる。任意形状コードのデータビットは、手掛かりコンポーネントに関する定義済み位置に置かれている。その代わりに、データビットを、それぞれのデータビットの位置が予め定義されるように前のデータビットに関する定義済み位置に置くこともできる。
【0077】
任意形状コードは、さらに、1つまたは複数の空の領域266を含むこともできる。このような空の領域は、コードが付けられる物体の形状に内在することがある。空の領域は、データビットの配置に影響を及ぼす場合がある。例えば、データビット264bは、空の領域266によりデータビット264aから隔てられる。その代わりに、空の領域は、一定の力でつる巻きバネ304を押したときに、例えば、IR反射領域306を移動して表示面と接触させることによりコード内の1つまたは複数のビットの値を変化させるボタン302を含む物体などで、コードに影響を及ぼすことができるメカニズムに関連付けることができる。その代わりに、ボタンは、前述のコードのどれかで通常ビットの反射率を変えることもできる。
【0078】
図15は、接続コンポーネントを特定した後にグレースケールまたは任意形状コードを決定するため画像処理モジュールにより実行される論理的ステップを例示する流れ図である。ステップ270で、画像処理モジュールは、灰色の陰影を含む現在の正規化された画像にアクセスする。ステップ272で、画像処理モジュールは、接続コンポーネント内の最小灰色強度を決定する。このステップでは、グレースケールまたは任意形状コードの暗い背景をグレースケールまたは任意形状コード内のコードから区別する。ステップ274は、画像処理モジュールで、以下の式で定義される第2のしきい値Tを設定することを示している。
【0079】
T=(最大白色強度−最小灰色強度)/2
このしきい値を正規化された画像に適用することにより、灰色ビットと白色ビットとを区別できる。ステップ270、272、および274は、任意形状コードのビットを読み取るうえで必要ではない。しかし、正規化された画像にアクセスすると、小さなビットも正確に読み取ることができる。
【0080】
ステップ276で、画像処理モジュールは、予想されるビット位置の定義済みパターンにアクセスする。これらの定義済み位置は、手掛かりコンポーネント内のビットおよび/または手掛かりコンポーネントの外部の、ただしそれに関する定義済みビット位置に適用可能である。画像処理モジュールは、ステップ278において、接続コンポーネントの形状および配向に関してステップ276で事前に定義されているパターンでデータビットを読み取る。これらのデータビットは、第2のしきい値を使用して読み取られる。
【0081】
任意選択の決定ステップ280で、画像処理モジュールは、有効なコード値についてテストする。コード値が有効でなければ、プロセスは終了し、有効であれば、プロセスはステップ282に進み、そこで、テーブルルックアップまたは他のそのような方法を介してコードビットから物体IDを決定する。
【0082】
本発明に関連して使用される他のアプローチでは、物体に付けられているコード化されたパターンは、任意形状について認識される。この場合、領域外(ただし、ある定義済みのさらに大きな領域内)のすべての画像ピクセルは、黒色でなければならないが、コード化されたパターン上の画像ピクセルは黒色または白色(または灰色)であると規定される。このプロセスは、本当に有効なコードであることを保証するため知られているコードブックと突き合わせて、読み取られたコードの妥当性を確認する、上記の手法と連携するとうまく機能する。
【0083】
本発明は、本発明を実施する好ましい形態に関して説明されているが、当業者であれば、請求項の範囲内で多数の修正を加えられることを理解するであろう。したがって、本発明の範囲は、いかなる点でも上の説明により限定されることを意図していないが、その代わりに請求項を参照することで全体が定められる。
【0084】
排他的権利が主張されている本発明は、請求項により定められる。
【図面の簡単な説明】
【0085】
【図1】本発明を実施する際に使用されるような対話型表示テーブルの画像処理に好適な一般的に従来のコンピューティングデバイスまたはパーソナルコンピュータ(PC)の機能ブロック図である。
【図2】含まれているハードウェアコンポーネントを示す対話型表示テーブルの内側、および対話型表示テーブル内の光がたどる経路、および対話型表示テーブルの表面とその上の方に配置されている物体例の図である。
【図3】PCが外付けされている対話型表示テーブルの等角図である。
【図4】表示面上またはその近くに置かれている物体に付けられている二次元識別子コードを認識する論理回路全体を例示する流れ図である。
【図5】本発明による放射状コードの実施例の図である。
【図6】表示面上にある物体に付けられている放射状コードを決定する場合に画像処理モジュールにより実行される論理的ステップを例示する流れ図である。
【図7】本発明によるマトリクスコードの実施例の図である。
【図8】ダイマトリクスコードを決定するため画像処理モジュールにより実行される論理的ステップの論理的ステップを示す流れ図である。
【図9】本発明による線形コードの実施例の図である。
【図10】線形コードを決定するため画像処理モジュールにより実行される論理的ステップの論理的ステップを例示する流れ図である。
【図11】本発明による可変ビット長マトリクスコードの実施例の図である。
【図12】物体に付けられている可変ビット長マトリクスコードを決定するための論理的ステップを示す流れ図である。
【図13】本発明によるグレースケールコードの実施例の図である。
【図14】本発明による任意形状コードの実施例の図である。
【図14A】図14の任意形状コードを持ち、形状コードを修正するためユーザが押しボタンを備える物体の実施例の図である。
【図15】グレースケールまたは任意形状コードを決定するため画像処理モジュールにより実行される論理的ステップを例示する流れ図である。
【特許請求の範囲】
【請求項1】
値をコード化するために物体に取り付けられる二次元識別子であって、該値が表面検知システムによって決定可能である二次元識別子において、
(a)前記表面検知システムによって検知されるときに楕円として近似される、前記表面検知システムによって検知可能な材料の連続領域を含み、前記楕円が、前記表面検知システムの座標に関して前記二次元識別子の配向を示す軸を有する手掛かりコンポーネントと、
(b)前記表面検知システムによって検出可能なバイナリ要素によって前記値をコード化するための、前記連続領域の外側に配置されたコード部分と、
(c)前記連続領域と前記コード部分とを囲み、前記表面検知システムによって前記二次元識別子の一部として検知されない検出不可能な材料からなり、前記連続領域と前記コード部分との周囲の干渉マスクとして機能してノイズを最小に抑える境界領域と、
を具備する二次元識別子。
【請求項1】
値をコード化するために物体に取り付けられる二次元識別子であって、該値が表面検知システムによって決定可能である二次元識別子において、
(a)前記表面検知システムによって検知されるときに楕円として近似される、前記表面検知システムによって検知可能な材料の連続領域を含み、前記楕円が、前記表面検知システムの座標に関して前記二次元識別子の配向を示す軸を有する手掛かりコンポーネントと、
(b)前記表面検知システムによって検出可能なバイナリ要素によって前記値をコード化するための、前記連続領域の外側に配置されたコード部分と、
(c)前記連続領域と前記コード部分とを囲み、前記表面検知システムによって前記二次元識別子の一部として検知されない検出不可能な材料からなり、前記連続領域と前記コード部分との周囲の干渉マスクとして機能してノイズを最小に抑える境界領域と、
を具備する二次元識別子。
【図1】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図15】
【図2】
【図14】
【図14A】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図15】
【図2】
【図14】
【図14A】
【公開番号】特開2009−59379(P2009−59379A)
【公開日】平成21年3月19日(2009.3.19)
【国際特許分類】
【出願番号】特願2008−273830(P2008−273830)
【出願日】平成20年10月24日(2008.10.24)
【分割の表示】特願2005−91719(P2005−91719)の分割
【原出願日】平成17年3月28日(2005.3.28)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】
【公開日】平成21年3月19日(2009.3.19)
【国際特許分類】
【出願日】平成20年10月24日(2008.10.24)
【分割の表示】特願2005−91719(P2005−91719)の分割
【原出願日】平成17年3月28日(2005.3.28)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】
[ Back to top ]