IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ダッソー システムズの特許一覧

特許7509537編集可能なフィーチャツリーの推測のためのデータ集合を形成すること
<>
  • 特許-編集可能なフィーチャツリーの推測のためのデータ集合を形成すること 図1
  • 特許-編集可能なフィーチャツリーの推測のためのデータ集合を形成すること 図2
  • 特許-編集可能なフィーチャツリーの推測のためのデータ集合を形成すること 図3
  • 特許-編集可能なフィーチャツリーの推測のためのデータ集合を形成すること 図4
  • 特許-編集可能なフィーチャツリーの推測のためのデータ集合を形成すること 図5
  • 特許-編集可能なフィーチャツリーの推測のためのデータ集合を形成すること 図6
  • 特許-編集可能なフィーチャツリーの推測のためのデータ集合を形成すること 図7
  • 特許-編集可能なフィーチャツリーの推測のためのデータ集合を形成すること 図8
  • 特許-編集可能なフィーチャツリーの推測のためのデータ集合を形成すること 図9
  • 特許-編集可能なフィーチャツリーの推測のためのデータ集合を形成すること 図10
  • 特許-編集可能なフィーチャツリーの推測のためのデータ集合を形成すること 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-24
(45)【発行日】2024-07-02
(54)【発明の名称】編集可能なフィーチャツリーの推測のためのデータ集合を形成すること
(51)【国際特許分類】
   G06F 30/27 20200101AFI20240625BHJP
   G06F 30/10 20200101ALI20240625BHJP
   G06N 3/02 20060101ALI20240625BHJP
