(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-20
(45)【発行日】2024-05-28
(54)【発明の名称】ニューラルネットワークのセット
(51)【国際特許分類】
G06F 30/27 20200101AFI20240521BHJP
G06F 30/10 20200101ALI20240521BHJP
G06N 3/02 20060101ALI20240521BHJP
G06F 111/20 20200101ALN20240521BHJP
【FI】
G06F30/27
G06F30/10 100
G06N3/02
G06F111:20
【外国語出願】
(21)【出願番号】P 2019232008
(22)【出願日】2019-12-23
【審査請求日】2022-11-25
(32)【優先日】2018-12-29
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】500102435
【氏名又は名称】ダッソー システムズ
【氏名又は名称原語表記】DASSAULT SYSTEMES
(74)【代理人】
【識別番号】110000752
【氏名又は名称】弁理士法人朝日特許事務所
(72)【発明者】
【氏名】エロイ メール
【審査官】合田 幸裕
(56)【参考文献】
【文献】米国特許出願公開第2018/0314917(US,A1)
【文献】特開2018-073393(JP,A)
【文献】Shlomo E. Chazan et al.,Deep Clustering Based on a Mixture of Autoencoders,arXiv:1812.06535v1,Cornell University,2018年12月16日,pages 1-9,<DOI: https://doi.org/10.48550/arXiv.1812.06535>
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/27
G06F 30/10
G06N 3/02
G06F 111/20
IEEE Xplore
JSTPlus(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
機械学習のコンピュータ実施方法であって、
各々が対応する機械部品を表す3Dモデル化オブジェクトを含むデータセットを提供するステップ(S10)と、
各ニューラルネットワークがそれぞれの重みを有し、各ニューラルネットワークが3Dモデル化オブジェクトの推論のために構成される、ニューラルネットワークのセットを提供するステッ
プ(S400)と、
データセットの各3Dモデル化オブジェクトについて、複数の項の中から1つの項を選択し、各項は3Dモデル化オブジェクトと、セットの各ニューラルネットワークによって推論される各3Dモデル化オブジェクトとの間の不均衡にペナルティを課し、選択された項は、不均衡が最小のペナルティを課される複数の項の中の1つの項で損失を最小
化することによって、ニューラルネットワークの各重みを修正するステップ(S420)と、
を含
み、
各ニューラルネットワークが、対応する基本テンプレートの変形を対応する3Dモデル化オブジェクトに推論するように構成され、対応する基本テンプレートが3Dモデル化オブジェクトである
機械学習のコンピュータ実施方法。
【請求項2】
前記3Dモデル化オブジェクトと、前記セットの対応するニューラルネットワークによって推論される対応する3Dモデル化オブジェクトとの間の不均衡は、前記3Dモデル化オブジェクトと、前記セットの対応するニューラルネットワークによって推論される対応する3Dモデル化オブジェクトとの間の距離を含む
請求項1に記載の
機械学習のコンピュータ実施方法。
【請求項3】
前記距離は、前記3Dモデル化オブジェクトを表す第1の点群と、前記セットの対応するニューラルネットワークによって推論される対応する3Dモデル化オブジェクトを表す第2の点群との間の距離である
請求項2に記載の
機械学習のコンピュータ実施方法。
【請求項4】
各基本テンプレートが、データセットのサブデータセットの3Dモデル化オブジェクトの重心を表す3Dモデル化オブジェクトである
請求項
1に記載の
機械学習のコンピュータ実施方法。
【請求項5】
損失が
次式で表される
【数1】
請求項
1に記載の
機械学習のコンピュータ実施方法。
【請求項6】
前記最小化は、
データセットの3Dモデル化オブジェクトのセットを選択するステップ、及び
選択されたセットの各3Dモデル化オブジェクトに対して、3Dモデル化オブジェクトと、対応するニューラルネットワークによって推論される対応する3Dモデル化オブジェクトとの間の不均衡の小ささに報酬を与えることによって、対応するニューラルネットワークを3Dモデル化オブジェクトへ割り当てるステップであって、対応するニューラルネットワークは選択されたセットの1つ又は複数の3Dモデル化オブジェクトに割り当てられ、対応するニューラルネットワークの重みは割り当ての結果として修正されるステップ
の反復を含む
請求項1乃至
5のいずれか一項に記載の
機械学習のコンピュータ実施方法。
【請求項7】
対応するニューラルネットワークは、3Dモデル化オブジェクトの推論のために構成された対応するデコーダを備える対応するオートエンコーダである
請求項1乃至
6のいずれか一項に記載の
機械学習のコンピュータ実施方法。
【請求項8】
請求項1乃至
7のいずれか一項に記載の
機械学習のコンピュータ実施方法により得ることができるニューラルネットワークのセット。
【請求項9】
請求項
8に記載のニューラルネットワークのセットを使用するコンピュータ実施方法。
【請求項10】
各々のニューラルネットワークが3Dモデル化オブジェクトの推論のために構成された対応するデコーダを備える対応するオートエンコーダであり、
前記
ニューラルネットワークのセットを使用するコンピュータ実施方法が、
2つ以上の3Dモデル化オブジェクトを提供するステップと、
各々がニューラルネットワークのセットの対応するオートエンコーダの潜在空間上に2つ以上の3Dモデル化オブジェクトを投影するステップと、
投影された2つ以上の3Dモデル化オブジェクト間の潜在空間上の1つ以上の補間を計算するステップと、
計算された各補間にデコーダを適用するステップと
を備える請求項
9に記載の
ニューラルネットワークのセットを使用するコンピュータ実施方法。
【請求項11】
各々のニューラルネットワークが3Dモデル化オブジェクトの推論のために構成された対応するデコーダを備える対応するオートエンコーダであり、
前記
ニューラルネットワークのセットを使用するコンピュータ実施方法が、
3Dモデル化オブジェクトの一部を提供するステップと、
3Dモデル化オブジェクトの前記一部に対応するオートエンコーダを適用するステップと、
3Dモデル化オブジェクトの前記一部に対応するオートエンコーダの適用の結果を、
3Dモデル化オブジェクトの前記一部にフィッティングするステップと
を備える請求項
9に記載の
ニューラルネットワークのセットを使用するコンピュータ実施方法。
【請求項12】
各々のニューラルネットワークが3Dモデル化オブジェクトの推論のために構成された対応するデコーダを備える対応するオートエンコーダであり、
前記
ニューラルネットワークのセットを使用するコンピュータ実施方法が、
3Dモデル化オブジェクトを提供するステップと、
1つ以上の対応するオートエンコーダを3Dモデル化オブジェクトに適用するステップと、
前記適用するステップに基づいて、各々のオートエンコーダを選択するステップと
を備える請求項
9に記載の
ニューラルネットワークのセットを使用するコンピュータ実施方法。
【請求項13】
請求項1乃至
7のいずれか一項に記載の方法、及び/又は請求項
9乃至
12のいずれか一項に記載の
ニューラルネットワークのセットを使用するコンピュータ実施方法を実行するための命令を含むコンピュータプログラム。
【請求項14】
請求項
8に記載の2つ以上の対応するニューラルネットワークのセット及び/又は請求項
13に記載のコンピュータプログラムが記録されたデータ記憶媒体を備える装置であって、前記装置は、任意選択で、前記データ記憶媒体に結合されたプロセッサをさらに備える、装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示はコンピュータプログラム及びシステムの分野に関し、より具体的には、それぞれが対応する機械部品を表す3Dモデル化オブジェクトを含むデータセットを用いた機械学習の方法、システム、及びプログラムに関する。
【背景技術】
【0002】
物体の設計、エンジニアリング及び製造のために、多数のシステム及びプログラムが市場に提供されている。CADはコンピュータ支援設計の頭字語であり、例えば、オブジェクトを設計するためのソフトウェアソリューションに関する。CAEはコンピュータ支援エンジニアリングの頭字語であり、例えば、将来の製品の物理的挙動をシミュレートするためのソフトウェアソリューションに関連する。CAMはコンピュータ支援製造の頭字語であり、例えば、製造プロセス及び動作を定義するためのソフトウェアソリューションに関する。そのようなコンピュータ支援設計システムでは、グラフィカルユーザインターフェースが技法の効率に関して重要な役割を果たす。これらの技術は、製品ライフサイクル管理(PLM)システム内に組み込まれてもよい。PLMとは、企業が製品データを共有し、共通のプロセスを適用し、企業知識を活用して、長期的な企業のコンセプトを越えて、コンセプトから生涯にわたる製品の開発に役立てることを支援するビジネス戦略のことをいう。(CATIA、ENOVIA及びDELMIAの商標で)ダッソーシステムズによって提供されるPLMソリューションは、製品工学知識を編成するエンジニアリングハブと、製造工学知識を管理する製造ハブと、エンタープライズ統合及びエンジニアリングハブ及び製造ハブの両方への接続を可能にする企業ハブとを提供する。全体として、システムは最適化された製品定義、製造準備、製造、及びサービスを駆動する動的な知識ベースの製品作成及び意思決定サポートを可能にするために、製品、プロセス、リソースをリンクするオープン・オブジェクト・モデルを提供する。
【0003】
この文脈及び他の文脈では、機械学習、特にオートエンコーダ及び/又は多様体学習が広く重要になっている。
【0004】
以下の論文はこの分野に関するものであり、以下において言及される。
[1]: "Stacked Denoising Autoencoders: Learning Useful Representations in a Deep Network with a Local Denoising Criterion", P. Vincent, H. Larcohelle, I. Lajoie, Y. Bengio, P. Manzagol, in The Journal of Machine Learning Research, 2010.
[2]: "Reducing the Dimensionality of Data with Neural Networks", G.E. Hinton, R.R. Salakhutdinov, in Science, 2006.
[3]: "Learning Deep Architectures for AI", Y. Bengio, in Foundations and Trends in Machine Learning, 2009.
[4] Maxim Tatarchenko, Alexey Dosovitskiy, and Thomas Brox. Multi-view 3d models from single images with a convolutional network. In European Conference on Computer Vision, 2016.
[5] Xinchen Yan, Jimei Yang, Ersin Yumer, Yijie Guo, and Honglak Lee. Perspective transformer nets: Learning single-view 3d object reconstruction without 3d supervision. In Advances in Neural Information Processing Systems, 2016.
[6] Zhirong Wu, Shuran Song, Aditya Khosla, Fisher Yu, Linguang Zhang, Xiaoou Tang, and Jianxiong Xiao. 3d shapenets: A deep representation for volumetric shapes. In Computer Vision and Pattern Recognition, 2015.
[7] Christian Hane, Shubham Tulsiani, and Jitendra Malik. Hierarchical surface prediction for 3d object reconstruction. In 3DV, 2017.
[8] Charles R Qi, Hao Su, Kaichun Mo, and Leonidas J Guibas. Pointnet: Deep learning on point sets for 3d classification and segmentation. In Computer Vision and Pattern Regognition, 2017.
[9] Charles Ruizhongtai Qi, Li Yi, Hao Su, and Leonidas J. Guibas. Pointnet++: Deep hierarchical feature learning on point sets in a metric space. In NIPS, 2017.
[10] Thibault Groueix, Matthew Fisher, Vladimir G. Kim, Bryan Russell, and Mathieu Aubry. AtlasNet: A Papier-Mache Approach to Learning 3D Surface Generation. In Computer Vision and Pattern Recognition, 2018.
[11] Yaoqing Yang, Chen Feng, Yiru Shen, and Dong Tian. FoldingNet: Point Cloud Auto-encoder via Deep Grid Deformation. In Computer Vision and Pattern Recognition, 2018.
[12] Dimitri P. Bertsekas. The Auction Algorithm : a Distributed Relaxation Method for the Assignment. In Annals of Operations Research - Special Issue: Parallel Optimization on Novel Computer Architectures, Volume 14 Issue 1-4, June 1988.
【0005】
同じクラスからのサンプルを表すデータセット、例えば椅子の画像のデータセット、又は車の3Dモデルのデータセットが与えられると、オートエンコーダ(先に引用した論文[1,2]で説明されている)を使用して、このデータセットの元の入力空間と、しばしば潜在空間と呼ばれる低次元空間との間のマッピングを学習することができる。さらに、オートエンコーダは、潜在空間から元の入力空間への逆マッピングを学習することもできる。それらは、データ中の有意義な特徴を抽出するために、及び/又はデータをコンパクトな表現に圧縮するために使用されてもよい。
【0006】
論文[4]はある種のオートエンコーダを学習し、入力はオブジェクトのRGB画像及び視点であり、所与の視点における入力画像内のオブジェクトの奥行きマップを予測するが、論文[5]は単一のRGB画像を、入力内の3Dオブジェクトを表す323のボクセルグリッドに直接変換するオートエンコーダを学習する。
【0007】
論文[6]は、3D形状の2進占有体積を表す323のボクセルグリッド上で直接3D畳み込み深部信念ネットワークを学習する。論文[7]で行ったように、オクトリーを用いて高解像度のボクセルグリッドを再構成することが可能である。
【0008】
論文[8]と論文[9]のマルチスケール伸長は、ポイントネットと呼ばれる点群について直接学ぶことができる深いアーキテクチャを紹介している。点群が3D点のベクトルとして表される場合、キーは点の置換に対して不変なネットワークを構築することであり、その結果、ネットワークは置換の動作による3D点の空間の商に実際に依存する、すなわち、点群を表すために使用する順序とは無関係である。この目的を達成するために、アーキテクチャは各入力点に適用される共有層に依存し、
【数1】
の形式を有する。ここで、hは
【数2】
から
【数3】
へのニューラルネットワークであり、gは最大関数のような置換不変関数である。
【0009】
これらの方法はすべて、正確さに欠けるという欠点がある。
【0010】
この状況の中で、各々が対応する機械部品を表す3Dモデル化オブジェクトを含むデータセットを用いた機械学習の改善された方法が依然として必要とされている。
【発明の概要】
【0011】
したがって、本発明は、機械学習のコンピュータ実施方法を提供する。この方法は、それぞれが対応する機械部品を表す3Dモデル化オブジェクトを含むデータセットを提供することを含む。この方法は、ニューラルネットワークのセットを提供することをさらに含む。各ニューラルネットワークは、それぞれの重みを有する。各ニューラルネットワークは、3Dモデル化オブジェクトの推論のために構成される。この方法は、損失を最小限に抑えることによってニューラルネットワークのそれぞれの重みを修正することをさらに含む。データセットの各3Dモデル化オブジェクトについて、損失は、複数の項の中から1つの項を選択する。各項は、3Dモデル化オブジェクトと、セットの対応するニューラルネットワークによって推論される対応する3Dモデル化オブジェクトとの間の不均衡にペナルティを課す。選択された項は、複数の項の中で、不均衡が最小のペナルティを課される項である。
【0012】
これは、各々が対応する機械部品を表す3Dモデル化オブジェクトを含むデータセットを用いた機械学習の改善された方法を構成する。
【0013】
この方法は、以下のうちの1つ又は複数を含むことができる。
・3Dモデル化オブジェクトと、セットの対応するニューラルネットワークによって推論される対応する3Dモデル化オブジェクトとの間の不均衡は、3Dモデル化オブジェクトと、セットの対応するニューラルネットワークによって推論される対応する3Dモデル化オブジェクトとの間の距離を含む。
・その距離は、3Dモデル化オブジェクトを表す第1の点群と、セットのそれぞれのニューラルネットワークによって推論されるそれぞれの3Dモデル化オブジェクトを表す第2の点群との間の距離である。
・各ニューラルネットワークは、対応する基本テンプレートの変形を対応する3Dモデル化オブジェクトに推論するように構成され、対応する基本テンプレートはそれぞれ3Dモデル化オブジェクトである。
・各基本テンプレートは、データセットのサブデータセットの3Dモデル化オブジェクトの重心を表す3Dモデル化オブジェクトである。
・損失は以下のタイプのものである。
【数4】
【0014】
最小化は以下の反復を含む:
・データセットの3Dモデル化オブジェクトのセットの選択。
・選択されたセットの各3Dモデル化オブジェクトに対して、3Dモデル化オブジェクトと、対応するニューラルネットワークによって推論される対応する3Dモデル化オブジェクトとの間の不均衡の小ささに報酬を与えることによって、対応するニューラルネットワークを3Dモデル化オブジェクトに割り当て、対応するニューラルネットワークは選択されたセットの1つ又は複数の3Dモデル化オブジェクトに割り当てられ、対応するニューラルネットワークの重みは割り当ての結果として修正され、及び/又は
対応するニューラルネットワークが3Dモデル化オブジェクトの推論のために構成された対応するデコーダを備える対応するオートエンコーダである。
【0015】
さらに、本方法によって得られるニューラルネットワークのセットが提供される。
【0016】
本発明はさらに、ニューラルネットワークのセットを使用するコンピュータ実施方法を提供する。
【0017】
使用方法は、以下の1つ以上を含んでもよい。
各ニューラルネットワークは、3Dモデル化オブジェクトの推論のために構成された対応するデコーダを備える対応するオートエンコーダである、この方法は以下を含む。
・2つ以上の3Dモデル化オブジェクトを提供するステップ、
・ニューラルネットワークのセットの対応するオートエンコーダの潜在空間上にそれぞれ2つ以上の3Dモデル化オブジェクトを投影するステップ、
・投影された2つ以上の3Dモデル化オブジェクト間の潜在空間上で1つ以上の補間を計算するステップ、
・各計算された補間にデコーダを適用するステップ。
【0018】
各ニューラルネットワークは、3Dモデル化オブジェクトの推論のために構成された対応するデコーダを備える対応するオートエンコーダであり、この方法は以下を含む。
・3Dモデル化オブジェクトの一部を提供するステップ、
・3Dモデル化オブジェクトの部分に対応するオートエンコーダを適用するステップ、3Dモデル化オブジェクトの部分に、対応するオートエンコーダを3Dモデル化オブジェクトの部分に適用した結果をフィッティングするステップ、及び/又は
各ニューラルネットワークは、3Dモデル化オブジェクトの推論のために構成された対応するデコーダを備える対応するオートエンコーダであり、この方法は以下を含む。
・3Dモデル化オブジェクトを提供するステップ。
・1つ又は複数の対応するオートエンコーダを3Dモデル化オブジェクトに適用し、その適用に基づいて対応するオートエンコーダを選択するステップ。
【0019】
本方法及び/又は使用方を実行するための命令を含むコンピュータプログラムがさらに提供される。
【0020】
さらに、2つ以上の対応するニューラルネットワーク及び/又はコンピュータプログラムのセットが記録されたデータ記憶媒体を備える装置が提供される。
【0021】
この装置は、例えばSaaS、又は他のサーバ、あるいはクラウドベースのプラットフォームなど上で、一時的でないコンピュータ可読媒体を形成するか、又はそのような媒体として機能することができる。デバイスは代替的に、データ記憶媒体に結合されたプロセッサを備えることができる。したがって、装置は全体的に又は部分的にコンピュータシステムを形成することができる(たとえば、装置は、システム全体のサブシステムである)。システムは、プロセッサに結合されたグラフィカルユーザインターフェースをさらに備えることができる。
【図面の簡単な説明】
【0022】
【
図1】本方法の一例を統合した例示的なコンピュータ実装プロセスのフローチャートを示す。
【
図2】方法及び/又は処理及び/又は使用方法を示す。
【
図3】方法及び/又は処理及び/又は使用方法を示す。
【
図4】方法及び/又は処理及び/又は使用方法を示す。
【
図5】方法及び/又は処理及び/又は使用方法を示す。
【
図6】方法及び/又は処理及び/又は使用方法を示す。
【
図7】方法及び/又は処理及び/又は使用方法を示す。
【
図8】方法及び/又は処理及び/又は使用方法を示す。
【
図9】方法及び/又は処理及び/又は使用方法を示す。
【
図10】方法及び/又は処理及び/又は使用方法を示す。
【
図11】方法及び/又は処理及び/又は使用方法を示す。
【
図12】方法及び/又は処理及び/又は使用方法を示す。
【
図13】方法及び/又は処理及び/又は使用方法を示す。
【
図14】方法及び/又は処理及び/又は使用方法を示す。
【
図15A】方法及び/又は処理及び/又は使用方法を示す。
【
図15B】方法及び/又は処理及び/又は使用方法を示す。
【
図16】方法及び/又は処理及び/又は使用方法を示す。
【
図17】方法及び/又は処理及び/又は使用方法を示す。
【
図18】方法及び/又は処理及び/又は使用方法を示す。
【
図19】方法及び/又は処理及び/又は使用方法を示す。
【
図20】方法及び/又は処理及び/又は使用方法を示す。
【
図21】システムのグラフィカルユーザインターフェースの一例を示す。
【発明を実施するための形態】
【0023】
本発明は、各々が対応する機械部品を表す3Dモデル化オブジェクトを含むデータセットを用いた機械学習のコンピュータ実施方法を提供する。
【0024】
本発明は特に、機械学習の第1のコンピュータ実施方法を提供する。第1の方法は、3Dモデル化オブジェクトを含むデータセットを提供することを含む。3Dモデル化オブジェクトはそれぞれ、対応する機械部品を表す。データセットには、1 つ以上のサブデータセットがある。各サブデータセットは、少なくともデータセットの一部を形成する。第1の方法は対応するサブデータセットごとに、基本テンプレートを決定することをさらに含む。基本テンプレートは、サブデータセットの3Dモデル化オブジェクトの重心を表す3Dモデル化オブジェクトである。第1の方法は、基本テンプレートの変形を対応する3Dモデル化オブジェクトに推論するように構成されたニューラルネットワークを学習するステップをさらに含む。学習は、サブデータセットに基づく訓練を含む。以下、この第1の方法を「テンプレート学習方法」と呼ぶことがある。
【0025】
テンプレート学習方法は、各々が対応する機械部品を表す3Dモデル化オブジェクトを含むデータセットを用いて機械学習の改善された方法を形成する。
【0026】
特に、テンプレート学習方法は、対応するサブデータセットについて、サブデータセットの3Dモデル化オブジェクトの重心を表す3Dモデル化オブジェクトを決定することを可能にする。言い換えれば、テンプレート学習方法はサブデータセットの3Dモデル化オブジェクトを表す(例えば、その平均形状)3Dモデル化オブジェクト、すなわち基本テンプレートを決定する。テンプレート学習方法はさらに、対応する3Dモデル化オブジェクトへの重心の変形を推論するニューラルネットワークを学習することを可能にする。このようなニューラルネットワークの学習は、サブデータセットに基づく訓練を含む。言い換えれば、学習は、サブデータセットの3Dモデル化オブジェクトを使用して、そのようなモデル化オブジェクトの重心の変形の推論を学習する。したがって、学習は、サブデータセットの重心である基本テンプレートがサブデータセットの3Dモデル化オブジェクトに変換されるためにあまり変形される必要がない、及び/又は大まかに変形される必要がないので、変形の正確な詳細の推論の学習に焦点を当てることができる。したがって、テンプレート学習方法に従って学習済のニューラルネットワークは、基本テンプレートの正確な変形を、データセットの3Dモデル化オブジェクトに推論する。例では、ニューラルネットワークが変形の推論のために構成されたデコーダを備えるオートエンコーダである。そのような例ではオートエンコーダが入力として3Dモデル化オブジェクトを取り、3Dモデル化オブジェクトの再構成を出力することができ、再構成は3Dモデル化オブジェクトへの基本テンプレートの、デコーダによって推論された変形であるか、又はそれに基づく。デコーダは、基本テンプレートの正確な変形をサブデータセットの3Dモデル化オブジェクトに推論するので、オートエンコーダによるそのようなオブジェクトの再構成は正確である。
【0027】
例では、データセットは対応するサブデータセットによって区分されるか、又は実質的に区分され、その数kは例えば、2よりも大きい。これらの例では、テンプレート学習方法がk個の基本テンプレートを決定し、k個のニューラルネットワークを学習する。各基本テンプレートは、対応するサブデータセットの重心を表す。これらの例では、テンプレート学習方法によって学習済の対応するニューラルネットワークがk個の基本テンプレートのそれぞれ1つの変形を3Dモデル化オブジェクトに推論する。したがって、先に説明したように、各ニューラルネットワークは、k個の基本テンプレートのそれぞれ1つの正確な変形を、対応するサブデータセットの3Dモデル化オブジェクト(k個の基本テンプレートのそれぞれ1つが重心を表す)に推論する。言い換えれば、テンプレート学習方法は、対応するサブデータセットの重心の正確な変形をサブデータセットのオブジェクトに推論することに特化したk個のニューラルネットワークを学習する。例では、テンプレート学習方法がしたがって、対応するサブデータセットの3Dモデル化オブジェクトを再構成する際にそれぞれ特化されたk個のオートエンコーダを学習することができる。
【0028】
数kは1に等しくてもよく、この場合、データセットは1つのサブデータセットのみを含むことを理解されたい。サブデータセットは少なくとも一部を形成し、この例では、サブデータセットがデータセットに等しいか、又は実質的に等しいことを意味する。このような例では、テンプレート学習方法は、決定された基本テンプレートの変形を推論するように構成されたニューラルネットワークの学習の前述の精度に対して依然として有益である。実際に、決定された基本テンプレートはデータセットの3Dモデル化オブジェクトのすべて又は実質的にすべての重心を表し、したがって、その学習中に、決定された基本テンプレートの変形を推論するように構成されたニューラルネットワークは、変形の正確な詳細を学習することに焦点を当てることができる。
【0029】
この数kは、データセット自体が3Dモデル化オブジェクトのそれぞれのクラスに区分されるか、又は実質的に区分されるという事実に対応し得る。つまり、対応するサブデータセットは、それぞれ1つのクラスの3Dモデル化オブジェクトに対して、一意的又は実質的に一意的に作成される。「データセット自体がそれぞれのクラスの3Dモデル化オブジェクトからなるk個のそれぞれのサブデータセットによって区分される」とは、例ではテンプレート学習方法が基本テンプレートを決定する前、及び/又はニューラルネットワークを学習する前に、それぞれのクラスの3Dモデル化オブジェクトからなるk個のそれぞれのサブデータセットによってデータセットを区分するステップを含むことを意味する。分割はデータセットの各3Dモデル化オブジェクトに、それぞれのクラスを表すラベルを割り当てることを含むことができる。このような場合、テンプレート学習方法はk個のニューラルネットワークを提供し、各ニューラルネットワークは、それぞれのサブデータセットの重心の、サブデータセットに対応するクラスのオブジェクトへの正確な変形を推論することに特化している。例では、テンプレート学習方法がしたがって、それぞれのクラスの3Dモデル化オブジェクトを再構成する際にそれぞれ特化されたk個のオートエンコーダを学習することができる。
【0030】
これに加えて、又はこれに代えて、その数kは、ユーザによって提供されてもよい。そのような例ではデータセットが必ずしもそれ自体がそれぞれのクラスの3Dモデル化オブジェクトからそれぞれ作成されたk個のそれぞれのサブデータセットに分割又は実質的に分割されるわけではないが、その数kの提供はそのような分割を強制することができる。「強制する」とは、区分が例えば、ユーザアクションなしに、基本テンプレートの決定及び/又はニューラルネットワークの学習から生じ得る(及び/又はその間に生じ得る)ことを意味する。実際、k個の基本テンプレートを決定することは、共通の損失を最小化することを含むことができる。データセットの各3Dモデル化オブジェクトについて、共通損失は、複数の項の中から1つの項を選択する。各項は、3Dモデル化オブジェクトと候補基本テンプレートとの間の不均衡にペナルティを課す。選択された項は、不均衡が最小のペナルティを課される複数の項のうちの1つの項であってもよい。言い換えれば、決定はデータセットの3Dモデル化オブジェクトに対するそれらの類似性に従って、候補基本テンプレート(潜在的な基本テンプレートとしてテストされる3Dモデル化オブジェクトである)の選択を(例えば、反復的に)操作する。これは、対応するサブデータセットのすべての3Dモデル化オブジェクトに対する平均非類似性が最小である対応するk個の基本テンプレートの決定を強制する。言い換えれば、テンプレート学習方法は重心の決定を強制することによって、データセットをサブデータセットに分割することを実施し、それによって、データセットのオブジェクトを、重心のうちの1つに対するそれらの(例えば、最良の)類似性に従って各クラスタ化する。言い換えると、この数kを提供することは、データセットをそれぞれのクラスに自動的に分割し、各クラスは各サブデータセットの1つのオブジェクトに対応し、すなわち、サブデータセットの重心に対する非類似性が最小であるオブジェクトである。そのような分割はまた、学習済のニューラルネットワークの各学習済のニューラルネットワークを、それぞれのk個のサブデータセットのk個の重心の正確な変形をサブデータセットに対応するクラスのオブジェクトに推論することに特化させる。データセット自体が3Dモデル化オブジェクトの5個それぞれのクラスに区分されるか、又は実質的に区分される例では、数kの提供に続くデータセットの前述の区分が実際にはデータセットのそれ自体の区分に対応するか、又は実質的に対応し得る。言い換えると、数kの提供後のk個のデータセットの前述の分割はデータセットのそれ自体の分割と同じ結果(すなわち、データセットの同じ分割)をもたらす可能性がある。
【0031】
例では、1つのサブデータセット(例えば、全体のデータセットを形成するただ1つのサブデータセット)しかなく、従って、全体のデータセットの重心を表すただ1つのテンプレートだけが決定される。他の例では、いくつかのサブデータセットがあり、したがって、サブデータセットごとに1つの重心が決定される。そのような例の特定の例では、データセットが生で提供され(すなわち、データセットのどのサブデータセット要素に属するかに関する情報がなく)、学習は単一の損失を最小化すること(すなわち、及び他の損失がないこと)を含む。そのような特定の例では、損失が対応するサブデータセットを訂正するために要素の割り当てを操作するように構成される。このような例では、いくつかの基本テンプレートの学習により、データセットを事前にいくつかのサブデータセットに分離する必要性を避けることができる。このような例では、単一損失が(いくつかのオートエンコーダの学習と同様に)基本テンプレートの学習中にデータセットをステップ自動的にクラスタ化することを可能にすることができる。
【0032】
本発明はまた、機械学習の第2のコンピュータ実施方法を提供する。第2の方法は、3Dモデル化オブジェクトを含むデータセットを提供することを含む。3Dモデル化オブジェクトはそれぞれ、対応する機械部品を表す。第2の方法は、ニューラルネットワークのセットを提供することを含む。各ニューラルネットワークはそれぞれの重みを有し、各ニューラルネットワークは、3Dモデル化オブジェクトの推論のために構成される。第2の方法は、損失を最小化することによってニューラルネットワークのそれぞれの重みを修正することをさらに含む。データセットの各3Dモデル化オブジェクトについて、損失は、複数の項の中から1つの項を選択する。各項は、3Dモデル化オブジェクトと、セットの対応するニューラルネットワークによって推論される対応する3Dモデル化オブジェクトとの間の不均衡にペナルティを課す。選択された項は不均衡が最小ペナルティとなる複数の項のうちの1つの項であり、この第2の方法は、以下では「多様体学習方法」と呼ばれることがある。
【0033】
多様体学習方法は、各々が対応する機械部品を表す3Dモデル化オブジェクトを含むデータセットを用いて機械学習の改善された方法を形成する。
【0034】
特に、多様体学習方法は3Dモデル化オブジェクトの同じデータセット上でいくつかのニューラルネットワークを学習し、各ニューラルネットワークは、3Dモデル化オブジェクトを推論する。学習は損失の最小化を含み、損失は、データセットの3Dモデル化オブジェクトと、対応するニューラルネットワークによって推論される3Dモデル化オブジェクトとの間の不一致にペナルティを課す項の中からの選択を操作する。選択された項は、不均衡が最小のペナルティを課される項である。言い換えれば、多様体学習方法はデータセットの各3Dモデル化オブジェクトについて、どのニューラルネットワークが3Dモデル化オブジェクトを(例えば、最も正確に)推論するかの選択を(例えば、反復的に)操作することによって、ニューラルネットワークを学習する。その結果、各ニューラルネットワークはデータセットのサブデータセットの3Dモデル化オブジェクトを推論することに特化され(例えば、学習中に漸進的に)、各サブデータセットは、ニューラルネットワークが特化されるデータセットの3Dモデル化オブジェクトから作られる。したがって、多様体学習法によって学習済のニューラルネットワークは正確である。例では、ニューラルネットワークはそれぞれ、3Dモデル化オブジェクトの推論のために構成されたデコーダを備えるオートエンコーダである。このような例では、各オートエンコーダが入力として3Dモデル化された物体を取り、3Dモデル化された物体、再構築された物体、又はエンコーダによって推測された3Dモデル化された物体に基づくもの再構築を出力することができる。各デコーダはデータセットのサブデータセットの3Dモデル化オブジェクトを正確に推論するので、オートエンコーダによるこのようなオブジェクトの再構成はこのように正確である。
【0035】
例では、多様体学習方法がk個のニューラルネットワークを学習する。すなわち、ニューラルネットワークの集合は、k個のニューラルネットワークで構成されている。その数kは、ユーザが提供することができる。このような数kの提供は次に、データセットのk個のサブデータセットのそれぞれの1つの3Dモデル化オブジェクトの推論において、各ニューラルネットワークの上述の特殊化を強制する。このような数kの提供はまた、データセットを3Dモデル化オブジェクトのk個のクラスに分割すること(例えば、学習中に、例えば、ユーザアクションなしに)を強制し、各クラスは、推論が学習済のニューラルネットワークのそれぞれの1つの特殊性である3Dモデル化オブジェクトに対応する。例ではデータセットを3Dモデル化オブジェクトのk個のクラスに強制的に分割することはそれ自体がデータセットを3Dモデル化オブジェクトのk個クラスに実質的に分割することに対応し得る。ここで、各サブデータセットはそれぞれ1つのクラスの3Dモデル化オブジェクトに対して、それぞれ一意的又は実質的に一意的に作成される。「データセットの3Dモデル化オブジェクトのk個のクラスへのそれ自体の分割」とは、例において、多様体学習方法がニューラルネットワークの学習の前に、それぞれのクラスの3Dモデル化オブジェクトからそれぞれ作成されたk個のそれぞれのサブデータセットによってデータセットを分割するステップを含むことをさらに意味する。分割はデータセットの各3Dモデル化オブジェクトに、それぞれのクラスを表すラベルを割り当てることを含むことができる。
【0036】
例では、各ニューラルネットワークが対応する基本テンプレートの変形を対応する3Dモデル化オブジェクトに推論するように構成される。これらの例では、それぞれの基本テンプレートが3Dモデル化オブジェクトである。これらの例では、対応する基本テンプレートがデータセットのサブデータセットの3Dモデル化オブジェクトの重心を表す3Dモデル化オブジェクトであってもよい。このような例では、各ニューラルネットワークは特に正確である。第1に、それはサブデータセットの3Dモデル化オブジェクトを推論することに特化されているので、前述のように、それを正確にする。第2に、ニューラルネットワークによって推論される3Dモデル化オブジェクトはそれらが類似している3Dモデル化オブジェクト(重心)の変形であるか、又はそれに基づいているので、前述のように、ニューラルネットワークを正確にする。実施例では、それぞれの基本テンプレート又はそれらの少なくとも一部がテンプレート学習方法に従って決定される。このような場合、学習済のニューラルネットワークはテンプレート学習方法と多様体学習方法の両方の前述の精度から利益を得、これにより、それらを特に正確にする。あるいは、対応する基本テンプレート又はそれらの少なくとも一部が任意の他の方法によって決定されてもよい。
【0037】
なお、テンプレート学習方法と多様体学習方法とは独立して行われてもよい。テンプレート学習方法による1つ又は複数のニューラルネットワークの学習(すなわち、1つ又は複数のサブデータセットのそれぞれ1つに対するニューラルネットワークの学習)は、多様体学習方法による損失の最小化を含むことができる。あるいは、テンプレート学習方法による1つ以上のニューラルネットワークの学習が任意の他の機械学習方法によって実行されてもよい。多様体学習によって学習済のニューラルネットワークは、基本テンプレートの変形の推論のために構成されてもよい。基本テンプレートは前述のように、テンプレート学習方法によって、又は任意の他の方法によって決定される。
【0038】
テンプレート学習方法と多様体学習方法は、同じプロセスに統合されてもよい。
図1は、ここで説明されるプロセスを示すフローチャートを示す。
【0039】
このプロセスは、3Dモデル化オブジェクトを含む共通データセットを提供するステップS10を含む。各3Dモデル化オブジェクトは、対応する機械部品を表す。例ではテンプレート学習方法によるデータセットの提供、及び多様体学習方法によるデータセットの提供は、提供され共通データセットを再利用することに帰着する。言い換えれば、テンプレート学習方法によって提供されるデータセット及び多様体学習方法によって提供されるデータセットは、両方とも、プロセスによって提供される共通のデータセットと同一である。あるいはテンプレート学習方法によるデータセットの提供が共通データセットの第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個のニューラルネットワークからなるニューラルネットワークのセットのそれぞれの重みを修正するステップS40を含む。
【0040】
このプロセスにおいて、同じデータセット(すなわち、共通のデータセット)を使用して、テンプレート学習方法によるk個の基本テンプレートを決定するステップS30と、多様体学習方法によるk個のニューラルネットワークの学習とを実行することにより、これら2つの方法の組み合わせから特に有益となる。実際、テンプレート学習法によるk個の基本テンプレートを決定するステップS30は共通データセットをk個のサブデータセットに分割し、これにより、言い換えれば、共通データセットを3Dモデル化オブジェクトのk個のクラスに分割する。多様体学習方法に従って学習済のk個のニューラルネットワークのそれぞれ1つは、k個の基本テンプレートのそれぞれ1つの変形を共通データセットの3Dモデル化オブジェクトに推論するように構成されるように学習されてもよい。そのような場合、k個の基本テンプレートを決定するステップS30によって提供される、共通データセットのk個のサブデータセットへの分割はサブデータセットのそれぞれの重心のサブデータセットの3Dモデル化オブジェクトへの正確な変形の推論への、k個のニューラルネットワークのそれぞれのそれぞれの1つの前述の特殊化を容易にし、改善する。さらに、k個のニューラルネットワークのそれぞれ1つはサブデータセットの重心の、サブデータセットの3Dモデル化オブジェクトへの変形に関する詳細を学習(S40)することに焦点を当てることができ、これは前述のように、その精度を改善する。したがって、例ではプロセスは、それぞれが、対応するサブデータセットの特に正確に3Dモデル化されたオブジェクトを再構成することに特に特化されたk個のオートエンコーダを学習することができる。
【0041】
さらに、又は代替として、提供される数kは前述のように、共通データセット自体が、3Dモデル化オブジェクトのk個のクラスに区分されるか、又は実質的に区分されるという事実に対応し得る。このような場合、プロセスは、したがって、それぞれが1つのクラスのオブジェクトから作られたk個のそれぞれのサブデータセットの対応する重心の変形をクラスの3Dモデル化オブジェクトに推論するように特化されたk個のニューラルネットワークを提供することができる。特に、このプロセスは、したがって、それぞれが特に特殊化されたk個のオートエンコーダを学習して、それぞれのクラスの特に正確に3Dモデル化されたオブジェクトを再構成することができる。
【0042】
さらに、テンプレート学習方法、多様体学習方法、又はプロセスに従って学習可能及び/又は取得可能なニューラルネットワーク及び/又は(例えばk個の)ニューラルネットワークのセットが提案される。本発明はまた、ニューラルネットワーク及び/又は(例えばk個の)ニューラルネットワークのセットのコンピュータ実施方法された使用方法を提供する。ここで、使用方法の例を説明する。
【0043】
次に、ニューラルネットワークの使用方法の例について説明する。
【0044】
これらの例では、ニューラルネットワークは、基本テンプレートの変形を対応する3Dモデル化オブジェクトに推論するように構成されたデコーダを含むオートエンコーダである。これらの例では、使用方法が第1の3Dモデル化オブジェクト及び第2の3Dモデル化オブジェクトを提供することをさらに含む。これらの例では、使用方法が第1の3Dモデル化オブジェクト及び第2の3Dモデル化オブジェクトにオートエンコーダを適用することをさらに含む。これらの例では、使用方法がオートエンコーダの適用の結果に基づいて、第1の3Dモデル化オブジェクトと第2の3Dモデル化オブジェクトとの間の形状マッチングを決定することをさらに含む。
【0045】
基本テンプレートは、3Dモデル化オブジェクトのクラスの3Dモデル化オブジェクトの重心を表すことができる。例では、クラス及び基本テンプレートの各3Dモデル化オブジェクトが3Dメッシュ(又は点群)である。これらの例では、デコーダが基本テンプレートの各頂点(又は点)と、基本テンプレートが変形されるクラスの3Dモデル化オブジェクトの頂点(又は点)との間の対応関係のセットを推論するように構成され得る。3Dモデル化オブジェクト及び第2の3Dモデル化オブジェクトは、クラスの両方のモデル化オブジェクトであってもよい。したがって、例では、オートエンコーダの適用が基本テンプレートの各頂点(又は点)と第1の3Dモデル化オブジェクトの各頂点(又は点)との間の第1の対応セットを出力する。これらの例では、オートエンコーダの適用が基本テンプレートの各頂点(又は点)と第2の3Dモデル化オブジェクトの各頂点(又は点)との間の第2の対応セットをさらに出力する。第1の対応セット及び第2の対応セットに基づいて、第1の3Dモデル化オブジェクトの各頂点(又は点)と第2の3Dモデル化オブジェクトの各頂点(又は点)との間の第3の対応セットを推論することができる。例では、形状マッチングを決定することは対応関係の第3のセットの推論に対応する。
【0046】
基本テンプレートを学習することにより、オートエンコーダのトポロジーの一貫性が向上する。特に、学習済の基本テンプレートから始めて、オートエンコーダによって再構成されたすべてのメッシュ又は点群の間の頂点対頂点の対応関係を保証し、前述のように、使用方法によって提供される形状マッチングを可能にする。次に、形状整合の2つのアプリケーションについて説明する。
【0047】
第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モデル化オブジェクトについてのシミュレーションを再実行することを可能にする。
【0048】
第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のアプリケーションは、第1のモデル化されたオブジェクト上にUVマッピングを用いてテクスチャ又は材料を適用することをさらに含む。第2のアプリケーションは、決定された各形状マッチングを使用することによって、1つ又は複数の第2のモデル化されたオブジェクト上のUVマッピングを再ターゲット化することをさらに含む。これは、任意の他の第2の3Dモデル化オブジェクト上のUVマッピングを再標的化し、したがってテクスチャ又は材料を再標的化することを可能にする。
【0049】
正確には、オートエンコーダは常に同じ出力接続性を有する同じメッシュトポロジを有することができるので、オートエンコーダによって提供される再構成によって再ターゲッティングはより容易になる。
【0050】
上述した使用方法の例によって決定された形状マッチングの適用例が
図2に示されており、ここでは、オートエンコーダが接続性を保持し、椅子の頂点に対応させることを可能にすることが示されている。
【0051】
次に、(例えばk個の)ニューラルネットワークのセットの使用方法の例を説明する。
【0052】
これらの例では、各ニューラルネットワークは、3Dモデル化オブジェクトの推論のために構成された対応するデコーダを備えるそれぞれのオートエンコーダである。これらの例では、使用方法が2つ以上の3Dモデル化オブジェクトを提供することを含む。これらの例では、使用方法がニューラルネットワークのセットの対応するオートエンコーダの潜在空間上にそれぞれ2つ以上の3Dモデル化オブジェクトを投影することをさらに含む。これらの例では、使用方法が投影された2つ以上の3Dモデル化オブジェクト間の潜在空間上の1つ以上の補間を計算することをさらに含む。これらの例では、使用方法が各計算された補間にデコーダを適用することをさらに含む。
【0053】
潜在空間上で計算された1つ以上の補間の任意の計算された補間は2つの潜在ベクトル間の補間である潜在ベクトル(「補間潜在ベクトル」とも呼ばれる)であり、2つの潜在ベクトルは、潜在空間上の、2つ以上の3Dモデル化オブジェクトのそれぞれの投影である。したがって、使用方法は、1つ又は複数のそのような補間された潜在ベクトルを計算する。2つの潜在ベクトル間の補間は、ベクトル空間上の任意の線形補間など、任意の補間であってもよい。
【0054】
例では、使用方法に含まれる各3Dモデル化オブジェクトがクラスの3Dモデル化オブジェクトである。そのような場合、対応するオートエンコーダのデコーダはクラスの3Dモデル化オブジェクトの推論のために構成され得る(例えば、それに特化され得る)。デコーダを計算された補間に適用することにより、クラスの3Dモデル化オブジェクトが出力される。計算された内挿はクラスの2つの3Dモデル化オブジェクトの2つの射影間で計算された内挿潜在ベクトルであるため、復号された内挿潜在ベクトルはクラスの前記2つの3Dモデル化オブジェクト間の中間幾何学的形状などの内挿を表すクラスの3Dモデル化オブジェクトである。したがって、使用方法は、1つ又は複数のそのような補間を計算することができる。
【0055】
次に、
図3及び
図4を参照して、使用方法の例を説明する。
【0056】
図3は、第1の3Dモデル化オブジェクト30及び第2の3Dモデル化オブジェクト32を示す。両方の物体は、4本の脚を有する椅子のクラスに属する椅子である。
図3は4つの脚を有する6つの椅子のセット34を示し、各1つはクラスに属し、各1つは、使用方法に従って計算された2つの椅子30と32との間の補間である。
【0057】
図4は、第1の3Dモデル化オブジェクト40及び第2の3Dモデル化オブジェクト42を示す。両方のオブジェクトは、椅子のクラスに属する椅子である。
図4は6つの椅子のセット44を示し、各椅子はクラスに属し、各椅子は、使用方法に従って計算された2つの椅子40と42との間の補間である。
【0058】
このように、テンプレート学習法、多様体学習法、又はプロセスの前述した精度から利益を得るために、この使用方法は、各オートエンコーダの元の入力空間において現実的な非線形補間を実行することを可能にする。
【0059】
次に、(例えばk個の)ニューラルネットワークの組の使用方法の他の例について説明する。
【0060】
使用方法のこれらの例では、各ニューラルネットワークが3Dモデル化オブジェクトの推論のために構成された対応するデコーダを備える対応するオートエンコーダである。これらの例では、使用方法が3Dモデル化オブジェクトの一部を提供することを含む。これらの例では、使用方法が3Dモデル化オブジェクトの部分に対応するオートエンコーダを適用することを含む。これらの例では、使用方法が3Dモデル化オブジェクトの部分に、対応するオートエンコーダを3Dモデル化オブジェクトの部分に適用した結果をフィッティングすることをさらに含む。
【0061】
デコーダは、3Dモデル化オブジェクトのクラスの3Dモデル化オブジェクトを推論するように構成され得る。3Dモデル化オブジェクトは、クラスに属することができる。したがって、3Dモデル化オブジェクトの一部にオートエンコーダを適用することにより、クラスの別の3Dモデル化オブジェクトを出力することができる。したがって、3Dモデル化オブジェクトの一部に、対応するオートエンコーダを3Dモデル化オブジェクトの一部に適用する結果はクラスの別の3Dモデル化オブジェクトを変形させて、クラスの別の3Dモデル化オブジェクトの一部が3Dモデル化オブジェクトの一部と(例えば、幾何学的に)一致するようにし、それによって、3Dモデル化オブジェクトの自動完了をもたらし得る。
【0062】
このような使用方法の例を
図5を参照して説明する。
図5は、脚が欠けている椅子で3Dモデル化オブジェクトの部分50の一例を示す。
図5はさらに、3Dモデル化対象物の部分50に対応するオートエンコーダを適用した結果52を示しており、この結果は、3Dモデル化対象物の部分50に一旦フィッティングされる。フィッティングされた結果52は、脚が欠けていない椅子50である。
【0063】
したがって、使用方法は、3Dスキャンパイプラインにおけるスキャン自動完了のための形状推論プロセスに適用することができる。次に、このようなパイプラインについて説明する。
【0064】
3Dスキャンパイプラインは1つ以上の実オブジェクト、例えば、実世界の3Dシーンのオブジェクトをスキャンすることを含むことができる。スキャンは各々が対応する物理的信号を取得するように構成された1つ又は複数の物理的センサーを提供することと、1つ又は複数の実物体上の1つ又は複数の物理的センサーを動作させることによって1つ又は複数の対応する物理的信号を取得すること(すなわち、例えば、1つ又は複数の実物体を各センサーで1つずつ又は同時にスキャンすること)とを含むことができる。3Dスキャンパイプラインは、各スキャンされた現実世界オブジェクトについて、1つ又は複数の物理センサの測定値に基づいて、スキャンされた現実世界オブジェクトを表す3D点群及び/又は3Dメッシュを自動的に決定する3D再構成方法を適用することを含むことができる。3D再構成は、任意の既知の技術に従って実行されてもよい。1つ又は複数のセンサーは複数の(例えば、RGB、及び/又は画像又はビデオ)カメラを備えることができ、判定は、動きからの構造解析を備えることができる。1つ以上のセンサーは代替的に又は追加的に、(例えば、RGB深度カメラ上の)1つ以上の深度センサーを含むことができ、判定は、深度データからの3D再構成を含むことができる。1つ又は複数の深度センサは例えば、レーザ(例えば、ライダー)又は超音波送受信機を含んでもよい。
【0065】
1つ以上のスキャンされた実世界オブジェクトは、少なくとも1つのオクルージョンの各々を特徴とすることができる。そのようなオブジェクトは部分的な点群(すなわち、完全な実オブジェクトを表すと想定される完全な点群の一部、遮蔽なし)によって表すことができる。次いで、3Dスキャンパイプラインは、オクルージョンを特徴とする1つ又は複数のスキャンされた実世界オブジェクトを表す1つ又は複数の部分点群のそれぞれに使用方法を適用して、各部分点群をオートコンプリートすることを含むことができる。具体的には各部分点群について、使用方法に従って提供される3Dモデル化オブジェクトの部分は部分点群である。使用方法によれば、対応するオートエンコーダが部分点群に適用され、対応するオートエンコーダを適用した結果が部分点群にフィッティングされ、それによって部分点群をオートコンプリートさせる。例では、オートコンプリートを実行するために、単に部分点群を自動符号化するように与えることはできないことを理解されたい。これらの例ではむしろ、不完全なクラウドから3D形状の潜在ベクトルを予測するか、又は部分点群に最も良く適合する3D形状を潜在空間において最適化する別のエンコーダを学習することができる。
【0066】
前記部分点群のそれぞれ1つについて、点群が3Dモデル化オブジェクトのクラスに属するオブジェクトを表すとき、使用方法は、したがって、そのデコーダがクラスの3Dモデル化オブジェクトの推論のために構成される対応するエンコーダを適用することを可能にすることができる。その結果、そのようなオブジェクトの自動完了は、クラスの3Dモデル化オブジェクトの推論へのデコーダの前述の特殊化から利益を得るので、正確である。使用方法に従っていくつかのオートエンコーダを使用すると、各オートエンコーダはそれぞれのクラスの3Dモデル化オブジェクトの推論に特化されたそれぞれのデコーダを有し、したがって、自動完了の精度を大幅に改善する。
【0067】
次に、(例えばk個の)ニューラルネットワークの組の使用方法の他の例について説明する。
【0068】
使用方法のこれらの例では、各ニューラルネットワークが3Dモデル化オブジェクトの推論のために構成された対応するデコーダを備える対応するオートエンコーダである。これらの例では、使用方法が3Dモデル化オブジェクトを提供することをさらに含む。これらの例では、使用方法が1つ又は複数の対応するオートエンコーダを3Dモデル化オブジェクトに適用することをさらに含む。これらの例では、使用方法が適用に基づいて対応するオートエンコーダを選択することをさらに含む。
【0069】
オートエンコーダを選択するには、提供された3Dモデル化オブジェクトを最良に再構成するオートエンコーダを選択する必要がある。したがって、この使用方法は、クラスタリングプロセスで使用することができる。具体的には、対応するデコーダが3Dモデル化オブジェクトのデータセットの対応するクラスの3Dモデル化オブジェクトの推論に特化することができ、データセットは例えば、対応するクラスによって区分される。クラスタリングプロセスは、3Dモデル化オブジェクトの別のデータセットを提供することを含むことができる。クラスタリングプロセスはまた、別のデータセットの各3Dモデル化オブジェクトに使用方法を適用することを含んでもよい。その結果、別のデータセットの各3Dモデル化オブジェクトについて、クラスタリングプロセスは、どのオートエンコーダが最良の3Dモデル化オブジェクトを再構成するかを決定する。次いで、クラスタリングプロセスは、3Dモデル化オブジェクトを、オートエンコーダのデコーダが特殊化されているクラスに割り当てることができる。言い換えれば、使用方法を繰り返すことによって、自動クラスタリングアルゴリズムを得ることができる。
【0070】
テンプレート学習方法、多様体学習方法、及びプロセスは、コンピュータで実施される。次に、コンピュータ実施方法(又は処理)の概念について説明する。
【0071】
「方法(又は処理)は、コンピュータによって実施される」とは方法(又は処理)のステップ(又は実質的にすべてのステップ)が少なくとも1つのコンピュータ、又は任意の同様のシステムによって実行されることを意味する。したがって、本方法のステップ(又は処理)はコンピュータによって、場合によっては完全に自動的に、又は半自動的に実行される。例では、方法(又は処理)のステップのうちの少なくともいくつかのトリガがユーザ/コンピュータ対話を介して実行され得る。必要とされるユーザ/コンピュータ対話のレベルは予測される自動化のレベルに依存し、ユーザの希望を実施する必要性とバランスをとることができる。例では、このレベルがユーザ定義及び/又は事前定義され得る。
【0072】
方法(又はプロセス)のコンピュータ実装の典型的な例は、この目的のためにフィッティングされたシステムを用いて方法(又はプロセス)を実行することである。システムはメモリに結合されたプロセッサ及び、グラフィカルユーザインターフェース(GUI)及びを備えることができ、メモリには、本方法の/作業を実行するための命令を含むコンピュータプログラムが記録される。メモリはまた、データベースを記憶してもよい。メモリはそのような記憶装置にフィッティングされた任意のハードウェアであり、場合によっては、いくつかの物理的に別個の部分(例えば、プログラムのための部分、及び場合によってはデータ断片ベースのための部分)を備える。
【0073】
プロセスの例では、テンプレート学習方法によるk個の基本テンプレートを決定するステップS30及び多様体学習方法によるk個のニューラルネットワークの学習ステップS40が同じコンピュータによって、又は同じコンピュータセットによって実行されてもよい。これらの例では例えば、数kを提供するステップS20など、ユーザ対話を通じて実行されるプロセスのステップは同じユーザによってトリガされてもよい。あるいは、プロセスが異なるコンピュータ及び/又はユーザによって実行されてもよい。例えば、テンプレート学習方法によるk個の基本テンプレートを決定するステップS30はおそらく第1のユーザとのヒューマンマシン対話を含む1つ以上のコンピュータの第1のセットによって実行されてもよく、多様体学習方法によるk個のニューラルネットワークの学習ステップS40はおそらく第2のユーザとのヒューマンマシン対話を含む1つ以上のコンピュータの第2のセットによって実行されてもよい。一つ又は複数のコンピュータの第1及び第2のセットは、ネットワークによって接続されてもよい。
【0074】
テンプレート学習方法、多様体学習方法、及びプロセスに関与する、3Dモデル化オブジェクトを含むデータセットを提供する概念を説明する。この概念の議論の前に、そこに含まれるデータ構造がここで議論される。理解されるように、本明細書で提供されるデータ構造定義及び例はテンプレート学習方法、多様体学習方法、及び/又は処理によって提供されるデータセットの少なくとも一部(例えば、すべて)に適用され得る。
【0075】
3D形状の離散幾何学的表現は、本明細書ではデータの離散セットを含むデータ構造である。データの各断片は、3D空間に配置されたそれぞれの幾何学的実体を表す。各幾何学的実体は3D形状の対応する位置を表す(換言すれば、3D形状によって表されるソリッドを構成する材料の対応する部分)。幾何学的エンティティの集合(すなわち、結合又は並置)は、3D形状を完全に表す。本明細書の任意の離散的な幾何学的表現は、例では100、1000、又は10000を超える多数のそのようなデータを含むことができる。
【0076】
本明細書における任意の離散的な幾何学的表現は例えば、3D点群であってもよく、各幾何学的実体は点である。本明細書における任意の離散的な幾何学的表現は代替的に、3Dメッシュであってもよく、各幾何学的エンティティは、メッシュタイル又は面である。本明細書の任意の3Dメッシュは規則的であっても不規則であってもよい(すなわち、同じタイプの面からなるか、又はなっていなくてもよい)。本明細書における任意の3Dメッシュは多角形メッシュ、例えば、三角形メッシュであってもよい。本明細書における任意の3Dメッシュは代替的に、B-Repであってもよい。本明細書における任意の3Dメッシュは例えば、3D点群を三角測量することによって(例えば、ドロネー三角測量を用いて)、3D点群から得ることができる。
【0077】
本明細書における任意の3D点群は、例えば3D再構成プロセス内で、実物体上の物理的測定値から決定されてもよい。3D再構成プロセスは現実物体を提供することと、対応する物理的信号を取得するようにそれぞれ構成された1つ又は複数の物理的センサーを提供することと、現実物体上の1つ又は複数の物理的センサーを動作させる(すなわち、各センサーで現実物体をスキャンする)ことによって1つ又は複数の対応する物理的信号を取得することとを含むことができる。次いで、3D再構成は、任意の既知の技法に従って、測定値に基づいて3D点群及び/又は3Dメッシュを自動的に決定することができる。1つ又は複数のセンサーは複数の(例えば、RGB、及び/又は画像又はビデオ)カメラを備えることができ、判定は、動きからの構造解析を備えることができる。1つ以上のセンサーは代替的に又は追加的に、(例えば、RGB深度カメラ上の)1つ以上の深度センサーを含むことができ、判定は、深度データからの3D再構成を含むことができる。1つ又は複数の深度センサは例えば、レーザ(例えば、ライダ)又は超音波送受信機を含んでもよい。
【0078】
本明細書における任意の3D点群又は3Dメッシュは代替的に、例えば、3Dモデル化オブジェクト上にレイキャスティングすることによって、又は3Dモデル化オブジェクトをモデリングすることによって、ソリッド(例えば、B-Repモデル)のスキン(すなわち、外面)を表す3Dモデル化オブジェクトから取得されてもよい。テッセレーションは、任意の3Dモデル化オブジェクトレンダリングプロセスに従って実行することができる。このようなレンダリングプロセスは3Dモデル化されたオブジェクトのグラフィカルな表現を表示するために、任意のCADシステム上にコーディングすることができる。3Dモデル化オブジェクトはCADシステムを用いてユーザによって設計されてもよいし、設計されていてもよい。
【0079】
モデル化されたオブジェクトは、例えばデータベースに格納されたデータによって定義される任意のオブジェクトである。拡大解釈すれば、表現「モデル化オブジェクト」は、データ自体を指定する。テンプレート学習方法、多様体学習方法、及び/又はプロセスを実行するシステムのタイプに応じて、モデル化されたオブジェクトは、異なる種類のデータによって定義されてもよい。システムは、実際にはCADシステム、CAEシステム、CAMシステム、PDMシステム、及び/又はPLMシステムの任意の組み合わせであってもよい。これらの異なるシステムでは、モデル化されたオブジェクトが対応するデータによって定義される。したがって、CADオブジェクト、PLMオブジェクト、PDMオブジェクト、CAEオブジェクト、CAMオブジェクト、CADデータ、PLMデータ、PDMデータ、CAMデータ、CAEデータについて言うことができる。しかしながら、モデル化オブジェクトはこれらのシステムの任意の組み合わせに対応するデータによって定義され得るので、これらのシステムは他のシステムのうちの1つを排他的にするものではない。したがって、システムは以下に提供されるそのようなシステムの定義から明らかになるように、CADシステム及びPLMシステムの両方であってもよい。
【0080】
CADシステムとは、さらに、CATIAのような、モデル化オブジェクトのグラフィック表現に基づいてモデル化オブジェクトを少なくとも設計するようにフィッティングされた任意のシステムを意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトの表現を可能にするデータを含む。CADシステムは例えば、ある場合には、顔又は表面を有するエッジ又は線を使用してCADモデル化オブジェクトの表現を提供することができる。線、エッジ、又は表面は様々な方法、例えば、不均一有理Bスプライン(NURBS)で表すことができる。具体的には、CADファイルは仕様を含み、そこから幾何学的形状を生成することができ、これにより表現を生成することができる。モデル化されたオブジェクトの仕様は、単一のCADファイル又は複数のCADファイルに格納することができる。CADシステム内のモデル化されたオブジェクトを表すファイルの典型的なサイズは、部品当たり1メガバイトの範囲内である。そして、モデル化されたオブジェクトは、典型的には何千もの部品のアセンブリであり得る。
【0081】
CADの文脈では、モデル化されたオブジェクトが典型的には例えば、部品又は部品のアセンブリ、又は場合によっては製品のアセンブリなどの製品を表す3Dモデル化されたオブジェクトとすることができる。「3Dモデリングされたオブジェクト」とは、その3D表現を可能にするデータによってモデリングされる任意のオブジェクトを意味する。3D表現は、全ての角度から部品を見ることを可能にする。例えば、3Dモデル化オブジェクトは3D表現される場合、その軸のいずれかの周り、又は表現が表示される画面内のいずれかの軸の周りで取り扱われ、回転され得る。これは特に、3Dモデル化されていない2Dアイコンを除外する。3D表現の表示は設計を容易にする(すなわち、設計者が統計的に彼らのタスクを達成する速度を増加させる)。これは、製品の設計が製造工程の一部であるため、産業界における製造工程を高速化する。
【0082】
本開示の文脈では3Dモデル化オブジェクトが例えばCADソフトウェアソリューション又はCADシステムを用いた仮想設計の完了後に現実世界で製造される製品のジオメトリを表すことができ、例えば、(機械的である)部品又は部品のアセンブリ(又は部品のアセンブリと同等に、部品のアセンブリはテンプレート学習方法、多様体学習方法、及び/又は処理の観点からそれ自体の一部として見ることができるため、部品のアセンブリ)、又はより一般的には任意の剛体アセンブリ(例えば、可動機構)などのCADソフトウェアソリューション又はCADシステムを用いることができる。CADソフトウェアソリューションは、航空宇宙、建築、建築、消費財、ハイテク装置、産業機器、輸送、海洋、及び/又は沖合の石油/ガスの製造又は輸送を含む、種々無制限の産業分野における製品の設計を可能にする。したがって、テンプレート学習方法、多様体学習方法、及び/又は処理に関与する任意の3Dモデル化オブジェクトは、陸上車両(例えば、自動車及び軽トラック機器、レーシングカー、オートバイ、トラック及びモーター機器、トラック及びバス、列車を含む)の一部(又は全体)、航空車両(例えば、機体機器、航空宇宙機器、推進機器、防衛機器、航空機機器、宇宙機器を含む)の一部(又は全体)、海軍車両(例えば、海軍機器、商用船、オフショア機器、ヨット及びワークボート、船舶機器を含む)の一部(又は全体)、機械部品(例えば、産業用製造機械、重機、移動機器、設置機器、産業用機器、加工金属製品、タイヤ製造製品を含む)、電気機械又は電子部品(例えば、家庭用電化製品、セキュリティ及び/又は制御装置及び/又は計装製品、コンピュータ及び通信機器、半導体、医療デバイス及び機器を含む)、消費者であり得る産業製品を表す。商品(家具、家庭用品、庭用品、レジャー用品、ファッション用品、ハードグッズ小売業用品、ソフトグッズ小売業用品等)、包装(食品・飲料・たばこ、美容・パーソナルケア、家庭用品包装等)を表す。
【0083】
例では、本開示の任意の3Dモデル化オブジェクトが成形部品(すなわち、成形製造工程によって製造された部品)、機械加工部品(すなわち、機械加工製造工程によって製造された部品)、穿孔部品(すなわち、穿孔製造工程によって製造された部品)、旋削部品(すなわち、旋削製造工程によって製造された部品)、鍛造部品(すなわち、鍛造製造工程によって製造された部品)、打ち抜き部品(すなわち、打ち抜き製造工程によって製造された部品)、及び/又は折り曲げ部品(すなわち、折り曲げ製造工程によって製造された部品)のうちの1つ又は妥当な組合せである機械部品を表すことができる。
【0084】
本開示の文脈では、3Dモデル化オブジェクトがもっともらしい(例えば、現実的である)3Dモデル化オブジェクトとすることができる。妥当な3Dモデル化オブジェクトは妥当な(例えば、現実的である)機械部品を表す3Dモデル化オブジェクトを指定することができる。妥当な機械部品は、現実世界の工業製造プロセスで現実的に製造可能な機械部品を指すことができる。妥当な機械部品とは、現実世界の工業製造プロセスにおいて機械部品を現実的に製造するために順守しなければならないすべての制約を留意する機械部品を指してもよい。制約は機械的制約(例えば、古典的機械学の法則から生じる制約)、機能的制約(例えば、一度製造された機械部品によって実行されるべき1つ以上の機械的機能に関する制約)、製造制約(例えば、機械部品を製造するための1つ以上の製造工程中に機械部品に1つ以上の製造ツールを適用する能力に関する制約)、構造的制約(例えば、機械部品の強度及び/又は耐性に関する制約)、及び/又はアセンブリ制約(例えば、機械部品を1つ以上の他の機械部品とどのように組み立てることができるかを定義する制約)のうちの1つ又は任意の妥当な組み合わせを含むことができる。
【0085】
本開示の文脈において、「3Dモデル化オブジェクトを含むデータセット」とは、少なくとも3Dモデル化オブジェクトを含むデータセットを意味する。例では、データセットが3Dモデル化オブジェクトから作成されてもよい。あるいは、データセットが3Dモデル化オブジェクトを厳密に含むことができ、3Dモデル化オブジェクトに関する仕様などの追加データを含むことができる。データセットの3Dモデル化オブジェクトは、3Dモデル化オブジェクトの離散幾何学的表現であってもよい。言い換えると、データセットは、3Dモデル化オブジェクトの離散的な幾何学的表現(メッシュ及び/又は点群など)を含むことができる。そのような場合、3Dモデル化オブジェクト空間の離散幾何学的表現は単純化のために、それらの対応する離散表現ではなく、依然として3Dモデル化オブジェクト自体と呼ばれることがある。データセットは、1つ以上のサブデータセットを含んでもよい。各サブデータセットはデータセットの少なくとも部品(例えば、全て)を形成してもよい。
【0086】
本開示の文脈では、3Dモデル化オブジェクトを含むデータセットが3Dモデル化オブジェクトの1つ又は複数のサブデータセットに区分されるか、又は実質的に区分され得る。「分割」とはデータセットの各3Dモデル化オブジェクトが分割を形成する1つの唯一のサブデータセットに属することを意味し、「実質的に分割」とはサブデータセットがデータセットの少なくとも一部の分割を形成することを意味する。そのような場合、データセットは少なくとも一部分及び別の部分からなり、別の部分に属する3Dモデル化オブジェクトの数は、サブデータセットのいずれか1つに属する3Dモデル化オブジェクトの数と比較して無視できる。例では、各サブデータセットが3Dモデル化オブジェクトの1つのクラスの3Dモデル化オブジェクトから作られる。このような例ではデータセットが「3Dモデル化オブジェクトのクラスによって区分される」と指定されてもよい。具体的には、kをクラスの数とすると、kは1より大きく、例えば2より大きい。「データセットは3Dモデル化オブジェクトのk個のクラスに区分される、又は実質的に区分される」と言われる場合、データセットはk個のサブデータセットに区分され、k個のサブデータセットのそれぞれの1つのすべての3Dモデル化オブジェクトはk個のクラスのそれぞれの1つに属することを意味する。クラスの概念については、以下でさらに説明する。
【0087】
本開示の文脈では、3Dモデル化オブジェクトが3Dモデル化オブジェクト空間に属することができる。3Dモデル化オブジェクト空間は一般に、3Dモデル化オブジェクトからなる空間を指定する。3Dモデル化オブジェクト空間はベクトル空間に含まれてもよい(例えば、その部分空間であってもよい)。3Dモデル化オブジェクト空間は、ベクトル空間の多様体であってもよい。多様体は、接続された多様体であってもよい。あるいは、多様体が1つ以上(例えば、2つ以上)の接続された成分を含む、接続されていない多様体であってもよい。本開示に含まれる3Dモデル化オブジェクトの任意のデータセットは、3Dモデル化オブジェクト空間に含まれてもよく、又は厳密に含まれてもよい。例では、データセットが多様体に含まれるか、又は厳密に含まれる。これらの例では、多様体が接続された多様体であっても、切断された多様体であってもよい。これらの例ではデータセットが1つ又は複数のサブデータセットを備えることができ、各サブデータセットはデータセットの少なくとも一部を形成し、各サブデータセットは切断された多様体の接続された構成要素にあるか、又は厳密に含まれる。
【0088】
本開示の文脈では、3Dモデル化オブジェクトのクラスがベクトル空間の接続された多様体に対応することができる。代替的に又は追加的に、3Dモデル化オブジェクトのクラスは、ベクトル空間の分離された多様体の連結成分に対応することができる。加えて、又は代替として、3Dモデル化オブジェクトのクラスは以下の特性を有する3Dモデル化オブジェクトのセットを指定することができる:セットの任意の第1の3Dモデル化オブジェクトがセットの少なくとも第2の3Dモデル化オブジェクトに類似する、例えば、類似する形状を有する。3Dモデル化オブジェクトのクラスは単純化のために、依然としてクラスと呼ばれる1つ又は複数のサブクラスに分割(例えば、分割)され得ることを理解されたい。
【0089】
例では、3Dモデル化オブジェクトのクラスがそれぞれの機械部品を表す3Dモデル化オブジェクトから作られ、機械部品は以下の条件のいずれか1つ又は任意の組合せをすべて尊重するクラスに関連する(すなわち、対応する)。
・クラスに対する機械部品はすべて、同一の製造工程又は同一の製造工程の組み合わせで製造される。
・クラスに対する機械部品はすべて妥当な機械部品である。
・クラスに対する機械部品はすべて、技術及び/又は産業の同じ分野からのものである。
・クラスに対する機械部品はすべて同じ機械的機能を果たす。
・クラスに対する機械部品はそれぞれ、クラスの少なくとも1つの他の3Dモデル化オブジェクトと同様の形状を有する3Dモデル化オブジェクトによって表され(したがって、クラスに対する別の機械部品を表す)、及び/又は
・クラスに対する機械部品はすべて、同じ機械的制約、機能的制約、製造制約、構造的制約、及び/又はアセンブリ制約に従う(例えば、これらを満たす、例えば、検証する)。
【0090】
図6は、テンプレート学習方法、多様体学習方法、及び/又は処理に関与する3Dモデル化オブジェクトのデータセット60の例を示す。データセットは、1クラスの3Dモデル化オブジェクトの3Dモデル化オブジェクトからなる。クラスの3Dモデル化オブジェクトは椅子である。椅子は(例えば、人間の)体重を支持する同じ機械的機能を全て実行するので、3Dモデル化オブジェクトのクラスを形成する。この機械的機能を実行することはまた、椅子がすべて同じ機械的制約、機能的制約及び構造的制約に従うことを意味する。
図6の椅子は機械的制約、機能的制約、製造制約、及び構造的制約を守り、それによって1つ又は複数の製造プロセスによる現実世界での製造を可能にするので、もっともらしい機械部品である。データセット60のすべてのオブジェクトが
図6に示されているわけではないことを理解されたい。明確にするために、データセット60のオブジェクトの一部のみが表されているが、データセットはより多くのオブジェクトを含むことができる。
【0091】
図7は、テンプレート学習方法、多様体学習方法、及び/又は処理に関与する3Dモデル化オブジェクトのデータセット70の例を示す。データセットは、1クラスの3Dモデル化オブジェクトの3Dモデル化オブジェクトからなる。クラスの3Dモデル化オブジェクトは、4つの脚(それぞれ)を有する椅子である。4つの脚を有する椅子はそれらが全て、(例えば、人間の)体重を支持する同じ機械的機能を実行し、また、4つの脚を有するこの機械的機能を実行することは、椅子が全て同じ機械的制約、機能的制約、及び構造的制約に従うことも意味するので、一群の3Dモデル化オブジェクトを形成する。
図7の椅子は機械的制約、機能的制約、製造上の制約、及び構造上の制約を順守し、それによって、1つ又は複数の製造プロセスによる現実世界でのそれらの製造を可能にするので、妥当な機械的部品である。データセット70のすべてのオブジェクトが
図7に示されているわけではないことを理解されたい。データセットのオブジェクトの一部のみが、明確にするために示されているが、データセットはより多くのオブジェクトを含むことができる。
【0092】
図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)のオブジェクトの一部のみが、明確にするために表されているが、サブデータセットはより多くのオブジェクトを含むことができる。
【0093】
次に、3Dモデル化オブジェクトの他の例について説明する。
【0094】
本開示の文脈では、任意の3Dモデル化オブジェクトが自動車を表すことができる。自動車は、3Dモデル化オブジェクトのクラスを形成することができる。代替的に又は追加的に、任意の3Dモデル化オブジェクトは、平面を表すことができる。平面は、3Dモデル化オブジェクトのクラスを形成することができる。代替的に又は追加的に、任意の3Dモデル化オブジェクトは、ボートを表すことができる。ボートは、3Dモデル化オブジェクトのクラスを形成することができる。
【0095】
次に、テンプレート学習方法、多様体学習方法、及びプロセスに含まれる「3Dモデル化オブジェクトを含むデータセットを提供する」という概念について説明する。
【0096】
データセットの提供は自動的に、又は、ユーザによって行われてもよい。例えば、ユーザは、データセットが格納されているメモリからデータセットを検索することができる。さらに、ユーザは既に取得されたデータセットに1つ以上の3Dモデリングされたオブジェクトを追加(例えば、1つずつ)することによって、データセットを完成させることを選択することができる。1つ又は複数の3Dモデリングされたオブジェクトを追加することは、1つ又は複数のメモリからそれらを取得し、それらをデータセットに含めることを含んでもよい。あるいは、ユーザが3Dモデル化オブジェクトを(例えば、1つずつ)選択し、これらの選択された3Dモデル化オブジェクトでデータセットを形成する(例えば、宣言する)ことによって、データセットを最初から作成することができる。3Dモデル化オブジェクトを選択することは、メモリからそれを取り出すことを含むことができる。データセットの3Dモデリングされたオブジェクトの一部(例えば、それらのすべて)は以前に(例えば、1人以上の他のユーザによって)設計され、ユーザによって検索される前に、1つ以上のメモリに格納されている可能性がある。「3Dモデル化オブジェクトを設計する」は、3Dモデル化オブジェクトを作成するプロセスの少なくとも一部である任意のアクション又は一連のアクションを指定する。
【0097】
本開示の文脈ではデータセットの任意の発明において、データセットのすべての3Dモデル化オブジェクトは点群として発明されてもよい。あるいは、データセットの3Dモデル化オブジェクトの少なくとも一部(例えば、それらの全て)は別のフォーマットで(例えば、CADオブジェクトとして、例えば、3Dメッシュのような他の離散的な幾何学的表現として)提供されてもよい。そのような場合、データセットの提供は少なくとも一部の各3Dモデル化オブジェクトから点群を決定する(例えば、抽出する)ことを含むことができる。点群の抽出は当技術分野で知られているように、モデル化されたオブジェクトを、例えば、6つの正投影図上でレイキャストすることを含むことができる。
【0098】
例ではデータセットのすべての3Dモデル化オブジェクトが点群として提供されるかどうかにかかわらず、又は前述のようにレイキャスティングが実行された場合、データセットの3Dモデル化オブジェクトはいくつかのポイントですべての点群にある。これらの例では、データセットの提供が当技術分野で知られているように、各点群が同じ固定数の点を有するように、前記点群の一様なサブサンプリングを含むことができる。一実施形態では、一様なサブサンプリングが各点群について、最初に点群のランダムな点を選び、前記固定数の点に到達するまで、既に選ばれた点から点群の最も遠い点を繰り返し選ぶことを含む。
【0099】
したがって、例では抽出ステップ及び/又は一様サブサンプリングステップが実行されたかどうかにかかわらず、データセットの3Dモデル化オブジェクトはすべてが同じ固定数の点を有する点群として提供される。これらの例では、データセットの提供が当技術分野で知られているように、点群をセンタリングするステップと、任意選択で、センタリングされた点群に単位ボールスケーリングを適用するステップとをさらに含むことができる。
【0100】
ここで、「ニューラルネットワークを学習する」という概念について説明する。
【0101】
「ニューラルネットワークを学習すること」は機械学習方法の手段による1つ以上のニューラルネットワークのセット(例えば、ニューラルネットワーク、例えば、2つ以上のニューラルネットワークのセット)の決定を指定する。本開示の文脈ではセットの各ニューラルネットワークが重みを有し(例えば、重みによってパラメータ化され)、ニューラルネットワークを学習することは一般に、重みを初期化することと、重みを更新することとを含むことができる。特に、多様体学習方法による集合のニューラルネットワークのそれぞれの重みを修正するステップS420は、ニューラルネットワークの集合を学習するステップS40の一部である。本開示の文脈では、セットの各ニューラルネットワークの学習がデータセット(又はデータセットのサブデータセット)に基づく訓練を含むことができる。これにより、例ではデータセット(データセットのサブデータセット)は訓練セット(学習セットなど)の一部であるが、データセット(データセットのサブデータセット)のみが、従って訓練セットの他の部分はニューラルネットワークの重みを修正するステップS420に直接関与しないことを意味する。例えば、重みを修正するステップS420はデータセットの3Dモデル化オブジェクト(又はデータセットのサブデータセット)のみに対する(例えば、それから得られる)データ(例えば、計算の結果)に基づいて実行されてもよい。例えば、これは、学習するステップS40及び/又は修正するステップS420が訓練セットの3Dモデル化オブジェクトの中からの選択を操作する損失を最小化することを含み、その結果、それぞれの重みを修正するステップS420が選択によって選択された3Dモデル化オブジェクトのみを含む場合であり得る。
【0102】
本開示に従って学習済の任意のニューラルネットワークは、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モデル化オブジェクトの推論及び/又は変形の推論のために構成されたデコーダを備えるオートエンコーダである。
【0103】
次に、オートエンコーダの概念について説明する。オートエンコーダは、2つのフィードフォワード・ディープ・ニューラルネットワーク
【数5】
及び
【数6】
(先に引用した論文[3]を参照されたい)の構成として定義され、重み
【数7】
及び
【数8】
によってパラメータ化される。ここで、
【数9】
であり、
【数10】
はエンコーダであり、
【数11】
はデコーダである。
【数12】
は潜在空間、すなわち、エンコーダ
【数13】
がその値を出力し、デコーダ
【数14】
がその値をとるベクトル空間である。
【数15】
は、潜在空間の次元である。
【数16】
は、エンコーダ
【数17】
がその値をとり、デコーダ
【数18】
がその値を出力する空間である。
【数19】
は「元の入力空間」と呼ばれることがある。mは元の入力空間の次元である。元の入力空間が元の入力空間の次元であってもよく、又は厳密に3Dモデル化されたオブジェクト空間を含んでもよい。言い換えれば、エンコーダ
【数20】
は元の入力空間においてその値をとるが、デコーダ
【数21】
による潜在空間の画像、例えば、3Dモデル化されたオブジェクト空間は元の入力空間のサブセットであってもよい。ベクトル
【数22】
が「潜在ベクトル」又は「隠れベクトル」と呼ばれることがある。オートエンコーダ
【数23】
が「再構成」と呼ばれることがある。再構成が元の入力空間の第1の要素(例えば、3Dモデル化されたオブジェクト空間の第1の3Dモデル化されたオブジェクト)を入力としてとり、潜在ベクトル(すなわち、潜在空間の要素)にマッピングし、次に、元の入力空間の第2の要素(例えば、3Dモデル化されたオブジェクト空間の第2の3Dモデル化されたオブジェクト)を潜在ベクトルから出力することによって、マッピングを逆転する。第2の要素は第1の要素の「再構成」と呼ばれることがある。例では、それを第2の要素が第1の要素の近似を表すことを意味する。例では、xが3Dモデル化オブジェクトである場合、3Dモデル化オブジェクト
【数24】
は再構築された3Dモデル化オブジェクトと呼ばれ得る。また、xは入力と呼ばれ、
【数25】
は再構成された入力と呼ばれることもある。プロセスの文脈では、エンコーダ
【数26】
及びデコーダ
【数27】
が例えば、再構成誤差を最小化することによって、(例えば、別々に又は同時に)機械加工学習され得る。エンコーダをオブジェクトに適用する手段にオブジェクトを符号化する。したがって、符号化の結果を「符号化オブジェクト」と呼ぶことができ、オブジェクトを符号化することを「オブジェクトを(例えば、エンコーダの潜在空間上に)投影すること」と呼ぶこともでき、符号化の結果を「投影オブジェクト」と呼ぶことができ、デコーダを潜在ベクトルに適用する手段に潜在ベクトルを復号すること、したがって、復号の結果を「復号潜在ベクトル」と呼ぶことができる。
【0104】
次に、オートエンコーダを学習する実施形態について説明する。
【数28】
を訓練セットとすると、ここで、nは訓練セット内の3Dモデル化オブジェクトの数である。この実施形態では、オートエンコーダ
【数29】
を学習することは再構成損失
【数30】
を最適化することを含み、ここで、
【数31】
はオートエンコーダによる入力サンプルと再構成サンプルとを比較する間隔であり、
【数32】
は例えば、L2ノルムとすることができる。学習プロセスはランダムノイズを各サンプル
【数33】
に適用し、クリーンバージョンのxiを再構築するようにオートエンコーダを訓練することによって、よりロバストにすることができる。このような例は、「ノイズ除去オートエンコーダ」(先に引用した論文[5]に紹介されている)と呼ばれることがある。本開示の文脈では、学習が前述の論文[6]で説明されているように、積み重ねられた発明エンコーダと呼ばれるバージョンで、欲張りの層様式でアーキテクチャを事前訓練することもできる。
【0105】
次に、基本テンプレートを決定するステップS30について説明する。
【0106】
本開示の文脈において、基本テンプレートを決定するステップS30は各々がそれぞれの機械的部分を表す3Dモデル化オブジェクトを含むデータセットの各サブデータセットについて実行され、データセットは1つ以上のサブデータセットを有し、各サブデータセットはデータセットの少なくとも一部を形成する。換言すれば、それぞれのサブデータセットごとに、基本テンプレートがS30と決定される。
【0107】
ここでは、1つの対応するサブデータセットに対する基本テンプレートを決定するステップS30について議論する。以下の議論は、任意の対応するサブデータセットのための任意の基本テンプレートを決定するステップS30に適用されることが理解されるべきである。
【0108】
基本テンプレートは、例えば機械部品を表す3Dモデル化オブジェクトである。基本テンプレートは、メッシュ又は点群であってもよい。基本テンプレートは、サブデータセットの3Dモデル化オブジェクトの重心を表す3Dモデル化オブジェクトである。これは、基本テンプレートの幾何学的形状がサブデータセットの3Dモデル化オブジェクトの形状の平均幾何学的形状(例えば、ハウスドルフ距離、ワッサースタイン距離、地球移動距離、又は面取り距離などの距離による)を表す(例えば、それである)ことを意味することができる。例では、3D基本テンプレートがサブデータセットのすべての3Dモデル化オブジェクトに対する平均非類似性が最小であるサブデータセットの3Dモデル化オブジェクトである。第1の3Dモデル化オブジェクトと第2の3Dモデル化オブジェクトとの間の相違は第1の3Dモデル化オブジェクトの幾何学的形状と第2の3Dモデル化オブジェクトの幾何学的形状との間の差の定量化であってもよく、例えば、ハウスドルフ距離、ワッサースタイン距離、地球移動距離、又は面取り距離に従う。
【0109】
図9は、
図6のデータセット60の重心を表す決定された基本テンプレート92の例を示す。
図10は、
図7のデータセット70の重心を表す決定された基本テンプレート102の例を示す。
【0110】
例では、基本テンプレートを決定するステップS30が候補基本テンプレート内で、サブデータセットの各3Dモデル化オブジェクトについて、サブデータセットの3Dモデル化オブジェクトと候補基本テンプレートとの間の不一致にペナルティを課す損失の最小値を計算するステップS300を含む。
【0111】
候補基本テンプレート内の損失の最小値を計算するステップS300は、3Dモデル化オブジェクトを探索すること(例えば、反復的に)と、各探索された3Dモデル化オブジェクトの損失に対する影響を評価することとを含むことができる。このような場合、候補基本テンプレートは、探索された3Dモデル化オブジェクトを指定する。候補基本テンプレートは例えば、3Dモデル化オブジェクト(例えば、別の候補基本テンプレート)の変形から、又は3Dモデル化オブジェクト(例えば、候補基本テンプレート)の連続的な変形から生じる、3Dモデル化オブジェクトであってもよい。損失の最小値を計算するステップS300は、任意の緩和アルゴリズムの使用を含むことができる。
【0112】
損失はサブデータセットの各3Dモデル化オブジェクトについて、3Dモデル化オブジェクトと候補基本テンプレートとの間の(例えば、幾何学的)類似性及び/又は非類似性を測定する量(例えば、関数)であってもよい。損失は例えば、パラメータとしてサブデータセットの各3Dモデル化オブジェクトを取り、候補基本テンプレートを入力として取り、入力候補基本テンプレートとサブデータセットの3Dモデル化オブジェクトとの間の(例えば、幾何学的である)類似性及び/又は非類似性を表す量(陽性の実数など)を出力する関数とすることができる。各3Dモデル化オブジェクトについて、3Dモデル化オブジェクトと候補基本テンプレートとの間の不均衡は3Dモデル化オブジェクトと候補基本テンプレートとの間の(例えば、幾何学的)非類似性の定量化であってもよい。不均衡をペナライズすることは、損失が不均衡の増加関数であることを意味し得る。
【0113】
したがって、基本テンプレートを決定するステップS30は、3Dモデル化オブジェクト(候補基本テンプレート)の中で、サブデータセットの3Dモデル化オブジェクトとの類似性に報酬を与えることができる。特に、基本テンプレートを決定するステップS30は候補基本テンプレートを反復的に探索(例えば、訪問)し、候補基本テンプレートのそれぞれについて、探索された候補基本テンプレートとサブデータセットの各3Dモデル化オブジェクトとの類似性を求め、報酬を与えることができ、その結果、ステップS30において決定された基本テンプレートは、サブデータセットの3Dモデル化オブジェクトの重心を表す。
【0114】
例では、サブデータセットの3Dモデル化オブジェクトと候補基本テンプレートとの間の不均衡が3Dモデル化オブジェクトと候補基本テンプレートとの間の距離の関数である。
【0115】
距離は、3Dモデル化オブジェクト間の類似性及び/又は非類似性を測定する特に単純かつ効率的な方法である。
【0116】
距離は3Dモデル化オブジェクト間の任意の距離、例えば、3Dモデル化オブジェクト間の(例えば、幾何学的)非類似性を定量化する距離であってもよい。したがって、3Dモデル化オブジェクトと候補基本テンプレートとの間の距離は3Dモデル化オブジェクトと候補基本テンプレートとの間の(例えば、幾何学的である)相違を定量化することができる。距離は例えば、ワッサースタイン距離、地球移動体の距離、面取り距離、又はハウスドルフ距離であってもよい。不均衡は、距離の二乗のような距離の増加関数であってもよい。
【0117】
例では、距離が3Dモデル化オブジェクトを表す第1の点群と、候補基本テンプレートを表す第2の点群との間の距離である。
【0118】
前述のように、サブデータセットの各3Dモデル化オブジェクトは点群(したがって、3Dモデル化オブジェクトを表す)として提供されてもよく、又は3Dモデル化オブジェクトを表す点群は3Dモデル化オブジェクトが提供される別のフォーマットから決定されてもよい。いずれの場合も、基本テンプレートを決定するステップS30は、サブデータセットの3Dモデル化オブジェクトの各々を表す点群を操作することができる。また、3Dモデル化オブジェクトであるので、候補基本テンプレートは、任意選択で他の3Dモデル化オブジェクトフォーマットから決定され得る、それぞれの点群によって表されてもよい。したがって、この距離は、ワッサースタイン距離又は地球移動距離など、点群間の任意の距離とすることができる。
【0119】
例では、損失が次のタイプのものである。
【数34】
【0120】
例では、地球移動者の距離損失
【数35】
が次式で与えられる。
【数36】
【0121】
例では、計算するステップS300が基本3Dモデル化オブジェクトを提供することを含む。これらの例では、計算するステップS300が基本3Dモデル化オブジェクトから開始して、損失に対する以前の候補基本テンプレートの効果を評価することと、以前の候補基本テンプレートを新しい候補基本テンプレートに変形することとを繰り返すことをさらに含む。
【0122】
基本3Dモデル化オブジェクトは、3Dモデル化オブジェクトである。基本3Dモデル化オブジェクトは、候補基本テンプレートである。基本3Dモデル化オブジェクトは、データセットの任意の3Dモデル化オブジェクトが提供されるときに提供されてもよい(S10)。言い換えれば、基本3Dモデル化オブジェクトの提供は任意のオブジェクトを提供するステップS10として、例では、例えば(例えば、実質的に)同時に実行されてもよい。
【0123】
次に、反復処理について説明する。反復は、基本3Dモデル化オブジェクトから開始する。計算するステップS300は基本3Dモデル化オブジェクトを探索(例えば、訪問)することができ、損失に対する基本3Dモデル化オブジェクトの影響を評価することができる。損失に対する基本3Dモデル化オブジェクトの効果を評価することは、損失を計算すること、及び/又は損失を計算した結果の導関数を計算することを含むことができる。基本3Dモデル化オブジェクトの効果を評価することは、例えば、計算するステップS300を実行する緩和アルゴリズムの収束パラメータに従って、損失の計算の結果及び/又は損失の計算の結果の導関数が損失が十分に小さいようなものであるかどうかを決定することをさらに含んでもよい。例では損失に対する効果が損失が十分に小さくないようなものである場合、基本3Dモデル化オブジェクトは新しい候補基本テンプレートに変形される。次に、反復は以前の候補基本テンプレートの変形から生じる各候補基本テンプレートについて、反復は損失に対する候補基本テンプレートの効果を評価することを含み、この評価は基本3Dモデル化オブジェクトの効果の評価として実行することができる。例では損失に対する効果が損失が十分に小さくないようなものである場合、候補基本テンプレートは新たな候補基本テンプレートに変形され、損失に対する新たな候補基本テンプレートの効果が評価され、以下同様である。言い換えれば、損失の十分な小ささが達成されない限り、反復は互いの変形である候補基本テンプレートを連続的に探索し、損失の十分でない小ささの結果として候補基本テンプレートを互いに変形させる。
【0124】
次に、以前の候補基本テンプレートを新しい候補基本テンプレートに変形する概念について説明する。前述のように、サブデータ基本セットの各3Dモデル化オブジェクトについて、以前の候補基本テンプレートの損失は、3Dモデル化オブジェクトと以前の候補基本テンプレートとの間の不一致にペナルティを課す。損失を評価することは、各それぞれの3Dモデル化オブジェクトと以前の候補基本テンプレートとの間のそれぞれの不均衡が最小のペナルティ付き不均衡(すなわち、損失のすべての不均衡の間の)であるサブデータセットの1つ又は複数の3Dモデル化オブジェクトを決定することを含むことができる。以前の候補基本テンプレートの変形は、次いで、1つ又は複数の3Dモデル化オブジェクトを以前の候補基本テンプレートに割り当てることを含むことができる。以前の候補基本テンプレートの変形は、以前の候補基本テンプレートを、例えば距離に従って、1つ又は複数の3Dモデル化オブジェクトの重心に変換することをさらに含むことができる。そのような場合、重心は、新しい候補基本テンプレートを形成することができる。
【0125】
換言すれば、計算するステップS300は基本3Dモデル化オブジェクトから開始し、サブデータセットの3Dモデル化オブジェクトのうちの1つ(例えば、すべて)に対する候補基本テンプレートの非類似性が許容可能(例えば、収束パラメータよりも低い、例えば、最適)になるまで、基本3Dモデル化オブジェクトを連続する候補基本テンプレートに反復的に変形する。これは、3Dモデル化オブジェクトをサブデータセットの重心に変形する効率的な方法を構成する。
【0126】
例では、基本3Dモデル化オブジェクトは球を表す。加えて、又は代替として、損失は、サブデータセットの各3Dモデル化オブジェクトについて、データセットの3Dモデル化オブジェクトを表す第1の点群と、新しい候補基本テンプレートを表す第2の点群との間の地球移動者の距離損失にペナルティを課すことができる。
【0127】
基本3Dモデル化オブジェクトは、単位球など、球を表す点群であってもよい。このような場合、以前の候補基本テンプレートの変形の影響である各新しい候補基本テンプレートは、球体の反復変形の影響である。したがって、各新しい候補基本テンプレートは、球を表す点群の反復変形から生じる点群によって表すことができる。
【0128】
球体は、球体を表す点群が球体にホメオモルフィックな3Dモデル化オブジェクトなどの多数の3Dモデル化オブジェクトを表す点群に容易に変形され得るので、特に便利な基本3Dモデル化オブジェクトである。単位球を使用することは、サブデータセットの3Dモデル化オブジェクトが中心に置かれ、単位ボールスケーリングに従ってスケーリングされる点群として提供される場合に特にフィッティングされる(S10)。地球移動者の距離は、基本3Dモデル化オブジェクトとしての球の使用に特にフィッティングされる。
【0129】
例では、基本3Dモデル化オブジェクトは点群である。これらの例では、反復が最適化された点群をもたらす。これらの例では、基本テンプレートを決定するステップS30が最適化された点群の点上の法線を推論するステップS330をさらに含むことができる。これらの例では、基本テンプレートを決定するステップS30が推論された法線に基づいて最適化された点群の表面再構成を実行するステップS340をさらに含むことができる。
【0130】
点群は基本3Dモデル化オブジェクトを表す点群の反復変形から生じるように最適化され、前記変形は基本3Dモデル化オブジェクトを表す点群を最小損失を表す点群に変形するために実行される(又は少なくとも、損失の最小の近似を表す)。
【0131】
法線を推論するステップS330は、点群の点上の法線を推論することができる任意の方法によって実行することができる。法線は、最適化された点群に関するトポロジ情報を提供する。表面再構成の実行は、点群と推論された法線に基づいて、点群とかみ合う表面を推論することができる任意の方法によって実行されてもよい。その結果、ステップS30において決定された基本テンプレートは、サブデータセットの重心を表す3Dメッシュとして出力されてもよい。言い換えれば、例では、ステップS30において決定された基本テンプレートが表面再構成を実行するステップS340の結果である。
【0132】
基本3Dモデル化オブジェクトを表す点群の点は、少なくとも幾何学的観点から最適化される。換言すれば、最適化された点群は幾何学的観点からのみ3Dモデル化オブジェクトの重心を正確に表すことができるが、正しいトポロジを有することはできない。例えば、サブデータセットはクラスの3Dモデル化オブジェクトから作成されてもよく、最適化された点群はサブデータセットの重心を幾何学的に表してもよいが、例えば、最適化された点群が例えば、ネイティブにメッシュ化された場合、クラスの3Dモデル化オブジェクトを表さないような、誤ったトポロジーを有する可能性がある。法線を推論し(S330)、後続の表面再構成を実行する(S340)ことは、これらの困難を回避し、新しいメッシュが正しいトポロジを有するように最適化された点群を再メッシュすることを可能にする。したがって、ステップS30において決定された基本テンプレートは、これらの例ではクラスの3Dモデル化オブジェクトの重心を表す3Dモデル化オブジェクトとすることができる。
【0133】
ここで、
図11~16を参照して、法線の推定するステップS330及び表面再構成の実行するステップS340の実施について議論する。
図11は、球を表す点群である基本3Dモデル化オブジェクト110の一例を示す。
図12は、椅子を表す最適化された点群120を示す。最適化された点群はその間違ったトポロジを有する最適化された点群120を示す
図13に示されるように、間違ったトポロジを有する。
図13に見られるように、最適化された点群130は、それが有するべき椅子のトポロジーを有していない。この実施形態では、基本テンプレートを決定するステップS30が、決定するステップS30が最適化された点群を配置する粗いグリッドを提供するステップS310を含む。点を含む各ボクセルは値1を有し、他のボクセルはヌル値を有する。この実施形態では、決定するステップ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の一例を示す。
【0134】
1つの対応するサブデータセットに対する基本テンプレートを決定するステップS30について議論した。2つ以上の対応するサブデータセットがある場合、対応するサブデータセットについて、対応するサブデータセットについての基本テンプレートの決定は、同様に実行されてもよいことを理解されたい。全ての対応するサブデータセットの全ての基本テンプレートは、同時に決定される(S30)ことができる。特に、実施例ではこれらの基本テンプレートの同時に決定するステップS30が同時に、各サブデータセットに対して、少なくとも損失の計算するステップS300を含み、計算するステップS300は各サブデータセットに対して、先に説明したように実行される。
【0135】
ここでは、これらの基本テンプレートの同時に決定するステップS30の例を、S300を計算することによって、同時に、各サブデータセットについて、損失の最小値を検討する。
【0136】
これらの例では損失の最小値の、対応するサブデータセットごとの、同時に計算するステップS300は共通の損失を最小化することを含む。共通損失を最小化することは、前述のように、それぞれのサブデータセットごとに各計算するステップS300を実行することに対応し得る(例えば、同等であることを意味する)。データセットの各3Dモデル化オブジェクトについて、共通損失は、複数の項の中から1つの項を選択する。各項は、3Dモデル化オブジェクトと候補基本テンプレートとの間の不均衡にペナルティを課す。選択された項は、不均衡が最小のペナルティを課される複数の項のうちの1つの項であってもよい。
【0137】
共通損失はデータセットの各3Dモデル化オブジェクトについて、3Dモデル化オブジェクトとそれぞれの候補基本テンプレートとの間の2つ以上の(例えば、幾何学的である)それぞれの類似性及び/又は非類似性を測定する量(例えば、関数)であってもよい。複数の項の各項は2つ以上の(例えば、幾何学的である)対応する類似性及び/又は非類似性のそれぞれ1つの尺度であってもよい。したがって、3Dモデル化オブジェクトとそれぞれの候補基本テンプレートとの間の、項によってペナルティを課された不均衡は3Dモデル化オブジェクトと候補基本テンプレートとの間の(例えば、幾何学的)非類似性の定量化であってもよい。したがって、不均衡をペナライズすることは、その項が不均衡の増加関数であることを意味し得る。共通損失は複数の項の中から、データセットの各3Dモデル化オブジェクトについて、ペナルティが最小である項を選択する。例では、共通損失がパラメータとして、データセットの3Dモデル化オブジェクトを取り、インプット基本テンプレート候補として取り、各3Dモデル化オブジェクトに対して選択される各項の関数(例えば、和)である量(例えば、正の実数)を出力する関数であることが手段である。言い換えると、損失はデータベースの各3Dモデル化オブジェクトについて、どの候補基本テンプレートが3Dモデル化オブジェクトに(例えば、幾何学的に)最も類似しているかを表す結果を出力することができる。共通損失の最小化は、ミニバッチ確率勾配緩和アルゴリズムのような任意の緩和アルゴリズムを使用することができる。
【0138】
例では、3Dモデル化オブジェクトとそれぞれの候補基本テンプレートとの間の不均衡が3Dモデル化オブジェクトとそれぞれの候補基本テンプレートとの間の距離を含む。
【0139】
距離は、3Dモデル化オブジェクト間の類似性及び/又は非類似性を測定する特に単純かつ効率的な方法である。
【0140】
距離は、ハウスドルフ距離、ワッサースタイン距離、チャムファー距離、アースムーバー距離など、任意の距離をとることができる。例では、不均衡が3Dモデル化オブジェクトとそれぞれの候補基本テンプレートとの間の距離の(例えば、増加する)関数であるという点で、3Dモデル化オブジェクトとそれぞれの候補基本テンプレートとの間の距離を含む。例では、不均衡が3Dモデル化オブジェクトとそれぞれの候補基本テンプレートとの間の距離の計算に対する結果に依存するという点で、3Dモデル化オブジェクトとそれぞれの候補基本テンプレートとの間の距離を含む。
【0141】
例では、距離が3Dモデル化オブジェクトを表す第1の点群と、それぞれの候補基本テンプレートを表す第2の点群との間の距離である。
【0142】
前述のように、データセットの各3Dモデル化オブジェクトは点群(したがって、3Dモデル化オブジェクトを表す)として提供されてもよく、又は3Dモデル化オブジェクトを表す点群は3Dモデル化オブジェクトが提供される別のフォーマットから決定されてもよい。いずれの場合も、決定するステップS30は、データセットの3Dモデル化オブジェクトの各々を表す点群を操作することができる。また、3Dモデル化オブジェクトであるため、それぞれの候補基本テンプレートはそれぞれの点群によって表されてもよく、これは任意選択で、他の3Dモデル化オブジェクトフォーマットから決定されてもよい。したがって、この距離は、ワッサースタイン距離又は地球移動距離など、点群間の任意の距離とすることができる。
【0143】
例では、共通損失は次のタイプのものである。
【数37】
【0144】
例では、
【数38】
は地球移動者の距離損失であり、次式で与えられる。
【数39】
例では、共通の損失
【数40】
を最小化することは同時に、かつ対応するサブデータセットごとに、前述した損失の最小値
【数41】
を計算するステップS300をもたらす(例えば、それと同等であることを意味する)。
【0145】
ここでは、k個の基本テンプレート(k≧2である)を決定するステップS30の実装について議論する。
【0146】
この実施態様ではデータセットがn個の3Dモデル化オブジェクトからなり、
【数42】
と表される。各3Dモデル化オブジェクトxiは中心に置かれ、単位ボールスケーリングに従ってスケーリングされる点群であり、mは各点群xiの点の共通数である。決定するステップS30は共通の損失を最小化するステップと、共通の損失を最小化するステップとを含み、共通の損失を最小化するステップはそれぞれが、m個の点を有する単位球である基本3Dモデル化オブジェクトを表すk個の点群
【数43】
を提供するステップとを含む。この実施形態では、決定するステップS30が各基本3Dモデル化オブジェクトが互いに非常にわずかに異なるように、各点群Sjに非常に小さなノイズを追加することを含む。これは、各基本3Dモデル化オブジェクトが最初から、他の基本3Dモデル化オブジェクトと既に異なり、したがって、データセットのいくつかの3Dモデル化オブジェクトの共通形状を表すように既にわずかに特殊化されているので、データベースセットの対応するk個のサブデータセットのk個の重心を決定するステップS30を容易にする。
【0147】
この実施形態では、最小化される共通損失が次のタイプのものである。
【数44】
ここで、
【数45】
はデータセットの3Dモデル化オブジェクトを表す第1の点群xiと、候補基本テンプレートを表す第2の点群Sjとの間の地球移動者の距離損失である。共通損失の最小化は損失を(ミニバッチ確率的勾配降下によって)最小化するために、各球の点を最適化するために、先に引用した論文[12]に提示された緩和アルゴリズムを使用することによって実行することができる。
【0148】
各基本3Dモデル化オブジェクトは、各訓練モデルに対して最小値が最も近い基本3Dモデル化オブジェクトのみを最適化するので、他の最適化された基本3Dモデル化オブジェクトとは異なる種類の形状を表す基本テンプレート形状において決定するステップS30によって最適化される。各基本3Dモデル化オブジェクトは、他の対応するサブデータセットとは異なる、データセットの対応するサブデータセットの3Dモデル化オブジェクトの重心を代表、特定の基本テンプレートにおいてそれ自体を特殊化する。言い換えれば、各基本テンプレートは、地球移動者の距離が与えられた3Dモデルのデータセット内のそれ自体のクラスタの重心を表す。
【0149】
各基本3Dモデル化オブジェクトを、それ自体の3Dモデル化オブジェクト形状に特化させるために、決定するステップS30のこの実装は、ミニバッチ訓練中に再割り当てアルゴリズムを使用することもできる。実際に、すべての3Dモデル化オブジェクトが同じ基本テンプレートに対してそれらの最小損失に達し、最適化されるべき他の基本3Dモデル化オブジェクトを妨げることが起こり得る。その影響を妨げるために、訓練中の各ミニバッチにおいて、各以前の候補基本テンプレートについて、決定するステップS30は、以前の候補テンプレート(第1の再割り当てアルゴリズム)の損失に従って、第1の点群を降順にソートすることができる。あるいは、決定するステップS30が前の候補基本テンプレートと、この3Dモデル化オブジェクトを再構成する最良の候補基本テンプレートとの間の損失差に従って、第1の点群をソートすることができる(第2の再割り当てアルゴリズム)。次いで、決定するステップS30は最上部Ω(ここでΩはミニバッチサイズの小さな割合である)を前の候補基本テンプレートに割り当てることを強制することができ、これは、決定するステップS30がこの第1の点群のために
【数46】
を変更し、またその結果
【数47】
を変更して、この第1の点群のためのこのテンプレートを逆伝播が通過するように強制することを意味する。その結果、以前の候補基本テンプレートを新しい候補基本テンプレートに変形することができる。
【0150】
次に、第1及び第2の再割り当てアルゴリズムについて説明する。両方のアルゴリズムは、入力として以下を取る。
【数48】
【0151】
どちらのアルゴリズムも以下を出力。
・再割当後のミニバッチ全体の損失L_1
【0152】
以下は、最初の再割り当てアルゴリズムの擬似コードである。
【数49】
【0153】
以下は、第2の再割り当てアルゴリズムの擬似コードである。
【数50】
【0154】
共通損失L1の最小化により、各3D基本テンプレートの頂点の最適化に対応するk個の最適化された点群が生じるが、トポロジを考慮に入れることはできない。これは、正確な点群を有するが間違ったトポロジを有する基本テンプレートにつながる可能性がある。したがって、決定するステップS30は、基本テンプレートの再メッシュ化を含むことができる。そのような場合、決定するステップS30は、各基本テンプレートについて、決定するステップS30が基本テンプレートを入れる粗いグリッドを提供するステップS310を含むことができる。点を含む各ボクセルは値1を有し、他のボクセルはヌル値を有する。次いで、決定するステップS30は例えば、1に近い等値を有するマーチングキューブアルゴリズムを適用することによって、各粗いグリッドから粗いメッシュを抽出するステップS320を含んでもよい。次いで、決定するステップS330は、各最適化された点群の点上の法線を推論するステップS330を含むことができる。法線の推定するステップS330は各最適化された点群の各点について正確な法線を計算するために、マーチングキューブアルゴリズムからの粗いメッシュを使用することを含むことができる。これは、各点を粗メッシュの最も近い三角形上に投影し、その法線に対して三角形の法線の重み付き平均を割り当てることからなり、重みは投影された点の重心重みである。これらの適切な法線を用いて、決定するステップS340は正確なトポロジーを有する基本テンプレートを得るために、各最適化された点群に対して(例えば、ポアソン)表面再構成を実行するステップを含むことができ、このトポロジーは、頂点が多すぎる場合に最終的に間引かれることができる。
【0155】
次に、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を示す。
【0156】
次に、ニューラルネットワークの学習ステップS40について説明する。
【0157】
前述のように、学習するステップS40ニューラルネットワークは、1つ以上のニューラルネットワーク、例えば2つ以上のニューラルネットワークのセットの決定を指定する。セットの各ニューラルネットワークは、それぞれの重みを有する。ニューラルネットワークのセットを学習するステップS40は、ニューラルネットワークのセットを提供するステップS400を含むことができる。ニューラルネットワークのセットを提供するステップS400は、ユーザによって実行されてもよい。例えば、ユーザは、データセットが格納されているメモリからニューラルネットワークの集合を検索することができる。各ニューラルネットワークは構造として提供(S40)されてもよいが、ニューラルネットワークの訓練は依然として行われなければならない。言い換えれば、ニューラルネットワークの重みを含む各ニューラルネットワークの構造はS400で提供されてもよいが、重みは依然として初期化され(S410)、及び/又は修正されなければならない(S420)。ニューラルネットワークのセットを学習するステップS40は、各ニューラルネットワークのそれぞれの重みを初期化すること(S410)、及び/又はニューラルネットワークのそれぞれの重みを修正すること(S420)を含むことができる。それぞれの重みを修正するステップS420は前述したように、訓練の一部であってもよい。訓練はすべてのニューラルネットワークの同時訓練であってもよく、前述のように、データセットに基づくものであってもよい。例では、それぞれのニューラルネットワークの訓練がデータセット全体に基づくことが手段である。代替的に又は追加的に、それは対応するニューラルネットワークの訓練がデータセットの対応するサブデータセットに基づいており、データセットは1つ又は複数の対応するサブデータセットを含み、対応するサブデータセットはデータセットの少なくとも一部を形成することを意味することができる。以下、「データセット」は、ニューラルネットワークのセットの訓練が今述べたように実行されるデータセットを指す。
【0158】
例では、それぞれの重みを初期化するステップS410がニューラルネットワークのセットを提供するステップS400の後、それぞれの重みを修正するステップS420の前に実行される。それぞれの重みを初期化するステップS410は一般に、例えば、ユーザ対話によって、セットの各ニューラルネットワークのそれぞれの重みの値を指定する(例えば、宣言する)ことを含む。例では、各ニューラルネットワークのそれぞれの重みがすべて、所定の閾値よりも低い値に初期化され得る(S410)。所定の閾値は、ユーザによって提供されてもよい。所定の閾値は、1、0.5、0.1又は0.001より低くてもよい。
【0159】
例では、最初にゼロに近く初期化されるのは重みではなく、(合理的である)入力が何であれ、ゼロに近くなるのはニューラルネットワークの出力である。しかしながら、実際には使用されるアーキテクチャが与えられると、初期化S410において弱い重みを置くことはニューラルネットワークが弱い変形を予測することによって開始することを確実にすることを可能にする。したがって、例では、それ自体しきい値は存在せず、すべてが使用されるアーキテクチャに依存する。このような例では、初期化S420がニューラルネットワークの出力が学習が開始する前に小さな歪みを予測するように実行されてもよい。
【0160】
S410で、ニューラルネットワークの各の重みを、そのような所定閾値よりも低い値に初期化することは、各の基本テンプレートの変形を各3Dモデル化オブジェクトに推論するように構成されたニューラルネットワークを学習するように特にフィッティングされる。そのような場合、ニューラルネットワークの入力が何であれ、ニューラルネットワークの出力が小さいこと、すなわち、対応する基本テンプレートの小さい変形であることを必要とすることがある。実際、対応する基本テンプレートが、データベースセットのサブデータセットの重心を表す場合、対応する基本テンプレートはサブデータセットの3Dモデル化オブジェクトに変換されるために、あまり変形される必要はなく、かつ/又は大まかに変形される必要はない。ニューラルネットワークの重みをこのように初期化するステップS410によって、学習するステップS40は、ニューラルネットワークがサブデータセットの3Dモデル化オブジェクトを出力することによって訓練を開始することを保証する。言い換えれば、ニューラルネットワークはそれぞれの重みを初期化するステップS410から、それぞれの基本テンプレートの変形を、それぞれの基本テンプレートが重心であるサブデータセットの3Dモデル化オブジェクトに推論することに特化する。
【0161】
次に、ニューラルネットワークのそれぞれの重みを修正するステップS420について説明する。
【0162】
ニューラルネットワークのそれぞれの重みを修正するステップS420はデータセットの各3Dモデル化オブジェクトについて、複数の項の中から1つの項を選択し、各項は3Dモデル化オブジェクトと、セットのそれぞれのニューラルネットワークによって推論されるそれぞれの3Dモデル化オブジェクトとの間の不均衡にペナルティを課し、選択された項は、不均衡が最小ペナルティである複数の項の中の1つの項で損失を最小化することによって実行される。
【0163】
「ニューラルネットワークのそれぞれの重みを修正する」とは、ニューラルネットワークの少なくとも一部(例えば、すべて)のそれぞれの重みの少なくとも一部(例えば、すべて)が例えば、損失の反復最小化中に反復的に修正されることを意味する。たとえば、損失の最小化は1つ又は複数のアルゴリズムの実行を含むことができ、1つ又は複数のアルゴリズムの少なくとも部品(たとえば、すべての)ステップは、実行時にそれぞれの重みを修正することができる。損失の最小化は、ミニバッチにわたるADAMソルバなどの任意の深い学習技術を使用することができる。
【0164】
損失はデータセットの各3Dモデル化オブジェクトについて、3Dモデル化オブジェクトと対応するニューラルネットワークによって推論される対応する3Dモデル化オブジェクトとの間の2つ以上の(例えば、幾何学的である)対応する類似性及び/又は非類似性を測定する量(例えば、関数)であってもよい。複数の項の各項は2つ以上の(例えば、幾何学的である)対応する類似性及び/又は非類似性のそれぞれ1つの尺度であってもよい。したがって、3Dモデル化オブジェクトと、対応するニューラルネットワークによって推論される対応する3Dモデル化オブジェクトとの間の、項によってペナルティを課された不均衡は3Dモデル化オブジェクトと、対応するニューラルネットワークによって推論される対応する3Dモデル化オブジェクトとの間の(例えば、幾何学的)非類似性の定量化であり得る。したがって、不均衡をペナライズすることは、その項が不均衡の増加関数であることを意味し得る。損失は複数の項の中から、データセットの各3Dモデル化オブジェクトについて、ペナルティが最も少ない項を選択する。例では、損失がパラメータとしてデータセットの3Dモデル化オブジェクトを取り、入力としてニューラルネットワークのセットを取り、各3Dモデル化オブジェクトに対して選択される各項の関数(例えば、和)である量(例えば、正の実数)を出力する関数であることが手段である。言い換えれば、損失はデータセットの各3Dモデル化オブジェクトについて、3Dモデル化オブジェクトに(例えば、幾何学的に)最も類似している対応する3Dモデル化オブジェクトをニューラルネットワークが推論することを表す結果を出力することができる。
【0165】
例では3Dモデル化オブジェクトと、セットの対応するニューラルネットワークによって推論される対応する3Dモデル化オブジェクトとの間の不均衡は3Dモデル化オブジェクトと、セットの対応するニューラルネットワークによって推論される対応する3Dモデル化オブジェクトとの間の距離を含む。
【0166】
距離は、3Dモデル化オブジェクト間の類似性及び/又は非類似性を測定する特に単純かつ効率的な方法である。
【0167】
距離は、ハウスドルフ距離、ワッサースタイン距離、チャムファー距離、アースムーバー距離など、任意の距離をとることができる。例では、不均衡が3Dモデル化オブジェクトと、セットの対応するニューラルネットワークによって推論される対応する3Dモデル化オブジェクトとの間の距離を含み、不均衡は3Dモデル化オブジェクトと、セットの対応するニューラルネットワークによって推論される対応する3Dモデル化オブジェクトとの間の距離の(例えば、増加する)関数である。例では不均衡が3Dモデル化オブジェクトと、セットの対応するニューラルネットワークによって推論される対応する3Dモデル化オブジェクトとの間の距離を含み、不均衡は3Dモデル化オブジェクトと、セットの対応するニューラルネットワークによって推論される対応する3Dモデル化オブジェクトとの間の距離の計算に対する結果に依存する。
【0168】
例では、距離が3Dモデル化オブジェクトを表す第1の点群と、セットの対応するニューラルネットワークによって推論される対応する3Dモデル化オブジェクトを表す第2の点群との間の距離である。
【0169】
前述のように、データセットの各3Dモデル化オブジェクトは点群(したがって、3Dモデル化オブジェクトを表す)として提供されてもよく、又は3Dモデル化オブジェクトを表す点群は3Dモデル化オブジェクトが提供される別のフォーマットから決定されてもよい。いずれの場合も、修正するステップS420は、データセットの3Dモデル化オブジェクトのそれぞれを表す点群を操作することができる。また、3Dモデル化オブジェクトであるので、セットの対応するニューラルネットワークによって推論される対応する3Dモデル化オブジェクトは対応する点群によって表されてもよく、点群は任意選択で、他の3Dモデル化オブジェクトフォーマットから決定されてもよい。したがって、距離は、ワッサースタイン距離又は地球移動者の距離など、点群間の任意の距離とすることができる。
【0170】
例では、各ニューラルネットワークが対応する基本テンプレートの変形を対応する3Dモデル化オブジェクトに推論するように構成される。これらの例では、それぞれの基本テンプレートが3Dモデル化オブジェクトである。
【0171】
例では、各基本テンプレートがデータセットのサブデータセットの3Dモデル化オブジェクトの重心を表す3Dモデル化オブジェクトである。
【0172】
例では、損失が次のタイプのものである。
【数51】
【0173】
【0174】
例では、最小化がデータセットの3Dモデル化オブジェクトのセットを選択することと、選択されたセットの各3Dモデル化オブジェクトについて、3Dモデル化オブジェクトと、対応するニューラルネットワークによって推論される対応する3Dモデル化オブジェクトとの間の不均衡の小ささに報酬を与えることによって、対応するニューラルネットワークを3Dモデル化オブジェクトに割り当てることとの反復を含む。これらの例では、対応するニューラルネットワークが選択されたセットの1つ又は複数の3Dモデル化オブジェクトに割り当てられる。これらの例では、各ニューラルネットワークの重みは割り当ての結果として修正される。
【0175】
選択の反復は、データセットの各3Dモデル化オブジェクトが少なくとも1回選択されるまで、及び/又はデータセットの各3Dモデル化オブジェクトがそれに割り当てられた対応するニューラルネットワークを有するまで、実行されてもよい。選択されたセットの3Dモデル化オブジェクトに対応するニューラルネットワークを割り当てることは、3Dモデル化オブジェクトと、対応するニューラルネットワークによって推論された対応する3Dモデル化オブジェクトとの間の不均衡にペナルティを課す損失の各項を評価することを含むことができる。選択されたセットの3Dモデル化オブジェクトにそれぞれのニューラルネットワークを割り当てることは、不均衡が最小のペナルティを課される項を評価することをさらに含むことができる。例では、評価された項によってペナルティを課された不均衡に対応するそれぞれのニューラルネットワークが3Dモデル化オブジェクトに割り当てられたものである。
【0176】
言い換えれば、修正するステップS420方法はデータセット内の3Dモデル化オブジェクトのセットを反復的に訪れ、各セットの各3Dモデル化オブジェクトに、3Dモデル化オブジェクトに(例えば、幾何学的に)最も類似する対応する3Dモデル化オブジェクトを推論する対応するニューラルネットワークを割り当てる。したがって、対応するニューラルネットワークごとに、1つ又は複数の3Dモデル化オブジェクトが、対応するニューラルネットワークに反復的に割り当てられる。対応するニューラルネットワークの重みは、各割り当てにおいて修正される。例では対応するニューラルネットワークの重みが、対応するニューラルネットワークが対応するニューラルネットワークに現在割り当てられており、以前に割り当てられている少なくとも対応する3Dモデル化オブジェクトを推論するように構成されるように修正されることを意味する。
【0177】
したがって、修正するステップS420はセットの3Dモデル化オブジェクトを反復的に探索し、対応するニューラルネットワークを1つ又は複数の3Dモデル化オブジェクトに反復的に割り当てる。重みはまた、対応するニューラルネットワークが少なくともそれに割り当てられた3Dモデル化オブジェクトを推論する際に特化するように、反復的に修正されてもよい。言い換えれば、修正するステップS420はデータセットの3Dモデル化オブジェクトの1つ又は複数のサブデータセット(例えば、クラス)の選択を操作し、実質的に同時に、各それぞれのニューラルネットワークのそれぞれの重みを修正して、各それぞれのニューラルネットワークが、サブデータセットのそれぞれの1つの3Dモデル化オブジェクトの推論に特化するようにすることができる。
【0178】
ここで、対応するニューラルネットワークが、3Dモデル化オブジェクトの推論のために構成された対応するデコーダを備える対応するオートエンコーダである例の実装について説明する。
【0179】
この実装では、
【数53】
を、S30において決定されたk個の基本テンプレートとする(k≧2である)。学習するステップS50は、基本テンプレート毎に1つずつk個のオートエンコーダ
【数54】
を学習することからなる。各エンコーダは、先に引用した論文[8,9,10,11]に基づいて、3Dモデル化オブジェクトを表す入力3Dメッシュのサンプリングxを入力として受け取る。各デコーダgiは潜在ベクトルfj(x)及び3D座標yを入力として、基本テンプレートSjの変形を予測し、変形されたテンプレートが
【数55】
として得られる。各デコーダは、学習が始まる前に小さな変形を予測するように初期化される。これは、前述のように、各デコーダのそれぞれの重みを、所定のしきい値よりも低い初期値に初期化すること(S410)を含むことができる。それぞれの重みは、(ミニバッチに対するADAMソルバのような標準的な深い学習技術を使用して)以下の面取り距離損失を最小化することによって修正される(S420)。
【数56】
ここで、
【数57】
は面取り距離である。
【0180】
損失は、前述した第1の再割当てアルゴリズム又は第2の再割当てアルゴリズムに類似した再割当てアルゴリズムを使用することによって最小限に抑えることができる。これにより、訓練中に各ミニバッチの少なくとも数個の3Dモデル化オブジェクトによって、各オートエンコーダの再割り当て
【数58】
を可能にし、その
【数59】
を、各オートエンコーダに最適化させることができる。この実施態様ではオートエンコーダは基本テンプレートから開始するので、オートエンコーダは関連する基本テンプレートによって表される3Dモデル化オブジェクトの種類に特化することが容易である。さらに、それらは入力にマッチするためにこの基本テンプレートをわずかに変形する必要があるだけであり、その結果、オートエンコーダはそれらの出力のより一貫したトポロジを保証する。
【0181】
次に、プロセスの実施について説明する。
【0182】
この実施形態ではプロセスがいくつかのオートエンコーダをメッシュ上に学習し、各オートエンコーダは特定の種類のトポロジに自動的に特化する。各デコーダはまた、それ自身の基本テンプレートを変形し、基本テンプレートは、提供されたS10データベースセットに存在する異なる種類のベース形状を表すように自動的に決定される(S30)。これは、より良好な精度及びより低い再構成損失で多様体を学習し、異なるトポロジーを効率的に処理し、再構成された形状がより一貫したトポロジーを共有することを保証することを可能にする。
このプロセスの実施は4つのステージ1、2、3及び4を含み、これらはここで説明される。
【0183】
1.データセットのサンプル
【数60】
ステップS10において提供された3Dメッシュのデータセットあるとする。通常は同じクラスの対象(たとえば、椅子のデータセット)に属しているとする。このプロセスは、6つの正投影図上の各モデルをレイキャストすることによって、データセット内の各形状から点群mを抽出することを含む。このプロセスはさらに、固定数の点mを得るために各点群を均一にサブサンプリングすることを含む。そうするために、プロセスは点群のランダムな点によって開始し、既に選択された点から点群の最も遠い点を、我々が多数の点に到達するまで繰り返し選択する。ここで、
【数61】
は訓練メッシュのサンプリングされた点群を表す。このプロセスでは、形状の中心をさらに中心に合わせ、単位ボールスケーリングを適用する。
【0184】
2.基本テンプレートの学習- k個の基本テンプレートを決定するステップS30
このプロセスは、それぞれm個の点を有するk個の単位球
【数62】
から開始する。このプロセスは各球体が互いに非常にわずかに異なるように、各球体に非常に小さいノイズを加える。
【0185】
このプロセスは以前に引用した論文[12]に提示された緩和アルゴリズムを使用して、各球の点を最適化し、次の地球移動者の距離損失を(ミニバッチの確率的勾配降下によって)最小化する。
【数63】
ここで、
【数64】
はテンプレートSjと形状xiとの間の地球移動体の距離損失である。
【0186】
各球は他の最適化された球とは異なる一種の形状を表す基本テンプレート形状で最適化される。なぜなら、各訓練モデルに対して、最小値は、最も近い球のみを最適化するからである。各球体は、他の球体とは異なる特定のトポロジー及び形状の種類を表す特定の基本テンプレートに特化する。各基本テンプレートは、(地球移動者の距離が与えられた)3Dモデルの空間におけるそれ自体のクラスタの重心として解釈することができる。
【0187】
各球体をそれ自体の形状に特化させるために、プロセスはまた、ミニバッチ訓練中に再割り当てアルゴリズムを使用する。実際、すべての形状が同じ基本テンプレートに対して最小損失に達し、他の球が最適化されるのを妨げることが起こり得る。再割当アルゴリズムは、前述の第1の再割当アルゴリズム及び第2の再割当アルゴリズムのうちの1つとすることができる。
【0188】
損失L1は球体の頂点を最適化するが、トポロジーは考慮しない。これにより、正確な点群を持つ基本テンプレートが作成されるが、間違ったトポロジになる。したがって、このプロセスは、基本テンプレートを再メッシュ化することを含む。そうするために、プロセスは各基本テンプレートを粗い3Dグリッドに入れ、点を含む各ボクセルは値1を有し、他のボクセルはヌル値を有する。次に、このプロセスは、1に近い等値を有するマーチングキューブアルゴリズムを適用して、各基本テンプレートの粗いメッシュを抽出することを含む。このプロセスは各基本テンプレートの各点について正確な法線を計算するために、マーチングキューブアルゴリズムからの粗いメッシュを使用する。プロセスは各点を粗メッシュの最も近い三角形上に単に投影し、その法線に対して三角形の法線の重み付き平均を割り当て、重みは投影された点の重心重みである。これらの適切な法線を用いて、プロセスは正確なトポロジーを有する基本テンプレートを得るために、ポアソン表面再構成を実行し、このプロセスは、頂点が多すぎる場合に最終的に間引くことができる。ここで、
【数65】
はk個の学習済基本テンプレートを表す。各基本鋳型が球体に対してホメオモルフィックであることに注目されたい。
【0189】
3.多様体を学習-k個のオートエンコーダを学習するステップS40
このプロセスはさらに、各基本テンプレートに1つずつk個のオートエンコーダ
【数66】
を学習することを含む。各エンコーダは、先に引用した論文[8,9,10,11]に基づいて、入力メッシュのサンプリングを入力として取る。各デコーダgiは潜在ベクトルfj(x)及び3D座標yを入力として、基本テンプレートSjの変形を予測し、変形されたテンプレートが
【数67】
として得られる。各デコーダは、学習が始まる前に小さな変形を予測するように初期化される。
【0190】
オートエンコーダは、(ミニバッチにわたるADAMソルバなどの標準的な深い学習技法を使用して)以下のチャンファ距離損失を最小化することによって学習される。
【数68】
ここで、
【数69】
は面取り距離の関数である。
【0191】
プロセスはまた、
【数70】
を再割り当てし、その
【数71】
に各オートエンコーダを訓練中に各ミニバッチの少なくともいくつかの形状によって最適化させるために、前のステージと全く同じ分割アルゴリズムを使用する。オートエンコーダは、基本テンプレートから開始するので、関連する基本テンプレートによって表される形状の種類に特化することが容易である。さらに、それらは入力にマッチするためにこの基本テンプレートをわずかに変形する必要があるだけであり、その結果、オートエンコーダはそれらの出力のより一貫したトポロジを保証する。
【0192】
4. 多様体を生成モデルにする
多様体が学習されると、プロセスは新しい形状をサンプリングし合成することができるように、各オートエンコーダの各潜在空間についてガウス混合モデルを適合させることもできる。各オートエンコーダに対して、プロセスはこのオートエンコーダによって最良に再構成される訓練形状をとり、これらの形状を使用してk平均クラスタリングを初期化し、その後、ガウス混合に適合するために期待値最大化を実行する。ガウス混合は、容易にサンプリングできる各潜在空間上の確率分布関数を与える。
【0193】
さらに、テンプレート学習方法、多様体学習方法、プロセス、及び/又は使用方法を実行するための命令を含むコンピュータプログラムが提供される。
【0194】
さらに、プログラム及び/又はニューラルネットワーク及び/又はニューラルネットワークのセットが記録されたデータ記憶媒体を備える装置が提供される。この装置は、例えばSaaS、又は他のサーバ、あるいはクラウドベースのプラットフォームなど上で、一時的でないコンピュータ可読媒体を形成するか、又はそのような媒体として機能することができる。装置は代替的に、データ記憶媒体に結合されたプロセッサを備えることができる。したがって、装置は全体的に又は部分的にコンピュータシステムを形成することができる(たとえば、装置は、システム全体のサブシステムである)。システムは、プロセッサに結合されたグラフィカルユーザインターフェースをさらに備えることができる。
【0195】
次に、システム及びプログラムについて説明する。
【0196】
図21は、システムがCADシステムである場合のシステムのGUIの一例を示す。
【0197】
GUI 2100は、標準メニューバー2110、2120、並びに底部及び側面ツールバー2140、2150を有する典型的なCAD様インターフェースであってもよい。このようなメニュー及びツールバーは当技術分野で知られているように、ユーザが選択可能なアイコンのセットを含み、各アイコンは、1つ以上の操作又は機能に関連付けられる。これらのアイコンのいくつかは、ソフトウェアツールに関連付けられており、GUI 2100に表示される3Dモデル化オブジェクト2000の編集及び/又は作業のためにフィッティングされている。ソフトウェアツールは、ワークベンチにグループ化できる。各ワークベンチは、ソフトウェアツールの部分集合で構成される。特に、ワークベンチの1つは、モデル化された製品2000の幾何学的特徴を編集するのに適した編集ワークベンチである。動作中、設計者は例えば、オブジェクト2000の一部を事前に選択し、次いで、適切なアイコンを選択することによって、動作(例えば、寸法、色などを変更する)又は幾何学的制約を編集することができる。例えば、典型的なCAD動作は、画面上に表示される3Dモデル化オブジェクトの打ち抜き加工又は折り畳みのモデル化である。GUIは例えば、表示された製品2000に関連するデータ2500を表示することができる。図の例では「特徴木」として表示されるデータ2500、及びそれらの3D表現2000はブレーキキャリパ及びディスクを含むブレーキアセンブリに関する。GUIは編集された製品の動作のシミュレーションをトリガするために、又は表示された製品2000の様々な属性をレンダリングするために、例えば、オブジェクトの3D配向を容易にするための様々なタイプのグラフィックツール2130、2070、2080をさらに示すことができる。カーソル2060はユーザがグラフィックツールと対話することを可能にするために、触覚デバイスによって制御されてもよい。
【0198】
図22は、システムがクライアントコンピュータ・システム、例えばユーザのワークステーションであるシステムの一例を示す。
【0199】
この例のクライアントコンピュータは、内部通信バス1000に接続された中央処理装置(CPU)1010と、やはりバスに接続されたランダム・アクセス・メモリ(RAM)1070とを備える。クライアントコンピュータには、さらに、BUSに接続されたビデオ・ランダム・アクセス・メモリ1100に関連するグラフィカル・プロセッシング・ユニット(GPU)1110が設けられている。ビデオRAM 1100は、当技術分野ではフレームバッファとしても知られている。大容量記憶装置コントローラ1020は、ハードドライブ1030などの大容量記憶装置へのアクセスを管理する。コンピュータプログラム命令及びデータを有形に具現化するのに適した大容量メモリデバイスは、例として、EPROM、EEPROM、及びフラッシュメモリデバイスなどの半導体メモリデバイス、内部ハードディスク及びリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMディスク1040を含む、すべての形態の不揮発性メモリを含む。前述のいずれも、特別に設計されたASIC(特定用途向け集積回路)によって補足されるか、又はその中に組み込まれてもよい。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。クライアントコンピュータは、カーソル制御デバイス、キーボードなどの触覚デバイス1090も含むことができる。ユーザがディスプレイ1080上の任意の所望の位置にカーソルを選択的に位置決めすることを可能にするために、カーソル制御装置がクライアントコンピュータ内で使用される。さらに、カーソル制御装置はユーザが様々なコマンドを選択し、制御信号を入力することを可能にする。カーソル制御装置は、システムに制御信号を入力するための多数の信号発生装置を含む。典型的にはカーソル制御装置がマウスであってもよく、マウスのボタンは信号を生成するために使用される。代替的に又は追加的に、クライアントコンピュータシステムは、センシティブパッド及び/又はセンシティブスクリーンを含むことができる。
【0200】
コンピュータプログラムはコンピュータによって実行可能な命令を含むことができ、命令は、テンプレート学習方法、多様体学習方法、及び/又はプロセスを上記システムに実行させるための手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶媒体に記録可能であってもよい。プログラムは例えば、デジタル電子回路において、又はコンピュータハードウェア、ファームウェア、ソフトウェアにおいて、又はそれらの組み合わせにおいて実装されてもよい。プログラムは装置、例えば、プログラマブルプロセッサによる実行のための機械可読記憶デバイスに有形に具現化された製品として実装されてもよい。プロセス/方法ステップ(すなわち、テンプレート学習方法、多様体学習方法、及び/又はプロセスのステップ)は入力データに対して動作し、出力を生成することによって、プロセスの機能を実行するための命令のプログラムを実行するプログラマブルプロセッサによって実行され得る。したがって、プロセッサはプログラム可能であり、データ断片記憶システム、少なくとも1つの入力デバイス、及び少なくとも1つの出力デバイスからデータ断片及び命令を受信し、それらにデータ断片及び命令を送信するように結合され得る。アプリケーション・プログラムは、高レベルの手続き型又はオブジェクト指向プログラミング言語で、あるいは必要に応じてアセンブリ言語又は機械語で実装することができる。いずれの場合も、言語は、コンパイルされた言語又は解釈された言語であってもよい。プログラムはフルインストールプログラムであってもよいし、更新プログラムであってもよい。システムにプログラムを適用すると、いずれにしても、テンプレート学習方法、多様体学習方法、及び/又は処理を実行するための命令が得られる。