JP7473335B2 - ソリッドcadフィーチャを推測するためのニューラルネットワークの学習 - Google Patents

ソリッドcadフィーチャを推測するためのニューラルネットワークの学習 Download PDF

Info

Publication number
JP7473335B2
JP7473335B2 JP2019237149A JP2019237149A JP7473335B2 JP 7473335 B2 JP7473335 B2 JP 7473335B2 JP 2019237149 A JP2019237149 A JP 2019237149A JP 2019237149 A JP2019237149 A JP 2019237149A JP 7473335 B2 JP7473335 B2 JP 7473335B2
Authority
JP
Japan
Prior art keywords
curve
data
parameter
solid cad
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019237149A
Other languages
English (en)
Other versions
JP2020109661A (ja
Inventor
マニュエル サンチェス ベルムデス フェルナンド
メーア エロワ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dassault Systemes SE
Original Assignee
Dassault Systemes SE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dassault Systemes SE filed Critical Dassault Systemes SE
Publication of JP2020109661A publication Critical patent/JP2020109661A/ja
Application granted granted Critical
Publication of JP7473335B2 publication Critical patent/JP7473335B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/23Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/046Forward inferencing; Production systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • G06V20/647Three-dimensional objects by matching two-dimensional images to three-dimensional objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/18Manufacturability analysis or optimisation for manufacturability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Geometry (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Medical Informatics (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Processing Or Creating Images (AREA)

Description

本開示は、コンピュータプログラムおよびシステムの分野に関し、より詳細には、3D形状を表すフリーハンド描画から、3D形状を表す3Dモデル化オブジェクトを推測するために構成されたニューラルネットワークを学習することに関するソリューションに関する。
オブジェクトの設計、エンジニアリング、および製造のために、いくつかのシステムおよびプログラムが市場で提供されている。CADは、コンピュータ支援設計の頭字語であり、たとえば、オブジェクトを設計するためのソフトウェアソリューションに関する。CAEは、コンピュータ支援エンジニアリングの頭字語であり、たとえば、将来の製品の物理的挙動をシミュレーションするためのソフトウェアソリューションに関する。CAMは、コンピュータ支援製造の頭字語であり、たとえば、製造プロセスおよび操作を定義するためのソフトウェアソリューションに関する。そのようなコンピュータ支援設計システムでは、技法の効率に関してグラフィカルユーザインターフェースが重要な役割を果たす。これらの技法は、製品ライフサイクル管理(PLM)システム内に埋め込まれる。PLMは、長い事業計画の概念にわたって、製品の開発のために、それらの構想から寿命の終わりまで、会社が製品データを共有し、共通のプロセスを適用し、企業知識を利用する助けとなる事業戦略を指す。Dassault Systemesによって(商標CATIA、ENOVIA、およびDELMIAの元で)提供されるPLMソリューションは、製品エンジニアリング知識を編成するエンジニアリングハブ、製造エンジニアリング知識を管理する製造ハブ、およびエンジニアリングハブおよび製造ハブへの事業計画の一体化および接続を可能にする事業計画ハブを提供する。このシステムは、ひとまとまりで、製品、プロセス、リソースをリンクするオープンオブジェクトモデルをもたらし、動的な知識ベースの製品作成、ならびに最適な製品定義、製造準備、生産、およびサービスを推進する判断サポートを可能にする。
この状況において、研究者は、3D形状を表すフリーハンド描画から3D形状を表す3Dモデル化オブジェクトを推測するためのソリューションを探し求め続けている。以下の参考文献は、特にこの問題に関する。
非特許文献1から3は、スケッチから3Dメッシュを生成するためのアプローチを提供する。
メッシュの主な欠点は、それらがほとんど編集可能でなく、セマンティクスを提供しないことである。3Dメッシュは、基本的なポリゴン(しばしば三角形)の集まりとしてサーフェスを離散化する。サーフェスが他と関連性がなく多面的である場合、それは、ソリッドを表すことができる。そのような表現は、三角形を1つずつ編集するべきであるため、3Dモデル化のために適合されていない。
さらに、非特許文献1のアプローチは、丸みのあるメッシュを生成する。さらに、非特許文献1のアプローチは、スケッチストロークが関連付けられたアクション(作成、押し出し、曲げ)でアノテーション付けされることを必要とする。
非特許文献2および非特許文献3は、ディープラーニングにおける最近の利点により、丸みのある形状プライア(shape prior)ならびにアノテーション付けストロークの必要性を回避する。しかし、どちらのアプローチも依然としてメッシュを出力する。さらに、非特許文献2は、カノニカルな観点からのオブジェクトの1つまたはいくつかのスケッチ(すなわち、正面、側部、上部)を必要とし、これはユーザにとって強い制限である。
非特許文献4から7は、スケッチからパラメトリックサーフェスを生成するためのアプローチを提供する。
非特許文献4は、スケッチストロークに対していくつかの規則性(直交性、平行性、共平面性)を強制することによって曲線を生成する。その後、サーフェスが曲線に当てはめられる。このアプローチは、スケッチ中、ユーザが非常に正確であることを必要とする。すなわち、ストロークは、オブジェクトのジオメトリを表さなければならず(そのサーフェスに従うが、必ずしもその輪郭に従わない)、オクルードされたストロークが必要とされることがある。さらに、ユーザは、ストローク間の実際の3D交点を指定しなければならない。
非特許文献5は、スケッチにサーフェスを直接当てはめる。しかし、スケッチストロークは、ラベル付けされなければならない。ラベルは、スケッチストロークがあるべきサーフェスについてのいくつかの情報、すなわちサーフェスの限界、凹状/凸状、鋭いエッジを提供する。これらのラベルの性質により、オブジェクトの単純なパースペクティブスケッチでは十分でないため、ユーザは、ジオメトリにおける熟練者でなければならない。
したがって、非特許文献4および非特許文献5は、パラメトリックサーフェスを入力描画に当てはめるソリューションを提供するが、得られるサーフェスは必ずしも閉じられておらず、その結果、それらはソリッドを表さないことがある。それらがソリッドを表す場合でさえ、それらは、意味のあるソリッドCADフィーチャとして編集することができない。さらに、どちらの方法も追加のユーザ入力(交点またはストロークラベル付け)を必要とする。
非特許文献6は、スケッチストロークから3D曲線を生成する。このアプローチは、各ストロークが平面的な3D曲線を表すと想定する。平面が識別された後で、ストロークを2Dスケッチから、ストロークがあるべき平面に逆投影することによって3D曲線が得られる。同じ平面上にあるストロークは、互いに交差し、平面的なサーフェスパッチの境界を画定してよい。次いで、得られた平面的なパッチは、直角の方向に押し出しされてよい。このアプローチの主な欠点は、平面の向きが直交参照フレームの3つのカノニカルな向きに制限されることである。この参照フレームを定義するために、ユーザは、平行なラインの2つのセットを明示することを必要とされ、ラインの第1のセットは、第2のセットに対して直交する。次いで、参照フレームが消失点から推測される。
非特許文献7は、非常に似たアプローチを提案する。しかし、提案されているアプローチは、従来のRGB画像に加えて深度画像を必要とする。ストローク平面は、深度マップによって提供されるシーンの3Dから直接推定される。
したがって、非特許文献6および非特許文献7は、押し出されてよいサーフェスを含む結果を作り出す技法を提供する。しかし、どちらのアプローチも、ベースの2Dスケッチが平面の制限されたセット上にあると仮定する。さらに、どちらの方法も追加の入力、すなわちピクチャ、平行なラインのユーザ定義、深度画像を必要とする。
この状況の中で、3D形状を表すフリーハンド描画から、3D形状を表す3Dモデル化オブジェクトを推測するための改善されたソリューションが依然として求められている。
T. Igarashi, S. Matsuoka, and H. Tanaka, "Teddy: a sketching interface for 3D freeform design," in Proceedings of the 26th annual conference on Computer graphics and interactive techniques, 1999, pp. 409-416. Z. Lun, M. Gadelha, E. Kalogerakis, S. Maji, and R. Wang, "3D shape reconstruction from sketches via multi-view convolutional networks," in 3D Vision (3DV), 2017 International Conference on, 2017, pp. 67-77. J. Delanoy, M. Aubry, P. Isola, A. Efros, and A. Bousseau, "3D Sketching using Multi-View Deep Volumetric Prediction," Proceedings of the ACM on Computer Graphics and Interactive Techniques, vol. 1, no. 21, May 2018. B. Xu, W. Chang, A. Sheffer, A. Bousseau, J. McCrae, and K. Singh, "True2Form: 3D curve networks from 2D sketches via selective regularization," ACM Transactions on Graphics, vol. 33, no. 4, 2014. C. Li, H. Pan, Y. Liu, X. Tong, A. Sheffer, and W. Wang, "BendSketch: modeling freeform surfaces through 2D sketching," ACM Transactions on Graphics, vol. 36, no. 4, pp. 1-14, Jul. 2017. Y. Zheng, H. Liu, J. Dorsey, and N. J. Mitra, "SmartCanvas: Context-inferred Interpretation of Sketches for Preparatory Design Studies," in Computer Graphics Forum, 2016, vol. 35, pp. 37-48. Y. Li, X. Luo, Y. Zheng, P. Xu, and H. Fu, "SweepCanvas: Sketch-based 3D Prototyping on an RGB-D Image," in Proceedings of the 30th Annual ACM Symposium on User Interface Software and Technology, 2017, pp. 387-399. "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 R. J. Williams. Simple statistical gradient-following algorithms for connectionist reinforcement learning. Machine Learning, 229-256, 1992
したがって、3D形状を表すフリーハンド描画から、3D形状を表すソリッドCADフィーチャの推測をするために構成されたニューラルネットワークを学習するためのコンピュータ実施(学習)方法が提供される。この方法は、それぞれの3D形状を各々が表すフリーハンド描画を含むデータセットを提供するステップと、データセットに基づいてニューラルネットワークを学習するステップとを含む。
この方法は、以下の1つまたは複数を含んでよい。
- ソリッドCADフィーチャは、曲線のそれぞれのシーケンスを含み、方法は、曲線の候補セットを提供するステップをさらに含み、学習するステップは、曲線の候補セットにさらに基づき、
- ニューラルネットワークは、再帰型ニューラルネットワーク(RNN)セルを含み、各RNNセルは、それぞれの時間ステップで、ソリッドCADフィーチャのそれぞれの曲線の推測をするためのそれぞれのデータを出力し、
- 曲線の候補セットは、曲線タイプの離散セットと、各曲線タイプについて、各々がそれぞれのパラメータである1つまたは複数のパラメータ領域のそれぞれの離散セットとの間のセットプロダクトを含み、各パラメータ領域は、それぞれのパラメータのそれぞれのパラメータ値を有し、各曲線タイプは、1つまたは複数のパラメータ領域のそれぞれの離散セットの各々についてそれぞれのパラメータ値を用いて、曲線の候補セットのそれぞれの要素を形成し、
- ソリッドCADフィーチャのそれぞれの曲線の推測をするためのそれぞれのデータは、それぞれの曲線タイプの推測をするためのそれぞれの第1のデータと、1つまたは複数のパラメータ領域のそれぞれの離散セットの各々についてそれぞれのパラメータ値の推測をするためのそれぞれの第2のデータとを含み、
- 1つまたは複数の以前のRNNセルを有する各RNNセルは、1つまたは複数の以前のRNNセルによって出力されたそれぞれのデータから推測可能な情報を入力としてとり、
- ソリッドCADフィーチャは、スイープ操作を含み、方法は、スイープ操作の候補セットを提供するステップをさらに含み、学習するステップは、スイープ操作の候補セットにさらに基づき、
- ニューラルネットワークは、ソリッドCADフィーチャのスイープ操作の推測をするためのデータを出力するニューラルネットワーク部を含み、
- スイープ操作の候補セットは、スイープ曲線タイプの離散セットと、各スイープ曲線タイプについて、各々がそれぞれのパラメータである1つまたは複数のパラメータ領域のそれぞれの離散セットとの間のセットプロダクトを含み、各パラメータ領域は、それぞれのパラメータのそれぞれのパラメータ値を有し、各スイープ曲線タイプは、1つまたは複数のパラメータ領域のそれぞれの離散セットの各々についてそれぞれのパラメータ値を用いて、スイープ操作の候補セットのそれぞれの要素を形成し、
- ソリッドCADフィーチャのスイープ操作の推測をするためのデータは、スイープ曲線タイプの推測をするための第1のデータと、1つまたは複数のパラメータ領域のそれぞれの離散セットの各々についてパラメータ値の推測をするための第2のデータとを含み、
- ニューラルネットワークは、フリーハンド描画を表す画像を符号化する畳み込みニューラルネットワーク(CNN)を含み、
- データセットは、1つまたは複数のフリーハンド描画の各々について、フリーハンド描画に関係する3D形状を表すそれぞれのソリッドCADフィーチャをさらに含み、学習するステップは、損失Lsupを最小化することを含む監視トレーニングを含み、損失Lsupは、任意選択で、各ソリッドCADフィーチャが曲線のそれぞれのシーケンスを含むシーケンス巡回置換、および/または、各ソリッドCADフィーチャがスイープ操作を含む参照ベースのスケッチに対して不変であり、および/または、
- 学習するステップは、損失Lunsupを最小化することを含む非監視トレーニングを含み、損失Lunsupは、フリーハンド描画について、それぞれの推測可能なソリッドCADフィーチャから導出されたレンダリングとの相違にペナルティを課し、ニューラルネットワークは、任意選択で、確率の1つまたは複数の離散分布を出力し、最小化することは、各々が確率のそれぞれの離散分布を表す1つまたは複数の変数に関する損失Lunsupの勾配のバックプロパゲーションを含み、勾配は、補強アルゴリズムで得られる。
さらに、本学習方法に従って学習可能なニューラルネットワークを表すデータ構造が提供される。
さらに、データ構造の使用のコンピュータ実施(使用)方法が提供される。この方法は、3D形状を表すフリーハンド描画を提供するステップと、ニューラルネットワークをフリーハンド描画に適用するステップと、適用するステップの結果に基づいて3D形状を表すソリッドCADフィーチャを推測するステップとを含む。
さらに、本学習方法および/または使用方法を実施するための命令を含むコンピュータプログラムが提供される。
さらに、データ構造および/またはプログラムが記録されているデータ記憶媒体を備えるデバイスが提供される。デバイスは、たとえばSaaS(ソフトウェアアズアサービス)または他のサーバ、またはクラウドベースのプラットフォームなどにおいて非一時的コンピュータ可読媒体を形成し、または非一時的コンピュータ可読媒体として働いてよい。あるいは、デバイスは、データ記憶媒体に結合されたプロセッサを備えてよい。したがって、デバイスは、全体として、または一部としてコンピュータシステムを形成してよい(たとえば、デバイスは、全体的なシステムのサブシステムである)。さらに、システムは、プロセッサに結合されたグラフィカルユーザインターフェースを備えてよい。
次に、実施形態について、非限定的な例として、添付の図面を参照して述べる。
システムのグラフィカルユーザインターフェースの一例の図である。 システムの一例の図である。 本方法の図である。 本方法の図である。 本方法の図である。 本方法の図である。 本方法の図である。 本方法の図である。 本方法の図である。 本方法の図である。 本方法の図である。 本方法の図である。
本明細書により、ニューラルネットワークの学習に関するコンピュータ実施方法が提案される。本明細書では、ニューラルネットワークは、それぞれの3D形状をそれぞれが表すフリーハンド描画のいずれか1つを入力としてとり、その入力を処理し、その処理の結果として、入力に対応する3D形状を表すソリッドCADフィーチャを推測するために構成されたそれぞれのデータを出力するように構成された機能である。したがって、そのようなニューラルネットワークは、3D形状を表すフリーハンド描画に対応するソリッドCADフィーチャを推測するために使用されてよい。
したがって、「推測方法」と称されてよい、そのような推測を実施するためのコンピュータ実施方法が提案される。
推測方法は、3D形状を表すフリーハンド描画を提供することを含んでよい。推測方法は、ニューラルネットワークをフリーハンド描画に適用することをさらに含んでよい。また、推測方法は、適用の結果(すなわち、フリーハンド描画で入力されたときニューラルネットワークによって出力されたデータ)に基づいて、少なくとも1つの3D形状を表すソリッドCADフィーチャを(たとえば、適用されたとき実質的にリアルタイムで)推測することを含んでよい。出力データは、ソリッドCADフィーチャを(直接)含んでよく、ならびに/またはソリッドCADフィーチャを(間接的に)決定するために、たとえば自動的に、および/または所定のアルゴリズムに従って処理されてよい。
間接的な決定の場合、出力データは、たとえば、少なくとも1つのソリッドCADフィーチャを定義する値を選択するための1つまたは複数の確率分布を含んでよく、所定のアルゴリズムは、たとえば、1つまたは複数の確率分布に基づいて少なくとも1つのソリッドCADフィーチャを決定することを含んでよい。たとえば、決定することは、たとえば1つまたは複数の確率分布に基づいて1つまたは複数の最も確からしい値を選択することによって、低い確率を有する値を選択することにペナルティを課してよい。次いで、決定することは、それぞれの1つまたは複数の選択された値にそれぞれが対応するソリッドCADフィーチャの1つまたは複数の要素(たとえば、ジオメトリ形状)を導出してよい。
例では、決定することは、要素の1つまたは複数を修正することをさらに含んでよい。たとえば、推測されたソリッドCADフィーチャは、ジオメトリ形状(たとえば、曲線)のそれぞれのシーケンスを含んでよい。そのような例では、修正することは、それぞれのシーケンスの1つまたは複数のジオメトリ形状(たとえば、曲線)のジオメトリを修正することを含んでよい。特定の例では、推測することは、閉じられているジオメトリ形状(たとえば、曲線)(たとえば、曲線が円を形成する)のそれぞれのシーケンスに制限されてもよい。そのような特定の例では、シーケンスの1つまたは複数のジオメトリ形状(たとえば、曲線)のジオメトリを修正することは、それぞれのシーケンスを閉じることを含んでよい。
機械学習の分野から知られているように、ニューラルネットワークによって入力を処理することは、入力に操作を適用することを含み、これらの操作は、重み値を含むデータによって定義される。したがって、ニューラルネットワークの学習は、そのような学習のために構成されたデータセットに基づいて重みの値を決定することを含む。そのために、データセットは、それぞれがそれぞれのトレーニングサンプルを形成するデータピースを含む。トレーニングサンプルは、ニューラルネットワークが学習された後で使用されることになる状況の多様性を表す。本明細書で参照される任意のデータセットは、1000、10000、100000、または1000000より高い数のトレーニングサンプルを含んでよい。
したがって、「データセット形成方法」と称されてよい、そのようなデータセットを形成するためのコンピュータ実施方法が特に提案される。また、「学習方法」と称されてよい、そのような学習を実施するためのコンピュータ実施方法が提案される。
機械学習プロセスは、データセット形成方法および/または学習方法、ならびに任意選択で推測方法を含んでよい。
機械学習プロセスは、特にデータセット形成方法および学習方法を共に含んでよい。学習方法は、たとえば、例ではデータセット形成方法後、データセット形成方法によって形成されたデータセットに少なくとも一部基づいて実施されてよい。そのような機械学習プロセスは、特に効率的であり、改善された精度を提供する。
あるいは、機械学習プロセスは、データセット形成方法、およびデータセットに基づいて、ニューラルネットワークを学習するための(提案されている学習方法以外の)任意の他のコンピュータ実施方法を実施することを含んでよい。あるいは、機械学習プロセスは、データセットを形成する、またはデータセットをそのようなものとして取り出すための別の方法など、(提案されているデータセット形成方法以外の)任意の他のコンピュータ実施方法によって提供されるデータセットに対して学習方法を実施することを含んでよい。
データセット形成方法および学習方法について紹介する前に、それに必要とされるデータ構造について次に論じる。理解されるように、本明細書に提供されているデータ構造の定義および例は、データセット形成方法によって形成されたデータセットの少なくとも一部(たとえば、すべて)、および/または学習方法において提供されたデータセットの少なくとも一部(たとえば、すべて)に、ならびに/または推測方法の少なくとも1つの入力および/または少なくとも1つの出力に適用されてよい。
ソリッドCADフィーチャは、ソリッドの3D形状を表す3Dモデル化オブジェクトである。本明細書における任意の3D形状は、ソリッドを構成する材料の3D空間分布を表す。3Dモデル化オブジェクトは、ソリッドのスキン(すなわち、外側サーフェス)を表してよい。3Dモデル化オブジェクトは、ユーザに対して表示されるように、および/またはユーザが3Dモデル化オブジェクトに対して1つまたは複数のCAD設計操作を実施するために、CADシステムに提供されてよい。
モデル化オブジェクトは、たとえばデータベース内に記憶されたデータによって定義される任意のオブジェクトである。さらに進めると、「モデル化オブジェクト」という表現は、データそれ自体を示す。モデル化オブジェクトを設計するために使用されるシステムのタイプに従って、モデル化オブジェクトは、異なる種類のデータによって定義されてよい。システムは、実際、CADシステム、CAEシステム、CAMシステム、PDMシステム、および/またはPLMシステムの任意の組合せであってよい。これらの異なるシステムでは、モデル化オブジェクトは、対応するデータによって定義される。したがって、CADオブジェクト、PLMオブジェクト、PDMオブジェクト、CAEオブジェクト、CAMオブジェクト、CADデータ、PLMデータ、PDMデータ、CAMデータ、CAEデータのことを言ってよい。しかし、これらのシステムは、モデル化オブジェクトがこれらのシステムの任意の組合せに対応するデータによって定義されてよいので、互いに排他的なものではない。したがって、システムは、CADおよびPLMシステムのどちらでもよい。
CADシステムは、さらに、CATIAなど、少なくともモデル化オブジェクトのグラフィカル表現に基づいてモデル化オブジェクトを設計するために適合された任意のシステムを意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトの表現を可能にするデータを含む。CADシステムは、たとえば、エッジまたはライン、場合によってはフェイスまたはサーフェスを使用してCADモデル化オブジェクトの表現を提供してよい。ライン、エッジ、またはサーフェスは、様々な手法、たとえば非一様有理Bスプライン(NURBS)で表現されてよい。具体的には、CADファイルは仕様を含み、そこからジオメトリが生成されてよく、これは表現が生成されることを可能にする。モデル化オブジェクトの仕様は、単一のCADファイルまたは複数のファイル内に記憶されてよい。CADシステム内でモデル化オブジェクトを表すファイルの典型的なサイズは、1部品当たり1メガバイトの範囲内である。また、モデル化オブジェクトは、典型的には、数千の部品のアセンブリであってよい。
CADの状況では、モデル化オブジェクトは、典型的には、3Dモデル化オブジェクトであってよく、たとえば、部品または部品のアセンブリなど製品、またはおそらくは製品のアセンブリを表す。「3Dモデル化オブジェクト」は、その3D表現を可能にするデータによってモデル化される任意のオブジェクトを意味する。3D表現は、すべての角度から部品を見ることを可能にする。たとえば、3Dモデル化オブジェクトは、3D表現されたとき、その軸のいずれかの周りで、または表現が表示される画面内の任意の軸周りで扱われ回されてよい。これは、特に3Dモデル化されない2Dアイコンを除外する。3D表現の表示は、設計を容易にする(すなわち、設計者が各自のタスクを統計的に達成する速さを増大する)。これは、産業における製造プロセスを高速化する。なぜなら、製品の設計は、製造プロセスの一部であるからである。
本明細書における任意の3D形状は、(たとえば、機械)部品または部品のアセンブリ(または同等に、部品のアセンブリ。なぜなら、部品のアセンブリは、本方法の観点から部品それ自体と見られてよく、または本方法は、アセンブリの各部品に独立して適用されてよいからである)、またはより一般的には、任意の剛体アセンブリ(たとえば、移動機構)など、現実の世界で製造されることになる製品のジオメトリを表してよい。製品は、航空宇宙、建築、建設、消費財、ハイテクデバイス、産業機器、輸送、海洋、および/またはオフショア石油/ガス生産または輸送を含めて、様々な無限の産業分野における製品の1つであってよい。したがって、3D形状は、陸上輸送手段の一部(たとえば、車および軽量トラック機器、レーシングカー、オートバイ、トラックおよびモータ機器、トラックおよびバス、列車を含む)、航空輸送手段の一部(たとえば、機体機器、航空宇宙機器、推進機器、防衛製品、航空機機器、宇宙機器を含む)、船舶輸送手段の一部(たとえば、海軍機器、商船、オフショア機器、ヨットおよび作業船、海洋機器を含む)、一般機械部品(たとえば、産業用製造機械、移動重機または機器、据え付け機器、産業機器製品、金属製品、タイヤ製造製品を含む)、電気機械または電子部品(たとえば、家電、防犯および/または制御および/または計器製品、コンピューティングおよび通信機器、半導体、医療デバイスおよび機器を含む)、消費財(たとえば、家具、住宅および庭製品、レジャー用品、ファッション製品、耐久消費財小売業者の製品、非耐久財小売業者の製品を含む)、包装(たとえば、食品および飲料およびたばこ、美容およびパーソナルケア、家庭製品の包装を含む)など、任意の機械部品であってよい産業製品を表してよい。
CADの分野から知られているように、3D形状を表すソリッドCADフィーチャは、本明細書では、CADシステムがソリッドの3Dジオメトリを生成すること、および、たとえばソリッドの3Dグラフィカル表現をレンダリングおよび表示することを可能にする1つまたは複数の命令のリストである。3Dグラフィカル表現は、ソリッドの外側サーフェスの3Dテッセレーション、たとえば、-たとえば多角形の、任意選択で三角形の-メッシュテッセレーションを含んでよい。メッシュテッセレーションは、例では、100より高い(たとえば、1000より高い)数のフェイス-たとえばポリゴン、任意選択で三角形-を含む。
CADの分野から知られているように、ソリッドCADフィーチャは、CADシステムのユーザによって選択可能および/または編集可能である。1つまたは複数の命令のリストは、それぞれが選択可能および/または修正可能な1つまたは複数の要素を含んでよい。ソリッドCADフィーチャの編集は、その少なくとも1つの要素の選択、および/または要素の削除または修正、および/または少なくとも1つの新しい要素の追加を含むなど、CADの分野から知られている任意の手法でユーザによって実施されてよい。そのような編集は、メッシュなど離散的なジオメトリ表現の編集に比べて、エルゴノミクス特性をもたらす。
特に、命令のリストは、ソリッドを作成するための1つまたは複数のパラメータ化されたジオメトリ形状を含む1つまたは複数の制約を表してよい。各パラメータ化されたジオメトリ形状は、それぞれの1つまたは複数のパラメータを含み、たとえばタイプパラメータおよび/または1つまたは複数の形状パラメータを含む。1つまたは複数のパラメータは、選択可能および/または編集可能である(たとえば、少なくとも1つの、-たとえば各-形状パラメータを含む)。パラメータの編集は、パラメータの値を修正することを含んでよい。そのような場合、推測されるソリッドCADフィーチャは、そのテッセレーションされたメッシュのフェイスの数より5分の1以下(たとえば、10分の1以下)の低い数のジオメトリ形状、および/または50より低い数(たとえば、20未満)のジオメトリ形状を含んでよい。各ジオメトリ形状は、20より低い(たとえば、10より低い)数のパラメータによって定義されてよい。したがって、ソリッドCADフィーチャは、メッシュに比べてよりコンパクトかつ編成された手法で3D形状を表す。また、CADの分野から知られているように、ソリッドCADフィーチャの単一の要素に対して作用することは、グローバルな影響をもたらすことがあり、一方、メッシュの場合、単一のジオメトリエントリに対して作用することは、局所的な影響をもたらすにすぎない。たとえば、本明細書における任意のソリッドCADフィーチャは、より高い数のメッシュ三角形を移動する/増大するのではなく、5より低い(たとえば、3より低い)数のパラメータ値を修正することによって、(たとえば、湾曲する、たとえば円筒形の)その表された3D形状をスケールアップするために構成されてよい。さらに、ソリッドCADフィーチャは、離散的なジオメトリ表現よりユーザにとってセマンティクス的により意味のあるものである。
本明細書における任意のソリッドCADフィーチャの場合、命令のリストは、1つまたは複数のライブ/宣言的制約および/または1つまたは複数の手続き型制約を表してよい。本明細書における任意のソリッドCADフィーチャの場合、ジオメトリ形状は、ジオメトリ3D形状、すなわち3D空間において定義されたジオメトリ形状を含んでよい。3D形状は、たとえば、3D曲線および/または任意の他の3D形状(3D点および/または3Dソリッド)を含んでよい。本明細書における任意の3D曲線は、平面的なもの(すなわち、3D空間において定義されるが、前記3D空間の平面内に含まれる)または非平面的なもの(すなわち、平面内に含まれない)であってよい。例では、本明細書における任意のソリッドCADフィーチャの場合、ジオメトリ形状は、ジオメトリ形状の1つまたは複数のシーケンス、たとえば(たとえば、平面的な)3D曲線(たとえば、シーケンス曲線)の1つまたは複数の(たとえば、閉じられている)シーケンスを含んでよい。閉じられた輪郭(必然的に曲線のそれぞれを含む平面内)をもたらす平面的な3D曲線のシーケンスは、「閉じられた2D平面的スケッチ」と呼ばれる。例では、本明細書における任意のソリッドCADフィーチャの場合、ジオメトリ形状は、代替としてまたはそれに加えて、それぞれが入力として1つまたは複数のジオメトリオブジェクトをとる(たとえば、単一の閉じられた2D平面的スケッチ)、および/または別のジオメトリオブジェクト(たとえば、3D曲線)に基づく1つまたは複数のスイープ操作を含んでよい。本明細書における任意のスイープ操作は、たとえば、3D曲線(たとえば、スイープ曲線)、任意選択で非平面的なものによって定義されてよい。
本明細書における任意の3D曲線は、クラスのコンテキストにおいて3D曲線の形状を定義するそれぞれのパラメータにそれぞれが対応する1つまたはフィールドによって定義されるクラス(オブジェクト指向プログラミング参照)に属してよい。本明細書における任意の3D曲線は、特に、たとえば、1つまたは複数のバウンディング(たとえば、開始および/または終了)点のための1つまたは複数のポジショニングパラメータ(たとえば、3D座標)を含む1つまたは複数の形状パラメータによって定義されてよい。本明細書における任意の3D曲線は、代替としてまたはそれに加えて、タイプパラメータによって(たとえば、ラインタイプ、円弧タイプ、および/またはキュービックエルミート補間セグメントタイプを含む曲線タイプの中で)定義されてよい。本明細書における任意の3D曲線は、代替としてまたはそれに加えて、そのタイプに依存する追加の形状パラメータによって定義されてよく、任意選択で、曲線の1つまたは複数の中間点の中の各それぞれの1つについての1つまたは複数のポジショニングパラメータ(たとえば、3D座標)、および/または、曲線の1つまたは複数の点(たとえば、開始点および/または終了点を含む)の中の各それぞれの1つについての1つまたは複数の接線ベクトルパラメータ(たとえば、3Dベクトル定義)を含む。3D曲線のそのようなパラメータ化は、ユーザが編集するために特に人間工学的である。
学習の精度およびロバスト性ならびにフリーハンド描画への企図されている適用に関して代表される状況の多様性の点で特に効率的な例では、本明細書における任意のソリッドCADフィーチャは、所与の3D空間に関して、
- 閉じられた輪郭をもたらす平面的な曲線のシーケンス(たとえば、シーケンス曲線)によって構成された閉じられた2D平面的スケッチと、
- それに続く、3D空間における2D平面的スケッチによって定義される閉じられたサーフェスをスイープすることによってソリッドを生成するスイープ操作(たとえば、スイープ曲線によって定義される)とによって(によってのみ)特に定義されてよい。すなわち、ソリッドは、閉じられたサーフェスが通過する体積によって定義される。
そのような特に効率的な例では、ソリッドCADフィーチャは、意味のあるパラメータを有し、容易に編集することができる。たとえば、ベースの2D平面的スケッチは、修正されてよく、最終的なジオメトリは、スイープ操作を新しいベースに適用することによって自動的に更新されてよい。編集は、それぞれの3D曲線(たとえば、閉じられた2D平面的スケッチを構成する3D曲線、またはスイープ操作を定義する3D曲線)のパラメータを選択および編集することを含んでよい。編集は、平面、あるいは/または、シーケンスが修正されない、および/または閉じられたままであるという要件によって制約されてよい。そのようなタイプのソリッドCADフィーチャは、ユーザにとって編集するために特に人間工学的である。
例では、推測方法は、ソリッドCADフィーチャによって表される3D形状(すなわち、ソリッドCADフィーチャの命令の既存のリストによって得られる3D形状)の3Dグラフィカル表現、たとえばその3Dテッセレーションを表示することを含んでよい。さらに、推測方法は、たとえばそれぞれが対応するジオメトリ形状またはジオメトリ操作を表すグラフィカルアイテムのツリー配置を含むソリッドCADフィーチャの構造のグラフィカル表現、またはソリッドCADフィーチャに含まれるジオメトリ形状の3Dグラフィカル表現に対する強調を表示することを含んでよい。ソリッドCADフィーチャの編集は、たとえばグラフィカルインタラクションによってグラフィカルアイテムを選択することを含んでよい。本明細書におけるグラフィカルインタラクションは、ディスプレイ上のグラフィカルアイテムの位置に対応する場所にてピクセルをアクティブ化するためにハプティックデバイスを操作することを意味する。たとえば、マウスカーソルが表示されているグラフィカルアイテムの上に配置されても、表示されているグラフィカルアイテムが、タッチ画面を介して直接、またはタッチパッドを介して間接的に触れられてもよい。この選択は、ダイアログボックスなどを開くこと、および、たとえばキーボードを介してユーザによって1つまたは複数のパラメータ値を入力することをトリガしてよい。ソリッドCADフィーチャの特に効率的な例では、グラフィカルインタラクションは、たとえば3D曲線が閉じられた2D平面的スケッチに属するとき平面内に制約されている、点の位置を移動する、ならびに/または、ベクトルの方向および/またはサイズを修正するために、点の、または3D曲線にリンクされたベクトルのグラフィカル表現上でのドラグアンドドロップアクションを含んでよい。このタイプの人間工学的編集は、CADの分野から広く知られている。
例では、推測されたソリッドCADフィーチャをユーザ編集することに対する代替としてまたはそれに加えて、推測方法は、たとえばユーザインタラクションを介してソリッドCADフィーチャを1つまたは複数の他のソリッドCADフィーチャに組み合わせることを含んでよい。たとえば、推測方法は、たとえばソリッドCADフィーチャをフィーチャツリーの任意のノードに接続することによって、1つまたは複数の他のソリッドCADフィーチャを含む既存のフィーチャツリーにソリッドCADフィーチャを追加することを含んでよい。任意選択で、推測方法は、フィーチャツリーの1つまたは複数のソリッドCADフィーチャを編集することをさらに含んでよい。特定の例では、推測方法は、繰り返されてよく、いくつかのフリーハンド描画を提供すること、およびそれぞれニューラルネットワークをそれぞれのフリーハンド描画に適用することによっていくつかのソリッドCADフィーチャを推測することを含んでよい。そのような特定の例では、推測方法は、次いで、単一のフィーチャツリー内で、推測されたソリッドCADフィーチャ同士を組み合わせることを含んでよい。これらの特定の例は、フィーチャツリーを人間工学的に作成すること、したがって、フリーハンド描画に基づいて、複雑なCAD設計を実施することを可能にする。本明細書における任意のフィーチャツリーは、コンストラクティブソリッドジオメトリ(CSG)ツリーであってよい。
CADシステムは、履歴ベースであってよい。この場合、モデル化オブジェクトは、ジオメトリフィーチャの履歴を含むデータによってさらに定義されてよい。モデル化オブジェクトは、実際、物理的な人(すなわち、設計者/ユーザ)によって、標準的なモデル化フィーチャ(たとえば、押し出し、回転、カット、および/または丸め)ならびに/または標準的なサーフェス化フィーチャ(たとえば、スイープ、ブレンド、ロフト、フィル、変形、および/またはスムージング)を使用して設計されてよい。そのようなモデル化機能をサポートする多数のCADシステムは、履歴ベースのシステムである。これは、設計フィーチャの作成履歴が典型的には、入力および出力リンクを通じて前記ジオメトリフィーチャを共にリンクする非巡回的データフローを通じて保存されることを意味する。履歴ベースのモデル化パラダイムは、80年代の初頭以来周知である。モデル化オブジェクトは、2つの持続的なデータ表現、すなわち履歴およびB-rep(すなわち、境界表現)によって記述されてよい。B-repは、履歴に定義された計算の結果である。モデル化オブジェクトが表されたときコンピュータの画面上に表示される部品の形状は、B-rep(のたとえばテッセレーション)である。部品の履歴は、設計意図である。基本的に、履歴は、モデル化オブジェクトが受けた操作に関する情報を収集する。B-repは、複雑な部品を表示することを容易にするために履歴と共に保存されてよい。履歴は、設計意図による部品の設計変更を可能にするために、B-repと共に保存されてよい。特定の例の推測方法は、ジオメトリフィーチャのそのような履歴を、フリーハンド描画アプローチにより人間工学的に、フィーチャツリーを介して取り出すことを可能にする。
機械的シミュレーションは、ソリッドCADフィーチャおよび/またはフィーチャツリーに基づいて実施されてよい。実際、ソリッドCADフィーチャおよび/またはフィーチャツリーは、3D形状のコンパクトかつパラメータ化された表現を(離散的なジオメトリ表現に対して)コンパクトに形成するので、機械的計算は、より正確に実施されることがある。特に、(非特許文献8によって、または非特許文献9によって教示されているように)有限要素メッシュをCSGから計算することはより容易であり、より直接的である。さらに、CSGは、サーフェスのウォータープルーフ性の保証を提供する。したがって、機械的シミュレーションは、1つまたは複数の有限要素メッシュをソリッドCADフィーチャおよび/またはフィーチャツリー(たとえば、CSG)ならびに/またはその1つまたは複数の修正から計算し、次いで各有限要素メッシュに基づいて有限要素解析を実施することを含んでよい。また、ソリッドCADフィーチャがパラメータ化されるので、シミュレーションの結果に従って、ソリッドCADフィーチャを容易に最適化することができる。したがって、1つまたは複数の修正は、各以前の有限要素解析結果に基づいて、ソリッドCADフィーチャを最適化するためのものであってよい。
3D形状を表す本明細書における任意のフリーハンド描画は、3D形状を表すための(人間の)ユーザによる2D画像の設計可能なフリーハンドである。「設計可能なフリーハンド」は、描画がユーザによる2D画像スケッチの特性をもたらすことを意味する。したがって、フリーハンド描画は、ユーザによって確立されたものであってよいが、あるいは、合成された、すなわちコンピュータシステムによって人工的かつ自動的に合成されたものであってもよい。特に、データセット形成方法におけるフリーハンド描画は、合成的なものであってよい。一方、推測方法におけるフリーハンド描画は、ユーザによってフリーハンドで効果的に描画されることが意図されているが、推測方法には、合成的なフリーハンド描画を供給することもできる。
したがって、フリーハンド描画は、3D形状が可視であるそれぞれの視点から3D形状を表す1つまたは複数の(2D平面的)ストロークを含む2D画像データ構造である。1つまたは複数のストロークは、同じ平面内で定義され、それぞれの視点から3D形状のパースペクティブを表す。各ストロークは、平面内で定義された連続的または実質的に連続的な曲線である。
例では、本明細書における任意のフリーハンド描画の場合、1つまたは複数のストロークは、20ストローク未満(たとえば、10未満)、任意選択で2以上のストロークの数を含んでよい。例では、本明細書における任意のフリーハンド描画の場合、1つまたは複数のストロークは、それぞれが視点からの3D形状のそれぞれの特徴的なエッジ、たとえば、3D形状によって表されるソリッドの輪郭エッジまたは可視エッジを表してよい。「可視エッジ」は、光の反射のアクションがユーザにとって注目すべきものであるソリッドのエッジを意味する。本明細書における任意のソリッドの可視エッジは、それぞれがソリッド表現のCk不連続を形成する1つ(たとえば、唯一)または複数のエッジを含んでよく、kは、1以上の整数(たとえば、任意選択で10または4未満)である。
例では、本明細書における任意のフリーハンド描画の場合、1つまたは複数の(たとえば、すべての)ストロークは、それぞれが別のストロークから(たとえば、別のストロークの端点から)、たとえば所定の閾値、たとえば10または5mm未満の距離を有する端点を有してよい。これは、フリーハンド描画をスケッチするとき、ユーザは、このようにして、3Dを2Dで表すために、端点を前記別のストローク(たとえば、別のストロークの前記端点)に接合しようとしてよいことを表す。例では、本明細書における任意のフリーハンド描画(たとえば、推測方法に入力された1つまたは複数のフリーハンド描画および/またはデータセットの1つまたは複数のフリーハンド描画)の場合、1つまたは複数の(たとえば、すべての)ストロークは、それぞれが別のストロークから(たとえば、別のストロークの端点から)非ゼロの距離(すなわち、正のギャップ)を有する端点を有してよい。これは、フリーハンド描画をスケッチするとき、ユーザは、しばしば端点を前記別のストローク(たとえば、別のストロークの前記端点)に完璧に接合することができず、それによりギャップを作成することがあることを表す。これは、ユーザが自由に、したがって速く/人間工学的にスケッチしているからである。この不正確にもかかわらず、推測方法は、ソリッドCADフィーチャを正確に推測してよい。また、データセットは、学習が正確になるように、この不正確を表してよい。
例では、本明細書における任意のフリーハンド描画の場合、ストロークは、3D形状を自由に表す。これは、それらを任意の順番で、(必然的に平行な、および/または直交するストロークを有するなど)事前定義された制約なしに定義することができ、それらは、それぞれがソリッドの平面的なフェイスを表す(たとえば、距離に基づいて得られる)クラスタで編成されないことを意味する。例では、本明細書における任意のフリーハンド描画の場合、1つまたは複数のストロークは、代替としてまたはそれに加えて、それぞれ不規則であってよい。これは、ストロークを近似ししたがって誤差を導入することなしに、ストロークをパラメータ化された2D曲線(本明細書に記載のタイプのいずれかの少なくとも1つ)によって表すことができないことを意味する。ストロークはユーザによってスケッチされることが意図されているので、一般的な場合、それらはカノニカルなジオメトリを形成しない。例では、不規則なストロークは、特に/著しく不規則であることが可能である。例では、本明細書における任意のフリーハンド描画は、代替としてまたはそれに加えて、生フォーマットで、たとえばストロークに関連付けられたラベル(たとえば、作成、押し出し、曲げなどアクションアノテーション)なしに、および/または追加のデータ(たとえば、ピクチャ、平行なラインのユーザ定義、深度画像)なしに提供されてよい。したがって、推測方法は、ユーザが制約によって縛られず、ストロークを自由にスケッチすることができる(たとえば、推測方法は、2Dスケッチ平面に対する想定をしない)ので、また入力フリーハンド描画以外、追加の入力が必要とされないので、人間工学的である。
推測時、各ストロークは、パラメータ化されず、これは、ストロークを表すデータ構造が、それぞれがストロークのそれぞれの部分(たとえば、ピクセル)を表すデータのピースを含み、データ構造がこれらの部分の生の集約を表すことを意味する。推測方法は、ユーザによって入力フリーハンド描画の各ストロークをスケッチすることを含んでよい。スケッチすることは、ストロークを定義する画面の一連のピクセルを順次(たとえば、実質的に連続的に)アクティブ化することによって、コンピュータの画面とのグラフィカルインタラクションによって実施されてよい。アクティブ化は、マウスなどピクセルに対して作用するハプティックデバイス(たとえば、ストロークを定義するカーソル移動)を介して、またはタッチ画面またはタッチパッドとのユーザインタラクション(たとえば、タッチ画面またはタッチパッド上でストロークを物理的にタッチ描画することを含むインタラクション)を介して実施されてよい。これは、スケッチ設計またはストローク設計としてCADの分野で周知である。代替では、紙にスケッチされた描画または任意の他の画像のスキャンが推測方法に入力されてもよい。あるいは、フリーハンド描画は、たとえば別のユーザによって、および/または以前の技法のいずれかによって作り出されて、メモリから取り出されても、遠くのコンピュータシステムから受信されてもよい。
例では、推測方法は、ユーザがストロークをスケッチするときフリーハンド描画のグラフィカル表現を(たとえば、リアルタイムに)表示することを含んでよい。推測方法は、ニューラルネットワークの適用をトリガしてよい。たとえば、ユーザが書き終えたとき、ユーザは、ニューラルネットワークの適用およびソリッドCADフィーチャの推測をトリガしてよい。その結果、本方法は、任意選択でフリーハンド描画のグラフィカル表現を依然として同時に表示している間、ソリッドCADフィーチャの3Dグラフィカル表現を表示してよい。次いで、ユーザは、ソリッドCADフィーチャを処理する(たとえば、編集、ツリーへの一体化、シミュレーション)ためにフリーハンド描画のグラフィカル表現を隠してよい。推測方法は、任意選択で上記のように推測方法を繰り返すことを含めて、ユーザによって設計された複雑な3Dモデル化オブジェクトを表示している間に実施されてよい。したがって、推測方法は、スケッチベースの設計能力を履歴ベースのCADシステムに提供する。
したがって、本明細書における任意の方法は、ソリッドCADフィーチャを含む3Dモデル化オブジェクトを設計するためのプロセス、特に推測方法の一部であってよい。「3Dモデル化オブジェクトを設計すること」は、3Dモデル化オブジェクトを洗練するプロセスの少なくとも一部である任意のアクションまたは一連のアクションを示す。したがって、本方法は、3Dモデル化オブジェクトを最初から作成することを含んでよい。あるいは、本方法は、以前作成された3Dモデル化オブジェクトを提供し、次いで3Dモデル化オブジェクトを修正することを含んでよい。
本明細書における任意の方法は、製造プロセスに含まれてよく、これは、本方法を実施した後、モデル化オブジェクトに対応する物理的製品を作り出すことを含んでよい。いずれの場合も、本方法によって設計されたモデル化オブジェクトは、製造オブジェクトを表してよい。したがって、モデル化オブジェクトは、モデル化ソリッド(すなわち、ソリッドを表すモデル化オブジェクト)であってよい。製造オブジェクトは、部品または部品のアセンブリなど製品であってよい。本方法は、モデル化オブジェクトの設計を改善するので、本方法は、製品の製造をも改善し、したがって製造プロセスの生産性を高める。
次に、データセット形成方法および学習方法について、一般的に紹介されている。
データセット形成方法は、それぞれの3D形状をそれぞれが表す1つまたは複数のソリッドCADフィーチャを生成すること(たとえば、合成すること)を含む。データセット形成方法は、各ソリッドCADフィーチャについて、それぞれの3D形状をそれぞれが表す1つまたは複数のフリーハンド描画を(たとえば、生成されたソリッドCADフィーチャに基づいて)決定すること(たとえば、合成すること)、ならびに、データセット内に、それぞれが(たとえば、合成された)ソリッドCADフィーチャおよびそれぞれの(たとえば、合成された)フリーハンド描画を含む1つまたは複数のトレーニングサンプルを挿入することをさらに含む。
「それぞれのデータピースを提供すること/生成すること/決定すること/合成すること」は、少なくともいくつかの点において、データピースがコンピュータシステムのメモリ上に記録され、プロセッサにとってアクセス可能であることを暗示する。
「データセット」は、トレーニングサンプルを含み機械学習のために構成された任意のデータ構造を意味し、データ構造は、コンピュータシステムのメモリ上に記録され、プロセッサにとってアクセス可能である。データセット形成方法は、データセットを不揮発性メモリ上に記録することを含んでよい。
データセット内にデータピースをトレーニングサンプルとして「挿入すること」または「挿入しないこと」は、データセット形成方法の少なくともいくつかの点(たとえば、終わり)において、データセットは、データセットがすべての「挿入された」データピース(すなわち、データセットを表すデータ構造内でメモリ上にそのように記録されるもの)を含み、一方、データセットは、すべての「挿入されない」データピース(すなわち、データセットを表す少なくともデータ構造内でメモリ上にそのように記録されないもの)を除外する(すなわち、含まない)状態で、コンピュータシステムの(たとえば、不揮発性)メモリ上に記録される。次いで、学習は、例ではデータセットのさらなる処理の後、データセットに基づいてよい。したがって、学習されたニューラルネットワークは、データセット内に挿入されたデータピースと一貫していることになる。
データセット形成方法は、CAD設計のための改善されたソリューションを形成する。形成されたデータセットは、それぞれの3D形状のフリーハンド描画と、それぞれの3D形状を表すソリッドCADフィーチャとをそれぞれが含むトレーニングサンプルを含む。したがって、データセットは、例では提案されている学習方法と共に、フリーハンド描画をソリッドCADフィーチャに変換するために使用可能なニューラルネットワークを学習するために構成される。さらに、データセットは、企図されている学習に関してラベル付けされる。実際、ニューラルネットワーク(フリーハンド描画)の潜在的な入力は、それぞれがグラウンドトゥルース出力(それぞれのソリッドCADフィーチャ)によってデータセット内でラベル付けされる。したがって、学習は、監視ありであってよく、したがって特に効率的である。
学習方法は、それぞれの3D形状をそれぞれが表すフリーハンド描画を含むデータセットを提供すること、およびデータセットに基づいてニューラルネットワークを学習することを含む。
学習方法は、CAD設計のための改善されたソリューションを形成する。特に、学習されたニューラルネットワークは、フリーハンド描画をソリッドCADフィーチャに変換するために使用可能である。CADの状況では、これはすでに論じられているように特に有用である。さらに、学習されたニューラルネットワークでそのような変換を実施することは、高速なまたはリアルタイムの実行、面倒な従来の手動プログラミング/コーディングが不要、および結果の精度(たとえば、ここでの精度は、ソリッドCADフィーチャを実行した結果と、フリーハンド描画をスケッチするときユーザによって意図されている3D形状との間で評価される3D類似度の値、たとえば任意選択でソリッドCADフィーチャを実行した結果の(たとえば、特徴的なエッジの)2D投影とフリーハンド描画との間で評価される2D類似度の値として測定されるものを指す)など、機械学習の分野によって提供される利益を達成することを可能にする。したがって、学習方法は、3D設計の状況においてエルゴノミクスを改善する。
学習は、データセットの少なくとも一部に基づく監視ありトレーニングを含んでよい。そのような場合、データセットの前記少なくとも一部は、各フリーハンド描画について、フリーハンド描画で(ラベル付き)トレーニングサンプルを形成するそれぞれのソリッドCADフィーチャを含む。データセットの前記少なくとも一部は、任意の方法に従って提供され、たとえばデータセット形成方法に従って形成されてよい。
代替としてまたはそれに加えて、学習は、データセットの少なくとも別の一部に基づく監視なしトレーニングを含んでよい。そのような場合、データセットの前記少なくとも別の一部のフリーハンド描画はそれぞれ、それぞれの(ラベル付けされていない)トレーニングサンプルを形成する。データセットの前記少なくとも別の一部は、任意の方法に従って提供され、たとえばフリーハンド描画の商用データベースとして取り出されてよい。
特に効率的な例では、学習方法は、データセット形成方法によって形成されたデータセットに基づく監視ありトレーニングを含んでよい。そのような例のロバストな例では、学習は、たとえば監視ありトレーニング後に別のデータセットに基づく監視なしトレーニングをさらに含んでよい。機械学習の分野から知られているように、各トレーニングは、たとえばミニバッチごとに、それぞれのデータセットを反復的に処理すること、および反復的処理に沿ってニューラルネットワークの重み値を修正することを含んでよい。これは、確率的勾配降下に従って実施されてよい。重み値は、各トレーニングについて任意の手法で初期化されてよい。例では、監視なしトレーニングの重み値は、監視ありトレーニングの終わりに得られる重み値で初期化されてよい。重み値は、監視ありトレーニングについて、任意の手法で、たとえばランダムに、またはそれぞれゼロ値に初期化されてよい。したがって、データセット形成方法および監視ありトレーニングは、別のデータセットに基づいてよいさらなるトレーニング、すなわち監視なしトレーニングのために重み値を初期化するための手法を形成する。他のデータセットは、たとえば、データセット形成方法によって形成されたラベル付けされたデータセットよりも現実を表すラベル付けされていないデータセットであってよい。したがって、監視なしトレーニングは、監視ありトレーニング後に停止することに比べて、より正確な結果をもたらすことがある。しかし、機械学習の分野から知られているように、監視なしトレーニングは、非常に長く、任意に初期化された場合、不正確な結果を提供する可能性がある。提案されているアプローチでは、監視あり学習は、比較的良好な初期化を提供する。
本方法は、コンピュータ実施される。
これは、方法のステップ(実質的にすべてのステップ)が少なくとも1つのコンピュータ、または任意の同様のシステムによって実行されることを意味する。したがって、方法のステップは、コンピュータによって、おそらくは完全に自動的に、または半自動的に実施される。例では、方法のステップの少なくともいくつかのトリガは、ユーザコンピュータインタラクションを通じて実施されてよい。必要とされるユーザコンピュータインタラクションのレベルは、予見されるオートマティズムのレベルに依存し、ユーザの望みを実装するための必要とバランスをとってよい。例では、このレベルは、ユーザ定義されても、および/または事前定義されてもよい。
また、これは、ニューラルネットワーク、データセット、1つまたは複数の(たとえば、すべての)入力、および/または1つまたは複数の(たとえば、すべての)出力がそれぞれ、それぞれのデータ構造によって表されてよいことを意味する。1つまたは複数の(たとえば、すべての)データ構造はそれぞれ、それぞれのデータ記憶媒体上に非一時的に記録されてよい。
方法のコンピュータ実施の典型的な例は、この目的のために適合されたシステムで方法を実施することである。システムは、メモリに結合されたプロセッサと、グラフィカルユーザインターフェース(GUI)とを備えてよく、メモリには、方法を実施するための命令を含むコンピュータプログラムが記録されている。メモリは、データベースを記憶してもよい。メモリは、そのような記憶のために適合された任意のハードウェアであり、おそらくは、いくつかの物理的に異なる部分(たとえば、プログラムのためのもの、およびおそらくはデータベースのためのもの)を備える。システムは、CADシステムであってよい。
図1は、本明細書における任意のシステムのGUIの一例を示し、システムは、CADシステムである。
GUI2100は、典型的なCADのようなインターフェースであってよく、標準的なメニューバー2110、2120と、下部ツールバー2140および側部ツールバー2150とを有する。そのようなメニューバーおよびツールバーは、ユーザ選択可能なアイコンのセットを含み、各アイコンは、当技術分野で知られているように、1つまたは複数の操作または機能に関連付けられている。これらのアイコンのいくつかは、GUI2100内に表示された3Dモデル化オブジェクト2000を編集する、および/またはそれらに働きかけるために適合されたソフトウェアツールに関連付けられている。ソフトウェアツールは、ワークベンチにグループ化されてよい。各ワークベンチは、ソフトウェアツールのサブセットを含む。特に、ワークベンチの1つは、モデル化製品2000のジオメトリフィーチャを編集するのに適した編集ワークベンチである。操作時には、設計者は、たとえばオブジェクト2000の一部を予め選択し、次いで適切なアイコンを選択することによって操作を開始し(たとえば、寸法、色などを変更する)、またはジオメトリ制約を編集してよい。たとえば、典型的なCAD操作は、パンチングのモデル化、または画面上に表示された3Dモデル化オブジェクトの折り畳みである。GUIは、たとえば、表示された製品2000に関係するデータ2500を表示してよい。図の例では、「フィーチャツリー」として表示されたデータ2500、およびそれらの3D表現2000は、ブレーキキャリパおよびディスクを含むブレーキアセンブリに関する。さらに、GUIは、編集される製品の操作のシミュレーションをトリガするために、たとえばオブジェクトの3Dの向きを容易にするために様々なタイプのグラフィックツール2130、2070、2080を示し、または表示された製品2000の様々な属性をレンダリングしてよい。カーソル2060は、ユーザがグラフィックツールとインタラクションすることを可能にするようにハプティックデバイスによって制御されてよい。
3Dモデル化オブジェクト2000は、3D形状の離散的なジオメトリ表現のグラフィカル表現であってよく、推測方法は、編集可能フィーチャツリー2500の任意のソリッドCADフィーチャを決定することを可能にしてよい。したがって、推測方法は、CADシステムの2Dスケッチ機能に基づいて、編集可能フィーチャツリー2500を編集(たとえば、ソリッドCADフィーチャを追加)し、同時に3D形状の離散的なジオメトリ表現2000を更新することを可能にする。これは、高いエルゴノミクスをもたらす。
図2は、本明細書における任意のシステムの一例を示し、このシステムは、クライアントコンピュータシステム、たとえばユーザのワークステーションである。
この例のクライアントコンピュータは、内部通信バス1000に接続された中央処理ユニット(CPU)1010と、やはりバスに接続されたランダムアクセスメモリ(RAM)1070とを含む。クライアントコンピュータは、バスに接続されたビデオランダムアクセスメモリ1100に関連付けられているグラフィカル処理ユニット(GPU)1110をさらに備える。ビデオRAM1100は、当技術分野でフレームバッファとしても知られている。大容量記憶デバイスコントローラ1020は、ハードドライブ1030など大容量メモリデバイスへのアクセスを管理する。コンピュータプログラム命令およびデータを有形に実施するのに適した大容量メモリデバイスは、例として、EPROM、EEPROM、およびフラッシュメモリデバイス、内部ハードディスクおよび取外し式ディスクなど磁気ディスク、光磁気ディスク、ならびにCD-ROMディスク1040など、半導体メモリデバイスを含む、すべての形態の不揮発性メモリを含む。前述のいずれかは、特別に設計されたASIC(特定用途向け集積回路)によって補われても、それらに組み込まれてもよい。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。クライアントコンピュータは、カーソル制御デバイス、キーボードなど、ハプティックデバイス1090を含んでもよい。カーソル制御デバイスは、クライアントコンピュータ内で、ユーザがディスプレイ1080上の任意の所望の場所にカーソルを選択的に配置することを可能にするために使用される。さらに、カーソル制御デバイスは、ユーザが様々なコマンドを選択し、制御信号を入力することを可能にする。カーソル制御デバイスは、システムへの入力制御信号のためにいくつかの信号生成デバイスを含む。典型的には、カーソル制御デバイスはマウスであってよく、マウスのボタンは、信号を生成するために使用される。代替としてまたはそれに加えて、クライアントコンピュータシステムは、感応式パッドおよび/または感応式画面を備えてよい。
本明細書におけるコンピュータプログラムは、コンピュータによって実行可能な命令を含んでよく、これらの命令は、上記のシステムに本方法を実施させるための手段を含む。プログラムは、システムのメモリを含めて、任意のデータ記憶媒体に記憶可能であってよい。プログラムは、たとえば、デジタル電子回路内で、またはコンピュータハードウェア、ファームウェア、ソフトウェア内で、またはそれらの組合せで実装されてよい。プログラムは、装置、たとえばプログラム可能なプロセッサによって実行可能であるように機械可読記憶デバイス内で有形に実施される製品として実装されてよい。方法ステップは、命令のプログラムを実行し、入力データに作用し出力を生成することによって本方法の機能を実施するプログラム可能なプロセッサによって実施されてよい。したがって、プロセッサはプログラム可能であり、データ記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、それらにデータおよび命令を送信するように結合されてよい。アプリケーションプログラムは、上位手続き型またはオブジェクト指向プログラミング言語で、または望むならアセンブリまたは機械言語で実装されてよい。いずれの場合も、言語は、コンパイル型またはインタープリタ型言語であってよい。プログラムは、完全インストールプログラムまたは更新プログラムであってよい。システム上でプログラムを適用することは、いずれの場合も、本方法を実施するための命令をもたらす。
次に、曲線のそれぞれの(たとえば、閉じられている)シーケンスおよび/または(たとえば、スイープ曲線によって定義された)スイープ操作を含むソリッドCADフィーチャの上記で紹介されている例について、さらに論じられている。
データセット形成方法において生成される1つまたは複数の(たとえば、すべての)ソリッドCADフィーチャ、学習方法によって提供される1つまたは複数の(たとえば、すべての)(たとえば、候補)ソリッドCADフィーチャ、および/または推測方法によって提供される1つまたは複数の(たとえば、すべての)ソリッドCADフィーチャは、それぞれこれらの例に沿ったものでよい。
そのような例では、学習方法は、シーケンス曲線の候補セット、および/またはスイープ操作の候補セット、たとえばスイープ曲線の候補セット(たとえば、曲線の共通の候補セット)を提供することを含んでよく、学習は、曲線の候補セットおよび/またはスイープ操作の候補セットにさらに基づく。「候補セットを提供すること」は、学習方法、特に学習ステップが、前記候補セットの各要素を(少なくともいくつかの点において)推測の候補とみなす能力を与えられることを意味する。機械学習の分野から知られているように、学習ステップは、推測方法が学習方法に供給されるデータセットと一貫して推測を実施する傾向があるように、ニューラルネットワークの重み値を自由に設定することを含んでよい。また、「曲線/スイープ操作の候補セットを提供すること」は、候補セットの各要素が推測中に潜在的に推測されるように使用可能であるように、ニューラルネットワークアーキテクチャが予め決定され、学習ステップが実施されることを意味する。例では、候補セットの各要素は、各推測されるソリッドCADフィーチャのための候補である。特に、曲線の候補セットの各要素は、曲線のシーケンスの各推測される曲線のための候補であってよい。
曲線の候補セットおよび/またはスイープ操作の候補セットは、それぞれ曲線(あるいは、スイープ操作)の少なくとも1つの連続的なサブセットを含んでよい。「連続的」は、連続的な変形の各中間状態がそれ自体候補要素であるように、サブセットの各要素を、サブセットの別の要素の特定の連続的な変形(たとえば、固定された数のパラメータでパラメータ化されたもの)によって得ることができることを意味する。例では、各候補セットは、いくつかの連続的なサブセット(たとえば、曲線タイプ当たり1つ)を含む。これは、学習の精度を改善する。実際、要素の少なくとも1つの連続体がすべて、推測されるソリッドCADフィーチャの要素になるようにアクセス可能であるので、推測をそのような連続体内でうまく実施することができる。
次に、曲線のシーケンス(たとえば、平面的な2D曲線、すなわちシーケンス曲線)および/またはスイープ操作を定義する曲線(たとえば、スイープ曲線)の曲線の例について論じられている。含まれるデータ構造は、任意選択で、同じ各シーケンス曲線について、および/またはスイープ曲線について同じであってよい。
曲線タイプの離散セット、および各曲線タイプについてそれぞれがそれぞれの(たとえば、連続的な)パラメータのものである1つまたは複数のパラメータ領域のそれぞれの離散セットであって、各パラメータ領域がそれぞれの連続的なパラメータのそれぞれのパラメータ値を有する、離散セットを考えると、曲線は、1つまたは複数のパラメータ領域のそれぞれの離散セットのそれぞれについてそれぞれのパラメータ値を用いて、それぞれの曲線タイプによって形成されてよい。
したがって、データセット形成方法および/または学習方法は、曲線タイプのそのような離散セットに、および各曲線タイプについて、1つまたは複数のパラメータ領域のそのようなそれぞれの離散セットに基づいてよい。これらのセットは、データセット形成方法および学習方法について同じであっても異なってもよい。これらのセットが同じである場合、トレーニングサンプルの曲線が推測のための候補である曲線と一貫しているので、機械学習プロセスは、特に正確である。
いま、学習方法における曲線の候補セットは、曲線タイプの離散セット、および各曲線タイプについて、1つまたは複数のパラメータ領域のそれぞれの離散セットの間のセットプロダクトを含んでよい。セットプロダクトの各要素は、それぞれの候補シーケンス/スイープ曲線を表す。
データセット形成方法の場合、トレーニングサンプルの各シーケンス/スイープ曲線は、そのようなセットプロダクトに属してよい。例では、データセット形成方法は、曲線タイプの離散セット(を表すデータ)、および各曲線タイプについて、1つまたは複数のパラメータ領域のそれぞれの離散セット(を表すデータ)を含む初期データを提供することを含んでよい。そのような例では、シーケンス曲線および/またはスイープ曲線は、そのような初期データに基づいて生成(たとえば、合成)されてよい。
「曲線タイプ」は、曲線のクラス(たとえば、シーケンス曲線について2D平面的、スイープ曲線について3D)を意味し、各曲線が共通の一般的な(たとえば、ユーザにとってそのようなものとして認識可能な)形態をもたらす。曲線タイプは、パラメータと関連付けられる。各パラメータは、「パラメータ領域」と呼ばれるセット(これは間隔、すなわち実数の連続的な範囲であってよい)内の値をとり、各パラメータ領域についての特定のパラメータ値を提供することは、曲線タイプのインスタンスを定義する。曲線タイプは、1つまたは複数のパラメータのそれぞれのセット、およびそれぞれのセットについてパラメータ値が供給されたとき曲線タイプのそのような曲線インスタンスを生成するために構成された所定のアルゴリズムによって定義されてよい。前記インスタンスは、1つまたは複数のソリッドCADフィーチャ内に介在することができるシーケンス曲線またはスイープ曲線を形成する。
曲線タイプは、それぞれが1つまたは複数の連続的なパラメータに関連付けられてよい。パラメータについて「連続的」は、曲線を出力する機能がパラメータに対して少なくとも区分的に連続的であることを意味する。パラメータ領域は、少なくとも区分的に連続的であると言うこともできる。これは、非常に多様な形状のコンパクト表現を可能にする。
例では、1つまたは複数の曲線タイプのそれぞれについて、1つまたは複数のそれぞれの連続的なパラメータは、たとえば、曲線の開始点のためのポジショニングパラメータ、および曲線の終了点のためのポジショニングパラメータ、ならびに任意選択で、曲線タイプに依存する1つまたは複数の追加のパラメータ(たとえば、1つまたは複数の中間点ポジショニングパラメータおよび/または曲線のそれぞれの-たとえば境界-点において曲線をそれぞれが制約する1つまたは複数の接線ベクトルを含む)を含めて、先に記載のように1つまたは複数の形状パラメータを含む。ポジショニングパラメータは、すべての曲線タイプ、たとえば参照用の(0,X,Y,Z)に対して定義される(x,y,z)座標について同じであってよい。
特に効率的な例では、現実の状況の多様性の学習対代表性に対する計算時間および/または収束の点で、曲線タイプの離散セットは、ラインタイプ、円弧タイプ、および/またはキュービックエルミート補間セグメントタイプを含み、任意選択でラインタイプ、円弧タイプ、およびキュービックエルミート補間セグメントタイプからなってよい。曲線タイプの離散セットは、任意の他の曲線タイプを含んでよい。
本明細書において(たとえば、メモリ上で)提供されている任意の曲線は、曲線タイプを表すデータム(たとえば、テクスチャ情報)、および各パラメータについて、パラメータ値を表すそれぞれのデータム(たとえば、浮動小数点など値)を含むデータ構造として(たとえば、提供されるデータピース、トレーニングサンプル、および/または推測の出力内に)記録されてよい。本明細書において提供されている任意の曲線は、(たとえば、曲線をサブ曲線に分割し、および/または、たとえば曲線のそれぞれの部分について、たとえば2D曲線のためのsvgフォーマット下で、1つまたは複数のベジェ曲線および/またはスプライン曲線で曲線にアプローチすることによって)後処理され、たとえば表現され、レンダリングされ、および/またはベクトルのようにして表示されてよい。
次に、データセット形成方法の例について論じられている。
例では、それぞれのトレーニングサンプルを提供することは、データピースを合成することを含んでよい。ソリッドCADフィーチャおよび/またはフリーハンド描画(たとえば、トレーニングサンプル)を「合成すること」は、ソリッドCADフィーチャを生成すること、および/または少なくとも1つのそれぞれのフリーハンド描画(たとえば、ソリッドCADフィーチャによって表される3D形状を表す)を決定することを含む自動プロセスを意味する。
例では、データセット形成方法は、曲線タイプの離散セット、および各曲線タイプの場合、1つまたは複数のパラメータ領域のそれぞれの離散セットを含む初期データを提供することを含んでよい。これは、初期データが各曲線タイプについて、曲線タイプのパラメータに対応するフィールドと共にオブジェクトクラス(オブジェクト指向プログラミング参照)に対応するそれぞれのデータ構造を含むことを意味する。そのような場合、ソリッドCADフィーチャを合成することは、初期データに基づいて実施されてよい。たとえば、少なくとも1つのそれぞれのソリッドCADフィーチャを生成することは、初期データに基づいてソリッドCADフィーチャを合成することを含んでよい。合成することは、シーケンスの曲線の数を表す整数を生成すること、および初期データに基づいて、その整数に対応するシーケンス曲線の数を生成することを含んでよく、たとえば生成は、ソリッドCADフィーチャ定義の要件、たとえば各曲線が平面的である、および/または同じ平面内にあること、曲線が順次的である(すなわち、曲線の終了点が次の曲線の開始である)こと、および/またはシーケンスが閉じられている(すなわち、シーケンスが巡回的である)ことによって制約される。生成することは、初期データに基づいてスイープ曲線を生成することをさらに含んでよい。
特に、各シーケンス/スイープ曲線を生成することは、曲線タイプを選択すること、および曲線タイプの各パラメータについてパラメータ値を選択することを含んでよい。これは、所与のクラスのインスタンスを作成することに対応する。
ソリッドCADフィーチャを合成するとき実施される任意の選択は、(たとえば、ランダムな)サンプリングを介して実施されてよい。これは、現実の状況の多様性を比較的よく表すデータを生成することを可能にする。したがって、これは、最終的に正確な学習をもたらす。任意の(たとえば、ランダムな)サンプリングは、選択されることになる変数が値をとるセット内での均一な(たとえば、ランダムな)サンプリングを含んでよい(たとえば、ランダムな均一のサンプリングは、均一な確率分布に従ったランダムサンプリングである)。
たとえば、
- 曲線シーケンスの長さは、N1より高くN2未満のすべての整数のセット上の均一な分布に従ってサンプリングされてよく、N1は、0より高く、および/または5未満、たとえば1に等しい「最小深度」整数であり、N2は、N1より高く、および/または100、50、または20未満、たとえば10に等しい「最大深度」整数である。
- シーケンス/スイープ曲線タイプは、曲線タイプの離散セット上の均一な分布に従ってサンプリングされてよい。
- 各選択された曲線タイプのためのパラメータ値は、任意の手法でサンプリングされてよく、たとえばパラメータ領域は、それぞれが1つまたは複数の間隔(たとえば、各間隔が上限、たとえば浮動小数点、および下限、たとえば浮動小数点)と共に、たとえばシーケンス曲線のための要件に関して、直接または間接的に(たとえば、初期データ内で)提供される。
合成することは、各フリーハンドの、1つまたは複数の妥当なフリーハンド描画を決定するためのスキームを決定することをさらに含んでよい。
スキームは、それぞれの3D形状(合成されたソリッドCADフィーチャによって表される)が可視になる視点(すなわち、ソリッドCADフィーチャが定義される3D空間内の3D位置)を提供すること、および画像内で、その視点に基づいて1つまたは複数のエッジをレンダリングすることを含む。スキームは、任意選択で、パースペクティブを提供することを含み、または、パースペクティブは、予め決定されてもよい(たとえば、デフォルトの円錐パースペクティブ)。
視点は、任意の手法で提供、たとえば候補視点のセット、たとえば3D形状を囲む球のすべての点のセット内で(たとえば、ランダムにおよび/または均一に)サンプリングされてよい。
エッジは、3D形状のフリーハンド描画の妥当なストロークの場所を定義する。たとえば、ソリッドCADフィーチャに基づくそれぞれの3D形状のソリッド表現に対して(すなわち、ソリッドCADフィーチャを実行することに対応する)、各エッジは、視点からのソリッド表現の輪郭エッジまたは可視エッジであってよい。輪郭エッジおよび/または可視エッジは、視点に基づいて任意の手法で決定されてよい。
可視エッジは、例では、(視点に対して3D形状によってオクルードされていない)視点からアクセス可能な、また、ソリッド表現のCk不連続を有するソリッド表現上の曲線に対応する3D形状にある1つまたは複数の(たとえば、すべての)エッジとみなされてよい(したがって、おそらくは非平面的なエッジを含む)。kは、1以上の整数である。kは、任意選択で10または4未満であってよい。例では、スキームは、最大不連続値kmax(たとえば、kmax=2)を提供し、またはそれに基づくものであり、1以上kmax以下のkを有するソリッド表現の不連続Ck不連続を形成するすべてのエッジを計算することを含んでよい。これは、可視の接線不連続(すなわち、鋭いエッジ)および/または可視の曲率不連続を抽出することを可能にし、そのような不連続は、当然、フリーハンドスケッチによって表される。したがって、これは、データセットを現実的なデータでポピュレートすることを可能にする。
例では、各フリーハンド描画を決定することは、1つまたは複数のレンダリングされたエッジの少なくとも一部を摂動(perturbation)することをさらに含む。換言すれば、レンダリングされたエッジは、視点からレンダリングされた後、修正されてよい。これは、フリーハンドスケッチの不規則性を再現することを可能にし、一方、ソリッドCADフィーチャから開始するレンダリングは、非常に規則的なジオメトリを作り出す。したがって、これは、学習をより正確かつロバストにする。
先に述べたように、各エッジをレンダリングすることは、ベクトルのようにして実施されてよい。換言すれば、各エッジは、たとえば50、20、または10未満の制御点を有する1つまたは複数のそれぞれのパラメトリック曲線によって表されてよい。ベジェ曲線は、svgフォーマット下で、2D画像で表される。他のフォーマットが使用されてよい。そのような場合、摂動することは、少なくとも1つのそれぞれのパラメトリック曲線について、少なくとも1つのそれぞれのパラメトリック曲線の1つまたは複数のパラメータにノイズを追加することを含んでよい。たとえば、ノイズは、制御点を移動させてよい。これは、学習を特にロバストにする。
次に、学習方法の例について論じられている。
ニューラルネットワークは、例では、再帰型ニューラルネットワーク(RNN)セル(すなわち、同じRNNのセル)を含んでよい。そのような例は、正確なニューラルネットワークを学習し、したがって、正確な推測を実施することを可能にし、ニューラルネットワークは、推測されることになるソリッドCADフィーチャのジオメトリ形状(たとえば、曲線)のシーケンスの順次的な性質に対応する順次的なアーキテクチャを(RNNを介して)もたらす。
特に、各RNNセルは、それぞれの時間ステップで、ソリッドCADフィーチャのそれぞれのジオメトリ形状(たとえば、シーケンス曲線)を推測するためのそれぞれのデータを出力してよい。したがって、出力データは、それぞれの曲線を推測することを可能にする。曲線シーケンスの長さは、予め決定された任意の手法で推測されてよい。(たとえば、推測曲線シーケンスは、或る所与の長さを有する曲線シーケンスに制限されてよい)。あるいは、各RNNセルは、それぞれの時間ステップで、曲線シーケンスのための終了または継続の判断(すなわち、終了トークン)を推測するためのそれぞれのデータをさらに出力してよい。
次に、RNN出力の特に効率的な例について論じられている。
ソリッドCADフィーチャのそれぞれの曲線を推測するためのそれぞれのデータは、1つまたは複数のパラメータ領域のそれぞれの離散セットのそれぞれについて、それぞれの曲線タイプを推測するためのそれぞれの第1のデータと、それぞれのパラメータ値を推測するためのそれぞれの第2のデータとを含んでよい。
例では、それぞれの第1のデータは、曲線タイプの離散セットのそれぞれの1つにそれぞれが起因する確率のそれぞれの離散分布を含んでよい。換言すれば、各RNNセルは、曲線タイプにわたって確率の分布を出力し、その結果、確からしい曲線タイプが、それぞれの時間ステップに対応するシーケンス曲線のために推測されてよい。
代替としてまたはそれに加えて、例では、それぞれの第2のデータは、(各曲線タイプについて)1つまたは複数のパラメータ領域のそれぞれの離散セットのそれぞれのためのそれぞれのパラメータ値を含んでよい。換言すれば、RNNセルは、推測される曲線タイプのためのパラメータ値を直接出力する。これは、特に、パラメータが連続的であり、密度分布を出力するニューラルネットワークを学習することが困難であるとき、学習を単純化し、収束および精度を改善する。
同様に、ニューラルネットワークは、例では、ソリッドCADフィーチャのスイープ操作を推測するためのデータを出力する標準的なニューラルネットワーク(NN)部を含む。例では、ソリッドCADフィーチャのスイープ操作を推測するためのデータは、スイープ曲線タイプを推測するための第1のデータと、1つまたは複数のパラメータ領域のそれぞれの離散セットのそれぞれのためのパラメータ値を推測するための第2のデータとを含んでよい。
例では、それぞれの第1のデータは、曲線タイプの離散セットのそれぞれの1つにそれぞれが起因する確率のそれぞれの離散分布を含んでよい。換言すれば、NN部は、曲線タイプにわたって確率の分布を出力し、その結果、確からしい曲線タイプが、スイープ曲線のために推測されてよい。
代替としてまたはそれに加えて、例では、それぞれの第2のデータは、(各曲線タイプについて)1つまたは複数のパラメータ領域のそれぞれの離散セットのそれぞれのためのそれぞれのパラメータ値を含んでよい。換言すれば、NN部は、推測される曲線タイプのためのパラメータ値を直接出力する。これは、特に、パラメータが連続的であり、密度分布を出力するニューラルネットワークを学習することが困難であるとき、学習を単純化し、収束および精度を改善する。
次に、特に正確な結果をもたらすニューラルネットワークのアーキテクチャについて論じられている。
任意選択で、ニューラルネットワークは、入力としてフリーハンド描画(2D画像)をとる初期エンコーダを含んでよい。このエンコーダは、畳み込みニューラルネットワーク(CNN)であってよい。CNNは、2D CNNであり、入力として2D画像データをとってよい。
次に、正確な結果をもたらす監視ありトレーニングについての損失の例示的な特性について論じられている。
例では、損失は、シーケンス巡回置換および/または参照ベースのスケッチに対して不変であってよい。換言すれば、推測するための候補ソリッドCADフィーチャに関して、損失は、その曲線シーケンスの巡回置換に対して不変、および/または閉じられた2D平面的スケッチをスイープ操作の終わりにその画像によって置き換え、スイープ操作を逆行することに対して不変であってよい。そのような損失は、ソリッドCADフィーチャが同じ3D形状を生み出す場合に、おそらくは、また正しく異なるソリッドCADフィーチャを表すフリーハンド描画の場合を扱う。これは、重要なパラメータに対する学習を容易にし、不必要な情報を学習しなければならないことから学習方法を解放するので、学習の精度を改善する。
損失は、たとえばそれぞれがそれぞれの損失項を介して、1つまたは複数の量にペナルティを課してよい。ペナルティを課される量は、各シーケンス曲線に対応する時間ステップについて、およびスイープ曲線に対応するステップ(各フリーハンド描画は、ここではそれぞれのグラウンドトゥルースソリッドCADフィーチャに関連付けられる)について、以下の量のいずれか1つまたは任意の組合せを含んでよい。
- 対応するグラウンドトゥルース曲線のそれぞれの曲線タイプに起因するそれぞれのデータの確率の低さ
- グラウンドトゥルース曲線の1つまたは複数のそれぞれのパラメータ値と、その対応するそれぞれのデータの1つまたは複数のそれぞれのパラメータ値との相違、および/または
- (RNNセル時間ステップについてのみ)対応するグラウンドトゥルースの終了対継続状態に起因するそれぞれの確率(RNNセルによって出力された)の確率の低さ
換言すれば、監視ありトレーニングは、そのような損失を最小化することによって、各RNNセルおよびNN部によって出力されるそれぞれの確率を、対応するグラウンドトゥルース曲線タイプについて1(すなわち、低ではない)に近づけ、他の曲線タイプについて0(すなわち、低)に近づける、ならびに/または各RNNセルおよびNN部によって出力されるそれぞれの連続的なパラメータ値をそれらのグラウンドトゥルース値に近づける傾向となるように、ニューラルネットワークの重みに作用してよい。そのような損失は、問題の離散的/連続的な混合を正確に扱う。また、損失は、推測される曲線シーケンス長の、そのグラウンドトゥルース値との相違にペナルティを課す。
次に、正確な結果をもたらす監視なしトレーニングの一例について論じられており、それぞれの第1のデータは、曲線タイプの離散セットのそれぞれの1つにそれぞれが起因する確率のそれぞれの離散分布を含む。
知られているように、監視なしトレーニングは、損失を最小化する。この最小化することは、確率の候補のそれぞれの離散分布を探査することを含む。換言すれば、この最小化することは、確率の出力されるそれぞれの離散分布を探査し、それらをラベル付けされていないデータセット(各フリーハンド描画がグラウンドソリッドCADフィーチャに関連付けられていない)と一貫したものにするために、ニューラルネットワーク重みを反復的に修正する。或る場合には、確率の候補のそれぞれの離散分布の探査は、間接的であり、重みの直接探査の結果である。任意選択で、最小化することは、終了トークンについて確率の候補のそれぞれの離散分布を探査することをさらに含む。例では、最小化することは、1つまたは複数のパラメータ領域のそれぞれの離散セットのそれぞれについて候補のそれぞれのパラメータ値を探査することをさらに含む。
次に、損失は、データセットの各フリーハンド描画について、また各候補について、対応するフリーハンド描画との相違にペナルティを課す。対応するフリーハンド描画は、確率の探査された候補のそれぞれの離散分布に基づいてそれ自体推測可能なそれぞれのソリッドCADフィーチャから導出される。換言すれば、ニューラルネットワークの重み値(監視なしトレーニングの任意の反復において)が与えられると、ニューラルネットワークには、ソリッドCADフィーチャの推測を実施するためにラベル付けされていないデータセットのフリーハンド描画が入力されてよい。各推測されるソリッドCADフィーチャは、それ自体、フリーハンド描画において(ツリーをプレイし、結果のフリーハンド描画を決定することによって)導出することに基づいてよい。そのような導出されたフリーハンド描画は、初期の対応するデータセットのフリーハンド描画に比較されてよい。
例では、監視なしトレーニングは、少なくとも1つの(たとえば、各)フリーハンド描画のためのサンプリングステップを含んでよい。トレーニングは、ミニバッチを提供することを含んでよく、サンプリングは、各ミニバッチについて、ニューラルネットワークによって出力されるデータ(RNNによって出力される確率分布および連続的なパラメータ値を含む)に従うことによって、ミニバッチのフリーハンド描画当たりのソリッドCADフィーチャをサンプリングすることを含んでよい。次いで、サンプリングは、損失を計算し、これは、入力フリーハンド描画(またはその表現、たとえばレンダリング)とサンプリングされたソリッドCADフィーチャに対応するフリーハンド描画とを比較する(すなわち、それらの相違にペナルティを課す)。この損失は、サンプリングが確率的かつ離散的であるため、サンプリングに対して微分可能でない。したがって、変数に対する真の勾配の従来のバックプロパゲーションは、そのような真の勾配がないため、実施することができない。
監視なしトレーニングの提案されている例は、それぞれの第1のデータの候補のそれぞれの離散分布を表す変数に対して損失の疑似勾配、任意選択でジオメトリ操作にわたる候補のそれぞれの離散分布を表す変数に対する損失の疑似勾配、および/または終了トークン分布を表す変数に対する損失の疑似勾配を提供するための補強アプローチを使用することを提案する。次いで、最小化することは、ニューラルネットワークを学習するために、損失のそのような疑似勾配のバックプロパゲーション(たとえば、確率的降下)を含んでよい。疑似勾配は補強アプローチによって提供されるので、学習は、バックプロパゲーションが真の勾配の1つでない場合でさえ正確である。最小化することは、1つまたは複数のパラメータ領域のそれぞれの離散セットのそれぞれについてのそれぞれのパラメータ値に対する損失の(真の)勾配のバックプロパゲーションを含んでもよい(なぜなら、損失は、これらの変数に対して微分可能であるからである)。したがって、補強アプローチは、離散確率分布の導入によって生じる微分可能性問題を、またこの問題だけを解決する。
次に、本方法の例を含む例示的な機械学習プロセスについて論じられている。
再帰型ニューラルネットワーク
例示的な機械学習プロセスは、再帰型ニューラルネットワーク(RNN)に基づく。再帰型ニューラルネットワークは、内部メモリ状態を有するディープニューラルネットワークである。したがって、再帰型ニューラルネットワークは、フィードフォワードニューラルネットワークとは異なり、時間的挙動を示すことができる。これらは、次の結果を予測するために過去のエントリを暗黙に考慮する。これらは、
Figure 0007473335000001
Figure 0007473335000002
と書くことができ、yは出力、xは入力、hは、メモリとも呼ばれる初期の隠れ状態である。wは、RNNの重みである。メモリhは、すべての過去の入力をスタックするハードメモリではなく、RNNが過去のステップからの有用な情報だけ保つように学習するように、
Figure 0007473335000003
を通じて学習される固定サイズのベクトルである。
例示的な機械学習プロセスの目的
ソリッドのフリーハンド描画を与えられて、例示的な機械学習プロセスは、フリーハンド描画を表す妥当なソリッドCADフィーチャを得ることを目的とする。例示的な機械学習プロセスは、
- 閉じられた輪郭をもたらす平面的な曲線のシーケンスによって構成された閉じられた2D平面的スケッチと、
- それに続く、3D空間における2D平面的スケッチによって定義される閉じられたサーフェスをスイープすることによってソリッドを生成するスイープ操作とによって(によってのみ)、3D空間に対して定義されたソリッドCADフィーチャに注目する。すなわち、ソリッドは、閉じられたサーフェスが通過する体積によって定義される。
例示的な機械学習プロセスの原理
例示的な機械学習プロセスは、ソリッドのフリーハンドパースペクティブ描画を入力としてとり、エンドトゥエンドディープラーニングモデルによってソリッドCADフィーチャを作り出す。
1.最初に、描画のコンパクトな潜在表現が畳み込みニューラルネットワーク(CNN)によって生成される。
2.次いで、ソリッドCADフィーチャがこの潜在表現から2つのステップで推測される。
a.第1に、閉じられた2D平面的スケッチが再帰型ニューラルネットワーク(RNN)によって推測される。スケッチは、曲線のシーケンスによって定義される。RNNの各時間的ステップは、シーケンスの曲線に対応する。各時間ステップにおいて、それぞれのRNNセルは、曲線のタイプ(ライン、スプライン、円弧)、そのパラメータ、ならびに終了/継続トークン(シーケンスの最後の要素であるか否か)を推定する。
b.第2に、ニューラルネットワーク(NN)は、スイープを予測する。
グラウンドトゥルースソリッドCADフィーチャが使用可能であるとき、モデル全体(CNNエンコーダ、RNN、NN)がエンドトゥエンドで監視あり式にトレーニングされる。監視なしトレーニングのための他の場合には、推測されるジオメトリのレンダリングされた画像が生成され、モデル全体が最適化され、その結果、レンダリングされた画像は、入力フリーハンド描画に当てはまる。
例示的な機械学習プロセスの実装オプション
例示的な機械学習プロセスは、パラメトリック曲線のシーケンス、およびパラメトリックスイープ操作によって構成された任意のタイプの2D平面的スケッチに一般化することができる。
しかし、本考察は、2D平面的スケッチが、各曲線が
Figure 0007473335000004
によってインデックス付けされる、長さTiのパラメトリック曲線(パラメータxを有するcx(u),∀u∈[0,1])のシーケンスによって構成される、iによってインデックス付けされたサンプルを考えるだけである。あるいは、例示的な機械学習プロセスは、曲線(パラメータxを有するcx(u),∀u∈[0,1])に沿って2D平面的スケッチをスイープすることにあるスイープ操作を考えるだけである。2D平面的スケッチおよびスイープ操作のどちらについても、例示的な機械学習プロセスは、以下の曲線タイプを考える。
・Line(ライン):pstartおよびpendは、セグメントの2つの境界(すなわち、開始終了)点であるパラメータx=(pstart,pend)を有する直線ラインセグメント。
x(u)=pstart+(pend-pstart)u,∀u∈[0,1]
・Arc(円弧):pstart、pinter、およびpendを通るパラメータx=(pstart,pinter,pend)を有する円弧セグメント。pstartおよびpendは、セグメントの2つの境界点であり、pinterは、中間点である。完全を期すために、付録セクションは、3点からの円弧式を提供する。
・Cubic Hermite interpolated segment(キュービックエルミート補間セグメント)。pstartおよびpendがセグメントの2つの境界点であり、tstartおよびtendは、それぞれそれらの接線であるパラメータx=(pstart,tstart,pend,tend)を有するキュービックエルミート補間によって定義されるセグメント。
x(u)=(2u3-3u2+1)pstart+(u3-2u2+u)tstart+(-2u3+3u2)pend+(u3-u2)tend,∀u∈[0,1]
これらの曲線タイプを選択するための異なる理由は、以下を含む。
- これらの曲線のパラメータは、ユーザにとって意味のあるものである。その結果、得られたソリッドCADフィーチャは、容易に編集することができる。特に、キュービックエルミート補間は、設計(たとえば、Catmull-Romスプライン)において広く使用されている。
- これらは、多種多様な形状を表すことができる。さらに、形状をこれらの曲線のシーケンスによって表すことができない場合、そのようなシーケンスは、それに容易にアプローチすることができる(シーケンスの各曲線は、形状の領域に局所的にアプローチする)。
- そのような表現は、最も一般的なスイープ操作、すなわち押し出しおよび回転を容易に実装することをも可能にする。
例示的な機械学習プロセスのパイプラインオプション
例示的な機械学習プロセスパイプラインの主なステップは、以下である。
1.合成的ラベル付きデータセット(必要な場合)を生成する
2.モデルをエンドトゥエンドでトレーニングする(監視あり、ラベル付きデータを伴う)
3.モデルをエンドトゥエンドでトレーニングする(監視なし、ラベル付けされていないデータを伴う)
4.推測
例示的な機械学習プロセスは、モデルをトレーニングする2つの異なる手法を企図する。ラベル付きデータが使用可能である(またはステップ1で合成的に生成される)とき、モデルは、監視あり式にトレーニングされてよい。そのような場合の例では、モデルは、監視あり式でのみであってよく、および/またはステップ3が省略されてもよい。そのような場合の代替例では、モデルは、合成的データで事前トレーニングされた後、監視なし式でトレーニングされてよい。そのような場合の代替として、モデルは、監視なし式でのみトレーニングされてよい。
例示的な機械学習プロセスの説明
1.合成的ラベル付きデータセット(必要な場合)を生成する
例示的な機械学習プロセスは、ラベル付きデータセットを、ソリッドの実際のジオメトリを生成することができるソリッドCADフィーチャに関連付けられたソリッドのフリーハンド描画のセットとみなす。そのようなデータセットは、使用可能であることがまれである。ない場合、乱数発生器で合成的にそれを生成することができる。
a.ソリッドCADフィーチャ生成
最初に、ソリッドCADフィーチャが所与の分布からサンプリングされる。分布は、任意の後の適用を考慮してユーザによって設計されてよい。例示的な機械学習プロセスは、この分布のソリッドCADフィーチャを取り出すための学習に特化されることになる。
次に、以下は、N=10(Nは、任意の厳密に正の整数値であってよい)までの長さの曲線のシーケンス、および曲線に沿って2D平面的スケッチをスイープすることにあるスイープ操作によって構成された2D平面的スケッチを扱う一般的な分布の一例について記載している。各サンプリングされたソリッドCADフィーチャは、iによってインデックス付けされる。
2D平面的スケッチは、以下のようにサンプリングされる。
・ シーケンスTiの長さは、
Figure 0007473335000005
で均一にサンプリングされる。
Figure 0007473335000006
2つの実数値αtおよびrtが、それぞれ[0,2π[および]0,1]で均一にサンプリングされ、曲線タイプ
Figure 0007473335000007
が、可能な曲線タイプの中で均一に選ばれる。次いで、αtの値が、増大する値(
Figure 0007473335000008
)によって順序付けられる。図3は、単項の円(unary circle)によって表されるTi=3である、そのようなランダムサンプリングの一例を示す。
Figure 0007473335000009
について、規則Ti+1=0の場合、パラメータ
Figure 0007473335000010
を有するタイプ
Figure 0007473335000011
の曲線がインスタンス化される。パラメータは、以下のようにして選ばれる。
○曲線タイプ
Figure 0007473335000012
が何であれ、パラメータpstartおよびpendは、pstart(あるいはpend)が、αt(あるいはαt+1)ラジアンの軸
Figure 0007473335000013
に対する角度を有し、「グラウンド平面」上にある(原点および
Figure 0007473335000014
に対する法線を通過する)長さrt(あるいはrt+1)のベクトルであるように設定される。
Figure 0007473335000015
の場合、点μinterは、セグメント
Figure 0007473335000016
内で均一にサンプリングされる。追加のパラメータpinterは、ガウス分布N(μinter,Σ)からサンプリングされ、Σは、その非ゼロ要素が||pend-pstart||2に等しい対角行列であり、pinterの座標zは、それもまた「グラウンド平面」内にあるように0に設定される。
Figure 0007473335000017
の場合、2つの点μstartおよびμendは、セグメント
Figure 0007473335000018
内で均一にサンプリングされる。点pstart’およびpend’は、それぞれガウス分布N(μstart,Σ)およびN(μend,Σ)からサンプリングされ、Σは、その非ゼロ要素が||pend-pstart||2に等しい対角行列である。pstart’およびpend’のz座標は、両点が「グラウンド平面」内にあるように0に設定される。最後に、tstartおよびtendは、tstart=pstart’-pstartおよびtend=pend’-pendに設定される。
○インスタンス化された曲線が、それ自体、または以前のインスタンス化された曲線の1つと交差する場合、プロセスは、そうでなくなるまで繰り返される。ある回数、たとえば10回の試行後、依然としていくつかの交点がある場合、サンプル全体が最初から再生成される。
図4は、
Figure 0007473335000019
Figure 0007473335000020
、および
Figure 0007473335000021
である図3の例を示す。
スイープ操作は、以下のようにサンプリングされる。
・曲線タイプは、可能な曲線タイプの中で均一に選ばれる。
・パラメータ
Figure 0007473335000022
を有するタイプsiの曲線がインスタンス化される。パラメータは、以下のようにして選ばれる。
○曲線タイプsiが何であれ、パラメータpstartは、原点で設定される。pendパラメータは、[-0.5,0.5]×[-0.5,0.5]×[0.1,1.0]において均一にサンプリングされる。
○曲線タイプsiに応じて、残りのパラメータが、2D平面的スケッチの曲線の場合と同じようにして、しかしそれらを強制的に「グラウンド平面」内にあるようにすることなしにサンプリングされる。
図5は、si=Cubic Hermite interpolated segmentである図4と同じ例を示す。
この一般的な分布は、ソリッドCADフィーチャの特定のタイプを生成するために特化させることができる。以下は、異なる種類のソリッドを生成するために適用されることになるいくつかの制限を提供する。
・規則的な直角柱
○このタイプの曲線は、Line曲線タイプ(
Figure 0007473335000023
およびsi=Line)に制限される。
○シーケンスTiの長さは、
Figure 0007473335000024
の代わりに
Figure 0007473335000025
で均一にサンプリングされる。
○ラインセグメントの境界点は、単項の円(
Figure 0007473335000026
我々は、rt=1および
Figure 0007473335000027
を設定する)で規則的に分布する。
○スイープラインは、垂直になるように設定される(スイープ曲線のpendパラメータは、{0}×{0}×[0.1,1.0]で均一にサンプリングされる)。
・円柱
○2D平面的スケッチは、単項の円を形成する円弧によって構成される。曲線のタイプは、2D平面的スケッチのためのArc曲線タイプに制限され(
Figure 0007473335000028
)、それらのパラメータは、それらの制御点-円弧パラメータによって定義される-が単項の円内にあるように選ばれる)。
○スイープ操作曲線のタイプは、Line曲線タイプ(si=Line)に制限される。
○スイープラインは、垂直になるように設定される(スイープ曲線のpendパラメータは、{0}×{0}×[0.1,1.0]で均一にサンプリングされる)。
ソリッドCADフィーチャSCFiは、例示的な機械学習プロセスでは、異なる曲線タイプおよびそれらのパラメータによって完全に定義されてよい。
Figure 0007473335000029
すべてのソリッドCADフィーチャが同様のサイズを有するようにするために(これは、学習プロセスをより容易にする)、それらは、それらのバウンディングボックスの最大サイズが1に等しく、中心合わせされる(それらのバウンディングボックスの中心が原点にある)ように再サイズ設定されてよい。
b.トレーニングサンプル生成
次いで、各ソリッドCADフィーチャについて、1つまたは複数の視点が、原点にて中心合わせされた球で均一にサンプリングされる。球の半径は、ソリッドCADフィーチャ全体がこの位置からレンダリングされ原点を見る画像において可視であるように選ばれてよい。
我々は、エッジを生成されたソリッドのCk不連続として定義する。各サンプルについて、我々は、k=1(接線不連続、鋭いエッジ)またはk=2(曲率不連続、たとえば平面的なサーフェスと円筒形のサーフェスとの間のエッジ)をランダムに選ぶ。
次いで、ソリッドCADフィーチャの輪郭および可視のエッジは、画像Iiにおいて、サンプリングされた視点からレンダリングされ、原点を見ていてよい。
最後に、レンダリングされた画像Iiを、そのパラメータが視点座標フレーム内で以前に表されているその対応するソリッドCADフィーチャSCFiに関連付けることによって、トレーニングサンプルiが生成される。
図6は、C1不連続をエッジとして使用するソリッドCADフィーチャのレンダリングされた画像を示す。図7は、C2不連続をエッジとして使用する同じソリッドCADフィーチャのレンダリングされた画像を示す。図8は、図5に表されたソリッドCADフィーチャのレンダリングされた画像を示す。この場合、あらゆるC2不連続は、C1不連続でもあり、すなわちC1不連続またはC2不連続をエッジとして使用してレンダリングすることは、同じ結果を提供することになる。
c.サンプル摂動
最後に、レンダリングされたエッジおよび輪郭は、フリーハンドストロークを真似るために乱されてよい。
例示的な機械学習プロセスは、下記の任意選択の方策に従う。
・輪郭およびエッジは、svgフォーマットなどベクトルのようにして事前にレンダリングされる(すなわち、各レンダリングされたセグメントは、パラメトリック曲線に対応する)。
・各曲線は、任意の数の曲線(たとえば、ベジェ曲線)に分割される。
・ガウスノイズが曲線の各パラメータに追加される。
図9は、図8に示されているレンダリングの摂動画像を示す。図10は、ソリッドCADフィーチャレンダリングの別の例(規則的な直角柱を表す)を示す。図11は、図10のレンダリングの摂動画像を示す。
2.モデルをエンドトゥエンドでトレーニングする(監視あり、ラベル付きデータを伴う)
モデルをトレーニングするために、例示的な機械学習プロセスは、サイズNのデータセットを考える。iによってインデックス付けされたデータセットの各サンプルは、フリーハンド描画画像
Figure 0007473335000030
、2Dベースのスケッチ曲線シーケンス、スイープ操作
Figure 0007473335000031
、およびその関連のパラメータ
Figure 0007473335000032
によって構成される。
Figure 0007473335000033
をi番目の2Dベースのスケッチ曲線シーケンスの長さとする。各曲線シーケンスは、曲線タイプのシーケンス
Figure 0007473335000034
として書かれる。各曲線
Figure 0007473335000035
について、
Figure 0007473335000036
をそのパラメータとする。
モデル定義
モデルは、入力として、フリーハンド描画(合成的またはそうでないもの)
Figure 0007473335000037
を表す単一のチャネル画像をとる。この画像は、CNNによってフィーチャベクトル
Figure 0007473335000038
として符号化され、wは、モデルの重みである。
RNNは、2Dベースのスケッチを推定する。各RNNセルは、各時間ステップtで、曲線の可能なタイプにわたる離散分布pt、ならびに、スケッチが終わりかどうか示す終了/継続トークンにわたるベルヌーイ分布qtを出力する。また、各セルは、各時間ステップtで各曲線タイプcおよび状態ベクトルhtについて、予測される連続的なパラメータ
Figure 0007473335000039
を出力する。
各RNNセルは、入力として以下の要素をとる。
・フィーチャベクトル
Figure 0007473335000040
・h0=0で以前のセルht-1によって出力された状態ベクトル
・任意選択で、以前のRNNセルおよび/またはそれらの推定パラメータ
Figure 0007473335000041
によって予測された推定分布
Figure 0007473335000042
からサンプリングされる1つまたはいくつかの曲線タイプ
Figure 0007473335000043
より具体的には、各RNNセル式は、以下のように書かれてよい。
Figure 0007473335000044
我々は、
Figure 0007473335000045
入力が最適化されることを想起する。
次いで、標準的なNNは、スイープ操作の可能なタイプ、ならびに各スイープ操作タイプsについての連続的なパラメータysにわたって離散分布rを出力する。それは、以下を入力としてとる。
・フィーチャベクトル
Figure 0007473335000046
・最後のセル
Figure 0007473335000047
によって出力された状態ベクトル
・任意選択で、以前のRNNセルおよび/またはそれらの推定パラメータ
Figure 0007473335000048
によって予測された推定分布
Figure 0007473335000049
からサンプリングされる1つまたはいくつかの曲線タイプ
Figure 0007473335000050
図12は、例示的な機械学習プロセスにおいてもたらされるモデルの一例のパイプラインを示す。RNNセルおよび/またはNNは、上述のように異なる入力をとってよい。
損失定義
簡単にするために、我々は、今後、推定分布およびパラメータを入力画像
Figure 0007473335000051
の関数として示すことにするが、それらは、上述のように他の変数に依存してよい。
我々は、曲線およびスイープ操作タイプ予測誤差にペナルティを課す損失を定義する。
Figure 0007473335000052
同様に、我々は、強制的に曲線シーケンスが正しい長さを有するように損失を定義する。
Figure 0007473335000053
我々は、予測された曲線およびスイープ操作パラメータに対する二乗誤差にペナルティを課す損失をも定義する。
Figure 0007473335000054
最後に、ネットワークの重みをトレーニングするために我々が最小化する損失(ミニバッチにわたってADAMソルバなど標準的なディープラーニング技法を使用する)は、以下のとおりである。
sup(w)=Ltype(w)+Llength(w)+λLparameters(w) (式4)
ただし、λは重みパラメータである。それを、たとえば
Figure 0007473335000055
のように初期化することができ、ただし、w0は、ニューラルネットワークのランダムに初期化された重みである。
log(交差エントロピー項)以外の任意の低さペナルティ機能が、Ltype(w)およびLlength(w)のいずれかに使用されてよく、ならびに/またはL2距離以外の任意の距離d、および/または二乗機能以外の任意の増大する、および/または正のincr機能が、Lparameters(w)に使用されてよい。
損失修正:シーケンス巡回置換に対して不変にする
2つの曲線シーケンスは、一方が他方の巡回置換である、すなわち同じシーケンスであるが異なる点で開始する場合、等価である(同じ2Dベースのスケッチを生成する)。その結果、トレーニング中、例示的な機械学習プロセスのモデルは、正確な2Dベースのスケッチを生成するが、予測がグラウンドトゥルースの巡回置換であるので高い損失をもたらす曲線シーケンス分布を予測することがある。この問題を回避するために、我々は、式(式1)および(式3)内の損失を巡回置換に対して不変になるように修正する。
Figure 0007473335000056
Figure 0007473335000057
損失修正:参照ベースのスケッチに対して不変にする
同等に2つのソリッドCADフィーチャが同じジオメトリ上に生じることがある。実際、第2の2D平面的サーフェスが、スイープ操作の端部境界に形成されることになる。その結果、この第2のサーフェスの2D平面的スケッチおよび元のスイープ操作に従うが逆であるスイープ操作によって定義されるソリッドCADフィーチャが、同じソリッド内にもたらされることになる。
Figure 0007473335000058
によって定義される所与のソリッドCADフィーチャについて、我々は、その等価なソリッドCADフィーチャ
Figure 0007473335000059
を示す。我々は、式(式6)によって定義される損失を、単一のソリッドのフィーチャ表現に対して不変になるように修正する。
Figure 0007473335000060
3.モデルをエンドトゥエンドでトレーニングする(監視なし、ラベル付けされていないデータを伴う)
モデルは、微調整される、または実データで最初から(すなわち、ステップ2を省略する)トレーニングされる可能性がある。
モデルアーキテクチャは、ほぼ変更されない(ステップ2参照)。
各反復において、ソリッドCADフィーチャが入力描画
Figure 0007473335000061
によって条件付けられた推定分布からサンプリングされ、モデルによって予測されたパラメータでインスタンス化される。予測パラメータのいくつかが、閉じられた2Dベースのスケッチを確実にするために修正される(すなわち、シーケンスの曲線の終点は、次の曲線の開始点と一致していなければならない)。例示的な機械学習プロセスでは、我々は、強制的に
Figure 0007473335000062
Figure 0007473335000063
に等しくなるようにする。シーケンスの最初の曲線の開始点および最後の曲線の終点の特定の場合、この場合には、我々は、強制的に
Figure 0007473335000064
Figure 0007473335000065
に等しくなるようにする。
我々は、Tiをサンプリングされたスケッチシーケンス(終了トークンがqtからサンプリングされる最小のt)の長さ、
Figure 0007473335000066
をサンプリングされた曲線、およびsiをサンプリングスイープ操作と示す。
得られたジオメトリの可視エッジは、画像Iiにおける固定された任意のカメラ姿勢でレンダリングされる。レンダリングプロセスは、ソリッドCADフィーチャとその得られるレンダリング後のビューIiとの間のマッピングとして見ることができる。このマッピングの差は、有限差分で計算される。
ステップ2において定義された損失を使用する代わりに、我々は、入力描画を得られたレンダリング後の画像に比較する損失を定義する。そのような損失の例は、以下であってよい。
Figure 0007473335000067
ただし、dは、Ii
Figure 0007473335000068
との間の類似度尺度である。たとえば、我々は、
Figure 0007473335000069
の非背景ピクセルに対するIiにおけるレンダリング後のエッジのChamfer(面取り)距離(または逆)を使用することができる。
この損失を最小化することにより、我々は、サンプリングのためだけに使用される離散分布p、q、rを除いて、ネットワークの重みを最適化することができる。例示的な機械学習プロセスは、これらの分布に対して損失の勾配をバックプロパゲーションしてよい。例示的な機械学習プロセスは、離散分布p、q、rについてそのような勾配を得るために、補強アルゴリズムを使用してよい。補強アルゴリズムは、これらの離散分布に制限され、したがって、監視なし学習は、他の変数について真の勾配を得てよい。これは、近似を制限し、それにより精度に影響を及ぼす。
補強アルゴリズムは、非特許文献10に記載のREINFORCEアルゴリズムであってよい。
これは、以下の勾配式を提供する。
Figure 0007473335000070
Figure 0007473335000071
Figure 0007473335000072
ただし、ρは、最小のサイズについて最大の表現度を有するようにスケッチシーケンスを促すための追加のスパーシティリワード(sparsity reward)であり、bは、推定勾配の分散を低減するために使用されるベースラインであり、過去の損失の移動平均として計算される。
4.推測
モデルが学習された後で、推測は簡単なものであってよい。ユーザは、新しいフリーハンド描画を確立し、それをモデルに供給してよい。次いで、最も確からしい(推測された分布に従って)ソリッドCADフィーチャが生成されてよい。そうでない場合、いくつかの妥当なソリューションが、推測された分布からサンプリングによって計算されてよい。予測パラメータのいくつかは、閉じられた2Dベースのスケッチを確実にするために修正される(すなわち、シーケンスの曲線の終点は、次の曲線の開始点と一致していなければならない)。一実装では、プロセスは、強制的に
Figure 0007473335000073
Figure 0007473335000074
に等しくなるようにする。シーケンスの最初の曲線の開始点および最後の曲線の終点の特定の場合、この場合には、プロセスは、強制的に
Figure 0007473335000075
Figure 0007473335000076
に等しくなるようにする。
論じられている例示的な機械学習プロセスは、スイープされた2Dスケッチによって作り出されたいくつかの妥当なソリッドCADフィーチャ、またはジオメトリを提案することを可能にしてよい(CADフィーチャは、隠されてよい)。例示的な機械学習プロセスの予測は、ノイズに対してロバストである。
付録:3点からの円弧式
start、pinter、およびpendを空間内の3点とする。我々は、以下のように定義する。
○これらの点pstart、pinter、およびpendを通る平面Π
○Πに属する3次元の点を平面Πの局所2次元座標系における2次元の点に変換する適用
Figure 0007473335000077
○平面Πの局所座標系における2次元の点を、対応する3次元の点に変換する適用
Figure 0007473335000078
Figure 0007473335000079
Figure 0007473335000080
および
Figure 0007473335000081
次いで、pstart、pinter、およびpendを通る円弧セグメントは、
Figure 0007473335000082
、∀u∈[0,1]によって定義される。
ただし、
Figure 0007473335000083
および
Figure 0007473335000084
Figure 0007473335000085
最後に、我々は、θstart、θinter、およびθendをそれぞれ、軸
Figure 0007473335000086
に関するベクトル
Figure 0007473335000087
Figure 0007473335000088
および
Figure 0007473335000089
と示す。
○θstart<θinter<θendの場合には、α=θstartおよびβ=θend
○θstart<θend<θinterまたはθinter<θstart<θendの場合には、α=θendおよびβ=θstart+2π
○θinter<θend<θstartまたはθend<θstart<θinterの場合には、α=θstartおよびβ=θend+2π
○θend<θinter<θstartの場合には、α=θendおよびβ=θstart

Claims (14)

  1. 3D形状を表すフリーハンド描画から、前記3D形状を表すソリッドCADフィーチャの推測をするために構成されたニューラルネットワークを学習するためのコンピュータ実施方法であって、
    それぞれの3D形状を各々が表すフリーハンド描画を含むデータセットを提供するステップと、
    前記データセットに基づいて前記ニューラルネットワークを学習するステップと
    を含み、
    前記ソリッドCADフィーチャは、曲線のそれぞれのシーケンスを含むことを特徴とする、
    方法。
  2. 該方法は、曲線の候補セットを提供するステップをさらに含み、前記学習するステップは、曲線の前記候補セットにさらに基づくことを特徴とする請求項1に記載の方法。
  3. 前記ニューラルネットワークは、再帰型ニューラルネットワーク(RNN)セルを含み、各RNNセルは、それぞれの時間ステップ(t)で、ソリッドCADフィーチャのそれぞれの曲線の推測をするためのそれぞれのデータを出力することを特徴とする請求項2に記載の方法。
  4. 前記曲線の候補セットは、
    曲線タイプの離散セットと、
    各曲線タイプについて、各々がそれぞれのパラメータである1つまたは複数のパラメータ領域のそれぞれの離散セットとの間のセットプロダクトを含み、各パラメータ領域は、前記それぞれのパラメータのそれぞれのパラメータ値を有し、
    各曲線タイプは、1つまたは複数のパラメータ領域の前記それぞれの離散セットの各々についてそれぞれのパラメータ値を用いて、前記曲線の候補セットのそれぞれの要素を形成し、任意選択で、
    前記ソリッドCADフィーチャのそれぞれの曲線の推測をするための前記それぞれのデータは、それぞれの曲線タイプの推測をするためのそれぞれの第1のデータと、1つまたは複数のパラメータ領域の前記それぞれの離散セットの各々についてそれぞれのパラメータ値の推測をするためのそれぞれの第2のデータとを含むことを特徴とする請求項3に記載の方法。
  5. 1つまたは複数の以前のRNNセルを有する各RNNセルは、前記1つまたは複数の以前のRNNセルによって出力された前記それぞれのデータから推測可能な情報を入力としてとることを特徴とする請求項3または4に記載の方法。
  6. 前記ソリッドCADフィーチャは、スイープ操作を含み、当該方法は、スイープ操作の候補セットを提供するステップをさらに含み、前記学習するステップは、スイープ操作の前記候補セットにさらに基づくことを特徴とする請求項1ないし5のいずれか1つに記載の方法。
  7. 前記ニューラルネットワークは、前記ソリッドCADフィーチャの前記スイープ操作の推測をするためのデータを出力するニューラルネットワーク部を含むことを特徴とする請求項6に記載の方法。
  8. 前記スイープ操作の候補セットは、
    スイープ曲線タイプの離散セットと、
    各スイープ曲線タイプについて、各々がそれぞれのパラメータである1つまたは複数のパラメータ領域のそれぞれの離散セットとの間のセットプロダクトを含み、各パラメータ領域は、前記それぞれのパラメータのそれぞれのパラメータ値を有し、
    各スイープ曲線タイプは、1つまたは複数のパラメータ領域の前記それぞれの離散セットの各々についてそれぞれのパラメータ値を用いて、前記スイープ操作の候補セットのそれぞれの要素を形成し、任意選択で、
    前記ソリッドCADフィーチャの前記スイープ操作の推測をするための前記データは、スイープ曲線タイプの推測をするための第1のデータと、1つまたは複数のパラメータ領域の前記それぞれの離散セットの各々についてパラメータ値の推測をするための第2のデータとを含むことを特徴とする請求項7に記載の方法。
  9. 前記ニューラルネットワークは、前記フリーハンド描画を表す画像を符号化する畳み込みニューラルネットワーク(CNN)を含むことを特徴とする請求項1ないし8のいずれか1つに記載の方法。
  10. 前記データセットは、1つまたは複数のフリーハンド描画の各々について、前記フリーハンド描画に関係する、前記3D形状を表すそれぞれのソリッドCADフィーチャをさらに含み、前記学習するステップは、損失Lsupを最小化することを含む監視トレーニングを含み、前記損失Lsupは、任意選択で、
    各ソリッドCADフィーチャが曲線のそれぞれのシーケンスを含む、シーケンス巡回置換、および/または
    各ソリッドCADフィーチャがスイープ操作を含む、参照ベースのスケッチ
    に対して不変であり、ならびに/または、
    前記学習するステップは、損失Lunsupを最小化することを含む、非監視トレーニングを含み、前記損失Lunsupは、フリーハンド描画について、それぞれの推測可能なソリッドCADフィーチャから導出されたレンダリングとの相違にペナルティを課し、前記ニューラルネットワークは、任意選択で、確率の1つまたは複数の離散分布を出力し、前記最小化することは、各々が確率のそれぞれの離散分布を表す1つまたは複数の変数に関する前記損失Lunsupの勾配のバックプロパゲーションを含み、前記勾配は、補強アルゴリズムで得られることを特徴とする請求項1ないし9のいずれか1つに記載の方法。
  11. 請求項1ないし10のいずれか1つに記載の方法に従って学習可能なニューラルネットワークを表すデータ構造の使用のためのコンピュータ実施方法であって、
    3D形状を表すフリーハンド描画を提供するステップと、
    前記ニューラルネットワークを前記フリーハンド描画に適用するステップと、
    前記適用するステップの結果に基づいて、前記3D形状を表すソリッドCADフィーチャを推測するステップと
    を含むことを特徴とする方法。
  12. 請求項1ないし10のいずれか1つに記載の方法を実施するための命令を含むことを特徴とするコンピュータプログラム。
  13. 求項12に記載のプログラムが記録されたデータ記憶媒体を備えたことを特徴とするデバイス。
  14. 前記データ記憶媒体に結合されたプロセッサをさらに備えたことを特徴とする請求項13に記載のデバイス。
JP2019237149A 2018-12-29 2019-12-26 ソリッドcadフィーチャを推測するためのニューラルネットワークの学習 Active JP7473335B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP18306886.5 2018-12-29
EP18306886.5A EP3675062A1 (en) 2018-12-29 2018-12-29 Learning a neural network for inference of solid cad features

Publications (2)

Publication Number Publication Date
JP2020109661A JP2020109661A (ja) 2020-07-16
JP7473335B2 true JP7473335B2 (ja) 2024-04-23

Family

ID=65200561

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019237149A Active JP7473335B2 (ja) 2018-12-29 2019-12-26 ソリッドcadフィーチャを推測するためのニューラルネットワークの学習

Country Status (4)

Country Link
US (1) US20200210845A1 (ja)
EP (1) EP3675062A1 (ja)
JP (1) JP7473335B2 (ja)
CN (1) CN111382530A (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3671660A1 (en) * 2018-12-20 2020-06-24 Dassault Systèmes Designing a 3d modeled object via user-interaction
EP3675063A1 (en) * 2018-12-29 2020-07-01 Dassault Systèmes Forming a dataset for inference of solid cad features
EP3674984B1 (en) * 2018-12-29 2024-05-15 Dassault Systèmes Set of neural networks
EP3958162A1 (en) 2020-08-20 2022-02-23 Dassault Systèmes Neural network for outputting a parameterized 3d model
EP3958182A1 (en) 2020-08-20 2022-02-23 Dassault Systèmes Variational auto-encoder for outputting a 3d model
JP2023548654A (ja) * 2020-10-08 2023-11-20 ナイキ イノベイト シーブイ 履き物デジタルアセットを生成するためのコンピュータアーキテクチャ
WO2023128027A1 (ko) 2021-12-30 2023-07-06 주식회사 리콘랩스 비정형 스케치 기반 3차원 모델링 방법 및 시스템
DE102022108379A1 (de) 2022-04-07 2023-10-12 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Verfahren, System und Computerprogrammprodukt zum optimierten Konstruieren und/oder Designen einer technischen Komponente
EP4266257A1 (en) * 2022-04-21 2023-10-25 Dassault Systèmes 3d reconstruction from images
US12056799B2 (en) * 2022-04-28 2024-08-06 Dassault Systemes Solidworks Corporation Converting images to sketches that are modifiable using computer-aided design (CAD) software
DE102022113702A1 (de) 2022-05-31 2023-11-30 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Verfahren, System und Computerprogrammprodukt zum autonomen intuitiven Konstruieren eines technischen Bauteils für eine Entität

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150193972A1 (en) 2013-10-17 2015-07-09 Cherif Atia Algreatly Method of 3d modeling
JP2017142780A (ja) 2015-12-07 2017-08-17 ダッソー システムズDassault Systemes 二次元画像からの三次元モデル化オブジェクトの認識

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0896138A (ja) * 1994-09-20 1996-04-12 Just Syst Corp 形状認識装置
JPH08335279A (ja) * 1995-06-08 1996-12-17 Olympus Optical Co Ltd 設計支援システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150193972A1 (en) 2013-10-17 2015-07-09 Cherif Atia Algreatly Method of 3d modeling
JP2017142780A (ja) 2015-12-07 2017-08-17 ダッソー システムズDassault Systemes 二次元画像からの三次元モデル化オブジェクトの認識

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DELANOY,Johanna,et al.,3D Sketching using Multi-View Deep Volumetric Prediction,ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY,米国,2017年07月26日,pp.1-15

Also Published As

Publication number Publication date
CN111382530A (zh) 2020-07-07
EP3675062A1 (en) 2020-07-01
JP2020109661A (ja) 2020-07-16
US20200210845A1 (en) 2020-07-02

Similar Documents

Publication Publication Date Title
JP7473335B2 (ja) ソリッドcadフィーチャを推測するためのニューラルネットワークの学習
JP7473336B2 (ja) ソリッドcadフィーチャを推測するためのニューラルネットワークの学習
EP3674983B1 (en) Machine-learning for 3d modeled object inference
JP7491685B2 (ja) ニューラルネットワークのセット
JP7509537B2 (ja) 編集可能なフィーチャツリーの推測のためのデータ集合を形成すること
US11869147B2 (en) Neural network for outputting a parameterized 3D model
US11436795B2 (en) Learning a neural network for inference of editable feature trees
US12002157B2 (en) Variational auto-encoder for outputting a 3D model
EP3671660A1 (en) Designing a 3d modeled object via user-interaction
US11893687B2 (en) Segmenting a 3D modeled object representing a mechanical assembly
CN113205609A (zh) 变形基础学习
CN113378448A (zh) 确定3d建模对象变形
US20230342507A1 (en) 3d reconstruction from images

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240312

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240411

R150 Certificate of patent or registration of utility model

Ref document number: 7473335

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150