【FI】
G06F30/27
G06F30/10 100
G06N3/02
【請求項の数】 13
【外国語出願】
(21)【出願番号】P 2019237148
(22)【出願日】2019-12-26
(65)【公開番号】P2020109660
(43)【公開日】2020-07-16
【審査請求日】2022-12-06
(31)【優先権主張番号】18306885.7
(32)【優先日】2018-12-29
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】500102435
【氏名又は名称】ダッソー システムズ
【氏名又は名称原語表記】DASSAULT SYSTEMES
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】エロワ メーア
(72)【発明者】
【氏名】フェルナンド マニュエル サンチェス ベルムデス
【審査官】合田 幸裕
(56)【参考文献】
【文献】特開2009-211724(JP,A)
【文献】米国特許出願公開第2004/0249809(US,A1)
【文献】特開2014-115915(JP,A)
【文献】Gopal Sharma et al.,CSGNet: Neural Shape Parser for Constructive Solid Geometry,2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition,米国,IEEE,2018年12月16日,pages 5515-5523,<DOI: 10.1109/CVPR.2018.00578>
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/27
G06F 30/10
G06N 3/02
IEEE Xplore
JSTPlus(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワークを学習するために構成されたデータ集合を形成するためのコンピュータ実装方法であって、前記ニューラルネットワークは、3D形状の離散幾何学的表現からの、前記3D形状を表す編集可能なフィーチャツリーの推測のために構成され、前記編集可能なフィーチャツリーは、リーフ幾何学的形状に適用される幾何学的演算のツリー構成を備え、前記コンピュータ実装方法は、
- それぞれ、
〇3D形状を表す編集可能なフィーチャツリーであって、前記編集可能なフィーチャツリーは、リーフ幾何学的形状に適用される幾何学的演算のツリー構成を備える、編集可能なフィーチャツリーと、
〇前記3D形状の離散幾何学的表現であって、前記離散幾何学的表現は、前記リーフ幾何学的形状に幾何学的演算の前記ツリー構成を適用することの結果に対応する、離散幾何学的表現と
を含むそれぞれのデータ片を与えるステップと、
- それぞれのトレーニングサンプルとして前記データ集合中にそれぞれ前記データ片の部分を挿入するステップであって、前記データ集合中に挿入される1つまたは複数の第1のデータ片の各々のそれぞれの前記3D形状は、前記データ集合中に挿入されないそれぞれの1つまたは複数の第2のデータ片のそれぞれの前記3D形状と同一である、挿入するステップと
を備え
第1のデータ片ごとに、前記第1のデータ片の前記編集可能なフィーチャツリーは、それぞれの第2のデータ片の前記編集可能なフィーチャツリーに構造的に適合し、第1の編集可能なフィーチャツリーと第2の編集可能なフィーチャツリーとは、
〇前記第1の編集可能なフィーチャツリーの幾何学的演算の前記ツリー構成は、前記第2の編集可能なフィーチャツリーの幾何学的演算の前記ツリー構成に少なくとも部分的に一致することと、
〇対応するリーフ幾何学的形状の各ペアは、同じそれぞれのプリミティブ形状タイプを有し、それぞれの他のパラメータについて、同じそれぞれのパラメータ値を有することと
があるときに構造的に適合すコンピュータ実装方法。
【請求項2】
プリミティブ形状タイプの離散集合と、プリミティブ形状タイプごとの、それぞれの連続パラメータの1つまたは複数のパラメータ領域それぞれの離散集合のそれぞれであって、各パラメータ領域は、前記それぞれの連続パラメータのそれぞれのパラメータ値を有する、それぞれの離散集合とに対して、各リーフ幾何学的形状は、1つまたは複数のパラメータ領域の前記それぞれの離散集合の各々のためのそれぞれのパラメータ値を用いてそれぞれのプリミティブ形状タイプによって形成される請求項1に記載のコンピュータ実装方法。
【請求項3】
1つまたは複数のプリミティブ形状タイプの各々について、前記1つまたは複数のそれぞれの連続パラメータは、1つもしくは複数の次元パラメータおよび/または1つもしくは複数の配置パラメータを備え、ならびに/またはプリミティブ形状タイプの前記離散集合は、直方体タイプ、球体タイプ、1つもしくは複数の円柱タイプ、および/または1つもしくは複数の角柱タイプを備える請求項2に記載のコンピュータ実装方法。
【請求項4】
前記それぞれのデータ片を前記与えるステップは、
- プリミティブ形状タイプの前記離散集合と、1つまたは複数のパラメータ領域のそれぞれの離散集合とを含む初期データを与えるステップと、
- 前記初期データに基づいて前記それぞれのデータ片を合成するステップと
を備える請求項2または3に記載のコンピュータ実装方法。
【請求項5】
1つまたは複数のプリミティブ形状タイプの各々について、前記1つまたは複数のそれぞれの連続パラメータは、1つまたは複数の次元パラメータを備え、前記合成するステップは、
- 次元パラメータごとに、それぞれのパラメータ値を選択するステップを含む、前記初期データに基づいて少なくとも1つの初期データ片を生成するステップと、次いで、
- 反復的に、前記初期データ片から開始するステップ、それぞれの次元パラメータの1つもしくは複数のパラメータ値それぞれを変更するステップ、ならびに/または1つもしくは複数のリーフ幾何学的形状を削除するステップを含む、前記初期データ片に基づいて1つもしくは複数の隠れたデータ片を決定するステップと
を備える請求項4に記載のコンピュータ実装方法。
【請求項6】
前記挿入するステップは、
- 第3のデータ片と第4のデータ片とをそれぞれ含むそれぞれのデータ片のペアを与えるステップと、
- ペアごとに、
〇前記第3のデータ片の前記3D形状と前記第4のデータ片の前記3D形状との間で識別情報をテストするステップと、
〇前記テストするステップが正の結果を生じたとき前記第3のデータ片および前記第4のデータ片のうちの1つのデータ片を第2のデータ片として識別するステップと
を備える請求項1乃至5のいずれか一項に記載のコンピュータ実装方法。
【請求項7】
前記テストするステップは、
- 第1の体積値を計算するステップであって、前記第1の体積値は、前記第3のデータ片の前記離散幾何学的表現の体積を表す、計算するステップと、
- 第2の体積値を計算するステップであって、前記第2の体積値は、前記第4のデータ片の前記離散幾何学的表現の体積を表す、計算するステップと、
- 前記第2の体積値と前記第1の体積値を比較するステップと
を備える請求項6に記載のコンピュータ実装方法。
【請求項8】
- プリミティブ形状タイプの離散集合と、プリミティブ形状タイプごとの、それぞれの連続パラメータの1つまたは複数のパラメータ領域それぞれの離散集合のそれぞれであって、各パラメータ領域は、前記それぞれの連続パラメータのそれぞれのパラメータ値を有する、それぞれの離散集合とに対して、各リーフ幾何学的形状は、1つまたは複数のパラメータ領域の前記それぞれの離散集合の各々のためのそれぞれのパラメータ値を用いてそれぞれのプリミティブ形状タイプによって形成され、
- 1つまたは複数のプリミティブ形状タイプの各々について、前記1つまたは複数のそれぞれの連続パラメータは、1つまたは複数の次元パラメータと1つまたは複数の他のパラメータとからなり、前記1つまたは複数の他のパラメータは1つまたは複数の配置パラメータを含請求項1乃至7のいずれか一項に記載のコンピュータ実装方法。
【請求項9】
1つまたは複数の第1のデータ片の各々について、前記挿入するステップは、前記第1のデータ片の前記編集可能なフィーチャツリーの正規性に応じて前記第1のデータ片を選択するステップを備える請求項1乃至のいずれか一項に記載のコンピュータ実装方法。
【請求項10】
請求項1乃至9のうちのいずれか一項に記載のコンピュータ実装方法に従って形成可能なデータ集合の使用のコンピュータ実装方法であって、前記データ集合に基づいてニューラルネットワークを学習するステップを備えるコンピュータ実装方法。
【請求項11】
請求項1乃至のいずれか一項に記載のコンピュータ実装方法および/または請求項10に記載のコンピュータ実装方法を実行するための命令を備えるコンピュータプログラム
【請求項12】
求項11に記載のプログラムを記録したデータ記憶媒体を備えるデバイス。
【請求項13】
前記データ記憶媒体に結合され、前記プログラムを実行するように構成されるプロセッサをさらに備え、前記プログラムが実行されるときに、前記プロセッサは、請求項1乃至9のいずれか一項に記載のコンピュータ実装方法および/または請求項10に記載のコンピュータ実装方法を実行するように構成される請求項12に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータプログラムおよびシステムの分野に関し、より詳細には、3D形状の離散幾何学的表現からの、3D形状を表す編集可能なフィーチャツリーの推測のために構成されたニューラルネットワークを学習することに関係する解決策に関する。
【背景技術】
【0002】
オブジェクトの設計、エンジニアリング、および製造のために市場にいくつかのシステムおよびプログラムが提供されている。CADは、コンピュータ支援設計の頭文字であり、たとえば、それは、オブジェクトを設計するためのソフトウェア解決策に関係する。CAEは、コンピュータ支援エンジニアリングの頭文字であり、たとえば、それは、将来の製品の物理的挙動をシミュレートするためのソフトウェア解決策に関係する。CAMは、コンピュータ支援製造の頭文字であり、たとえば、それは、製造プロセスおよび動作を定義するためのソフトウェア解決策に関係する。そのようなコンピュータ支援設計システムでは、グラフィカルユーザインターフェースが、技法の効率に関して重要な役目を果たす。これらの技法は、製品ライフサイクル管理(PLM)システム内に埋め込まれ得る。PLMは、拡張企業の概念にわたって、会社が、製品データを共有し、共通のプロセスを適用し、構想からそれらの寿命の終わりまで製品の開発のために会社知識を活用するのを助けるビジネス戦略を指す。(CATIA、ENOVIAおよびDELMIAの商標下で)Dassault Systemesによって提供されるPLM解決策は、製品エンジニアリング知識を編成するエンジニアリングハブと、製造エンジニアリング知識を管理する製造ハブと、エンジニアリングハブと製造ハブとの両方への企業統合および接続を可能にする企業ハブとを提供する。まとめて、システムは、最適化された製品定義、製造準備、生産およびサービスを駆動する動的な、知識ベースの製品作成および決定のサポートを可能にするためにオープンオブジェクトモデル連結製品、プロセス、リソースを提供する。
【0003】
このコンテキストでは、研究者は、3D形状の離散的表現から3D形状を表す妥当な編集可能なフィーチャツリーを推測する解決策を探してきた。特に、未加工入力メッシュに対応する妥当なCSGツリーを発見することが注目されてきた。この問題は、「デジタル化」と呼ばれるより一般的なトピック内に入る。
【0004】
以下の参照が、特に、デジタル化に関係する。
- [1]非特許文献1
- [2]非特許文献2
- [3]非特許文献3
- [4]非特許文献4
- [5]非特許文献5
- [6]非特許文献6
- [7]非特許文献7
- [8]非特許文献8
- [9]非特許文献9
- [10]非特許文献10
【0005】
論文[1]は、平均曲率を使用して厳密な境界表現(B-Rep)モデルを構築して戻すためにメッシュから十分な情報を抽出することに関する。全体的なメッシュ曲率分布に関してメッシュの三角形に対する曲率を分析することによって、B-Rep表現のフェイスになる潜在的な候補であるサブメッシュが構築される。サブメッシュがそれらのネイバーに接触しないとき、隣接するフェイスの間の範囲のいくつかが回復され得るまで、提案された手法がそれらを拡張する。提案された手法は、すでに構築されたサブメッシュまでの距離の概念に基づいて三角形をアグリゲートすることによってサブメッシュを拡張する。複雑で屈曲したジオメトリの場合、提案されたプロセスは、有効な範囲を回復することが保証されない。したがって、複雑なメッシュジオメトリの場合、本方法は、B-Repを構築することができないことがある。さらに、この手法は、編集可能なフィーチャツリーではなく、厳密なB-Repを再構成することにのみ集中する。未加工メッシュから編集可能なフィーチャツリーを構築するコンテキストでは、B-Rep表現は、必ずしも中間ステージであるとは限らず、それは、手法を損なう可能性がある。中間B-Rep表現を経ることは、複雑なジオメトリの場合、プロセス全体を脆弱化することがある。B-Rep構成が失敗する場合、いかなるフィーチャも取り出されないことがある。
【0006】
論文[2]は、B-Rep表現から開始する「プロセスツリー」の再構成に関する。プロセスツリーを構築するために、提案された手法は、後で押し出され得るスケッチを構築するためにB-Repのフェイスとフェイス間の交差とを分析する。得られたプロセスツリーは、ソリッド加算に限定され、すなわち、減算演算は、生成されない。厳密なB-Repが利用可能であるので、アルゴリズムは、反復的に進み、すなわち、フィーチャソリッドが、識別され、ソリッド全体が処理されるまで現在のB-Repからブール演算によって除去される。したがって、提案された手法は、エラーを伝搬するリスクを提示する。
【0007】
論文[8]は、スイープされたソリッド間での連続ブール演算から生じる接続された交差曲線/エッジの非平面ループを決定するための方法を提案する。ループを閉じるために、論文は、追加の仮想交差曲線/エッジを作成する必要があり得ることに言及している。ただし、論文は、それらをどのように作成するのかについて詳述していない。また、論文は、ループ検出という枠を超えておらず、特に、それは、ループ検出からブール演算順序をどのように決定するのかを示していない。
【0008】
論文[10]は、ニューラルネットワークモデルに基づいて3D形状からフィーチャツリー表現を推測するための全く異なる手法を提案する。学習は、フィーチャツリー表現の候補リーフソリッドの離散集合に基づく。さらに、手法は、入力形状を限定された解像度をもつ標準ボクセルグリッドに離散化することを必要とする。論文は、教師つき学習のためにラベルをつけられたデータ集合をどのように取得するのかについて言及していない。提案された手法は精度がない。
【0009】
このコンテキスト内で、依然としてデジタル化のための改善された解決策が必要である。
【先行技術文献】
【非特許文献】
【0010】
【文献】Beniere & al:Topology Reconstruction for B-Rep Modeling from 3D Mesh in Reverse Engineering Applications,2012
【文献】Flavien Boussuge & al:Extraction of generative processes from B-Rep shapes and application to idealization transformations,2014
【文献】S.Gauthier & al:Digitized 3d mesh segmentation based on curvature analysis,2017
【文献】D.Cohen-Steiner & al:Restricted Delaunay Triangulation and Normal Cycle,2003
【文献】B. Levy&al:Lp Centroidal Voronoi Tesselation and its application,2010
【文献】F.Boussuge:Idealization of CAD assemblies for FE structural analyses,chapter 4:Extraction of generative processes from B-Rep shapes to structure components up to assemblies,PhD Thesis,Universite de Grenoble,2014
【文献】J.J.Shah,D.Anderson,Y.Se Kim,S.Joshi:A Discourse on Geometric Feature Recognition From CAD Models,Journal of Computing and Information Science in Engineering,2001
【文献】Y.Zhang,X.Luo,Y.Zhao,An Approach to the Automatic Recognition of Boolean Decomposition Loops for Swept Volume Decomposition,25th International Meshing Roundtable,2016
【文献】Jonathan Richard Shewchuk,Robust Adaptive Floating-Point Geometric Predicates,1996
【文献】G. Sharma,R.Goyal,D.Liu,E.Kalogerakis,S.Maji.CSGNet:Neural Shape Parser for Constructive Solid Geometry.The IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2018
【文献】“Finite-element mesh generation from constructive-solid-geometry models”,Edwin Boender,Willem F.Bronsvoort,Frits H.Post,in Computer-Aided Design,Volume 26,Issue 5,May 1994,Pages 379-392
【文献】“Finite element mesh generation methods: a review and classification”,K Ho-Le,in 38 Computer-Aided Design,volume 20 number 1 January/February 1988
【文献】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
【文献】R.J.Williams.Simple statistical gradient-following algorithms for connectionist reinforcement learning.Machine Learning,229-256,1992
【発明の概要】
【0011】
したがって、ニューラルネットワークを学習するように構成されたデータ集合を形成するためのコンピュータ実装(データ集合形成)方法を提供する。ニューラルネットワークは、3D形状の離散幾何学的表現からの、3D形状を表す編集可能なフィーチャツリーの推測のために構成される。編集可能なフィーチャツリーは、リーフ幾何学的形状に適用される幾何学的演算のツリー構成を備える。本方法は、それぞれのデータ片を与えるステップと、それぞれのトレーニングサンプルとしてデータ集合中にそれぞれデータ片の部分を挿入するステップとを備える。各データ片は、3D形状を表す編集可能なフィーチャツリーを含む。編集可能なフィーチャツリーは、リーフ幾何学的形状に適用される幾何学的演算のツリー構成を備える。各データ片はまた、3D形状の離散幾何学的表現を含む。離散幾何学的表現は、リーフ幾何学的形状に幾何学的演算のツリー構成を適用することの結果に対応する。データ集合中に挿入される1つまたは複数の第1のデータ片の各々のそれぞれの3D形状は、データ集合中に挿入されないそれぞれの1つまたは複数の第2のデータ片のそれぞれの3D形状と同一である。
【0012】
本方法は、以下のうちの1つまたは複数を備え得る。
【0013】
- プリミティブ形状タイプの離散集合と、プリミティブ形状タイプごとの、それぞれの連続パラメータの1つまたは複数のパラメータ領域それぞれの離散集合のそれぞれであって、各パラメータ領域は、前記それぞれの連続パラメータのそれぞれのパラメータ値を有する、それぞれの離散集合とに対して、各リーフ幾何学的形状は、1つまたは複数のパラメータ領域の前記それぞれの離散集合の各々のためのそれぞれのパラメータ値を用いてそれぞれのプリミティブ形状タイプによって形成される。
【0014】
- 1つまたは複数のプリミティブ形状タイプの各々について、1つまたは複数のそれぞれの連続パラメータは、1つもしくは複数の次元パラメータおよび/または1つもしくは複数の配置パラメータを備える
【0015】
- プリミティブ形状タイプの離散集合が、直方体タイプ、球体タイプ、1つもしくは複数の円柱タイプ、および/または1つもしくは複数の角柱タイプを備える
【0016】
- それぞれのデータ片を与えるステップは、プリミティブ形状タイプの離散集合と、1つまたは複数のパラメータ領域のそれぞれの離散集合とを含む初期データを与えるステップと、初期データに基づいてそれぞれのデータ片を合成するステップとを備える
【0017】
- 1つまたは複数のプリミティブ形状タイプの各々について、1つまたは複数のそれぞれの連続パラメータは、1つまたは複数の次元パラメータを備え、合成するステップは、次元パラメータごとに、それぞれのパラメータ値を選択するステップを含む、初期データ片に基づいて少なくとも1つの初期データ片を生成するステップと、次いで、反復的に、初期データ片から開始するステップ、それぞれの次元パラメータの1つもしくは複数のパラメータ値それぞれを変更するステップ、ならびに/または1つもしくは複数のリーフ幾何学的形状を削除するステップを含む、初期データ片に基づいて1つもしくは複数の隠れたデータ片を決定するステップとを備える
【0018】
- 挿入するステップは、第3のデータ片と第4のデータ片とをそれぞれ含むそれぞれのデータ片のペアを与えるステップと、ペアごとに、第3のデータ片の3D形状と第4のデータ片の3D形状との間で識別情報をテストするステップと、テストするステップが正の結果を生じたとき第3のおよび第4のデータ片のうちの1つのデータ片を第2のデータ片として識別するステップとを備える
【0019】
- テストするステップは、第1の体積値を計算するステップであって、第1の体積値は、第3のデータ片の離散幾何学的表現の体積を表す、計算するステップと、第2の体積値を計算するステップであって、第2の体積値は、第4のデータ片の離散幾何学的表現の体積を表す、計算するステップと、第2の体積値と第1の体積値を比較するステップとを備える
【0020】
- 第1のデータ片ごとに、第1のデータ片の編集可能なフィーチャツリーは、それぞれの第2のデータ片の編集可能なフィーチャツリーに構造的に適合する
【0021】
- プリミティブ形状タイプの離散集合と、プリミティブ形状タイプごとの、それぞれの連続パラメータの1つまたは複数のパラメータ領域それぞれの離散集合のそれぞれのであって、各パラメータ領域は、それぞれの連続パラメータのそれぞれのパラメータ値を有する、それぞれの離散集合とに対して、各リーフ幾何学的形状は、1つまたは複数のパラメータ領域のそれぞれの離散集合の各々のためのそれぞれのパラメータ値を用いてそれぞれのプリミティブ形状タイプによって形成される
【0022】
1つまたは複数のプリミティブ形状タイプの各々について、1つまたは複数のそれぞれの連続パラメータは、1つまたは複数の次元パラメータと1つまたは複数の他のパラメータとからなり、1つまたは複数の他のパラメータは1つまたは複数の配置パラメータを含み、第1の編集可能なフィーチャツリーと第2の編集可能なフィーチャツリーとは、幾何学的演算第1の編集可能なフィーチャツリーのツリー構成は、第2の編集可能なフィーチャツリーの幾何学的演算のツリー構成に少なくとも部分的に一致することと、対応するリーフ幾何学的形状の各ペアは、同じそれぞれのプリミティブ形状タイプを有し、それぞれの他のパラメータについて、同じそれぞれのパラメータ値を有することとがあるときに構造的に適合する、ならびに/または
【0023】
- 1つまたは複数の第1のデータ片の各々について、挿入するステップは、第1のデータ片の編集可能なフィーチャツリーの正規性に応じて第1のデータ片を選択するステップを備える
【0024】
データ集合形成方法に従って形成可能なデータ集合を表すデータ構造をさらに提供する。
【0025】
データ集合の使用のコンピュータ実装(使用)方法をさらに提供する。本使用方法は、データ集合に基づいてニューラルネットワークを学習するステップを備える。
【0026】
データ集合形成方法および/または使用方法を実行するための命令を備えるコンピュータプログラムをさらに提供する。
【0027】
データ構造および/またはプログラムを記録したデータ記憶媒体を備えるデバイスをさらに提供する。デバイスは、たとえば、SaaS(Software as a service)または他のサーバ上で非一時的コンピュータ可読媒体またはクラウドベースのプラットフォームなどを形成するか、またはそれとして働き得る。デバイスは、代替として、データ記憶媒体に結合されたプロセッサを備え得る。したがって、デバイスは、コンピュータシステムを全体的にまたは部分的に形成し得る(たとえば、デバイスはシステム全体のサブシステムである)。システムは、プロセッサに結合されたグラフィカルユーザインターフェースをさらに備え得る。
【図面の簡単な説明】
【0028】
次に、非限定的な例として、添付の図面を参照しながら実施形態について説明する。
図1】システムのグラフィカルユーザインターフェースの一例を示す図である。
図2】システムの一例を示す図である。
図3】方法を示す図である。
図4】方法を示す図である。
図5】方法を示す図である。
図6】方法を示す図である。
図7】方法を示す図である。
図8】方法を示す図である。
図9】方法を示す図である。
図10】方法を示す図である。
図11】方法を示す図である。
【発明を実施するための形態】
【0029】
ここに、ニューラルネットワークの学習に関するコンピュータ実装方法を提案する。ニューラルネットワークは、本明細書では、それぞれの3D形状の離散幾何学的表現それぞれの任意の1つを入力として取って、入力を処理し、処理の結果として、入力に対応する3D形状を表す編集可能なフィーチャツリーの推測のために構成されたそれぞれのデータを出力するように構成された機能である。したがって、そのようなニューラルネットワークは、3D形状の離散幾何学的表現に対応する編集可能なフィーチャツリーの推測のために使用され得る。
【0030】
したがって、「推測方法」と呼ばれることがあるそのような推測を実行するためのコンピュータ実装方法を提案する。
【0031】
推測方法は、3D形状の離散幾何学的表現を与えるステップを備え得る。推測方法は、さらに、3D形状の離散幾何学的表現をニューラルネットワークに適用するステップを備え得る。推測方法はまた、適用するステップの結果(すなわち、離散幾何学的表現が入力されたときのニューラルネットワークによるデータ出力)に基づいて3D形状を表す少なくとも1つの編集可能なフィーチャツリーを推測するステップを備え得る。出力データは、たとえば、自動的にならびに/または所定のアルゴリズムに従って、編集可能なフィーチャツリーを(直接)含み得、ならびに/または編集可能なフィーチャツリーを(間接的に)決定するために処理され得る。
【0032】
間接的決定の場合、出力データは、たとえば、少なくとも1つの編集可能なフィーチャツリーを定義する値を選択するための1つまたは複数の確率分布を備え得、所定のアルゴリズムは、たとえば、1つまたは複数の確率分布に基づいて少なくとも1つの編集可能なフィーチャツリーを決定することを備え得る。決定することは、たとえば、低い確率をもつ値を選択することにペナルティーを課し得る。決定することは、たとえば、1つまたは複数の確率分布に基づいて最も可能性が高い編集可能なフィーチャツリーの(たとえば、1以上および/または10より小さいkをもつ)所定の数kを求めて探索することになり得る。探索することは、ビーム探索アルゴリズムに従って実行され得る。これは、計算効率を与える。
【0033】
精度を改善する例では、推測方法は、それぞれの(最初に)推測された編集可能なフィーチャツリーを、たとえば、自動的に改良することをさらに備え得る。改良することは、(たとえば、編集可能なフィーチャツリーを「再生する」ことによって取得可能な)それの得られた3Dジオメトリを入力された離散幾何学的表現により類似したものにするために推測された編集可能なフィーチャツリー(たとえば、それのパラメータ)を編集することを備え得る。類似性は、推測された編集可能なフィーチャツリーによって与えられた3Dジオメトリと入力された離散幾何学的表現との間の格差にペナルティーを課す損失を最小化することによって増加され得る。損失を最小化することは、最初に推測された編集可能なフィーチャツリーの候補の編集、たとえば、それのリーフ幾何学的形状の編集を探査することを備え得る。そのような編集の例を後で与える。この改良オプションは、本開示のコンテキストに固有のことを活用することによって精度を改善する。すなわち、改良は、たとえば、編集可能なフィーチャツリーが、編集可能なフィーチャツリーを再生すること(すなわち、編集可能なフィーチャツリーのツリー構成によって定義された順序で編集可能なフィーチャツリーのリーフ幾何学的形状に編集可能なフィーチャツリーの幾何学的演算を適用すること)によって離散幾何学的表現に直接匹敵する3Dジオメトリを計算するために使用され得るということを活用する。言い換えれば、ニューラルネットワークの出力の精度は、直接および直ちに評価され得る。
【0034】
機械学習の分野から分かるように、ニューラルネットワークによる入力の処理は、入力に演算を適用することを含み、演算は、重み値を含むデータによって定義される。したがって、ニューラルネットワークの学習は、そのような学習のために構成されたデータ集合に基づいて重みの値を決定することを含む。それのために、データ集合は、それぞれのトレーニングサンプルをそれぞれが形成するデータ片を含む。トレーニングサンプルは、多様な状況を表し、ここで、ニューラルネットワークは、学習された後に使用されるべきである。本明細書で言及する任意のデータ集合は、1000、10000、100000、または1000000よりも多いトレーニングサンプルの数を備え得る。
【0035】
したがって、特に、「データ集合形成方法」と呼ばれることがあるそのようなデータ集合を形成するためのコンピュータ実装方法を提案する。また、「学習方法」と呼ばれることがあるそのような学習を実行するためのコンピュータ実装方法を提案する。
【0036】
機械学習プロセスは、データ集合形成方法および/または学習方法、ならびに、任意選択で、推測方法を備え得る。
【0037】
機械学習プロセスは、特に、データ集合形成方法と学習方法との両方を備え得る。学習方法は、たとえば、例では、データ集合形成方法の後に、データ集合形成方法によって形成されたデータ集合に少なくとも部分的に基づいて実行され得る。そのような機械学習プロセスは、特に、効率的であり、改善された精度を与える。
【0038】
代替として、機械学習プロセスは、データ集合形成方法と、データ集合に基づいて、ニューラルネットワークを学習するために(提案された学習方法ではなく)任意の他のコンピュータ実装方法を実行することとを備え得る。また代替として、機械学習プロセスは、データ集合を形成するためのまたはデータ集合それ自体の取出しのための別の方法など、(提案されたデータ集合形成方法ではない)任意の他のコンピュータ実装方法によって与えられたデータ集合に対して学習方法を実行することを備え得る。
【0039】
データ集合形成方法および学習方法を提示する前に、次に、本明細書に関与するデータ構造について説明する。認識されるであろうように、本明細書で提供されるデータ構造の定義および例は、データ集合形成方法によって形成されるデータ集合の少なくとも部分(たとえば、すべて)および/もしくは学習方法中に与えられるデータ集合の少なくとも部分(たとえば、すべて)、ならびに/または推測方法の少なくとも1つの入力および/もしくは少なくとも1つの出力に適用し得る。
【0040】
3D形状の離散幾何学的表現は、本明細書では、データの片の離散集合を備えるデータ構造である。データの各片は、3D空間中に配置されるそれぞれの幾何学的エンティティを表す。各幾何学的エンティティは、3D形状のそれぞれのロケーション(言い換えれば、3D形状によって表されるソリッドの材料構成のそれぞれの部分)を表す。幾何学的エンティティのアグリゲーション(すなわち、和集合または並置)は、全部で3D形状を表す。本明細書における任意の離散幾何学的表現は、例では、100よりも多い(たとえば、1000よりも多い)データのいくつかのそのような片を備え得る。
【0041】
本明細書における任意の離散幾何学的表現は、たとえば、各幾何学的エンティティが点である3Dポイントクラウドであり得る。本明細書における任意の離散幾何学的表現は、代替として、各幾何学的エンティティがメッシュタイルまたはフェイスである3Dメッシュであり得る。本明細書における任意の3Dメッシュは、規則的または不規則であり得る(すなわち、同じタイプのフェイスからなることもならないこともある)。本明細書における任意の3Dメッシュは、多角形メッシュ(たとえば、三角形メッシュ)であり得る。本明細書における任意の3Dメッシュは、代替として、B-Repであり得る。本明細書における任意の3Dメッシュは、たとえば、(たとえば、ドロネーデローニ三角分割を用いて)3Dポイントクラウドを三角分割することによって3Dポイントクラウドから取得され得る。
【0042】
本明細書における任意の3Dポイントクラウドは、(たとえば、データ集合形成方法中に離散幾何学的表現が合成的に生成されるときを除いて)たとえば、3D再構成プロセス内の現実のオブジェクトに対する物理的測定から決定され得る。3D再構成プロセスは、現実のオブジェクトを与えることと、それぞれの物理的信号を取得するようにそれぞれ構成された1つまたは複数の物理センサを与えることと、現実のオブジェクトに対して1つまたは複数の物理的センサを動作させること(すなわち、各センサを用いて現実のオブジェクトを走査すること)によって1つまたは複数のそれぞれの物理的信号を取得することとを備え得る。3D再構成は、次いで、任意の知られている技法に従って、測定に基づいて3Dポイントクラウドおよび/または3Dメッシュを自動的に決定し得る。1つまたは複数のセンサは、複数の(たとえば、RGBおよび/または画像もしくはビデオ)カメラを備え得、決定は、structure-from-motion分析を備え得る。1つまたは複数のセンサは、代替または追加として、(たとえばRGB深度カメラ上に)1つまたは複数の深度センサを備え得、決定は、深度データからの3D再構成を備え得る。1つまたは複数の深度センサは、たとえば、レーザー(たとえばライダー)または超音波放出器および受信機を備え得る。
【0043】
本明細書における任意の3Dポイントクラウドまたは3Dメッシュは、代替として、たとえば、3Dモデル化オブジェクトに対してレイキャストすることまたは3Dモデル化オブジェクトをテッセレーションすることによって、ソリッド(たとえば、B-Repモデル)のスキン(すなわち、外側のサーフェス)を表す3Dモデル化オブジェクトから取得され得る。テッセレーションすることは、任意の3Dモデル化オブジェクトのレンダリングプロセスに従って実行され得る。そのようなレンダリングプロセスは、3Dモデル化オブジェクトのグラフ表現を表示するために任意のCADシステム上でコーディングされ得る。3Dモデル化オブジェクトは、(たとえば、データ集合形成方法中に離散幾何学的表現が合成的に生成されるときを除いて)CADシステムを用いてユーザによって設計され得るか、または設計されていることがある。
【0044】
モデル化オブジェクトは、たとえば、データベース中に記憶されたデータによって定義された任意のオブジェクトである。拡大すると、表現「モデル化オブジェクト」は、データ自体を指定する。モデル化オブジェクトを設計するために使用されるシステムのタイプによれば、モデル化オブジェクトは、様々な種類のデータによって定義され得る。システムは、実際、CADシステム、CAEシステム、CAMシステム、PDMシステムおよび/またはPLMシステムの任意の組合せであり得る。それらの異なるシステムでは、モデル化オブジェクトは、対応するデータによって定義される。したがって、CADオブジェクト、PLMオブジェクト、PDMオブジェクト、CAEオブジェクト、CAMオブジェクト、CADデータ、PLMデータ、PDMデータ、CAMデータ、CAEデータについて言及し得る。しかしながら、モデル化オブジェクトがこれらのシステムの任意の組合せに対応するデータによって定義され得るので、これらのシステムは、他のもののうちの唯一の1つではない。したがって、システムは、適切にCADシステムとPLMシステムとの両方であり得る。
【0045】
CADシステムによって、CATIAなど、モデル化オブジェクトのグラフ表現に基づいてモデル化オブジェクトを設計するために少なくとも適応された任意のシステムをさらに意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトの表現を可能にするデータを備える。CADシステムは、たとえば、エッジまたはラインを使用して、場合によっては、フェイスまたはサーフェスを用いてCADモデル化オブジェクトの表現を与え得る。ライン、エッジ、またはサーフェスは、様々な方法、たとえば、非一様有理Bスプライン(NURBS)で表され得る。詳細には、CADファイルは、ジオメトリが生成され得、次に、表現を生成することを可能にする仕様を含んでいる。モデル化オブジェクトの仕様は、単一のCADファイルまたは複数のCADファイル中に記憶され得る。CADシステムにおいてモデル化オブジェクトを表すファイルの典型的なサイズは、部分ごとに1メガバイトの範囲内にある。そして、モデル化オブジェクトは、一般に、数千個の部分のアセンブリであり得る。
【0046】
CADのコンテキストでは、モデル化オブジェクトは、一般に、たとえば、部分もしくは部分のアセンブリなどの製品、または、場合によっては、製品のアセンブリを表す3Dモデル化オブジェクトであり得る。「3Dモデル化オブジェクト」によって、それの3D表現を可能にするデータによってモデル化される任意のオブジェクトを意味する。3D表現は、すべての角度からの部分の閲覧を可能にする。たとえば、3Dモデル化オブジェクトは、3D表現されるとき、それの軸のいずれかの周りで、または表現が表示されるスクリーン中のいずれかの軸の周りで動かされるかまたは回転され得る。これは、特に、3Dモデル化されていない2Dアイコンを除外する。3D表現のディスプレイは、設計を容易にする(すなわち、設計者がその人のタスクを統計的に達成する速度を増加する)。製品の設計が製造プロセスの部分であるので、これは、業界における製造プロセスを高速化する。
【0047】
CADシステムは、履歴ベースであり得る。この場合、モデル化オブジェクトは、さらに、幾何学的フィーチャの履歴を備えるデータによって定義され得る。モデル化オブジェクトは、実際、標準的なモデル化フィーチャ(たとえば、押し出し、回転、カット、丸め)および/もしくは標準的なサーフェス処理フィーチャ(たとえば、スイープ、ブレンド、ロフト、フィル、変形、および/もしくはスムージング)を使用して物理的な人間(すなわち、設計者/ユーザ)によって設計され得る。そのようなモデル化機能をサポートする多くのCADシステムは、履歴ベースのシステムである。これは、設計特徴の作成履歴が、一般に、入力および出力リンクを通して幾何学的フィーチャを一緒にリンクする非周期的なデータフローを通して保存されることを意味する。履歴ベースのモデル化パラダイムは、80年代の初めからよく知られている。モデル化オブジェクトは、履歴とB-rep(すなわち、境界表現)との2つの永続的なデータ表現によって記述され得る。B-repは、履歴に定義されている計算の結果である。モデル化オブジェクトが表されるときにコンピュータのスクリーン上に表示される部分の形状は、B-rep(の、たとえば、テッセレーション)である。部分の履歴が設計意図である。基本的に、履歴は、モデル化オブジェクトが受けた演算に関する情報を収集する。B-repは、複雑な部分を表示することをより容易にするために履歴とともに保存され得る。履歴は、設計意図による部分の設計変更を可能にするためにB-repとともに保存され得る。
【0048】
推測方法は、(たとえば、履歴が保存されなかったか、または離散幾何学的表現もしくはB-repが遠くのシステムから受信されたかもしくは履歴なしにデータベース上に取り出されたので)任意のそのような履歴を伴わない3D形状の離散幾何学的表現とともに供給されるとき、編集可能なフィーチャツリーを介して幾何学的フィーチャのそのような履歴を取り出すことを可能にする。
【0049】
本明細書における任意の3D形状は、(たとえば、機械)部分もしくは部分のアセンブリ(もしくは等価的に、部分のアセンブリが、方法の観点から部分自体として見られ得るか、もしくは方法がアセンブリの各部分に独立して適用され得るので、部分のアセンブリ)など、現実の世界で製造されるべき製品のジオメトリ、または、より一般的に、任意の剛体アセンブリ(たとえばモバイル機構)を表し得る。製品は、航空宇宙、建築、建造、消費財、ハイテクデバイス、産業機器、輸送、船舶、および/またはオフショア油/ガス生産もしくは輸送を含む、様々なおよび無制限の工業分野における製品のうちの1つであり得る。したがって、3D形状は、(たとえば、自動車および軽トラックの機器、レーシングカー、オートバイ、トラックおよびモータ機器、トラックおよびバス、列車を含む)地上ビークルの部分、(たとえば、エアフレーム機器、航空宇宙機器、推進機器、防衛製品、航空会社機器、宇宙機器を含む)空中ビークルの部分、(たとえば、海上機器、商用船舶、オフショア機器、ヨットおよび作業船、海洋機器を含む)海上ビークルの部分、(たとえば、産業用製造機械、重モバイル機械または機器、設置機器、産業用機器製品、組立金属製品、タイヤ製造製品を含む)一般機械部分、(たとえば、家庭用電子機器、セキュリティおよび/もしくは制御および/もしくは計装製品、コンピューティングおよび通信機器、半導体、医療デバイスおよび機器を含む)電気機械式または電子部分、(たとえば、家具、家庭用および園芸製品、レジャー商品、ファッション製品、金物類の小売業者の製品、織物類の小売業者の製品を含む)消費者商品、(たとえば、食品および飲料およびタバコ、美容および日用品、家庭用製品パッケージングを含む)パッケージングなど、任意の機械部分であり得る産業用製品を表し得る。
【0050】
CADの分野から知られているように、編集可能なフィーチャツリーは、本明細書では、リーフ幾何学的形状に適用される幾何学的演算のツリー構成を表すデータを備える編集可能なデータ構造である。ツリー構成の各リーフノードは、それぞれのリーフ幾何学的形状を表し、ツリー構成の各非リーフノードは、それの子ノードに適用されるべき、「フィーチャ」とも呼ばれるそれぞれの幾何学的演算を表す。したがって、リーフ幾何学的形状に幾何学的演算のツリー構成を適用することは、リーフ幾何学的形状から開始し、続けて、ツリー構成に従って各非リーフノードの幾何学的演算を適用することになる。編集可能なフィーチャツリーによって表される3D形状は、編集可能なフィーチャツリーのルートノードの結果に対応する。
【0051】
リーフ幾何学的形状は、任意のタイプのものであり得る。リーフ幾何学的形状はそれぞれ、たとえば、それぞれの3Dソリッドなどのそれぞれの3D形状を備え得る(たとえば、それからなり得る)。幾何学的演算は、任意のタイプのものであり得る。例では、幾何学的演算は、すべて同じタイプ、たとえば、すべて加算/和集合演算である。そのような例では、推測方法は、単一のタイプの幾何学的演算のみを用いるものに制限される編集可能なフィーチャツリーを推測するように構成され得る。代替的なより優れた例では、幾何学的演算は、加算/和集合演算タイプ、減算演算タイプ、および/もしくは交差演算タイプを含む異なるタイプの演算、たとえば、異なるブール演算タイプ(すなわち、たとえば、2つの3D形状に、新しい3D形状を関連付ける2進数の連続演算子)を備え得る。そのような例では、推測方法は、利用可能なすべてのタイプの幾何学的演算を用いて編集可能なフィーチャツリーを推測するように構成され得る。本明細書における任意の編集可能なフィーチャツリーは、特に、ソリッドモデリングの分野から知られる空間領域構成(CSG)ツリーであり得る。特に正確な例では、推測方法は、CSGツリーのみを推測するように構成される。ツリー構成は、任意のタイプのものであり得る。本明細書における任意の編集可能なフィーチャツリーは、特に、単根ツリー、バイナリツリー、および/またはフルバイナリツリー(すなわち、各非リーフノードが子として少なくとも1つのリーフノードを有するタイプのバイナリツリー)であり得る。特に効率的な例では、推測方法は、そのような構成タイプのみを提示するツリーを推測するように構成される。認識されるように、推測方法は、対応するニューラルネットワークアーキテクチャが学習方法に与えられることを介していくつかの条件に制限される編集可能なフィーチャツリーを推測するように構成され得る。
【0052】
編集可能なフィーチャツリーの各リーフ幾何学的形状は、ユーザによって選択可能および編集可能である。幾何学的演算が異なるタイプの演算を備え得る編集可能なフィーチャツリーの場合、幾何学的演算のうちの1つまたは複数は、例ではユーザによって選択可能および編集可能であり得る。代替例では、幾何学的演算は編集可能でない。すべての例では、編集可能なフィーチャツリーのブランチは削除され得、および/またはブランチは追加され得る。ブランチはそれ自体、リーフ幾何学的形状に適用される幾何学的演算のツリー構成である。
【0053】
リーフ幾何学的形状のまたは幾何学的演算の編集は、現在のパラメータ値を有するそれの少なくとも1つのパラメータの選択およびパラメータ値の変更を備えるなど、CADの分野から知られる任意の方法でユーザによって実行され得る。そのような編集は、未加工メッシュなどの離散幾何学的表現の編集と比較して人間工学的な特性を提示する。特に、推測された編集可能なフィーチャツリーは、5倍よりも多い(たとえば、10倍より多い)倍数で入力メッシュの離散幾何学的エンティティの数よりも少ないリーフ幾何学的形状の数、ならびに/または100個よりも少ない(たとえば、50個よりも少ない)リーフ幾何学的形状の数を備え得る。各リーフ幾何学的形状は、20個よりも少ない(たとえば、10個よりも少ない)いくつかのパラメータによって定義され得る。したがって、編集可能なフィーチャツリーは、離散幾何学的表現と比較してよりコンパクトで整理された方法で3D形状を表す。また、CADの分野から知られているように、編集可能なフィーチャツリーの単一のパラメータに作用することは、グローバルな影響を提示し得、一方、離散幾何学的表現の場合、単一の幾何学的エンティティに作用することは、ローカルな影響しか提示しない。たとえば、本明細書における任意の編集可能なフィーチャツリーは、多数のメッシュ三角形を移動/増加するのとは反対に、5つよりも少ない(たとえば、3つよりも少ない)いくつかのパラメータ値を変更することによって(たとえば、カーブした、たとえば、円筒形の)部分または3D形状の全体をスケールアップするために構成され得る。さらに、編集可能なフィーチャツリーは、離散幾何学的表現よりもユーザに意味論的に有意味である。
【0054】
例では、推測方法は、対応するリーフ幾何学的形状または幾何学的演算をそれぞれ表すグラフアイテムのツリー構成を含む編集可能なフィーチャツリーのグラフ表現を表示することを備え得る。編集は、たとえば、グラフ対話によってグラフアイテムを選択することを備え得る。本明細書におけるグラフ対話は、ディスプレイ上のグラフアイテムの位置に対応するロケーションにおいてピクセルをアクティブ化するように触覚デバイスを動作することを意味する。たとえば、マウスカーソルを表示されたグラフアイテム上に配置し得るか、または表示されたグラフアイテムをタッチスクリーンを介して直接もしくはタッチパッドを介して間接的にタッチし得る。選択は、ダイアログボックスなどを開くことと、たとえば、キーボードを介して、ユーザによって1つまたは複数のパラメータ値を入力することとをトリガし得る。
【0055】
例では、推測方法は、離散幾何学的表現のグラフ表現を表示することと、その間に、ユーザによって、ニューラルネットワークのアプリケーションと編集可能なフィーチャツリーの推測とを起動し、したがって、離散幾何学的表現のグラフ表現に同時に編集可能なフィーチャツリーのグラフ表現を表示することとを備え得る。ユーザは、次いで、編集可能なフィーチャツリーの編集のための離散幾何学的表現のグラフ表現を非表示にし得る。代替として、推測方法は、両方のグラフ表現を同時に表示し続け得、ユーザが編集を実行するときに、方法は、相応して離散幾何学的表現のグラフ表現を更新し得る(たとえば、変更し得る)。これは、編集を実行するユーザに視覚フィードバックを与える。
【0056】
例では、推測方法は、入力として、現実のオブジェクトに対する物理的測定から決定された3Dメッシュまたは3Dポイントクラウドを取るように構成され、推測方法により、現実のオブジェクトの3D形状を表す対応する編集可能なフィーチャツリーを決定することが可能になる。ユーザは、次いで、たとえば、現実のオブジェクトに似ているがそれとは異なる設計を作成するために編集可能なフィーチャツリーの編集を実行し得る。代替および追加の例では、推測方法は、入力として、遠くのコンピュータシステムから受信されたか、または不揮発性メモリから取り出された対応する編集可能なフィーチャツリーを有しない3Dモデル化オブジェクトの3Dメッシュを取るように構成され、推測方法により、3D形状を表す対応する編集可能なフィーチャツリーを決定することが可能になる。ユーザは、次いで、たとえば、3Dメッシュに似ているがそれとは異なる設計を作成するか、または3Dメッシュによって形成される設計を完了するために編集可能なフィーチャツリーの編集を実行し得る。
【0057】
より多くの人間工学的な方法での3D形状の編集を実行する可能性への追加または代替として、編集可能なフィーチャツリーの獲得は、3D形状のマージまたは機械シミュレーションなどの他の目的をサービスし得る。
【0058】
3D形状をマージする方法は、コンピュータシステムにおいて、第1の3D形状を表す第1の編集可能なフィーチャツリーを与えることと、第2の3D形状の離散幾何学的表現を与えることと、第2の3D形状を表す第2の編集可能なフィーチャツリーを取得するために離散幾何学的表現に対して推測方法を実行することと、第1の編集可能なフィーチャツリーと第2の編集可能なフィーチャツリーとをマージすることとを備え得る。マージすることは、任意のマージ技法に従って、および/または第1の3D形状と第2の3D形状との間の機械的なアセンブリもしくは機械的な協働を表すために実行され得る。マージすることは、たとえば、第1のツリーに第2のツリーを接続することを備え得る。3D形状をマージする方法は、さらに、マージされたツリーに幾何学的モデルを適用して、それによって表される3D形状のグラフ表現を取得すること、および/またはユーザにグラフ表現を表示することを備え得る。
【0059】
機械的なシミュレーションは、編集可能なフィーチャツリーに基づいて実行され得る。実際、編集可能なフィーチャツリーが(離散幾何学的表現に対して)コンパクトでパラメータ化された方法で3D形状を表すので、機械的な計算が編集可能なフィーチャツリーに対してより正確に実行され得る。特に、CSGから有限要素メッシュを計算することは、(論文(非特許文献11参照)または論文(非特許文献12参照)によって教示されるように)より容易でより直接的である。さらに、CSGは、サーフェスの防水性の保証を提供する。したがって、機械的なシミュレーションは、編集可能なフィーチャツリー(たとえば、CSG)および/もしくはそれの1つまたは複数の変更から1つもしくは複数の有限要素メッシュを計算し、次いで、各有限要素メッシュに基づいて有限要素分析を実行することを備え得る。また、CSGがパラメータ化されるので、シミュレーションの結果に従ってCSGを容易に最適化することができる。したがって、1つまたは複数の変更は、それぞれの以前の有限要素分析結果に基づいて編集可能なフィーチャツリー(たとえば、CSG)を最適化するためのものであり得る。
【0060】
次に、概して、データ集合形成方法および学習方法を提示する。
【0061】
データ集合形成方法は、それぞれのデータ片を与えるステップを備える。それぞれのデータ片は、3D形状を表す編集可能なフィーチャツリーを含む。編集可能なフィーチャツリーは、リーフ幾何学的形状に適用される幾何学的演算のツリー構成を備える。それぞれのデータ片は、3D形状の離散幾何学的表現をさらに含む。離散幾何学的表現は、リーフ幾何学的形状に幾何学的演算のツリー構成を適用することの結果に対応する。データ集合形成方法は、トレーニングサンプルとしてデータ集合中にデータ片の部分を挿入するステップをさらに含む。データ集合中に挿入される1つまたは複数の第1のデータ片の各々のそれぞれの3D形状は、データ集合中に挿入されないそれぞれの1つまたは複数の第2のデータ片のそれぞれの3D形状と同一である。
【0062】
「それぞれのデータ片を与えること」によって、データ集合形成方法の少なくともある時点において、データ片が、コンピュータシステムの、プロセッサにとってアクセス可能なメモリ上に記録され得ることを意味する。
【0063】
「データ集合」によって、トレーニングサンプルを備え、機械学習のために構成された任意のデータ構造を意味し、データ構造は、コンピュータシステムの、プロセッサにとってアクセス可能なメモリ上に記録される。データ集合形成方法は、不揮発性メモリ上にデータ集合を記録するステップを備え得る。
【0064】
トレーニングサンプルとしてデータ集合中にデータ片を「挿入すること」または「挿入しないこと」によって、データ集合形成方法の少なくともある時点(たとえば、終わり)において、データ集合は、データ集合がすべての「挿入された」データ片を含む(すなわち、したがって、それらがデータ集合を表すデータ構造内のメモリ上の記録された)状態でコンピュータシステムの(たとえば、不揮発性)メモリ上に記録され、一方、データ集合は、すべての「挿入されていない」データ片を除外する(すなわち、備えない)(すなわち、したがって、それらは、メモリ上に、少なくともデータ集合を表すデータ構造内に記録されない)ことを意味する。したがって、少なくともこの時点において、メモリロケーション上に記録される同じデータ集合に関して、すべての第1のデータ片が同時に記録され、一方、第2のデータ片のいずれも記録されない。学習は、次いで、例では、データ集合のさらなる処理後のデータ集合に基づき得る。学習は、(たとえば、実質的に)第1のデータ片(にのみ)(たとえば、実質的にすべての第1のデータ片に)関与し、第2のデータ片に実質的に関与しないことがある。したがって、学習されたニューラルネットワークは、第1のデータ片に一致し、第2のデータ片と一致しないことになる。
【0065】
データ集合形成方法は、デジタル化のための改善された解決策を形成する。形成されたデータ集合は、それぞれの3D形状の離散幾何学的表現と3D形状を表すそれぞれの編集可能なフィーチャツリーとをそれぞれ含むトレーニングサンプルを備える。したがって、データ集合は、例では、提案された学習方法を用いて提示される編集可能なフィーチャツリーに離散幾何学的表現を変換するために使用可能なニューラルネットワークを学習するために構成される。さらに、データ集合は、企図された学習に関してラベルをつけられる。実際、ニューラルネットワーク(離散幾何学的表現)の潜在的な入力は、グラウンドトゥルース出力(それぞれの編集可能なフィーチャツリー)によってデータ集合中にそれぞれラベルをつけられる。したがって、学習は、教師つきであり得、したがって、特に効率的であり得る。さらに、データ集合は、すべての与えられたデータ片でポピュレートされない。むしろ、トレーニングサンプルの中で、与えられるがトレーニングサンプルの部分ではない1つまたは複数の(第2の)データ片のそれぞれの3D形状と同じ3D形状に対応する1つまたは複数の(第1の)データ片がある。第2のデータ片のそのようなフィルタ処理して除外することは、学習を改善する。実際、せいぜい、第2のデータ片は、第1のデータ片にレラティブな冗長情報を形成する。最悪の場合でも、第2のデータ片は、第1のデータ片に対して矛盾する情報を形成し、それによって、学習を摂動する。フィルタ処理して除去することは、「冗長性」の低減/管理と呼ばれることがある。
【0066】
学習方法は、それぞれの3D形状の離散幾何学的表現それぞれを含むデータ集合を与えるステップを備える。学習方法は、リーフ幾何学的形状の候補集合を与えることをさらに備える。学習方法はまた、データ集合と候補集合とに基づいてニューラルネットワークを学習するステップを備える。候補集合は、リーフ幾何学的形状の少なくとも1つの連続サブ集合を備える。
【0067】
「リーフ幾何学的形状の候補集合を与えること」によって、学習方法、特に、学習ステップが、(少なくともある時点における)推測のための候補として候補集合の各要素について考えることが可能になることを意味する。機械学習の分野から知られているように、学習ステップは、ニューラルネットワークの重み値を自由に設定することを備え得、したがって、推測方法は、学習方法に供給されるデータ集合に一致する推測を実行する傾向がある。そして、「リーフ幾何学的形状の候補集合を与えること」によって、ニューラルネットワークアーキテクチャがある程度あらかじめ決定され、学習ステップが、候補集合の各要素が推測中に潜在的に推測されるために利用可能であるような方式で実行されることを意味する。例では、候補集合の各要素は、(すなわち、ツリー構成中の位置はどこであっても)推測されたリーフ幾何学的形状ごとの候補である。
【0068】
「連続」によって、サブ集合の各候補リーフ幾何学的形状は、サブ集合の別の候補リーフ幾何学的形状が、特定の連続する変形によって取得され得る(たとえば、固定数のパラメータを用いてパラメータ化され得る)ことを意味し、したがって、連続する変形の各中間状態はそれ自体、サブ集合の候補リーフ幾何学的形状である。例では、リーフ幾何学的形状の候補集合は、いくつかの連続サブ集合(たとえば、プリミティブ形状タイプごとに1つ)を備える。
【0069】
学習方法は、デジタル化のための改善された解決策を形成する。特に、学習されたニューラルネットワークは、編集可能なフィーチャツリーに離散幾何学的表現を変換するために使用可能である。デジタル化のコンテキストでは、これは、すでに説明したように、特に有用。さらに、学習されたニューラルネットワークを用いてそのようなデジタル化を実行することは、高速でリアルタイムの実行、冗長な事前のマニュアルでのプログラミング/コーディングの非必要性、および結果の精度(たとえば、ここでの精度は、出力された編集可能なフィーチャツリーと入力された離散幾何学的表現とを再生することの結果の間で評価される3D類似性の値を指す)など、機械学習の分野によって与えられる利益を達成することを可能にする。したがって、学習方法は、3D設計のコンテキストでは人間工学を改善する。さらに、リーフ幾何学的形状の候補集合は、論文[10]中で提案される解決策に反して、リーフ幾何学的形状の少なくとも1つの連続サブ集合を備える。これは、学習の精度を改善する。実際、3D形状の少なくとも1つの連続体がすべて、推測された編集可能なフィーチャツリーのリーフになるためにアクセス可能であるので、推測は、そのような連続体内で高精度の方法で実行され得る。
【0070】
学習は、データ集合の少なくとも部分に基づいて教師つきトレーニングを備え得る。そのような場合、データ集合の少なくとも部分は、離散幾何学的表現ごとに、離散幾何学的表現を用いて(ラベルをつけられた)トレーニングサンプルを形成するそれぞれの編集可能なフィーチャツリーを含む。データ集合の少なくとも部分は、任意の方法で与えられ、たとえば、データ集合形成方法に従って形成され得る。
【0071】
代替または追加として、学習は、データ集合の少なくとも別の部分に基づいて教師つきトレーニングを備え得る。そのような場合、データ集合の少なくとも別の部分の離散幾何学的表現はそれぞれ、それぞれの(ラベルをつけられていない)トレーニングサンプルを形成する。データ集合の少なくとも別の部分は、任意の方法で与えられ、たとえば、離散幾何学的表現の商用データベースとして取り出され得る。
【0072】
特に効率的な例では、学習方法は、データ集合形成方法によって形成されるデータ集合に基づいて教師つきトレーニングを備え得る。そのような例のロバストな例では、学習は、たとえば、教師つきトレーニングの後に別のデータ集合に基づいて教師なしトレーニングをさらに備え得る。機械学習の分野から知られているように、各トレーニングは、たとえば、ミニバッチごとにそれぞれのデータ集合を反復的に処理することと、反復処理に沿ってニューラルネットワークの重み値を変更することとを備え得る。これは、確率勾配降下に従って実行され得る。重み値は、トレーニングごとに何らかの方法で初期化され得る。例では、教師なしトレーニングの重み値は、教師つきトレーニングの最後に取得された重み値を用いて初期化され得る。重み値は、たとえば、ランダムにまたはそれぞれゼロ値に任意の方法で教師つきトレーニングのために初期化され得る。したがって、データ集合形成方法と教師つきトレーニングとは、別のデータ集合に基づき得るさらなるトレーニング、すなわち、教師なしトレーニングのための重み値を初期化する方法を形成する。他のデータ集合は、たとえば、データ集合形成方法によって形成されるラベルをつけられたデータ集合よりも現実を表すラベルをつけられていないデータ集合であり得る。したがって、教師なしトレーニングは、教師つきトレーニング後に停止することと比較してより正確な結果につながり得る。しかしながら、機械学習の分野から知られているように、教師なしトレーニングは、任意に初期化される場合、非常に長くなり、不正確な結果を与え得る。提案された手法では、教師つき学習は、比較的良好な初期化を与える。
【0073】
方法は、コンピュータに実装される。
【0074】
これは、方法のステップ(または実質的にすべてのステップ)が少なくとも1つのコンピュータまたは類似の任意のシステムによって実行されることを意味する。したがって、方法のステップは、おそらく完全に自動的にまたは半自動的にコンピュータによって実行される。例では、方法のステップのうちの少なくともいくつかのトリガは、ユーザコンピュータ対話を通して実行され得る。必要とされるユーザとコンピュータとの対話のレベルは、予見される自動性のレベルに依存し、ユーザの要望を実装する必要とバランスを取られ得る。例では、このレベルは、ユーザによって定義され、および/またはあらかじめ定義され得る。
【0075】
これはまた、ニューラルネットワーク、データ集合、1つもしくは複数の(たとえば、すべての)入力、および/または1つもしくは複数の(たとえば、すべての)出力がそれぞれ、それぞれのデータ構造によって表され得ることを意味する。1つまたは複数の(たとえば、すべての)データ構造はそれぞれ、それぞれのデータ記憶媒体上に非一時的に記録され得る。
【0076】
方法のコンピュータ実装の典型的な例は、この目的のために適応されたシステムを用いて方法を実行することである。システムは、メモリに結合されたプロセッサとグラフィカルユーザインターフェース(GUI)とを備え得、メモリは、方法を実行するための命令を備えるコンピュータプログラムを記録している。メモリはまた、データベースを記憶し得る。メモリは、そのようなストレージのために適応された任意のハードウェアであり、場合によっては、いくつかの物理的に別個の部分(たとえば、プログラムのための1つと、場合によっては、データベースのための1つと)を備える。システムは、CADシステムであり得る。
【0077】
図1に、本明細書における任意のシステムのGUIの一例を示し、ここにおいて、システムはCADシステムである。
【0078】
GUI2100は、標準的なメニューバー2110、2120ならびに下部および側面ツールバー2140、2150を有する典型的なCAD様のインターフェースであり得る。そのようなメニューバーとツールバーとは、ユーザ選択可能なアイコンの集合を含んでおり、各アイコンは、当技術分野で知られているように、1つまたは複数の動作または関数に関連付けられる。これらのアイコンのうちのいくつかは、GUI2100中に表示された3Dモデル化オブジェクト2000を編集するおよび/またはそれに作用するように適応されたソフトウェアツールに関連付けられる。ソフトウェアツールは、ワークベンチにグループ化され得る。各ワークベンチは、ソフトウェアツールのサブ集合を備える。特に、ワークベンチのうちの1つは、モデル化された製品2000の幾何学的フィーチャを編集するのに好適な編集ワークベンチである。動作時に、設計者は、たとえば、オブジェクト2000の部分をあらかじめ選択し、次いで、適切なアイコンを選択することによって動作を開始する(たとえば、寸法、色などを変更する)か、または幾何学的制約を編集し得る。たとえば、典型的なCAD動作は、パンチングのモデリングまたはスクリーン上に表示された3Dモデル化オブジェクトの折り曲げである。GUIは、たとえば、表示された製品2000に関係するデータ2500を表示し得る。図の例では、「フィーチャツリー」として表示されるデータ2500とそれらの3D表現2000とは、ブレーキキャリパーとディスクとを含むブレーキアセンブリに関する。GUIは、さらに、たとえば、オブジェクトの3D向きを容易にすることのための、編集された製品の動作のシミュレーションをトリガするための、または表示された製品2000の様々な属性をレンダリングする様々なタイプのグラフィックツール2130、2070、2080を示し得る。カーソル2060は、ユーザがグラフィックツールと対話することを可能にするために触覚デバイスによって制御され得る。
【0079】
3Dモデル化オブジェクト2000は、3D形状の離散幾何学的表現のグラフ表現であり得、推測方法は、編集可能なフィーチャツリー2500を決定することを可能にし得る。したがって、推測方法は、フィーチャツリーが関連付けられていない3D形状の離散幾何学的表現2000から開始し、次いで、編集可能なフィーチャツリー2500を取り出すことを可能にする。これにより、CADシステムのすべての能力を使用することが可能になる。
【0080】
図2に、本明細書における任意のシステムの一例を示し、ここにおいて、システムは、クライアントコンピュータシステム、たとえば、ユーザのワークステーションである。
【0081】
例のクライアントコンピュータは、内部通信バス1000に接続された中央処理ユニット(CPU)1010を備え、ランダムアクセスメモリ(RAM)1070はまた、バスに接続される。クライアントコンピュータはさらに、バスに接続されたビデオランダムアクセスメモリ1100に関連付けられるグラフィック処理ユニット(GPU)1110を備える。ビデオRAM1100はまた、フレームバッファとして当技術分野で知られている。大容量ストレージデバイスコントローラ1020は、ハードドライブ1030などの大容量メモリデバイスへのアクセスを管理する。コンピュータプログラム命令とデータとを有形に具体化するのに好適な大容量メモリデバイスは、例として、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイスと、内蔵ハードディスクおよびリムーバブルディスクなどの磁気ディスクと、光磁気ディスクと、CD-ROMディスク1040とを含むすべての形態の不揮発性メモリを含む。上記のいずれかは、特別に設計されたASIC(特定用途向け集積回路)によって補われるか、またはそれに組み込まれ得る。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。クライアントコンピュータはまた、カーソル制御デバイス、キーボードなどの触覚デバイス1090を含み得る。カーソル制御デバイスは、ユーザがディスプレイ1080上の任意の所望のロケーションにカーソルを選択的に配置することを可能にするためにクライアントコンピュータ中で使用される。さらに、カーソル制御デバイスにより、ユーザが様々なコマンドを選択し、制御信号を入力することが可能になる。カーソル制御デバイスは、システムへの制御信号の入力のためのいくつかの信号生成デバイスを含む。一般に、カーソル制御デバイスは、マウスであり得、マウスのボタンが信号を生成するために使用される。代替または追加として、クライアントコンピュータシステムは、感知パッドおよび/または感知スクリーンを備え得る。
【0082】
本明細書における任意のコンピュータプログラムは、コンピュータによって実行可能な命令を備え、命令は、上記のシステムに方法を実行させるための手段を備え得る。プログラムは、システムのメモリを含む任意のデータ記憶媒体上に記録可能であり得る。プログラムは、たとえば、デジタル電子回路中に、またはコンピュータハードウェア、ファームウェア、ソフトウェア中に、またはそれらの組合せ中に実装され得る。プログラムは、装置、たとえば、プログラマブルプロセッサが実行するための機械可読ストレージデバイス中に有形に具体化された製品として実装され得る。方法ステップは、入力データに対して動作し、出力を生成することによって方法の機能を実行するように命令のプログラムを実行するプログラマブルプロセッサによって実行され得る。プロセッサは、したがって、プログラム可能であり、データストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータと命令とを受信し、それらにデータと命令とを送信するために結合され得る。アプリケーションプログラムは、高レベルの手続き型もしくはオブジェクト指向プログラミング言語、または所望される場合、アセンブリまたは機械語で実装され得る。いずれの場合も、言語は、コンパイル型言語またはインタープリタ型言語であり得る。プログラムは、完全インストールプログラムまたは更新プログラムであり得る。システム上でのプログラムの適用は、いずれの場合も、方法を実行するための命令を生じる。
【0083】
本明細書における任意の方法は、3Dモデル化オブジェクトを設計するためのプロセスの部分であり得る。「3Dモデル化オブジェクトを設計すること」は、3Dモデル化オブジェクトを作るプロセスの少なくとも部分である任意の行為または一連の行為を指定する。したがって、方法は、ゼロから3Dモデル化オブジェクトを作成するステップを備え得る。代替として、方法は、前に作成された3Dモデル化オブジェクトを与えるステップと、次いで、3Dモデル化オブジェクトを変更するステップとを備え得る。
【0084】
本明細書における任意の方法は、方法を実行した後に、モデル化オブジェクトに対応する物理的製品を生成することを備え得る製造プロセス中に含まれ得る。いずれの場合も、方法によって設計されたモデル化オブジェクトは、製造オブジェクトを表し得る。したがって、モデル化オブジェクトは、モデル化ソリッド(すなわち、ソリッドを表すモデル化オブジェクト)であり得る。製造オブジェクトは、部分または部分のアセンブリなどの製品であり得る。方法がモデル化オブジェクトの設計を改善するので、方法はまた、製品の製造を改善し、したがって、製造プロセスの生産性を増加させる。
【0085】
次に、リーフ幾何学的形状の例について説明する。
【0086】
(それぞれのデータ片の編集可能なフィーチャツリーの部分として)データ集合形成方法中に与えられる1つまたは複数の(たとえば、すべての)リーフ幾何学的形状、学習方法中に与えられる1つまたは複数の(たとえば、すべての)候補リーフ幾何学的形状、および/または(推測された編集可能なフィーチャツリーの部分として)推測方法によって与えられる1つまたは複数の(たとえば、すべての)リーフ幾何学的形状はそれぞれ、これらの例に一致するものであり得る。
【0087】
プリミティブ形状タイプの離散集合と、プリミティブ形状タイプごとの、それぞれの連続パラメータの1つまたは複数のパラメータ領域それぞれの離散集合のそれぞれであって、各パラメータ領域が、それぞれの連続パラメータのそれぞれのパラメータ値を有する、それぞれの離散集合とが与えられれば、リーフ幾何学的形状は、1つまたは複数のパラメータ領域のそれぞれの離散集合の各々のためのそれぞれのパラメータ値を用いてそれぞれのプリミティブ形状タイプによって形成され得る。
【0088】
したがって、データ集合形成方法および/または学習方法は、プリミティブ形状タイプのそのような離散集合に基づき、プリミティブ形状タイプごとの1つまたは複数のパラメータ領域のそのようなそれぞれの離散集合に基づき得る。集合は、データ集合形成方法と学習方法とで同じであることも異なることもある。集合が同じである場合、トレーニングサンプルのリーフ幾何学的形状が推測のためのリーフ幾何学的形状候補に一致するので、機械学習プロセスは特に正確になる。
【0089】
次に、学習方法におけるリーフ幾何学的形状の候補集合は、プリミティブ形状タイプの離散集合と、プリミティブ形状タイプごとの1つまたは複数のパラメータ領域のそれぞれの離散集合との積集合を備え得る。積集合の各要素は、それぞれの候補リーフ幾何学的形状を表す。
【0090】
データ集合形成方法の場合、トレーニングサンプルの各リーフ幾何学的形状は、そのような積集合に属し得る。例では、データ集合形成方法は、プリミティブ形状タイプの離散集合(を表すデータ)と、プリミティブ形状タイプごとの、1つまたは複数のパラメータ領域のそれぞれの離散集合(を表すデータ)とを含む初期データを備え得る。そのような例では、リーフ幾何学的形状は、そのような初期データに基づいて与えられ得る(たとえば、合成され得る)。
【0091】
「プリミティブ形状タイプ」によって、幾何学的形状(たとえば、ソリッド)のクラスを意味し、ここで、各幾何学的形状は、共通の一般的な形態(たとえば、ユーザにそのようなものとして認識可能なもの)を提示する。プリミティブ形状タイプは、パラメータに関連付けられる。各パラメータは、(間隔、すなわち、実数の連続範囲であり得る)「パラメータ領域」と呼ばれる集合中の値を取り、各パラメータ領域に特定のパラメータ値を与えることは、プリミティブ形状タイプのインスタンスを定義する。プリミティブ形状タイプは、それぞれの集合のためのパラメータ値とともに供給されるとき、1つまたは複数のパラメータのそれぞれの集合と、プリミティブ形状タイプのそのような幾何学的形状インスタンスを生成するように構成された所定のアルゴリズムとによって定義され得る。インスタンスは、1つまたは複数の編集可能なフィーチャツリーに介入することができるリーフ幾何学的形状を形成する。
【0092】
プリミティブ形状タイプは、1つまたは複数の連続パラメータにそれぞれ関連付けられ得る。パラメータについての「連続」によって、リーフ幾何学的形状を出力する機能が、パラメータに関して少なくとも区分的に連続していることを意味する。また、パラメータ領域が少なくとも区分的に連続していると言うこともできる。これにより、非常に多様な形状のコンパクトな表現が可能になる。
【0093】
例では、1つまたは複数のプリミティブ形状タイプの各々について、1つまたは複数のそれぞれの連続パラメータは、1つもしくは複数の次元パラメータおよび/または1つもしくは複数の配置パラメータを備える。次元パラメータは、所与のプリミティブ形状タイプの形状の特性寸法のサイズを定義するパラメータである。次元パラメータは、プリミティブ形状タイプごとに特有であり得る。配置パラメータは、3D空間における形状の配置を可能にするパラメータである。配置パラメータは、すべてのプリミティブ形状タイプに対して同じ、たとえば(0,X,Y,Z)基準に対して定義された(x,y,z)座標であり得る。
【0094】
計算時間および/または学習の収束対多様な現実の状況の見本の点で特に効率的な例では、プリミティブ形状タイプの離散集合は、直方体タイプ、球体タイプ、1つもしくは複数の円柱タイプ、および/または1つもしくは複数の角柱タイプを備え得る。例では、プリミティブ形状タイプの離散集合は、以下のタイプのうちのいずれか1つまたはそれらの任意の組合せ(たとえば、すべて)を備え得る。
【0095】
- たとえば、3つの配置パラメータと3次元パラメータとによってパラメータ化される直方体
【0096】
- たとえば、3つの配置パラメータと1次元パラメータ(直径)とによってパラメータ化される球体
【0097】
- たとえば、3つの配置パラメータと、高さを表す1次元パラメータと、直径を表す1次元パラメータとによってパラメータ化される、X、YまたはZ軸に沿って配向する(したがって、3つのプリミティブ形状タイプに対応する)直円柱
【0098】
- たとえば、3つの配置パラメータと、大きい台形の底の長さを表す1次元パラメータと、小さい台形の底の長さを表す1次元パラメータと、台形の高さを表す1次元パラメータと、角柱の深度を表す1次元パラメータとによってパラメータ化される、軸(X,Y)、(X,Z)、(Y,Z)、(Y,X)、(Z,X)、(Z,Y)に沿って配向する等脚台形の底をもつ(したがって、6つのプリミティブ形状タイプに対応する)直線角柱
【0099】
プリミティブ形状タイプの離散集合は、さらに3つの回転パラメータをもつ未配向円柱、多角形ベースの円柱、非直線円柱、多角形ベースの角柱、非配向角柱、および/または不規則多面体などの任意の他のプリミティブ形状タイプを備え得る。
【0100】
(たとえば、メモリ上に)本明細書において提供される任意のリーフ幾何学的形状は、プリミティブ形状タイプを表すデータ(たとえば、文字情報)と、パラメータごとの、パラメータ値を表すそれぞれのデータ(たとえば、浮動小数点などの値)とを含むデータ構造として(たとえば、与えられたデータ片、トレーニングサンプル、および/または推測の出力内に)記録され得る。
【0101】
次に、データ集合形成方法の例について説明する。
【0102】
第1の例では、挿入することは、1つまたは複数の(たとえば、すべての)(すなわち、データ集合中に挿入される)第1のデータ片の各々について、第1のデータ片の編集可能なフィーチャツリーの正規性に応じて第1のデータ片を選択することを備え得る。たとえば、1つまたは複数の(たとえば、すべての)第1のデータ片の各々について、第1のデータ片の編集可能なフィーチャツリーは、(すなわち、データ集合中で挿入されない)1つまたは複数の(たとえば、実質的に、たとえば、すべての)それぞれの第2のデータ片の各々の編集可能なフィーチャツリーよりも正準である。同じ3D形状を表す第2の編集可能なフィーチャツリーに対する3D形状を表す第1の編集可能なフィーチャツリーについてのより「より正準である」により、第1の編集可能なフィーチャツリーのリーフ幾何学的形状(たとえば、ソリッド)のサイズ(たとえば、体積)の和は、第2の編集可能なフィーチャツリーのリーフ幾何学的形状(たとえば、ソリッド)のサイズ(たとえば、体積)の和よりも小さく(または等しく)なることを意味する。「実質的に」によって、挿入することは、それらのそれぞれの第2のデータ片にそれぞれ対する第1のデータ片の正準を最大化することを意図し得ることを意味するが、判断は、めったに最適にならないことがあり、したがって、真の最小値を得られないことを意味する。トレーニングサンプルの編集可能なフィーチャツリーの高い正準を与えることは、非正準が許可される場合に高められ得るあいまいさを小さくすること(たとえば、回避すること)によって学習の精度を改善する。
【0103】
第1の例と組み合わせ可能な第2の例では、それぞれのデータ片を与えることは、データ片を合成することを備え得る。
【0104】
「合成する」ことによって、編集可能なフィーチャツリーと離散幾何学的表現とを生成することを含む自動プロセスを意味する。例では、方法は、最初に、編集可能なフィーチャツリーを合成し、次いで、リーフ幾何学的形状に幾何学的演算のツリー構成を適用することによって(含む)離散幾何学的表現を決定し得る。データ集合形成方法は、たとえば、編集可能なフィーチャツリーを再生するための所定の方式を与えることを備え得、離散幾何学的表現を決定することは、編集可能なフィーチャツリーに方式を適用することによって自動的に実行され得る。方法はまた、任意選択でさらに、1つまたは複数の離散幾何学的表現に雑音(たとえば、パーリン雑音)を追加し得る。これにより、より現実的な離散幾何学的表現を取得することが可能になり、したがって、学習のロバストネスを改善する。
【0105】
合成することは、(それの要素の冗長性および/または正準に関して)準最適であり得る。したがって、合成されたデータ片のうちの少なくともいくつかは、任意選択で、それらに基づいて、(たとえば、少なくとも1つのそのような他のデータ片がデータ集合中に最終的に挿入された状態で)他のデータ片を決定した後に、フィルタ処理して除去され、それによって、データ集合中に挿入されないことがある。言い換えれば、データ集合は、すべての合成されたデータでポピュレートされないが、むしろそれの選択された厳密な部分でポピュレートされる。
【0106】
そのような第2の例の第1のオプションでは(第1のオプションはまた、第2の例ではなく他の例に適用可能である)、フィルタ処理して除去することは、(第3のおよび第4の)データ片のペアを与えることと、少なくとも1つの(たとえば、それぞれの)ペアの(第3のおよび第4の)データ片の3D形状間の識別情報をテストすることとを備え得る。テストは、あらかじめ決定され、3D形状のペアの間で同じ特性を定義し得、それらの代表的なデータ片間のテストが正である場合、3D形状のペアは同じであるとみなされる。したがって、テストが正の結果を生じ(したがって、第3のおよび第4のデータ片が冗長であると決定し)たとき、フィルタ処理して除去することは、第3のおよび第4のデータ片のうちのデータ片を(データ集合中に挿入されるべきでない)第2のデータ片として識別し、それによって第2のデータをフィルタ処理して除去し得る。識別されたデータ片は、任意選択で、最小の正準のデータ片であり得る(すなわち、データ片は、最小の正準の編集可能なフィーチャツリーを有する)。
【0107】
第1のオプションと組み合わせ可能な第2の例の第2のオプションでは、データ片は、データ片の1つまたは複数の(たとえば、別個のおよび/または非交差の)グループを備え得、それぞれのグループのすべてのデータ片は、同じ3D形状を表す。言い換えれば、各グループのすべての編集可能なフィーチャツリーは、同じ3D形状を表す離散幾何学的表現をもたらす。そのような場合、データ集合形成方法は、データ集合中への挿入のために、少なくとも1つの(たとえば、それぞれの)グループについて、任意選択で、正準(たとえば、最も正準な編集可能なフィーチャツリーを有するもの)に応じて、ただ1つまたは複数の(たとえば、単一の1つの)データ片をトレーニングサンプルとして保持し、グループの任意の他のデータ片を破棄/削除し得る(すなわち、データ集合中に含まないことがある)。
【0108】
第2のオプションの特定の例では、グループは、第1のオプションの場合のように処理され、すなわち、「データ片のペア」的な処理がテストステップを含み得る。そのような例では、グループとペアとは、任意の方法で与えられ得る。たとえば、処理は、グループについての事前知識を有していないことがある。そのような場合、テストは、第3のおよび第4のデータ片が同じグループ中にあることを保証することを可能にする。
【0109】
たとえば、合成することは、少なくとも1つの初期データ片を生成することと、次いで、初期データ片に基づいて少なくとも1つの隠れたデータ片を決定することとを備え得る。各初期データ片とそれの隠れたデータ片とは、それぞれのグループを形成する。隠れたデータ片を決定することは、反復的に、初期データ片から開始して、編集可能なフィーチャツリー編集のステップを実行することを含み得、(編集可能なフィーチャツリー編集のステップの)各反復の出力は、隠れたデータ片を形成する。「反復的に、初期データ片から開始して」によって、編集可能なフィーチャツリー編集のステップが、入力として各時間tにおいて前の時間の出力を使用して1回または複数回繰り返されることと、(初期時間t=0における)最初の(すなわち、開始の/第1の)入力が初期データ片の編集可能なフィーチャツリーであることとを意味する。各反復において、前の時間は、(すなわち、前の反復、すなわち、t-1に対応する)以前の時間または(初期時間t=0などの)任意の他の前の時間であり得る。反復は、データ集合中で挿入されるべき第1のデータ片として決定するために、たとえば、最も正準のデータ片を見つけることを狙ったグループのブラインド探査に対応し得る。データ片を反復的に合成し、与えることは、合成されたデータ片の未加工の(未編成の)集合を与えることと比較して、計算に関する効率を増加させる。実際、合成で反復的に進めることによって、すでに合成されているが組織化されてないデータに対してランダムに(したがって、乱雑に)進めることと比較して、データ片を編成し、グループごとに自然に動作し、それによって、少なくとも不要なテストを減らすことが可能になる。
【0110】
特に、テストは、合成と組み合わせて実行され得る。たとえば、テストは、(たとえば、実質的に唯一)編集可能なフィーチャツリー編集の各ステップ後に実行され得る。そのような例では、第3のデータ片は、現在の時間に決定された隠れたデータ片であり得、ならびに/または第4のデータ片は、初期データ片、前の時間に決定された隠れたデータ片などの別の利用可能なデータ片、たとえば、編集可能なフィーチャツリー編集の現在のステップに入力されるデータ片であり得る。テストにより、反復がグループ中にとどまったのか否か、言い換えれば、編集可能なフィーチャツリー編集のステップが表された3D形状を変更したのか否かを知ることが可能になる。テストが正の結果を生じる場合、フィルタ処理して除去することは、上記のように実行され得、(たとえば、グループをさらに探査するために)反復が続き得る。言い換えれば、フィルタ処理して除去することは、合成することと組み合わされ、それによって、合成することの順序に従う。代替として、テストが負の結果を生じる場合、第3のデータ片がグループに属していないことを意味する。そのような場合、第3のデータ片は、ビー削除/破棄されるか、または代替として、何らかの目的のために(データ集合中に挿入するために、または別個のグループを探査するためにそこから開始する別の別個の反復を起動するために)保持され得る。いずれの場合も、第3のデータ片は、現在の反復から破棄され、これは、たとえば、第4のデータ片に戻って、異なる編集可能なフィーチャツリー編集を実行することによって続き得る。
【0111】
第2のオプションに従って(たとえば、グループに対応する初期データ片を生成することを含む)1つのグループの処理について説明した。第2のオプションの例では、同じ処理が、(たとえば、互いのグループに対応する初期データ片を生成することを含め)少なくとも1つの(たとえば、それぞれの)他のグループのために実行され得る。すべてのグループは、並行してまたは連続的に処理され得る。
【0112】
第1のおよび/または第2の例と組み合わせ可能な第3の例では、(すなわち、データ集合中で挿入された)第1のデータ片ごとに、第1のデータ片の編集可能なフィーチャツリーは、(すなわち、第1のデータ片に対応し、データ集合中に挿入されない)それぞれの第2のデータ片の編集可能なフィーチャツリーに構造的に適合し(たとえば、それよりもより正準であり)得る。第1の編集可能なフィーチャツリーと第2の編集可能なフィーチャツリーとは、それらが同じ3D形状を潜在的に生じるとき、「構造的に適合する」とみなされる。「構造互換性」は、任意の所定のツリー構造のコンパティビリティクライテリオンに対応し得る。たとえば、第1の編集可能なフィーチャツリーと第2の編集可能なフィーチャツリーとは、それらが互いに少なくとも部分的にマッチングするとき、「構造的に適合する」とみなされ得る。所定のツリー構造のコンパティビリティクライテリオンは、2つの編集可能なフィーチャツリーの要素が同じである程度を測定し得る。実際、多数の同じ要素を有する2つの編集可能なフィーチャは、潜在的に同じ3D形状を生じる。同じである2つの編集可能なフィーチャは、必ずしも構造的に適合するとは限らない。しかしながら、構造的にコンパティブルメイである2つの編集可能なフィーチャツリーは、同じであるかまたは異なる。第3の例は、効率を改善する。
【0113】
たとえば、第2の例の第1のオプションでは、テストするステップを含む1つまたは複数の(たとえば、すべての)「データ片のペア」的なプロセスについて、第3のおよび第4のデータ片は、構造的に適合し得る(すなわち、構造的に適合する編集可能なフィーチャツリーを有し得る)。これによって、正の結果が特に可能性がある状況においてのみテストを実行することが可能になり、それによって、効率を改善する。
【0114】
代替または追加として、さらに第2の例の第1のオプションでは、テストは、体積比較方式を備え得る。体積比較方式は、(離散幾何学的表現に基づいて任意の体積計算方式を使用して)第1の体積値と第2の体積値とを計算することと、第2の体積値と第1の体積値を比較することとを備え得る。第1の体積値は、第3のデータ片の離散幾何学的表現の体積を表す。第2の体積値は、第4のデータ片の離散幾何学的表現の体積を表す。これは、高速の識別情報テストを与える。テストに関与する3D形状のペアが構造的に適合する編集可能なフィーチャツリーを有するとき、速度は、比較的小さいほとんどないロバストネスコストで達成される。
【0115】
代替または追加として、第2の例の第2のオプションでは、少なくとも1つの(たとえば、それぞれの)グループのデータ片は、2対2で構造的に適合し得る。たとえば、編集可能なフィーチャツリー編集のステップは、各出力データ片が入力データ片に構造的に適合することを保証し得る(すなわち、そのように制限され得る)。編集可能なフィーチャツリー間の構造適合性は、同値関係を形成し得る。これは、特に、第2の例の第2のオプションが第2の例の第1のオプションのテストを含むときに効率を改善する。
【0116】
第3の例のオプションでは、第1の編集可能なフィーチャツリーと第2の編集可能なフィーチャツリーとは、2つの以下の(たとえば、必要なおよび/または十分な)条件が満たされるときに「構造的に適合する」とみなされ得る。
【0117】
条件1。第1の編集可能なフィーチャツリーが、第2の編集可能なフィーチャツリーの幾何学的演算の(第2の)ツリー構成に少なくとも部分的に一致する幾何学的演算のそれぞれの(第1の)ツリー構成を有する。言い換えれば、第1のツリー構成の少なくとも部分が、第2のツリー構成の少なくとも部分に一致する(すなわち、それに等しくなる/それと同じである)。例では、第1のツリー構成は、第2のツリー構成に一致し得る(すなわち、それに等しくなり得る/それと同じであり得る)か、または第1の(もしくはそれぞれの第2の)ツリー構成は、第2の(もしくはそれぞれの第1の)ツリー構成中に含まれ得る(すなわち、それの部分に一致し得る)。さらに、対応する幾何学的演算の各ペアは、同じである。条件1は、さらに任意選択で、それらの一方または両方が他方に対する1つまたは複数の追加の単一リーフのブランチ(すなわち、ただ1つのリーフノードを有するブランチ)を有することを除いて第1のおよび第2のツリー構成が互いに正確に一致することを与え得る。言い換えれば、第1のおよび第2のツリー構成は、第1のツリー構成が第2のツリー構成にレラティブな追加のリーフ幾何学的形状を有し得るという点でのみ、ならびに/または第2のツリー構成が第1のツリー構成にレラティブな追加のリーフ幾何学的形状を有し得るという点でのみ異なり得る。
【0118】
条件2。対応するリーフ幾何学的形状の各ペアは、同じそれぞれのプリミティブ形状タイプを有し、各無次元パラメータ(次元パラメータ以外の各パラメータ)について、対応するリーフ幾何学的形の各ペアは、同じそれぞれのパラメータ値を有する。言い換えれば、対応するリーフ幾何学的形状の各ペアは、それらの次元パラメータ値を除いて同じである。
【0119】
要素のペアについての「対応する」によって、(条件1によって与えられたツリー構成の一致に従って)それらのそれぞれの編集可能なフィーチャツリーの一致するロケーションに位置する第1の編集可能なフィーチャツリーの第1の要素と第2の編集可能なフィーチャツリーの第2の要素とを意味する。
【0120】
次元パラメータ値が異なる場合でも、幾何学的演算と、プリミティブ形状タイプと、他のパラメータとが得られた3D形状が同じであるようなものであり得るので、これらの両方の条件を満たす編集可能なフィーチャツリーは同じ3D形状を潜在的に生じる。また、例では、データ集合形成方法によって与えられたそれぞれのデータ片は、それぞれのデータ片の1つまたは複数の集合を効果的に備え得、ここで、各集合のそれぞれの編集可能なフィーチャツリーはすべて、構造的に適合する。例では、1つまたは複数の集合はそれぞれ、異なる(すなわち、同じでない)3D形状を表す編集可能なフィーチャツリーに対応する少なくとも2つのデータ片を備え得る。しかし、代替または追加として、集合は、(少なくとも1つのリーフ幾何学的形状のプリミティブ形状タイプのための)少なくとも1つの異なる次元パラメータを有する(さらに、同じ3D形状を表す)編集可能なフィーチャツリーに対応する少なくとも2つのデータ片を備え得る。データ集合形成方法は、2つのデータ片のうちの単一の1つを挿入し得る。単一のデータ片を決定することは、任意の方法で実行され得る。
【0121】
次に、第2の例についてさらに説明する。
【0122】
例では、データ集合形成方法は、プリミティブ形状タイプの離散集合と、プリミティブ形状タイプごとの、1つまたは複数のパラメータ領域のそれぞれの離散集合とを備える初期データを与えるステップを備え得る。これは、初期データが、プリミティブ形状タイプごとに、プリミティブ形状タイプのパラメータに対応するフィールドをもつ(オブジェクト指向プログラミングを指す)オブジェクトクラスに対応するそれぞれのデータ構造を備えることを意味する。そのような場合、それぞれのデータ片を合成することは、初期データに基づいて実行され得る。たとえば、少なくとも1つのそれぞれのデータ片を与えることは、初期データに基づいて編集可能なフィーチャツリーを合成することを含み得る。合成することは、演算のツリー構成を生成することと、ツリー構成のリーフノードごとに、初期データに基づいて、リーフ幾何学的形状を生成することとを含み得る。特に、リーフ幾何学的形状を生成することは、プリミティブ形状タイプを選択することと、プリミティブ形状タイプの各パラメータのためにパラメータ値を選択することとを備え得る。これは、所与のクラスのインスタンスを作成することに対応する。
【0123】
方法が単一のタイプの幾何学的演算を伴うツリーに限定されない場合、初期データは、幾何学的演算の集合をさらに備え得る。そのような場合、演算のツリー構成を生成することは、ツリー構成を生成することと、非リーフノードごとに、幾何学的演算を選択することとを備え得る。幾何学的演算の集合は、たとえば、加算/和集合、減算、および/または交差を含む1つまたは複数のブール演算を備える離散型であり得る。これは、特に、CSGツリーを生成するために適用される。
【0124】
ツリー構成を生成することは、ノードとノードを接続するツリー構造とを生成することを備え得る。前に説明したように、ツリー構成は、単一ルートのツリー、バイナリツリー、および/または完全バイナリツリーに制限され得る。特に、1つまたは複数の編集可能なフィーチャツリーは、単一ルートと完全バイナリとの両方のタイプのツリー内に生成され得、ここで、各非リーフノードは、子として少なくとも1つのリーフノードを有する。そのような場合、ツリー構成を生成することは、ツリー構成の深度、すなわち、非リーフノードの数を選択することを備え得る。この情報は、上記のタイプのツリーを完全に定義するのに十分である。
【0125】
編集可能なフィーチャツリーを合成するときに実行される任意の選択は、(たとえば、ランダム)サンプリングを介して実行され得る。これにより、現実の状況の多様性を比較的うまく表すデータを生成することが可能になる。したがって、これは、最終的に正確な学習につながる。
【0126】
任意の(たとえば、ランダム)サンプリングは、選択されるべき変数が値を取る集合内の均一な(たとえば、ランダム)サンプリングを備え得る(たとえば、均一なランダムサンプリングは均一な確率分布によるランダムサンプリングである)。
【0127】
たとえば、
【0128】
- 深度は、N1よりも大きく、N2よりも小さいすべての整数の集合上での均一な分布に従ってサンプリングされ得、ここで、N1は、たとえば、1に等しい0よりも大きい、および/または5よりも小さい「最小深度の」整数であり、N2は、たとえば、7に等しい、N1よりも大きい、および/または100、50、もしくは20よりも小さい「最大深度の」整数である。
【0129】
- プリミティブ形状タイプは、プリミティブ形状タイプの離散集合上での均一な分布に従ってサンプリングされ得る。
【0130】
- 各ブール演算は、(たとえば、加算/和集合、減算、および交差からなる)ブール演算の離散集合上での均一な分布に従ってサンプリングされ得る。
【0131】
- それぞれの選択されたプリミティブ形状タイプのためのパラメータ値は、超長方形中の均一な分布(プリミティブ形状タイプのそれぞれのパラメータに固有のパラメータ領域をそれぞれ形成する間隔のデカルト積)に従ってサンプリングされ得る。簡略化するために、データ集合形成方法は、ハイパーキューブ[a,b]^l中に上記の各プリミティブのすべてのパラメータを一様にサンプリングし得、ここで、lは、プリミティブのパラメータの数であり、aとbeとは、実数であり、aは、0以上および/または1以下、たとえば、0.2に等しくなり得、bは、1以上および/または10以下、たとえば、2に等しくなり得る。
【0132】
次に、第2の例の第2のオプションの特定の例についてさらに説明する。
【0133】
1つまたは複数のプリミティブ形状タイプの各々について、1つまたは複数のそれぞれの連続パラメータが、1つまたは複数の次元パラメータを備えるとき、合成することは、例では、(上記で説明したように)初期データから1つまたは複数の初期データ片それぞれを生成することと、それぞれのそのような生成された初期データ片に基づいて、生成されたデータ片の変更に基づいて1つまたは複数のそれぞれの他の(隠れた)データ片を導出することとの間の混合を備え得る。例では、合成することは、初期データに基づく少なくとも1つの(たとえば、いくつかの)初期データ片の初期生成を備え得る。初期生成は、(各リーフ幾何学的形状の)次元パラメータごとに、(たとえば、サンプリング、任意選択で、ランダムサンプリングを介して)初期パラメータ値の前に説明した選択を含む。そのような例では、合成することは、次いで、(たとえば、1つまたは複数の、たとえば、それぞれの生成された初期データ片について)、反復的に、初期データ片から開始すること、それぞれの次元パラメータの1つもしくは複数のパラメータ値それぞれを変更すること、ならびに/または1つもしくは複数のリーフ幾何学的形状を削除することを行うことによって1つもしくは複数の隠れたデータ片を決定することを備え得る。
【0134】
特に、初期データ片から開始して、反復プロセスは、表された3D形状を同じに保ちながら、1つもしくは複数の(たとえば、できるだけ多く)次元パラメータ値を(たとえば、できるだけ多く)低減すること、ならびに/または1つもしくは複数の(たとえば、できるだけ多く)リーフ幾何学的形状を削除することを備え得る。言い換えれば、反復プロセスは、たとえば、次元パラメータ値を低減することならびに/またはリーフ幾何学的形状を削除することによって同じ3D形状を表すより正準のデータ片によって初期データ片を置き換えることを意図し得、それは、初期データ片として同じ3D形状をスチルス表す。
【0135】
例では、反復処理は、初期データ片から開始して、以下を含む低減アルゴリズムを備え得る。
【0136】
a.以下を初期化する。
【0137】
〇第3のデータ片(すなわち変数)
【0138】
〇第4のデータ片(すなわち変数)
【0139】
b.初期データ片を用いて第4のデータ片の値を設定する。
【0140】
c.以下を「未訪問」としてマークする。
【0141】
〇第4のデータ片の編集可能なフィーチャツリーのすべてのリーフ幾何学的形状
【0142】
〇第4のデータ片の編集可能なフィーチャツリーのすべてのリーフ幾何学的形状のすべての次元パラメータ
【0143】
d.未訪問のリーフを選択し、訪問済みとして選択されたリーフをマークする(そうでない場合、未訪問のリーフが利用可能でない場合、ステップkにジャンプする)。
【0144】
e.選択されたリーフの未訪問の次元パラメータを選択し、訪問済みとして選択された次元パラメータをマークする(そうでない場合、未訪問の次元パラメータが利用可能でない場合、ステップdに行って戻る)。
【0145】
f.0よりも高く、選択された次元パラメータのパラメータ値を下回るパラメータ低減値を初期化する(たとえば、二分アルゴリズムに対応する選択された次元パラメータのパラメータ値の半分)。
【0146】
g.選択された次元パラメータのパラメータ値からパラメータ低減値を減算することの結果として第3のデータ片の値を設定する。
【0147】
h.(たとえば、第3のデータ片と第4のデータ片との編集可能なツリーが構造的に適合するので、それらの離散幾何学的表現間の単純な体積比較を介して)第3のデータ片の3D形状と第4のデータ片の3D形状との間で識別情報をテストする。
【0148】
i.テストが正の結果を生じる場合、以下を行う。
【0149】
〇第3のデータ片の値によって第4のデータ片の値を置き換える(第4のデータ片は第2のデータ片として識別され、したがって、それの値は削除され得る)
【0150】
〇ステップfに行って戻る
【0151】
j.それ以外の場合(すなわち、テストが負の結果を生じる場合)、以下を行う。
【0152】
〇(たとえば二分アルゴリズムに対応するそれの半分に)パラメータ低減値を低減する
【0153】
〇パラメータ低減値が所定のしきい値(たとえば、0.1または0.05)より高い場合、ステップgに行って戻り、それ以外の場合、ステップeに行って戻る
【0154】
k.第4のデータ片の編集可能なフィーチャツリーのすべてのリーフ幾何学的形状を「未訪問」としてマークする。
【0155】
l.未訪問のリーフを選択し、訪問済みとして選択されたリーフをマークする(そうでない場合、未訪問の次元パラメータが利用可能でない場合、アルゴリズムを終了する)。
【0156】
m.第4のデータ片から選択されたリーフを削除することの結果として第3のデータ片の値を設定する。
【0157】
n.(たとえば、第3のデータ片と第4のデータ片との編集可能なツリーが構造的に適合するので、それらの離散幾何学的表現間の単純な体積比較を介して)第3のデータ片の3D形状と第4のデータ片の3D形状との間で識別情報をテストする。
【0158】
o.テストが正の結果を生じる場合、以下を行う。
【0159】
〇第3のデータ片の値によって第4のデータ片の値を置き換える(第4のデータ片は第2のデータ片として識別され、したがって、それの値は削除され得る)
【0160】
〇ステップlに行って戻る
【0161】
この低減アルゴリズムは、次元パラメータにわたる第2の「for」ループが各次元パラメータをできるだけ多く低減するための第1の「for」ループ中に埋め込まれた状態で、幾何学的形状リーフをできるだけ多く低減するためのリーフにわたる第1の「for」ループと、次いで、幾何学的形状リーフをできるだけ多く削除するためのリーフにわたる第3の「for」ループとを備える。
【0162】
各プリミティブの低減は、たとえば、X、YまたはZ軸に従って次元パラメータごとに行われ得る。考慮されるべき次元の順序は、任意に設定し得る。少なくとも1つのパラメータが、1次元での低減によって影響を及ぼされ得る。たとえば、合成することが低減しようと試みているのが立方体である場合、立方体の3次元(長さ、幅、深度)がX、Y、Z上に並べられる場合、次元ごとに1つの影響パラメータしかないことになる。逆に、軸(X,Y)に沿って配向する直角等脚台形角柱の低減などのより複雑な場合では、いくつかのパラメータが並行して影響することができる。
【0163】
次に、学習方法の例について説明する。
【0164】
ニューラルネットワークは、例では、再帰型ニューラルネットワーク(RNN)セル(すなわち、同じRNNのセル)を備え得る。そのような例により、正確なニューラルネットワークを学習することが可能になり、それによって、正確な推測を実行し、ニューラルネットワークは、推測されるべき編集可能なフィーチャツリーの連続特性に対応する連続アーキテクチャを(RNNを介して)提示する。
【0165】
特に、各RNNセルは、それぞれの時間ステップにおいて、それぞれのプリミティブ形状タイプの推測のためのそれぞれの第1のデータと1つまたは複数のパラメータ領域のそれぞれの離散集合の各々のためのそれぞれのパラメータ値の推測のためのそれぞれの第2のデータとを出力する。したがって、出力されたデータにより、それぞれのリーフ幾何学的形状の推測が可能になる。幾何学的演算は、任意の方法で推測され得、たとえば、あらかじめ決定され得る(たとえば、推測された編集可能なフィーチャツリーは、加法ツリーに制限され得、したがって、各幾何学的演算は加算になる)。代替として、各RNNセルは、さらに、それぞれの時間ステップにおいて、(たとえば、加算/和集合、減算および/または交差を含むか、またはそれからなる、たとえば、幾何学的演算の所定の集合のうちの)それぞれの幾何学的演算の推測のためのそれぞれのデータを出力し得る。時間ステップの数は、あらかじめ決定され得る。代替として、各RNNセルは、さらに、編集可能なフィーチャツリーのための終了または継続判断(すなわち、終了トークン)の推測のためのそれぞれのデータを出力し得る。
【0166】
次に、RNN出力の特に効率的な例について説明する。
【0167】
それぞれの第1のデータは、プリミティブ形状タイプの離散集合の各々にそれぞれ起因する確率のそれぞれの離散分布を備え得る。言い換えれば、各RNNセルは、プリミティブ形状タイプにわたる確率の分布を出力し、したがって、可能性が高いプリミティブ形状タイプが、それぞれの時間ステップに対応するリーフ幾何学的形状のために推測され得る。
【0168】
代替または追加として、それぞれの第2のデータは、(プリミティブ形状タイプごとに)1つまたは複数のパラメータ領域のそれぞれの離散集合の各々のためのそれぞれのパラメータ値を備える。言い換えれば、RNNセルは、推測されたプリミティブ形状タイプのためのパラメータ値を直接出力する。特に、パラメータが連続し、密度分布を出力するニューラルネットワークを学習するのが困難であるので、これは、学習を簡略化し、収束および精度を改善する。
【0169】
さらに、それぞれの幾何学的演算の推測のための任意のそれぞれのデータは、幾何学的演算の所定の(たとえば、離散)集合の各々にそれぞれ起因する確率のそれぞれの(たとえば、離散)分布を備え得る。さらに、終了トークンの推測のためのそれぞれのデータは、RNNに典型的なように、終了の確率および/または継続の確率(たとえば、ベルヌーイ分布)を備え得る。
【0170】
次に、特に正確な結果につながるニューラルネットワークのアーキテクチャについて説明する。
【0171】
オプションでは、ニューラルネットワークは、入力として離散幾何学的表現またはそれの表現を取る初期エンコーダを備え得る。エンコーダは、例では、ポイントクラウドエンコーダ(たとえば、PointNetエンコーダ)であり、入力として、(離散幾何学的表現を形成するか、または離散幾何学的表現を表すおよび/もしくはそれから抽出される)ポイントクラウドを直接取り得る。エンコーダは、他の例では、2D畳み込みニューラルネットワーク(CNN)であり、入力として、(離散幾何学的表現を表すおよび/もしくはそれから抽出される)2D画像データを取る。2D画像データは、離散幾何学的表現のシングルチャネルレンダリング(すなわち、単一ビュー画像)またはマルチチャネルレンダリング(すなわち、マルチビュー画像)であり得る。効率的な例では、マルチチャネルレンダリングは、たとえば、離散幾何学的表現の周りの正方形を実質的に形成する離散幾何学的表現の周りに(たとえば、規則的に)分散された4つの観点に基づく4ビューのレンダリングであり得る。
【0172】
代替または追加のオプションでは、各RNNセルは、(追加の)入力として、現在の予測されたシーケンス(フィードバックループ)の結果を取り得る。これは、精度を改善する。フィードバックループが可能であり、関与する連続パラメータのためにフィードバックループのエントリは微分可能である。そのようなオプションでは、ニューラルネットワークは、現在の予測されたシーケンスを計算するために各RNNセルの結果に適用される所定の幾何学的モデラを備え得る(すなわち、静的であり、すなわち、学習せず、言い換えれば、任意の変更可能な重みを備えない)。モデラは、編集可能なフィーチャツリーとそれの表現(たとえば、マルチチャネルレンダリング)との間のマッピングを与える任意のデータ構造であり得る。幾何学的モデラは、編集可能なフィーチャツリーを再生し、次いで、得られた3D形状の表現を抽出するための方式を備え得る。
【0173】
そのようなオプションの例では、各RNNセルは、それぞれのエンコーダを含み得る。それぞれのエンコーダは、たとえば、入力を表すグローバルフィーチャを計算するためにRNNの入力に適用され得る。幾何学的モデラの出力によっては、幾何学的モデラがポイントクラウドを出力する場合、それぞれのエンコーダは、例では、ポイントクラウドエンコーダ(たとえば、PointNetエンコーダ)であり得る。幾何学的モデラが2D画像データを出力する場合、それぞれは、他の例では、2D CNNであり得る。2D画像データは、前に提示した例などでは、シングルチャネルレンダリング(すなわち、単一ビュー画像)またはマルチチャネルレンダリング(すなわち、マルチビュー画像)であり得る。
【0174】
そのような例では、それぞれのエンコーダは、各時間ステップで同じであり得る。代替または追加として、それぞれのエンコーダのうちの1つまたは複数(たとえば、すべて)は、任意選択で、初期エンコーダと同じであり得る。これは、プロセスのロバストネスを改善する。
【0175】
正確な結果につながる教師つきトレーニングの損失の一例は、各離散幾何学的表現の各リーフ幾何学的形状に対応する時間ステップについて(各離散幾何学的表現は、ここで、それぞれのグラウンドトゥルースの編集可能なフィーチャツリーに関連付けられる)、以下の量のうちの一方または両方にペナルティーを課す。
【0176】
- 対応するグラウンドトゥルースのリーフ幾何学的形状のそれぞれのプリミティブ形状タイプに起因するそれぞれの第1のデータの確率の低さ、ならびに/または
【0177】
- 対応するグラウンドトゥルースのリーフ幾何学的形状の1つもしくは複数のそれぞれのパラメータ値とそれぞれの第2のデータの1つもしくは複数のそれぞれのパラメータ値との間の格差
【0178】
言い換えれば、教師つきトレーニングは、そのような損失を最小化することによって、各RNNセルによって出力されるそれぞれの確率を対応するグラウンドトゥルースのプリミティブ形状タイプについて1に近く(すなわち、低くなく)し、他のプリミティブ形状タイプについて0に近く(すなわち、低く)し、ならびに/または各セルによって出力されるそれぞれの連続パラメータ値をそれらのグラウンドトゥルース値に近くする傾向があるようにニューラルネットワークの重みに作用し得る。そのような損失は、問題の離散的な/連続的な混合を正確に扱う。
【0179】
この例のオプションでは、損失は、さらに同様に、各離散幾何学的表現の各リーフ幾何学的形状に対応する時間ステップについて、以下の追加の量のうちの一方または両方にペナルティーを課し得る。
【0180】
- 対応するグラウンドトゥルースの幾何学的演算に起因する(RNNセルによって出力される)それぞれの確率の低さ、ならびに/または
【0181】
- 終了トークンの推測のためのそれぞれのデータに基づく対応するグラウンドトゥルースの編集可能なフィーチャツリーのツリー構成(たとえば、深度または長さ)に達する(RNNセルによって出力された)確率の低さ
【0182】
次に、正確な結果につながる教師なしトレーニングの一例について説明し、ここで、それぞれの第1のデータは、プリミティブ形状タイプの離散集合の各々にそれぞれ起因する確率のそれぞれの離散分布を備える。
【0183】
知られているように、教師なしトレーニングは、損失を最小化する。最小化することは、確率の候補のそれぞれの離散分布を探査することを含む。言い換えれば、最小化することは、確率の出力されたそれぞれの離散分布を探査し、それらをラベルをつけられていないデータ集合に一致させるためにニューラルネットワークの重みを反復的に変更する(ここで、各離散幾何学的表現は、任意のグラウンドトゥルースな編集可能なフィーチャツリーに関連付けられない)。ある意味では、確率の候補のそれぞれの離散分布の探査は、間接的であり、重みの直接的な探査の結果である。オプションでは、最小化することは、幾何学的演算を介して確率の候補のそれぞれの離散分布および/または終了トークンのための確率の候補のそれぞれの離散分布を探査することをさらに含む。例では、最小化することは、1つまたは複数のパラメータ領域のそれぞれの離散集合の各々のための候補のそれぞれのパラメータ値を探査することをさらに含む。
【0184】
次に、損失は、データ集合の離散幾何学的表現ごとに、および候補ごとに、対応する離散幾何学的表現との格差にペナルティーを課す。対応する離散幾何学的表現は、それ自体確率の探査された候補のそれぞれの離散分布に基づいて推測可能なそれぞれの編集可能なフィーチャツリーから導出される。言い換えれば、(教師なしトレーニングの任意の反復における)ニューラルネットワークの重み値が与えられれば、ニューラルネットワークは、編集可能なフィーチャツリーの推測を実行するためにラベルをつけられていないデータ集合の離散幾何学的表現が入力され得る。それぞれの推測された編集可能なフィーチャツリーはそれ自体、(ツリーを再生し、結果の離散幾何学的表現を決定することによって)離散幾何学的表現中で派生することに基づき得る。そのような導出された離散幾何学的表現は、初期の対応するデータ集合の離散幾何学的表現と比較され得る。
【0185】
例では、教師なしトレーニングは、少なくとも1つの(たとえば、各)離散幾何学的表現のためのサンプリングステップを備え得る。トレーニングはミニバッチを与えることを備え得、サンプリングは、ミニバッチごとに、(RNNによって出力される確率分布と連続パラメータ値とを含む)ニューラルネットワークによって出力されるデータに従うことによってミニバッチの離散幾何学的表現ごとに編集可能なフィーチャツリーをサンプリングすることを備え得る。サンプリングは、次いで、入力された離散幾何学的表現(またはそれの表現、たとえば、レンダリング)とサンプリングされた編集可能なフィーチャツリーに対応する離散幾何学的表現とを比較する(すなわち、それらの間の格差にペナルティーを課す)損失を計算し得る。サンプリングは、確率的であり、離散的であるので、この損失は、サンプリングに対して微分可能でない。したがって、そのような真の勾配がないので、変数に対する真の勾配の典型的なバックプロパゲーションは実行されないことがある。
【0186】
教師なしトレーニングの提案された例は、それぞれの第1のデータの候補のそれぞれの離散分布を表す変数に対する損失の擬似勾配と、任意選択で、幾何学的演算を介して候補のそれぞれの離散分布を表す変数に対する損失の擬似勾配および/もしくは終了トークンの分布を表す変数に対する損失の擬似勾配とを与えるために強化手法を使用することを提案する。最小化することは、次いで、ニューラルネットワークを学習するために損失のそのような擬似勾配のバックプロパゲーション(たとえば、確率下降)を含み得る。擬似勾配が強化アルゴリズムによって与えられるので、バックプロパゲーションが真の勾配のうちの1つでない場合でも学習は正確である。最小化することはまた、(損失がこれらの変数に対して微分可能であるので)1つまたは複数のパラメータ領域のそれぞれの離散集合の各々のためのそれぞれのパラメータ値に対する損失の(真の)勾配のバックプロパゲーションを含み得る。したがって、強化手法は、離散確率分布の導入によってもたらされた微分可能性問題を解き、この問題のみを解く。
【0187】
次に、方法の例を含む例示的な機械学習プロセスについて説明する。
【0188】
再帰型ニューラルネットワーク
【0189】
例示的な機械学習プロセスは、再帰型ニューラルネットワーク(RNN)に基づく。再帰型ニューラルネットワークは、内部メモリ状態を用いるディープニューラルネットワークである。したがって、再帰型ニューラルネットワークは、フィードフォワードニューラルネットワークとは異なり時間挙動を示すことができる。それらは、次の結果を予測するために過去のエントリを暗黙的に考慮に入れる。それらは、
【0190】
【数1】
【0191】
【0192】
【数2】
【0193】
として書かれ得、ここで、yは出力であり、xは、入力であり、hは、メモリとも呼ばれる内部隠れ状態である。wは、RNNの重みである。メモリhは、すべての過去の入力をスタックするハードメモリではなく、それは、固定サイズのベクトルであり、
【0194】
【数3】
【0195】
を通して学習され、したがって、RNNは、過去のステップからの有用な情報のみを保つように学習する。
【0196】
例示的な機械学習プロセスの目的
【0197】
未加工メッシュから開始して、例示的な機械学習プロセスにより、いかなる教師もなしに、ブール演算を用いて連続的にマージされる一連のプリミティブからなるCSGツリーを構築することが可能になる。この例示的な機械学習プロセスは、未加工メッシュをCADフォーマットに変換するために特に有用であり得る。このCSGデジタル化により、未加工サーフェスを編集可能な3Dモデルに変換することが可能になり得、それは、次いで、モデルを変形させるか、機械的アセンブリにそれを接続するか、またはそれをシミュレートするために使用され得る。これらの未加工メッシュは、現実の3D機械部分のレーザー走査から、または3D市場上で取得されたB-repモデルから来ることができる。
【0198】
例示的な機械学習プロセスの原則
【0199】
例示的な機械学習プロセスにより、未加工メッシュからCSGツリーを予測する再帰型ニューラルネットワークを学習することが可能になる。第1に、CSGツリーの合成データ集合がランダムに生成される。データ集合中の各CSGツリーは、あらゆる冗長性を除去するためにそれの最小表現まで低減される。このデータ集合は、未加工メッシュからCSGツリーを予測するために教師つきの方法で再帰型ニューラルネットワークを訓練するために使用される。ネットワークは、次いで、CSGツリーが未知である未加工メッシュの現実のデータ集合に対する強化学習によって教師なしの方法で改良される。最後に、ネットワークは、新しい未加工メッシュから妥当なCSGツリーを推測するために使用される。最適化方式は、せいぜいCSGツリーを入力メッシュに最良の状態で適合させるためにツリーの連続パラメータを改良するために使用される。
【0200】
また、例示的な機械学習プロセスにおける任意のCSGツリーは、(各非リーフノードが子として少なくとも1つのリーフノードを有するタイプの)単一ルートの完全バイナリツリーである。
【0201】
例示的な機械学習プロセスの効果
【0202】
例示的な機械学習プロセスは、曲率分析に基づく他の決定性方法よりも入力メッシュ中の雑音および不完全なデータに対してはるかにロバストである。例示的な機械学習プロセスは、いくつかの理由のために論文[10]を上回る改善を与える。第1に、論文[10]は、離散化されたプリミティブしか扱わないが、例示的な機械学習プロセスは、連続プリミティブ(パラメトリックソリッド)を扱う。第2に、例示的な機械学習プロセスは、CSGツリーを連続的に改良するためにロバストな最終最適化を与える。第3に、例示的な機械学習プロセスのRNNは、推測プロセスを容易にするフィードバックループを含む。第4に、新しいアルゴリズムに従って冗長性を回避するためにすべてのCSGツリーが低減されているCSGデータ集合に適用されるので、例示的な機械学習プロセスの事前トレーニングステップはサウンダである。
【0203】
例示的な機械学習プロセスの説明
【0204】
1.合成CSGデータ集合を生成する
【0205】
第1のステップでは、例示的な機械学習プロセスは、CSGツリーの合成データ集合を生成する。ツリーは、各プリミティブ間にブール演算でインターリーブされるプリミティブのシーケンスである。各ブール演算は、後続のプリミティブと以前の演算の結果に適用されるバイナリ演算子である。3つの通常のブール演算は、加算/サブストラクション/交差である。したがって、シーケンス中の各プリミティブは、図3に示すようにシーケンスの現在の結果に(加算/交差/減算)される。
【0206】
プリミティブは、(直方体、円柱、角柱など、{1,...,L}とラベルをつけられたベースタイプの集合に属する。各プリミティブタイプは、連続パラメータのそれ自体の集合(たとえば、直方体のサイズおよび位置)を有する。
【0207】
CSGツリーをサンプリングするために、例示的な機械学習プロセスは、それの深度、プリミティブタイプ、およびブール演算をランダムにサンプリングする。プリミティブごとに、例示的な機械学習プロセスはまた、それの連続パラメータをサンプリングする。したがって、例示的な機械学習プロセスは、ランダムCSGツリーを得る。このCSGは、プリミティブのそれのシーケンスに連続的にそれのブール演算を適用することによって未加工メッシュに変えられ得る。
【0208】
例示的な機械学習プロセスは、最後に、対応するCSGツリーをもつ未加工メッシュのデータ集合を得る。事前トレーニングステップについての主要な問題のうちの1つは、CSGツリーの無限シーケンスが全く同じ未加工ジオメトリに対応することができるということである。たとえば、同じ結果の立方体につながる2つの立方体と交差するための無限の方法がある。図4に一例を示す。
【0209】
異なるCSGツリーに同じ未加工入力メッシュをマッピングするネットワークをトレーニングすることははるかにより困難である。この問題を緩和するために、例示的な機械学習プロセスは、CSGツリーとそれらの得られたメッシュとの間の全単射を強制するためにそれの最小表現にそれぞれのサンプリングされたCSGツリーを低減するアルゴリズムに関与する。
【0210】
第1に、結果の3D形状を同じままにすることを制約しながら、例示的な機械学習プロセスは、すべてのそれの軸に沿った各プリミティブの次元を低減するために二分アルゴリズムを使用する。結果が不変のままであるのかどうかをチェックする高速テストを得るために、例示的な機械学習プロセスは、結果の3D形状の体積を比較する。得られたCSGの体積が同じままである間、例示的な機械学習プロセスは各プリミティブを低減し続ける。
【0211】
第2に、それが結果を変更しない場合、例示的な機械学習プロセスは、ツリー中の任意のプリミティブとそれの後続の演算とを除去する。
【0212】
この低減アルゴリズムを図5図6に示す。
【0213】
最後に、例示的な機械学習プロセスは、得られたメッシュに(パーリン雑音、アプリケーションによってはそのような雑音などの)雑音をまた追加することができる。
【0214】
2.再帰型ニューラルネットワークを教師つき学習する
【0215】
例示的な機械学習プロセスは、以下のように再帰型ニューラルネットワーク(RNN)を定義する。RNNは、入力として、たとえば、マルチチャネル画像Iをデジタル化するために3Dメッシュの離散表現Iを取り、ここで、各チャネルは、入力メッシュ、3Dボクセルグリッド、3Dポイントクラウドなどのレンダリングビューまたは深度ビューを表す。
【0216】
RNNは、入力形状を表すグローバルフィーチャを計算するためにそれの入力に適用されるエンコーダを含む。これを図7によって示す。
【0217】
エンコーダは、たとえば、以下の論文によって説明されているように、入力が画像である場合は2D CNNであり、それがポイントクラウドである場合はPointNetエンコーダであり得る。
【0218】
- 非特許文献13
【0219】
CNNは、CSGの各ステップで同じであり得る。CSGのステップにおいて使用されるCNNはそれ自体、初期CNNと同じであることも異なることもある。それが同じである場合、プロセスはよりロバストである。
【0220】
各RNNセルはまた、任意選択で、入力として、現在の予測されたシーケンス(フィードバックループ)の結果を取ることができる。
【0221】
現在の予測されたシーケンスの結果は、幾何学的モデラを用いて計算される。モデラmは、CSGシーケンスとそれの得られた表現(たとえば、マルチチャネルレンダリング)との間のマッピングとみなされ得る。
【0222】
各RNNセルは、各時間ステップtにおいて、プリミティブタイプにわたる離散分布p、ブール演算にわたる分布o、ならびにCSGが終わったのかどうかを示す終了トークンにわたるベルヌーイ分布qを出力する。qは、現在のステップtが現在のCSGシーケンスの最後のステップでない確率であり、したがって、1-qは、現在のステップがシーケンス中の最後のステップである確率である。pyは、プリミティブタイプyの確率であり、oyは、演算yの確率である。
【0223】
それはまた、各プリミティブタイプlのための各時間ステップtにおける連続パラメータglを出力する。
【0224】
図8に、例示的な機械学習プロセスによって学習されるニューラルネットワークの例示的なアーキテクチャを示す。
【0225】
このRNNは、合成データ集合を使用して教師つき方法で事前トレーニングされる。現実のCSGデータ集合が同じく使用され得ることに注意されたい。
【0226】
Nをデータ集合のサイズであり、
【0227】
【数4】
【0228】
をn番目のCSGシーケンスの深度であるとする。各CSGシーケンスは、プリミティブタイプのシーケンス
【0229】
【数5】
【0230】
および一連の動作
【0231】
【数6】
【0232】
として書かれる。プリミティブ
【0233】
【数7】
【0234】
ごとに、
【0235】
【数8】
【0236】
をそれのパラメータであるとする。n番目のCSGの入力表現は、示されたInである。
【0237】
また
【0238】
【数9】
【0239】
によって、時間ステップtにおける知られているCSGツリーnの中間結果の表現、すなわち
【0240】
【数10】
【0241】
(および
【0242】
【数11】
【0243】
)を示す。
【0244】
文字の上のハットは、CSGシーケンスのグラウンドトゥルースのラベルを示す。
【0245】
問題のRNNの一般式:
【0246】
【数12】
【0247】
【0248】
【数13】
【0249】
,h0=0、ここで、wは、ニューラルネットワークの重みである。フィードバックループ(RNNの入力It-1)は任意であることを想起する。
【0250】
(ミニバッチを介してADAMソルバーなどの標準的なディープ学習技法を使用して)ネットワークの重みをトレーニングするために例示的な機械学習プロセスが最小化する損失は、以下の通りであり得る。
1(w)=Lprimitives(w)+Loperations(w)+Llength(w)+λLparameters(w)
【0251】
【数14】
【0252】
【数15】
【0253】
【数16】
【0254】
【数17】
【0255】
λは、離散変数にわたる分類損失Lprimitives(w)+Loperations(w)+Llength(w)と連続回帰損失Lparameters(w)との間のトレードオフパラメータである。それは、たとえば、
【0256】
【数18】
【0257】
として初期化され得、ここで、w0は、ニューラルネットワークのランダムに初期化された重みである。
【0258】
項Lprimitives(w)、Loperations(w)、およびLlength(w)のいずれかのために対数(交差エントロピー項)以外の任意の低さペナルティー関数が使用され得、ならびに/またはLparameters(w)のためにL2距離以外の任意の距離dおよび/もしくは2乗関数以外の任意の増加および/もしくは正関数incrが使用され得る。
【0259】
フィードバックループが使用される場合、RNNが入力された3D表現からCSGを予測するために推測において使用されるとき、例示的な機械学習プロセスは、グラウンドトゥルースの中間表現
【0260】
【数19】
【0261】
にアクセスできないことがある。推測中に、
【0262】
【数20】
【0263】
は、RNNによってそれの推測されたバージョンと置き換えられ得る。
【0264】
It=m([a1,...,at],[x1,...,xt],[b2,...,bt])であり、
【0265】
ここで、aiおよびbiは、ptおよびotからサンプリングされ、
【0266】
【数21】
【0267】
である。
【0268】
例示的な機械学習プロセスがフィードバックループを使用する場合、RNNが損失L1(w)を最小化することによって学習されると、例示的な機械学習プロセスは、それのフィードバックループのためにそれ自体の予測された中間表現Itを使用するためにRNNをトレーニングするために以下の損失
【0269】
【数22】
【0270】
を最小化し得る。
【0271】
【数23】
【0272】
は、例示的な機械学習プロセスがすべてのグラウンドトゥルースの中間表現
【0273】
【数24】
【0274】
【0275】
【数25】
【0276】
によって置き換えることを除いてL1(w)と全く同じ損失であり、ここで、
【0277】
【数26】
【0278】
は、RNNによって推測されたパラメータである。
【0279】
それは、例示的な機械学習プロセスが、中間表現を計算するためにRNNによって予測された推測された連続パラメータを使用する(が、CSGツリーのグラウンドトゥルース構造を保つ)ことを意味する。
【0280】
次に、
【0281】
【数27】
【0282】
は、もはやグラウンドトゥルースの固定表現でなく、(重みに依存するg1,...,gtを介して)ニューラルネットワークの重みに依存する。したがって、
【0283】
【数28】
【0284】
を最小化するために、例示的な機械学習プロセスは、x1,...,xtに関して
【0285】
【数29】
【0286】
を微分すること、すなわち、幾何学的モデラmを微分することが可能であり得る。マッピングmの差分は、有限差分を用いて計算され得る。さらに、結果を平滑化するために、平滑化カーネルをも適用され得る。
【0287】
3.再帰型ニューラルネットワークの教師なし学習
【0288】
RNNは、現実のデータ集合を表さない合成データ集合に対して事前トレーニングされている。したがって、例示的な機械学習プロセスは、現実のデータ集合に対してそれを微調整し得る。しかしながら、現実のデータ集合は、しばしばそれらのCSGツリーに関連付けられていない。すなわち、例示的な機械学習プロセスは、教師なしにネットワークを微調整するために強化手法を提案する。さらに、この手法により、ネットワークがより一貫したツリーを予測することが可能になるが、事前トレーニングステップは、低減アルゴリズムにもかかわらず3D形状が全く同様である異なるCSGツリーを提示することができる合成データ集合に一致させられる。
【0289】
RNNはまた、微調整ステップのために本明細書で提示したのと同じ技法を使用して教師なしの方法で直接トレーニングされ得る。その場合、例示的な機械学習プロセスは、ランダムに初期化されたRNNから直接開始し得る。しかし、収束は、事前トレーニングされたネットワークから開始するよりもはるかに遅くなる。
【0290】
教師なしの学習ステップでは、データ集合は、あらゆるラベル、CSG情報などもなしにN個の未加工メッシュのみを含んでいる。
【0291】
損失は、単に、入力メッシュのレンダリングと予測されたCSGのレンダリングを比較し得る。予測されたCSGを計算するために、例示的な機械学習プロセスは、入力によって調整されるそれの分布に従ってRNNをサンプリングし得る。サンプリングは、第4節で後で提示される推測方法の例に従って、ただし、現在の重み値に基づいて実行され得る。
【0292】
例示的な機械学習プロセスは、
【0293】
【数30】
【0294】
から開始し、
【0295】
【数31】
【0296】
【0297】
【数32】
【0298】
からサンプリングし、
【0299】
【数33】
【0300】
【0301】
【数34】
【0302】
からサンプリングし、
【0303】
【数35】
【0304】
を設定し、ここで、
【0305】
【数36】
【0306】
である。
【0307】
例示的な機械学習プロセスはまた、
【0308】
【数37】
【0309】
から終了/継続トークンをサンプリングし得る。終了トークンをサンプリングする場合、それはここで停止する。場合によっては、例示的な機械学習プロセスは、終了トークンがサンプリングされるまで、または時間ステップが最大許可時間ステップである最大許可時間ステップT(すなわち、CSGシーケンスの最大長)に達するまでこのサンプリングプロセスを反復し、例示的な機械学習プロセスは、
【0310】
【数38】
【0311】
【0312】
【数39】
【0313】
からサンプリングし、
【0314】
【数40】
【0315】
【0316】
【数41】
【0317】
からサンプリングし、
【0318】
【数42】
【0319】
を設定し、ここで、
【0320】
【数43】
【0321】
である。
【0322】
nによってn番目に入力された未加工メッシュのサンプリングされたCSGの深度を示す。
【0323】
これらの表記法を用いて、損失は以下のように簡易に書かれ得る。
【0324】
【数44】
【0325】
ここで、dは、In
【0326】
【数45】
【0327】
との間の類似性の測度である。たとえば、例示的な機械学習プロセスが3D入力の表現としてマルチチャネル画像または3Dボクセルグリッドを使用する場合、例示的な機械学習プロセスは、
【0328】
【数46】
【0329】
を使用することができる。
【0330】
例示的な機械学習プロセスがポイントクラウドを使用する場合、例示的な機械学習プロセスは、面取り距離を使用することができる。
【0331】
この損失は、連続パラメータ
【0332】
【数47】
【0333】
に関して微分可能である。したがって、この損失を最小化することにより、それらの連続パラメータに関係するニューラルネットワークの重みを学習する(または、RNNが事前トレーニングされている場合は微調整する)ことしか可能にならず、それは離散分布p、o、qを学習することができない。実際、(ネットワークの重みに関して微分可能である)離散分布は、離散変数(プリミティブタイプ、ブール演算、CSG長)を推測するために使用され、損失は、離散変数に関して微分可能でないことがある。
【0334】
また、これらの分布を微調整するために、例示的な機械学習プロセスは、これらの分布に関して損失の勾配を逆方向伝播し得る。例示的な機械学習プロセスは、離散分布p、o、qのためのそのような勾配を得るために強化アルゴリズムを使用し得る。強化アルゴリズムは、これらの離散分布に限定され、したがって、教師なし学習は、他の変数のための真の勾配を得ることができる。これは近似を限定し、それによって精度に影響を及ぼし、これにより、普通なら更新されず、したがって、学習されないはずの分布を最適化することが可能になる。
【0335】
強化アルゴリズムは、以下の論文に記載されている強化アルゴリズムであり得る。
【0336】
非特許文献14
【0337】
これは、以下の勾配式を与える。
【0338】
【数48】
【0339】
ここで、pは、CSGツリーが最小サイズのための最大表現度を有することを奨励するために追加のスパース性報酬であり、βは、推定された勾配の分散を低減するために使用されるベースラインである。
【0340】
一般に、pは、ネットワークを事前トレーニングするために使用される教師つきデータ集合にわたって計算されるL2損失にほぼ等しくなり得る。
【0341】
0を教師なし学習の前の重みであるとする(w0はランダム初期化から来るか、または教師つき事前トレーニングステップから来る)。次いで、ネットワークが事前トレーニングされている場合、または
【0342】
【数49】
【0343】
がランダム重みw0から開始する場合、βは、定数、たとえば、
【0344】
【数50】
【0345】
として選定され得る。または、例示的な機械学習プロセスはまた、トレーニング中のL2損失の移動平均としてβを設定することができる。
【0346】
教師なし学習の設定では、例示的な機械学習プロセスはまた、前の節(フィードバックループを用いた教師つき学習)の場合と同じ理由からマッピングmを微分することが可能になり得ることに注意されたい。差は、教師なし設定では、例示的な機械学習プロセスがフィードバックループを使用しない場合でも、損失が最終的なCSG表現
【0347】
【数51】
【0348】
に明示的に依存するので、例示的な機械学習プロセスがモデラを微分し得るということである。
【0349】
4.推測および最終的な改良
【0350】
ネットワークがトレーニングされると、例示的な機械学習プロセスは、未加工入力メッシュから最も可能性がある妥当なCSGツリーを推測するためにそれを使用することができる。そうするために、貪欲な探索はディープCSGツリーのために禁止になることがあるので、例示的な機械学習プロセスは、幅kをもつビーム探索アルゴリズムを適用し得る。
【0351】
第1のステップt=1において、例示的な機械学習プロセスは、k個の最も可能性があるCSGシーケンスをサンプリングし得る。次いで、それぞれの以下のステップにおいて、現在のシーケンスごとに、例示的な機械学習プロセスは、k個の最も可能性がある演算およびプリミティブを計算し得る。各ステップにおいて、これは、例示的な機械学習プロセスがk個の最も高い可能性しか保たないことがあるk2のCSGシーケンスを与える。それらは、終了トークンの確率を乗算した演算の確率を乗算したプリミティブの確率を乗算した現在のシーケンスの確率である新しい潜在的なシーケンスの確率に基づいて選択される。
【0352】
最後に、例示的な機械学習プロセスは、k個の妥当なCSGシーケンスを取得する。シーケンスごとに、例示的な機械学習プロセスは、たとえば、(BFGSなどの)微分可能な最適化を用いて損失L2を最小化することによってシーケンスのすべてのプリミティブの連続パラメータを改良し得る。最後に、例示的な機械学習プロセスは、この損失を最小化するCSGツリーのみを保ち得るか、または例示的な機械学習プロセスは、ユーザにすべてのk個のCSGツリーを提案し得る。
【0353】
図9図11に、例示的な機械学習プロセスに従って学習されるニューラルネットワークに基づく例示的な機械学習プロセスの推測方法の適用例のテストを示す。図9に、機械ツールを表す未加工入力メッシュを示す。図10に、(推測された編集可能なフィーチャツリーに幾何学的モデラを適用した後の)改良の前に推測方法を適用した結果を示す。図11に、改良後の結果を示す。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11