(57)【要約】      （修正有）【課題】ニューラルネットワークを学習するために構成されたデータセットを形成するためのコンピュータ実施方法を提供する。【解決手段】ニューラルネットワークは、３Ｄ形状を表すフリーハンド描画から、３Ｄ形状を表すソリッドＣＡＤフィーチャを推測するために構成され、各々がそれぞれの３Ｄ形状を表す１つまたは複数のソリッドＣＡＤフィーチャを生成するステップを含む。また、各ソリッドＣＡＤフィーチャについて、各々がそれぞれの３Ｄ形状を表す１つまたは複数のそれぞれのフリーハンド描画を決定するステップと、データセット内で１つまたは複数のトレーニングサンプルを挿入するステップとを含む。各トレーニングサンプルは、ソリッドＣＡＤフィーチャと、それぞれのフリーハンド描画とを含む。３Ｄ形状を表すフリーハンド描画から、３Ｄ形状を表す３Ｄモデル化オブジェクトを推測するための改善されたソリューションを形成する。【選択図】なし【特許請求の範囲】
【請求項１】
ニューラルネットワークを学習するために構成されたデータセットを形成するためのコンピュータ実施方法であって、前記ニューラルネットワークは、３Ｄ形状を表すフリーハンド描画から、前記３Ｄ形状を表すソリッドＣＡＤフィーチャの推測をするために構成されており、
各々がそれぞれの３Ｄ形状を表す、１つまたは複数のソリッドＣＡＤフィーチャを生成するステップと、
各ソリッドＣＡＤフィーチャについて、
前記各々がそれぞれの３Ｄ形状を表す、１つまたは複数のそれぞれのフリーハンド描画を決定するステップと、
前記データセット内で、各々が前記ソリッドＣＡＤフィーチャおよびそれぞれのフリーハンド描画を含む、１つまたは複数のトレーニングサンプルを挿入するステップと
を含むことを特徴とする方法。
【請求項２】
前記各フリーハンド描画を決定するステップは、
前記それぞれの３Ｄ形状が可視である視点を提供するステップと、
画像内で、前記ソリッドＣＡＤフィーチャに基づく前記それぞれの３Ｄ形状のソリッド表現に関して、１つまたは複数のエッジをレンダリングするステップであって、各エッジは、前記視点からの前記ソリッド表現の輪郭エッジまたは可視エッジである、該ステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
各可視エッジは、前記ソリッド表現のＣk不連続であり、ｋは、１以上の整数であることを特徴とする請求項２に記載の方法。
【請求項４】
前記各フリーハンド描画を決定するステップは、前記１つまたは複数のレンダリングされたエッジの少なくとも一部を摂動するステップをさらに含むことを特徴とする請求項２または３に記載の方法。
【請求項５】
前記各エッジをレンダリングするステップは、ベクトルのようにして実施され、各エッジは、１つまたは複数のそれぞれのパラメトリック曲線によって表され、前記摂動するステップは、少なくとも１つのそれぞれのパラメトリック曲線について、前記少なくとも１つのそれぞれのパラメトリック曲線の１つまたは複数のパラメータにノイズを追加するステップを含むことを特徴とする請求項４に記載の方法。
【請求項６】
各ソリッドＣＡＤフィーチャは、曲線のそれぞれのシーケンスを含み、前記生成するステップは、曲線のセットを提供するステップと、前記曲線のセットをサンプリングするステップとを含むことを特徴とする請求項１ないし５のいずれか１つに記載の方法。
【請求項７】
前記曲線のセットは、
曲線タイプの離散セットと、
各曲線タイプについて、各々がそれぞれのパラメータである１つまたは複数のパラメータ領域のそれぞれの離散セットとの間のセットプロダクトを含み、各パラメータ領域は、前記それぞれのパラメータのそれぞれのパラメータ値を有し、
前記サンプリングするステップは、それぞれの曲線タイプと、前記１つまたは複数のパラメータ領域のそれぞれの離散セットの各々についてのそれぞれのパラメータ値とを各々が含む、サンプルを提供するステップを含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記曲線タイプの離散セットは、
ラインタイプ、
円弧タイプ、および／または
キュービックエルミート補間セグメントタイプ
を含むことを特徴とする請求項７に記載の方法。
【請求項９】
各ソリッドＣＡＤフィーチャは、スイープ操作を含み、前記生成するステップは、スイープ操作のセットを提供するステップと、前記スイープ操作のセットをサンプリングするステップとを含むことを特徴とする請求項１ないし８のいずれか１つに記載の方法。
【請求項１０】
前記スイープ操作のセットは、
スイープ曲線タイプの離散セットと、
各スイープ曲線タイプについて、各々がそれぞれのパラメータである１つまたは複数のパラメータ領域のそれぞれの離散セットとの間のセットプロダクトを含み、各パラメータ領域は、前記それぞれのパラメータのそれぞれのパラメータ値を有し、
前記サンプリングするステップは、それぞれのスイープ曲線タイプと、１つまたは複数のパラメータ領域の前記それぞれの離散セットの各々についてのそれぞれのパラメータ値とを各々が含む、サンプルを提供するステップを含むことを特徴とする請求項９に記載の方法。
【請求項１１】
請求項１ないし１０のいずれか１つに記載の方法に従って形成可能なデータセットを表すことを特徴とするデータ構造。
【請求項１２】
請求項１１記載の前記データセットの使用のコンピュータ実施方法であって、前記データセットに基づいてニューラルネットワークを学習するステップを含むことを特徴とする方法。
【請求項１３】
請求項１ないし１０のいずれか１つに記載の方法および／または請求項１２記載の方法を実施するための命令を含むことを特徴とするコンピュータプログラム。
【請求項１４】
請求項１１記載のデータ構造および／または請求項１３記載のプログラムが記録されたデータ記憶媒体を備えたことを特徴とするデバイス。
【請求項１５】
前記データ記憶媒体に結合されたプロセッサをさらに備えたことを特徴とする請求項１４記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータプログラムおよびシステムの分野に関し、より詳細には、３Ｄ形状を表すフリーハンド描画から、３Ｄ形状を表す３Ｄモデル化オブジェクトを推測するために構成されたニューラルネットワークを学習することに関するソリューションに関する。
【背景技術】
【０００２】
オブジェクトの設計、エンジニアリング、および製造のために、いくつかのシステムおよびプログラムが市場で提供されている。ＣＡＤは、コンピュータ支援設計の頭字語であり、たとえば、オブジェクトを設計するためのソフトウェアソリューションに関する。ＣＡＥは、コンピュータ支援エンジニアリングの頭字語であり、たとえば、将来の製品の物理的挙動をシミュレーションするためのソフトウェアソリューションに関する。ＣＡＭは、コンピュータ支援製造の頭字語であり、たとえば、製造プロセスおよび操作を定義するためのソフトウェアソリューションに関する。そのようなコンピュータ支援設計システムでは、技法の効率に関してグラフィカルユーザインターフェースが重要な役割を果たす。これらの技法は、製品ライフサイクル管理（ＰＬＭ）システム内に埋め込まれる。ＰＬＭは、長い事業計画の概念にわたって、製品の開発のために、それらの構想から寿命の終わりまで、会社が製品データを共有し、共通のプロセスを適用し、企業知識を利用する助けとなる事業戦略を指す。Ｄａｓｓａｕｌｔ  Ｓｙｓｔｅｍｅｓによって（商標ＣＡＴＩＡ、ＥＮＯＶＩＡ、およびＤＥＬＭＩＡの元で）提供されるＰＬＭソリューションは、製品エンジニアリング知識を編成するエンジニアリングハブ、製造エンジニアリング知識を管理する製造ハブ、およびエンジニアリングハブおよび製造ハブへの事業計画の一体化および接続を可能にする事業計画ハブを提供する。このシステムは、ひとまとまりで、製品、プロセス、リソースをリンクするオープンオブジェクトモデルをもたらし、動的な知識ベースの製品作成、ならびに最適な製品定義、製造準備、生産、およびサービスを推進する判断サポートを可能にする。
【０００３】
この状況において、研究者は、３Ｄ形状を表すフリーハンド描画から３Ｄ形状を表す３Ｄモデル化オブジェクトを推測するためのソリューションを探し求め続けている。以下の参考文献は、特にこの問題に関する。
【０００４】
非特許文献１から３は、スケッチから３Ｄメッシュを生成するためのアプローチを提供する。
【０００５】
メッシュの主な欠点は、それらがほとんど編集可能でなく、セマンティクスを提供しないことである。３Ｄメッシュは、基本的なポリゴン（しばしば三角形）の集まりとしてサーフェスを離散化する。サーフェスが他と関連性がなく多面的である場合、それは、ソリッドを表すことができる。そのような表現は、三角形を１つずつ編集するべきであるため、３Ｄモデル化のために適合されていない。
【０００６】
さらに、非特許文献１のアプローチは、丸みのあるメッシュを生成する。さらに、非特許文献１のアプローチは、スケッチストロークが関連付けられたアクション（作成、押し出し、曲げ）でアノテーション付けされることを必要とする。
【０００７】
非特許文献２および非特許文献３は、ディープラーニングにおける最近の利点により、丸みのある形状プライア（ｓｈａｐｅ  ｐｒｉｏｒ）ならびにアノテーション付けストロークの必要性を回避する。しかし、どちらのアプローチも依然としてメッシュを出力する。さらに、非特許文献２は、カノニカルな観点からのオブジェクトの１つまたはいくつかのスケッチ（すなわち、正面、側部、上部）を必要とし、これはユーザにとって強い制限である。
【０００８】
非特許文献４から７は、スケッチからパラメトリックサーフェスを生成するためのアプローチを提供する。
【０００９】
非特許文献４は、スケッチストロークに対していくつかの規則性（直交性、平行性、共平面性）を強制することによって曲線を生成する。その後、サーフェスが曲線に当てはめられる。このアプローチは、スケッチ中、ユーザが非常に正確であることを必要とする。すなわち、ストロークは、オブジェクトのジオメトリを表さなければならず（そのサーフェスに従うが、必ずしもその輪郭に従わない）、オクルードされたストロークが必要とされることがある。さらに、ユーザは、ストローク間の実際の３Ｄ交点を指定しなければならない。
【００１０】
非特許文献５は、スケッチにサーフェスを直接当てはめる。しかし、スケッチストロークは、ラベル付けされなければならない。ラベルは、スケッチストロークがあるべきサーフェスについてのいくつかの情報、すなわちサーフェスの限界、凹状／凸状、鋭いエッジを提供する。これらのラベルの性質により、オブジェクトの単純なパースペクティブスケッチでは十分でないため、ユーザは、ジオメトリにおける熟練者でなければならない。
【００１１】
したがって、非特許文献４および非特許文献５は、パラメトリックサーフェスを入力描画に当てはめるソリューションを提供するが、得られるサーフェスは必ずしも閉じられておらず、その結果、それらはソリッドを表さないことがある。それらがソリッドを表す場合でさえ、それらは、意味のあるソリッドＣＡＤフィーチャとして編集することができない。さらに、どちらの方法も追加のユーザ入力（交点またはストロークラベル付け）を必要とする。
【００１２】
非特許文献６は、スケッチストロークから３Ｄ曲線を生成する。このアプローチは、各ストロークが平面的な３Ｄ曲線を表すと想定する。平面が識別された後で、ストロークを２Ｄスケッチから、ストロークがあるべき平面に逆投影することによって３Ｄ曲線が得られる。同じ平面上にあるストロークは、互いに交差し、平面的なサーフェスパッチの境界を画定してよい。次いで、得られた平面的なパッチは、直角の方向に押し出しされてよい。このアプローチの主な欠点は、平面の向きが直交参照フレームの３つのカノニカルな向きに制限されることである。この参照フレームを定義するために、ユーザは、平行なラインの２つのセットを明示することを必要とされ、ラインの第１のセットは、第２のセットに対して直交する。次いで、参照フレームが消失点から推測される。
【００１３】
非特許文献７は、非常に似たアプローチを提案する。しかし、提案されているアプローチは、従来のＲＧＢ画像に加えて深度画像を必要とする。ストローク平面は、深度マップによって提供されるシーンの３Ｄから直接推定される。
【００１４】
したがって、非特許文献６および非特許文献７は、押し出されてよいサーフェスを含む結果を作り出す技法を提供する。しかし、どちらのアプローチも、ベースの２Ｄスケッチが平面の制限されたセット上にあると仮定する。さらに、どちらの方法も追加の入力、すなわちピクチャ、平行なラインのユーザ定義、深度画像を必要とする。
【００１５】
この状況の中で、３Ｄ形状を表すフリーハンド描画から、３Ｄ形状を表す３Ｄモデル化オブジェクトを推測するための改善されたソリューションが依然として求められている。
【先行技術文献】
【非特許文献】
【００１６】
【非特許文献１】Ｔ．  Ｉｇａｒａｓｈｉ，  Ｓ．  Ｍａｔｓｕｏｋａ，  ａｎｄ  Ｈ．  Ｔａｎａｋａ，  “Ｔｅｄｄｙ：  ａ  ｓｋｅｔｃｈｉｎｇ  ｉｎｔｅｒｆａｃｅ  ｆｏｒ  ３Ｄ  ｆｒｅｅｆｏｒｍ  ｄｅｓｉｇｎ，”  ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２６ｔｈ  ａｎｎｕａｌ  ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  ｇｒａｐｈｉｃｓ  ａｎｄ  ｉｎｔｅｒａｃｔｉｖｅ  ｔｅｃｈｎｉｑｕｅｓ，  １９９９，  ｐｐ．  ４０９−４１６．
【非特許文献２】Ｚ．  Ｌｕｎ，  Ｍ．  Ｇａｄｅｌｈａ，  Ｅ．  Ｋａｌｏｇｅｒａｋｉｓ，  Ｓ．  Ｍａｊｉ，  ａｎｄ  Ｒ．  Ｗａｎｇ，  “３Ｄ  ｓｈａｐｅ  ｒｅｃｏｎｓｔｒｕｃｔｉｏｎ  ｆｒｏｍ  ｓｋｅｔｃｈｅｓ  ｖｉａ  ｍｕｌｔｉ−ｖｉｅｗ  ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｎｅｔｗｏｒｋｓ，”  ｉｎ  ３Ｄ  Ｖｉｓｉｏｎ  （３ＤＶ），  ２０１７  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ，  ２０１７，  ｐｐ．  ６７−７７．
【非特許文献３】Ｊ．  Ｄｅｌａｎｏｙ，  Ｍ．  Ａｕｂｒｙ，  Ｐ．  Ｉｓｏｌａ，  Ａ．  Ｅｆｒｏｓ，  ａｎｄ  Ａ．  Ｂｏｕｓｓｅａｕ，  “３Ｄ  Ｓｋｅｔｃｈｉｎｇ  ｕｓｉｎｇ  Ｍｕｌｔｉ−Ｖｉｅｗ  Ｄｅｅｐ  Ｖｏｌｕｍｅｔｒｉｃ  Ｐｒｅｄｉｃｔｉｏｎ，”  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ＡＣＭ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ  ａｎｄ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｔｅｃｈｎｉｑｕｅｓ，  ｖｏｌ．  １，  ｎｏ．  ２１，  Ｍａｙ  ２０１８．
【非特許文献４】Ｂ．  Ｘｕ，  Ｗ．  Ｃｈａｎｇ，  Ａ．  Ｓｈｅｆｆｅｒ，  Ａ．  Ｂｏｕｓｓｅａｕ，  Ｊ．  ＭｃＣｒａｅ，  ａｎｄ  Ｋ．  Ｓｉｎｇｈ，  “Ｔｒｕｅ２Ｆｏｒｍ：  ３Ｄ  ｃｕｒｖｅ  ｎｅｔｗｏｒｋｓ  ｆｒｏｍ  ２Ｄ  ｓｋｅｔｃｈｅｓ  ｖｉａ  ｓｅｌｅｃｔｉｖｅ  ｒｅｇｕｌａｒｉｚａｔｉｏｎ，”  ＡＣＭ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｇｒａｐｈｉｃｓ，  ｖｏｌ．  ３３，  ｎｏ．  ４，  ２０１４．
【非特許文献５】Ｃ．  Ｌｉ，  Ｈ．  Ｐａｎ，  Ｙ．  Ｌｉｕ，  Ｘ．  Ｔｏｎｇ，  Ａ．  Ｓｈｅｆｆｅｒ，  ａｎｄ  Ｗ．  Ｗａｎｇ，  “ＢｅｎｄＳｋｅｔｃｈ：  ｍｏｄｅｌｉｎｇ  ｆｒｅｅｆｏｒｍ  ｓｕｒｆａｃｅｓ  ｔｈｒｏｕｇｈ  ２Ｄ  ｓｋｅｔｃｈｉｎｇ，”  ＡＣＭ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｇｒａｐｈｉｃｓ，  ｖｏｌ．  ３６，  ｎｏ．  ４，  ｐｐ．  １−１４，  Ｊｕｌ．  ２０１７．
【非特許文献６】Ｙ．  Ｚｈｅｎｇ，  Ｈ．  Ｌｉｕ，  Ｊ．  Ｄｏｒｓｅｙ，  ａｎｄ  Ｎ．  Ｊ．  Ｍｉｔｒａ，  ”ＳｍａｒｔＣａｎｖａｓ：  Ｃｏｎｔｅｘｔ−ｉｎｆｅｒｒｅｄ  Ｉｎｔｅｒｐｒｅｔａｔｉｏｎ  ｏｆ  Ｓｋｅｔｃｈｅｓ  ｆｏｒ  Ｐｒｅｐａｒａｔｏｒｙ  Ｄｅｓｉｇｎ  Ｓｔｕｄｉｅｓ，”  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ  Ｆｏｒｕｍ，  ２０１６，  ｖｏｌ．  ３５，  ｐｐ．  ３７−４８．
【非特許文献７】Ｙ．  Ｌｉ，  Ｘ．  Ｌｕｏ，  Ｙ．  Ｚｈｅｎｇ，  Ｐ．  Ｘｕ，  ａｎｄ  Ｈ．  Ｆｕ，  “ＳｗｅｅｐＣａｎｖａｓ：  Ｓｋｅｔｃｈ−ｂａｓｅｄ  ３Ｄ  Ｐｒｏｔｏｔｙｐｉｎｇ  ｏｎ  ａｎ  ＲＧＢ−Ｄ  Ｉｍａｇｅ，”  ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ３０ｔｈ  Ａｎｎｕａｌ  ＡＣＭ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｓｏｆｔｗａｒｅ  ａｎｄ  Ｔｅｃｈｎｏｌｏｇｙ，  ２０１７，  ｐｐ．  ３８７−３９９．
【非特許文献８】“Ｆｉｎｉｔｅ−ｅｌｅｍｅｎｔ  ｍｅｓｈ  ｇｅｎｅｒａｔｉｏｎ  ｆｒｏｍ  ｃｏｎｓｔｒｕｃｔｉｖｅ−ｓｏｌｉｄ−ｇｅｏｍｅｔｒｙ  ｍｏｄｅｌｓ”，  Ｅｄｗｉｎ  Ｂｏｅｎｄｅｒ，Ｗｉｌｌｅｍ  Ｆ．Ｂｒｏｎｓｖｏｏｒｔ，  Ｆｒｉｔｓ  Ｈ．Ｐｏｓｔ，  ｉｎ  Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎ，  Ｖｏｌｕｍｅ  ２６，  Ｉｓｓｕｅ  ５，  Ｍａｙ  １９９４，  Ｐａｇｅｓ  ３７９−３９２
【非特許文献９】“Ｆｉｎｉｔｅ  ｅｌｅｍｅｎｔ  ｍｅｓｈ  ｇｅｎｅｒａｔｉｏｎ  ｍｅｔｈｏｄｓ：  ａ  ｒｅｖｉｅｗ  ａｎｄ  ｃｌａｓｓｉｆｉｃａｔｉｏｎ”，  Ｋ  Ｈｏ−Ｌｅ，  ｉｎ  ３８  Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎ，  ｖｏｌｕｍｅ  ２０  ｎｕｍｂｅｒ  １  Ｊａｎｕａｒｙ／Ｆｅｂｒｕａｒｙ  １９８８
【非特許文献１０】Ｒ．  Ｊ．  Ｗｉｌｌｉａｍｓ．  Ｓｉｍｐｌｅ  ｓｔａｔｉｓｔｉｃａｌ  ｇｒａｄｉｅｎｔ−ｆｏｌｌｏｗｉｎｇ  ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  ｃｏｎｎｅｃｔｉｏｎｉｓｔ  ｒｅｉｎｆｏｒｃｅｍｅｎｔ  ｌｅａｒｎｉｎｇ．  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ，  ２２９−２５６，  １９９２
【発明の概要】
【課題を解決するための手段】
【００１７】
したがって、ニューラルネットワークを学習するように構成されたデータセットを形成するための（データセット形成）コンピュータ実施方法が提供される。ニューラルネットワークは、３Ｄ形状を表すフリーハンド描画から、３Ｄ形状を表すソリッドＣＡＤフィーチャの推測をするために構成される。本方法は、各々がそれぞれの３Ｄ形状を表す、１つまたは複数のソリッドＣＡＤフィーチャを生成するステップを含む。また、本方法は、各ソリッドＣＡＤフィーチャについて、各々がそれぞれの３Ｄ形状を表す１つまたは複数のそれぞれのフリーハンド描画を決定するステップと、データセット内で１つまたは複数のトレーニングサンプルを挿入するステップとを含む。各トレーニングサンプルは、ソリッドＣＡＤフィーチャ、およびそれぞれのフリーハンド描画を含む。
【００１８】
この方法は、以下の１つまたは複数を含んでよい。
【００１９】
−  各フリーハンド描画を決定するステップは、それぞれの３Ｄ形状が可視である視点を提供するステップと、画像内で、ソリッドＣＡＤフィーチャに基づくそれぞれの３Ｄ形状のソリッド表現に関して、１つもしくは複数のエッジをレンダリングするステップであって、各エッジは、視点からのソリッド表現の輪郭エッジもしくは可視エッジである、ステップとを含み、
−  各可視エッジは、ソリッド表現のＣk不連続であり、ｋは、１以上の整数であり、
−  各フリーハンド描画を決定するステップは、１つもしくは複数のレンダリングされたエッジの少なくとも一部を摂動するステップをさらに含み、
−  各エッジをレンダリングするステップは、ベクトルのようにして実施され、各エッジは、１つもしくは複数のそれぞれのパラメトリック曲線によって表され、摂動するステップは、少なくとも１つのそれぞれのパラメトリック曲線について、少なくとも１つのそれぞれのパラメトリック曲線の１つもしくは複数のパラメータにノイズを追加するステップを含み、
−  各ソリッドＣＡＤフィーチャは、曲線のそれぞれのシーケンスを含み、生成するステップは、曲線のセットを提供するステップと、曲線のセットをサンプリングするステップとを含み、
−  曲線のセットは、曲線タイプの離散セットと、各曲線タイプについて、各々がそれぞれのパラメータである１つもしくは複数のパラメータ領域のそれぞれの離散セットとの間のセットプロダクトを含み、各パラメータ領域は、それぞれのパラメータのそれぞれのパラメータ値を有し、サンプリングするステップは、それぞれの曲線タイプと、１つもしくは複数のパラメータ領域のそれぞれの離散セットの各々についてのそれぞれのパラメータ値とを各々が含む、サンプルを提供するステップを含み、
−  曲線タイプの離散セットは、ラインタイプ、円弧タイプ、および／もしくはキュービックエルミート補間セグメントタイプを含み、
−  各ソリッドＣＡＤフィーチャは、スイープ操作を含み、生成するステップは、スイープ操作のセットを提供するステップと、スイープ操作のセットをサンプリングするステップとを含み、ならびに／または
−  スイープ操作のセットは、スイープ曲線タイプの離散セットと、各スイープ曲線タイプについて、各々がそれぞれのパラメータである１つもしくは複数のパラメータ領域のそれぞれの離散セットとの間のセットプロダクトを含み、各パラメータ領域は、それぞれのパラメータのそれぞれのパラメータ値を有し、サンプリングするステップは、それぞれのスイープ曲線タイプと、１つもしくは複数のパラメータ領域のそれぞれの離散セットの各々についてのそれぞれのパラメータ値とを各々が含む、サンプルを提供するステップを含む。
【００２０】
さらに、データセット形成方法に従って形成可能なデータセットを表すデータ構造が提供される。
【００２１】
さらに、データセットの使用のコンピュータ実施（使用）方法であって、データセットに基づいてニューラルネットワークを学習するステップを含む、方法が提供される。
【００２２】
さらに、データセット形成方法および／または使用方法を実施するための命令を含むコンピュータプログラムが提供される。
【００２３】
さらに、データ構造および／またはプログラムが記録されているデータ記憶媒体を備えるデバイスが提供される。デバイスは、たとえばＳａａＳ（ソフトウェアアズアサービス）もしくは他のサーバ、またはクラウドベースのプラットフォームなどにおいて非一時的コンピュータ可読媒体を形成し、または非一時的コンピュータ可読媒体として働いてよい。あるいは、デバイスは、データ記憶媒体に結合されたプロセッサを備えてよい。したがって、デバイスは、全体として、または一部としてコンピュータシステムを形成してよい（たとえば、デバイスは、全体的なシステムのサブシステムである）。さらに、システムは、プロセッサに結合されたグラフィカルユーザインターフェースを備えてよい。
【図面の簡単な説明】
【００２４】
次に、実施形態について、非限定的な例として、添付の図面を参照して述べる。
【図１】システムのグラフィカルユーザインターフェースの一例の図である。
【図２】システムの一例の図である。
【図３】本方法の図である。
【図４】本方法の図である。
【図５】本方法の図である。
【図６】本方法の図である。
【図７】本方法の図である。
【図８】本方法の図である。
【図９】本方法の図である。
【図１０】本方法の図である。
【図１１】本方法の図である。
【図１２】本方法の図である。
【発明を実施するための形態】
【００２５】
本明細書により、ニューラルネットワークの学習に関するコンピュータ実施方法が提案される。本明細書では、ニューラルネットワークは、それぞれの３Ｄ形状をそれぞれが表すフリーハンド描画のいずれか１つを入力としてとり、その入力を処理し、その処理の結果として、入力に対応する３Ｄ形状を表すソリッドＣＡＤフィーチャを推測するために構成されたそれぞれのデータを出力するように構成された機能である。したがって、そのようなニューラルネットワークは、３Ｄ形状を表すフリーハンド描画に対応するソリッドＣＡＤフィーチャを推測するために使用されてよい。
【００２６】
したがって、「推測方法」と称されてよい、そのような推測を実施するためのコンピュータ実施方法が提案される。
【００２７】
推測方法は、３Ｄ形状を表すフリーハンド描画を提供することを含んでよい。推測方法は、ニューラルネットワークをフリーハンド描画に適用することをさらに含んでよい。また、推測方法は、適用の結果（すなわち、フリーハンド描画で入力されたときニューラルネットワークによって出力されたデータ）に基づいて、少なくとも１つの３Ｄ形状を表すソリッドＣＡＤフィーチャを（たとえば、適用されたとき実質的にリアルタイムで）推測することを含んでよい。出力データは、ソリッドＣＡＤフィーチャを（直接）含んでよく、ならびに／またはソリッドＣＡＤフィーチャを（間接的に）決定するために、たとえば自動的に、および／または所定のアルゴリズムに従って処理されてよい。
【００２８】
間接的な決定の場合、出力データは、たとえば、少なくとも１つのソリッドＣＡＤフィーチャを定義する値を選択するための１つまたは複数の確率分布を含んでよく、所定のアルゴリズムは、たとえば、１つまたは複数の確率分布に基づいて少なくとも１つのソリッドＣＡＤフィーチャを決定することを含んでよい。たとえば、決定することは、たとえば１つまたは複数の確率分布に基づいて１つまたは複数の最も確からしい値を選択することによって、低い確率を有する値を選択することにペナルティを課してよい。次いで、決定することは、それぞれの１つまたは複数の選択された値にそれぞれが対応するソリッドＣＡＤフィーチャの１つまたは複数の要素（たとえば、ジオメトリ形状）を導出してよい。
【００２９】
例では、決定することは、要素の１つまたは複数を修正することをさらに含んでよい。たとえば、推測されたソリッドＣＡＤフィーチャは、ジオメトリ形状（たとえば、曲線）のそれぞれのシーケンスを含んでよい。そのような例では、修正することは、それぞれのシーケンスの１つまたは複数のジオメトリ形状（たとえば、曲線）のジオメトリを修正することを含んでよい。特定の例では、推測することは、閉じられているジオメトリ形状（たとえば、曲線）（たとえば、曲線が円を形成する）のそれぞれのシーケンスに制限されてもよい。そのような特定の例では、シーケンスの１つまたは複数のジオメトリ形状（たとえば、曲線）のジオメトリを修正することは、それぞれのシーケンスを閉じることを含んでよい。
【００３０】
機械学習の分野から知られているように、ニューラルネットワークによって入力を処理することは、入力に操作を適用することを含み、これらの操作は、重み値を含むデータによって定義される。したがって、ニューラルネットワークの学習は、そのような学習のために構成されたデータセットに基づいて重みの値を決定することを含む。そのために、データセットは、それぞれがそれぞれのトレーニングサンプルを形成するデータピースを含む。トレーニングサンプルは、ニューラルネットワークが学習された後で使用されることになる状況の多様性を表す。本明細書で参照される任意のデータセットは、１０００、１００００、１０００００、または１００００００より高い数のトレーニングサンプルを含んでよい。
【００３１】
したがって、「データセット形成方法」と称されてよい、そのようなデータセットを形成するためのコンピュータ実施方法が特に提案される。また、「学習方法」と称されてよい、そのような学習を実施するためのコンピュータ実施方法が提案される。
【００３２】
機械学習プロセスは、データセット形成方法および／または学習方法、ならびに任意選択で推測方法を含んでよい。
【００３３】
機械学習プロセスは、特にデータセット形成方法および学習方法を共に含んでよい。学習方法は、たとえば、例ではデータセット形成方法後、データセット形成方法によって形成されたデータセットに少なくとも一部基づいて実施されてよい。そのような機械学習プロセスは、特に効率的であり、改善された精度を提供する。
【００３４】
あるいは、機械学習プロセスは、データセット形成方法、およびデータセットに基づいて、ニューラルネットワークを学習するための（提案されている学習方法以外の）任意の他のコンピュータ実施方法を実施することを含んでよい。あるいは、機械学習プロセスは、データセットを形成する、またはデータセットをそのようなものとして取り出すための別の方法など、（提案されているデータセット形成方法以外の）任意の他のコンピュータ実施方法によって提供されるデータセットに対して学習方法を実施することを含んでよい。
【００３５】
データセット形成方法および学習方法について紹介する前に、それに必要とされるデータ構造について次に論じる。理解されるように、本明細書に提供されているデータ構造の定義および例は、データセット形成方法によって形成されたデータセットの少なくとも一部（たとえば、すべて）、および／または学習方法において提供されたデータセットの少なくとも一部（たとえば、すべて）に、ならびに／または推測方法の少なくとも１つの入力および／または少なくとも１つの出力に適用されてよい。
【００３６】
ソリッドＣＡＤフィーチャは、ソリッドの３Ｄ形状を表す３Ｄモデル化オブジェクトである。本明細書における任意の３Ｄ形状は、ソリッドを構成する材料の３Ｄ空間分布を表す。３Ｄモデル化オブジェクトは、ソリッドのスキン（すなわち、外側サーフェス）を表してよい。３Ｄモデル化オブジェクトは、ユーザに対して表示されるように、および／またはユーザが３Ｄモデル化オブジェクトに対して１つまたは複数のＣＡＤ設計操作を実施するために、ＣＡＤシステムに提供されてよい。
【００３７】
モデル化オブジェクトは、たとえばデータベース内に記憶されたデータによって定義される任意のオブジェクトである。さらに進めると、「モデル化オブジェクト」という表現は、データそれ自体を示す。モデル化オブジェクトを設計するために使用されるシステムのタイプに従って、モデル化オブジェクトは、異なる種類のデータによって定義されてよい。システムは、実際、ＣＡＤシステム、ＣＡＥシステム、ＣＡＭシステム、ＰＤＭシステム、および／またはＰＬＭシステムの任意の組合せであってよい。これらの異なるシステムでは、モデル化オブジェクトは、対応するデータによって定義される。したがって、ＣＡＤオブジェクト、ＰＬＭオブジェクト、ＰＤＭオブジェクト、ＣＡＥオブジェクト、ＣＡＭオブジェクト、ＣＡＤデータ、ＰＬＭデータ、ＰＤＭデータ、ＣＡＭデータ、ＣＡＥデータのことを言ってよい。しかし、これらのシステムは、モデル化オブジェクトがこれらのシステムの任意の組合せに対応するデータによって定義されてよいので、互いに排他的なものではない。したがって、システムは、ＣＡＤおよびＰＬＭシステムのどちらでもよい。
【００３８】
ＣＡＤシステムは、さらに、ＣＡＴＩＡなど、少なくともモデル化オブジェクトのグラフィカル表現に基づいてモデル化オブジェクトを設計するために適合された任意のシステムを意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトの表現を可能にするデータを含む。ＣＡＤシステムは、たとえば、エッジまたはライン、場合によってはフェイスまたはサーフェスを使用してＣＡＤモデル化オブジェクトの表現を提供してよい。ライン、エッジ、またはサーフェスは、様々な手法、たとえば非一様有理Ｂスプライン（ＮＵＲＢＳ）で表現されてよい。具体的には、ＣＡＤファイルは仕様を含み、そこからジオメトリが生成されてよく、これは表現が生成されることを可能にする。モデル化オブジェクトの仕様は、単一のＣＡＤファイルまたは複数のファイル内に記憶されてよい。ＣＡＤシステム内でモデル化オブジェクトを表すファイルの典型的なサイズは、１部品当たり１メガバイトの範囲内である。また、モデル化オブジェクトは、典型的には、数千の部品のアセンブリであってよい。
【００３９】
ＣＡＤの状況では、モデル化オブジェクトは、典型的には、３Ｄモデル化オブジェクトであってよく、たとえば、部品または部品のアセンブリなど製品、またはおそらくは製品のアセンブリを表す。「３Ｄモデル化オブジェクト」は、その３Ｄ表現を可能にするデータによってモデル化される任意のオブジェクトを意味する。３Ｄ表現は、すべての角度から部品を見ることを可能にする。たとえば、３Ｄモデル化オブジェクトは、３Ｄ表現されたとき、その軸のいずれかの周りで、または表現が表示される画面内の任意の軸周りで扱われ回されてよい。これは、特に３Ｄモデル化されない２Ｄアイコンを除外する。３Ｄ表現の表示は、設計を容易にする（すなわち、設計者が各自のタスクを統計的に達成する速さを増大する）。これは、産業における製造プロセスを高速化する。なぜなら、製品の設計は、製造プロセスの一部であるからである。
【００４０】
本明細書における任意の３Ｄ形状は、（たとえば、機械）部品または部品のアセンブリ（または同等に、部品のアセンブリ。なぜなら、部品のアセンブリは、本方法の観点から部品それ自体と見られてよく、または本方法は、アセンブリの各部品に独立して適用されてよいからである）、またはより一般的には、任意の剛体アセンブリ（たとえば、移動機構）など、現実の世界で製造されることになる製品のジオメトリを表してよい。製品は、航空宇宙、建築、建設、消費財、ハイテクデバイス、産業機器、輸送、海洋、および／またはオフショア石油／ガス生産または輸送を含めて、様々な無限の産業分野における製品の１つであってよい。したがって、３Ｄ形状は、陸上輸送手段の一部（たとえば、車および軽量トラック機器、レーシングカー、オートバイ、トラックおよびモータ機器、トラックおよびバス、列車を含む）、航空輸送手段の一部（たとえば、機体機器、航空宇宙機器、推進機器、防衛製品、航空機機器、宇宙機器を含む）、船舶輸送手段の一部（たとえば、海軍機器、商船、オフショア機器、ヨットおよび作業船、海洋機器を含む）、一般機械部品（たとえば、産業用製造機械、移動重機または機器、据え付け機器、産業機器製品、金属製品、タイヤ製造製品を含む）、電気機械または電子部品（たとえば、家電、防犯および／または制御および／または計器製品、コンピューティングおよび通信機器、半導体、医療デバイスおよび機器を含む）、消費財（たとえば、家具、住宅および庭製品、レジャー用品、ファッション製品、耐久消費財小売業者の製品、非耐久財小売業者の製品を含む）、包装（たとえば、食品および飲料およびたばこ、美容およびパーソナルケア、家庭製品の包装を含む）など、任意の機械部品であってよい産業製品を表してよい。
【００４１】
ＣＡＤの分野から知られているように、３Ｄ形状を表すソリッドＣＡＤフィーチャは、本明細書では、ＣＡＤシステムがソリッドの３Ｄジオメトリを生成すること、および、たとえばソリッドの３Ｄグラフィカル表現をレンダリングおよび表示することを可能にする１つまたは複数の命令のリストである。３Ｄグラフィカル表現は、ソリッドの外側サーフェスの３Ｄテッセレーション、たとえば、−たとえば多角形の、任意選択で三角形の−メッシュテッセレーションを含んでよい。メッシュテッセレーションは、例では、１００より高い（たとえば、１０００より高い）数のフェイス−たとえばポリゴン、任意選択で三角形−を含む。
【００４２】
ＣＡＤの分野から知られているように、ソリッドＣＡＤフィーチャは、ＣＡＤシステムのユーザによって選択可能および／または編集可能である。１つまたは複数の命令のリストは、それぞれが選択可能および／または修正可能な１つまたは複数の要素を含んでよい。ソリッドＣＡＤフィーチャの編集は、その少なくとも１つの要素の選択、および／または要素の削除または修正、および／または少なくとも１つの新しい要素の追加を含むなど、ＣＡＤの分野から知られている任意の手法でユーザによって実施されてよい。そのような編集は、メッシュなど離散的なジオメトリ表現の編集に比べて、エルゴノミクス特性をもたらす。
【００４３】
特に、命令のリストは、ソリッドを作成するための１つまたは複数のパラメータ化されたジオメトリ形状を含む１つまたは複数の制約を表してよい。各パラメータ化されたジオメトリ形状は、それぞれの１つまたは複数のパラメータを含み、たとえばタイプパラメータおよび／または１つまたは複数の形状パラメータを含む。１つまたは複数のパラメータは、選択可能および／または編集可能である（たとえば、少なくとも１つの、−たとえば各−形状パラメータを含む）。パラメータの編集は、パラメータの値を修正することを含んでよい。そのような場合、推測されるソリッドＣＡＤフィーチャは、そのテッセレーションされたメッシュのフェイスの数より５分の１以下（たとえば、１０分の１以下）の低い数のジオメトリ形状、および／または５０より低い数（たとえば、２０未満）のジオメトリ形状を含んでよい。各ジオメトリ形状は、２０より低い（たとえば、１０より低い）数のパラメータによって定義されてよい。したがって、ソリッドＣＡＤフィーチャは、メッシュに比べてよりコンパクトかつ編成された手法で３Ｄ形状を表す。また、ＣＡＤの分野から知られているように、ソリッドＣＡＤフィーチャの単一の要素に対して作用することは、グローバルな影響をもたらすことがあり、一方、メッシュの場合、単一のジオメトリエントリに対して作用することは、局所的な影響をもたらすにすぎない。たとえば、本明細書における任意のソリッドＣＡＤフィーチャは、より高い数のメッシュ三角形を移動する／増大するのではなく、５より低い（たとえば、３より低い）数のパラメータ値を修正することによって、（たとえば、湾曲する、たとえば円筒形の）その表された３Ｄ形状をスケールアップするために構成されてよい。さらに、ソリッドＣＡＤフィーチャは、離散的なジオメトリ表現よりユーザにとってセマンティクス的により意味のあるものである。
【００４４】
本明細書における任意のソリッドＣＡＤフィーチャの場合、命令のリストは、１つまたは複数のライブ／宣言的制約および／または１つまたは複数の手続き型制約を表してよい。本明細書における任意のソリッドＣＡＤフィーチャの場合、ジオメトリ形状は、ジオメトリ３Ｄ形状、すなわち３Ｄ空間において定義されたジオメトリ形状を含んでよい。３Ｄ形状は、たとえば、３Ｄ曲線および／または任意の他の３Ｄ形状（３Ｄ点および／または３Ｄソリッド）を含んでよい。本明細書における任意の３Ｄ曲線は、平面的なもの（すなわち、３Ｄ空間において定義されるが、前記３Ｄ空間の平面内に含まれる）または非平面的なもの（すなわち、平面内に含まれない）であってよい。例では、本明細書における任意のソリッドＣＡＤフィーチャの場合、ジオメトリ形状は、ジオメトリ形状の１つまたは複数のシーケンス、たとえば（たとえば、平面的な）３Ｄ曲線（たとえば、シーケンス曲線）の１つまたは複数の（たとえば、閉じられている）シーケンスを含んでよい。閉じられた輪郭（必然的に曲線のそれぞれを含む平面内）をもたらす平面的な３Ｄ曲線のシーケンスは、「閉じられた２Ｄ平面的スケッチ」と呼ばれる。例では、本明細書における任意のソリッドＣＡＤフィーチャの場合、ジオメトリ形状は、代替としてまたはそれに加えて、それぞれが入力として１つまたは複数のジオメトリオブジェクトをとる（たとえば、単一の閉じられた２Ｄ平面的スケッチ）、および／または別のジオメトリオブジェクト（たとえば、３Ｄ曲線）に基づく１つまたは複数のスイープ操作を含んでよい。本明細書における任意のスイープ操作は、たとえば、３Ｄ曲線（たとえば、スイープ曲線）、任意選択で非平面的なものによって定義されてよい。
【００４５】
本明細書における任意の３Ｄ曲線は、クラスのコンテキストにおいて３Ｄ曲線の形状を定義するそれぞれのパラメータにそれぞれが対応する１つまたはフィールドによって定義されるクラス（オブジェクト指向プログラミング参照）に属してよい。本明細書における任意の３Ｄ曲線は、特に、たとえば、１つまたは複数のバウンディング（たとえば、開始および／または終了）点のための１つまたは複数のポジショニングパラメータ（たとえば、３Ｄ座標）を含む１つまたは複数の形状パラメータによって定義されてよい。本明細書における任意の３Ｄ曲線は、代替としてまたはそれに加えて、タイプパラメータによって（たとえば、ラインタイプ、円弧タイプ、および／またはキュービックエルミート補間セグメントタイプを含む曲線タイプの中で）定義されてよい。本明細書における任意の３Ｄ曲線は、代替としてまたはそれに加えて、そのタイプに依存する追加の形状パラメータによって定義されてよく、任意選択で、曲線の１つまたは複数の中間点の中の各それぞれの１つについての１つまたは複数のポジショニングパラメータ（たとえば、３Ｄ座標）、および／または、曲線の１つまたは複数の点（たとえば、開始点および／または終了点を含む）の中の各それぞれの１つについての１つまたは複数の接線ベクトルパラメータ（たとえば、３Ｄベクトル定義）を含む。３Ｄ曲線のそのようなパラメータ化は、ユーザが編集するために特に人間工学的である。
【００４６】
学習の精度およびロバスト性ならびにフリーハンド描画への企図されている適用に関して代表される状況の多様性の点で特に効率的な例では、本明細書における任意のソリッドＣＡＤフィーチャは、所与の３Ｄ空間に関して、
−  閉じられた輪郭をもたらす平面的な曲線のシーケンス（たとえば、シーケンス曲線）によって構成された閉じられた２Ｄ平面的スケッチと、
−  それに続く、３Ｄ空間における２Ｄ平面的スケッチによって定義される閉じられたサーフェスをスイープすることによってソリッドを生成するスイープ操作（たとえば、スイープ曲線によって定義される）とによって（によってのみ）特に定義されてよい。すなわち、ソリッドは、閉じられたサーフェスが通過する体積によって定義される。
【００４７】
そのような特に効率的な例では、ソリッドＣＡＤフィーチャは、意味のあるパラメータを有し、容易に編集することができる。たとえば、ベースの２Ｄ平面的スケッチは、修正されてよく、最終的なジオメトリは、スイープ操作を新しいベースに適用することによって自動的に更新されてよい。編集は、それぞれの３Ｄ曲線（たとえば、閉じられた２Ｄ平面的スケッチを構成する３Ｄ曲線、またはスイープ操作を定義する３Ｄ曲線）のパラメータを選択および編集することを含んでよい。編集は、平面、あるいは／または、シーケンスが修正されない、および／または閉じられたままであるという要件によって制約されてよい。そのようなタイプのソリッドＣＡＤフィーチャは、ユーザにとって編集するために特に人間工学的である。
【００４８】
例では、推測方法は、ソリッドＣＡＤフィーチャによって表される３Ｄ形状（すなわち、ソリッドＣＡＤフィーチャの命令の既存のリストによって得られる３Ｄ形状）の３Ｄグラフィカル表現、たとえばその３Ｄテッセレーションを表示することを含んでよい。さらに、推測方法は、たとえばそれぞれが対応するジオメトリ形状またはジオメトリ操作を表すグラフィカルアイテムのツリー配置を含むソリッドＣＡＤフィーチャの構造のグラフィカル表現、またはソリッドＣＡＤフィーチャに含まれるジオメトリ形状の３Ｄグラフィカル表現に対する強調を表示することを含んでよい。ソリッドＣＡＤフィーチャの編集は、たとえばグラフィカルインタラクションによってグラフィカルアイテムを選択することを含んでよい。本明細書におけるグラフィカルインタラクションは、ディスプレイ上のグラフィカルアイテムの位置に対応する場所にてピクセルをアクティブ化するためにハプティックデバイスを操作することを意味する。たとえば、マウスカーソルが表示されているグラフィカルアイテムの上に配置されても、表示されているグラフィカルアイテムが、タッチ画面を介して直接、またはタッチパッドを介して間接的に触れられてもよい。この選択は、ダイアログボックスなどを開くこと、および、たとえばキーボードを介してユーザによって１つまたは複数のパラメータ値を入力することをトリガしてよい。ソリッドＣＡＤフィーチャの特に効率的な例では、グラフィカルインタラクションは、たとえば３Ｄ曲線が閉じられた２Ｄ平面的スケッチに属するとき平面内に制約されている、点の位置を移動する、ならびに／または、ベクトルの方向および／またはサイズを修正するために、点の、または３Ｄ曲線にリンクされたベクトルのグラフィカル表現上でのドラグアンドドロップアクションを含んでよい。このタイプの人間工学的編集は、ＣＡＤの分野から広く知られている。
【００４９】
例では、推測されたソリッドＣＡＤフィーチャをユーザ編集することに対する代替としてまたはそれに加えて、推測方法は、たとえばユーザインタラクションを介してソリッドＣＡＤフィーチャを１つまたは複数の他のソリッドＣＡＤフィーチャに組み合わせることを含んでよい。たとえば、推測方法は、たとえばソリッドＣＡＤフィーチャをフィーチャツリーの任意のノードに接続することによって、１つまたは複数の他のソリッドＣＡＤフィーチャを含む既存のフィーチャツリーにソリッドＣＡＤフィーチャを追加することを含んでよい。任意選択で、推測方法は、フィーチャツリーの１つまたは複数のソリッドＣＡＤフィーチャを編集することをさらに含んでよい。特定の例では、推測方法は、繰り返されてよく、いくつかのフリーハンド描画を提供すること、およびそれぞれニューラルネットワークをそれぞれのフリーハンド描画に適用することによっていくつかのソリッドＣＡＤフィーチャを推測することを含んでよい。そのような特定の例では、推測方法は、次いで、単一のフィーチャツリー内で、推測されたソリッドＣＡＤフィーチャ同士を組み合わせることを含んでよい。これらの特定の例は、フィーチャツリーを人間工学的に作成すること、したがって、フリーハンド描画に基づいて、複雑なＣＡＤ設計を実施することを可能にする。本明細書における任意のフィーチャツリーは、コンストラクティブソリッドジオメトリ（ＣＳＧ）ツリーであってよい。
【００５０】
ＣＡＤシステムは、履歴ベースであってよい。この場合、モデル化オブジェクトは、ジオメトリフィーチャの履歴を含むデータによってさらに定義されてよい。モデル化オブジェクトは、実際、物理的な人（すなわち、設計者／ユーザ）によって、標準的なモデル化フィーチャ（たとえば、押し出し、回転、カット、および／または丸め）ならびに／または標準的なサーフェス化フィーチャ（たとえば、スイープ、ブレンド、ロフト、フィル、変形、および／またはスムージング）を使用して設計されてよい。そのようなモデル化機能をサポートする多数のＣＡＤシステムは、履歴ベースのシステムである。これは、設計フィーチャの作成履歴が典型的には、入力および出力リンクを通じて前記ジオメトリフィーチャを共にリンクする非巡回的データフローを通じて保存されることを意味する。履歴ベースのモデル化パラダイムは、８０年代の初頭以来周知である。モデル化オブジェクトは、２つの持続的なデータ表現、すなわち履歴およびＢ−ｒｅｐ（すなわち、境界表現）によって記述されてよい。Ｂ−ｒｅｐは、履歴に定義された計算の結果である。モデル化オブジェクトが表されたときコンピュータの画面上に表示される部品の形状は、Ｂ−ｒｅｐ（のたとえばテッセレーション）である。部品の履歴は、設計意図である。基本的に、履歴は、モデル化オブジェクトが受けた操作に関する情報を収集する。Ｂ−ｒｅｐは、複雑な部品を表示することを容易にするために履歴と共に保存されてよい。履歴は、設計意図による部品の設計変更を可能にするために、Ｂ−ｒｅｐと共に保存されてよい。特定の例の推測方法は、ジオメトリフィーチャのそのような履歴を、フリーハンド描画アプローチにより人間工学的に、フィーチャツリーを介して取り出すことを可能にする。
【００５１】
機械的シミュレーションは、ソリッドＣＡＤフィーチャおよび／またはフィーチャツリーに基づいて実施されてよい。実際、ソリッドＣＡＤフィーチャおよび／またはフィーチャツリーは、３Ｄ形状のコンパクトかつパラメータ化された表現を（離散的なジオメトリ表現に対して）コンパクトに形成するので、機械的計算は、より正確に実施されることがある。特に、（非特許文献８によって、または非特許文献９によって教示されているように）有限要素メッシュをＣＳＧから計算することはより容易であり、より直接的である。さらに、ＣＳＧは、サーフェスのウォータープルーフ性の保証を提供する。したがって、機械的シミュレーションは、１つまたは複数の有限要素メッシュをソリッドＣＡＤフィーチャおよび／またはフィーチャツリー（たとえば、ＣＳＧ）ならびに／またはその１つまたは複数の修正から計算し、次いで各有限要素メッシュに基づいて有限要素解析を実施することを含んでよい。また、ソリッドＣＡＤフィーチャがパラメータ化されるので、シミュレーションの結果に従って、ソリッドＣＡＤフィーチャを容易に最適化することができる。したがって、１つまたは複数の修正は、各以前の有限要素解析結果に基づいて、ソリッドＣＡＤフィーチャを最適化するためのものであってよい。
【００５２】
３Ｄ形状を表す本明細書における任意のフリーハンド描画は、３Ｄ形状を表すための（人間の）ユーザによる２Ｄ画像の設計可能なフリーハンドである。「設計可能なフリーハンド」は、描画がユーザによる２Ｄ画像スケッチの特性をもたらすことを意味する。したがって、フリーハンド描画は、ユーザによって確立されたものであってよいが、あるいは、合成された、すなわちコンピュータシステムによって人工的かつ自動的に合成されたものであってもよい。特に、データセット形成方法におけるフリーハンド描画は、合成的なものであってよい。一方、推測方法におけるフリーハンド描画は、ユーザによってフリーハンドで効果的に描画されることが意図されているが、推測方法には、合成的なフリーハンド描画を供給することもできる。
【００５３】
したがって、フリーハンド描画は、３Ｄ形状が可視であるそれぞれの視点から３Ｄ形状を表す１つまたは複数の（２Ｄ平面的）ストロークを含む２Ｄ画像データ構造である。１つまたは複数のストロークは、同じ平面内で定義され、それぞれの視点から３Ｄ形状のパースペクティブを表す。各ストロークは、平面内で定義された連続的または実質的に連続的な曲線である。
【００５４】
例では、本明細書における任意のフリーハンド描画の場合、１つまたは複数のストロークは、２０ストローク未満（たとえば、１０未満）、任意選択で２以上のストロークの数を含んでよい。例では、本明細書における任意のフリーハンド描画の場合、１つまたは複数のストロークは、それぞれが視点からの３Ｄ形状のそれぞれの特徴的なエッジ、たとえば、３Ｄ形状によって表されるソリッドの輪郭エッジまたは可視エッジを表してよい。「可視エッジ」は、光の反射のアクションがユーザにとって注目すべきものであるソリッドのエッジを意味する。本明細書における任意のソリッドの可視エッジは、それぞれがソリッド表現のＣk不連続を形成する１つ（たとえば、唯一）または複数のエッジを含んでよく、ｋは、１以上の整数（たとえば、任意選択で１０または４未満）である。
【００５５】
例では、本明細書における任意のフリーハンド描画の場合、１つまたは複数の（たとえば、すべての）ストロークは、それぞれが別のストロークから（たとえば、別のストロークの端点から）、たとえば所定の閾値、たとえば１０または５ｍｍ未満の距離を有する端点を有してよい。これは、フリーハンド描画をスケッチするとき、ユーザは、このようにして、３Ｄを２Ｄで表すために、端点を前記別のストローク（たとえば、別のストロークの前記端点）に接合しようとしてよいことを表す。例では、本明細書における任意のフリーハンド描画（たとえば、推測方法に入力された１つまたは複数のフリーハンド描画および／またはデータセットの１つまたは複数のフリーハンド描画）の場合、１つまたは複数の（たとえば、すべての）ストロークは、それぞれが別のストロークから（たとえば、別のストロークの端点から）非ゼロの距離（すなわち、正のギャップ）を有する端点を有してよい。これは、フリーハンド描画をスケッチするとき、ユーザは、しばしば端点を前記別のストローク（たとえば、別のストロークの前記端点）に完璧に接合することができず、それによりギャップを作成することがあることを表す。これは、ユーザが自由に、したがって速く／人間工学的にスケッチしているからである。この不正確にもかかわらず、推測方法は、ソリッドＣＡＤフィーチャを正確に推測してよい。また、データセットは、学習が正確になるように、この不正確を表してよい。
【００５６】
例では、本明細書における任意のフリーハンド描画の場合、ストロークは、３Ｄ形状を自由に表す。これは、それらを任意の順番で、（必然的に平行な、および／または直交するストロークを有するなど）事前定義された制約なしに定義することができ、それらは、それぞれがソリッドの平面的なフェイスを表す（たとえば、距離に基づいて得られる）クラスタで編成されないことを意味する。例では、本明細書における任意のフリーハンド描画の場合、１つまたは複数のストロークは、代替としてまたはそれに加えて、それぞれ不規則であってよい。これは、ストロークを近似ししたがって誤差を導入することなしに、ストロークをパラメータ化された２Ｄ曲線（本明細書に記載のタイプのいずれかの少なくとも１つ）によって表すことができないことを意味する。ストロークはユーザによってスケッチされることが意図されているので、一般的な場合、それらはカノニカルなジオメトリを形成しない。例では、不規則なストロークは、特に／著しく不規則であることが可能である。例では、本明細書における任意のフリーハンド描画は、代替としてまたはそれに加えて、生フォーマットで、たとえばストロークに関連付けられたラベル（たとえば、作成、押し出し、曲げなどアクションアノテーション）なしに、および／または追加のデータ（たとえば、ピクチャ、平行なラインのユーザ定義、深度画像）なしに提供されてよい。したがって、推測方法は、ユーザが制約によって縛られず、ストロークを自由にスケッチすることができる（たとえば、推測方法は、２Ｄスケッチ平面に対する想定をしない）ので、また入力フリーハンド描画以外、追加の入力が必要とされないので、人間工学的である。
【００５７】
推測時、各ストロークは、パラメータ化されず、これは、ストロークを表すデータ構造が、それぞれがストロークのそれぞれの部分（たとえば、ピクセル）を表すデータのピースを含み、データ構造がこれらの部分の生の集約を表すことを意味する。推測方法は、ユーザによって入力フリーハンド描画の各ストロークをスケッチすることを含んでよい。スケッチすることは、ストロークを定義する画面の一連のピクセルを順次（たとえば、実質的に連続的に）アクティブ化することによって、コンピュータの画面とのグラフィカルインタラクションによって実施されてよい。アクティブ化は、マウスなどピクセルに対して作用するハプティックデバイス（たとえば、ストロークを定義するカーソル移動）を介して、またはタッチ画面またはタッチパッドとのユーザインタラクション（たとえば、タッチ画面またはタッチパッド上でストロークを物理的にタッチ描画することを含むインタラクション）を介して実施されてよい。これは、スケッチ設計またはストローク設計としてＣＡＤの分野で周知である。代替では、紙にスケッチされた描画または任意の他の画像のスキャンが推測方法に入力されてもよい。あるいは、フリーハンド描画は、たとえば別のユーザによって、および／または以前の技法のいずれかによって作り出されて、メモリから取り出されても、遠くのコンピュータシステムから受信されてもよい。
【００５８】
例では、推測方法は、ユーザがストロークをスケッチするときフリーハンド描画のグラフィカル表現を（たとえば、リアルタイムに）表示することを含んでよい。推測方法は、ニューラルネットワークの適用をトリガしてよい。たとえば、ユーザが書き終えたとき、ユーザは、ニューラルネットワークの適用およびソリッドＣＡＤフィーチャの推測をトリガしてよい。その結果、本方法は、任意選択でフリーハンド描画のグラフィカル表現を依然として同時に表示している間、ソリッドＣＡＤフィーチャの３Ｄグラフィカル表現を表示してよい。次いで、ユーザは、ソリッドＣＡＤフィーチャを処理する（たとえば、編集、ツリーへの一体化、シミュレーション）ためにフリーハンド描画のグラフィカル表現を隠してよい。推測方法は、任意選択で上記のように推測方法を繰り返すことを含めて、ユーザによって設計された複雑な３Ｄモデル化オブジェクトを表示している間に実施されてよい。したがって、推測方法は、スケッチベースの設計能力を履歴ベースのＣＡＤシステムに提供する。
【００５９】
したがって、本明細書における任意の方法は、ソリッドＣＡＤフィーチャを含む３Ｄモデル化オブジェクトを設計するためのプロセス、特に推測方法の一部であってよい。「３Ｄモデル化オブジェクトを設計すること」は、３Ｄモデル化オブジェクトを洗練するプロセスの少なくとも一部である任意のアクションまたは一連のアクションを示す。したがって、本方法は、３Ｄモデル化オブジェクトを最初から作成することを含んでよい。あるいは、本方法は、以前作成された３Ｄモデル化オブジェクトを提供し、次いで３Ｄモデル化オブジェクトを修正することを含んでよい。
【００６０】
本明細書における任意の方法は、製造プロセスに含まれてよく、これは、本方法を実施した後、モデル化オブジェクトに対応する物理的製品を作り出すことを含んでよい。いずれの場合も、本方法によって設計されたモデル化オブジェクトは、製造オブジェクトを表してよい。したがって、モデル化オブジェクトは、モデル化ソリッド（すなわち、ソリッドを表すモデル化オブジェクト）であってよい。製造オブジェクトは、部品または部品のアセンブリなど製品であってよい。本方法は、モデル化オブジェクトの設計を改善するので、本方法は、製品の製造をも改善し、したがって製造プロセスの生産性を高める。
【００６１】
次に、データセット形成方法および学習方法について、一般的に紹介されている。
【００６２】
データセット形成方法は、それぞれの３Ｄ形状をそれぞれが表す１つまたは複数のソリッドＣＡＤフィーチャを生成すること（たとえば、合成すること）を含む。データセット形成方法は、各ソリッドＣＡＤフィーチャについて、それぞれの３Ｄ形状をそれぞれが表す１つまたは複数のフリーハンド描画を（たとえば、生成されたソリッドＣＡＤフィーチャに基づいて）決定すること（たとえば、合成すること）、ならびに、データセット内に、それぞれが（たとえば、合成された）ソリッドＣＡＤフィーチャおよびそれぞれの（たとえば、合成された）フリーハンド描画を含む１つまたは複数のトレーニングサンプルを挿入することをさらに含む。
【００６３】
「それぞれのデータピースを提供すること／生成すること／決定すること／合成すること」は、少なくともいくつかの点において、データピースがコンピュータシステムのメモリ上に記録され、プロセッサにとってアクセス可能であることを暗示する。
【００６４】
「データセット」は、トレーニングサンプルを含み機械学習のために構成された任意のデータ構造を意味し、データ構造は、コンピュータシステムのメモリ上に記録され、プロセッサにとってアクセス可能である。データセット形成方法は、データセットを不揮発性メモリ上に記録することを含んでよい。
【００６５】
データセット内にデータピースをトレーニングサンプルとして「挿入すること」または「挿入しないこと」は、データセット形成方法の少なくともいくつかの点（たとえば、終わり）において、データセットは、データセットがすべての「挿入された」データピース（すなわち、データセットを表すデータ構造内でメモリ上にそのように記録されるもの）を含み、一方、データセットは、すべての「挿入されない」データピース（すなわち、データセットを表す少なくともデータ構造内でメモリ上にそのように記録されないもの）を除外する（すなわち、含まない）状態で、コンピュータシステムの（たとえば、不揮発性）メモリ上に記録される。次いで、学習は、例ではデータセットのさらなる処理の後、データセットに基づいてよい。したがって、学習されたニューラルネットワークは、データセット内に挿入されたデータピースと一貫していることになる。
【００６６】
データセット形成方法は、ＣＡＤ設計のための改善されたソリューションを形成する。形成されたデータセットは、それぞれの３Ｄ形状のフリーハンド描画と、それぞれの３Ｄ形状を表すソリッドＣＡＤフィーチャとをそれぞれが含むトレーニングサンプルを含む。したがって、データセットは、例では提案されている学習方法と共に、フリーハンド描画をソリッドＣＡＤフィーチャに変換するために使用可能なニューラルネットワークを学習するために構成される。さらに、データセットは、企図されている学習に関してラベル付けされる。実際、ニューラルネットワーク（フリーハンド描画）の潜在的な入力は、それぞれがグラウンドトゥルース出力（それぞれのソリッドＣＡＤフィーチャ）によってデータセット内でラベル付けされる。したがって、学習は、監視ありであってよく、したがって特に効率的である。
【００６７】
学習方法は、それぞれの３Ｄ形状をそれぞれが表すフリーハンド描画を含むデータセットを提供すること、およびデータセットに基づいてニューラルネットワークを学習することを含む。
【００６８】
学習方法は、ＣＡＤ設計のための改善されたソリューションを形成する。特に、学習されたニューラルネットワークは、フリーハンド描画をソリッドＣＡＤフィーチャに変換するために使用可能である。ＣＡＤの状況では、これはすでに論じられているように特に有用である。さらに、学習されたニューラルネットワークでそのような変換を実施することは、高速なまたはリアルタイムの実行、面倒な従来の手動プログラミング／コーディングが不要、および結果の精度（たとえば、ここでの精度は、ソリッドＣＡＤフィーチャを実行した結果と、フリーハンド描画をスケッチするときユーザによって意図されている３Ｄ形状との間で評価される３Ｄ類似度の値、たとえば任意選択でソリッドＣＡＤフィーチャを実行した結果の（たとえば、特徴的なエッジの）２Ｄ投影とフリーハンド描画との間で評価される２Ｄ類似度の値として測定されるものを指す）など、機械学習の分野によって提供される利益を達成することを可能にする。したがって、学習方法は、３Ｄ設計の状況においてエルゴノミクスを改善する。
【００６９】
学習は、データセットの少なくとも一部に基づく監視ありトレーニングを含んでよい。そのような場合、データセットの前記少なくとも一部は、各フリーハンド描画について、フリーハンド描画で（ラベル付き）トレーニングサンプルを形成するそれぞれのソリッドＣＡＤフィーチャを含む。データセットの前記少なくとも一部は、任意の方法に従って提供され、たとえばデータセット形成方法に従って形成されてよい。
【００７０】
代替としてまたはそれに加えて、学習は、データセットの少なくとも別の一部に基づく監視なしトレーニングを含んでよい。そのような場合、データセットの前記少なくとも別の一部のフリーハンド描画はそれぞれ、それぞれの（ラベル付けされていない）トレーニングサンプルを形成する。データセットの前記少なくとも別の一部は、任意の方法に従って提供され、たとえばフリーハンド描画の商用データベースとして取り出されてよい。
【００７１】
特に効率的な例では、学習方法は、データセット形成方法によって形成されたデータセットに基づく監視ありトレーニングを含んでよい。そのような例のロバストな例では、学習は、たとえば監視ありトレーニング後に別のデータセットに基づく監視なしトレーニングをさらに含んでよい。機械学習の分野から知られているように、各トレーニングは、たとえばミニバッチごとに、それぞれのデータセットを反復的に処理すること、および反復的処理に沿ってニューラルネットワークの重み値を修正することを含んでよい。これは、確率的勾配降下に従って実施されてよい。重み値は、各トレーニングについて任意の手法で初期化されてよい。例では、監視なしトレーニングの重み値は、監視ありトレーニングの終わりに得られる重み値で初期化されてよい。重み値は、監視ありトレーニングについて、任意の手法で、たとえばランダムに、またはそれぞれゼロ値に初期化されてよい。したがって、データセット形成方法および監視ありトレーニングは、別のデータセットに基づいてよいさらなるトレーニング、すなわち監視なしトレーニングのために重み値を初期化するための手法を形成する。他のデータセットは、たとえば、データセット形成方法によって形成されたラベル付けされたデータセットよりも現実を表すラベル付けされていないデータセットであってよい。したがって、監視なしトレーニングは、監視ありトレーニング後に停止することに比べて、より正確な結果をもたらすことがある。しかし、機械学習の分野から知られているように、監視なしトレーニングは、非常に長く、任意に初期化された場合、不正確な結果を提供する可能性がある。提案されているアプローチでは、監視あり学習は、比較的良好な初期化を提供する。
【００７２】
本方法は、コンピュータ実施される。
【００７３】
これは、方法のステップ（実質的にすべてのステップ）が少なくとも１つのコンピュータ、または任意の同様のシステムによって実行されることを意味する。したがって、方法のステップは、コンピュータによって、おそらくは完全に自動的に、または半自動的に実施される。例では、方法のステップの少なくともいくつかのトリガは、ユーザコンピュータインタラクションを通じて実施されてよい。必要とされるユーザコンピュータインタラクションのレベルは、予見されるオートマティズムのレベルに依存し、ユーザの望みを実装するための必要とバランスをとってよい。例では、このレベルは、ユーザ定義されても、および／または事前定義されてもよい。
【００７４】
また、これは、ニューラルネットワーク、データセット、１つまたは複数の（たとえば、すべての）入力、および／または１つまたは複数の（たとえば、すべての）出力がそれぞれ、それぞれのデータ構造によって表されてよいことを意味する。１つまたは複数の（たとえば、すべての）データ構造はそれぞれ、それぞれのデータ記憶媒体上に非一時的に記録されてよい。
【００７５】
方法のコンピュータ実施の典型的な例は、この目的のために適合されたシステムで方法を実施することである。システムは、メモリに結合されたプロセッサと、グラフィカルユーザインターフェース（ＧＵＩ）とを備えてよく、メモリには、方法を実施するための命令を含むコンピュータプログラムが記録されている。メモリは、データベースを記憶してもよい。メモリは、そのような記憶のために適合された任意のハードウェアであり、おそらくは、いくつかの物理的に異なる部分（たとえば、プログラムのためのもの、およびおそらくはデータベースのためのもの）を備える。システムは、ＣＡＤシステムであってよい。
【００７６】
図１は、本明細書における任意のシステムのＧＵＩの一例を示し、システムは、ＣＡＤシステムである。
【００７７】
ＧＵＩ２１００は、典型的なＣＡＤのようなインターフェースであってよく、標準的なメニューバー２１１０、２１２０と、下部ツールバー２１４０および側部ツールバー２１５０とを有する。そのようなメニューバーおよびツールバーは、ユーザ選択可能なアイコンのセットを含み、各アイコンは、当技術分野で知られているように、１つまたは複数の操作または機能に関連付けられている。これらのアイコンのいくつかは、ＧＵＩ２１００内に表示された３Ｄモデル化オブジェクト２０００を編集する、および／またはそれらに働きかけるために適合されたソフトウェアツールに関連付けられている。ソフトウェアツールは、ワークベンチにグループ化されてよい。各ワークベンチは、ソフトウェアツールのサブセットを含む。特に、ワークベンチの１つは、モデル化製品２０００のジオメトリフィーチャを編集するのに適した編集ワークベンチである。操作時には、設計者は、たとえばオブジェクト２０００の一部を予め選択し、次いで適切なアイコンを選択することによって操作を開始し（たとえば、寸法、色などを変更する）、またはジオメトリ制約を編集してよい。たとえば、典型的なＣＡＤ操作は、パンチングのモデル化、または画面上に表示された３Ｄモデル化オブジェクトの折り畳みである。ＧＵＩは、たとえば、表示された製品２０００に関係するデータ２５００を表示してよい。図の例では、「フィーチャツリー」として表示されたデータ２５００、およびそれらの３Ｄ表現２０００は、ブレーキキャリパおよびディスクを含むブレーキアセンブリに関する。さらに、ＧＵＩは、編集される製品の操作のシミュレーションをトリガするために、たとえばオブジェクトの３Ｄの向きを容易にするために様々なタイプのグラフィックツール２１３０、２０７０、２０８０を示し、または表示された製品２０００の様々な属性をレンダリングしてよい。カーソル２０６０は、ユーザがグラフィックツールとインタラクションすることを可能にするようにハプティックデバイスによって制御されてよい。
【００７８】
３Ｄモデル化オブジェクト２０００は、３Ｄ形状の離散的なジオメトリ表現のグラフィカル表現であってよく、推測方法は、編集可能フィーチャツリー２５００の任意のソリッドＣＡＤフィーチャを決定することを可能にしてよい。したがって、推測方法は、ＣＡＤシステムの２Ｄスケッチ機能に基づいて、編集可能フィーチャツリー２５００を編集（たとえば、ソリッドＣＡＤフィーチャを追加）し、同時に３Ｄ形状の離散的なジオメトリ表現２０００を更新することを可能にする。これは、高いエルゴノミクスをもたらす。
【００７９】
図２は、本明細書における任意のシステムの一例を示し、このシステムは、クライアントコンピュータシステム、たとえばユーザのワークステーションである。
【００８０】
この例のクライアントコンピュータは、内部通信バス１０００に接続された中央処理ユニット（ＣＰＵ）１０１０と、やはりバスに接続されたランダムアクセスメモリ（ＲＡＭ）１０７０とを含む。クライアントコンピュータは、バスに接続されたビデオランダムアクセスメモリ１１００に関連付けられているグラフィカル処理ユニット（ＧＰＵ）１１１０をさらに備える。ビデオＲＡＭ１１００は、当技術分野でフレームバッファとしても知られている。大容量記憶デバイスコントローラ１０２０は、ハードドライブ１０３０など大容量メモリデバイスへのアクセスを管理する。コンピュータプログラム命令およびデータを有形に実施するのに適した大容量メモリデバイスは、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイス、内部ハードディスクおよび取外し式ディスクなど磁気ディスク、光磁気ディスク、ならびにＣＤ−ＲＯＭディスク１０４０など、半導体メモリデバイスを含む、すべての形態の不揮発性メモリを含む。前述のいずれかは、特別に設計されたＡＳＩＣ（特定用途向け集積回路）によって補われても、それらに組み込まれてもよい。ネットワークアダプタ１０５０は、ネットワーク１０６０へのアクセスを管理する。クライアントコンピュータは、カーソル制御デバイス、キーボードなど、ハプティックデバイス１０９０を含んでもよい。カーソル制御デバイスは、クライアントコンピュータ内で、ユーザがディスプレイ１０８０上の任意の所望の場所にカーソルを選択的に配置することを可能にするために使用される。さらに、カーソル制御デバイスは、ユーザが様々なコマンドを選択し、制御信号を入力することを可能にする。カーソル制御デバイスは、システムへの入力制御信号のためにいくつかの信号生成デバイスを含む。典型的には、カーソル制御デバイスはマウスであってよく、マウスのボタンは、信号を生成するために使用される。代替としてまたはそれに加えて、クライアントコンピュータシステムは、感応式パッドおよび／または感応式画面を備えてよい。
【００８１】
本明細書におけるコンピュータプログラムは、コンピュータによって実行可能な命令を含んでよく、これらの命令は、上記のシステムに本方法を実施させるための手段を含む。プログラムは、システムのメモリを含めて、任意のデータ記憶媒体に記憶可能であってよい。プログラムは、たとえば、デジタル電子回路内で、またはコンピュータハードウェア、ファームウェア、ソフトウェア内で、またはそれらの組合せで実装されてよい。プログラムは、装置、たとえばプログラム可能なプロセッサによって実行可能であるように機械可読記憶デバイス内で有形に実施される製品として実装されてよい。方法ステップは、命令のプログラムを実行し、入力データに作用し出力を生成することによって本方法の機能を実施するプログラム可能なプロセッサによって実施されてよい。したがって、プロセッサはプログラム可能であり、データ記憶システム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスからデータおよび命令を受信し、それらにデータおよび命令を送信するように結合されてよい。アプリケーションプログラムは、上位手続き型またはオブジェクト指向プログラミング言語で、または望むならアセンブリまたは機械言語で実装されてよい。いずれの場合も、言語は、コンパイル型またはインタープリタ型言語であってよい。プログラムは、完全インストールプログラムまたは更新プログラムであってよい。システム上でプログラムを適用することは、いずれの場合も、本方法を実施するための命令をもたらす。
【００８２】
次に、曲線のそれぞれの（たとえば、閉じられている）シーケンスおよび／または（たとえば、スイープ曲線によって定義された）スイープ操作を含むソリッドＣＡＤフィーチャの上記で紹介されている例について、さらに論じられている。
【００８３】
データセット形成方法において生成される１つまたは複数の（たとえば、すべての）ソリッドＣＡＤフィーチャ、学習方法によって提供される１つまたは複数の（たとえば、すべての）（たとえば、候補）ソリッドＣＡＤフィーチャ、および／または推測方法によって提供される１つまたは複数の（たとえば、すべての）ソリッドＣＡＤフィーチャは、それぞれこれらの例に沿ったものでよい。
【００８４】
そのような例では、学習方法は、シーケンス曲線の候補セット、および／またはスイープ操作の候補セット、たとえばスイープ曲線の候補セット（たとえば、曲線の共通の候補セット）を提供することを含んでよく、学習は、曲線の候補セットおよび／またはスイープ操作の候補セットにさらに基づく。「候補セットを提供すること」は、学習方法、特に学習ステップが、前記候補セットの各要素を（少なくともいくつかの点において）推測の候補とみなす能力を与えられることを意味する。機械学習の分野から知られているように、学習ステップは、推測方法が学習方法に供給されるデータセットと一貫して推測を実施する傾向があるように、ニューラルネットワークの重み値を自由に設定することを含んでよい。また、「曲線／スイープ操作の候補セットを提供すること」は、候補セットの各要素が推測中に潜在的に推測されるように使用可能であるように、ニューラルネットワークアーキテクチャが予め決定され、学習ステップが実施されることを意味する。例では、候補セットの各要素は、各推測されるソリッドＣＡＤフィーチャのための候補である。特に、曲線の候補セットの各要素は、曲線のシーケンスの各推測される曲線のための候補であってよい。
【００８５】
曲線の候補セットおよび／またはスイープ操作の候補セットは、それぞれ曲線（あるいは、スイープ操作）の少なくとも１つの連続的なサブセットを含んでよい。「連続的」は、連続的な変形の各中間状態がそれ自体候補要素であるように、サブセットの各要素を、サブセットの別の要素の特定の連続的な変形（たとえば、固定された数のパラメータでパラメータ化されたもの）によって得ることができることを意味する。例では、各候補セットは、いくつかの連続的なサブセット（たとえば、曲線タイプ当たり１つ）を含む。これは、学習の精度を改善する。実際、要素の少なくとも１つの連続体がすべて、推測されるソリッドＣＡＤフィーチャの要素になるようにアクセス可能であるので、推測をそのような連続体内でうまく実施することができる。
【００８６】
次に、曲線のシーケンス（たとえば、平面的な２Ｄ曲線、すなわちシーケンス曲線）および／またはスイープ操作を定義する曲線（たとえば、スイープ曲線）の曲線の例について論じられている。含まれるデータ構造は、任意選択で、同じ各シーケンス曲線について、および／またはスイープ曲線について同じであってよい。
【００８７】
曲線タイプの離散セット、および各曲線タイプについてそれぞれがそれぞれの（たとえば、連続的な）パラメータのものである１つまたは複数のパラメータ領域のそれぞれの離散セットであって、各パラメータ領域がそれぞれの連続的なパラメータのそれぞれのパラメータ値を有する、離散セットを考えると、曲線は、１つまたは複数のパラメータ領域のそれぞれの離散セットのそれぞれについてそれぞれのパラメータ値を用いて、それぞれの曲線タイプによって形成されてよい。
【００８８】
したがって、データセット形成方法および／または学習方法は、曲線タイプのそのような離散セットに、および各曲線タイプについて、１つまたは複数のパラメータ領域のそのようなそれぞれの離散セットに基づいてよい。これらのセットは、データセット形成方法および学習方法について同じであっても異なってもよい。これらのセットが同じである場合、トレーニングサンプルの曲線が推測のための候補である曲線と一貫しているので、機械学習プロセスは、特に正確である。
【００８９】
いま、学習方法における曲線の候補セットは、曲線タイプの離散セット、および各曲線タイプについて、１つまたは複数のパラメータ領域のそれぞれの離散セットの間のセットプロダクトを含んでよい。セットプロダクトの各要素は、それぞれの候補シーケンス／スイープ曲線を表す。
【００９０】
データセット形成方法の場合、トレーニングサンプルの各シーケンス／スイープ曲線は、そのようなセットプロダクトに属してよい。例では、データセット形成方法は、曲線タイプの離散セット（を表すデータ）、および各曲線タイプについて、１つまたは複数のパラメータ領域のそれぞれの離散セット（を表すデータ）を含む初期データを提供することを含んでよい。そのような例では、シーケンス曲線および／またはスイープ曲線は、そのような初期データに基づいて生成（たとえば、合成）されてよい。
【００９１】
「曲線タイプ」は、曲線のクラス（たとえば、シーケンス曲線について２Ｄ平面的、スイープ曲線について３Ｄ）を意味し、各曲線が共通の一般的な（たとえば、ユーザにとってそのようなものとして認識可能な）形態をもたらす。曲線タイプは、パラメータと関連付けられる。各パラメータは、「パラメータ領域」と呼ばれるセット（これは間隔、すなわち実数の連続的な範囲であってよい）内の値をとり、各パラメータ領域についての特定のパラメータ値を提供することは、曲線タイプのインスタンスを定義する。曲線タイプは、１つまたは複数のパラメータのそれぞれのセット、およびそれぞれのセットについてパラメータ値が供給されたとき曲線タイプのそのような曲線インスタンスを生成するために構成された所定のアルゴリズムによって定義されてよい。前記インスタンスは、１つまたは複数のソリッドＣＡＤフィーチャ内に介在することができるシーケンス曲線またはスイープ曲線を形成する。
【００９２】
曲線タイプは、それぞれが１つまたは複数の連続的なパラメータに関連付けられてよい。パラメータについて「連続的」は、曲線を出力する機能がパラメータに対して少なくとも区分的に連続的であることを意味する。パラメータ領域は、少なくとも区分的に連続的であると言うこともできる。これは、非常に多様な形状のコンパクト表現を可能にする。
【００９３】
例では、１つまたは複数の曲線タイプのそれぞれについて、１つまたは複数のそれぞれの連続的なパラメータは、たとえば、曲線の開始点のためのポジショニングパラメータ、および曲線の終了点のためのポジショニングパラメータ、ならびに任意選択で、曲線タイプに依存する１つまたは複数の追加のパラメータ（たとえば、１つまたは複数の中間点ポジショニングパラメータおよび／または曲線のそれぞれの−たとえば境界−点において曲線をそれぞれが制約する１つまたは複数の接線ベクトルを含む）を含めて、先に記載のように１つまたは複数の形状パラメータを含む。ポジショニングパラメータは、すべての曲線タイプ、たとえば参照用の（０，Ｘ，Ｙ，Ｚ）に対して定義される（ｘ，ｙ，ｚ）座標について同じであってよい。
【００９４】
特に効率的な例では、現実の状況の多様性の学習対代表性に対する計算時間および／または収束の点で、曲線タイプの離散セットは、ラインタイプ、円弧タイプ、および／またはキュービックエルミート補間セグメントタイプを含み、任意選択でラインタイプ、円弧タイプ、およびキュービックエルミート補間セグメントタイプからなってよい。曲線タイプの離散セットは、任意の他の曲線タイプを含んでよい。
【００９５】
本明細書において（たとえば、メモリ上で）提供されている任意の曲線は、曲線タイプを表すデータム（たとえば、テクスチャ情報）、および各パラメータについて、パラメータ値を表すそれぞれのデータム（たとえば、浮動小数点など値）を含むデータ構造として（たとえば、提供されるデータピース、トレーニングサンプル、および／または推測の出力内に）記録されてよい。本明細書において提供されている任意の曲線は、（たとえば、曲線をサブ曲線に分割し、および／または、たとえば曲線のそれぞれの部分について、たとえば２Ｄ曲線のためのｓｖｇフォーマット下で、１つまたは複数のベジェ曲線および／またはスプライン曲線で曲線にアプローチすることによって）後処理され、たとえば表現され、レンダリングされ、および／またはベクトルのようにして表示されてよい。
【００９６】
次に、データセット形成方法の例について論じられている。
【００９７】
例では、それぞれのトレーニングサンプルを提供することは、データピースを合成することを含んでよい。ソリッドＣＡＤフィーチャおよび／またはフリーハンド描画（たとえば、トレーニングサンプル）を「合成すること」は、ソリッドＣＡＤフィーチャを生成すること、および／または少なくとも１つのそれぞれのフリーハンド描画（たとえば、ソリッドＣＡＤフィーチャによって表される３Ｄ形状を表す）を決定することを含む自動プロセスを意味する。
【００９８】
例では、データセット形成方法は、曲線タイプの離散セット、および各曲線タイプの場合、１つまたは複数のパラメータ領域のそれぞれの離散セットを含む初期データを提供することを含んでよい。これは、初期データが各曲線タイプについて、曲線タイプのパラメータに対応するフィールドと共にオブジェクトクラス（オブジェクト指向プログラミング参照）に対応するそれぞれのデータ構造を含むことを意味する。そのような場合、ソリッドＣＡＤフィーチャを合成することは、初期データに基づいて実施されてよい。たとえば、少なくとも１つのそれぞれのソリッドＣＡＤフィーチャを生成することは、初期データに基づいてソリッドＣＡＤフィーチャを合成することを含んでよい。合成することは、シーケンスの曲線の数を表す整数を生成すること、および初期データに基づいて、その整数に対応するシーケンス曲線の数を生成することを含んでよく、たとえば生成は、ソリッドＣＡＤフィーチャ定義の要件、たとえば各曲線が平面的である、および／または同じ平面内にあること、曲線が順次的である（すなわち、曲線の終了点が次の曲線の開始である）こと、および／またはシーケンスが閉じられている（すなわち、シーケンスが巡回的である）ことによって制約される。生成することは、初期データに基づいてスイープ曲線を生成することをさらに含んでよい。
【００９９】
特に、各シーケンス／スイープ曲線を生成することは、曲線タイプを選択すること、および曲線タイプの各パラメータについてパラメータ値を選択することを含んでよい。これは、所与のクラスのインスタンスを作成することに対応する。
【０１００】
ソリッドＣＡＤフィーチャを合成するとき実施される任意の選択は、（たとえば、ランダムな）サンプリングを介して実施されてよい。これは、現実の状況の多様性を比較的よく表すデータを生成することを可能にする。したがって、これは、最終的に正確な学習をもたらす。任意の（たとえば、ランダムな）サンプリングは、選択されることになる変数が値をとるセット内での均一な（たとえば、ランダムな）サンプリングを含んでよい（たとえば、ランダムな均一のサンプリングは、均一な確率分布に従ったランダムサンプリングである）。
【０１０１】
たとえば、
−  曲線シーケンスの長さは、Ｎ１より高くＮ２未満のすべての整数のセット上の均一な分布に従ってサンプリングされてよく、Ｎ１は、０より高く、および／または５未満、たとえば１に等しい「最小深度」整数であり、Ｎ２は、Ｎ１より高く、および／または１００、５０、または２０未満、たとえば１０に等しい「最大深度」整数である。
【０１０２】
−  シーケンス／スイープ曲線タイプは、曲線タイプの離散セット上の均一な分布に従ってサンプリングされてよい。
【０１０３】
−  各選択された曲線タイプのためのパラメータ値は、任意の手法でサンプリングされてよく、たとえばパラメータ領域は、それぞれが１つまたは複数の間隔（たとえば、各間隔が上限、たとえば浮動小数点、および下限、たとえば浮動小数点）と共に、たとえばシーケンス曲線のための要件に関して、直接または間接的に（たとえば、初期データ内で）提供される。
【０１０４】
合成することは、各フリーハンドの、１つまたは複数の妥当なフリーハンド描画を決定するためのスキームを決定することをさらに含んでよい。
【０１０５】
スキームは、それぞれの３Ｄ形状（合成されたソリッドＣＡＤフィーチャによって表される）が可視になる視点（すなわち、ソリッドＣＡＤフィーチャが定義される３Ｄ空間内の３Ｄ位置）を提供すること、および画像内で、その視点に基づいて１つまたは複数のエッジをレンダリングすることを含む。スキームは、任意選択で、パースペクティブを提供することを含み、または、パースペクティブは、予め決定されてもよい（たとえば、デフォルトの円錐パースペクティブ）。
【０１０６】
視点は、任意の手法で提供、たとえば候補視点のセット、たとえば３Ｄ形状を囲む球のすべての点のセット内で（たとえば、ランダムにおよび／または均一に）サンプリングされてよい。
【０１０７】
エッジは、３Ｄ形状のフリーハンド描画の妥当なストロークの場所を定義する。たとえば、ソリッドＣＡＤフィーチャに基づくそれぞれの３Ｄ形状のソリッド表現に対して（すなわち、ソリッドＣＡＤフィーチャを実行することに対応する）、各エッジは、視点からのソリッド表現の輪郭エッジまたは可視エッジであってよい。輪郭エッジおよび／または可視エッジは、視点に基づいて任意の手法で決定されてよい。
【０１０８】
可視エッジは、例では、（視点に対して３Ｄ形状によってオクルードされていない）視点からアクセス可能な、また、ソリッド表現のＣk不連続を有するソリッド表現上の曲線に対応する３Ｄ形状にある１つまたは複数の（たとえば、すべての）エッジとみなされてよい（したがって、おそらくは非平面的なエッジを含む）。ｋは、１以上の整数である。ｋは、任意選択で１０または４未満であってよい。例では、スキームは、最大不連続値ｋmax（たとえば、ｋmax＝２）を提供し、またはそれに基づくものであり、１以上ｋmax以下のｋを有するソリッド表現の不連続Ｃk不連続を形成するすべてのエッジを計算することを含んでよい。これは、可視の接線不連続（すなわち、鋭いエッジ）および／または可視の曲率不連続を抽出することを可能にし、そのような不連続は、当然、フリーハンドスケッチによって表される。したがって、これは、データセットを現実的なデータでポピュレートすることを可能にする。
【０１０９】
例では、各フリーハンド描画を決定することは、１つまたは複数のレンダリングされたエッジの少なくとも一部を摂動（ｐｅｒｔｕｒｂａｔｉｏｎ）することをさらに含む。換言すれば、レンダリングされたエッジは、視点からレンダリングされた後、修正されてよい。これは、フリーハンドスケッチの不規則性を再現することを可能にし、一方、ソリッドＣＡＤフィーチャから開始するレンダリングは、非常に規則的なジオメトリを作り出す。したがって、これは、学習をより正確かつロバストにする。
【０１１０】
先に述べたように、各エッジをレンダリングすることは、ベクトルのようにして実施されてよい。換言すれば、各エッジは、たとえば５０、２０、または１０未満の制御点を有する１つまたは複数のそれぞれのパラメトリック曲線によって表されてよい。ベジェ曲線は、ｓｖｇフォーマット下で、２Ｄ画像で表される。他のフォーマットが使用されてよい。そのような場合、摂動することは、少なくとも１つのそれぞれのパラメトリック曲線について、少なくとも１つのそれぞれのパラメトリック曲線の１つまたは複数のパラメータにノイズを追加することを含んでよい。たとえば、ノイズは、制御点を移動させてよい。これは、学習を特にロバストにする。
【０１１１】
次に、学習方法の例について論じられている。
【０１１２】
ニューラルネットワークは、例では、再帰型ニューラルネットワーク（ＲＮＮ）セル（すなわち、同じＲＮＮのセル）を含んでよい。そのような例は、正確なニューラルネットワークを学習し、したがって、正確な推測を実施することを可能にし、ニューラルネットワークは、推測されることになるソリッドＣＡＤフィーチャのジオメトリ形状（たとえば、曲線）のシーケンスの順次的な性質に対応する順次的なアーキテクチャを（ＲＮＮを介して）もたらす。
【０１１３】
特に、各ＲＮＮセルは、それぞれの時間ステップで、ソリッドＣＡＤフィーチャのそれぞれのジオメトリ形状（たとえば、シーケンス曲線）を推測するためのそれぞれのデータを出力してよい。したがって、出力データは、それぞれの曲線を推測することを可能にする。曲線シーケンスの長さは、予め決定された任意の手法で推測されてよい。（たとえば、推測曲線シーケンスは、或る所与の長さを有する曲線シーケンスに制限されてよい）。あるいは、各ＲＮＮセルは、それぞれの時間ステップで、曲線シーケンスのための終了または継続の判断（すなわち、終了トークン）を推測するためのそれぞれのデータをさらに出力してよい。
【０１１４】
次に、ＲＮＮ出力の特に効率的な例について論じられている。
【０１１５】
ソリッドＣＡＤフィーチャのそれぞれの曲線を推測するためのそれぞれのデータは、１つまたは複数のパラメータ領域のそれぞれの離散セットのそれぞれについて、それぞれの曲線タイプを推測するためのそれぞれの第１のデータと、それぞれのパラメータ値を推測するためのそれぞれの第２のデータとを含んでよい。
【０１１６】
例では、それぞれの第１のデータは、曲線タイプの離散セットのそれぞれの１つにそれぞれが起因する確率のそれぞれの離散分布を含んでよい。換言すれば、各ＲＮＮセルは、曲線タイプにわたって確率の分布を出力し、その結果、確からしい曲線タイプが、それぞれの時間ステップに対応するシーケンス曲線のために推測されてよい。
【０１１７】
代替としてまたはそれに加えて、例では、それぞれの第２のデータは、（各曲線タイプについて）１つまたは複数のパラメータ領域のそれぞれの離散セットのそれぞれのためのそれぞれのパラメータ値を含んでよい。換言すれば、ＲＮＮセルは、推測される曲線タイプのためのパラメータ値を直接出力する。これは、特に、パラメータが連続的であり、密度分布を出力するニューラルネットワークを学習することが困難であるとき、学習を単純化し、収束および精度を改善する。
【０１１８】
同様に、ニューラルネットワークは、例では、ソリッドＣＡＤフィーチャのスイープ操作を推測するためのデータを出力する標準的なニューラルネットワーク（ＮＮ）部を含む。例では、ソリッドＣＡＤフィーチャのスイープ操作を推測するためのデータは、スイープ曲線タイプを推測するための第１のデータと、１つまたは複数のパラメータ領域のそれぞれの離散セットのそれぞれのためのパラメータ値を推測するための第２のデータとを含んでよい。
【０１１９】
例では、それぞれの第１のデータは、曲線タイプの離散セットのそれぞれの１つにそれぞれが起因する確率のそれぞれの離散分布を含んでよい。換言すれば、ＮＮ部は、曲線タイプにわたって確率の分布を出力し、その結果、確からしい曲線タイプが、スイープ曲線のために推測されてよい。
【０１２０】
代替としてまたはそれに加えて、例では、それぞれの第２のデータは、（各曲線タイプについて）１つまたは複数のパラメータ領域のそれぞれの離散セットのそれぞれのためのそれぞれのパラメータ値を含んでよい。換言すれば、ＮＮ部は、推測される曲線タイプのためのパラメータ値を直接出力する。これは、特に、パラメータが連続的であり、密度分布を出力するニューラルネットワークを学習することが困難であるとき、学習を単純化し、収束および精度を改善する。
【０１２１】
次に、特に正確な結果をもたらすニューラルネットワークのアーキテクチャについて論じられている。
【０１２２】
任意選択で、ニューラルネットワークは、入力としてフリーハンド描画（２Ｄ画像）をとる初期エンコーダを含んでよい。このエンコーダは、畳み込みニューラルネットワーク（ＣＮＮ）であってよい。ＣＮＮは、２Ｄ  ＣＮＮであり、入力として２Ｄ画像データをとってよい。
【０１２３】
次に、正確な結果をもたらす監視ありトレーニングについての損失の例示的な特性について論じられている。
【０１２４】
例では、損失は、シーケンス巡回置換および／または参照ベースのスケッチに対して不変であってよい。換言すれば、推測するための候補ソリッドＣＡＤフィーチャに関して、損失は、その曲線シーケンスの巡回置換に対して不変、および／または閉じられた２Ｄ平面的スケッチをスイープ操作の終わりにその画像によって置き換え、スイープ操作を逆行することに対して不変であってよい。そのような損失は、ソリッドＣＡＤフィーチャが同じ３Ｄ形状を生み出す場合に、おそらくは、また正しく異なるソリッドＣＡＤフィーチャを表すフリーハンド描画の場合を扱う。これは、重要なパラメータに対する学習を容易にし、不必要な情報を学習しなければならないことから学習方法を解放するので、学習の精度を改善する。
【０１２５】
損失は、たとえばそれぞれがそれぞれの損失項を介して、１つまたは複数の量にペナルティを課してよい。ペナルティを課される量は、各シーケンス曲線に対応する時間ステップについて、およびスイープ曲線に対応するステップ（各フリーハンド描画は、ここではそれぞれのグラウンドトゥルースソリッドＣＡＤフィーチャに関連付けられる）について、以下の量のいずれか１つまたは任意の組合せを含んでよい。
【０１２６】
−  対応するグラウンドトゥルース曲線のそれぞれの曲線タイプに起因するそれぞれのデータの確率の低さ
−  グラウンドトゥルース曲線の１つまたは複数のそれぞれのパラメータ値と、その対応するそれぞれのデータの１つまたは複数のそれぞれのパラメータ値との相違、および／または
−  （ＲＮＮセル時間ステップについてのみ）対応するグラウンドトゥルースの終了対継続状態に起因するそれぞれの確率（ＲＮＮセルによって出力された）の確率の低さ
換言すれば、監視ありトレーニングは、そのような損失を最小化することによって、各ＲＮＮセルおよびＮＮ部によって出力されるそれぞれの確率を、対応するグラウンドトゥルース曲線タイプについて１（すなわち、低ではない）に近づけ、他の曲線タイプについて０（すなわち、低）に近づける、ならびに／または各ＲＮＮセルおよびＮＮ部によって出力されるそれぞれの連続的なパラメータ値をそれらのグラウンドトゥルース値に近づける傾向となるように、ニューラルネットワークの重みに作用してよい。そのような損失は、問題の離散的／連続的な混合を正確に扱う。また、損失は、推測される曲線シーケンス長の、そのグラウンドトゥルース値との相違にペナルティを課す。
【０１２７】
次に、正確な結果をもたらす監視なしトレーニングの一例について論じられており、それぞれの第１のデータは、曲線タイプの離散セットのそれぞれの１つにそれぞれが起因する確率のそれぞれの離散分布を含む。
【０１２８】
知られているように、監視なしトレーニングは、損失を最小化する。この最小化することは、確率の候補のそれぞれの離散分布を探査することを含む。換言すれば、この最小化することは、確率の出力されるそれぞれの離散分布を探査し、それらをラベル付けされていないデータセット（各フリーハンド描画がグラウンドソリッドＣＡＤフィーチャに関連付けられていない）と一貫したものにするために、ニューラルネットワーク重みを反復的に修正する。或る場合には、確率の候補のそれぞれの離散分布の探査は、間接的であり、重みの直接探査の結果である。任意選択で、最小化することは、終了トークンについて確率の候補のそれぞれの離散分布を探査することをさらに含む。例では、最小化することは、１つまたは複数のパラメータ領域のそれぞれの離散セットのそれぞれについて候補のそれぞれのパラメータ値を探査することをさらに含む。
【０１２９】
次に、損失は、データセットの各フリーハンド描画について、また各候補について、対応するフリーハンド描画との相違にペナルティを課す。対応するフリーハンド描画は、確率の探査された候補のそれぞれの離散分布に基づいてそれ自体推測可能なそれぞれのソリッドＣＡＤフィーチャから導出される。換言すれば、ニューラルネットワークの重み値（監視なしトレーニングの任意の反復において）が与えられると、ニューラルネットワークには、ソリッドＣＡＤフィーチャの推測を実施するためにラベル付けされていないデータセットのフリーハンド描画が入力されてよい。各推測されるソリッドＣＡＤフィーチャは、それ自体、フリーハンド描画において（ツリーをプレイし、結果のフリーハンド描画を決定することによって）導出することに基づいてよい。そのような導出されたフリーハンド描画は、初期の対応するデータセットのフリーハンド描画に比較されてよい。
【０１３０】
例では、監視なしトレーニングは、少なくとも１つの（たとえば、各）フリーハンド描画のためのサンプリングステップを含んでよい。トレーニングは、ミニバッチを提供することを含んでよく、サンプリングは、各ミニバッチについて、ニューラルネットワークによって出力されるデータ（ＲＮＮによって出力される確率分布および連続的なパラメータ値を含む）に従うことによって、ミニバッチのフリーハンド描画当たりのソリッドＣＡＤフィーチャをサンプリングすることを含んでよい。次いで、サンプリングは、損失を計算し、これは、入力フリーハンド描画（またはその表現、たとえばレンダリング）とサンプリングされたソリッドＣＡＤフィーチャに対応するフリーハンド描画とを比較する（すなわち、それらの相違にペナルティを課す）。この損失は、サンプリングが確率的かつ離散的であるため、サンプリングに対して微分可能でない。したがって、変数に対する真の勾配の従来のバックプロパゲーションは、そのような真の勾配がないため、実施することができない。
【０１３１】
監視なしトレーニングの提案されている例は、それぞれの第１のデータの候補のそれぞれの離散分布を表す変数に対して損失の疑似勾配、任意選択でジオメトリ操作にわたる候補のそれぞれの離散分布を表す変数に対する損失の疑似勾配、および／または終了トークン分布を表す変数に対する損失の疑似勾配を提供するための補強アプローチを使用することを提案する。次いで、最小化することは、ニューラルネットワークを学習するために、損失のそのような疑似勾配のバックプロパゲーション（たとえば、確率的降下）を含んでよい。疑似勾配は補強アプローチによって提供されるので、学習は、バックプロパゲーションが真の勾配の１つでない場合でさえ正確である。最小化することは、１つまたは複数のパラメータ領域のそれぞれの離散セットのそれぞれについてのそれぞれのパラメータ値に対する損失の（真の）勾配のバックプロパゲーションを含んでもよい（なぜなら、損失は、これらの変数に対して微分可能であるからである）。したがって、補強アプローチは、離散確率分布の導入によって生じる微分可能性問題を、またこの問題だけを解決する。
【０１３２】
次に、本方法の例を含む例示的な機械学習プロセスについて論じられている。
再帰型ニューラルネットワーク
例示的な機械学習プロセスは、再帰型ニューラルネットワーク（ＲＮＮ）に基づく。再帰型ニューラルネットワークは、内部メモリ状態を有するディープニューラルネットワークである。したがって、再帰型ニューラルネットワークは、フィードフォワードニューラルネットワークとは異なり、時間的挙動を示すことができる。これらは、次の結果を予測するために過去のエントリを暗黙に考慮する。これらは、
【０１３３】
【数１】
2020109662.tif 000002
【０１３４】
【数２】
2020109662.tif 000003
【０１３５】
と書くことができ、ｙは出力、ｘは入力、ｈは、メモリとも呼ばれる初期の隠れ状態である。ｗは、ＲＮＮの重みである。メモリｈは、すべての過去の入力をスタックするハードメモリではなく、ＲＮＮが過去のステップからの有用な情報だけ保つように学習するように、
【０１３６】
【数３】
2020109662.tif 000004
【０１３７】
を通じて学習される固定サイズのベクトルである。
例示的な機械学習プロセスの目的
ソリッドのフリーハンド描画を与えられて、例示的な機械学習プロセスは、フリーハンド描画を表す妥当なソリッドＣＡＤフィーチャを得ることを目的とする。例示的な機械学習プロセスは、
−  閉じられた輪郭をもたらす平面的な曲線のシーケンスによって構成された閉じられた２Ｄ平面的スケッチと、
−  それに続く、３Ｄ空間における２Ｄ平面的スケッチによって定義される閉じられたサーフェスをスイープすることによってソリッドを生成するスイープ操作とによって（によってのみ）、３Ｄ空間に対して定義されたソリッドＣＡＤフィーチャに注目する。すなわち、ソリッドは、閉じられたサーフェスが通過する体積によって定義される。
例示的な機械学習プロセスの原理
例示的な機械学習プロセスは、ソリッドのフリーハンドパースペクティブ描画を入力としてとり、エンドトゥエンドディープラーニングモデルによってソリッドＣＡＤフィーチャを作り出す。
１．最初に、描画のコンパクトな潜在表現が畳み込みニューラルネットワーク（ＣＮＮ）によって生成される。
２．次いで、ソリッドＣＡＤフィーチャがこの潜在表現から２つのステップで推測される。
【０１３８】
ａ．第１に、閉じられた２Ｄ平面的スケッチが再帰型ニューラルネットワーク（ＲＮＮ）によって推測される。スケッチは、曲線のシーケンスによって定義される。ＲＮＮの各時間的ステップは、シーケンスの曲線に対応する。各時間ステップにおいて、それぞれのＲＮＮセルは、曲線のタイプ（ライン、スプライン、円弧）、そのパラメータ、ならびに終了／継続トークン（シーケンスの最後の要素であるか否か）を推定する。
【０１３９】
ｂ．第２に、ニューラルネットワーク（ＮＮ）は、スイープを予測する。
【０１４０】
グラウンドトゥルースソリッドＣＡＤフィーチャが使用可能であるとき、モデル全体（ＣＮＮエンコーダ、ＲＮＮ、ＮＮ）がエンドトゥエンドで監視あり式にトレーニングされる。監視なしトレーニングのための他の場合には、推測されるジオメトリのレンダリングされた画像が生成され、モデル全体が最適化され、その結果、レンダリングされた画像は、入力フリーハンド描画に当てはまる。
例示的な機械学習プロセスの実装オプション
例示的な機械学習プロセスは、パラメトリック曲線のシーケンス、およびパラメトリックスイープ操作によって構成された任意のタイプの２Ｄ平面的スケッチに一般化することができる。
【０１４１】
しかし、本考察は、２Ｄ平面的スケッチが、各曲線が
【０１４２】
【数４】
2020109662.tif 000005
【０１４３】
によってインデックス付けされる、長さＴiのパラメトリック曲線（パラメータｘを有するｃx（ｕ），∀ｕ∈［０，１］）のシーケンスによって構成される、ｉによってインデックス付けされたサンプルを考えるだけである。あるいは、例示的な機械学習プロセスは、曲線（パラメータｘを有するｃx（ｕ），∀ｕ∈［０，１］）に沿って２Ｄ平面的スケッチをスイープすることにあるスイープ操作を考えるだけである。２Ｄ平面的スケッチおよびスイープ操作のどちらについても、例示的な機械学習プロセスは、以下の曲線タイプを考える。
・Ｌｉｎｅ（ライン）：ｐstartおよびｐendは、セグメントの２つの境界（すなわち、開始終了）点であるパラメータｘ＝（ｐstart，ｐend）を有する直線ラインセグメント。
ｃx（ｕ）＝ｐstart＋（ｐend−ｐstart）ｕ，∀ｕ∈［０，１］
・Ａｒｃ（円弧）：ｐstart、ｐinter、およびｐendを通るパラメータｘ＝（ｐstart，ｐinter，ｐend）を有する円弧セグメント。ｐstartおよびｐendは、セグメントの２つの境界点であり、ｐinterは、中間点である。完全を期すために、付録セクションは、３点からの円弧式を提供する。
・Ｃｕｂｉｃ  Ｈｅｒｍｉｔｅ  ｉｎｔｅｒｐｏｌａｔｅｄ  ｓｅｇｍｅｎｔ（キュービックエルミート補間セグメント）。ｐstartおよびｐendがセグメントの２つの境界点であり、ｔstartおよびｔendは、それぞれそれらの接線であるパラメータｘ＝（ｐstart，ｔstart，ｐend，ｔend）を有するキュービックエルミート補間によって定義されるセグメント。
ｃx（ｕ）＝（２ｕ3−３ｕ2＋１）ｐstart＋（ｕ3−２ｕ2＋ｕ）ｔstart＋（−２ｕ3＋３ｕ2）ｐend＋（ｕ3−ｕ2）ｔend，∀ｕ∈［０，１］
これらの曲線タイプを選択するための異なる理由は、以下を含む。
【０１４４】
−  これらの曲線のパラメータは、ユーザにとって意味のあるものである。その結果、得られたソリッドＣＡＤフィーチャは、容易に編集することができる。特に、キュービックエルミート補間は、設計（たとえば、Ｃａｔｍｕｌｌ−Ｒｏｍスプライン）において広く使用されている。
【０１４５】
−  これらは、多種多様な形状を表すことができる。さらに、形状をこれらの曲線のシーケンスによって表すことができない場合、そのようなシーケンスは、それに容易にアプローチすることができる（シーケンスの各曲線は、形状の領域に局所的にアプローチする）。
【０１４６】
−  そのような表現は、最も一般的なスイープ操作、すなわち押し出しおよび回転を容易に実装することをも可能にする。
例示的な機械学習プロセスのパイプラインオプション
例示的な機械学習プロセスパイプラインの主なステップは、以下である。
１．合成的ラベル付きデータセット（必要な場合）を生成する
２．モデルをエンドトゥエンドでトレーニングする（監視あり、ラベル付きデータを伴う）
３．モデルをエンドトゥエンドでトレーニングする（監視なし、ラベル付けされていないデータを伴う）
４．推測
例示的な機械学習プロセスは、モデルをトレーニングする２つの異なる手法を企図する。ラベル付きデータが使用可能である（またはステップ１で合成的に生成される）とき、モデルは、監視あり式にトレーニングされてよい。そのような場合の例では、モデルは、監視あり式でのみであってよく、および／またはステップ３が省略されてもよい。そのような場合の代替例では、モデルは、合成的データで事前トレーニングされた後、監視なし式でトレーニングされてよい。そのような場合の代替として、モデルは、監視なし式でのみトレーニングされてよい。
例示的な機械学習プロセスの説明
１．合成的ラベル付きデータセット（必要な場合）を生成する
例示的な機械学習プロセスは、ラベル付きデータセットを、ソリッドの実際のジオメトリを生成することができるソリッドＣＡＤフィーチャに関連付けられたソリッドのフリーハンド描画のセットとみなす。そのようなデータセットは、使用可能であることがまれである。ない場合、乱数発生器で合成的にそれを生成することができる。
ａ．ソリッドＣＡＤフィーチャ生成
最初に、ソリッドＣＡＤフィーチャが所与の分布からサンプリングされる。分布は、任意の後の適用を考慮してユーザによって設計されてよい。例示的な機械学習プロセスは、この分布のソリッドＣＡＤフィーチャを取り出すための学習に特化されることになる。
【０１４７】
次に、以下は、Ｎ＝１０（Ｎは、任意の厳密に正の整数値であってよい）までの長さの曲線のシーケンス、および曲線に沿って２Ｄ平面的スケッチをスイープすることにあるスイープ操作によって構成された２Ｄ平面的スケッチを扱う一般的な分布の一例について記載している。各サンプリングされたソリッドＣＡＤフィーチャは、ｉによってインデックス付けされる。
【０１４８】
２Ｄ平面的スケッチは、以下のようにサンプリングされる。
・  シーケンスＴiの長さは、
【０１４９】
【数５】
2020109662.tif 000006
【０１５０】
で均一にサンプリングされる。
・
【０１５１】
【数６】
2020109662.tif 000007
【０１５２】
２つの実数値αtおよびｒtが、それぞれ［０，２π［および］０，１］で均一にサンプリングされ、曲線タイプ
【０１５３】
【数７】
2020109662.tif 000008
【０１５４】
が、可能な曲線タイプの中で均一に選ばれる。次いで、αtの値が、増大する値（
【０１５５】
【数８】
2020109662.tif 000009
【０１５６】
）によって順序付けられる。図３は、単項の円（ｕｎａｒｙ  ｃｉｒｃｌｅ）によって表されるＴi＝３である、そのようなランダムサンプリングの一例を示す。
・
【０１５７】
【数９】
2020109662.tif 000010
【０１５８】
について、規則Ｔi＋１＝０の場合、パラメータ
【０１５９】
【数１０】
2020109662.tif 000011
【０１６０】
を有するタイプ
【０１６１】
【数１１】
2020109662.tif 000012
【０１６２】
の曲線がインスタンス化される。パラメータは、以下のようにして選ばれる。
○曲線タイプ
【０１６３】
【数１２】
2020109662.tif 000013
【０１６４】
が何であれ、パラメータｐstartおよびｐendは、ｐstart（あるいはｐend）が、αt（あるいはαt+1）ラジアンの軸
【０１６５】
【数１３】
2020109662.tif 000014
【０１６６】
に対する角度を有し、「グラウンド平面」上にある（原点および
【０１６７】
【数１４】
2020109662.tif 000015
【０１６８】
に対する法線を通過する）長さｒt（あるいはｒt+1）のベクトルであるように設定される。
○
【０１６９】
【数１５】
2020109662.tif 000016
【０１７０】
の場合、点μinterは、セグメント
【０１７１】
【数１６】
2020109662.tif 000017
【０１７２】
内で均一にサンプリングされる。追加のパラメータｐinterは、ガウス分布Ｎ（μinter，Σ）からサンプリングされ、Σは、その非ゼロ要素が｜｜ｐend−ｐstart｜｜2に等しい対角行列であり、ｐinterの座標ｚは、それもまた「グラウンド平面」内にあるように０に設定される。
○
【０１７３】
【数１７】
2020109662.tif 000018
【０１７４】
の場合、２つの点μstartおよびμendは、セグメント
【０１７５】
【数１８】
2020109662.tif 000019
【０１７６】
内で均一にサンプリングされる。点ｐstart’およびｐend’は、それぞれガウス分布Ｎ（μstart，Σ）およびＮ（μend，Σ）からサンプリングされ、Σは、その非ゼロ要素が｜｜ｐend−ｐstart｜｜2に等しい対角行列である。ｐstart’およびｐend’のｚ座標は、両点が「グラウンド平面」内にあるように０に設定される。最後に、ｔstartおよびｔendは、ｔstart＝ｐstart’−ｐstartおよびｔend＝ｐend’−ｐendに設定される。
○インスタンス化された曲線が、それ自体、または以前のインスタンス化された曲線の１つと交差する場合、プロセスは、そうでなくなるまで繰り返される。ある回数、たとえば１０回の試行後、依然としていくつかの交点がある場合、サンプル全体が最初から再生成される。
【０１７７】
図４は、
【０１７８】
【数１９】
2020109662.tif 000020
【０１７９】
、
【０１８０】
【数２０】
2020109662.tif 000021
【０１８１】
、および
【０１８２】
【数２１】
2020109662.tif 000022
【０１８３】
である図３の例を示す。
【０１８４】
スイープ操作は、以下のようにサンプリングされる。
・曲線タイプは、可能な曲線タイプの中で均一に選ばれる。
・パラメータ
【０１８５】
【数２２】
2020109662.tif 000023
【０１８６】
を有するタイプｓiの曲線がインスタンス化される。パラメータは、以下のようにして選ばれる。
○曲線タイプｓiが何であれ、パラメータｐstartは、原点で設定される。ｐendパラメータは、［−０．５，０．５］×［−０．５，０．５］×［０．１，１．０］において均一にサンプリングされる。
○曲線タイプｓiに応じて、残りのパラメータが、２Ｄ平面的スケッチの曲線の場合と同じようにして、しかしそれらを強制的に「グラウンド平面」内にあるようにすることなしにサンプリングされる。
【０１８７】
図５は、ｓi＝Ｃｕｂｉｃ  Ｈｅｒｍｉｔｅ  ｉｎｔｅｒｐｏｌａｔｅｄ  ｓｅｇｍｅｎｔである図４と同じ例を示す。
【０１８８】
この一般的な分布は、ソリッドＣＡＤフィーチャの特定のタイプを生成するために特化させることができる。以下は、異なる種類のソリッドを生成するために適用されることになるいくつかの制限を提供する。
・規則的な直角柱
○このタイプの曲線は、Ｌｉｎｅ曲線タイプ（
【０１８９】
【数２３】
2020109662.tif 000024
【０１９０】
およびｓi＝Ｌｉｎｅ）に制限される。
○シーケンスＴiの長さは、
【０１９１】
【数２４】
2020109662.tif 000025
【０１９２】
の代わりに
【０１９３】
【数２５】
2020109662.tif 000026
【０１９４】
で均一にサンプリングされる。
○ラインセグメントの境界点は、単項の円（
【０１９５】
【数２６】
2020109662.tif 000027
【０１９６】
我々は、ｒt＝１および
【０１９７】
【数２７】
2020109662.tif 000028
【０１９８】
を設定する）で規則的に分布する。
○スイープラインは、垂直になるように設定される（スイープ曲線のｐendパラメータは、｛０｝×｛０｝×［０．１，１．０］で均一にサンプリングされる）。
・円柱
○２Ｄ平面的スケッチは、単項の円を形成する円弧によって構成される。曲線のタイプは、２Ｄ平面的スケッチのためのＡｒｃ曲線タイプに制限され（
【０１９９】
【数２８】
2020109662.tif 000029
【０２００】
）、それらのパラメータは、それらの制御点−円弧パラメータによって定義される−が単項の円内にあるように選ばれる）。
○スイープ操作曲線のタイプは、Ｌｉｎｅ曲線タイプ（ｓi＝Ｌｉｎｅ）に制限される。
○スイープラインは、垂直になるように設定される（スイープ曲線のｐendパラメータは、｛０｝×｛０｝×［０．１，１．０］で均一にサンプリングされる）。
【０２０１】
ソリッドＣＡＤフィーチャＳＣＦiは、例示的な機械学習プロセスでは、異なる曲線タイプおよびそれらのパラメータによって完全に定義されてよい。
【０２０２】
【数２９】
2020109662.tif 000030
【０２０３】
すべてのソリッドＣＡＤフィーチャが同様のサイズを有するようにするために（これは、学習プロセスをより容易にする）、それらは、それらのバウンディングボックスの最大サイズが１に等しく、中心合わせされる（それらのバウンディングボックスの中心が原点にある）ように再サイズ設定されてよい。
ｂ．トレーニングサンプル生成
次いで、各ソリッドＣＡＤフィーチャについて、１つまたは複数の視点が、原点にて中心合わせされた球で均一にサンプリングされる。球の半径は、ソリッドＣＡＤフィーチャ全体がこの位置からレンダリングされ原点を見る画像において可視であるように選ばれてよい。
【０２０４】
我々は、エッジを生成されたソリッドのＣk不連続として定義する。各サンプルについて、我々は、ｋ＝１（接線不連続、鋭いエッジ）またはｋ＝２（曲率不連続、たとえば平面的なサーフェスと円筒形のサーフェスとの間のエッジ）をランダムに選ぶ。
【０２０５】
次いで、ソリッドＣＡＤフィーチャの輪郭および可視のエッジは、画像Ｉiにおいて、サンプリングされた視点からレンダリングされ、原点を見ていてよい。
【０２０６】
最後に、レンダリングされた画像Ｉiを、そのパラメータが視点座標フレーム内で以前に表されているその対応するソリッドＣＡＤフィーチャＳＣＦiに関連付けることによって、トレーニングサンプルｉが生成される。
【０２０７】
図６は、Ｃ1不連続をエッジとして使用するソリッドＣＡＤフィーチャのレンダリングされた画像を示す。図７は、Ｃ2不連続をエッジとして使用する同じソリッドＣＡＤフィーチャのレンダリングされた画像を示す。図８は、図５に表されたソリッドＣＡＤフィーチャのレンダリングされた画像を示す。この場合、あらゆるＣ2不連続は、Ｃ1不連続でもあり、すなわちＣ1不連続またはＣ2不連続をエッジとして使用してレンダリングすることは、同じ結果を提供することになる。
ｃ．サンプル摂動
最後に、レンダリングされたエッジおよび輪郭は、フリーハンドストロークを真似るために乱されてよい。
【０２０８】
例示的な機械学習プロセスは、下記の任意選択の方策に従う。
・輪郭およびエッジは、ｓｖｇフォーマットなどベクトルのようにして事前にレンダリングされる（すなわち、各レンダリングされたセグメントは、パラメトリック曲線に対応する）。
・各曲線は、任意の数の曲線（たとえば、ベジェ曲線）に分割される。
・ガウスノイズが曲線の各パラメータに追加される。
【０２０９】
図９は、図８に示されているレンダリングの摂動画像を示す。図１０は、ソリッドＣＡＤフィーチャレンダリングの別の例（規則的な直角柱を表す）を示す。図１１は、図１０のレンダリングの摂動画像を示す。
２．モデルをエンドトゥエンドでトレーニングする（監視あり、ラベル付きデータを伴う）
モデルをトレーニングするために、例示的な機械学習プロセスは、サイズＮのデータセットを考える。ｉによってインデックス付けされたデータセットの各サンプルは、フリーハンド描画画像
【０２１０】
【数３０】
2020109662.tif 000031
【０２１１】
、２Ｄベースのスケッチ曲線シーケンス、スイープ操作
【０２１２】
【数３１】
2020109662.tif 000032
【０２１３】
、およびその関連のパラメータ
【０２１４】
【数３２】
2020109662.tif 000033
【０２１５】
によって構成される。
【０２１６】
【数３３】
2020109662.tif 000034
【０２１７】
をｉ番目の２Ｄベースのスケッチ曲線シーケンスの長さとする。各曲線シーケンスは、曲線タイプのシーケンス
【０２１８】
【数３４】
2020109662.tif 000035
【０２１９】
として書かれる。各曲線
【０２２０】
【数３５】
2020109662.tif 000036
【０２２１】
について、
【０２２２】
【数３６】
2020109662.tif 000037
【０２２３】
をそのパラメータとする。
モデル定義
モデルは、入力として、フリーハンド描画（合成的またはそうでないもの）
【０２２４】
【数３７】
2020109662.tif 000038
【０２２５】
を表す単一のチャネル画像をとる。この画像は、ＣＮＮによってフィーチャベクトル
【０２２６】
【数３８】
2020109662.tif 000039
【０２２７】
として符号化され、ｗは、モデルの重みである。
【０２２８】
ＲＮＮは、２Ｄベースのスケッチを推定する。各ＲＮＮセルは、各時間ステップｔで、曲線の可能なタイプにわたる離散分布ｐt、ならびに、スケッチが終わりかどうか示す終了／継続トークンにわたるベルヌーイ分布ｑtを出力する。また、各セルは、各時間ステップｔで各曲線タイプｃおよび状態ベクトルｈtについて、予測される連続的なパラメータ
【０２２９】
【数３９】
2020109662.tif 000040
【０２３０】
を出力する。
【０２３１】
各ＲＮＮセルは、入力として以下の要素をとる。
・フィーチャベクトル
【０２３２】
【数４０】
2020109662.tif 000041
【０２３３】
・ｈ0＝０で以前のセルｈt-1によって出力された状態ベクトル
・任意選択で、以前のＲＮＮセルおよび／またはそれらの推定パラメータ
【０２３４】
【数４１】
2020109662.tif 000042
【０２３５】
によって予測された推定分布
【０２３６】
【数４２】
2020109662.tif 000043
【０２３７】
からサンプリングされる１つまたはいくつかの曲線タイプ
【０２３８】
【数４３】
2020109662.tif 000044
【０２３９】
より具体的には、各ＲＮＮセル式は、以下のように書かれてよい。
【０２４０】
【数４４】
2020109662.tif 000045
【０２４１】
我々は、
【０２４２】
【数４５】
2020109662.tif 000046
【０２４３】
入力が最適化されることを想起する。
【０２４４】
次いで、標準的なＮＮは、スイープ操作の可能なタイプ、ならびに各スイープ操作タイプｓについての連続的なパラメータｙsにわたって離散分布ｒを出力する。それは、以下を入力としてとる。
・フィーチャベクトル
【０２４５】
【数４６】
2020109662.tif 000047
【０２４６】
・最後のセル
【０２４７】
【数４７】
2020109662.tif 000048
【０２４８】
によって出力された状態ベクトル
・任意選択で、以前のＲＮＮセルおよび／またはそれらの推定パラメータ
【０２４９】
【数４８】
2020109662.tif 000049
【０２５０】
によって予測された推定分布
【０２５１】
【数４９】
2020109662.tif 000050
【０２５２】
からサンプリングされる１つまたはいくつかの曲線タイプ
【０２５３】
【数５０】
2020109662.tif 000051
【０２５４】
図１２は、例示的な機械学習プロセスにおいてもたらされるモデルの一例のパイプラインを示す。ＲＮＮセルおよび／またはＮＮは、上述のように異なる入力をとってよい。
損失定義
簡単にするために、我々は、今後、推定分布およびパラメータを入力画像
【０２５５】
【数５１】
2020109662.tif 000052
【０２５６】
の関数として示すことにするが、それらは、上述のように他の変数に依存してよい。
【０２５７】
我々は、曲線およびスイープ操作タイプ予測誤差にペナルティを課す損失を定義する。
【０２５８】
【数５２】
2020109662.tif 000053
【０２５９】
同様に、我々は、強制的に曲線シーケンスが正しい長さを有するように損失を定義する。
【０２６０】
【数５３】
2020109662.tif 000054
【０２６１】
我々は、予測された曲線およびスイープ操作パラメータに対する二乗誤差にペナルティを課す損失をも定義する。
【０２６２】
【数５４】
2020109662.tif 000055
【０２６３】
最後に、ネットワークの重みをトレーニングするために我々が最小化する損失（ミニバッチにわたってＡＤＡＭソルバなど標準的なディープラーニング技法を使用する）は、以下のとおりである。
Ｌsup（ｗ）＝Ｌtype（ｗ）＋Ｌlength（ｗ）＋λＬparameters（ｗ）    （式４）
ただし、λは重みパラメータである。それを、たとえば
【０２６４】
【数５５】
2020109662.tif 000056
【０２６５】
のように初期化することができ、ただし、ｗ0は、ニューラルネットワークのランダムに初期化された重みである。
【０２６６】
ｌｏｇ（交差エントロピー項）以外の任意の低さペナルティ機能が、Ｌtype（ｗ）およびＬlength（ｗ）のいずれかに使用されてよく、ならびに／またはＬ２距離以外の任意の距離ｄ、および／または二乗機能以外の任意の増大する、および／または正のｉｎｃｒ機能が、Ｌparameters（ｗ）に使用されてよい。
損失修正：シーケンス巡回置換に対して不変にする
２つの曲線シーケンスは、一方が他方の巡回置換である、すなわち同じシーケンスであるが異なる点で開始する場合、等価である（同じ２Ｄベースのスケッチを生成する）。その結果、トレーニング中、例示的な機械学習プロセスのモデルは、正確な２Ｄベースのスケッチを生成するが、予測がグラウンドトゥルースの巡回置換であるので高い損失をもたらす曲線シーケンス分布を予測することがある。この問題を回避するために、我々は、式（式１）および（式３）内の損失を巡回置換に対して不変になるように修正する。
【０２６７】
【数５６】
2020109662.tif 000057
【０２６８】
【数５７】
2020109662.tif 000058
【０２６９】
損失修正：参照ベースのスケッチに対して不変にする
同等に２つのソリッドＣＡＤフィーチャが同じジオメトリ上に生じることがある。実際、第２の２Ｄ平面的サーフェスが、スイープ操作の端部境界に形成されることになる。その結果、この第２のサーフェスの２Ｄ平面的スケッチおよび元のスイープ操作に従うが逆であるスイープ操作によって定義されるソリッドＣＡＤフィーチャが、同じソリッド内にもたらされることになる。
【０２７０】
【数５８】
2020109662.tif 000059
【０２７１】
によって定義される所与のソリッドＣＡＤフィーチャについて、我々は、その等価なソリッドＣＡＤフィーチャ
【０２７２】
【数５９】
2020109662.tif 000060
【０２７３】
を示す。我々は、式（式６）によって定義される損失を、単一のソリッドのフィーチャ表現に対して不変になるように修正する。
【０２７４】
【数６０】
2020109662.tif 000061
【０２７５】
３．モデルをエンドトゥエンドでトレーニングする（監視なし、ラベル付けされていないデータを伴う）
モデルは、微調整される、または実データで最初から（すなわち、ステップ２を省略する）トレーニングされる可能性がある。
【０２７６】
モデルアーキテクチャは、ほぼ変更されない（ステップ２参照）。
【０２７７】
各反復において、ソリッドＣＡＤフィーチャが入力描画
【０２７８】
【数６１】
2020109662.tif 000062
【０２７９】
によって条件付けられた推定分布からサンプリングされ、モデルによって予測されたパラメータでインスタンス化される。予測パラメータのいくつかが、閉じられた２Ｄベースのスケッチを確実にするために修正される（すなわち、シーケンスの曲線の終点は、次の曲線の開始点と一致していなければならない）。例示的な機械学習プロセスでは、我々は、強制的に
【０２８０】
【数６２】
2020109662.tif 000063
【０２８１】
を
【０２８２】
【数６３】
2020109662.tif 000064
【０２８３】
に等しくなるようにする。シーケンスの最初の曲線の開始点および最後の曲線の終点の特定の場合、この場合には、我々は、強制的に
【０２８４】
【数６４】
2020109662.tif 000065
【０２８５】
を
【０２８６】
【数６５】
2020109662.tif 000066
【０２８７】
に等しくなるようにする。
【０２８８】
我々は、Ｔiをサンプリングされたスケッチシーケンス（終了トークンがｑtからサンプリングされる最小のｔ）の長さ、
【０２８９】
【数６６】
2020109662.tif 000067
【０２９０】
をサンプリングされた曲線、およびｓiをサンプリングスイープ操作と示す。
【０２９１】
得られたジオメトリの可視エッジは、画像Ｉiにおける固定された任意のカメラ姿勢でレンダリングされる。レンダリングプロセスは、ソリッドＣＡＤフィーチャとその得られるレンダリング後のビューＩiとの間のマッピングとして見ることができる。このマッピングの差は、有限差分で計算される。
【０２９２】
ステップ２において定義された損失を使用する代わりに、我々は、入力描画を得られたレンダリング後の画像に比較する損失を定義する。そのような損失の例は、以下であってよい。
【０２９３】
【数６７】
2020109662.tif 000068
【０２９４】
ただし、ｄは、Ｉiと
【０２９５】
【数６８】
2020109662.tif 000069
【０２９６】
との間の類似度尺度である。たとえば、我々は、
【０２９７】
【数６９】
2020109662.tif 000070
【０２９８】
の非背景ピクセルに対するＩiにおけるレンダリング後のエッジのＣｈａｍｆｅｒ（面取り）距離（または逆）を使用することができる。
【０２９９】
この損失を最小化することにより、我々は、サンプリングのためだけに使用される離散分布ｐ、ｑ、ｒを除いて、ネットワークの重みを最適化することができる。例示的な機械学習プロセスは、これらの分布に対して損失の勾配をバックプロパゲーションしてよい。例示的な機械学習プロセスは、離散分布ｐ、ｑ、ｒについてそのような勾配を得るために、補強アルゴリズムを使用してよい。補強アルゴリズムは、これらの離散分布に制限され、したがって、監視なし学習は、他の変数について真の勾配を得てよい。これは、近似を制限し、それにより精度に影響を及ぼす。
【０３００】
補強アルゴリズムは、非特許文献１０に記載のＲＥＩＮＦＯＲＣＥアルゴリズムであってよい。
【０３０１】
これは、以下の勾配式を提供する。
【０３０２】
【数７０】
2020109662.tif 000071
【０３０３】
【数７１】
2020109662.tif 000072
【０３０４】
【数７２】
2020109662.tif 000073
【０３０５】
ただし、ρは、最小のサイズについて最大の表現度を有するようにスケッチシーケンスを促すための追加のスパーシティリワード（ｓｐａｒｓｉｔｙ  ｒｅｗａｒｄ）であり、ｂは、推定勾配の分散を低減するために使用されるベースラインであり、過去の損失の移動平均として計算される。
４．推測
モデルが学習された後で、推測は簡単なものであってよい。ユーザは、新しいフリーハンド描画を確立し、それをモデルに供給してよい。次いで、最も確からしい（推測された分布に従って）ソリッドＣＡＤフィーチャが生成されてよい。そうでない場合、いくつかの妥当なソリューションが、推測された分布からサンプリングによって計算されてよい。予測パラメータのいくつかは、閉じられた２Ｄベースのスケッチを確実にするために修正される（すなわち、シーケンスの曲線の終点は、次の曲線の開始点と一致していなければならない）。一実装では、プロセスは、強制的に
【０３０６】
【数７３】
2020109662.tif 000074
【０３０７】
を
【０３０８】
【数７４】
2020109662.tif 000075
【０３０９】
に等しくなるようにする。シーケンスの最初の曲線の開始点および最後の曲線の終点の特定の場合、この場合には、プロセスは、強制的に
【０３１０】
【数７５】
2020109662.tif 000076
【０３１１】
を
【０３１２】
【数７６】
2020109662.tif 000077
【０３１３】
に等しくなるようにする。
【０３１４】
論じられている例示的な機械学習プロセスは、スイープされた２Ｄスケッチによって作り出されたいくつかの妥当なソリッドＣＡＤフィーチャ、またはジオメトリを提案することを可能にしてよい（ＣＡＤフィーチャは、隠されてよい）。例示的な機械学習プロセスの予測は、ノイズに対してロバストである。
付録：３点からの円弧式
ｐstart、ｐinter、およびｐendを空間内の３点とする。我々は、以下のように定義する。
○これらの点ｐstart、ｐinter、およびｐendを通る平面Π
○Πに属する３次元の点を平面Πの局所２次元座標系における２次元の点に変換する適用
【０３１５】
【数７７】
2020109662.tif 000078
【０３１６】
○平面Πの局所座標系における２次元の点を、対応する３次元の点に変換する適用
【０３１７】
【数７８】
2020109662.tif 000079
【０３１８】
○
【０３１９】
【数７９】
2020109662.tif 000080
【０３２０】
○
【０３２１】
【数８０】
2020109662.tif 000081
【０３２２】
および
○
【０３２３】
【数８１】
2020109662.tif 000082
【０３２４】
次いで、ｐstart、ｐinter、およびｐendを通る円弧セグメントは、
【０３２５】
【数８２】
2020109662.tif 000083
【０３２６】
、∀ｕ∈［０，１］によって定義される。
ただし、
【０３２７】
【数８３】
2020109662.tif 000084
【０３２８】
および
【０３２９】
【数８４】
2020109662.tif 000085
【０３３０】
【数８５】
2020109662.tif 000086
【０３３１】
最後に、我々は、θstart、θinter、およびθendをそれぞれ、軸
【０３３２】
【数８６】
2020109662.tif 000087
【０３３３】
に関するベクトル
【０３３４】
【数８７】
2020109662.tif 000088
【０３３５】
【数８８】
2020109662.tif 000089
【０３３６】
および
【０３３７】
【数８９】
2020109662.tif 000090
【０３３８】
と示す。
○θstart＜θinter＜θendの場合には、α＝θstartおよびβ＝θend
○θstart＜θend＜θinterまたはθinter＜θstart＜θendの場合には、α＝θendおよびβ＝θstart＋２π
○θinter＜θend＜θstartまたはθend＜θstart＜θinterの場合には、α＝θstartおよびβ＝θend＋２π
○θend＜θinter＜θstartの場合には、α＝θendおよびβ＝θstart
【図１】
2020109662.tif 000091
【図２】
2020109662.tif 000092
【図３】
2020109662.tif 000093
【図４】
2020109662.tif 000094
【図５】
2020109662.tif 000095
【図６】
2020109662.tif 000096
【図７】
2020109662.tif 000097
【図８】
2020109662.tif 000098
【図９】
2020109662.tif 000099
【図１０】
2020109662.tif 000100
【図１１】
2020109662.tif 000101
【図１２】
2020109662.tif 000102
【外国語明細書】
2020109662000001.pdf