それぞれが機械部品を表す3Dモデル化オブジェクトを含むデータセットを用いた、コンピュータにより実施される機械学習の方法が提供される。
特に、コンピュータによって実施される第1の機械学習の方法が提供される。第1の方法は、3Dモデル化オブジェクトを含むデータセットを提供することを含む。3Dモデル化オブジェクトはそれぞれ、各機械部品を表す。当該データセットは、1つまたは複数のサブデータセットを有する。各サブデータセットは、データセットの少なくとも一部を形成する。第1の方法は、各サブデータセットについて、ベーステンプレートを決定することをさらに含む。ベーステンプレートは、サブデータセットの3Dモデル化オブジェクトの重心を表す3Dモデル化オブジェクトである。第1の方法は、各ベーステンプレートの各3Dモデル化オブジェクトへの変形を推定するように構成されたニューラルネットワークを学習することをさらに含む。当該学習は、サブデータセットに基づく訓練を含む。この第1の方法は、以下では「テンプレート学習方法」とも呼ばれる。
テンプレート学習方法は、それぞれが機械部品を表す3Dモデル化オブジェクトを含むデータセットを用いた改善された機械学習の方法を構成する。
特に、テンプレート学習方法では、各サブデータセットについて、サブデータセットの3Dモデル化オブジェクトの重心を表す3Dモデル化オブジェクトを決定できる。言い換えれば、テンプレート学習方法は、3Dモデル化オブジェクト、すなわち、サブデータセットの3Dモデル化オブジェクト(例えば、その平均形状)を表すベーステンプレートを決定する。テンプレート学習方法はさらに、重心の、各3Dモデル化オブジェクトへの変形を推定するニューラルネットワークの学習を可能にする。そのようなニューラルネットワークの学習は、サブデータセットに基づく訓練を含む。言い換えれば、学習では、サブデータセットの3Dモデル化オブジェクトを用いて、そのようなモデル化オブジェクトの重心の変形の推定を学習する。したがって、学習は、変形の正確な詳細の推定の学習に集中してもよい。なぜなら、サブテンプレートの重心であるベーステンプレートは、大きく、かつ/あるいは、大まかに変形してサブデータセットの3Dモデル化オブジェクトに変換する必要がないからである。したがって、テンプレート学習方法によって学習したニューラルネットワークは、ベーステンプレートの、データセットの3Dモデル化オブジェクトへの正確な変形を推定する。例において、ニューラルネットワークは、変形を推定するように構成されたデコーダを含むオートエンコーダである。そのような例では、オートエンコーダは3Dモデル化オブジェクトを入力とし、3Dモデル化オブジェクトの再構築を出力してもよく、再構築は、デコーダによって推定された、ベーステンプレートの、3Dモデル化オブジェクトへの変形であるか、またはそれに基づく。デコーダは、ベーステンプレートのサブデータセットの3Dモデル化オブジェクトへの正確な変形を推定するため、オートエンコーダによるそのようなオブジェクトの再構築は正確である。
例において、データセットは、それぞれk個のサブデータセットによって分割されるか、実質的に分割され、数kは、例えば2よりも大きい。これらの例では、テンプレート学習方法はk個のベーステンプレートを決定し、k個のニューラルネットワークを学習する。各ベーステンプレートは、それぞれのサブデータセットの重心を表す。これらの例では、テンプレート学習方法によって学習した各ニューラルネットワークは、k個のベーステンプレートのうちのそれぞれ1つの、3Dモデル化オブジェクトへの正確な変形を推定する。したがって、上述のように、各ニューラルネットワークは、k個のベーステンプレートのうちのそれぞれ1つ(k個のベーステンプレートのうちのそれぞれ1つが重心を表すような1つ)の、それぞれのサブデータセットの、3Dモデル化オブジェクトへの正確な変形を推定する。言い換えれば、テンプレート学習方法は、各サブデータセットの重心のサブデータセットのオブジェクトへの正確な変形を推定することに特化したk個のニューラルネットワークを学習する。よって、例においては、テンプレート学習方法は、各サブデータセットの3Dモデル化オブジェクトの再構築にそれぞれ特化したk個のオートエンコーダを学習してもよい。
なお、数kは1に等しくてもよく、その場合、データセットは1つのサブデータセットのみを含む。サブデータセットは少なくとも一部を形成し、これは、この場合、サブデータセットがデータセットと等しいか、実質的に等しいことを意味する。そのような例では、テンプレート学習方法は、決定されたベーステンプレートの変形を推定するために構成されたニューラルネットワークの学習の上述の精度から、依然として恩恵を受ける。実際、決定されたベーステンプレートは、データセットの、すべての、または実質的にすべての3Dモデル化オブジェクトの重心を表すため、その学習中に、決定されたベーステンプレートの変形を推定するように構成されたニューラルネットワークは、変形の正確な詳細の学習に集中してもよい。
数kは、データセット自体が3Dモデル化オブジェクトのk個のクラスに分割されるか、実質的に分割されるという事実に対応してもよい。すなわち、各サブデータセットは、各クラスの3Dモデル化オブジェクトで、一意に、または実質的に一意に、構成される。「データセットは、それ自体、それぞれ各クラスの3Dモデル化オブジェクトで構成されるk個のサブデータセットによって分割される」とは、例においては、テンプレート学習方法が、ベーステンプレートの決定前、および/または、ニューラルネットワークの学習前に、それぞれ各クラスの3Dモデル化オブジェクトからなるk個のサブデータセットによってデータセットを分割するステップを含むことを意味する。分割は、データセットの各3Dモデル化オブジェクトに、それぞれのクラスを表すラベルを割り当てることを含んでいてもよい。よって、このような場合、テンプレート学習方法は、それぞれ各サブデータセットの重心の、サブデータセットに対応するクラスのオブジェクトへの正確な変形を推定することに特化した、k個のニューラルネットワークを提供する。よって、例においては、テンプレート学習方法は、各クラスの3Dモデル化オブジェクトの再構築にそれぞれ特化したk個のオートエンコーダを学習してもよい。
追加的に、または代替的に、数kはユーザによって提供されてもよい。そのような例において、データセットは必ずしもそれ自体がそれぞれのクラスの3Dモデル化オブジェクトで構成されるk個のサブデータセットに分割または実質的に分割されているわけではなく、数kを指定することでそのような分割を実施できる。「実施する」とは、(例えば、ユーザ操作なしに)分割がベーステンプレートの決定、および/または、ニューラルネットワークの学習の結果として生じ得る(および/または、その最中に生じ得る)ことを意味する。実際、k個のベーステンプレートを決定することは、共通損失を最小化することを含んでいてもよい。データセットの各3Dモデル化オブジェクトについて、共通損失は、複数の項から項を選択する。各項は、3Dモデル化オブジェクトと候補ベーステンプレートとの不一致にペナルティを課す。選択された項は、複数の項のうち不一致に対するペナルティが最も小さい項であってもよい。言い換えれば、決定は、候補ベーステンプレート(潜在的なベーステンプレートとしてテストされた3Dモデル化オブジェクト)を、それらの、データセットの3Dモデル化オブジェクトとの類似性に応じて(例えば、繰り返し)選択を操作する。これにより、各サブデータセットのすべての3Dモデル化オブジェクトとの平均非類似性が最小であるk個のベーステンプレートの決定が実施される。言い換えると、本テンプレート学習方法は、k個の重心の決定を実施することにより、データセットのk個のサブデータセットへの分割を実施し、それにより、重心の1つに対する(例えば、最も高い)類似性に応じて、データセットのオブジェクトをクラスタ化する。言い換えれば、数kを提供すると、データセットが自動的にk個の各クラスに分割され、各クラスは、k個のサブデータセットのそれぞれ1つのオブジェクト、すなわち、サブデータセットの重心に対する非類似性が最小のオブジェクトに対応する。このような分割により、学習されたk個のニューラルネットワークのうちの学習された各ニューラルネットワークは、各サブデータセットの重心の、サブデータセットに対応するクラスのオブジェクトへの正確な変形を推定することに特化したものとなる。データセット自体が3Dモデル化オブジェクトのk個のクラスに分割または実質的に分割されている例においては、上述の、数kの提供に続くデータセットの分割は、実際にはデータセットの分割それ自体に対応するか、または実質的に対応していてもよい。言い換えれば、上述の、数kの提供に続くデータセットの分割は、データセットの分割それ自体と同じ結果(すなわち、データセットの同じ分割)になってもよい。
例においては、サブデータセットは1つだけで(例えば、データセット全体を形成するサブデータセット1つだけ)、したがって、データセット全体の重心を表すテンプレートが1つだけ決定される。他の例では、いくつかのサブデータセットがあり、よってサブデータセットごとに1つの重心が決定される。そのような例における特定の例では、データセットは未加工(すなわち、データセットのサブデータセット要素がどこに属するかに関する情報なし)で提供され、学習は、単一の損失を最小限に抑える(すなわち、その他の損失についてはそうしない)ことを含む。このような特定の例では、損失は、要素の割り当てを操作してそれぞれのサブデータセットを修正するように構成される。このような例では、いくつかのベーステンプレートを学習することにより、データセットを事前にいくつかのサブデータセットに分けておく必要がなくなる。このような例では、単一の損失により、ベーステンプレートの学習中に自動的にデータセットを段階的にクラスタ化できる場合がある(いくつかのオートエンコーダの学習と同様)。
また、コンピュータによって実施される第2の機械学習の方法が提供される。第2の方法は、3Dモデル化オブジェクトを含むデータセットを提供することを含む。3Dモデル化オブジェクトはそれぞれ、各機械部品を表す。第2の方法は、ニューラルネットワークの集合を提供することを含む。各ニューラルネットワークは、それぞれ重みを有する。各ニューラルネットワークは、3Dモデル化オブジェクトを推定するように構成されている。第2の方法は、損失を最小化することにより各ニューラルネットワークの重みを修正することをさらに含む。データセットの各3Dモデル化オブジェクトについて、損失は、複数の項から項を選択する。各項は、3Dモデル化オブジェクトと、集合のうちの各ニューラルネットワークによって推定された各3Dモデル化オブジェクトとの不一致にペナルティを課す。選択された項は、複数の項のうち不一致に対するペナルティが最も小さい項であってもよい。この第2の方法は、以下では「多様体学習方法」とも呼ぶ。
多様体学習方法は、それぞれが機械部品を表す3Dモデル化オブジェクトを含むデータセットを用いた改善された機械学習の方法を構成する。
特に、多様体学習方法は、3Dモデル化オブジェクトの同じデータセット上で、それぞれが3Dモデル化オブジェクトを推定するいくつかのニューラルネットワークを学習する。学習には損失の最小化が含まれ、損失は、データセットの3Dモデル化オブジェクトと各ニューラルネットワークによって推定された3Dモデル化オブジェクトとの不一致にペナルティを課す項の選択を操作する。選択された項は、不一致に対するペナルティが最も小さい項である。言い換えると、多様体学習方法は、データセットの各3Dモデル化オブジェクトについて、どのニューラルネットワークが3Dモデル化オブジェクトを(例えば最も)正確に推定するかの選択を(例えば、繰り返し)操作することによって、ニューラルネットワークを学習する。その結果、各ニューラルネットワークは(例えば、学習中に繰り返し、例えば漸進的に)データセットのサブデータセットの3Dモデル化オブジェクトを推定することに特化し、各サブデータセットは、ニューラルネットワークが特化しているデータセットの3Dモデル化オブジェクトからなる。したがって、多様体学習方法によって学習されたニューラルネットワークは正確である。例においては、ニューラルネットワークはそれぞれ、3Dモデル化オブジェクトを推定するように構成されたデコーダを含むオートエンコーダである。そのような例では、各オートエンコーダは3Dモデル化オブジェクトを入力とし、3Dモデル化オブジェクトの再構築を出力してもよく、再構築は、デコーダにより推定された3Dモデル化オブジェクトであるか、またはそれに基づく。各デコーダは、データセットのサブデータセットの3Dモデル化オブジェクトを正確に推定するため、オートエンコーダによるそのようなオブジェクトの再構築は正確である。
例において、多様体学習方法はk個のニューラルネットワークを学習する。つまり、ニューラルネットワークの集合はk個のニューラルネットワークからなる。数kはユーザにより提供されてもよい。数kのそのような提供により、データセットのk個のサブデータセットそれぞれの3Dモデル化オブジェクトの推定において、各ニューラルネットワークの上記特化が実施される。このような数kの提供により、データセットのk個のクラスの3Dモデル化オブジェクトへの分割も(例えば、学習中に、例えば、ユーザ操作なしで)実施される。各クラスは、学習されたk個のニューラルネットワークのそれぞれ1つが推定に特化する3Dモデル化オブジェクトに対応する。例においては、3Dモデル化オブジェクトのk個のクラスへのデータセットの分割の実施は、3Dモデル化オブジェクトのk個のクラスへのデータセットの分割自体、または実質的な分割に相当し、ここで、各サブデータセットは、それぞれ1つのクラスの3Dモデル化オブジェクトで一意にまたは実質的に一意に作成される。「3Dモデル化オブジェクトのk個のクラスへのデータセットの分割自体」とは、例においては、多様体学習方法が、ニューラルネットワークの学習前に、それぞれ各クラスの3Dモデル化オブジェクトからなるk個のサブデータセットによってデータセットを分割するステップを含むことをさらに意味する。分割は、データセットの各3Dモデル化オブジェクトに、それぞれのクラスを表すラベルを割り当てることを含んでいてもよい。
例においては、各ニューラルネットワークは、各ベーステンプレートの各3Dモデル化オブジェクトへの変形を推定するように構成されている。これらの例においては、各ベーステンプレートは、3Dモデル化オブジェクトである。これらの例においては、各ベーステンプレートは、データセットのサブデータセットの3Dモデル化オブジェクトの重心を表す3Dモデル化オブジェクトであってもよい。そのような例では、各ニューラルネットワークは特に正確である。第一に、サブデータセットの3Dモデル化オブジェクトの推定に特化しているため、上述のように正確になる。第二に、ニューラルネットワークによって推定される3Dモデル化オブジェクトは、類似した3Dモデル化オブジェクト(重心)の変形であるか、それに基づいているため、上述のようにニューラルネットワークが正確になる。例において、各ベーステンプレート、またはそれらの少なくとも一部は、テンプレート学習方法によって決定される。このような場合、学習されたニューラルネットワークは、上述の、テンプレート学習方法と多様体学習方法の両方の精度から恩恵を受け、特に正確になる。あるいは、各ベーステンプレートまたはそれらの少なくとも一部は、他の任意の方法によって決定されてもよい。
テンプレート学習方法と多様体学習方法は、独立して実行されてもよい。テンプレート学習方法による1つまたは複数のニューラルネットワークの学習(すなわち、1つまたは複数のサブデータセットのうちのそれぞれ1つについてのニューラルネットワークの学習)は、多様体学習方法による損失の最小化を含んでいてもよい。あるいは、テンプレート学習方法による1つまたは複数のニューラルネットワークの学習は、他の任意の機械学習法によって実行されてもよい。多様体学習によって学習されたニューラルネットワークは、ベーステンプレートの変形を推定するよう構成されていてもよく、ベーステンプレートは、上述のように、テンプレート学習方法または他の任意の方法によって決定される。
テンプレート学習方法と多様体学習方法は同じプロセスで統合されてもよい。図1は、そのプロセスを示したフローチャートであり、これについてここで説明する。
このプロセスは、3Dモデル化オブジェクトを含む共通のデータセットを提供すること(S10)を含む。3Dモデル化オブジェクトはそれぞれ、各機械部品を表す。例においては、テンプレート学習方法によるデータセットの提供と多様体学習方法によるデータセットの提供は、当該プロセスによって提供(S10)された共通のデータセットを再利用することからなる。言い換えれば、テンプレート学習方法によって提供されるデータセットと多様体学習方法によって提供されるデータセットは、ともに、当該プロセスによって提供される共通のデータセットと同一である。あるいは、テンプレート学習方法によるデータセットの提供は、共通のデータセットの第1の部分を再利用することからなり、多様体学習方法によるデータセットの提供は、共通のデータセットの第2の部分を再利用することからなってもよい。第2の部分と第1の部分は異っていてもよい。例においては、第2の部分と第1の部分は異なってもよいが、同じクラスの3Dモデル化オブジェクトを含んでいてもよい。言い換えれば、第2の部分と第1の部分の両方は、それ自体、同じ数k個の3Dモデル化オブジェクトのクラスによって分割されてもよい。このプロセスは、数kを提供すること(S20)をさらに含む。数kの提供(S20)は、ユーザが数kを指定する(例えば、宣言する)ことを含んでいてもよい。このプロセスは、k個のベーステンプレートを決定すること(S30)をさらに含む。k個のベーステンプレートの決定(S30)は、テンプレート学習方法によって実行される。このプロセスは、k個のニューラルネットワークを学習すること(S40)をさらに含む。k個のニューラルネットワークの学習(S40)は、多様体学習方法によって、k個のニューラルネットワークからなるニューラルネットワークの集合のそれぞれの重みの修正(S420)を含む。
このプロセスで同じデータセット(すなわち、共通のデータセット)を用いて、テンプレート学習方法によってk個のベーステンプレートの決定(S30)を行い、多様体学習方法によってk個のニューラルネットワークの学習を行うことで、特にこれら2つの方法の組み合わせから恩恵を受けることができる。実際、テンプレート学習方法によるk個のベーステンプレートの決定(S30)は、共通のデータセットをk個のサブデータセットに分割(例えばクラスタ化)し、これは、言い換えれば、共通のデータセットを3Dモデル化オブジェクトのk個のクラスに分割する。多様体学習方法によって学習されたk個のニューラルネットワークのそれぞれは、k個のベーステンプレートのそれぞれの、共通のデータセットの3Dモデル化オブジェクトへの変形を推定するように構成されるように学習され得る。このような場合、k個のベーステンプレートの決定(S30)によって提供される、共通のデータセットのk個のサブデータセットへの分割により、上述の、k個のサブデータセットのそれぞれの重心の、サブデータセットの3Dモデル化オブジェクトへの正確な変形の推定に対する、k個のニューラルネットワークのそれぞれの特化が容易になり、改善される。さらに、k個のニューラルネットワークのそれぞれは、サブデータセットの重心のサブデータセットの3Dモデル化オブジェクトへの変形に関する詳細の学習(S40)に集中することができ、これにより上述のようにその精度が改善する。よって、例においては、本プロセスは、各サブデータセットの3Dモデル化オブジェクトの、特に正確な再構築にそれぞれ特化したk個のオートエンコーダを学習してもよい。
追加的に、または代替的に、提供される数kは、上述のように、共通のデータセット自体が3Dモデル化オブジェクトのk個のクラスに分割されるか、実質的に分割されるという事実に対応してもよい。したがって、そのような場合、本プロセスは、それぞれが1つのクラスのオブジェクトからなるk個のサブデータセットのそれぞれの重心の、当該クラスの3Dモデル化オブジェクトへの変形の推定に特化したk個のニューラルネットワークを提供してもよい。特に、本プロセスは、各クラスの3Dモデル化オブジェクトの、特に正確な再構築にそれぞれ特化したk個のオートエンコーダを学習してもよい。
さらに、テンプレート学習方法、多様体学習方法、またはプロセスによって学習可能および/または取得可能なニューラルネットワークおよび/または(例えばk個の)ニューラルネットワークの集合が提案される。また、コンピュータにより実施される、ニューラルネットワークおよび/または(例えばk個の)ニューラルネットワークの集合の利用方法も提供される。利用方法の例についてここで説明する。
ニューラルネットワークの利用方法の例についてここで説明する。
これらの例においては、ニューラルネットワークは、各ベーステンプレートの各3Dモデル化オブジェクトへの変形を推定するように構成されたデコーダを備えるオートエンコーダである。これらの例において、本利用方法は、第1の3Dモデル化オブジェクトと第2の3Dモデル化オブジェクトを提供することをさらに含む。これらの例において、本利用方法は、第1の3Dモデル化オブジェクトと第2の3Dモデル化オブジェクトにオートエンコーダを適用することをさらに含む。これらの例において、利用方法は、オートエンコーダの適用結果に基づいて、第1の3Dモデル化オブジェクトと第2の3Dモデル化オブジェクトとの形状マッチングを決定することをさらに含む。
ベーステンプレートは、3Dモデル化オブジェクトのクラスの3Dモデル化オブジェクトの重心を表してもよい。例においては、クラスの各3Dモデル化オブジェクトとベーステンプレートは3Dメッシュ(または点群)である。これらの例において、デコーダは、ベーステンプレートの各頂点(または点)と、ベーステンプレートが変形されるクラスの3Dモデル化オブジェクトの頂点(または点)との対応の集合を推定するように構成されていてもよい。3Dモデル化オブジェクトと第2の3Dモデル化オブジェクトは、ともに当該クラスのモデル化オブジェクトであってもよい。したがって、例においては、オートエンコーダの適用により、ベーステンプレートの各頂点(または点)と第1の3Dモデル化オブジェクトの各頂点(または点)との対応の第1の集合が出力される。これらの例においては、オートエンコーダの適用により、さらに、ベーステンプレートの各頂点(または点)と第2の3Dモデル化オブジェクトの各頂点(または点)との対応の第2の集合が出力される。対応の第1の集合および対応の第2の集合に基づいて、第1の3Dモデル化オブジェクトの各頂点(または点)と第2の3Dモデル化オブジェクトの各頂点(または点)との対応の第3の集合を推定してもよい。例においては、形状マッチングを決定することは、対応の第3の集合の推定に対応する。
ベーステンプレートを学習すると、オートエンコーダのトポロジの一貫性が向上する。特に、学習したベーステンプレートから開始すると、オートエンコーダによって再構築されたすべてのメッシュまたは点群の頂点対頂点の対応が確実になり、上述のように、本利用方法によって提供される形状マッチングが可能になる。形状マッチングの2つの適用例について説明する。
第1の適用例はシミュレーションのための形状マッチングである。第1の適用例は、第1の3Dモデル化オブジェクトおよび1つまたは複数の第2の3Dモデル化オブジェクトを提供することを含む。例えば、第1の3Dモデル化オブジェクトおよび1つまたは複数の第2の3Dモデル化オブジェクトはすべて3Dモデル化オブジェクトの同じクラスに属する。第2の3Dモデル化オブジェクトのそれぞれについて、第1の適用例では、利用方法によって、第1の3Dモデル化オブジェクトおよび第2の3Dモデル化オブジェクトにオートエンコーダを適用することを含む。第1の適用例は、オートエンコーダの適用結果に基づいて、利用方法により、第1の3Dモデル化オブジェクトと第2の3Dモデル化オブジェクトとの形状マッチングを決定することをさらに含む。第1の適用例は、決定された各形状マッチングを用いて、シミュレーション体験のための1つまたは複数の出版物および/または目印で第1の3Dモデル化オブジェクトに注釈を付け、第2の3Dモデル化オブジェクトのそれぞれの1つまたは複数の注釈をターゲット変更することをさらに含む。第1の適用例は、注釈付きの第2の3Dモデル化オブジェクトのそれぞれについて、シミュレーション体験を再実行することをさらに含み、それにより、第1の3Dモデル化オブジェクトに注釈を付けるだけで任意の第2の3Dモデル化オブジェクトのシミュレーションを再実行できる。
2番目の適用例は、マテリアル/テクスチャのターゲット変更のための形状マッチングである。第2の適用例は、第1の3Dモデル化オブジェクトおよび1つまたは複数の第2の3Dモデル化オブジェクトを提供することを含む。例えば、第1の3Dモデル化オブジェクトおよび1つまたは複数の第2の3Dモデル化オブジェクトはすべて3Dモデル化オブジェクトの同じクラスに属する。第2の3Dモデル化オブジェクトのそれぞれについて、第2の適用例では、利用方法によって、第1の3Dモデル化オブジェクトおよび第2の3Dモデル化オブジェクトにオートエンコーダを適用することを含む。第2の適用例は、オートエンコーダの適用結果に基づいて、利用方法により、第1の3Dモデル化オブジェクトと第2の3Dモデル化オブジェクトとの形状マッチングを決定することをさらに含む。第2の適用例は、UVマッピングを用いて、第1のモデル化オブジェクトにテクスチャまたはマテリアルを適用することをさらに含む。第2のアプリケーションは、決定された各形状マッチングを用いることにより、1つまたは複数の第2のモデル化オブジェクトに対するUVマッピングをターゲット変更することをさらに含む。これにより、他の任意の第2の3Dモデル化オブジェクトに対するUVマッピングをターゲット変更し、テクスチャまたはマテリアルをターゲット変更できる。
オートエンコーダは常に正確に同じ出力接続の同じメッシュトポロジを持っている可能性があるため、オートエンコーダによって提供される再構築により、ターゲット変更が簡単になる。
上記の利用方法の例によって決定された形状マッチングの適用例が図2に示されている。ここでは、オートエンコーダは接続を維持し、椅子の頂点を対応付けることができることが示されている。
(例えばk個の)ニューラルネットワークの集合の利用方法の例についてここで説明する。
これらの例において、ニューラルネットワークはそれぞれ、3Dモデル化オブジェクトを推定するように構成されたデコーダを含むオートエンコーダである。これらの例において、本利用方法は、2つ以上の3Dモデル化オブジェクトを提供することを含む。これらの例では、利用方法は、ニューラルネットワークの集合のそれぞれのオートエンコーダの潜在空間にそれぞれ2つ以上の3Dモデル化オブジェクトを投影することをさらに含む。これらの例では、利用方法は、投影された2つ以上の3Dモデル化オブジェクト間の潜在空間での1つまたは複数の補間を算出することをさらに含む。これらの例において、利用方法は、算出された各補間にデコーダを適用することをさらに含む。
潜在空間で算出された1つまたは複数の補間のうちの算出された任意の補間は、潜在ベクトル(「補間された潜在ベクトル」とも呼ぶ)であり、これは、2つの潜在ベクトル間の補間であり、当該2つの潜在ベクトルは、2つ以上の3Dモデル化オブジェクトのうちの3Dモデル化オブジェクトの、潜在空間上におけるそれぞれの投影である。したがって、利用方法は、1つまたは複数のそのような補間された潜在ベクトルを算出する。2つの潜在ベクトル間の補間は、ベクトル空間での任意の線形補間など、任意の補間であってよい。
例においては、利用方法に関与する各3Dモデル化オブジェクトは、あるクラスの3Dモデル化オブジェクトである。そのような場合、各オートエンコーダのデコーダは、当該クラスの3Dモデル化オブジェクトを推定するように構成する(例えば、特化させる)ことができる。したがって、算出された補間にデコーダを適用すると、クラスの3Dモデル化オブジェクトが出力される。算出された補間は、クラスの2つの3Dモデル化オブジェクトの2つの投影間で算出された補間潜在ベクトルであるため、復号された補間潜在ベクトルは、クラスの2つの3Dモデル化オブジェクトの中間の幾何学的形状など、補間を表すクラスの3Dモデル化オブジェクトである。したがって、利用方法は、1つまたは複数のそのような補間を算出してもよい。
ここで、図3および図4を参照して、本利用方法の例について説明する。
図3は、第1の3Dモデル化オブジェクト30と第2の3Dモデル化オブジェクト32を示す。どちらのオブジェクトも、4本脚の椅子のクラスに属する椅子である。図3は、それぞれが当該クラスに属する4本脚の椅子6つの集合34を示し、それぞれの椅子が、利用方法によって算出された2つの椅子30と32の間の補間である。
図4は、第1の3Dモデル化オブジェクト40と第2の3Dモデル化オブジェクト42を示す。どちらのオブジェクトも、4本脚の椅子のクラスに属する椅子である。図4は、それぞれが当該クラスに属する6つの椅子の集合44を示し、それぞれの椅子が、利用方法によって算出された2つの椅子40と42の間の補間である。
テンプレート学習方法、多様体学習方法、またはプロセスの、上述の精度から恩恵により、利用方法は、各オートエンコーダの元の入力空間における現実的な非線形補間を実行できる。
(例えばk個の)ニューラルネットワークの集合の利用方法の他の例についてここで説明する。
利用方法のこれらの例において、ニューラルネットワークはそれぞれ、3Dモデル化オブジェクトを推定するように構成されたデコーダを含むオートエンコーダである。これらの例において、本利用方法は、3Dモデル化オブジェクトの一部を提供することを含む。これらの例において、本利用方法は、当該3Dモデル化オブジェクトの一部に各オートエンコーダを適用することを含む。これらの例では、利用方法は、3Dモデル化オブジェクトの一部に対し、当該3Dモデル化オブジェクトの一部に各オートエンコーダを適用した結果を適合させることをさらに含む。
デコーダは、3Dモデル化オブジェクトのクラスの3Dモデル化オブジェクトを推定するように構成されていてもよい。3Dモデル化オブジェクトは当該クラスに属していてもよい。したがって、3Dモデル化オブジェクトの一部にオートエンコーダを適用すると、当該クラスの別の3Dモデル化オブジェクトが出力されてもよい。したがって、3Dモデル化オブジェクトの一部に対し、各オートエンコーダを当該3Dモデル化オブジェクトの一部に適用した結果を適合することは、当該クラスの別の3Dモデル化オブジェクトの一部が当該3Dモデル化オブジェクトの一部と(例えば幾何学的に)一致するように、当該クラスの別の3Dモデル化オブジェクトを変形し、これにより3Dモデル化オブジェクトを自動補完することからなる。
ここで、図5を参照して、そのような利用方法の例について説明する。図5は、3Dモデル化オブジェクトの一部50の例を示しており、これは、脚の欠けた椅子である。図5は、3Dモデル化オブジェクトの一部50に適合した後、3Dモデル化オブジェクトの一部50に各オートエンコーダを適用した結果52をさらに示している。適合した結果52は、脚が欠けていない椅子50である。
したがって、本利用方法は、3Dスキャンパイプラインにおけるスキャン自動補完(Scans Autocompletion)の形状推定(Shape Inference)プロセスに適用してもよい。そのようなパイプラインについてここで説明する。
3Dスキャンパイプラインは、1つまたは複数の現実の物体、例えば現実世界の3Dシーンにおける物体をスキャンすることを含んでいてもよい。スキャンは、それぞれが物理信号を取得するように構成された1つまたは複数の物理センサを提供することと、1つまたは複数の現実の物体上で1つまたは複数の物理センサを操作する(すなわち、各センサで、1つまたは複数の現実の物体を、順に、または同時にスキャンする)ことにより1つまたは複数の物理信号を取得することとを含んでいてもよい。3Dスキャンパイプラインは、スキャンされた現実世界の物体ごとに、1つまたは複数の物理センサの測定値に基づいて、スキャンされた現実世界の物体を表す3D点群および/または3Dメッシュを自動的に決定する3D再構築方法を適用することを含んでいてもよい。3D再構築は、任意の既知の技術により実行してもよい。1つまたは複数のセンサは、複数の(例えば、RGBおよび/または画像またはビデオ)カメラを備えていてもよく、また決定は、運動からの構造への分析(structure-from-motion analysis)を含んでいてもよい。1つまたは複数のセンサは、代替的に、または追加的に、(例えばRGB深度カメラ上に)1つまたは複数の深度センサを含んでいてもよく、決定は深度データからの3D再構築を含んでいてもよい。1つまたは複数の深度センサは、例えば、レーザー(例えば、ライダー)または超音波送受信機を備えていてもよい。
1つまたは複数のスキャンされた現実世界の物体は、それぞれ少なくとも1つのオクルージョンを特徴としてもよい。このようなオブジェクトは、部分点群(つまり、オクルージョンなしで完全な現実の物体を表すと考えられる完全な点群の一部)で表されていてもよい。次いで、3Dスキャンパイプラインは、オクルージョンを特徴とする1つまたは複数のスキャンされた現実世界の物体を表す1つまたは複数の部分点群のそれぞれに利用方法を適用して、各部分点群を自動補完することを含んでいてもよい。具体的には、各部分点群について、利用方法によって提供される3Dモデル化オブジェクトの一部は、部分点群である。利用方法によれば、各オートエンコーダが部分点群に適用され、各オートエンコーダを適用した結果が部分点群に適合され、それにより部分点群が自動補完される。なお、例においては、自動補完を実行するためには、単純に部分点群をそのままオートエンコードに与えることはできないことを理解されたい。そうではなく、これらの例では、不完全な点群から3D形状の潜在ベクトルを予測する別のエンコーダを学習するか、部分点群に最適な3D形状を潜在空間で最適化してもよい。
上記部分点群のそれぞれについて、点群が3Dモデル化オブジェクトのクラスに属するオブジェクトを表す場合、本利用方法では、このように、クラスの3Dモデル化オブジェクトを推定するようにデコーダが構成されたオートエンコーダを適用できる。その結果、そのようなオブジェクトの自動補完が正確になる。これは、上記のようにクラスの3Dモデル化オブジェクトの推定にデコーダが特化されていることの恩恵を受けられるからである。利用方法により、それぞれのクラスの3Dモデル化オブジェクトの推定に特化した各デコーダを有するいくつかのオートエンコーダを用いると、このように自動補完の精度が大幅に向上する。
(例えばk個の)ニューラルネットワークの集合の利用方法の他の例についてここで説明する。
利用方法のこれらの例において、ニューラルネットワークはそれぞれ、3Dモデル化オブジェクトを推定するように構成されたデコーダを含むオートエンコーダである。これらの例において、本利用方法は、3Dモデル化オブジェクトを提供することをさらに含む。これらの例において、本利用方法は、3Dモデル化オブジェクトに1つまたは複数のオートエンコーダを適用することをさらに含む。これらの例において、本利用方法は、適用に基づきオートエンコーダを選択することをさらに含む。
オートエンコーダの選択は、提供された3Dモデル化オブジェクトを最適に再構築するオートエンコーダの選択からなってもよい。したがって、本利用方法は、クラスタ化プロセスで用いてもよい。具体的には、各デコーダは、3Dモデル化オブジェクトの、例えば各クラスに分割されたデータセットの、各クラスの3Dモデル化オブジェクトの推定に特化していてもよい。クラスタ化プロセスは、3Dモデル化オブジェクトの別のデータセットを提供することを含んでいてもよい。クラスタ化プロセスは、本利用方法を別のデータセットの各3Dモデル化オブジェクトに適用することも含んでいてもよい。その結果、別のデータセットの各3Dモデル化オブジェクトについて、クラスタリングプロセスにより、どのオートエンコーダが最適に3Dモデル化オブジェクトを再構築するかが決定される。次いで、クラスタリングプロセスは、3Dモデル化オブジェクトを、オートエンコーダのデコーダが特化したクラスに割り当ててもよい。言い換えれば、利用方法を繰り返すことにより、自動クラスタ化アルゴリズムを取得してもよい。
テンプレート学習方法、多様体学習方法、およびプロセスは、コンピュータによって実施される。コンピュータにより実施される方法(またはプロセス)の概念について説明する。
「方法(またはプロセス)は、コンピュータによって実施される」とは、本方法(またはプロセス)のステップ(あるいは略全てのステップ)が、少なくとも1つのコンピュータまたは任意の類似のシステムによって実行されることを意味する。よって本方法(またはプロセス)の各ステップは、コンピュータにより、場合により完全に自動的に、あるいは半自動的に実行される。例において、本方法(またはプロセス)のステップの少なくともいくつかは、ユーザとコンピュータの対話を通じて始動されてもよい。求められるユーザとコンピュータの対話レベルは、想定される自動性のレベルに応じたものであって、ユーザの要望を実装する必要性との間でバランスをとるものとしてもよい。例において、このレベルは、ユーザが設定し、かつ/あるいは、予め定義されていてもよい。
本方法(またはプロセス)のコンピュータによる実施の典型的な例は、この目的に適したシステムを用いて本方法(またはプロセス)を実行することである。当該システムは、本方法/プロセスを実行するための命令を含むコンピュータプログラムを記録したメモリに接続されたプロセッサ、および、グラフィカル・ユーザ・インターフェース(GUI)を備えていてもよい。メモリは、データベースを記憶していてもよい。メモリは、そのような記憶に適した任意のハードウェアであり、場合により、物理的に区別可能ないくつかの部分(例えば、プログラム用に1つ、場合によりデータベース用に1つ)を含む。
本プロセスの例では、テンプレート学習方法によるk個のベーステンプレートの決定(S30)と、多様体学習方法によるk個のニューラルネットワークの学習(S40)は、同じコンピュータまたは同じコンピュータの集合によって実行されてもよい。これらの例では、例えば数kの提供(S20)など、ユーザとの対話を通じて実行されるプロセスのステップは、同じユーザによって始動されてもよい。あるいは、プロセスは、異なるコンピュータおよび/またはユーザによって実行されてもよい。例えば、テンプレート学習方法によるk個のベーステンプレートの決定(S30)は、1つまたは複数のコンピュータの第1の集合により実行されてもよく、場合により第1のユーザとの人間と機械の対話を含み、また多様体学習方法によるk個のニューラルネットワークの学習(S40)は1つまたは複数のコンピュータの第2の集合によって実行されてもよく、場合により、第2のユーザとの人間と機械の対話を含む。1つまたは複数のコンピュータの第1および第2の集合は、ネットワークによって接続されていてもよい。
テンプレート学習方法、多様体学習方法、およびプロセスに関与する、3Dモデル化オブジェクトを含むデータセットの提供の概念について説明する。この概念を説明する前に、それに関与するデータ構造について説明する。認識されるように、ここで提供されるデータ構造の定義および例は、テンプレート学習方法、多様体学習方法、および/または、プロセスによって提供されるデータセットの少なくとも一部(例えば、すべて)に適用されてもよい。
ここでは、3D形状の離散幾何学的表現は、データの離散集合を含むデータ構造である。各データは、3D空間に配置されたそれぞれの幾何学的エンティティを表す。各幾何学的エンティティは、3D形状のそれぞれの位置(言い換えれば、3D形状で表される立体を構成するマテリアルのそれぞれの部分)を表す。幾何学的エンティティの集約(すなわち結合または並置)は、3D形状全体を表す。ここでの任意の離散幾何学的表現は、例においては、100、1000、または10000よりも多くの数のそのようなデータを含んでいてもよい。
ここでの任意の離散幾何学的表現は、例えば、各幾何学的エンティティが点である3D点群であってもよい。あるいは、ここでの任意の離散幾何学的表現は、各幾何学的エンティティがメッシュタイルまたは面である3Dメッシュであってもよい。ここでの任意の3Dメッシュは、規則的でも不規則的でもよい(すなわち、同じタイプの面で構成されていても、そうでなくてもよい)。ここでの任意の3Dメッシュは、多角形メッシュ、例えば三角形メッシュであってもよい。あるいは、ここでの任意の3Dメッシュは、B-Repであってもよい。ここでの任意の3Dメッシュは、3D点群から、例えば3D点群を三角測量することによって(例えば、ドロネー三角測量によって)得られてもよい。
ここでの任意の3D点群は、例えば3D再構築プロセス内で、現実の物体の物理的測定により決定されてもよい。3D再構築プロセスは、現実の物体を提供することと、それぞれが物理信号を取得するように構成された1つまたは複数の物理センサを提供することと、当該現実の物体上で1つまたは複数の物理センサを操作する(すなわち、各センサで、現実の物体をスキャンする)ことにより1つまたは複数の物理信号を取得することとを含んでいてもよい。次いで、3D再構築は、任意の既知の技術により、測定に基づいて、3D点群および/または3Dメッシュを自動的に決定してもよい。1つまたは複数のセンサは、複数の(例えば、RGBおよび/または画像またはビデオ)カメラを備えていてもよく、また決定は、運動からの構造への分析(structure-from-motion analysis)を含んでいてもよい。1つまたは複数のセンサは、代替的に、または追加的に、(例えばRGB深度カメラ上に)1つまたは複数の深度センサを含んでいてもよく、決定は深度データからの3D再構築を含んでいてもよい。1つまたは複数の深度センサは、例えば、レーザー(例えば、ライダー)または超音波送受信機を備えていてもよい。
あるいは、ここでの任意の3D点群または3Dメッシュは、例えば3Dモデル化オブジェクト上でのレイキャスティングまたは3Dモデル化オブジェクトにテッセレーションを行うことにより、立体(すなわちB-Repモデル)のスキン(すなわち外面)を表す3Dモデル化オブジェクトから取得してもよい。テッセレーションは、3Dモデル化オブジェクトの描画プロセスにより実行してもよい。このような描画プロセスは、3Dモデル化オブジェクトのグラフィカル表現を表示するために、任意のCADシステムでコーディングしてもよい。3Dモデル化オブジェクトは、CADシステムを用いてユーザが設計するか、設計されていてもよい。
モデル化オブジェクトは、例えばデータベースに格納されたデータによって定義される任意のオブジェクトである。さらには、「モデル化オブジェクト」という表現は、データそのものも指す。テンプレート学習方法、多様体学習方法、および/またはプロセスを実行するシステムの種類に応じて、異なる種類のデータによってモデル化オブジェクトが定義されてもよい。実際、システムは、CADシステム、CAEシステム、CAMシステム、PDMシステム、および/またはPLMシステムのうちの任意の組み合わせであってもよい。それら異なるシステムにおいて、モデル化オブジェクトは、対応するデータによって定義される。したがって、CADオブジェクト、PLMオブジェクト、PDMオブジェクト、CAEオブジェクト、CAMオブジェクト、CADデータ、PLMデータ、PDMデータ、CAMデータ、CAEデータについて言及することがある。しかしながら、モデル化オブジェクトは、これらのシステムの任意の組み合わせに対応するデータによって定義されてもよいため、これらのシステムは、互いに排他的なものではない。したがって、システムは、CAD兼PLMシステムであってもよく、それは以下に示すそのようなシステムの定義から明らかになるであろう。
CADシステムは、少なくとも、CATIAのようなモデル化オブジェクトのグラフィック表現に基づくモデル化オブジェクトの設計に適した任意のシステムをも意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトを表現可能にするデータを含む。CADシステムは、例えば、辺や線を用い、また、場合により面(faces or surfaces)を用いて、CADモデル化オブジェクトの表現を提供してもよい。線、辺、あるいは面は、例えば、非一様有理Bスプライン(NURBS)など、様々な様式で表現されてもよい。具体的には、CADファイルは仕様を含み、その仕様に基づきジオメトリが生成可能であり、よって表現が生成可能となる。モデル化オブジェクトの仕様は1つまたは複数のCADファイルに格納されていてもよい。CADシステムでモデル化オブジェクトを表現するファイルの典型的なサイズは、一部分あたり1メガバイトの範囲である。また、モデル化オブジェクトは、典型的には、数千の部分の集合体であってもよい。
CADの文脈において、モデル化オブジェクトは、典型的には、3Dモデル化オブジェクト、例えば、一つの部品や部品の集合体などの製品、あるいは製品の集合体を表現するものであってもよい。「3Dモデル化オブジェクト」は、3D表現が可能なデータによってモデル化される任意のオブジェクトを意味する。3D表現は、その部品を全ての角度から見ることを可能にする。例えば、3Dで表現された3Dモデル化オブジェクトは、その軸のうちの任意の軸、あるいは、その表現が表示された画面中の任意の軸を中心に、処理して回転させることが可能である。これは、特に、3Dモデル化されていない2Dアイコンについては除外される。3D表現の表示は、設計を容易にする(すなわち、設計者が作業を達成するスピードを統計的に速める)。製品の設計は製造工程の一部であるから、これによって当該産業における製造工程が迅速化する。
本開示の文脈において、3Dモデル化オブジェクトは、CADソフトウェア・ソリューションやCADシステム等を用いた仮想的デザインの完了後に実世界において製造される製品、すなわち(例えば機械)部品や、部品の集合体(あるいは同様に部品の集合体。なぜなら部品の集合体はテンプレート学習方法、多様体学習方法、および/またはプロセスの観点では一つの部品としてみることができ、また、またはテンプレート学習方法、多様体学習方法、および/またはプロセスは、集合体における各部品に独立して適用することができるからである)など、より一般的には任意の剛体の集合体(例えば移動機構)などの製品のジオメトリを表現してもよい。CADソフトウェア・ソリューションは、航空宇宙、建築、建設、消費財、ハイテク機器、産業機器、輸送、海洋、および/または海洋石油/ガス生産、または交通を含む、限定されることのない様々な産業分野において製品の設計を可能にする。テンプレート学習方法、多様体学習方法、および/またはプロセスに関与する任意の3Dモデル化オブジェクトは、このように、地上車両の部品(例えば、自動車および軽トラック機器、レーシングカー、オートバイ、トラックおよびモーター機器、トラック、バス、電車を含む)、航空車両の部品(例えば、航空機体機器、航空宇宙機器、推進機器、防衛製品、航空路線機器、宇宙機器を含む)、海軍車両の部品(例えば、海軍用機器、商業用船舶、オフショア機器、ヨットおよび作業船、船舶用機器を含む)、一般的な機械部品(例えば、工業用製造機械、大型移動機械または機器、設置機器、産業機器製品、加工金属製品、タイヤ製造製品を含む)、または電気機械部品または電子部品(例えば、家電、セキュリティおよび/または制御および/または計装製品、コンピューティングおよび通信機器、半導体、医療装置および設備を含む)、消費者製品(例えば、家具、家庭用および庭用製品、レジャー用品、ファッション用品、耐久消費財小売用品、織物類小売用品を含む)、包装(例えば、食品および飲料およびたばこ、美容およびパーソナルケア、家庭用製品包装を含む)などのように、任意の機械部品であり得る工業製品を表してもよい。
例において、本開示の任意の3Dモデル化オブジェクトは、以下のうち1つまたは妥当な組み合わせである機械部品を表してもよい:成形部品(すなわち、成形製造プロセスによって製造された部品)、機械加工部品(すなわち機械加工製造プロセスによって製造された部品)、穴あけされた部品(すなわち、穴あけ製造プロセスによって製造された部品)、旋削部品(すなわち、旋削加工プロセスによって製造された部品)、鍛造部品(すなわち、鍛造製造プロセスによって製造された部品)、打ち抜きされた部品(すなわち、打ち抜き製造プロセスによって製造された部品)、および/または、折り畳まれた部分(すなわち、折り畳み製造プロセスによって製造された部分)。
本開示の文脈において、3Dモデル化オブジェクトは、妥当な(例えば、現実的な)3Dモデル化オブジェクトであってもよい。妥当な3Dモデル化オブジェクトは、妥当な(例えば、現実的な)機械部品を表す3Dモデル化オブジェクトを指してもよい。妥当な機械部品とは、現実世界の工業製造プロセスで現実的に製造可能な機械部品を指してもよい。妥当な機械部品とは、現実世界の工業製造プロセスで機械部品を現実的に製造するために準拠しなければならないすべての制約に準拠する機械部品のことであってもよい。制約は、以下のうちの1つまたは任意の妥当な組み合わせを含んでいてもよい:機械的制約(例えば、古典的な力学の法則に起因する制約)、機能的制約(例えば、製造された機械部品によって実行される1つまたは複数の機械的機能に関連する制約)、製造上の制約(例えば、機械部品を製造するための1つまたは複数の製造プロセス中に1つまたは複数の製造ツールを機械部品に適用する能力に関する制約)、構造的制約(例えば、機械部品の強度および/または耐性に関する制約)、および/または、組み立て上の制約(例えば、機械部品を1つまたは複数の他の機械部品とどのように組み立てることができるかを定義する制約)。
本開示の文脈において、「3Dモデル化オブジェクトを含むデータセット」とは、少なくとも当該3Dモデル化オブジェクトを含むデータセットを意味する。例において、データセットは、3Dモデル化オブジェクトからなっていてもよい。あるいは、データセットは、厳密に、3Dモデル化オブジェクトを含んでいてもよく、また、3Dモデル化オブジェクトに関連する仕様などの追加データを含んでいてもよい。データセットの3Dモデル化オブジェクトは、3Dモデル化オブジェクトの離散幾何学的表現であってもよい。言い換えると、データセットは、3Dモデル化オブジェクトの離散幾何学的表現(メッシュおよび/または点群など)を含んでいてもよい。このような場合、3Dモデル化オブジェクト空間の離散幾何学的表現は、単純化のため、それぞれの離散的な表現ではなく、3Dモデル化オブジェクト自体と呼ばれることがある。データセットは1つまたは複数のサブデータセットを有していてもよい。各サブデータセットは、データセットの少なくとも一部(例えば全部)を形成する。
本開示の文脈において、3Dモデル化オブジェクトを含むデータセットは、3Dモデル化オブジェクトの1つまたは複数のサブデータセットに分割または実質的に分割されてもよい。「分割される」とは、データセットの各3Dモデル化オブジェクトが、分割部分を形成する1つのサブデータセットのみに属することを意味する。「実質的に分割される」とは、サブデータセットがデータセットの少なくとも一部における分割部分を形成することを意味する。このような場合、データセットは少なくとも一部と別の部分からなり、別の部分に属する3Dモデル化オブジェクトの数は、サブデータセットのいずれか1つに属する3Dモデル化オブジェクトの数と比較して無視できる。例においては、各サブデータセットは、3Dモデル化オブジェクトの1つのクラスの3Dモデル化オブジェクトからなる。このような例では、データセットは「3Dモデル化オブジェクトのクラスで分割されている」と示されてよい。特に、kをクラスの数とし、kは1より大きく、例えば2より大きい。「データセットが3Dモデル化オブジェクトのk個のクラスに分割されているか、または実質的に分割されている」と言う場合、データセットはk個のサブデータセットに分割され、k個のサブデータセットのそれぞれの3Dモデル化オブジェクトはすべて、k個のクラスのそれぞれ1つに属することを意味する。クラスの概念については以下にさらに説明する。
本開示の文脈において、3Dモデル化オブジェクトは、3Dモデル化オブジェクト空間に属してもよい。3Dモデル化オブジェクト空間は、一般に3Dモデル化オブジェクトからなる空間を指す。3Dモデル化オブジェクト空間は、ベクトル空間(例えば、その部分空間)に含まれていてもよい。3Dモデル化オブジェクト空間は、ベクトル空間の多様体であってもよい。多様体は接続多様体であってもよい。あるいは、多様体は、1つまたは複数(例えば2つ以上)の接続された部分を含む断続多様体であってもよい。本開示に関与する3Dモデル化オブジェクトの任意のデータセットは、3Dモデル化オブジェクト空間であるか、またはそれに厳密に含まれていてもよい。例においては、データセットは多様体であるか、またはそれに厳密に含まれていてもよい。これらの例では、多様体は、接続多様体または断続多様体であってもよい。これらの例では、データセットは1つまたは複数のサブデータセットを含んでいてもよく、各サブデータセットはデータセットの少なくとも一部を形成し、各サブデータセットは断続多様体の接続された部分であるか、またはそれに厳密に含まれていてもよい。
本開示の文脈において、3Dモデル化オブジェクトのクラスは、ベクトル空間の接続多様体に対応していてもよい。代替的に、または追加的に、3Dモデル化オブジェクトのクラスは、ベクトル空間の断続多様体の接続された部分に対応してもよい。追加的に、または代替的に、3Dモデル化オブジェクトのクラスは、次の特徴を有する3Dモデル化オブジェクトの集合を指してもよい:集合の任意の第1の3Dモデル化オブジェクトが、少なくとも集合の第2の3Dモデル化オブジェクトと類似しており、例えば、類似した形状を有する。なお、3Dモデル化オブジェクトのクラスは、1つまたは複数のサブクラスに分けてもよく(例えば、分割)、単純化のため、これらも依然としてクラスと呼ばれることを理解されたい。
例では、3Dモデル化オブジェクトのクラスは、それぞれ機械部品を表す3Dモデル化オブジェクトからなり、クラスに関連する(すなわち対応する)機械部品はすべて、次の条件のいずれか1つまたは任意の組み合わせに準拠する:
・クラスに関連する機械部品はすべて、同じ製造プロセス、または製造プロセスの同じ組み合わせで製造される。
・クラスに関連する機械部品はすべて妥当な機械部品である。
・クラスに関連する機械部品は、すべて同じ技術分野および/または産業分野のものである。
・クラスに関連する機械部品はすべて同じ機械的機能を実行する。
・クラスに関連する機械部品はそれぞれ、クラスの少なくとも1つの他の3Dモデル化オブジェクトに似た形状を有する3Dモデル化オブジェクトによって表される(したがって、当該クラスに関連する別の機械部品を表す)。かつ/あるいは、
クラスに関連する機械部品はすべて、同じ機械的制約、機能的制約、製造上の制約、構造的制約、および/または、組み立て上の制約に従う(例えば満たす、例えば準拠する、例えば検証する)。
図6は、テンプレート学習方法、多様体学習方法、および/またはプロセスに関与する3Dモデル化オブジェクトのデータセット60の例を示す。データセットは、3Dモデル化オブジェクトの1つのクラスの3Dモデル化オブジェクトからなる。当該クラスの3Dモデル化オブジェクトは椅子である。椅子は3Dモデル化オブジェクトの1つのクラスを形成する。なぜなら、それらはすべて同じ機械的機能、すなわち(例えば人間の)重さを支える機能を実行するからである。この機械的機能を実行することは、椅子がすべて同じ機械的制約、機能的制約、および構造的制約に従うことも意味する。図6の椅子は妥当な機械部品である。なぜなら、それらは機械的制約、機能的制約、製造上の制約、および構造的制約に準拠し、それにより1つまたは複数の製造プロセスによる現実世界での製造を可能にするからである。なお、データセット60のすべてのオブジェクトが図6に表されているわけではないことを理解されたい。明確化のため、データセット60のオブジェクトの一部のみが表されているが、データセットはより多くのオブジェクトを含んでいてもよい。
図7は、テンプレート学習方法、多様体学習方法、および/またはプロセスに関与する3Dモデル化オブジェクトのデータセット70の例を示す。データセットは、3Dモデル化オブジェクトの1つのクラスの3Dモデル化オブジェクトからなる。当該クラスの3Dモデル化オブジェクトは(それぞれ)4本脚の椅子である。4本脚の椅子は、3Dモデル化オブジェクトの1つのクラスを形成する。なぜなら、それらはすべて同じ機械的機能、すなわち(例えば人間の)重さを支える機能を実行するからであり、また4本の脚でこの機械的機能を実行すると、椅子はすべて同じ機械的制約、機能的制約、および構造的制約に従うことになるからである。図7の椅子は妥当な機械部品である。なぜなら、それらは機械的制約、機能的制約、製造上の制約、および構造的制約に準拠し、それにより1つまたは複数の製造プロセスによる現実世界での製造を可能にするからである。なお、データセット70のすべてのオブジェクトが図7に表されているわけではないことを理解されたい。明確化のため、データセットのオブジェクトの一部のみが表されているが、データセットはより多くのオブジェクトを含んでいてもよい。
図8は、図6のデータセット60を2つのサブデータセット82および84に分割する例を示している。第1のデータセット82は、椅子の第1のクラスの椅子である脚のない椅子を含み、第2のデータセット84は、椅子の第2のクラスの椅子である4本脚の椅子を含む。言い換えれば、図6を参照して説明した椅子のクラスは、いくつかの椅子のクラスに分割されてもよく、そのうちの2つが第1のクラスと第2のクラスである。2つのクラスの椅子は、重さを支えるという同じ機械的機能を実行するため、同じ機能的制約に従う。ただし、同じ機械的機能を異なる数の脚で実行することは、異なる機械的制約および/または構造的制約に従うことを意味する。言い換えれば、第1のクラスの椅子はすべて、機械的制約および/または構造的制約の第1の集合に従い、第2のクラスの椅子はすべて、機械的制約および/または構造的制約の第2の集合に従い、制約の第1の集合と第2の集合は異なる。なお、サブデータセット82(または84)のすべてのオブジェクトが図8に表されているわけではないことを理解されたい。明確化のため、サブデータセット82(または84)のオブジェクトの一部のみが表されているが、サブデータセットはより多くのオブジェクトを含んでいてもよい。
3Dモデル化オブジェクトの他の例についてここで説明する。
本開示の文脈において、いずれかの3Dモデル化オブジェクトが自動車を表してもよい。自動車が3Dモデル化オブジェクトの1つのクラスを形成してもよい。代替的に、または追加的に、いずれかの3Dモデル化オブジェクトが飛行機を表してもよい。飛行機が3Dモデル化オブジェクトの1つのクラスを形成してもよい。代替的に、または追加的に、いずれかの3Dモデル化オブジェクトがボートを表してもよい。ボートが3Dモデル化オブジェクトの1つのクラスを形成してもよい。
テンプレート学習方法、多様体学習方法、およびプロセスに関与する、「3Dモデル化オブジェクトを含むデータセットの提供」の概念についてここで説明する。
データセットの提供は、自動的に実行してもよいし、ユーザが実行してもよい。例えば、ユーザはデータセットが保存されているメモリからデータセットを取得してもよい。ユーザは、すでに取得したデータセットに、1つまたは複数の3Dモデル化オブジェクトを(例えば1つずつ)追加することにより、データセットを完成させることもできる。1つまたは複数の3Dモデル化オブジェクトの追加は、1つまたは複数のメモリからそれらオブジェクトを取得し、データセットに含めることを含んでいてもよい。あるいは、ユーザは、3Dモデル化オブジェクトを(例えば、1つずつ)選択し、これらの選択された3Dモデル化オブジェクトでデータセットを形成(例えば、宣言)することにより、一からデータセットを作成してもよい。3Dモデル化オブジェクトの選択は、メモリからオブジェクトを取得することを含んでいてもよい。データセットの3Dモデル化オブジェクトの一部(例えば、すべて)は、以前に(例えば1人または複数の他のユーザによって)設計され、ユーザによって取得される前に1つまたは複数のメモリに格納されていてもよい。「3Dモデル化オブジェクトの設計」は、3Dモデル化オブジェクトを作成するプロセスの少なくとも一部である任意の動作または一連の動作を示す。
本開示の文脈において、データセットの任意の提供において、データセットのすべての3Dモデル化オブジェクトは点群として提供されてもよい。あるいは、データセットの3Dモデル化オブジェクトの少なくとも一部(例えば、それらすべて)が、別の形式で(例えば、CADオブジェクトとして、例えば3Dメッシュなどの他の離散幾何学的表現として)提供されてもよい。そのような場合、データセットの提供は、少なくとも一部の各3Dモデル化オブジェクトから点群を決定する(例えば抽出する)ことを含んでいてもよい。点群の抽出は、当該技術分野で知られているように、モデル化オブジェクトを、例えば6つの正投影図にレイキャスティングすることを含んでいてもよい。
例では、データセットのすべての3Dモデル化オブジェクトが点群として提供されるかどうか、または上述のようにレイキャスティングが実行されたかどうかに関係なく、データセットの3Dモデル化オブジェクトはある点ですべて点群である。これらの例では、データセットの提供は、当該技術分野で知られているように、各点群が同じ固定数の点を有するように、上記点群の均一なサブサンプリングを含んでいてもよい。ある実施形態では、均一なサブサンプリングは、各点群について、最初に点群のうちのランダムな点を選択し、既に選択された点から、上記固定数の点に達するまで、繰り返し、点群のうち最も遠い点を選択することを含む。
したがって、例においては、抽出ステップおよび/または均一なサブサンプリングステップが実行されたかどうかにかかわらず、データセットの3Dモデル化オブジェクトは、すべて同じ固定数の点を有する点群として提供される。これらの例では、データセットの提供は、当技術分野で知られているように、点群をセンタリングし、オプションとして、センタリングした点群に単位球スケーリングを適用することをさらに含んでいてもよい。
「ニューラルネットワークの学習」の概念についてここで説明する。
「ニューラルネットワークの学習」とは、機械学習法による1つまたは複数のニューラルネットワークの集合(例えば1つのニューラルネットワーク、例えば2つ以上のニューラルネットワークの集合など)の決定を指す。本開示の文脈において、集合における各ニューラルネットワークは重みを有し(例えば、それによりパラメータ化される)、ニューラルネットワークの学習は一般に重みの初期化および重みの更新を含んでいてもよい。特に、多様体学習方法による、集合のニューラルネットワークのそれぞれの重みの修正(S420)は、ニューラルネットワークの集合の学習(S40)の一部である。本開示の文脈において、集合の各ニューラルネットワークの学習は、データセット(またはデータセットのサブデータセット)に基づく訓練を含んでいてもよい。これにより、例においては、データセット(またはデータセットのサブデータセット)が訓練セット(例えば学習セット)の一部であるが、データセット(またはデータセットのサブデータセット)のみがニューラルネットワークの重みの修正(S420)に直接関与し、訓練セットの他の部分は関与しないことを意味する。例えば、重みの修正(S420)は、データセット(またはデータセットのサブデータセット)の3Dモデル化オブジェクトに関する(例えばそれから得られる、例えばそれから導出される)データ(例えば、演算結果)のみに基づいて実行されてもよい。例えば、これは、学習S40および/または修正S420が、訓練セットの3Dモデル化オブジェクトからの選択を操作する損失を、それぞれの重みの修正(S420)が当該選択により選ばれた3Dモデル化オブジェクトのみを含むように、最小化することを含む場合に当てはまってもよい。
本開示により学習される任意のニューラルネットワークは、3Dモデル化オブジェクトを推定するように構成されたニューラルネットワークであってもよい。これは、ニューラルネットワークが、3Dモデル化オブジェクト空間または3Dモデル化オブジェクト空間の部分集合、例えば3Dモデル化オブジェクトのクラスにおいて値を出力することを意味する。追加的に、または代替的に、ニューラルネットワークは、各ベーステンプレートの各3Dモデル化オブジェクトへの変形を推定するように構成されていてもよい。「ベーステンプレート」の概念については以下でさらに説明するが、いずれの場合も「ベーステンプレート」は3Dモデル化オブジェクトを示す。ベーステンプレートの各3Dモデル化オブジェクトへの変形は、ベーステンプレートをそれぞれの3Dモデル化オブジェクトにマッピングする1つまたは複数の幾何学的変換の集合であってもよい。そのような場合、変形を推定することは、1つまたは複数の幾何学的変換および/またはそれらのパラメータを推定することを含んでいてもよい。代替的に、または追加的に、ベーステンプレートおよびそれぞれの3Dモデル化オブジェクトが、それぞれ第1の3Dメッシュ(または第1の点群)および第2の3Dメッシュ(または第2の点群)であるか、またはそれらで表される場合、ベーステンプレートからそれぞれの3Dモデル化オブジェクトへの変形は、第1の3Dメッシュ(または第1の点群)の各頂点(または点)と第2の3Dメッシュ(または第2の点群)の各頂点(または点)との対応の集合であってもよい。そのような場合、変形を推定することは、そのような対応を推定することを含んでいてもよい。変形の推定は、1つまたは複数の幾何学的変換によりベーステンプレートがマッピングされる各3Dモデル化オブジェクトを推定することをさらに含んでいてもよい。言い換えれば、ニューラルネットワークの出力は、1つまたは複数の幾何学的変換とそれぞれの3Dモデル化オブジェクトのセットを含んでいてもよい。例においては、ニューラルネットワークは、3Dモデル化オブジェクトの推定、および/または変形の推定を行うよう構成されたデコーダを備えるオートエンコーダである。
オートエンコーダの概念について、ここで説明する。オートエンコーダは、重み
と
でパラメータ化された2つのフィードフォワード深層ニューラルネットワークの構成
および
として定義でき、ここで、
である(上記論文[3]参照)。
はエンコーダであり、
はデコーダである。
は、潜在空間、すなわち、エンコーダ
がその値を出力し、デコーダ
がその値をとるベクトル空間である。
は、潜在空間の次元である。
はエンコーダ
がその値をとり、デコーダ
がその値を出力する空間である。
は、「元の入力空間」とも呼ぶ。
は、元の入力空間の次元である。本開示の文脈において、元の入力空間は、3Dモデル化オブジェクト空間であるか、またはそれに厳密に含まれていてもよい。言い換えれば、エンコーダ
はその値を元の入力空間においてとるが、デコーダ
による潜在空間の画像、例えば3Dモデル化オブジェクト空間は、元の入力スペースの部分集合であってもよい。ベクトル
は、「潜在ベクトル」または「隠れベクトル」とも呼ばれる。オートエンコーダ
は、「再構築」とも呼ばれる。再構築では、入力として元の入力空間の第1の要素(例えば、3Dモデル化オブジェクト空間の第1の3Dモデル化オブジェクト)をとり、それを潜在ベクトル(すなわち潜在空間の要素)にマッピングし、次いで、元の入力空間の第2の要素(例えば、3Dモデル化オブジェクト空間の第2の3Dモデル化オブジェクト)を潜在ベクトルから出力することにより、マッピングを逆にする。第2の要素は、第1の要素の“再構築”とも呼ばれる。例においては、第2の要素が、第1の要素の近似を表すことを意味する。例においては、
が3Dモデル化オブジェクトの場合、3Dモデル化オブジェクト
は、再構築された3Dモデル化オブジェクトとも呼ばれる。
はまた、入力とも呼ばれ、
は、再構築された入力とも呼ばれる。本プロセスの文脈において、エンコーダ
およびデコーダ
は、例えば再構築エラーを最小化することにより、(例えば別々に、または同時に)機械学習されてもよい。オブジェクトのエンコードとは、オブジェクトにエンコーダを適用することを意味する。よって、エンコードの結果は、「エンコードしたオブジェクト」とも呼ばれる。オブジェクトのエンコードは、「(例えばエンコーダの、例えば潜在空間への)オブジェクトの投影」とも呼ばれ、エンコードの結果は「投影されたオブジェクト」とも呼ばれる。潜在ベクトルのデコードとは、潜在ベクトルにデコーダを適用することを意味する。よって、デコードの結果は、「デコードした潜在ベクトル」とも呼ばれる。
ここで、オートエンコーダの学習の実施について説明する。
を訓練セットとする。ここで
は、訓練セットにおける3Dモデル化オブジェクトの数である。この実施形態において、オートエンコーダ
は、再構築損失
の最適化を含む。ここで
は入力サンプルとオートエンコーダによる再構築サンプルとを比較する距離であり、例えば
はL
2ノルムであり得る。学習プロセスは、ランダムなノイズを各サンプル
に適用し、オートエンコーダを訓練して、クリーンなバージョン
を再構築することによって、より堅牢にできる。このような例は「ノイズ除去オートエンコーダ」とも呼ばれる(上記論文[5]で紹介)。本開示の文脈において、学習は、先に引用した論文[6]で説明されているように、貪欲な層ごとの方式(greedy layer-wise fashion)でアーキテクチャを事前訓練することもでき、このバージョンは積層オートエンコーダと呼ばれる。
ベーステンプレートの決定(S30)についてここで説明する。
本開示の文脈において、ベーステンプレートの決定(S30)は、それぞれが各機械部品を表す3Dモデル化オブジェクトを含むデータセットの各サブデータセットに対して実行され、データセットは、1つまたは複数のサブデータセットを有し、各サブデータセットは、データセットの少なくとも一部を形成する。言い換えれば、各サブデータセットについて、ベーステンプレートが決定される(S30)。
各サブデータセットについてのベーステンプレートの決定(S30)についてここで説明する。なお、以下の説明は、それぞれの任意のサブデータセットの任意のベーステンプレートの決定(S30)に適用される。
ベーステンプレートは3Dモデル化オブジェクトであり、例えば機械部品を表す。ベーステンプレートは、メッシュまたは点群であってもよい。ベーステンプレートは、サブデータセットの3Dモデル化オブジェクトの重心を表す3Dモデル化オブジェクトである。これは、ベーステンプレートの幾何学的形状が、サブデータセットの3Dモデル化オブジェクトの形状の平均幾何学的形状(例えば、ハウスドルフ距離、ワッサースタイン距離、Earth Mover距離、面取り距離などの距離に応じた形状)を表す(例えば、平均幾何学的形状である)ことを意味してもよい。例において、3Dベーステンプレートは、サブデータセットのすべての3Dモデル化オブジェクトに対する平均非類似性が最小であるようなサブデータセットの3Dモデル化オブジェクトである。第1の3Dモデル化オブジェクトと第2の3Dモデル化オブジェクトとの非類似性は、例えば、ハウスドルフ距離、ワッサースタイン距離、Earth Mover距離、または面取り距離に応じた、第1の3Dモデル化オブジェクトの幾何学的形状と第2の3Dモデル化オブジェクトの幾何学的形状との差の定量化であってもよい。
図9は、図6のデータセット60の重心を表す、決定されたベーステンプレート92の例を示す。図10は、図7のデータセット70の重心を表す、決定されたベーステンプレート102の例を示す。
例においては、ベーステンプレートの決定(S30)は、サブデータセットの各3Dモデル化オブジェクトについて、サブデータセットの3Dモデル化オブジェクトと候補ベーステンプレートの不一致にペナルティを課す損失の、候補ベーステンプレートのうちの最小値を算出すること(S300)を含む。
損失の、候補ベーステンプレートのうちの最小値の算出(S300)は、3Dモデル化オブジェクトを(例えば繰り返し)探索し、探索した各3Dモデル化オブジェクトの損失に対する効果を評価することを含んでいてもよい。そのような場合、候補ベーステンプレートは、探索された3Dモデル化オブジェクトを指す。候補ベーステンプレートは、例えば3Dモデル化オブジェクト(例えば別の候補ベーステンプレート)の変形や、3Dモデル化オブジェクト(例えばベーステンプレート候補)の連続した変形の結果得られる3Dモデル化オブジェクトであってもよい。損失の最小値の算出(S300)は、任意の緩和アルゴリズムの使用を含んでいてもよい。
損失は、サブデータセットの各3Dモデル化オブジェクトについて、3Dモデル化オブジェクトと候補ベーステンプレートとの(例えば幾何学的な)類似性および/または非類似性を測定する量(例えば関数)であってもよい。損失は、例えば、サブデータセットの各3Dモデル化オブジェクトをパラメータとしてとり、かつ入力として候補ベーステンプレートをとり、かつ入力候補ベーステンプレートとサブデータセットの3Dモデル化オブジェクトとの(例えば幾何学的な)類似性および/または非類似性を表す量(正の実数など)を出力する、関数であってもよい。各3Dモデル化オブジェクトについて、3Dモデル化オブジェクトと候補ベーステンプレートの不一致は、3Dモデル化オブジェクトと候補ベーステンプレートとの(例えば幾何学的な)非類似性の定量化であってもよい。不一致にペナルティを課すことは、損失が不一致の増加関数であることを意味してもよい。
したがって、ベーステンプレートの決定(S30)は、3Dモデル化オブジェクト(候補ベーステンプレート)のうち、サブデータセットの3Dモデル化オブジェクトとの類似性に報酬を与えてもよい。特に、ベーステンプレートの決定(S30)は、候補ベーステンプレートを繰り返し探索(例えばアクセス)し、それらのそれぞれについて、探索された候補ベーステンプレートとサブデータセットの各3Dモデル化オブジェクトとの類似性を求め、報酬を与えてもよく、その結果、決定(S30)されたベーステンプレートは、サブデータセットの3Dモデル化オブジェクトの重心を表すことになる。
例においては、サブデータセットの3Dモデル化オブジェクトと候補ベーステンプレートとの不一致は、3Dモデル化オブジェクトと候補ベーステンプレートとの距離の関数である。
距離は、3Dモデル化オブジェクト間の類似性および/または非類似性を測定する、特にシンプルで効率的な方法である。
距離は、3Dモデル化オブジェクト間の任意の距離、例えば、3Dモデル化オブジェクト間の(例えば幾何学的な)非類似性を定量化する距離であってもよい。よって、3Dモデル化オブジェクトと候補ベーステンプレートとの距離は、3Dモデル化オブジェクトと候補ベーステンプレートとの(例えば幾何学的な)非類似性を定量化するものであってもよい。距離は、例えば、ワッサースタイン距離、Earth Mover距離、面取り距離、またはハウスドルフ距離であってもよい。不一致は、距離の2乗など、距離の増加関数であってもよい。
例においては、当該距離は、3Dモデル化オブジェクトを表す第1の点群と候補ベーステンプレートを表す第2の点群との距離である。
上述のように、サブデータセットの各3Dモデル化オブジェクトは、点群として提供してもよく(したがって、これは3Dモデル化オブジェクトを表す)、あるいは、3Dモデル化オブジェクトを表す点群は、3Dモデル化オブジェクトが提供される別のフォーマットから決定されてもよい。いずれの場合も、ベーステンプレートの決定(S30)は、サブデータセットの3Dモデル化オブジェクトをそれぞれ表す点群を操作してもよい。候補ベーステンプレートは、同様に3Dモデル化オブジェクトであるため、それぞれの点群で表すこともでき、これらは、オプションとして、他の3Dモデル化オブジェクトフォーマットから決定してもよい。したがって、距離は、ワッサースタイン距離やEarth Mover距離など、点群間の任意の距離であってよい。
例において、損失は以下のタイプである。
ここで、
は
と
との距離の関数であり、
は第2の点群であり、
は各サブデータセットにおける3Dモデル化オブジェクトの数であり、
は第1の点群である。
例において、
はEarth Mover距離損失であって、以下の式で与えられる。
例においては、算出(S300)は、ベース3Dモデル化オブジェクトを提供することを含む。これらの例では、算出(S300)は、ベース3Dモデル化オブジェクトから開始して、以下を繰り返すことをさらに含む:前回の候補ベーステンプレートの損失に対する効果を評価し、前回の候補ベーステンプレートを新しい候補ベーステンプレートに変形する。
ベース3Dモデル化オブジェクトは、3Dモデル化オブジェクトである。ベース3Dモデル化オブジェクトは候補ベーステンプレートである。データセットの任意の3Dモデル化オブジェクトが提供されると(S10)、ベース3Dモデル化オブジェクトが提供されてもよい。言い換えれば、ベース3Dモデル化オブジェクトの提供は、任意のオブジェクトの提供(S10)として行われてもよく、例においては、例えば、(例えば実質的に)同時に実行される。
繰り返しについてここで説明する。繰り返しは、ベース3Dモデル化オブジェクトから始まる。演算(S300)は、ベース3Dモデル化オブジェクトを探索(例えばアクセス)し、ベース3Dモデル化オブジェクトの損失に対する効果を評価してもよい。ベース3Dモデル化オブジェクトの損失に対する効果の評価は、損失および/または損失の算出結果の導関数の算出を含んでいてもよい。ベース3Dモデル化オブジェクトの効果の評価は、損失の算出結果および/または損失の算出結果の導関数が、損失が十分に小さいかどうかを、例えば算出(S300)を実行する緩和アルゴリズムの収束パラメータに応じて判定することをさらに含んでいてもよい。例においては、損失に対する効果が、損失が十分に小さくならない程度である場合、ベース3Dモデル化オブジェクトは新しい候補ベーステンプレートに変形される。次いで、繰り返しは、引き続き以下を行う。繰り返しは、前回の候補ベーステンプレートの変形の結果生じる候補ベーステンプレートのそれぞれについて、候補ベーステンプレートの損失に対する効果を評価することを含む。ここで、この評価は、ベース3Dモデル化オブジェクトの効果の評価として行われ得る。例においては、損失に対する効果が、損失が十分に小さくならない程度である場合、例えば、候補ベース3Dモデル化オブジェクトは新しい候補ベーステンプレートに変形され、新しい候補ベーステンプレートの損失に対する効果が評価される。言い換えれば、損失が十分に小さくならない限り、繰り返しは、互いに変形する候補ベーステンプレートを連続的に探索し、損失が十分に小さくないことの結果として候補ベーステンプレートを互いに変形する。
前回の候補ベーステンプレートを新しい候補ベーステンプレートに変形するという概念についてここで説明する。上述のとおり、サブデータセットの各3Dモデル化オブジェクトについて、前回の候補ベーステンプレートの損失は、3Dモデル化オブジェクトと当該前回の候補ベーステンプレートとの不一致にペナルティを課す。損失を評価することは、各3Dモデル化オブジェクトと前回の候補ベーステンプレートとの不一致が、ペナルティが最小化された不一致(すなわち、損失のすべての不一致の中で)であるようなサブデータセットの1つまたは複数の3Dモデル化オブジェクトを決定することを含んでいてもよい。前回の候補ベーステンプレートの変形は、次いで、1つまたは複数の3Dモデル化オブジェクトを前回の候補ベーステンプレートに割り当てることを含んでいてもよい。前回の候補ベーステンプレートの変形は、前回の候補ベーステンプレートを、1つまたは複数の3Dモデル化オブジェクトの重心に、例えば、距離に応じて、変換することをさらに含んでいてもよい。そのような場合、重心が、新しい候補ベーステンプレートを形成してもよい。
言い換えれば、算出(S300)は、ベース3Dモデル化オブジェクトから開始し、候補ベーステンプレートの1つの、サブデータセットの(例えばすべての)3Dモデル化オブジェクトに対する非類似性が、許容できるものとなるまで(例えば、収束パラメータより小さくなるまで、例えば、最適となるまで)、それを連続する候補ベーステンプレートに繰り返し変形する。これは、3Dモデル化オブジェクトをサブデータセットの重心に変形する効率的な方法を構成する。
例においては、ベース3Dモデル化オブジェクトは球体を表す。追加的に、または代替的に、損失は、サブデータセットの各3Dモデル化オブジェクトに対して、データセットの3Dモデル化オブジェクトを表す第1の点群と、新しい候補ベーステンプレートを表す第2の点群とのEarth Mover距離損失にペナルティを課してもよい。
ベース3Dモデル化オブジェクトは、単位球などの球体を表す点群であってもよい。そのような場合、前回の候補ベーステンプレートの変形の結果である新しい候補ベーステンプレートは、それぞれ、球体を繰り返し変形した結果である。したがって、新しい候補ベーステンプレートは、それぞれ、球体を表す点群を繰り返し変形した結果生じる点群によって表されてもよい。
球体は、特に便利なベース3Dモデル化オブジェクトである。なぜなら、球体を表す点群は、球体に同相の3Dモデル化オブジェクトなど、多数の3Dモデル化オブジェクトを表す点群に簡単に変形できるからである。単位球の利用は、サブデータセットの3Dモデル化オブジェクトが点群として提供され(S10)、単位球スケーリングによってセンタリングおよびスケーリングされる場合に特に適している。Earth Mover距離は、ベース3Dモデル化オブジェクトとしての球体の利用に特に適している。
例において、ベース3Dモデル化オブジェクトは点群である。これらの例において、繰り返しにより、最適化された点群が生成される。これらの例において、ベーステンプレートの決定(S30)は、最適化された点群の点の法線を推定すること(S330)をさらに含んでいてもよい。これらの例において、ベーステンプレートの決定(S30)は、推定した法線に基づき、最適化された点群の表面再構成を行うこと(S340)をさらに含んでいてもよい。
ベース3Dモデル化オブジェクトを表す点群を繰り返し変形した結果として、点群が最適化される。この変形は、ベース3Dモデル化オブジェクトを表す点群を、最小の損失を表す点群(または少なくとも、最小の損失の近似値を表す点群)に変形するために実行される。
法線の推定(S330)は、点群の点の法線を推定できる任意の方法によって実行され得る。法線は、最適化された点群に関するトポロジ情報を提供する。表面再構成は、点群をメッシュ化する表面を、点群と推定された法線に基づいて推定できる任意の方法で実行してもよい。その結果、決定(S30)されたベーステンプレートは、サブデータセットの重心を表す3Dメッシュとして出力されてもよい。言い換えれば、例において、決定(S30)されたベーステンプレートは、表面再構成を実行(S340)した結果である。
ベース3Dモデル化オブジェクトを表す点群の点は、少なくとも幾何学的な観点から最適化される。言い換えれば、最適化された点群は、幾何学的な観点からのみ3Dモデル化オブジェクトの重心を正確に表すことができてもよいが、正しいトポロジを有してなくてもよい。例えば、サブデータセットはあるクラスの3Dモデル化オブジェクトからなってもよく、最適化された点群はサブデータセットの重心を幾何学的に表してもよいが、トポロジが間違っている可能性がある。例えば、単純にメッシュ化された場合、例えば、最適化した点群は、当該クラスの3Dモデル化オブジェクトを表さないことがある。法線の推定(S330)、および、その後の表面再構成の実行(S340)により、これらの問題を回避し、最適化された点群を再メッシュして、新しいメッシュに正しいトポロジを持たせることができる。したがって、これらの例において、決定(S30)したベーステンプレートは、クラスの3Dモデル化オブジェクトの重心を表す3Dモデル化オブジェクトであってもよい。
ここで法線の推定(S330)および表面再構成の実行(S340)の実施について、図11■図16を参照して説明する。図11は、球体を表す点群である、ベース3Dモデル化オブジェクト110の例を示す。図12は、椅子を表す最適化した点群120を示す。最適化された点群は、間違ったトポロジを有する最適化された点群120を示す図13に示されるように、間違ったトポロジを有している。図13に示されるように、最適化した点群130は、それが有するべき椅子のトポロジを有していない。この実施形態においては、ベーステンプレートの決定(S30)は、決定(S30)が、最適化された点群を置く粗いグリッドを提供すること(S310)を含む。点を含む各ボクセルの値は1であり、他のボクセルの値はnullである。この実施形態においては、決定(S30)は、グリッドから粗いメッシュを抽出すること(S320)をさらに含む。粗いメッシュの抽出(S320)は、等値が1に近いマーチングキューブアルゴリズムを適用することで実行してもよい。図14は、図12の最適化された点群120から抽出された粗いメッシュ140を示している。この実施形態では、法線の推定(S330)は、最適化された点群120の各点の法線を正確に算出するために、マーチングキューブアルゴリズムからの粗いメッシュの利用を含む。法線の推定(S330)は、各点を粗いメッシュの最も近い三角形に投影し、その法線に対して、三角形の法線の加重平均を割り当てることを含んでいてもよく、当該重みは投影点の重心の重みである。図15Aは、推定した法線を有する、図12の最適化された点群150を示す。決定(S30)は、これらの適切な法線を用いてポアソン表面再構成を実行すること(S340)をさらに含む。これにより、正確なトポロジを有する3Dメッシュであるベーステンプレートを取得できる。決定(S30)は、オプションとして、頂点が多すぎる場合に3Dメッシュを間引くことを含んでいてもよい。図15Bは、ポアソン表面再構成を実行(S340)することにより図15Aで推定した法線を有する最適化された点群150から得られた3Dベーステンプレート160の例を示す。
各サブデータセットについてのベーステンプレートの決定(S30)について説明した。2つ以上のサブデータセットが存在する場合、それぞれのサブデータセットについて、それぞれのサブデータセットのベーステンプレートの決定を、同様に実行してもよいことを理解されたい。すべてのサブデータセットのすべてのベーステンプレートは、同時に決定(S30)されてもよい。なお、例においては、これらのベーステンプレートの同時決定(S30)は、各サブデータセットについて、同時に、最小損失を算出すること(S300)を含み、当該算出(S300)は、各サブデータセットについて、上述のように実行される。
各サブデータセットについて、同時に、最小損失を算出すること(S300)によってこれらのベーステンプレートを同時に決定すること(S30)についてここで説明する。
これらの例においては、同時に各サブデータセットについて行われる最小損失の算出(S300)は、共通損失の最小化を含む。共通損失の最小化は、上述のように、各サブデータセットについて各算出(S300)を実行することに対応(例えば暗示、例えば相当)してもよい。データセットの各3Dモデル化オブジェクトについて、共通損失は、複数の項から項を選択する。各項は、3Dモデル化オブジェクトと候補ベーステンプレートとの不一致にペナルティを課す。選択された項は、複数の項のうち不一致に対するペナルティが最も小さい項であってもよい。
共通損失は、データセットの各3Dモデル化オブジェクトについて、3Dモデル化オブジェクトと候補ベーステンプレートとの2つ以上の(例えば幾何学的な)類似性および/または非類似性を測定する量(例えば関数)であってもよい。複数の項のうちの各項は、2つ以上の(例えば幾何学的な)類似性および/または非類似性のそれぞれの尺度であってもよい。これにより、3Dモデル化オブジェクトと候補ベーステンプレートとの、項によりペナルティが課される不一致は、3Dモデル化オブジェクトと候補ベーステンプレートとの(例えば幾何学的な)非類似性の定量化であってもよい。よって、不一致にペナルティを課すことは、項が不一致の増加関数であることを意味してもよい。共通損失は、複数の項から、また、データセットの各3Dモデル化オブジェクトについて、ペナルティが最も小さい項を選択する。例においては、共通損失は、パラメータとしてデータセットの3Dモデル化オブジェクトをとり、入力として候補ベーステンプレートをとり、3Dモデル化オブジェクトごとに選択された各項の関数(例えば合計)である量(例えば正の実数)を出力する関数であることを意味する。言い換えれば、損失は、データセットの各3Dモデル化オブジェクトについて、どの(1つまたは複数の)候補ベーステンプレートが3Dモデル化オブジェクトに(例えば幾何学的に)(例えば最も)類似しているかを表す結果を出力してもよい。共通損失の最小化には、ミニバッチ確率的勾配緩和アルゴリズムなどの緩和アルゴリズムを用いてもよい。
例においては、3Dモデル化オブジェクトと各候補ベーステンプレートとの不一致は、3Dモデル化オブジェクトと各候補ベーステンプレートとの距離に関与する。
距離は、3Dモデル化オブジェクト間の類似性および/または非類似性を測定する、特にシンプルで効率的な方法である。
距離は、ハウスドルフ距離、ワッサースタイン距離、面取り距離、またはEarth Mover距離など、任意の距離であってもよい。例においては、不一致は、3Dモデル化オブジェクトと各候補ベーステンプレートとの距離の(例えば増加)関数であるという点で、3Dモデル化オブジェクトと各候補ベーステンプレートとの距離に関与する。例においては、不一致は、3Dモデル化オブジェクトと各候補ベーステンプレートとの距離の算出に関する結果に依存するという点で、3Dモデル化オブジェクトと各候補ベーステンプレートとの距離に関与する。
例においては、距離は、3Dモデル化オブジェクトを表す第1の点群と各候補ベーステンプレートを表す第2の点群との距離である。
上述のように、データセットの各3Dモデル化オブジェクトは、点群として提供してもよく(したがって、3Dモデル化オブジェクトを表す)、あるいは、3Dモデル化オブジェクトを表す点群は、3Dモデル化オブジェクトが提供される別のフォーマットから決定されてもよい。いずれの場合も、決定(S30)は、データセットの3Dモデル化オブジェクトをそれぞれ表す点群を操作してもよい。各候補ベーステンプレートは、同様に3Dモデル化オブジェクトであるため、それぞれの点群で表すこともでき、これらは、オプションとして、他の3Dモデル化オブジェクトフォーマットから決定してもよい。したがって、距離は、ワッサースタイン距離やEarth Mover距離など、点群間の任意の距離であってよい。
例において、共通損失は以下のタイプである。
ここで
は第2の点群であり、
各
について、
は、3Dモデル化オブジェクトのデータセットの
番目のサブデータセットにおける3Dモデル化オブジェクトの数であり、
は、各サブデータセットの3Dモデル化オブジェクトを表す第1の点群であり、
であって、
は、データセットにおける3Dモデル化オブジェクトの数であり、
は、各候補ベーステンプレート
とデータセット
の3Dモデル化オブジェクトとの距離に関与する項である。
例において、
はEarth Mover距離損失であって、以下の式で与えられる。
例において、共通損失
の最小化は、同時に各サブデータセットについて行われる、損失
の最小値の算出(S300)となる(例えば示唆する、例えば相当する)。これは上述のとおりである。
としたときの
個のベーステンプレートの決定(S30)の実施についてここで説明する。
この実施形態において、データセットは
個の3Dモデル化オブジェクトからなり、
で表される。各3Dモデル化オブジェクト
は、単位球スケーリングによってセンタリングおよびスケーリングされた点群である。
は、各点群
の共通の点の数である。決定(S30)は共通損失の最小化を含み、共通損失の最小化は、
個の点を有する単位球であるベース3Dモデル化オブジェクトをそれぞれ表す
個の点群
を提供することを含む。この実施形態において、決定(S30)は、各ベース3Dモデル化オブジェクトが互いに非常にわずかに異なるように、各点群
に非常に小さなノイズを追加することを含む。これにより、各ベース3Dモデル化オブジェクトは最初から他のベース3Dモデル化オブジェクトとは異なるため、データセットのいくつかの3Dモデル化オブジェクトに共通の形状を表現するようにすでにわずかに特化しており、データセットの
個の各サブデータセットの
個の重心の決定(S30)が容易になる。
この実施形態において、最小化される共通損失は、以下のタイプである。
ここで、
は、3Dモデル化オブジェクトを表す第1の点群
と候補ベーステンプレートを表す第2の点群
とのEarth Mover距離損失である。共通損失の最小化は、先に引用した論文[12]に示された緩和アルゴリズムを用いて各球体の点を最適化し、(ミニバッチ確率的勾配緩和アルゴリズムによって)損失を最小化することによって行ってもよい。
各ベース3Dモデル化オブジェクトは、他の最適化されたベース3Dモデル化オブジェクトとは異なる種類の形状を表すベーステンプレート形状の決定(S30)によって最適化される。これは、訓練モデルごとに最小値が最も近いベース3Dモデル化オブジェクトのみを最適化するためである。各ベース3Dモデル化オブジェクトは、それ自体、他の各サブデータセットとは異なる、データセットの各サブデータセットの3Dモデル化オブジェクトの重心を表す特定のベーステンプレートに特化する。言い換えれば、各ベーステンプレートは、Earth Mover距離により提供される3Dモデルのデータセット内の、それ自体のクラスタの重心を表す。
各ベース3Dモデル化オブジェクトをそれ自体の3Dモデル化オブジェクト形状に特化させるために、この決定(S30)の実施においては、ミニバッチ訓練中に再割り当てアルゴリズムを用いることもできる。実際、3Dモデル化オブジェクトが同じベーステンプレートに対して最小損失に達し、他の3Dモデル化オブジェクトが最適化されるのを妨げる可能性がある。そのような効果を防ぐために、決定(S30)では、第1の点群を、訓練中の各ミニバッチで、前回の候補ベーステンプレートごとに、前回の候補テンプレート(第1の再割り当てアルゴリズム)の損失に応じて、降順でソートしてもよい。あるいは、決定(S30)において、第1の点群を、前回の候補ベーステンプレートと、この3Dモデル化オブジェクトを再構成する最良の候補ベーステンプレートとの、損失差に応じて、ソートしてもよい(第2の再割り当てアルゴリズム)。次に、決定(S30)により、最初の
(
はミニバッチサイズの小さな一部)を前回の候補ベーステンプレートに強制的に割り当ててもよい。これは、決定(S30)が
と、その結果として得られるその第1の点群のargminを変化させ、この第1の点群に対して、このテンプレートをバックプロパゲーションにより強制的に通過させる。その結果、前回の候補ベーステンプレートが新しい候補ベーステンプレートに変形されてもよい。
ここで第1および第2の再割り当てアルゴリズムについて説明する。どちらのアルゴリズムも以下を入力とする。
ミニバッチ
(
はミニバッチサイズ)。
(
以下)
について、
である。
について
(よって
である)。
両アルゴリズムは以下を出力する。
再割り当て後のミニバッチ全体についての損失
以下は、第1の再割り当てアルゴリズムの擬似コードである。
以下は、第2の再割り当てアルゴリズムの擬似コードである。
共通の損失
の最小化により、各3Dベーステンプレートの頂点の最適化に対応する
個の最適化した点群が得られるが、トポロジは考慮されない。これにより、正確ではあるがトポロジが間違っている点群を備えたベーステンプレートになり得る。よって、決定(S30)は、ベーステンプレートの再メッシュ化を含んでいてもよい。そのような場合、決定(S30)は、各ベーステンプレートについて、決定(S30)が、ベーステンプレートを入れる粗いグリッドを提供すること(S310)を含んでいてもよい。点を含む各ボクセルの値は1であり、他のボクセルの値はnullである。決定(S30)は、次いで、例えば等値が1に近いマーチングキューブアルゴリズムを適用することによる、粗いグリッドそれぞれからの粗いメッシュの抽出(S320)を含んでいてもよい。決定(S330)は、次いで、最適化された各点群の点の法線を推定すること(S330)を含んでいてもよい。この実施では、法線の推定(S330)は、最適化された各点群の各点の法線を正確に算出するために、マーチングキューブアルゴリズムからの粗いメッシュの利用を含んでいてもよい。これは、各点を粗いメッシュの最も近い三角形に投影し、その法線に対して、三角形の法線の加重平均を割り当てることからなってもよく、当該重みは投影点の重心の重みである。決定(S340)は、これらの適切な法線により、正確なトポロジを持つベーステンプレートを取得するために、最適化された各点群で(例えばポアソン)表面再構成を実行することを含んでもよく、頂点が多すぎる場合は最終的に間引きされる。
2つのベーステンプレートが決定(S30)される例について、ここで図16~図19を参照して説明する。図16は、4本脚の椅子からなるデータセット160の例を示している。データセットは、4本脚の椅子の2つのクラス、すなわち、4本脚と狭い背もたれを有する椅子からなる第1のクラス162、および4本脚と広い背もたれを有する椅子からなる第2のクラス164に分割される。図17および図18は、それぞれ、第1のクラス162の重心を表す第1のベーステンプレートと第2のクラス164の重心を表す第2のベーステンプレートの決定(S30)を示す。点群170および180は2つのベース3Dモデル化オブジェクトであり、それぞれが、最適化された点群174および184に繰り返し変形させられる(172、182)。図19は、それぞれ最適化された点群174および184の表面再構成である第1のベーステンプレート190および第2のベーステンプレート192を示す。
ニューラルネットワークの学習(S40)の概念についてここで説明する。
上述のように、ニューラルネットワークの学習(S40)は、1つまたは複数のニューラルネットワーク、例え2つ以上のニューラルネットワークの集合の決定を指定する。集合のニューラルネットワークは、それぞれ重みを有する。ニューラルネットワークの集合の学習(S40)は、ニューラルネットワークの集合を提供すること(S400)を含んでいてもよい。ニューラルネットワークの集合の提供(S400)は、ユーザによって実行されてもよい。例えば、ユーザはデータセットが保存されているメモリからニューラルネットワークの集合を取得してもよい。各ニューラルネットワークは構造として提供(S400)されてもよいが、それでもニューラルネットワークの訓練を行う必要はある。言い換えれば、ニューラルネットワークの重みを含む各ニューラルネットワークの構造が提供(S400)されてもよいが、重みは依然として初期化(S410)および/または修正(S420)しなければならない可能性がある。ニューラルネットワークの集合の学習(S40)は、各ニューラルネットワークのそれぞれの重みの初期化(S410)、および/またはニューラルネットワークのそれぞれの重みの修正(S420)を含んでいてもよい。それぞれの重みの修正(S420)は、上述のように、訓練の一部であってもよい。訓練は、上述のように、すべてのニューラルネットワークの同時訓練であってもよく、データセットに基づいていてもよい。例においては、各ニューラルネットワークの訓練がデータセット全体に基づいていることを意味する。代替的に、または追加的に、各ニューラルネットワークの訓練は、データセットの各サブデータセットに基づいていることを意味してもよい。データセットは1つまたは複数のサブデータセットを含み、各サブデータセットはデータセットの少なくとも一部を形成する。以下、「データセット」とは、ここで説明したように、ニューラルネットワークの集合の訓練が実行されるデータセットを指す。
例においては、各ニューラルネットワークのそれぞれの重みの初期化(S410)は、ニューラルネットワークの集合の提供(S400)の後、かつ、各重みの修正(S420)の前に行われる。各重みの初期化(S410)は、一般に、例えばユーザとの対話により、集合の各ニューラルネットワークのそれぞれの重みの値を指定する(例えば、宣言する)ことを含む。例において、各ニューラルネットワークのそれぞれの重みは、すべて所定の閾値よりも小さい値に初期化(S410)されてもよい。当該所定の閾値は、ユーザによって提供されてもよい。所定の閾値は、例えば、1、0.5、0.1、または0.001のいずれかより小さくてもよい。
例においては、最初にゼロに近く初期化されるのは重みではなく、(妥当な)入力が何であろうとゼロに近づくべきニューラルネットワークの出力である。ただし、実際には、使用するアーキテクチャを考えると、初期化(S410)に弱い重みを付けると、弱い変形を予測することによりニューラルネットワークが確実に開始するようにできる。そのため、例においては、閾値それ自体が存在せず、用いられるアーキテクチャに、すべてが依存する。そのような例では、学習を開始する前にニューラルネットワークの出力が小さな歪みを予測するように、初期化(S420)を実行してもよい。
ニューラルネットワークのそれぞれの重みの、そのような所定の閾値より小さい値への初期化(S410)は、特に、各ベーステンプレートの3Dモデル化オブジェクトへの変形を推定するように構成されたニューラルネットワークを学習するように適合される。そのような場合、ニューラルネットワークの入力が何であれ、ニューラルネットワークの出力が小さいこと、すなわち、各ベーステンプレートの変形が小さくことが必要であってもよい。実際、それぞれのベーステンプレートがデータセットのサブデータセットの重心を表す場合、各ベーステンプレートは、サブデータセットの3Dモデル化オブジェクトへと変換するのに、大きく、かつ/あるいは、大まかに変形する必要はない。このような方法でニューラルネットワークの重みを初期化(S410)することにより、学習(S40)は、サブデータセットの3Dモデル化オブジェクトを出力することでニューラルネットワークが確実に訓練を開始するようにする。言い換えれば、ニューラルネットワークは、各重みの初期化(S410)後すぐに、各ベーステンプレートが重心であるサブデータセットの3Dモデル化オブジェクトへの各ベーステンプレートの変形の推定に特化する。
各ニューラルネットワークの重みの修正(S420)についてここで説明する。
各ニューラルネットワークの重みの修正(S420)は、データセットの各3Dモデル化オブジェクトについて、複数の項から項を選択する損失を最小化することによって実行される。ここで、各項は、3Dモデル化オブジェクトと、集合のそれぞれのニューラルネットワークによって推定された各3Dモデル化オブジェクトとの不一致にペナルティを課すものであり、選択される項は、複数の項のうち不一致に対するペナルティが最も小さい項である。
「各ニューラルネットワークの重みを修正する」とは、ニューラルネットワークのうち少なくとも一部(例えばすべて)における重みのうちの少なくとも一部(例えばすべて)が、例えば繰り返し、例えば、損失が繰り返し最小化される間に、変更されることを意味する。例えば、損失の最小化は、1つまたは複数のアルゴリズムの実行を含んでいてもよく、1つまたは複数のアルゴリズムの少なくとも一部(例えばすべての)ステップは、実行時に各重みを修正してもよい。損失の最小化には、ミニバッチ上のADAMソルバーなどの深層学習技術を用いてもよい。
損失は、データセットの各3Dモデル化オブジェクトについて、3Dモデル化オブジェクトと各ニューラルネットワークに推定された各3Dモデル化オブジェクトとの(例えば幾何学的な)2つ以上の類似性および/または非類似性を測定する量(例えば関数)であってもよい。複数の項のうちの各項は、2つ以上の(例えば幾何学的な)類似性および/または非類似性のそれぞれの尺度であってもよい。これにより、3Dモデル化オブジェクトと各ニューラルネットワークにより推定された各3Dモデル化オブジェクトとの、項によりペナルティが課される不一致は、3Dモデル化オブジェクトと各ニューラルネットワークにより推定された各3Dモデル化オブジェクトとの(例えば幾何学的な)非類似性の定量化であってもよい。よって、不一致にペナルティを課すことは、項が不一致の増加関数であることを意味してもよい。損失は、複数の項から、また、データセットの各3Dモデル化オブジェクトについて、ペナルティが最も小さい項を選択する。例においては、損失は、パラメータとしてデータセットの3Dモデル化オブジェクトをとり、入力としてニューラルネットワークの集合をとり、3Dモデル化オブジェクトごとに選択された各項の関数(例えば合計)である量(例えば正の実数)を出力する関数であることを意味する。言い換えれば、損失は、データセットの各3Dモデル化オブジェクトについて、どのニューラルネットワークが3Dモデル化オブジェクトに(例えば幾何学的に)(例えば最も)類似した3Dモデル化オブジェクトを推定しているかを表す結果を出力してもよい。
例においては、3Dモデル化オブジェクトと、集合の各ニューラルネットワークにより推定された各3Dモデル化オブジェクトとの不一致は、3Dモデル化オブジェクトと、集合の各ニューラルネットワークにより推定された各3Dモデル化オブジェクトとの距離に関与する。
距離は、3Dモデル化オブジェクト間の類似性および/または非類似性を測定する、特にシンプルで効率的な方法である。
距離は、ハウスドルフ距離、ワッサースタイン距離、面取り距離、またはEarth Mover距離など、任意の距離であってもよい。例においては、不一致は、3Dモデル化オブジェクトと、集合の各ニューラルネットワークにより推定された各3Dモデル化オブジェクトとの距離の(例えば増加)関数であるという点で、集合の各ニューラルネットワークにより推定された各3Dモデル化オブジェクトとの距離に関与する。例においては、不一致は、3Dモデル化オブジェクトと、集合の各ニューラルネットワークにより推定された各3Dモデル化オブジェクトとの距離の算出に関する結果に依存するという点で、集合の各ニューラルネットワークにより推定された各3Dモデル化オブジェクトとの距離に関与する。
例においては、当該距離は、3Dモデル化オブジェクトを表す第1の点群と集合の各ニューラルネットワークにより推定された各3Dモデル化オブジェクトを表す第2の点群との距離である。
上述のように、データセットの各3Dモデル化オブジェクトは、点群として提供してもよく(したがって、これは3Dモデル化オブジェクトを表す)、あるいは、3Dモデル化オブジェクトを表す点群は、3Dモデル化オブジェクトが提供される別のフォーマットから決定されてもよい。いずれの場合も、修正(S420)は、データセットの3Dモデル化オブジェクトをそれぞれ表す点群を操作してもよい。集合のニューラルネットワークにより推定された各3Dモデル化オブジェクトは、同様に3Dモデル化オブジェクトであるため、それぞれの点群で表すこともでき、これらは、オプションとして、他の3Dモデル化オブジェクトフォーマットから決定してもよい。したがって、距離は、ワッサースタイン距離やEarth Mover距離など、点群間の任意の距離であってよい。
例においては、各ニューラルネットワークは、各ベーステンプレートの各3Dモデル化オブジェクトへの変形を推定するように構成されている。これらの例においては、各ベーステンプレートは、3Dモデル化オブジェクトである。
例においては、各ベーステンプレートは、データセットのサブデータセットの3Dモデル化オブジェクトの重心を表す3Dモデル化オブジェクトである。
例において、損失は以下のタイプである。
ここで、
はニューラルネットワークの集合であり、
はデータセットの3Dモデル化オブジェクトであり、
は各ベーステンプレートであり、
は、3Dモデル化オブジェクト
と、各ニューラルネットワーク
によって推定されたベーステンプレート
の変形との、距離に関与する項である。
例において、
は、面取り距離損失である。
例においては、最小化は、次の繰り返しを含む:選択した集合の各3Dモデル化オブジェクトについて、データセットの3Dモデル化オブジェクトの集合を選択し、3Dモデル化オブジェクトと、各ニューラルネットワークによって推定された3Dモデル化オブジェクトとの、不一致が小さいことに報酬を与えることにより、3Dモデル化オブジェクトに各ニューラルネットワークを割り当てる。これらの例においては、各ニューラルネットワークは、選択された集合の1つまたは複数の3Dモデル化オブジェクトに割り当てられる。これらの例においては、各ニューラルネットワークの重みは、割り当ての結果として修正される。
選択の繰り返しは、データセットの各3Dモデル化オブジェクトが少なくとも1回選択されるまで、かつ/あるいはデータセットの各3Dモデル化オブジェクトに各ニューラルネットワークが割り当てられるまで実行される。選択された集合の3Dモデル化オブジェクトへの各ニューラルネットワークを割り当ては、3Dモデル化オブジェクトと各ニューラルネットワークによって推定された3Dモデル化オブジェクトとの不一致にペナルティを課す損失の各項を評価することを含んでいてもよい。選択された集合の3Dモデル化オブジェクトへの各ニューラルネットワークを割り当ては、不一致に対するペナルティが最も小さい項を割り当てることをさらに含んでいてもよい。例においては、評価された項によってペナルティが課される不一致に対応する各ニューラルネットワークは、3Dモデル化オブジェクトに割り当てられたものである。
言い換えれば、修正(S420)方法は、データセット内の3Dモデル化オブジェクトの集合に繰り返しアクセスし、各集合の各3Dモデル化オブジェクトに対し、3Dモデル化オブジェクトに(例えば幾何学的に)(例えば最も)類似する各3Dモデル化オブジェクトを推定した各ニューラルネットワークを割り当てる。したがって、各ニューラルネットワークについて、1つまたは複数の3Dモデル化オブジェクトが、各ニューラルネットワークに繰り返し割り当てられる。各ニューラルネットワークの重みは、割り当てのたびに修正される。例においては、各ニューラルネットワークの重みが修正され、各ニューラルネットワークが、少なくとも、現在割り当てられている各3Dモデル化オブジェクト、および各ニューラルネットワークに前回割り当てられていた各3Dモデル化オブジェクトを推定するように構成されることを意味する。
したがって、修正(S420)は、集合の3Dモデル化オブジェクトを繰り返し探索し、各ニューラルネットワークを1つまたは複数の3Dモデル化オブジェクトに繰り返し割り当てる。重みは、各ニューラルネットワークが少なくともそれに割り当てられた3Dモデル化オブジェクトの推定に特化するように、繰り返し変更してもよい。言い換えれば、修正(S420)は、データセットの3Dモデル化オブジェクトの1つまたは複数のサブデータセット(例えばクラス)の選択を操作し、実質的に同時に、各ニューラルネットワークがサブデータセットのうちのそれぞれ1つの3Dモデル化オブジェクトの推定に特化するように、各ニューラルネットワークの重みを修正する。
各ニューラルネットワークが、3Dモデル化オブジェクトを推定するように構成された各デコーダを含む各オートエンコーダである例の実施についてここで説明する。
この実施形態において、
を、決定(S30)された
個の決定(S30)されたベーステンプレートとし、ここで
である。学習(S50)は、各ベーステンプレートについて1つずつ、
個のオートエンコーダ
を学習することからなる。各エンコーダは、先に引用した論文[8,9,10,11]に基づいて、3Dモデル化オブジェクトを表す入力3Dメッシュのサンプリング
を入力としてとる。各デコーダ
は、3D座標
とともに、潜在ベクトル
を入力として、ベーステンプレート
の変形を予測し、変形されたテンプレートは
として得られる。各デコーダは、学習が始まる前に小さな変形を予測するように初期化される。これは、上述のように、各デコーダの重みを、所定の閾値よりも小さい初期値に初期化すること(S410)を含んでいてもよい。それぞれの重みは、以下の面取り距離の損失を(ミニバッチ上のADAMソルバーなどの標準的な深層学習技術を用いて)最小化することにより変更される(S420)。
ここで
は、面取り距離である。
損失は、上述の第1の再割り当てアルゴリズムまたは第2の再割り当てアルゴリズムに類似した再割り当てアルゴリズムを用いることにより最小化してもよい。これにより、
とそのargminを再割り当てして、訓練中に各ミニバッチの少なくとも数個の3Dモデル化オブジェクトによって各オートエンコーダを最適化することができる。この実施形態では、オートエンコーダはベーステンプレートから開始されるため、それらが、関連付けられたベーステンプレートによって表される種類の3Dモデル化オブジェクトに特化するのは簡単である。さらに、このベーステンプレートをわずかに変形するだけで入力に一致するため、オートエンコーダは、確実に、出力のトポロジを、より一貫性のあるものにする。
プロセスの実施形態についてここで説明する。
この実施形態においては、プロセスはいくつかのオートエンコーダをメッシュ上で学習する。ここで各オートエンコーダは、それ自体を特定の種類のトポロジに自動的に特化させる。各デコーダは、それ自体のベーステンプレートも変形する。ベーステンプレートは自動的に決定(S30)され、提供(S10)されたデータセットに存在するさまざまな種類のベース形状を表す。これにより、より高い精度とより低い再構築損失で多様体を学習し、さまざまなトポロジを効率的に処理し、再構築された形状がより一貫したトポロジを確実に共有することができる。
本プロセスの実施形態は、4つの段階1、2、3、および4を含む。これらについてここで説明する。
1.データセットのサンプリング
を、典型的には同じクラスのオブジェクトに属する3Dメッシュの、提供(S10)されたデータセット(例えば椅子のデータセット)とする。本プロセスは、6つの正投影ビューで、各モデルをレイキャストすることにより、データセット内の各形状から点群を抽出することを含む。本プロセスは、各点群を均一にサブサンプリングして、固定数
個の点を取得することをさらに含む。そのために、本プロセスは点群のランダムな点から開始し、点の数が
個に達するまで、点群のうち、既に選択されている点から最も遠い点を繰り返し選択する。ここで、
は、訓練メッシュのサンプリングされた点群を表す本プロセスでは、形状をさらにセンタリングし、単位球スケーリングを適用する。
2.ベーステンプレートの学習―
個のベーステンプレートの決定(S30)
本プロセスは、それぞれ
個の点を有する
個の単位球
から開始する。本プロセスは、各球体が非常にわずかに互いに異なるように、各球体に非常に小さなノイズを追加する。
本プロセスは、(ミニバッチ確率的勾配緩和アルゴリズムによって)以下のEarth Mover距離損失を最小化するために、先に引用した論文[12]に示された緩和アルゴリズムを用いて各球体の点を最適化する。
ここで、
は、テンプレート
と形状
とのEarth Mover距離損失である。
各球体は、他の最適化された球体とは異なる種類の形状を表すベーステンプレート形状で最適化される。これは、各訓練モデルについて、最小値が、最も近い球体のみを最適化するためである。各球体は、それ自体、他の球体とは異なる、特定のトポロジと形状の種類を表す特定のベーステンプレートに特化する。各ベーステンプレートは、(Earth Mover距離により提供される)3Dモデルの空間内の、それ自体のクラスタの重心と解釈されもよい。
各球体をそれ自体の形状に特化させるために、本プロセスはミニバッチ訓練中に再割り当てアルゴリズムも用いる。実際、すべての形状が同じベーステンプレートに対してそれらの最小損失に達し、他の球体が最適化されるのを妨げる可能性がある。再割り当てアルゴリズムは、上述の第1の再割り当てアルゴリズムおよび第2の再割り当てアルゴリズムのうちの1つであってもよい。
損失
は球体の頂点を最適化するが、トポロジは考慮しない。これにより、正確ではあるがトポロジが間違っている点群を備えたベーステンプレートになり得る。したがって、本プロセスには、ベーステンプレートの再メッシュ化が含まれる。そのために、本プロセスは、各ベーステンプレートを粗い3Dグリッドに配置する。ここで、点を含む各ボクセルの値は1であり、他のボクセルの値はnullである。次いで、本プロセスは、等値が1に近いマーチングキューブアルゴリズムを適用して、各ベーステンプレートについて、粗いメッシュを抽出することを含む。本プロセスは、各ベーステンプレートの各点の法線を正確に算出するために、マーチングキューブアルゴリズムからの粗いメッシュを用いる。本プロセスは、各点を粗いメッシュの最も近い三角形に単純に投影し、その法線に対して、三角形の法線の加重平均を割り当てる。当該重みは投影点の重心の重みである。本プロセスは、これらの適切な法線により、正確なトポロジを持つベーステンプレートを取得するためにポアソン表面再構成を実行する。頂点が多すぎる場合は最終的に間引きされる。ここで、
は
個の学習したベーステンプレートを表す。なお、各ベーステンプレートは、球体に対して同相である。
3.多様体を学習するー
個のオートエンコーダの学習(S40)
本プロセスは、各ベーステンプレートについて1つずつ、
個のオートエンコーダ
をさらに含む。各エンコーダは、先に引用した論文[8,9,10,11]に基づいて、入力3Dメッシュのサンプリング
を入力としてとる。各デコーダ
は、3D座標
とともに、潜在ベクトル
を入力として、ベーステンプレート
の変形を予測し、変形されたテンプレートは
として得られる。各デコーダは、学習が始まる前に小さな変形を予測するように初期化される。
オートエンコーダは、以下の面取り距離の損失を(ミニバッチ上のADAMソルバーなどの標準的な深層学習技術を用いて)最小化することにより学習される。
ここで
は面取り距離の関数である。
また、本プロセスは、
とそのargminを再割り当てして、訓練中に各ミニバッチの少なくとも数個の3Dモデル化オブジェクトによって各オートエンコーダを最適化するために、前の段階とまったく同じ分割アルゴリズムも用いる。オートエンコーダはベーステンプレートから開始するため、それらが、関連付けられたベーステンプレートによって表される種類の形状に特化するのは簡単である。さらに、このベーステンプレートをわずかに変形するだけで入力に一致するため、オートエンコーダは、確実に、出力のトポロジを、より一貫性のあるものにする。
4.多様体を生成モデルに変える
多様体が学習されると、新しい形状をサンプリングして合成できるように、プロセスは各オートエンコーダの各潜在空間について、ガウス混合モデルに適合させてもよい。各オートエンコーダについて、本プロセスはこのオートエンコーダによって最適に再構築される訓練形状を取得し、これらの形状を用いてk平均クラスタリングを初期化してから、ガウス混合に適合するように期待値最大化を実行する。ガウス混合は、各潜在空間にわたる確率分布関数を提供し、これは簡単にサンプリングできる。
さらには、テンプレート学習方法、多様体学習方法、プロセス、および/または、利用方法を実行するための命令を含むコンピュータプログラムが提供される。
さらには、プログラム、および/または、ニューラルネットワーク、および/または、ニューラルネットワークの集合が記録されたデータ記憶媒体を備える装置が提供される。装置は、例えば、SaaS(Software as a service:サービスとしてのソフトウェア)や他のサーバ、あるいはクラウドベースのプラットフォームなどで、非一時的なコンピュータ読み取り可能な媒体を形成し、または、そのようなものとして機能してもよい。あるいは、装置は、データ記憶媒体に接続されたプロセッサを備えていてもよい。したがって、装置は、全体として、または部分的に、コンピューターシステムを形成してもよい(例えば、装置は、システム全体のサブシステムである)。システムは、プロセッサに接続されたグラフィカル・ユーザ・インターフェースをさらに備えてもよい。
システムおよびプログラムについてここで説明する。
図21は、本システムのGUIの一例を示す図であって、当該システムはCADシステムである。
GUI2100は、標準的なメニューバー2110,2120、ならびに底部および側面のツールバー2140,2150を有する典型的なCADのようなインターフェースであってもよい。このようなメニューバーおよびツールバーは、ユーザが選択可能なアイコンのセットを含み、各アイコンは、当技術分野で知られているように、1つまたは複数の操作または機能に関連付けられている。これらのアイコンのいくつかは、GUI2100に表示された3Dモデル化オブジェクト2000の編集および/または作業に適合したソフトウェアツールに関連付けられている。ソフトウェアツールはワークベンチに分類することができる。各ワークベンチは、ソフトウェアツールのサブセットを含む。特に、ワークベンチの1つは、モデル化製品2000のジオメトリ的特徴を編集するのに適した編集ワークベンチである。操作中、設計者は、例えば、オブジェクト2000の一部を予め選択し、次いで、適切なアイコンを選択することによって、操作を開始する(例えば、寸法、色などを変更する)か、ジオメトリ的制約を編集することができる。例えば、典型的なCAD操作は、スクリーン上に表示された3Dモデル化オブジェクトのパンチングまたは折り畳みのモデリングである。GUIは、例えば、表示された製品2000に関連するデータ2500を表示してもよい。図の例では、「特徴ツリー」として表示されたデータ2500およびそれらの3D表現2000は、ブレーキキャリパおよびディスクを含むブレーキ部品に関するものである。GUIは、編集された製品の動作のシミュレーションを起動するため、または表示された製品2000の様々な属性を描画するために、例えばオブジェクトの3D定位を容易にするための様々なタイプのグラフィックツール2130,2070,2080をさらに示してもよい。カーソル2060は、ユーザがグラフィックツールを用いて対話操作ができるように、触覚デバイスによって制御されてもよい。
図22は、本システムの一例を示す図であって、当該システムは、クライアントコンピュータシステム、例えばユーザのワークステーションである。
本例のクライアントコンピュータは、内部通信バス1000に接続された中央演算処理装置(CPU)1010、および同じくバスに接続されたランダムアクセスメモリ(RAM)1070とを備える。クライアントコンピュータは、さらに、バスに接続されたビデオランダムアクセスメモリ1100と関連付けられたグラフィックス処理装置(GPU)1110を備える。ビデオRAM1100は、当該技術分野において、フレームバッファとしても知られる。大容量記憶装置コントローラ1020は、ハードドライブ1030などの大容量記憶装置へのアクセスを管理する。コンピュータプログラムの命令及びデータを具体的に実現するのに適した大容量メモリ装置は、例として、EPROM、EEPROM及びフラッシュメモリ装置のような半導体メモリ装置、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、およびCD-ROMディスク1040を含む、全ての形式の不揮発性メモリを含む。前述のいずれも、特別に設計されたASIC(特定用途向け集積回路)によって補完されてもよいし、組み入れられてもよい。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。クライアントコンピュータはまた、カーソル制御装置、キーボードなどの触覚装置1090を含んでいてもよい。カーソル制御装置は、ユーザがディスプレイ1080上の任意の所望の位置にカーソルを選択的に位置させることを可能にするために、クライアントコンピュータ内で使用される。さらに、カーソル制御装置は、ユーザが様々なコマンドを選択し、制御信号を入力することを可能にする。カーソル制御装置は、システムに制御信号を入力するための多数の信号生成装置を含む。典型的には、カーソル制御装置はマウスであってもよく、マウスのボタンは信号を生成するために使用される。あるいは、または追加的に、クライアントコンピュータシステムは、感知パッドおよび/または感知スクリーンを備えてもよい。
コンピュータプログラムは、コンピュータによって実行可能な命令を含んでいてもよく、命令は、上記システムにテンプレート学習方法、多様体学習方法、および/または、プロセスを実行させるための手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶媒体に記録可能であってもよい。プログラムは、例えば、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実装されてもよい。プログラムは、例えばプログラマブルプロセッサによる実行のための機械読み取り可能な記憶装置に具体的に実現された製品のような装置として実装されてもよい。プロセス/方法のステップ(すなわちテンプレート学習方法、多様体学習方法、および/またはプロセスのステップ)は、プログラム可能なプロセッサが命令のプログラムを実行し、入力データを操作して出力を生成することによってプロセスの機能を実行することによって実行されてもよい。したがって、プロセッサは、データ記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、また、それらにデータおよび命令を送信するようにプログラム可能であってもよく、またそのように接続されていてもよい。アプリケーションプログラムは、高水準の手続き型またはオブジェクト指向のプログラミング言語で、または必要に応じてアセンブリ言語または機械語で実装されていてもよい。いずれの場合も、言語はコンパイラ型言語またはインタープリタ型言語であってもよい。プログラムは、フルインストールプログラムまたは更新プログラムであってもよい。いずれの場合も、プログラムをシステムに適用すると、テンプレート学習方法、多様体学習方法、および/または、プロセスを実行するための命令が得られる。