(57)【要約】      （修正有）【課題】それぞれが機械部品を表す３Ｄモデル化オブジェクトを含むデータセットを用いた改善された機械学習の方法を提供する。【解決手段】方法は、それぞれが機械部品を表す３Ｄモデル化オブジェクトを含むデータセットを提供することを含む。当該データセットは、１つまたは複数のサブデータセットを有する。各サブデータセットは、当該データセットの少なくとも一部を形成する。本方法は、各サブデータセットについて、ベーステンプレートを決定することと、各ベーステンプレートの各３Ｄモデル化オブジェクトへの変形を推定するように構成されたニューラルネットワークを学習することと、をさらに含む。ベーステンプレートは、サブデータセットの３Ｄモデル化オブジェクトの重心を表す３Ｄモデル化オブジェクトである。学習は、サブデータセットに基づく訓練を含む。【選択図】図１
2020115336.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによって実施される機械学習の方法であって、
それぞれが機械部品を表す３Ｄモデル化オブジェクトを含むデータセットであって、それぞれが当該データセットの少なくとも一部を形成する１つまたは複数のサブデータセットを有するデータセットを提供すること（Ｓ１０）と、
各サブデータセットについて、
ベーステンプレートであって、前記サブデータセットの３Ｄモデル化オブジェクトの重心を表す３Ｄモデル化オブジェクトであるベーステンプレートを決定すること（Ｓ３０）と、
前記ベーステンプレートの各３Ｄモデル化オブジェクトへの変形を推定するように構成されたニューラルネットワークを学習することであって、前記サブデータセットに基づく訓練を含む、学習すること（Ｓ４０）と、
を含む
ことを特徴とする方法。
【請求項２】
前記ベーステンプレートの決定（Ｓ３０）は、前記サブデータセットの各３Ｄモデル化オブジェクトについて、前記サブデータセットの前記３Ｄモデル化オブジェクトと候補ベーステンプレートとの不一致にペナルティを課す損失の、候補ベーステンプレートのうちの最小値を算出すること（Ｓ３００）を含む
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記サブデータセットの前記３Ｄモデル化オブジェクトと候補ベーステンプレートとの前記不一致は、前記３Ｄモデル化オブジェクトと前記候補ベーステンプレートとの距離の関数であることを特徴とする請求項２に記載の方法。
【請求項４】
前記距離は、前記３Ｄモデル化オブジェクトを表す第１の点群と前記候補ベーステンプレートを表す第２の点群との距離であることを特徴とする請求項３に記載の方法。
【請求項５】
前記損失は、
【数１５３】
2020115336.tif 000155
のタイプであり、ここで
【数１５４】
2020115336.tif 000156
は
【数１５５】
2020115336.tif 000157
と
【数１５６】
2020115336.tif 000158
との距離の関数であり、
【数１５７】
2020115336.tif 000159
は第２の点群であり、
【数１５８】
2020115336.tif 000160
は各サブデータセットにおける３Ｄモデル化オブジェクトの数であり、
【数１５９】
2020115336.tif 000161
は第１の点群である
ことを特徴とする請求項４に記載の方法。
【請求項６】
前記算出（Ｓ３００）は、
ベース３Ｄモデル化オブジェクトを提供することと、
前記ベース３Ｄモデル化オブジェクトから始めて、
前回の候補ベーステンプレートの前記損失に対する効果を評価することと、
前記前回の候補ベーステンプレートを新しい候補ベーステンプレートに変形することと、
を繰り返すこととを含む
ことを特徴とする請求項２〜５のいずれか１つに記載の方法。
【請求項７】
前記ベース３Ｄモデル化オブジェクトは球体を表し、かつ／あるいは、前記損失は、前記サブデータセットの各３Ｄモデル化オブジェクトに対して、前記サブデータセットの前記３Ｄモデル化オブジェクトを表す第１の点群と、前記新しい候補ベーステンプレートを表す第２の点群との、Ｅａｒｔｈ  Ｍｏｖｅｒ距離損失にペナルティを課す
ことを特徴とする請求項６に記載の方法。
【請求項８】
前記ベース３Ｄモデル化オブジェクトは点群であり、前記繰り返すことにより最適化された点群が得られ、オプションとして、前記ベーステンプレートの決定（Ｓ３０）は、
前記最適化された点群の点の法線を推定すること（Ｓ３３０）と、
前記推定された法線に基づいて、前記最適化された点群の表面再構築を実行すること（Ｓ３４０）とをさらに含む
ことを特徴とする請求項６または７に記載の方法。
【請求項９】
前記ニューラルネットワークは、前記変形を推定するように構成されたデコーダを含むオートエンコーダであることを特徴とする、請求項１〜８のいずれか１つに記載の方法。
【請求項１０】
請求項１〜９のいずれか１つに記載の方法により学習可能なニューラルネットワーク。
【請求項１１】
コンピュータにより実施される請求項１０に記載のニューラルネットワークの利用方法。
【請求項１２】
請求項１１に記載の方法であって、前記ニューラルネットワークは、前記変形を推定するように構成されたデコーダを含むオートエンコーダであり、
第１の３Ｄモデル化オブジェクトと第２の３Ｄモデル化オブジェクトを提供することと、
前記第１の３Ｄモデル化オブジェクトと前記第２の３Ｄモデル化オブジェクトに前記オートエンコーダを適用することと、
前記オートエンコーダの適用結果に基づいて、前記第１の３Ｄモデル化オブジェクトと前記第２の３Ｄモデル化オブジェクトとの形状マッチングを決定することとを含む
ことを特徴とする方法。
【請求項１３】
請求項１〜１０のいずれか１つに記載の方法、および／または、請求項１２に記載の方法を実行するための命令を含むコンピュータプログラム。
【請求項１４】
請求項１１に記載のニューラルネットワーク、および／または、請求項１３に記載のコンピュータプログラムが記録されたデータ記憶媒体を備える装置。
【請求項１５】
前記データ記憶媒体に接続されたプロセッサをさらに備える請求項１４に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータプログラムおよびシステムの分野に関し、より具体的には、それぞれが機械部品を表す３Ｄモデル化オブジェクトを含むデータセットを用いた機械学習の方法、システムおよびプログラムに関する。
【背景技術】
【０００２】
オブジェクトの設計、エンジニアリング、製造のため、多数のシステムおよびプログラムが市場に提供されている。ＣＡＤは、コンピュータ支援設計（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎ）の略語であり、例えば、オブジェクトを設計するためのソフトウェア・ソリューションに関する。ＣＡＥは、コンピュータ支援エンジニアリング（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｅｎｇｉｎｅｅｒｉｎｇ）の略語であり、例えば、将来の製品の物理的挙動をシミュレーションするためのソフトウェア・ソリューションに関する。ＣＡＭは、コンピュータ支援製造（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｍａｎｕｆａｃｔｕｒｉｎｇ）の略語であり、例えば、製造工程および動作を定義するためのソフトウェア・ソリューションに関する。このようなコンピュータ支援設計システムにおいて、グラフィカル・ユーザ・インターフェースは、技術の効率に関して、重要な役割を果たす。これらの技術は、製品ライフサイクル管理（Ｐｒｏｄｕｃｔ  Ｌｉｆｅｃｙｃｌｅ  Ｍａｎａｇｅｍｅｎｔ：ＰＬＭ）システムに組み込むことができる。ＰＬＭとは、企業が、拡張エンタープライズの概念全体にわたって、製品データを共有し、共通の工程を適用し、構想に始まり製品寿命の終わりに至る製品開発のための企業知識を活用するのを支援するビジネス戦略を指す。ダッソー・システムズが提供するＰＬＭソリューション（製品名ＣＡＴＩＡ、ＥＮＯＶＩＡ、ＤＥＬＭＩＡ）は、製品エンジニアリング知識をオーガナイズするエンジニアリング・ハブ、製品エンジニアリング知識を管理する製造ハブ、およびエンジニアリング・ハブと製造ハブの両方に対するエンタープライズ統合と接続を可能にするエンタープライズ・ハブを提供する。全てのシステムは、製品、工程、リソースを結ぶオープンなオブジェクトモデルを提供し、最適化された製品定義、製造準備、生産およびサービスを推進する、動的な知識ベースの製品作製および意思決定支援を可能にする。
【０００３】
こうした文脈および他の文脈において、機械学習、特にオートエンコーダ、および／または、多様体学習の重要性が増している。
【０００４】
次の論文が、本分野に関連し、以下で参照されている。
【０００５】
［１］：“Ｓｔａｃｋｅｄ  Ｄｅｎｏｉｓｉｎｇ  Ａｕｔｏｅｎｃｏｄｅｒｓ：Ｌｅａｒｎｉｎｇ  Ｕｓｅｆｕｌ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎｓ  ｉｎ  ａ  Ｄｅｅｐ  Ｎｅｔｗｏｒｋ  ｗｉｔｈ  ａ  Ｌｏｃａｌ  Ｄｅｎｏｉｓｉｎｇ  Ｃｒｉｔｅｒｉｏｎ”，Ｐ．Ｖｉｎｃｅｎｔ，Ｈ．Ｌａｒｃｏｈｅｌｌｅ，Ｉ．Ｌａｊｏｉｅ，Ｙ．Ｂｅｎｇｉｏ，Ｐ．Ｍａｎｚａｇｏｌ，ｉｎ  Ｔｈｅ  Ｊｏｕｒｎａｌ  ｏｆ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ  Ｒｅｓｅａｒｃｈ，２０１０．
［２］：“Ｒｅｄｕｃｉｎｇ  ｔｈｅ  Ｄｉｍｅｎｓｉｏｎａｌｉｔｙ  ｏｆ  Ｄａｔａ  ｗｉｔｈ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ”，Ｇ．Ｅ．Ｈｉｎｔｏｎ，Ｒ．Ｒ．Ｓａｌａｋｈｕｔｄｉｎｏｖ，ｉｎ  Ｓｃｉｅｎｃｅ，２００６．
［３］：“Ｌｅａｒｎｉｎｇ  Ｄｅｅｐ  Ａｒｃｈｉｔｅｃｔｕｒｅｓ  ｆｏｒ  ＡＩ”，Ｙ．Ｂｅｎｇｉｏ，ｉｎ  Ｆｏｕｎｄａｔｉｏｎｓ  ａｎｄ  Ｔｒｅｎｄｓ  ｉｎ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ，２００９．
［４］Ｍａｘｉｍ  Ｔａｔａｒｃｈｅｎｋｏ，Ａｌｅｘｅｙ  Ｄｏｓｏｖｉｔｓｋｉｙ，ａｎｄ  Ｔｈｏｍａｓ  Ｂｒｏｘ．Ｍｕｌｔｉ−ｖｉｅｗ  ３ｄ  ｍｏｄｅｌｓ  ｆｒｏｍ  ｓｉｎｇｌｅ  ｉｍａｇｅｓ  ｗｉｔｈ  ａ  ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｎｅｔｗｏｒｋ．Ｉｎ  Ｅｕｒｏｐｅａｎ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ，２０１６．
［５］Ｘｉｎｃｈｅｎ  Ｙａｎ，Ｊｉｍｅｉ  Ｙａｎｇ，Ｅｒｓｉｎ  Ｙｕｍｅｒ，Ｙｉｊｉｅ  Ｇｕｏ，ａｎｄ  Ｈｏｎｇｌａｋ  Ｌｅｅ．Ｐｅｒｓｐｅｃｔｉｖｅ  ｔｒａｎｓｆｏｒｍｅｒ  ｎｅｔｓ：Ｌｅａｒｎｉｎｇ  ｓｉｎｇｌｅ−ｖｉｅｗ  ３ｄ  ｏｂｊｅｃｔ  ｒｅｃｏｎｓｔｒｕｃｔｉｏｎ  ｗｉｔｈｏｕｔ  ３ｄ  ｓｕｐｅｒｖｉｓｉｏｎ．Ｉｎ  Ａｄｖａｎｃｅｓ  ｉｎ  Ｎｅｕｒａｌ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｙｓｔｅｍｓ，２０１６．
［６］Ｚｈｉｒｏｎｇ  Ｗｕ，Ｓｈｕｒａｎ  Ｓｏｎｇ，Ａｄｉｔｙａ  Ｋｈｏｓｌａ，Ｆｉｓｈｅｒ  Ｙｕ，Ｌｉｎｇｕａｎｇ  Ｚｈａｎｇ，Ｘｉａｏｏｕ  Ｔａｎｇ，ａｎｄ  Ｊｉａｎｘｉｏｎｇ  Ｘｉａｏ．３ｄ  ｓｈａｐｅｎｅｔｓ：Ａ  ｄｅｅｐ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  ｆｏｒ  ｖｏｌｕｍｅｔｒｉｃ  ｓｈａｐｅｓ．Ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ａｎｄ  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ，２０１５．
［７］Ｃｈｒｉｓｔｉａｎ  Ｈａｎｅ，Ｓｈｕｂｈａｍ  Ｔｕｌｓｉａｎｉ，ａｎｄ  Ｊｉｔｅｎｄｒａ  Ｍａｌｉｋ．Ｈｉｅｒａｒｃｈｉｃａｌ  ｓｕｒｆａｃｅ  ｐｒｅｄｉｃｔｉｏｎ  ｆｏｒ  ３ｄ  ｏｂｊｅｃｔ  ｒｅｃｏｎｓｔｒｕｃｔｉｏｎ．Ｉｎ  ３ＤＶ，２０１７．
［８］Ｃｈａｒｌｅｓ  Ｒ  Ｑｉ，Ｈａｏ  Ｓｕ，Ｋａｉｃｈｕｎ  Ｍｏ，ａｎｄ  Ｌｅｏｎｉｄａｓ  Ｊ  Ｇｕｉｂａｓ．Ｐｏｉｎｔｎｅｔ：Ｄｅｅｐ  ｌｅａｒｎｉｎｇ  ｏｎ  ｐｏｉｎｔ  ｓｅｔｓ  ｆｏｒ  ３ｄ  ｃｌａｓｓｉｆｉｃａｔｉｏｎ  ａｎｄ  ｓｅｇｍｅｎｔａｔｉｏｎ．Ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ａｎｄ  Ｐａｔｔｅｒｎ  Ｒｅｇｏｇｎｉｔｉｏｎ，２０１７．
［９］Ｃｈａｒｌｅｓ  Ｒｕｉｚｈｏｎｇｔａｉ  Ｑｉ，Ｌｉ  Ｙｉ，Ｈａｏ  Ｓｕ，ａｎｄ  Ｌｅｏｎｉｄａｓ  Ｊ．Ｇｕｉｂａｓ．Ｐｏｉｎｔｎｅｔ＋＋：Ｄｅｅｐ  ｈｉｅｒａｒｃｈｉｃａｌ  ｆｅａｔｕｒｅ  ｌｅａｒｎｉｎｇ  ｏｎ  ｐｏｉｎｔ  ｓｅｔｓ  ｉｎ  ａ  ｍｅｔｒｉｃ  ｓｐａｃｅ．Ｉｎ  ＮＩＰＳ，２０１７．
［１０］Ｔｈｉｂａｕｌｔ  Ｇｒｏｕｅｉｘ，Ｍａｔｔｈｅｗ  Ｆｉｓｈｅｒ，Ｖｌａｄｉｍｉｒ  Ｇ．Ｋｉｍ，Ｂｒｙａｎ  Ｒｕｓｓｅｌｌ，ａｎｄ  Ｍａｔｈｉｅｕ  Ａｕｂｒｙ．ＡｔｌａｓＮｅｔ：Ａ  Ｐａｐｉｅｒ−Ｍａｃｈｅ  Ａｐｐｒｏａｃｈ  ｔｏ  Ｌｅａｒｎｉｎｇ  ３Ｄ  Ｓｕｒｆａｃｅ  Ｇｅｎｅｒａｔｉｏｎ．Ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ａｎｄ  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ，２０１８．
［１１］Ｙａｏｑｉｎｇ  Ｙａｎｇ，Ｃｈｅｎ  Ｆｅｎｇ，Ｙｉｒｕ  Ｓｈｅｎ，ａｎｄ  Ｄｏｎｇ  Ｔｉａｎ．ＦｏｌｄｉｎｇＮｅｔ：Ｐｏｉｎｔ  Ｃｌｏｕｄ  Ａｕｔｏ−ｅｎｃｏｄｅｒ  ｖｉａ  Ｄｅｅｐ  Ｇｒｉｄ  Ｄｅｆｏｒｍａｔｉｏｎ．Ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ａｎｄ  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ，２０１８．
［１２］Ｄｉｍｉｔｒｉ  Ｐ．Ｂｅｒｔｓｅｋａｓ．Ｔｈｅ  Ａｕｃｔｉｏｎ  Ａｌｇｏｒｉｔｈｍ：ａ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｒｅｌａｘａｔｉｏｎ  Ｍｅｔｈｏｄ  ｆｏｒ  ｔｈｅ  Ａｓｓｉｇｎｍｅｎｔ．Ｉｎ  Ａｎｎａｌｓ  ｏｆ  Ｏｐｅｒａｔｉｏｎｓ  Ｒｅｓｅａｒｃｈ−Ｓｐｅｃｉａｌ  Ｉｓｓｕｅ：Ｐａｒａｌｌｅｌ  Ｏｐｔｉｍｉｚａｔｉｏｎ  ｏｎ  Ｎｏｖｅｌ  Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅｓ，Ｖｏｌｕｍｅ  １４  Ｉｓｓｕｅ  １−４，Ｊｕｎｅ  １９８８．
同じクラスのサンプルを表すデータセット、例えば椅子の画像のデータセット、あるいは車の３Ｄモデルのデータセットが与えられたとき、オートエンコーダ（上に引用した論文［１，２］で説明）を用いて、このデータセットの元の入力空間と、潜在空間と呼ばれることが多い低次元空間との間での、マッピングを学習することができる。さらに、オートエンコーダは、潜在空間から元の入力空間への逆マッピングを学習することもある。これらを用いて、データ内の有意な特徴を抽出したり、データをコンパクトな表現に圧縮したりすることができる。
【０００６】
論文［４］は、入力がオブジェクトと視点のＲＧＢ画像である、ある種のオートエンコーダを学習するものであって、与えられた視点での入力画像内のオブジェクトの深度マップを予測する。一方、論文［５］は、単一のＲＧＢ画像を、入力における３Ｄオブジェクトを表す３２３ボクセルのグリッドに、直接変換するオートエンコーダを学習する。
【０００７】
論文［６］は、３Ｄ形状のバイナリ占有量を表す３２３ボクセルのグリッド上で３Ｄ畳み込み深層信念ネットワークを直接学習する。論文［７］で行われているように、八分木を使用して、高解像度のボクセルグリッドを再構築することができる。
【０００８】
論文［８］およびそのマルチスケール拡張の論文［９］は、ＰｏｉｎｔＮｅｔと呼ばれる点群上で直接学習できる深層アーキテクチャを紹介している。点群がｎ個の３Ｄ点のベクトルとして表される場合、重要なのは、点の並べ替えに対し不変のネットワークを構築することであり、それにより、ネットワークは、実際には、並べ替えの作用によりｎ個の３Ｄ点の空間の商に依存することになる。すなわち、点群を表すのに用いる順序とは無関係となる。この目標を達成するために、アーキテクチャは、各入力ポイントに適用される共有レイヤーに依存し、ｇ（ｈ（ｘ１），・・・，ｈ（ｘｎ））という形式をとる。ここで、ｈは
【数１】
2020115336.tif 000003
から
【数２】
2020115336.tif 000004
のニューラルネットワークであり、ｇはｍａｘ関数などの並べ替えに対して不変な関数である。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
これらすべての方法には、正確性の欠如という問題がある。
【００１０】
このような文脈において、それぞれが機械部品を表す３Ｄモデル化オブジェクトを含むデータセットを用いた改善された機械学習の方法が依然として求められている。
【課題を解決するための手段】
【００１１】
よって、コンピュータによって実施される機械学習の方法が提供される。本方法は、それぞれが機械部品を表す３Ｄモデル化オブジェクトを含むデータセットを提供することを含む。データセットは、１つまたは複数のサブデータセットを有する。各サブデータセットは、データセットの少なくとも一部を形成する。本方法は、各サブデータセットについて、ベーステンプレートを決定することと、各ベーステンプレートの各３Ｄモデル化オブジェクトへの変形を推定するように構成されたニューラルネットワークを学習することとをさらに含む。ベーステンプレートは、サブデータセットの３Ｄモデル化オブジェクトの重心を表す３Ｄモデル化オブジェクトである。当該学習は、サブデータセットに基づく訓練を含む。
【００１２】
これは、それぞれが機械部品を表す３Ｄモデル化オブジェクトを含むデータセットを用いた改善された機械学習の方法を構成する。
【００１３】
本方法は、以下のうち１つまたは複数を含んでいてもよい。
【００１４】
前記ベーステンプレートの決定は、サブデータセットの各３Ｄモデル化オブジェクトについて、サブデータセットの３Ｄモデル化オブジェクトと候補ベーステンプレートとの不一致にペナルティを課す損失の、候補ベーステンプレートのうちの最小値を算出することを含む。
【００１５】
サブデータセットの３Ｄモデル化オブジェクトと候補ベーステンプレートとの不一致は、３Ｄモデル化オブジェクトと候補ベーステンプレートとの距離の関数である。
【００１６】
当該距離は、３Ｄモデル化オブジェクトを表す第１の点群と候補ベーステンプレートを表す第２の点群との距離である。
【００１７】
損失は以下のタイプである。
【数３】
2020115336.tif 000005
ここで、
【数４】
2020115336.tif 000006
は
【数５】
2020115336.tif 000007
と
【数６】
2020115336.tif 000008
との距離の関数であり、
【数７】
2020115336.tif 000009
は第２の点群であり、
【数８】
2020115336.tif 000010
は各サブデータセットにおける３Ｄモデル化オブジェクトの数であり、
【数９】
2020115336.tif 000011
は第１の点群であり、
前記算出は、
ベース３Ｄモデル化オブジェクトを提供することと、
ベース３Ｄモデル化オブジェクトから始めて、
前回の候補ベーステンプレートの損失に対する効果を評価することと、
前回の候補ベーステンプレートを新しい候補ベーステンプレートに変形することと、
を繰り返すことを含む。
【００１８】
前記ベース３Ｄモデル化オブジェクトは球体を表し、かつ／あるいは、前記損失は、サブデータセットの各３Ｄモデル化オブジェクトに対して、サブデータセットの３Ｄモデル化オブジェクトを表す第１の点群と、新しい候補ベーステンプレートを表す第２の点群とのＥａｒｔｈ  Ｍｏｖｅｒ距離損失にペナルティを課す。
【００１９】
ベース３Ｄモデル化オブジェクトは点群であり、前記繰り返しにより最適化された点群が得られ、オプションとして、前記ベーステンプレートの決定は、
最適化された点群の点の法線を推定することと、
推定された法線に基づいて、最適化された点群の表面再構築を実行することとをさらに含み、かつ／あるいは、
ニューラルネットワークは、変形を推定するように構成されたデコーダを含むオートエンコーダである。
【００２０】
さらには、本方法に従って学習可能なニューラルネットワークが提案される。
【００２１】
さらには、コンピュータにより実施されるニューラルネットワークの利用方法が提案される。
【００２２】
本利用方法は、以下を含んでいてもよい。
【００２３】
ニューラルネットワークは、変形を推定するように構成されたデコーダを含むオートエンコーダであり、前記方法は、
第１の３Ｄモデル化オブジェクトと第２の３Ｄモデル化オブジェクトを提供することと、
第１の３Ｄモデル化オブジェクトと第２の３Ｄモデル化オブジェクトにオートエンコーダを適用することと、
オートエンコーダの適用結果に基づいて、第１の３Ｄモデル化オブジェクトと第２の３Ｄモデル化オブジェクトとの形状マッチングを決定することとを含む。
【００２４】
さらには、本方法、および／または、本利用方法を実行するための命令を含むコンピュータプログラムが提供される。
【００２５】
さらには、ニューラルネットワーク、および／または、コンピュータプログラムが記録されたデータ記憶媒体を備える装置が提供される。
【００２６】
装置は、例えば、ＳａａＳ（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  ｓｅｒｖｉｃｅ：サービスとしてのソフトウェア）や他のサーバ、あるいはクラウドベースのプラットフォームなどで、非一時的なコンピュータ読み取り可能な媒体を形成し、または、そのようなものとして機能してもよい。あるいは、装置は、データ記憶媒体に接続されたプロセッサを備えていてもよい。したがって、装置は、全体として、または部分的に、コンピューターシステムを形成してもよい（例えば、装置は、システム全体のサブシステムである）。システムは、プロセッサに接続されたグラフィカル・ユーザ・インターフェースをさらに備えてもよい。
以下、非限定的な例として、実施の形態を、添付の図面を参照しつつ説明する。
【図面の簡単な説明】
【００２７】
【図１】本方法の例を統合する、コンピュータによって実施されるプロセスの例のフローチャートを示す。
【図２】本方法および／または本プロセスおよび／または本利用方法を示す。
【図３】本方法および／または本プロセスおよび／または本利用方法を示す。
【図４】本方法および／または本プロセスおよび／または本利用方法を示す。
【図５】本方法および／または本プロセスおよび／または本利用方法を示す。
【図６】本方法および／または本プロセスおよび／または本利用方法を示す。
【図７】本方法および／または本プロセスおよび／または本利用方法を示す。
【図８】本方法および／または本プロセスおよび／または本利用方法を示す。
【図９】本方法および／または本プロセスおよび／または本利用方法を示す。
【図１０】本方法および／または本プロセスおよび／または本利用方法を示す。
【図１１】本方法および／または本プロセスおよび／または本利用方法を示す。
【図１２】本方法および／または本プロセスおよび／または本利用方法を示す。
【図１３】本方法および／または本プロセスおよび／または本利用方法を示す。
【図１４】本方法および／または本プロセスおよび／または本利用方法を示す。
【図１５Ａ】本方法および／または本プロセスおよび／または本利用方法を示す。
【図１５Ｂ】本方法および／または本プロセスおよび／または本利用方法を示す。
【図１６】本方法および／または本プロセスおよび／または本利用方法を示す。
【図１７】本方法および／または本プロセスおよび／または本利用方法を示す。
【図１８】本方法および／または本プロセスおよび／または本利用方法を示す。
【図１９】本方法および／または本プロセスおよび／または本利用方法を示す。
【図２０】本方法および／または本プロセスおよび／または本利用方法を示す。
【図２１】本システムのグラフィカル・ユーザ・インターフェースの例を示す。
【図２２】本システムの例を示す。
【発明を実施するための形態】
【００２８】
それぞれが機械部品を表す３Ｄモデル化オブジェクトを含むデータセットを用いた、コンピュータにより実施される機械学習の方法が提供される。
【００２９】
特に、コンピュータによって実施される第１の機械学習の方法が提供される。第１の方法は、３Ｄモデル化オブジェクトを含むデータセットを提供することを含む。３Ｄモデル化オブジェクトはそれぞれ、各機械部品を表す。当該データセットは、１つまたは複数のサブデータセットを有する。各サブデータセットは、データセットの少なくとも一部を形成する。第１の方法は、各サブデータセットについて、ベーステンプレートを決定することをさらに含む。ベーステンプレートは、サブデータセットの３Ｄモデル化オブジェクトの重心を表す３Ｄモデル化オブジェクトである。第１の方法は、各ベーステンプレートの各３Ｄモデル化オブジェクトへの変形を推定するように構成されたニューラルネットワークを学習することをさらに含む。当該学習は、サブデータセットに基づく訓練を含む。この第１の方法は、以下では「テンプレート学習方法」とも呼ばれる。
【００３０】
テンプレート学習方法は、それぞれが機械部品を表す３Ｄモデル化オブジェクトを含むデータセットを用いた改善された機械学習の方法を構成する。
【００３１】
特に、テンプレート学習方法では、各サブデータセットについて、サブデータセットの３Ｄモデル化オブジェクトの重心を表す３Ｄモデル化オブジェクトを決定できる。言い換えれば、テンプレート学習方法は、３Ｄモデル化オブジェクト、すなわち、サブデータセットの３Ｄモデル化オブジェクト（例えば、その平均形状）を表すベーステンプレートを決定する。テンプレート学習方法はさらに、重心の、各３Ｄモデル化オブジェクトへの変形を推定するニューラルネットワークの学習を可能にする。そのようなニューラルネットワークの学習は、サブデータセットに基づく訓練を含む。言い換えれば、学習では、サブデータセットの３Ｄモデル化オブジェクトを用いて、そのようなモデル化オブジェクトの重心の変形の推定を学習する。したがって、学習は、変形の正確な詳細の推定の学習に集中してもよい。なぜなら、サブテンプレートの重心であるベーステンプレートは、大きく、かつ／あるいは、大まかに変形してサブデータセットの３Ｄモデル化オブジェクトに変換する必要がないからである。したがって、テンプレート学習方法によって学習したニューラルネットワークは、ベーステンプレートの、データセットの３Ｄモデル化オブジェクトへの正確な変形を推定する。例において、ニューラルネットワークは、変形を推定するように構成されたデコーダを含むオートエンコーダである。そのような例では、オートエンコーダは３Ｄモデル化オブジェクトを入力とし、３Ｄモデル化オブジェクトの再構築を出力してもよく、再構築は、デコーダによって推定された、ベーステンプレートの、３Ｄモデル化オブジェクトへの変形であるか、またはそれに基づく。デコーダは、ベーステンプレートのサブデータセットの３Ｄモデル化オブジェクトへの正確な変形を推定するため、オートエンコーダによるそのようなオブジェクトの再構築は正確である。
【００３２】
例において、データセットは、それぞれｋ個のサブデータセットによって分割されるか、実質的に分割され、数ｋは、例えば２よりも大きい。これらの例では、テンプレート学習方法はｋ個のベーステンプレートを決定し、ｋ個のニューラルネットワークを学習する。各ベーステンプレートは、それぞれのサブデータセットの重心を表す。これらの例では、テンプレート学習方法によって学習した各ニューラルネットワークは、ｋ個のベーステンプレートのうちのそれぞれ１つの、３Ｄモデル化オブジェクトへの正確な変形を推定する。したがって、上述のように、各ニューラルネットワークは、ｋ個のベーステンプレートのうちのそれぞれ１つ（ｋ個のベーステンプレートのうちのそれぞれ１つが重心を表すような１つ）の、それぞれのサブデータセットの、３Ｄモデル化オブジェクトへの正確な変形を推定する。言い換えれば、テンプレート学習方法は、各サブデータセットの重心のサブデータセットのオブジェクトへの正確な変形を推定することに特化したｋ個のニューラルネットワークを学習する。よって、例においては、テンプレート学習方法は、各サブデータセットの３Ｄモデル化オブジェクトの再構築にそれぞれ特化したｋ個のオートエンコーダを学習してもよい。
【００３３】
なお、数ｋは１に等しくてもよく、その場合、データセットは１つのサブデータセットのみを含む。サブデータセットは少なくとも一部を形成し、これは、この場合、サブデータセットがデータセットと等しいか、実質的に等しいことを意味する。そのような例では、テンプレート学習方法は、決定されたベーステンプレートの変形を推定するために構成されたニューラルネットワークの学習の上述の精度から、依然として恩恵を受ける。実際、決定されたベーステンプレートは、データセットの、すべての、または実質的にすべての３Ｄモデル化オブジェクトの重心を表すため、その学習中に、決定されたベーステンプレートの変形を推定するように構成されたニューラルネットワークは、変形の正確な詳細の学習に集中してもよい。
【００３４】
数ｋは、データセット自体が３Ｄモデル化オブジェクトのｋ個のクラスに分割されるか、実質的に分割されるという事実に対応してもよい。すなわち、各サブデータセットは、各クラスの３Ｄモデル化オブジェクトで、一意に、または実質的に一意に、構成される。「データセットは、それ自体、それぞれ各クラスの３Ｄモデル化オブジェクトで構成されるｋ個のサブデータセットによって分割される」とは、例においては、テンプレート学習方法が、ベーステンプレートの決定前、および／または、ニューラルネットワークの学習前に、それぞれ各クラスの３Ｄモデル化オブジェクトからなるｋ個のサブデータセットによってデータセットを分割するステップを含むことを意味する。分割は、データセットの各３Ｄモデル化オブジェクトに、それぞれのクラスを表すラベルを割り当てることを含んでいてもよい。よって、このような場合、テンプレート学習方法は、それぞれ各サブデータセットの重心の、サブデータセットに対応するクラスのオブジェクトへの正確な変形を推定することに特化した、ｋ個のニューラルネットワークを提供する。よって、例においては、テンプレート学習方法は、各クラスの３Ｄモデル化オブジェクトの再構築にそれぞれ特化したｋ個のオートエンコーダを学習してもよい。
【００３５】
追加的に、または代替的に、数ｋはユーザによって提供されてもよい。そのような例において、データセットは必ずしもそれ自体がそれぞれのクラスの３Ｄモデル化オブジェクトで構成されるｋ個のサブデータセットに分割または実質的に分割されているわけではなく、数ｋを指定することでそのような分割を実施できる。「実施する」とは、（例えば、ユーザ操作なしに）分割がベーステンプレートの決定、および／または、ニューラルネットワークの学習の結果として生じ得る（および／または、その最中に生じ得る）ことを意味する。実際、ｋ個のベーステンプレートを決定することは、共通損失を最小化することを含んでいてもよい。データセットの各３Ｄモデル化オブジェクトについて、共通損失は、複数の項から項を選択する。各項は、３Ｄモデル化オブジェクトと候補ベーステンプレートとの不一致にペナルティを課す。選択された項は、複数の項のうち不一致に対するペナルティが最も小さい項であってもよい。言い換えれば、決定は、候補ベーステンプレート（潜在的なベーステンプレートとしてテストされた３Ｄモデル化オブジェクト）を、それらの、データセットの３Ｄモデル化オブジェクトとの類似性に応じて（例えば、繰り返し）選択を操作する。これにより、各サブデータセットのすべての３Ｄモデル化オブジェクトとの平均非類似性が最小であるｋ個のベーステンプレートの決定が実施される。言い換えると、本テンプレート学習方法は、ｋ個の重心の決定を実施することにより、データセットのｋ個のサブデータセットへの分割を実施し、それにより、重心の１つに対する（例えば、最も高い）類似性に応じて、データセットのオブジェクトをクラスタ化する。言い換えれば、数ｋを提供すると、データセットが自動的にｋ個の各クラスに分割され、各クラスは、ｋ個のサブデータセットのそれぞれ１つのオブジェクト、すなわち、サブデータセットの重心に対する非類似性が最小のオブジェクトに対応する。このような分割により、学習されたｋ個のニューラルネットワークのうちの学習された各ニューラルネットワークは、各サブデータセットの重心の、サブデータセットに対応するクラスのオブジェクトへの正確な変形を推定することに特化したものとなる。データセット自体が３Ｄモデル化オブジェクトのｋ個のクラスに分割または実質的に分割されている例においては、上述の、数ｋの提供に続くデータセットの分割は、実際にはデータセットの分割それ自体に対応するか、または実質的に対応していてもよい。言い換えれば、上述の、数ｋの提供に続くデータセットの分割は、データセットの分割それ自体と同じ結果（すなわち、データセットの同じ分割）になってもよい。
【００３６】
例においては、サブデータセットは１つだけで（例えば、データセット全体を形成するサブデータセット１つだけ）、したがって、データセット全体の重心を表すテンプレートが１つだけ決定される。他の例では、いくつかのサブデータセットがあり、よってサブデータセットごとに１つの重心が決定される。そのような例における特定の例では、データセットは未加工（すなわち、データセットのサブデータセット要素がどこに属するかに関する情報なし）で提供され、学習は、単一の損失を最小限に抑える（すなわち、その他の損失についてはそうしない）ことを含む。このような特定の例では、損失は、要素の割り当てを操作してそれぞれのサブデータセットを修正するように構成される。このような例では、いくつかのベーステンプレートを学習することにより、データセットを事前にいくつかのサブデータセットに分けておく必要がなくなる。このような例では、単一の損失により、ベーステンプレートの学習中に自動的にデータセットを段階的にクラスタ化できる場合がある（いくつかのオートエンコーダの学習と同様）。
【００３７】
また、コンピュータによって実施される第２の機械学習の方法が提供される。第２の方法は、３Ｄモデル化オブジェクトを含むデータセットを提供することを含む。３Ｄモデル化オブジェクトはそれぞれ、各機械部品を表す。第２の方法は、ニューラルネットワークの集合を提供することを含む。各ニューラルネットワークは、それぞれ重みを有する。各ニューラルネットワークは、３Ｄモデル化オブジェクトを推定するように構成されている。第２の方法は、損失を最小化することにより各ニューラルネットワークの重みを修正することをさらに含む。データセットの各３Ｄモデル化オブジェクトについて、損失は、複数の項から項を選択する。各項は、３Ｄモデル化オブジェクトと、集合のうちの各ニューラルネットワークによって推定された各３Ｄモデル化オブジェクトとの不一致にペナルティを課す。選択された項は、複数の項のうち不一致に対するペナルティが最も小さい項であってもよい。この第２の方法は、以下では「多様体学習方法」とも呼ぶ。
【００３８】
多様体学習方法は、それぞれが機械部品を表す３Ｄモデル化オブジェクトを含むデータセットを用いた改善された機械学習の方法を構成する。
【００３９】
特に、多様体学習方法は、３Ｄモデル化オブジェクトの同じデータセット上で、それぞれが３Ｄモデル化オブジェクトを推定するいくつかのニューラルネットワークを学習する。学習には損失の最小化が含まれ、損失は、データセットの３Ｄモデル化オブジェクトと各ニューラルネットワークによって推定された３Ｄモデル化オブジェクトとの不一致にペナルティを課す項の選択を操作する。選択された項は、不一致に対するペナルティが最も小さい項である。言い換えると、多様体学習方法は、データセットの各３Ｄモデル化オブジェクトについて、どのニューラルネットワークが３Ｄモデル化オブジェクトを（例えば最も）正確に推定するかの選択を（例えば、繰り返し）操作することによって、ニューラルネットワークを学習する。その結果、各ニューラルネットワークは（例えば、学習中に繰り返し、例えば漸進的に）データセットのサブデータセットの３Ｄモデル化オブジェクトを推定することに特化し、各サブデータセットは、ニューラルネットワークが特化しているデータセットの３Ｄモデル化オブジェクトからなる。したがって、多様体学習方法によって学習されたニューラルネットワークは正確である。例においては、ニューラルネットワークはそれぞれ、３Ｄモデル化オブジェクトを推定するように構成されたデコーダを含むオートエンコーダである。そのような例では、各オートエンコーダは３Ｄモデル化オブジェクトを入力とし、３Ｄモデル化オブジェクトの再構築を出力してもよく、再構築は、デコーダにより推定された３Ｄモデル化オブジェクトであるか、またはそれに基づく。各デコーダは、データセットのサブデータセットの３Ｄモデル化オブジェクトを正確に推定するため、オートエンコーダによるそのようなオブジェクトの再構築は正確である。
【００４０】
例において、多様体学習方法はｋ個のニューラルネットワークを学習する。つまり、ニューラルネットワークの集合はｋ個のニューラルネットワークからなる。数ｋはユーザにより提供されてもよい。数ｋのそのような提供により、データセットのｋ個のサブデータセットそれぞれの３Ｄモデル化オブジェクトの推定において、各ニューラルネットワークの上記特化が実施される。このような数ｋの提供により、データセットのｋ個のクラスの３Ｄモデル化オブジェクトへの分割も（例えば、学習中に、例えば、ユーザ操作なしで）実施される。各クラスは、学習されたｋ個のニューラルネットワークのそれぞれ１つが推定に特化する３Ｄモデル化オブジェクトに対応する。例においては、３Ｄモデル化オブジェクトのｋ個のクラスへのデータセットの分割の実施は、３Ｄモデル化オブジェクトのｋ個のクラスへのデータセットの分割自体、または実質的な分割に相当し、ここで、各サブデータセットは、それぞれ１つのクラスの３Ｄモデル化オブジェクトで一意にまたは実質的に一意に作成される。「３Ｄモデル化オブジェクトのｋ個のクラスへのデータセットの分割自体」とは、例においては、多様体学習方法が、ニューラルネットワークの学習前に、それぞれ各クラスの３Ｄモデル化オブジェクトからなるｋ個のサブデータセットによってデータセットを分割するステップを含むことをさらに意味する。分割は、データセットの各３Ｄモデル化オブジェクトに、それぞれのクラスを表すラベルを割り当てることを含んでいてもよい。
【００４１】
例においては、各ニューラルネットワークは、各ベーステンプレートの各３Ｄモデル化オブジェクトへの変形を推定するように構成されている。これらの例においては、各ベーステンプレートは、３Ｄモデル化オブジェクトである。これらの例においては、各ベーステンプレートは、データセットのサブデータセットの３Ｄモデル化オブジェクトの重心を表す３Ｄモデル化オブジェクトであってもよい。そのような例では、各ニューラルネットワークは特に正確である。第一に、サブデータセットの３Ｄモデル化オブジェクトの推定に特化しているため、上述のように正確になる。第二に、ニューラルネットワークによって推定される３Ｄモデル化オブジェクトは、類似した３Ｄモデル化オブジェクト（重心）の変形であるか、それに基づいているため、上述のようにニューラルネットワークが正確になる。例において、各ベーステンプレート、またはそれらの少なくとも一部は、テンプレート学習方法によって決定される。このような場合、学習されたニューラルネットワークは、上述の、テンプレート学習方法と多様体学習方法の両方の精度から恩恵を受け、特に正確になる。あるいは、各ベーステンプレートまたはそれらの少なくとも一部は、他の任意の方法によって決定されてもよい。
【００４２】
テンプレート学習方法と多様体学習方法は、独立して実行されてもよい。テンプレート学習方法による１つまたは複数のニューラルネットワークの学習（すなわち、１つまたは複数のサブデータセットのうちのそれぞれ１つについてのニューラルネットワークの学習）は、多様体学習方法による損失の最小化を含んでいてもよい。あるいは、テンプレート学習方法による１つまたは複数のニューラルネットワークの学習は、他の任意の機械学習法によって実行されてもよい。多様体学習によって学習されたニューラルネットワークは、ベーステンプレートの変形を推定するよう構成されていてもよく、ベーステンプレートは、上述のように、テンプレート学習方法または他の任意の方法によって決定される。
【００４３】
テンプレート学習方法と多様体学習方法は同じプロセスで統合されてもよい。図１は、そのプロセスを示したフローチャートであり、これについてここで説明する。
【００４４】
このプロセスは、３Ｄモデル化オブジェクトを含む共通のデータセットを提供すること（Ｓ１０）を含む。３Ｄモデル化オブジェクトはそれぞれ、各機械部品を表す。例においては、テンプレート学習方法によるデータセットの提供と多様体学習方法によるデータセットの提供は、当該プロセスによって提供（Ｓ１０）された共通のデータセットを再利用することからなる。言い換えれば、テンプレート学習方法によって提供されるデータセットと多様体学習方法によって提供されるデータセットは、ともに、当該プロセスによって提供される共通のデータセットと同一である。あるいは、テンプレート学習方法によるデータセットの提供は、共通のデータセットの第１の部分を再利用することからなり、多様体学習方法によるデータセットの提供は、共通のデータセットの第２の部分を再利用することからなってもよい。第２の部分と第１の部分は異っていてもよい。例においては、第２の部分と第１の部分は異なってもよいが、同じクラスの３Ｄモデル化オブジェクトを含んでいてもよい。言い換えれば、第２の部分と第１の部分の両方は、それ自体、同じ数ｋ個の３Ｄモデル化オブジェクトのクラスによって分割されてもよい。このプロセスは、数ｋを提供すること（Ｓ２０）をさらに含む。数ｋの提供（Ｓ２０）は、ユーザが数ｋを指定する（例えば、宣言する）ことを含んでいてもよい。このプロセスは、ｋ個のベーステンプレートを決定すること（Ｓ３０）をさらに含む。ｋ個のベーステンプレートの決定（Ｓ３０）は、テンプレート学習方法によって実行される。このプロセスは、ｋ個のニューラルネットワークを学習すること（Ｓ４０）をさらに含む。ｋ個のニューラルネットワークの学習（Ｓ４０）は、多様体学習方法によって、ｋ個のニューラルネットワークからなるニューラルネットワークの集合のそれぞれの重みの修正（Ｓ４２０）を含む。
【００４５】
このプロセスで同じデータセット（すなわち、共通のデータセット）を用いて、テンプレート学習方法によってｋ個のベーステンプレートの決定（Ｓ３０）を行い、多様体学習方法によってｋ個のニューラルネットワークの学習を行うことで、特にこれら２つの方法の組み合わせから恩恵を受けることができる。実際、テンプレート学習方法によるｋ個のベーステンプレートの決定（Ｓ３０）は、共通のデータセットをｋ個のサブデータセットに分割（例えばクラスタ化）し、これは、言い換えれば、共通のデータセットを３Ｄモデル化オブジェクトのｋ個のクラスに分割する。多様体学習方法によって学習されたｋ個のニューラルネットワークのそれぞれは、ｋ個のベーステンプレートのそれぞれの、共通のデータセットの３Ｄモデル化オブジェクトへの変形を推定するように構成されるように学習され得る。このような場合、ｋ個のベーステンプレートの決定（Ｓ３０）によって提供される、共通のデータセットのｋ個のサブデータセットへの分割により、上述の、ｋ個のサブデータセットのそれぞれの重心の、サブデータセットの３Ｄモデル化オブジェクトへの正確な変形の推定に対する、ｋ個のニューラルネットワークのそれぞれの特化が容易になり、改善される。さらに、ｋ個のニューラルネットワークのそれぞれは、サブデータセットの重心のサブデータセットの３Ｄモデル化オブジェクトへの変形に関する詳細の学習（Ｓ４０）に集中することができ、これにより上述のようにその精度が改善する。よって、例においては、本プロセスは、各サブデータセットの３Ｄモデル化オブジェクトの、特に正確な再構築にそれぞれ特化したｋ個のオートエンコーダを学習してもよい。
【００４６】
追加的に、または代替的に、提供される数ｋは、上述のように、共通のデータセット自体が３Ｄモデル化オブジェクトのｋ個のクラスに分割されるか、実質的に分割されるという事実に対応してもよい。したがって、そのような場合、本プロセスは、それぞれが１つのクラスのオブジェクトからなるｋ個のサブデータセットのそれぞれの重心の、当該クラスの３Ｄモデル化オブジェクトへの変形の推定に特化したｋ個のニューラルネットワークを提供してもよい。特に、本プロセスは、各クラスの３Ｄモデル化オブジェクトの、特に正確な再構築にそれぞれ特化したｋ個のオートエンコーダを学習してもよい。
【００４７】
さらに、テンプレート学習方法、多様体学習方法、またはプロセスによって学習可能および／または取得可能なニューラルネットワークおよび／または（例えばｋ個の）ニューラルネットワークの集合が提案される。また、コンピュータにより実施される、ニューラルネットワークおよび／または（例えばｋ個の）ニューラルネットワークの集合の利用方法も提供される。利用方法の例についてここで説明する。
【００４８】
ニューラルネットワークの利用方法の例についてここで説明する。
【００４９】
これらの例においては、ニューラルネットワークは、各ベーステンプレートの各３Ｄモデル化オブジェクトへの変形を推定するように構成されたデコーダを備えるオートエンコーダである。これらの例において、本利用方法は、第１の３Ｄモデル化オブジェクトと第２の３Ｄモデル化オブジェクトを提供することをさらに含む。これらの例において、本利用方法は、第１の３Ｄモデル化オブジェクトと第２の３Ｄモデル化オブジェクトにオートエンコーダを適用することをさらに含む。これらの例において、利用方法は、オートエンコーダの適用結果に基づいて、第１の３Ｄモデル化オブジェクトと第２の３Ｄモデル化オブジェクトとの形状マッチングを決定することをさらに含む。
【００５０】
ベーステンプレートは、３Ｄモデル化オブジェクトのクラスの３Ｄモデル化オブジェクトの重心を表してもよい。例においては、クラスの各３Ｄモデル化オブジェクトとベーステンプレートは３Ｄメッシュ（または点群）である。これらの例において、デコーダは、ベーステンプレートの各頂点（または点）と、ベーステンプレートが変形されるクラスの３Ｄモデル化オブジェクトの頂点（または点）との対応の集合を推定するように構成されていてもよい。３Ｄモデル化オブジェクトと第２の３Ｄモデル化オブジェクトは、ともに当該クラスのモデル化オブジェクトであってもよい。したがって、例においては、オートエンコーダの適用により、ベーステンプレートの各頂点（または点）と第１の３Ｄモデル化オブジェクトの各頂点（または点）との対応の第１の集合が出力される。これらの例においては、オートエンコーダの適用により、さらに、ベーステンプレートの各頂点（または点）と第２の３Ｄモデル化オブジェクトの各頂点（または点）との対応の第２の集合が出力される。対応の第１の集合および対応の第２の集合に基づいて、第１の３Ｄモデル化オブジェクトの各頂点（または点）と第２の３Ｄモデル化オブジェクトの各頂点（または点）との対応の第３の集合を推定してもよい。例においては、形状マッチングを決定することは、対応の第３の集合の推定に対応する。
【００５１】
ベーステンプレートを学習すると、オートエンコーダのトポロジの一貫性が向上する。特に、学習したベーステンプレートから開始すると、オートエンコーダによって再構築されたすべてのメッシュまたは点群の頂点対頂点の対応が確実になり、上述のように、本利用方法によって提供される形状マッチングが可能になる。形状マッチングの２つの適用例について説明する。
【００５２】
第１の適用例はシミュレーションのための形状マッチングである。第１の適用例は、第１の３Ｄモデル化オブジェクトおよび１つまたは複数の第２の３Ｄモデル化オブジェクトを提供することを含む。例えば、第１の３Ｄモデル化オブジェクトおよび１つまたは複数の第２の３Ｄモデル化オブジェクトはすべて３Ｄモデル化オブジェクトの同じクラスに属する。第２の３Ｄモデル化オブジェクトのそれぞれについて、第１の適用例では、利用方法によって、第１の３Ｄモデル化オブジェクトおよび第２の３Ｄモデル化オブジェクトにオートエンコーダを適用することを含む。第１の適用例は、オートエンコーダの適用結果に基づいて、利用方法により、第１の３Ｄモデル化オブジェクトと第２の３Ｄモデル化オブジェクトとの形状マッチングを決定することをさらに含む。第１の適用例は、決定された各形状マッチングを用いて、シミュレーション体験のための１つまたは複数の出版物および／または目印で第１の３Ｄモデル化オブジェクトに注釈を付け、第２の３Ｄモデル化オブジェクトのそれぞれの１つまたは複数の注釈をターゲット変更することをさらに含む。第１の適用例は、注釈付きの第２の３Ｄモデル化オブジェクトのそれぞれについて、シミュレーション体験を再実行することをさらに含み、それにより、第１の３Ｄモデル化オブジェクトに注釈を付けるだけで任意の第２の３Ｄモデル化オブジェクトのシミュレーションを再実行できる。
【００５３】
２番目の適用例は、マテリアル／テクスチャのターゲット変更のための形状マッチングである。第２の適用例は、第１の３Ｄモデル化オブジェクトおよび１つまたは複数の第２の３Ｄモデル化オブジェクトを提供することを含む。例えば、第１の３Ｄモデル化オブジェクトおよび１つまたは複数の第２の３Ｄモデル化オブジェクトはすべて３Ｄモデル化オブジェクトの同じクラスに属する。第２の３Ｄモデル化オブジェクトのそれぞれについて、第２の適用例では、利用方法によって、第１の３Ｄモデル化オブジェクトおよび第２の３Ｄモデル化オブジェクトにオートエンコーダを適用することを含む。第２の適用例は、オートエンコーダの適用結果に基づいて、利用方法により、第１の３Ｄモデル化オブジェクトと第２の３Ｄモデル化オブジェクトとの形状マッチングを決定することをさらに含む。第２の適用例は、ＵＶマッピングを用いて、第１のモデル化オブジェクトにテクスチャまたはマテリアルを適用することをさらに含む。第２のアプリケーションは、決定された各形状マッチングを用いることにより、１つまたは複数の第２のモデル化オブジェクトに対するＵＶマッピングをターゲット変更することをさらに含む。これにより、他の任意の第２の３Ｄモデル化オブジェクトに対するＵＶマッピングをターゲット変更し、テクスチャまたはマテリアルをターゲット変更できる。
【００５４】
オートエンコーダは常に正確に同じ出力接続の同じメッシュトポロジを持っている可能性があるため、オートエンコーダによって提供される再構築により、ターゲット変更が簡単になる。
【００５５】
上記の利用方法の例によって決定された形状マッチングの適用例が図２に示されている。ここでは、オートエンコーダは接続を維持し、椅子の頂点を対応付けることができることが示されている。
【００５６】
（例えばｋ個の）ニューラルネットワークの集合の利用方法の例についてここで説明する。
【００５７】
これらの例において、ニューラルネットワークはそれぞれ、３Ｄモデル化オブジェクトを推定するように構成されたデコーダを含むオートエンコーダである。これらの例において、本利用方法は、２つ以上の３Ｄモデル化オブジェクトを提供することを含む。これらの例では、利用方法は、ニューラルネットワークの集合のそれぞれのオートエンコーダの潜在空間にそれぞれ２つ以上の３Ｄモデル化オブジェクトを投影することをさらに含む。これらの例では、利用方法は、投影された２つ以上の３Ｄモデル化オブジェクト間の潜在空間での１つまたは複数の補間を算出することをさらに含む。これらの例において、利用方法は、算出された各補間にデコーダを適用することをさらに含む。
【００５８】
潜在空間で算出された１つまたは複数の補間のうちの算出された任意の補間は、潜在ベクトル（「補間された潜在ベクトル」とも呼ぶ）であり、これは、２つの潜在ベクトル間の補間であり、当該２つの潜在ベクトルは、２つ以上の３Ｄモデル化オブジェクトのうちの３Ｄモデル化オブジェクトの、潜在空間上におけるそれぞれの投影である。したがって、利用方法は、１つまたは複数のそのような補間された潜在ベクトルを算出する。２つの潜在ベクトル間の補間は、ベクトル空間での任意の線形補間など、任意の補間であってよい。
【００５９】
例においては、利用方法に関与する各３Ｄモデル化オブジェクトは、あるクラスの３Ｄモデル化オブジェクトである。そのような場合、各オートエンコーダのデコーダは、当該クラスの３Ｄモデル化オブジェクトを推定するように構成する（例えば、特化させる）ことができる。したがって、算出された補間にデコーダを適用すると、クラスの３Ｄモデル化オブジェクトが出力される。算出された補間は、クラスの２つの３Ｄモデル化オブジェクトの２つの投影間で算出された補間潜在ベクトルであるため、復号された補間潜在ベクトルは、クラスの２つの３Ｄモデル化オブジェクトの中間の幾何学的形状など、補間を表すクラスの３Ｄモデル化オブジェクトである。したがって、利用方法は、１つまたは複数のそのような補間を算出してもよい。
【００６０】
ここで、図３および図４を参照して、本利用方法の例について説明する。
【００６１】
図３は、第１の３Ｄモデル化オブジェクト３０と第２の３Ｄモデル化オブジェクト３２を示す。どちらのオブジェクトも、４本脚の椅子のクラスに属する椅子である。図３は、それぞれが当該クラスに属する４本脚の椅子６つの集合３４を示し、それぞれの椅子が、利用方法によって算出された２つの椅子３０と３２の間の補間である。
【００６２】
図４は、第１の３Ｄモデル化オブジェクト４０と第２の３Ｄモデル化オブジェクト４２を示す。どちらのオブジェクトも、４本脚の椅子のクラスに属する椅子である。図４は、それぞれが当該クラスに属する６つの椅子の集合４４を示し、それぞれの椅子が、利用方法によって算出された２つの椅子４０と４２の間の補間である。
【００６３】
テンプレート学習方法、多様体学習方法、またはプロセスの、上述の精度から恩恵により、利用方法は、各オートエンコーダの元の入力空間における現実的な非線形補間を実行できる。
【００６４】
（例えばｋ個の）ニューラルネットワークの集合の利用方法の他の例についてここで説明する。
【００６５】
利用方法のこれらの例において、ニューラルネットワークはそれぞれ、３Ｄモデル化オブジェクトを推定するように構成されたデコーダを含むオートエンコーダである。これらの例において、本利用方法は、３Ｄモデル化オブジェクトの一部を提供することを含む。これらの例において、本利用方法は、当該３Ｄモデル化オブジェクトの一部に各オートエンコーダを適用することを含む。これらの例では、利用方法は、３Ｄモデル化オブジェクトの一部に対し、当該３Ｄモデル化オブジェクトの一部に各オートエンコーダを適用した結果を適合させることをさらに含む。
【００６６】
デコーダは、３Ｄモデル化オブジェクトのクラスの３Ｄモデル化オブジェクトを推定するように構成されていてもよい。３Ｄモデル化オブジェクトは当該クラスに属していてもよい。したがって、３Ｄモデル化オブジェクトの一部にオートエンコーダを適用すると、当該クラスの別の３Ｄモデル化オブジェクトが出力されてもよい。したがって、３Ｄモデル化オブジェクトの一部に対し、各オートエンコーダを当該３Ｄモデル化オブジェクトの一部に適用した結果を適合することは、当該クラスの別の３Ｄモデル化オブジェクトの一部が当該３Ｄモデル化オブジェクトの一部と（例えば幾何学的に）一致するように、当該クラスの別の３Ｄモデル化オブジェクトを変形し、これにより３Ｄモデル化オブジェクトを自動補完することからなる。
【００６７】
ここで、図５を参照して、そのような利用方法の例について説明する。図５は、３Ｄモデル化オブジェクトの一部５０の例を示しており、これは、脚の欠けた椅子である。図５は、３Ｄモデル化オブジェクトの一部５０に適合した後、３Ｄモデル化オブジェクトの一部５０に各オートエンコーダを適用した結果５２をさらに示している。適合した結果５２は、脚が欠けていない椅子５０である。
【００６８】
したがって、本利用方法は、３Ｄスキャンパイプラインにおけるスキャン自動補完（Ｓｃａｎｓ  Ａｕｔｏｃｏｍｐｌｅｔｉｏｎ）の形状推定（Ｓｈａｐｅ  Ｉｎｆｅｒｅｎｃｅ）プロセスに適用してもよい。そのようなパイプラインについてここで説明する。
【００６９】
３Ｄスキャンパイプラインは、１つまたは複数の現実の物体、例えば現実世界の３Ｄシーンにおける物体をスキャンすることを含んでいてもよい。スキャンは、それぞれが物理信号を取得するように構成された１つまたは複数の物理センサを提供することと、１つまたは複数の現実の物体上で１つまたは複数の物理センサを操作する（すなわち、各センサで、１つまたは複数の現実の物体を、順に、または同時にスキャンする）ことにより１つまたは複数の物理信号を取得することとを含んでいてもよい。３Ｄスキャンパイプラインは、スキャンされた現実世界の物体ごとに、１つまたは複数の物理センサの測定値に基づいて、スキャンされた現実世界の物体を表す３Ｄ点群および／または３Ｄメッシュを自動的に決定する３Ｄ再構築方法を適用することを含んでいてもよい。３Ｄ再構築は、任意の既知の技術により実行してもよい。１つまたは複数のセンサは、複数の（例えば、ＲＧＢおよび／または画像またはビデオ）カメラを備えていてもよく、また決定は、運動からの構造への分析（ｓｔｒｕｃｔｕｒｅ−ｆｒｏｍ−ｍｏｔｉｏｎ  ａｎａｌｙｓｉｓ）を含んでいてもよい。１つまたは複数のセンサは、代替的に、または追加的に、（例えばＲＧＢ深度カメラ上に）１つまたは複数の深度センサを含んでいてもよく、決定は深度データからの３Ｄ再構築を含んでいてもよい。１つまたは複数の深度センサは、例えば、レーザー（例えば、ライダー）または超音波送受信機を備えていてもよい。
【００７０】
１つまたは複数のスキャンされた現実世界の物体は、それぞれ少なくとも１つのオクルージョンを特徴としてもよい。このようなオブジェクトは、部分点群（つまり、オクルージョンなしで完全な現実の物体を表すと考えられる完全な点群の一部）で表されていてもよい。次いで、３Ｄスキャンパイプラインは、オクルージョンを特徴とする１つまたは複数のスキャンされた現実世界の物体を表す１つまたは複数の部分点群のそれぞれに利用方法を適用して、各部分点群を自動補完することを含んでいてもよい。具体的には、各部分点群について、利用方法によって提供される３Ｄモデル化オブジェクトの一部は、部分点群である。利用方法によれば、各オートエンコーダが部分点群に適用され、各オートエンコーダを適用した結果が部分点群に適合され、それにより部分点群が自動補完される。なお、例においては、自動補完を実行するためには、単純に部分点群をそのままオートエンコードに与えることはできないことを理解されたい。そうではなく、これらの例では、不完全な点群から３Ｄ形状の潜在ベクトルを予測する別のエンコーダを学習するか、部分点群に最適な３Ｄ形状を潜在空間で最適化してもよい。
【００７１】
上記部分点群のそれぞれについて、点群が３Ｄモデル化オブジェクトのクラスに属するオブジェクトを表す場合、本利用方法では、このように、クラスの３Ｄモデル化オブジェクトを推定するようにデコーダが構成されたオートエンコーダを適用できる。その結果、そのようなオブジェクトの自動補完が正確になる。これは、上記のようにクラスの３Ｄモデル化オブジェクトの推定にデコーダが特化されていることの恩恵を受けられるからである。利用方法により、それぞれのクラスの３Ｄモデル化オブジェクトの推定に特化した各デコーダを有するいくつかのオートエンコーダを用いると、このように自動補完の精度が大幅に向上する。
【００７２】
（例えばｋ個の）ニューラルネットワークの集合の利用方法の他の例についてここで説明する。
【００７３】
利用方法のこれらの例において、ニューラルネットワークはそれぞれ、３Ｄモデル化オブジェクトを推定するように構成されたデコーダを含むオートエンコーダである。これらの例において、本利用方法は、３Ｄモデル化オブジェクトを提供することをさらに含む。これらの例において、本利用方法は、３Ｄモデル化オブジェクトに１つまたは複数のオートエンコーダを適用することをさらに含む。これらの例において、本利用方法は、適用に基づきオートエンコーダを選択することをさらに含む。
【００７４】
オートエンコーダの選択は、提供された３Ｄモデル化オブジェクトを最適に再構築するオートエンコーダの選択からなってもよい。したがって、本利用方法は、クラスタ化プロセスで用いてもよい。具体的には、各デコーダは、３Ｄモデル化オブジェクトの、例えば各クラスに分割されたデータセットの、各クラスの３Ｄモデル化オブジェクトの推定に特化していてもよい。クラスタ化プロセスは、３Ｄモデル化オブジェクトの別のデータセットを提供することを含んでいてもよい。クラスタ化プロセスは、本利用方法を別のデータセットの各３Ｄモデル化オブジェクトに適用することも含んでいてもよい。その結果、別のデータセットの各３Ｄモデル化オブジェクトについて、クラスタリングプロセスにより、どのオートエンコーダが最適に３Ｄモデル化オブジェクトを再構築するかが決定される。次いで、クラスタリングプロセスは、３Ｄモデル化オブジェクトを、オートエンコーダのデコーダが特化したクラスに割り当ててもよい。言い換えれば、利用方法を繰り返すことにより、自動クラスタ化アルゴリズムを取得してもよい。
【００７５】
テンプレート学習方法、多様体学習方法、およびプロセスは、コンピュータによって実施される。コンピュータにより実施される方法（またはプロセス）の概念について説明する。
【００７６】
「方法（またはプロセス）は、コンピュータによって実施される」とは、本方法（またはプロセス）のステップ（あるいは略全てのステップ）が、少なくとも１つのコンピュータまたは任意の類似のシステムによって実行されることを意味する。よって本方法（またはプロセス）の各ステップは、コンピュータにより、場合により完全に自動的に、あるいは半自動的に実行される。例において、本方法（またはプロセス）のステップの少なくともいくつかは、ユーザとコンピュータの対話を通じて始動されてもよい。求められるユーザとコンピュータの対話レベルは、想定される自動性のレベルに応じたものであって、ユーザの要望を実装する必要性との間でバランスをとるものとしてもよい。例において、このレベルは、ユーザが設定し、かつ／あるいは、予め定義されていてもよい。
【００７７】
本方法（またはプロセス）のコンピュータによる実施の典型的な例は、この目的に適したシステムを用いて本方法（またはプロセス）を実行することである。当該システムは、本方法／プロセスを実行するための命令を含むコンピュータプログラムを記録したメモリに接続されたプロセッサ、および、グラフィカル・ユーザ・インターフェース（ＧＵＩ）を備えていてもよい。メモリは、データベースを記憶していてもよい。メモリは、そのような記憶に適した任意のハードウェアであり、場合により、物理的に区別可能ないくつかの部分（例えば、プログラム用に１つ、場合によりデータベース用に１つ）を含む。
【００７８】
本プロセスの例では、テンプレート学習方法によるｋ個のベーステンプレートの決定（Ｓ３０）と、多様体学習方法によるｋ個のニューラルネットワークの学習（Ｓ４０）は、同じコンピュータまたは同じコンピュータの集合によって実行されてもよい。これらの例では、例えば数ｋの提供（Ｓ２０）など、ユーザとの対話を通じて実行されるプロセスのステップは、同じユーザによって始動されてもよい。あるいは、プロセスは、異なるコンピュータおよび／またはユーザによって実行されてもよい。例えば、テンプレート学習方法によるｋ個のベーステンプレートの決定（Ｓ３０）は、１つまたは複数のコンピュータの第１の集合により実行されてもよく、場合により第１のユーザとの人間と機械の対話を含み、また多様体学習方法によるｋ個のニューラルネットワークの学習（Ｓ４０）は１つまたは複数のコンピュータの第２の集合によって実行されてもよく、場合により、第２のユーザとの人間と機械の対話を含む。１つまたは複数のコンピュータの第１および第２の集合は、ネットワークによって接続されていてもよい。
【００７９】
テンプレート学習方法、多様体学習方法、およびプロセスに関与する、３Ｄモデル化オブジェクトを含むデータセットの提供の概念について説明する。この概念を説明する前に、それに関与するデータ構造について説明する。認識されるように、ここで提供されるデータ構造の定義および例は、テンプレート学習方法、多様体学習方法、および／または、プロセスによって提供されるデータセットの少なくとも一部（例えば、すべて）に適用されてもよい。
【００８０】
ここでは、３Ｄ形状の離散幾何学的表現は、データの離散集合を含むデータ構造である。各データは、３Ｄ空間に配置されたそれぞれの幾何学的エンティティを表す。各幾何学的エンティティは、３Ｄ形状のそれぞれの位置（言い換えれば、３Ｄ形状で表される立体を構成するマテリアルのそれぞれの部分）を表す。幾何学的エンティティの集約（すなわち結合または並置）は、３Ｄ形状全体を表す。ここでの任意の離散幾何学的表現は、例においては、１００、１０００、または１００００よりも多くの数のそのようなデータを含んでいてもよい。
【００８１】
ここでの任意の離散幾何学的表現は、例えば、各幾何学的エンティティが点である３Ｄ点群であってもよい。あるいは、ここでの任意の離散幾何学的表現は、各幾何学的エンティティがメッシュタイルまたは面である３Ｄメッシュであってもよい。ここでの任意の３Ｄメッシュは、規則的でも不規則的でもよい（すなわち、同じタイプの面で構成されていても、そうでなくてもよい）。ここでの任意の３Ｄメッシュは、多角形メッシュ、例えば三角形メッシュであってもよい。あるいは、ここでの任意の３Ｄメッシュは、Ｂ−Ｒｅｐであってもよい。ここでの任意の３Ｄメッシュは、３Ｄ点群から、例えば３Ｄ点群を三角測量することによって（例えば、ドロネー三角測量によって）得られてもよい。
【００８２】
ここでの任意の３Ｄ点群は、例えば３Ｄ再構築プロセス内で、現実の物体の物理的測定により決定されてもよい。３Ｄ再構築プロセスは、現実の物体を提供することと、それぞれが物理信号を取得するように構成された１つまたは複数の物理センサを提供することと、当該現実の物体上で１つまたは複数の物理センサを操作する（すなわち、各センサで、現実の物体をスキャンする）ことにより１つまたは複数の物理信号を取得することとを含んでいてもよい。次いで、３Ｄ再構築は、任意の既知の技術により、測定に基づいて、３Ｄ点群および／または３Ｄメッシュを自動的に決定してもよい。１つまたは複数のセンサは、複数の（例えば、ＲＧＢおよび／または画像またはビデオ）カメラを備えていてもよく、また決定は、運動からの構造への分析（ｓｔｒｕｃｔｕｒｅ−ｆｒｏｍ−ｍｏｔｉｏｎ  ａｎａｌｙｓｉｓ）を含んでいてもよい。１つまたは複数のセンサは、代替的に、または追加的に、（例えばＲＧＢ深度カメラ上に）１つまたは複数の深度センサを含んでいてもよく、決定は深度データからの３Ｄ再構築を含んでいてもよい。１つまたは複数の深度センサは、例えば、レーザー（例えば、ライダー）または超音波送受信機を備えていてもよい。
【００８３】
あるいは、ここでの任意の３Ｄ点群または３Ｄメッシュは、例えば３Ｄモデル化オブジェクト上でのレイキャスティングまたは３Ｄモデル化オブジェクトにテッセレーションを行うことにより、立体（すなわちＢ−Ｒｅｐモデル）のスキン（すなわち外面）を表す３Ｄモデル化オブジェクトから取得してもよい。テッセレーションは、３Ｄモデル化オブジェクトの描画プロセスにより実行してもよい。このような描画プロセスは、３Ｄモデル化オブジェクトのグラフィカル表現を表示するために、任意のＣＡＤシステムでコーディングしてもよい。３Ｄモデル化オブジェクトは、ＣＡＤシステムを用いてユーザが設計するか、設計されていてもよい。
【００８４】
モデル化オブジェクトは、例えばデータベースに格納されたデータによって定義される任意のオブジェクトである。さらには、「モデル化オブジェクト」という表現は、データそのものも指す。テンプレート学習方法、多様体学習方法、および／またはプロセスを実行するシステムの種類に応じて、異なる種類のデータによってモデル化オブジェクトが定義されてもよい。実際、システムは、ＣＡＤシステム、ＣＡＥシステム、ＣＡＭシステム、ＰＤＭシステム、および／またはＰＬＭシステムのうちの任意の組み合わせであってもよい。それら異なるシステムにおいて、モデル化オブジェクトは、対応するデータによって定義される。したがって、ＣＡＤオブジェクト、ＰＬＭオブジェクト、ＰＤＭオブジェクト、ＣＡＥオブジェクト、ＣＡＭオブジェクト、ＣＡＤデータ、ＰＬＭデータ、ＰＤＭデータ、ＣＡＭデータ、ＣＡＥデータについて言及することがある。しかしながら、モデル化オブジェクトは、これらのシステムの任意の組み合わせに対応するデータによって定義されてもよいため、これらのシステムは、互いに排他的なものではない。したがって、システムは、ＣＡＤ兼ＰＬＭシステムであってもよく、それは以下に示すそのようなシステムの定義から明らかになるであろう。
【００８５】
ＣＡＤシステムは、少なくとも、ＣＡＴＩＡのようなモデル化オブジェクトのグラフィック表現に基づくモデル化オブジェクトの設計に適した任意のシステムをも意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトを表現可能にするデータを含む。ＣＡＤシステムは、例えば、辺や線を用い、また、場合により面（ｆａｃｅｓ  ｏｒ  ｓｕｒｆａｃｅｓ）を用いて、ＣＡＤモデル化オブジェクトの表現を提供してもよい。線、辺、あるいは面は、例えば、非一様有理Ｂスプライン（ＮＵＲＢＳ）など、様々な様式で表現されてもよい。具体的には、ＣＡＤファイルは仕様を含み、その仕様に基づきジオメトリが生成可能であり、よって表現が生成可能となる。モデル化オブジェクトの仕様は１つまたは複数のＣＡＤファイルに格納されていてもよい。ＣＡＤシステムでモデル化オブジェクトを表現するファイルの典型的なサイズは、一部分あたり１メガバイトの範囲である。また、モデル化オブジェクトは、典型的には、数千の部分の集合体であってもよい。
【００８６】
ＣＡＤの文脈において、モデル化オブジェクトは、典型的には、３Ｄモデル化オブジェクト、例えば、一つの部品や部品の集合体などの製品、あるいは製品の集合体を表現するものであってもよい。「３Ｄモデル化オブジェクト」は、３Ｄ表現が可能なデータによってモデル化される任意のオブジェクトを意味する。３Ｄ表現は、その部品を全ての角度から見ることを可能にする。例えば、３Ｄで表現された３Ｄモデル化オブジェクトは、その軸のうちの任意の軸、あるいは、その表現が表示された画面中の任意の軸を中心に、処理して回転させることが可能である。これは、特に、３Ｄモデル化されていない２Ｄアイコンについては除外される。３Ｄ表現の表示は、設計を容易にする（すなわち、設計者が作業を達成するスピードを統計的に速める）。製品の設計は製造工程の一部であるから、これによって当該産業における製造工程が迅速化する。
【００８７】
本開示の文脈において、３Ｄモデル化オブジェクトは、ＣＡＤソフトウェア・ソリューションやＣＡＤシステム等を用いた仮想的デザインの完了後に実世界において製造される製品、すなわち（例えば機械）部品や、部品の集合体（あるいは同様に部品の集合体。なぜなら部品の集合体はテンプレート学習方法、多様体学習方法、および／またはプロセスの観点では一つの部品としてみることができ、また、またはテンプレート学習方法、多様体学習方法、および／またはプロセスは、集合体における各部品に独立して適用することができるからである）など、より一般的には任意の剛体の集合体（例えば移動機構）などの製品のジオメトリを表現してもよい。ＣＡＤソフトウェア・ソリューションは、航空宇宙、建築、建設、消費財、ハイテク機器、産業機器、輸送、海洋、および／または海洋石油／ガス生産、または交通を含む、限定されることのない様々な産業分野において製品の設計を可能にする。テンプレート学習方法、多様体学習方法、および／またはプロセスに関与する任意の３Ｄモデル化オブジェクトは、このように、地上車両の部品（例えば、自動車および軽トラック機器、レーシングカー、オートバイ、トラックおよびモーター機器、トラック、バス、電車を含む）、航空車両の部品（例えば、航空機体機器、航空宇宙機器、推進機器、防衛製品、航空路線機器、宇宙機器を含む）、海軍車両の部品（例えば、海軍用機器、商業用船舶、オフショア機器、ヨットおよび作業船、船舶用機器を含む）、一般的な機械部品（例えば、工業用製造機械、大型移動機械または機器、設置機器、産業機器製品、加工金属製品、タイヤ製造製品を含む）、または電気機械部品または電子部品（例えば、家電、セキュリティおよび／または制御および／または計装製品、コンピューティングおよび通信機器、半導体、医療装置および設備を含む）、消費者製品（例えば、家具、家庭用および庭用製品、レジャー用品、ファッション用品、耐久消費財小売用品、織物類小売用品を含む）、包装（例えば、食品および飲料およびたばこ、美容およびパーソナルケア、家庭用製品包装を含む）などのように、任意の機械部品であり得る工業製品を表してもよい。
【００８８】
例において、本開示の任意の３Ｄモデル化オブジェクトは、以下のうち１つまたは妥当な組み合わせである機械部品を表してもよい：成形部品（すなわち、成形製造プロセスによって製造された部品）、機械加工部品（すなわち機械加工製造プロセスによって製造された部品）、穴あけされた部品（すなわち、穴あけ製造プロセスによって製造された部品）、旋削部品（すなわち、旋削加工プロセスによって製造された部品）、鍛造部品（すなわち、鍛造製造プロセスによって製造された部品）、打ち抜きされた部品（すなわち、打ち抜き製造プロセスによって製造された部品）、および／または、折り畳まれた部分（すなわち、折り畳み製造プロセスによって製造された部分）。
【００８９】
本開示の文脈において、３Ｄモデル化オブジェクトは、妥当な（例えば、現実的な）３Ｄモデル化オブジェクトであってもよい。妥当な３Ｄモデル化オブジェクトは、妥当な（例えば、現実的な）機械部品を表す３Ｄモデル化オブジェクトを指してもよい。妥当な機械部品とは、現実世界の工業製造プロセスで現実的に製造可能な機械部品を指してもよい。妥当な機械部品とは、現実世界の工業製造プロセスで機械部品を現実的に製造するために準拠しなければならないすべての制約に準拠する機械部品のことであってもよい。制約は、以下のうちの１つまたは任意の妥当な組み合わせを含んでいてもよい：機械的制約（例えば、古典的な力学の法則に起因する制約）、機能的制約（例えば、製造された機械部品によって実行される１つまたは複数の機械的機能に関連する制約）、製造上の制約（例えば、機械部品を製造するための１つまたは複数の製造プロセス中に１つまたは複数の製造ツールを機械部品に適用する能力に関する制約）、構造的制約（例えば、機械部品の強度および／または耐性に関する制約）、および／または、組み立て上の制約（例えば、機械部品を１つまたは複数の他の機械部品とどのように組み立てることができるかを定義する制約）。
【００９０】
本開示の文脈において、「３Ｄモデル化オブジェクトを含むデータセット」とは、少なくとも当該３Ｄモデル化オブジェクトを含むデータセットを意味する。例において、データセットは、３Ｄモデル化オブジェクトからなっていてもよい。あるいは、データセットは、厳密に、３Ｄモデル化オブジェクトを含んでいてもよく、また、３Ｄモデル化オブジェクトに関連する仕様などの追加データを含んでいてもよい。データセットの３Ｄモデル化オブジェクトは、３Ｄモデル化オブジェクトの離散幾何学的表現であってもよい。言い換えると、データセットは、３Ｄモデル化オブジェクトの離散幾何学的表現（メッシュおよび／または点群など）を含んでいてもよい。このような場合、３Ｄモデル化オブジェクト空間の離散幾何学的表現は、単純化のため、それぞれの離散的な表現ではなく、３Ｄモデル化オブジェクト自体と呼ばれることがある。データセットは１つまたは複数のサブデータセットを有していてもよい。各サブデータセットは、データセットの少なくとも一部（例えば全部）を形成する。
【００９１】
本開示の文脈において、３Ｄモデル化オブジェクトを含むデータセットは、３Ｄモデル化オブジェクトの１つまたは複数のサブデータセットに分割または実質的に分割されてもよい。「分割される」とは、データセットの各３Ｄモデル化オブジェクトが、分割部分を形成する１つのサブデータセットのみに属することを意味する。「実質的に分割される」とは、サブデータセットがデータセットの少なくとも一部における分割部分を形成することを意味する。このような場合、データセットは少なくとも一部と別の部分からなり、別の部分に属する３Ｄモデル化オブジェクトの数は、サブデータセットのいずれか１つに属する３Ｄモデル化オブジェクトの数と比較して無視できる。例においては、各サブデータセットは、３Ｄモデル化オブジェクトの１つのクラスの３Ｄモデル化オブジェクトからなる。このような例では、データセットは「３Ｄモデル化オブジェクトのクラスで分割されている」と示されてよい。特に、ｋをクラスの数とし、ｋは１より大きく、例えば２より大きい。「データセットが３Ｄモデル化オブジェクトのｋ個のクラスに分割されているか、または実質的に分割されている」と言う場合、データセットはｋ個のサブデータセットに分割され、ｋ個のサブデータセットのそれぞれの３Ｄモデル化オブジェクトはすべて、ｋ個のクラスのそれぞれ１つに属することを意味する。クラスの概念については以下にさらに説明する。
【００９２】
本開示の文脈において、３Ｄモデル化オブジェクトは、３Ｄモデル化オブジェクト空間に属してもよい。３Ｄモデル化オブジェクト空間は、一般に３Ｄモデル化オブジェクトからなる空間を指す。３Ｄモデル化オブジェクト空間は、ベクトル空間（例えば、その部分空間）に含まれていてもよい。３Ｄモデル化オブジェクト空間は、ベクトル空間の多様体であってもよい。多様体は接続多様体であってもよい。あるいは、多様体は、１つまたは複数（例えば２つ以上）の接続された部分を含む断続多様体であってもよい。本開示に関与する３Ｄモデル化オブジェクトの任意のデータセットは、３Ｄモデル化オブジェクト空間であるか、またはそれに厳密に含まれていてもよい。例においては、データセットは多様体であるか、またはそれに厳密に含まれていてもよい。これらの例では、多様体は、接続多様体または断続多様体であってもよい。これらの例では、データセットは１つまたは複数のサブデータセットを含んでいてもよく、各サブデータセットはデータセットの少なくとも一部を形成し、各サブデータセットは断続多様体の接続された部分であるか、またはそれに厳密に含まれていてもよい。
【００９３】
本開示の文脈において、３Ｄモデル化オブジェクトのクラスは、ベクトル空間の接続多様体に対応していてもよい。代替的に、または追加的に、３Ｄモデル化オブジェクトのクラスは、ベクトル空間の断続多様体の接続された部分に対応してもよい。追加的に、または代替的に、３Ｄモデル化オブジェクトのクラスは、次の特徴を有する３Ｄモデル化オブジェクトの集合を指してもよい：集合の任意の第１の３Ｄモデル化オブジェクトが、少なくとも集合の第２の３Ｄモデル化オブジェクトと類似しており、例えば、類似した形状を有する。なお、３Ｄモデル化オブジェクトのクラスは、１つまたは複数のサブクラスに分けてもよく（例えば、分割）、単純化のため、これらも依然としてクラスと呼ばれることを理解されたい。
【００９４】
例では、３Ｄモデル化オブジェクトのクラスは、それぞれ機械部品を表す３Ｄモデル化オブジェクトからなり、クラスに関連する（すなわち対応する）機械部品はすべて、次の条件のいずれか１つまたは任意の組み合わせに準拠する：
・クラスに関連する機械部品はすべて、同じ製造プロセス、または製造プロセスの同じ組み合わせで製造される。
【００９５】
・クラスに関連する機械部品はすべて妥当な機械部品である。
【００９６】
・クラスに関連する機械部品は、すべて同じ技術分野および／または産業分野のものである。
【００９７】
・クラスに関連する機械部品はすべて同じ機械的機能を実行する。
【００９８】
・クラスに関連する機械部品はそれぞれ、クラスの少なくとも１つの他の３Ｄモデル化オブジェクトに似た形状を有する３Ｄモデル化オブジェクトによって表される（したがって、当該クラスに関連する別の機械部品を表す）。かつ／あるいは、
クラスに関連する機械部品はすべて、同じ機械的制約、機能的制約、製造上の制約、構造的制約、および／または、組み立て上の制約に従う（例えば満たす、例えば準拠する、例えば検証する）。
【００９９】
図６は、テンプレート学習方法、多様体学習方法、および／またはプロセスに関与する３Ｄモデル化オブジェクトのデータセット６０の例を示す。データセットは、３Ｄモデル化オブジェクトの１つのクラスの３Ｄモデル化オブジェクトからなる。当該クラスの３Ｄモデル化オブジェクトは椅子である。椅子は３Ｄモデル化オブジェクトの１つのクラスを形成する。なぜなら、それらはすべて同じ機械的機能、すなわち（例えば人間の）重さを支える機能を実行するからである。この機械的機能を実行することは、椅子がすべて同じ機械的制約、機能的制約、および構造的制約に従うことも意味する。図６の椅子は妥当な機械部品である。なぜなら、それらは機械的制約、機能的制約、製造上の制約、および構造的制約に準拠し、それにより１つまたは複数の製造プロセスによる現実世界での製造を可能にするからである。なお、データセット６０のすべてのオブジェクトが図６に表されているわけではないことを理解されたい。明確化のため、データセット６０のオブジェクトの一部のみが表されているが、データセットはより多くのオブジェクトを含んでいてもよい。
【０１００】
図７は、テンプレート学習方法、多様体学習方法、および／またはプロセスに関与する３Ｄモデル化オブジェクトのデータセット７０の例を示す。データセットは、３Ｄモデル化オブジェクトの１つのクラスの３Ｄモデル化オブジェクトからなる。当該クラスの３Ｄモデル化オブジェクトは（それぞれ）４本脚の椅子である。４本脚の椅子は、３Ｄモデル化オブジェクトの１つのクラスを形成する。なぜなら、それらはすべて同じ機械的機能、すなわち（例えば人間の）重さを支える機能を実行するからであり、また４本の脚でこの機械的機能を実行すると、椅子はすべて同じ機械的制約、機能的制約、および構造的制約に従うことになるからである。図７の椅子は妥当な機械部品である。なぜなら、それらは機械的制約、機能的制約、製造上の制約、および構造的制約に準拠し、それにより１つまたは複数の製造プロセスによる現実世界での製造を可能にするからである。なお、データセット７０のすべてのオブジェクトが図７に表されているわけではないことを理解されたい。明確化のため、データセットのオブジェクトの一部のみが表されているが、データセットはより多くのオブジェクトを含んでいてもよい。
【０１０１】
図８は、図６のデータセット６０を２つのサブデータセット８２および８４に分割する例を示している。第１のデータセット８２は、椅子の第１のクラスの椅子である脚のない椅子を含み、第２のデータセット８４は、椅子の第２のクラスの椅子である４本脚の椅子を含む。言い換えれば、図６を参照して説明した椅子のクラスは、いくつかの椅子のクラスに分割されてもよく、そのうちの２つが第１のクラスと第２のクラスである。２つのクラスの椅子は、重さを支えるという同じ機械的機能を実行するため、同じ機能的制約に従う。ただし、同じ機械的機能を異なる数の脚で実行することは、異なる機械的制約および／または構造的制約に従うことを意味する。言い換えれば、第１のクラスの椅子はすべて、機械的制約および／または構造的制約の第１の集合に従い、第２のクラスの椅子はすべて、機械的制約および／または構造的制約の第２の集合に従い、制約の第１の集合と第２の集合は異なる。なお、サブデータセット８２（または８４）のすべてのオブジェクトが図８に表されているわけではないことを理解されたい。明確化のため、サブデータセット８２（または８４）のオブジェクトの一部のみが表されているが、サブデータセットはより多くのオブジェクトを含んでいてもよい。
【０１０２】
３Ｄモデル化オブジェクトの他の例についてここで説明する。
【０１０３】
本開示の文脈において、いずれかの３Ｄモデル化オブジェクトが自動車を表してもよい。自動車が３Ｄモデル化オブジェクトの１つのクラスを形成してもよい。代替的に、または追加的に、いずれかの３Ｄモデル化オブジェクトが飛行機を表してもよい。飛行機が３Ｄモデル化オブジェクトの１つのクラスを形成してもよい。代替的に、または追加的に、いずれかの３Ｄモデル化オブジェクトがボートを表してもよい。ボートが３Ｄモデル化オブジェクトの１つのクラスを形成してもよい。
【０１０４】
テンプレート学習方法、多様体学習方法、およびプロセスに関与する、「３Ｄモデル化オブジェクトを含むデータセットの提供」の概念についてここで説明する。
【０１０５】
データセットの提供は、自動的に実行してもよいし、ユーザが実行してもよい。例えば、ユーザはデータセットが保存されているメモリからデータセットを取得してもよい。ユーザは、すでに取得したデータセットに、１つまたは複数の３Ｄモデル化オブジェクトを（例えば１つずつ）追加することにより、データセットを完成させることもできる。１つまたは複数の３Ｄモデル化オブジェクトの追加は、１つまたは複数のメモリからそれらオブジェクトを取得し、データセットに含めることを含んでいてもよい。あるいは、ユーザは、３Ｄモデル化オブジェクトを（例えば、１つずつ）選択し、これらの選択された３Ｄモデル化オブジェクトでデータセットを形成（例えば、宣言）することにより、一からデータセットを作成してもよい。３Ｄモデル化オブジェクトの選択は、メモリからオブジェクトを取得することを含んでいてもよい。データセットの３Ｄモデル化オブジェクトの一部（例えば、すべて）は、以前に（例えば１人または複数の他のユーザによって）設計され、ユーザによって取得される前に１つまたは複数のメモリに格納されていてもよい。「３Ｄモデル化オブジェクトの設計」は、３Ｄモデル化オブジェクトを作成するプロセスの少なくとも一部である任意の動作または一連の動作を示す。
【０１０６】
本開示の文脈において、データセットの任意の提供において、データセットのすべての３Ｄモデル化オブジェクトは点群として提供されてもよい。あるいは、データセットの３Ｄモデル化オブジェクトの少なくとも一部（例えば、それらすべて）が、別の形式で（例えば、ＣＡＤオブジェクトとして、例えば３Ｄメッシュなどの他の離散幾何学的表現として）提供されてもよい。そのような場合、データセットの提供は、少なくとも一部の各３Ｄモデル化オブジェクトから点群を決定する（例えば抽出する）ことを含んでいてもよい。点群の抽出は、当該技術分野で知られているように、モデル化オブジェクトを、例えば６つの正投影図にレイキャスティングすることを含んでいてもよい。
【０１０７】
例では、データセットのすべての３Ｄモデル化オブジェクトが点群として提供されるかどうか、または上述のようにレイキャスティングが実行されたかどうかに関係なく、データセットの３Ｄモデル化オブジェクトはある点ですべて点群である。これらの例では、データセットの提供は、当該技術分野で知られているように、各点群が同じ固定数の点を有するように、上記点群の均一なサブサンプリングを含んでいてもよい。ある実施形態では、均一なサブサンプリングは、各点群について、最初に点群のうちのランダムな点を選択し、既に選択された点から、上記固定数の点に達するまで、繰り返し、点群のうち最も遠い点を選択することを含む。
【０１０８】
したがって、例においては、抽出ステップおよび／または均一なサブサンプリングステップが実行されたかどうかにかかわらず、データセットの３Ｄモデル化オブジェクトは、すべて同じ固定数の点を有する点群として提供される。これらの例では、データセットの提供は、当技術分野で知られているように、点群をセンタリングし、オプションとして、センタリングした点群に単位球スケーリングを適用することをさらに含んでいてもよい。
【０１０９】
「ニューラルネットワークの学習」の概念についてここで説明する。
【０１１０】
「ニューラルネットワークの学習」とは、機械学習法による１つまたは複数のニューラルネットワークの集合（例えば１つのニューラルネットワーク、例えば２つ以上のニューラルネットワークの集合など）の決定を指す。本開示の文脈において、集合における各ニューラルネットワークは重みを有し（例えば、それによりパラメータ化される）、ニューラルネットワークの学習は一般に重みの初期化および重みの更新を含んでいてもよい。特に、多様体学習方法による、集合のニューラルネットワークのそれぞれの重みの修正（Ｓ４２０）は、ニューラルネットワークの集合の学習（Ｓ４０）の一部である。本開示の文脈において、集合の各ニューラルネットワークの学習は、データセット（またはデータセットのサブデータセット）に基づく訓練を含んでいてもよい。これにより、例においては、データセット（またはデータセットのサブデータセット）が訓練セット（例えば学習セット）の一部であるが、データセット（またはデータセットのサブデータセット）のみがニューラルネットワークの重みの修正（Ｓ４２０）に直接関与し、訓練セットの他の部分は関与しないことを意味する。例えば、重みの修正（Ｓ４２０）は、データセット（またはデータセットのサブデータセット）の３Ｄモデル化オブジェクトに関する（例えばそれから得られる、例えばそれから導出される）データ（例えば、演算結果）のみに基づいて実行されてもよい。例えば、これは、学習Ｓ４０および／または修正Ｓ４２０が、訓練セットの３Ｄモデル化オブジェクトからの選択を操作する損失を、それぞれの重みの修正（Ｓ４２０）が当該選択により選ばれた３Ｄモデル化オブジェクトのみを含むように、最小化することを含む場合に当てはまってもよい。
【０１１１】
本開示により学習される任意のニューラルネットワークは、３Ｄモデル化オブジェクトを推定するように構成されたニューラルネットワークであってもよい。これは、ニューラルネットワークが、３Ｄモデル化オブジェクト空間または３Ｄモデル化オブジェクト空間の部分集合、例えば３Ｄモデル化オブジェクトのクラスにおいて値を出力することを意味する。追加的に、または代替的に、ニューラルネットワークは、各ベーステンプレートの各３Ｄモデル化オブジェクトへの変形を推定するように構成されていてもよい。「ベーステンプレート」の概念については以下でさらに説明するが、いずれの場合も「ベーステンプレート」は３Ｄモデル化オブジェクトを示す。ベーステンプレートの各３Ｄモデル化オブジェクトへの変形は、ベーステンプレートをそれぞれの３Ｄモデル化オブジェクトにマッピングする１つまたは複数の幾何学的変換の集合であってもよい。そのような場合、変形を推定することは、１つまたは複数の幾何学的変換および／またはそれらのパラメータを推定することを含んでいてもよい。代替的に、または追加的に、ベーステンプレートおよびそれぞれの３Ｄモデル化オブジェクトが、それぞれ第１の３Ｄメッシュ（または第１の点群）および第２の３Ｄメッシュ（または第２の点群）であるか、またはそれらで表される場合、ベーステンプレートからそれぞれの３Ｄモデル化オブジェクトへの変形は、第１の３Ｄメッシュ（または第１の点群）の各頂点（または点）と第２の３Ｄメッシュ（または第２の点群）の各頂点（または点）との対応の集合であってもよい。そのような場合、変形を推定することは、そのような対応を推定することを含んでいてもよい。変形の推定は、１つまたは複数の幾何学的変換によりベーステンプレートがマッピングされる各３Ｄモデル化オブジェクトを推定することをさらに含んでいてもよい。言い換えれば、ニューラルネットワークの出力は、１つまたは複数の幾何学的変換とそれぞれの３Ｄモデル化オブジェクトのセットを含んでいてもよい。例においては、ニューラルネットワークは、３Ｄモデル化オブジェクトの推定、および／または変形の推定を行うよう構成されたデコーダを備えるオートエンコーダである。
【０１１２】
オートエンコーダの概念について、ここで説明する。オートエンコーダは、重み
【数１０】
2020115336.tif 000012
と
【数１１】
2020115336.tif 000013
でパラメータ化された２つのフィードフォワード深層ニューラルネットワークの構成
【数１２】
2020115336.tif 000014
および
【数１３】
2020115336.tif 000015
として定義でき、ここで、
【数１４】
2020115336.tif 000016
である（上記論文［３］参照）。
【数１５】
2020115336.tif 000017
はエンコーダであり、
【数１６】
2020115336.tif 000018
はデコーダである。
【数１７】
2020115336.tif 000019
は、潜在空間、すなわち、エンコーダ
【数１８】
2020115336.tif 000020
がその値を出力し、デコーダ
【数１９】
2020115336.tif 000021
がその値をとるベクトル空間である。
【数２０】
2020115336.tif 000022
は、潜在空間の次元である。
【数２１】
2020115336.tif 000023
はエンコーダ
【数２２】
2020115336.tif 000024
がその値をとり、デコーダ
【数２３】
2020115336.tif 000025
がその値を出力する空間である。
【数２４】
2020115336.tif 000026
は、「元の入力空間」とも呼ぶ。
【数２５】
2020115336.tif 000027
は、元の入力空間の次元である。本開示の文脈において、元の入力空間は、３Ｄモデル化オブジェクト空間であるか、またはそれに厳密に含まれていてもよい。言い換えれば、エンコーダ
【数２６】
2020115336.tif 000028
はその値を元の入力空間においてとるが、デコーダ
【数２７】
2020115336.tif 000029
による潜在空間の画像、例えば３Ｄモデル化オブジェクト空間は、元の入力スペースの部分集合であってもよい。ベクトル
【数２８】
2020115336.tif 000030
は、「潜在ベクトル」または「隠れベクトル」とも呼ばれる。オートエンコーダ
【数２９】
2020115336.tif 000031
は、「再構築」とも呼ばれる。再構築では、入力として元の入力空間の第１の要素（例えば、３Ｄモデル化オブジェクト空間の第１の３Ｄモデル化オブジェクト）をとり、それを潜在ベクトル（すなわち潜在空間の要素）にマッピングし、次いで、元の入力空間の第２の要素（例えば、３Ｄモデル化オブジェクト空間の第２の３Ｄモデル化オブジェクト）を潜在ベクトルから出力することにより、マッピングを逆にする。第２の要素は、第１の要素の“再構築”とも呼ばれる。例においては、第２の要素が、第１の要素の近似を表すことを意味する。例においては、
【数３０】
2020115336.tif 000032
が３Ｄモデル化オブジェクトの場合、３Ｄモデル化オブジェクト
【数３１】
2020115336.tif 000033
は、再構築された３Ｄモデル化オブジェクトとも呼ばれる。
【数３２】
2020115336.tif 000034
はまた、入力とも呼ばれ、
【数３３】
2020115336.tif 000035
は、再構築された入力とも呼ばれる。本プロセスの文脈において、エンコーダ
【数３４】
2020115336.tif 000036
およびデコーダ
【数３５】
2020115336.tif 000037
は、例えば再構築エラーを最小化することにより、（例えば別々に、または同時に）機械学習されてもよい。オブジェクトのエンコードとは、オブジェクトにエンコーダを適用することを意味する。よって、エンコードの結果は、「エンコードしたオブジェクト」とも呼ばれる。オブジェクトのエンコードは、「（例えばエンコーダの、例えば潜在空間への）オブジェクトの投影」とも呼ばれ、エンコードの結果は「投影されたオブジェクト」とも呼ばれる。潜在ベクトルのデコードとは、潜在ベクトルにデコーダを適用することを意味する。よって、デコードの結果は、「デコードした潜在ベクトル」とも呼ばれる。
【０１１３】
ここで、オートエンコーダの学習の実施について説明する。
【数３６】
2020115336.tif 000038
を訓練セットとする。ここで
【数３７】
2020115336.tif 000039
は、訓練セットにおける３Ｄモデル化オブジェクトの数である。この実施形態において、オートエンコーダ
【数３８】
2020115336.tif 000040
は、再構築損失
【数３９】
2020115336.tif 000041
の最適化を含む。ここで
【数４０】
2020115336.tif 000042
は入力サンプルとオートエンコーダによる再構築サンプルとを比較する距離であり、例えば
【数４１】
2020115336.tif 000043
はＬ２ノルムであり得る。学習プロセスは、ランダムなノイズを各サンプル
【数４２】
2020115336.tif 000044
に適用し、オートエンコーダを訓練して、クリーンなバージョン
【数４３】
2020115336.tif 000045
を再構築することによって、より堅牢にできる。このような例は「ノイズ除去オートエンコーダ」とも呼ばれる（上記論文［５］で紹介）。本開示の文脈において、学習は、先に引用した論文［６］で説明されているように、貪欲な層ごとの方式（ｇｒｅｅｄｙ  ｌａｙｅｒ−ｗｉｓｅ  ｆａｓｈｉｏｎ）でアーキテクチャを事前訓練することもでき、このバージョンは積層オートエンコーダと呼ばれる。
【０１１４】
ベーステンプレートの決定（Ｓ３０）についてここで説明する。
【０１１５】
本開示の文脈において、ベーステンプレートの決定（Ｓ３０）は、それぞれが各機械部品を表す３Ｄモデル化オブジェクトを含むデータセットの各サブデータセットに対して実行され、データセットは、１つまたは複数のサブデータセットを有し、各サブデータセットは、データセットの少なくとも一部を形成する。言い換えれば、各サブデータセットについて、ベーステンプレートが決定される（Ｓ３０）。
【０１１６】
各サブデータセットについてのベーステンプレートの決定（Ｓ３０）についてここで説明する。なお、以下の説明は、それぞれの任意のサブデータセットの任意のベーステンプレートの決定（Ｓ３０）に適用される。
【０１１７】
ベーステンプレートは３Ｄモデル化オブジェクトであり、例えば機械部品を表す。ベーステンプレートは、メッシュまたは点群であってもよい。ベーステンプレートは、サブデータセットの３Ｄモデル化オブジェクトの重心を表す３Ｄモデル化オブジェクトである。これは、ベーステンプレートの幾何学的形状が、サブデータセットの３Ｄモデル化オブジェクトの形状の平均幾何学的形状（例えば、ハウスドルフ距離、ワッサースタイン距離、Ｅａｒｔｈ  Ｍｏｖｅｒ距離、面取り距離などの距離に応じた形状）を表す（例えば、平均幾何学的形状である）ことを意味してもよい。例において、３Ｄベーステンプレートは、サブデータセットのすべての３Ｄモデル化オブジェクトに対する平均非類似性が最小であるようなサブデータセットの３Ｄモデル化オブジェクトである。第１の３Ｄモデル化オブジェクトと第２の３Ｄモデル化オブジェクトとの非類似性は、例えば、ハウスドルフ距離、ワッサースタイン距離、Ｅａｒｔｈ  Ｍｏｖｅｒ距離、または面取り距離に応じた、第１の３Ｄモデル化オブジェクトの幾何学的形状と第２の３Ｄモデル化オブジェクトの幾何学的形状との差の定量化であってもよい。
【０１１８】
図９は、図６のデータセット６０の重心を表す、決定されたベーステンプレート９２の例を示す。図１０は、図７のデータセット７０の重心を表す、決定されたベーステンプレート１０２の例を示す。
【０１１９】
例においては、ベーステンプレートの決定（Ｓ３０）は、サブデータセットの各３Ｄモデル化オブジェクトについて、サブデータセットの３Ｄモデル化オブジェクトと候補ベーステンプレートの不一致にペナルティを課す損失の、候補ベーステンプレートのうちの最小値を算出すること（Ｓ３００）を含む。
【０１２０】
損失の、候補ベーステンプレートのうちの最小値の算出（Ｓ３００）は、３Ｄモデル化オブジェクトを（例えば繰り返し）探索し、探索した各３Ｄモデル化オブジェクトの損失に対する効果を評価することを含んでいてもよい。そのような場合、候補ベーステンプレートは、探索された３Ｄモデル化オブジェクトを指す。候補ベーステンプレートは、例えば３Ｄモデル化オブジェクト（例えば別の候補ベーステンプレート）の変形や、３Ｄモデル化オブジェクト（例えばベーステンプレート候補）の連続した変形の結果得られる３Ｄモデル化オブジェクトであってもよい。損失の最小値の算出（Ｓ３００）は、任意の緩和アルゴリズムの使用を含んでいてもよい。
【０１２１】
損失は、サブデータセットの各３Ｄモデル化オブジェクトについて、３Ｄモデル化オブジェクトと候補ベーステンプレートとの（例えば幾何学的な）類似性および／または非類似性を測定する量（例えば関数）であってもよい。損失は、例えば、サブデータセットの各３Ｄモデル化オブジェクトをパラメータとしてとり、かつ入力として候補ベーステンプレートをとり、かつ入力候補ベーステンプレートとサブデータセットの３Ｄモデル化オブジェクトとの（例えば幾何学的な）類似性および／または非類似性を表す量（正の実数など）を出力する、関数であってもよい。各３Ｄモデル化オブジェクトについて、３Ｄモデル化オブジェクトと候補ベーステンプレートの不一致は、３Ｄモデル化オブジェクトと候補ベーステンプレートとの（例えば幾何学的な）非類似性の定量化であってもよい。不一致にペナルティを課すことは、損失が不一致の増加関数であることを意味してもよい。
【０１２２】
したがって、ベーステンプレートの決定（Ｓ３０）は、３Ｄモデル化オブジェクト（候補ベーステンプレート）のうち、サブデータセットの３Ｄモデル化オブジェクトとの類似性に報酬を与えてもよい。特に、ベーステンプレートの決定（Ｓ３０）は、候補ベーステンプレートを繰り返し探索（例えばアクセス）し、それらのそれぞれについて、探索された候補ベーステンプレートとサブデータセットの各３Ｄモデル化オブジェクトとの類似性を求め、報酬を与えてもよく、その結果、決定（Ｓ３０）されたベーステンプレートは、サブデータセットの３Ｄモデル化オブジェクトの重心を表すことになる。
【０１２３】
例においては、サブデータセットの３Ｄモデル化オブジェクトと候補ベーステンプレートとの不一致は、３Ｄモデル化オブジェクトと候補ベーステンプレートとの距離の関数である。
【０１２４】
距離は、３Ｄモデル化オブジェクト間の類似性および／または非類似性を測定する、特にシンプルで効率的な方法である。
【０１２５】
距離は、３Ｄモデル化オブジェクト間の任意の距離、例えば、３Ｄモデル化オブジェクト間の（例えば幾何学的な）非類似性を定量化する距離であってもよい。よって、３Ｄモデル化オブジェクトと候補ベーステンプレートとの距離は、３Ｄモデル化オブジェクトと候補ベーステンプレートとの（例えば幾何学的な）非類似性を定量化するものであってもよい。距離は、例えば、ワッサースタイン距離、Ｅａｒｔｈ  Ｍｏｖｅｒ距離、面取り距離、またはハウスドルフ距離であってもよい。不一致は、距離の２乗など、距離の増加関数であってもよい。
【０１２６】
例においては、当該距離は、３Ｄモデル化オブジェクトを表す第１の点群と候補ベーステンプレートを表す第２の点群との距離である。
【０１２７】
上述のように、サブデータセットの各３Ｄモデル化オブジェクトは、点群として提供してもよく（したがって、これは３Ｄモデル化オブジェクトを表す）、あるいは、３Ｄモデル化オブジェクトを表す点群は、３Ｄモデル化オブジェクトが提供される別のフォーマットから決定されてもよい。いずれの場合も、ベーステンプレートの決定（Ｓ３０）は、サブデータセットの３Ｄモデル化オブジェクトをそれぞれ表す点群を操作してもよい。候補ベーステンプレートは、同様に３Ｄモデル化オブジェクトであるため、それぞれの点群で表すこともでき、これらは、オプションとして、他の３Ｄモデル化オブジェクトフォーマットから決定してもよい。したがって、距離は、ワッサースタイン距離やＥａｒｔｈ  Ｍｏｖｅｒ距離など、点群間の任意の距離であってよい。
【０１２８】
例において、損失は以下のタイプである。
【数４４】
2020115336.tif 000046
ここで、
【数４５】
2020115336.tif 000047
は
【数４６】
2020115336.tif 000048
と
【数４７】
2020115336.tif 000049
との距離の関数であり、
【数４８】
2020115336.tif 000050
は第２の点群であり、
【数４９】
2020115336.tif 000051
は各サブデータセットにおける３Ｄモデル化オブジェクトの数であり、
【数５０】
2020115336.tif 000052
は第１の点群である。
【０１２９】
例において、
【数５１】
2020115336.tif 000053
はＥａｒｔｈ  Ｍｏｖｅｒ距離損失であって、以下の式で与えられる。
【数５２】
2020115336.tif 000054
例においては、算出（Ｓ３００）は、ベース３Ｄモデル化オブジェクトを提供することを含む。これらの例では、算出（Ｓ３００）は、ベース３Ｄモデル化オブジェクトから開始して、以下を繰り返すことをさらに含む：前回の候補ベーステンプレートの損失に対する効果を評価し、前回の候補ベーステンプレートを新しい候補ベーステンプレートに変形する。
【０１３０】
ベース３Ｄモデル化オブジェクトは、３Ｄモデル化オブジェクトである。ベース３Ｄモデル化オブジェクトは候補ベーステンプレートである。データセットの任意の３Ｄモデル化オブジェクトが提供されると（Ｓ１０）、ベース３Ｄモデル化オブジェクトが提供されてもよい。言い換えれば、ベース３Ｄモデル化オブジェクトの提供は、任意のオブジェクトの提供（Ｓ１０）として行われてもよく、例においては、例えば、（例えば実質的に）同時に実行される。
【０１３１】
繰り返しについてここで説明する。繰り返しは、ベース３Ｄモデル化オブジェクトから始まる。演算（Ｓ３００）は、ベース３Ｄモデル化オブジェクトを探索（例えばアクセス）し、ベース３Ｄモデル化オブジェクトの損失に対する効果を評価してもよい。ベース３Ｄモデル化オブジェクトの損失に対する効果の評価は、損失および／または損失の算出結果の導関数の算出を含んでいてもよい。ベース３Ｄモデル化オブジェクトの効果の評価は、損失の算出結果および／または損失の算出結果の導関数が、損失が十分に小さいかどうかを、例えば算出（Ｓ３００）を実行する緩和アルゴリズムの収束パラメータに応じて判定することをさらに含んでいてもよい。例においては、損失に対する効果が、損失が十分に小さくならない程度である場合、ベース３Ｄモデル化オブジェクトは新しい候補ベーステンプレートに変形される。次いで、繰り返しは、引き続き以下を行う。繰り返しは、前回の候補ベーステンプレートの変形の結果生じる候補ベーステンプレートのそれぞれについて、候補ベーステンプレートの損失に対する効果を評価することを含む。ここで、この評価は、ベース３Ｄモデル化オブジェクトの効果の評価として行われ得る。例においては、損失に対する効果が、損失が十分に小さくならない程度である場合、例えば、候補ベース３Ｄモデル化オブジェクトは新しい候補ベーステンプレートに変形され、新しい候補ベーステンプレートの損失に対する効果が評価される。言い換えれば、損失が十分に小さくならない限り、繰り返しは、互いに変形する候補ベーステンプレートを連続的に探索し、損失が十分に小さくないことの結果として候補ベーステンプレートを互いに変形する。
【０１３２】
前回の候補ベーステンプレートを新しい候補ベーステンプレートに変形するという概念についてここで説明する。上述のとおり、サブデータセットの各３Ｄモデル化オブジェクトについて、前回の候補ベーステンプレートの損失は、３Ｄモデル化オブジェクトと当該前回の候補ベーステンプレートとの不一致にペナルティを課す。損失を評価することは、各３Ｄモデル化オブジェクトと前回の候補ベーステンプレートとの不一致が、ペナルティが最小化された不一致（すなわち、損失のすべての不一致の中で）であるようなサブデータセットの１つまたは複数の３Ｄモデル化オブジェクトを決定することを含んでいてもよい。前回の候補ベーステンプレートの変形は、次いで、１つまたは複数の３Ｄモデル化オブジェクトを前回の候補ベーステンプレートに割り当てることを含んでいてもよい。前回の候補ベーステンプレートの変形は、前回の候補ベーステンプレートを、１つまたは複数の３Ｄモデル化オブジェクトの重心に、例えば、距離に応じて、変換することをさらに含んでいてもよい。そのような場合、重心が、新しい候補ベーステンプレートを形成してもよい。
【０１３３】
言い換えれば、算出（Ｓ３００）は、ベース３Ｄモデル化オブジェクトから開始し、候補ベーステンプレートの１つの、サブデータセットの（例えばすべての）３Ｄモデル化オブジェクトに対する非類似性が、許容できるものとなるまで（例えば、収束パラメータより小さくなるまで、例えば、最適となるまで）、それを連続する候補ベーステンプレートに繰り返し変形する。これは、３Ｄモデル化オブジェクトをサブデータセットの重心に変形する効率的な方法を構成する。
【０１３４】
例においては、ベース３Ｄモデル化オブジェクトは球体を表す。追加的に、または代替的に、損失は、サブデータセットの各３Ｄモデル化オブジェクトに対して、データセットの３Ｄモデル化オブジェクトを表す第１の点群と、新しい候補ベーステンプレートを表す第２の点群とのＥａｒｔｈ  Ｍｏｖｅｒ距離損失にペナルティを課してもよい。
【０１３５】
ベース３Ｄモデル化オブジェクトは、単位球などの球体を表す点群であってもよい。そのような場合、前回の候補ベーステンプレートの変形の結果である新しい候補ベーステンプレートは、それぞれ、球体を繰り返し変形した結果である。したがって、新しい候補ベーステンプレートは、それぞれ、球体を表す点群を繰り返し変形した結果生じる点群によって表されてもよい。
【０１３６】
球体は、特に便利なベース３Ｄモデル化オブジェクトである。なぜなら、球体を表す点群は、球体に同相の３Ｄモデル化オブジェクトなど、多数の３Ｄモデル化オブジェクトを表す点群に簡単に変形できるからである。単位球の利用は、サブデータセットの３Ｄモデル化オブジェクトが点群として提供され（Ｓ１０）、単位球スケーリングによってセンタリングおよびスケーリングされる場合に特に適している。Ｅａｒｔｈ  Ｍｏｖｅｒ距離は、ベース３Ｄモデル化オブジェクトとしての球体の利用に特に適している。
【０１３７】
例において、ベース３Ｄモデル化オブジェクトは点群である。これらの例において、繰り返しにより、最適化された点群が生成される。これらの例において、ベーステンプレートの決定（Ｓ３０）は、最適化された点群の点の法線を推定すること（Ｓ３３０）をさらに含んでいてもよい。これらの例において、ベーステンプレートの決定（Ｓ３０）は、推定した法線に基づき、最適化された点群の表面再構成を行うこと（Ｓ３４０）をさらに含んでいてもよい。
【０１３８】
ベース３Ｄモデル化オブジェクトを表す点群を繰り返し変形した結果として、点群が最適化される。この変形は、ベース３Ｄモデル化オブジェクトを表す点群を、最小の損失を表す点群（または少なくとも、最小の損失の近似値を表す点群）に変形するために実行される。
【０１３９】
法線の推定（Ｓ３３０）は、点群の点の法線を推定できる任意の方法によって実行され得る。法線は、最適化された点群に関するトポロジ情報を提供する。表面再構成は、点群をメッシュ化する表面を、点群と推定された法線に基づいて推定できる任意の方法で実行してもよい。その結果、決定（Ｓ３０）されたベーステンプレートは、サブデータセットの重心を表す３Ｄメッシュとして出力されてもよい。言い換えれば、例において、決定（Ｓ３０）されたベーステンプレートは、表面再構成を実行（Ｓ３４０）した結果である。
【０１４０】
ベース３Ｄモデル化オブジェクトを表す点群の点は、少なくとも幾何学的な観点から最適化される。言い換えれば、最適化された点群は、幾何学的な観点からのみ３Ｄモデル化オブジェクトの重心を正確に表すことができてもよいが、正しいトポロジを有してなくてもよい。例えば、サブデータセットはあるクラスの３Ｄモデル化オブジェクトからなってもよく、最適化された点群はサブデータセットの重心を幾何学的に表してもよいが、トポロジが間違っている可能性がある。例えば、単純にメッシュ化された場合、例えば、最適化した点群は、当該クラスの３Ｄモデル化オブジェクトを表さないことがある。法線の推定（Ｓ３３０）、および、その後の表面再構成の実行（Ｓ３４０）により、これらの問題を回避し、最適化された点群を再メッシュして、新しいメッシュに正しいトポロジを持たせることができる。したがって、これらの例において、決定（Ｓ３０）したベーステンプレートは、クラスの３Ｄモデル化オブジェクトの重心を表す３Ｄモデル化オブジェクトであってもよい。
【０１４１】
ここで法線の推定（Ｓ３３０）および表面再構成の実行（Ｓ３４０）の実施について、図１１■図１６を参照して説明する。図１１は、球体を表す点群である、ベース３Ｄモデル化オブジェクト１１０の例を示す。図１２は、椅子を表す最適化した点群１２０を示す。最適化された点群は、間違ったトポロジを有する最適化された点群１２０を示す図１３に示されるように、間違ったトポロジを有している。図１３に示されるように、最適化した点群１３０は、それが有するべき椅子のトポロジを有していない。この実施形態においては、ベーステンプレートの決定（Ｓ３０）は、決定（Ｓ３０）が、最適化された点群を置く粗いグリッドを提供すること（Ｓ３１０）を含む。点を含む各ボクセルの値は１であり、他のボクセルの値はｎｕｌｌである。この実施形態においては、決定（Ｓ３０）は、グリッドから粗いメッシュを抽出すること（Ｓ３２０）をさらに含む。粗いメッシュの抽出（Ｓ３２０）は、等値が１に近いマーチングキューブアルゴリズムを適用することで実行してもよい。図１４は、図１２の最適化された点群１２０から抽出された粗いメッシュ１４０を示している。この実施形態では、法線の推定（Ｓ３３０）は、最適化された点群１２０の各点の法線を正確に算出するために、マーチングキューブアルゴリズムからの粗いメッシュの利用を含む。法線の推定（Ｓ３３０）は、各点を粗いメッシュの最も近い三角形に投影し、その法線に対して、三角形の法線の加重平均を割り当てることを含んでいてもよく、当該重みは投影点の重心の重みである。図１５Ａは、推定した法線を有する、図１２の最適化された点群１５０を示す。決定（Ｓ３０）は、これらの適切な法線を用いてポアソン表面再構成を実行すること（Ｓ３４０）をさらに含む。これにより、正確なトポロジを有する３Ｄメッシュであるベーステンプレートを取得できる。決定（Ｓ３０）は、オプションとして、頂点が多すぎる場合に３Ｄメッシュを間引くことを含んでいてもよい。図１５Ｂは、ポアソン表面再構成を実行（Ｓ３４０）することにより図１５Ａで推定した法線を有する最適化された点群１５０から得られた３Ｄベーステンプレート１６０の例を示す。
【０１４２】
各サブデータセットについてのベーステンプレートの決定（Ｓ３０）について説明した。２つ以上のサブデータセットが存在する場合、それぞれのサブデータセットについて、それぞれのサブデータセットのベーステンプレートの決定を、同様に実行してもよいことを理解されたい。すべてのサブデータセットのすべてのベーステンプレートは、同時に決定（Ｓ３０）されてもよい。なお、例においては、これらのベーステンプレートの同時決定（Ｓ３０）は、各サブデータセットについて、同時に、最小損失を算出すること（Ｓ３００）を含み、当該算出（Ｓ３００）は、各サブデータセットについて、上述のように実行される。
【０１４３】
各サブデータセットについて、同時に、最小損失を算出すること（Ｓ３００）によってこれらのベーステンプレートを同時に決定すること（Ｓ３０）についてここで説明する。
【０１４４】
これらの例においては、同時に各サブデータセットについて行われる最小損失の算出（Ｓ３００）は、共通損失の最小化を含む。共通損失の最小化は、上述のように、各サブデータセットについて各算出（Ｓ３００）を実行することに対応（例えば暗示、例えば相当）してもよい。データセットの各３Ｄモデル化オブジェクトについて、共通損失は、複数の項から項を選択する。各項は、３Ｄモデル化オブジェクトと候補ベーステンプレートとの不一致にペナルティを課す。選択された項は、複数の項のうち不一致に対するペナルティが最も小さい項であってもよい。
【０１４５】
共通損失は、データセットの各３Ｄモデル化オブジェクトについて、３Ｄモデル化オブジェクトと候補ベーステンプレートとの２つ以上の（例えば幾何学的な）類似性および／または非類似性を測定する量（例えば関数）であってもよい。複数の項のうちの各項は、２つ以上の（例えば幾何学的な）類似性および／または非類似性のそれぞれの尺度であってもよい。これにより、３Ｄモデル化オブジェクトと候補ベーステンプレートとの、項によりペナルティが課される不一致は、３Ｄモデル化オブジェクトと候補ベーステンプレートとの（例えば幾何学的な）非類似性の定量化であってもよい。よって、不一致にペナルティを課すことは、項が不一致の増加関数であることを意味してもよい。共通損失は、複数の項から、また、データセットの各３Ｄモデル化オブジェクトについて、ペナルティが最も小さい項を選択する。例においては、共通損失は、パラメータとしてデータセットの３Ｄモデル化オブジェクトをとり、入力として候補ベーステンプレートをとり、３Ｄモデル化オブジェクトごとに選択された各項の関数（例えば合計）である量（例えば正の実数）を出力する関数であることを意味する。言い換えれば、損失は、データセットの各３Ｄモデル化オブジェクトについて、どの（１つまたは複数の）候補ベーステンプレートが３Ｄモデル化オブジェクトに（例えば幾何学的に）（例えば最も）類似しているかを表す結果を出力してもよい。共通損失の最小化には、ミニバッチ確率的勾配緩和アルゴリズムなどの緩和アルゴリズムを用いてもよい。
【０１４６】
例においては、３Ｄモデル化オブジェクトと各候補ベーステンプレートとの不一致は、３Ｄモデル化オブジェクトと各候補ベーステンプレートとの距離に関与する。
【０１４７】
距離は、３Ｄモデル化オブジェクト間の類似性および／または非類似性を測定する、特にシンプルで効率的な方法である。
【０１４８】
距離は、ハウスドルフ距離、ワッサースタイン距離、面取り距離、またはＥａｒｔｈ  Ｍｏｖｅｒ距離など、任意の距離であってもよい。例においては、不一致は、３Ｄモデル化オブジェクトと各候補ベーステンプレートとの距離の（例えば増加）関数であるという点で、３Ｄモデル化オブジェクトと各候補ベーステンプレートとの距離に関与する。例においては、不一致は、３Ｄモデル化オブジェクトと各候補ベーステンプレートとの距離の算出に関する結果に依存するという点で、３Ｄモデル化オブジェクトと各候補ベーステンプレートとの距離に関与する。
【０１４９】
例においては、距離は、３Ｄモデル化オブジェクトを表す第１の点群と各候補ベーステンプレートを表す第２の点群との距離である。
【０１５０】
上述のように、データセットの各３Ｄモデル化オブジェクトは、点群として提供してもよく（したがって、３Ｄモデル化オブジェクトを表す）、あるいは、３Ｄモデル化オブジェクトを表す点群は、３Ｄモデル化オブジェクトが提供される別のフォーマットから決定されてもよい。いずれの場合も、決定（Ｓ３０）は、データセットの３Ｄモデル化オブジェクトをそれぞれ表す点群を操作してもよい。各候補ベーステンプレートは、同様に３Ｄモデル化オブジェクトであるため、それぞれの点群で表すこともでき、これらは、オプションとして、他の３Ｄモデル化オブジェクトフォーマットから決定してもよい。したがって、距離は、ワッサースタイン距離やＥａｒｔｈ  Ｍｏｖｅｒ距離など、点群間の任意の距離であってよい。
【０１５１】
例において、共通損失は以下のタイプである。
【数５３】
2020115336.tif 000055
ここで
【数５４】
2020115336.tif 000056
は第２の点群であり、
各
【数５５】
2020115336.tif 000057
について、
【数５６】
2020115336.tif 000058
は、３Ｄモデル化オブジェクトのデータセットの
【数５７】
2020115336.tif 000059
番目のサブデータセットにおける３Ｄモデル化オブジェクトの数であり、
【数５８】
2020115336.tif 000060
は、各サブデータセットの３Ｄモデル化オブジェクトを表す第１の点群であり、
【数５９】
2020115336.tif 000061
であって、
【数６０】
2020115336.tif 000062
は、データセットにおける３Ｄモデル化オブジェクトの数であり、
【数６１】
2020115336.tif 000063
は、各候補ベーステンプレート
【数６２】
2020115336.tif 000064
とデータセット
【数６３】
2020115336.tif 000065
の３Ｄモデル化オブジェクトとの距離に関与する項である。
【０１５２】
例において、
【数６４】
2020115336.tif 000066
はＥａｒｔｈ  Ｍｏｖｅｒ距離損失であって、以下の式で与えられる。
【数６５】
2020115336.tif 000067
例において、共通損失
【数６６】
2020115336.tif 000068
の最小化は、同時に各サブデータセットについて行われる、損失
【数６７】
2020115336.tif 000069
の最小値の算出（Ｓ３００）となる（例えば示唆する、例えば相当する）。これは上述のとおりである。
【数６８】
2020115336.tif 000070
としたときの
【数６９】
2020115336.tif 000071
個のベーステンプレートの決定（Ｓ３０）の実施についてここで説明する。
【０１５３】
この実施形態において、データセットは
【数７０】
2020115336.tif 000072
個の３Ｄモデル化オブジェクトからなり、
【数７１】
2020115336.tif 000073
で表される。各３Ｄモデル化オブジェクト
【数７２】
2020115336.tif 000074
は、単位球スケーリングによってセンタリングおよびスケーリングされた点群である。
【数７３】
2020115336.tif 000075
は、各点群
【数７４】
2020115336.tif 000076
の共通の点の数である。決定（Ｓ３０）は共通損失の最小化を含み、共通損失の最小化は、
【数７５】
2020115336.tif 000077
個の点を有する単位球であるベース３Ｄモデル化オブジェクトをそれぞれ表す
【数７６】
2020115336.tif 000078
個の点群
【数７７】
2020115336.tif 000079
を提供することを含む。この実施形態において、決定（Ｓ３０）は、各ベース３Ｄモデル化オブジェクトが互いに非常にわずかに異なるように、各点群
【数７８】
2020115336.tif 000080
に非常に小さなノイズを追加することを含む。これにより、各ベース３Ｄモデル化オブジェクトは最初から他のベース３Ｄモデル化オブジェクトとは異なるため、データセットのいくつかの３Ｄモデル化オブジェクトに共通の形状を表現するようにすでにわずかに特化しており、データセットの
【数７９】
2020115336.tif 000081
個の各サブデータセットの
【数８０】
2020115336.tif 000082
個の重心の決定（Ｓ３０）が容易になる。
【０１５４】
この実施形態において、最小化される共通損失は、以下のタイプである。
【数８１】
2020115336.tif 000083
ここで、
【数８２】
2020115336.tif 000084
は、３Ｄモデル化オブジェクトを表す第１の点群
【数８３】
2020115336.tif 000085
と候補ベーステンプレートを表す第２の点群
【数８４】
2020115336.tif 000086
とのＥａｒｔｈ  Ｍｏｖｅｒ距離損失である。共通損失の最小化は、先に引用した論文［１２］に示された緩和アルゴリズムを用いて各球体の点を最適化し、（ミニバッチ確率的勾配緩和アルゴリズムによって）損失を最小化することによって行ってもよい。
【０１５５】
各ベース３Ｄモデル化オブジェクトは、他の最適化されたベース３Ｄモデル化オブジェクトとは異なる種類の形状を表すベーステンプレート形状の決定（Ｓ３０）によって最適化される。これは、訓練モデルごとに最小値が最も近いベース３Ｄモデル化オブジェクトのみを最適化するためである。各ベース３Ｄモデル化オブジェクトは、それ自体、他の各サブデータセットとは異なる、データセットの各サブデータセットの３Ｄモデル化オブジェクトの重心を表す特定のベーステンプレートに特化する。言い換えれば、各ベーステンプレートは、Ｅａｒｔｈ  Ｍｏｖｅｒ距離により提供される３Ｄモデルのデータセット内の、それ自体のクラスタの重心を表す。
【０１５６】
各ベース３Ｄモデル化オブジェクトをそれ自体の３Ｄモデル化オブジェクト形状に特化させるために、この決定（Ｓ３０）の実施においては、ミニバッチ訓練中に再割り当てアルゴリズムを用いることもできる。実際、３Ｄモデル化オブジェクトが同じベーステンプレートに対して最小損失に達し、他の３Ｄモデル化オブジェクトが最適化されるのを妨げる可能性がある。そのような効果を防ぐために、決定（Ｓ３０）では、第１の点群を、訓練中の各ミニバッチで、前回の候補ベーステンプレートごとに、前回の候補テンプレート（第１の再割り当てアルゴリズム）の損失に応じて、降順でソートしてもよい。あるいは、決定（Ｓ３０）において、第１の点群を、前回の候補ベーステンプレートと、この３Ｄモデル化オブジェクトを再構成する最良の候補ベーステンプレートとの、損失差に応じて、ソートしてもよい（第２の再割り当てアルゴリズム）。次に、決定（Ｓ３０）により、最初の
【数８５】
2020115336.tif 000087
（
【数８６】
2020115336.tif 000088
はミニバッチサイズの小さな一部）を前回の候補ベーステンプレートに強制的に割り当ててもよい。これは、決定（Ｓ３０）が
【数８７】
2020115336.tif 000089
と、その結果として得られるその第１の点群のａｒｇｍｉｎを変化させ、この第１の点群に対して、このテンプレートをバックプロパゲーションにより強制的に通過させる。その結果、前回の候補ベーステンプレートが新しい候補ベーステンプレートに変形されてもよい。
【０１５７】
ここで第１および第２の再割り当てアルゴリズムについて説明する。どちらのアルゴリズムも以下を入力とする。
ミニバッチ
【数８８】
2020115336.tif 000090
（
【数８９】
2020115336.tif 000091
はミニバッチサイズ）。
【数９０】
2020115336.tif 000092
（
【数９１】
2020115336.tif 000093
以下）
【数９２】
2020115336.tif 000094
について、
【数９３】
2020115336.tif 000095
である。
【数９４】
2020115336.tif 000096
について
【数９５】
2020115336.tif 000097
（よって
【数９６】
2020115336.tif 000098
である）。
【０１５８】
両アルゴリズムは以下を出力する。
再割り当て後のミニバッチ全体についての損失
【数９７】
2020115336.tif 000099
以下は、第１の再割り当てアルゴリズムの擬似コードである。
【数９８】
2020115336.tif 000100
以下は、第２の再割り当てアルゴリズムの擬似コードである。
【数９９】
2020115336.tif 000101
共通の損失
【数１００】
2020115336.tif 000102
の最小化により、各３Ｄベーステンプレートの頂点の最適化に対応する
【数１０１】
2020115336.tif 000103
個の最適化した点群が得られるが、トポロジは考慮されない。これにより、正確ではあるがトポロジが間違っている点群を備えたベーステンプレートになり得る。よって、決定（Ｓ３０）は、ベーステンプレートの再メッシュ化を含んでいてもよい。そのような場合、決定（Ｓ３０）は、各ベーステンプレートについて、決定（Ｓ３０）が、ベーステンプレートを入れる粗いグリッドを提供すること（Ｓ３１０）を含んでいてもよい。点を含む各ボクセルの値は１であり、他のボクセルの値はｎｕｌｌである。決定（Ｓ３０）は、次いで、例えば等値が１に近いマーチングキューブアルゴリズムを適用することによる、粗いグリッドそれぞれからの粗いメッシュの抽出（Ｓ３２０）を含んでいてもよい。決定（Ｓ３３０）は、次いで、最適化された各点群の点の法線を推定すること（Ｓ３３０）を含んでいてもよい。この実施では、法線の推定（Ｓ３３０）は、最適化された各点群の各点の法線を正確に算出するために、マーチングキューブアルゴリズムからの粗いメッシュの利用を含んでいてもよい。これは、各点を粗いメッシュの最も近い三角形に投影し、その法線に対して、三角形の法線の加重平均を割り当てることからなってもよく、当該重みは投影点の重心の重みである。決定（Ｓ３４０）は、これらの適切な法線により、正確なトポロジを持つベーステンプレートを取得するために、最適化された各点群で（例えばポアソン）表面再構成を実行することを含んでもよく、頂点が多すぎる場合は最終的に間引きされる。
【０１５９】
２つのベーステンプレートが決定（Ｓ３０）される例について、ここで図１６〜図１９を参照して説明する。図１６は、４本脚の椅子からなるデータセット１６０の例を示している。データセットは、４本脚の椅子の２つのクラス、すなわち、４本脚と狭い背もたれを有する椅子からなる第１のクラス１６２、および４本脚と広い背もたれを有する椅子からなる第２のクラス１６４に分割される。図１７および図１８は、それぞれ、第１のクラス１６２の重心を表す第１のベーステンプレートと第２のクラス１６４の重心を表す第２のベーステンプレートの決定（Ｓ３０）を示す。点群１７０および１８０は２つのベース３Ｄモデル化オブジェクトであり、それぞれが、最適化された点群１７４および１８４に繰り返し変形させられる（１７２、１８２）。図１９は、それぞれ最適化された点群１７４および１８４の表面再構成である第１のベーステンプレート１９０および第２のベーステンプレート１９２を示す。
【０１６０】
ニューラルネットワークの学習（Ｓ４０）の概念についてここで説明する。
【０１６１】
上述のように、ニューラルネットワークの学習（Ｓ４０）は、１つまたは複数のニューラルネットワーク、例え２つ以上のニューラルネットワークの集合の決定を指定する。集合のニューラルネットワークは、それぞれ重みを有する。ニューラルネットワークの集合の学習（Ｓ４０）は、ニューラルネットワークの集合を提供すること（Ｓ４００）を含んでいてもよい。ニューラルネットワークの集合の提供（Ｓ４００）は、ユーザによって実行されてもよい。例えば、ユーザはデータセットが保存されているメモリからニューラルネットワークの集合を取得してもよい。各ニューラルネットワークは構造として提供（Ｓ４００）されてもよいが、それでもニューラルネットワークの訓練を行う必要はある。言い換えれば、ニューラルネットワークの重みを含む各ニューラルネットワークの構造が提供（Ｓ４００）されてもよいが、重みは依然として初期化（Ｓ４１０）および／または修正（Ｓ４２０）しなければならない可能性がある。ニューラルネットワークの集合の学習（Ｓ４０）は、各ニューラルネットワークのそれぞれの重みの初期化（Ｓ４１０）、および／またはニューラルネットワークのそれぞれの重みの修正（Ｓ４２０）を含んでいてもよい。それぞれの重みの修正（Ｓ４２０）は、上述のように、訓練の一部であってもよい。訓練は、上述のように、すべてのニューラルネットワークの同時訓練であってもよく、データセットに基づいていてもよい。例においては、各ニューラルネットワークの訓練がデータセット全体に基づいていることを意味する。代替的に、または追加的に、各ニューラルネットワークの訓練は、データセットの各サブデータセットに基づいていることを意味してもよい。データセットは１つまたは複数のサブデータセットを含み、各サブデータセットはデータセットの少なくとも一部を形成する。以下、「データセット」とは、ここで説明したように、ニューラルネットワークの集合の訓練が実行されるデータセットを指す。
【０１６２】
例においては、各ニューラルネットワークのそれぞれの重みの初期化（Ｓ４１０）は、ニューラルネットワークの集合の提供（Ｓ４００）の後、かつ、各重みの修正（Ｓ４２０）の前に行われる。各重みの初期化（Ｓ４１０）は、一般に、例えばユーザとの対話により、集合の各ニューラルネットワークのそれぞれの重みの値を指定する（例えば、宣言する）ことを含む。例において、各ニューラルネットワークのそれぞれの重みは、すべて所定の閾値よりも小さい値に初期化（Ｓ４１０）されてもよい。当該所定の閾値は、ユーザによって提供されてもよい。所定の閾値は、例えば、１、０．５、０．１、または０．００１のいずれかより小さくてもよい。
【０１６３】
例においては、最初にゼロに近く初期化されるのは重みではなく、（妥当な）入力が何であろうとゼロに近づくべきニューラルネットワークの出力である。ただし、実際には、使用するアーキテクチャを考えると、初期化（Ｓ４１０）に弱い重みを付けると、弱い変形を予測することによりニューラルネットワークが確実に開始するようにできる。そのため、例においては、閾値それ自体が存在せず、用いられるアーキテクチャに、すべてが依存する。そのような例では、学習を開始する前にニューラルネットワークの出力が小さな歪みを予測するように、初期化（Ｓ４２０）を実行してもよい。
【０１６４】
ニューラルネットワークのそれぞれの重みの、そのような所定の閾値より小さい値への初期化（Ｓ４１０）は、特に、各ベーステンプレートの３Ｄモデル化オブジェクトへの変形を推定するように構成されたニューラルネットワークを学習するように適合される。そのような場合、ニューラルネットワークの入力が何であれ、ニューラルネットワークの出力が小さいこと、すなわち、各ベーステンプレートの変形が小さくことが必要であってもよい。実際、それぞれのベーステンプレートがデータセットのサブデータセットの重心を表す場合、各ベーステンプレートは、サブデータセットの３Ｄモデル化オブジェクトへと変換するのに、大きく、かつ／あるいは、大まかに変形する必要はない。このような方法でニューラルネットワークの重みを初期化（Ｓ４１０）することにより、学習（Ｓ４０）は、サブデータセットの３Ｄモデル化オブジェクトを出力することでニューラルネットワークが確実に訓練を開始するようにする。言い換えれば、ニューラルネットワークは、各重みの初期化（Ｓ４１０）後すぐに、各ベーステンプレートが重心であるサブデータセットの３Ｄモデル化オブジェクトへの各ベーステンプレートの変形の推定に特化する。
【０１６５】
各ニューラルネットワークの重みの修正（Ｓ４２０）についてここで説明する。
【０１６６】
各ニューラルネットワークの重みの修正（Ｓ４２０）は、データセットの各３Ｄモデル化オブジェクトについて、複数の項から項を選択する損失を最小化することによって実行される。ここで、各項は、３Ｄモデル化オブジェクトと、集合のそれぞれのニューラルネットワークによって推定された各３Ｄモデル化オブジェクトとの不一致にペナルティを課すものであり、選択される項は、複数の項のうち不一致に対するペナルティが最も小さい項である。
【０１６７】
「各ニューラルネットワークの重みを修正する」とは、ニューラルネットワークのうち少なくとも一部（例えばすべて）における重みのうちの少なくとも一部（例えばすべて）が、例えば繰り返し、例えば、損失が繰り返し最小化される間に、変更されることを意味する。例えば、損失の最小化は、１つまたは複数のアルゴリズムの実行を含んでいてもよく、１つまたは複数のアルゴリズムの少なくとも一部（例えばすべての）ステップは、実行時に各重みを修正してもよい。損失の最小化には、ミニバッチ上のＡＤＡＭソルバーなどの深層学習技術を用いてもよい。
【０１６８】
損失は、データセットの各３Ｄモデル化オブジェクトについて、３Ｄモデル化オブジェクトと各ニューラルネットワークに推定された各３Ｄモデル化オブジェクトとの（例えば幾何学的な）２つ以上の類似性および／または非類似性を測定する量（例えば関数）であってもよい。複数の項のうちの各項は、２つ以上の（例えば幾何学的な）類似性および／または非類似性のそれぞれの尺度であってもよい。これにより、３Ｄモデル化オブジェクトと各ニューラルネットワークにより推定された各３Ｄモデル化オブジェクトとの、項によりペナルティが課される不一致は、３Ｄモデル化オブジェクトと各ニューラルネットワークにより推定された各３Ｄモデル化オブジェクトとの（例えば幾何学的な）非類似性の定量化であってもよい。よって、不一致にペナルティを課すことは、項が不一致の増加関数であることを意味してもよい。損失は、複数の項から、また、データセットの各３Ｄモデル化オブジェクトについて、ペナルティが最も小さい項を選択する。例においては、損失は、パラメータとしてデータセットの３Ｄモデル化オブジェクトをとり、入力としてニューラルネットワークの集合をとり、３Ｄモデル化オブジェクトごとに選択された各項の関数（例えば合計）である量（例えば正の実数）を出力する関数であることを意味する。言い換えれば、損失は、データセットの各３Ｄモデル化オブジェクトについて、どのニューラルネットワークが３Ｄモデル化オブジェクトに（例えば幾何学的に）（例えば最も）類似した３Ｄモデル化オブジェクトを推定しているかを表す結果を出力してもよい。
【０１６９】
例においては、３Ｄモデル化オブジェクトと、集合の各ニューラルネットワークにより推定された各３Ｄモデル化オブジェクトとの不一致は、３Ｄモデル化オブジェクトと、集合の各ニューラルネットワークにより推定された各３Ｄモデル化オブジェクトとの距離に関与する。
【０１７０】
距離は、３Ｄモデル化オブジェクト間の類似性および／または非類似性を測定する、特にシンプルで効率的な方法である。
【０１７１】
距離は、ハウスドルフ距離、ワッサースタイン距離、面取り距離、またはＥａｒｔｈ  Ｍｏｖｅｒ距離など、任意の距離であってもよい。例においては、不一致は、３Ｄモデル化オブジェクトと、集合の各ニューラルネットワークにより推定された各３Ｄモデル化オブジェクトとの距離の（例えば増加）関数であるという点で、集合の各ニューラルネットワークにより推定された各３Ｄモデル化オブジェクトとの距離に関与する。例においては、不一致は、３Ｄモデル化オブジェクトと、集合の各ニューラルネットワークにより推定された各３Ｄモデル化オブジェクトとの距離の算出に関する結果に依存するという点で、集合の各ニューラルネットワークにより推定された各３Ｄモデル化オブジェクトとの距離に関与する。
【０１７２】
例においては、当該距離は、３Ｄモデル化オブジェクトを表す第１の点群と集合の各ニューラルネットワークにより推定された各３Ｄモデル化オブジェクトを表す第２の点群との距離である。
【０１７３】
上述のように、データセットの各３Ｄモデル化オブジェクトは、点群として提供してもよく（したがって、これは３Ｄモデル化オブジェクトを表す）、あるいは、３Ｄモデル化オブジェクトを表す点群は、３Ｄモデル化オブジェクトが提供される別のフォーマットから決定されてもよい。いずれの場合も、修正（Ｓ４２０）は、データセットの３Ｄモデル化オブジェクトをそれぞれ表す点群を操作してもよい。集合のニューラルネットワークにより推定された各３Ｄモデル化オブジェクトは、同様に３Ｄモデル化オブジェクトであるため、それぞれの点群で表すこともでき、これらは、オプションとして、他の３Ｄモデル化オブジェクトフォーマットから決定してもよい。したがって、距離は、ワッサースタイン距離やＥａｒｔｈ  Ｍｏｖｅｒ距離など、点群間の任意の距離であってよい。
【０１７４】
例においては、各ニューラルネットワークは、各ベーステンプレートの各３Ｄモデル化オブジェクトへの変形を推定するように構成されている。これらの例においては、各ベーステンプレートは、３Ｄモデル化オブジェクトである。
【０１７５】
例においては、各ベーステンプレートは、データセットのサブデータセットの３Ｄモデル化オブジェクトの重心を表す３Ｄモデル化オブジェクトである。
【０１７６】
例において、損失は以下のタイプである。
【数１０２】
2020115336.tif 000104
ここで、
【数１０３】
2020115336.tif 000105
はニューラルネットワークの集合であり、
【数１０４】
2020115336.tif 000106
はデータセットの３Ｄモデル化オブジェクトであり、
【数１０５】
2020115336.tif 000107
は各ベーステンプレートであり、
【数１０６】
2020115336.tif 000108
は、３Ｄモデル化オブジェクト
【数１０７】
2020115336.tif 000109
と、各ニューラルネットワーク
【数１０８】
2020115336.tif 000110
によって推定されたベーステンプレート
【数１０９】
2020115336.tif 000111
の変形との、距離に関与する項である。
【０１７７】
例において、
【数１１０】
2020115336.tif 000112
は、面取り距離損失である。
【数１１１】
2020115336.tif 000113
例においては、最小化は、次の繰り返しを含む：選択した集合の各３Ｄモデル化オブジェクトについて、データセットの３Ｄモデル化オブジェクトの集合を選択し、３Ｄモデル化オブジェクトと、各ニューラルネットワークによって推定された３Ｄモデル化オブジェクトとの、不一致が小さいことに報酬を与えることにより、３Ｄモデル化オブジェクトに各ニューラルネットワークを割り当てる。これらの例においては、各ニューラルネットワークは、選択された集合の１つまたは複数の３Ｄモデル化オブジェクトに割り当てられる。これらの例においては、各ニューラルネットワークの重みは、割り当ての結果として修正される。
【０１７８】
選択の繰り返しは、データセットの各３Ｄモデル化オブジェクトが少なくとも１回選択されるまで、かつ／あるいはデータセットの各３Ｄモデル化オブジェクトに各ニューラルネットワークが割り当てられるまで実行される。選択された集合の３Ｄモデル化オブジェクトへの各ニューラルネットワークを割り当ては、３Ｄモデル化オブジェクトと各ニューラルネットワークによって推定された３Ｄモデル化オブジェクトとの不一致にペナルティを課す損失の各項を評価することを含んでいてもよい。選択された集合の３Ｄモデル化オブジェクトへの各ニューラルネットワークを割り当ては、不一致に対するペナルティが最も小さい項を割り当てることをさらに含んでいてもよい。例においては、評価された項によってペナルティが課される不一致に対応する各ニューラルネットワークは、３Ｄモデル化オブジェクトに割り当てられたものである。
【０１７９】
言い換えれば、修正（Ｓ４２０）方法は、データセット内の３Ｄモデル化オブジェクトの集合に繰り返しアクセスし、各集合の各３Ｄモデル化オブジェクトに対し、３Ｄモデル化オブジェクトに（例えば幾何学的に）（例えば最も）類似する各３Ｄモデル化オブジェクトを推定した各ニューラルネットワークを割り当てる。したがって、各ニューラルネットワークについて、１つまたは複数の３Ｄモデル化オブジェクトが、各ニューラルネットワークに繰り返し割り当てられる。各ニューラルネットワークの重みは、割り当てのたびに修正される。例においては、各ニューラルネットワークの重みが修正され、各ニューラルネットワークが、少なくとも、現在割り当てられている各３Ｄモデル化オブジェクト、および各ニューラルネットワークに前回割り当てられていた各３Ｄモデル化オブジェクトを推定するように構成されることを意味する。
【０１８０】
したがって、修正（Ｓ４２０）は、集合の３Ｄモデル化オブジェクトを繰り返し探索し、各ニューラルネットワークを１つまたは複数の３Ｄモデル化オブジェクトに繰り返し割り当てる。重みは、各ニューラルネットワークが少なくともそれに割り当てられた３Ｄモデル化オブジェクトの推定に特化するように、繰り返し変更してもよい。言い換えれば、修正（Ｓ４２０）は、データセットの３Ｄモデル化オブジェクトの１つまたは複数のサブデータセット（例えばクラス）の選択を操作し、実質的に同時に、各ニューラルネットワークがサブデータセットのうちのそれぞれ１つの３Ｄモデル化オブジェクトの推定に特化するように、各ニューラルネットワークの重みを修正する。
【０１８１】
各ニューラルネットワークが、３Ｄモデル化オブジェクトを推定するように構成された各デコーダを含む各オートエンコーダである例の実施についてここで説明する。
【０１８２】
この実施形態において、
【数１１２】
2020115336.tif 000114
を、決定（Ｓ３０）された
【数１１３】
2020115336.tif 000115
個の決定（Ｓ３０）されたベーステンプレートとし、ここで
【数１１４】
2020115336.tif 000116
である。学習（Ｓ５０）は、各ベーステンプレートについて１つずつ、
【数１１５】
2020115336.tif 000117
個のオートエンコーダ
【数１１６】
2020115336.tif 000118
を学習することからなる。各エンコーダは、先に引用した論文［８，９，１０，１１］に基づいて、３Ｄモデル化オブジェクトを表す入力３Ｄメッシュのサンプリング
【数１１７】
2020115336.tif 000119
を入力としてとる。各デコーダ
【数１１８】
2020115336.tif 000120
は、３Ｄ座標
【数１１９】
2020115336.tif 000121
とともに、潜在ベクトル
【数１２０】
2020115336.tif 000122
を入力として、ベーステンプレート
【数１２１】
2020115336.tif 000123
の変形を予測し、変形されたテンプレートは
【数１２２】
2020115336.tif 000124
として得られる。各デコーダは、学習が始まる前に小さな変形を予測するように初期化される。これは、上述のように、各デコーダの重みを、所定の閾値よりも小さい初期値に初期化すること（Ｓ４１０）を含んでいてもよい。それぞれの重みは、以下の面取り距離の損失を（ミニバッチ上のＡＤＡＭソルバーなどの標準的な深層学習技術を用いて）最小化することにより変更される（Ｓ４２０）。
【数１２３】
2020115336.tif 000125
ここで
【数１２４】
2020115336.tif 000126
は、面取り距離である。
【０１８３】
損失は、上述の第１の再割り当てアルゴリズムまたは第２の再割り当てアルゴリズムに類似した再割り当てアルゴリズムを用いることにより最小化してもよい。これにより、
【数１２５】
2020115336.tif 000127
とそのａｒｇｍｉｎを再割り当てして、訓練中に各ミニバッチの少なくとも数個の３Ｄモデル化オブジェクトによって各オートエンコーダを最適化することができる。この実施形態では、オートエンコーダはベーステンプレートから開始されるため、それらが、関連付けられたベーステンプレートによって表される種類の３Ｄモデル化オブジェクトに特化するのは簡単である。さらに、このベーステンプレートをわずかに変形するだけで入力に一致するため、オートエンコーダは、確実に、出力のトポロジを、より一貫性のあるものにする。
【０１８４】
プロセスの実施形態についてここで説明する。
【０１８５】
この実施形態においては、プロセスはいくつかのオートエンコーダをメッシュ上で学習する。ここで各オートエンコーダは、それ自体を特定の種類のトポロジに自動的に特化させる。各デコーダは、それ自体のベーステンプレートも変形する。ベーステンプレートは自動的に決定（Ｓ３０）され、提供（Ｓ１０）されたデータセットに存在するさまざまな種類のベース形状を表す。これにより、より高い精度とより低い再構築損失で多様体を学習し、さまざまなトポロジを効率的に処理し、再構築された形状がより一貫したトポロジを確実に共有することができる。
【０１８６】
本プロセスの実施形態は、４つの段階１、２、３、および４を含む。これらについてここで説明する。
【０１８７】
１．データセットのサンプリング
【数１２６】
2020115336.tif 000128
を、典型的には同じクラスのオブジェクトに属する３Ｄメッシュの、提供（Ｓ１０）されたデータセット（例えば椅子のデータセット）とする。本プロセスは、６つの正投影ビューで、各モデルをレイキャストすることにより、データセット内の各形状から点群を抽出することを含む。本プロセスは、各点群を均一にサブサンプリングして、固定数
【数１２７】
2020115336.tif 000129
個の点を取得することをさらに含む。そのために、本プロセスは点群のランダムな点から開始し、点の数が
【数１２８】
2020115336.tif 000130
個に達するまで、点群のうち、既に選択されている点から最も遠い点を繰り返し選択する。ここで、
【数１２９】
2020115336.tif 000131
は、訓練メッシュのサンプリングされた点群を表す本プロセスでは、形状をさらにセンタリングし、単位球スケーリングを適用する。
【０１８８】
２．ベーステンプレートの学習―
【数１３０】
2020115336.tif 000132
個のベーステンプレートの決定（Ｓ３０）
本プロセスは、それぞれ
【数１３１】
2020115336.tif 000133
個の点を有する
【数１３２】
2020115336.tif 000134
個の単位球
【数１３３】
2020115336.tif 000135
から開始する。本プロセスは、各球体が非常にわずかに互いに異なるように、各球体に非常に小さなノイズを追加する。
【０１８９】
本プロセスは、（ミニバッチ確率的勾配緩和アルゴリズムによって）以下のＥａｒｔｈ  Ｍｏｖｅｒ距離損失を最小化するために、先に引用した論文［１２］に示された緩和アルゴリズムを用いて各球体の点を最適化する。
【数１３４】
2020115336.tif 000136
ここで、
【数１３５】
2020115336.tif 000137
は、テンプレート
【数１３６】
2020115336.tif 000138
と形状
【数１３７】
2020115336.tif 000139
とのＥａｒｔｈ  Ｍｏｖｅｒ距離損失である。
【０１９０】
各球体は、他の最適化された球体とは異なる種類の形状を表すベーステンプレート形状で最適化される。これは、各訓練モデルについて、最小値が、最も近い球体のみを最適化するためである。各球体は、それ自体、他の球体とは異なる、特定のトポロジと形状の種類を表す特定のベーステンプレートに特化する。各ベーステンプレートは、（Ｅａｒｔｈ  Ｍｏｖｅｒ距離により提供される）３Ｄモデルの空間内の、それ自体のクラスタの重心と解釈されもよい。
【０１９１】
各球体をそれ自体の形状に特化させるために、本プロセスはミニバッチ訓練中に再割り当てアルゴリズムも用いる。実際、すべての形状が同じベーステンプレートに対してそれらの最小損失に達し、他の球体が最適化されるのを妨げる可能性がある。再割り当てアルゴリズムは、上述の第１の再割り当てアルゴリズムおよび第２の再割り当てアルゴリズムのうちの１つであってもよい。
【０１９２】
損失
【数１３８】
2020115336.tif 000140
は球体の頂点を最適化するが、トポロジは考慮しない。これにより、正確ではあるがトポロジが間違っている点群を備えたベーステンプレートになり得る。したがって、本プロセスには、ベーステンプレートの再メッシュ化が含まれる。そのために、本プロセスは、各ベーステンプレートを粗い３Ｄグリッドに配置する。ここで、点を含む各ボクセルの値は１であり、他のボクセルの値はｎｕｌｌである。次いで、本プロセスは、等値が１に近いマーチングキューブアルゴリズムを適用して、各ベーステンプレートについて、粗いメッシュを抽出することを含む。本プロセスは、各ベーステンプレートの各点の法線を正確に算出するために、マーチングキューブアルゴリズムからの粗いメッシュを用いる。本プロセスは、各点を粗いメッシュの最も近い三角形に単純に投影し、その法線に対して、三角形の法線の加重平均を割り当てる。当該重みは投影点の重心の重みである。本プロセスは、これらの適切な法線により、正確なトポロジを持つベーステンプレートを取得するためにポアソン表面再構成を実行する。頂点が多すぎる場合は最終的に間引きされる。ここで、
【数１３９】
2020115336.tif 000141
は
【数１４０】
2020115336.tif 000142
個の学習したベーステンプレートを表す。なお、各ベーステンプレートは、球体に対して同相である。
【０１９３】
３．多様体を学習するー
【数１４１】
2020115336.tif 000143
個のオートエンコーダの学習（Ｓ４０）
本プロセスは、各ベーステンプレートについて１つずつ、
【数１４２】
2020115336.tif 000144
個のオートエンコーダ
【数１４３】
2020115336.tif 000145
をさらに含む。各エンコーダは、先に引用した論文［８，９，１０，１１］に基づいて、入力３Ｄメッシュのサンプリング
【数１４４】
2020115336.tif 000146
を入力としてとる。各デコーダ
【数１４５】
2020115336.tif 000147
は、３Ｄ座標
【数１４６】
2020115336.tif 000148
とともに、潜在ベクトル
【数１４７】
2020115336.tif 000149
を入力として、ベーステンプレート
【数１４８】
2020115336.tif 000150
の変形を予測し、変形されたテンプレートは
【数１４９】
2020115336.tif 000151
として得られる。各デコーダは、学習が始まる前に小さな変形を予測するように初期化される。
【０１９４】
オートエンコーダは、以下の面取り距離の損失を（ミニバッチ上のＡＤＡＭソルバーなどの標準的な深層学習技術を用いて）最小化することにより学習される。
【数１５０】
2020115336.tif 000152
ここで
【数１５１】
2020115336.tif 000153
は面取り距離の関数である。
【０１９５】
また、本プロセスは、
【数１５２】
2020115336.tif 000154
とそのａｒｇｍｉｎを再割り当てして、訓練中に各ミニバッチの少なくとも数個の３Ｄモデル化オブジェクトによって各オートエンコーダを最適化するために、前の段階とまったく同じ分割アルゴリズムも用いる。オートエンコーダはベーステンプレートから開始するため、それらが、関連付けられたベーステンプレートによって表される種類の形状に特化するのは簡単である。さらに、このベーステンプレートをわずかに変形するだけで入力に一致するため、オートエンコーダは、確実に、出力のトポロジを、より一貫性のあるものにする。
【０１９６】
４．多様体を生成モデルに変える
多様体が学習されると、新しい形状をサンプリングして合成できるように、プロセスは各オートエンコーダの各潜在空間について、ガウス混合モデルに適合させてもよい。各オートエンコーダについて、本プロセスはこのオートエンコーダによって最適に再構築される訓練形状を取得し、これらの形状を用いてｋ平均クラスタリングを初期化してから、ガウス混合に適合するように期待値最大化を実行する。ガウス混合は、各潜在空間にわたる確率分布関数を提供し、これは簡単にサンプリングできる。
【０１９７】
さらには、テンプレート学習方法、多様体学習方法、プロセス、および／または、利用方法を実行するための命令を含むコンピュータプログラムが提供される。
【０１９８】
さらには、プログラム、および／または、ニューラルネットワーク、および／または、ニューラルネットワークの集合が記録されたデータ記憶媒体を備える装置が提供される。装置は、例えば、ＳａａＳ（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  ｓｅｒｖｉｃｅ：サービスとしてのソフトウェア）や他のサーバ、あるいはクラウドベースのプラットフォームなどで、非一時的なコンピュータ読み取り可能な媒体を形成し、または、そのようなものとして機能してもよい。あるいは、装置は、データ記憶媒体に接続されたプロセッサを備えていてもよい。したがって、装置は、全体として、または部分的に、コンピューターシステムを形成してもよい（例えば、装置は、システム全体のサブシステムである）。システムは、プロセッサに接続されたグラフィカル・ユーザ・インターフェースをさらに備えてもよい。
【０１９９】
システムおよびプログラムについてここで説明する。
【０２００】
図２１は、本システムのＧＵＩの一例を示す図であって、当該システムはＣＡＤシステムである。
【０２０１】
ＧＵＩ２１００は、標準的なメニューバー２１１０，２１２０、ならびに底部および側面のツールバー２１４０，２１５０を有する典型的なＣＡＤのようなインターフェースであってもよい。このようなメニューバーおよびツールバーは、ユーザが選択可能なアイコンのセットを含み、各アイコンは、当技術分野で知られているように、１つまたは複数の操作または機能に関連付けられている。これらのアイコンのいくつかは、ＧＵＩ２１００に表示された３Ｄモデル化オブジェクト２０００の編集および／または作業に適合したソフトウェアツールに関連付けられている。ソフトウェアツールはワークベンチに分類することができる。各ワークベンチは、ソフトウェアツールのサブセットを含む。特に、ワークベンチの１つは、モデル化製品２０００のジオメトリ的特徴を編集するのに適した編集ワークベンチである。操作中、設計者は、例えば、オブジェクト２０００の一部を予め選択し、次いで、適切なアイコンを選択することによって、操作を開始する（例えば、寸法、色などを変更する）か、ジオメトリ的制約を編集することができる。例えば、典型的なＣＡＤ操作は、スクリーン上に表示された３Ｄモデル化オブジェクトのパンチングまたは折り畳みのモデリングである。ＧＵＩは、例えば、表示された製品２０００に関連するデータ２５００を表示してもよい。図の例では、「特徴ツリー」として表示されたデータ２５００およびそれらの３Ｄ表現２０００は、ブレーキキャリパおよびディスクを含むブレーキ部品に関するものである。ＧＵＩは、編集された製品の動作のシミュレーションを起動するため、または表示された製品２０００の様々な属性を描画するために、例えばオブジェクトの３Ｄ定位を容易にするための様々なタイプのグラフィックツール２１３０，２０７０，２０８０をさらに示してもよい。カーソル２０６０は、ユーザがグラフィックツールを用いて対話操作ができるように、触覚デバイスによって制御されてもよい。
【０２０２】
図２２は、本システムの一例を示す図であって、当該システムは、クライアントコンピュータシステム、例えばユーザのワークステーションである。
【０２０３】
本例のクライアントコンピュータは、内部通信バス１０００に接続された中央演算処理装置（ＣＰＵ）１０１０、および同じくバスに接続されたランダムアクセスメモリ（ＲＡＭ）１０７０とを備える。クライアントコンピュータは、さらに、バスに接続されたビデオランダムアクセスメモリ１１００と関連付けられたグラフィックス処理装置（ＧＰＵ）１１１０を備える。ビデオＲＡＭ１１００は、当該技術分野において、フレームバッファとしても知られる。大容量記憶装置コントローラ１０２０は、ハードドライブ１０３０などの大容量記憶装置へのアクセスを管理する。コンピュータプログラムの命令及びデータを具体的に実現するのに適した大容量メモリ装置は、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ及びフラッシュメモリ装置のような半導体メモリ装置、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、およびＣＤ−ＲＯＭディスク１０４０を含む、全ての形式の不揮発性メモリを含む。前述のいずれも、特別に設計されたＡＳＩＣ（特定用途向け集積回路）によって補完されてもよいし、組み入れられてもよい。ネットワークアダプタ１０５０は、ネットワーク１０６０へのアクセスを管理する。クライアントコンピュータはまた、カーソル制御装置、キーボードなどの触覚装置１０９０を含んでいてもよい。カーソル制御装置は、ユーザがディスプレイ１０８０上の任意の所望の位置にカーソルを選択的に位置させることを可能にするために、クライアントコンピュータ内で使用される。さらに、カーソル制御装置は、ユーザが様々なコマンドを選択し、制御信号を入力することを可能にする。カーソル制御装置は、システムに制御信号を入力するための多数の信号生成装置を含む。典型的には、カーソル制御装置はマウスであってもよく、マウスのボタンは信号を生成するために使用される。あるいは、または追加的に、クライアントコンピュータシステムは、感知パッドおよび／または感知スクリーンを備えてもよい。
【０２０４】
コンピュータプログラムは、コンピュータによって実行可能な命令を含んでいてもよく、命令は、上記システムにテンプレート学習方法、多様体学習方法、および／または、プロセスを実行させるための手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶媒体に記録可能であってもよい。プログラムは、例えば、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実装されてもよい。プログラムは、例えばプログラマブルプロセッサによる実行のための機械読み取り可能な記憶装置に具体的に実現された製品のような装置として実装されてもよい。プロセス／方法のステップ（すなわちテンプレート学習方法、多様体学習方法、および／またはプロセスのステップ）は、プログラム可能なプロセッサが命令のプログラムを実行し、入力データを操作して出力を生成することによってプロセスの機能を実行することによって実行されてもよい。したがって、プロセッサは、データ記憶システム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスからデータおよび命令を受信し、また、それらにデータおよび命令を送信するようにプログラム可能であってもよく、またそのように接続されていてもよい。アプリケーションプログラムは、高水準の手続き型またはオブジェクト指向のプログラミング言語で、または必要に応じてアセンブリ言語または機械語で実装されていてもよい。いずれの場合も、言語はコンパイラ型言語またはインタープリタ型言語であってもよい。プログラムは、フルインストールプログラムまたは更新プログラムであってもよい。いずれの場合も、プログラムをシステムに適用すると、テンプレート学習方法、多様体学習方法、および／または、プロセスを実行するための命令が得られる。
【図１】
2020115336.tif 000162
【図２】
2020115336.tif 000163
【図３】
2020115336.tif 000164
【図４】
2020115336.tif 000165
【図５】
2020115336.tif 000166
【図６】
2020115336.tif 000167
【図７】
2020115336.tif 000168
【図８】
2020115336.tif 000169
【図９】
2020115336.tif 000170
【図１０】
2020115336.tif 000171
【図１１】
2020115336.tif 000172
【図１２】
2020115336.tif 000173
【図１３】
2020115336.tif 000174
【図１４】
2020115336.tif 000175
【図１５Ａ】
2020115336.tif 000176
【図１５Ｂ】
2020115336.tif 000177
【図１６】
2020115336.tif 000178
【図１７】
2020115336.tif 000179
【図１８】
2020115336.tif 000180
【図１９】
2020115336.tif 000181
【図２０】
2020115336.tif 000182
【図２１】
2020115336.tif 000183
【図２２】
2020115336.tif 000184
【外国語明細書】
2020115336.tif 000185
2020115336.tif 000186
2020115336.tif 000187
2020115336.tif 000188
2020115336.tif 000189
2020115336.tif 000190
2020115336.tif 000191
2020115336.tif 000192
2020115336.tif 000193
2020115336.tif 000194
2020115336.tif 000195
2020115336.tif 000196
2020115336.tif 000197
2020115336.tif 000198
2020115336.tif 000199
2020115336.tif 000200
2020115336.tif 000201
2020115336.tif 000202
2020115336.tif 000203
2020115336.tif 000204
2020115336.tif 000205
2020115336.tif 000206
2020115336.tif 000207
2020115336.tif 000208
2020115336.tif 000209
2020115336.tif 000210
2020115336.tif 000211
2020115336.tif 000212
2020115336.tif 000213
2020115336.tif 000214
2020115336.tif 000215
2020115336.tif 000216
2020115336.tif 000217
2020115336.tif 000218
2020115336.tif 000219
2020115336.tif 000220
2020115336.tif 000221
2020115336.tif 000222
2020115336.tif 000223
2020115336.tif 000224
2020115336.tif 000225
2020115336.tif 000226
2020115336.tif 000227
2020115336.tif 000228
2020115336.tif 000229
2020115336.tif 000230
2020115336.tif 000231
2020115336.tif 000232
2020115336.tif 000233
2020115336.tif 000234
2020115336.tif 000235
2020115336.tif 000236
2020115336.tif 000237
2020115336.tif 000238
2020115336.tif 000239
2020115336.tif 000240
2020115336.tif 000241
2020115336.tif 000242
2020115336.tif 000243
2020115336.tif 000244
2020115336.tif 000245
2020115336.tif 000246
2020115336.tif 000247
2020115336.tif 000248
2020115336.tif 000249
【図１】
2020115336.tif 000250
【図２】
2020115336.tif 000251
【図３】
2020115336.tif 000252
【図４】
2020115336.tif 000253
【図５】
2020115336.tif 000254
【図６】
2020115336.tif 000255
【図７】
2020115336.tif 000256
【図８】
2020115336.tif 000257
【図９】
2020115336.tif 000258
【図１０】
2020115336.tif 000259
【図１１】
2020115336.tif 000260
【図１２】
2020115336.tif 000261
【図１３】
2020115336.tif 000262
【図１４】
2020115336.tif 000263
【図１５Ａ】
2020115336.tif 000264
【図１５Ｂ】
2020115336.tif 000265
【図１６】
2020115336.tif 000266
【図１７】
2020115336.tif 000267
【図１８】
2020115336.tif 000268
【図１９】
2020115336.tif 000269
【図２０】
2020115336.tif 000270
【図２１】
2020115336.tif 000271
【図２２】
2020115336.tif 000272