(57)【特許請求の範囲】
【請求項１】
コンピュータにより実行される探索方法であって、
該コンピュータは、入力手段と、プロセッサと、データベースを格納するメモリ手段と、表示手段とを備え、
該方法は、
（ａ）該入力手段が、２次元オブジェクトの最初のスケッチを受け取るステップであって、該２次元オブジェクトは、複数の予め定義された３次元幾何エンティティから構成される３次元モデルを表す、ステップと、
（ｂ）該プロセッサが、該最初のスケッチに対してボクセル化を実行することにより、該最初のスケッチに対応するボクセルのセットを生成するステップと、
（ｃ）該プロセッサが、該ボクセルのセットをベクトル形式に変換するステップであって、該ベクトル形式は、３つの直交ビューに関係する直交ビューデータを含む形式である、ステップと、
（ｄ）該プロセッサが、該複数の予め定義された３次元幾何エンティティのセットを決定し、該プロセッサが、該直交ビューデータを比較することにより、該複数の予め定義された３次元幾何エンティティのセットの各エンティティの間の接続を決定し、該プロセッサが、該決定された複数の予め定義された３次元幾何エンティティのセットと該決定されたセットの各エンティティの間の接続とを用いて、該直交ビューデータを、所望の３次元モデルに対応するスケルトンに変換することによって、スケルトン化を実行するステップであって、該複数の予め定義された３次元幾何エンティティのセットは、複数の稜線と、該複数の稜線のうちの少なくとも１つによって形成される複数のループとを含む、ステップと、
（ｅ）該プロセッサが、該変換されたスケルトンを形成するために組み合わせて用いられる該決定された複数の予め定義された３次元幾何エンティティのセットから稜線のセットとループのセットとを識別し、該プロセッサが、該変換されたスケルトンを用いて、ノードのセットをさらに識別するステップであって、該ノードのセット内の各ノードは、識別された稜線の終点、または該識別された稜線のうちの少なくとも２つの稜線およびループの交点に対応する、ステップと、
（ｆ）該プロセッサが、該データベースを検索して、該稜線、ループおよびノードの識別されたセットを用いて、該メモリ手段に格納された複数の３次元モデルから少なくとも１つの３次元モデルを取得するステップであって、該複数の３次元モデルの各々は、該複数の３次元モデルの各々が当該３次元モデルから識別可能な稜線、ループまたはノードの関連付けられたセットに基づいて検索可能なように、該データベースに格納されている、ステップと、
（ｇ）該表示手段が、該取得された少なくとも１つの３次元モデルの各々を表示するステップと
を包含する、方法。
【請求項２】
前記プロセッサが、直交ビューデータをスケルトンに変換することによって、スケルトン化を実行するステップは、
前記プロセッサが、前記決定された複数の予め定義された３次元幾何エンティティのセットを用いて、該直交ビューデータを、前記所望の３次元モデルに対応する２次元スケルトンに変換することによって、スケルトン化を実行するステップと、
該プロセッサが、前記決定されたセットの各エンティティの間の接続を用いて、該２次元スケルトンを３次元スケルトンにさらに変換するステップと
をさらに包含する、請求項１に記載の方法。
【請求項３】
前記プロセッサにより識別するステップは、前記稜線の識別されたセット、前記ループの識別されたセットおよび前記ノードの識別されたセットの選択数に関連性評価を関連付けることをさらに包含し、
該プロセッサにより検索するステップは、該稜線、ループおよびノードの識別されたセットの各々に関連付けられた該関連性評価に基づいて、前記メモリ手段に格納された複数の３次元モデルから前記少なくとも１つの３次元モデルを検索することをさらに包含する、請求項１に記載の方法。
【請求項４】
前記関連性評価は、前記プロセッサにより実行されるさらなる検索ステップに対する優先フィルタとして用いられる、請求項３に記載の方法。
【請求項５】
前記稜線、ループおよびノードの関連付けられたセットの各々は、複数の関連クラスタとして構成され、検索可能であり、各クラスタは、該稜線、ループおよびノードの関連付けられたセットの選択数を含む、請求項１に記載の方法。
【請求項６】
前記直交ビューデータをスケルトンに変換することによって、スケルトン化を実行するステップは、
前記プロセッサが、前記決定された複数の予め定義された３次元幾何エンティティのセットを用いて、該直交ビューデータを、前記所望の３次元モデルに対応する２次元スケルトンに変換することによって、スケルトン化を実行するステップと、
該プロセッサが、該２次元スケルトンの２次元頂点の各々から、該２次元スケルトンの各ビューについて候補の３次元頂点を生成するステップと、
該プロセッサが、候補の３次元フェースを、該生成された候補の３次元稜線のセットから生成するステップであって、該生成された候補の３次元稜線のセットの各々は、共通のサーフェスを共有する候補の３次元稜線を含む、ステップと、
該プロセッサが、該３次元フェースを組み立てることにより、該所望の３次元モデルの成分に対応する１つ以上の３次元オブジェクトを該候補の３次元フェースから生成するステップと、
該所望の３次元モデルに対応するスケルトンとして、該１つ以上の３次元オブジェクトを前記受け取られた２次元オブジェクトに関連付けるステップと
をさらに包含する、請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（優先権）
本出願は、米国仮出願第６０／４４２、３７３号、２００３年１月２５日出願の、”３Ｄ形状探索システムのアーキテクチャおよび記述（Ａｒｃｈｉｔｅｃｔｕｒｅ  ａｎｄ  Ｄｅｓｃｒｉｐｔｉｏｎ  ｆｏｒ  ３Ｄ  Ｓｈａｐｅ  Ｓｅａｒｃｈ  Ｓｙｓｔｅｍ）”の優先権を主張する。この開示はここに引例として組み込まれている。
【０００２】
（技術分野）
本発明の実施の形態は一般に、探索および検索に関し、特に詳しくは、３次元オブジェクトに基づく探索および検索に関する。
【背景技術】
【０００３】
（背景情報）
テキストおよび画像のサーチエンジンは、過去１０年の間に相当開発されてきた。本発明は、コンピュータコンピュータ支援設計（ＣＡＤ）モデルのリポジトリから３次元（３Ｄ）モデルを探索することを扱う。
【０００４】
ＣＡＤおよびコンピュータ支援製造（ＣＡＭ）ソフトウェアは、独立型環境からネットワークベースの協働環境へと成長してきた。３Ｄグラフィックスハードウェアにおける進歩は、３ＤＣＡＤモデルの使用がますます増加していることに大きく寄与している。３Ｄジオメトリの使用が増加することは、内部設計リポジトリにつながっていくことになる。これは、ＣＡＤモデル等製品関連情報および仕様書、製造プラン等のコンテキスト固有の文書を含むものである。通常、設計リポジトリは、企業内の各種の部署／人員に拡大する分散型データベースに類似するものである。
【０００５】
設計者はしばしば、コストおよび時間の要件に拘束されるので、設計を再利用することは魅力的な選択肢である。設計を再利用するには、部品や組み立て品の過去の設計を探索することが必要になる。また、設計者が企業内で交代するので、多くの”ナレッジ”が過去の設計者と共に失われる。この”失われたコーポレートナレッジ”の大抵のものは、過去の設計を探索することにより、取り戻すことができる。明らかに、大量の設計リポジトリから過去の設計およびナレッジ再利用することは、製品開発時間を短縮する重要な要因となり、企業に効果のある戦略的な利点を与えることができる。
【０００６】
従って、次の問題に向けた技術を開発する必要がある。
・設計の再利用：企業内の過去の設計を探索することにより、設計を再利用することができる。クラスタマップインターフェースまたは３Ｄ簡易形状生成インターフェースを用いて、設計されたものに最も類似している部品を選択またスケッチすることができる。
・コスト見積もり：検索した部品の設計履歴を利用可能にするので、コスト見積もり処理が可能になる。設計者は最も類似の部品を探すことができるので、エラーを減らし、コスト見積もりにかかる時間を短縮することができる。
・見積もり処理の支援：見積もり要求を受け取ると、過去の設計を探索するのにしばしば時間がかかる。従って、見積もり要求（ＲＦＱ）に対応する時間を短縮する必要がある。
・部品分類システム：大抵の企業では、データベース内の部品を分類する人員を特に雇用している。これには時間はかからないが、人間の精度に依存していることにもなる。従って、この処理を合理化して、所望の基準値に基づいて部品を分類する必要がある。
・重複する部品の低減：部品を設計する前に、類似の部品がすでに設計されているかどうか、設計者はデータベースの利用可能な部品を探索して調べることができるようにする必要がある。
・３Ｄ形状のためのサーチエンジン：現在利用可能な３Ｄ形状サーチエンジンでは良い結果が得られない。従って、従来の３Ｄ形状サーチエンジンを改良する必要がある。
【０００７】
現在利用可能なデータベース探索技術は、キーワードまたは自然言語ベースの方法を用いている。しかしながら、３ＤＣＡＤデータベースの場合は、コンテキストがＣＡＤモデルから切り離されているので、キーワードを用いてＣＡＤモデルを探索することが困難である。また、モデルファイルネームを用いるキーワード探索等のアプローチが非効率的であるのは、大抵の企業は経時的に変化するネーミング方法を有しているからである。さらに、大抵の設計者は、製品コンテキストよりも形状を記憶する傾向があるので、キーワードベースの探索はユーザにとって魅力のあるものではない。
【０００８】
また、新薬発見およびドッキング等に応用するための３Ｄタンパク質構造を探索することを改良する必要がある。
【発明の開示】
【課題を解決するための手段】
【０００９】
（発明の要約）
本発明の実施の形態は、３Ｄ探索および検索の技術を提供する。特に詳しくは、またある実施の形態では、３Ｄ形状（オブジェクト）をグラフィックデータ構造として表現して、１つ以上の探索可能なデータ記憶装置に格納する。各３Ｄ形状または特定の３Ｄ形状の部品を、特徴ベクトルを用いてデータ記憶装置から検索することができる。特徴ベクトルは、位相情報および３Ｄ形状または３Ｄ形状の部品内のエンティティに対応付けられたローカル幾何情報を含む。
【００１０】
実施の形態のあるものでは、３Ｄ形状または３Ｄ形状の一部を、１つ以上の探索可能なデータ記憶装置に対する探索要求として用いることができる。探索要求として組み込まれた３Ｄ形状または部分を、対話形式でゼロから構成したり、３Ｄ形状または部品のデータ記憶装置を閲覧することにより選択したり、あるいは既存の３Ｄ形状または部品からペーストしたり選択したりすることができる。
【００１１】
さらに別の実施の形態では、３Ｄ探索要求から返送されたアンサーセットを、１つ以上の関連クラスタに構成することができる。各クラスタは、アンサーセットの特定の部分に対応付けられた１つ以上の３Ｄ形状または部品を含む。返送された結果およびクラスタを、対話形式で関連性または非関連性を評価して、変更した探索要求として再送信することができる。サーチャーが結果に満足するまで、対話回数および再送信して変更した探索要求数を続けることができる。また、関連性情報をサーチャーに対応付けて、サーチャーが発行した任意の次の探索要求をコンピュータで変更することができる。
【発明を実施するための最良の形態】
【００１２】
（詳細な説明）
各種の本発明の実施の形態では、”ユーザ”という用語を提示している。ユーザはサーチャーであり、サーチャーは、エージェント、サービス、アプリケーション、物理ユーザ、その他等のコンピュータがアクセス可能な媒体として表される任意のエンティティとすることができる。また、各種の実施の形態ではデータベースの仕様が述べられているが、データベースを、電子ファイルになったもの、ディレクトリ、リレーショナルデータベース、オブジェクト指向データベース、データウェアハウス等の、任意のデータ記憶装置またはデータ記憶装置の集合とすることができることを理解されたい。最後に、３Ｄオブジェクトとは３Ｄ形状または３Ｄ形状の部分の電子表現であって、場合によっては３Ｄオブジェクトのあるのもを３Ｄモデルとして表示することができる。
【００１３】
図１は、３Ｄ形状探索システム１００を示す図である。システム１００はユーザに、３Ｄモデルの大量のリポジトリから類似のモデルを探索するプラットフォームを提供する。複雑な３Ｄモデルを、スケルトンと呼ばれるより簡単な表現に縮小する。３Ｄモデルおよびスケルトンとから重要な際立った特徴を抽出して、データベース内に特徴ベクトルとして保存する。最後に、データベースを探索して、結果をクラスタ化した出力として示す。複雑な３Ｄモデルを簡易なスケルトン形式（以下、”スケルトン化”という）に変換して、スケルトン表現を探索して、出力をクラスタ化するという処理の間、図１に示すようにたくさんの中間ステップが発生する。
【００１４】
探索システム１００を、以下を含むように構成する。
・形状の小変更に反応しない。
・ジオメトリおよび位相の組み合わせ。
・形状のマルチレベルおよびマルチカテゴリ表現。
・精度および計算効率。
・簡単で、ユーザがカスタマイズ可能なクエリー構成。
【００１５】
（動的なクエリー生成および変更）
３Ｄ探索システム１００は、ユーザにインテリジェントインターフェースを提供する。ユーザがモデルのスケルトンをスケッチしてこれをクエリーとして実行するだけでなく、ユーザが検索したモデルのスケルトンを動的に変更して、さらにユーザの意図する部品を発見する機会を向上させるように、３Ｄスケルトンモデリングインターフェースを実行する。システム１００は、３Ｄスケルトンの生成および３Ｄ操作が可能な最初のものである。モデルのスケルトンの位相に対して変更が行われた場合は、システム１００は再び探索を行うが、スケルトンのジオメトリに対する変更だけであれば、検索をやり直すだけである。この相互作用を介して、クエリーはさらにユーザの意図に近いものになり、システム１００はその性能を効率的に向上させることができる。
【００１６】
（ローカルクエリー）
従来、ユーザが生成できるのは１種類のクエリーだけで、入力ＣＡＤモデルを特定することにより類似のＣＡＤモデルを検索していたが、ユーザの要件を最適に満たすことはない。例えば、ユーザが特定の特徴により重要性（または強調）を与えたいと所望したり、彼／彼女の主な探索対象がモデル全体自体ではなくＣＡＤモデルのローカルな特徴であったりすることがある。このような柔軟性は、過去の装置およびそれらのインターフェースでは不可能である。各探索は異なるものであり、ユーザインターフェースは異なる要件を処理するのに十分な柔軟性を持つ必要がある。さらに、より良いクエリー処理は、各種の要求に対応する必要がある。システム１００は、ユーザ要件により適切に合致するように設計され、これを達成するのに必要なクエリー処理を向上させるように設計されている。
【００１７】
（探索基準の柔軟性／普遍性）
過去の技術は一般に、２つの形状の比較に重点が置かれていた。しかし、アプリケーション分野に特有のたくさんの問題がある。主たる問題の１つは、ＣＡＤモデルの類似性の解釈である。例えば、製造分野では、ＣＡＤモデルの各種の機械加工特徴が非常に重要であると考えられている。任意の形状記述子の数字を計算するにあたって、確率論的形状分散方法では、特定のドメインをカスタマイズ可能することができないので、ユーザのニーズに適切に答えることができない。
【００１８】
（類似性の測定）
最後に、ユーザが入力と結果との間の形状の類似性を定量化したい場合がある。これは、形状関数方法ではある程度可能である。しかし、類似性自体の定義がユーザに依存している。従って、インターフェースは、形状の類似性に対するユーザの考え方を学習するようにする必要がある。これは、既存のリサー利技術では不可能なことである。
【００１９】
（形状：ジオメトリおよび位相の組み合わせ）
任意の３Ｄモデルの形状は、位相とその構成要素エンティティのジオメトリとの組み合わせである。ジオメトリはエンティティの形状、サイズおよび位置の定量的な大きさであるが、位相はモデルの幾何エンティティの間の関係情報である。従って、任意の写実的な形状表現は、これら２つの考えを十分に反映する必要がある。これらの特性を別々に表現することにより、類似の形状について階層的探索方法が行えるようになる。
【００２０】
従来技術のアプローチは、形状をこれらの量の１つとして、あるいは’複合の程度’のいずれかとして表現しており、ジオメトリと位相とをまったく区別していない。例えば、モーメント不変量および形状分散等の形状記述子は形状の’複合の程度’であって、モデルのジオメトリと位相とをまったく区別していない。ユーザの意図に基づく探索が可能でなければ、特定のアプローチは総じてまったく記述できない。グラフ／木等の関連構造で３Ｄモデルを表現することにより、ジオメトリと位相との間の違いをさらに維持することができる。しかしながら、グラフ表現だけでは、ユーザの意図を把握する問題を解決することはできない。従って、探索／索引処理の間に幾何情報を効率的に活用するには、さらにリサーチを行うことが必要である。
【００２１】
（木データ構造に代わるグラフデータ構造）
ここに新規の方法、システム、およびデータ構造について述べることで、なぜ従来の技術が機械工学等のある環境に応用できないかという理由を説明することにより、本発明を過去のアプローチから区別する。
【００２２】
従来のスケルトン／ショックグラフベースの３Ｄ形状照合システムは、マルチメデイア検索のために開発された。飛行機（全体の、概略の３Ｄモデル）、自動車、果物等のモデルが一般的である３Ｄオブジェクトは、ドメイン固有のものではない。従来のアプローチのあるものでは、位相にホールのないモデルについてテストが行われていたのは、閉じたホールを構成するサーフェス集合を有するソリッド形状を従来の木構造で取り込むことができないからである。しかしながら、このような閉ループエンティティに遭遇することはよくあり、特に機械工学分野で顕著である。これはそれらの表現のグラフ構造と呼ばれるものである。また、他の従来のアプローチは、ローカルジオメトリまたは部分的照合を比較するのには適応できないものである。ここに示すシステム１００および他の新規の技術は、スケルトンをグラフデータ構造に変換して、ループをソリッド形状に取り込むものである。
【００２３】
（多段階探索方法）
従来技術では、１つのクエリーしか生成できず、この１つのクエリーを改良することができない。またその探索は、事前に定義した、特徴ベクトルの固定集合に基づくものであり、該当する形状の検索を保証するものではない。システム１００により、ユーザが多段階探索インターフェースを連続して用いて、探索結果を選別することができるようになる。このアプローチは該当する形状の検索を保証するものではないが、該当する形状を検索する機会を増やすので、従来のアプローチに比べて基本的な改良をもたらす。モーメント不変量、ボリューム、アスペクト比、および固有値を含む多数の特徴をユーザに提供して、多段階クエリーを生成する際の支援を行うことができる。
【００２４】
（計算効率）
計算効率により、システムが莫大なボリュームを処理する能力を制御する。境界表現グラフに関する従来の方法のなかには、境界表現グラフが簡易３Ｄモデルのサイズとしては非常に大きくなると、非効率的なものがある。正確なグラフ照合アルゴリズムはＮＰ困難となる。従って、境界表現グラフ方法を用いて任意のＣＡＤモデルをデータベース内の何百万もの部品と比較することは、スーパーコンピュータでも不可能と思われる。
【００２５】
図２は、ＣＡＤおよび境界表現グラフを示す図２００である。図２００は、簡易部品とその対応する境界表現グラフとを示す。３Ｄモデルの比較のために開発された大抵の従来のアプローチは、ドメインナレッジを用いることに失敗している。この方向ではショック／スケルトングラフベースのアプローチが１歩先んじているが、モデルに存在する情報を適切に検索してグラフ／木照合問題の計算量を低減していない。本発明は、エンティティ（ループ／稜線）の種類、ローカルジオメトリおよびボリューム情報を含むドメイン固有のナレッジを用いて、探索の計算量を低減して、ドメイン固有の探索システムを開発する。
【００２６】
（ディスクＩ／Ｏ効率）
ディスクＩ／Ｏに関する従来の効率は、けして満足の行くものではない。ＣＡＤモデルの数が非常に多くなると、ディスクＩ／Ｏ時間がクエリー時間の大きな部分をしめるようになる。例えば、データベースに百万個のモデルがあり、ディスクＩ／Ｏ時間が１５ミリ秒で、および各ＣＡＤモデルが１つのディスクページ（あるリサーチでは、照合から得られるディスクファイルは平均、１ＭＢのディスク空間を占める）とすると、データベース内のレコードを柔軟にスキャンするのに４時間かかる。従って、データに索引を付けて探索速度を上げることが重要である。しかしながら、非常に成果を収めているＢ＋木等の現在のデータベースシステムの索引構造は、これら多次元データには適当でない。従って、不要なディスクＩ／Ｏを選別する新しい索引が非常に重要である。しかしながら、この問題には十分重点が置かれていなかった。この理由の１つは、現在の３Ｄ形状探索の大抵のものが、効率的なアプローチのために、今だ非常に少ない数のＣＡＤモデルを探索することに重点が置いているからである。
【００２７】
（システム処理）
３Ｄモデルの探索処理について、次の動作シーケンスにより説明することができる：
（１．ユーザインターフェース側）
（１．１．クエリースケッチインターフェース）
・必要な形状を３Ｄでスケッチする。または、
・必要な３Ｄ形状のスケルトン（棒線画）をスケッチする。または、
・モデルクラスタからモデルを選択する。または、
・ローカルハードドライブから３Ｄソリッドモデルを選択する。または、
・３Ｄモデルのオーソグラフィックビューを実行するかスケッチする。
【００２８】
（１．２．特徴ベクトルインターフェース）
・探索およびクラスタ化のための特徴ベクトルの必要な組み合わせを選択する。
【００２９】
（２．サーバまたはサービス処理）
（２．１．ボクセル化）
・３Ｄモデルをニュートラルの離散ボクセル表現に変換する。
・３Ｄモデルおよびボクセル特徴ベクトルを抽出して保存する。
【００３０】
（２．２．スケルトン化）
ボクセルモデルの検出した位相により、３つのスケルトン化動作を実行する（詳細は後で示す）。
【００３１】
（２．２．１．角柱状スケルトン化）
（２．２．２．管状スケルトン化）
・簡易型ワイヤフレーム。
・スケルトン特徴ベクトルを抽出して保存する。
【００３２】
（２．３．グラフの生成）
・スケルトンタイプにより、スケルトンからエンティティを検出する（ループ、稜線またはサーフェス）。
・グラフ特徴ベクトルを抽出して保存する。
【００３３】
（２．４．２Ｄ図の３Ｄモデルへの変換）
・ノイズ消去。
・次元およびタイトルブロックの抽出および消去。
・２Ｄシンニングまたは２Ｄスケルトン化。
・稜線およびエンティティの認識。
・オーソグラフィックビューにおいて連続閉セグメントループを得る。
・内部独立ループの識別。
・ＭＡＴを用いた非独立ループのスケルトン化。
・スケルトンの３Ｄスケルトンへの変換。
・任意の上記スケルトン化方法を用いた３Ｄモデルのスケルトンへの変換。
【００３４】
（３．データベース、探索およびクラスタ化）
（３．１．グラフの比較）
・グラフ／サブグラフ同定、対応付けグラフ技術または確率論的グラフ照合技術のいずれかによる。
【００３５】
（３．２．多次元索引構造の生成）
・Ｒ−木、Ｒ＋木、ＫＤ−木、Ｘ−木または任意の他の空間パーティショニング技術を用いて、データベースに索引を付ける。
【００３６】
（３．３．特徴ベクトルの比較）
・特徴ベクトルのデフォルトの組み合わせを用いない場合は、１．２に記載のユーザ基本設定に基づく。
【００３７】
（３．４．データベース内のクラスタモデル）
・自己組織化マップ（ＳＯＭ）または任意の他の階層型クラスタ化技術を用いる。
【００３８】
（３．５．クラスタマップディスプレイを介したユーザへの結果の提示）
・各クラスタから典型的なモデルを選んで、ユーザ一フレンドリーインターフェースを介して部品画像を表示する。
・モデルを選んで閲覧できるようにする。
【００３９】
（３．６．関連性フィードバック）
・ユーザが該当する部品、該当しない部品を選ぶ。
・サーバを介して結果をデータベースに返送する。
・ユーザ関連性フィードバック結果を用いて、クラスタマップを更新する。
・結果をユーザに再表示する。
【００４０】
（３．７．学習エージェント）
・ニューラルネットワーク等の学習アルゴリズムが、ユーザ関連性フィードバック基本設定を”学習”して、ユーザプロファイルに保存する。
【００４１】
（３．８．多段階探索）
・連続または段階的なやり方で、ユーザが異なる特徴ベクトルおよびスケルトングラフを用いて探索結果を絞り込めるようにする。類似性比較は、上記３．１および３．３に述べたものと同じである。システム１００のアーキテクチャについては、図１に高レベルで最もよく説明する事ができる。以下のセクションでは、本発明の実施の形態についてより詳細に説明する。
【００４２】
（１．ユーザインターフェース側）
再び図１を参照すると、ユーザインターフェースは基本的に３つのインターフェースから成る。すなわち、スケッチによるクエリー（Ｑｕｅｒｙ−ｂｙ−ｓｋｅｔｃｈ：ＱＢＳ）、例示によるクエリー（Ｑｕｅｒｙ−ｂｙ−ｅｘａｍｐｌｅ：ＱＢＥ）、および特徴ベクトルインターフェースである。ＱＢＳインターフェースは、２つの異なるバージョンを実行する。（ｉ）３Ｄソリッドモデルスケッチインターフェースと、（ｉｉ）３Ｄスケルトンスケッチインターフェースとである。ＱＢＥインターフェースは、（ｉ）クラスタマップインターフェースと、（ｉｉ）ローカルハードドライブと、（ｉｉｉ）２Ｄ図インターフェースとから成る。
【００４３】
（１．１．クエリーインターフェース）
次のサブセクションでは、本発明のシステム（ＱＢＳおよびＱＢＥ）において、３Ｄソリッドモデル、３Ｄスケルトンモデルとして直接に、または３Ｄモデルの２Ｄビューからのいずれかからクエリーを構成するために用いられる各種の方法およびモジュールについて説明する。
【００４４】
（１．１．１．３Ｄソリッドモデルスケッチ）
（モジュールの説明）
このモジュールは、概略の幾何形状をできるだけ素早く生成する、ウェブベースでプラットフォーム独立型システムを提供する。これは、ハイブリッドアプローチを形状生成に用いる。例えば、特徴ベースでスケッチベースのソリッドモデリングを用いる。スケッチインターフェースにより、マウスストロークを解釈して、これら離散ストロークを、ベクトル化アルゴリズムを用いて線、点、円弧といったプリミティブエンティティに変換する。次に、変換したスケッチを用いて、ソリッドジオメトリを形成することができる。また、ユーザは、ブロック、円柱ホール等の事前に定義した形状特徴をプリミティブ構成ブロックとして用いることもできる。次に、これら特徴のフェースをキャンバスとして用いて、さらにスケッチを行うことができる。
【００４５】
システム１００は以下のように動作する。
・形状探索ウェブサイトにログインした後、ユーザは新しいセッションを開始する。
・ユーザはすでに存在するＣＡＤファイルをアップロードするか、または開く。
・モデリングを開始する別の方法は、ブロック、円柱といった、事前に生成したソリッド形状特徴をドラッグアンドドロップしたり、マウスまたはペンをドラッグして概略のスケッチプロファイルをスケッチしたりすることにより行う。
・スケッチを生成したならば、これをサーバに送って押し出しを行う。個別のボタンを用いるか、押し出しを示すマウスまたはペンストロークを介するかのいずれかにより、これを行うことができる。
・サーバはコマンドを受信して、これにより、スケッチを押し出しソリッドに変換して、ファセット化オブジェクトをクライアントに返送する。
・新たに生成したソリッドを、クライアントウインドウで表示する。
・ユーザはソリッドのフェースを選択して、この上でスケッチを行う。
・ドラッグした、事前に定義した形状特徴を編集して、概略の形状を得ることができる。この編集には、特徴の次元または位置の変更、特徴のコピーや特徴の削除または表示しないこと等が含まれる。
・概略の幾何形状により、ソリッドに不要のぶら下がりや突き出した部分がある場合がある。ユーザは次に、３Ｄイレーザを用いて不要の部分を消去することができる。
・計算集約型機能の大部分、例えばソリッドモデリング、特徴生成および変更を、クライアントのサイズを小さくするために、サーバに移行する。
【００４６】
（モジュールアーキテクチャ）
図３は、モジュールインビューアーキテクチャ（Ｍｏｄｕｌｅ−ｉｎ−Ｖｉｅｗ  Ａｒｃｈｉｔｅｃｔｕｒｅ：ＭＶＡ）で発生する相互作用を示す図３００である。提案したインターフェースは、ツールＣＡＤアーキテクチャに基づく。これは、モデルビューコントローラ（Ｍｏｄｅｌ−Ｖｉｅｗ−Ｃｏｎｔｒｏｌｌｅｒ：ＭＶＣ）アーキテクチャから成る。これがモジュールの要を形成する。
・モデルはアプリケーションオブジェクトである。この場合のジオメトリオブジェクトである。これは、生成したジオメトリの詳細を含む。この場合のジオメトリは、生成したソリッド形状から成る。
・ビューは、モデルの画面表現である。マジシャンライブラリを用いて、それらの対応する相対変換を用いてファセット化ジオメトリオブジェクトを表示する。
・コントローラはユーザインターフェースがユーザ入力に反応する手段である。マジシャンライブラリを用いて、選択、ドラッグ等のユーザ入力を取り込む。
【００４７】
図４は、ＭＶＡ３００の機能を示す図４００である。この場合、図４００は生成した特徴およびスケッチのリストを有する。特徴は事前に定義したオブジェクトで、フェース、稜線のリストといったデータを有する。押し出されたスケッチを特徴に変換する。元となるスケッチに対してポインタを有している場合に限り、これらは事前に定義した特徴と同じである。図４００は、ユーザに提示するファセット化データから成る。ユーザはこのデータで対話して、これを変更することができる。
【００４８】
図５は、特徴インターフェースオブジェクト５００を示す図である。これによりさらに、モデルが複数の生成物を保つことができる階層へのもう１段階を表すこともできる。各生成物は個別のジオメトリオブジェクトを有し、生成した、または事前に定義した特徴を順に有することになる。ジオメトリはまた、特徴にブール演算を行った後で形成したソリッドモデルのファセット化表現も有することになる。ユーザに表示するために、このファセット化構造５００を、ビューオブジェクトで用いる。
【００４９】
特徴モジュール：特徴は事前に定義した３Ｄ形状で、ソリッドモデルの生成に直接用いることができる。しばしば、ユーザは同じ形状を何回もモデルに保ちたいことがある。最も共通する例は、矩形ソリッドブロック、円柱、ホール、スロット等があげられる。ジオメトリ生成速度を向上するには、作業空間に配置できるようにこのような形状をいつも準備する。これら形状は、作業空間に最初に配置された時に、デフォルトサイズを有している。しかしながら、特徴の各フェースは、特徴のサイズおよび位置を操作するためのハンドルを有する。特徴を選択すると、これらのハンドルを表示して、ユーザがこれらのハンドルをドラッグして、対話形式で特徴のサイズを変更する。ＡＣＩＳソリッドモデルを用いて特徴を生成する。これはサーバに送られて、次にファセット化されてフェースのリストを生成する。各特徴を用いて、これらフェースの稜線を抽出して保存する。すべての特徴は、単に稜線のリストとして表される。従って、ユーザが特徴を選択すると、それはワイヤフレーム方式で示される。しかしながら、特徴の実際の３Ｄモデルをサーバ側に保存して、次にこれを用いて、前に生成した全形状についてブール演算を行って、最終的な形状モデルを得る。各スケッチして押し出した形状もまたユーザ生成の特徴で、後で用いるために別々に保存することができる。従って、インターフェースは非常にカスタマイズ可能なものである。これらのユーザ生成の特徴は、これらを生成した元となるスケッチに対してポインタを有している。
【００５０】
スケッチモジュール：ユーザがスケッチ面を定義した後で、スケッチは、画面に対して並列になるようにスケッチ面を自動的に回転することにより開始する。ユーザは次に、アウトラインまたはプロファイルをスケッチする。プロファイルを次に、ベクトル化アルゴリズムによりベクトルに解釈する。例示だけであるが、ダブ・ドリ（Ｄｏｖ  Ｄｏｒｉ）およびリュー・インウェン（Ｌｉｕ  Ｗｅｎｙｉｎ）のベクトル化アルゴリズム等である。これらのベクトルでワイヤのプロファイルを形成して、押し出しによりソリッドを形成する。
【００５１】
形状生成ツール：処理を簡単にするため、ツールをいくつか選択として用意する。これらのツールは以下のものとすることができる。
【００５２】
スケッチ面：ユーザはソリッド形状の任意のフェースを選択して、次の方法のいずれかでスケッチ面を生成する。例示のスケッチ面ツール６００を図６に示す。このツールで次の処理を実行することができる：
１．すでに生成したソリッドのフェースに対するオフセット
２．３つの点を選択して、それを介して面を送る
３．既存のソリッドの任意の稜線を選択して、それを介して面を生成する
４．ソリッドの任意の稜線でスケッチ面を回転する。
【００５３】
切断面：切断面は、スケッチ面と同様である。しかしながら、ユーザが対話形式で用いてソリッドに切り込みを入れる。面は、任意のスケッチしたプロファイルとすることができる。例示の切断面ツール７００を図７に示す。図７は、切断面ツール７００の動作を示している。このツール７００はフェースをドラッグする機能を用い、次にＡＣＩＳを用い、最後にソリッドに切り込みを形成する。
【００５４】
デジタルペンまたはマウスストロークを介する押し出し：この機能は、２Ｄ形状プロファイルから押し出しを形成するために重要である。一旦スケッチループが完成すれば、ユーザがマウスまたはデジタルペンといった同じ装置を用いてプロファイルの押し出しを行えることは、直感での使用を超えるものになる。従って、ユーザがループを完成させた後、ユーザに次のマウスストロークまたはドラッグを介する押し出しの実行を促し、彼／彼女が所望するプロファイルの押し出しを行うまで、対話形式でデプスを指定する。これは切断面を用いることにいっそう類似している。例示の押し出しツール８００を、図８に示す。
【００５５】
３Ｄイレーザ：この機能を用いて、ソリッド特徴のぶら下がり部分を消去することができる。このために、ソリッド形状のボクセル化モデルを用いる。図９の例示の３Ｄイレーザツール９００に示すように、ユーザは選択により消去するボクセルを選択して、次にこれが終わったら、ソリッドモデルを用いて選択したボクセルのブール減算を行って、結果をユーザに表示する。ユーザは、元となるボクセルモデルを見ることもできるし、見なくても良い。このツール９００を用いて、モデル内の任意の不一致を消去する。
【００５６】
（１．１．２．３Ｄスケルトン生成および変更インターフェース）
ユーザがモデルのスケルトンをスケッチして、これをクエリーとして実行するだけでなく、ユーザが検索したモデルのスケルトンを動的に変更させることができるように、３Ｄスケルトンモデリングインターフェースを実行する。モデルの位相に対して変更が行われた場合は、システムは再び探索を行うが、スケルトンのジオメトリに対する変更だけであれば、検索結果を整理し直すだけである。クエリーはさらにユーザの意図に近いものになり、システムはその性能を効率的に向上させることができる。
【００５７】
ユーザがクエリーのための適した例を見つけられないという事実により、このインターフェースを起動する。システムにより、ユーザはまず、プリミティブ形状を組み立てることにより３Ｄスケルトンを構成して、次に３Ｄ空間で形状を操作することができる（図１０の、３Ｄ形状操作のビューを示す図１０００を参照のこと）。得られた”スケルトン”は、ちょうどスケルトン化から得られたスケルトンファイルのように、基本的な位相および幾何情報を含む。現在、プリミティブ形状は、直線および曲線等の稜線と、円および矩形等のループとを含む。３Ｄ操作の注釈は、回転、パン、スケーリング、ズーム等を含む。これらは、個別の形状プリミティブおよびグローバルアセンブリの両方のために設計されている。また、インターフェースにより、ユーザが選択した形状を削除し、現在の構成をクリアし、スケルトングラフファイルをインポートしてこれをビジュアル化し、構築したスケルトンクエリーとして実行して類似の形状を探索することが可能になる。
【００５８】
（１．１．３．クラスタマップインターフェース）
セクション３．５の記載と以下の記載を参照のこと。
【００５９】
（１．１．４．ローカルハードドライブインターフェース）
すでに生成したＣＡＤファイルを選択する選択肢をユーザに与える。ファイルは、ユーザがファイルにアクセス可能な場所ならばいずれの場所にも配置できる。ファイルは、本発明でサポートされる任意のＣＡＤフォーマットとすることができる。標準のポップアップウインドウをユーザに用意して、ＣＡＤファイルを選択できるようにする。
【００６０】
（１．１．５．２Ｄ図インターフェース）
ユーザには、それらのスキャンした図をサーバに送信する選択肢を用意する。
【００６１】
（１．２．特徴ベクトルインターフェース）
本発明は、図１１の図１１００に示すように、ユーザがユーザの探索意図を正確に記述することにより、特徴ベクトルを部分的または全体的にカスタム化する技術を含む。探索クエリーを複数のレベル／段階で実行して、より良い結果を得る。このインターフェースにより、ユーザが異なる特徴ベクトルを探索処理内のこれら各種の層に割り当てることが可能になる。これにより、ユーザがユーザの探索意図をより正確に記述することを支援する。ユーザはさらに、ユーザの探索を向上させるのに適用できるように、重みをこれら特徴ベクトルに再割り当てすることができる。インターフェース内で各種の選択肢を実行することによりシステムに命令して、正確な、または部分的な探索を行うことができる。部分的探索クエリーはサブグラフ同定を含み、これはスケルトングラフレベルで処理される。また、ユーザは、ニューラルネットワークを用いて効率的なクエリー結果を得ることができる。ユーザは、自分の探索基本設定を設定して、これを自分のプロファイルに保存することもできる。ユーザは、自分の頻繁に用いる要件ごとに、複数のプロファイルを各種の探索状況に定義することができる。また、このインターフェースにより、ユーザがこれらのプロファイルを管理して、関連性フィードバックをシステムに備えることも可能になる。
【００６２】
（２．サーバまたはサービス側）
（２．１．ボクセル化）
ボクセル化は、３Ｄ幾何オブジェクトをそれらの連続幾何表現からボクセルの集合に変換する処理である。これにより、連続オブジェクトを３Ｄ離散空間に最もよく近似する。３Ｄ離散空間は、デカルト座標（ｘ，ｙ，ｚ）で定義される３Ｄユークリッド空間の一体化したグリッド点の集合である。ボクセルは、一体化したグリッド点を中心とした空間格子ボリュームである。ボクセル値を｛０，１｝にマッピングする。”１”が割り当てられたボクセルを”ブラック”ボクセルと呼び、不透明なオブジェクトを表し、”０”が割り当てられたものを”ホワイト”ボクセルとして、透明な背景を表す。図１２は、２Ｄ空間の離散化の一例を示す図１２００である。
【００６３】
頂点、稜線またはフェースを共有している場合は（図１２を参照のこと）、２つのボクセルは”２６隣接”である。各ボクセルは２６個のこのような隣接ボクセルを有する。８個は頂点（角）を中心ボクセルと共有し、１２個は稜線を共有し、６個はフェースを共有している。フェース共有ボクセルを”６隣接”と定義して、稜線共有およびフェース共有ボクセルを”１８隣接”と定義する。ボクセル化の従来のアプローチでは、多角形モデル、パラメトリック曲線または陰関数表面を入力として用いる。スキャン充填または反復細分アルゴリズムを、ボクセル化に用いる。ボクセル化の前に、モデルを変換およびスケーリングに対して正規化する。スケール要因をデータベースに保存して、さらに計算を行う。
【００６４】
一実施の形態では、３Ｄモデルのボクセル化のＡＣＩＳソリッドモデリングカーネルを用いる。ＡＣＩＳカーネルに対する入力は、境界表現モデルである。図１３は、ボクセル化アルゴリズムの例示の疑似コードを示す図１３００である。一実施の形態では、３Ｄモデルの境界ボックスを構築して、最小境界ボックス次元により選択したボクセルサイズ、またはユーザ指定のボクセルサイズを用いる。次に、離散境界ボックスの次元を計算する。３Ｄモデルの全フェースおよび稜線にはそれぞれ、フェースＩＤと稜線ＩＤとが割り当てられていて、スタックを各フェースおよび各稜線に生成する。各種のプログラム条件やメモリ等により、フェースおよび稜線スタックを独立させることも、依存させることもできる。ボクセルサイズを増分することにより３Ｄモデルをループして、モデルとの各ボクセルの交点を調べる。’１’を、ボクセルを含む位置でテキストファイルに追加して’０’をボクセルを含まない位置にそれぞれ追加する。ボクセルを含むすべての位置には、モデルと交差するすべてのフェースおよび稜線が与えられて、対応するフェースおよび稜線のフェースＩＤと稜線ＩＤとを検討中のボクセルに保存する。ボクセルと交差するフェースおよび稜線については、検討中のボクセルをフェースおよび稜線スタックに保存する。従って、現時点では、フェース／稜線からボクセルを参照したり、その逆を行ったりすることができる。この文書のいずれかに記載の簡易型ワイヤレームアルゴリズムへの入力としてこれを用いることができる。多角形モデルのボクセル化についても行うことができることに留意することは重要である。多角形モデルのボクセル化処理について、次のセクションで示す。
【００６５】
３Ｄモデルは、フェースオブジェクトのリストから成る。フェースオブジェクトは、得られる３次元ソリッドのフェースを表す。フェースは、フェースの頂点の整列したリストと、図１４に示す例示の３Ｄモデル１４００に示すようなファセットオブジェクトのリストとから成る。ファセットリストは、ソリッドのフェースを三角形にすることにより生成した三角形のリストを含む。この構造は、ソリッドモデルの正しいワイヤフレームビューを示すことができるので、ファセット三角形のリストだけを保存することよりも良い。この構造はまた、フェースに属するすべての三角形の情報を維持する。これにより、クライアント側でフェースを選ぶことができるようになる。図１５は、立方体１５００のこのデータ構造の一例を示す。立方体１５００は、６つのフェースオブジェクトから成る。フェースオブジェクトは、点およびファセットオブジェクトから成る。例えば、フェース２は４点（Ａ、Ｂ、Ｃ、およびＤ）と２つのファセットオブジェクトから成る。図１５に示すように、ファセットオブジェクトの１つは、３つの点Ａ、ＢおよびＣと、ファセットに対する法線と、およびファセットが属するフェース数とを保存する。ファセットとフェースとの間のマッピングがわかっているので、多角形モデルのボクセル化を行って、上記図１３の例示の疑似コード１３００で述べたように、フェースＩＤを各ボクセルに保存することができる。
【００６６】
例示のボクセル化アルゴリズムと前述のアプローチとの間の大きな違いについて、以下に列挙する。
【００６７】
並列化：ボクセル化は簡易ドメイン分解問題なので、並列計算の対象となる。各スレーブ処理装置にドメイン範囲を割り当てることができ、マスタ処理装置は結果を集めることができる。
【００６８】
ボクセルサイズ：３Ｄエンジニアリングモデルのボクセル化のサイズ範囲を拡大する。大抵のエンジニアリング形状に対する理想的なボクセルサイズは、最小境界ボックス次元の１／３２〜１／６４倍の範囲にある。”理想的な”ボクセルサイズの条件は、部品の大きな特徴がボクセルモデルに取り込まれていることである。すなわち、非常に小さな特徴がボクセル化する間に失われてしまうのは、特徴サイズがボクセルサイズよりも小さいからである。
【００６９】
適応ボクセル化：３Ｄモデルの適応ボクセル化を実行する。適応ボクセル化は、３Ｄモデルをボクセル化して、ボクセルモデルを３Ｄモデルとの正確度について評価して、および最後に許容できるボクセルモデルが得られるまで、前のボクセルサイズをより小さいボクセルサイズに成るまで再びボクセルかするという反復処理である。
【００７０】
フェース／稜線情報のボクセルへの保存：３Ｄモデルはフェース／稜線情報を各サーフェスボクセルに保存している。ボクセルに保存にしたフェースＩＤの一例を、図１６の図１６００に示す。ボクセル化の前に、フェースおよび稜線ＩＤを、３Ｄモデルの各フェースおよび稜線に割り当てる。ボクセル化が実行されているので、各ボクセルに対するフェース／稜線の交点を調べて、フェース／稜線ＩＤを交差しているボクセルに保存する。稜線ＩＤ保存処理は、図１６に示すフェースＩＤの保存処理と同様である。フェース／稜線ＩＤ情報を簡易型ワイヤフレームに用いる。これは本発明で後からより詳細に説明する。
【００７１】
ソリッドモデリングカーネルを用いるボクセル化：各種の本発明の実施の形態では、任意の利用可能なアルゴリズムを用いてボクセル化を実行するのとは反対に、ＡＣＩＳソリッドモデリングカーネルを用いてボクセル化を実行している。これが重要な理由は、従来利用可能なアルゴリズムでは、フェースおよび稜線ＩＤをボクセルモデルに保存することが不可能だからである。
【００７２】
他にも本ボクセル化アルゴリズムをいろいろ用いることができる。例えば、
距離ボリューム生成：距離ボリュームを、ボリュームデータセット内で表現する。特定のボクセルに保存にした特定の値はそれを表す３Ｄモデルのサーフェスまでの最短距離を表している。距離ボリューム表現は、多数のグラフィックスアプリケーションにとって重要なデータセットであり、製造における視覚化領域では最も顕著である。モデルのサーフェスからの距離を計算して、ボクセルデータ構造にそれを保存することができるので、距離ボリュームは、ボクセル化にＡＣＩＳを用いることでの自然の成り行きである。距離ボリュームを用いるアプリケーションのいくつかとして、ＣＳＧサーフェス評価、オフセットサーフェス生成、実形状製造における最大または最小厚さの範囲の決定、および３Ｄモデルモルフィングがあげられる。
【００７３】
（２．２．スケルトン化）
（２．２．１．スケルトン化の定義）
各種の本発明の実施の形態では、スケルトン表現（以下”スケルトン”）を、３Ｄ部品の主形状の最小表現”として定義している。言い換えれば、スケルトンは、小さな円弧やホール等の形状の”小さな”特徴は無視しているが、”主な”特徴は保持して、部品の”主な”位相関係を保っている簡易型表現である。スケルトン化は、このようなスケルトンを生成する任意の処理である。
【００７４】
スケルトンは、
ａ．境界から生成され、
ｂ．接続性を保ち、
ｃ．境界ノイズが無く、
ｄ．回転不変量で、
ｅ．計算が簡易である。
【００７５】
（２．２．２．スケルトンの数学的モデルおよびスケルトン化）
（スケルトンの正規の定義）
スケルトンは、タプルＳ＝〈Ｇ，Ｔ〉ただし、
Ｇ＝｛ｇ１，ｇ２，…，ｇｎ｝はスケルトンを構成する幾何エンティティの有限集合で、且つ、
Ｔが、要素Ｇの間の位相接続性を定義する、ｎ×ｎ隣接関係行列である。
【００７６】
スケルトンが存在するには、Ｇを以下の集合として定義する：
Ｇ＝Ｅ∪Ｌ∪Ｓ∪Ｈ、ただし、
Ｅ＝｛ｅ１，ｅ２，…，ｅｐ｝は稜線の集合で、
Ｌ＝｛ｌ１，ｌ２，…，ｌｑ｝はループの集合で、
Ｓ＝｛ｓ１，ｓ２，…，ｓｒ｝はサーフェスの集合で、
Ｈ＝｛ｈ１，ｈ２，…，ｈｓ｝はホールの集合である。
しかしながら、集合Ｅ，Ｌ，Ｓ，およびＨは、インスタンスＳについてすべてがゼロ以外である必要はない。
【００７７】
行列Ｔを次のように定義する：
Ｔ＝［ｔｉｊ］ｎ×ｎ、ただし、
ｔｉｊ＝ｇｉがｇｊに隣接しているならばＮ
そうでないならば０
且つ、Ｎは、エンティティｇｉとｇｊとの間の接続性を記述するゼロ以外の数である。
【００７８】
スケルトンが存在するには、ＧとＴとはゼロ以外でなければならない。
【００７９】
（幾何特徴の正規の定義）
形状Ψの幾何特徴γを、スケルトンＳたった１つの幾何エンティティに縮小する幾何エンティティｅｉ（ｉ＝１．．ｎ）の集合として定義する。場合によっては、全形状を１つの幾何特徴とすることが可能である。
【００８０】
図１７に示す例示の形状１７００では、Ψ内の幾何エンティティが３つ以上であっても、形状Ψに２つの幾何特徴が示されている。スケルトンＳは２つの幾何エンティティを有する。ループおよび稜線である。
【００８１】
（形状の正規の定義）
形状は、タプルΨ＜γ，τ＞である。ただし、γ＝｛γ１，γ２，…，γｍ｝形状を構成する幾何特徴の集合で、且つ、
τは、要素γの間の位相接続性を定義するｍ×ｍの隣接関係である。
【００８２】
行列τ＝［τｕｖ］ｍ×ｍ、ただし、
τｉｊ＝γｕがγｖに隣接しているならば１
そうでないならば０
形状が存在するには、γとτとが共にゼロ以外である。
【００８３】
（スケルトン化の正規の定義）
スケルトン化を、マッピングＯ：Ψｋ→Ｓｋ−□と定義する。ただし、
Ｓｋは、形状Ψｋをスケルトン化演算子にかけて生成したもので、□はスケルトン化の間に除去したノイズ係数である。
【００８４】
スケルトン化マッピングの一例である図１８に示すように、本コンテキストスケルトン化は多対１マッピングであることが容易にわかる。
【００８５】
（２．２．３．形状のカテゴリ分類）
工学的形状を、次のカテゴリに分類することができる：
ｉ．ソリッド：ソリッド様形状は通常、そのサイズと比較して、素材の使用率が高い。大抵、一定でない壁の厚さを有し、特徴がほとんどない。ソリッド形状は通常、機械加工または鍛造で製造される。成形または鋳造等の実形状処理で製造されるソリッド部品は非常に少ない。
ｉｉ．シェル：シェル様形状は通常、そのサイズと比較して、素材の使用率はきわめて小さい。大抵、一定の厚さを有し、簡易な形状である。ソリッド形状は通常、シート状金属または成形または鋳造等の実形状処理で製造される。管状形状についても、シェル様形状のカテゴリに入る。
ｉｉｉ．ハイブリッド：名称が示唆するように、ハイブリッド形状は、上記２つの形状の組み合わせである。形状のある部分はソリッド様特徴を有し、ある部分はシェル様特徴を有する。通常、成形または鋳造により製造される。
【００８６】
図１９に例示の各タイプの形状を示す。
【００８７】
（２．２．４．スケルトン化方法）
上記の形状の３つのカテゴリに対するスケルトン化方法は互いに異なることがわかる。また図１９は、形状の異なるカテゴリに対するスケルトン化方法を示す。例えば、ソリッド形状のための角柱状スケルトン化方法、特別なカテゴリである管状形状（これはシェル様である）のための管状スケルトン化方法、残りの形状（シェル様またはハイブリッドである）のための簡易型ワイヤフレーム方法である。角柱状、管状および簡易型ワイヤフレームスケルトンの任意の組み合わせを、ユーザが適切に相互作用させてスケルトンとして形成することもできる。
【００８８】
（２．２．４．１．角柱状スケルトン化）
スケルトンの概念は、形状の一意の記述子である。従って、本発明の実施の形態のあるものでは、スケルトンは、類似の工学的特性を持つ形状の種類について説明している。各種の本実施の形態は、類似のスケルトンを探索する。これにより、類似の形状を導く。画像処理の関連領域では、スケルトン化処理を用いて、複雑なピクセル（２Ｄ）またはボクセル（３Ｄ）離散ジオメトリをワイヤ（１Ｄ）表現に単純化する。スケルトンから３Ｄジオメトリを生成する３つのアプローチは次の通りである：
ｉ．距離変換：距離変換は、スケルトン化で広く用いられている。早く簡単に計算を行う。しかしながら、遠くからスケルトンを変換するには、かなりのノイズ除去が必要となり、しばしば位相が不安定になる。すなわち、位相を保てない。
ｉｉ．ユークリッドスケルトン：ユークリッドスケルトンは、内側軸変換とも呼ばれる。これらは計算上複雑で、スケルトン化の間に不要の付属物を生成する。これらの理由により、ユークリッドスケルトンを本発明の各種の実施の形態で用いることは、好ましくない。しかしながら、さらに簡潔化処理を発展させて、本発明で用いることができる。ユークリッドスケルトンの一例を図２０に示す。
ｉｉｉ．シンニングアルゴリズム：シンニングアルゴリズムは、医用画像作成分野で広く用いられている。シンニングは、ボクセルモデルをボクセルの厚さであるスケルトン表現に縮小する処理である。条件位相保存する条件を調べた後で、ボクセルを消去する。６つの方向は通常、位相接続性を調べるために定義される。上下東西南北である。シンニングアルゴリズムには、従来２つのタイプがある。直列と並列である。
【００８９】
名称が示唆するように、直列アルゴリズムは、ボクセルを６つの方向の任意の１つから別々に消去することにより、シンニングを実行する。並列アルゴリズムは、ボクセルを６つの方向すべてから同時に消去する。実際には、これらアルゴリズムのいずれもシンニングに用いられる。本発明では、任意の並列シンニングアルゴリズムはいずれも、中間サーフェスを用いるというよりもむしろ、３Ｄボクセルモデルを内側軸に縮小する。その中間サーフェスおよびその中間の、例示の３Ｄボクセルモデルを図２１に示す。位相接続性、小変更下での安定性、および計算効率の要件のバランスが最もよくとれているので、シンニングは、本発明でスケルトン化方法として用いる方法である。また、距離変換とシンニングとの組み合わせを用いて、角柱状スケルトンを得ることができる。
【００９０】
（２．２．４．２．管状スケルトン化）
管状モデルを、１つ以上の管構造を有する３Ｄジオメトリモデルとして定義する。シンニングアルゴリズムは、角柱状部品に基づいて、３Ｄ管状部品のシンニングを行うと、不測の結果が生じることが間々ある。例示の図２２の管状部品に示すように、部品が複数の管から成る場合は、シンニングアルゴリズムはうまく作用しない。この場合は、内部キャビティボリューム充填（Ｆｉｌｌｉｎｇ  Ｉｎｔｅｒｎａｌ  Ｃａｖｉｔｙ  Ｖｏｌｕｍｅ：ＦＩＣＶ）と呼ばれる前処理工程を部品ボクセルに用いて、管状部品ボクセルを角柱状部品ボクセルに変換することができる。
【００９１】
図２３は、充填して管状部品ボクセルを角柱状部品ボクセルに変換する必要があるボリュームを示す。図２３の陰影の付いたボリュームを、管状キャビティボリュームと呼ぶ。ＦＩＣＶに基本的な概念は、管状キャビティボリュームの充填である。管状キャビティボリュームを充填するには、キャビティボリュームのどの部分を充填するのか、モデルの境界ボリューム内の全キャビティボリュームから識別する必要がある。ボクセルモデルを介してキャビティボリュームを得ることができる。ボクセル化の後、ボクセルがモデル内に存在する場合は、各ボクセルは”１”の値を有し、ボクセルがモデルの外にあれば、”０”の値を有する。図２４の画像２はボクセル化の結果を示し、図２４の画像４はキャビティボリュームを表す逆のボクセル化の結果を示す。しかしながら、キャビティボリュームが常にキャビティボリュームを意味するわけではないのは、キャビティボリュームが境界ボリューム内の余分なボリュームも含んでいるからである。ボクセルの位置に基づいて、キャビティボリュームを、内部キャビティボリュームおよび外部キャビティボリュームとして分類することができる。内部キャビティボリュームは、部分が囲むキャビティボリュームの一部である。管状構造では、この内部キャビティボリュームにより管のキャビティボリュームを表すことができる。内部キャビティボリュームとは逆に、外部キャビティボリュームは、モデル境界の外側に位置するキャビティボリュームの一部である。ＦＩＣＶ処理は、キャビティボリュームの内部キャビティボリュームと呼ばれる管状のボリュームをどのように識別するかということに大きく寄与している。
【００９２】
内部キャビティの主な特性の１つは、その視認性である。大抵の場合、内部キャビティボリュームはモデルに隠れているか、遮られているので、外部ボリュームよりも見えにくくなっている。ボリュームがどの程度見えているかを測定するには、視認性の度合を定義する。視認性の度合は、ボリュームがどの程度見えているか識別するものである。ボリュームが全方向から完全に見えている場合は、その視認性の度合は１である。ボリュームが完全に他のオブジェクトから遮断されている場合はどの方向からも見えないので、その視認性の度合は０である。”Ａ”のキャビティボクセル（図２５に図示）の場合、管状ボリュームの入り口にあるので、ボクセル半分見えているためその視認性は０．５である。ＦＩＣＶ処理の基本的なやり方は、その視認性を用いて内部キャビティボリュームを識別することである。まず、ＦＩＣＶによりキャビティボリュームをボクセル化して、各キャビティボクセルの視認性の度合を測定して、その視認性の度合いが低い場合はキャビティボクセルを内部キャビティとして決定する。
【００９３】
数学的な形式で視認性の度合いを表すには、ソリッド角度の概念を本発明の実施の形態に用いる。ソリッド角度を、半径の二乗に数値的に等しいそのサーフェス状の領域により、球体の中心に振られた角度として定義する。図２６は、ソリッド角度の概念を示す。図からわかるように、図２６以外に、形状の領域はまったく問題ではない。同じ領域を持たない球体のサーフェス状の任意の形状により、同じサイズのソリッド角度を定義する。また、図２６００はソリッド角度を定義する要素を示すだけで、ソリッド角度それ自体ではない。ソリッド角度は円すい形に切り取られた空間の定量的なもので、その頂点として球体の中心と、その球状断面の１つとして球体サーフェス状の領域とを持ち、無限に伸びている。最大ソリッド角度は約１２．５７で、単位球面の全領域に対応し、４πである。ソリッド角度の標準単位は、ステラジアン（ｓｒ）である（数学的に、ソリッド角度に単位はないが、実用上ステラジアンを割り当てている）。すべての可視方向を単位球面に投影すると、視認性の度合は次のようになる。
視認性の度合＝単位球面の可視領域／単位球面のサーフェス領域
指向性の視認性を、ある方向でボクセルが見えるか見えないかによって定義する。ボクセルのすべての指向性の視認性がわかれば、次に視認性の度合を計算することができる。ボクセルからの方向の数無限なので、ボクセルのすべての指向性の視認性を計算する計算コストは非常に高くなる。計算コストを節約するには、離散指向性の視認性を計算する。離散指向性の視認性という発想は、ボクセル内の有限数の可視方向を等しく分散して定義して、可視領域に対し可視方向の全数をマッピングすることである。Ｎ個の等しく分散した方向を定義して、Ｍ個の可視方向が存在するとすると、視認性の度合いを、Ｍ／Ｎと表すことができる。分散型等しく分散した方向を集めるには、本発明では、マスクと呼ぶＮ×Ｎ×Ｎサイズの立方体を用いる。図２７は、３×３×３マスクを示す。図２７では、各境界ボクセルはボクセルからの可能な可視方向を表す。例えば、指向性のマスクボクセル”Ａ”は、デカルト座標の方向（−１，−１，ｌ）を表す。ボクセルが方向”Ａ”からみえるならば、次にマスクボクセル”Ａ”が見えると印をつける。そうでなければ、見えないと印をつける。この場合、各マスクボクセルは、単位球面を４π／２６（全単位球面サーフェス領域／可能な方向の数）ステラジアン占めているものと考えられる。２６方向の視認性をすべて得た後で、視認性の度合を以下の計算式の定義から計算することができる。
視認性の度合＝単位球面内の可視領域／単位球面のサーフェス領域
＝可視マスクボクセル数／全マスクボクセル数
この発想は、Ｎ×Ｎ×Ｎ個のマスクに発展させることができる。例えば、５×５×５マスクは、５３−３３＝９８個の指向性マスクボクセルをマスクの境界に有し、Ｎ×Ｎ×Ｎ個のマスクは、Ｎ３−（Ｎ−２）３＝６Ｎ２−１２Ｎ＋８個の指向性マスクボクセルを有することになる。
【００９４】
方向（ａ，ｂ，ｃ）の指向性の視認性を、光線追跡法を用いて計算することができる。光線（ａ，ｂ，ｃ）を中心ボクセルに放射する。任意のモデルボクセルを通過したならば、次にボクセルは（ａ，ｂ，ｃ）方向で見えなくなる。言い換えれば、光線が全キャビティボクセルを通過して、最後にその境界当たるなら、次にボクセルは方向（ａ，ｂ，ｃ）で見えることになる。（ａ，ｂ，ｃ）方向の指向性の視認性をＮ×Ｎ×Ｎマスクについて決定するには、マスクの中心から光線（ａ，ｂ，ｃ）が通過したボクセルのすべての位置を知る必要がある。３Ｄベルセンハムアルゴリズムは、個の問題を解決する最も一般的に用いられているアルゴリズムである。
【００９５】
本発明の実施の形態では、ボクセルを通過して、３Ｄ空間に展開するために２Ｄブレセンハムアルゴリズムをどのように応用するか、示している。図２８は、ブレセンハムアルゴリズムが２次元空間でどのように作用するか示している。２Ｄ面のにｕｙ＝ｖｘ線があり、ペンを原点から”Ｐ”の位置まで引いたと仮定する。次のステップは２つ考えられる。点Ａへの対角線と、点Ｂへの水平のステップである。
【００９６】
【数１】
0004516957.tif 000002
ならば、次に点Ａは点Ｂよりも完全線に近づき、そうでなければ、点Ｂが点Ａよりも近づく。次に、アルゴリズムにより、より近い点として次のステップを選択して、次のステップの発見を繰り返す。アルゴリズムを、３Ｄドメインに展開することができる。線
【００９７】
【数２】
0004516957.tif 000003
が３Ｄ面にあり、｜ｕ｜＞ｍａｘ（｜ｖ｜，｜ｗ｜）と仮定する。次に、ベルセンハイムアルゴリズムをＰ：（ｘ，ｙ）およびＱ：（ｘ，ｚ）ドメインに適応可能で、結果点の集合（ｘ１，ｙ１）、（Ｘ２，ｙ２）、（ｘ３，ｙ３）…および（ｘ１，ｚ１）、（ｘ２，ｚ２）、（ｘ３，ｚ３）…となる。次に、ＰドメインおよびＱドメインをｘで合成する。その結果、点の集合（ｘ１，ｖ１，ｚ１）、（ｘ２，ｙ２，ｚ２）、（ｘ３，ｙ３，ｚ３）…が得られる。
【００９８】
図２９は、２Ｄの７×５マスクにブレセンハムアルゴリズムを用いて、どのように指向性の視認性が得られるかを示している。ボクセルＡ（０，０）と方向マスクボクセルＢ（３，−２）がある。ボクセル”Ａ”の視認性の方向（３，−２）を調べるには、処理”ＦＩＣＶ”で、光線Ａ−Ｂが充填モデルボクセルで遮られているかどうか、光線Ａ−Ｂの全ボクセルを調べる。ブレセンハムアルゴリズムを適用した後、ボクセル”Ａ”と指向性のマスクボクセル”Ｂ”との間に位置する全ボクセル”ｃ”および”ｄ”｛ｃ（１，−１）、ｄ（２，−１）、Ｂ（３，−２）｝を計算することができる。ボクセルが充填されているかどうか、各ボクセルを調べる。ボクセル”ｃ”、”ｄ”または”Ｂ”がモデルボクセルならば、方向ＡＢ（３，−２）を、不可視方向と考える。そうでなければ、ベクトル（３，−２）をボクセルｃ（１，−１）−＞ｃ’（４，−３３）、ｄ（２，−１）−＞ｄ’（５，−３）、Ｂ（３，−２）−＞Ｂ’（６，−４）に進めることにより、テストを次のパターンに展開する。次に、ｃ’，ｄ’，Ｂ’ボクセルがモデルボクセルかどうか調べる。ボクセルの範囲が境界から出るまで、このテストを展開する。計算コストを低減するには、各キャビティボクセルの冗長計算を避けることができるように、３Ｄブレセンハムアルゴリズムの変数を各方向マスクに保存する。
【００９９】
一旦、全指向性の視認性情報を計算したならば、ボクセルが内部キャビティなのか外部キャビティなのか、視認性の度合から決定することが可能になる。これは、Ｎ×Ｎ×Ｎマスクのすべての可能な方向の全数で分割した、Ｎ×Ｎ×Ｎマスクのすべての可視方向の数である。統計的分析によれば、視認性の度合が０．３０より少なければボクセルを内部キャビティとして決定することが可能である。
【０１００】
内部キャビティボリュームの識別結果は、いろいろと応用することができる。応用例の１つは、鋳造領域におけるコアおよび分割コア候補を検出することである。本発明では、各内部キャビティボリュームが、分割方向によりコア候補部品を表している。分割方向を構成した後、本発明を適用して、コアの数を検出して、コアの形状の複雑性を計算することもできる。
【０１０１】
（２．２．４．３．簡易型ワイヤフレーム）
簡易型ワイヤフレームスケルトンは、ボクセル化したモデルから開始する。これは、３Ｄモデルのフェースおよび稜線に対する基準を有する簡易型ワイヤフレームの目的は、３Ｄモデルのすべての’主な’特徴／部分を保持して、３Ｄモデルの’主な’位相を保持することである。また詳細さのレベルの単純化を行うことができる。図３１に示すように、ボクセルに保存したフェースＩＤが２つ以上あるすべてのボクセルを保持することにより、ボクセルワイヤフレームモデルを構成する。
【０１０２】
簡易型ワイヤフレームを得る第１の工程は、データの前処理を行ってフェースループを識別することである。すべてのフェーススタックを考慮して、ボクセルを降順にソートする。ボクセルの降順に、スタックを選ぶ。各スタックは、ボクセルから開始して、隣接ボクセルとの隣接関係を調べて、連結リストタイプのデータ構造を’前’および’次の’ポインタで形成する。再び第１のボクセルになったら、ループを終了する。スタックのすべてのボクセルが横断していない場合は、フェースは内部ループを有している。横断していないボクセルから開始して、連結リストタイプのデータ構造を生成する前の工程を繰り返す。この様に、フェース内の全ループ（連結または非連結の）を識別することができる。残りの作業は、どのループが内部または外部であるか識別することである。別の方法を用いることができるが、フェースの各ループのボクセル数を調べるアプローチを用いることは、利点があって最適である。上位の数のボクセルは’外部’ループで、他のものはすべて、内部に含まれている。すなわち、’内部’ループである。従って、各ループが内部または外部であるか区別されて、フェーススタック内のすべてのループを得ることになる。識別したループが３Ｄモデルの稜線に沿って傾斜していることが容易にわかる。
【０１０３】
次のステップは、図３０に示すように、ボクセルワイヤフレーム内のループを横断させることである。すべてのボクセルおよびループが３Ｄモデル内の稜線に属しているので、モデルを稜線に沿って横断させることができるモデルの最も長い稜線、すなわち、最も大きい数値のボクセルを選ぶ。Ｎ×Ｎ×Ｎマスクを構築する。Ｎ＝２ｎ＋１（ｉ＝０，１，２…，ｎ）である。３Ｄモデルの次元および他のヒューリスティックによる。マスク内に有り、且つ３Ｄモデルの稜線を横断する任意のボクセルを’Ｄ’（削除を意味する）と印をつけるループを完全に横断させた後、ボクセルの削除により位相が大きく変化するかどうか調べる。図３２に示すように、位相の変更を、方向を速やかに変更する方向ベクトルにより識別する。削除の際に位相が大きく変化するボクセルを、横断させた際に削除したボクセルに連結する。ボクセルを削除する際に、削除したボクセルのフェースＩＤおよび稜線ＩＤを、それらを削除したボクセルに渡す。すべてのループを使うまでこの処理を繰り返す。これにより、図３３に示すように、第１のディテールのレベル（ＬＯＤ）の単純化が行われる。
【０１０４】
さらにＬＯＤ単純化を行うには、各保持したループのボクセル数を数えて、ループ間の関係を識別する。すなわち、交差するループ、または共通稜線を共有するループである。これにより、ボクセルに保存にした稜線ＩＤおよびフェースＩＤから識別することができる。モデルとして可能なＬＯＤ単純化の一例を、図３４に示す。
【０１０５】
ＣＡＤシステム製造業者がＣＡＤモデルにモデル特徴履歴を格納して、およびＣＡＤモデルを再実行できる場合は、本発明のようなＬＯＤ縮小を有することが可能である。このようなＬＯＤ縮小を、スケルトンとして用いることができる。
【０１０６】
（２．２．５．ディテールのレベル）
エンジニアリング部品の異なるディテールを、異なるレベルでスケルトングラフで取り込んで、同じ部品の解像度とする。各種の実施の形態では、スケルトングラフの階層型集合により、３Ｄモデルを異なるレベルの解像度で表す。ここで述べる３Ｄモデルのボクセル解像度を変更することにより、各種の階層型スケルトングラフを生成する３Ｄモデルのボクセル数を、その境界ボックスの最も小さな大きさに基づいて決定する。ボクセルサイズをｓ／２”として計算する。ｓが最も小さな境界ボックスで、ｎが所望の解像度のレベルである。図３５は、ｎの値を変更して生成したいくつかのスケルトンを生成するための例示の疑似コードを示す。
【０１０７】
階層型構造は、人の認知の研究で十分サポートされている。このような研究の１つは、形状組織に対する知覚アプローチが動的なものであることを示唆している。半順序は形状記述の一体部分である仮説的発展または形態形成に基づいていることが明白である。従来のアプローチでは、差異が視覚的にすべて見えない形状は、結局概算に終わってしまう。一般にオブジェクトの形状についての人の理解は、”遠くから近くへ”、”外側から内側へ”、”全体から細部へ”という原理にしたがっている。
【０１０８】
階層型スケルトングラフ構造は、形状記述に対する動的なアプローチの一例である。動的なアプローチを用いる利点は、異なる解像度で類似の形状を検出できることである。例えば、図３６の形状を考える。これら形状は視覚的に類似であるが、従来のアプローチにより非常に異なる形状記述子を持っている。同じボクセル解像度でのこれら形状のスケルトンも、やはり異なる。しかしながら、それぞれボクセル解像度が異なる類似のスケルトンを生成する。従って、あるディテールのレベルでは、それらは類似のものとして検出できる。
【０１０９】
（２．３．グラフ生成）
上述の方法から得られたスケルトンを処理して高レベルのエンティティを識別できる。稜線、ループ、ノードである。稜線はボクセルの集合で、基本的な幾何エンティティを構成する。ループは、閉経路から成る１つの稜線または稜線群を構成する。ノードは、稜線／ループの終端／交点に記されるボクセルである。スケルトングラフの用語の一例を図３７に示す。ボリューム分散した例示のスケルトン稜線を図３８に示す。また、例示のスケルトンを有するＣＡＤモデルの一例を図３９に示す。
【０１１０】
各種の本発明の実施の形態では、これらエンティティをスケルトンから識別するスケルトンマーチングアルゴリズムを図４０の例示の疑似コード４０００として示している。図４０に示すこのマーチングアルゴリズム４０００は、マスクの集合を用いてスケルトン内の各ボクセルについて隣接ボクセルの種類を識別する。アルゴリズム４０００は、マーチングの開始ボクセルを選択する。通常のボクセルは２つの近傍を持つ。各ボクセルの近傍の数を、訪れたものとして計算する。ボクセルが３つ以上の近傍を持つ場合は、それは可能なノード候補である。また、ボクセルがその２６ボクセルの近隣で近傍を１つしか持たない場合は、それは終端ノードである。これらボクセル近傍域でさらに処理を行って、正しいノードを識別する。２つのノードの間の訪れたボクセルの集合が、稜線を構成する。次に、稜線を構成しているこのボクセルの集合に、エンティティＩＤを割り当てて、エンティティスタックに保存する。曲線フィッティングサブルーチンを用いて、稜線のジオメトリを近似する。これは、探索処理での正確な照合に用いることができる。
【０１１１】
マーチングアルゴリズム４０００がその任意のノードを再訪する場合は、ループが横断したことを意味する。次に、エンティティスタックを処理して稜線、またはループを形成する稜線の集合を識別する。アルゴリズム４０００は、ノードスタックを維持して、各ノードの分岐を１つ１つ処理する。一旦、すべてのボクセルを訪ねて関連稜線／ループ処理を行ったならば、アルゴリズム４０００を終了する。複数のループが同じスケルトンに存在する場合は、ループのいくつかが１つまたは多数の稜線を他のループと共有している。任意の稜線またはノードを他のループと共有しているループを簡易ループと呼ぶ。マーチングアルゴリズム４０００は、すべての簡易ループを識別する。スケルトン内のすべての非簡易ループを得るには、後処理をいくつか行う必要がある。スケルトングラフを深さ優先技術に基づいて分析して、稜線またはノードを共有している複数のループを識別する。
【０１１２】
稜線セグメント化は、連結頂点の間で識別された稜線を、容易に比較できる簡易幾何エンティティに変換することを扱う。これには、ねじれのない直線または平面曲線に属しているかどうか、調べることが含まれる。ボクセルが平面曲線を構成していなければ、曲線を２つの直交面に投影して、ねじれ値を用いて曲線を平面曲線にセグメント化する。集合内の各ボクセルを、３空間の離散点として扱う。線をはじめに、ボクセルの集合の２つの新たに検出した終点の間に構成する。このような直線の間の距離で、且つ、集合の最も遠いボクセルを用新しい頂点を決定して、新しいより簡易のエンティティを生成する。これにより、順に新しいノードおよび稜線を形成して、スケルトングラフを生成する。この処理が簡易エンティティを出力して、低レベルグラフマッチャーで曲率を用いて、２Ｄで容易に比較することができるようになる。図４１は、新しい頂点を検出して、曲線を簡易セグメントの集合（２つの平面曲線ｃ１およびＣ２、および直線稜線Ｅ３）に変換する際の、次のステップを示す。図４１の右側の図は、新しいエンティティの生成による、グラフ構造での必然的な変更を示す。
【０１１３】
最後に、スケルトングラフの稜線ループのリストをスケルトンノードに対するポインタで構成する。このグラフをデータベースに保存して、後の探索に用いる。従って、３Ｄモデルのジオメトリを、スケルトンの個別のエンティティ（図３８および図３９）およびスケルトングラフの位相に取り込む。
【０１１４】
（２．４．特徴ベクトルの抽出）
スケルトングラフをさらに処理して、探索に用いることができるグラフ関連特徴ベクトル成分を識別する。主な成分いくつかは、稜線ループ、ノード等の数である。スケルトングラフをさらに処理して、ノードのエンティティの間の位相連結の度合いを識別する。異なるタイプの位相連結を、スケルトングラフから計算されるエンティティ隣接関係行列内の適したラプラシアン係数で表す。さらに属性をスケルトングラフから導出して、以下に述べるグラフ比較で用いる。
【０１１５】
（２．５．２Ｄ図面の３Ｄスケルトンへの変換）
製造業企業の第１の課題は、より短い時間フレームとより低いコストとで、より良い製品を設計することである。近年、２ＤＣＡＤ設計技術を、３Ｄソリッドモデリングの利点を持つ技術へ移行することが顕著になっている。より低いコストと、コンピュータ支援ツールへのユニバーサルアクセスが可能なこととから、ほとんどすべての製造業企業は、何らかの種類のＣＡＤシステムを設置している。機械工学マガジンによる１９９８年の調査によると、９６％の機械工学のプロが現在ＣＡＤシステムを使用している。しかし、入手可能で使用が簡単な３Ｄモデリング技術の出現にも関わらず、製造業企業の大部分が、いまだにそれらの設計処理を２ＤＣＡＤ技術と図面データとに基づいている。コンピュータ援用工学マガジンの１９９８年の調査によると、６０パーセントを超えるＣＡＤエンジニアリング作業を２Ｄで行っていることがわかった。従って、設計者が、類似の３Ｄモデルと任意の２Ｄ図面の２Ｄ図面とを探索できる探索機構が必要である。このような探索システムにより、企業が受け継がれたデータを最大に再利用できるようになる。この分野の大抵の該当する作業は類似の部品および画像を検索するコンテンツ／コンテキストベースの探索機構に焦点がおかれている。ジオメトリベースの探索機構も提案されている。類似／照合２Ｄ画像および２Ｄ図面をデータベースから検索するものである。このようなシステムの１つが提案されている。抽出した線パターンまたはグラフから計算した属性のヒストグラムに基づく属性グラフを用いて、画像（図面）を表すものである。検索を、ヒストグラム比較またはグラフ照合を用いることのいずれかで実行する。このアプローチを適用した方法は形状情報を含んでいるが、３つのオーソグラフィックビューが互いに関連しているという事実が最大限に用いられていないこれら技術は、異なるビューを比較して、２つの図面が一致しているかいないか決定している。本発明の実施の形態では、２Ｄ図面を３Ｄモデルに変換して、類似のモデルを３Ｄで探索するアプローチを用いている。得られた３Ｄ表現を用いて３Ｄモデルの照合を探索することができるので、従って、ＣＡＤ図面／モデルのデータベースから２Ｄ図面および３Ｄモデルを探索することが可能になる。これにより、受け継がれたデータの再利用が可能になる。３Ｄ形状探索アプリケーションはすでに提示されていて、再構築した３Ｄモデルを用いて類似のモデルを探索することができる。３Ｄモデルをまず３Ｄスケルトンに変換して、次にそれを用いて探索する。従って、この技術では、３Ｄ形状サーチエンジンで用いることができる３Ｄスケルトンを編み出すことになる。
【０１１６】
エンジニアリング図面からソリッドモデルを構成することは、興味のある問題につながっている。この領域の研究は、約３０年前にさかのぼる。この３０年の間、多数の異なるアプローチを採用してこの問題を解決しているが、まずまず成功している。しかし、事実上問題はいまだ存在し、関心のあるトピックは問題の計算量の表示である。この分野での主な推進要因は、設計再利用、複雑な図面の整合性の自動的な確認、広い応用範囲である。これら生成したソリッドモデルは、ＦＥＡ、ＣＦＤ、または設計を分析し、最適化しあるいは評価するシミュレーション、製造の際の素早い試作品製造およびＮＣパスプランニングに応用されている。図面をソリッドモデルに変換する２つの広いアプローチがある。ソリッドモデルを２Ｄ図面から再構築する既存の方法は、おおまかに２つのタイプに分類できる。
＞ワイヤフレーム指向アプローチまたはボトムアップアプローチ。
＞ボリューム指向アプローチまたはトダウンアプローチ。
【０１１７】
ボトムアップアプローチは、ソリッドモデルを構成する順序で候補となる頂点、稜線およびフェースを組み立てたものである。トップダウンアプローチは、２Ｄ投影でパターンを認識することにより基本のソリッドを生成して、それらを組み立てて解を得るものである。
【０１１８】
従って、本発明の実施の形態は、２Ｄ図面を３Ｄスケルトンに変換する。
【０１１９】
（方法論）
２Ｄ図面を３Ｄスケルトンに変換することは、多数の異なるやり方で達成できる。方法のいくつかを次に列挙する：
ａ）ワイヤフレームベースのアプローチ：受け継いだデータはほとんど、スキャン図面として存在する。従って、入力するものはスキャン図面であると考えられる。以下の説明では、入力するものはスキャン図面であると仮定する。ワイヤフレームベースのアプローチ以下のようになる：
・前処理：このステップで、スキャンした２Ｄ図面をベクトル形式に変換する。ベクトル化した出力は、３つのオーソグラフィックビューに関係するデータを含む
・３Ｄワイヤ一フレームに対してベクトル化した図面：３つのオーソグラフィックビューを合成して、３Ｄワイヤフレームモデルを得る
・３Ｄモデルに対する３Ｄワイヤフレーム：次に、３Ｄワイヤフレームモデルをボリュームベースの３Ｄモデルに変換する
・３Ｄスケルトンに対する３Ｄモデル：次に、３Ｄモデルを正規化してスケルトン化して、３Ｄスケルトンを得る。３Ｄスケルトンを得た後の処理は、セクションｌ．２．で述べた
ｂ）ボリュームベースのアプローチ：ボリュームベースのアプローチは次の処理のようになる：
・前処理：このステップで、スキャンした２Ｄ図面をベクトル形式に変換する。ベクトル化した出力は、３つのオーソグラフィックビューに関係するデータを含む
・３Ｄモデルに対してベクトル化したビュー：次に、３つのオーソグラフィックビューモデルをボリュームベースの３Ｄモデルに変換する
・３Ｄスケルトンに対する３Ｄモデル：次に３Ｄモデルを正規化してスケルトン化して、３Ｄスケルトンを得る。３Ｄスケルトンを得た後の処理は、セクション１．２．で述べた
ｃ）中間３Ｄモデルを得ない３Ｄスケルトンへの直接変換：
・前処理：このステップで、スキャンした２Ｄ図面をベクトル形式に変換する。ベクトル化した出力は、３つのオーソグラフィックビューに関係するデータを含む
・ベクトル化したオーソグラフィックビュー３Ｄスケルトンに直接変換する：この処理は、上記セクション２．３で説明した。前処理が完了してすぐに、正規化を行って、エラーに関するサイズをすべて消去することに留意することが重要である
（用いられる用語：）
ここに示す各種の実施の形態を容易に理解するために、用いられる用語について説明する。
１）共通座標軸：１対のビューで共通の座標軸である。
２）基本稜線およびビュー−稜線：ビューＧに頂点が全くない場合は、ビューＧの２Ｄ稜線ＧＥを基本稜線という。これはＩＮ稜線ＧＥに存在する。そうでなければ、ビュー稜線という。
３）ループ：同一平面稜線の簡易閉路を、ループと定義する。
４）接頂点：１次連続の１対の稜線を分割する２Ｄビューの頂点を接（ｔａｎｇｅｎｃｙ）頂点という。接頂点の概念が１対の稜線に対応付けられているので、これをループの頂点に用いる。
５）影頂点：その頂点での稜線の接線がＧ１とＧ２との間の共通座標軸に対して垂直ならば、２ＤビューＧ１の接頂点Ｇ１Ｖを、隣接ビューＧ２に対する影という。従って、頂点を１対のビューに対して定義する。
６）ループの分類：ループＧＬ２を、次のようにループＧＬ１に対して分類することができる：
・ＧＬ２に属するすべての稜線ＧＥがループＧＬ１の内側にあるならば、ループＧＬ１はＩＮループＧＬ２を持つといえる
・ＧＬ２に属する稜線のいくつかが領域Ｐの外側にあって、その他が内側にある場合は、ＧＬ１はＯＮ−ＩＮループＧＬ２を持つといえる
・ＧＬ１はＯＮ−ＯＵＴループＧＬ２を持つといえる
７）ドットループおよびソリッドループ：その稜線のすべてをビュー内のソリッドラインタイプで表すならば、２Ｄビューのループをソリッドループという。そうでなければドットループという。
８）隣接ループ：ビュー内の２つのループが２つ以上の共通稜線を持つ場合は、次にこれらループを隣接ループという。
９）基本ループおよび非基本ループ：基本ループは、ビュー内にＯＮ−ＩＮループはないがＩＮループを持つような稜線ループである他のループはすべて、非基本ループという。図４２は、例示のループの分類を示す。図４２では、ビューｌの｛１，２，３，９，８，７，５，６，１｝、｛８，９，１０，７，８｝および｛３，４，５，７，１０，９，３｝が基本ループである。
１０）独立ループ：独立ループは、ビュー内にＯＮ−ＯＵＴループはないが、ＯＵＴループがありうる基本ループである。
１１）照合頂点：共通座標軸に沿って同じ座標値を持つ場合は、ビュー内の頂点Ｇ１Ｖを、別のビューＧ２内の頂点Ｇ２Ｖと一致するという。照合頂点をＧ１Ｖ＜−＞Ｇ２Ｖと記すことができる。ビュー内に、他のビューの頂点と一致する２つ以上の照合頂点が存在することもある。
１２）照合ループ：各頂点Ｇ２Ｖ⊂Ｇ２ＬがＧ１Ｖ⊂Ｇ１Ｌ内の少なくとも１つの頂点と一致する場合は、Ｇ１に属するループＧ１Ｌは、Ｇ２に属する照合ループＧ２Ｌを持つという（Ｇ１！＝Ｇ２）。１対のビューの影頂点でないすべての接頂点を消去することにより、Ｇ２Ｖを得る。Ｇ２ＬもＧ１Ｌを照合ループとして持つ必要はない。しかし持つ場合は、２つのループは上への照合ループとしてわかる。Ｇ１Ｌ＜−＞Ｇ２Ｌと記す。
１３）上への形成：上への形成は、次の特性を満たすループの集合（ｌ）である：
ａ．ｉに対し、ｊ＝１，…ｎ（ｉ！＝ｊ），ＧｉＬｉ＜−＞ＧｊＬｊ
ただし、ＧｉＬｉではＧＬｊは集合ｌに属する
ｂ．｜ｌ｜＝ｎ、ただし、ｎは入力２Ｄビューの数である。
１４）所望の稜線：入力オーソグラフィックビュー内の稜線で、現在のソリッドの２Ｄ投影にない稜線である。
【０１２０】
（方法の例示の実施の形態）
次のセクションでは、で参照した方法論の処理について述べる：
（１．前処理）
２Ｄ形状探索の問題を解決するために、まず書類を電子フォーマットに移す。最も広く用いられている方法はスキャンで、”ラスタ画像”を生成する。スキャンした図面を、ピクセル行列に分解する。書類に含まれる語義情報を電子ファイルには移せない。すなわち、符号の意味を解釈しない。従って、”ベクトル化”として知られる前処理ステップがいくつか必要となる。これにより、幾何エンティティ（直線、円弧等）および符号（文字等）の定義に必要な情報をラスタ画像から得る。従って、電子ファイルに保存した情報を解釈して用いて、特徴に基づいて探索して、ソリッドモデル／スケルトン再構成に基づいて再利用することができる。
【０１２１】
・
・
・スキャンタイプ
大抵のエンジニアリング図面は、１ビットモノクロームとしてスキャンできる。記憶空間をほとんど取らず、表示や処理が速い。古い青写真等の汚れがあって背景にしみのある図面ならば、８ビットグレースケールでスキャンして、画像作成ソフトウェアを用いて拡大して、背景やノイズを消去することができる（自動ベクトル化の前に、１対のグレーレベル閾値を用いてノイズおよび他のアーチファクトを取り除くことができる）。
【０１２２】
・ラスタベクトル変換
スキャンしたラスタ画像を得た後、これをベクトルフォーマットに変換して、さらに操作を行う。完全なラスタベクトル変換処理には、画像取得、前処理、ライントレース、テキスト抽出、形状認識、位相生成および属性割り当てである。パッケージのいくつかは、各種のタイプのアプリケーションとして販売されている。エンジニアリング図面変換では、ベクトルをラスタ画像から抽出するために、画像のどの部分が線からなり、これらの線がどこから開始してどこで終わるか決定する必要がある。通常、２つの処理が含まれる：
１．画像処理（背景およびノイズの消去）。
２．１ピクセル幅の線へのラスタ画像のシンニング。
３．ベクトル化（ピクセル線から稜線の抽出）。
４．エンティティ認識（直線、円弧円、線ループ等の定義）。
【０１２３】
厚みがあったり、しみがあったりする領域を１つのピクセル幅を持つアイテムに縮小して、画像をピクセル線に変換するアプローチが、シンニングである。多数の現在利用可能なシンニングおよび稜線検出方法は多数あって、それぞれ異なる数学的アルゴリズムを用いて、異なる結果を生成する。
【０１２４】
これら前処理ステップはすべて、該当する形状情報を抽出するために、画像に含まれる情報を理解する画像処理を含む。
【０１２５】
（２．ボトムアップアプローチを用いたオーソグラフィックビューの３Ｄモデルへの変換：）
ワイヤフレームアプローチはまた、ボトムアップアプローチとして知られている。この方法に含まれる各種の処理は次の通りである：
・各ビュー内の２Ｄ頂点から３Ｄ候補頂点を生成する。
・３Ｄ候補頂点から３Ｄ候補稜線を生成する。
・同じサーフェス上の３Ｄ候補稜線から３Ｄ候補フェースを構成する。
・候補フェースから３Ｄオブジェクトを構成する。
【０１２６】
（このアプローチのメリット）
・より正確である。
・通常ＡＣＩＳから得られる他の基準値についてもあることができる。
【０１２７】
（このアプローチのデメリット）
・入力ビューにおける不一致の結果として問題が発生する事がある。
・計算上非常に高価である。特に、バックトラッキングおよびヒューリスティックを行う可能性のある探索を行って、非常に多くの数の可能なソリッドから解となるソリッドを選ぶ探索を含むからである。
【０１２８】
（３．トップダウンアプローチを用いたオーソグラフィックビューの３Ｄモデルへの変換）
このアプローチに含まれる一般的な処理について以下に述べる：
１）疑似頂点スケルトンを構成する。
２）疑似ワイヤフレームを構成する。
３）仮想フェースを構成する。
４）切断稜線を導入する。
５）仮想ブロックを構成する。
６）決定する。
【０１２９】
図４３は、この処理の詳細をさらに示す。他の方法もある。別の実施の形態では、セルベースの再構成を用いる。同様に、２位相再構成についても開発されている。
【０１３０】
（このアプローチのメリット）
・常に入力ビューに一致した有効なソリッドモデルがある。
・ワイヤフレーム方法と比較して、計算上安価である。
・形状探索には、概略の３Ｄモデルだけで十分である。
【０１３１】
（このアプローチのデメリット）
・このアプローチは、処理可能なオブジェクトドメインだけに限られている。
【０１３２】
（４．中間３Ｄモデルのない３Ｄスケルトンへの直接変換）
上述のように、３Ｄ形状探索には、有効な３Ｄスケルトンで十分である。従って、任意のセットの２Ｄオーソグラフィックビューを直接３Ｄスケルトンに変換する方法を提示する。３つのオーソグラフィックビューそれぞれに、２Ｄスケルトンを得る。次に、オーソグラフィックビューを合成して、所望の３Ｄスケルトンを得る。この方法を、２Ｄスケルトン化処理によりさらに２つのアプローチに細分化する。第１のアプローチは、画像処理方法を用いてスケルトン化を実行ととで、第２のアプローチはジオメトリベースの方法を用いてスケルトン化を実行することである。次の説明では、２Ｄスケルトンを得るジオメトリベースのアプローチを前提としているが、このアプローチを適切に変更して第１のアプローチと共に実行することもできる。
【０１３３】
（二重接続連結リストおよびフェース構造の生成）
次に、３つのオーソグラフィックビューを構成する線セグメントを、二重接続連結リスト構造で表す。この方法を行って、二重接続連結リスト構造を構成する。二重接続連結リスト構造は、線セグメント配列の効率的な表現である。
【０１３４】
頂点のデータ構造を次のように表す：
・頂点のＸ座標。
・頂点のＹ座標。
・入射稜線のリスト（反時計回り方向の順の傾き）。
【０１３５】
ハーフ稜線のデータ構造を次のように表す。
・原点の頂点。
・ツインハーフ稜線（一方は入射）。
・入射フェース（各ハーフ稜線は正確に１つのフェースに属する）。
・次のハーフ稜線（フェースに属する次の連結ハーフ稜線）。
・前のハーフ稜線（フェースに属する前の連結ハーフ稜線）。
・傾き角度（０から３６０度の間）。
【０１３６】
フェースのデータ構造を次のように表す。
・外側ループの開始稜線。
・内側稜線の開始稜線のリスト。
【０１３７】
従って、反時計回り方向で頂点の入射稜線を移動するには、上記データ構造を最大に活かすように用いることができる。稜線が頂点に入射しているとすると、そのハーフ稜線の対をとって、そのハーフ稜線に対する次のハーフ稜線を検出することができる。これにより、任意の頂点から入射ハーフ稜線を得ることができる。得られたハーフ稜線が反時計回り方向の次のものであるのは、反時計回り方向に稜線をたどることによりフェースを構成するハーフ稜線を得たからである。同じ手順を繰り返して、この配列内のすべてのフェース／ループを検出することができる。データ構造およびアルゴリズムは、従来利用可能である。線セグメントのセットの配列をＯ（ｎＬｏｇｎ）時間で構成することができる。
【０１３８】
（３つのオーソグラフィックビューの頂点、稜線およびループの照合の識別）
頂点、稜線およびループの照合の識別について、従来詳細に説明されており、当業者が容易に利用できるようになっている。照合ループおよび頂点を検出する方法についても、説明されている：
１．頂点およびループの照合：ループおよび頂点の照合は、３Ｄソリッド内の同じエンティティに対応するエンティティをグルーピングすることを意味する。影頂点以外に接頂点を用いないが、異なるビュー内の１対の２つのループの照合を行う。また、共通座標の値により、頂点の照合を行う。ループが互いに一致しているならば、次に、上への照合としてフラグを立てる。
２．上への生成：上への生成を検出するには、ループ照合独立ループまたは基本ループと一致するループを検討する。ビュー内のループは、隣接ビュー内に基本または非基本照合ループを有することができる。まず始めに、検討中のすべての基本ループ照合ループが上への照合かどうか調べる。得られた任意の上への照合ループを、リストに保存する。次に、隣接基本ループの合成により、それぞれ検討中の他のビュー内の基本ループに一致する非基本の上への照合ループを得ることが可能かどうか調べる。これらを保存してさらに処理を行う。これらエンティティの保存に用いるデータ構造は、グラフである。
【０１３９】
一般に、上への生成を、任意のセットのビューで識別する。図４４では、ループを、ノードおよび２つのノードと連結する稜線として表している。２つのループは上への照合である。これは、ｎ個に分かれたグラフのループとして見ることができる。ｎはループの数である。従って、上への生成の検出は、基数ｎのサブグラフの検出と同等である。幅優先探索を用いて、ｎｌｏｇ（ｎ）内にこれを検出する。ｎは検討中のループの平均の数である。ループの上への照合は、すべてのビュー内のループのセットで、互いに一致している。
【０１４０】
（３つのオーソグラフィックビューの整理）
上への照合ループのセットを得た後、小特徴を記述する上への照合ループのセットを消去する。上への照合ループのセットは独立または基本ループのみであるよう注意する。またこれらループを消去した結果、得られるビューが分離しないようにする必要がある。
【０１４１】
（２Ｄスケルトン化）
次のステップでは、これらループまたはフェースをスケルトン化して図面を簡略化するが、位相は保持する。多角形図形のスケルトンを得るのに、各種の方法が提案されている。これら方法の大部分は、内軸変換（Ｍｅｄｉａｌ  Ａｘｉｓ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎ：ＭＡＴ）を決定するものである。これら方法の大部分は、ボロノイ図またはデローネイ三角形分割手法のいずれかを利用している。ボロノイまたはデローネイ三角形分割手法を用いずにスケルトンまたはＭＡＴを得る、他のアプローチがある。また、適応細分アルゴリズムが提案されている。これは、デローネイ三角形分割手法を利用している。２Ｄ領域のスケルトンを、その内点として定義する。これは２つ以上の最も近傍を有する。多角形図形のスケルトンを、最悪でもＯ（ｎｌｏｇｎ）時間で得ることができる。多角形図形の境界ノードの数である。図４５は、一般的な２Ｄ多角形図形のスケルトンを示す。
【０１４２】
（スケルトンの消去）
得られた２Ｄスケルトンのある部分が必要ないことが、図４５からわかる。入力ビューの境界／頂点と接しているスケルトンの稜線を、消去する。従って、簡易型スケルトンが得られる（図４６に図示）。
【０１４３】
（照合ループおよび隣接ループ関係を用いて３つのビュー内のスケルトンの稜線を連結して３Ｄスケルトンを得る）
一旦、各種のフェースのスケルトンを消去したならば、次のステップは、３つのビュー内のスケルトンを連結して３Ｄスケルトンを得ることである。図４４を参照すると、図４４Ａは実際の３Ｄモデルを示し、図４４Ｂは任意のオブジェクトの２Ｄオーソグラフィックビューを示している。図４４Ｃは、それぞれのビューのスケルトンを消去したものを示している。最初の第２のステップで得られた照合ループを用いて、２Ｄスケルトン稜線の各種の稜線の接続性を決定する。接続性を維持するとは、すべての照合ループの連結であって、また、３Ｄスケルトンの各稜線が１つのものとして確かに現れることになる。例えば、ビュー正面図では、縦線が図形の奥行き／高さを表す。また、側面図では、５本の縦線が図形の奥行き／高さを表す。従って、最終のスケルトンでは、たった一本の稜線を保持して図形の奥行きを表す。
【０１４４】
（３Ｄスケルトンの稜線のボクセル化）
一旦、３Ｄ稜線が得られたならば、次にボクセル化表現に変換する。基本的に、ボクセル化表現は、３Ｄスケルトンの稜線の離散化表現である。このステップは簡単な処理ステップである。ボクセル化および正規化についてさらに詳しくは、上記サブセクション２．１を参照のこと。
【０１４５】
（データ構造の各種のループおよび稜線の接続性の保存）
最後に、３Ｄスケルトンが得られたら、サブセクション２．２で説明したように、各種のループ、稜線等をスケルトングラフデータ構造に保存する。次に、これをグラフ比較モジュールの入力として提供する。
【０１４６】
（３．データベース、探索およびクラスタ化）
（３．１．グラフの比較）
探索システムでデータベースにあるグラフを探索する。このグラフは、クエリー３Ｄモデルのスケルトングラフに類似している。システムにより、クエリーグラフとデータベースの各モデルとの間の照合の度合いに基づく類似性の程度を評価する。本発明は、間接グラフの形式のスケルトンで表す。グラフのノードがスケルトンの稜線／エンティティを表し、グラフの２つのノードに連結する任意の円弧が対応するスケルトンエンティティの間の連結を表す。従って、スケルトンは、基本的に稜線グラフとして表される。グラフの各ノードは、スケルトン稜線の次の幾何特性を保持する：
（１）稜線タイプ（直線、曲線、サーフェスループまたはホール）。
（２）サーフェスループの曲率情報（凸面／凹面／面）。
（３）曲線のパラメトリック計算式。
（４）特定のエンティティに収束する特徴のローカルボリューム。
（５）特定のエンティティに収束する特徴のローカルモーメント。
（６）サーフェスからのローカル距離。
【０１４７】
従って、スケルトンの位相をグラフの位相によって取り込み、ジオメトリをグラフのノードに保存する。図４７は、現在の本システムのグラフ照合モジュールのフローチャートを示す。
【０１４８】
（高レベルグラフ照合）
上記最初の２つの特性（１および２）を、高レベルグラフ照合ステップ（図４７を参照のこと）に用いる。この後、類似のモデルを有するデータベースのサブセットを検索する。これらモデルは、クエリーモデルに全体的な幾何および位相類似性を有する。続くステップでは、上述の個別の幾何特性（３）、（４）および（５）の類似性に基づいて、検索したモデルをさらに分類する（低レベルグラフマッチャー）。従って、高レベルマッチャーによリサーチ空間を選別して、該当する部品を検出する。この選別で用いるグラフ特性は、スケルトン内の最も高い度合いのノード、サーフェスループの数、直線および曲線稜線の数、およびホールの数を含み、クエリーモデル（またはクエリーグラフ）に類似していないグラフを除去する。
【０１４９】
高レベルグラフマッチャーで検索したモデルより小さなセットを、次に低レベルグラフマッチャーに渡す。低レベルグラフマッチャーは、上記のグラフ照合アルゴリズムに基づいて、クエリーモデルとこれらモデルとの間の類似性の度合いを検出する。しかしながら、ユーザはまた、位相および高レベル幾何特性を用いて、より高いレベルの抽象化だけで照合を行うことを選ぶこともある。この照合を可能にするには、グラフの隣接関係行列を、これら幾何特性を表現するように設計する。行列のゼロ以外のエントリは、２つの幾何エンティティの間の連結を表す（位相）。エントリの値は、連結の種類を一意に表す（稜線ループ、ループ−ループ、サーフェス−サーフェス、稜線稜線等）。この隣接関係行列を用いて、決定理論的サブグラフ同定アルゴリズムと共に対応付けグラフ技術を含む任意のグラフ照合方法を実行することができる。
【０１５０】
（低レベルグラフ照合）
従来技術のセクションで、グラフを比較して類似性の度合いを評価するために、各種のアルゴリズムが提案されている。これらアルゴリズムを、正確および不正確なグラフ照合アルゴリズムにおおまかに分類することができる。前者の分類のアルゴリズムは、２つのグラフの間のまたは２つのグラフのサブグラフの間の正確な一致を検出する（すなわち、ノイズがない）。後者のセットのアルゴリズムは、たとえノイズが存在しているとしても、距離測定の形式で２つのグラフの間のあいまいな類似性の度合いを与える。本発明のシステムの要件は、類似の部品を検出することである（正確に同じでない）。本発明のシステムは、グラフ比較のために不正確なアルゴリズムを用いる。
【０１５１】
グラフ比較のための従来のグラフ同定は、ＮＰ完全問題を導く。すなわち、小さなグラフ以外を用いてコンピュータで解を検出することが不可能である。不正確なグラフ照合の分野（エラー許容グラフ照合とも言う）について長年にわたって研究され、解についての多数の異なるフレーム構造が導かれている。場面グラフの類似性を含む各種のアプリケーションで、グラフの比較に対応付けグラフ技術が適用されて効果を上げている。現在のシステムでは、グラフ照合問題を、クエリーおよびモデルグラフに対応付けグラフを生成することにより、最大重み付クリーク問題に変換する。本発明の確率論的重みは、対応付けグラフノードを含む。これら重みを、次のエンティティのローカル幾何特徴類似性に基づいて評価する。（１）曲率、（２）ローカルボリューム、および（３）ローカルモーメントである。これにより、該当するモデルを除外せずに、モデル間の類似性の度合いにおけるあいまいさが可能になる。
【０１５２】
（対応付けグラフ技術）
対応付けグラフ法は、コンピュータビジョンおよびパターン認識のグラフ照合分野では周知であるが、本発明の問題に適するように変更すると共に、完全性のために、この方法についてここで説明する（本発明の問題の文脈で）。対応付けグラフ（または割り当てグラフ）のノードは、比較されるグラフの頂点対（ｖＱ，ｖＭ）を表す（例えば、ＧＱ＝（ＶＱ，ＥＱ）およびＧＭ＝（ＶＭ，ＥＭ））。ノードｖＱおよびｖＭが同じノード特性記述を有する場合は、ｖＱ∈ＶＱ，ｖＭ∈ＶＭ等の頂点対（ｖＱ，ｖＭ）を、アサインメントと呼ぶ。（さらに）すべてのｖＱとｖＱ’との間の関係がすべてｖＭおよびｖＭ’に成り立つならば、２つのアサインメント（ｖＱ，ｖＭ）および（ｖＱ’，ｖＭ’）に互換性がある。アサインメントのセットが、アサインメントグラフＧａのノードＶａのセットを定義する。Ｇａ２つのノード，ＶａおよびＶａ’は、これら２つのノードに互換性があれば、アサインメントグラフ、Ｇａの円弧により連結している（図４８を参照のこと）。従って、２つのグラフＧＱおよびＧＭの最大照合サブグラフの探索は、対応付けグラフＧａの最大クリーク（全体的に連結したサブグラフ）の探索である。その代わりに、アサインメントが、ｖＱとｖＭとの間の類似性の度合いも重みとして表している場合は、次にグラフ照合を最大重み付クリーク問題に変換する。従って、対応付けグラフ内の最も大きい最大重み付クリークが、２つのグラフＧＱとＧＭとの間の最も良い一致を表すことになる。
【０１５３】
（ローカル類似性基準値）
このセクションは、形状照合アルゴリズム詳細に説明することにあてられている。これは、対応付けグラフ技術に基づいている。用語’ノード’および’頂点’と共に’稜線’および’円弧’がグラフ理論で区別なく用いられているが、理解しやすいように、ノードおよび稜線を用いてスケルトングラフを説明して、頂点および円弧で対応付けグラフを構成する。対応付けグラフの頂点は、２つのオリジナルグラフのノード間の相関性を表す。ノード間の相関性を決定するこの処理を対応付けという。また対応付けグラフの２つの頂点をつなぐ円弧は、対応するノード間の互換性を表す。
【０１５４】
グラフＡは、頂点Ａｉのセット、稜線Ａｉｊのセット、頂点属性のセットν（Ａｉ）、および稜線属性として表されている。
【０１５５】
ここに示す各種の実施の形態では、スケルトングラフ構造は、稜線とループとを区別している。同じ種類のエンティティ間で対応付けが可能であるで、１つのグラフのループを他のスケルトン等のループとだけ対応付ける。長さの類似性と共に類似性の度合いに基づいて、対応するノード（例えば、Ａ１およびＢ２）間の類似性を決定する。重みを、これら２つの基準値に対応付ける。
【０１５６】
従ってグラフＡのノードＡ１とグラフＢのＢ２との間の類似性を、ノードの重み付けとして表す。これは、計算式（１）から得られる。
【０１５７】
【数３】
0004516957.tif 000004
ここで、ｌＥｉはエンティティ長さ、ｄＥｉはエンティティＥｉの度合いである。Ｗｌは長さの類似性に与えられた重み、Ｗｄはそれらの度合いに基づいてスケルトンエンティティ間の類似性に与えられた重みである（検討中のエンティティに連結したその他のエンティティの数）。ノードの度合いへのより高い重みにより、位相がさらに類似しているモデルを検索して、長さの類似性へのより高い重みが、より高い幾何類似性を持つモデルになる。従って、ユーザはまた、探索基準によりこれら重みを変更することができる。他のローカル特性を比較する基準値はさらに、（ｉ）ボリューム分散、（ｉｉ）距離変換、（ｉｉｉ）ローカル主モーメント、および（ｉｖ）ローカル曲率を含む。これらの項を計算式（１）に追加する。
【０１５８】
同様に、対応付けグラフの円弧は、対応するエンティティが連結しているかどうかを表す。もし連結していれば、エンティティ間の相対類似性である。例えば、ノード（Ａ１−Ｂ２）および（Ａ２−Ｂ３）をつなぐ円弧は、Ａ１がＡ２に連結しているかどうか、Ｂ２がＢ３に連結しているかどうか記述する。また、対応するエンティティ間の連結をさらによく記述する他のヒューリスティックも含む。連結したエンティティ間の角度等である。ある実施例では、円弧の重み付けの決定に計算式（２）を用いて度合いを得た。
【０１５９】
【数４】
0004516957.tif 000005
ここで、θＥｉＥｊは、エンティティＥｉとＥｊとの間の角度である。
【０１６０】
Ｗｌｒは長さに比に与えられた重みで、Ｗθは角度に与えられた重みである。有効なグラフ照合を得るためには、制約の数に注意することに留意のこと。例えば、モデルＡの任意のスケルトンエンティティがモデルＢの２つ以上のエンティティと一致しない、またはその逆の場合である。これら制約について、図４８に楕円で示す。対応付けグラフの円弧を、これら制約を考慮して生成する。
【０１６１】
次に、これでモデルＡとモデルＢとの間のグラフ照合問題が、最大クリーク問題になる。アプリケーションの対応付けグラフに重みが存在しているので、問題を、最大重み付クリーク問題として表す。従って、最も大きい重みを持つクリークは、２つのグラフ間の最も良い類似性を表す。従って、類似性は、任意のクリークに対するノードの重みと円弧の重みとの合計である。従って、２つのモデル間の’最も良い類似性照合’を検出する問題は、基本的に、目的関数が類似性の度合いである組み合わせ最適化問題である。
【０１６２】
ヒューリスティックベースの遺伝的アルゴリズムを用いて、上述の対応付けグラフの最大重み付クリークを活用する。しかしながら、任意の組み合わせ最適化アルゴリズムを用いて、最大重み付クリークを得ることができる。近似アルゴリズムで大きなグラフのグローバルで最適の解が得られる保証はないが、これにより、大きなグラフサイズでは処理しにくい全数探索を回避する。従って、近似アルゴリズムは、このアプローチを用いて各種の実施の形態で最適化を行うのに利点がある。
【０１６３】
（計算量）
対応付けグラフ技術を用いる主な利点は、それが簡易グラフ理論構造で、最大クリーク検出等の純粋グラフ理論アルゴリズムに適用可能であることである。しかしながら、対応付けグラフの構成は純粋にドメイン依存である。従って、このアプローチの有効性は、このグラフの構成および続いて用いるグラフ理論アルゴリズムに依存している。最大クリーク検出問題はＮＰ完全であることに留意されたい。しかしながら、本発明のスケルトングラフには幾何情報が豊富に存在するので、多数の不要の比較を除去することにより、最大クリーク検出問題（ＭＣ問題）の平均計算量を相当低減することができるようになる。アルゴリズムを、次のヒューリスティックを用いることができるように設計する。ａ）辞書式順序のノードと、ｂ）前のクリークサイズと、ｃ）高レベル幾何エンティティの数（サーフェスループ／ホール／稜線）とである。これによリサーチ空間を小さくする。例えば、ループを直線稜線および曲線と比較することを、または曲線を直線稜線と比較することを省くことができる。スケルトンのループは基本的に、元の３Ｄモデルの大きなホールを表す。従って、これら特徴のあるものは、元の３Ｄモデルの製造特徴を暗黙に表す。これは、グラフ照合のドメインナレッジを用いるとどのくらい平均計算量を相当低減することができるかについて、説明するものである。対応付けグラフ技術を変更することにより、適当な時間で３Ｄモデルの探索が行えるようになる。この技術について、次に詳しく説明する。
【０１６４】
ノードを表す直線を表すＱ１個のノードのうち、クエリーグラフがＱ個のノードから成ると仮定する。Ｑ２個のノードがループを表す。同様に、Ｍ１およびＭ２が、それぞれモデルグラフの直線稜線およびループを表すノードの数とする（全部でＭ個のノードである）。さらに、Ｍ１，Ｍ２，およびＭはそれぞれ、Ｑ１，Ｑ２，Ｑより大きいと仮定する。従って、サブグラフ同定に必要な比較の回数を、次のように検出する。
【０１６５】
【数５】
0004516957.tif 000006
しかしながら、ノード属性（サーフェス／ループ／稜線）を用いない場合は、比較の回数を次の計算式で得る。
【０１６６】
【数６】
0004516957.tif 000007
グラフ構造に存在する幾何情報を用いて、多数の不要の（ナイーブ）比較を省略するので、照合の計算量を低減することがわかる。また、この情報なしに対応付けグラフに生成する必要があるノードの数は、Ｍ×Ｑである。しかしながら、このアプローチを用いると、この数を（Ｍ１×Ｑ１）＋（Ｍ２×Ｑ２）に低減する。前述の単純化では、最悪計算量は、入力グラフのノードの数が指数関数的になるが、本発明の対応付けグラフのサイズを平均の場合に低減する。スケルトンが同じタイプのエンティティ（すなわち、すべてのループ、すべて直線稜線である、等）で構成されている場合に、最悪の場合が発生する。また、上述のグラフ照合アルゴリズムを、シェル様およびハイブリッド部品に発展することもできる。１）凸面と、２）サーフェスループの曲率半径とを含む幾何特徴をさらに用いて、これら部品の探索空間を低減することができる。
【０１６７】
（幾何特徴照合）
高レベル照合から検索したモデル間の類似性／距離の度合いをさらに正確にするために、スケルトンエンティティの幾何特徴属性を比較する。上述のように、非類似のエンティティタイプはグラフ類似性基準値と比較しない。
【０１６８】
（角柱状の形状）
ベジェ曲線を用いて、角柱状スケルトンエンティティのパラメトリック計算式を得る。これにより、曲線形状のアフィン不変量の程度を与える。曲線類似性比較の曲率に基づくアルゴリズムを用いる。類似の曲線は、類似の曲率プロファイルを持つ。２つの曲線を比較するには、曲線を定義した数のエンティティに分割して、曲線の曲率プロファイルが、曲線の一方の端からもう一方までの曲率シーケンスとなる。類似性のあいまいさの程度を、これら２つの曲率プロファイル間の距離から導出する。ベジェ曲線の計算式曲線の任意の点の曲率は、次のように与えられる：
・５次ベジェ曲線フィッティング
【０１６９】
【数７】
0004516957.tif 000008
ｎ＝５
Ｐｉ−制御点
【０１７０】
【数８】
0004516957.tif 000009
・計算式からの曲率
【０１７１】
【数９】
0004516957.tif 000010
他の実施の形態のローカル形状特徴照合は、ローカル特徴のボリュームおよびサーフェス領域を比較して、最終のスケルトン内の特定のスケルトンエンティティに収束する。同様に、個別の特徴のローカルモーメント不変量および稜線長さについても、類似性基準値に組み込む。
【０１７２】
（シェル様およびハイブリッド形状）
シェル様およびハイブリッド形状は、異なる種類のスケルトンエンティティを生成するので、異なる処理が比較のために必要となる。パラメトリックベジェサーフェスを、サーフェスを構成するボクセルのセットに当てはめた後、凸面およびサーフェス曲率等のエンティティのグローバル幾何特徴を類似性基準値に用いる。さらに詳細に比較するには、角柱状スケルトンで説明したものを、シェル様スケルトンのサーフェスエンティティまたはワイヤフレームスケルトンエンティティに用いることができる。サーフェスを、標準の数の分割に離散化して、曲率プロファイルと共に個別のサーフェス領域をこれらサーフェスと比較することもできる。
【０１７３】
（ローカル強調および関連性フィードバック）
Ｗｌ，Ｗｄ，Ｗθ，Ｗｌｒ等のローカル幾何特徴の重み（計算式１および２）を用いることで、関連性フィードバックからユーザ基本設定を学習することができるので、システムとユーザとの間の意味的ギャップを低減する。セクション３．６に記載の標準重み再構成機構を介して、重みを学習することができる。また、ユーザは、３Ｄソリッドモデルまたは３Ｄスケルトンモデルのローカル特徴を強調することもできる。重みを特定のスケルトンエンティティに期することができるので、照合の際に類似性の基準値によりより高い重みを特定のローカル特徴に与えることができる。
【０１７４】
（異なるディテールのレベルの比較）
角柱状およびシェル様スケルトンの異なるディテールのレベルを、次のやり方で用いる。データベースモデルの各ディテールのレベルをクエリースケルトンと比較して、最も高い類似性の値を得るディテールのレベルをクエリー３Ｄモデルとデータベースからの特定のモデルとの間の類似性と考える。スケルトングラフに基づく３Ｄモデルのクラスタ化は、すべての２つのモデルの４つのディテールのレベルすべてを互いに比較して、２つのモデル間の最も良い類似性を得る。これら類似性の値を用いて、モデルのデータベース類似のモデル群にクラスタ化する。あるいは、ユーザは、クラスタ化に用いるすべてのモデルのディテールの特定のレベルを指定することもできる。この場合は、特定のＬＯＤを用いてクラスタ化を行う。
【０１７５】
（並列化）
この処理は、クエリーグラフおよびデータベースからのグラフを扱って別々に比較するので、グラフ照合ステップは並列化可能である。高レベルグラフ照合ステップでは、自動クラスタを用いて比較の回数を減らすこともできる。従って、各クラスタのプロトタイプモデルをそれぞれクエリーグラフと比較する。続いて、そのプロトタイプがクエリーグラフと最も近いクラスタを用いてさらに探索する。従って、階層型クラスタを用いて探索空間を小さくすることができる。探索が、次のクラスタのモデルの数が妥当である適当な状態になったら（リアルタイム探索が可能）、低レベルグラフ照合を並列化できるので、探索時間を最適化することになる。
【０１７６】
（従来のシステムとの相違）
・ジオメトリおよび位相の分離。
・階層型グラフ照合。
・高レベル幾何特徴の隣接関係行列への包含。
・自動クラスタに関するグラフ照合の並列化。
【０１７７】
（３．２．多次元索引）
企業に３Ｄモデルが普及するにつれて、データベースに索引を付けて効率的な検索を可能にしたいという差し迫った要求がある。市販のデータベースシステムで広く用いられているが、Ｂ＋木およびハッシュテーブル等の幅広く使える索引構造が、３Ｄモデル探索の際の効率を十分改良することは、残念ながら現在のところ不可能なことである。３Ｄモデル類似性を使って仕事をするエンジニアは、データベースでの形状探索よりも、少数のモデルの３Ｄ形状照合に注目している。それらのアプローチでは、データベースを基準化することは困難である。
【０１７８】
従って、ここに示す実施の形態は、モデルの類似性によりデータベースに索引を付けることができる索引構造を開発した。この構造は、同時に特徴ベクトルの各要素の情報を用いて、形状類似性を評価した。革新的で新規の方法では、異なる特徴の索引から供給した類似性を合成することにより、全体的な類似性を計算する。合成方法により、各索引の探索の規則数列を協働させる。
【０１７９】
索引構造を、木ベースの多次元索引として実行する。多次元性が３Ｄモデルデータベースで重要であるのは、全体的な類似性をこれら特徴要素の組み合わせで定義するからである。また、特徴要素を選別として用いることは、３Ｄモデル探索の文脈では不適切である。
【０１８０】
索引構造の構造を、図４９および図５０に示す。葉ノードは、３Ｄモデルの表現を含み、内部ノードが葉ノードへの短い経路の検出を支援する。３Ｄモデルを表す特徴ベクトルが、それらの類似性によって葉データノードにグループ化される。各データノードは、モデルの全体的な情報を保存する収容ボックスとして表される。内部ノードを構築して、葉ノードに索引を付ける。各ノードの抽象情報により、類似のモデルこのデータノードにある可能性があるかどうか決定する。従って、ノードを簡潔にして、探索段階の間に全副木をこれらノードに根付かせる。
【０１８１】
図５１Ａは、３９個のモデルの予備の索引構造である。図５１Ｂは、２つの葉データノードのコンテンツを示す。この索引が類似性により十分にモデルをグループ化していることを示している。また、複数の多次元索引を効率的に用いて類似性を計算するアルゴリズムを開発する。３Ｄモデルは、複数の特徴として表される。各特徴は、対応する多次元索引を有する。各索引から検索した類似性により、全体的な類似性を計算する。探索木を簡素化する能力により、多次元索引の効率を決定する。簡素化能力は、探索基準に依存する。それは、クエリー点からの半径である。アルゴリズムは各索引内の探索を協働させて、各索引内の探索半径を最小にしようとする。これらアルゴリズムは、簡素化能力および多次元索引の効率を大幅に向上させたものである。
【０１８２】
類似のモデルを確実にグループ化するためには、ＳＯＭを用いて特徴ベクトルの前処理を行い、類似のモデルをクラスタ化する。これらクラスタ化したモデルを一括でロードするように、索引を構築する。これにより、この多次元索引の質を大幅に向上させるのは、索引内のデータノードが、類似性により確実にモデルをグループ化するからである。十分な数のモデルがデータベースにセットされて、索引の質を損なう場合は、ＳＯＭを再び用いて索引を再構築する。
【０１８３】
（３．３．特徴ベクトル比較）
現在の探索システムは通常、１種類の特徴を用いていて、３Ｄモデルの固有の特性を十分にを取り込むものではない。組み合わせ特徴ベクトルを用いる技術がいくつかあるとしても、これら特徴間の内部関係を完全に理解していなかった。１次結合は簡易であるが、これを共通に用いて、それらの関係を無視して、各特徴に基づく全体的な類似性を計算するものである。
【０１８４】
従って、本発明の実施の形態では、および固有の特徴ベクトルをさらに多く抽出して、３Ｄモデルの重要な特性を取り込む。特徴ベクトルの関係をより良く理解することにより、個別の特徴について定義したことに基づく全体的な類似性を計算する、さらに進んだ方法を開発することが可能になる。
【０１８５】
本発明は、特徴ベースの３Ｄモデル探索システムを利用するシステムを用いる。これは、高レベルのキーワードの代わりに低レベルの特徴を用いて、複雑なジオメトリを表す。元の３Ｄモデルを処理すると、異なるディテールのレベルを持つ異なるモデルを生成した。これらモデルから、統計的、空間的、および時間的情報を、３Ｄモデルを表す特徴として抽出する。図５２は、本システムの実施の形態で現在用いられる特徴ベクトルである。これら特徴ベクトルは、元の３Ｄモデルの数字の指紋である。３Ｄモデルの比較および探索をこれら指紋に適用するのは、元のモデルでは探索しにくいからである。
【０１８６】
特徴要素を座標と考えると、３Ｄモデルは、多次元特徴空間内の点として表される。図５３に、一例として２次元空間を用いてこれを示す。
【０１８７】
モデルを特徴空間内のデータ点として考えると、座標上で定義された異なる距離を用いて、類似性モデルの類似性を計測することができる。例えば、ユークリッド距離Ｌ２、最大基準値Ｌ∞およびマンハッタン基準値Ｌ１を用いる。これら距離を計算する計算式について、次のように列挙する。
【０１８８】
これら類似性の定義に基づいて、各特徴の類似性の程度を計算する特徴ベースの画像探索と異なり、システム内の特徴のいくつかは完全に独立していない。従って、特徴類似性に基づいて全体的な類似性を計算すると、１次結合の他にさらに複雑な結合方法を用いることになる。これら方法は、２次、３次、およびニューラルネットワークで表されるさらに複雑な関数を含む。また、グラフ照合を特徴ベースの類似性探索と共に用いる。特徴表現についてここで説明して、グラフ照合セクションにグラフ表現を導入する。
【０１８９】
すべての特徴ベクトルを同時に用いてデータベースを探索するワンステップ探索方法を用いる代わりに、決定木として探索をシミュレーションする。認知心理学リサーチに基づいて、選択的特徴をいくつか含むアスペクト比および対称情報等である。他の実施の形態では、他のさらに進んだ特徴をいくつか用いることもできる。また、以前に用いた特徴を続いて用いることもできる。
【０１９０】
この検索システムの利点は次のものである。（１）すべての特徴は、システムが客観的に計算した固有の値なので、客観的なアプローチである。データベース内のモデルの表現を、特徴抽出アルゴリズムにより決定するシステム内のＣＡＤモデル表現がどのユーザからも偏りがない。従って、システムは、すべてのユーザに対して中立の特徴を持つ。（２）すべての情報が客観的なので、容易に自動化できる。ユーザが全く関わることなくアルゴリズムを発展させて、ＣＡＤモデルから計算するようにできる。（３）キーワードベースの検索システムよりも、類似性の度合いがより正確に定量化する。各特徴を目盛の数字（通常０−１）で表しているので、類似性をある数学的演算で容易に特徴づけることができる。システムがＣＡＤモデルから情報を十分抽出する限り、システムは類似のモデルを正常に検索することになる。
【０１９１】
主な欠点は、特徴ベクトルを定義するのが難しいことである。特徴ベクトルはすべての非類似のモデルの選別には適しているが、類似のものをすべて保持している。しかしながら、本発明の実施の形態に適用した多段階探索方法（セクション３．８に記載）により、ユーザが異なる特徴ベクトルを試して所望のモデルのセットを得ることができる。
【０１９２】
（３．４．クラスタ化技術）
本発明の実施の形態により、ユーザがデータベース内の異なるモデルを容易に閲覧して、彼／彼女の要件に類似の部品を検出できる。ビジュアルクエリーインターフェースの一部は、この機能を促進するようになっている。インターフェースをビジュアル化して、２つの異なるシナリオで動作させることができる（図５４を参照のこと）。第１の場合では、ユーザは頭で考えた３Ｄモデルだけが有り、データベース内の利用可能な部品を閲覧して、該当する部品を選ぶ場合である。この探索を効率的にするためには、データベースのすべてのモデルの階層型部品クラスタマップを用意して、データベースに新しいモデルが加わると動的にこれを更新する。より高いレベルのクラスタ内の各部品クラスタが、次のレベルの多数のクラスタを指し示し、これを繰り返す。他のシナリオでは、ユーザがクエリーモデルをスケッチインターフェースから入力して、クエリーと類似していると検出されたすべての部品を検索する。各検索したモデルは、それが属するクラスタへのリンクを示しているので、さらに閲覧が可能になる。対応するリンクをたどって、モデルが属するクラスタを閲覧することができる。
【０１９３】
クラスタ化アルゴリズムを、知識発見およびデータ発掘の分野で広範囲に用いる。最も重要なものは、階層型クラスタ化、ｋ−クラスタ化および自己組織化マップ（ＳＯＭ）である。これら異なるアルゴリズムでは、ＳＯＭは最も簡単に実行することができ、クラスタを容易にビジュアル化して解釈することができる。ＳＯＭはニューラルネットワークアルゴリズムで、教師なし学習に基づくものである。しばしばニューロンと呼ばれる計算単位のレイヤから成り、入力パターンの母集団に適応させる。入力パターンを提示するとすぐに、このパターンに最も近いニューロンを決定して（獲得ニューロンと呼ぶ）、次に更新して新しいパターン取り入れるが、隣接ノードのいくつかについても更新して、獲得ニューロンに近づける。ＳＯＭは、ベクトル量子化およびベクトル投影アルゴリズムの特性を共に有するので、より高い次元でのデータ投影をより低い次元にすることができる（通常２次元）。これはビジュアル化に適用可能である。この特徴が本発明の実施の形態で利点があるのはユーザがモデルを閲覧するための有益なビジュアルインターフェースを開発する支援となるからである。また、ＳＯＭは、新しい部品をデータベースに追加して、クラスタマップを動的に更新することも可能にする。
【０１９４】
従来、特徴ベクトルだけでＳＯＭを用いていた。やっと最近になって、ＳＯＭをグラフおよび木等のより強力なデータ構造と共に用いて、パターン認識作業に用いようとする試みがある。これらの試みは、ＳＯＭのニューロンの更新に用いるグラフ編集距離に基づくグラフ距離基準値を用いていた。逆に、本発明の実施の形態では次の組み合わせを用いる。（ａ）３Ｄモデルから得られた特徴ベクトル、および（ｂ）グラフ比較から得られたグラフ距離程度である。従って、ニューロンを設計して、すべての特徴ベクトルと共に３Ｄスケルトンの典型的なグラフを含むようにさせる（図５５を参照のこと）。ＳＯＭを更新して、次の新しいクラスタマップを提示する。（１）ユーザが構成した異なる類似性定義を持ち、（２）新しいモデルをシステムへ追加するクラスタマップである。このインターフェースは、次のことを素早く評価するのに有益である。（１）本発明で提案する類似性の基準値と、（２）従来技術が３Ｄモデルの比較のために提案した基準値である。２つのニューロン間の距離基準値は、ユークリッド、マンハッタン距離等の、任意の標準ベクトル距離とすることができる。
【０１９５】
（従来技術との相違）
１．グラフ特性のＳＯＭニューロンデータ構造への包含。
２．３Ｄモデルスケルトングラフに基づくクラスタ化のためのＳＯＭの使用。
３．クラスタ化のための類似性の定義生成の際のユーザとの相互作用。
【０１９６】
（３．５．クラスタマップインターフェース）
クラスタマップインターフェースは、探索システムのメインビジュアル出力インターフェースである。インターフェースは、１）自動２）双方向の２つのシナリオで動作する。図５６は、２つの状況の２つの異なる経路を示す。自動方式では、システムが定義したデフォルト類似性基準値に基づいて、データベースモデルを各種のクラスタに自動的に分類するクラスタマップ（図５７）は、典型的な３Ｄモデルをユーザに部品クラスタウインドウ上で提示する。これにより、ユーザはボタンやマウスの動きでモデルをパンし、ズームし、回転することができる。各図の右側には、特定のクラスタ内に提示されているモデル数の棒グラフを示している。類似のモデル”ボタンをクリックすることにより、クラスタをさらにを閲覧するすることができる。双方向方式では、ユーザは次のことを行う。１）特徴ベクトルを再構成することにより、ユーザの類似性の程度を伝えることと、２）階層型データベースを閲覧して、ユーザが考えているモデルを探索することである。部品クラスタマップを更新することにより、クラスタマップインターフェースを介してユーザに提示する。
【０１９７】
また、探索クエリーを実行した後、クラスタマップインターフェースを用いて検索した類似のモデルを表すことができる（図５８）。類似性クエリーから探索した各モデルは、”類似のモデル”ボタンを介してそれが属するクラスタへのリンクを持つ。各検索したモデルの類似性の度合いについても、百分率の程度としてユーザに提示する。また、各モデルはスライドバーを持ち、ニューラルネットワーク学習のためのシステムに関連性フィードバックを行う。
【０１９８】
（３．６．関連性フィードバック）
検索システムは、低レベルの特徴ベクトルに関する類似性しか測定しない。しかしながら、ユーザの類似性は、ユーザの認識に基づいている。３Ｄモデルは複雑なオブジェクトなので、３Ｄモデルを正確に表す特徴を抽出することは、大きな課題である。低レベル特徴ベクトルの類似性定義と高レベル３Ｄモデルとの間に”意味的ギャップ”がある。
【０１９９】
従来の３Ｄ形状探索システムの探索モデルは、事前に定義した類似性の程度およびワンショット機構に基づいている。ユーザとシステムとの間の類似性の意味的ギャップは、これら従来のシステムの性能を大きく損なっている。
【０２００】
しかしながら、関連性フィードバックは、ユーザとシステムとの間の通信を向上させる重要な方法である。それは、システムおよびユーザ類似性の定義がそれぞれ存在する２つの意味上の面の間の掛け橋である。関連性フィードバックにより、ユーザが正確にクエリーを構築して、類似性の程度の特徴を選ぶ負担を大幅に低減する。また、探索システムが対話から学習して、対話に基づいてシステムを再構成することができる。
【０２０１】
例示の手順は、次のステップから成る。（ａ）システムがモデルクエリーの例示に基づいてモデルをいくつか検索すると、特徴ベクトルの類似性の程度によりモデルを順序立てて、ユーザに提示する。（ｂ）ユーザは該当するグループと該当しないグループとに分類して、システムに知らせる。（ｃ）システムは、今度はシステム自体を構成してユーザの嗜好を考慮して再び探索を行う。（ｄ）ユーザが満足するか、もしくはシステムがこれ以上優れたものにならないと考えるまで、この処理を何回か繰り返す。
【０２０２】
図５９は、関連性フィードバックの手順を示す。また、ユーザの関連性フィードバック内の情報を用いる異なる方法を実行することもできる。これを、本発明の広い範囲に入るようにする。これらの方法は、計算ジオメトリおよび粒子群等の社会的行動しシミュレートする事に基づいている。
【０２０３】
本方法により、ユーザとシステムとの対話が可能になるので、類似性の意味的ギャップをつなぐ。また、クエリーベクトルを再構築して関連性フィードバックに基づくシステムを再構成するアルゴリズムを、開発する。
【０２０４】
ユーザが彼／彼女の視点からどれが該当するモデルでどれが該当しないモデルかシステムに知らせることができるように、探索結果をインターフェースに提示する。
【０２０５】
関連性フィードバック情報に基づいて探索システムを再構成するアルゴリズムを、開発する。これが効果のある探索システムに重要なのは、別々のユーザが３Ｄモデルの類似性について異なる認識を持つこともあるからである。始めに、システムを構成して、大部分のユーザの類似性を反映するようにする。例えば、９０％のユーザが類似していると考えられるモデルである。ユーザがこのシステムを用いて探索を行うと、彼／彼女の関連性フィードバックを用ちいてシステムを良いものに構成する。フィードバックから、システムはユーザがさらに関心を持つ特徴ベクトルを用いてシステムを再構成して、ユーザの好みを反映させることができる。また、初期クエリーベクトルおよび関連性フィードバックに基づいて、システムはクエリーベクトルを再構築することができる。
【０２０６】
（３．７．学習エージェント）
関連性フィードバックは意味的ギャップをつなぐ効果的な方法であるが、時間がかかるものである。たとえ、ユーザがクエリーモデルとして再び実行する同じモデルであっても、時間がかかる関連性フィードバックを再び実行しなければならない。
【０２０７】
従って、本発明の実施の形態の技術は、人工知能、ニューラルネットワークを実行して、ユーザの関連性フィードバックを学習する。この技術により、データベースおよび索引構造の内容を変更することなく、異なるユーザおよび入力クエリーモデルに対してシステムのカスタム化が可能になる。これは、学習およびカスタム化を行う索引の上位のレイヤである。図６００は、このような方法の１つを示す。
【０２０８】
ニューラルネットワークを導入して、ユーザの関連性フィードバックのパターンを学習し、識別する。重要な点は、ニューラルネットワーク等の素早く学習するネットワークシステムを実行することである。多層フィードフォワードニューラルネットワークシステムを、本発明の実施の形態のいくつかに用いた。社会的行動の粒子システム、およびバックプロパゲーションからのアルゴリズムを用いて、はじめにニューラルネットワークを訓練する。
【０２０９】
学習エージェントを用いて、特定のユーザの意図をより良く表すクエリーベクトルを素早く再構築することができる。意味的ギャップのために、ユーザが低レベルの特徴要素を持つクエリーを実行することが難しい。例示のクエリーだけが、ユーザに彼／彼女の意図についてのおおまかな考えを与えさせることになる。従って、ユーザの意図をよりよく解釈するように、クエリーベクトルをさらに良いものにする。ユーザが学習エージェントを起動する場合は、訓練の例としてユーザが行った関連性フィードバックを用いる。ゴールは、直接に基づくユーザの探索履歴および現在次に実行したクエリーに基づいてクエリーベクトルを再構築することである。重要な点は、ニューラルネットワークの成熟度の検出および過剰学習の回避である。
【０２１０】
また、学習エージェントを用いて探索システムを再構成することもできる。すなわち、特徴要素の重みの再構成である。安定したパターンを識別するならば、次にシステムを再構成して、特徴の相対重要性についてのユーザの見方を反映させることができる。また、ここでのゴールは、関連性フィードバックの時間を短縮することである。学習エージェントを導入する利点は次のことである。ａ）関連性フィードバックの間に、クエリー再構成と重み付け再構成とを分離することと、ｂ）異なるユーザおよび／または同じユーザが実行した異なるクエリーのためにシステムをカスタマイズすることである。
【０２１１】
ニューラルネットワークの寄与が重要なものとなっているのはシステムをユーザとクエリー入力との両方に対してカスタマイズできることである。以下は、場合によっては、重みの設定が入力に依存することの１例である。
【０２１２】
特徴ベクトルが２つの要素からなると仮定する。１つはＦ１で、もう一方はＦ２である。図６１は、データベースの特徴ベクトルを表の左側に示している。ユーザのクエリーベクトルは表の右側である。矢印は、ユーザのクエリー入力とデータベースのものとの照合である。この照合をユーザの関連性フィードバックから発見することができる。
【０２１３】
第１の木関連性フィードバックに基づくと、重みを再構成することが理にかなっている。Ｗ１（１）＝Ｗ１（０）およびＷ２（１）＝３×Ｗ２（０）である。しかしながら、第２の木関連性フィードバックに基づくと、システムを再構成することになる。Ｗ１（１）＝Ｗ１（０）およびＷ２（１）＝１０×Ｗ２（０）である。言い換えれば、再構成は、Ｆ１の存在する範囲に依存している。１つの重みを単純に代入すると、システムの精度が他のものではよいが、モデルのいくつかからはほとんど満足の行くものではなくなってしまう。
【０２１４】
（３．８．多段階探索処理）
真の探索システムは、事前に定義した類似性基準値に基づくモデルのセットではなく、彼／彼女が探しているモデルをユーザが検出できるようなものでなければならない。この目的のために、本発明の実施の形態は多段階探索方法を組み込んで、異なる照合基準を用いてユーザが部品を探索できるようにする。例えば、ユーザは探索の第１の段階でスケルトングラフを用いてデータベースを探索できる。これにより、位相的に類似のモデルを検索することになる。続いて、異なる基準値、例えば、全ボリュームを用いて、検索したモデルを除外することもできる。これにより、ユーザが探索基準にブール演算を用いることができるので、該当する部品を素早く検索する。
【０２１５】
多段階アプローチは、汎用および特に工学分野用に、３Ｄ形状探索システムのために提案されたものの最初のものである。
【０２１６】
本発明の実施の形態のシステムにより、類似性不変量と共にｆｏｒ多段階探索のスケルトングラフを組み込むことができる。このような多段階探索処理の一例を、図６２に示す：
ａ．各種の特徴ベクトル（すなわち、モーメント不変量、スケルトングラフの固有値、幾何パラメータ）を用いて、探索空間（Ｎ個のモデルを持つデータベース）を小さな数Ｍ０に低減する。ただし、Ｍ０＜Ｎである。
ｂ．スケルトングラフ不変量（＜ノードの度合い＞、＜数Ｌ，Ｅ，Ｃ＞、＜数Ｌ−Ｌ，Ｌ−Ｅ，Ｅ−Ｅの接続性＞等）を用いてさらに探索空間を低減する。例えばＭ１である。ただし、Ｍ１＜Ｍ０である。
ｃ．不正確なグラフ照合を行って、探索空間を低減して、探索結果をモデルのより小さなセットに並べる。Ｍ２＜Ｍ１である。
ｄ．ユーザが以下のステップのようにシステムと対話して、（必要ならば）探索空間を低減する：
ｉ．不変量ベースの基準を指定して、探索空間を低減する
ｉｉ．ブール演算を探索基準に用いる
ｉｉｉ．類似性閾値基準を指定して、最終結果を得る。
【０２１７】
図６３は、多段階絞込みからの特定の探索結果を示す。スケルトングラフベースの類似性を用いて初期クエリーを実行して、モーメント不変量を用いて結果を絞り込んで、該当するモデルを検索した。
【０２１８】
特定の実施の形態について、ここに説明し述べてきたが、当業者ならば、同じ目的を達成するために計算する任意の構成を、示した特定の実施の形態と置換できることが理解できるであろう。この開示は本発明の各種の実施の形態を適用例または変形例をすべて含むことを意図している。上記の記載が説明のためだけになされたことを理解されたい。ここで特に記載されていない上記の実施の形態の組み合わせ、および他の実施の形態については、上記の記載を検討すれば、当業者に明らかになるであろう。本発明の各種の実施の形態の範囲は、上記構造および方法を用いた他のいずれの応用例についても含むものである。従って、各種の本発明の実施の形態の範囲については、このような請求の範囲に与えられる同等物の全範囲と共に、添付の請求の範囲を参照して決められるものである。
【０２１９】
米国特許法§１．７２（ｂ）に基づいて要約が用意されていることを強調する。要約により、読む者が本質および技術開示の要旨を簡単に把握できるように規定したものである。これを用いて請求の範囲あるいは意味を解釈したり限定したりしないという認識の元で、これを提出する。
【０２２０】
前述の詳細な説明では、説明のために各種の特徴を共に１つの実施の形態まとめていた。この開示の方法を、各請求項に特に記載した以上の特徴を必要とするという意図を反映するものとして、請求の本発明の実施の形態を解釈するべきではない。むしろ、以下の請求の範囲が反映するように、発明の内容は、１つの開示の実施の形態のすべての特徴に包含されるといえない。これにより、各請求項はそれ自体個別の好適な実施の形態として、以下の請求の範囲は詳細な説明に組み込まれる。
【図面の簡単な説明】
【０２２１】
【図１】図１は、３Ｄ形状探索システムを示す図である。
【図２】図２は、ＣＡＤおよび境界表現グラフを示す図である。
【図３】図３は、モジュールインビューアーキテクチャ（ＭＶＡ）の相互作用を示す図である。
【図４】図４は、ＭＶＡの特徴を示す図である。
【図５】図５は、特徴インターフェースデータ構造を示す図である。
【図６】図６は、スケッチした面ツールの一例を示す図である。
【図７】図７は、切断面ツールの一例を示す図である。
【図８】図８は、押し出しツールの一例を示す図である。
【図９】図９は、消去したデータ構造の部分を示す図である。
【図１０】図１０は、スケルトン生成および変更の例示のビューを示す図である。
【図１１】図１１は、例示のクエリーおよび探索インターフェースのグラフィックビューを示す図である。
【図１２】図１２は、２Ｄ離散空間の離散化の一例を示す図である。
【図１３】図１３は、３Ｄ離散空間のボクセル隣接関係の種類を示す図である。
【図１４】図１４は、ボクセル化アルゴリズムの例示の疑似コードを示す図である。
【図１５】図１５は、フェースオブジェクトを表す３Ｄモデルを示す図である。
【図１６】図１６は、立方体のフェースおよびファセットデータ構造を示す図である。
【図１７】図１７は、３Ｄモデルのボクセル内に保存したフェース識別を示す図である。
【図１８】図１８は、形状およびそのスケルトンの一例を示す図である。
【図１９】図１９は、スケルトン化を示す図である。
【図２０】図２０は、サンプル形状のカテゴリ分類を示す図である。
【図２１】図２１は、不要の付属物に印がつけられたユークリッド構造の一例を示す図である。
【図２２】図２２は、３Ｄボクセルモデルの一例を示す図である。
【図２３】図２３は、例示の管状部品を示す図である。
【図２４】図２４は、例示の内部キャビティを示す図である。
【図２５】図２５は内部キャビティおよびその例示の疑似コードをファイリングする技術を図で示したものである。
【図２６】図２６は、ボクセルの分類に基づく視認性を示す図である。
【図２７】図２７は、ソリッド角度の一例を示す図である。
【図２８】図２８は、３×３×３マスクの一例および×形状の一例のその対応する方向を示す図である。
【図２９】図２９は、２Ｄ空間のブレセンハムアルゴリズムの一例を図で示したものである。
【図３０】図３０は、図２９の例示のブレセンハムアルゴリズムの別のビューを示す図である。
【図３１】図３１は、ワイヤフレーム技術の一例を示す図である。
【図３２】図３２は、ワイヤフレームモデルの一例の位相の保存を示す図である。
【図３３】図３３は、簡易型ワイヤフレームモデルを示す図である。
【図３４】図３４は、簡易型ワイヤフレームモデルの各種のレベルの詳細（Ｌｅｖｅｌｓ  Ｏｆ  Ｄｅｔａｉｌ：ＬＯＤ）を示す図である。
【図３５】図３５は、簡易型ワイヤフレームモデルの各種のＬＯＤをさらに表すビューを示す図である。
【図３６】図３６は、視覚的に似ているが異なるモデルを示す図である。
【図３７】図３７は、スケルトングラフの一例を示す図である。
【図３８】図３８は、ローカルボリューム分散の例示のスケルトン稜線を示す図である。
【図３９】図３９は、スケルトンエンティティを有するＣＡＤモジュールの一例を示す図である。
【図４０】図４０は、マーチングアルゴリズムの例示の疑似コードを示す図である。
【図４１】図４１は、稜線のセグメント化を示す図である。
【図４２】図４２は、ループの分類を示す図である。
【図４３】図４３は、ボリュームベースの再構成を図で示したものである。
【図４４Ａ】図４４Ａは、マーチングアルゴリズムに対応付けられた処理結果のビューを図で示したものである。
【図４４Ｂ】図４４Ｂは、マーチングアルゴリズムに対応付けられた処理結果の別のビューを図で示したものである。
【図４４Ｃ】図４４Ｃは、処理結果マーチングアルゴリズムに対応付けられた別のビューを図で示したものである。
【図４５】図４５は、スケルトンモデルの一例を示す図である。
【図４６】図４６は、整理したスケルトンモデルを示す図である。
【図４７】図４７は、マーチングアルゴリズムに対応付けられたデータフローのフローチャートを示す図である。
【図４８】図４８は、対応付けグラフ技術を示す図である。
【図４９】図４９は、木ベースの多次元索引を示す図である。
【図５０】図５０は、木ベースの多次元索引のノードを示す図である。
【図５１】図５１Ａは、木ベースの多次元索引データ構造の一例を示す図である。図５１Ｂは、木ベースの多次元索引データ構造の別の一例を示す図である。
【図５２】図５２は、特徴ベクトルを示す図である。
【図５３】図５３は、特徴空間内の点としてモデルを示す図である。
【図５４】図５４は、部品クラスタマップのビジュアルインターフェースを示す図である。
【図５５】図５５は、自己組織化マップ（ＳＯＭ）データ構造を示す図である。
【図５６】図５６は、クラスタマップインターフェースを示す図である。
【図５７】図５７は、自動クラスタを有する閲覧用のクラスタマップを示す図である。
【図５８】図５８は、類似性クエリーを行った後のクラスタマップを示す図である。
【図５９】図５９は、関連性フィードバックの方法を表すフローチャートを示す図である。
【図６０】図６０は、関連性フィードバックに基づくカスタム化技術を示す図である。
【図６１】図６１は、データ記憶装置ベクトルとクエリーベクトルとの間の照合技術を示す図である。
【図６２】図６２は、多段階探索処理方法の一例を示す図である。
【図６３】図６３は、多段階探索処理から生成した例示の探索結果を示す図である。
【図１】
0004516957.tif 000011
【図２】
0004516957.tif 000012
【図３】
0004516957.tif 000013
【図４】
0004516957.tif 000014
【図５】
0004516957.tif 000015
【図６】
0004516957.tif 000016
【図７】
0004516957.tif 000017
【図８】
0004516957.tif 000018
【図９】
0004516957.tif 000019
【図１０】
0004516957.tif 000020
【図１１】
0004516957.tif 000021
【図１２】
0004516957.tif 000022
【図１３】
0004516957.tif 000023
【図１４】
0004516957.tif 000024
【図１５】
0004516957.tif 000025
【図１６】
0004516957.tif 000026
【図１７】
0004516957.tif 000027
【図１８】
0004516957.tif 000028
【図１９】
0004516957.tif 000029
【図２０】
0004516957.tif 000030
【図２１】
0004516957.tif 000031
【図２２】
0004516957.tif 000032
【図２３】
0004516957.tif 000033
【図２４】
0004516957.tif 000034
【図２５】
0004516957.tif 000035
【図２６】
0004516957.tif 000036
【図２７】
0004516957.tif 000037
【図２８】
0004516957.tif 000038
【図２９】
0004516957.tif 000039
【図３０】
0004516957.tif 000040
【図３１】
0004516957.tif 000041
【図３２】
0004516957.tif 000042
【図３３】
0004516957.tif 000043
【図３４】
0004516957.tif 000044
【図３５】
0004516957.tif 000045
【図３６】
0004516957.tif 000046
【図３７】
0004516957.tif 000047
【図３８】
0004516957.tif 000048
【図３９】
0004516957.tif 000049
【図４０】
0004516957.tif 000050
【図４１】
0004516957.tif 000051
【図４２】
0004516957.tif 000052
【図４３】
0004516957.tif 000053
【図４４Ａ】
0004516957.tif 000054
【図４４Ｂ−Ｃ】
0004516957.tif 000055
【図４５】
0004516957.tif 000056
【図４６】
0004516957.tif 000057
【図４７】
0004516957.tif 000058
【図４８】
0004516957.tif 000059
【図４９】
0004516957.tif 000060
【図５０】
0004516957.tif 000061
【図５１】
0004516957.tif 000062
【図５２】
0004516957.tif 000063
【図５３】
0004516957.tif 000064
【図５４】
0004516957.tif 000065
【図５５】
0004516957.tif 000066
【図５６】
0004516957.tif 000067
【図５７】
0004516957.tif 000068
【図５８】
0004516957.tif 000069
【図５９】
0004516957.tif 000070
【図６０】
0004516957.tif 000071
【図６１】
0004516957.tif 000072
【図６２】
0004516957.tif 000073
【図６３】
0004516957.tif 000074