(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024160936
(43)【公開日】2024-11-15
(54)【発明の名称】CADモデル検索のための機械学習
(51)【国際特許分類】
G06F 16/90 20190101AFI20241108BHJP
G06F 30/27 20200101ALI20241108BHJP
【FI】
G06F16/90 100
G06F30/27
【審査請求】未請求
【請求項の数】18
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024040661
(22)【出願日】2024-03-15
(31)【優先権主張番号】23315150
(32)【優先日】2023-05-02
(33)【優先権主張国・地域又は機関】EP
(71)【出願人】
【識別番号】500102435
【氏名又は名称】ダッソー システムズ
【氏名又は名称原語表記】DASSAULT SYSTEMES
(74)【代理人】
【識別番号】110000752
【氏名又は名称】弁理士法人朝日特許事務所
(72)【発明者】
【氏名】レオポルド メイラード
(72)【発明者】
【氏名】ジュリアン ブシェ
【テーマコード(参考)】
5B146
5B175
【Fターム(参考)】
5B146DC03
5B146DL03
5B146DL08
5B146EA01
5B175EA01
(57)【要約】 (修正有)
【課題】データベースからCAD(Computer-Aided Design)モデルを検索するための嵌合スコアに基づくCADモデル検索のための機械学習のコンピュータ実装方法、ニューラルネットワークの使用方法、データベース及びプログラムを提供する。
【解決手段】オフライン学習方法は、機械部品を表す境界表現(B-Rep)のペアのデータセットを提供することを含み、各ペアは嵌合適合性データでラベル付けされ、嵌合適合性データはペアによって表される機械部品間の嵌合適合性の範囲を表す。方法はまた、データセットに基づいてニューラルネットワークを学習することを含み、ニューラルネットワークは、機械部品を表すB-Repのペアを入力として取り込み、単一埋め込みのペアの嵌合スコアを出力し、各単一埋め込みは、ペアのB-Repに対応し、嵌合スコアは、ペアによって表される機械部品間の嵌合適合性のスコアを表す。
【選択図】
図2
【特許請求の範囲】
【請求項1】
嵌合スコアに基づくCADモデル検索のための機械学習のコンピュータ実装方法であって、
機械部品を表す境界表現(B-Rep)のペアのデータセットを提供するステップであって、各ペアは嵌合適合性データでラベル付けされ、当該嵌合適合性データは、当該ペアによって表される機械部品間の嵌合適合性の範囲を表す、提供するステップと、
データセットに基づいてニューラルネットワークを学習するステップであって、当該ニューラルネットワークは、機械部品を表すB-Repのペアを入力として取り込み、単一埋め込みのペアの嵌合スコアを出力するように構成され、各単一埋め込みは、当該ペアのB-Repに対応し、当該嵌合スコアは、当該ペアによって表される機械部品間の嵌合適合性のスコアを表す、学習するステップと
を含むコンピュータ実装方法。
【請求項2】
前記ニューラルネットワークが、
B-Repのペアを入力とし、当該ペアのB-Repに対する単一埋め込みを出力するように構成されたニューラルネットワークエンコーダと、
嵌合スコアを出力するように構成されたスコアニューラルネットワークと
を有する、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記ニューラルネットワークエンコーダが、シャムグラフニューラルネットワークエンコーダを含み、及び/又は前記スコアニューラルネットワークが多層パーセプトロンニューラルネットワークである
請求項2に記載のコンピュータ実装方法。
【請求項4】
前記ニューラルネットワークが、シャムグラフニューラルネットワークエンコーダの出力に適用され、前記多層パーセプトロンニューラルネットワークの入力として渡されるプーリングモジュールを含む
請求項3に記載のコンピュータ実装方法。
【請求項5】
前記ニューラルネットワークエンコーダ及び前記スコアニューラルネットワークは、損失を用いて同時に学習され、
前記損失は、嵌合適合性データと嵌合スコアとの間の視差にペナルティを課す
請求項2から4のいずれか一項に記載のコンピュータ実装方法。
【請求項6】
請求項1から5のいずれか一項に記載の方法に従って学習可能なニューラルネットワーク。
【請求項7】
請求項6に記載のニューラルネットワークの使用方法であって、
機械部品を表すB-Repのデータベースを提供するステップを含み、
各B-Repは、ニューラルネットワークをB-Repに適用することによって得られる単一の埋め込みに関連付けられる
ニューラルネットワークの使用方法。
【請求項8】
B-Repにニューラルネットワークを適用して、B-Repの単一埋め込みを取得するステップと、
前記単一埋め込み、及び前記データベースに含まれる1つ又は複数のB-Repのそれぞれの単一埋め込みのうちの1つとからなる各ペアにニューラルネットワークを適用するステップを含む、単一埋め込みによるデータベースにクエリするステップと
前記ニューラルネットワークの適用から得られた嵌合スコアに基づいて、前記データベースから1つ以上のB-Repを検索するステップと
を含む請求項7に記載の使用方法。
【請求項9】
嵌合スコアに基づいて1つ又は複数のB-Repをランク付けするステップをさらに含む
請求項8に記載の使用方法。
【請求項10】
それぞれの単一埋め込みを出力するために前記B-Repに前記ニューラルネットワークを適用してデータベースインデックス付けを実行するステップを有し、当該データベースインデックス付けは、それぞれのB-Repにそれぞれの単一埋め込みを関連付ける
請求項1から5又は7から9のいずれか一項に記載の方法。
【請求項11】
請求項10に記載の方法によって取得可能なデータベース。
【請求項12】
コンピュータシステムによって実行されると、請求項1から5のいずれか一項に記載の方法、請求項7から9のいずれか一項に記載の方法、及び/又は請求項10に記載の方法を当該コンピュータシステムに実行させる命令を含むコンピュータプログラム。
【請求項13】
請求項12に記載のプログラム、請求項6に記載のニューラルネットワーク及び/又は請求項11に記載のデータベースを記録したコンピュータ読み取り可能な記録媒体。
【請求項14】
メモリに結合されたプロセッサを含むコンピュータシステムであって、前記メモリには、請求項12に記載のプログラム、請求項6に記載のニューラルネットワーク、及び/又は請求項11に記載のデータベースが記録されている
コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータプログラム及びシステムの分野に関し、より具体的には、CADモデル検索のための機械学習のための方法、システム及びプログラムに関する。
【背景技術】
【0002】
オブジェクトの設計、エンジニアリング、製造のためのシステムやプログラムが数多く提供されている。CADはComputer-Aided Designの頭文字をとったもので、例えば、物体を設計するためのソフトウェアソリューションに関するものである。CAEとは、Computer-Aided Engineeringの頭文字をとったもので、例えば、将来の製品の物理的挙動をシミュレーションするためのソフトウェアソリューションに関するものである。CAMとは、Computer-Aided Manufacturing(コンピュータ支援製造)の頭文字をとったもので、例えば、製造プロセスやオペレーションを定義するためのソフトウェアソリューションに関するものである。このようなコンピュータ支援設計システムでは、グラフィカルユーザーインターフェースが技術の効率に関して重要な役割を果たす。これらの技術は、製品ライフサイクル管理(PLM)システムに組み込まれることもある。PLMとは、企業が製品データを共有し、共通のプロセスを適用し、拡張エンタープライズの概念を超えて、構想から製品寿命が尽きるまでの製品開発のために企業知識を活用することを支援するビジネス戦略のことである。ダッソー・システムズが(CATIA、ENOVIA、DELMIAの商標で)提供するPLMソリューションは、製品エンジニアリングの知識を整理するエンジニアリングハブ、製造エンジニアリングの知識を管理する製造ハブ、そしてエンジニアリングハブと製造ハブの両方に企業統合と接続を可能にするエンタープライズハブを提供する。このシステムは、製品、プロセス、リソースをリンクするオープンオブジェクトモデルを提供し、最適化された製品定義、製造準備、生産、サービスを推進する、ダイナミックで知識ベースの製品創造と意思決定支援を可能にする。
【0003】
このような状況の中で、データベースからCADモデルを検索するための改良されたソリューションが依然として必要とされている。
【発明の概要】
【0004】
したがって、嵌合スコアに基づくCADモデル検索のための機械学習のコンピュータ実装方法が提供される。この方法は、機械部品を表す境界表現(B-Rep)のペアのデータセットを提供するステップであって、各ペアは嵌合適合性データでラベル付けされ、当該嵌合適合性データは、当該ペアによって表される機械部品間の嵌合適合性の範囲を表す、提供するステップと、データセットに基づいてニューラルネットワークを学習するステップであって、当該ニューラルネットワークは、機械部品を表すB-Repのペアを入力として取り込み、単一埋め込みのペアの嵌合スコアを出力するように構成され、各単一埋め込みは、当該ペアのB-Repに対応し、当該嵌合スコアは、当該ペアによって表される機械部品間の嵌合適合性のスコアを表す、学習するステップとを含む。
【0005】
この方法は、以下の1つ以上を含んでもよい。
・前記ニューラルネットワークが、
B-Repのペアを入力とし、当該ペアのB-Repに対する単一埋め込みを出力するように構成されたニューラルネットワークエンコーダと、
嵌合スコアを出力するように構成されたスコアニューラルネットワークと
を有する。
・前記ニューラルネットワークエンコーダが、シャムグラフニューラルネットワークエンコーダを含み、及び/又は前記スコアニューラルネットワークが多層パーセプトロンニューラルネットワークである。
・前記ニューラルネットワークが、シャムグラフニューラルネットワークエンコーダの出力に適用され、前記多層パーセプトロンニューラルネットワークの入力として渡されるプーリングモジュールを含む。
・前記ニューラルネットワークエンコーダ及び前記スコアニューラルネットワークは、損失を用いて同時に学習され、
前記損失は、嵌合適合性データと嵌合スコアとの間の視差にペナルティを課す。
【0006】
また、上記のいずれかに記載の方法に従って学習可能なニューラルネットワークが提供される。
【0007】
また、そのニューラルネットワークの使用方法が提供される。この使用方法は、機械部品を表すB-Repのデータベースを提供するステップを含み、各B-Repは、ニューラルネットワークをB-Repに適用することによって得られる単一の埋め込みに関連付けられる。
【0008】
この使用方法は、以下の1つ以上を含んでもよい。
・B-Repにニューラルネットワークを適用して、B-Repの単一埋め込みを取得するステップと、
前記単一埋め込み、及び前記データベースに含まれる1つ又は複数のB-Repのそれぞれの単一埋め込みのうちの1つとからなる各ペアにニューラルネットワークを適用するステップを含む、単一埋め込みによるデータベースにクエリするステップと
前記ニューラルネットワークの適用から得られた嵌合スコアに基づいて、前記データベースから1つ以上のB-Repを検索するステップと
を含む。
・嵌合スコアに基づいて1つ又は複数のB-Repをランク付けするステップをさらに含む。
【0009】
前記学習方法又は前記使用方法は、それぞれの単一埋め込みを出力するために前記B-Repに前記ニューラルネットワークを適用してデータベースインデックス付けを実行するステップを有し、当該データベースインデックス付けは、それぞれのB-Repにそれぞれの単一埋め込みを関連付けてもよい。
【0010】
また、前記学習方法によって取得可能なデータベースが提供される。
【0011】
また、コンピュータシステムによって実行されると、前記学習方法及び/又は前記使用方法に記載の方法を当該コンピュータシステムに実行させる命令を含むコンピュータプログラムが提供される。
【0012】
また、前記プログラム、前記ニューラルネットワーク及び/又は前記データベースを記録したコンピュータ読み取り可能な記録媒体が提供される。
【0013】
また、メモリに結合されたプロセッサを含むコンピュータシステムであって、前記メモリには、前記プログラム、前記ニューラルネットワーク、及び/又は前記データベースが記録されているコンピュータシステムが提供される。
【図面の簡単な説明】
【0014】
【発明を実施するための形態】
【0015】
嵌合スコアに基づくCADモデル検索のためのコンピュータ実装の機械学習法を提案する。本方法(「学習方法」又は同等に「訓練方法」とも呼ばれる)は、境界表現(B-Rep)のペアのデータセットを提供するステップを含む。B-Repのペアは機械部品を表す。各ペアには嵌合適合性データのラベルが貼られている。嵌合適合性データは、ペアで表される機械部品間の嵌合適合性の範囲を表す。本方法はまた、データセットに基づいてニューラルネットワークを学習するステップを含む。ニューラルネットワークは、機械部品を表すペアのB-Repを入力とするように構成されている。また、ニューラルネットワークは、ペアの埋め込みの嵌合スコアを出力するように構成されている。各単一埋め込みは、ペアのB-Repに対応する。嵌合スコアは、ペアで表される機械部品間の嵌合適合性のスコアを表す。
【0016】
このような方法は、CADモデル検索のための改良されたソリューションを形成する。実際、ニューラルネットワークは、B-Repの入力ペアに対応する単一埋め込みの嵌合スコアを出力するように(すなわち、学習されるように)構成される。嵌合スコアは、ペアによって表される機械部品間の嵌合適合性のスコアを表すため、ニューラルネットワークは、B-Repのペアによって表される機械部品がどの程度一緒に組み立てられるかを決定するように学習される。
【0017】
それによって、本方法によって学習されたニューラルネットワークは、ニューラルネットワークの適用によって得られた嵌合スコアに基づいて、データベースから1つ又は複数のB-Repを検索するために使用されてもよい。言い換えれば、1つ以上のB-RepのCADモデル検索は、嵌合スコアをデータベースの検索条件として使用することによって実行される。
【0018】
したがって、データベースから得られるB-Repは、機械部品間の嵌合適合性の尊重に基づいて検索される可能性がある。これにより、検索された1つ又は複数のB-Repが、入力されたクエリ部品と実世界で効果的に嵌合できる機械部品の代表であることが保証される。このように、本方法とニューラルネットワークは、機械部品の対応するアセンブリの設計段階において、嵌合する機械部品のB-Repを選択する際に設計者を支援するソリューションを形成する。
【0019】
さらに、本方法は、嵌合適合性を有する機械部品のCADモデルを検索するために設計者を支援するだけでなく、本方法は、コンピューティングリソースの観点から(例えば、CPU及びメモリの使用に関して)効率的にこれを行い、したがって、リソース効率的である(本方法は、例えば、GPU上で実行することができる)。実際、検索は、ニューラルネットワークによって計算された単一埋め込みと嵌合スコア(例えば、単一埋め込みはシャムグラフニューラルネットワークエンコーダによって出力され、嵌合スコアは後述するスコアニューラルネットワークによって出力される)に基づいて行われるため、比較的低次元の空間に属するベクトルを処理することになる。これにより、例えば、よりジオメトリ的な方法(例えば、レイキャスティングなどに基づく嵌合適合性識別)に基づく嵌合適合性検索と比較して、CPU及びメモリ使用量の点で効率的な検索が可能になる。上記のように、検索はCPUでもGPUでも実行できる柔軟性がある。
【0020】
使用方法、又はオンライン段階での使用方法からなるプロセス(後述)は、時間効率の改善をもたらす。実際、単一埋め込みのおかげで、この使用方法は高速クエリを可能にする。
【0021】
さらに、使用方法はより空間効率的である。本方法は、B-Repモデルの「署名」を計算することに依存しており、オリジナルモデルよりも比較的軽量である。
【0022】
さらに、新しいCADモデルは、例えば、新しいCADモデルにニューラルネットワークを適用し、それぞれの単一埋め込みに関連付けてデータベースに追加することによって、インデックス付けされたデータベースに追加することができる。例えば、未見のモデルをデータベースへのクエリに使用することができる。
【0023】
さらに、本使用方法はデータドリブンな方法である。実際、本方法を使えば、ペアの組み立てを助けることができ、そのペアを、本方法が学習されたデータセットに加えることができる。
【0024】
本方法及び/又は本使用方法は、設計プロセスに含めることができ、本方法及び/又は本使用方法は、2つ以上の機械部品の嵌合に対応する機械部品のアセンブリを設計する際に設計者を支援するソリューションを形成する。設計プロセスには、以下のステップが含まれる。
・任意で、(例えば本方法を実行することにより)ニューラルネットワークを取得するステップ。
・B-Repのデータベースを提供するステップ。それぞれが単一埋め込みに関連付けられる。
・(例えば、使用方法を実行することによって)B-Repにニューラルネットワークを適用した結果得られるB-Repの単一埋め込み(例えば、後述するように、シャムグラフニューラルネットワークエンコーダによる出力)を、データベースに含まれる1つ又は複数のB-Repのそれぞれの単一埋め込み及びそれぞれの単一埋め込みのうちの1つからなるペアにそれぞれニューラルネットワークを適用すること、及びニューラルネットワークの適用から生じる嵌合スコアに基づいて1つ又は複数のB-Repを検索することによってデータベースをクエリするステップ(例えば、適用は、後述するように、スコアニューラルネットワークの出力である)。
・単一の埋め込みに対応するB-Repを、検索されたB-Repの1つ又は複数(たとえばすべて)と組み立てるステップ。これにより、機械部品のアセンブリを表すB-Repを得る。
【0025】
設計プロセスは、機械部品のアセンブリを表す得られたB-Repを、部品のアセンブリを製造するために使用するステップをさらに含んでもよい。
【0026】
部品のアセンブリを製造するために得られたB-Repを使用するステップは、得られたB-Repによって表される部品のアセンブリの製造に関与/参加する、現実世界のあらゆる行為又は一連の行為を含む。部品の組立製造に得られたB-Repを使用するステップは、例えば以下のステップを含む。
・得られたB-Repの製造を考慮して編集するステップ。
・機械的特性、使用特性、及び/又は製造特性、及び/又は制約の検証のためのシミュレーション(例えば、構造シミュレーション、熱力学シミュレーション、空気力学シミュレーション)など、得られたB-Rep及び/又は対応する特徴ツリーに基づいてシミュレーションを実行するステップ。
・シミュレーションの結果に基づいて、得られたB-Rep(又はその特徴ツリー)を編集するステップ。
・任意に(すなわち、使用される製造プロセスに応じて、機械製品の製造は、このステップを含んでも含まなくてもよい)、(例えば、自動的に)、製造製品の製造/製造のために、(例えば、編集された)B-Rep(又はその特徴ツリー)に基づいて、製造ファイル/CAMファイルを決定するステップ。
・(例えばCADファイルの形で)B-Rep及び/又は製造ファイル/CAMファイルを工場に送信するステップ、 及び/又は
・(決定された製造ファイル/CAMファイル又はB-Repに基づいて、得られたB-Repで元々表現されていた部品のアセンブリを(例えば、自動的に)製造/生産するステップ。これは、製造ファイル/CAMファイル及び/又はCADファイルを、製造プロセスを実行する機械に(例えば自動的に)供給するステップを含んでもよい。
【0027】
この生産/製造の最後のステップは、製造ステップ又は生産ステップと呼ばれることがある。このステップでは、CADモデル(例えばB-Rep)及び/又はCAMファイルに基づいて、例えばCADモデル及び/又はCADファイルが1つ又は複数の製造機械又は機械を制御するコンピュータシステムに供給されることにより、部品のアセンブリを製造/加工する。製造ステップは、任意の既知の製造プロセス又は一連の製造プロセス、例えば、1つ以上の付加製造ステップ、1つ以上の切断ステップ(例えば、レーザー切断又はプラズマ切断ステップ)、1つ以上のスタンピングステップ、1つ以上の鍛造ステップ、1つ以上の曲げステップ、1つ以上の深絞りステップ、1つ以上の成形ステップ、1つ以上の機械加工ステップ(例えば、フライス加工ステップ)及び/又は1つ以上の打ち抜きステップを実行することを含んでもよい。
【0028】
なぜなら、入力されたクエリ部品に適合する機械部品を資源効率よく検索することができるため、設計の効率と人間工学を向上させる(設計中の設計者を支援する)だけでなく、設計の下流で製造される部品の機械的組立も向上させるからである。実際、本方法により、所定の(クエリ)機械部品と組み合わされるのに最も適した機械部品(又はそれ以上)をデータベースから検索することができるため、設計中にこれらの機械部品(又はむしろそれらのB-Rep)を組み立てることによって得られる部品のアセンブリは、改善された物理的性能、特に改善された嵌合強度を示す。実際、アセンブリは、その手法のおかげで、嵌合に最も適していると特定された部品を組み立てることから生まれる。
【0029】
本方法はコンピュータ実装される。これは、本方法のステップ(又は実質的にすべてのステップ)が、少なくとも1台のコンピュータ、又は任意のシステムによって実行されることを意味する。したがって、本方法のステップは、コンピュータによって、場合によっては完全に自動で、あるいは半自動で実行される。例では、本方法の少なくともいくつかのステップのトリガーは、ユーザーとコンピュータの対話を通じて実行される。必要とされるユーザーとコンピュータの相互作用のレベルは、予見される自動化のレベルと、ユーザーの希望を実現する必要性とのバランスに依存してもよい。例では、このレベルはユーザー定義及び/又は事前定義とすることができる。
【0030】
本方法のコンピュータ実装の典型的な例は、この目的に適合したシステムでこのような方法を実行することである。本システムは、メモリ及びグラフィカルユーザインターフェース(GUI)に結合されたプロセッサを備えることができ、メモリには、本方法を実行するための命令を含むコンピュータプログラムが記録されている。メモリはデータベースを保存してもよい。メモリは、そのようなストレージに適合した任意のハードウェアであり、場合によってはいくつかの物理的な別個の部分(たとえば、プログラム用に1つ、データベース用に1つ)を備えている。
【0031】
図1はシステムの一例を示しており、システムはクライアントコンピュータシステム、例えばユーザーのワークステーションである。
【0032】
本実施例のクライアントコンピュータは、内部通信バス1000に接続された中央処理装置(CPU)1010と、同じくバスに接続されたランダムアクセスメモリ(RAM)1070とを有する。クライアントコンピュータはさらに、バスに接続されたVRAM 1100に関連するグラフィカルプロセッシングユニット(GPU)1110を備える。VRAM 1100は、当技術分野ではフレームバッファとしても知られている。大容量記憶装置コントローラ1020は、ハードドライブ1030などの大容量メモリデバイスへのアクセスを管理する。コンピュータプログラム命令及びデータを具体的に具現化するのに適した大容量メモリデバイスには、例として、EPROM、EEPROM、フラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスクを含む、あらゆる形式の不揮発性メモリが含まれる。上記のいずれかは、特別に設計されたASIC(特定用途向け集積回路)によって補完されるか、又は組み込まれてもよい。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。クライアントコンピュータは、カーソル制御装置、キーボードなどの触覚デバイス1090を含むこともできる。ディスプレイ1080上の任意の位置にカーソルを選択的に配置できるように、クライアントコンピュータにはカーソル制御装置が使用されている。また、カーソル操作装置により、各種コマンドを選択したり、制御信号を入力したりすることができる。カーソル制御装置は、システムに制御信号を入力するための多数の信号発生装置を含む。一般的に、カーソル制御装置はマウスであり、マウスのボタンは信号を生成するために使用される。代替的又は追加的に、クライアントコンピュータシステムは、感応パッド、及び/又は感応スクリーンを含んでいてもよい。
【0033】
コンピュータプログラムは、コンピュータによって実行可能な命令を含んでいてもよく、その命令は、上記システムに方法を実行させるための手段を含んでいる。プログラムは、システムのメモリを含む、任意のデータ記憶媒体に記録可能である。プログラムは、例えば、デジタル電子回路、コンピュータハードウェア、ファームウェア、ソフトウェア、又はそれらの組み合わせに実装することができる。プログラムは、装置、例えば、プログラマブルプロセッサによる実行のためにコンピュータ読み取り可能な記憶媒体に実装された製品として実装することができる。方法ステップは、入力データを操作して出力を生成することによって方法の機能を実行する命令のプログラムを実行するプログラマブルプロセッサによって実行され得る。したがって、プロセッサは、データ記憶システム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータと命令を受信し、データと命令を送信するようにプログラム可能に結合されてもよい。アプリケーションプログラムは、ハイレベルの手続き型又はオブジェクト指向プログラミング言語、あるいは必要に応じてアセンブリ言語や機械語で実装することができる。いずれにせよ、言語はコンパイル言語でもインタープリター言語でも構わない。このプログラムは、フルインストールプログラムであってもよいし、アップデートプログラムであってもよい。システム上でプログラムを適用すると、どのような場合でも、本方法を実行するための指示が表示される。コンピュータプログラムは、代替的に、クラウドコンピューティング環境のサーバー(このサーバーは、1つ以上のクライアントとネットワークを介して通信する。)に格納され実行されてもよい。このような場合、処理装置がプログラムによって構成される命令を実行することにより、クラウドコンピューティング環境上で方法が実行される。
【0034】
本学習方法は、嵌合スコアに基づくCADモデル検索のための機械学習である。言い換えれば、本方法は機械学習を活用し、嵌合スコアに基づくCADモデルを検索(例えばデータベースから取得)するためのソリューションを提供する。さらに別の言い方をすれば、嵌合スコアは、例えば、その嵌合スコアを考慮に入れた不揮発性メモリ内のデータベース又は他のデータ構造のルックアップを通じて、CADモデル検索の基準となる。このような基準は、例えば、そのデータベース又は他のデータ構造内のCADモデルに関連付けられた他の嵌合スコア(例えば、そのデータベースに既に格納されているか、又は適切な変換を実行することによって得られる)を取得し、ニューラルネットワークによる嵌合スコア出力と、CADモデルを返すための他の嵌合スコアとの間に一致(厳密に、又は例えば5%以上、例えば10%などの許容範囲内の近似で)があるかどうかを判定することによって使用することができる。
【0035】
機械学習の分野からそれ自体知られているように、ニューラルネットワークによる入力の処理には、入力に演算を適用することが含まれ、演算は重み値を含むデータによって定義される。したがって、ニューラルネットワークの学習には、(そのような学習のために構成された)データセットに基づいて重みの値を決定することが含まれ、そのようなデータセットは、場合によっては学習データセット又は学習データセットと呼ばれる。そのため、データセットには、それぞれがそれぞれの学習サンプルを形成するデータ片が含まれる。学習サンプルは、学習後にニューラルネットワークが使用される状況の多様性を表している。データセットは、100以上、1000以上、10000以上(例えば25000以上)、又は100000以上の数の学習サンプルで構成されてもよい。
【0036】
本方法は、データセットを提供するステップを含む。データセットを提供するステップは、そのようなデータセットをデータ記憶媒体から取得すること、及び/又は遠隔地からダウンロードすることを含んでもよい。データセットを提供するステップは、代替的に、データセットを作成することを含んでいてもよく、このデータセットは、さらに後述するように、B-Repにアノテーションを付けることを含んでいてもよい。
【0037】
このようなデータセットは、境界表現(B-Rep)のペアである。ここに記載されているB-Repは、機械部品の3D表現である。具体的には、B-Repは機械部品の永続的なデータ表現である。B-Repは、表わされた機械部品の設計段階で実施された計算及び/又は一連の操作の結果であってもよい。モデル化オブジェクトが表現されるときにコンピュータの画面上に表示される機械部品の形状は、B-Rep(例えば、テッセレーション)であってもよい。
【0038】
B-Repには、トポロジエンティティとジオメトリエンティティが含まれる。トポロジエンティティは、面、エッジ、頂点である。ジオメトリエンティティは、面、平面、曲線、線、点等の3Dオブジェクトである。定義によれば、面とは、支持面という名の表面の境界を持つ部分である。エッジとは曲線の境界部分のことで、支持曲線と呼ばれる。頂点は3D空間内の点である。両者は次のような関係にある。曲線の境界部分は、曲線上にある2つの点(頂点)によって定義される。表面の境界部分はその境界によって定義され、この境界は表面上にある辺の集合である。面の辺の境界は頂点を共有することで結ばれている。面はエッジを共有することでつながっている。2つの面がエッジを共有していれば隣接している。同様に、2つの辺は頂点を共有していれば隣接している。CADシステムにおいて、B-Repは、「以下で結ばれる」という関係によって、トポロジエンティティとサポートジオメトリの関係、サポートジオメトリの数学的記述を適切なデータ構造に集める。B-Repの内部エッジは、ちょうど2つの面で共有されるエッジである。定義上、境界エッジは共有されず、1つの面にのみ接する。定義によれば、境界面は少なくとも1つの境界エッジに囲まれている。B-Repは、そのすべての辺が内部辺である場合、閉じているという。B-Repは、少なくとも1つの境界エッジを含む場合、開いているという。閉じたB-Repは、(仮想的に)材料を囲む空間の内側部分を定義するため、大きい3Dボリュームのモデリングに使用される。開いているB-Repは、3Dスキンをモデル化するために使用され、これは3Dオブジェクトを表し、その厚さは無視できるほど十分に小さい。
【0039】
B-RepがCADモデリングで使用される他のどの表現タイプよりも優れている点は、任意の形状を正確に表現できることである。点群、距離場、メッシュなど、使用されている他のすべての表現は、離散化によって表現する形状の近似を行う。一方、B-Repには、正確なデザインを表す表面方程式が含まれているため、CNC用のツールパスの生成であれ、所定3Dプリンター技術用の適切なサンプル密度への離散化であれ、さらなる製造のための真の「マスターモデル」を構成する。言い換えれば、B-Repを使用することで、3Dモデルは製造されたオブジェクトを正確に表現することができる。B-Repは、3Dモデルの挙動シミュレーションにも有利である。応力、熱、電磁気、その他の解析に関しては、物理現象を捉えるためのシミュレーションメッシュの局所的な精密化をサポートし、運動学に関しては、曲面間の真の接触モデリングをサポートする。最後に、B-Repはメモリやファイルの使用量を小さくすることができる。STEPデータフォーマットは、コンピュータシステムでB-Repを表現するために使用されてもよい。それは、ASCII構造なので読みやすい。第一に、この表現にはパラメータに基づいた表面しか含まれていないからである。メッシュのような他の表現では、等価表面は最大数千の三角形を含む。第二に、B-Repには履歴に基づく情報が含まれていないからである。
【0040】
各B-Repは、頂点、面及び辺の他に、コ・エッジを含んでもよい。コ・エッジは、配向されたエッジ、すなわちB-Repのエッジに付加的な配向情報を持つエッジである。これにより、コ・エッジは、B-Repの面及び面の隣接関係の周りの順序を定義し、すなわち、B-Repのトポロジを定義する。コ・エッジはB-Repのエンティティを完全にリンクしている。各コ・エッジは、1つの親面(すなわち、それが境界を定義する面)、1つの親辺(すなわち、定義により、コ・エッジは配向辺であり、したがって親辺を持つ)、同じ親辺を持つコ・エッジである1つの仲間コ・エッジ、1つの次のコ・エッジを持つ(すなわち、コ・エッジは配向辺であり、したがって親辺を有する)、同じ親辺を有するコ・エッジである1つの嵌合コ・エッジ、コ・エッジが属するループ内の次のコ・エッジに対応する1つの次のコ・エッジ、及びコ・エッジが属するループ内の前のコ・エッジに対応する1つの前のコ・エッジを有する。各コ・エッジは、その親フェース、隣接面上の相手コ・エッジ、親フェース、親エッジの周囲で、次及び前のコ・エッジとの隣接関係を維持する。
【0041】
B-Repは、B-Repグラフで表されてもよい。このようなグラフは、B-Repの要素(エッジ、面、及び/又はコ・エッジ)を表すグラフノードと、エッジによって接続されたノードによって表される要素間のトポロジ関係を表すグラフエッジから構成されるため、ジオメトリとB-Repのトポロジの両方を表す。例では、各グラフノードは、それぞれのエッジ、それぞれの面、又はそれぞれのB-Repのそれぞれのコ・エッジを表すことができる。これは、B-Repの各辺に対して、それぞれのグラフノードが存在し、B-Repの各面に対して、それぞれのグラフノードが存在し、及び/又はB-Repの各コ・エッジに対して、それぞれのグラフノードが存在することを意味する。他の例では、B-Repグラフは、B-Repのそれぞれの面及び辺のみを表すグラフノードから構成されてもよい。あるいは、B-Repグラフは、B-Repのそれぞれのエッジのみを表すグラフノードから構成されてもよい。各グラフノードは、グラフノードに関連する(すなわち、グラフノードに付随する)ジオメトリ的特徴及び/又はトポロジ的特徴をさらに含んでいてもよい。特徴とは、例えばベクトル(特徴ベクトルとも呼ばれる)などのデータであり、ノードに関連付けられ、グラフノードによって表されるB-Rep要素を特徴付けるジオメトリ的データ及び/又はトポロジ的データを記述する。
【0042】
B-Rep(例えばSTEPファイル形式で表される)はB-Repグラフに変換される(例えば、B-RepがSTEPファイル形式で表される場合、STEPファイルパーサを使用して)か、又はCADバックエンドを使用してB-Repの部品をロードし、関連する特徴が抽出される。例えば、B-Repグラフへの変換は、B-Repエッジ及び面(すなわち、トポロジエンティティ及び例えばコ・エッジを除く)をグラフノード(すなわち、グラフ頂点)にマッピングすることと、前記トポロジエンティティの隣接をグラフエッジにマッピングすることとを含んでもよい。頂点特徴は、対応するエンティティのジオメトリ的性質をエンコードする。他の例では、変換は、トポロジエンティティの各タイプの隣接エンティティを示す追加の隣接行列を渡すことも含む。
【0043】
B-Repは、機械部品または部品のアセンブリ(又は等価的に部品のアセンブリを表し、部品のアセンブリは、本方法の観点からは部品そのものと見なすことができ、又は本方法はアセンブリの各部品に独立して適用することができる)のジオメトリを表すことができ、より一般的には、任意の剛体アセンブリ(例えば、移動機構)を表すことができる。したがって、B-Repは工業製品を表すことができ、これは任意の機械部品であってもよい。機械部品は例えば以下のとおりである。地上車両部品(例えば、自動車及び小型トラック装置、レーシングカー、オートバイ、トラック及びモーター装置、トラック及びバス、列車を含む)、航空車両部品(例えば、機体機器、航空宇宙機器、推進機器、防衛製品、航空機器、宇宙機器)、艦艇車両部品(例えば、艦艇機器、商船、海洋機器、ヨット及び作業船、舶用機器を含む)、一般機械部品(例えば、工業用製造機械、重機械/機器、据付機器、工業用機器製品、金属加工製品、タイヤ製造製品)、電気機械部品又は電子部品(例えば、家電製品、セキュリティ及び/又は制御及び/又は計装製品、コンピュータ及び通信機器、半導体、医療機器及び装置を含む)、消費財(例えば、家具、家庭及び園芸用品、レジャー用品、ファッション製品、硬質商品小売業者の製品、軟質商品小売業者の製品)、包装(例えば、食品及び飲料、タバコ、美容及びパーソナルケア、家庭用製品包装を含む)。
【0044】
(提供されたデータセットにおいて)B-Repの各ペアは嵌合適合性データでラベル付けされている。「嵌合適合性データ」とは、B-Repのペアに関連付けられた任意の値(例えば、値は2進数値又は実数値、あるいは英数字値である)を意味する。嵌合適合性データは、ペアによって表される機械部品間の嵌合適合性の範囲を表し、例えば、2進値又はそのような範囲を示す実数(非負)値である。「嵌合互換性」とは、両B-Repに代表される機械部品がどの程度嵌合する(すなわち組み立てる)ことができるかを示す指標を意味する。したがって、嵌合適合性データは、両方のB-Repによって表される機械部品が一緒に嵌合できるかどうかを示す値、例えば、それらの部品が嵌合できる場合は1、嵌合できない場合は0を有することができる。嵌合適合性データはまた、0と1の間の中間値を含んでいてもよい。例えば、値0からなる嵌合適合性データは、両方の機械部品間に嵌合適合性がないことを表し、値1は、B-Repのペアによって表される機械部品が一緒に嵌合できることを表してもよい。B-Repは(値を持つ適合性データ1に起因して)一緒に嵌合する可能性があるため、それらを拘束する2つの機械部品の間に嵌合を定義することができる。これは、嵌合適合性データがバイナリ値である場合であり、ゼロの値は嵌合適合性がないことを示し、1の値は嵌合適合性が完全であることを示す。ここで、実数値範囲の最低値は嵌合適合性なしを示し、最高値はより高い嵌合適合性を示し、その間の値はより高い嵌合適合性よりも低い互換性の嵌合を示す。上記の値は一例であり、他の値や範囲(例えば、0と1の代わりに0と10、又は[0,1]の代わりに範囲[0,10])を使用してもよいことを理解されたい。例では、嵌合適合性データは、自由度を大きく減少させる拘束(例えば、円筒形拘束、又はスライダー拘束)で嵌合できるB-Repのペアに対してより高い嵌合適合性値(1に近い)を有し、動きの自由度をまだ大きく許容する拘束(例えば、平面拘束)で嵌合できる部品のペアに対してより低い互換性値を有することができる。
【0045】
例では、データセットを提供するステップは、B-Repと嵌合適合性データのペアにアノテーションを付けるステップを含む。例えば、データセットを提供するステップ、(以前の嵌合適合性データを含まない)既存のデータセットから(例えば機械部品を表す)B-Repのペアを取得するステップを含んでもよい。
【0046】
いくつかの例では、既存のデータセットにおけるB-Repの所与のペアに対して、アノテーション付けは、既存のデータセットにおいてそのペアが少なくとも1回一緒に嵌合された場合、そのペアにポジティブなラベルを付ける(すなわち、値1を有する嵌合適合性データを作成する)ことを含んでもよい。アノテーション付けは、代替的に、アセンブリにおいて一緒に結合されていない既存のデータセット中の2つの部品をランダムに選択することによって、そのペアをネガティブにラベル付けすること(すなわち、ゼロの値を有する嵌合適合性データを作成すること)を含んでもよい。従って、データセットは、ポジティブにラベル付けされたペアだけでなく、ネガティブにラベル付けされたペアも含んでもよい。これにより、学習のロバスト性が向上する。実際、ネガティブなラベルを付けたペアは、嵌合できないペアに相当する。こうしてニューラルネットワークは、B-Repのペアが嵌合できないことを検出するように学習される。
【0047】
他の例では、既存のデータセット中のB-Repの所与のペアについて、アノテーション付けは、そのペアが嵌合するユニークなアセンブリの数をカウントしてもよい。アノテーション付けは、複数のアセンブリで表現されているペアにより高い嵌合適合性スコアを割り当てることができる。言い換えれば、よくつがいになるペア(例えば、ボルトとそのナット)には高い値が付けられる。与えられたペアに対して、アノテーションは次のようになる。
【数1】
【0048】
これらの例では、アノテーション付けは、データセット全体でペアが一緒に嵌合されていない場合、そのペアをネガティブにアノテーション付けしてもよい。
【0049】
本方法は、データセットに基づいてニューラルネットワークを学習するステップを含む。ニューラルネットワークは、「ニューロン」とも呼ばれる、接続されたノードの集まりからなる機能である。各ニューロンは入力を受け取り、それに接続された他のニューロンへ結果を出力する。ニューロンと各ニューロンをつなぐ接続には重みがあり、学習によって調整される。本開示の文脈において、「データセットに基づいてニューラルネットワークを学習する」とは、データセットがニューラルネットワークの学習/訓練データセットであり、それに基づいて重みニューラルネットワークの値が設定されることを意味する。つまり、学習は、B-Repとその嵌合適合性データのペアに基づいてニューラルネットワークの重みの値を決定する。
【0050】
学習は教師あり学習であってもよい。本方法は、教師ありモードでの学習に使用されるグランドトゥルースデータとして使用するデータセットのデータ構造内のデータの少なくとも一部を設定することができる。機械学習の分野から知られているように、ニューラルネットワークは、このように出力をグランドトゥルースデータと比較することができ、ニューラルネットワークの出力がグランドトゥルースデータと一致するように、ニューラルネットワークの重みが学習によって調整されることがある。
【0051】
ニューラルネットワークは、機械部品を表すペアのB-Repを入力とするように構成されている。B-Repは、どのような方法でも入力とすることができる。例では、ニューラルネットワークは、ペアの各B-RepのB-Repグラフ表現を入力として取ることができる。言い換えれば、ニューラルネットワークは、ペアの各B-Repについて、エッジによって接続されたノードによって表される要素間のトポロジ関係を表すB-Repのグラフ表現を入力として取り得る。
【0052】
ニューラルネットワークは、ニューラルネットワークエンコーダを含む。ニューラルネットワークエンコーダは、データセットの元の入力空間(すなわち、B-Repの空間)と、埋め込み空間又は潜在空間として知られる低次元空間との間のマッピング(符号化)を決定するように(すなわち、学習されるように)構成されたニューラルネットワークである。ニューラルネットワークエンコーダは、B-Repのペアを(例えば、B-Repグラフ表現として)入力として取り込み、ペアの各B-Repの単一埋め込み(例えば、単一埋め込みは、トポロジ的及び/又はジオメトリ的エンティティを表すベクトルである)を出力するように構成される。言い換えれば、ニューラルネットワークエンコーダは、各入力B-Repに対して単一埋め込みを出力する。
【0053】
ニューラルネットワークは、単一埋め込みのペアの嵌合スコアを出力するように構成されている。各単一埋め込みはペアのB-Repに対応する。単一埋め込みとは、対のB-Repを代表する値、例えばそのトポロジ及び/又はジオメトリを代表する値を持つ(多次元)ベクトルなどのあらゆるデータを意味する。言い換えれば、単一埋め込みは、ペアのB-Repのトポロジ及び/又はジオメトリエンティティの識別を可能にするような任意のデータであってもよい。
【0054】
ニューラルネットワークはスコアニューラルネットワークで構成されてもよい。スコアニューラルネットワークは、その入力に基づいて嵌合スコアを出力するように構成されたニューラルネットワーク(例えば、ディープニューラルネットワークモデル)である。スコアニューラルネットワークは、単一埋め込みのペアの連結を入力とし、嵌合スコアを出力するように構成されている。つまり、スコアニューラルネットワークは、連結された単一埋め込みを入力とし、嵌合スコアを出力するように構成されている。
【0055】
嵌合スコアは、ペアで表される機械部品間の嵌合適合性のスコアを表す。スコアは、一対の単一埋め込みによって表される機械部品間の嵌合適合性を代表する(例えば、非負の)値であってもよい。言い換えれば、本方法によって出力される嵌合スコアは、両方の単一埋め込みによって表される機械部品が組み合わされる可能性の程度を代表する値である。学習では、データセットに基づいてニューラルネットワークの重みの値が決定されるため、ニューラルネットワークは、嵌合スコアを出力するために、ニューラルネットワークが学習した嵌合適合性データを利用する。つまり、出力嵌合スコアは、学習によって設定されたニューラルネットワークの重みの値に依存する。実際、ニューラルネットワークは、嵌合適合性データでラベル付けされたB-Repのペアで学習されているため、嵌合スコアは、学習データセット(すなわち嵌合適合性データ)で捕捉された嵌合適合性の範囲の値と一致する。これにより、嵌合適合性データでラベル付けされたB-Repのペアが、嵌合スコアを予測する際にニューラルネットワークが尊重するように学習されるグランドトゥルースデータとなり、教師あり学習を実施することができる。これにより、ニューラルネットワークの出力(すなわち、嵌合スコア)がグランドトゥルースデータ(すなわち、嵌合適合性データによって構成される値)と一致するように、学習によってニューラルネットワークの重みが調整される。
【0056】
本方法により、CADモデル検索が向上する。実際、ニューラルネットワークによる嵌合スコア出力は、入力クエリB-Repに対応する(データベースなどのデータ構造内の)CADモデルを検索するための基準を提供する。例えば、CADモデル検索は、入力クエリB-Repを入力することにより、データ構造内のCADモデル(B-Repで表される)を検索するステップを含む。したがって、CADモデル検索は非常に効率的で、適切な結果を返す。これはすべて、本方法によるニューラルネットワークの学習方法のおかげである。一方、本方法は、(嵌合適合性データで表される)B-Repとそれぞれの嵌合適合性のペアのトポロジ及び/又はジオメトリを同時に活用するため、嵌合適合性に基づくCADモデル検索の精度が向上する。一方、嵌合スコアは、入力されたクエリパーツで嵌合適合性のインジケータを提供するため、CADモデルの検索効率が高い。
【0057】
さらに、ニューラルネットワークがニューラルネットワークエンコーダとスコアニューラルネットワークから構成される場合、CADモデル検索のためのニューラルネットワークの精度と効率がさらに向上する。実際、一方では、ニューラルネットワークエンコーダは、低次元表現におけるB-Repのトポロジ的及び/又はジオメトリ的エンティティの抽出に重点を置いている。一方、スコアニューラルネットワークは、単一埋め込みを連結してスコアを決定することに重点を置いているため、B-Repの嵌合適合性を表す嵌合スコアを決定する。単一埋め込みは、確かにB-Repの低次元(言い換えれば、コンパクト)な表現であり、対応するB-Repモデルよりもメモリ要件(ストレージ、メモリフットプリント)の点でコストがかからない。
【0058】
ニューラルネットワークエンコーダは、シャムグラフニューラルネットワーク(GNN)エンコーダで構成されてもよい。シャムグラフニューラルネットワークエンコーダは、ニューラルネットワークエンコーダであってもよく、入力ペアの各B-Repに同じ重みで2回適用される。すなわち、各学習反復において、ペアの最初のB-Repをシャムグラフニューラルネットワークエンコーダの入力として与え、次にペアの他のB-Repを入力として与え、得られた単一埋め込みを連結してスコアモジュールを適用し、最後にスコア損失関数の誤差逆伝播によってエンコーダとスコアモジュールの両方の重みを更新する。言い換えれば、GNNエンコーダは1回の学習反復中に2回適用されるが、その重みは最後に1回更新される。そのため、同じネットワークを2回適用することで、両方の部分に同じ重みが適用される。言い換えれば、「シャム」という言葉は、2つの異なる入力がありながら、1つのネットワークを適用していることを示すに過ぎない。言い換えれば、(学習で設定された)シャムグラフニューラルネットワークエンコーダの重みは、それぞれの単一の埋め込みを計算するために、各入力B-Repのグラフのノードとエッジ(そのトポロジ的エンティティ、それらのジオメトリ的特徴及び/又は隣接関係をリスト化する)に適用することができる。例では、学習は、両方の入力B-Repが処理された後、損失の結果を誤差逆伝播することによって、シャムグラフニューラルネットワークエンコーダの重みを更新する。シャムグラフニューラルネットワークエンコーダは、B-Repのグラフを得るために、入力されたB-Repのペアに対して、例えば、B-RepがSTEP形式である場合に、そのB-Repに対してSTEPパーサを適用することによって、任意の種類のデータ処理を実行することができる。
【0059】
付加的又は代替的に、スコアニューラルネットワークは多層パーセプトロンニューラルネットワークであってもよい。多層パーセプトロンニューラルネットワークは、完全接続されたニューロンを含む。多層パーセプトロンニューラルネットワークは、入力層、1つ以上の(例えば複数の)隠れ層、及び出力層から構成される。多層パーセプトロンニューラルネットワークは、単一埋め込みと嵌合スコアの連結、すなわち実数値との間のマッピングを実行するように学習されてもよい。多層パーセプトロンニューラルネットワークは、
【数2】
のタイプのマッピングであり、ここでdは単一埋め込みの次元を表す。多層パーセプトロンニューラルネットワークは、合理的な時間内に大量のペアに適用できるように、軽量(すなわち、完全接続ニューロンの数が比較的少ない)に保つことができる。つまり、ニューラルネットワークでは、シャムグラフニューラルネットワークエンコーダによって単一埋め込みが出力され、多層パーセプトロンニューラルネットワークであるスコアニューラルネットワークによって嵌合スコアが出力される。
【0060】
これにより、CADモデル検索の効率がさらに向上する。一方、シャムグラフニューラルネットワークエンコーダは、入力されたB-Repの各グラフ表現(すなわちB-Repグラフ)の単一埋め込みを出力するために同一の重みを使用する。したがって、エンコーダのゴールは、単一埋め込みの署名を計算することであり、そこから2番目のネットワーク(スコアモジュール)が嵌合適合性のスコアを計算するのが得意になり、損失を最小限に抑えることができる。この結果、ニューラルネットワークは、入力B-Rep間の嵌合適合性をより効率的に決定することができる。
【0061】
ニューラルネットワークは、シャムグラフニューラルネットワークエンコーダの出力に適用されるプーリングモジュールを含んでいてもよい。プーリングモジュールは、シャムグラフニューラルネットワークエンコーダ、すなわち単一埋め込みの出力をダウンサンプリングするプーリングレイヤを有してもよい。プーリングモジュールの適用結果は、多層パーセプトロンニューラルネットワークへの入力として渡されてもよく、すなわち、それぞれの単一の埋め込みに対するプーリングモジュールの適用結果は、連結された後、多層パーセプトロンニューラルネットワークに渡されてもよい。例では、ニューラルネットワークエンコーダは、シャムネットワークの出力に、言い換えれば、ペアの各B-Repのシャムネットワークの出力に、プーリングモジュールをさらに含んでもよい。さらに言い換えれば、ペアのそれぞれのB-Repに対する単一埋め込みは、プーリングモジュールの適用後の出力である。
【0062】
プーリングモジュールを使用することで、単一埋め込みが低次元表現であることが保証されるため、嵌合適合性の決定の精度と効率が向上する。これにより、必要なメモリが大幅に削減される。
【0063】
例では、シャムグラフニューラルネットワークエンコーダは、各入力B-Repグラフに対して複数のベクトル埋め込みを出力することができる。プーリングモジュールは、単一埋め込みを得るために、各複数のベクトル埋め込みに適用されてもよい。プーリングモジュールは、複数のプーリング演算、例えば、最大プーリング(単一埋め込みの座標の最大値を計算する)、合計プーリング又は平均プーリング演算を適用することができる。言い換えれば、プーリングモジュールは、最大プーリング、合計プーリング、又は平均プーリングのいずれかである。エンコーダは、例えば、まず、B-Repグラフ表現のグラフノードごとに1つの埋め込みを出力する(つまり、B-Repの例えば面や辺ごとに1つのベクトル埋め込みを出力する)ことができるため、部品ごとに1つの固定サイズの埋め込みを持つようにプーリングが適用される。
【0064】
n個のトポロジエンティティ(面や辺など)を含むB-Repのグラフ表現が構築され、GNNエンコーダに渡されてもよい。したがって、グラフはn個のノードを持つ。GNNエンコーダは、これらの各ノードに対して固定サイズ(例えば256)のベクトル埋め込み(1次元テンソル)を出力する。256)ベクトルの埋め込み(1次元テンソル)を、これらのノードのそれぞれに対して行い、その結果、パート全体に対して[n×256]の埋め込みを行う。エンコーダが出力する埋め込みは、[m×256]となる。プーリングモジュールは、シャムグラフニューラルネットワークエンコーダの最後(連結を行う前)に適用される。シャムグラフニューラルネットワークエンコーダの適用により、トポロジエンティティの量n及びmに関係なく、各パートの[1×256]テンソルを得ることができる(スコアニューラルネットワークは、一定のサイズを持つ単一埋め込みのペアの連結を入力として受け取る)。これらを連結するとサイズ512のベクトルとなり、メモリ使用量は非常にコンパクトになる。
【0065】
ニューラルネットワークエンコーダとスコアニューラルネットワークは、損失を用いて同時に学習することができる。「同時に学習される」とは、ニューラルネットワークエンコーダの重みとスコアニューラルネットワークの重みが、損失と同時に(つまり同じ学習プロセスで)調整されることを意味する。例では、ニューラルネットワークエンコーダはシャムグラフニューラルネットワークエンコーダであり、損失はスコアニューラルネットワークの重みとともにシャムグラフニューラルネットワークエンコーダの重みを同時に調整することができる。例えば、損失は単一の損失値を出力し、シャムグラフニューラルネットワークエンコーダとスコアニューラルネットワークの重みを調整するために誤差逆伝播することができる。
【0066】
この損失は、嵌合適合性データと嵌合スコアの間の格差にペナルティを課してもよい。損失は、嵌合適合性データと嵌合スコアの間の距離関数を測定することにより、視差にペナルティを課してもよい。例えば、嵌合適合性データがバイナリ値で構成されている場合、距離関数はバイナリクロスエントロピー(損失はバイナリクロスエントロピーの損失)であってもよい。このため、嵌合スコアは、嵌合適合性データの2進値と一致する2進値となる。バイナリクロスエントロピー損失は、次のような形となる。
【数3】
【0067】
代替的及び/又は付加的に、距離関数は、嵌合適合性データが実数値からなる場合、ユークリッド距離(損失は、例えば平均二乗損失である)を構成することができ、これにより、嵌合スコアは実数値であることが強制される。平均二乗誤差の損失は、次のような形になる。
【数4】
【0068】
これにより、CADモデル検索の効率が向上する。この損失は、B-Repのペアのトポロジ的及び/又はジオメトリ的特徴の低次元表現を得るための重みを同時に更新することによって、確かに効率を改善し、同時に嵌合適合性データと一致する嵌合スコアを強制する。
【0069】
例では、本方法は、B-Repと嵌合適合性データのペアを入力とするシャムグラフニューラルネットワークエンコーダと、シャムグラフニューラルネットワークエンコーダの出力に適用され、それによりペアの各B-Repについて単一埋め込みを出力するプーリングモジュールと、単一埋め込みの連結を入力とし、嵌合スコアを出力するスコアニューラルネットワークからなる互換性スコアモジュールとを同時に学習することができる。この例では、学習はエンドツーエンドで行われる。単一の損失値が計算され、シャムグラフニューラルネットワークエンコーダと互換性スコアモジュールの重みを調整するために誤差逆伝播される。損失は、互換性スコアモジュールが出力する予測スコアと嵌合適合性データとの間の距離を測定する。
【0070】
さらに、本方法に従って学習可能な(例えば、学習方法に従って学習された)ニューラルネットワーク、すなわち、本方法によって学習されたニューラルネットワークの重みを有する、コンピュータに実装されたニューラルネットワークデータ構造が提供される。言い換えれば、ニューラルネットワークの重みは、本方法による学習の実行後に(すなわち、そのような重みをさらに後処理することなく)確実に設定することができる。
【0071】
さらに、学習方法に従って学習されたニューラルネットワークの使用方法が提供される。使用方法は、機械部品を表すB-Repのデータベースを提供するステップを含む。データベース内の各B-Repは、B-Repにニューラルネットワークを適用して得られた単一埋め込みに関連付けられる。
【0072】
さらに、本方法及び/又は本使用方法を実行するステップを含む。プロセスが提供される。また、本方法を実行することを「オフライン段階」と呼び、使用方法を実行することを「オンライン段階」と呼ぶこともある。オフライン段階とオンライン段階は、異なるシステム、異なるエンティティ、又は異なる場所で実行されてもよい。
【0073】
「データベース」とは、検索及び取得のために組織化されたデータ(すなわち情報)のあらゆる集合体を意味する(例えば、所定の構造化言語、例えばSQLに基づくリレーショナルデータベースなど)。メモリ上に保存されたデータベースは、コンピュータによる迅速な検索と取得を可能にする。データベースは、さまざまなデータ処理操作と連動して、データの保存、検索、変更、削除を容易にするように構造化されている。データベースは、1つ又は複数のフィールドを含む。レコードに分解できるファイル又はファイルのセットを含む。フィールドはデータ保存の基本単位である。ユーザーは主にクエリを通じてデータを取得することができる。キーワードと並べ替えコマンドを使うことで、ユーザーは多くのレコードのフィールドを素早く検索、並べ替え、グループ化、選択することができ、使用しているデータベース管理システムのルールに従って、特定のデータ集計に関するレポートを検索又は作成することができる。
【0074】
さらに、本使用方法に従って取得可能なデータベース、すなわち、データ片がそれぞれのB-Repからなり(例えば、これらからなる)、それぞれの単一の埋め込みに関連付けられた、検索及び検索のために編成されたデータの集合体が提供される。
【0075】
「関連する」とは、B-Repと単一埋め込みが関連し、データベース上で関係を持つこと、すなわち、B-Repにニューラルネットワークを適用することにより、データベース内の2つのオブジェクトの間に相互リンクが存在することを意味する。しかし、データベース内でのB-Repとその単一埋め込みの関連付けは、データベースの実装の問題であり、これ以上議論する必要はない。
【0076】
本使用方法は、B-Repにニューラルネットワークを適用することにより、B-Repの単一埋め込み(「新しいB-Rep」とも呼ばれる)を取得するステップを含んでもよい。例では、ニューラルネットワークは、シャムグラフニューラルネットワークエンコーダと、学習方法に従って学習されたスコアニューラルネットワークとを含んでもよい。本使用方法は、シャムグラフニューラルネットワークエンコーダをB-Repに適用し、そのシャムグラフニューラルネットワークエンコーダから単一埋め込みを得てもよい。
【0077】
本使用方法はまた、単一埋め込みを使用してデータベースにクエリするステップを含んでもよい。クエリは、単一埋め込みと、データベースに含まれる1つ又は複数のB-Repのそれぞれの単一埋め込みのうちの1つからなるペアそれぞれに、ニューラルネットワークを適用することを含む。例において(例えば、ニューラルネットワークがシャムグラフニューラルネットワークエンコーダ及びスコアニューラルネットワークから構成され得る場合)、本方法は、(例えば、SQL命令を介して)クエリの一部として単一埋め込みを設定し、単一埋め込みを用いてデータベースを検索してもよい。使用方法は、例えば、ニューラルネットワークをデータベースに含まれる1つ又は複数のB-Repに適用して、クエリを実行するとき、すなわちクエリでB-Repのデータベースをトラバースする間に、それぞれの単一埋め込みを(例えば、シャムグラフニューラルネットワークエンコーダの出力で、又はそのようなB-Repがそれぞれの単一埋め込みに関連付けられていないときにプーリングモジュールの出力で)取得することができる。スコアニューラルネットワークは、一組の単一埋め込み(すなわち、新たなB-Repから得られた単一埋め込みと、データベースに含まれる1つ以上のB-Repのそれぞれ)の連結を入力として取り、対応する嵌合スコアを出力することができる。
【0078】
本使用方法はまた、ニューラルネットワークの適用から得られた嵌合スコアに基づいて、データベースから1つ以上のB-Repを検索することを含んでもよい。例えば、使用方法は、新たなB-Repに対して最も高い嵌合スコアを有するデータベースのB-Repを出力することができる。あるいは、本方法は、例えば、所定の閾値以上のスコアを有する複数のB-Repを出力してもよい。例では、データベースの複数のB-Repが同じ最高嵌合スコア(数値許容差まで)を有する場合、本方法はそのB-Repのすべてを出力することができる。
【0079】
この結果、データベースから検索されたB-Repは、新たなB-Repを基準としてそれぞれの嵌合適合性が検索されるため、B-Repを非常に効率的に検索することができる。
【0080】
本使用方法は、嵌合スコアに基づいて、1つ又は複数のB-Repをランク付けするステップを含んでもよい。その結果、本方法は適切な結果をもたらすかもしれない。実際、使用方法は、より関連性の高い検索されたB-Repを優先するように、嵌合スコアの降順で1つ又は複数のB-Repにランク付けすることができる。B-Repは、例えば、ランキングによって設定された順序に従ってエンドユーザーに表示される。
【0081】
方法又は使用方法は、データベースのインデックス付けを実行するステップをさらに含んでもよい。データベースのインデックス付けとは、B-Repをデータベース内のそれぞれのデータと関連付けて保存することを可能にする操作のセットを意味する。データベースのインデックス付けは、ニューラルネットワークをB-Repに適用して、それぞれの単一埋め込みを出力する(例えば、ニューラルネットワークエンコーダの出力から、又はプーリングモジュールの出力から)ことによって実行され得る。データベースのインデックス付けは、それぞれのB-Repに、それぞれの単一の埋め込みを関連付けることができる。言い換えれば、データベースのインデックス付けは、そのB-Repを、それぞれの単一埋め込みと関連付けてデータベースに格納してもよい。また、このプロセスは、データベースのインデックス付けを実行するステップを含んでもよい。データベースのインデックス付けは、オフラインステージの一部であってもよい。本使用方法は、既存のデータベースからB-Repを1つ以上(例えば複数)取得することを含んでもよい。このようにして、使用方法は、各々がそれぞれの単一埋め込みに関連付けられた1つ又は複数のB-Repからなるデータベース(例えば、以前に存在しなかった場合は、完全に新しいデータベース)を作成することができる。
【0082】
本使用方法は、例えば、取得された単一埋め込みを有するデータベースに対して、単一埋め込みを有するデータベースを照会することができる。これにより、既存のデータベースと比較して検索効率が向上し、単一埋め込みによる低次元表現に基づく検索が可能になる。
【0083】
次に、
図2~
図7を参照しながら、本方法の例について説明する。
【0084】
図2は、本方法のパイプライン2000を説明するものである。本方法は、本方法によるニューラルネットワークのオフライン学習ステージ2100と、オフラインデータベースインデックス作成2200、すなわち、B-Repのデータベースを作成するオフライン段階を含み、各B-Repは署名に関連付けられる。パイプライン2000はまた、オンラインステージ2300、すなわち使用方法を含んでいる。
【0085】
次にオフライン学習ステージ2100について説明する。
【0086】
オフライン学習2100は、相手適合性データ(「適合性ラベル」)を有するB-Repのペアのデータベース2110を提供することを目的とする。オフライン学習は同時に、B-Rep部品のペアを入力として取り込み、それぞれの(多次元)ベクトル埋め込み(「署名」とも呼ばれる)2121および2122を出力するシャムB-Repエンコーダ2120を学習し、B-Rep部品の入力ペアに関連付けられたアノテーションを有するベクトル埋め込み2130の連結2130を入力として取り込む嵌合スコアモジュール(スコアディープニューラルネットワーク(DNN)モジュールである)2140を学習する。互換性スコアモジュール2140は適合スコア2150を出力する。オフライン学習2100はエンドツーエンドである。単一の損失値が計算され、2つのモジュール2120と2140の重みを調整するために誤差逆伝播される。
【0087】
オフライン学習ステージ2100は教師あり学習であるため、データサンプルのアノテーション、すなわち嵌合適合性データによるラベリングについて説明する。データサンプルは、B-Repフォーマット(STEPなど)のCADモデルのペアであり、アセンブリで組み合わされる2つのパーツの互換性/関連性を測定する数値でアノテーションされている。
【0088】
データの前処理。データサンプルは、DNNアーキテクチャに渡すことができるように前処理されてもよい。
【0089】
建築の設計。シャムB-Repエンコーダは、パーツごとに固定サイズのベクトル埋め込みを1つ返す。スコアモジュールは、シャムB-Repエンコーダが出力したペアの2つの埋め込みを連結したものを入力とし、互換性スコアを出力する。
【0090】
学習損失。学習損失関数は、スコアモジュールによって出力された予測スコアとペアのターゲット嵌合適合性データとの間の距離を測定する。
【0091】
学習2100は、アノテーション付きデータセットに対して数回反復して行われる。
【0092】
次に、オフラインデータベースインデックス作成2200について説明する。学習されたディープラーニングモジュールは、未経験のデータ(学習データセット以外のデータサンプル)に汎化するために使用することができる。学習されたディープラーニングモジュールは、B-Repを(例えば既存のデータベースから)単一埋め込みに関連付けるデータベースを作成するために使用することができる。したがって、オフラインインデックス付け2200は、学習されたディープラーニングモジュールを適用し、出力されたベクトル単一埋め込み(例えば、出力2121及び2122に由来する)を格納する。
【0093】
次にオンラインステージ2300について説明する。
【0094】
入力クエリB-Rep部品が与えられると、オンラインステージ2300は、2200でインデックス付けされたデータベースから、クエリと嵌合する最も適合性の高い部品を抽出するステップを有する。
【0095】
オンラインステージ2300は以下のサブタスクを含む。
【0096】
クエリベクトルのシングルエンベッディング/シグネチャを取得する。クエリB-Repは、2200でインデックス付けされたデータベースに存在するとは限らないため(例えば、CADユーザーが設計したばかりの部品である可能性がある)、オンラインステージ2300は、学習された深層学習モジュール2100を適用して、対応する単一の埋め込み2310を得ることができる。
【0097】
全ての(クエリ部分、インデックス部分)ペアの単一埋め込みを連結する。2310で得られたクエリ部分のシグネチャと、データベース2200にインデックス付けされた各埋め込みシグネチャとの間の連結が実行され、これらが学習済みスコアモジュール2140に渡される準備が整う。したがって、インデックス付けされたデータベースがn個の部品を含む場合、連結2320はn回の連結で得られる。
【0098】
2320で得られた連結に学習された嵌合スコアモジュール2140を適用する。
【0099】
インデックス付けされた部品2340を、予測される互換性スコアの降順で並べ替える。このようにして、本方法は、上位k個の部品に対して、クエリに適合するインデックス付き部品の上位k個を返す。
【0100】
教師あり学習のための、嵌合適合性データを使ったデータアノテーションやラベリングについては、さらに詳しく説明する。
【0101】
ここでは、嵌合適合性データのペアアノテーションのうち、目的のタスクを実行するのに適したものをいくつか例示する。CADアセンブリを含むデータセットが与えられる。B-RepフォーマットのCAD部品と、それらをマルチパーツアセンブリに組み立てるための嵌合/ジョイントデータ(アセンブリの部品間の嵌合を定義)は、以下のアプローチが可能である。
・アプローチA:データセット中に嵌合データを持つ部品のペア、すなわち、データセットのアセンブリの1つで少なくとも1回は一緒に嵌合する部品のペアにポジティブなラベルを付ける(値を1に設定する)。ネガティブサンプルを作成するには(値を0に設定する)、データセット全体からランダムに2つのパーツを選択し、1つのアセンブリでそれらが決して一緒に組み合わされないようにする。もう1つの実装パラメータは、学習セット内のポジティブサンプルとネガティブサンプルのバランスである。
・アプローチB:データセット内で一緒に嵌合されている部品の各ペアについて、このペアが嵌合されているユニークなアセンブリの数をカウントし、複数のアセンブリで表現されているペアにより高い嵌合適合性スコアを割り当てる。そうすることで、よく嵌合するペア(例:ネジとナット)には、より高い値が表示される。あるペアについて、嵌合適合性データは次のようになる。
【数5】
ここでもまた、データセット全体で決して嵌合することのない2つの部品を選択することで、学習セットをネガティブなサンプルで補強することができる。
【0102】
図3A~3Cを参照して、B-Rep部品のデータ前処理についてさらに説明する。
図3Aは、データ前処理を模式的に示す図であり、
図3B~3Cは、
図3Aに示す分解部品のさらなる斜視図である。
【0103】
B-Rep部分に適用されるデータ前処理は、以下のセクションで取り上げるDNNエンコーダに依存する場合がある。例えば、ニューラルネットワークの実装は、グラフB-Rep表現3200(B-Repグラフ)を入力とするシャムグラフニューラルネットワークB-Repエンコーダ3100などのメッセージパッシングベースのエンコーダに基づいてもよい。このようなB-Repグラフは、STEPファイルパーサを使用して、またはCADバックエンドを使用して部品をロードし、関連する特徴を抽出することによって構築することができる。例えば、本方法は、頂点が物体の辺および面のトポロジカルエンティティであり、グラフ辺がこれらのトポロジカルエンティティの隣接によって定義されるグラフを構築することができる。頂点特徴は、対応するエンティティのジオメトリ的特性(エッジまたは面のタイプ、面の面積、エッジの長さなど)をエンコードする。各タイプのトポロジ的エンティティの隣接エンティティを示す隣接行列を追加で渡す必要がある場合もある。
【0104】
さらにニューラルネットワークの設計について説明する。
【0105】
ニューラルネットワークは、ベクトル埋め込みから1物体につき単一埋め込み
【数6】
を1つだけ出力する必要がある。本方法は、ベクトル埋め込みにグラフプール法を適用し、単一のグラフレベル埋め込みを得ることができる。いくつかのグラフプーリング操作(例えば最大プーリングや平均プーリングなど)が考えられる。
【0106】
嵌合スコアモジュールは
【数7】
をマッピングする多層パーセプトロン(MLP)として実装されており、オンライン推論段階で重要なペアに適用できるように、このモジュールは軽量に保つことが望ましい。
【0107】
学習損失については、さらに詳しく説明する。
【0108】
学習損失は、予測されたスコア値とラベル付けされた互換性スコアとの間の距離を測定する必要があるため、嵌合適合性データにリンクされている。
【0109】
バイナリラベルを使用する場合(アプローチA)、学習タスクはバイナリ分類問題となり、バイナリクロスエントロピー損失を使用して学習することができる。
【数8】
【0110】
アプローチBのような他のラベリングアプローチには、平均二乗誤差損失が適している。
【数9】
【0111】
オフラインデータセットのインデックス付けについて、
図4を参照しながらさらに説明する。
【0112】
データベースのインデックス付けを実行するために、既存のデータベース4100内のB-Repにグラフプーリングを適用した学習済みエンコーダ4200を適用し、出力単一エンベッディング4300に関連付けてそのB-Repを格納することができる。したがって、各B-Repは、その固定サイズのベクトル単一埋め込みにマッピングすることができる。本方法はまた、グラフニューラルネットワークをサンプルに適用できるように、(各B-RepについてグラフB-Repを得るための)データ前処理ルーチンを実行してもよい。学習されたエンコーダを実験に使用した場合、CPU上で推論モードを実行しながら、部品データベースのインデックス作成に約3600個の部品で約15秒かかった。
【0113】
オンライン照会/推論段階について、
図5を参照しながらさらに説明する。
【0114】
入力クエリ部5100は、データベースに保存されている1つの埋め込みと連結される。この連結はスコアモジュール5200に入力される。本方法は、検索された嵌合スコア5300をランク付けすることができる。
【0115】
クエリを実行した場合、クエリ部分と~3600個のインデックス部分との間に2140を使用して嵌合スコアを生成する場合、CPUで約0.4秒かかった。従って、本方法は生産可能なものとみなすことができる。実際、これによって1秒未満でオンラインクエリが可能になり、市販のCAD製品に統合することができ、CAD設計者のワークフローにシームレスに統合することができる。
【0116】
図6及び
図7は、CADモデルの検索結果である。6100がクエリの入力である。本方法では、6100に対して嵌合スコアが最も良い上位4つの部品である6200が得られる。7100もクエリの入力である。本方法では、7100に対して嵌合スコアが最も良い上位4つの部品である7200が得られる。
【手続補正書】
【提出日】2024-03-27
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
嵌合スコアに基づくCADモデル検索のための機械学習のコンピュータ実装方法であって、
機械部品を表す境界表現(B-Rep)のペアのデータセットを提供するステップであって、各ペアは嵌合適合性データでラベル付けされ、当該嵌合適合性データは、当該ペアによって表される機械部品間の嵌合適合性の範囲を表す、提供するステップと、
データセットに基づいてニューラルネットワークを学習するステップであって、当該ニューラルネットワークは、機械部品を表すB-Repのペアを入力として取り込み、単一埋め込みのペアの嵌合スコアを出力するように構成され、各単一埋め込みは、当該ペアのB-Repに対応し、当該嵌合スコアは、当該ペアによって表される機械部品間の嵌合適合性のスコアを表す、学習するステップと
を含むコンピュータ実装方法。
【請求項2】
前記ニューラルネットワークが、
B-Repのペアを入力とし、当該ペアのB-Repに対する単一埋め込みを出力するように構成されたニューラルネットワークエンコーダと、
嵌合スコアを出力するように構成されたスコアニューラルネットワークと
を有する、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記ニューラルネットワークエンコーダが、シャムグラフニューラルネットワークエンコーダを含み、及び/又は前記スコアニューラルネットワークが多層パーセプトロンニューラルネットワークである
請求項2に記載のコンピュータ実装方法。
【請求項4】
前記ニューラルネットワークが、シャムグラフニューラルネットワークエンコーダの出力に適用され、前記多層パーセプトロンニューラルネットワークの入力として渡されるプーリングモジュールを含む
請求項3に記載のコンピュータ実装方法。
【請求項5】
前記ニューラルネットワークエンコーダ及び前記スコアニューラルネットワークは、損失を用いて同時に学習され、
前記損失は、嵌合適合性データと嵌合スコアとの間の視差にペナルティを課す
請求項2に記載のコンピュータ実装方法。
【請求項6】
請求項1に記載の方法に従って学習可能なニューラルネットワーク。
【請求項7】
請求項6に記載のニューラルネットワークの使用方法であって、
機械部品を表すB-Repのデータベースを提供するステップを含み、
各B-Repは、ニューラルネットワークをB-Repに適用することによって得られる単一の埋め込みに関連付けられる
ニューラルネットワークの使用方法。
【請求項8】
B-Repにニューラルネットワークを適用して、B-Repの単一埋め込みを取得するステップと、
前記単一埋め込み、及び前記データベースに含まれる1つ又は複数のB-Repのそれぞれの単一埋め込みのうちの1つとからなる各ペアにニューラルネットワークを適用するステップを含む、単一埋め込みによるデータベースにクエリするステップと
前記ニューラルネットワークの適用から得られた嵌合スコアに基づいて、前記データベースから1つ以上のB-Repを検索するステップと
を含む請求項7に記載の使用方法。
【請求項9】
嵌合スコアに基づいて1つ又は複数のB-Repをランク付けするステップをさらに含む
請求項8に記載の使用方法。
【請求項10】
それぞれの単一埋め込みを出力するために前記B-Repに前記ニューラルネットワークを適用してデータベースインデックス付けを実行するステップを有し、当該データベースインデックス付けは、それぞれのB-Repにそれぞれの単一埋め込みを関連付ける
請求項1又は7に記載の方法。
【請求項11】
請求項10に記載の方法によって取得可能なデータベース。
【請求項12】
コンピュータシステムによって実行されると、請求項1に記載の方法、又は請求項7に記載の方法を当該コンピュータシステムに実行させる命令を含むコンピュータプログラム。
【請求項13】
請求項12に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項14】
請求項6に記載のニューラルネットワークを記録したコンピュータ読み取り可能な記録媒体。
【請求項15】
請求項11に記載のデータベースを記録したコンピュータ読み取り可能な記録媒体。
【請求項16】
メモリに結合されたプロセッサを含むコンピュータシステムであって、前記メモリには、請求項12に記載のプログラムが記録されており、前記プロセッサが前記プログラムを実行する
コンピュータシステム。
【請求項17】
メモリに結合されたプロセッサを含むコンピュータシステムであって、前記メモリには、請求項6に記載のニューラルネットワークが記録されており、前記プロセッサが前記ニューラルネットワークを使用した処理を実行する
コンピュータシステム。
【請求項18】
メモリに結合されたプロセッサを含むコンピュータシステムであって、前記メモリには、請求項11に記載のデータベースが記録されており、前記プロセッサが前記データベースを使用した処理を実行する
コンピュータシステム。
【外国語明細書】