(57)【要約】      （修正有）【課題】関数を学習するように構成されてたデータセットを作成する。【解決手段】関数は、現実の物体の１つまたは複数のクラスのインスタンスの画像を入力とする。各クラスについて、当該クラスのパラメトリックモデルを提供することと、パラメトリックモデルを用いて複数の３Ｄモデル化オブジェクトを生成することと、複数の３Ｄモデル化オブジェクトのそれぞれについて、１つまたは複数の対応する画像をデータセットに追加することとを含む。【選択図】図１
2019032820.tif 000002
【特許請求の範囲】
【請求項１】
関数を学習するように構成されたデータセットを形成するための、コンピュータによって実施される方法であって、前記関数は、現実の物体の１つまたは複数のクラスのインスタンスの画像を入力とし、前記方法は、各クラスについて、
当該クラスのパラメトリックモデルを提供することであって、前記パラメトリックモデルは各パラメータの集合についての範囲の集合を含み、前記パラメトリックモデルは前記範囲の集合内に提供される各値の集合により、クラスの各インスタンスを表す各３Ｄモデル化オブジェクトを生成するように構成されるような、提供することと、
パラメトリックモデルにより複数の３Ｄモデル化オブジェクトを生成することであって、前記範囲の集合のうちの１つまたは複数をトラバースすることを含む、生成することと、
前記複数の３Ｄモデル化オブジェクトのそれぞれについて、１つまたは複数の対応する画像をデータセットに追加することと
を含むことを特徴とする方法。
【請求項２】
請求項１に記載の方法であって、前記パラメータの集合は、１つまたは複数の特性パラメータを含むことを特徴とする方法。
【請求項３】
請求項２に記載の方法であって、前記トラバースされる範囲の集合のうちの１つまたは複数は、それぞれ、特性パラメータのものであることを特徴とする方法。
【請求項４】
請求項３に記載の方法であって、範囲がトラバースされる前記１つまたは複数の特性パラメータは、スタイルパラメータを含むことを特徴とする方法。
【請求項５】
請求項２〜４のいずれか１つに記載の方法であって、前記１つまたは複数の特性パラメータは、さらに、１つまたは複数の次元パラメータを含み、前記生成することは、前記１つまたは複数の次元パラメータの範囲をサンプリングすることを含むことを特徴とする方法。
【請求項６】
請求項１〜５のいずれか１つに記載の方法であって、前記生成することは、前記範囲の集合のうち他の１つまたは複数をランダム化することを含むことを特徴とする方法。
【請求項７】
請求項６に記載の方法であって、前記ランダム化は、ランダム化されていない範囲の集合のうちの１つまたは複数の集合における値の各組み合わせについて、ランダム化された範囲に対するランダムな値の組み合わせを、クラスについて所定の個数提供することを含むことを特徴とする方法。
【請求項８】
請求項１〜７のいずれか１つに記載の方法であって、前記パラメトリックモデルは、さらに、各パラメータを互いにリンクさせる１つまたは複数の制約をさらに含むことを特徴する方法。
【請求項９】
請求項８に記載の方法であって、前記生成することは、トラバースされる前記範囲の集合のうちの前記１つまたは複数について優先順位を与える前記パラメータの集合に対して定義され、かつ、前記１つまたは複数の制約に基づく、順序付けにしたがって行われることを特徴とする方法。
【請求項１０】
請求項１〜９のいずれか１つに記載の方法にしたがってデータセットを形成するように構成された、現実の物体のクラスのパラメトリックモデルを定義するための、コンピュータによって実施される方法であって、前記パラメトリックモデルは、各パラメータの集合についての範囲の集合を含み、前記パラメトリックモデルは、前記範囲の集合内に提供される各値の集合により、クラスの各インスタンスを表す各３Ｄモデル化オブジェクトを生成するように構成されており、前記方法は、
前記パラメータの集合と、各パラメータについての範囲とを、定義することと、
前記データセットを形成する際にトラバースされるように１つまたは複数の範囲にラベル付けすることと
を含むことを特徴とする方法。
【請求項１１】
請求項１０に記載の方法であって、さらに、それぞれが各パラメータを互いにリンク付けする、１つまたは複数の制約を定義することと、オプションで、トラバースされ、かつ、前記１つまたは複数の制約に基づく、前記範囲の集合のうちの、前記１つまたは複数について優先順位を付ける前記パラメータの集合に対して、順序を定義することを含むことを特徴とする方法。
【請求項１２】
データ構造であって、
請求項１〜９のいずれか１つに記載の方法を実行するための命令を含むコンピュータプログラムと、
請求項１０または１１に記載の方法を実行するための命令を含むコンピュータプログラムと、
請求項１〜９のいずれか１つに記載の方法によって形成可能なデータセット、および／または、
請求項１０または１１に記載の方法によって定義可能なパラメトリックモデルと
を含むことを特徴とするデータ構造。
【請求項１３】
請求項１２に記載のデータ構造を記憶したコンピュータ読み取り可能媒体を備える装置。
【請求項１４】
請求項１３に記載の装置であって、前記装置は、前記コンピュータ読み取り可能媒体に接続されたプロセッサをさらに備えることを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムおよびシステムの分野に関し、より具体的には、関数を学習するように構成されたデータセットを形成することに関連する方法、システム、およびプログラムに関し、当該関数は、現実の物体の１つまたは複数のクラスのインスタンスの画像を入力とする。
【背景技術】
【０００２】
オブジェクトの設計、エンジニアリング、製造のため、多数のシステムおよびプログラムが市場に提供されている。ＣＡＤは、コンピュータ支援設計（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎ）の略語であり、例えば、オブジェクトを設計するためのソフトウェア・ソリューションに関する。ＣＡＥは、コンピュータ支援エンジニアリング（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｅｎｇｉｎｅｅｒｉｎｇ）の略語であり、例えば、将来の製品の物理的挙動をシミュレーションするためのソフトウェア・ソリューションに関する。ＣＡＭは、コンピュータ支援製造（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｍａｎｕｆａｃｔｕｒｉｎｇ）の略語であり、例えば、製造工程および動作を定義するためのソフトウェア・ソリューションに関する。このようなコンピュータ支援設計システムにおいて、グラフィカル・ユーザ・インターフェースは、技術の効率に関して、重要な役割を果たす。これらの技術は、製品ライフサイクル管理（Ｐｒｏｄｕｃｔ  Ｌｉｆｅｃｙｃｌｅ  Ｍａｎａｇｅｍｅｎｔ：ＰＬＭ）システムに組み込むことができる。ＰＬＭとは、企業が、拡張エンタープライズの概念全体にわたって、製品データを共有し、共通の工程を適用し、構想に始まり製品寿命の終わりに至る製品開発のための企業知識を活用するのを支援するビジネス戦略を指す。ダッソー・システムズが提供するＰＬＭソリューション（製品名ＣＡＴＩＡ、ＥＮＯＶＩＡ、ＤＥＬＭＩＡ）は、製品エンジニアリング知識を体系化するエンジニアリング・ハブ、製造エンジニアリング知識を管理する製造ハブ、およびエンジニアリング・ハブと製造ハブの両方に対するエンタープライズ統合と接続を可能にするエンタープライズ・ハブを提供する。全てのシステムは、製品、工程、リソースを結ぶオープンなオブジェクトモデルを提供し、最適化された製品定義、製造準備、生産およびサービスを推進する、動的な知識ベースの製品作成および意思決定支援を可能にする。
【０００３】
こうした文脈において、画像を入力とする関数の機械学習がますます重要になっている。
【０００４】
例えば、２次元（２Ｄ）の画像から３次元（３Ｄ）の物体を認識するように設計された人工ニューラルネットワーク（より簡単には「ニューラルネットワーク」とも呼ばれる）が開発されている。他の機械学習関数同様、そのような人工ニューラルネットワークは、使用前に訓練しなければならない。訓練は、「訓練／学習データセット」、より簡単には「データセット」とも呼ばれる訓練パターンのサンプルを用いて実行される。
【０００５】
ニューラルネットワークは、二つの特徴により定義される。すなわち、トポロジーと重みである。トポロジーは、接続された演算ユニットのシステムである。各演算ユニットは、その入力数値データの重み付けされた組み合わせを出力し、その結果を、方向づけられた接続に応じて、隣接する演算ユニットに送る。データは、最初のデータが供給された最初のユニット群から端末のユニット群まで流れ、これにより出力数値結果が得られる。数値の組み合わせは、重みと呼ばれるこれらの数値係数を用いて行われる。最初は、重みの値は不明であり、ニューラルネットワークの目的（例えば、２Ｄの画像から３Ｄの物体を認識すること）に応じて、調整する必要がある。この調整ステップは、訓練または学習と呼ばれる。ニューラルネットワークを訓練するために、訓練パターンのデータセットが用いられる。訓練パターンは、整合性のある入力データと出力データの対である。この情報を用いて、専用アルゴリズムが重み値を算出することができる。
【０００６】
訓練工程のボトルネックは、訓練パターンの適切なデータセットである。ニューラルネットワークが堅牢で正確となるように、多数の緻密なデータセットであるかもしれない。
【０００７】
既存の解決策では、訓練パターンのデータセットは、一般に、ユーザが画像を見て、どの物体が画像上にあるかを認識することに関与して準備される。このような方法でＩｍａｇｅＮｅｔ（これは、優先日において以下のＵＲＬでアクセス可能な２Ｄ画像のデータセットである：ｗｗｗ．ｉｍａｇｅ−ｎｅｔ．ｏｒｇ）、ＳｈａｐｅＮｅｔ（これは、優先日において以下のＵＲＬでアクセス可能な３Ｄモデル化オブジェクトのデータセットである：ｗｗｗ．ｓｈａｐｅｎｅｔ．ｏｒｇ）、およびＯｂｊｅｃｔＮｅｔ３Ｄ（以下の論文に記載：Ｙｕ  Ｘｉａｎｇ，Ｗｏｎｈｕｉ  Ｋｉｍ，Ｗｅｉ  Ｃｈｅｎ，Ｊｉｎｇｗｅｉ  Ｊｉ，Ｃｈｒｉｓｔｏｐｈｅｒ  Ｃｈｏｙ，Ｈａｏ  Ｓｕ，Ｒｏｏｚｂｅｈ  Ｍｏｔｔａｇｈｉ，Ｌｅｏｎｉｄａｓ  Ｇｕｉｂａｓ，ａｎｄ  Ｓｉｌｖｉｏ  Ｓａｖａｒｅｓｅ，ＯｂｊｅｃｔＮｅｔ３Ｄ：Ａ  Ｌａｒｇｅ  Ｓｃａｌｅ  Ｄａｔａｂａｓｅ  ｆｏｒ  ３Ｄ  Ｏｂｊｅｃｔ  Ｒｅｃｏｇｎｉｔｉｏｎ，Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ）などのデータセットが構築された。
【０００８】
この文脈において、画像を入力として関数を学習するように構成されたデータセットを形成するための改善された解決策が依然として必要とされている。
【発明の概要】
【０００９】
したがって、データセットを形成するための、コンピュータにより実施される方法が提供される。データセットは、関数を学習するように構成されている。関数は、現実の物体の１つまたは複数のクラスのインスタンスの画像を入力とする。本方法は、各クラスについて、当該クラスのパラメトリックモデルを提供することと、パラメトリックモデルを用いて複数の３Ｄモデル化オブジェクトを生成することと、前記複数の３Ｄモデル化オブジェクトのそれぞれについて、１つまたは複数の対応する画像を前記データセットに追加することとを含む。前記パラメトリックモデルは、各パラメータの集合についての範囲の集合を含む。前記パラメトリックモデルは、前記範囲の集合内に提供される各値の集合により各３Ｄモデル化オブジェクトを生成するように構成される。前記生成された３Ｄモデル化オブジェクトは、クラスの各インスタンスを表す。前記生成することは、前記範囲の集合のうちの１つまたは複数をトラバースすることを含む。
【００１０】
このような方法は、現実の物体の１つまたは複数のクラスのインスタンスの画像を入力とする関数を学習するように構成されたデータセットを、改善された手法で形成することを可能にする。
【００１１】
特に、各クラスについて当該クラスのパラメトリックモデルが提供されると、本方法は、そのようなクラスごとに、当該クラスの各インスタンスにそれぞれ対応する複数のオブジェクトを容易に生成して、データセットにデータを取り込むことができる。本方法は、これによりデータセットを比較的短時間で容易に合成することができ、人間の間違いを避け、それにより緻密なデータセット、効率的な学習、および正確に学習した関数を得ることができる。さらに、パラメトリックモデルの使用により、パラメータ範囲に任意の値を提供することを考慮することが可能になり、それにより、本方法は、任意の多様なデータをデータセットに取り込むことが可能になる。特に、本方法は、前記生成において、前記範囲の集合のうちの１つまたは複数をトラバースすることを含む。これにより、本方法によって形成されたデータセットは、少なくとも、前記トラバースされる範囲に対応するパラメータに関して、比較的多様で網羅的である。これによっても、学習の効率および学習された関数の精度が向上する。ここで、各クラスのパラメトリックモデルが、特に、３Ｄモデル化オブジェクトであるオブジェクトを生成するように構成されているため、３Ｄモデル化オブジェクト表現自体が現実の物体の比較的詳細かつ網羅的な表現であり、そのため、本方法により、クラスのインスタンスを比較的正確に表す画像のデータセットを追加することが可能になる。これによっても、学習の効率および学習された関数の精度が向上する。
【００１２】
例において、本方法は、以下のうちの１つまたは複数を含んでいてもよい。
【００１３】
・前記追加は、前記複数の３Ｄモデル化オブジェクトのそれぞれについて、前記３Ｄモデル化オブジェクトに基づいて前記１つまたは複数の対応する画像を決定することを含む。
・前記複数の３Ｄモデル化オブジェクトのそれぞれについて、前記追加された対応する画像は、各３Ｄモデル化オブジェクト自体から得られた１つまたは複数の２Ｄ画像および／または３Ｄモデル化オブジェクトを含むか、またはそれらからなる。
【００１４】
・追加された各２Ｄ画像は、各３Ｄモデル化オブジェクトからそれぞれの２Ｄビュー、例えば各３Ｄモデル化オブジェクトの２Ｄ描画を抽出することによって決定される。
【００１５】
・前記各３Ｄモデル化オブジェクト自体から得られた３Ｄモデル化オブジェクトは、各３Ｄモデル化オブジェクトそれ自体、または各３Ｄモデル化オブジェクトから得られた３Ｄモデル化オブジェクトである。
【００１６】
・前記抽出は完全に自動的に行われる。
【００１７】
・前記関数は、始域（または入力集合）と終域（または出力集合）とを有し、本方法は、訓練パターンをデータセットに追加することを含み、各訓練パターンは、前記始域の要素および前記終域の要素を含み、前記画像の追加は、前記訓練パターンの追加に含まれ、追加された各画像は、追加された各訓練パターンの要素である。
【００１８】
・前記訓練パターンの追加は、各訓練パターンについて、当該訓練パターンの要素を形成し、当該訓練パターンの要素を互いにリンク付けすることを含む。
【００１９】
・前記訓練パターンの要素のリンク付けは、完全に自動的に実行され、かつ／または人間の手作業による認識を排除する。本方法は、従来の方法に比べて短時間で容易に実行できるだけでなく、人間の認識に関連する間違いを回避することができ、それにより比較的高い精度を有するデータセットを形成することができ、またそれにより、当該データセットで学習した場合に、比較的、正確な関数をもたらし得る。
【００２０】
・各訓練パターンは、前記関数の始域に対応し、追加された画像である、第１の要素と、前記関数の終域に対応し、前記追加された画像に対応する３Ｄモデル化オブジェクトによって表されるインスタンスに関する情報を提供する別のデータである第２の要素とを含む。
【００２１】
・各訓練パターンの前記第２の要素は、１つまたは複数の他の画像（例えば追加された画像自体に対応する３Ｄモデル化オブジェクト）および／または、追加された画像に対応する３Ｄモデル化オブジェクトによって表されるインスタンスのクラスを示す情報（例えばクラスの名前および／またはクラスのラベルを提供するテキスト）など、追加された画像に対応する３Ｄモデル化オブジェクトによって表されるインスタンスに関する他の種類の情報を含むか、またはそれらからなる。
【００２２】
・各訓練パターンの第１の要素は２Ｄ画像であり、第２の要素は、対応する生成された３Ｄモデル化オブジェクト、および／または、前記対応する生成された３Ｄモデル化オブジェクトおよび前記２Ｄ画像によって表されるインスタンスのクラスを示す情報（例えば、クラスの名前および／またはクラスのラベルを提供するテキスト）である。そのような場合、関数は、入力された２Ｄ画像に対応する３Ｄモデル化オブジェクトを出力するように、および／または入力された２Ｄ画像内に表される現実の物体のインスタンスのクラスを認識して出力するように構成される。
【００２３】
・各訓練パターンの第１の要素は、生成された３Ｄモデル化オブジェクトであり、第２の要素は、３Ｄモデル化オブジェクトによって表されるインスタンスのクラスを示す情報（例えば、クラスの名前および／またはクラスのラベルを提供するテキスト）である。そのような場合、関数は、入力された３Ｄモデル化オブジェクト内に表される現実の物体のインスタンスのクラスを認識して出力するように構成される。
【００２４】
・前記パラメータの集合は、１つまたは複数の特性パラメータを含む。
【００２５】
・前記トラバースされる範囲の集合のうちの１つまたは複数は、それぞれ、特性パラメータのものである。
【００２６】
・範囲がトラバースされる前記１つまたは複数の特性パラメータは、スタイルパラメータを含む。
【００２７】
・前記１つまたは複数の特性パラメータは、さらに、１つまたは複数の寸法パラメータを含み、前記生成することは、前記１つまたは複数の寸法パラメータの範囲をサンプリングすることを含む。
【００２８】
・前記生成することは、前記範囲の集合のうち他の１つまたは複数をランダム化することを含む。
【００２９】
・前記ランダム化は、ランダム化されていない範囲の集合のうちの１つまたは複数の集合における値の各組み合わせについて、ランダム化された範囲に対するランダムな値の組み合わせを、クラスについて所定の個数提供することを含む。
【００３０】
・前記パラメトリックモデルは、さらに、それぞれが各パラメータを互いにリンク付けする、１つまたは複数の制約を含む。かつ／あるいは、
【００３１】
・前記生成することは、トラバースされる前記範囲の集合のうちの前記１つまたは複数について優先順位を与える前記パラメータの集合に対して定義され、かつ、前記１つまたは複数の制約に基づく、順序付けにしたがって行われる。
【００３２】
さらには、現実の物体のクラスのパラメトリックモデルを定義する、コンピュータによって実施される方法が提供される。本方法は、パラメータの集合と、各パラメータについての範囲とを定義することを含む。前記定義することは、前記パラメトリックモデルが、前記範囲の集合内に提供される各値の集合により、クラスの各インスタンスを表す各３Ｄモデル化オブジェクトを生成するように構成されるようなものである。本方法はまた、データセットを形成する際にトラバースされるように１つまたは複数の範囲にラベル付けすることを含む。このような方法により、データセットを形成するための前記方法を適用するために構成され準備されたパラメトリックモデルを定義することが可能になる。
【００３３】
例において、パラメトリックモデルを定義するための前記方法は、以下のうちの１つまたは複数を含んでいてもよい。
【００３４】
・前記パラメータの集合は、１つまたは複数の特性パラメータを含む。
【００３５】
・前記トラバースされる範囲の集合のうちの１つまたは複数は、それぞれ、特性パラメータである。
【００３６】
・範囲がトラバースされる前記１つまたは複数の特性パラメータは、スタイルパラメータを含む。
【００３７】
・前記１つまたは複数の特性パラメータは、さらに、１つまたは複数の寸法パラメータを含む。
【００３８】
・本方法は、さらに、ランダム化された範囲に対して、ランダムな値の組み合わせを、クラスについて所定の個数定義することを含む。
【００３９】
・本方法はさらに、それぞれが各パラメータを互いにリンク付けする、１つまたは複数の制約を定義することを含む。かつ／あるいは、
【００４０】
・本方法はさらに、トラバースされる前記範囲の集合のうちの前記１つまたは複数について優先順位を与える前記パラメータの集合に対して、前記１つまたは複数の制約に基づき、順序を定義することを含む。
【００４１】
さらには、データセットを形成するための前記方法によって形成されたデータセットに基づいて関数を学習（すなわち訓練）するための、コンピュータによって実施される方法が提供される。本方法は、重み付けされたニューラルネットワークのトポロジーのような、重みについて未定義の値を有する関数アーキテクチャ（またはトポロジー）を提供することを含む。関数アーキテクチャは、現実の物体の１つまたは複数のクラスのインスタンスの画像をそれぞれが入力とする関数を提供するように調整され得るデータ構造である。本方法はまた、データセットを提供することと、次いで、例えば所定の損失項を最小化することによって、前記データセットと一致するように前記関数アーキテクチャを調整することを含む。前記調整は、前記ニューラルネットワークの重みの値を調整することからなっていてもよい。このような方法は、機械学習工程のオフライン学習／訓練部分と呼ばれる。
【００４２】
さらには、学習のためのそのような方法によって学習された関数を用いるための、コンピュータで実施される方法が提供される。本方法は、前記関数を提供することを含む。本方法は、次いで、例えば、前記関数が入力として取るように構成された現実の物体の１つまたは複数のクラスのインスタンスの、１つまたは複数の入力画像を提供すること（本方法は、入力画像が前記１つまたは複数のクラスのインスタンスでない場合も何らかの方法で対処する）と、次いで、前記関数を前記入力画像に適用することとを含む。本方法は、次いで、出力についての任意の後処理を含んでいてもよい。このような方法は、機械学習工程のオンライン（またはインライン）部分と呼ばれる。
【００４３】
さらには、上記方法群のうちの任意のシーケンスを含む工程が提供される。前記シーケンスは、同じ位置で、および／または、同じシステムによって、または遠隔システム間におけるデータの交換を含むように実行されてもよい。
【００４４】
さらには、上記の方法群のいずれか１つまたは任意の組み合わせを実行するための命令を含むコンピュータプログラムが提供される。
【００４５】
さらには、データセットを形成するための前記方法によって形成可能なデータセットが提供される。このようなデータセットは、前記方法によって追加された前記１つまたは複数の対応する画像を含み、それにより、前記データセットは、既存の類似のデータセットと比較して、網羅的で正確である。
【００４６】
さらには、パラメトリックモデルを定義するための前記方法によって定義可能なパラメトリックモデルが提供される。このようなパラメトリックモデルは、パラメトリックモデルを定義するための前記方法の間に定義されたすべての情報、特に、データセットを形成する際に１つまたは複数の範囲のそれぞれがトラバースされることを示すラベルを含む。
【００４７】
さらには、前記データセット、前記関数、および／または、前記プログラムを含むデータ構造が提供される。
【００４８】
さらには、前記データ構造が記録されたデータ記憶媒体を含む装置が提供される。前記装置は、非一時的なコンピュータ読み取り可能媒体を構成してもよい。前記装置は、代わりに、前記データ記憶媒体に接続されたプロセッサを備えていてもよい。前記装置は、それによりシステムを構成してもよい。前記システムは、さらに、プロセッサに接続されたグラフィカル・ユーザ・インターフェースを備えていてもよい。
【図面の簡単な説明】
【００４９】
【図１】工程の一例のフローチャートを示す。
【図２】システムのグラフィカル・ユーザ・インターフェースの一例を示す。
【図３】システムの一例を示す。
【図４】方法の実施例を説明する図である。
【図５】方法の実施例を説明する図である。
【図６】方法の実施例を説明する図である。
【図７】方法の実施例を説明する図である。
【図８】方法の実施例を説明する図である。
【図９】方法の実施例を説明する図である。
【図１０】方法の実施例を説明する図である。
【図１１】方法の実施例を説明する図である。
【図１２】方法の実施例を説明する図である。
【図１３】方法の実施例を説明する図である。
【図１４】方法の実施例を説明する図である。
【図１５】方法の実施例を説明する図である。
【図１６】方法の実施例を説明する図である。
【図１７】方法の実施例を説明する図である。
【図１８】方法の実施例を説明する図である。
【図１９】方法の実施例を説明する図である。
【図２０】方法の実施例を説明する図である。
【図２１】方法の実施例を説明する図である。
【図２２】方法の実施例を説明する図である。
【図２３】パラメトリックモデルを定義付けの一例を説明するための図である。
【図２４】パラメトリックモデルを定義付けの一例を説明するための図である。
【図２５】パラメトリックモデルを定義付けの一例を説明するための図である。
【図２６】パラメトリックモデルを定義付けの一例を説明するための図である。
【発明を実施するための形態】
【００５０】
関数は、ニューラルネットワークのような、現実の物体の１つまたは複数のクラスのインスタンスのものであり得る画像を入力とし、各入力に対して任意のフォーマットをとり得る出力を生成する任意の関数である。
【００５１】
画像は、物理的信号の空間的分布を表すデータ構造である。現実の物体の画像は、例えばシーン内に位置する当該物体上の物理的信号の分布を表す。空間的分布は、任意の次元、例えば、２Ｄまたは３Ｄの分布であり得る。物理的信号は、例えば色、グレーレベル、物質の深度または存在、または物体の境界など、任意の信号であってよい。これに対応して、画像は、２Ｄまたは３ＤのＲＧＢ、グレースケールまたは深度画像、２Ｄ輪郭モデル、または３Ｄモデル化オブジェクト（例えば、表面占有率または体積占有率モデル、あるいは境界表現）であってもよい。
【００５２】
空間的分布は、任意の方法で、例えば値のグリッドを用いて表現され、それによってピクセルまたはボクセルを定義する。グリッドは不規則または規則的である可能性がある。データセットに追加された画像、および／または、関数に入力される画像は、すべて同じ種類であってもよく、例えば、すべて矩形の２ＤのＲＧＢまたはグレースケール画像、あるいはすべて３Ｄモデル化オブジェクトであってもよい。あるいは、データセットに追加された画像、および／または、関数に入力される画像は、異なる種類の画像を含んでいてもよい（例えば、訓練パターンの第１の要素のうちの画像、または第２の要素のうちの画像であってもよい）。
【００５３】
例においては、関数は、２Ｄ画像または３Ｄモデル化オブジェクトのような入力画像によって表される現実の物体のインスタンスのクラスを示す情報を出力するように構成されている。他の例においては、関数は、２Ｄ画像のような入力画像によって表される現実の物体のインスタンスの３Ｄモデル化オブジェクトを出力するように構成されている。
【００５４】
モデル化オブジェクトは、例えばデータベースに格納されたデータによって定義される任意のオブジェクトである。さらには、「モデル化オブジェクト」という表現は、データそのものも指す。使用されるシステムの種類に応じて、モデル化オブジェクトは、異なる種類のデータによって定義されてもよい。実際、システムは、ＣＡＤシステム、ＣＡＥシステム、ＣＡＭシステム、ＰＤＭシステム、および／またはＰＬＭシステムのうちの任意の組み合わせであってもよい。それら異なるシステムにおいて、モデル化オブジェクトは、対応するデータによって定義される。したがって、ＣＡＤオブジェクト、ＰＬＭオブジェクト、ＰＤＭオブジェクト、ＣＡＥオブジェクト、ＣＡＭオブジェクト、ＣＡＤデータ、ＰＬＭデータ、ＰＤＭデータ、ＣＡＭデータ、ＣＡＥデータについて言及することがある。しかしながら、モデル化オブジェクトは、これらのシステムの任意の組み合わせに対応するデータによって定義されてもよいため、これらのシステムは、互いに排他的なものではない。したがって、システムは、ＣＡＤ兼ＰＬＭシステムであってもよく、これは以下に示すそのようなシステムの定義により明らかとなる。
【００５５】
ＣＡＤシステムは、少なくとも、ＣＡＴＩＡのようなモデル化オブジェクトのグラフィック表現に基づくモデル化オブジェクトの設計に適した任意のシステムをも意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトを表現可能にするデータを含む。ＣＡＤシステムは、例えば、辺や線を用い、また、場合により面（ｆａｃｅｓ  ｏｒ  ｓｕｒｆａｃｅｓ）を用いて、ＣＡＤモデル化オブジェクトの表現を提供してもよい。線、辺、あるいは面は、例えば、非一様有理Ｂスプライン（ＮＵＲＢＳ）など、様々な様式で表現されてもよい。具体的には、ＣＡＤファイルは仕様を含み、その仕様に基づきジオメトリが生成可能であり、よって表現が生成可能となる。モデル化オブジェクトの仕様は１つまたは複数のＣＡＤファイルに格納されていてもよい。ＣＡＤシステムでモデル化オブジェクトを表現するファイルの典型的なサイズは、一部分あたり１メガバイトの範囲である。また、モデル化オブジェクトは、典型的には、数千の部分の集合体であってもよい。
【００５６】
ＣＡＤの文脈において、モデル化オブジェクトは、典型的には、３Ｄモデル化オブジェクト、例えば、一つの部品や部品の集合体などの製品、あるいは製品の集合体を表現するものであってもよい。「３Ｄモデル化オブジェクト」は、３Ｄ表現が可能なデータによってモデル化される任意のオブジェクトを意味する。３Ｄ表現は、その部品をすべての角度から見ることを可能にする。たとえば、３Ｄで表現された３Ｄモデル化オブジェクトは、その軸のうちの任意の軸、あるいは、その表現が表示された画面中の任意の軸を中心に、処理して回転させることが可能である。これは、特に、３Ｄモデル化されていない２Ｄアイコンについては除外される。３Ｄ表現の表示は、設計を容易にする（すなわち、設計者が作業を達成するスピードを統計的に速める）。
【００５７】
「現実の物体のクラス」という表現は、同じ意味記述子によって記述され得る現実の物体の集合、グループ、またはカテゴリを指す。現実の物体のクラスの意味記述子は、当該クラスの任意の物体を記述する自然言語の単語、またはオプションとして、数を含む表現である。クラスは、任意の種類の現実の物体を集め得る。クラスのサブクラスが、それ自体クラスとみなされてもよい。本方法群は、学習される関数について想定される精度に応じて、分類について任意の細かさを想定してもよい。本方法群は、例えばＩｍａｇｅＮｅｔ、ＳｈａｐｅＮｅｔ、またはＯｂｊｅｃｔＮｅｔ３Ｄで識別されるクラスを想定してもよい。
【００５８】
本方法群は、動物のクラス、身体器官の部分のクラス、または植物／樹木のクラス、または（例えば機械）部品や部品の集合体のクラス、より一般的には任意の剛体の集合体（例えば移動機構）のクラスを想定してもよい。製品は、航空宇宙、建築、建設、消費財、ハイテク機器、産業機器、輸送、海洋、および／または海洋石油／ガス生産、または交通を含む、限定されることのない様々な産業分野において用いてもよい。本方法群は、地上車両の部品のクラス（例えば、自動車のクラス、および軽トラック機器のクラス、レーシングカーのクラス、オートバイのクラス、トラックのクラスおよびモーター機器のクラス、トラックのクラス、バスのクラス、電車のクラスを含む）、航空車両の部品のクラス（例えば、航空機体機器のクラス、航空宇宙機器のクラス、推進機器のクラス、防衛製品のクラス、航空路線機器のクラス、宇宙機器のクラスを含む）、海軍車両の部品のクラス（例えば、海軍用機器のクラス、商業用船舶のクラス、オフショア機器のクラス、ヨットのクラスおよび作業船のクラス、船舶用機器のクラスを含む）、一般的な機械部品のクラス（例えば、工業用製造機械のクラス、大型移動機械のクラスまたは機器のクラス、設置機器のクラス、産業機器製品のクラス、加工金属製品のクラス、タイヤ製造製品のクラスを含む）、電気機械部品のクラスまたは電子部品のクラス、（例えば、家電のクラス、セキュリティのクラスおよび／または制御のクラスおよび／または計装製品のクラス、コンピューティングおよび通信機器のクラス、半導体のクラス、医療装置および設備のクラスを含む）、消費者製品のクラス（例えば、家具のクラス、家庭用および庭用製品のクラス、レジャー用品のクラス、ファッション用品のクラス、耐久消費財小売用品のクラス、織物類小売用品のクラスを含む）、包装のクラス（例えば、食品および飲料およびたばこ、美容およびパーソナルケア、家庭用製品の包装のクラスを含む）などのように、任意の機械部品クラスを含み得る工業製品のクラスを意図したものであってもよい。
【００５９】
クラスの要素を「インスタンス」と呼ぶ。したがって、インスタンスはクラスの現実の物体である。インスタンスは、例えばそのスタイルや、その寸法、および／または、そのテクスチャを含む、異なる物理的特性を有する。クラスのインスタンスは、そのような情報をモデル化した３Ｄモデル化オブジェクトによって表されてもよい。
【００６０】
クラスのパラメトリックモデル（「テンプレート」としても知られる）は、入力パラメータに対して提供される値（１つのパラメータに１つの値）により、クラスのインスタンスを表す３Ｄモデル化オブジェクトを生成（すなわち出力）する関数である。したがって、このような生成された３Ｄモデル化オブジェクトは、それぞれ、パラメトリックモデルに対して提供されるパラメータ値の集合に対応する。各パラメータは、範囲、すなわち、当該パラメータに対して承認されたすべての値の集合に対応する。パラメトリックモデルは、さらに、それぞれが各パラメータを互いにリンク付けする、１つまたは複数の制約を含んでいてもよい（言い換えれば、１つまたは複数の他のパラメータの値に対して、１つまたは複数のパラメータの値に制約を与える）。このような情報は、パラメトリックモデルとともに提供される。
【００６１】
データセットを形成する方法は、次いで、３Ｄモデル化オブジェクトの生成中に１つまたは複数の範囲を（例えば、完全に）トラバースすることを含む。ある範囲について「トラバースする」という用語は、当該範囲の少なくとも代表的な部分集合の各値（すなわち、当該範囲に全体にわたって分布された当該範囲の値の集合）が、その部分集合の各値について少なくとも１つの対応する３Ｄモデル化オブジェクトが生成されるように、生成中にアクセスされることを意味する。前記３Ｄモデル化オブジェクトに対応する他のパラメータ値は、任意の手法で設定すればよく、例については後述する。そのような生成された各３Ｄモデル化オブジェクトは、次いで、データセット内の対応する１つまたは複数の訓練パターンをもたらしてもよい。これにより、トラバースされるパラメータの範囲（群）について、データセットが包括的で多様なものとなる。言い換えれば、トラバースされる範囲の値のすべての組み合わせがデータセット内に表される。
【００６２】
範囲の集合は、有限である１つまたは複数の範囲を含んでいてもよい。このような有限の範囲をトラバースすると、その範囲のすべての値にアクセスすることになる。そのような場合、範囲の代表的な部分集合は、範囲全体そのものである。範囲の集合は、無限である１つまたは複数の範囲を含んでいてもよい。このような無限集合は、例えば有限集合にサンプリングされる。有限集合もまた、例えば、比較的大きい場合に、サンプリングしてもよい。そのような場合、範囲の代表的な部分集合は、サンプリングの結果である。このようなサンプリングはまた、データセットを形成するための方法の他のステップのために実施され、使用されてもよい。例えば、トラバースされていない範囲の値が必要な場合（例えば、後述するようにランダム化されている場合）、そのような値をサンプリングの結果内で選択してもよい。サンプリングは、パラメトリックモデルの定義時に、または複数の３Ｄモデル化オブジェクトの生成前または生成時におけるデータセットの形成中に実行してもよい（この場合、サンプリングは単にその範囲に対して行われる）。サンプリングは規則的であっても不規則であってもよい。サンプリングは、所定数のステップまたは所定のステップサイズに対応してもよく、これは一定であってもよく、範囲および／またはパラメータに依存してもよい。サンプリングは、範囲内に少なくとも２個または３個の値、例えば少なくとも５個または１０個の値をもたらしてもよい。以下において、範囲の処理とは、そのサンプリングされたバージョンの処理のことを指し得る。
【００６３】
パラメータの集合は、１つまたは複数の特性パラメータを含んでいてもよい。特性パラメータは、クラスの現実の物体を識別する特徴を表すパラメータである。この識別的特徴は、意味記述子に対応していてもよい。クラスの現実の物体の識別的特徴の意味記述子は、当該現実物体の態様を記述する自然言語の単語、またはオプションとして、数を含む表現であり、これにより、現実の物体をクラスの他のインスタンスと識別的に比較することができる。これにより、パラメトリックモデルは、識別され得るクラスのインスタンスの生成を可能にし、形成されたデータセットは、そのような多様性を変換したものとなり得る。
【００６４】
特性パラメータは、スタイルパラメータ、寸法パラメータ、および／または、テクスチャパラメータを含んでいてもよい。スタイルパラメータは、クラスの現実の物体についての形状または配置情報を表すパラメータであり、それにより、特にその画像を視覚化する際の、現実の物体についての幾何学的印象に対応する。このように、スタイルパラメータは、クラスにおける異なるインスタンス同士を識別する効率的な手法を形成する。スタイルパラメータは、物体の形状、その要素の形状、またはその要素の配列を、すべて値の所定の集合内に表してもよい。寸法パラメータは、現実の物体、またはその一部の寸法を表す。テクスチャパラメータは、現実の物体、またはその一部のテクスチャを表し、「テクスチャ」という用語は、例えば、色の分布、材料、および／または、感触の特徴（例えば皺の多さや滑らかさ）をカバーする。
【００６５】
パラメトリックモデルが提供される現実の物体のクラスは、同じタイプの（例えば、機械的な）部品または製品の集合体のクラスを含んでいてもよい。そのようなクラスのパラメトリックモデルは、部品または製品にそれぞれ対応するサブモデルを含んでいてもよい。各サブモデルは、１つまたは複数のスタイルパラメータ（例えば、それぞれが部品の形状種類の有限集合を提供する）、１つまたは複数の寸法パラメータ（例えば、それぞれが値の無限集合を提供する（例えば、種類［ａ，ｂ］。ここで、ａおよびｂが正の実数））、および／または、１つまたは複数のテクスチャパラメータ（例えば、それぞれが部品の材料種類の有限集合、部品の感触特徴種類の有限集合、または部品全体の色の値の有限または無限集合（例えば値の２５７×２５７×２５７個の集合における、例えばＲＧＢ値）を提供するか、または、それぞれが色の値の有限または無限集合（例えば部品におけるＲＧＢ分布マップ）、または感触特徴の値の有限または無限集合（例えば部品における感触特徴のレベルの分布マップ）を定義するか、（例えばチューニングによって）他のパラメータとともに定義に関与する）を含み得るパラメトリックモデルである。クラスのパラメトリックモデルは、さらに、例えばそれぞれが部品の配置の有限集合を提供する、スタイルパラメータを含んでいてもよい。クラスのパラメトリックモデルは、例えば、それぞれがいくつかの部品の所与の配置について、それら部品間の相対的な位置決めの正確な値を提供する、寸法パラメータを含んでいてもよい。クラスのパラメトリックモデルは、他のパラメータを含んでいてもよい。
【００６６】
パラメトリックモデルが提供される１つまたは複数のクラスは、そのような種類の上位クラスのサブクラスであってもよい。上位クラスのパラメトリックモデルは、次いで、１つまたは複数のクラスのパラメトリックモデルの集合からなるものであって、当該１つまたは複数のクラスのパラメトリックモデルのうちの１つを選択するためのパラメータが追加されるものとして定義されてもよい。上位クラスの概念は、同じ上位クラスのサブクラスである異なるクラスがパラメータを共有し得るため、クラスがより簡単に定義できるようになり得る。上位クラスを定義することにより、そのようなパラメータを一度だけ宣言し、次いで、共有した当該パラメータを自動的に継承するものの共有した当該パラメータに適用する関数が異なり得る、インスタンス化サブクラスを宣言することが可能になり得る。
【００６７】
トラバースされる範囲の集合のうちの１つまたは複数は、それぞれ、特性パラメータの範囲であってもよい。そのような場合、データセットは特性パラメータに関して包括的であり、データセットの多様性により、特性パラメータによって提供される特性に応じて識別を行う関数を後で学習することが可能になる。言い換えれば、この関数は、トラバースされる特性パラメータに対して、あるインスタンスを別のものと間違えてしまうことに対してより頑強になる。
【００６８】
このようなトラバースされる特性パラメータは、スタイルパラメータ（例えば、パラメトリックモデルによって提供される全てのスタイルパラメータ）を含んでいてもよい。スタイルパラメータは、実際、特に識別に資する。したがって、スタイルパラメータによって取られる値に関する多様性は特に重要である。これは、同じ種類の（例えば、機械的な）部品または製品の集合体のクラスの場合に、よりいっそう当てはまる。
【００６９】
例においては、すべてのスタイルパラメータがトラバースされ、他のすべてのパラメータはランダム化される。これにより、データセットの迅速な形成が可能になるが、そのうえ、機械エンジニアリングの文脈を含め、多くの文脈において、最もよく識別に資するパラメータの種類であるスタイルに関して、多様性を有する。
【００７０】
本方法群は、コンピュータにより実施される。これは、本方法群のステップ（あるいは略全てのステップ）が少なくとも１つのコンピュータ、または類似の任意のシステムによって実行されることを意味する。よって本方法群のステップは、コンピュータにより、完全に自動的に、あるいは半自動的に実行される可能性がある。例において、本方法群の少なくともいくつかのステップは、ユーザとコンピュータの対話を通じて始動されてもよい。求められるユーザとコンピュータの対話レベルは、想定される自動性のレベルに応じたものであって、ユーザの要望を実装する必要性との間でバランスをとるものとしてもよい。例において、このレベルは、ユーザが設定し、かつ／あるいは、予め定義されていてもよい。
【００７１】
本方法群のコンピュータによる実施の典型的な例は、この目的に適したシステムを用いて本方法群を実行することである。当該システムは、本方法群を実行するための命令を含むコンピュータプログラムを記録したメモリに接続されたプロセッサ、および、グラフィカル・ユーザ・インターフェース（ＧＵＩ）を備えていてもよい。メモリは、データベースを記憶していてもよい。メモリは、そのような記憶に適した任意のハードウェアであり、場合により、物理的に区別可能ないくつかの部分（例えば、プログラム用に１つ、場合によりデータベース用に１つ）を含む。システムはさらに、プロセッサに接続され、３Ｄ再構築のためのインスタンスの深度マップを取得するよう構成された深度センサを備えていてもよい。システムはまた、取得中にインスタンスが姿勢をとるためのポージングスポットを備えていてもよい。
【００７２】
図１は、工程の一例のフローチャートを示す。ブロックＳ１０、Ｓ２０、Ｓ３０、Ｓ４０およびＳ５０は、それぞれ他のブロックとは独立して実行されてもよい。
【００７３】
図１の工程は、現実の物体の複数のクラスのそれぞれに対して、当該クラスのパラメトリックモデルを定義する方法（Ｓ１０）を含み、これはユーザの対話操作を介して実行され得る。
【００７４】
定義すること（Ｓ１０）は、パラメータの集合と、各パラメータについての範囲とを定義すること（Ｓ１２）を含む。パラメータは、寸法、スタイル、および／または、テクスチャパラメータを含んでいてもよい。パラメトリックモデルは、クラスの現実の物体のインスタンスの変動性を表す。
【００７５】
定義すること（Ｓ１０）はさらに、データセットを形成する際にトラバースされるように１つまたは複数のパラメータ範囲（同様に、パラメータ）にラベル付けすること（Ｓ１４）を含む。これによりラベル付けされた範囲パラメータは、（例えば、有限である）（例えば、全ての）スタイルパラメータ、および場合により寸法パラメータ、および／またはテクスチャパラメータを含んでいてもよい（例えば、このような寸法／テクスチャパラメータの無限の範囲は、このような場合に、サンプリングされて有限でトラバース可能となるが、これは図には示されていない）。
【００７６】
図１の工程は、他のすべての（すなわち、ラベル付けされていない）範囲を、ランダム化されるものとみなす。あるいは、システムは、「トラバースされていない」範囲用に、特定のラベルを管理してもよい。また、ランダム化の代わりに、ラベル付けされていない範囲については、トラバースとは異なる他の任意の処理が考えられる。
【００７７】
定義すること（Ｓ１０）はさらに、ラベル付けされた範囲の値の各組み合わせに対して、ラベル付けされていない範囲のランダムな値の所定の個数Ｍ個の組合せを定義すること（Ｓ１６）を含む。言い換えれば、各クラスについて、当該工程は、ラベル付けされた範囲のトラバースされる値の組み合わせごとに、ラベル付けされていない範囲に対して描画されるはずのランダム値の組み合わせが正確に何個あるかを知る。これにより、当該工程は、トラバースされる範囲の組み合わせの全体の多様性を表すデータセットを形成し、他の範囲については「より緩く」（すなわち、より「厳密」でなく）なるように求められる。定義すること（Ｓ１６）は、さらに、所定数Ｍ個に対応するランダム化された範囲について、最小限の多様性を実現する。所定の個数Ｍは、任意の正の整数値であってよく、例えば、３０または２０よりも小さくてもよい。これにより組み合わせのコストを低減できる。
【００７８】
定義すること（Ｓ１０）は、さらに、それぞれが各パラメータを互いにリンクさせる、１つまたは複数の制約を定義すること（Ｓ１８）を含む。あるいは、ユーザは制約を全く定義しなくてもよい。
【００７９】
Ｓ１２〜Ｓ１８は、連続的に表されているが、任意の順序で実行してもよく、例えばインターレースされてもよい。
【００８０】
図１の工程は、次いで、データセットを初期化する（Ｓ２０）。
【００８１】
図１の工程は、次いで、クラスごとに、データセットに取り込む（Ｓ３０）。
【００８２】
工程は、各クラスについて、当該クラスのパラメトリックモデルを提供すること（Ｓ３１０）を含む。工程は、次いで、パラメトリックモデルにより複数の３Ｄモデル化オブジェクトを生成する（Ｓ３２０）。
【００８３】
この生成（Ｓ３２０）は、パラメータの集合について順序を定義すること（Ｓ３２２）を含む。順序付けは、トラバースされる範囲に優先順位を与え、かつ、１つまたは複数の制約に基づくものである。順序は、任意の手法により、自動的に決定されてもよい。このような順序付けの実施については後述する。図１の例の代わりに、順序がＳ１０内で定義され、Ｓ３０でそのようなものとして提供され、パラメトリックモデルと共に形成されてもよい。さらに、Ｓ３０は、順序付けに基づかなくてもよく、ヒューリスティックを介して単純に実行してもよい。
【００８４】
生成（Ｓ３２０）は、次いで、トラバースされるようにラベル付けされた範囲をトラバースすること（Ｓ３２４）を含む。トラバーサル（Ｓ３２４）中に、生成（Ｓ３２０）により、ラベル付けされた範囲の値の組み合わせのそれぞれにつき、ラベル付けされていない範囲のランダムな値のＭ個の組み合わせが提供される（Ｓ３２６）。あるいは、所定数Ｍが工程に提供されず、よって工程は任意の手法でランダム化を処理する。
【００８５】
これにより、Ｓ３２４〜Ｓ３２６は、Ｓ３２８で出力される３Ｄモデル化オブジェクトに多様性をもたらす。出力は、ラベル付けされた範囲の値のすべての可能な組み合わせに対応する３Ｄモデル化オブジェクトと、そのような各組み合わせについて、ラベル付けされていない範囲の値の１つまたは複数（Ｍの値による）のランダムな組み合わせに対応する３Ｄモデル化オブジェクトを含む。
【００８６】
次いで、Ｓ３２８の結果に基づきデータを追加する（Ｓ３３０）ことによって、データセットにクラスのデータが取り込まれる。例えば、Ｓ３２８で出力された各３Ｄモデル化オブジェクトが、いくつかの２Ｄ画像を抽出するために用いられ、各２Ｄ画像は、Ｓ３３０において、例えば各３Ｄモデル化オブジェクト、または他の任意の関連データにリンク付けされたデータセットに追加され、訓練パターンを形成する。あるいは、Ｓ３２８で出力された各３Ｄモデル化オブジェクトは、Ｓ３３０でクラスの名前にリンク付けされたデータセットに追加され、訓練パターンを形成する。Ｓ３３０は、データセットに基づいて後にＳ４０で学習したい関数の種類に基づいて、任意の手法で実行されてもよい。
【００８７】
いずれの場合も、トラバーサル（Ｓ３２４）は、データセット内に、効率的な学習（Ｓ４０）を可能にする一定レベルの多様性をもたらし、それにより、後にＳ５０において、そのような学習した関数を用いるときに、正確な結果をもたらす。
【００８８】
例における定義すること（Ｓ１０）はさらに、ランダム化されていない範囲の値の各組み合わせに対して、ランダム化された範囲のランダムな値の所定数Ｍ個の組合せを定義すること（Ｓ１６）を含む。
【００８９】
図２は、本システムのＧＵＩの一例を示す図であって、当該システムはＣＡＤシステムである。ＧＵＩ２１００は、例えば、所与のクラスの３Ｄモデル化オブジェクト２０００を、例えば当該クラスのパラメトリックモデルを定義する前に、そのような３Ｄモデル化オブジェクトを入力とする学習した関数を適用する前に、あるいはそのような３Ｄモデル化オブジェクトを出力する学習した関数の結果として、表示するために用いられてもよい。
【００９０】
ＧＵＩ２１００は、標準的なメニューバー２１１０，２１２０、ならびに底部および側面のツールバー２１４０，２１５０を有する典型的なＣＡＤのようなインターフェースであってもよい。このようなメニューバーおよびツールバーは、ユーザが選択可能なアイコンのセットを含み、各アイコンは、当技術分野で知られているように、１つまたは複数の操作または機能に関連付けられている。これらのアイコンのいくつかは、ＧＵＩ２１００に表示された３Ｄモデル化オブジェクト２０００の編集および／または作業に適合したソフトウェアツールに関連付けられている。ソフトウェアツールはワークベンチに分類することができる。各ワークベンチは、ソフトウェアツールのサブセットを含む。特に、ワークベンチの１つは、モデル化製品２０００のジオメトリ的特徴を編集するのに適した編集ワークベンチである。操作中、設計者は、例えば、オブジェクト２０００の一部を予め選択し、次いで、適切なアイコンを選択することによって、操作を開始する（例えば、寸法、色などを変更する）か、ジオメトリ的制約を編集することができる。例えば、典型的なＣＡＤ操作は、スクリーン上に表示された３Ｄモデル化オブジェクトのパンチングまたは折り畳みのモデリングである。ＧＵＩは、例えば、表示された製品２０００に関連するデータ２５００を表示してもよい。図の例では、「特徴ツリー」として表示されたデータ２５００およびそれらの３Ｄ表現２０００は、ブレーキキャリパおよびディスクを含むブレーキ部品に関するものである。ＧＵＩは、編集された製品の動作のシミュレーションを起動するため、または表示された製品２０００の様々な属性を描画するために、例えばオブジェクトの３Ｄ定位を容易にするための様々なタイプのグラフィックツール２１３０，２０７０，２０８０をさらに示してもよい。カーソル２０６０は、ユーザがグラフィックツールを用いて対話操作ができるように、触覚デバイスによって制御されてもよい。
【００９１】
図３は、深度センサに接続されたコンピュータシステムとしての本システムの一例を示す。
【００９２】
本例のシステムは、内部通信バス１０００に接続された中央演算処理装置（ＣＰＵ）１０１０、および同じくバスに接続されたランダムアクセスメモリ（ＲＡＭ）１０７０とを備える。本システムは、さらに、バスに接続されたビデオランダムアクセスメモリ１１００と関連付けられたグラフィックス処理装置（ＧＰＵ）１１１０を備える。ビデオＲＡＭ１１００は、当該技術分野において、フレームバッファとしても知られる。大容量記憶装置コントローラ１０２０は、ハードドライブ１０３０などの大容量記憶装置へのアクセスを管理する。コンピュータプログラムの命令及びデータを具体的に実現するのに適した大容量メモリ装置は、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ及びフラッシュメモリ装置のような半導体メモリ装置、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、およびＣＤ−ＲＯＭディスク１０４０を含む、全ての形式の不揮発性メモリを含む。前述のいずれも、特別に設計されたＡＳＩＣ（特定用途向け集積回路）によって補完されてもよいし、組み入れられてもよい。ネットワークアダプタ１０５０は、ネットワーク１０６０へのアクセスを管理する。本システムは、深度センサ１０９０も含む。
【００９３】
コンピュータプログラムは、コンピュータによって実行可能な命令を含んでいてもよく、命令は、上記システムに本方法群を実行させるための手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶媒体に記録可能であってもよい。プログラムは、例えば、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実装されてもよい。プログラムは、例えばプログラマブルプロセッサによる実行のための機械読み取り可能な記憶装置に具体的に実現された製品のような装置として実装されてもよい。方法ステップは、プログラム可能なプロセッサが命令のプログラムを実行し、入力データを操作して出力を生成することによって方法の機能を実行することによって実行されてもよい。したがって、プロセッサは、データ記憶システム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスからデータおよび命令を受信し、また、それらにデータおよび命令を送信するようにプログラム可能であってもよく、またそのように接続されていてもよい。アプリケーションプログラムは、高水準の手続き型またはオブジェクト指向のプログラミング言語で、または必要に応じてアセンブリ言語または機械語で実装されていてもよい。いずれの場合も、言語はコンパイラ型言語またはインタープリタ型言語であってもよい。プログラムは、フルインストールプログラムまたは更新プログラムであってもよい。いずれの場合も、プログラムをシステムに適用すると、本方法を実行するための指示が得られる。
【００９４】
本工程は、例えば、２Ｄ画像を用いて３Ｄオブジェクトを認識するため専用のニューラルネットワークを訓練するために、訓練パターンを準備できるようにし得る。本工程は、ＣＡＤにおいて非常に一般的な概念である、テンプレートを利用する。原則は、ＣＡＤシステムを用いて、認識すべき３Ｄオブジェクトのクラスのパラメータ化されたテンプレートを作成することであってもよい。クラスの各要素は、パラメータ（例えば、角度寸法、長さ寸法、テクスチャ）をインスタンス化することによって得られる。このように、パラメータ値を自動的に変化させることによって、３Ｄモデルの非常に大きな集合を作成することができる。次いで、各モデルについて、関連付けられた２Ｄ画像のもう１つの非常に大きな集合を、ＣＡＤシステムを再び用いて算出してもよい。本工程は、特に、ジオメトリ的な観点から、完全に制御下にある数千の訓練パターンを提供することが可能であってもよい。これにより、効率的かつ安全な、ニューラルネットワークの訓練が可能になる。
【００９５】
ここで、本方法群の実施例について、図４〜図２２を参照して説明する。「ユーザ」という用語は、訓練パターンデータベースの設計者を指す。
【００９６】
ニューラルネットワーク定義の例
ニューラルネットワークは、式にすると、６つ組
【数１】
2019032820.tif 000003
によって定義されてもよく、ここで、
【数２】
2019032820.tif 000004
はニューロンの集合であり、
【数３】
2019032820.tif 000005
は方向づけられた接続であり、マッピング
【数４】
2019032820.tif 000006
は、接続の開始ニューロンを記述し、マッピング
【数５】
2019032820.tif 000007
は、接続の終了ニューロンを記述し、重みマッピング
【数６】
2019032820.tif 000008
は、数値重みを各接続に関連付け、
【数７】
2019032820.tif 000009
は、活性化関数と呼ばれる。
これは接続の開始ニューロン
【数８】
2019032820.tif 000010
が
【数９】
2019032820.tif 000011
であり、その終了ニューロンが
【数１０】
2019032820.tif 000012
であり、その重みが
【数１１】
2019032820.tif 000013
であることを意味する。さらに、ニューロンの入力接続の集合
【数１２】
2019032820.tif 000014
は
【数１３】
2019032820.tif 000015
であり、ニューロンの出力接続の集合
【数１４】
2019032820.tif 000016
は
【数１５】
2019032820.tif 000017
である。同様に、ニューロン
【数１６】
2019032820.tif 000018
の内向きニューロン
【数１７】
2019032820.tif 000019
は、
【数１８】
2019032820.tif 000020
の入力接続の開始ニューロンであり、すなわち、
【数１９】
2019032820.tif 000021
である。ニューラルネットワークのトポロジーは、ニューロンと、接続
【数２０】
2019032820.tif 000022
によって定義される。
【００９７】
定義により、活性化関数は、ネットワーク内の情報伝播の非線形閾値効果を捉える。教本「Ｋｒｉｅｓｅｌ  Ｄａｖｉｄ，Ａ  ｂｒｉｅｆ  ｉｎｔｒｏｄｕｃｔｉｏｎ  ｔｏ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ，２００６」に記載のとおり、典型的な活性化関数は、
【数２１】
2019032820.tif 000023
である。
【００９８】
数学的な観点から、ニューラルネットワークは、活性化関数に関連づけられた加重弧を有する有向グラフであってもよい。
【００９９】
定義により、入力ニューロン
【数２２】
2019032820.tif 000024
は、入力接続を有しておらず、これは、
【数２３】
2019032820.tif 000025
を意味し、また出力ニューロン
【数２４】
2019032820.tif 000026
は出力接続を有しておらず、これは
【数２５】
2019032820.tif 000027
を意味する。
【０１００】
各ニューロン
【数２６】
2019032820.tif 000028
は以下の意味において演算ユニットのように振る舞う。出力数値
【数２７】
2019032820.tif 000029
は、以下の式に従って内向きニューロンの数値を組み合わせることによって算出できる。
【数２８】
2019032820.tif 000030
【０１０１】
値
【数２９】
2019032820.tif 000031
は伝播値と呼ばれる。これは、ニューロン
【数３０】
2019032820.tif 000032
で終了するすべての接続
【数３１】
2019032820.tif 000033
の開始ニューロン
【数３２】
2019032820.tif 000034
によって算出した数値の加重合計である。値
【数３３】
2019032820.tif 000035
は、伝播値
【数３４】
2019032820.tif 000036
において適用された閾値効果
【数３５】
2019032820.tif 000037
である。数式は再帰的に定義され、順序付けの問題には、トポロジーを通して対処する。図４は、ニューロン５における、その３つの内向きニューロン１、２、および３からの演算を説明する図である。
【０１０２】
本工程によって実装され得るニューラルネットワークの非常に一般的なトポロジーは、フィードフォワードモデルである。ニューロンの集合は、層
【数３６】
2019032820.tif 000038
と呼ばれる順序付けられた疎な部分集合として構成され、ここで
【数３７】
2019032820.tif 000039
は、入力層（入力ニューロンの層）と呼ばれ、
【数３８】
2019032820.tif 000040
は、隠れ層と呼ばれ、
【数３９】
2019032820.tif 000041
は、出力層（出力ニューロンの層）と呼ばれる。層
【数４０】
2019032820.tif 000042
の各ニューロンから、層
【数４１】
2019032820.tif 000043
の全てのニューロンへの接続が存在する。層
【数４２】
2019032820.tif 000044
の各ニューロンから、
【数４３】
2019032820.tif 000045
としたときの
【数４４】
2019032820.tif 000046
の全てのニューロンへの接続が存在する。最後の隠れ層
【数４５】
2019032820.tif 000047
の各ニューロンから、出力層
【数４６】
2019032820.tif 000048
の全てのニューロンへの接続が存在する。フィードフォワードニューラルネットワークの文脈では、特定の活性化関数を各層に関連付けることができる。
【０１０３】
図５は、２つの隠れ層を特徴とするフィードフォワードニューラルネットワークを示す。入力ニューロンは入力矢印で記号化されている。出力ニューロンは出力矢印で記号化されている。
【０１０４】
明らかなように、フィードフォワードニューラルネットワークは非周期的である。したがって、数値
【数４７】
2019032820.tif 000049
を入力ニューロンに設定し、これはすなわち、全ての
【数４８】
2019032820.tif 000050
について
【数４９】
2019032820.tif 000051
であることを意味し、また、層ごとに演算を伝播することにより、出力ニューロンによって算出される数値
【数５０】
2019032820.tif 000052
がもたらされる。フィードフォワードニューラルネットワークを通して
【数５１】
2019032820.tif 000053
から
【数５２】
2019032820.tif 000054
を算出するマッピングは、
【数５３】
2019032820.tif 000055
で表され、ここで
【数５４】
2019032820.tif 000056
は入力ニューロンの数であり、
【数５５】
2019032820.tif 000057
は出力ニューロンの数である。
ニューラルネットワークの訓練の例
【０１０５】
フィードフォワードニューラルネットワークのトポロジーが与えられ、その活性化関数が与えられると、ニューラルネットワーク訓練ステップの目標は、重み付けマッピング
【数５６】
2019032820.tif 000058
を算出することである。この目的のために、訓練パターンの集合が必要である。訓練パターンは、組
【数５７】
2019032820.tif 000059
である。この組は、入力データ
【数５８】
2019032820.tif 000060
が与えられたときにニューラルネットワークが算出するものと思われる出力データ
【数５９】
2019032820.tif 000061
を表す。入力と出力は他の手段で算出され、これらは「入力が
【数６０】
2019032820.tif 000062
の場合、ニューラルネットワークは
【数６１】
2019032820.tif 000063
を出力しなければならない」ということを教えるのに用いられる。
【数６２】
2019032820.tif 000064
個の訓練パターン
【数６３】
2019032820.tif 000065
が与えられると、
【数６４】
2019032820.tif 000066
が
【数６５】
2019032820.tif 000067
について、可能な限り
【数６６】
2019032820.tif 000068
に近くなるように重み付けマッピングを調整するのに、専用のアルゴリズムを用いてもよい。この目的のための典型的なアルゴリズムは、バックプロパゲーションである。数学的観点からは、これはマッピング
【数６７】
2019032820.tif 000069
を算出する補間問題である。
【０１０６】
図６は、ニューラルネットワークの訓練ステップと実行ステップとを比較して示す。
分類ニューラルネットワークの訓練の例
【０１０７】
ニューラルネットワークは、特に分類のために用いることができる。３Ｄオブジェクトの
【数６８】
2019032820.tif 000070
個のクラスの有限の集合が与えられるとき、目標は、未知の入力３Ｄオブジェクトが属するクラスをニューラルネットワークが認識することである。分類ニューラルネットワークは、クラスごとに１つの出力ニューロンを特徴とする。出力数値は、区間
【数６９】
2019032820.tif 000071
の
【数７０】
2019032820.tif 000072
個の数のベクトル
【数７１】
2019032820.tif 000073
である。各数
【数７２】
2019032820.tif 000074
は、入力オブジェクトがクラス番号
【数７３】
2019032820.tif 000075
に属する確率である。典型的な訓練パターンは、
【数７４】
2019032820.tif 000076
かつ
【数７５】
2019032820.tif 000077
の場合
【数７６】
2019032820.tif 000078
となるような、出力ベクトルに関連づけられたクラス番号
【数７７】
2019032820.tif 000079
に属する既知の入力３Ｄオブジェクトである。
データセットを形成するための提供された方法で訓練パターンを構築する例
【０１０８】
物理的３Ｄオブジェクトの
【数７８】
2019032820.tif 000080
個のクラス
【数７９】
2019032820.tif 000081
が定義されると、ユーザは、特性パラメータを、それらの制約と共に定義することとしてもよい。パラメータ／クラステーブルは、それぞれのクラスに対応するパラメータ値のそれぞれの範囲を捉えたものである。また、ユーザは、３ＤＣＡＤテンプレートモデル（以下、テンプレートモデルという）を設計してもよい。最後に、ユーザは、
【数８０】
2019032820.tif 000082
個の描画パラメータを定義してもよい。描画パラメータは、画像を算出するのに必要なすべてのデータ、（すなわち視点、照明、環境、背景など）を含む組である。
【０１０９】
後続の工程のすべてのステップは、完全に自動化されていてもよい。各クラス
【数８１】
2019032820.tif 000083
について、システムは１つの設計テーブルを生成してもよく、各設計テーブルは、複数の
【数８２】
2019032820.tif 000084
個のオブジェクトを表す可能性がある。次いで、システムは、各設計テーブルをテンプレートモデルと組み合わせてもよく、これにより合計
【数８３】
2019032820.tif 000085
個の３Ｄモデルが生成される。最後に、システムは、描画定義に従って、各３Ｄモデルの
【数８４】
2019032820.tif 000086
個の２Ｄ画像を生成してもよい。これにより
【数８５】
2019032820.tif 000087
個の画像が生成される。データセットは、以下のような
【数８６】
2019032820.tif 000088
個の組
【数８７】
2019032820.tif 000089
からなる。
【０１１０】
・
【数８８】
2019032820.tif 000090
のそれぞれについて、
【数８９】
2019032820.tif 000091
のそれぞれについて、および
【数９０】
2019032820.tif 000092
のそれぞれについて、
【数９１】
2019032820.tif 000093
は、描画番号
【数９２】
2019032820.tif 000094
に応じた構成番号
【数９３】
2019032820.tif 000095
におけるクラス
【数９４】
2019032820.tif 000096
の物体の２Ｄ画像である
【０１１１】
・
【数９５】
2019032820.tif 000097
かつ
【数９６】
2019032820.tif 000098
の場合
【数９７】
2019032820.tif 000099
である。
【０１１２】
ワークフローが図７に示されている。
【０１１３】
物体のクラスの例
訓練パターンを設計するための第１のステップは、認識すべき物体のクラスを定義することであってもよい。それらはすべて同じルートクラスから派生してもよい。典型的なルートクラスは「テーブル」であり、クラスは機能的な観点から配置され、典型的には「ダイニングテーブル」、「エンドテーブル」、「コンソールテーブル」、「アクセントテーブル」および「バーテーブル」である。
【０１１４】
これは図８に示されている。
【０１１５】
パラメータ／クラステーブルおよびパラメータ範囲の例
特性パラメータおよび典型的な（範囲の）値は、この機能により編成したクラスに関連付けられてもよい。これには数、および記号の値が含まれてもよい。いくつかの種類のパラメータが関与してもよい。すなわち、寸法パラメータ、スタイルパラメータ、および、テクスチャパラメータである。寸法パラメータは、長さまたは角度であってもよい。スタイルパラメータは、物体の１つまたは複数の部材の性質を決定するものであってもよい。テクスチャパラメータは、その材料に応じて物体の外観を決定するものであってもよい。
【０１１６】
図９〜図１１において、Ｌｅｇ（脚）とＰｌａｔｅ（天板）はスタイルパラメータである。パラメータＬｅｇの値Ｃｉｒｃｕｌａｒ（またはＳｑｕａｒｅ）は、テーブルの中央の脚が、円形（または正方形）の土台を有することを意味する。パラメータＬｅｇの値４はテーブルが、４つの垂直な脚を備えることを意味する。パラメータＰｌａｔｅの値Ｃｉｒｃｕｌａｒ（またはＲｅｃｔａｎｇｌｅまたはＯｖａｌ）は、天板が円形（または長方形、または長円形）であることを意味する。
【０１１７】
パラメータの名前、種類、および範囲が、いわゆる「パラメータ／クラステーブル」に集められ、それを簡略化したものが表Ｉに示されている。
【表１】
2019032820.tif 000100
【０１１８】
表Ｉ−テーブルのクラスについてのパラメータ／クラスの表を簡略化したビュー：「ダイニングテーブル」クラス、「エンドテーブル」クラス、「アクセントテーブル」クラス、「バーテーブル」クラス、および「コンソールテーブル」クラス
【０１１９】
また、いわゆる「ランダムな構成」の数
【数９８】
2019032820.tif 000101
を各クラスに関連付けてもよい。上側に＊でラベル付けされたパラメータは、「ランダム化されたパラメータ」と呼ばれる。その他のパラメータは「トラバースされるパラメータ」と呼ばれる。後述のように、これら２つの特徴を、設計テーブルを生成する際に用いてもよい。
【０１２０】
このテーブルは、以下のように定式化される。クラスの集合
【数９９】
2019032820.tif 000102
が与えられ、パラメータの集合
【数１００】
2019032820.tif 000103
が与えられると、パラメータ／クラステーブルは、
【数１０１】
2019032820.tif 000104
から、
【数１０２】
2019032820.tif 000105
で表される集合
【数１０３】
2019032820.tif 000106
のべき集合へのマッピング
【数１０４】
2019032820.tif 000107
であって、
【数１０５】
2019032820.tif 000108
である。
【０１２１】
例においては、
【数１０６】
2019032820.tif 000109
である。
【０１２２】
各組
【数１０７】
2019032820.tif 000110
について、
【数１０８】
2019032820.tif 000111
は、クラス
【数１０９】
2019032820.tif 000112
をパラメータ化する際に用いられるパラメータ
【数１１０】
2019032820.tif 000113
の範囲である。スタイルパラメータの範囲は、常に有限集合であってもよい。寸法パラメータの範囲は、有限集合または数の区間とすることができる。
【０１２３】
例えば、
【数１１１】
2019032820.tif 000114
は、エンドテーブルの長さが８０センチより長く１２０センチより短いことを意味する。スタイルパラメータは
【数１１２】
2019032820.tif 000115
である。寸法パラメータは
【数１１３】
2019032820.tif 000116
である。テクスチャパラメータは
【数１１４】
2019032820.tif 000117
である。
トラバースされるパラメータとランダムなパラメータの比較例
【０１２４】
パラメータのトラバースされる／ランダムな状態は、訓練パターンデータセットの設計者によって設定される。定義により、設計テーブルを構築する際に、トラバースされるパラメータのすべての可能な組み合わせが生成される。対照的に、設計テーブル内のランダムなパラメータを設定するには、所定数の値がランダムに選択される。
【０１２５】
原理は、３Ｄオブジェクトの形状に大きく寄与するパラメータは、トラバースされるパラメータであるべきで、形状にそれほど寄与しないパラメータは、ランダムなパラメータであるべきである、というものであってもよい。典型的には、スタイルパラメータはトラバースされるパラメータであり、寸法パラメータはランダムなパラメータである。なお、数値区間の範囲
【数１１５】
2019032820.tif 000118
を有するパラメータをトラバースすることは、それをサンプリングすることを暗に意味する。なぜなら、それは値の無限集合だからである。そのような場合、範囲を完全にトラバースすることはできない。
【０１２６】
説明した実施例では、トラバースされるスタイルパラメータとランダムな寸法パラメータが検討されているが、ランダムなスタイルパラメータとトラバースされる寸法パラメータとすることも可能である。テクスチャパラメータは、ユーザの選択に応じて、トラバースされることも、ランダムとすることも可能である。
【０１２７】
制約の例
パラメータの依存関係は、例えば、２つの種類の制約、すなわち、比例制約と条件／動作制約を用いて捉えてもよい。比例は、数値パラメータの値が別の数値パラメータの値に比例することを示す。例えば、
【数１１６】
2019032820.tif 000119
は、典型的な比例制約である。これは、
【数１１７】
2019032820.tif 000120
の値が設定された後で
【数１１８】
2019032820.tif 000121
の値が設定されるという意味で方向性を有する。
【０１２８】
条件／動作制約では、条件にはパラメータのリストとそれらの値が関与する。制約の条件に関与するパラメータは、「条件パラメータ」と呼ばれる。制約の動作に関与するパラメータは、「動作パラメータ」と呼ばれる。制約によってアクティブ化される動作とは、条件パラメータの値に従って動作パラメータの範囲を定義することである。例えば、典型的な条件／動作制約は以下のとおりである。
【数１１９】
2019032820.tif 000122
【０１２９】
これは、中央に脚を備えたテーブルは、長過ぎてはならないことを示している。条件パラメータは
【数１２０】
2019032820.tif 000123
である。動作パラメータは
【数１２１】
2019032820.tif 000124
である。
【０１３０】
視覚的には、制約はパラメータの依存関係を形成する可能性があるが、ユーザが循環的な依存関係を避ける必要があってもよい。前述のように、訓練パターンの集合は、トラバースされるパラメータの観点からは、網羅的である。逆に、ランダムなパラメータの観点からは、ランダムにサンプリングされている。このため、条件パラメータとして、ランダムなパラメータが関与する制約は、動作パラメータとして、トラバースされるパラメータを含まない可能性がある。設計テーブルの生成は、この制限の恩恵を受ける場合があるが、これについては後述する。
【０１３１】
説明した実施例の文脈では、優先日においてアクセス可能であった以下のＵＲＬに記載されているように、制約はｐｒｏｔｏｂｕｆｆ言語を用いて表す：ｈｔｔｐｓ：／／ｄｅｖｅｌｏｐｅｒｓ．ｇｏｏｇｌｅ．ｃｏｍ／ｐｒｏｔｏｃｏｌ−ｂｕｆｆｅｒｓ／。
【０１３２】
設計テーブルの例
設計テーブルの概念は、ＣＡＤの業界では非常に一般的である。これは、本工程によって有利に再使用され得る。パラメータのリスト
【数１２２】
2019032820.tif 000125
が与えられ、「パラメータの範囲」である集合のリスト
【数１２３】
2019032820.tif 000126
が与えられ、いわゆる構成の数
【数１２４】
2019032820.tif 000127
が与えられると、設計テーブルは、「構成」と呼ばれる
【数１２５】
2019032820.tif 000128
個の行と、「パラメータ」と呼ばれる
【数１２６】
2019032820.tif 000129
個の列を特徴とすることになる。これは
【数１２７】
2019032820.tif 000130
と表され、ここで
【数１２８】
2019032820.tif 000131
は、範囲
【数１２９】
2019032820.tif 000132
の要素である。構成は、各パラメータの特定の値を指定する、設計テーブルの行である。設計テーブルの目的は、所与のオブジェクトの
【数１３０】
2019032820.tif 000133
個のバリエーションをコンパクトな構造で収集することである。設計テーブルの存在意義は、設計テーブルのパラメータがＣＡＤモデルのものであるかのように、パラメータ化された３ＤＣＡＤモデルと組み合わされることである。このように、各構成は３Ｄオブジェクトの、あるバージョンを表す可能性がある。
【０１３３】
例えば、ダイニングテーブルの
【数１３１】
2019032820.tif 000134
個の構成を有する設計テーブルには、表ＩＩに示すように、それぞれが範囲
【数１３２】
2019032820.tif 000135
および
【数１３３】
2019032820.tif 000136
に関連付けられた
【数１３４】
2019032820.tif 000137
個のパラメータ
【数１３５】
2019032820.tif 000138
が関与する。
【表２】
2019032820.tif 000139
表ＩＩ−「ダイニングテーブル」クラスの構成
【０１３４】
図１２は３Ｄオブジェクトの各構成を示す。
【０１３５】
順序付けパラメータと制約の例
制約はパラメータの依存関係を形成するため、設計テーブルを構築する際に、適切な順序に従って、パラメータを設定し制約をアクティブ化してもよい。この順序は、有向非循環グラフ（ＤＡＧ）のトポロジー的順序付けアルゴリズムをカスタマイズすることによって算出してもよい。
【数１３６】
2019032820.tif 000140
を制約の集合とし、各制約
【数１３７】
2019032820.tif 000141
について、制約
【数１３８】
2019032820.tif 000142
の条件パラメータの集合を
【数１３９】
2019032820.tif 000143
と表し、制約
【数１４０】
2019032820.tif 000144
の動作パラメータの集合を
【数１４１】
2019032820.tif 000145
と表す。順序は、パラメータおよび制約の依存関係を捉える有向グラフ
【数１４２】
2019032820.tif 000146
を用いて算出される。このグラフは以下のように定義される。ノード
【数１４３】
2019032820.tif 000147
は制約、条件パラメータ、および動作パラメータである。式にすると、
【数１４４】
2019032820.tif 000148
となる。
【０１３６】
弧は、条件パラメータから制約へ、および制約から動作パラメータへと方向づけられている。式にすると、すべての制約
【数１４５】
2019032820.tif 000149
および各パラメータ
【数１４６】
2019032820.tif 000150
について、
【数１４７】
2019032820.tif 000151
で始まり
【数１４８】
2019032820.tif 000152
で終わる弧
【数１４９】
2019032820.tif 000153
が存在し、これは
【数１５０】
2019032820.tif 000154
および
【数１５１】
2019032820.tif 000155
を意味する。同様に、各パラメータ
【数１５２】
2019032820.tif 000156
について、
【数１５３】
2019032820.tif 000157
で始まり、
【数１５４】
2019032820.tif 000158
で終わる弧
【数１５５】
2019032820.tif 000159
が存在し、これは
【数１５６】
2019032820.tif 000160
および
【数１５７】
2019032820.tif 000161
を意味する。定義により、ノード
【数１５８】
2019032820.tif 000162
の入力弧（または出力弧）は
【数１５９】
2019032820.tif 000163
で終わる（または始まる）弧
【数１６０】
2019032820.tif 000164
であり、すなわち、
【数１６１】
2019032820.tif 000165
または（
【数１６２】
2019032820.tif 000166
）である。ルートノード
【数１６３】
2019032820.tif 000167
は入力弧を有さず、すなわち、
【数１６４】
2019032820.tif 000168
であり、または同様に、
【数１６５】
2019032820.tif 000169
である。定義により、ノード
【数１６６】
2019032820.tif 000170
の出力ノード
【数１６７】
2019032820.tif 000171
は、ノード
【数１６８】
2019032820.tif 000172
の出力弧の終了ノードである。ノード
【数１６９】
2019032820.tif 000173
の出力ノードの集合は
【数１７０】
2019032820.tif 000174
である。グラフ理論によれば、有向非循環グラフには、少なくとも１つのルートノードが存在する。
【０１３７】
例えば、表ＩＩＩに定義するように、制約
【数１７１】
2019032820.tif 000175
【数１７２】
2019032820.tif 000176
および
【数１７３】
2019032820.tif 000177
、トラバースされるパラメータ
【数１７４】
2019032820.tif 000178
【数１７５】
2019032820.tif 000179
および
【数１７６】
2019032820.tif 000180
、ランダムなパラメータ
【数１７７】
2019032820.tif 000181
【数１７８】
2019032820.tif 000182
および
【数１７９】
2019032820.tif 000183
、および依存関係を検討する。
【表３】
2019032820.tif 000184
表ＩＩＩ−パラメータの依存関係
【０１３８】
対応するグラフが図１３に示されている。
【０１３９】
順序付けアルゴリズムの原理は、除去シーケンスを記録しながら、グラフのルートノードを反復的に（および実質的に）除去することであってもよい。この目的のために、各ノード
【数１８０】
2019032820.tif 000185
は、その入力弧の現在の数を表し、入力弧の初期数で初期化された整数
【数１８１】
2019032820.tif 000186
に関連付けられる。すなわち、
【数１８２】
2019032820.tif 000187
である。このように、ルートノード
【数１８３】
2019032820.tif 000188
は、
【数１８４】
2019032820.tif 000189
となるようなノードである。アルゴリズムの出力は、マッピング
【数１８５】
2019032820.tif 000190
であってもよく、これは、シーケンスにおける
【数１８６】
2019032820.tif 000191
番目のノードが
【数１８７】
2019032820.tif 000192
であることを述べている。アルゴリズムは、
【数１８８】
2019032820.tif 000193
によって定義される現在のルートノードの集合を利用してもよい。
【数１８９】
2019032820.tif 000194
【０１４０】
命令０３は、除去するべき適切な現在のルートノードを選択する。選択は、次の優先順位に従って行われる。すなわち、まず、トラバースされるパラメータを選択する。トラバースされるパラメータがない場合は、制約を選択し、そうでない場合はランダムなパラメータを選択する。
【０１４１】
なお、このアルゴリズムは、パラメータと制約とを区別しない。これはパラメータ値を設定し制約をアクティブ化するための順序を提供する。
【０１４２】
例における
【数１９０】
2019032820.tif 000195
および
【数１９１】
2019032820.tif 000196
の最初のデータ構造は、以下の通りであってもよい。ルートノードは、最初の
【数１９２】
2019032820.tif 000197
の集合が
【数１９３】
2019032820.tif 000198
であってテーブル
【数１９４】
2019032820.tif 000199
が設定されていないような
【数１９５】
2019032820.tif 000200
および
【数１９６】
2019032820.tif 000201
である。
【０１４３】
これは図１４に示されている。
【０１４４】
アルゴリズムのｗｈｉｌｅループにおけるデータ構造の連続的な状態が図１５に示されている。
【０１４５】
なお、ステップ４は、好ましくは、ランダムなパラメータのルートノード
【数１９７】
2019032820.tif 000202
に対して、制約のルートノード
【数１９８】
2019032820.tif 000203
を選択する。同様に、ステップ５は、好ましくは、ランダムなパラメータのルートノード
【数１９９】
2019032820.tif 000204
または
【数２００】
2019032820.tif 000205
に対して、トラバースされるパラメータのルートノード
【数２０１】
2019032820.tif 000206
を選択する。これは図１６に示されている。
【０１４６】
ステップ６の後、すべてのトラバースされるパラメータが順序付けに挿入され得る。最後のステップが、全体の順序付けを完了する。すなわち
【数２０２】
2019032820.tif 000207
となる。
【０１４７】
式にすると、図１７に示すように、テーブル
【数２０３】
2019032820.tif 000208
において
【数２０４】
2019032820.tif 000209
【数２０５】
2019032820.tif 000210
【数２０６】
2019032820.tif 000211
そして
【数２０７】
2019032820.tif 000212
まで捉えられる。
【０１４８】
後に、設計テーブルを作成する際には、この順序付けは次のように解釈されてもよい。
【０１４９】
１．パラメータ
【数２０８】
2019032820.tif 000213
を設定する。
【０１５０】
２．パラメータ
【数２０９】
2019032820.tif 000214
を設定する。
【０１５１】
３．制約
【数２１０】
2019032820.tif 000215
をアクティブ化する。これはパラメータ
【数２１１】
2019032820.tif 000216
および
【数２１２】
2019032820.tif 000217
のそれぞれの範囲を定義する制約である。
【０１５２】
４．制約
【数２１３】
2019032820.tif 000218
をアクティブ化する。これはパラメータ
【数２１４】
2019032820.tif 000219
および
【数２１５】
2019032820.tif 000220
のそれぞれの範囲を定義する制約である。
【０１５３】
５．パラメータ
【数２１６】
2019032820.tif 000221
を設定する。
【０１５４】
６．パラメータ
【数２１７】
2019032820.tif 000222
を設定する。
【０１５５】
７．パラメータ
【数２１８】
2019032820.tif 000223
を設定する。
【０１５６】
８．制約
【数２１９】
2019032820.tif 000224
をアクティブ化する。これはパラメータ
【数２２０】
2019032820.tif 000225
の範囲を定義する制約である。
【０１５７】
９．パラメータ
【数２２１】
2019032820.tif 000226
を設定する。
予想されるように、各パラメータは、その範囲が更新された後に設定され、各制約は、そのすべての条件パラメータが設定された後にアクティブ化される。また、さらに、制約の仕様とルートノード選択の優先順位により、順序付けには、ステップ１からステップ５において、最も左のサブシーケンス
【数２２２】
2019032820.tif 000227
内のすべてのトラバースされるパラメータが関与する。残りの最も右のサブシーケンス
【数２２３】
2019032820.tif 000228
には、すべてのランダムなパラ―メータが関与する。
【０１５８】
しかしながら、パラメータ
【数２２４】
2019032820.tif 000229
の範囲は、ステップ３で初めて設定され、ステップ４で再定義されることに留意されたい。パラメータ
【数２２５】
2019032820.tif 000230
の値は、ステップ４において制約
【数２２６】
2019032820.tif 000231
によって設定された範囲に従ってステップ５で設定される。明らかなように、最初の構造
【数２２７】
2019032820.tif 000232
における制約の順序は、パラメータの出力値に影響を与える。実際、図１８に示すように、制約
【数２２８】
2019032820.tif 000233
が制約
【数２２９】
2019032820.tif 000234
の前にあるテーブル
【数２３０】
2019032820.tif 000235
を考える。
【０１５９】
このような状況において、結果として得られるシーケンスは
【数２３１】
2019032820.tif 000236
であり、これはパラメータ
【数２３２】
2019032820.tif 000237
が、ステップ５において、ステップ４において制約
【数２３３】
2019032820.tif 000238
により定義された範囲に従って設定されることを意味する。この現象は不可避であり、ユーザは順序付けアルゴリズムが予期されるシーケンスを生成するように、テーブル
【数２３４】
2019032820.tif 000239
を編成しなければならない。
設計テーブル生成の例
【０１６０】
設計テーブルの生成は、訓練の実行後における、訓練パターンの多様性を決定し、よって、ニューラルネットワークの効率を決定する。アルゴリズムは、オブジェクトの各クラスについて、１つの設計テーブルを生成する。これは、トラバースされるパラメータ値の、取り得るすべての組み合わせをカバーするために構築されている。対照的に、ランダムなパラメータを設定するためには、ランダムな値が選択される。入力は、パラメータ／クラステーブル、制約、および順序付けられたシーケンス
【数２３５】
2019032820.tif 000240
である。アルゴリズム全体は、以下のようであってもよい。
【数２３６】
2019032820.tif 000241
【０１６１】
クラス
【数２３７】
2019032820.tif 000242
が与えられるとき、設計テーブル生成アルゴリズムは、すべてのトラバースされるパラメータの値の網羅的なトラバーサルに基づいていてもよい。設計テーブルは、トラバースされるパラメータ値の各組み合わせについて
【数２３８】
2019032820.tif 000243
個の構成で充実され、トラバースされるパラメータ値は当該組み合わせを用いて設定される。次いで、設計テーブルのランダムなパラメータが、それぞれの範囲内でランダムな値を選択することによって設定される。以下において、整数
【数２３９】
2019032820.tif 000244
は、図１９に示すように、順序付けにおいて最も右のトラバースされるパラメータの位置である
【０１６２】
アルゴリズムは、図２０に示すように、深さ優先ツリーのトラバーサルのように構成されてもよい。
【０１６３】
図１９における「設計テーブルを初期化」のステップでは、各パラメータについて、０ライン１列の設計テーブル
【数２４０】
2019032820.tif 000245
を作成する。便宜上、列はパラメータ名でインデックス付けされている。
【数２４１】
2019032820.tif 000246
という表現は、設計テーブル
【数２４２】
2019032820.tif 000247
のライン数を表し、
【数２４３】
2019032820.tif 000248
が、構成数
【数２４４】
2019032820.tif 000249
におけるパラメータ
【数２４５】
2019032820.tif 000250
の値となる。
【０１６４】
図１９における「設計テーブルを充実」のステップは、トラバースされるパラメータの組に新しい値が設定される度に起動されてもよい。これは以下のようであってもよい。
【数２４６】
2019032820.tif 000251
【０１６５】
次いで、順序付け、制約のアクティブ化、およびランダムサンプリングに従ってランダムなパラメータを設定してもよい。なお、
【数２４７】
2019032820.tif 000252
は、順序付けシーケンスにおける記号の数である。
【数２４８】
2019032820.tif 000253
【０１６６】
命令
【数２４９】
2019032820.tif 000254
は、パラメータ
【数２５０】
2019032820.tif 000255
の範囲
【数２５１】
2019032820.tif 000256
内の値をランダムに選択する。
【０１６７】
ここで、例を用いてアルゴリズムを説明する。最初の空の設計テーブルは図２１に示すようなものであってもよい。ランダムな構成の数は
【数２５２】
2019032820.tif 000257
個であってもよい。
【表４】
2019032820.tif 000258
表ＩＶ−設計テーブル
【０１６８】
トラバースされるパラメータの範囲は、それぞれ、
【数２５３】
2019032820.tif 000259
【数２５４】
2019032820.tif 000260
および
【数２５５】
2019032820.tif 000261
である。さらには、制約
【数２５６】
2019032820.tif 000262
は、
【数２５７】
2019032820.tif 000263
の場合
【数２５８】
2019032820.tif 000264
となることを示している。制約
【数２５９】
2019032820.tif 000265
については後で詳述する。制約
【数２６０】
2019032820.tif 000266
については説明不要である。順序付け
【数２６１】
2019032820.tif 000267
を用いることにより、トラバースされる（実質的な）ツリーは、次のようなものであってもよい。１０個の葉ノードを特徴とし、それぞれが制約に準拠するトラバースされるパラメータの値の組み合わせを定義する。
【０１６９】
これは図２１に示されている。
【０１７０】
一番左の葉ノードがアクセスされると、３つの構成が作成されてもよく、ツリーの一番左の枝に従って、トラバースされるパラメータ
【数２６２】
2019032820.tif 000268
が設定され、ランダムなパラメータ
【数２６３】
2019032820.tif 000269
はまだ設定されない。
【表５】
2019032820.tif 000270
表ＩＶ−設計テーブル
【０１７１】
ランダムなパラメータの範囲は
【数２６４】
2019032820.tif 000271
【数２６５】
2019032820.tif 000272
および
【数２６６】
2019032820.tif 000273
である。制約
【数２６７】
2019032820.tif 000274
は、
【数２６８】
2019032820.tif 000275
の場合
【数２６９】
2019032820.tif 000276
であることを示している。
【０１７２】
設計テーブルは、サブシーケンス
【数２７０】
2019032820.tif 000277
に従ってランダムに選択されたランダムパラメータを用いて完成させてもよい。例えば、設計テーブルの第１の構成は、以下によって得てもよい。
【０１７３】
１．
【数２７１】
2019032820.tif 000278
【０１７４】
２．
【数２７２】
2019032820.tif 000279
【０１７５】
３．制約
【数２７３】
2019032820.tif 000280
をアクティブ化する。これは、
【数２７４】
2019032820.tif 000281
を設定する。なぜなら
【数２７５】
2019032820.tif 000282
だからである。
【０１７６】
４．
【数２７６】
2019032820.tif 000283
よって、
【表６】
2019032820.tif 000284
表Ｖ−設計テーブル
【０１７７】
同じ工程を各構成に繰り返すことにより以下の設計テーブルが得られる。
【表７】
2019032820.tif 000285
表ＶＩ−設計テーブル
【０１７８】
ここで、図２２に示すように、次の葉ノードにアクセスする。
【０１７９】
３つの新たな構成が設計テーブルに追加されてもよく、トラバースされるパラメータがアクセスされた枝に応じて設定されてもよい。
【表８】
2019032820.tif 000286
表ＶＩＩ−設計テーブル
【０１８０】
ランダムなパラメータは、順序に従って、適切な範囲内の値をランダムに選択することによって設定してもよい。
【表９】
2019032820.tif 000287
表ＶＩＩＩ−設計テーブル
【０１８１】
この工程は、１０番目の葉ノードがアクセスされるまで続いてもよい。結果として生成される設計テーブルは、３０個の構成を含む。
【０１８２】
テンプレート３ＤＣＡＤモデルの例
テンプレート３ＤＣＡＤモデルは、寸法、パラメータ、公式、および制約を有する立体を含むパラメータ化された３Ｄモデルである。パラメータの名前は、パラメータ／クラステーブルの名前である。テンプレートモデルは、熟練したユーザによって、パラメータに適切な値を設定することにより任意のクラスの任意のオブジェクトの３Ｄジオメトリを作成できるように設計される。論理的には、このテンプレートモデルの名前はルートクラス名である。ダッソー・システムズのＣＡＴＩＡ（登録商標）システムが、この機能を提供する。
【０１８３】
３Ｄモデル、画像、および訓練パターン
設計テーブルをテンプレートモデルに挿入することにより、３Ｄモデルの作成が自動化される。実際には、挿入された設計テーブルの行を選択するとアクティブな構成となり、テンプレートモデルのパラメータが構成の値で設定される。ジオメトリを更新することにより、３Ｄオブジェクトの形状が算出される。ダッソー・システムズのＣＡＴＩＡ（登録商標）システムが、この機能を提供する。
【数２７７】
2019032820.tif 000288
【０１８４】
図２３〜図２６は、パラメトリックモデルの定義付けの一例を説明するための図である。
【０１８５】
ソファの上位クラスは、カウチのサブクラスを含んでいてもよい。
【０１８６】
カウチのクラスを定義することは、６つの値の範囲、すなわち、「ｎｏ」、「ｒｉｇｈｔ」、「ｌｅｆｔ」、「ｒｉｇｈｔ＋」、「ｌｅｆｔ＋」、および「ｄｏｕｂｌｅ」を有し得る「ａｎｇｌｅ＿ｓｏｆａ」スタイルパラメータを定義することを含んでいてもよい。これらの値は図２３に示されている。スタイルパラメータ「ａｒｍｒｅｓｔ」は、さらに、アームレストの数を提供する異なる値で定義されていてもよく、その範囲は、例えば、｛０；１；２；３｝である。これらの値は図２４に示されている。スタイルパラメータ「ｂａｓｅ」は、さらにベースの種類を提供してもよく、その範囲は、例えば、４つの値、すなわち、「ｎｏｎｅ」、「ａｒｍｒｅｓｔｓ」、「ｒｏｕｎｄ」、および「ｓｑｕａｒｅ」を有する。これらの値の範囲は図２５に示されている。カウチクラスは、さらに、寸法パラメータを含んでいてもよい。図２６は、寸法パラメータの値が異なる、異なるインスタンスを示している。カウチクラスは、さらに、異なる部材について材料のリストの例を提供するテクスチャパラメータを含んでいてもよい。すべてのパラメータおよびその範囲が宣言されると、パラメータモデルを定義することは、パラメータ値を入力として３Ｄモデル化オブジェクトを生成する関数を定義することを含んでいてもよい。このような関数を定義する手法は、上で定義したパラメータに鑑みると、容易である。工程は、オプションとして、パラメータ間に制約を定義することを含んでいてもよい。
【０１８７】
他の家具クラスも同様の手法で定義してもよい。表ＩＸは、異なる家具クラスについてパラメータを提供し、これにより、これらのクラスについて効率的に多様なデータセットを作成することが可能になる。スタイルパラメータは、トラバースされるようにラベル付けされてもよい。寸法およびテクスチャパラメータはランダム化（例えばランダム化されるようにラベル付け）されていてもよい。
【表１０】
2019032820.tif 000289
【表１１】
2019032820.tif 000290
表ＩＸ−異なる家具クラスのパラメータ
【図１】
2019032820.tif 000291
【図２】
2019032820.tif 000292
【図３】
2019032820.tif 000293
【図４】
2019032820.tif 000294
【図５】
2019032820.tif 000295
【図６】
2019032820.tif 000296
【図７】
2019032820.tif 000297
【図８】
2019032820.tif 000298
【図９】
2019032820.tif 000299
【図１０】
2019032820.tif 000300
【図１１】
2019032820.tif 000301
【図１２】
2019032820.tif 000302
【図１３】
2019032820.tif 000303
【図１４】
2019032820.tif 000304
【図１５】
2019032820.tif 000305
【図１６】
2019032820.tif 000306
【図１７】
2019032820.tif 000307
【図１８】
2019032820.tif 000308
【図１９】
2019032820.tif 000309
【図２０】
2019032820.tif 000310
【図２１】
2019032820.tif 000311
【図２２】
2019032820.tif 000312
【図２３】
2019032820.tif 000313
【図２４】
2019032820.tif 000314
【図２５】
2019032820.tif 000315
【図２６】
2019032820.tif 000316
【外国語明細書】
2019032820.tif 000317
2019032820.tif 000318
2019032820.tif 000319
2019032820.tif 000320
2019032820.tif 000321
2019032820.tif 000322
2019032820.tif 000323
2019032820.tif 000324
2019032820.tif 000325
2019032820.tif 000326
2019032820.tif 000327
2019032820.tif 000328
2019032820.tif 000329
2019032820.tif 000330
2019032820.tif 000331
2019032820.tif 000332
2019032820.tif 000333
2019032820.tif 000334
2019032820.tif 000335
2019032820.tif 000336
2019032820.tif 000337
2019032820.tif 000338
2019032820.tif 000339
2019032820.tif 000340
2019032820.tif 000341
2019032820.tif 000342
2019032820.tif 000343
2019032820.tif 000344
2019032820.tif 000345
2019032820.tif 000346
2019032820.tif 000347
2019032820.tif 000348
2019032820.tif 000349
2019032820.tif 000350
2019032820.tif 000351
2019032820.tif 000352
2019032820.tif 000353
2019032820.tif 000354
2019032820.tif 000355
2019032820.tif 000356
2019032820.tif 000357
2019032820.tif 000358
【図１】
2019032820.tif 000359
【図２】
2019032820.tif 000360
【図３】
2019032820.tif 000361
【図４】
2019032820.tif 000362
【図５】
2019032820.tif 000363
【図６】
2019032820.tif 000364
【図７】
2019032820.tif 000365
【図８】
2019032820.tif 000366
【図９】
2019032820.tif 000367
【図１０】
2019032820.tif 000368
【図１１】
2019032820.tif 000369
【図１２】
2019032820.tif 000370
【図１３】
2019032820.tif 000371
【図１４】
2019032820.tif 000372
【図１５】
2019032820.tif 000373
【図１６】
2019032820.tif 000374
【図１７】
2019032820.tif 000375
【図１８】
2019032820.tif 000376
【図１９】
2019032820.tif 000377
【図２０】
2019032820.tif 000378
【図２１】
2019032820.tif 000379
【図２２】
2019032820.tif 000380
【図２３】
2019032820.tif 000381
【図２４】
2019032820.tif 000382
【図２５】
2019032820.tif 000383
【図２６】
2019032820.tif 000384