(57)【特許請求の範囲】
【請求項１】
データ処理システム（１００）によって実行されるパターン認識方法であって、
当該方法は、
前記データ処理システムにより、２次元（以下では２次元を２Ｄで示す）の点（４００）からなる集合を受け取るステップ（２０５）と、
前記データ処理システムにより、前記集合内の各点に対して複数の隣接点を識別するステップ（２１０）と、
前記データ処理システムにより、前記集合内の各点間の少なくとも１つの表示パターンを探索するステップ（２１５）であって、当該表示パターンは、
２Ｄ平面内の所定の点（Ｐ）から正規距離だけ離れておりかつ当該所定の点（Ｐ）と直線状に並ぶ、前記集合内の複数の点によって識別される直線パターン（７１０）、
所定の点（Ｐ）から直角方向に正規距離だけ離れている、前記集合内の複数の点によって識別される矩形パターン（７０２）、
前記２Ｄ平面内の所定の点（Ｐ）から正規距離だけ離れておりかつ当該所定の点（Ｐ）と２つの方向に直線状に並ぶ、前記集合内の複数の点によって識別される斜めパターン、または、
互いに正規距離だけ離れておりかつ共通の中心（Ｃ）を有する円弧にそれぞれ沿って並んでいる、前記集合内の複数の点によって識別される円形パターン（７０８，７１２）のうちのいずれか１つであり、
さらに、探索した前記表示パターンに対応するパターンデータを記憶するステップ（２３０）を有する、
ことを特徴とする方法。
【請求項２】
前記データ処理システムにより、２Ｄまたは３次元フィーチャ（３２０）も前記２Ｄの点からなる集合に変換する、
請求項１に記載の方法。
【請求項３】
前記データ処理システムにより、複数の直線パターンを１つの矩形パターンにまとめる（２２０）、
請求項１または２に記載の方法。
【請求項４】
前記探索した表示パターンに対応する複数の点を前記２Ｄの点からなる集合から除去し、
前記データ処理システムにより、識別、探索および記憶を繰り返す、
請求項１から３までのいずれか１項に記載の方法。
【請求項５】
前記データ処理システムにより、探索する前記表示パターンについてのユーザ選択を受け取る、
請求項１から４までのいずれか１項に記載の方法。
【請求項６】
前記データ処理システムにより、前記集合内の各点と、当該集合内の当該点の各隣接点との間の距離および方向を求める、
請求項１から５までのいずれか１項に記載の方法。
【請求項７】
前記データ処理システムにより、複数の表示パターンを探索し、当該複数の探索された表示パターンから主パターンを選択する（２２５）、
請求項１から６までのいずれか１項に記載の方法。
【請求項８】
プロセッサ（１０２）と、アクセス可能なメモリ（１０８）とを有するデータ処理システム（１００）において、
該データ処理システムは特に、
２次元（以下では２次元を２Ｄで示す）の点（４００）からなる集合を受け取り（２０５）、
前記集合内の各点（４００）に対して複数の隣接点を識別し（２１０）、
前記集合内の各点間の少なくとも１つの表示パターンを探索し（２１５）、ただし、
前記表示パターンは、
２Ｄ平面内の所定の点（Ｐ）から正規距離だけ離れておりかつ当該所定の点（Ｐ）と直線状に並ぶ、前記集合内の複数の点によって識別される直線パターン（７１０）、
所定の点（Ｐ）から直角方向に正規距離だけ離れている、前記集合内の複数の点によって識別される矩形パターン（７０２）、
前記２Ｄ平面内の所定の点（Ｐ）から正規距離だけ離れておりかつ当該所定の点（Ｐ）と２つの方向に直線状に並ぶ、前記集合内の複数の点によって識別される斜めパターン、または、
互いに正規距離だけ離れておりかつ共通の中心（Ｃ）を有する円弧にそれぞれ沿って並んでいる、前記集合内の複数の点によって識別される円形パターン（７０８，７１２）のうちのいずれか１つである
ように構成されており、
前記データ処理システム（１００）はさらに、
探索した前記表示パターンに対応するパターンデータを記憶する（２３０）ように構成されている、
ことを特徴とするデータ処理システム（１００）。
【請求項９】
前記データ処理システムは、２Ｄまたは３次元フィーチャ（３０２）も前記２Ｄの点からなる集合に変換する、
請求項８に記載のデータ処理システム。
【請求項１０】
前記データ処理システムは、複数の直線パターンを１つの矩形パターンにまとめる（２２０）、
請求項８または９に記載のデータ処理システム。
【請求項１１】
前記探索した表示パターンに対応する複数の点が前記２Ｄの点からなる集合から除去され、
前記データ処理システムは、識別、探索および記憶を繰り返す、
請求項８から１０までのいずれか１項に記載のデータ処理システム。
【請求項１２】
前記データ処理システムは、探索する前記表示パターンについてのユーザ選択を受け取る、
請求項８から１１までのいずれか１項に記載のデータ処理システム。
【請求項１３】
前記データ処理システムは、前記集合内の各点と、当該集合内の当該点の各隣接点との間の距離および方向を求める、
請求項８から１２までのいずれか１項に記載のデータ処理システム。
【請求項１４】
前記データ処理システムは、複数の表示パターンを探索し、当該複数の探索された表示パターンから主パターンを選択する（２２５）、
請求項８から１３までのいずれか１項に記載のデータ処理システム。
【請求項１５】
実行可能な命令によってエンコードされた非一時的コンピュータ読み出し可能媒体（１２６）において、
前記実行可能な命令は、実行される場合に１つまたは複数のデータ処理システム（１００）に、
２次元（以下では２次元を２Ｄで示す）の点（４００）からなる集合を受け取らせ（２０５）、
前記集合内の各点（４００）に対して複数の隣接点を識別させ（２１０）、
前記集合の各点間の少なくとも１つの表示パターンを探索させ（２１５）、ただし、前記表示パターンは、
２Ｄ平面内の所定の点（Ｐ）から正規距離だけ離れておりかつ当該所定の点（Ｐ）と直線状に並ぶ、前記集合内の複数の点によって識別される直線パターン（７１０）、
所定の点（Ｐ）から直角方向において正規距離だけ離れている、前記集合内の複数の点によって識別される矩形パターン（７０２）、
前記２Ｄ平面内の所定の点（Ｐ）から正規距離だけ離れておりかつ当該所定の点（Ｐ）と２つの方向に直線状に並ぶ、前記集合内の複数の点によって識別される斜めパターン、または、
互いに正規距離だけ離れておりかつ共通の中心（Ｃ）を有する円弧にそれぞれ沿って並んでいる、前記集合内の複数の点によって識別される円形パターン（７０８，７１２）のうちのいずれか１つであり、
さらに前記データ処理システム（１００）に、
探索した前記表示パターンに対応するパターンデータを記憶させる（２３０）、
ことを特徴とする、
コンピュータ読み出し可能媒体（１２６）。
【請求項１６】
前記データ処理システムは、２Ｄまたは３次元フィーチャ（３２０）も前記２Ｄの点からなる集合に変換する、
請求項１５に記載のコンピュータ読み出し可能媒体。
【請求項１７】
前記データ処理システムは、複数の直線パターンを１つの矩形パターンにまとめる（２２０）、
請求項１５または１６に記載のコンピュータ読み出し可能媒体。
【請求項１８】
前記探索した表示パターンに対応する複数の点が前記２Ｄの点からなる集合から除去され、
前記データ処理システムは、識別、探索および記憶を繰り返す、
請求項１５から１７までのいずれか１項に記載のコンピュータ読み出し可能媒体。
【請求項１９】
前記データ処理システムは、探索する前記表示パターンについてのユーザ選択を受け取る、
請求項１５から１８までのいずれか１項に記載のコンピュータ読み出し可能媒体。
【請求項２０】
前記データ処理システムは、前記集合内の各点と、当該集合内の当該点の各隣接点との間の距離および方向を求める、
請求項１５から１９までのいずれか１項に記載のコンピュータ読み出し可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的には、コンピュータ支援設計、視覚化および製造システム、製品ライフサイクル管理（ＰＬＭ：product lifecycle management）システム、ならびに複数の製品および別の商品用のデータを管理する類似のシステム（まとめて「製品データ管理」システムまたはＰＤＭシステムと称する）向けられるものである。
【０００２】
発明の背景
コンピュータ支援設計システム（ＣＡＤシステム）により、ユーザは、モデルオブジェクトを設計および視覚化することができる。ここで望まれるのは、改良されたシステムである。
【０００３】
発明の要約
ここで示されている種々異なる実施形態には、パターン認識のための方法と、対応するシステムと、コンピュータ読み出し可能媒体とが含まれている。上記の方法には、２次元（２Ｄ）の点からなる集合を受け取ることが含まれている。この方法には、上記の集合内各点に対して複数の隣接点を識別することと、この集合内の複数の点間の少なくとも１つの表示パターンを探索することとが含まれている。この表示パターンは、２Ｄ平面内の所定の点から正規距離だけ離れておりかつこの所定の点と直線状に並ぶ、上記の集合内の複数の点によって識別される直線パターン、所定の点から複数の直角方向に正規距離だけ離れている上記の集合の複数の点によって識別される矩形パターン、２Ｄ平面内の所定の点から正規距離だけ離れておりかつこの所定の点と２つの方向に直線状に並ぶ、上記の集合の複数の点によって識別される斜めパターン、または、互いに正規距離だけ離れておりかつ共通の中心を有する円弧にそれぞれ沿って並んでいる、上記の複数の点によって識別される円形パターンのうちのいずれか１つとすることができる。この方法には、探索した表示パターンに対応するパターンデータを記憶することが含まれている。
【０００４】
上に示したことは、本発明の特徴および技術的利点をかなり広く概略的に示しているため、当業者には、以下の詳細な説明がより理解できよう。以下、請求項の対象を構成する本発明の付加的な特徴および利点を示す。当業者には、本発明と同じ目的を達成するための別の構造の設計または修正を行うためのベースとして、ここに示したコンセプトおよび特定の実施形態を直ちに使用できることが理解されよう。また当業者は、このような等価な構成は、本発明の最も広い形態における精神および範囲から逸脱しないことが了解されよう。
【０００５】
以下の詳細な説明を行う前に、この明細書全体にわたって使用される所定の語または語句の定義を明らかにすることは有利であろう。「含む」および「有する」という語ならびにその派生語は、限定なしに含まれることを意味し、「または」という語には「および／または」の意味が含まれ、「〜に関連して」および「それに関連して」という語句ならびにそれらの派生語は、〜を含む、〜内に含まれる、〜と連係する、〜を含有する、〜内に含有される、〜に（と）接続される、〜に（と）結合される、〜と通信可能である、〜と協動する、交互配置される、並列する、〜に近接している、〜に（と）束ねられている、〜を有する、〜という特性を有する等々を意味し得る。「コントローラ」という語は、少なくとも１つの動作を制御する任意の装置、システムまたはその一部を意味し、このことは、この装置がハードウェア、ファームウェア、ソフトウェアまたはこれらのうちの少なくとも２つの何らかの組み合わせで実現されるか否かには関わりがない。任意の特定のコントローラに関連する機能は、ローカルであれリモートであれ、集中型または分散型とすることが可能である。特定の語または語句に対する定義は、この明細書全体を通して示されるものであり、当業者には、これらの定義が、大部分ではないにしても多くの事例において、これらの定義された語および語句の過去および将来の使用にも当てはまることが理解されよう。語句によっては、実施形態の広範な変化形態を含み得るものがあるが、添付の請求項は、これらの語句を特定の実施形態に明確に限定することができる。
【０００６】
図面の簡単な説明
本発明およびその利点をより完全に理解するため、ここでは添付の図面に関連して行われる以下の説明を参照する。これらの図面において類似の参照符号は、類似の対象を示すものとする。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施形態を実現することの可能なデータ処理システムのブロック図である。
【図２】本発明の複数の実施形態にしたがう処理のフローチャートを示す図である。
【図３Ａ】本発明の複数の実施形態にしたがい、異なる２つの基本フィーチャタイプの複数の３Ｄフィーチャを含むモデルを示す図である。
【図３Ｂ】本発明の複数の実施形態にしたがって、フィーチャに割り当てられた複数の点の一平面への投影を示す図である。
【図４】本発明の複数の実施形態にしたがって処理可能な幾何学モデルに対応する２Ｄの点からなる集合の例を示す図である。
【図５】Ａ〜Ｄは本発明の実施形態にしたがったパターンインジケータの複数の例を示す図である。
【図６】本発明の複数の実施形態にしたがって、円形インジケータに対する中心を計算するための一テクニックを示す図である。
【図７】Ａ〜Ｊは本発明の繰り返し処理の結果および利点の例を示す図である。
【０００８】
詳細な説明
以下で説明する図１から図７Ｊ、および、この明細書において本発明の基本原理を説明するために使用される種々の実施形態は、説明のためだけのものであり、いかなる点においても本発明の範囲を限定するものと考えるべきではない。当業者には、本発明の原理が、適切に構成された任意の装置において実現できることが理解されよう。本発明の数多くの発明上の教示を、例示的でありかつ制限的でない複数の実施形態を参照して説明する。
【０００９】
ＣＡＤおよび他のシステムは、ここで包括的に「パターン」と称されるフィーチャのパターンまたはグリッドを維持することができる。ここで使用されるこれらのパターンは、１つの幾何学モデルの複数のフィーチャの互いに構造化された組織のことをいう。これらのフィーチャは、ＰＤＭまたは別のシステムにおいて維持される幾何学モデルの任意の要素とすることができる。種々異なるシステムには、生成されかつ明示的にレベル付けされかつこのシステムの一部として機能するフィーチャのパターンに対するメソッドが含まれている。
【００１０】
しかしながら多くのモデルには、明示的にはラベル付けがされておらず、このためにシステムにおいて適切に機能することができない暗黙的なパターンが含まれ得る。このようなことは、異なるシステムからインポートしたデータ、システムの以前のバージョンにおいて生成したモデル内のフィーチャ、慣用でない間接的なまたは曖昧なメソッドを介し生成されたモデル等々においていくらでも発生し得るがこれには限定されない。
【００１１】
本発明の実施形態には、幾何学モデルの複数のフィーチャ間で矩形、円形および直線のパターンを自動的に認識するためのシステムおよび方法が含まれている。
【００１２】
図１には、例えばＣＡＤシステムとして、一実施形態を実現することができるデータ処理システムのブロック図が示されている。このデータ処理システムは特に、ソフトウェアによって構成されているか、またはそうでなければ、ここで説明するように処理を実行するように構成されており、また特に、ここで説明するように複数の相互接続されかつ通信を行う複数のシステムのそれぞれ１つとして構成されている。ここに図示したデータ処理システムには、レベル２キャッシュ／ブリッジ１０４に接続されているプロセッサ１０２が含まれており、このキャッシュ／ブリッジその自体はローカルシステムバス１０６に接続されている。ローカルシステムバス１０６は、例えば、ＰＣＩ（peripheral component interconnection）アーキテクチャバスであってよい。図示した実施例においてローカルシステムバスには、メインメモリ１０８およびグラフィックアダプタ１１０も接続されている。グラフィックアダプタ１１０は、ディスプレイ１１１に接続可能である。
【００１３】
ＬＡＮ（local area network）／ＷＡＮ（wide area network）／ワイヤレス（例えばWiFi）アダプタ１１２のような別の周辺装置もローカルシステムバス１０６に接続することができる。拡張バスインタフェース１１４は、ローカルシステムバス１０６を入出力（Ｉ／Ｏ）バス１１６に接続する。Ｉ／Ｏバス１１６は、キーボード／マウスアダプタ１１８、ディスクコントローラ１２０およびＩ／Ｏアダプタ１２２に接続されている。ディスクコントローラ１２０は、ストレージ１２６に接続することができ、このストレージは、任意の適当な機械使用可能または機械読み取り可能な記憶媒体とすることができ、これには、ＲＯＭ（read only memory）もしくはＥＥＰＲＯＭ（electrically erasable programmable read-only memeory）のような不揮発性のハードコード型の媒体、および、磁気テープストレージ、および、フロッピィディスク、ハードディスクドライブ、ＣＤ−ＲＯＭ（compact disk read only memory）またはＤＶＤ（digital versatile disk）のようなユーザ記録可能型媒体、および、公知の別の光学式、電気式もしくは磁気式ストレージ装置が含まれるが、これらに限定されない。
【００１４】
図示の実施例において、Ｉ／Ｏバス１１６にはオーディオアダプタ１２４も接続されており、これには、音を再生するために（図示しない）スピーカを接続することができる。キーボード／マウスアダプタ１１８により、マウス、トラックボール、トラックポインタタッチパッドなどのような（図示しない）ポインティングデバイスのための接続が行われる。
【００１５】
通常の知識を有する当業者には了解されるように、図１に示したハードウェアは、特定の実装毎に変わり得る。例えば、光学式ディスクドライブなどのような別の周辺装置も、図示したハードウェアに加えてまたはこれの代わりに使用可能である。図示した実施例は、説明を目的としたものだけであり、本発明について構成上の制限を示す意図はない。
【００１６】
本発明の一実施形態によるデータ処理システムには、グラフィカルユーザインタフェースを使用するオペレーティングシステムが含まれている。このオペレーティングシステムは、このグラフィカルユーザインタフェースにおいて複数のディスプレイウィンドウを同時に表示できるようにし、各ディスプレイウィンドウにより、異なるアプリケーションまたは同じアプリケーションの異なるインスタンスに対するインタフェースが提供される。このグラフィカルユーザインタフェースにおけるカーソルは、ユーザが、上記のポインティングデバイスを介して操作することができる。カーソルの位置は変更可能であり、および／または、所望のレスポンスを作動させるため、マウスボタンのクリックのようなイベントが形成される。
【００１７】
適当に修正すれば、ワシントン州レドモンド在のマイクロソフト社の製品であるMicrosoft Windows（登録商標）の一バージョンのような種々異なる市販のオペレーティングシステムのうちの１つを使用可能である。このオペレーティングシステムは、ここで説明する本発明にしたがって修正または形成される。
【００１８】
（データ処理システム１００の一部ではない）ネットワーク１３０にＬＡＮ／ＷＡＮ／ワイヤレスアダプタ１１２を接続可能であり、このネットワークは、インターネットを含めた、当業者には公知の任意の公衆またはプライベートデータ処理システムネットワークまたは複数のネットワークの組み合わせとすることができる。データ処理システム１００は、ネットワーク１３０を介してサーバシステム１４０と通信することができる。このサーバシステムもデータ処理システム１００の一部ではなく、例えば、独立したデータ処理システム１００として実現することができる。
【００１９】
本発明の複数の実施形態は、複数のフィーチャを含む幾何学モデルを解析して、これらのフィーチャ間のパターンを自動認識することができる。図２には、例えば１つまたはそれ以上のＣＡＤシステム（以下では一般的に「システム」と称する）によって実行することができる、本発明の複数の実施形態にしたがった処理のフローチャートが示されており、別の複数の図は、以下の説明においてこのような処理の複数の様相または例を示すために使用される。
【００２０】
上記のシステムは、幾何学モデルの少なくとも一部分を表す２次元２Ｄ点からなる集合を受け取る（２０５）。本発明によって使用される受け取りとは、ストレージからのローティング、別の装置または処理からの受け取り、ユーザとの対話を介した受け取り、受け取りデータを生成するための別のデータの前処理等々が含まれ得る。
【００２１】
本発明の実施形態による処理は、入力として、単純な２Ｄ点からなる集合を使用することができる。モデルからの生の入力は、２Ｄまたは３次元（３Ｄ）フィーチャのいずれかとすることができ、２０５の一部として、このシステムは、図３Ａおよび３Ｂを参照してより詳しく説明するように、整合した代表点をフィーチャ毎に取得することができる。
【００２２】
図３Ａには、異なる２つの基本フィーチャタイプ（形状）の複数の３Ｄフィーチャを含むモデル３００が示されている。上記のシステムは、フィーチャタイプ毎に、これらのフィーチャタイプ上の整合点と、このフィーチャに対する方向ベクトルとを割り当てることができる。例えばフィーチャ３０２は、特定の形状を有する特定のフィーチャタイプである。システムは、これらの各形状の同じ位置に点３０４を割り当て、点３０４から始まりかつ各形状の方向を示す方向ベクトルを割り当てる。任意の所定のフィーチャタイプのうちの第１のフィーチャへの上記の点およびベクトルの最初の割り当て任意でよく、同じフィーチャタイプに対する残りの割り当ては、このタイプの上記の第１のフィーチャに対して相対的に割り当てられる。
【００２３】
点がまだ２Ｄ空間にないフィーチャに対し、上記のシステムは、共通の一平面上に投影することによってこれらの点を２Ｄ空間に変換することができる。図３Ｂには、フィーチャ３２０の割り当てられた点を平面３２２に投影することが示されている。投影された点３２４は、各フィーチャ３２０における点の位置に対応する。
【００２４】
このモデル内のフィーチャは、大抵多くの異なるタイプ、形状、サイズ、方向および３Ｄでは平面からの高さを有する。これらの変数のうちの任意の、いくつかの、またはすべての変数、さらに別の変数を、上記の入力をあらかじめ分けるために使用することができる。
【００２５】
例えば、１つのパターン内に含めるため、異なるタイプのフィーチャを考慮すべきでない場合、これらを分割して渡すことができ、これによって検出処理への呼び出しを分離および区別する。すなわち、共通のフィーチャタイプ間のパターンだけを識別しようとする場合、本発明で説明する検出処理は、異なるフィーチャタイプ毎に順次または並列に別々に実行することができる。例えば、図３Ａでは、上記の処理は、フィーチャ３０２のような同じフィーチャタイプのすべてのフィーチャに対して一度実行することでき、２度目にフィーチャ３０８のような同じタイプのすべてのフィーチャに対して実行することできる。
【００２６】
別の例としては、特定の方向のフィーチャだけが関心対象である場合、これらのフィーチャをグループにまとめ、各方向グループ（または関心対象の方向グループだけ）を別にして上記の検出処理を行う。例えば、図３Ａでは、フィーチャ３０８と同じ垂直方向のフィーチャだけに対して上記の処理を実行し、フィーチャ３１０のように異なる方向のフィーチャにはこれを実行しないのである。
【００２７】
ここで説明しているように複数のフィーチャが、グループ分けされ、含まれるかまたは除外される場合、上記の検出処理に対し、対応する複数の２Ｄ投影点がグループ分けされ、含まれるかまたは除外される。
【００２８】
上の例は、説明のためのだけのものである。任意の仕方で２Ｄ点からなる集合に処理することができる任意のフィーチャは、ここで示すテクニックによって任意に取り扱うことができ、このような任意の処理は、２Ｄ点からなる集合の受け取りの一部として含まれるものとする。
【００２９】
つぎに上記のシステムは、複数の点内に矩形、直線または別のパターンを探索することができる。
【００３０】
図４には、受け取りの後、本発明の複数の実施形態にしたがって処理され得る（２Ｄ，または上で示したような投影テクニックを介した３Ｄの）幾何学モデルに対応する２Ｄ点からなる集合４００の例が示されている。上記のシステムは、２Ｄ点間でパターンを検出することができる。
【００３１】
図２の処理に戻ると、上記のシステムは、集合内の点毎に最も近い「隣接点」を識別する（２１０）。ここで使用される「隣接点」という語は、複数の点からなる集合を構成する、１つまたは複数の点に最も近い１つまたは複数の点のことをいう。点毎に識別される最も隣接した点の個数は、以下で説明するように、選択した「インジケータ」に依存するか、または任意の個数の隣接点を含み得る。上記のシステムによって認識されるパターンインジケータのようなインジケータには、矩形パターンインジケータ、直線パターンインジケータ、円形パターンインジケータ、および斜めパターンインジケータが含まれるがこれらに限定されることはなく、別のパターンインジケータも考えられる。識別処理２１０は、各点からその複数の隣接点への距離および方向（両方合わせてベクトル）を求めることができる。
【００３２】
上記のシステムはつぎに点集合間で、表示パターンを探索する（２１５）。この集合内の点毎に、システムは、この点と、その最も接近した複数の隣接点とが何らのパターンを示すか否かを求める。単一の点は、複数のパターンタイプを示し得ることに注意されたい。このシステムは、適用するパターンインジケータのユーザ選択を受け取ることができるためにパターンの所定のタイプだけ識別されるか、または、任意もしくはすべてのパターンインジケータを適用することができる。
【００３３】
パターンインジケータは、点間のパターンを示す。各点は、その最も近い複数の隣接点と照らし合わされ、これがパターンを示すか否かが調べられる。パターンを示す場合、以下に説明するように、このパターンについての情報（例えばタイプ、間隔、方向）を、それを最初に示した点（原点）の識別子と共に記憶することできる。
【００３４】
図５Ａ〜５Ｄには、本発明の実施形態によるパターンインジケータの例が示されている。これらのインジケータは、制限的なものではなく、点間のパターンの別のインジケータを使用することがある。
【００３５】
図５Ａには矩形パターンインジケータの例が示されている。この例において、点Ｐは処理対象の点である。Ｐからその最も近い隣接点へのベクトルＡおよびＢが探索される。ベクトルＡとＢとは互いに直角（９０°）であり、矩形パターンインジケータの例を構成している。直角方向において所定の点Ｐから正規距離だけ離れた、上記の集合の複数の点によって矩形パターンが識別される。本発明で使用される「正規距離」には、各区間に点がない正規距離の倍数を含み得ることに注意されたい。例えば、第１の隣接点が距離Ｘだけ離れており、たとえこの集合内に距離２Ｘまたは３Ｘだけ離れた点がない場合であっても、このパターンにおける同じ方向のつぎの点が、距離４Ｘだけ離れている場合も含めようとしているのである。
【００３６】
図５Ｂには、直線パターンインジケータの例が示されている。この例では、点Ｐが処理対象の点である。点Ｐからその最も近い複数の隣接点へのベクトルＡおよびＢが探索される。ベクトルＡおよびＢは互いに直線（１８０度、一直線）を成しており、大きさが等しく、直線パターンインジケータの例を構成している。したがってこの直線パターンは、２Ｄ平面内の所定の点Ｐから正規距離だけ離れておりかつかつこの点Ｐと直線状に並ぶ、集合内の複数の点によって識別することができる。
【００３７】
図５Ｃには、円形パターンインジケータの例が示されている。この例では、点Ｐが処理対象の点である。点Ｐからその最も近い複数の隣接点へのベクトルＡおよびＢが探索される。ベクトルＡおよびＢは互いに大きさが同じである。すなわち、Ｐのこれらの隣接点は、Ｐからの距離が等しいのである。上記のシステムは、点Ａ，ＢおよびＰから得られる表示パターンの中心を基準にして、連続するパターン要素間の角度θ、中心Ｃおよび半径ｒを計算することができる。したがって円形パターンは、互いに正規距離だけ離れておりかつ共通の中心Ｃを有する円の弧にそれぞれ沿って並んでいる、集合内の複数の点によって識別できるのである（しかしながらこの円およびその中心は、上記の点またはモデルの一部ではない）。
【００３８】
図５Ｄには、「斜め」パターンインジケータの例が示されている。斜めパターンは、矩形パターンの自然な拡張であり、ここでは２つの方向の間の角度は、９０°とは異なるため、ベクトルは互いに直角を成していない。斜めパターンは、２Ｄ平面内の所定の点から正規距離だけ離れておりかつこの所定の点と２つの方向に直線状に並ぶ、上記の集合の複数の点によって識別することができる。この例では点Ｐが、処理対象の点である。Ｐから最も近い複数の隣接点へのベクトルＡおよびＢが探索される。ベクトルＡおよびＢは、互いに直角を成しておらず、斜めパターンインジケータの例を構成している。斜めパターンは、２Ｄ平面内の所定の点から正規距離だけ離れておりかつこの所定の点と２つの方向に並ぶ、上記の集合内の複数の点によって識別することができる。
【００３９】
図６には、点Ｐと、Ｐから隣接点Ｐ２へのベクトルＡと、Ｐから隣接点Ｐ１へのベクトルＢとが与えられた場合に、円形インジケータに対して中心Ｃを計算するための１つの手法が示されている。上記のシステムは、中心点ｍ１におけるベクトルＢの２等分線でありかつベクトルＢと直角な線ＰＬ１を定めることができる。このシステムは、中心点ｍ２におけるベクトルＡの２等分線でありかつベクトルＡと直角な線ＰＬ２を定めることができる。この円形パターンの中心Ｃは、ＰＬ１とＰＬ２との交点である。
【００４０】
種々異なる実施形態によって示される２つのタイプの円形パターン、すなわち開いた円形パターンと、閉じた円形パターンとがある。これらは共に同じインジケータ型によって示されるが、重要であるのは、閉じたパターンに対する角θは、３６０°を割り切る値でなければならない（すなわち３６０°＝Ｎ×角度θ、ただしＮは自然数）。すなわち、「閉じた」円形パターン上の複数の点間の角度は、均等に３６０°に分かれるため、閉じた円形パターンにおける点集合は、この円を完成させるために十分な点があれば、想定される円の周囲において均等な間隔を有するのである。「開いた」円形パターンにはこのような要件はなく、角度θは、均等に３６０°に割り切れることはできず、上記の集合の実際の複数の点が、想定される円上で均一な間隔を有し、円を完成するために十分な点が存在したとしても、それらの点のうちの少なくとも２つは均等な間隔を有しない。
【００４１】
図２に示した処理に戻ると、ステップ２１５における、表示パターンの探索の一部として、所定の点（それが存在する場合）によって表示されるパターンのタイプ毎に、システムは、表示された複数のパターンを比較することにより、このパターンがすでに表示されているか否かをチェックすることができる。このパターンがまだ表示されていない場合、システムにはこの新たに探索されたパターンを記憶することができる。これは、例えば表示されたパターンのリストに以下のデータを追加し、これらのデータを比較してこのパターンがすでに表示されているか否かを決定することによって行われる。
【００４２】
・  矩形パターンに対し、システムはｘおよびｙ間隔、ならびに、ｘおよびｙ方向を記憶することができる。原点として、このパターンを示す第１の点を使用することができる（これは第１の点に対する原点として記憶される）。２つの矩形パターンは、それらのそれぞれパターンが互いに一致し、ｘおよびｙ間隔が等しく、ｘおよびｙ方向がそれぞれ平行であり（かつ互いに直交しており）、それぞれの原点が、他方のパターン上にある場合、前のパターンと同じパターンを示す。
【００４３】
・  直線パターンに対し、システムは、間隔、方向および原点を記憶することができる。原点として、このパターンを示す第１の点を使用することができる（これは第１の点に対する原点として記憶される）。２つの直線パターンは、それぞれのパターンが互いに一致して、点間の間隔が等しく、ベクトル方向が平行であり、それぞれの原点が、他のパターン上にある場合、前のパターンと同じパターンを示す。
【００４４】
・  円形パターンに対し、システムは、中心、角度間隔、方向および原点を記憶することができる。原点として、このパターンを示す第１の点を使用することができる（これは第１の点に対する原点として記憶される）。２つの円形パターンは、それぞれのパターンが互いに一致し、角度間隔θが等しく、２つの中心Ｃが等しく、２つの半径ｒ（中心と原点との距離）が等しく、それぞれの原点が他方のパターン上にある場合に前のパターンと同じパターンを示す。この円形パターンは、複数の点からなる「集合」全体が完全な円を構成することを要求しない。
【００４５】
現在示されているパターンが、前に探索されて示されたパターンと同じ場合、このシステムは、この示されたパターンのカウントを増分することができる。
【００４６】
上記のシステムは、探索した複数の直線パターンを１つ矩形パターンにまとめることができる（２２０）。パターン探索処理は、典型的には複数の個別の直線パターンがどうなると矩形パターンになるかを時々生成することができる。このような場合、このシステムはこれを補正して、これらのような複数のケースを矩形パターンにまとめる。
【００４７】
このシステムは、主パターンを選択することができる（２２５）。この段階において、システムは、示されたすべてのパターンから主パターンを選択することができる。この主パターンは、示された複数のパターンから、特定の要求を満たすように種々異なる仕方で選択することができる。例えば、主パターンを選択するための１つの判定基準は、最大数の点を含むパターンとすることができる。多くの場合、主パターンを選択するときに３つ以下の点を有する任意の表示パターンは無視される。
【００４８】
上記のシステムは、関連する複数の点を含むパターンデータを記憶することができる（２３０）。これには、マーキング、ラベリングまたは他の仕方でのパターンとの関連付けを含むことができ、これらのパターンには、任意の主パターン、主パターンと一致する上記の集合からのすべての点が含まれている。またこれには、点集合を形成するために使用された任意の２Ｄまたは３Ｄフィーチャとの関連付けと、このパターンデータを記憶することを含むことができる。さらにこれには、主パターンに対応するすべての点を除去すること、または探索したすべてパターンから、点集合からすべての点を除去することが含まれ得る。種々異なる実施形態において、探索されたパターンに対応するすべての点を除去するかまたは主パターンに対応する点だけを除去することができる。これらのケースのいずれにおいても上記のパターンに一致するすべての点を処理中の点集合から除去して、主パターンまたは別の探索されたパターンにすでに関連付けられている点を含まない付加的なパターンを探索することができる。
【００４９】
上記のシステムは、２１０に向かってこれらの処理を繰り返すことができ、この際には上記の集合の残りの点だけを処理し、別のパターンを探索する。すなわち、最初の主パターンにおける点または探索したすべてのパターンを上記の集合から除去してしまえば、システムは、それぞれ残っている点に最も近い隣接点の探索からはじめて、残りの点だけを使用してこの処理を繰り返すことができるのである。
【００５０】
図７Ａ〜７Ｊには、ここで説明している繰り返し処理の結果およびいくつかの利点の例が示されている。ここには別の複数の利点がある。図７Ａには、ここでは説明している処理の第１の繰り返しに対する入力点集合の例が示されている。
【００５１】
図７Ｂには、ここで説明している処理の第１の繰り返しにおいて識別された、７０２で示した矩形パターンの例が示されている。
【００５２】
これらのパターンを第１の繰り返しにおいて識別した後、これらのパターンにおけるすべての点を、元々の点集合から除去し、残りの点を第２の繰り返しにおいて処理する。
【００５３】
図７Ｃには、第１の繰り返しにおいて識別した（図７Ｂに示したような）矩形パターンを第１の繰り返し後に入力点集合から除去した後の残りの点集合の例が示されている。これらの残りの点７０４は、第２の繰り返しに対する入力である。ここでは、説明の目的のため、パターンに対するフィーチャまたは点は、図示のモデルから実際に除去されているが、一般的な実現においては、これらのフィーチャまたは点は、データにおける考慮だけから除外されているのであり、この処理のつぎの繰り返しに渡される点集合には含まれていない。
【００５４】
図７Ｄには、ここで説明している処理の第２の繰り返しにおいて識別される、７０６に示した矩形パターンの例が示されている。このパターンは、第１の繰り返しにおいて識別し得なかったことに注意されたい。なぜならば、いま除去した点が、隣接点として処理される場合にパターンを不明瞭にしていたからである。
【００５５】
図７Ｅには、第２の繰り返しにおいて（図７Ｄに示したような）矩形パターンを識別した後に残った点集合の例が示されており、これらもまた処理対象の集合から除去される。これらの残った点は、第３の繰り返しに対する入力である。
【００５６】
図７Ｆには、ここで説明している第３の繰り返しにおいて識別される、７０８に示したような円形パターンの例が示されている。このパターンは第１の繰り返しにおいて識別され得なかったことに注意されたい。なぜならば、いま除去した複数の点が、隣接点として処理される場合にパターンを不明瞭にしていたからである。
【００５７】
図７Ｇには、第３の繰り返しにおいて（図７Ｆで示したような）円形パターンを識別した後に残った点集合の例が示されており、これらも処理中の点集合から除去される。残りの複数の点は、第４の繰り返しへの入力になる。
【００５８】
図７Ｈには、ここで説明している処理の第４の繰り返しにおいて識別される、７１０に示したような直線パターンの例が示されている。このパターンは、第１の繰り返しにおいては識別され得なかったことに注意されたい。なぜならば、いま除去した点が、隣接点として処理される場合にこのパターンを曖昧にしていたからである。
【００５９】
図７Ｉには、第４の繰り返しにおいて（図７Ｈで示したような）直線パターンを識別した後、処理中の点集合から同様に除去した後の残りの点集合の例が示されている。残りの複数の点は第５の繰り返しに対する入力である。
【００６０】
図７Ｊには、ここで説明している処理の第５の繰り返しにおいて識別された、７１２に示したような円形パターンの例が示されている。このパターンは、第１の繰り返しにおいては識別され得なかったことに注意されたい。なぜならば、いま除去した複数の点が、隣接点として処理される場合にこのパターンを曖昧にしていたからである。
【００６１】
別の複数の実施形態には、ここで説明した特定のテクニックの複数の変形形態が含まれている。例えば、「直線」パターンは択一的に、Ｙ方向の個数が１でありかつｙ間隔がゼロである矩形パターンとして表すことができる。別のいくつかの実施形態では、すべての点を木構造に記憶することができ、これにより、最も接近した隣接点がはるかに高速に探索される。
【００６２】
いくつかの実施形態では、矩形パターン内で、考えられ得るすべての直線パターンを探索することを回避するため、上記のシステムにより、まず矩形および円形パターンを探索し、入力点集合からこれらを除去し、つぎに後続の繰り返しにおいて残りのデータ内の直線パターンを探索することができる。
【００６３】
当然のことながら、当業者には、一連の操作によって特に示されるかまたは要求されるのでなければ、上で説明した処理における所定の複数のステップを省略できるか、同時または順次に実行できるか、または異なる順序で実行できることが理解できよう。
【００６４】
また当業者には、単純化および明瞭化のため、本発明に使用するのに適したすべてのデータ処理システムのすべての構造および操作が、ここに示されていないかまたは説明されていないことが了解されよう。その代わりにここではデータ処理システムのうち、本発明に固有であるか本発明の理解に必要なものだけが示されて説明されている。データ処理システム１００の残りの構成および処理は、この技術分野において公知の複数の実施および現在の種々の実現形態のいずれかと同じとすることが可能である。
【００６５】
ここでこの明細書には、完全に機能し得るシステムを踏まえての説明が含まれているが、当業者には以下のことが理解されることを指摘しておくことは重要である。すなわち、本発明のメカニズムのうちの少なくとも一部分は、機械利用可能、コンピュータ利用可能、またはコンピュータ読み出し可能媒体内に含まれる、種々異なる形態のうちの任意の形態の命令の形で配布でき、また本発明は、実際に上記の配布を行うのに使用される命令または信号記録媒体または記憶媒体の特定のタイプとは無関係に等しく適用されることが、当業者に理解されることを指摘しておくことは重要である。機械利用可能／読み出し可能またはコンピュータ利用可能／読み出し可能な媒体の例には、ＲＯＭ（read only memory）またはＥＥＰＲＯＭ（electrically erasable programmable read only memory）のような不揮発性のハードコード型媒体、および、フロッピィディスク、ハードディスクドライブおよびＣＤ−ＲＯＭ（compact disk read only memory）またはＤＶＤ（digital versatile disk）のようなユーザ記録可能型媒体が含まれる。
【００６６】
本発明の例示的な実施形態を詳しく説明してきたが、当業者には、この開示の精神および範囲を、その最も広い形態において、逸脱することなく、ここに開示したものの種々異なる変更、置き換え、変形および改良を行い得ることが理解されよう。
【００６７】
本発明におけるどの記載も、任意の具体的な要素、ステップまたは機能が、特許請求の範囲に含まれなければならない本質的な要素であることを示していると解釈すべきなく、特許に係わる事項の範囲は、請求項だけによって定められる。さらに、「means for（〜のための手段）」という語句そのものに現在分詞が続いていないかぎり、米国特許法第１１２条第６段落が適用され得る請求項はない。
【図１】
0006049944.tif 000002
【図２】
0006049944.tif 000003
【図３Ａ】
0006049944.tif 000004
【図３Ｂ】
0006049944.tif 000005
【図４】
0006049944.tif 000006
【図５Ａ】
0006049944.tif 000007
【図５Ｂ】
0006049944.tif 000008
【図５Ｃ】
0006049944.tif 000009
【図５Ｄ】
0006049944.tif 000010
【図６】
0006049944.tif 000011
【図７Ａ】
0006049944.tif 000012
【図７Ｂ】
0006049944.tif 000013
【図７Ｃ】
0006049944.tif 000014
【図７Ｄ】
0006049944.tif 000015
【図７Ｅ】
0006049944.tif 000016
【図７Ｆ】
0006049944.tif 000017
【図７Ｇ】
0006049944.tif 000018
【図７Ｈ】
0006049944.tif 000019
【図７Ｉ】
0006049944.tif 000020
【図７Ｊ】
0006049944.tif 000021