(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022036024
(43)【公開日】2022-03-04
(54)【発明の名称】パラメータ化された3Dモデルを出力するニューラルネットワーク
(51)【国際特許分類】
G06F 30/27 20200101AFI20220225BHJP
G06F 30/12 20200101ALI20220225BHJP
G06N 3/08 20060101ALI20220225BHJP
【FI】
G06F30/27
G06F30/12
G06N3/08
【審査請求】未請求
【請求項の数】14
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2021131066
(22)【出願日】2021-08-11
(31)【優先権主張番号】20305939.9
(32)【優先日】2020-08-20
(33)【優先権主張国・地域又は機関】EP
(71)【出願人】
【識別番号】500102435
【氏名又は名称】ダッソー システムズ
【氏名又は名称原語表記】DASSAULT SYSTEMES
(74)【代理人】
【識別番号】110001243
【氏名又は名称】特許業務法人 谷・阿部特許事務所
(72)【発明者】
【氏名】ニコラ ベルトラン
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146DC03
5B146EA01
5B146EA06
5B146EA15
5B146EC04
(57)【要約】
【課題】本発明は、機械学習のコンピュータによって実行される方法に関連する。
【解決手段】方法は、2Dスケッチを入力として見なし、2Dスケッチによって表される3Dモデルを出力するように構成されたニューラルネットワークについてのアーキテクチャを設けるステップを含む。3Dモデルは、1つまたは複数のパラメータの第1のサブセットおよび1つまたは複数のパラメータの第2のサブセットから構成されたパラメータのセットによって定義されたパラメータ化された3Dモデルである。ニューラルネットワークは、選択的に、セットについての値を出力し、ユーザからの第1のサブセットについての値を入力として見なし、第2のサブセットについての値を出力する、ように構成されている。機械学習の方法はまた、ニューラルネットワークを学習するステップを含む。
【選択図】
図7
【特許請求の範囲】
【請求項1】
機械学習のコンピュータによって実行される方法であって、
-2Dスケッチを入力として見なし、前記2Dスケッチによって表される3Dモデルを出力するように構成されたニューラルネットワークについてのアーキテクチャを設けるステップであって、前記3Dモデルは、1つまたは複数のパラメータの第1のサブセットおよび1つまたは複数のパラメータの第2のサブセットから構成されたパラメータのセットによって定義されたパラメータ化された3Dモデルであり、前記ニューラルネットワークは、選択的に、
-前記セットについての値を出力し、
-ユーザからの前記第1のサブセットについての値を入力として見なし、前記第2のサブセットについての値を出力する、ように構成されている、ステップと、
-前記ニューラルネットワークを学習するステップと、
を備えたことを特徴とする方法。
【請求項2】
前記アーキテクチャは、データ片を含み、前記ニューラルネットワークは、
-前記セットについての値を選択的に出力するために、前記データ片についての第1の値を生成し、前記データ片についての前記第1の値に基づいて前記第1のサブセットについての前記値を判定し、更に、前記データ片についての前記第1の値に基づいて前記第2のサブセットについての前記値を判定し、
-選択的に、前記ユーザからの前記第1のサブセットについての前記値を入力として見なし、前記第2のサブセットの前記値を出力するために、前記第1のサブセットについての前記値に基づいて前記データ片についての第2の値を生成し、前記データ片についての前記第2の値に基づいて前記第2のサブセットについての前記値を出力する、
ように構成されている、ことを特徴とする請求項1に記載の機械学習の方法。
【請求項3】
前記第1のサブセットについての前記値は、前記データ片についての前記第1の値の関数の像に対応し、前記第2の値は、前記関数に従った前記第1のサブセットについての前記値の原像である、ことを特徴とする請求項2に記載の機械学習の方法。
【請求項4】
前記データ片は、前記第1のサブセットについての確率分布を表すベクトルであり、前記関数は、argmax関数である、ことを特徴とする請求項3に記載の機械学習の方法。
【請求項5】
前記データ片の前記第2の値は、前記第1のサブセットについての前記値に対応する座標についての1の値、および全ての他の座標についての0の値を有するベクトルである、ことを特徴とする請求項4に記載の機械学習の方法。
【請求項6】
前記3Dモデルは、セクションおよび押出によって定義され、前記第1のサブセットは、前記セクションのタイプを表す数から構成されている、ことを特徴とする請求項1乃至5のいずれか一項に記載の機械学習の方法。
【請求項7】
前記数は、前記セクションを形成するサイドの数を表す、ことを特徴とする請求項6に記載の機械学習の方法。
【請求項8】
前記第2のサブセットは、前記押出を定義したパラメータおよび/または前記セクションを更に定義したパラメータを含む、ことを特徴とする請求項6または7に記載の機械学習の方法。
【請求項9】
前記セクションを更に定義した前記パラメータは、位置パラメータのリストを含み、各々の位置パラメータは任意選択で、1対の3Dポイントを含む、ことを特徴とする請求項8に記載の機械学習の方法。
【請求項10】
前記ニューラルネットワークは、前記リストについての値を出力するように構成された回帰型ニューラルネットワーク(RNN)を含み、前記ニューラルネットワークは任意選択で、前記RNNの最終状態に基づいて前記押出についての値を出力するように更に構成されている、ことを特徴とする請求項9に記載の機械学習の方法。
【請求項11】
3D設計のコンピュータによって実行される方法であって、
-請求項1乃至10のいずれか一項に記載も方法に従って学習されたニューラルネットワークを設けるステップと、
-2Dスケッチを提供するステップと、
-ユーザによって、前記第1のサブセットについての値を提供するステップと、
-前記第2のサブセットについての値を出力するよう、前記ニューラルネットワークを前記2Dスケッチに適用し、前記ユーザからの前記第1のサブセットについての前記値を入力として見なすステップと、
を備えたことを特徴とする3D設計の方法。
【請求項12】
前記ユーザが前記第1のサブセットについての前記値を提供する前に、
-前記セットごとの1つまたは複数のそれぞれの値を出力するよう、前記ニューラルネットワークを前記2Dスケッチに適用するステップと、
前記2Dスケッチによって表され、各々が前記セットについて出力されたそれぞれの値によって定義された1つまたは複数の3Dモデルを表示し、前記ユーザが、前記1つまたは複数の3Dモデルが表示される間に、前記第1のサブセットについての前記値を提供するステップと、
を更に備えた、ことを特徴とする請求項11に記載の3D設計の方法。
【請求項13】
命令を含むコンピュータプログラムであって、前記命令は、コンピュータシステム上で実行されるとき、前記コンピュータシステムに、請求項1乃至12のいずれか一項に記載の方法を実行させる、ことを特徴とするコンピュータプログラム。
【請求項14】
請求項13に記載のコンピュータプログラムを記憶したメモリを含む、ことを特徴とするデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータプログラムおよびコンピュータシステムの分野に関し、特に、2Dスケッチを入力として見なし、2Dスケッチによって表される3Dモデルを出力するように構成された、ニューラルネットワークに関連する方法、プログラム、データ構造、およびシステムに関する。
【背景技術】
【0002】
オブジェクトの設計、エンジニアリング、および製造のために、いくつかのシステムおよびプログラムが市場に供給されている。CADは、コンピュータ支援設計についての頭文字であり、例えば、オブジェクトを設計するためのソフトウェアソリューションに関する。CAEは、コンピュータ支援エンジニアリングの頭文字であり、例えば、後の製品の物理的振る舞いをシミュレートするためのソフトウェアソリューションに関する。CAMは、コンピュータ支援製造についての頭文字であり、例えば、製造工程およびオペレーションを定義するためのソフトウェアソリューションに関する。そのようなコンピュータ支援設計システムでは、グラフィカルユーザインタフェースは、技術の効率性に関して重要な役割を果たす。それらの技術は、製品ライフサイクル管理(PLM)システムに組み込まれることがある。PLMは、製品データを共有し、共通工程を適用し、拡張企業の概念にわたって、構想からそれらの寿命の終わりまで製品の開発のための企業知識を活用するよう企業を支援するビジネス戦略を指す。Dassault Systemsによって提供されるPLMソリューション(商標「CATIA」、「ENOVIA」、および「DELMIA」の下の)は、製品エンジニアリング知識を構成するエンジニアリングハブ、製造エンジニアリング知識を管理する製造ハブ、ならびにエンジニアリングハブおよび製造ハブの両方への企業統合および接続を可能にするエンタープライズハブを提供する。システムは共に、動的な知識に基づく製品作成、ならびに最適化された製品定義、製造準備、制作、およびサービスを駆り立てる決定のサポートを可能にするよう、製品、工程、リソースを結び付けるオープンオブジェクトモデルを生み出す。
【0003】
このコンテキストでは、研究者は、入力2Dスケッチによって表される3Dモデルを計算するためのソリューションを探索してきた。これは、入力2Dスケッチについて選択された視野角(view angle)に応じて複雑な問題であり、ユーザが意図する3Dモデルを発見することが困難であることがある。例えば、矩形の2Dスケッチは、3D円筒(正面からの)または立方体(いずれかの典型的な視野(canonical view)からの)のいずれかの表現であることがある。更に、2Dスケッチは、そのラインが平坦でなく、もしくは直線でないことがあるように不正確に描かれることがあり、またはその全体像(perspective)は、真実に忠実でないことがある。それらの不正確さは、この問題を解決することをより困難にする。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】DELANOY et al., 3D Sketching using Multi-View Deep Volumetric Prediction, Proceedings of the ACM on Computer Graphics and Interactive Techniques 1.1, 2018, pages 1-22
【非特許文献2】WAILY and BOUSSEAU, Sketch-Based Modeling of Parametric Shapes, ACM/EG Expressive Symposium - Posters, Demos, and Artworks, 2019
【非特許文献3】LI et al., SweepCanvas: Sketch-based 3D prototyping on an RGB-D image, 2017, pages 387-399
【非特許文献4】EITZ et al., Sketch-Based Shape Retrieval, ACM Transactions on Graphics (Proc. SIGGRAPH), 2012, Vol. 31, No. 4, pages 31:1 - 31:10
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来技術では、この問題を解決する異なるアプローチが存在する。
【0006】
非特許文献1は、1つまたは複数の描画から3D形状を再構築するよう、深層畳み込みニューラルネットワーク(CNN)を学習することによるデータドリブンアプローチを提案している。CNNは、ライン描画からボクセル格子の占有を予測し、ユーザが所望の形状の単一描画を完了するとすぐに初期の3D再構築をもたらす。この単一視点ネットワークは、新規な観点から作成された形状の新たな描画を仮定して、既存の予測を精緻化するアップデータCNNにより補完される。
【0007】
非特許文献2は、パラメトリック形状のスケッチを解釈するよう、深層畳み込みネットワークを使用するスケッチに基づいたモデリングシステムを提案している。提案された方法は、スケッチの解釈のために2つのタイプの深層畳み込みネットワークに依存する単純形状(立方体、円筒、円錐、球形、錐体)の作成に焦点を当てている。最初に、分類ネットワークは、どの形状が描かれているかを認識する。次いで、パラメータ推定ネットワークは、認識された形状の位置および寸法を予測する。異なるカテゴリが異なるパラメータを有するので、形状カテゴリごとに1つのそのようなネットワークが存在する。更に、方法が地面に対して形状の昇降の曖昧性をなくすことを可能にするために、上から照明を当てられるときの各々の形状が地上面に投じられる影がレンダリングされ、深層ネットワークに提供される。
【0008】
非特許文献3は、画像に関する3Dモデルを作成する方式をエンドユーザに供給するよう、RGBD画像の最上部での探索的3Dモデリングについてのスケッチに基づいた対話ツールを提案している。ツールは、ユーザストロークのペアを入力と見なし、1つのストロークをその他のストロークに従ってスイープすることによって、湾曲3D表面を即座に生成する、スケッチに基づいたモデリングインタフェースを含む。提案された方法は、ストロークを位置付けおよびスイープするよう、コンテキストから空間平面のペアを抽出するMarkov確率場(MRF)に基づいた最適化手順を適用する。
【0009】
非特許文献4は、オブジェクトのコンピュータにより生成されたライン描画に対してbag-of-features(BOF)アプローチを使用して、入力としてスケッチされた特徴ラインに基づいた3Dオブジェクト検索についての方法を提案している。方法は、幾何学的類似性に基づいてデータセットからユーザへの一致モデルの集合を提案している。
【0010】
このコンテキスト内では、入力2Dスケッチから、2Dスケッチによって表される3Dモデルを出力する改善されたソリューションに対する必要性がなおも存在する。
【課題を解決するための手段】
【0011】
したがって、機械学習コンピュータによって実行される方法が提供される。方法は、2Dスケッチを入力として見なし、2Dスケッチによって表される3Dモデルを出力するように構成されたニューラルネットワークについてのアーキテクチャを設けるステップを含む。3Dモデルは、1つまたは複数のパラメータの第1のサブセットおよび1つまたは複数のパラメータの第2のサブセットから構成されたパラメータのセットによって定義されたパラメータ化された3Dモデルである。ニューラルネットワークは、選択的に、セットについての値を出力し、ユーザからの第1のサブセットについての値を入力として見なし、第2のサブセットについての値を出力する、ように構成されている。機械学習の方法はまた、ニューラルネットワークを学習するステップを含む。
【0012】
機械学習の方法は、
-アーキテクチャが、データ片を含み、ニューラルネットワークが、セットについての値を選択的に出力するために、データ片についての第1の値を生成し、データ片についての前記第1の値に基づいて第1のサブセットについての値を判定し、更に、データ片についての前記第1の値に基づいて第2のサブセットについての値を判定し、選択的に、ユーザからの第1のサブセットについての値を入力として見なし、第2のサブセットの値を出力するために、第1のサブセットについての値に基づいてデータ片についての第2の値を生成し、データ片についての第2の値に基づいて第2のサブセットについての値を出力する、ように構成されていることと、
-第1のサブセットについての値が、データ片についての第1の値の関数の像に対応し、第2の値が、関数に従った第1のサブセットについての値の原像である、ことと、
-データ片が、第1のサブセットについての確率分布を表すベクトルである、関数が、argmax関数である、ことと、
-データ片の第2の値が、第1のサブセットについての値に対応する座標についての1の値、および全ての他の座標についての0の値を有するベクトルである、ことと、
-3Dモデルが、セクションおよび押出によって定義され、第1のサブセットが、セクションのタイプを表す数から構成されている、ことと、
-数が、セクションを形成するサイドの数を表す、ことと、
-第2のサブセットが、押出を定義したパラメータおよび/またはセクションを更に定義したパラメータを含む、ことと、
-セクションを更に定義したパラメータが、位置パラメータのリストを含み、各々の位置パラメータが任意選択で、1対の3Dポイントを含む、ことと、
-ニューラルネットワークが、リストについての値を出力するように構成された回帰型ニューラルネットワーク(RNN)を含み、ニューラルネットワークが任意選択で、RNNの最終状態に基づいて押出についての値を出力するように更に構成されている、ことと、
のうちの1つまたは複数を含んでもよい。
【0013】
3D設計のコンピュータによって実行される方法が更に提供される。3D設計の方法は、機械学習の方法に従って学習されたニューラルネットワークを設けるステップを含む。3D設計の方法は、2Dスケッチを提供するステップと、ユーザによって、第1のサブセットについての値を提供するステップと、第2のサブセットについての値を出力するよう、ニューラルネットワークを2Dスケッチに適用し、ユーザからの第1のサブセットについての値を入力として見なすステップと、を更に含む。
【0014】
3D設計の方法は、ユーザが第1のサブセットについての値を提供する前に、セットごとの1つまたは複数のそれぞれの値を出力するよう、ニューラルネットワークを2Dスケッチに適用するステップと、2Dスケッチによって表され、各々がセットについて出力されたそれぞれの値によって定義された1つまたは複数の3Dモデルを表示し、ユーザが、1つまたは複数の3Dモデルが表示される間に、第1のサブセットについての値を提供するステップと、を更に含んでもよい。
【0015】
命令を含むコンピュータプログラムが更に提供され、命令は、コンピュータシステム上で実行されるとき、コンピュータシステムに、方法を実行させる。
【0016】
学習されたニューラルネットワークを表すデータ構造が更に提供される。
【0017】
コンピュータプログラムおよび/またはデータ構造を記憶したメモリを含むデバイスが更に提供される。デバイスは代わりに、非一時的コンピュータ可読媒体、もしくはメモリに結合されたプロセッサを含むコンピュータシステムを形成し、または非一時的コンピュータ可読媒体もしくはコンピュータシステムとしての役割を果たしてもよい。
【0018】
ここで、非限定的な例として、および添付図面を参照して、実施形態が説明される。
【図面の簡単な説明】
【0019】
【
図2】システムのグラフィカルユーザインタフェースの実施例を示す。
【発明を実施するための形態】
【0020】
以下では、機械学習のコンピュータにより実行される方法が提案される。機械学習の方法は、ニューラルネットワークについてのアーキテクチャを設けることを含む。ニューラルネットワークは、2Dスケッチを入力として見なし、2Dスケッチによって表される3Dモデルを出力するように構成されている。機械学習の方法はまた、ニューラルネットワークを学習することを含む。ニューラルネットワークは、1つの2Dスケッチによって表される3Dモデルを出力するように構成されている。これは、単一の対応する2Dスケッチに基づいて3Dモデルを推論する、すなわち、計算するよう、ユーザについての高い人間工学(ergonomics)を表す。
【0021】
機械学習の分野から既知であるように、ニューラルネットワークは、アーキテクチャに従った演算を含む関数であり、各々の演算は、重み値を含むデータによって定義される。ニューラルネットワークのアーキテクチャは、各々の演算のオペランドおよび重み値の間の関係を定義する。よって、ニューラルネットワークの学習は、そのような学習に対して構成されたデータセットに基づいて、重みの値を決定することを含む。そのことについて、データセットは、各々がそれぞれの訓練サンプルを形成するデータ片(data piece)を含む。訓練サンプルは、学習の後にニューラルネットワークが使用されることになる状況の多様性(diversity)を表す。本明細書で言及されるいずれかのデータセットは、1000、10000、100000、または1000000よりも多い、いくつかの訓練サンプルを含んでもよい。
【0022】
機械学習の方法は、「データセット形成方法」と称されてもよい、そのようなデータセットを形成するコンピュータによって実行される方法を含む機械学習工程の一部であってもよい。データセット形成方法は、機械学習の方法の前に実行されてもよく、または代わりに、機械学習の方法と組み合わされてもよい。データセット形成方法は、1つまたは複数の3Dモデルを提供すること(例えば、合成すること)を含む。データセット形成方法は更に、各々がそれぞれの3Dモデルを表す1つまたは複数のそれぞれの2Dスケッチを決定すること(例えば、合成すること)(例えば、生成された3Dモデルに基づいて)、データセットに1つまたは複数の訓練サンプルを挿入することを含み、1つまたは複数の訓練サンプルの各々は、(例えば、合成された)3Dモデルおよびそれぞれの(例えば、合成された)2Dスケッチを含む。
【0023】
ニューラルネットワーク方法の学習は、実施例では、データセット形成方法の後に、データセット形成方法によって形成されたデータセットに少なくとも部分的に基づいて実行されてもよい。そのような機械学習工程は特に効率的であり、改善された精度をもたらす。
【0024】
代わりに、機械学習工程は、データセット形成方法と、データセットに基づいて、ニューラルネットワークを学習するいずれかの他のコンピュータによって実行される方法(提案される学習方法以外の)を実行することと、を含んでもよい。また代わりに、機械学習工程は、そのようにしてデータセットを形成し、またはデータセットを取り出す別の方法など、いずれかの他のコンピュータによって実行される方法(提案されるデータセット形成方法以外の)によって提供されるデータセットに対して学習方法を実行することを含んでもよい。
【0025】
3D設計のコンピュータによって実行される方法も提案される。3D設計の方法は、機械学習方法に従って学習されたニューラルネットワークを設けることを含む。3D設計の方法はまた、2Dスケッチを提供することを含む。3D設計の方法は次いで、2Dスケッチによって表される3Dモデルを出力するために、2Dスケッチにニューラルネットワークを適用することを含む。3D設計工程は、少なくとも3Dモデルを精巧に作る工程の一部である、いずれかのアクションまたは一連のアクションを指定する。よって、方法は、ゼロから3Dモデルを作成することを含んでもよい。方法は最終的に、ユーザが2Dスケッチを入力すること、および1つまたは複数の3Dモデルを出力することを可能にし、1つまたは複数の3Dモデルは、3D設計を実行するための人間工学方式である。
【0026】
3D設計方法は、CAD設計についての改善されたソリューションを形成する。特に、学習されたニューラルネットワークは、2DスケッチをソリッドCADに変換するために使用可能である。CADのコンテキストでは、学習されたニューラルネットワークによりそのような変換を実行することは、高速な実行またはリアルタイムな実行、面倒な従前の手動的なプログラミング/コーディングの要件がないこと、および結果の精度が高いことなど、機械学習の分野によってもたらされる利点を達成することを可能にする。本明細書において、精度は、例えば、任意選択で3Dモデル(例えば、その特徴的エッジ)の2D投影と2Dスケッチとの間で評価される2D類似性の値として測定された、3Dモデルと、2Dスケッチをスケッチするときにユーザが意図した3D形状との間で評価された3D類似性の値を指す。よって、学習方法は、3D設計のコンテキストにおいて人間工学を改善する。
【0027】
3D設計の方法は、1つの単一の3Dモデルまたは3Dモデルについてのいくつか命題(proposition)をユーザに出力することができる。後者のケースでは、ユーザは、設計工程におけるユーザの意図に従って1つを選択することができる。実施例では、3D設計の方法は、2Dスケッチによって表される1つまたは複数の3Dモデルの3Dグラフィカル表現を表示することを含んでもよい。
【0028】
3D設計の方法は、繰り返されてもよい。そのようなケースでは、3D設計の方法は、ニューラルネットワークを設けること、および2Dスケッチを反復して提供すること、2Dスケッチによって表される新たな3Dモデルを毎回(例えば、自動で)出力するために、ニューラルネットワークを各々の2Dスケッチに適用することを含む。方法は、新たに取得された各々の3Dモデルを現在の設計に追加し、それによって、出力される個々の3Dモデルオブジェクトに含まれる(最終的な)3Dモデルオブジェクトを繰り返して/増加的に構築することを含んでもよい。各々が2Dスケッチを提供することは、例えば、スケッチすることによって(例えば、タッチスクリーンまたはタッチパッドなどのタッチ技術を介して)ユーザによって実行されてもよい。最終的な3Dモデルオブジェクトは、以下で更に説明されるように、機械アセンブリの機械部品を表すことができる。
【0029】
3D設計の方法は、機械学習の方法を含んでもよく、またはそれは、例えば、機械学習工程の一部として、その後実行されてもよい。
【0030】
モデル化されたオブジェクトは、例えば、データベースに記憶されたデータによって定義されたいずれかのオブジェクトである。拡張によって、表現「モデル化されたオブジェクト」は、データ自体を指定する。モデル化されたオブジェクトを指定するために使用されるシステムのタイプに従って、モデル化されたオブジェクトは、異なる種類のデータによって定義されてもよい。CADのコンテキストでは、モデル化されたオブジェクトは典型的には、例えば、部品、部品のアセンブリ、または場合によっては製品のアセンブリなどの製品を表す、3Dモデル化されたオブジェクト(または、3Dモデル)であってもよい。3Dモデルは、個体の3D表現、例えば、現実世界オブジェクトから成り立つ材料の3D空間分布を形成する、モデル化されたオブジェクトである。現実世界オブジェクトは、機械設計工程における、機械部品、部品のアセンブリ、または場合によっては製品のアセンブリであってもよい。3D表現は、全ての角度から部品を見ることを可能にする。例えば、3Dモデルは、表現が表示されるスクリーン内でその軸のいずれかの周りで、またはいずれかの軸の周りで操作および転回されてもよい。3Dモデルは、個体のスキン(すなわち、外部表面)を表すことができる。3Dモデルは、ユーザに表示されるため、および/またはユーザが3Dモデルに対して1つもしくは複数のCAD設計演算を実行するために、CADシステムに提供されてもよい。これは特に、3Dモデル化されていない2Dアイコンを排除する。3D表現の表示は、設計を促進する(すなわち、設計者がそれらのタスクを統計的に達成する速度を増大させる)。これは、製品の設計が製造工程の一部であるので、産業における製造工程を加速化する。
【0031】
システムは実際に、CADシステム、CAEシステム、CAMシステム、PDMシステム、および/またはPLMシステムのいずれかの組み合わせであってもよい。それらの異なるシステムでは、モデル化されたオブジェクトは、対応するデータによって定義される。したがって、1つは、CADオブジェクト、PLMオブジェクト、PDMオブジェクト、CAEオブジェクト、CAMオブジェクト、CADデータ、PLMデータ、PDMデータ、CAMデータ、CAEデータを言うことができる。しかしながら、それらのシステムのいずれかの組み合わせに対応するデータによってモデル化されたオブジェクトを定義することができるので、それらのシステムは、その他の1つを排除しない。よって、システムは良好に、CADシステムおよびPLMシステムの両方であってもよい。
【0032】
CADシステムによって、それは加えて、CATIAなどのモデル化されたオブジェクトのグラフィカル表現に基づいてモデル化されたオブジェクトを設計するように少なくとも適合されたいずれかのシステムを意味する。このケースでは、モデル化されたオブジェクトを定義したデータは、モデル化されたオブジェクトの表現を可能にするデータを含む。CADシステムは、例えば、面または表面を有する特定のケースでは、エッジまたはラインを使用してCADモデル化されたオブジェクトの表現を提供してもよい。ライン、エッジ、または表面は、様々な方式において、例えば、非一様有理Bスプライン(NURBS)において表されてもよい。特に、CADファイルは、仕様を含んでもよく、仕様から、ジオメトリを生成することができ、ジオメトリは次いで、表現が生成されることを可能にする。モデル化されたオブジェクトの仕様は、単一のCADファイルまたは複数のCADファイルに記憶されてもよい。CADシステムにおけるモデル化されたオブジェクトを表すファイルの典型的なサイズは、部品ごとに1メガバイトの範囲にあり、モデル化されたオブジェクトは典型的には、数千個の部品のアセンブリであってもよい。CADのコンテキストでは、モデル化されたオブジェクトは典型的には、例えば、部品、部品のアセンブリ、または場合によっては製品のアセンブリなどの製品を表す、モデル化されたオブジェクトであってもよい。
【0033】
2Dスケッチは、2D平面上で3Dモデルを表す2D画像である。2Dスケッチは、ユーザによって確立されていてもよい。特に、2Dスケッチは、手書きのスケッチであってもよい。代わりに、2Dスケッチは、合成されていてもよく、すなわち、コンピュータシステムによって人工的にかつ自動で合成されていてもよい。特に、データセット形成方法における手書き描画は、合成的であってもよい。よって、2Dスケッチは、そこから3D形状が視認可能であるそれぞれの観点から3D形状を表す1つまたは複数の(2D平面)ストロークを含む2D画像データ構造である。1つまたは複数のストロークは、同一の平面内で定義され、それぞれの観点からの3D形状の全体像を表す。各々のストロークは、平面内で定義された連続した曲面、または実質的に連続した曲面である。
【0034】
実施例では、本明細書におけるいずれかの2Dスケッチについて、2D画像の背景は、単色であってもよく、または代わりに単色でなくてもよい。背景は、例えば、写真であってもよく、その上にユーザがストロークを加えることができる。ストロークは、例えば、予め定められた閾値よりも高い写真の残り部分とのコントラストに基づいて識別可能であってもよい。機械学習工程では、背景は、第1の色の単色背景と置き換えられてもよく、2Dスケッチの識別されたストロークは、第2の色においてレンダリングされてもよい。実施例では、第1の色は、黒であってもよく、第2の色は、白であってもよい。他の実施例では、第1の色は、白であってもよく、第2の色は、黒であってもよい。機械学習方法、データセット形成方法、および3D設計の方法を含む機械学習工程の方法の全ては、同一の第1の色および第2の色を使用してもよい。代わりに、機械学習工程の方法および3D設計の方法は、それらのそれぞれの入力および出力の一貫性を維持するよう、1つまたは複数の変換ステップとの組み合わせで異なる第1の色および/または第2の色を使用してもよい。
【0035】
実施例では、本明細書におけるいずれかの2Dスケッチについて、1つまたは複数の(例えば、全ての)ストロークは各々、例えば、予め定められた閾値、例えば、10ミリメートルまたは5ミリメートルよりも短い、別のストロークからの(例えば、別のストロークの端点(extremity point)からの)距離を有する端点を有してもよい。実施例では、本明細書におけるいずれかの2Dスケッチについて、ストロークは、自由な3D形状を表す。これは、いずれかの順序において、かつ予め定義された制約なしに(必然的に並列なストロークおよび/または直交するストロークを有するなど)ストロークを定義することができ、それらがクラスタ(例えば、距離に基づいて取得可能な)において構成されず、クラスタの各々が固体の平面を表すことを意味する。実施例では、本明細書におけるいずれかの2Dスケッチは代わりにまたは加えて、例えば、ストロークに関連付けられたいずれのラベル(例えば、作成、押出(extrusion)、屈折(bending)などのアクションの注釈)をも有さず、および/またはいずれの追加のデータ(例えば、ピクチャ、並列ラインのユーザ定義、深度画像)をも有さない、未加工フォーマットにおいて提供されてもよい。
【0036】
2Dスケッチをスケッチすることは、ストロークを定義したスクリーンの一連の画素を順次(例えば、実質的に連続して)活性化することによって、コンピュータのスクリーンとのグラフィカル対話により実行されてもよい。活性化は、マウス(例えば、ストロークを定義したカーソル移動)など、画素に対して作用する触覚デバイスを介して、またはタッチスクリーンもしくはタッチパッドとのユーザ対話(例えば、タッチスクリーンもしくはタッチパッドに対するストロークの物理的なタッチ描画を含む対話)を介して実行されてもよい。これは、スケッチ設計またはストローク設計としてCADの分野において公知である。代わりに、紙にスケッチされた描画のスキャンまたはいずれかの他の画像のスキャンが推論方法に入力されてもよい。また代わりに、例えば、別のユーザによって生成され、および/または前に説明された技術のいずれかによって生成された手書き描画がメモリから取り出されてもよく、または遠隔のコンピュータシステムから受信されてもよい。
【0037】
本明細書におけるいずれかの方法は、製造工程に含まれてもよく、製造工程は、方法を実行した後に、モデル化されたオブジェクトに対応する物理製品を作成することを含んでもよい。いずれかのケースでは、方法によって設計されたモデル化されたオブジェクトは、製造オブジェクトを表すことができる。よって、モデル化されたオブジェクトは、モデル化された固体(すなわち、固体を表すモデル化されたオブジェクト)であってもよい。製造オブジェクトは、部品または部品のアセンブリなどの製品であってもよい。方法がモデル化されたオブジェクトの設計を改善することを理由に、方法は、製品の製造をも改善し、よって、製造工程の生産性を増大させる。
【0038】
本明細書におけるいずれかの3D形状は、(例えば、機械)部品もしくは部品のアセンブリ(または、方法の観点から部品自体として部品のアセンブリを見ることができ、もしくはアセンブリの各々の部品に方法を独立して適用することができるので、同等に部品のアセンブリ)など、現実世界において製造されることになる製品のジオメトリを表してもよく、あるいはより一般的に、いずれかの剛体アセンブリ(例えば、可動機構)を表してもよい。製品は、航空宇宙、アーキテクチャ、建築、消費者製品、ハイテクデバイス、産業機器、輸送、海事、および/もしくは海洋石油/ガス生成、または輸送を含む、様々なかつ無制限の産業分野における製品の1つであってもよい。よって、3D形状は、産業製品を表してもよく、産業製品は、地上車両の部品(例えば、自動車機器、軽トラック機器、レーシングカー機器、オートバイ機器、トラック機器、動力機器、トラック、バス、および電車を含む)、航空車両の部品(例えば、機体機器、航空宇宙機器、推進機器、防衛製品、航空会社機器、宇宙機器を含む)、軍艦車両の部品(例えば、海軍機器、商用船、沖合機器、ヨット機器、作業艇機器、および海事機器を含む)一般的な機械部品(例えば、産業製造マシン、重作業マシンもしくは機器、据付機器、産業機器製品、加工済み金属製品、タイヤ製造製品を含む)、電気機械部品または電気部品(例えば、消費者電化製品、セキュリティ製品、制御製品、および/もしくは計測製品、計算機器および通信機器、半導体デバイスおよび機器、医療デバイスおよび機器を含む)、消費者製品(例えば、家具、家庭製品、菜園製品、レジャーグッズ、ファッション製品、ハードグッズリテーラの製品、ソフトグッズリテーラの製品を含む)パッケージング(例えば、食品、飲料、たばこ、美容、健康、家事製品のパッケージングを含む)などのいずれかの機械部品であってもよい。
【0039】
方法のいずれかは、コンピュータによって実行される。これは、方法のステップ(または、実質的に全てのステップ)が、少なくとも1つのコンピュータ、または同様のいずれかのシステムによって実行されることを意味する。よって、方法のステップは、場合によっては完全に自動で、または半自動でコンピュータによって実行される。実施例では、方法のステップの少なくとも一部をトリガすることは、ユーザ-コンピュータ対話を通じ実行される。必要とされるユーザ-コンピュータ対話のレベルは、予想される自動化のレベルに応じてもよく、ユーザの要求を実装するための必要性とのバランスをとってもよい。実施例では、このレベルは、ユーザによって定義されてもよく、および/または予め定義されてもよい。
【0040】
また、コンピュータシステム(すなわち、メモリに結合されたプロセッサを有するシステム)上で実行されるとき、コンピュータシステムに方法のいずれかを実行させる命令を含むコンピュータプログラムが提案される。コンピュータプログラムは、コンピュータによって実行可能な命令を含んでもよく、命令は、上記システムに方法を実行させる手段を含む。プログラムは、システムのメモリを含むいずれかのデータ記憶媒体に記録可能であってもよい。プログラムは、例えば、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、もしくはそれらの組み合わせにおいて実装されてもよい。プログラムは、装置、例えば、プログラム可能プロセッサによる実行のために機械可読記憶装置において有形的に具体化された製品として実装されてもよい。方法ステップは、入力データに対して動作し、出力を生成することによって、方法の関数を実行するよう命令のプログラムを実行するプログラム可能プロセッサによって実行されてもよい。よって、プロセッサは、データ記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、データ記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスにデータおよび命令を送信するようにプログラム可能であり、そのように結合されてもよい。アプリケーションプログラムは、必要に応じて、高レベル手続型プログラミング言語もしくはオブジェクト指向プログラミング言語において、またはアセンブリ言語もしくは機械言語において実装されてもよい。いずれかのケースでは、言語は、コンパイル言語またはインタプリタ言語であってもよい。プログラムは、完全インストールプログラムまたは更新プログラムであってもよい。システム上のプログラムのアプリケーションは、いずれかのケースでは、方法を実行する命令をもたらす。
【0041】
また、機械学習の方法および/または3D設計の方法に従って学習されたニューラルネットワークを表すデータ構造が提案される。
【0042】
また、コンピュータプログラムおよび/またはデータ構造を記憶したメモリを含むデバイスが提案される。デバイスは、SaaS(ソフトウェアアズアサービス)、別のサーバ、またはクラウド方式プラットフォームなどの上で非一時的コンピュータ可読媒体を形成してもよく、または非一時的コンピュータ可読媒体としての役割を果たしてもよい。代わりに、デバイスは、メモリに結合されたプロセッサを含んでもよい。よって、デバイスは、システムを全体的に、または部分的に形成してもよい(例えば、デバイスは、システム全体のサブシステムである)。システムは更に、プロセッサに結合されたグラフィカルユーザインタフェースを含んでもよい。
【0043】
コンピュータシステムは、メモリに結合されたプロセッサおよびグラフィカルユーザインタフェース(GUI)を含んでもよく、メモリは、方法を実行するための命令を含む、コンピュータプログラムを記憶している。メモリは、データベースをも記憶してもよい。メモリは、場合によってはいくつかの物理的な別個の部分(例えば、プログラムに対して1つ、および場合によってはデータベースに対して1つ)を含む、そのような記憶に対して適合されたいずれかのハードウェアである。
【0044】
【0045】
実施例のクライアントコンピュータは、内部通信バス1000に接続された中央処理装置(CPU)1010、それもバスに接続されたランダムアクセスメモリ(RAM)を含む。クライアントコンピュータは更に、バスに接続されたビデオランダムアクセスメモリ1100と関連付けられたグラフィカルプロセシングユニット(GPU)1110が設けられる。ビデオRAM1100も、フレームバッファとして本分野において既知である。大規模記憶装置コントローラ1020は、ハードドライブ1030などの大規模メモリデバイスへのアクセスを管理する。コンピュータプログラム命令およびデータを有形的に具体化するために適切な大規模メモリデバイスは、例として、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクおよび着脱可能ディスクなどの磁気ディスク、磁気光学ディスク、ならびにCD-ROMディスク1040を含む、全ての形式の不揮発性メモリを含む。上述したもののいずれかは、特に設計されたASIC(特定用途向け集積回路)によって補完されてもよく、またはASICに組み込まれてもよい。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。クライアントコンピュータはまた、カーソル制御デバイスまたはキーボードなどの触覚デバイス1090を含んでもよい。カーソル制御デバイスは、ディスプレイ1080上のいずれかの所望の位置においてユーザがカーソルを選択的に位置付けることを可能にするためにクライアントコンピュータにおいて使用される。加えて、カーソル制御デバイスは、ユーザが様々なコマンドおよび入力制御信号を選択することを可能にする。カーソル制御デバイスは、システムに制御信号を入力するためのいくつかの信号生成デバイスを含む。典型的には、カーソル制御デバイスは、マウスであってもよく、マウスのボタンは、信号を生成するために使用される。代わりにまたは加えて、クライアントコンピュータシステムは、感圧パッドおよび/または感圧スクリーンを含んでもよい。
【0046】
図2は、本明細書におけるいずれかのシステムのGUIの実施例を示し、システムは、CADシステムである。
【0047】
GUI2100は、標準的なメニューバー2110、2120と共に底部ツールバー2140およびサイドツールバー2150を有する、典型的なCADのようなインタフェースであってもよい。そのようなメニューバーおよびツールバーは、ユーザ選択可能アイコンのセットを含み、各々のアイコンは、本分野において既知であるように、1つまたは複数の演算または関数と関連付けられる。それらのアイコンの一部は、GUI2100に表示された3Dモデル化されたオブジェクト2000を編集し、および/または3Dモデル化されたオブジェクト2000に対して作用するように適合されたソフトウェアツールと関連付けられている。ソフトウェアツールは、ワークベンチにグループ化されてもよい。各々のワークベンチは、ソフトウェアツールのサブセットを含む。特に、ワークベンチの1つは、モデル化された製品2000の幾何学的特徴の編集するために適切な、編集ワークベンチである。演算では、設計者は、例えば、オブジェクト2000の一部を事前に選択してもよく、次いで、演算を開始してもよく(例えば、寸法、色などを変更する)、または適切なアイコンを選択することによって幾何学的制約を編集してもよい。例えば、典型的なCAD演算は、スクリーン上に表示された3Dモデル化されたオブジェクトをパンチすることまたは折り畳むことである。GUIは、例えば、表示された製品2000に関連するデータ2500を表示してもよい。図の実施例では、「特徴ツリー」として表示されたデータ2500、およびそれらの3D表現2000は、ブレーキキャリパおよびブレーキディスクを含むブレーキアセンブリに関連する。GUIは更に、例えば、オブジェクトの3D方位を促進し、編集された製品の演算のシミュレーションをトリガし、または表示された製品2000の様々な属性をレンダリングするための、様々なタイプのグラフィックツール2130、2070、2080を示してもよい。カーソル2060は、ユーザがグラフィックツールと対話することを可能にするよう、触覚デバイスによって制御されてもよい。
【0048】
ここで、機械学習方法および3D設計方法の態様が議論される。
【0049】
第1の態様に従って、機械学習の方法では、ニューラルネットワークについて設けられるアーキテクチャは、変分オートエンコーダ(VAE)アーキテクチャである。そのようなケースでは、ニューラルネットワークは、ランダム変数を追加の入力として見なすように構成されている。これは、入力2Dスケッチから、入力2Dスケッチによって表される3Dモデルを出力するための、改善されたソリューションを形成する。
【0050】
特に、入力されたランダム変数を含む変分オートエンコーダは、ニューラルネットワークの入力データにおける不正確さに関して学習方法のロバスト性を改善する。実際に、入力2Dスケッチは、正確でないことがあり(例えば、2Dスケッチがストロークの間でギャップを含むとき、または2Dスケッチが手書きであるとき)、VAEの特徴は、不正確な入力データにより3Dモデルを出力する方法の能力を改善する。
【0051】
第1の態様に従って、3D設計の方法では、第1の態様に従って学習されたニューラルネットワークは、2Dスケッチによって表される3Dモデルを出力するために、2Dスケッチおよびランダム変数に適用される。この特徴は、入力された2Dスケッチが何らかの不正確さを有するとき、または入力された2Dスケッチが不完全であるとき(例えば、ユーザが3Dモデルをより高速に計算することを意図しているときおよび/またはユーザが現在描画しているとき)、3Dモデルを正確に出力する設計方法の能力を改善するように、3D設計方法の人間工学を改善する。
【0052】
VAEにランダム変数を入力することは、第1の態様に従った3D設計の方法が、単一の2Dスケッチから複数の3Dモデルを出力することも可能にする。各々の出力された3Dモデルは、1つのランダム変数に対応する。これは、入力2Dスケッチから、ユーザに提案された複数の3Dモデルの中でユーザによって選択される2Dスケッチによって表される3Dモデルを出力するための改善されたソリューションを形成する。これは特に、入力された2Dスケッチが何らかの不正確さを有するとき、入力された2Dスケッチが不完全であるとき、または2Dスケッチ1つの単一の3Dモデルを明確に表さないときに効率的である。
図3を参照して、VAEは、正規化された潜在空間(regularized latent space)を取得すること、および出力にランダム性を導入することを可能にする。前に言及されたように、2D矩形は、正面からの3D円筒を表すことができ、またはいずれかの典型的な視野からの3Dボックスを表すことができ、よって、方法はむしろ、円筒およびボックスの両方を提案することができる。図は、正規化された潜在空間310および正規化されていない潜在空間320の表示を示す。正規化に関する更なる詳細が以下に提供される。1つは、正規化されていない潜在空間320と比較して、正規化された潜在空間310内で、色領域が相互により近いことを観察することができる。よって、青領域312(例えば、円筒を表す)の近くの潜在ベクトルを選択することは、緑領域(例えば、ボックスを表す)における潜在ベクトルを与えることができる。対照的に、青領域322の近くの潜在ベクトルは、緑領域324における潜在ベクトルを与えないことがある。よって、2Dスケッチが不確かである場合、VAE方法は、複数の異なるソリューション、すなわち、正規化された潜在空間310内の異なる領域に対応する3Dモデル、例えば、領域312に対応する1つの3Dモデルおよび領域314に対応する別の3Dモデルを提案することができる。
【0053】
第2の態様に従って、3Dモデルは、パラメータのセットによって定義されたパラメータ化された3Dモデルである。パラメータのセットは、1つまたは複数のパラメータの第1のサブセットおよび1つまたは複数のパラメータの第2のサブセットから構成される。第2の態様に従って、機械学習の方法では、ニューラルネットワークは、選択的に、(1)セットについての値を出力し、(2)ユーザからの第1のサブセットについての値を入力として見なし、第2のサブセットについての値を出力するように構成されている(言い換えると、ニューラルネットワークは代わりに、オプション(1)またはオプション(2)に従って選択的に使用されてもよい)。これは、入力2Dスケッチから、2Dスケッチによって表される3Dモデルを出力するための改善されたソリューションを形成する。
【0054】
メッシュ表現、ボクセル占有格子、またはポイントクラウドのような3Dモデルの固定された表現とは異なり、2Dスケッチの(例えば、完全に)パラメータ化された3Dモデルは、いくつかのパラメータを修正することによって容易に編集可能である。実施例では、3Dモデルをパラメータ化するためのパラメータの数は、そのモザイク式メッシュ(tessellated mesh)の面の数、そのボクセル格子の占有された格子の数、またはそのポイントクラウド内のマーク付けされたポイントの数よりも、5よりも多い(例えば、10よりも多い)係数だけ少ない。各々のパラメータ化された3Dモデルは、100よりも少ない(例えば、50よりも少ない)いくつかのパラメータによって定義されてもよい。よって、パラメータ化機構は、コンパクトかつ編成された方式において3Dモデルを表す。また、CADの分野において既知であるように、単一のパラメータに対して作用することは、全体的な影響をもたらすことができると共に、メッシュ、ボクセル格子、またはポイントクラウドのケースでは、単一の幾何学的エンティティに対して作用することは、局所的な影響をもたらすにすぎない。例えば、本明細書におけるいずれかの3Dモデルは、多数のメッシュトライアングルを移動させること/増加させることとは反対に、5未満(例えば、3未満)のいくつかのパラメータ値を修正することによって、その占有された体積を拡スケールアップするように構成されてもよい。加えて、パラメータ化された3Dモデルは、メッシュ、ボクセル格子、またはポイントクラウドよりもユーザに対してより意味的に有用である。
【0055】
第2の態様に従って、ユーザは、出力される3Dモデルを定義したデータの部分を選択的に修正(fix)することができる。よって、1つまたは複数のパラメータの第1のサブセットについての特定の値を有することに特徴付けられた特定のタイプの3Dモデルを出力するために、ニューラルネットワークを効率的に学習することができる。これは、学習を改善する。
【0056】
実施例では、3Dモデルは、例えば、1つまたは複数の境界ポイント(bounding point)(例えば、3Dモデルがプリズムを表しているときのコーナポイント(corner point))についての1つまたは複数の位置付けパラメータ(positioning parameter)(例えば、3D座標)を含む、1つまたは複数の形状パラメータによってパラメータ化されてもよい。形状パラメータは加えてまたは代わりに、1つまたは複数の次元に対応する1つまたは複数の長さ(例えば、立方体についてのエッジの長さおよび/またはプリズムの高さ)を含んでもよい。本明細書におけるいずれかの3Dモデルは代わりにまたは加えて、タイプパラメータ(例えば、3Dモデルがプリズムを表すときにセクションのタイプ)によって定義されてもよい。本明細書におけるいずれかの3Dモデルは代わりにまたは加えて、任意選択で、1つまたは複数の位置付けパラメータ(例えば、3Dモデルがプリズムを表しているときのセクションのコーナポイントの3D座標)を含む、そのタイプに応じた追加の形状パラメータによって定義されてもよい。3Dモデルのそのようなパラメータ化は特に、ユーザが編集するための人間工学である。
【0057】
以下では、パラメータのセットについての値は、第1のサブセットについての値および第2のサブセットについての値から構成される。セットについての値を選択的に出力することは、ユーザが、(全体的な)パラメータのセットについての値を出力するか、またはパラメータの第1のサブセットについての値を入力としてニューラルネットワークに与えるかのいずれかを選択することができることを意味する。後者のケースでは、第1のサブセットについての値および第2のサブセットについての値は、ユーザによって入力されないが、両方ともニューラルネットワークによって(自動で)計算される。このケースでは、2Dスケッチは、ニューラルネットワークへの入力であるにすぎず、第1のサブセットについての出力される値および第2のサブセットについての出力される値は、ニューラルネットワークによって計算される。後者のケースでは、3Dモデルの第1のパラメータのセットの入力された値は、第2のサブセットについての値を出力するためにニューラルネットワークによって使用されてもよい。
【0058】
実施例では、1つまたは複数のパラメータの第1のサブセットは、タイプパラメータのうちの1つまたは複数から構成されてもよく、1つまたは複数のパラメータの第2のサブセットは、形状パラメータのうちの1つまたは複数から構成されてもよい。よって、ユーザは、ニューラルネットワークの出力を特定のタイプ(例えば、三角形セクションを有するプリズム)に制限することができると共に、ニューラルネットワークが、形状を自由に計算させることができる。
【0059】
第2の態様に従って、3D設計の方法では、1つまたは複数のパラメータの第2のサブセットについての値を出力するために、1つまたは複数のパラメータの第1のサブセットについての値が選択的に提供される。よって、ユーザは、3Dモデルを定義したパラメータの部分をモデルの入力として設定し、残りのパラメータを取得することが可能である。この特徴は、ユーザが特定のカテゴリの3Dモデルを出力することを可能にすることによって、すなわち、カテゴリを特徴付ける1つまたは複数のパラメータのいくつかの予め定義されたセットにより、3D設計方法の人間工学を改善する。3D設計の方法の実施例では、ユーザは、第1のサブセットの1つまたは複数のパラメータについての値についての決定を既に行っていることがあり、またはそれらを選択するいくつかの実用上の制約が存在する。
【0060】
第3の態様に従って、機械学習の方法では、3Dモデルは、セクションおよび押出から構成されたパラメータのセットによって定義されたパラメータ化された3Dモデルである。これは、3Dモデルの単純かつコンパクトな編集可能なパラメータ化をもたらし、入力2Dスケッチから、2Dスケッチによって表される3Dモデルを出力するための改善されたソリューションを形成する。
【0061】
実施例では、パラメータのセットは、3Dモデルの異なるカテゴリの中で共通であり、各々のカテゴリは、パラメータのセットの1つまたは複数のパラメータによって特徴付けられてもよい。第3の態様に従った機械学習は、単一のネットワークを学習し、ネットワークは次いで、いくつかのカテゴリの3Dモデルを生成するために使用される。単一のネットワークによって、それは、演算の単一のセットおよびニューラルネットワークの重み値が機械学習方法における異なるカテゴリの3Dモデルに対して共に学習されることを意味する。言い換えると、学習することは、場合によってはミニバッチごとに(mini-batch by mini-batch)、例えば、単一の確率的勾配降下法(stochastic gradient descent)である場合でさえ、単一の損失の単一の最小化(single minimization of a single loss)を含む。よって、単一のネットワークは、いくつかのニューラルネットワークの組み合わせとは異なり、ニューラルネットワークの各々は、それぞれのカテゴリについてのセレクタによって共に結合された、1つまたは複数のカテゴリの3Dモデルに対して学習されてもよい。
【0062】
実施例では、セクションは、幾何学的タイプのセクションを表すタイプパラメータおよび1つまたは複数の(例えば、2つ以上の)形状パラメータによって定義されてもよい。形状パラメータは、位置パラメータのリストであってもよい。実施例では、押出は、3D空間内のラインによって定義されてもよい。実施例では、押出ラインは、直線ラインまたは湾曲ラインであってもよい。直線ラインは、セクションに垂直であってもよく、よって、押出は、押出長さによって表されてもよい。
【0063】
第3の態様に従って、3D設計の方法では、学習されたニューラルネットワークは、セクションおよび押出から構成されたパラメータのセットの値を出力するために、2Dスケッチに適用される。この特徴は、ユーザに3Dモデルの単純かつコンパクトな編集可能なパラメータ化をもたらすように、3D設計方法の人間工学を改善する。
【0064】
方法の異なる態様が共に組み合わされてもよい。
【0065】
例えば、第1の態様は、第2の態様と組み合わされてもよい。そのようなケースでは、3Dモデルは、1つまたは複数のパラメータの第1のサブセットおよび1つまたは複数のパラメータの第2のサブセットから構成されたパラメータのセットによって定義され、ニューラルネットワークは、VAEアーキテクチャを有する。ニューラルネットワークは、ランダム変数を追加の入力として見なすように構成されている。ニューラルネットワークは、選択的に、セットについての値を選択的に出力し、ユーザからの第1のサブセットについての値を入力として見なし、第2のサブセットについての値を出力するように更に構成されている。これは、入力2Dスケッチから、2Dスケッチによって表される3Dモデルを出力するための改善されたソリューションを形成する。
【0066】
結果として、3D設計の方法は、2Dスケッチによって表される3Dモデルを出力するために、2Dスケッチおよびランダム変数に適用され、1つまたは複数のパラメータの第2のサブセットについての値を出力するために、1つまたは複数のパラメータの第1のサブセットについての値が選択的に提供される。そのような選択では、ニューラルネットワークのVAEアーキテクチャは、第1のサブセットについての入力された値に基づいた、条件付きVAEになることができる。そのようなアーキテクチャは、条件付き変分オートエンコーダ(CVAE)として既知である。
【0067】
別の実施例として、第2の態様は、第3の態様と組み合わされてもよい。そのようなケースでは、3Dモデルは、セクションおよび押出によって定義され、セクションおよび押出は、1つまたは複数のパラメータの第1のサブセットおよび1つまたは複数のパラメータの第2のサブセットから構成されたパラメータのセットによって定義される。第1のサブセットは次いで、セクションのタイプを表す数から構成されてもよい。実施例では、数は、セクションを形成するサイドを表す数を表すことができる。各々のサイドは、直線ライン(セグメント)または湾曲ライン(円弧)のいずれかであってもよい。第2のサブセットは、押出を定義したパラメータおよび/またはセクションを更に定義したパラメータを含んでもよい。
【0068】
更なる別の実施例として、第1の態様は、第3の態様と組み合わされてもよい。そのようなケースでは、3Dモデルは、セクションおよび押出から構成されたパラメータのセットによって定義されたパラメータ化された3Dモデルである。3D設計の方法は、場合によっては異なるタイプのセクションを有する1つまたは複数の3Dモデルを出力する。
【0069】
最後に、第1の態様、第2の態様、および第3の態様が共に組み合わされてもよい。そのようなケースでは、3D設計の方法は、2Dスケッチによって表される3Dモデルを出力するために、2Dスケッチおよびランダム変数に適用され、押出についての値および/またはセクションを更に定義したパラメータを出力するために、セクションのタイプが選択的に提供される。
【0070】
第1のサブセットは次いで、セクションのタイプを表す数から構成されてもよい。実施例では、数は、セクションを形成するサイドを表す数を表すことができる。各々のサイドは、直線ライン(セグメント)または湾曲ライン(円弧)のいずれかであってもよい。第2のサブセットは、押出を定義したパラメータおよび/またはセクションを更に定義したパラメータを含んでもよい。
【0071】
ここで、データセット形成方法の実施例が議論される。
【0072】
実施例では、データセット形成方法は、訓練サンプルのうちの1つまたは複数についてのランダム値を生成することを含んでもよい。訓練サンプルのうちの1つまたは複数に対応するランダム値の生成は、学習方法の一部であってもよく、例えば、ランダム値は、「オンザフライ(on the fly)」で生成されてもよい。ランダム値は、確率分布に従って(例えば、正規分布)、場合によっては予め定義されたパラメータにより(例えば、標準正規分布)選択されてもよい。
【0073】
実施例では、3Dモデルは、1つまたは複数のパラメータの第1のサブセットおよび1つまたは複数のパラメータの第2のサブセットから構成されたパラメータのセットによって定義されたパラメータ化された3Dモデルであってもよい。データセット形成方法は、1つまたは複数のパラメータの第1のサブセットに対応する1つまたは複数のパラメータドメインの第1の離散サブセットおよび1つまたは複数のパラメータの第2のサブセットに対応する1つまたは複数のパラメータドメインの第2の離散サブセットを含む、初期データを提供することを含んでもよい。3Dモデルを合成することは、それらのそれぞれのパラメータドメインにおける第1のサブセットおよび/または第2のサブセットの選択値に基づいているそのような初期データに基づいて実行されてもよい。
【0074】
3Dモデルを合成するときに実行されるいずれかの選択は、(例えば、ランダムな)サンプリングを介して実行されてもよい。これは、相対的に良好な現実状況の多様性を表すデータを生成することを可能にする。よって、これは、最終的に正確な学習につながる。いずれかの(例えば、ランダムな)サンプリングは、選択されることになる変数が値を取るセット内での一様(例えば、ランダムな)サンプリングを含んでもよい(例えば、ランダムな一様サンプリングは、一様確率分布に従ったランダムなサンプリングである)。代わりに、サンプリングは、いくつかの値を選択する確率がその他よりも高いランダムな非一様サンプリングを含んでもよい。より高い確率は、3D設計方法の適用においてより多く出現する値に帰属してもよい。
【0075】
特定の実施例では、データセット形成方法は、セクションタイプの離散セットからのセクションタイプ、およびセクションタイプと共に、1つまたは複数の形状パラメータについての1つまたは複数のパラメータドメインのそれぞれの離散セットを含む初期データを提供することを含んでもよい。3Dモデルを合成することは、そのような初期データに基づいて実行されてもよい。特に、データセットの合成は、セクションのタイプを表す整数を生成すること、および数に基づいて、位置パラメータのリストおよび押出についての値を生成することを含んでもよい。よって、3Dモデルが完全に定義される。
【0076】
第3の態様に従ったデータセット形成方法の効率的な実施例では、方法は、セクションのタイプについての値(例えば、トライアングルに対応する値)、選択されたセクションのタイプについての位置パラメータについての1つまたは複数の値(例えば、三角形セクションコーナの3D座標)、およびセクションに垂直な押出長さについての値を選択してもよい。この実施例のいくつかのオプションでは、セクションの位置パラメータは、セクションのコーナに対応してもよく、単位円(unit circle)に対して選択されてもよい。この実施例の他のオプションでは、セクションの位置パラメータおよび押出長さについての値は、それらの位置パラメータのセットに対応する最大3Dモデルおよび単位球面(unit sphere)における押出適合(extrusion fitting)を取得するよう選択されてもよい。特に、スケーリングのために、3Dモデルの境界ボックスは、座標系((0,0,0))の方位において再度中心に置かれてもよい。3Dモデルは次いで、単位球面における最大3Dモデル適合を取得するために、スケーリング比により再スケーリングされる。モデルを再スケーリングするために、単純に、スケーリング比により3Dモデルの各々のポイントのノルムを乗算する。そのようなデータセットのスケーリングは、学習を改善する。
【0077】
実施例では、データセット形成方法は、ランダムな回転を適用することによって、単一の3Dモデルからいくつかの2Dスケッチを有するデータセットをポピュレート(populate)してもよい。他の実施例では、3Dモデルは代わりに、固定されたままであってもよく、方法は、単位球面上の選択されたポイントからその中心までのベクトルによって表される、ランダムな視野方向からのいくつかの2Dスケッチを取得してもよい。両方の実施例では、2Dスケッチは次いで、視野方向に垂直な平面に対して計算されてもよい(例えば、投影される)。実施例では、計算された2Dスケッチは、黒および白にレンダリングされてもよく、レンダリングされたエッジは、黒であってもよく(例えば、256個の画素のうちのサイズ256個の画素の写真に)、データセットに挿入されてもよい。実施例では、挿入された2Dスケッチの色は、黒の背景および白のラインを取得するよう反転されてもよい。これは、ニューラルネットワークの入力された2Dスケッチにおけるゼロの値の数を最大にする。よって、これは、学習を改善する。レンダリングされたスケッチの値は、標準[0,255]から[0,1]に再スケーリングされてもよい。
【0078】
実施例では、方法は、スケッチのラインに何らかのランダムノイズ(random noise)を追加してもよい。方法は、スケッチの各々のラインを定義した1つまたは複数のパラメータに、および/または各々のラインのエンドポイントにノイズを追加してもよい。そのような実施例は、入力された2Dスケッチの不正確さに対してそのようなデータセットに関して学習されたニューラルネットワークのロバスト性を改善する。
【0079】
ここで、学習方法の実施例が議論される。
【0080】
学習方法は、CAD設計のための改善されたソリューションを形成する。特に、学習されたニューラルネットワークは、2Dスケッチを3Dモデルに変換するために使用可能である。CADのコンテキストでは、これは、既に議論されたものとして特に有用である。学習は、データセットに少なくとも部分的に基づいた、教師あり訓練を含んでもよい。そのようなケースでは、データセットの少なくとも一部は、2Dスケッチごとに、2Dスケッチにより(ラベル付けされた)訓練サンプルを形成するそれぞれの3Dモデルを含む。データセットの少なくとも一部は、例えば、データセット形成方法に従って形成されるいずれかの方法に従って設けられてもよい。
【0081】
特に効率的な実施例では、学習方法は、データセット形成方法によって形成されるデータセットに基づいた教師あり訓練を含んでもよい。機械学習の分野から既知であるように、各々の訓練は、例えば、ミニバッチごとに、それぞれのデータセットを反復して処理し、反復処理に従ってニューラルネットワークの重み値を修正することを含んでもよい。これは、確率的勾配降下法に従って実行されてもよい。重み値は、各々の訓練に対していずれかの方式において初期化されてもよい。重み値は、いずれかの任意の方式において初期化されてもよく、例えば、ランダムに、または各々がゼロの値に初期化されてもよい。
【0082】
機械学習方法の第1の態様に従った実施例では、ニューラルネットワークは、2Dスケッチおよびランダム変数を入力として見なすように構成されている。学習方法は、確率分布(例えば、N(0,1))に従って、入力されたランダム変数についての値を生成するステップを含んでもよい。学習方法は、訓練のサンプルの各々の1つに対して学習工程においてランダム数を「オンザフライで」生成してもよい。
【0083】
学習は、損失関数を最小にすることを含んでもよく、損失関数は、訓練サンプルのそれぞれの2Dスケッチから、訓練サンプルセットの3Dモデルの各々とニューラルネットワークによって出力される3Dモデルとの間の不一致(disparity)を表す。
【0084】
実施例では、機械学習方法の第2の態様および第3の態様に従って、損失は、訓練サンプルの各々の3Dモデルを定義したパラメータとニューラルネットワークによって計算されたそれぞれのパラメータとの間の不一致にペナルティを課してもよい(penalize)。特に正確な実施例では、機械学習方法の第3の態様に従って、不一致は、訓練サンプルの各々の3Dモデルのセクションを定義した位置パラメータ(例えば、ポイントの座標)とそれらのそれぞれの予測値との間の平均二乗誤差、および/または訓練サンプルの各々の3Dモデルの押出パラメータ(例えば、押出長さ)とそのそれぞれの予測値との間の平均二乗誤差を含んでもよい。特に正確な別の実施例では、機械学習方法の第3の態様に従って、不一致は、方法によって計算された、訓練サンプルの各々の3Dモデルのセクションのタイプとタイプとの間の差異におけるメトリック、または各々のタイプの確率値を含んでもよい。
【0085】
実施例では、機械学習方法、ニューラルネットワークの第1の態様に従って、損失関数は、ランダム変数(ε)の確率分布(例えば、N(0,1))と平均(μ)および標準偏差(δ)によって定義された確率分布(例えば、N(μ,δ))との間の不一致にペナルティを課す項を有する正則化損失(regularization loss)を含んでもよい。学習方法は、学習の開始時に、平均および標準偏差についての値を初期化してもよい。学習方法は、学習の工程の間に、平均および標準偏差についての値を計算してもよい。損失関数は、異なる距離および/または2つの確率分布の間の拡散(divergence)を使用して不一致を測定してもよい。特に効率的な実施例では、確率分布の間の不一致は、kullback-Leibler拡散損失である。
【0086】
図3に戻り、Kullback-Leibler拡散損失の正則化効果を観察することができる。正規化されていない潜在空間320では、異なる計算された平均および/または標準偏差に対応する異なる領域は、完全に分離されてもよい。よって、第1の態様に従った方法は、最小再構築損失を有する領域以外の領域から3Dモデルを提案する可能性を失うことがある。再構築損失は、提案された3Dモデルにおける誤差、例えば、3Dモデルを定義したパラメータを表すことができる。Kullback-Leibler拡散損失を目的関数に含めることは、再構築損失の間の平衡、および入力データにおけるランダム性を考慮するよう、ニューラルネットワークを実施することができる。更に、Kullback-Leibler拡散損失を目的関数に含めることは、予測平均を約ゼロに再グループ化し、標準偏差が約1になることを推奨する。それらの効果は、正規化された潜在空間310内で異なる領域が相互に近くになることにつながることがある。
【0087】
ここで、方法の第1の態様が議論される。
【0088】
第1の態様に従って、ニューラルネットワークは、第1の部分および第2の部分を含んでもよい。第1の部分は、2Dスケッチおよびランダム変数を入力として見なし、それぞれの出力を提供するように構成されてもよい。第2の部分は、第1の部分のそれぞれの出力を入力として見なし、3Dモデルを出力するように構成されてもよい。本明細書で、ニューラルネットワークの部分は、ニューラルネットワークのアーキテクチャおよび対応する重みの仮想グループ化を意味する。
【0089】
エンコーダを含む第1の部分においてランダム変数を入力として見なすように構成されることは、1つまたは複数のデコーダによる復号ステージ前のランダム変数の導入と比較して、出力するための改善されたソリューションを形成することができる。これは、全てのデコーダが同一の潜在ベクトルを復号するように、復号ステージにおいて入力されたスケッチの一貫性を維持することを理由とする。また、これは、デコーダごとに復号される最終的な潜在ベクトルを固定する。
【0090】
第1の部分は、第1の下位部分および第2の下位部分を含んでもよい。第1の下位部分は、2Dスケッチを入力として見なし、第1の潜在ベクトルを出力するように構成されてもよい。第2の下位部分は、第1の潜在ベクトルおよびランダム変数εを入力として見なし、ランダム変数により第1の潜在ベクトルを第2の潜在ベクトルに再パラメータ化するように構成されてもよい。潜在ベクトルは、それぞれの入力からのニューラルネットワークの出力を計算する工程における中間結果としての役割を果たす、ニューラルネットワークのデータのブロックを意味する。潜在ベクトルは、アクセス可能でなくてもよく、または直接出力されなくてもよい。第1の態様の特に効率的な実施例では、第1の下位部分は、畳み込みニューラルネットワーク(CNN)であってもよい。
【0091】
第2の下位部分は、第2の潜在ベクトルの「条件付き平均」μおよび「条件付き標準偏差」δを計算するように構成されてもよい。条件付き平均および条件付き標準偏差はそれぞれ、平均についてのベクトルおよび標準偏差についてのベクトルを意味する。本明細書において、再パラメータ化は、いわゆる「再パラメータ化トリック(re-parameterization trick)」を行うことを意味し、第2の下位部分の出力、すなわち、第2の潜在ベクトルは、式(1)に従ってランダムにサンプリングすることによって計算されてもよく、
【0092】
【0093】
出力は、第2の潜在ベクトルを表す。よって、標準偏差の要素のいずれかは、第2の潜在ベクトルを取得するよう、オフセットとしてランダム変数と乗算されてもよく、平均に加算されてもよい。第2の潜在ベクトルを取得するためのそのような式は、μおよびδに関して微分可能である。この微分可能性は、例えば、最急降下法によりニューラルネットワークを訓練することを可能にする。
【0094】
この第1の態様に従って、ランダム変数εは、平均および標準偏差によって定義された法則に従って確率分布(N(.,.))に準拠することができ、ランダム変数は、平均についてのそれぞれの値(例えば、0)および標準偏差についてのそれぞれの値(例えば、1)を有する。実施例では、法則は、正規分布の法則であってもよい。理想的に学習されたニューラルネットワークでは、すなわち、ニューラルネットワークのそれぞれの学習された重みにおいて誤差が存在しないとき、条件付き平均および条件付き標準偏差は、ランダム変数εの分布と同一の分布を表すはずであり、実施例では、N(μ,δ)=N(0,1)である。よって、この第1の態様に従って、学習は、それらの2つの確率分布の間の損失を含む目的関数を最適化することを含んでもよい。そのような損失項を含むことは、潜在空間を正則化することを支援するように、目的関数を最適化することにおける正則化効果を有する。この正則化効果は、ネットワークの大きな重みにペナルティを課すために機械学習領域において広く使用される「L2-正則化」損失の効果と比較されることがある。全ての正規化された重みがゼロになることを回避するために、正則化効果による損失項の関連係数は、相対的に小さいように選択されてもよい。この態様に従った学習の実施例は、後に議論される。
【0095】
ここで、方法の第2の態様が議論される。
【0096】
第2の態様に従って、アーキテクチャは、データ片(piece of data)を含んでもよい。ニューラルネットワークは、データ片についての第1の値を生成し、データ片についての第1の値に基づいて、第1のサブセットについての値を判定し、データ片についての第1の値に基づいて、第2のサブセットについての値を更に判定するよう、セットについての値を選択的に出力するように構成されてもよい。ニューラルネットワークは、第1のサブセットについての値に基づいて、データ片についての第2の値を生成し、データ片についての第2の値に基づいて、第2のサブセットについての値を出力するよう、選択的にユーザからの第1のサブセットについての値を入力として見なし、第2のサブセットの値を出力するように構成されてもよい。
【0097】
データ片は、データの1つもしくは複数の演算および/またはデータの1つもしくは複数のブロックを含む、ニューラルネットワークまたはニューラルネットワークの1つもしくは複数の層におけるデータのブロックを表すことができる。データ片についての第1の値および第2の値は、データのブロックがどのようにポピュレートされるかを表し、ニューラルネットワークは、その実行の間に計算によってデータ片についての第1の値を自動でポピュレートすることができ、第2の値は、ニューラルネットワークの実行とは独立したユーザ対話を介してポピュレートされる。
【0098】
更に、第2の態様に従って、ニューラルネットワークは、演算、すなわち、関数を含んでもよい。関数は、例えば、予め定められてもよく、例えば、定数であってもよく、ニューラルネットワークの実行の間であってもよい。セットについての値を選択的に出力するために、第1のサブセットについての値は、第1の値に基づいて生成され、第1のサブセットについての値は、データ片についての第1の値の関数の像(image)に対応する。選択的にユーザからの第1のサブセットについての値を入力として見なし、第2のサブセットの値を出力するために、第2の値は、関数に従った第1のサブセットについての値の原像(preimage)である。概して、関数に従った値の1つよりも多い原像が存在することがあるので、第2の値は、基準に従った許容可能な原像の1つとして選択される。基準は、最大ベクトル無限ノルム(largest vector infinity-norm)を有する原像を選択することであってもよい。よって、関数(例えば、後に説明されるように、argmax関数)は、第1のサブセットについてのユーザからの入力された値を第2の値に変換するための推論時間において使用されてもよい。第2の値は、第2のサブセットを計算するためにニューラルネットワークによって使用される。
【0099】
第2の態様に従って、データ片は、第1のサブセットについての確率分布を表すベクトルであってもよく、関数は、argmax関数であってもよい。更に、データ片の第2の値は、第1のサブセットについての値に対応する座標についての1の値、および全ての他の座標についての0の値を有するベクトルであってもよい。
【0100】
第2の態様に従った3D設計の方法の実施例では、ユーザが第1のサブセットについての値を提供する前に、ニューラルネットワークは、セットについての各々の1つまたは複数のそれぞれの値を出力するために2Dスケッチに適用されてもよく、1つまたは複数の3Dモデルは、ユーザに表示されてもよい。ユーザは、1つまたは複数の3Dモデルが表示される間に、第1のサブセットについての値を提供することができる。
【0101】
ここで、方法の第3の態様が議論される。
【0102】
この態様では、3Dモデルは、押出ラインに沿ったセクションを押し出し、すなわち、スイープすることによって定義されたパラメータ化されたモデルである。幾何学的タイプのセクションは、数によって表される。ニューラルネットワークは、数についての確率分布を表すベクトルを出力するように構成されている。
【0103】
セクションは、2D、すなわち、平面であってもよく、2つ以上のサイドから構成され、各々のサイドは、直線ライン(セグメント)または湾曲ライン(円弧)のいずれかである。よって、セクションのタイプの代表的な数は、セクションを形成するサイド(セグメントまたは円弧)の数(nbSides)を表すことができる。湾曲ラインは、様々な形式、例えば、スプラインまたは非一様有理Bスプライン(NURBS)において表されてもよい。
【0104】
セクションは、位置パラメータのリストによって更に定義されてもよい。位置パラメータの数は、セクションのサイドの数と等しくてもよい。各々の位置パラメータは任意選択で、1対の3Dポイントを含んでもよい。代わりに、1つまたは複数の位置パラメータは、1つの単一の3Dポイントを含んでもよい。セクションは、幾何学的タイプのセクションを表す数および位置パラメータのリストによって完全に定義されてもよい。セクションは、それぞれのサイドがセグメントまたは円弧であるかどうかを表すよう、各々の予測された対のポイントに関連付けられたフラグによって更に定義されてもよい。
【0105】
この態様に従って、ニューラルネットワークのアーキテクチャは、リストについての値を出力するように構成された回帰型ニューラルネットワーク(RNN)を含んでもよい。RNNは、リストの要素のいずれかをリストの既に計算された要素と関連して計算することができるので、順次リストの値を計算するにおいて非常に効率的である。
【0106】
RNNは、1つまたは複数の長・短期記憶(LSTM)セルを含んでもよい。LSTMセルの数は、リストの要素の数と等しくてもよい。代わりに、アーキテクチャは、静的であってもよく、LSTMセルの数は、異なるタイプのセクションに対して固定されてもよい。LSTMセルの数は、異なるタイプのセクションを定義するために必要とされる位置パラメータの最大数と等しくてもよい。静的アーキテクチャを有することは、訓練の計算時間を改善することができる。各々のLSTMセルは、リストの要素の1つに帰属することができ、その要素の値を出力するように構成されてもよい。実施例では、RNNは、完全結合(FC)層と置き換えられてもよい。
【0107】
ニューラルネットワークは、RNNの最終状態に基づいて、押出についての値を出力するように更に構成されてもよい。押出ラインは、直線ラインまたは湾曲ラインによって表されてもよい。湾曲ラインは、様々な形式、例えば、スプラインまたは非一様有理Bスプライン(NURBS)において表されてもよい。実施例では、湾曲ラインは、位置パラメータの第2のリストによって定義されてもよく、各々の位置パラメータは任意選択で、1対の3Dポイントを含む。ニューラルネットワークは、第2のリストについての値を出力するように構成された第2のRNNを含んでもよい。実施例では、押出のラインは、セクションに垂直な直線ラインであってもよく、よって、それは、押出長さ(h)のスカラパラメータによって表されてもよい。実施例では、各々の位置パラメータは、セクションの境界に位置するポイントを表す1つの3Dポイントまたは1対の3Dポイントのいずれかである。
【0108】
この態様の好ましい実施例では、3Dモデルは、セクションに直交する押出を有する円筒またはプリズムのいずれかである。
【0109】
ここで、異なる態様の組み合わせが議論される。
【0110】
実施例では、第1の態様および第2の態様に従った機械学習の方法は、組み合わされてもよい。そのような組み合わせは、2つの部分を含むニューラルネットワークを含んでもよい。第1の部分は、2Dスケッチおよびランダム変数を入力として見なし、それぞれの潜在ベクトルを出力として提供するように構成されてもよく、第2の部分は、第1の部分のそれぞれの潜在ベクトルを入力として見なすように構成されてもよい。第1の部分は、第1の態様に従った第1の部分と同一であってもよい。潜在ベクトルは、第1の態様に従った第2の潜在ベクトルと同一であってもよい。第2の部分は、確率分布を表すベクトルを出力するように構成された第1の下位部分、ならびにそれぞれの潜在ベクトルおよび確率分布を表すベクトルの連結を入力として見なし、第2のサブセットを出力するように構成された第2の下位部分を含んでもよい。第1の下位部分は、完全結合(FC)層であってもよい。第2の態様の特徴に従って、第1の下位部分は任意選択で、ユーザからの第1のサブセットについての値を入力として見なしてもよい。実施例では、ニューラルネットワークは、第1のサブセットについての値に対応する座標についての1の値および全ての他の座標についての0の値を有するベクトルについての第2の値を生成するように構成されてもよい。
【0111】
実施例では、第1の態様および第3の態様に従った機械学習の方法は、組み合わされてもよい。そのような実施例では、RNNの最終状態および少なくとも確率分布を表すベクトルを連結するベクトルを入力として見なし、押出についての値を出力するように構成されたニューラルネットワークの部分が存在してもよい。実施例では、確率分布を表すベクトルは、第2の潜在ベクトルである。部分は、FC層であってもよい。
【0112】
第2の態様と第3の態様との組み合わせでは、1つまたは複数のパラメータの第1のサブセットは、セクションのタイプを表す数から構成されてもよい。この数は、データ片の確率分布のベクトルへのargmax関数の適用に帰属してもよい。更に、関数に従った値の原像は、タイプを表す数についての値に対応する座標についての1の値、および全ての他の座標についての0の値を有するベクトルと一致するように選択される。更に、第2のサブセットは、押出を定義したパラメータおよび/またはセクションを更に定義した位置パラメータのリストを含んでもよい。
【0113】
ここで、
図4~12を参照して、方法の実装態様が議論される。それらの実装態様は、単純かつパラメトリックな3Dプリミティブ:パラメータ化された円筒、ボックス、および正規プリズムに焦点を当てられる。
図4は、そのようなプリミティブの実施例を示す。3Dプリミティブのいずれかの3Dモデルは、スイープ表現によって表され、その結果、3D平面セクションおよびセクションに垂直な3D直線押出ラインによって、各々の3Dモデルを定義することができる。
【0114】
それらの実装態様の考えられる変形例は、スイープ表現によって表されるより複雑な3D形状を網羅することを可能にすることができる。それらの3D形状では、セクションは、非正規であってもよく、および/もしくはセグメントと円弧との組み合わせであってもよく、ならびに/または押出ラインは、スプライン、すなわち、3Dポイントのセットによって表される曲線であってもよい。
【0115】
ユーザの2Dスケッチから3Dモデルを予測するために、方法の実装態様は、ニューラルネットワーク深層学習アルゴリズムを使用する。アルゴリズムは、単一の2Dスケッチから複数のパラメータ化された3Dモデルを生成することを可能にする。ニューラルネットワークはまた、予測されたモデルのタイプを制約するよう、入力においてユーザフィードバックを受けることができる。
【0116】
それらの実装態様では、ニューラルネットワークは、vanillaモデルであり、2Dスケッチからの1つの単一の3Dモデルを返す。しかしながら、変形例は、例えば、出力されることになる3Dモデルの数を表す入力パラメータをニューラルネットワークが含む場合、2Dスケッチからのいくつかの3Dモデルを返すことを可能にすることができる。
【0117】
それらの実装態様では、ニューラルネットワークは、VAEモデルであり、2Dスケッチの単一の入力から1つまたは複数の命題を生成するよう、1つまたは複数のランダム変数を入力として見なすように構成されている。各々の入力されたランダム変数は、各々の提案された3Dモデルに対応する。ランダム変数は、正規ガウス分布N(0,1)からサンプリングされる。
【0118】
それらの実装態様のオプションでは、ニューラルネットワークは特に、CVAEモデルであり、3Dモデルのタイプを賦課するための条件変数を含む。CVAEモデルは、2Dスケッチから、所望の賦課されたタイプの1つまたは複数の3Dモデルを返す。言い換えると、ニューラルネットワークは、VAEまたはCVAEのいずれかとして使用されてもよい。
【0119】
それらの実装態様では、各々の3Dモデルは、以下によって完全に記述されてもよい。
-セクションを定義したポイントの数に対応するサイドの数(nbSides)。それは、プリミティブのタイプとしても見なすことができる。実施例では、サイドの最大数は、5に制限される。更に、2~5のサイドの数は、円筒、三角形プリズム、ボックスまたはキューブ、および五角形プリズムのそれぞれに帰属する。
-セクションのポイントを定義した3Dポイントの最大で5対のリストとしての3Dポイント(point)のセット。例えば、ポイント=[{(X1,Y1,Z1),(X´1,Y´1,Z´1)},…,{(X5,Y5,Z5),(X´5,Y´5,Z´5)}]である。実施例では、2つのポイントの対は、セクションの湾曲サイド、例えば、円筒を記述するために使用される。表記ポイント[i][0]およびポイント[i][1]は、3Dポイントの各々の対における第1の要素および第2の要素に対して使用される。
-それぞれのサイドがセグメントまたは円弧であるかどうかを表すための、ポイントの各々の対に関連付けられたフラグ。0に等しいフラグは、セグメントを表し、1に等しいフラグは、円弧を表す。円筒のポイントの全ての対についてのフラグは1であり、ボックスおよび正規プリズムのポイントの全ての対についてのフラグは0である。
【0120】
3Dモデルの構築は、
図5Aおよび
図5Bを参照して説明される。
【0121】
最初に、セクションを定義したポイント、すなわち、[0,nbSides]におけるiについてのポイント[i]が3D空間において考慮される。概して、それらのポイントが同一の2D平面に存在しないことが起こることがあり、よって、ポイントの平均平面(mean plane)が計算される。ポイントのセットに対応する平均平面は、ポイントの各々へのその距離の合計を最小にする平面を意味する。平均平面は、本分野におけるいずれかの既知の方法によって計算されてもよい。それらのポイントは、角度の昇順でソートされる。各々のポイント[i]への帰属した角度は、平均平面上のポイント[i]および参照ポイントを接続するセグメントと、平均平面上にあり、参照ポイントを渡す参照ラインとの間の角度として、平均平面に対して定義されてもよい。ポイントの各々は、この平面に直交して投影される。投影されたポイントの各々は、元のポイントと同一の表記、ポイント[i]によって提示されてもよい。次いで、ポイント[i]の対応するフラグがセグメントを表す場合、すなわち、0に等しい場合、閉じられた平面セクションは、[0,nbSides]におけるiについてのポイント[i][0]の各々とポイント[(i+1)%nbSides][0]の各々との間でラインを描くことによって取得される。2つの整数aおよびb(bがゼロでないとき)についての表記a%bは、数aの数bでの除算の余りを表す。ポイント[i]の対応するフラグが円弧を表す場合、すなわち、1に等しい場合、湾曲ラインは、[0,nbSides]におけるiについてのポイント[i][1]を通過するように、ポイント[i][0]の各々とポイント[(i+1)%nbSides][0]との間で描かれる。セクションについての結果として生じる曲線は、円形または楕円形である。更に、押出は、平均平面に対する垂直方向(n)における押出長さ(h)により計算される。
【0122】
図6を参照して、湾曲押出ラインに沿ってセクションが押し出される、それらの実装態様の変形例が議論される。セクションは、円弧およびセグメントの両方を含み、4つの位置パラメータ[{(X
1,Y
1,Z
1),(X´
1,Y´
1,Z´
1)},(X
2,Y
2,Z
2),(X
3,Y
3,Z
3),(X
4,Y
4,Z
4)]のリストによって表され、位置パラメータの第1の位置パラメータは、パラメータの対から構成され、リストの各々のパラメータは、3Dにおけるセクションの境界のポイントのデカルト座標を表す。押出ラインは、パラメータのリスト[(X
h,1,Y
h,1,Z
h,1),(X
h,2,Y
h,2,Z
h,2),(X
h,3,Y
h,3,Z
h,3),(X
h,4,Y
h,4,Z
h,4)]によって定義された、任意選択で3度未満のスプラインによって表される。
【0123】
それらの実装態様の別の変形例では、0と1よりも大きいnとの間の整数値を取るためのフラグを一般化することができる。フラグの各々の値は、湾曲ライン(円弧、スプライン、またはNURBS)のセグメントまたはタイプのいずれかを示す。
【0124】
実施例から、パラメータnbSidesのセット、ポイント、およびhは、3Dプリミティブの3Dモデルをパラメータ化および構築するのに十分であることが明白である。
【0125】
ここで、
図7を参照して、パラメータのこの特定の選択についてのデータセットを形成する実施例が議論される。
【0126】
データセット形成方法の実施例では、セクションのサイドの数に対してランダムなサンプリングが行われ、nbSidesは、間隔[2,5]において整数から一様確率分布に従ってサンプリングされる。この実施例の変形例では、nbSidesは、間隔[2,5]において整数から非一様確率分布に従ってサンプリングされる。円筒およびボックスが実際の3D設計においてより多く出現するので、非一様確率分布は、nbSidesについての他の値と比較して、円筒(nbSides=2)およびボックス(nbSides=4)についてより大きな値を有する。一様サンプリングは、間隔[hmin,hmax]の最大値と最小値との間にある押出長さ(h)に対して行われる。値hminおよびhmaxは、例えば、1および10のそれぞれに、ユーザによって設定され、またはデータセット形成方法によって自動でデフォルトに設定される。更に、例えば、一様距離において円形上のポイントのnbSides数を選択することによって、nbSides=3または5であるときのプリズムについての正規セクションを取得するよう、パラメータポイントが計算される。選択されたポイントは次いで、極座標系においてそれらの対応する角度の昇順でソートされる。他のプリズムについての正規セクションを取得した後のボックス、nbSides=4について、間隔[rmin,rmax]の最大値と最小値との間の、2つのサイドの間の長さの比率に対応して、新たなランダムパラメータ(r)が一様にサンプリングされる。値rminおよびrmaxは、例えば、1および10のそれぞれに、ユーザによって設定され、またはデータセット形成方法によって自動でデフォルトに設定される。データセット形成方法のオプションでは、方法は、例えば、単位円板(unit disc)の内部のポイントのnbSides数を選択することによって、nbSides=3、4、または5のときの3Dモデルについての非正規セクションを生成する。選択されたポイントは次いで、極座標系においてそれらの対応する角度の昇順でソートされる。
【0127】
プリミティブ3Dモデルは、ランダムな回転を模倣するよう、起点に対してランダムな回転がプリミティブ3Dモデルに適用された後、言及されたサンプリングのクロス積からサンプリングされる。実施例では、ランダムな回転は、X軸およびZ軸に対して適用され、その値は、X軸に対して間隔[10°,80°]およびZ軸に対して間隔[0°,180°]から一様にサンプリングされる。次いで、プリミティブ3Dモデルは、単位球面の内部で適合するように、再スケーリングパラメータを選択し、全ての方向において3Dモデルをスケーリングすることによって再スケーリングされる。このステップは、学習を改善する。次いで、3Dモデルは、サイズ256×256のモデルの写真を取得するよう、2D平面上で固定された観点から投影される。スケッチのラインにランダムノイズが適用され、何らかのランダムに選択された頂点は、ランダム値または予め定義された値だけランダムな方向または予め定義された方向に移動する。このステップは、不正確な入力された2Dスケッチに適用される3D設計方法を改善する。
【0128】
次いで、結果として生じるスケッチの境界正方形(bounding square)が計算され、256×256の大きさに変更される。このスケッチは黒および白であると共に、レンダリングされたエッジは黒である。画像の色は、黒の背景および白のラインを取得するよう反転される。このステップは、ニューラルネットワークの入力された2Dスケッチにおけるゼロの値を増大させ、学習を改善する。レンダリングされたスケッチの値は、標準間隔[0,255]から~[0,1]に再スケーリングされてもよい。
【0129】
実施例におけるニューラルネットワークの訓練は、議論されたデータセット形成方法によって形成されたデータセットの一部に対して実行される。実施例では、3Dモデルは、プリミティブの1つであってもよく、ニューラルネットワークの訓練は、損失(L)を最小にすることを含む教師あり訓練を含んでもよい。損失は、以下の項のうちの1つまたは複数の総和にペナルティを課してもよい。
-予測された押出高さおよび3Dモデルの押出高さの不一致を表すタイプの項
【0130】
【0131】
を有する押出損失。ここで、hnは、それぞれの押出長さを指定し、
【0132】
【0133】
は、それぞれの予測されたhnを指定する。
-3Dモデルのセクションのポイントの予測された座標およびそれらの対応する予測された値の不一致を表すタイプの項
【0134】
【0135】
を有するポイント損失。ここで、iは、ポイントを指定し、各々のpn,iは、それぞれの3Dモデルのグラウンドトゥルースポイント[i][0]またはポイント[i][1]のそれぞれの座標nを指定し、
【0136】
【0137】
は、それぞれの予測されたpn,iを指定する。更に、SHIFTs(array)は、arrayの各々の要素を右にs回シフトするための関数を指定する。この関数は、ポイントの予測されたセットの循環置換にペナルティを課さないことを可能にする。
-3Dモデルのセクションのポイントの3Dモデルの予測された座標のタイプおよびそれらの対応する予測された値の不一致を表すタイプの項
【0138】
【0139】
を有するサイドの数。ここで、nbSidesnは、n番目の標本についてのnbSidesグラウンドトゥルースである。更に、
【0140】
【0141】
は、それぞれの3Dモデルがタイプkの3Dモデルである予測された確率を指定する。更に、nbSidesn==kは、kがnbSidesnまたは0に等しいときに1を与える関数を指定する。
【0142】
【0143】
として
【0144】
【0145】
および
【0146】
【0147】
によって定義された正規確率分布ならびに標準正規分布N(0,1)の不一致を表すタイプの項
【0148】
【0149】
を有する
Kullback-Leibler拡散損失。ここで、
【0150】
【0151】
は、予測された条件付き平均を指定し、
【0152】
【0153】
は、予測された条件付き標準偏差を指定する。
【0154】
ここで、Nは、訓練サンプルの数を指定し、nは、訓練サンプルの3Dモデルの各々を指す。更に、λ1,λ2,λ3は、変動性(variability)とターゲットの再構築信頼性との間のバランスを設定するために必要な重みを指定する。λ3の大きさを選択することは(λ1およびλ2と比較して)、生成された3Dモデルの変動性に特権を与え、サイド誤差、ポイント誤差、および押出誤差における損失誤差の観点からより大きな予測誤差を認可する。実施例では、(λ1,λ2,λ3)は、(4.0,1.0,001)として設定されてもよい。
【0155】
ここで、
図8を参照して、VAEアーキテクチャを使用した機械学習の実施例が議論される。2Dスケッチおよびランダム変数がニューラルネットワークに入力され、パラメータの3つのサブセット:ポイントのリスト、押出長さ、および予測された数のサイドについての確率のベクトル、を含むパラメータのセットが出力される。入力されたスケッチは、第1の潜在ベクトルを生成するようCNNエンコーダによって処理される。第1の潜在ベクトルは、平均および標準偏差ならびに入力されたランダム変数によって再パラメータ化トリックを介して第2の潜在ベクトルに変換される。演算子についての表記+*は、演算出力=μ+δ*εを表す。予測された数のサイドについてのベクトル確率を出力するためにFC層が使用される。予測された数のサイドについての確率のベクトルは、RNNデコーダに入力されることになる第2の潜在ベクトルと連結され、RNNデコーダでは、各々のLSTMセルは、1対のポイントを予測する。RNNデコーダの最終状態は、FC層を使用して押出長さを出力するよう、RNNデコーダへの入力されたベクトルと連結して使用される。
【0156】
ここで、
図9を参照して、第1の態様および第2の態様を組み合わせた(すなわち、CVAEアーキテクチャを使用する)機械学習方法の実施例が議論される。議論されたVAEアーキテクチャと比較して、nbSidesの予測層が除去されている。実施例では、確率のベクトルは、ユーザの選択に基づいて生成される。例えば、円筒であることは、確率のベクトルにおける第3の座標に帰属し、よって、円筒を賦課するために、入力は、[0.,0.,1.,0.,0.,0.]であってもよい。この入力は、VAEアーキテクチャにおいて予測されたベクトルと一貫している。実施例では、CVAEアーキテクチャは、別個に訓練されず、VAEアーキテクチャからの同一の学習された重みが使用される。
【0157】
実装態様の変形例に関連する機械学習方法の実施例では、ニューラルネットワークは、第2のRNNを使用して押出ラインのスプラインを定義したポイントのセットを計算してもよい。ニューラルネットワークは、セグメントの部分または円弧の部分のいずれかを指すセクションを定義したポイントの各々の対についてのフラグを予測してもよい。更に、nbSides確率ベクトルを予測する代わりに、ニューラルネットワークは、予測されたポイントの各々の対と関連付けられたSTOPフラグを予測してもよい。フラグは、関連付けられたポイントの対がセクションを最も定義しないポイント(last couple of points defining the section)の対である確率を表す。nbSidesは、>0.5の確率を有する第1のSTOPフラグの発生によって判定されてもよい。
【0158】
図10を参照して、3D設計方法の実施例が議論される。ランダム変数を入力することなく、触覚デバイスを使用してユーザによって2Dスケッチが提供される。方法は、境界正方形を計算し、それを256×256にサイズ変更する。スケッチの色は、白の描画および黒の背景を取得するよう反転される。更に、スケッチの値は、[0,255]から[0,1]に再スケーリングされる。いくつかの最確3Dモデルは、その結果として、vanillaアーキテクチャを使用して計算され、ユーザに提示される。ユーザは、ユーザの設計意図に従って提供されたモデルの1つを選択することができる。ユーザが意図された設計目的についての提案された3Dモデルにおける変形を生成することを望む場合、ユーザは、VAEアーキテクチャを使用して、同一のスケッチ、および分布N(0,1)から自動でサンプリングされたランダム変数から新たな3Dモデルを生成することができる。提案された3Dモデルにおける変形を増大させるために、ユーザは、分布の標準偏差を増大させることができ、ランダム変数は、分布N(0,2)からサンプリングされてもよい。ユーザはまた、同一のスケッチおよび自動でサンプリングされたランダム変数を仮定して、3Dモデルのタイプをボックスであるように賦課することができ、賦課されたタイプの新たな3Dモデルを生成することができる。
【0159】
ユーザはまた、同一のスケッチ、および任意選択でランダム変数を仮定して、3Dモデルのタイプを賦課することによって、新たな3Dモデルを生成することができる。これは、
図11を参照して議論される。ユーザは、GUI内の入力ウインドウにそれらの対応するNbSidesを入力するか、または触覚デバイスを介してGUIにおいて意図したタイプを選択するかのいずれかによって、立方体タイプの円筒タイプを賦課することができる。賦課されたタイプのいくつかの最確3Dモデルは、その結果として、CVAEアーキテクチャを使用して、計算され、ユーザに視覚的に提示される。
【0160】
図12を参照して、3D設計方法の別の実施例が議論される。この実施例では、方法は、3Dモデルを推論するために、完了されたスケッチを待たない。CNNエンコーダは、3Dモデルを定義したデータに2Dスケッチを符号化するために、部分的情報(不完全なスケッチからの)および学習されたパターンを使用する。この実施例では、ユーザが描画している間に、異なる3Dモデルがユーザに提案される。更に、ユーザは、VAEアーキテクチャを使用して、同一のスケッチ、およびN(0,1)から自動でサンプリングされたランダム変数から提案された3Dモデルにおける変形を生成することができる。加えてまたは代わりに、ユーザはまた、CVAEアーキテクチャを使用して、同一のスケッチを仮定して、3Dモデルのタイプを賦課することによって、新たな3Dモデルを生成することができる。
【外国語明細書】