(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-05
(45)【発行日】2024-02-14
(54)【発明の名称】ユーザインタラクションを介した3Dモデルオブジェクトのデサイニング
(51)【国際特許分類】
G06F 30/10 20200101AFI20240206BHJP
G06F 3/04815 20220101ALI20240206BHJP
G06F 30/27 20200101ALI20240206BHJP
G06T 19/20 20110101ALI20240206BHJP
G06F 111/04 20200101ALN20240206BHJP
【FI】
G06F30/10 100
G06F3/04815
G06F30/27
G06T19/20
G06F111:04
【外国語出願】
(21)【出願番号】P 2019229155
(22)【出願日】2019-12-19
【審査請求日】2022-11-25
(32)【優先日】2018-12-20
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】500102435
【氏名又は名称】ダッソー システムズ
【氏名又は名称原語表記】DASSAULT SYSTEMES
(74)【代理人】
【識別番号】110000752
【氏名又は名称】弁理士法人朝日特許事務所
(72)【発明者】
【氏名】エロイ メール
【審査官】合田 幸裕
(56)【参考文献】
【文献】特開平04-188278(JP,A)
【文献】特開2017-120648(JP,A)
【文献】米国特許出願公開第2017/0193699(US,A1)
【文献】米国特許出願公開第2018/0240262(US,A1)
【文献】米国特許出願公開第2018/0181802(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/10
G06F 3/04815
G06F 30/27
G06T 19/20
G06F 111/04
IEEE Xplore
JSTPlus(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
ユーザ対話を介して3Dモデル化オブジェクトを設計するためのコンピュータ実施方法であって、
以下
A及びBを提供するステップ(S10)と
A)3Dモデル化オブジェクト、及び
B)潜在空間内の値をとり、3Dモデル化オブジェクト空間内の値を出力する微分可能な関数である機械学習デコーダ、
3Dモデル化オブジェクトの一部に対する変形制約をユーザによって定義するステップ(S30)と、
エネルギ
ーを最小化する最適な潜在ベクトルを決定するステップ(S40)であって、前記エネルギ
ーは、複数の潜在ベクトル
を探索し、
かつ探索
された潜在ベクトル毎に
、当該探索された潜在ベクトルに前記機械学習デコーダを適用した結果によって変形制約の非尊重にペナルティ
を与える項を含む
、決定するステップと、
前記最適な潜在ベクトルに前記
機械学習デコーダを適用するステップ(S50)と、
を含む方法。
【請求項2】
前記変形制約は幾何学的形状を定義し、
前記項は、前記
機械学習デコーダを前記探索された潜在ベクトルに適用した結果と前記幾何学的形状との間の不一致にペナルティを課す
請求項1に記載の方法。
【請求項3】
前記不一致は、前記
機械学習デコーダを前記探索された潜在ベクトルに適用した結果の導関数と前記幾何学的形状との間の距離を含む
請求項2に記載の方法。
【請求項4】
幾何学的形状は3D空間において定義され、導関数は
前記探索された潜在ベクトルに
前記機械学習デコーダを適用した結果であるか、又は
幾何学的形状が2D平面において定義され、導関数は
前記探索された潜在ベクトルに
前記機械学習デコーダを適用した結果の射影である
請求項3に記載の方法。
【請求項5】
前記不一致は、前記距離の単調関数である
請求項3又は4に記載の方法。
【請求項6】
前記3Dモデル化オブジェクトは3Dメッシュであり、
幾何学的形状が3D空間で定義され、導関数が探索された潜在ベクトルにデコーダを適用した結果である場合、前記項は次式の型であり
【数1】
幾何学的形
状が2D平面で定義され、導関数が、探索された潜在ベクトルにデコーダを適用した結果の射影である場合、前記項は次式の型である
【数2】
請求項4又は5に記載の方法。
【請求項7】
前記
機械学習デコーダを前記潜在空間上への前記3Dモデル化オブジェクトの射影に適用した結果から、前記
機械学習デコーダを前記最適
な潜在ベクトルに適用した結果に変形演算を計算するステップ(S60)と、
前記変形演算を前記3Dモデル化オブジェクトに適用するステップ(S70)と
をさらに有する請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記機械学習デコーダはエンコーダも備えるオートエンコーダのデコーダであり、
前記最適な潜在ベクトルを決定するステップ(S40)は、前記
機械学習デコーダを前記探索された潜在ベクトルに適用した結果と前記3Dモデル化オブジェクトとの間の類似性に報酬を与える
請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記最適な潜在ベクトルを決定するステップ(S40)は、前記エンコーダを前記3Dモデル化オブジェクトに適用した結果である第1
の潜在ベクトルから開始して、反復的に実行される
請求項8に記載の方法。
【請求項10】
前記エネルギーは、前記探索された潜在ベクトルと、前記エンコーダを前記3Dモデル化オブジェクトに適用した結果との間の類似性に報酬を与える別の項を含む
請求項8又は9に記載の方法。
【請求項11】
前記
別の項は、前記探索された潜在ベクトルと、前記エンコーダを前記3Dモデル化オブジェクトに適用した結果との間の距離を含む
請求項10に記載の方法。
【請求項12】
前記エネルギーは、前記潜在空間上の探索された潜在ベクトルの尤度に報酬を与える別の項を含む
請求項1乃至11のいずれか一項に記載の方法。
【請求項13】
請求項1乃至12のいずれか一項に記載の方法を実行するための命令を含むコンピュータプログラム。
【請求項14】
請求項13に記載のコンピュータプログラムを記録したコンピュータ可読記憶媒体。
【請求項15】
請求項13に記載のコンピュータプログラムを記録した、メモリ及びディスプレイに結合されたプロセッサを含むコンピュータ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はコンピュータプログラム及びシステムの分野に関し、より具体的には、ユーザ対話を介して3Dモデル化オブジェクトを設計するための方法、システム、及びプログラムに関する。
【背景技術】
【0002】
物体の設計、エンジニアリング及び製造のために、多数のシステム及びプログラムが市場に提供されている。CADはコンピュータ支援設計の頭字語であり、例えば、オブジェクトを設計するためのソフトウェアソリューションに関する。CAEはコンピュータ支援エンジニアリングの頭字語であり、例えば、将来の製品の物理的挙動をシミュレートするためのソフトウェアソリューションに関連する。CAMはコンピュータ支援製造の頭字語であり、例えば、製造プロセス及び動作を定義するためのソフトウェアソリューションに関する。そのようなコンピュータ支援設計システムでは、グラフィカルユーザインタフェースが技術の効率に関して重要な役割を果たす。これらの技術は、製品ライフサイクル管理(PLM)システム内に組み込まれてもよい。PLMとは、企業が製品データを共有し、共通のプロセスを適用し、企業知識を活用して、長期的な企業のコンセプトを越えて、コンセプトから生涯にわたる製品の開発に役立てることを支援するビジネス戦略のことをいう。(CATIA、ENOVIA及びDELMIAの商標で)ダッソーシステムズによって提供されるPLMソリューションは、製品工学知識を編成するエンジニアリングハブと、製造工学知識を管理する製造ハブと、エンタープライズ統合及びエンジニアリングハブ及び製造ハブの両方への接続を可能にするエンタープライズハブとを提供する。全体として、システムは最適化された製品定義、製造準備、生産、及びサービスを駆動する動的な知識ベースの製品作成及び意思決定サポートを可能にするために、製品、プロセス、リソースをリンクするオープン・オブジェクト・モデルを提供する。
この文脈及び他の文脈において、機械学習、特にオートエンコーダ及び/又はマニホールド学習は、広く重要性を増している。
【0003】
以下の論文はこの技術分野に関するものであり、以下に参照される:
[1]: “Stacked Denoising Autoencoders:
Learning Useful Representations in a Deep Network with a Local Denoising Criterion”、PVincent、HLarcohelle、ILajo
ie、YBengio、PManzagol、in The Journal of Machine Learning Research、2010.
[2]: Science、2006において、G.EHinton、RRSalakhutdinov、“Reducing Dimensionality o
f Data with Neural Networks”.
[3]: “Learning Deep Architectures for
AI”、YBengio、in Foundations and Trend
s in Machine Learning、2009.
[4]: “Generative Adversarial Nets”、IG
oodfellow、JPouget-Abadie、MMirza、BXu、DWarde-Farley、SOzair、ACourville、YBengio、in Advances in Neural Information Processing Systems、2014.
[5]: “Generative Visual Manipulation
on Natural Image Manifold”、J-Y Zhu、PK
rahenbuhl、EShechtman、AAEfros、in ECCV 2016.
[6]: “Neural Photo Editing with Intro
spective Adversarial Networks”、ABrock
、TLim、J.MRitchie、in ICLR 2017.
【0004】
同じクラスからのサンプルを表すデータセット、例えば椅子の画像のデータセット、又は車の3Dモデルのデータセットが与えられると、オートエンコーダ([1,2]で説明されている)は、このデータセットの元の入力空間と、しばしば潜在空間と呼ばれる低次元空間との間のマッピングを学習することを目的とする。さらに、オートエンコーダは、潜在空間から元の入力空間への逆マッピングも学習する。それらは、元の空間において現実的な非線形補間を行い、データにおいて有意義な特徴を抽出し、データをコンパクトな表現に圧縮するなどのために使用されてもよい。
【0005】
論文[4]は生成的な敵対的ネットワーク、すなわちデコーダを学習するモデルを導入するが、データの分布を学習するために潜在空間に確率論的事前設定も行う。そうするために、それらは識別器をだますためにデコーダを訓練し、一方、識別器は実際のデータと合成されたデータとの間を分類するように訓練される。オートエンコーダのような再構成エラーを使用して、潜在空間上にデータを射影するエンコーダを学習することもできる。
【0006】
論文[5]は、画像上で生成的な敵対的ネットワークを学習する。変形例は最終的に、オプティカルフローを用いてオリジナル画像上に再ターゲット化される。論文[6]はまた、内観的敵対ネットワーク、変分オートエンコーダと生成敵対ネットワークとの間のハイブリダイゼーションを学習することによって、画像に対する編集システムを提案するが、それらはオプティカルフローの代わりにマスキング技術を用いてユーザ修正を再ターゲットする。
【0007】
しかしながら、(例えば、3D)設計の文脈における機械学習技術の使用はまれであり、比較的未知のアプローチのままである。
【0008】
この文脈内で、ユーザ対話を介して3Dモデル化オブジェクトを設計するための改善された方法が依然として必要とされている。
【発明の概要】
【0009】
したがって、ユーザ対話を介して3Dモデル化オブジェクトを設計するためのコンピュータ実施方法が提供される。この方法は、3Dモデル化オブジェクト及び機械学習デコーダを提供することを含む。機械学習デコーダは潜在空間内の値を取り、3Dモデル化オブジェクト空間内の値を出力する微分可能関数である。この方法は、ユーザによって、3Dモデル化オブジェクトの一部の変形制約を定義するステップをさらに含む。この方法は、最適ベクトルを決定することをさらに含む。最適ベクトルは、エネルギーを最小化する。エネルギーは潜在ベクトルを探索する。エネルギーは探索された潜在ベクトルにデコーダを適用した結果によって、探索された潜在ベクトルごとに、変形制約の非尊重を不利にする項を含む。この方法は、デコーダを最適な潜在ベクトルに適用することをさらに含む。
【0010】
そのような方法は、ユーザ対話を介して3Dモデル化オブジェクトを設計するための改善された方法を構成する。
【0011】
特に、本方法は、ユーザ対話を介して3Dモデル化オブジェクトを設計する状況において、機械学習デコーダを利用する。
【0012】
さらに、ユーザは、3Dモデル化オブジェクトの一部の変形制約を定義する。換言すれば、ユーザは、3Dモデル化オブジェクトを変形させることを目的とする設計意図を提供する。次に、この方法は、潜在ベクトル空間上の変形制約の非尊重にペナルティを課すエネルギーを最小化するベクトルである最適潜在ベクトルを決定する。換言すれば、決定された最適な潜在ベクトルは、変形制約を尊重する傾向がある潜在空間のベクトルである。例では、最適な潜在ベクトルが変形制約を(例えば、最適に)尊重する。次に、最適な潜在ベクトルは、3Dモデル化オブジェクト空間の要素に復号される。言い換えれば、本方法はユーザによって提供される変形制約を考慮する(例えば、最適に)傾向がある3Dモデル化オブジェクトを見つける。したがって、この方法はユーザの設計意図を尊重する(例えば、尊重する)傾向がある3Dモデル化オブジェクトを見つけることを可能にする。
【0013】
さらに、最適な潜在ベクトルの決定及び最適な潜在ベクトルへのデコーダの適用は、ユーザによる変形制約の提供の結果として、ユーザアクションを伴うことなく、自動的に実行されてもよい。したがって、この方法は、ユーザの設計意図を尊重する傾向がある3Dモデル化オブジェクトを出力するだけでなく、ユーザ/マシン対話をほとんど行わずに出力する。したがって、この方法は効率的であり、人間工学的である。
【0014】
また、デコーダは、そのようにするために機械学習された可能性があるので、妥当な3Dモデル化オブジェクトのみを出力することができる。例えば、3Dモデル化オブジェクト空間は、妥当な3Dモデル化オブジェクトの空間であってもよい。言い換えれば、本方法は、人間工学的かつ効率的な方法でユーザの設計意図を尊重する傾向がある、妥当な3Dモデル化オブジェクトを出力することができる。
【0015】
この方法は、以下のうちの1つ又は複数を含むことができる:
-変形制約は幾何学的形状を定義し、項は、探索された潜在ベクトルにデコーダを適用した結果と幾何学的形状との間の不一致にペナルティを課す;
-不一致は、探索された潜在ベクトルにデコーダを適用した結果の導関数と幾何学的形状との間の距離を含む;
-幾何学的形状は3D空間で定義され、導関数は探索された潜在ベクトルにデコーダを適用した結果である;
-幾何学的形状は2D平面内で定義され、導関数は探索された潜在ベクトルにデコーダを適用した結果の射影である;
-不一致は距離の単調関数である;
-3Dモデル化オブジェクトは3Dメッシュであり、幾何学的形状が3D空間で定義され、導関数が探索された潜在ベクトルにデコーダを適用した結果である場合、項は次のタイプのものである:
【数1】
【0016】
-3Dモデル化オブジェクトは3Dメッシュであり、幾何学的形状が2D平面内で定義され、導関数が探索された潜在ベクトルにデコーダを適用した結果の射影である場合、項は次のタイプのものである:
【数2】
【0017】
-潜在空間上への3Dモデル化オブジェクトの射影にデコーダを適用した結果から、最適化された潜在ベクトルにデコーダを適用し、3Dモデル化オブジェクトに変形操作を適用した結果への変形操作の計算。
-機械学習デコーダは、エンコーダも備えるオートエンコーダのデコーダである;
-最適な潜在ベクトルの決定は、探索された潜在ベクトルにデコーダを適用した結果と3Dモデル化オブジェクトとの間の類似性に報酬を与える;
-最適な潜在ベクトルの決定は、エンコーダを3Dモデル化オブジェクトに適用した結果である第1の探索された潜在ベクトルから開始して、反復的に実行される;
- エネルギーは、探索された潜在ベクトルと、エンコーダを3Dモデル化オブジェクトに適用した結果との間の類似性に報酬を与える別の項を含む;
-他の項は探索された潜在ベクトルと、エンコーダを3Dモデル化オブジェクトに適用した結果との間の距離を含み、及び/又は、
-エネルギーが潜在空間上の探索された潜在ベクトルの尤度に報酬を与える別の項を含む。
【0018】
本方法を実行するための命令を含むコンピュータプログラムがさらに提供される。
【0019】
さらに、コンピュータプログラムが記録されたコンピュータ可読記憶媒体が提供される。
【0020】
さらに、メモリに結合されたプロセッサとグラフィカルユーザインタフェースとを含むシステムが提供され、メモリは、その上に記録されたコンピュータ・プログラムを有する。
【図面の簡単な説明】
【0021】
【
図14】システムのグラフィカルユーザインタフェースの一例を示す。
【発明を実施するための形態】
【0022】
図1のフローチャートを参照すると、ユーザ対話を介して3Dモデル化オブジェクトを設計するためのコンピュータ実施方法が提案されている。この方法は、3Dモデル化オブジェクト及び機械学習デコーダを提供するステップS10を含む。機械学習デコーダは潜在空間内の値を取り、3Dモデル化オブジェクト空間内の値を出力する微分可能関数である。この方法はさらに、ユーザによって、3Dモデル化オブジェクトの一部の変形制約を定義するステップS30を含む。この方法は、最適ベクトルを決定するステップS40をさらに含む。最適ベクトルは、エネルギーを最小化する。エネルギーは潜在ベクトルを探索する。エネルギーは探索された潜在ベクトルにデコーダを適用した結果によって、探索された潜在ベクトルごとに、変形制約の非尊重を不利にする項を含む。この方法は、デコーダを最適な潜在ベクトルに適用するステップS50をさらに含む。
【0023】
この方法は、コンピュータで実施される。この手段は、該方法のステップ(又は実質的に全てのステップ)が少なくとも1つのコンピュータ又は任意のシステムによって実行されることである。したがって、本方法のステップはコンピュータによって、場合によっては完全に自動的に、又は半自動的に実行される。例では、方法のステップのうちの少なくともいくつかのトリガがユーザ/コンピュータ対話を介して実行され得る。必要とされるユーザ/コンピュータ対話のレベルは予測される自動化のレベルに依存し、ユーザの希望を実施する必要性とバランスをとることができる。例では、このレベルがユーザ定義及び/又は事前定義され得る。
【0024】
方法のコンピュータ実装の典型的な例は、この目的のために適合されたシステムを用いて方法を実行することである。システムはメモリに結合されたプロセッサと、グラフィカルユーザインタフェース(GUI)とを備えることができ、メモリには、本方法を実行するための命令を含むコンピュータプログラムが記録されている。メモリはまた、データベースを記憶してもよい。メモリはそのような記憶装置に適合された任意のハードウェアであり、場合によっては、いくつかの物理的に別個の部分(例えば、プログラムのための部分、及び場合によってはデータ断片ベースのための部分)を備える。
【0025】
この方法は一般に、モデル化されたオブジェクトを操作する。モデル化されたオブジェクトは、例えばデータベースに格納されたデータによって定義される任意のオブジェクトである。伸長により、表現「モデル化オブジェクト」は、データ自体を指定する。システムのタイプに応じて、モデル化されたオブジェクトは、異なる種類のデータによって定義されてもよい。システムは、実際にはCADシステム、CAEシステム、CAMシステム、PDMシステム、及び/又はPLMシステムの任意の組み合わせであってもよい。これらの異なるシステムでは、モデル化されたオブジェクトが対応するデータによって定義される。したがって、CADオブジェクト、PLMオブジェクト、PDMオブジェクト、CAEオブジェクト、CAMオブジェクト、CADデータ、PLMデータ、PDMデータ、CAMデータ、CAEデータについて言うことができる。しかしながら、モデル化されたオブジェクトはこれらのシステムの任意の組み合わせに対応するデータによって定義され得るので、これらのシステムは他のシステムのうちの1つを排他的にするものではない。したがって、システムは以下に提供されるそのようなシステムの定義から明らかになるように、CADシステム及びPLMシステムの両方であってもよい。
【0026】
CADシステムとは、さらに、CATIAのような、モデル化されたオブジェクトのグラフィック表現に基づいてモデル化されたオブジェクトを少なくとも設計するように適合された任意のシステムを意味する。この場合、モデル化されたオブジェクトを定義するデータは、モデル化されたオブジェクトの表現を可能にするデータを含む。CADシステムは例えば、ある場合には、顔又は表面を有するエッジ又は線を使用してCADモデル化オブジェクトの表現を提供することができる。線、エッジ、又は表面は様々な方法、例えば、不均一有理Bスプライン(NURBS)で表すことができる。具体的には、CADファイルは仕様を含み、そこから幾何学的形状を生成することができ、これにより表現を生成することができる。モデル化されたオブジェクトの仕様は、単一のCADファイル又は複数のCADファイルに格納することができる。CADシステム内のモデル化されたオブジェクトを表すファイルの典型的なサイズは、パーツ当たり1メガバイトの範囲内である。そして、モデル化されたオブジェクトは、典型的には何千ものパーツのアセンブリであり得る。
【0027】
ここで、この方法に含まれる「3Dモデル化オブジェクト」の概念について説明する。
【0028】
CADの文脈では、モデル化されたオブジェクトが典型的には例えば、部品又は部品のアセンブリ、又は場合によっては製品のアセンブリなどの製品を表す3Dモデル化されたオブジェクトとすることができる。「3Dモデリングされたオブジェクト」とは、その3D表現を可能にするデータによってモデリングされる任意のオブジェクトを意味する。3D表現は、全ての角度から部品を見ることを可能にする。例えば、3Dモデル化オブジェクトは3D表現される場合、その軸のいずれかの周り、又は表現が表示される画面内のいずれかの軸の周りで取り扱われ、回転され得る。これは特に、3Dモデル化されていない2Dアイコンを除外する。3D表現の表示は設計を容易にする(すなわち、設計者が統計的に彼らのタスクを達成する速度を増加させる)。これは、製品の設計が製造工程の一部であるため、産業界における製造工程を高速化する。
【0029】
本方法の文脈では3Dモデル化オブジェクトが例えばCADソフトウェアソリューション又はCADシステムを用いた仮想設計の完了後に、現実世界で製造される製品の幾何学的形状を表すことができ、例えば、(機械の)部品又は部品のアセンブリ(又は同等に部品のアセンブリが本方法の観点から部品自体として見ることができるので、部品のアセンブリ)、又はより一般的には任意の剛体アセンブリ(例えば、可動機構)などである。CADソフトウェアソリューションは、航空宇宙、建築、建築、消費財、ハイテク装置、産業機器、輸送、海洋、及び/又は沖合の石油/ガスの生産又は輸送を含む、さまざまな無制限の産業分野における製品の設計を可能にする。したがって、本方法によって設計された3Dモデル化オブジェクトは陸上車両の一部(例えば、自動車及び軽トラック機器、レーシングカー、オートバイ、トラック及びモータ機器、トラック及びバス、トラック及びバスを含む)、航空車両の一部(例えば、機体機器、航空宇宙機器、推進機器、推進機器、航空機機器、宇宙機器を含む)、海軍車両の一部(例えば、海軍機器、商用船、オフショア機器、ヨット及び作業船を含む)、一般機械部品(例えば、工業製造機械、重移動機械又は機器、設置機器、産業機器、加工金属製品、タイヤ製造製品を含む)、電気機械又は電子部品(例えば、家庭用電化製品、セキュリティ及び/又は制御及び/又は計装製品、コンピュータ及び通信機器、半導体、医療デバイス及び機器を含む)、消費財(例えば、家具、家庭用品、レジャー用品、ファッション用品、ハードグッズ小売業者の製品、ソフトグッズ小売業者の製品を含む)、包装(例えば、食品及び飲料及びタバコ、美容及びパーソナルケア、家庭用品包装を含む)など、任意の機械部品であってもよい工業製品を表してもよい。
【0030】
例では、本方法によって設計された、及び/又は本方法に含まれる任意の3Dモデル化オブジェクトは成形部品(すなわち、成形製造工程によって製造された部品)、機械加工部品(すなわち、機械加工製造工程によって製造された部品)、穿孔部品(すなわち、穿孔製造工程によって製造された部品)、旋削部品(すなわち、旋削製造工程によって製造された部品)、鍛造部品(すなわち、鍛造製造工程によって製造された部品)、打ち抜き部品(すなわち、打ち抜き製造工程によって製造された部品)、及び/又は折り曲げ部品(すなわち、折り曲げ製造工程によって製造された部品)のうちの1つ又は妥当な組合せである機械部品を表すことができる。
【0031】
本方法によって設計され、及び/又は本方法に含まれる任意の3Dモデル化オブジェクトは妥当な(例えば、現実的である)3Dモデル化オブジェクトであってもよい。妥当な3Dモデル化オブジェクトは妥当な(例えば、現実的である)機械部品を表す3Dモデル化オブジェクトを指定することができる。もっともらしい機械部品は、現実世界の工業製造プロセスで現実的に製造可能な機械部品を指すことができる。妥当な機械部品とは、現実世界の工業製造プロセスで機械部品を現実的に製造するために尊重されなければならないすべての制約を尊重する機械部品を指すことができる。制約は機械的制約(例えば、古典的機械学の法則から生じる制約)、機能的制約(例えば、一度製造された機械部品によって実行されるべき1つ以上の機械的機能に関する制約)、製造制約(例えば、機械部品を製造するための1つ以上の製造工程中に機械部品に1つ以上の製造ツールを適用する能力に関する制約)、構造的制約(例えば、機械部品の強度及び/又は抵抗に関する制約)、及び/又はアセンブリ制約(例えば、機械部品を1つ以上の他の機械部品とどのように組み立てることができるかを定義する制約)のうちの1つ又は任意の妥当な組み合わせを含むことができる。
【0032】
「3Dモデル化オブジェクトを設計する」は、3Dモデル化オブジェクトを作成するプロセスの少なくとも一部である任意のアクション又は一連のアクションを指定する。したがって、この方法は、3Dモデル化オブジェクトをスクラッチから作成することを含むことができる。あるいは、本方法が以前に作成された3Dモデル化オブジェクトを提供するステップと、次いで、3Dモデル化オブジェクトを修正するステップとを含むことができる。
【0033】
方法は製造プロセスに含まれてもよく、製造プロセスは方法を実行した後に、モデル化されたオブジェクトに対応する物理的製品を生成することを含んでもよい。いずれの場合も、本方法によって設計されたモデル化オブジェクトは、製造オブジェクトを表すことができる。したがって、モデル化されたオブジェクトはモデル化されたソリッド(すなわち、固体を表すモデル化されたオブジェクト)とすることができる。製造対象物は、部品などの製品、又は部品のアセンブリであってもよい。この方法はモデル化された物体の設計を改善するので、この方法はまた、製品の製造を改善し、したがって、製造プロセスの生産性を増加させる。
次に、3Dモデル化オブジェクトの提供ステップS10について説明する。
【0034】
3Dモデル化オブジェクトの提供は、CADシステムなどのコンピュータのディスプレイ上に3Dモデル化オブジェクトを表示することを含むことができる。3Dモデル化オブジェクトの提供はユーザのアクション、例えば、ユーザとコンピュータとの間の対話に起因し得る。例では、3Dモデル化オブジェクトが別のコンピュータ上の別のユーザによって設計され、任意選択でメモリに格納され、及び/又は(例えば、ネットワークを介して)コンピュータに送信されてもよい。3Dモデル化オブジェクトの提供は、メモリから3Dモデル化オブジェクトを取り出すことを含むことができる。例では、ユーザと別のユーザとが異なり、コンピュータと別のコンピュータとが異なる。これらの例では、コンピュータと他のコンピュータとがネットワークで接続されていてもよい。例では、ユーザと別のユーザは同じであり、コンピュータと別のコンピュータは同じである。
【0035】
3Dモデル化オブジェクトは、メッシュ又はポイントクラウドとして提供されてもよい(S10)。あるいは、提供するステップS10が3Dモデル化オブジェクトを任意のフォーマット(例えば、CADファイルとして)で提供するステップと、3Dモデル化オブジェクトをメッシュ化するステップと、及び/又は(例えば、メッシュ化された)3Dモデル化オブジェクトから、3Dモデル化オブジェクトを表す点群を決定するステップ(例えば、推論するステップ、例えば、抽出するステップ、例えば、計算するステップ)とを含んでもよい。
【0036】
次に、機械学習デコーダについて説明する。
【0037】
機械学習デコーダは、微分可能な関数である。この関数は機械学習される。この関数は、潜在空間内の値をとる。潜在空間はベクトル空間である。関数は3Dモデル化されたオブジェクト空間、すなわち、3Dモデル化された物体から構成される(例えば、製造された)空間での値を出力する。換言すれば、潜在空間のベクトル(以下、「潜在ベクトル」という)に関数を適用することにより、3Dモデル化オブジェクトが出力される。換言すれば、関数による各潜在ベクトルの画像は、3Dモデル化オブジェクト空間の3Dモデル化オブジェクトである。関数による潜在空間の画像は、3Dモデル化オブジェクト空間又は3Dモデル化オブジェクト空間の厳密な部分集合とすることができる。デコーダを潜在ベクトルに適用する手段に、潜在ベクトルを復号する。したがって、復号の結果を「復号された潜在ベクトル」と呼ぶことができる。例では、潜在空間が確率的事前を特徴とする。言い換えれば、以下に示す確率的事前表現p(z)は、潜在空間にわたって与えられる。zは、潜在空間のベクトルの表記である。これらの例では、事前が潜在ベクトルが潜在空間にわたってどのように分布されるかを表す事前確率分布であってもよい。潜在空間を完全に知ることなく、確率分布を決定する(例えば、計算する、例えば、確立する)ことができるという先験的な手段。例えば、潜在空間にわたる事前は3Dモデル化オブジェクト空間にわたる3Dモデル化オブジェクトの既存の(例えば、確率)分布から推論(例えば、推定)することができ、その結果、事前は3Dモデル化オブジェクト空間にわたる3Dモデル化オブジェクトの分布に(例えば、実質的に)対応する潜在空間にわたる潜在ベクトルの分布を表す。
【0038】
機械学習デコーダは、オートエンコーダのデコーダであってもよい。本方法の文脈では、オートエンコーダが2つのフィードフォワードディープニューラルネットワーク(論文[3]参照)の構成として定義される。
【数3】
これは、重み
【数4】
によってパラメータ化される。ここで、
【数5】
である。
【数6】
はエンコーダであり、
【数7】
はデコーダである。
【数8】
は潜在空間、すなわち、エンコーダ
【数9】
がその値を出力し、デコーダ
【数10】
がその値をとるベクトル空間である。pは、潜在空間の次元である。
【数11】
は、エンコーダ
【数12】
がその値をとり、デコーダ
【数13】
がその値を出力する空間である。
【数14】
は「元の入力空間」と呼ぶことができる。mは、元の入力空間の次元である。本方法によって提供される機械学習デコーダの場合、元の入力空間は、3Dモデル化オブジェクト空間であってもよい。あるいは、3Dモデル化オブジェクト空間が元の入力空間のサブセットであってもよい。言い換えれば、エンコーダ
【数15】
は元の入力空間においてその値をとるが、デコーダ
【数16】
による潜在空間の画像、すなわち、本方法のコンテキストにおける3Dモデル化オブジェクト空間は元の入力空間のサブセットであってもよい。ベクトル
【数17】
は、「潜在ベクトル」又は「隠れベクトル」と呼ばれることがある。オートエンコーダ
【数18】
はまた、「再構成」と呼ばれることもある。再構成は元の入力空間の第1の要素(例えば、3Dモデル化オブジェクト空間の第1の3Dモデル化オブジェクト)を入力として取り、それを潜在ベクトル空間の潜在ベクトル上にマッピングし、次いで、潜在ベクトルから元の入力空間の第2の要素(例えば、3Dモデル化オブジェクト空間の第2の3Dモデル化オブジェクト)を出力することによってマッピングを逆にする。第2の要素は、第1の要素の「再構成」と呼ばれることがある。例では、それは、第2の要素が第1の要素の近似を表すことを意味する。例では、xが3Dモデル化オブジェクトである場合、3Dモデル化オブジェクト
【数19】
は再構築された3Dモデル化オブジェクトと呼ばれ得る。また、xは入力と呼ばれ、
【数20】
は再構成された入力と呼ばれることもある。本方法の文脈では、エンコーダ
【数21】
及びデコーダ
【数22】
が例えば、再構成誤差を最小化することによって、(例えば、別々に、又は同時に)機械加工学習されてもよい。符号器をオブジェクトに適用する手段にオブジェクトを符号化する。したがって、符号化の結果を「符号化オブジェクト」と呼ぶことができる。デコーダを潜在ベクトルに適用する手段に、潜在ベクトルを復号する。したがって、復号の結果を「復号された潜在ベクトル」と呼ぶことができる。
【0039】
次に、機械学習デコーダの提供ステップS10について説明する。
【0040】
機械学習デコーダの提供ステップS10は、データベースから機械学習デコーダを取り出すことを含むことができる。言い換えれば、機械学習デコーダは、以前に学習され、後の使用のためにデータベースに記憶されていてもよい。例では、機械学習デコーダの提供ステップS10がデータベース内のデコーダにアクセスするユーザによって実行されてもよい。さらに、又は代替として、提供するステップS10はデコーダを最初から学習し、それを本方法による使用に利用可能にするステップを含むことができる。
【0041】
次に、3Dモデル化オブジェクト空間について説明する。
【0042】
3Dモデル化オブジェクト空間は一般に、3Dモデル化オブジェクトからなる空間を指す。3Dモデル化オブジェクト空間は、ベクトル空間に含まれてもよい。例では、3Dモデル化オブジェクト空間がベクトル空間の多様体、例えば接続された多様体である。例では、3Dモデル化オブジェクト空間が同じクラスの3Dモデル化オブジェクトの3Dモデル化オブジェクトから作られる。3Dモデル化オブジェクトのクラスは、ベクトル空間の接続された多様体に対応することができる。加えて、又は代替として、3Dモデル化オブジェクトのクラスは以下の特性を有する3Dモデル化オブジェクトのセットを指定することができる。すなわち、セットの任意の第1の3Dモデル化オブジェクトがセットの少なくとも第2の3Dモデル化オブジェクトに類似する(例えば、類似する形状を有する)。
【0043】
例では、3Dモデル化オブジェクトのクラスがそれぞれの機械部品を表す3Dモデル化オブジェクトから作られ、機械部品は以下の条件のいずれか1つ又は任意の組合せをすべて尊重するクラスに関連する(すなわち、対応する):
・クラスに対する機械部品は、全て、同じ製造工程又は製造工程の同じ組み合わせで製造される;
・クラスに対する機械部品はすべて妥当な機械部品である;
・クラスに対する機械部品は、全て、技術及び/又は産業の同じ分野からのものである;
・クラスに対する機械部品はすべて、同じ機械的機能を実行する;
クラスに対する機械部品はそれぞれ、クラスの少なくとも1つの他の3Dモデル化オブジェクトと同様の形状を有する3Dモデル化オブジェクトによって表され(したがって、クラスに対する別の機械部品を表す);及び/又は
・クラスに対する機械部品はすべて、同じ機械的制約、機能的制約、製造制約、構造的制約、及び/又はアセンブリ制約に従う(例えば、これらを満たす、例えば、検証する)。
【0044】
例では、提供される3Dモデル化オブジェクト及び(例えば、実質的に)3Dモデル化オブジェクト空間の3Dモデル化オブジェクトのすべては同じクラスの3Dモデル化オブジェクトの3Dモデル化オブジェクトである。これらの例では、デコーダが前記同じクラスの3Dモデル化オブジェクトのデータセットに基づいて機械学習されていてもよい。例えば、デコーダは、任意の潜在ベクトルを前記同じクラスの3Dモデル化オブジェクト上にマッピングするために機械学習されていてもよい。例ではデコーダがエンコーダをさらに備えるオートエンコーダのデコーダであってもよく、デコーダ及びエンコーダは両方とも、前記同じクラスの3Dモデル化オブジェクトのデータセットに基づいて機械学習される。これらの例では、エンコーダが前記同じクラスの任意の3Dオブジェクトを潜在空間の潜在ベクトル上にマッピングするために機械学習されていてもよい。これらの例では、デコーダが任意の潜在ベクトルを前記同じクラスの3Dモデル化オブジェクト上にマッピングするために機械学習されていてもよい。例では、3Dモデル化オブジェクト空間のすべてのモデル化オブジェクトがもっともらしい3Dモデル化オブジェクトである。
【0045】
図2は、本方法の3Dモデル化オブジェクトのセット20の一例を形成する3Dモデル化オブジェクトのクラスを示す。3Dモデル化オブジェクトは椅子である。椅子は(例えば、人間の)体重を支持する同じ機械的機能を全て実行するので、3Dモデル化オブジェクトのクラスを形成する。この機械的機能を実行することはまた、椅子がすべて同じ機械的拘束、機能的拘束及び構造的拘束に従うことを意味する。
図2の椅子は機械的制約、機能的制約、製造上の制約、及び構造上の制約を尊重し、それによって、1つ又は複数の製造プロセスによる現実世界でのそれらの製造を可能にするので、妥当な機械的部品である。
【0046】
図3は、本方法の3Dモデル化オブジェクトのセット30の一例を形成する3Dモデル化オブジェクトのクラスを示す。3Dモデル化オブジェクトは、4つの脚を有する椅子である。4つの脚を有する椅子はそれらが全て、(例えば、人間の)体重を支持する同じ機械的機能を実行し、また、4つの脚を有するこの機械的機能を実行することは、椅子が全て同じ機械的制約、機能的制約、及び構造的制約に従うことも意味するので、一群の3Dモデル化オブジェクトを形成する。
図3の椅子は機械的制約、機能的制約、製造上の制約、及び構造上の制約を尊重し、それによって、1つ又は複数の製造プロセスによる現実世界でのそれらの製造を可能にするので、妥当な機械的部品である。
【0047】
3Dモデル化オブジェクト空間は、メッシュ及び/又はポイントクラウドのような3Dモデル化オブジェクトの離散表現で作られた空間であってもよい。言い換えると、3Dモデル化オブジェクト空間は、空間の3Dモデル化オブジェクトの対応する離散表現(メッシュ及び/又は点群など)から作られる。そのような場合、3Dモデル化オブジェクト空間の要素は単純化のために、それらの対応する離散表現ではなく、3Dモデル化オブジェクト自体と依然として呼ばれることがある。
【0048】
例では、この方法が3Dモデル化オブジェクトを潜在空間上に射影するステップS20を含む。これらの例では、機械学習デコーダが機械学習エンコーダも含む機械学習オートエンコーダのデコーダであってもよい。3Dモデル化オブジェクトを射影するステップS20は、エンコーダを3Dモデル化オブジェクトに適用するステップと、エンコーダを3Dモデル化オブジェクトに適用して潜在ベクトルをもたらすステップとを含むことができる。潜在ベクトルは、潜在空間上の3Dモデル化オブジェクトの射影と呼ぶことができる。あるいは、3Dモデル化オブジェクトの提供ステップS10が3Dモデル化オブジェクトに加えて、エンコーダを3Dモデル化オブジェクトに適用した結果である潜在ベクトルを提供することを含むことができる。いずれにせよ、射影ステップS20は本明細書で後述するように、3Dモデル化オブジェクトの潜在空間への射影である潜在ベクトルが、本方法でのさらなる使用のために利用可能になるという結果をもたらすことができる。
【0049】
ここで、3Dモデル化オブジェクトの部分について説明する。
【0050】
例では本方法によって設計された、又は本方法に関与する任意の3Dモデル化オブジェクトは複数の部分に分割され得る。機械部品を表す3Dモデル化オブジェクトの場合、3Dモデル化オブジェクトの一部は機械部品の材料のレイアウトを指定することができ、材料のレイアウトは、機械機能を実行する。言い換えれば、機械部品を表す3Dモデル化オブジェクトは各々が機械部品の材料のそれぞれのレイアウトを表す部分に分割されてもよく、材料のそれぞれのレイアウトはそれぞれの機械機能を実行する。本発明の文脈では、機械部品の材料のレイアウトによって実行される関数が支持関数、強化関数、抵抗関数、他の材料のレイアウト間の接続関数、質量低減関数、空間予約関数、固定関数、締め付け関数、調整関数、位置決め関数、機械的接合関数、冷却関数、空間予約関数、回転又は円筒機械的接合関数、アセンブリ関数、補強関数、位置決めピン関数、回転又は円筒機械的接合関数、及び/又はすべての機械加工及び穿孔された突起関数のための台のうちの1つ又は妥当な組み合わせとすることができる。
【0051】
例えば、
図2又は
図3に示す椅子のいずれか1つの脚のような椅子の脚は、支持機能を果たす椅子の材料のレイアウトである。換言すれば、椅子の脚部は椅子を形成するさらなる材料の質量、ならびに椅子に座っている人間の質量を支持する機能を実行することに関与する(例えば、他の脚部と同様に)。
【0052】
別の例は
図2又は
図3に表される椅子のいずれか1つの椅子の背もたれのような(例えば、屈曲した)椅子の背もたれである。椅子背もたれは、支持機能を果たす椅子の材料のレイアウトである。換言すれば、椅子の背もたれは、椅子に座っている人間の背中を支持する機能を果たすことに関与する。
【0053】
別の例は、
図2又は
図3に示す椅子のいずれか1つの椅子座席のような椅子座席である。椅子座席は、支持機能を果たす椅子の材料のレイアウトである。換言すれば、椅子座席は、椅子を形成するさらなる材料の質量、ならびに椅子に座っている人間の質量を支持する機能を果たすことに関与する。椅子座席はまた、他の背もたれ及び/又は他の脚のような他の部分を接続するので、接続機能を果たす。
【0054】
次に、3Dモデル化オブジェクトの他の例について説明する。
【0055】
本方法に含まれる任意の3Dモデル化オブジェクトは、自動車を表してもよい。そのような場合、3Dモデル化オブジェクトの部分は、(支持機能ならびに転がり及び/又は旋回の機能を実行する)自動車のホイール、又は(接続機能及び/又は抵抗機能及び/又は強化機能を実行する)自動車本体の一部(ドア、フード、又はトランクの蓋などの)を表すことができる。自動車は、3Dモデル化オブジェクトのクラスを形成することができる。代替的に又は追加的に、本方法に含まれる任意の3Dモデル化オブジェクトは、平面を表してもよい。そのような場合、3Dモデル化オブジェクトの部分は、平面の翼(流体を通って移動する間に揚力を生成する機能を実行する)、又は平面のエンジン(平面を移動させるための力を生成する機能を実行する)、又は平面の胴体(接続機能及び/又は抵抗機能及び/又は強化機能を実行する)を表すことができる。平面は、3Dモデル化オブジェクトのクラスを形成することができる。
【0056】
次に、3Dモデル化オブジェクトの一部に対する変形制約の定義ステップS30について説明する。
【0057】
変形制約はユーザによって定義され(S30)、すなわち、ユーザアクションから生じ得る。変形制約は3Dモデル化オブジェクトの部分の幾何学的形状の別の幾何学的形状(以下では「新しい幾何学的形状」と呼ぶことがある)への変形(例えば、変位)を決定する(例えば、幾何学的)仕様のセットを指定することができる。言い換えれば、変形はユーザによって直接定義されなくてもよいが、ユーザ動作はむしろ、変形を強制する仕様をもたらす。例では、ユーザが例えば、鍵盤及び/又は触覚デバイス及び/又は触覚デバイスを使用することによって、仕様の組を提供する(例えば、宣言する、例えば、指定する)ことが手段である。代替的に、仕様のセットは3Dモデル化オブジェクト(例えば、その一部)に対するユーザアクションから(例えば、自動的に)取り出されてもよい。代替的に、仕様のセットは3Dモデル化オブジェクトを含む画面上でユーザの図面から(例えば、自動的に)取り出されてもよい。したがって、変形制約によって定義される変形は、部品の幾何学的形状を新しい幾何学的形状に変形することによって、3Dモデル化オブジェクトを変形された3Dモデル化オブジェクトに変形することができる。
【0058】
例では、変形制約の定義S30がユーザと3Dモデル化オブジェクトの一部とのグラフィカル対話から生じる。グラフィカル対話は、例えばマウスなどの触覚デバイスを用いて3Dモデル化オブジェクトをクリックすること、又は指などの付属物を用いて3Dモデル化オブジェクトにタッチすることを含むことができる。グラフィカルインタラクションは、例えばドラッグアンドドロップ操作を実行することによって、クリックされた又はタッチされた3Dモデル化オブジェクトを移動させることをさらに含むことができる。例えば、ユーザは当技術分野で知られているように、例えば、マウスなどの触覚デバイスを用いて1つ又は複数の点をクリックすることによって、3Dモデル化オブジェクトの部分上の1つ又は複数の点を選択し、ドラッグ・アンド・ドロップ操作によってそれらを移動させる(例えば、それらを1つずつ、又はワンショット・ドラッグ・アンド・ドロップ操作によって移動させる)。移動された1つ以上の点のそれぞれの1つ以上の位置は3Dモデル化オブジェクトの部分の新しい幾何学的形状を決定する(例えば、形成する、例えば、結果として生じる)。言い換えると、3Dモデル化オブジェクトは提供ステップS10において所与の幾何学的形状を有し、ユーザは、点を移動させることによって新しい幾何学的形状を定義する。したがって、所与の幾何学的形状の新しい幾何学的形状への変形は、ユーザによって動かされる1つ又は複数の点のそれぞれの1つ又は複数の位置によって制約される。換言すれば、1つ以上の点を動かすことは部品の新しい幾何学的形状を定義し、部品の新しい幾何学的形状は変形制約を定義する。
【0059】
代替的に、ユーザは提供ステップS10において所与の幾何学的形状を有する3Dモデル化オブジェクトの部分の新しい幾何学的形状を表す2D描画(例えば、ディスプレイ上に)を描画することによって(例えば、触覚デバイスを使用することによって)変形制約を定義することができる。したがって、所与の幾何学的形状の新しい幾何学的形状への変形は、ユーザの描画によって制約される。言い換えれば、ユーザの描画は部品の新しい幾何学的形状を定義し、部品の新しい幾何学的形状は、変形制約を定義する。
【0060】
次に、最適潜在ベクトルの決定ステップS40について説明する。
【0061】
最適な潜在ベクトルは、エネルギーを最小化する。したがって、潜在ベクトルの決定ステップS40はエネルギーを最小化することにあり、最適な潜在ベクトルは、最小化の結果である。エネルギーは潜在ベクトルを探索する。例ではエネルギーが潜在ベクトルを表す少なくとも1つの変数の機能であるというこの手段、すなわち、少なくとも1つの変数は潜在空間又は潜在空間の部分空間に属する。エネルギーを最小化することは、反復的に、すなわち、エネルギーを最小化する潜在ベクトル(すなわち、最適な潜在ベクトル)が見つかるまで(例えば、その近似)、潜在空間の少なくとも部分空間の潜在ベクトルを反復的に訪れることによって実行されてもよい。エネルギーの最小化は、変形制約を定義するステップS30で自動的に実行されてもよい。エネルギーの最小化は、反復再重み付け最小二乗アルゴリズムなどの任意の最小化アルゴリズムを実行することによって実行することができる。
【0062】
エネルギーは探索された潜在ベクトルにデコーダを適用した結果によって、探索された潜在ベクトルごとに、変形制約の非尊重を不利にする項を含む。エネルギーが潜在ベクトルを表す少なくとも1つの変数の関数である例では、項が少なくとも1つの変数に依存することができ、デコーダを少なくとも1つの変数に適用した結果によって、変形制約の非関連性の尺度(例えば、定量化)を提供することができる。これらの例では、ペナルティを課すことはその項が尺度の大きさの増加関数であることを意味し得る。
【0063】
したがって、この方法は潜在ベクトルを探索し、復号された潜在ベクトル(すなわち、探索された潜在ベクトルにデコーダを適用した結果)が変形制約を尊重するか、又は尊重しないことを検証することによって、最適な潜在ベクトルを決定する。非尊重はデコーダの最適な潜在ベクトルが変形制約を尊重する(例えば、尊重する)傾向があるようにペナルティを課される。復号化された潜在ベクトルは、もっともらしい3Dモデル化オブジェクトであってもよく、この場合、本方法はもっともらしく、変形制約を考慮する(例えば、それに関して)傾向がある3Dモデル化オブジェクトを出力する。全ての復号された探索潜在ベクトルは、もっともらしい3Dモデル化オブジェクトであってもよい。言い換えれば、本方法は複数の妥当な3Dモデル化オブジェクトの中で変形制約を尊重する(例えば、最良を尊重する)傾向がある妥当な3Dモデル化オブジェクトを決定することができる。さらに、3Dモデル化オブジェクト空間は、3Dモデル化オブジェクトのクラスであってもよく、その結果、この場合、この方法はクラスの複数のもっともらしい3Dモデル化オブジェクトの中で、変形制約を尊重する(例えば、最良を尊重する)傾向があるクラスのもっともらしい3Dモデル化オブジェクトを決定してもよい。さらに、この方法はこれらの例ではこの方法が効率的で人間工学的であるように、自動的にそうすることができる。
例では、変形制約が幾何学的形状を定義する。これらの例では、この項が探索された潜在ベクトルにデコーダを適用した結果と幾何学的形状との間の不一致にペナルティを課す。
【0064】
変形制約によって定義される変形は、3Dモデル化オブジェクトの部分の形状を、3Dモデル化オブジェクトの部分の新しい幾何学的形状に変形させることができる。その結果、変形は、部品の幾何学的形状を変形させることによって、3Dモデル化オブジェクト全体を新しい3Dモデル化オブジェクト(変形入力とも呼ばれる)に変形させることもできる。言い換えれば、新しい3Dモデル化オブジェクトは、部品の幾何学的形状が変形されるという点で、提供される3Dモデル化オブジェクトとは異なってもよい。したがって、変形制約によって定義される幾何学的形状は、新しい3Dモデル化オブジェクトを指定することができる。デコーダがオートエンコーダのデコーダである例では、新たな3Dモデル化オブジェクトが再構成された3Dモデル化オブジェクトから計算されてもよい。すなわち、オートエンコーダは3Dモデル化オブジェクトに適用され、それによって、再構成された3Dモデル化オブジェクトを出力し、新しい3Dモデル化オブジェクトは、再構成された3Dモデル化オブジェクトに変形制約によって定義された変形を適用することによって計算される。あるいは、変形制約によって定義される幾何学的形状が3Dモデル化オブジェクトの部分の新しい幾何学的形状を指定することができる。
【0065】
探索された潜在ベクトルにデコーダを適用した結果と幾何学的形状との間の不一致は探索された潜在ベクトルにデコーダを適用した結果と、変形制約によって定義された幾何学的形状との間の差又は誤差に対する(例えば、その関数である)量であってもよい。言い換えれば、幾何学的形状は変形制約によって定義され、不一致は探索された潜在ベクトルにデコーダを適用した結果による変形制約の非関連性の尺度(例えば、定量化)を提供する量であってもよい。これらの例では、ペナルティを課すことは量が尺度の大きさの増加関数であることを意味し得る。
【0066】
本方法に含まれる3Dモデル化オブジェクトもっともらしい3Dモデル化オブジェクトである例では、本方法が不一致が許容可能である(例えば、ペナルティが少ない)3Dモデル化オブジェクト(復号された最適な潜在ベクトル)が決定されるまで、もっともらしい3Dモデル化オブジェクト(すなわち、復号され探索された潜在ベクトル)と、訪問されたもっともらしい3Dモデル化オブジェクトと変形制約によって定義される幾何学的形状との間のペナルティ付き不一致とを訪問する。言い換えれば、本方法は変形制約によって定義される幾何学的形状に(例えば、最良に)適合する幾何学的形状の、もっともらしい3Dモデル化オブジェクトを決定する。
【0067】
例では、不一致が探索された潜在ベクトルにデコーダを適用した結果の導関数と幾何学的形状との間の距離を含む。
【0068】
探索された潜在ベクトルにデコーダを適用した結果の導関数は例えば、1つ以上の数式を適用することによって、探索された潜在ベクトルにデコーダを適用した結果から得られる数量であってもよい。言い換えれば、探索された潜在ベクトルにデコーダを適用した結果の導関数は、探索された潜在ベクトルにデコーダを適用した結果の関数であってもよい。不一致は、探索された潜在ベクトルにデコーダを適用した結果の導関数と幾何学的形状との間の距離を含む。例では、不一致が距離に依存することが手段である。
【0069】
探索された潜在ベクトルにデコーダを適用した結果の導関数と幾何学的形状との間の距離を使用することは、変形制約の非尊重を評価する(例えば、定量化する)ための単純かつ効率的な方法である。したがって、本方法は、これらの実施例において効率的である。
例では、不一致が距離の単調関数である。
【0070】
したがって、この方法はこれらの例では変形制約を考慮せずに効率的に評価し、変形制約が考慮されないほど、距離が大きくなり、不一致が大きくなる。逆に、変形制約が少ないほど、距離は小さくなり、不一致は小さくなる。したがって、この方法は効率的である。
【0071】
例では幾何学的形状が3D空間において定義され、導関数は探索された潜在ベクトルにデコーダを適用した結果である。したがって、これらの例では、幾何学的形状が3Dモデル化オブジェクトの新しい幾何学的形状、すなわち、3Dモデル化オブジェクトの一部が変形制約に対応する変形を受けた後の3Dモデル化オブジェクトの幾何学的形状を表すことができる。
【0072】
あるいは幾何学的形状が2D平面において定義されてもよく、導関数は探索された潜在ベクトルにデコーダを適用した結果の射影であってもよい。したがって、例では、幾何学的形状が3Dモデル化オブジェクトの部分の新しい幾何学的形状を表す、ユーザの2D図形とすることができる。
【0073】
例では、3Dモデル化オブジェクトは3Dメッシュである。これらの例では、3Dモデル化オブジェクト空間が3Dメッシュからなる空間である。したがって、機械学習デコーダは潜在空間内の値をとり、3Dメッシュを出力する。
【0074】
これらの例では、幾何学的形状が3D空間で定義され、導関数が探索された潜在ベクトルにデコーダを適用した結果である場合、項は次のタイプのものとすることができる:
【数23】
【0075】
式(1)において、zは探索された潜在ベクトルを、gは提供されたデコーダを、そしてg(z)は探索された潜在ベクトルにデコーダを適用した結果を示す。
【数24】
は、3Dモデル化オブジェクトの部分を表すg(z)のk個の頂点のインデックスである。換言すれば、3Dモデル化オブジェクトは3Dメッシュであり、3Dモデル化オブジェクトの一部は3Dメッシュのサブメッシュであり、g(z)は(3Dモデル化オブジェクト空間は3Dメッシュ空間であるため)3Dメッシュでもあり、
【数25】
は3Dメッシュのサブメッシュを表すg(z)のk個の頂点のインデックスである。表現は、インデックス
【数26】
を有するサブメッシュが3Dモデル化オブジェクトの部分に最も良い近似を与える(例えば、最も近い)g(z)のサブメッシュであるように近似することを意味し得る。Mは3Dモデル化オブジェクトのサンプリングサイズ、例えば、3Dメッシュの点の数である。ρは非負の非増加関数である。例えば、ρはコンパクトにサポートされている。yは幾何学的形状である。式(1)は、L
2ノルム型の二乗のノルム、すなわち
【数27】
型の項を特徴とする。このようなノルムは、明確にするために式(1)に記載された例であることを理解されたい。しかし、ノルムは、任意の他のノルム又は距離によって置き換えることができる。
【0076】
あるいは、幾何学的形状が2D平面内で定義され、導関数が探索された潜在ベクトルにデコーダを適用した結果の射影である場合、項は次の種類であってもよい:
【数28】
式(2)において、zは探索された潜在ベクトルであり、Mは3Dモデル化オブジェクトのサンプリングサイズであり、Sは幾何学的形状のピクセル座標のセットであり、g(z)は探索された潜在ベクトルにデコーダを適用した結果であり、Pは射影である。例では、ユーザが3Dモデル化オブジェクトに描画することによって、変形制約をスケッチした。したがって、これらの例では、幾何学的形状がユーザのスケッチによって定義されるピクセルのセットである。Pは、ピクセル座標で定義されたオブジェクトの2D空間にわたる3Dモデル化オブジェクト空間からの射影であってもよい。もう一度、式(2)のL
2ノルム型のノルムは例示であり、明確にするために式に入れられることを理解されたい。しかし、ノルムは、任意の他のノルム又は距離によって置き換えることができる。
【0077】
次に、最適な潜在ベクトルへのデコーダの適用ステップS50について説明する。
【0078】
デコーダを最適な潜在ベクトルに適用すること(S50)は、3Dモデル化オブジェクトを出力することである。3Dモデル化オブジェクトは、最適な潜在ベクトルから推論される。言い換えれば、本方法は変形制約を考慮する(例えば、最良を考慮する)傾向がある3Dモデル化オブジェクトでエネルギーの最小値に対応する3Dモデル化オブジェクトを出力する。本方法に含まれる3Dモデル化オブジェクトが妥当な3Dモデル化オブジェクトである例では、本方法がしたがって、(例えば、クラスの)いくつかの妥当な3Dモデル化オブジェクトの間の変形制約を尊重する(例えば、例えば、最良の点に関して)傾向がある(例えば、クラスの)妥当な3Dモデル化オブジェクトを出力する。
【0079】
例では、この方法がデコーダを潜在空間上への3Dモデル化オブジェクトの射影に適用した結果から、デコーダを最適化された潜在ベクトルに適用した結果に変形演算を計算するステップS60をさらに含む。これらの例では、本方法が変形操作を3Dモデル化オブジェクトに適用するステップS70をさらに含む。
【0080】
変形動作を計算するステップS60では、デコーダを潜在空間上への3Dモデル化オブジェクトの射影に適用した結果から、変形動作を見つける手段にデコーダを最適化された潜在ベクトルに適用した結果に、変形動作を計算する。変形動作は、潜在空間上への3Dモデル化オブジェクトの射影にデコーダを適用した結果を、最適化された潜在ベクトルにデコーダを適用した結果に変換する(S50)。機械学習デコーダも含むオートエンコーダの符号器を3Dモデル化オブジェクトに適用する手段に、3Dモデル化オブジェクトを潜在空間上に射影する例では、本方法がしたがって、再構成された3Dモデル化オブジェクトを、エネルギの最小限に対応する3Dモデル化オブジェクト、すなわち、変形制約を尊重する(例えば、最良を尊重する)傾向がある3Dモデル化オブジェクトに変換する変形を計算する(S60a)。S70を適用すると、3Dモデル化オブジェクトに変形操作が適用され、3Dモデル化オブジェクトが変形制約を考慮する(例えば、最適に考慮する)傾向がある別の3Dモデル化オブジェクトに変形される。そのような変形は3Dモデル化オブジェクトの詳細(例えば、位相的)を保存することができる。
【0081】
本方法に含まれる3Dモデル化オブジェクトが妥当な3Dモデル化オブジェクトである例では、本方法がしたがって、3Dモデル化オブジェクトを、もっともらしく、変形制約を尊重する(例えば、最良の点に関して)傾向がある別の3Dモデル化オブジェクトに変換する変換を計算することができる。言い換えれば、変形制約を提供すると、本方法は3Dモデル化オブジェクトを、妥当であり、いくつかの他の妥当なオブジェクト(例えば、クラスの)の中で変形制約を尊重する(例えば、例えば、最良の点に関して)傾向がある3Dモデル化オブジェクト(例えば、クラスの)に自動的に変形することができる。また、3Dモデル化オブジェクトを変形することにより、復号された最適な潜在ベクトルが特徴としない3Dモデル化オブジェクトの詳細(例えば、トポロジー)を保存することが可能になる。言い換えれば、復号化された潜在ベクトルを単独で出力することは変形制約を尊重する(例えば、それに関して)傾向がある妥当な3Dモデル化オブジェクトを提供することができるが、さらに、復号化された潜在ベクトルへの3Dモデル化オブジェクトの変形を出力することは提供された3Dモデル化オブジェクトのトポロジー的詳細と同様に、変形制約を尊重する(例えば、それに関して)傾向がある妥当な3Dオブジェクトを出力することを可能にする。したがって、この方法は、効率的で、正確で、人間工学的である。
【0082】
ここで、S40の決定例について説明する。
【0083】
例では、機械学習デコーダがエンコーダも備える(例えば、機械学習された)オートエンコーダのデコーダであってもよい。これらの例では、最適な潜在ベクトルの決定ステップS40が探索された潜在ベクトルにデコーダを適用した結果と3Dモデル化オブジェクトとの間の類似性に報酬を与えることができる。
【0084】
報酬は一般に、エネルギーの最小化が潜在空間上への3Dモデル化オブジェクトの射影に近い結果(すなわち、最適な潜在ベクトル)になる傾向があると考えられることを意味し得る。類似性に報酬を与えることは、3Dモデル化オブジェクトの潜在空間への射影に(例えば、比較的)近い潜在ベクトルを探索することを含むことができる。例えば、潜在ベクトルの探索は反復的に実行されてもよく(すなわち、潜在ベクトルは、最適な潜在ベクトルが見つかるまで1つずつ探索される)、潜在空間上への3Dモデル化オブジェクトの射影である第1の潜在ベクトルから開始してもよい。代替的に又は追加的に、類似性に報酬を与えることは、探索された潜在ベクトルにデコーダを適用した結果と3Dモデル化オブジェクトとの間の誤差の増加関数である量を含むエネルギーを考慮することによって実行されてもよい。
類似性に報酬を与えることは、提供された3Dモデル化オブジェクトに類似する3Dモデル化オブジェクト(すなわち、復号された潜在ベクトル)に報酬を与えることを可能にする。したがって、復号された最適な潜在ベクトルは、変形制約に適合する3Dモデル化オブジェクトであるだけでなく、提供された3Dモデル化オブジェクトに類似する3Dモデル化オブジェクトでもある。例では、本方法がしたがって、(例えばクラスの)他のもっともらしい3Dモデル化オブジェクトの中で、ユーザによって定義された変形制約及び提供された3Dモデル化オブジェクトの形状に(例えば最良に)適合する(例えばクラスの)もっともらしい3Dモデル化オブジェクトを決定することを可能にする。したがって、この方法は効率的かつ正確である。
これらの例では、最適な潜在ベクトルの決定ステップS40がエンコーダを3Dモデル化オブジェクトに適用した結果である第1の探索された潜在ベクトルから開始して、反復的に実行される。この最初に探索された潜在ベクトルを開始することは、潜在ベクトルの探索が符号化された3Dモデル化オブジェクトの近くで実行されるので、符号化された3Dモデル化オブジェクトに比較的近い最適な潜在ベクトルでエネルギーを最小化するための特に効率的な方法である。
【0085】
さらに、又は代替として、エネルギーは、探索された潜在ベクトルと、エンコーダを3Dモデル化オブジェクトに適用した結果との間の類似性に報酬を与える別の項を含むことができる。探索された潜在ベクトルと、エンコーダを3Dモデル化オブジェクトに適用した結果との間の類似性を補償することにより、符号化された3Dモデル化オブジェクトから遠すぎる潜在ベクトルを探索することを回避することができる。
【0086】
例では、他の項が探索された潜在ベクトルと、エンコーダを3Dモデル化オブジェクトに適用した結果との間の距離を含む。距離は潜在ベクトルと符号化された3Dモデル化オブジェクトとの間の近さを評価し、報酬を与える効率的な方法である。
【0087】
探索された潜在ベクトルと、エンコーダを3Dモデル化オブジェクトに適用した結果との間の類似性を報酬することは、他の項が探索された潜在ベクトルと、エンコーダを3Dモデル化オブジェクトに適用した結果との間の距離の増加関数であることを意味し得る。
【0088】
例では、エネルギーが潜在空間上の探索された潜在ベクトルの尤度に報酬を与える別の項を含む。潜在ベクトルを表す変数である確率事前p(z)が潜在空間にわたって与えられる例(ここでzは潜在空間を表す変数である)では、その項はp(z)の大きさを評価することができる。この項は、例えばp(z)の減少関数であってもよい。したがって、p(z)が1に近いとき、すなわち、潜在ベクトルが大きな尤度を有するとき、項は小さい。したがって、最適な潜在ベクトルの尤度、したがって復号された最適な潜在ベクトルの尤度が最大化される。
【0089】
次に、この方法の2つの例について説明する。第1の例では幾何学的形状が3D空間において定義され、導関数は探索された潜在ベクトルにデコーダを適用した結果である。第2の例では幾何学的形状が2D平面内で定義され、導関数は探索された潜在ベクトルにデコーダを適用した結果の射影である。
図4~9は第1の例を示す。
図10~13は第2の例を示す。
【0090】
両方の例において、ユーザは、提供された3Dモデル化オブジェクトの離散化である3Dメッシュxである3Dモデル化オブジェクトを提供する(S10)。言い換えると、提供される3Dモデル化オブジェクトは、3Dメッシュである。また、S10において、機械学習オートエンコーダ
【数29】
が提供され(S10)(ここで、gは機械学習デコーダであり、fは機械学習エンコーダである)。g(f(x))は提供された3Dモデル化オブジェクトを表す再構成メッシュであり、Mはそのポイント数(すなわち、そのサンプリングサイズ)の表記である。例では、確率的事前決定p(z)が潜在空間にわたって与えられる。これが当てはまらない例では、p(z)が、単に、p(z)が現れるすべての式において
【数30】
に置換されてもよく、一様な事前に対応する。例では、この方法が
【数31】
を計算することよって潜在空間上にxを射影するステップS20を含む。
【0091】
第1の例では、メッシュxが、適切な場所を見つけるために3D関心点を使用した特徴的な場所において制御点
【数32】
を含む。ユーザは、3Dメッシュの一部を変形するため、これらの制御点
【数33】
の一つ又はいくつかを引くことによって(例えば、ドラッグアンドドロップ操作を通して)変形制約を定義する(S30)。ここで
【数34】
を、変形制約を定義した後の制御点の座標とする。変形制約に対する変形(すなわち、変形制約を適用することから生じる変形)は、半径基底関数(RBF)補間を用いて計算することができる。この方法は、適切に選択された関数
【数35】
によってRBFを考慮することができる。この方法は、r、s、及びtについて以下の3つの線形システム
【数36】
を解くことによって、変形場
【数37】
に適合させることができる。
【0092】
図4は、メッシュxの一例を示す図である。このメッシュは、
図3の椅子の1つのような4本の脚を有するもっともらしい椅子40を表す。椅子は噛み合わされ、メッシュは制御点
【数38】
を含む。
図5に示すように、使用者は、椅子40(椅子の一部である)の脚を変形させるために点
【数39】
を引っ張る。
図5は、変形後の制御点
【数40】
を示す。
【0093】
この第1の例では、
【数41】
は再構成された3Dメッシュg(z)から
【数42】
への最も近い頂点のインデックスである。この例では、
【数43】
は、変形フィールドδの下で変形された再構成された3Dメッシュである。言い換えれば、yは変形制約によって定義される新しい幾何学的形状である。
図6は3Dメッシュ椅子40の再構成60を示し、
図7は、変形された再構成3Dメッシュ70を示す。
【0094】
最適な潜在ベクトルは、次式のエネルギーを最小化することによって決定される(S40)。
【数44】
ここでは、ρは例えばコンパクトな台を用いた、非負の非増加関数である。ρは、ユーザが制御点を引っ張ったところでのみ、再構成をユーザ変形に適合させるために使用され、それによって変形制約g(z)の非尊重にペナルティを課す。本方法はユーザによって与えられた変形に適合するように再構成された入力g(z)を修正するために、
【数45】
から開始する潜在ベクトルzを最適化することができる。
【0095】
エネルギーは、別の項
【数46】
を含んでもよい。例では、他の項がエネルギーに含まれないように、γはゼロに等しい。他の例では、他の項がエネルギーに含まれるように、γはゼロに等しくない。他の項は、探索された潜在ベクトルzと、エンコーダを3Dモデル化オブジェクトに適用した結果
【数47】
との間の距離である平滑項である。他の項は、最適化が
【数48】
から離れすぎてzを刈り取ることを防止し、したがって、ユーザ定義の変形フィールドにフィッティングしながら、元の入力に可能な限り近い状態を維持する。
【0096】
【数49】
は、潜在空間上で探索された潜在ベクトルzの尤度を与える別の項である。p(z)は潜在空間上で与えられる確率的事前である。別の項は、最適化された形状の尤度を最大化するために使用される。例では、他の項がエネルギーに含まれないように、βはゼロに等しい。他の例では、他の項がエネルギーに含まれるように、βは厳密に正である。
【0097】
Eの最小化(すなわち、最適潜在ベクトルの決定)は反復的に再重み付けされた最小二乗法を適用することを含むことができ、これは各最適化反復において、この方法が最小二乗の重み
【数50】
を更新するが、最適化ステップ中に固定されたものとみなすことを意味する。
【0098】
図8は、第1の例の場合の最適化潜在ベクトルにデコーダを適用した結果を示す。椅子80は、ユーザによって定義された変形制約に適合する妥当な椅子を表すメッシュである。本方法は、変形制約に適合する、再構築された椅子60から椅子80への変形を計算するステップをさらに含むことができる。椅子40に変形を加えた結果、椅子40の変形制約と初期形状の両方を考慮した、
図9のもっともらしい椅子90が得られる。
【0099】
ここで、第1の例の場合の計算及び変形の適用の実施についてさらに説明する。
【0100】
第1の例によるエネルギーの最小化は、元の入力に可能な限り近い最適化された潜在ベクトル
【数51】
を(制御点又はスケッチのいずれかによって与えられるユーザ制約に適合しながら)もたらした。それにもかかわらず、この最適化された形状は(椅子80によって示される)再構成
【数52】
から開始して計算され、これは必ずしも完全な精度を有する正確な再構成ではない。特に、再構成は必ずしも同じトポロジー(例えば、椅子の横木の数)を有さず、入力3Dモデル化オブジェクト40の局所的な詳細は、必ずしも再構成に含まれない。元の椅子40のスタイルにできるだけ近いままであるために、ユーザの制約にフィットしながら、本方法は、(椅子80によって示される)
【数53】
と(椅子70によって示される)
【数54】
との間の変形を元の椅子xに再ターゲットすることができる。この方法は、RBF補間を使用して
【数55】
と
【数56】
との間の変形場θを計算することができる。この技法は本方法が制御点を使用しなくてもよいが、代わりに、再構成の頂点(又はこれらの頂点の特徴的な部分集合)を直接使用して変形フィールドを計算してもよいことを除いて、前述のRBF補間と同じであってもよい。
【0101】
したがって、
【数57】
を導出するために、この方法は、以下の線形システムを解いてもよい。
【数58】
【0102】
最終編集メッシュ90は単に、元のメッシュxに適用される変形場によって与えられる。
【数59】
非剛体位置合わせ(Comput.Graph.Forum 27 (5): 1421-1430、2008「Global Correspondence Optimization for Non-Rigid Registration of Depth Scans.」HLi、RSumner、and MPaulyを参照)、又はカーネル回帰のように、他のリターゲティング方法も変形フィールドを計算するために使用できることに留意されたい。
【0103】
第2の例では、ユーザが3Dモデル化オブジェクトxを選択したビューでスケッチする。
図10は、3Dモデル化オブジェクトxの例を示す。これは、
図10のものような4本の脚を有する椅子100である。
図10は椅子100の正面図を示す。Pは、選択されたビューに関連付けられた射影とする。Pは、椅子が属する3Dモデル化オブジェクト空間からスクリーン上のピクセル座標の2D空間への射影であってもよい。ユーザは、画面上に形状102をスケッチすることによって、変形制約を定義する。Sは、描かれたスケッチのピクセル座標、又はこの図のサブサンプリングされたバージョンである。
【0104】
最適な潜在ベクトルは、次式のエネルギーを最小化することによって決定される(S40)。
【数60】
【0105】
本方法はユーザによって与えられたスケッチに適合するように再構成された入力g(z)を修正するために、
【数61】
から開始する潜在ベクトルzを最適化することができる。
【0106】
エネルギーは、別の項
【数62】
を含んでもよい。例では、他の項がエネルギーに含まれないように、γはゼロに等しい。他の例では、他の項がエネルギーに含まれるように、γはゼロに等しくない。他の項は、探索された潜在ベクトルzと、エンコーダを3Dモデル化オブジェクトに適用した結果
【数63】
との間の距離である平滑項である。他の項は最適化が元の入力から離れすぎて
【数64】
からzを刈り取ることを防止し、したがって、ユーザ定義の変形フィールドにフィッティングしながら、元の入力に可能な限り近いままである。
【0107】
【数65】
は、潜在空間上で探索された潜在ベクトルzの確率を与える別の項である。p(z)は、潜在空間上で与えられる確率的事前である。別の項は、最適化された形状の尤度を最大化するために使用される。例では、他の項がエネルギーに含まれないように、βはゼロに等しい。他の例では、他の項がエネルギーに含まれないように、βは厳密に正である。
【0108】
図12は、最適化された潜在ベクトルにデコーダを適用するステップS50の結果の一例を示す。椅子120は、ユーザによって定義された変形制約に適合する妥当な椅子を表すメッシュである。この方法は、
図11の再構成された椅子110から変形制約に適合する椅子120までの変形を計算するステップS60をさらに含むことができる。椅子100に変形を適用するS70の結果は、椅子100の変形制約及び初期形状の両方を尊重する妥当な椅子130である。
【0109】
ここで、第2の例の場合の、計算S60及び変形の適用S70の実施についてさらに説明する。
【0110】
第2の例によるエネルギーの最小化は制御点又はスケッチのいずれかによって与えられるユーザ制約に適合しながら、元の入力に可能な限り近い最適化された潜在ベクトル
【数66】
をもたらした。それにもかかわらず、この最適化された形状は再構成
【数67】
(椅子100によって示される)から開始して計算され、これは必ずしも完全な精度を有する正確な再構成ではない。特に、再構成は必ずしも同じトポロジー(例えば、椅子の横木の数)を有さず、入力3Dモデル化オブジェクト100の局所的な詳細は、必ずしも再構成に含まれない。元の椅子100のスタイルにできるだけ近いままであるために、ユーザの制約にフィットしながら、本方法は、
【数68】
(椅子100によって示される)と
【数69】
(椅子120によって示される)との間の変形を元の椅子xに再ターゲットすることができる。この方法は、RBF補間を使用して
【数70】
と
【数71】
との間の変形場θを計算することができる。この技法は本方法が制御点を使用しなくてもよいが、代わりに、再構成の頂点(又はこれらの頂点の特徴的な部分集合)を直接使用して変形フィールドを計算してもよいことを除いて、前述のRBF補間と同じであってもよい。
【0111】
したがって、
【数72】
を導出するために、この方法は、以下の線形システムを解いてもよい。
【数73】
最終編集メッシュ130は単に、元のメッシュxに適用される変形フィールドによって以下のように与えられる。
【数74】
なお、非剛体位置合わせ(Comput.Graph.Forum 27 (5): 1421-1430、2008「Global Correspondence Optimization for Non-Rigid Registration of Depth Scans.」HLi、RSumner、and MPaulyを参照)、又はカーネル回帰のように、他のリターゲティング方法も変形フィールドを計算するために使用できることに留意されたい。
【0112】
図14はシステムのGUIの一例を示しており、システムはCADシステムである。
【0113】
GUI 2100は、標準的なメニューバー2110、2120、ならびに底部及び側部ツールバー2140、2150を有する、典型的なCAD様インターフェースであり得る。このようなメニューバー及びツールバーはユーザが選択可能なアイコンのセットを含み、各アイコンは当技術分野で知られているように、1つ又は複数の操作又は関数に関連付けられている。これらのアイコンのいくつかは、GUI 2100に表示された3Dモデル化オブジェクト2000を編集及び/又は作業するように適合されたソフトウェアツールに関連付けられる。ソフトウェアツールは、ワークベンチにグループ化することができる。各ワークベンチは、ソフトウェアツールの部分集合を含む。特に、ワークベンチの1つは、モデル化された製品2000の幾何学的特徴を編集するのに適した編集ワークベンチである。動作中、設計者は例えば、オブジェクト2000の一部を事前に選択し、次いで、適切なアイコンを選択することによって、動作(例えば、寸法、色などを変更する)又は幾何学的制約を編集することができる。例えば、典型的なCAD動作は、画面上に表示される3Dモデル化オブジェクトの打ち抜き加工又は折り畳みのモデル化である。GUIは例えば、表示された製品2000に関連するデータ2500を表示することができる。図の例では「特徴木」として表示されるデータ2500、及びそれらの3D表現2000はブレーキキャリパ及びディスクを含むブレーキアセンブリに関する。GUIは編集された製品の動作のシミュレーションをトリガするために、又は表示された製品2000の様々な属性をレンダリングするために、例えば、オブジェクトの3D配向を容易にするための様々なタイプのグラフィックツール2130、2070、2080をさらに示すことができる。カーソル2060はユーザがグラフィックツールと対話することを可能にするために、触覚デバイスによって制御され得る。
【0114】
図15は、システムがクライアント・コンピュータ・システム、例えばユーザのワークステーションであるシステムの一例を示す。
【0115】
この例のクライアント・コンピュータは、内部通信バス1000に接続された中央処理装置(CPU)1010と、やはりバスに接続されたランダム・アクセス・メモリ(RAM)1070とを備える。クライアント・コンピュータには、さらに、BUSに接続されたビデオ・ランダム・アクセス・メモリ1100に関連するグラフィカル・プロセッシング・ユニット(GPU)1110が設けられている。ビデオRAM 1100は、当技術分野ではフレームバッファとしても知られている。大容量記憶装置コントローラ1020は、ハードドライブ1030などの大容量記憶装置へのアクセスを管理する。コンピュータプログラム命令及びデータを有形に具現化するのに適した大容量メモリデバイスは、例として、EPROM、EEPROM、及びフラッシュメモリデバイスなどの半導体メモリデバイス、内部ハードディスク及びリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMディスク1040を含む、すべての形態の不揮発性メモリを含む。前述のいずれも、特別に設計されたASIC(特定用途向け集積回路)によって補足されるか、又はその中に組み込まれてもよい。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。クライアントコンピュータは、カーソル制御デバイス、キーボードなどの触覚デバイス1090も含むことができる。ユーザがディスプレイ1080上の任意の所望の位置にカーソルを選択的に位置決めすることを可能にするために、カーソル制御装置がクライアント・コンピュータ内で使用される。さらに、カーソル制御装置はユーザが様々なコマンドを選択し、制御信号を入力することを可能にする。カーソル制御装置は、システムに制御信号を入力するための多数の信号発生装置を含む。典型的にはカーソル制御装置がマウスであってもよく、マウスのボタンは信号を生成するために使用される。代替的に又は追加的に、クライアントコンピュータシステムは、センシティブパッド及び/又はセンシティブスクリーンを含むことができる。
【0116】
コンピュータプログラムはコンピュータによって実行可能な命令を含むことができ、命令は、上記装置に該方法を実行させるための手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶媒体に記録可能であってもよい。プログラムは例えば、デジタル電子回路において、又はコンピュータハードウェア、ファームウェア、ソフトウェアにおいて、又はそれらの組み合わせにおいて実装されてもよい。プログラムは装置、例えば、プログラマブルプロセッサによる実行のための機械可読記憶デバイスに有形に具現化された製品として実装されてもよい。方法のステップは入力データ断片に対して動作し、出力を生成することによって、方法の機能を実行するための命令のプログラムを実行するプログラマブルプロセッサによって実行されてもよい。したがって、プロセッサはプログラム可能であり、データ断片記憶システム、少なくとも1つの入力デバイス、及び少なくとも1つの出力デバイスからデータ断片及び命令を受信し、それらにデータ断片及び命令を送信するように結合され得る。アプリケーション・プログラムは、高レベルの手続き型又はオブジェクト指向プログラミング言語で、あるいは必要に応じてアセンブリ言語又は機械語で実装することができる。いずれの場合も、言語は、コンパイルされた言語又は解釈された言語であってもよい。プログラムはフルインストールプログラムであってもよいし、更新プログラムであってもよい。システム上にプログラムを適用すると、いずれにしても、この方法を実行するための命令が得られる。