Nothing Special   »   [go: up one dir, main page]

JP7343963B2 - 画像を入力とする関数を学習するためのデータセット - Google Patents

画像を入力とする関数を学習するためのデータセット Download PDF

Info

Publication number
JP7343963B2
JP7343963B2 JP2018114621A JP2018114621A JP7343963B2 JP 7343963 B2 JP7343963 B2 JP 7343963B2 JP 2018114621 A JP2018114621 A JP 2018114621A JP 2018114621 A JP2018114621 A JP 2018114621A JP 7343963 B2 JP7343963 B2 JP 7343963B2
Authority
JP
Japan
Prior art keywords
parameters
parameter
class
ranges
range
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018114621A
Other languages
English (en)
Other versions
JP2019032820A (ja
Inventor
パンチアチチ ジャニン
プンボリオス マリア
クロー ジョナサン
フォーカッド ティボー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dassault Systemes SE
Original Assignee
Dassault Systemes SE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dassault Systemes SE filed Critical Dassault Systemes SE
Publication of JP2019032820A publication Critical patent/JP2019032820A/ja
Priority to JP2023020145A priority Critical patent/JP2023071722A/ja
Application granted granted Critical
Publication of JP7343963B2 publication Critical patent/JP7343963B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/28Determining representative reference patterns, e.g. by averaging or distorting; Generating dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects

Landscapes

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

Description

本発明は、コンピュータプログラムおよびシステムの分野に関し、より具体的には、関数を学習するように構成されたデータセットを形成することに関連する方法、システム、およびプログラムに関し、当該関数は、現実の物体の1つまたは複数のクラスのインスタンスの画像を入力とする。
オブジェクトの設計、エンジニアリング、製造のため、多数のシステムおよびプログラムが市場に提供されている。CADは、コンピュータ支援設計(Computer-Aided Design)の略語であり、例えば、オブジェクトを設計するためのソフトウェア・ソリューションに関する。CAEは、コンピュータ支援エンジニアリング(Computer-Aided Engineering)の略語であり、例えば、将来の製品の物理的挙動をシミュレーションするためのソフトウェア・ソリューションに関する。CAMは、コンピュータ支援製造(Computer-Aided Manufacturing)の略語であり、例えば、製造工程および動作を定義するためのソフトウェア・ソリューションに関する。このようなコンピュータ支援設計システムにおいて、グラフィカル・ユーザ・インターフェースは、技術の効率に関して、重要な役割を果たす。これらの技術は、製品ライフサイクル管理(Product Lifecycle Management:PLM)システムに組み込むことができる。PLMとは、企業が、拡張エンタープライズの概念全体にわたって、製品データを共有し、共通の工程を適用し、構想に始まり製品寿命の終わりに至る製品開発のための企業知識を活用するのを支援するビジネス戦略を指す。ダッソー・システムズが提供するPLMソリューション(製品名CATIA、ENOVIA、DELMIA)は、製品エンジニアリング知識を体系化するエンジニアリング・ハブ、製造エンジニアリング知識を管理する製造ハブ、およびエンジニアリング・ハブと製造ハブの両方に対するエンタープライズ統合と接続を可能にするエンタープライズ・ハブを提供する。全てのシステムは、製品、工程、リソースを結ぶオープンなオブジェクトモデルを提供し、最適化された製品定義、製造準備、生産およびサービスを推進する、動的な知識ベースの製品作成および意思決定支援を可能にする。
こうした文脈において、画像を入力とする関数の機械学習がますます重要になっている。
例えば、2次元(2D)の画像から3次元(3D)の物体を認識するように設計された人工ニューラルネットワーク(より簡単には「ニューラルネットワーク」とも呼ばれる)が開発されている。他の機械学習関数同様、そのような人工ニューラルネットワークは、使用前に訓練しなければならない。訓練は、「訓練/学習データセット」、より簡単には「データセット」とも呼ばれる訓練パターンのサンプルを用いて実行される。
ニューラルネットワークは、二つの特徴により定義される。すなわち、トポロジーと重みである。トポロジーは、接続された演算ユニットのシステムである。各演算ユニットは、その入力数値データの重み付けされた組み合わせを出力し、その結果を、方向づけられた接続に応じて、隣接する演算ユニットに送る。データは、最初のデータが供給された最初のユニット群から端末のユニット群まで流れ、これにより出力数値結果が得られる。数値の組み合わせは、重みと呼ばれるこれらの数値係数を用いて行われる。最初は、重みの値は不明であり、ニューラルネットワークの目的(例えば、2Dの画像から3Dの物体を認識すること)に応じて、調整する必要がある。この調整ステップは、訓練または学習と呼ばれる。ニューラルネットワークを訓練するために、訓練パターンのデータセットが用いられる。訓練パターンは、整合性のある入力データと出力データの対である。この情報を用いて、専用アルゴリズムが重み値を算出することができる。
訓練工程のボトルネックは、訓練パターンの適切なデータセットである。ニューラルネットワークが堅牢で正確となるように、多数の緻密なデータセットであるかもしれない。
既存の解決策では、訓練パターンのデータセットは、一般に、ユーザが画像を見て、どの物体が画像上にあるかを認識することに関与して準備される。このような方法でImageNet(これは、優先日において以下のURLでアクセス可能な2D画像のデータセットである:www.image-net.org)、ShapeNet(これは、優先日において以下のURLでアクセス可能な3Dモデル化オブジェクトのデータセットである:www.shapenet.org)、およびObjectNet3D(以下の論文に記載:Yu Xiang,Wonhui Kim,Wei Chen,Jingwei Ji,Christopher Choy,Hao Su,Roozbeh Mottaghi,Leonidas Guibas,and Silvio Savarese,ObjectNet3D:A Large Scale Database for 3D Object Recognition,Stanford University)などのデータセットが構築された。
この文脈において、画像を入力として関数を学習するように構成されたデータセットを形成するための改善された解決策が依然として必要とされている。
したがって、データセットを形成するための、コンピュータにより実施される方法が提供される。データセットは、関数を学習するように構成されている。関数は、現実の物体の1つまたは複数のクラスのインスタンスの画像を入力とする。本方法は、各クラスについて、当該クラスのパラメトリックモデルを提供することと、パラメトリックモデルを用いて複数の3Dモデル化オブジェクトを生成することと、前記複数の3Dモデル化オブジェクトのそれぞれについて、1つまたは複数の対応する画像を前記データセットに追加することとを含む。前記パラメトリックモデルは、各パラメータの集合についての範囲の集合を含む。前記パラメトリックモデルは、前記範囲の集合内に提供される各値の集合により各3Dモデル化オブジェクトを生成するように構成される。前記生成された3Dモデル化オブジェクトは、クラスの各インスタンスを表す。前記生成することは、前記範囲の集合のうちの1つまたは複数をトラバースすることを含む。
このような方法は、現実の物体の1つまたは複数のクラスのインスタンスの画像を入力とする関数を学習するように構成されたデータセットを、改善された手法で形成することを可能にする。
特に、各クラスについて当該クラスのパラメトリックモデルが提供されると、本方法は、そのようなクラスごとに、当該クラスの各インスタンスにそれぞれ対応する複数のオブジェクトを容易に生成して、データセットにデータを取り込むことができる。本方法は、これによりデータセットを比較的短時間で容易に合成することができ、人間の間違いを避け、それにより緻密なデータセット、効率的な学習、および正確に学習した関数を得ることができる。さらに、パラメトリックモデルの使用により、パラメータ範囲に任意の値を提供することを考慮することが可能になり、それにより、本方法は、任意の多様なデータをデータセットに取り込むことが可能になる。特に、本方法は、前記生成において、前記範囲の集合のうちの1つまたは複数をトラバースすることを含む。これにより、本方法によって形成されたデータセットは、少なくとも、前記トラバースされる範囲に対応するパラメータに関して、比較的多様で網羅的である。これによっても、学習の効率および学習された関数の精度が向上する。ここで、各クラスのパラメトリックモデルが、特に、3Dモデル化オブジェクトであるオブジェクトを生成するように構成されているため、3Dモデル化オブジェクト表現自体が現実の物体の比較的詳細かつ網羅的な表現であり、そのため、本方法により、クラスのインスタンスを比較的正確に表す画像のデータセットを追加することが可能になる。これによっても、学習の効率および学習された関数の精度が向上する。
例において、本方法は、以下のうちの1つまたは複数を含んでいてもよい。
・前記追加は、前記複数の3Dモデル化オブジェクトのそれぞれについて、前記3Dモデル化オブジェクトに基づいて前記1つまたは複数の対応する画像を決定することを含む。
・前記複数の3Dモデル化オブジェクトのそれぞれについて、前記追加された対応する画像は、各3Dモデル化オブジェクト自体から得られた1つまたは複数の2D画像および/または3Dモデル化オブジェクトを含むか、またはそれらからなる。
・追加された各2D画像は、各3Dモデル化オブジェクトからそれぞれの2Dビュー、例えば各3Dモデル化オブジェクトの2D描画を抽出することによって決定される。
・前記各3Dモデル化オブジェクト自体から得られた3Dモデル化オブジェクトは、各3Dモデル化オブジェクトそれ自体、または各3Dモデル化オブジェクトから得られた3Dモデル化オブジェクトである。
・前記抽出は完全に自動的に行われる。
・前記関数は、始域(または入力集合)と終域(または出力集合)とを有し、本方法は、訓練パターンをデータセットに追加することを含み、各訓練パターンは、前記始域の要素および前記終域の要素を含み、前記画像の追加は、前記訓練パターンの追加に含まれ、追加された各画像は、追加された各訓練パターンの要素である。
・前記訓練パターンの追加は、各訓練パターンについて、当該訓練パターンの要素を形成し、当該訓練パターンの要素を互いにリンク付けすることを含む。
・前記訓練パターンの要素のリンク付けは、完全に自動的に実行され、かつ/または人間の手作業による認識を排除する。本方法は、従来の方法に比べて短時間で容易に実行できるだけでなく、人間の認識に関連する間違いを回避することができ、それにより比較的高い精度を有するデータセットを形成することができ、またそれにより、当該データセットで学習した場合に、比較的、正確な関数をもたらし得る。
・各訓練パターンは、前記関数の始域に対応し、追加された画像である、第1の要素と、前記関数の終域に対応し、前記追加された画像に対応する3Dモデル化オブジェクトによって表されるインスタンスに関する情報を提供する別のデータである第2の要素とを含む。
・各訓練パターンの前記第2の要素は、1つまたは複数の他の画像(例えば追加された画像自体に対応する3Dモデル化オブジェクト)および/または、追加された画像に対応する3Dモデル化オブジェクトによって表されるインスタンスのクラスを示す情報(例えばクラスの名前および/またはクラスのラベルを提供するテキスト)など、追加された画像に対応する3Dモデル化オブジェクトによって表されるインスタンスに関する他の種類の情報を含むか、またはそれらからなる。
・各訓練パターンの第1の要素は2D画像であり、第2の要素は、対応する生成された3Dモデル化オブジェクト、および/または、前記対応する生成された3Dモデル化オブジェクトおよび前記2D画像によって表されるインスタンスのクラスを示す情報(例えば、クラスの名前および/またはクラスのラベルを提供するテキスト)である。そのような場合、関数は、入力された2D画像に対応する3Dモデル化オブジェクトを出力するように、および/または入力された2D画像内に表される現実の物体のインスタンスのクラスを認識して出力するように構成される。
・各訓練パターンの第1の要素は、生成された3Dモデル化オブジェクトであり、第2の要素は、3Dモデル化オブジェクトによって表されるインスタンスのクラスを示す情報(例えば、クラスの名前および/またはクラスのラベルを提供するテキスト)である。そのような場合、関数は、入力された3Dモデル化オブジェクト内に表される現実の物体のインスタンスのクラスを認識して出力するように構成される。
・前記パラメータの集合は、1つまたは複数の特性パラメータを含む。
・前記トラバースされる範囲の集合のうちの1つまたは複数は、それぞれ、特性パラメータのものである。
・範囲がトラバースされる前記1つまたは複数の特性パラメータは、スタイルパラメータを含む。
・前記1つまたは複数の特性パラメータは、さらに、1つまたは複数の寸法パラメータを含み、前記生成することは、前記1つまたは複数の寸法パラメータの範囲をサンプリングすることを含む。
・前記生成することは、前記範囲の集合のうち他の1つまたは複数をランダム化することを含む。
・前記ランダム化は、ランダム化されていない範囲の集合のうちの1つまたは複数の集合における値の各組み合わせについて、ランダム化された範囲に対するランダムな値の組み合わせを、クラスについて所定の個数提供することを含む。
・前記パラメトリックモデルは、さらに、それぞれが各パラメータを互いにリンク付けする、1つまたは複数の制約を含む。かつ/あるいは、
・前記生成することは、トラバースされる前記範囲の集合のうちの前記1つまたは複数について優先順位を与える前記パラメータの集合に対して定義され、かつ、前記1つまたは複数の制約に基づく、順序付けにしたがって行われる。
さらには、現実の物体のクラスのパラメトリックモデルを定義する、コンピュータによって実施される方法が提供される。本方法は、パラメータの集合と、各パラメータについての範囲とを定義することを含む。前記定義することは、前記パラメトリックモデルが、前記範囲の集合内に提供される各値の集合により、クラスの各インスタンスを表す各3Dモデル化オブジェクトを生成するように構成されるようなものである。本方法はまた、データセットを形成する際にトラバースされるように1つまたは複数の範囲にラベル付けすることを含む。このような方法により、データセットを形成するための前記方法を適用するために構成され準備されたパラメトリックモデルを定義することが可能になる。
例において、パラメトリックモデルを定義するための前記方法は、以下のうちの1つまたは複数を含んでいてもよい。
・前記パラメータの集合は、1つまたは複数の特性パラメータを含む。
・前記トラバースされる範囲の集合のうちの1つまたは複数は、それぞれ、特性パラメータである。
・範囲がトラバースされる前記1つまたは複数の特性パラメータは、スタイルパラメータを含む。
・前記1つまたは複数の特性パラメータは、さらに、1つまたは複数の寸法パラメータを含む。
・本方法は、さらに、ランダム化された範囲に対して、ランダムな値の組み合わせを、クラスについて所定の個数定義することを含む。
・本方法はさらに、それぞれが各パラメータを互いにリンク付けする、1つまたは複数の制約を定義することを含む。かつ/あるいは、
・本方法はさらに、トラバースされる前記範囲の集合のうちの前記1つまたは複数について優先順位を与える前記パラメータの集合に対して、前記1つまたは複数の制約に基づき、順序を定義することを含む。
さらには、データセットを形成するための前記方法によって形成されたデータセットに基づいて関数を学習(すなわち訓練)するための、コンピュータによって実施される方法が提供される。本方法は、重み付けされたニューラルネットワークのトポロジーのような、重みについて未定義の値を有する関数アーキテクチャ(またはトポロジー)を提供することを含む。関数アーキテクチャは、現実の物体の1つまたは複数のクラスのインスタンスの画像をそれぞれが入力とする関数を提供するように調整され得るデータ構造である。本方法はまた、データセットを提供することと、次いで、例えば所定の損失項を最小化することによって、前記データセットと一致するように前記関数アーキテクチャを調整することを含む。前記調整は、前記ニューラルネットワークの重みの値を調整することからなっていてもよい。このような方法は、機械学習工程のオフライン学習/訓練部分と呼ばれる。
さらには、学習のためのそのような方法によって学習された関数を用いるための、コンピュータで実施される方法が提供される。本方法は、前記関数を提供することを含む。本方法は、次いで、例えば、前記関数が入力として取るように構成された現実の物体の1つまたは複数のクラスのインスタンスの、1つまたは複数の入力画像を提供すること(本方法は、入力画像が前記1つまたは複数のクラスのインスタンスでない場合も何らかの方法で対処する)と、次いで、前記関数を前記入力画像に適用することとを含む。本方法は、次いで、出力についての任意の後処理を含んでいてもよい。このような方法は、機械学習工程のオンライン(またはインライン)部分と呼ばれる。
さらには、上記方法群のうちの任意のシーケンスを含む工程が提供される。前記シーケンスは、同じ位置で、および/または、同じシステムによって、または遠隔システム間におけるデータの交換を含むように実行されてもよい。
さらには、上記の方法群のいずれか1つまたは任意の組み合わせを実行するための命令を含むコンピュータプログラムが提供される。
さらには、データセットを形成するための前記方法によって形成可能なデータセットが提供される。このようなデータセットは、前記方法によって追加された前記1つまたは複数の対応する画像を含み、それにより、前記データセットは、既存の類似のデータセットと比較して、網羅的で正確である。
さらには、パラメトリックモデルを定義するための前記方法によって定義可能なパラメトリックモデルが提供される。このようなパラメトリックモデルは、パラメトリックモデルを定義するための前記方法の間に定義されたすべての情報、特に、データセットを形成する際に1つまたは複数の範囲のそれぞれがトラバースされることを示すラベルを含む。
さらには、前記データセット、前記関数、および/または、前記プログラムを含むデータ構造が提供される。
さらには、前記データ構造が記録されたデータ記憶媒体を含む装置が提供される。前記装置は、非一時的なコンピュータ読み取り可能媒体を構成してもよい。前記装置は、代わりに、前記データ記憶媒体に接続されたプロセッサを備えていてもよい。前記装置は、それによりシステムを構成してもよい。前記システムは、さらに、プロセッサに接続されたグラフィカル・ユーザ・インターフェースを備えていてもよい。
工程の一例のフローチャートを示す。 システムのグラフィカル・ユーザ・インターフェースの一例を示す。 システムの一例を示す。 方法の実施例を説明する図である。 方法の実施例を説明する図である。 方法の実施例を説明する図である。 方法の実施例を説明する図である。 方法の実施例を説明する図である。 方法の実施例を説明する図である。 方法の実施例を説明する図である。 方法の実施例を説明する図である。 方法の実施例を説明する図である。 方法の実施例を説明する図である。 方法の実施例を説明する図である。 方法の実施例を説明する図である。 方法の実施例を説明する図である。 方法の実施例を説明する図である。 方法の実施例を説明する図である。 方法の実施例を説明する図である。 方法の実施例を説明する図である。 方法の実施例を説明する図である。 方法の実施例を説明する図である。 パラメトリックモデルを定義付けの一例を説明するための図である。 パラメトリックモデルを定義付けの一例を説明するための図である。 パラメトリックモデルを定義付けの一例を説明するための図である。 パラメトリックモデルを定義付けの一例を説明するための図である。
関数は、ニューラルネットワークのような、現実の物体の1つまたは複数のクラスのインスタンスのものであり得る画像を入力とし、各入力に対して任意のフォーマットをとり得る出力を生成する任意の関数である。
画像は、物理的信号の空間的分布を表すデータ構造である。現実の物体の画像は、例えばシーン内に位置する当該物体上の物理的信号の分布を表す。空間的分布は、任意の次元、例えば、2Dまたは3Dの分布であり得る。物理的信号は、例えば色、グレーレベル、物質の深度または存在、または物体の境界など、任意の信号であってよい。これに対応して、画像は、2Dまたは3DのRGB、グレースケールまたは深度画像、2D輪郭モデル、または3Dモデル化オブジェクト(例えば、表面占有率または体積占有率モデル、あるいは境界表現)であってもよい。
空間的分布は、任意の方法で、例えば値のグリッドを用いて表現され、それによってピクセルまたはボクセルを定義する。グリッドは不規則または規則的である可能性がある。データセットに追加された画像、および/または、関数に入力される画像は、すべて同じ種類であってもよく、例えば、すべて矩形の2DのRGBまたはグレースケール画像、あるいはすべて3Dモデル化オブジェクトであってもよい。あるいは、データセットに追加された画像、および/または、関数に入力される画像は、異なる種類の画像を含んでいてもよい(例えば、訓練パターンの第1の要素のうちの画像、または第2の要素のうちの画像であってもよい)。
例においては、関数は、2D画像または3Dモデル化オブジェクトのような入力画像によって表される現実の物体のインスタンスのクラスを示す情報を出力するように構成されている。他の例においては、関数は、2D画像のような入力画像によって表される現実の物体のインスタンスの3Dモデル化オブジェクトを出力するように構成されている。
モデル化オブジェクトは、例えばデータベースに格納されたデータによって定義される任意のオブジェクトである。さらには、「モデル化オブジェクト」という表現は、データそのものも指す。使用されるシステムの種類に応じて、モデル化オブジェクトは、異なる種類のデータによって定義されてもよい。実際、システムは、CADシステム、CAEシステム、CAMシステム、PDMシステム、および/またはPLMシステムのうちの任意の組み合わせであってもよい。それら異なるシステムにおいて、モデル化オブジェクトは、対応するデータによって定義される。したがって、CADオブジェクト、PLMオブジェクト、PDMオブジェクト、CAEオブジェクト、CAMオブジェクト、CADデータ、PLMデータ、PDMデータ、CAMデータ、CAEデータについて言及することがある。しかしながら、モデル化オブジェクトは、これらのシステムの任意の組み合わせに対応するデータによって定義されてもよいため、これらのシステムは、互いに排他的なものではない。したがって、システムは、CAD兼PLMシステムであってもよく、これは以下に示すそのようなシステムの定義により明らかとなる。
CADシステムは、少なくとも、CATIAのようなモデル化オブジェクトのグラフィック表現に基づくモデル化オブジェクトの設計に適した任意のシステムをも意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトを表現可能にするデータを含む。CADシステムは、例えば、辺や線を用い、また、場合により面(faces or surfaces)を用いて、CADモデル化オブジェクトの表現を提供してもよい。線、辺、あるいは面は、例えば、非一様有理Bスプライン(NURBS)など、様々な様式で表現されてもよい。具体的には、CADファイルは仕様を含み、その仕様に基づきジオメトリが生成可能であり、よって表現が生成可能となる。モデル化オブジェクトの仕様は1つまたは複数のCADファイルに格納されていてもよい。CADシステムでモデル化オブジェクトを表現するファイルの典型的なサイズは、一部分あたり1メガバイトの範囲である。また、モデル化オブジェクトは、典型的には、数千の部分の集合体であってもよい。
CADの文脈において、モデル化オブジェクトは、典型的には、3Dモデル化オブジェクト、例えば、一つの部品や部品の集合体などの製品、あるいは製品の集合体を表現するものであってもよい。「3Dモデル化オブジェクト」は、3D表現が可能なデータによってモデル化される任意のオブジェクトを意味する。3D表現は、その部品をすべての角度から見ることを可能にする。たとえば、3Dで表現された3Dモデル化オブジェクトは、その軸のうちの任意の軸、あるいは、その表現が表示された画面中の任意の軸を中心に、処理して回転させることが可能である。これは、特に、3Dモデル化されていない2Dアイコンについては除外される。3D表現の表示は、設計を容易にする(すなわち、設計者が作業を達成するスピードを統計的に速める)。
「現実の物体のクラス」という表現は、同じ意味記述子によって記述され得る現実の物体の集合、グループ、またはカテゴリを指す。現実の物体のクラスの意味記述子は、当該クラスの任意の物体を記述する自然言語の単語、またはオプションとして、数を含む表現である。クラスは、任意の種類の現実の物体を集め得る。クラスのサブクラスが、それ自体クラスとみなされてもよい。本方法群は、学習される関数について想定される精度に応じて、分類について任意の細かさを想定してもよい。本方法群は、例えばImageNet、ShapeNet、またはObjectNet3Dで識別されるクラスを想定してもよい。
本方法群は、動物のクラス、身体器官の部分のクラス、または植物/樹木のクラス、または(例えば機械)部品や部品の集合体のクラス、より一般的には任意の剛体の集合体(例えば移動機構)のクラスを想定してもよい。製品は、航空宇宙、建築、建設、消費財、ハイテク機器、産業機器、輸送、海洋、および/または海洋石油/ガス生産、または交通を含む、限定されることのない様々な産業分野において用いてもよい。本方法群は、地上車両の部品のクラス(例えば、自動車のクラス、および軽トラック機器のクラス、レーシングカーのクラス、オートバイのクラス、トラックのクラスおよびモーター機器のクラス、トラックのクラス、バスのクラス、電車のクラスを含む)、航空車両の部品のクラス(例えば、航空機体機器のクラス、航空宇宙機器のクラス、推進機器のクラス、防衛製品のクラス、航空路線機器のクラス、宇宙機器のクラスを含む)、海軍車両の部品のクラス(例えば、海軍用機器のクラス、商業用船舶のクラス、オフショア機器のクラス、ヨットのクラスおよび作業船のクラス、船舶用機器のクラスを含む)、一般的な機械部品のクラス(例えば、工業用製造機械のクラス、大型移動機械のクラスまたは機器のクラス、設置機器のクラス、産業機器製品のクラス、加工金属製品のクラス、タイヤ製造製品のクラスを含む)、電気機械部品のクラスまたは電子部品のクラス、(例えば、家電のクラス、セキュリティのクラスおよび/または制御のクラスおよび/または計装製品のクラス、コンピューティングおよび通信機器のクラス、半導体のクラス、医療装置および設備のクラスを含む)、消費者製品のクラス(例えば、家具のクラス、家庭用および庭用製品のクラス、レジャー用品のクラス、ファッション用品のクラス、耐久消費財小売用品のクラス、織物類小売用品のクラスを含む)、包装のクラス(例えば、食品および飲料およびたばこ、美容およびパーソナルケア、家庭用製品の包装のクラスを含む)などのように、任意の機械部品クラスを含み得る工業製品のクラスを意図したものであってもよい。
クラスの要素を「インスタンス」と呼ぶ。したがって、インスタンスはクラスの現実の物体である。インスタンスは、例えばそのスタイルや、その寸法、および/または、そのテクスチャを含む、異なる物理的特性を有する。クラスのインスタンスは、そのような情報をモデル化した3Dモデル化オブジェクトによって表されてもよい。
クラスのパラメトリックモデル(「テンプレート」としても知られる)は、入力パラメータに対して提供される値(1つのパラメータに1つの値)により、クラスのインスタンスを表す3Dモデル化オブジェクトを生成(すなわち出力)する関数である。したがって、このような生成された3Dモデル化オブジェクトは、それぞれ、パラメトリックモデルに対して提供されるパラメータ値の集合に対応する。各パラメータは、範囲、すなわち、当該パラメータに対して承認されたすべての値の集合に対応する。パラメトリックモデルは、さらに、それぞれが各パラメータを互いにリンク付けする、1つまたは複数の制約を含んでいてもよい(言い換えれば、1つまたは複数の他のパラメータの値に対して、1つまたは複数のパラメータの値に制約を与える)。このような情報は、パラメトリックモデルとともに提供される。
データセットを形成する方法は、次いで、3Dモデル化オブジェクトの生成中に1つまたは複数の範囲を(例えば、完全に)トラバースすることを含む。ある範囲について「トラバースする」という用語は、当該範囲の少なくとも代表的な部分集合の各値(すなわち、当該範囲に全体にわたって分布された当該範囲の値の集合)が、その部分集合の各値について少なくとも1つの対応する3Dモデル化オブジェクトが生成されるように、生成中にアクセスされることを意味する。前記3Dモデル化オブジェクトに対応する他のパラメータ値は、任意の手法で設定すればよく、例については後述する。そのような生成された各3Dモデル化オブジェクトは、次いで、データセット内の対応する1つまたは複数の訓練パターンをもたらしてもよい。これにより、トラバースされるパラメータの範囲(群)について、データセットが包括的で多様なものとなる。言い換えれば、トラバースされる範囲の値のすべての組み合わせがデータセット内に表される。
範囲の集合は、有限である1つまたは複数の範囲を含んでいてもよい。このような有限の範囲をトラバースすると、その範囲のすべての値にアクセスすることになる。そのような場合、範囲の代表的な部分集合は、範囲全体そのものである。範囲の集合は、無限である1つまたは複数の範囲を含んでいてもよい。このような無限集合は、例えば有限集合にサンプリングされる。有限集合もまた、例えば、比較的大きい場合に、サンプリングしてもよい。そのような場合、範囲の代表的な部分集合は、サンプリングの結果である。このようなサンプリングはまた、データセットを形成するための方法の他のステップのために実施され、使用されてもよい。例えば、トラバースされていない範囲の値が必要な場合(例えば、後述するようにランダム化されている場合)、そのような値をサンプリングの結果内で選択してもよい。サンプリングは、パラメトリックモデルの定義時に、または複数の3Dモデル化オブジェクトの生成前または生成時におけるデータセットの形成中に実行してもよい(この場合、サンプリングは単にその範囲に対して行われる)。サンプリングは規則的であっても不規則であってもよい。サンプリングは、所定数のステップまたは所定のステップサイズに対応してもよく、これは一定であってもよく、範囲および/またはパラメータに依存してもよい。サンプリングは、範囲内に少なくとも2個または3個の値、例えば少なくとも5個または10個の値をもたらしてもよい。以下において、範囲の処理とは、そのサンプリングされたバージョンの処理のことを指し得る。
パラメータの集合は、1つまたは複数の特性パラメータを含んでいてもよい。特性パラメータは、クラスの現実の物体を識別する特徴を表すパラメータである。この識別的特徴は、意味記述子に対応していてもよい。クラスの現実の物体の識別的特徴の意味記述子は、当該現実物体の態様を記述する自然言語の単語、またはオプションとして、数を含む表現であり、これにより、現実の物体をクラスの他のインスタンスと識別的に比較することができる。これにより、パラメトリックモデルは、識別され得るクラスのインスタンスの生成を可能にし、形成されたデータセットは、そのような多様性を変換したものとなり得る。
特性パラメータは、スタイルパラメータ、寸法パラメータ、および/または、テクスチャパラメータを含んでいてもよい。スタイルパラメータは、クラスの現実の物体についての形状または配置情報を表すパラメータであり、それにより、特にその画像を視覚化する際の、現実の物体についての幾何学的印象に対応する。このように、スタイルパラメータは、クラスにおける異なるインスタンス同士を識別する効率的な手法を形成する。スタイルパラメータは、物体の形状、その要素の形状、またはその要素の配列を、すべて値の所定の集合内に表してもよい。寸法パラメータは、現実の物体、またはその一部の寸法を表す。テクスチャパラメータは、現実の物体、またはその一部のテクスチャを表し、「テクスチャ」という用語は、例えば、色の分布、材料、および/または、感触の特徴(例えば皺の多さや滑らかさ)をカバーする。
パラメトリックモデルが提供される現実の物体のクラスは、同じタイプの(例えば、機械的な)部品または製品の集合体のクラスを含んでいてもよい。そのようなクラスのパラメトリックモデルは、部品または製品にそれぞれ対応するサブモデルを含んでいてもよい。各サブモデルは、1つまたは複数のスタイルパラメータ(例えば、それぞれが部品の形状種類の有限集合を提供する)、1つまたは複数の寸法パラメータ(例えば、それぞれが値の無限集合を提供する(例えば、種類[a,b]。ここで、aおよびbが正の実数))、および/または、1つまたは複数のテクスチャパラメータ(例えば、それぞれが部品の材料種類の有限集合、部品の感触特徴種類の有限集合、または部品全体の色の値の有限または無限集合(例えば値の257×257×257個の集合における、例えばRGB値)を提供するか、または、それぞれが色の値の有限または無限集合(例えば部品におけるRGB分布マップ)、または感触特徴の値の有限または無限集合(例えば部品における感触特徴のレベルの分布マップ)を定義するか、(例えばチューニングによって)他のパラメータとともに定義に関与する)を含み得るパラメトリックモデルである。クラスのパラメトリックモデルは、さらに、例えばそれぞれが部品の配置の有限集合を提供する、スタイルパラメータを含んでいてもよい。クラスのパラメトリックモデルは、例えば、それぞれがいくつかの部品の所与の配置について、それら部品間の相対的な位置決めの正確な値を提供する、寸法パラメータを含んでいてもよい。クラスのパラメトリックモデルは、他のパラメータを含んでいてもよい。
パラメトリックモデルが提供される1つまたは複数のクラスは、そのような種類の上位クラスのサブクラスであってもよい。上位クラスのパラメトリックモデルは、次いで、1つまたは複数のクラスのパラメトリックモデルの集合からなるものであって、当該1つまたは複数のクラスのパラメトリックモデルのうちの1つを選択するためのパラメータが追加されるものとして定義されてもよい。上位クラスの概念は、同じ上位クラスのサブクラスである異なるクラスがパラメータを共有し得るため、クラスがより簡単に定義できるようになり得る。上位クラスを定義することにより、そのようなパラメータを一度だけ宣言し、次いで、共有した当該パラメータを自動的に継承するものの共有した当該パラメータに適用する関数が異なり得る、インスタンス化サブクラスを宣言することが可能になり得る。
トラバースされる範囲の集合のうちの1つまたは複数は、それぞれ、特性パラメータの範囲であってもよい。そのような場合、データセットは特性パラメータに関して包括的であり、データセットの多様性により、特性パラメータによって提供される特性に応じて識別を行う関数を後で学習することが可能になる。言い換えれば、この関数は、トラバースされる特性パラメータに対して、あるインスタンスを別のものと間違えてしまうことに対してより頑強になる。
このようなトラバースされる特性パラメータは、スタイルパラメータ(例えば、パラメトリックモデルによって提供される全てのスタイルパラメータ)を含んでいてもよい。スタイルパラメータは、実際、特に識別に資する。したがって、スタイルパラメータによって取られる値に関する多様性は特に重要である。これは、同じ種類の(例えば、機械的な)部品または製品の集合体のクラスの場合に、よりいっそう当てはまる。
例においては、すべてのスタイルパラメータがトラバースされ、他のすべてのパラメータはランダム化される。これにより、データセットの迅速な形成が可能になるが、そのうえ、機械エンジニアリングの文脈を含め、多くの文脈において、最もよく識別に資するパラメータの種類であるスタイルに関して、多様性を有する。
本方法群は、コンピュータにより実施される。これは、本方法群のステップ(あるいは略全てのステップ)が少なくとも1つのコンピュータ、または類似の任意のシステムによって実行されることを意味する。よって本方法群のステップは、コンピュータにより、完全に自動的に、あるいは半自動的に実行される可能性がある。例において、本方法群の少なくともいくつかのステップは、ユーザとコンピュータの対話を通じて始動されてもよい。求められるユーザとコンピュータの対話レベルは、想定される自動性のレベルに応じたものであって、ユーザの要望を実装する必要性との間でバランスをとるものとしてもよい。例において、このレベルは、ユーザが設定し、かつ/あるいは、予め定義されていてもよい。
本方法群のコンピュータによる実施の典型的な例は、この目的に適したシステムを用いて本方法群を実行することである。当該システムは、本方法群を実行するための命令を含むコンピュータプログラムを記録したメモリに接続されたプロセッサ、および、グラフィカル・ユーザ・インターフェース(GUI)を備えていてもよい。メモリは、データベースを記憶していてもよい。メモリは、そのような記憶に適した任意のハードウェアであり、場合により、物理的に区別可能ないくつかの部分(例えば、プログラム用に1つ、場合によりデータベース用に1つ)を含む。システムはさらに、プロセッサに接続され、3D再構築のためのインスタンスの深度マップを取得するよう構成された深度センサを備えていてもよい。システムはまた、取得中にインスタンスが姿勢をとるためのポージングスポットを備えていてもよい。
図1は、工程の一例のフローチャートを示す。ブロックS10、S20、S30、S40およびS50は、それぞれ他のブロックとは独立して実行されてもよい。
図1の工程は、現実の物体の複数のクラスのそれぞれに対して、当該クラスのパラメトリックモデルを定義する方法(S10)を含み、これはユーザの対話操作を介して実行され得る。
定義すること(S10)は、パラメータの集合と、各パラメータについての範囲とを定義すること(S12)を含む。パラメータは、寸法、スタイル、および/または、テクスチャパラメータを含んでいてもよい。パラメトリックモデルは、クラスの現実の物体のインスタンスの変動性を表す。
定義すること(S10)はさらに、データセットを形成する際にトラバースされるように1つまたは複数のパラメータ範囲(同様に、パラメータ)にラベル付けすること(S14)を含む。これによりラベル付けされた範囲パラメータは、(例えば、有限である)(例えば、全ての)スタイルパラメータ、および場合により寸法パラメータ、および/またはテクスチャパラメータを含んでいてもよい(例えば、このような寸法/テクスチャパラメータの無限の範囲は、このような場合に、サンプリングされて有限でトラバース可能となるが、これは図には示されていない)。
図1の工程は、他のすべての(すなわち、ラベル付けされていない)範囲を、ランダム化されるものとみなす。あるいは、システムは、「トラバースされていない」範囲用に、特定のラベルを管理してもよい。また、ランダム化の代わりに、ラベル付けされていない範囲については、トラバースとは異なる他の任意の処理が考えられる。
定義すること(S10)はさらに、ラベル付けされた範囲の値の各組み合わせに対して、ラベル付けされていない範囲のランダムな値の所定の個数M個の組合せを定義すること(S16)を含む。言い換えれば、各クラスについて、当該工程は、ラベル付けされた範囲のトラバースされる値の組み合わせごとに、ラベル付けされていない範囲に対して描画されるはずのランダム値の組み合わせが正確に何個あるかを知る。これにより、当該工程は、トラバースされる範囲の組み合わせの全体の多様性を表すデータセットを形成し、他の範囲については「より緩く」(すなわち、より「厳密」でなく)なるように求められる。定義すること(S16)は、さらに、所定数M個に対応するランダム化された範囲について、最小限の多様性を実現する。所定の個数Mは、任意の正の整数値であってよく、例えば、30または20よりも小さくてもよい。これにより組み合わせのコストを低減できる。
定義すること(S10)は、さらに、それぞれが各パラメータを互いにリンクさせる、1つまたは複数の制約を定義すること(S18)を含む。あるいは、ユーザは制約を全く定義しなくてもよい。
S12~S18は、連続的に表されているが、任意の順序で実行してもよく、例えばインターレースされてもよい。
図1の工程は、次いで、データセットを初期化する(S20)。
図1の工程は、次いで、クラスごとに、データセットに取り込む(S30)。
工程は、各クラスについて、当該クラスのパラメトリックモデルを提供すること(S310)を含む。工程は、次いで、パラメトリックモデルにより複数の3Dモデル化オブジェクトを生成する(S320)。
この生成(S320)は、パラメータの集合について順序を定義すること(S322)を含む。順序付けは、トラバースされる範囲に優先順位を与え、かつ、1つまたは複数の制約に基づくものである。順序は、任意の手法により、自動的に決定されてもよい。このような順序付けの実施については後述する。図1の例の代わりに、順序がS10内で定義され、S30でそのようなものとして提供され、パラメトリックモデルと共に形成されてもよい。さらに、S30は、順序付けに基づかなくてもよく、ヒューリスティックを介して単純に実行してもよい。
生成(S320)は、次いで、トラバースされるようにラベル付けされた範囲をトラバースすること(S324)を含む。トラバーサル(S324)中に、生成(S320)により、ラベル付けされた範囲の値の組み合わせのそれぞれにつき、ラベル付けされていない範囲のランダムな値のM個の組み合わせが提供される(S326)。あるいは、所定数Mが工程に提供されず、よって工程は任意の手法でランダム化を処理する。
これにより、S324~S326は、S328で出力される3Dモデル化オブジェクトに多様性をもたらす。出力は、ラベル付けされた範囲の値のすべての可能な組み合わせに対応する3Dモデル化オブジェクトと、そのような各組み合わせについて、ラベル付けされていない範囲の値の1つまたは複数(Mの値による)のランダムな組み合わせに対応する3Dモデル化オブジェクトを含む。
次いで、S328の結果に基づきデータを追加する(S330)ことによって、データセットにクラスのデータが取り込まれる。例えば、S328で出力された各3Dモデル化オブジェクトが、いくつかの2D画像を抽出するために用いられ、各2D画像は、S330において、例えば各3Dモデル化オブジェクト、または他の任意の関連データにリンク付けされたデータセットに追加され、訓練パターンを形成する。あるいは、S328で出力された各3Dモデル化オブジェクトは、S330でクラスの名前にリンク付けされたデータセットに追加され、訓練パターンを形成する。S330は、データセットに基づいて後にS40で学習したい関数の種類に基づいて、任意の手法で実行されてもよい。
いずれの場合も、トラバーサル(S324)は、データセット内に、効率的な学習(S40)を可能にする一定レベルの多様性をもたらし、それにより、後にS50において、そのような学習した関数を用いるときに、正確な結果をもたらす。
例における定義すること(S10)はさらに、ランダム化されていない範囲の値の各組み合わせに対して、ランダム化された範囲のランダムな値の所定数M個の組合せを定義すること(S16)を含む。
図2は、本システムのGUIの一例を示す図であって、当該システムはCADシステムである。GUI2100は、例えば、所与のクラスの3Dモデル化オブジェクト2000を、例えば当該クラスのパラメトリックモデルを定義する前に、そのような3Dモデル化オブジェクトを入力とする学習した関数を適用する前に、あるいはそのような3Dモデル化オブジェクトを出力する学習した関数の結果として、表示するために用いられてもよい。
GUI2100は、標準的なメニューバー2110,2120、ならびに底部および側面のツールバー2140,2150を有する典型的なCADのようなインターフェースであってもよい。このようなメニューバーおよびツールバーは、ユーザが選択可能なアイコンのセットを含み、各アイコンは、当技術分野で知られているように、1つまたは複数の操作または機能に関連付けられている。これらのアイコンのいくつかは、GUI2100に表示された3Dモデル化オブジェクト2000の編集および/または作業に適合したソフトウェアツールに関連付けられている。ソフトウェアツールはワークベンチに分類することができる。各ワークベンチは、ソフトウェアツールのサブセットを含む。特に、ワークベンチの1つは、モデル化製品2000のジオメトリ的特徴を編集するのに適した編集ワークベンチである。操作中、設計者は、例えば、オブジェクト2000の一部を予め選択し、次いで、適切なアイコンを選択することによって、操作を開始する(例えば、寸法、色などを変更する)か、ジオメトリ的制約を編集することができる。例えば、典型的なCAD操作は、スクリーン上に表示された3Dモデル化オブジェクトのパンチングまたは折り畳みのモデリングである。GUIは、例えば、表示された製品2000に関連するデータ2500を表示してもよい。図の例では、「特徴ツリー」として表示されたデータ2500およびそれらの3D表現2000は、ブレーキキャリパおよびディスクを含むブレーキ部品に関するものである。GUIは、編集された製品の動作のシミュレーションを起動するため、または表示された製品2000の様々な属性を描画するために、例えばオブジェクトの3D定位を容易にするための様々なタイプのグラフィックツール2130,2070,2080をさらに示してもよい。カーソル2060は、ユーザがグラフィックツールを用いて対話操作ができるように、触覚デバイスによって制御されてもよい。
図3は、深度センサに接続されたコンピュータシステムとしての本システムの一例を示す。
本例のシステムは、内部通信バス1000に接続された中央演算処理装置(CPU)1010、および同じくバスに接続されたランダムアクセスメモリ(RAM)1070とを備える。本システムは、さらに、バスに接続されたビデオランダムアクセスメモリ1100と関連付けられたグラフィックス処理装置(GPU)1110を備える。ビデオRAM1100は、当該技術分野において、フレームバッファとしても知られる。大容量記憶装置コントローラ1020は、ハードドライブ1030などの大容量記憶装置へのアクセスを管理する。コンピュータプログラムの命令及びデータを具体的に実現するのに適した大容量メモリ装置は、例として、EPROM、EEPROM及びフラッシュメモリ装置のような半導体メモリ装置、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、およびCD-ROMディスク1040を含む、全ての形式の不揮発性メモリを含む。前述のいずれも、特別に設計されたASIC(特定用途向け集積回路)によって補完されてもよいし、組み入れられてもよい。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。本システムは、深度センサ1090も含む。
コンピュータプログラムは、コンピュータによって実行可能な命令を含んでいてもよく、命令は、上記システムに本方法群を実行させるための手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶媒体に記録可能であってもよい。プログラムは、例えば、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実装されてもよい。プログラムは、例えばプログラマブルプロセッサによる実行のための機械読み取り可能な記憶装置に具体的に実現された製品のような装置として実装されてもよい。方法ステップは、プログラム可能なプロセッサが命令のプログラムを実行し、入力データを操作して出力を生成することによって方法の機能を実行することによって実行されてもよい。したがって、プロセッサは、データ記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、また、それらにデータおよび命令を送信するようにプログラム可能であってもよく、またそのように接続されていてもよい。アプリケーションプログラムは、高水準の手続き型またはオブジェクト指向のプログラミング言語で、または必要に応じてアセンブリ言語または機械語で実装されていてもよい。いずれの場合も、言語はコンパイラ型言語またはインタープリタ型言語であってもよい。プログラムは、フルインストールプログラムまたは更新プログラムであってもよい。いずれの場合も、プログラムをシステムに適用すると、本方法を実行するための指示が得られる。
本工程は、例えば、2D画像を用いて3Dオブジェクトを認識するため専用のニューラルネットワークを訓練するために、訓練パターンを準備できるようにし得る。本工程は、CADにおいて非常に一般的な概念である、テンプレートを利用する。原則は、CADシステムを用いて、認識すべき3Dオブジェクトのクラスのパラメータ化されたテンプレートを作成することであってもよい。クラスの各要素は、パラメータ(例えば、角度寸法、長さ寸法、テクスチャ)をインスタンス化することによって得られる。このように、パラメータ値を自動的に変化させることによって、3Dモデルの非常に大きな集合を作成することができる。次いで、各モデルについて、関連付けられた2D画像のもう1つの非常に大きな集合を、CADシステムを再び用いて算出してもよい。本工程は、特に、ジオメトリ的な観点から、完全に制御下にある数千の訓練パターンを提供することが可能であってもよい。これにより、効率的かつ安全な、ニューラルネットワークの訓練が可能になる。
ここで、本方法群の実施例について、図4~図22を参照して説明する。「ユーザ」という用語は、訓練パターンデータベースの設計者を指す。
ニューラルネットワーク定義の例
ニューラルネットワークは、式にすると、6つ組
Figure 0007343963000001
によって定義されてもよく、ここで、
Figure 0007343963000002
はニューロンの集合であり、
Figure 0007343963000003
は方向づけられた接続であり、マッピング
Figure 0007343963000004
は、接続の開始ニューロンを記述し、マッピング
Figure 0007343963000005
は、接続の終了ニューロンを記述し、重みマッピング
Figure 0007343963000006
は、数値重みを各接続に関連付け、
Figure 0007343963000007
は、活性化関数と呼ばれる。
これは接続の開始ニューロン
Figure 0007343963000008

Figure 0007343963000009
であり、その終了ニューロンが
Figure 0007343963000010
であり、その重みが
Figure 0007343963000011
であることを意味する。さらに、ニューロンの入力接続の集合
Figure 0007343963000012

Figure 0007343963000013
であり、ニューロンの出力接続の集合
Figure 0007343963000014

Figure 0007343963000015
である。同様に、ニューロン
Figure 0007343963000016
の内向きニューロン
Figure 0007343963000017
は、
Figure 0007343963000018
の入力接続の開始ニューロンであり、すなわち、
Figure 0007343963000019
である。ニューラルネットワークのトポロジーは、ニューロンと、接続
Figure 0007343963000020
によって定義される。
定義により、活性化関数は、ネットワーク内の情報伝播の非線形閾値効果を捉える。教本「Kriesel David,A brief introduction to Neural Networks,2006」に記載のとおり、典型的な活性化関数は、
Figure 0007343963000021
である。
数学的な観点から、ニューラルネットワークは、活性化関数に関連づけられた加重弧を有する有向グラフであってもよい。
定義により、入力ニューロン
Figure 0007343963000022
は、入力接続を有しておらず、これは、
Figure 0007343963000023
を意味し、また出力ニューロン
Figure 0007343963000024
は出力接続を有しておらず、これは
Figure 0007343963000025
を意味する。
各ニューロン
Figure 0007343963000026
は以下の意味において演算ユニットのように振る舞う。出力数値
Figure 0007343963000027
は、以下の式に従って内向きニューロンの数値を組み合わせることによって算出できる。
Figure 0007343963000028

Figure 0007343963000029
は伝播値と呼ばれる。これは、ニューロン
Figure 0007343963000030
で終了するすべての接続
Figure 0007343963000031
の開始ニューロン
Figure 0007343963000032
によって算出した数値の加重合計である。値
Figure 0007343963000033
は、伝播値
Figure 0007343963000034
において適用された閾値効果
Figure 0007343963000035
である。数式は再帰的に定義され、順序付けの問題には、トポロジーを通して対処する。図4は、ニューロン5における、その3つの内向きニューロン1、2、および3からの演算を説明する図である。
本工程によって実装され得るニューラルネットワークの非常に一般的なトポロジーは、フィードフォワードモデルである。ニューロンの集合は、層
Figure 0007343963000036
と呼ばれる順序付けられた疎な部分集合として構成され、ここで
Figure 0007343963000037
は、入力層(入力ニューロンの層)と呼ばれ、
Figure 0007343963000038
は、隠れ層と呼ばれ、
Figure 0007343963000039
は、出力層(出力ニューロンの層)と呼ばれる。層
Figure 0007343963000040
の各ニューロンから、層
Figure 0007343963000041
の全てのニューロンへの接続が存在する。層
Figure 0007343963000042
の各ニューロンから、
Figure 0007343963000043
としたときの
Figure 0007343963000044
の全てのニューロンへの接続が存在する。最後の隠れ層
Figure 0007343963000045
の各ニューロンから、出力層
Figure 0007343963000046
の全てのニューロンへの接続が存在する。フィードフォワードニューラルネットワークの文脈では、特定の活性化関数を各層に関連付けることができる。
図5は、2つの隠れ層を特徴とするフィードフォワードニューラルネットワークを示す。入力ニューロンは入力矢印で記号化されている。出力ニューロンは出力矢印で記号化されている。
明らかなように、フィードフォワードニューラルネットワークは非周期的である。したがって、数値
Figure 0007343963000047
を入力ニューロンに設定し、これはすなわち、全ての
Figure 0007343963000048
について
Figure 0007343963000049
であることを意味し、また、層ごとに演算を伝播することにより、出力ニューロンによって算出される数値
Figure 0007343963000050
がもたらされる。フィードフォワードニューラルネットワークを通して
Figure 0007343963000051
から
Figure 0007343963000052
を算出するマッピングは、
Figure 0007343963000053
で表され、ここで
Figure 0007343963000054
は入力ニューロンの数であり、
Figure 0007343963000055
は出力ニューロンの数である。

ニューラルネットワークの訓練の例
フィードフォワードニューラルネットワークのトポロジーが与えられ、その活性化関数が与えられると、ニューラルネットワーク訓練ステップの目標は、重み付けマッピング
Figure 0007343963000056
を算出することである。この目的のために、訓練パターンの集合が必要である。訓練パターンは、組
Figure 0007343963000057
である。この組は、入力データ
Figure 0007343963000058
が与えられたときにニューラルネットワークが算出するものと思われる出力データ
Figure 0007343963000059
を表す。入力と出力は他の手段で算出され、これらは「入力が
Figure 0007343963000060
の場合、ニューラルネットワークは
Figure 0007343963000061
を出力しなければならない」ということを教えるのに用いられる。
Figure 0007343963000062
個の訓練パターン
Figure 0007343963000063
が与えられると、
Figure 0007343963000064

Figure 0007343963000065
について、可能な限り
Figure 0007343963000066
に近くなるように重み付けマッピングを調整するのに、専用のアルゴリズムを用いてもよい。この目的のための典型的なアルゴリズムは、バックプロパゲーションである。数学的観点からは、これはマッピング
Figure 0007343963000067
を算出する補間問題である。
図6は、ニューラルネットワークの訓練ステップと実行ステップとを比較して示す。

分類ニューラルネットワークの訓練の例
ニューラルネットワークは、特に分類のために用いることができる。3Dオブジェクトの
Figure 0007343963000068
個のクラスの有限の集合が与えられるとき、目標は、未知の入力3Dオブジェクトが属するクラスをニューラルネットワークが認識することである。分類ニューラルネットワークは、クラスごとに1つの出力ニューロンを特徴とする。出力数値は、区間
Figure 0007343963000069

Figure 0007343963000070
個の数のベクトル
Figure 0007343963000071
である。各数
Figure 0007343963000072
は、入力オブジェクトがクラス番号
Figure 0007343963000073
に属する確率である。典型的な訓練パターンは、
Figure 0007343963000074
かつ
Figure 0007343963000075
の場合
Figure 0007343963000076
となるような、出力ベクトルに関連づけられたクラス番号
Figure 0007343963000077
に属する既知の入力3Dオブジェクトである。

データセットを形成するための提供された方法で訓練パターンを構築する例
物理的3Dオブジェクトの
Figure 0007343963000078
個のクラス
Figure 0007343963000079
が定義されると、ユーザは、特性パラメータを、それらの制約と共に定義することとしてもよい。パラメータ/クラステーブルは、それぞれのクラスに対応するパラメータ値のそれぞれの範囲を捉えたものである。また、ユーザは、3DCADテンプレートモデル(以下、テンプレートモデルという)を設計してもよい。最後に、ユーザは、
Figure 0007343963000080
個の描画パラメータを定義してもよい。描画パラメータは、画像を算出するのに必要なすべてのデータ、(すなわち視点、照明、環境、背景など)を含む組である。
後続の工程のすべてのステップは、完全に自動化されていてもよい。各クラス
Figure 0007343963000081
について、システムは1つの設計テーブルを生成してもよく、各設計テーブルは、複数の
Figure 0007343963000082
個のオブジェクトを表す可能性がある。次いで、システムは、各設計テーブルをテンプレートモデルと組み合わせてもよく、これにより合計
Figure 0007343963000083
個の3Dモデルが生成される。最後に、システムは、描画定義に従って、各3Dモデルの
Figure 0007343963000084
個の2D画像を生成してもよい。これにより
Figure 0007343963000085
個の画像が生成される。データセットは、以下のような
Figure 0007343963000086
個の組
Figure 0007343963000087
からなる。

Figure 0007343963000088
のそれぞれについて、
Figure 0007343963000089
のそれぞれについて、および
Figure 0007343963000090
のそれぞれについて、
Figure 0007343963000091
は、描画番号
Figure 0007343963000092
に応じた構成番号
Figure 0007343963000093
におけるクラス
Figure 0007343963000094
の物体の2D画像である

Figure 0007343963000095
かつ
Figure 0007343963000096
の場合
Figure 0007343963000097
である。
ワークフローが図7に示されている。
物体のクラスの例
訓練パターンを設計するための第1のステップは、認識すべき物体のクラスを定義することであってもよい。それらはすべて同じルートクラスから派生してもよい。典型的なルートクラスは「テーブル」であり、クラスは機能的な観点から配置され、典型的には「ダイニングテーブル」、「エンドテーブル」、「コンソールテーブル」、「アクセントテーブル」および「バーテーブル」である。
これは図8に示されている。
パラメータ/クラステーブルおよびパラメータ範囲の例
特性パラメータおよび典型的な(範囲の)値は、この機能により編成したクラスに関連付けられてもよい。これには数、および記号の値が含まれてもよい。いくつかの種類のパラメータが関与してもよい。すなわち、寸法パラメータ、スタイルパラメータ、および、テクスチャパラメータである。寸法パラメータは、長さまたは角度であってもよい。スタイルパラメータは、物体の1つまたは複数の部材の性質を決定するものであってもよい。テクスチャパラメータは、その材料に応じて物体の外観を決定するものであってもよい。
図9~図11において、Leg(脚)とPlate(天板)はスタイルパラメータである。パラメータLegの値Circular(またはSquare)は、テーブルの中央の脚が、円形(または正方形)の土台を有することを意味する。パラメータLegの値4はテーブルが、4つの垂直な脚を備えることを意味する。パラメータPlateの値Circular(またはRectangleまたはOval)は、天板が円形(または長方形、または長円形)であることを意味する。
パラメータの名前、種類、および範囲が、いわゆる「パラメータ/クラステーブル」に集められ、それを簡略化したものが表Iに示されている。
Figure 0007343963000098
表I-テーブルのクラスについてのパラメータ/クラスの表を簡略化したビュー:「ダイニングテーブル」クラス、「エンドテーブル」クラス、「アクセントテーブル」クラス、「バーテーブル」クラス、および「コンソールテーブル」クラス
また、いわゆる「ランダムな構成」の数
Figure 0007343963000099
を各クラスに関連付けてもよい。上側に*でラベル付けされたパラメータは、「ランダム化されたパラメータ」と呼ばれる。その他のパラメータは「トラバースされるパラメータ」と呼ばれる。後述のように、これら2つの特徴を、設計テーブルを生成する際に用いてもよい。
このテーブルは、以下のように定式化される。クラスの集合
Figure 0007343963000100
が与えられ、パラメータの集合
Figure 0007343963000101
が与えられると、パラメータ/クラステーブルは、
Figure 0007343963000102
から、
Figure 0007343963000103
で表される集合
Figure 0007343963000104
のべき集合へのマッピング
Figure 0007343963000105
であって、
Figure 0007343963000106
である。
例においては、
Figure 0007343963000107
である。
各組
Figure 0007343963000108
について、
Figure 0007343963000109
は、クラス
Figure 0007343963000110
をパラメータ化する際に用いられるパラメータ
Figure 0007343963000111
の範囲である。スタイルパラメータの範囲は、常に有限集合であってもよい。寸法パラメータの範囲は、有限集合または数の区間とすることができる。
例えば、
Figure 0007343963000112
は、エンドテーブルの長さが80センチより長く120センチより短いことを意味する。スタイルパラメータは
Figure 0007343963000113
である。寸法パラメータは
Figure 0007343963000114
である。テクスチャパラメータは
Figure 0007343963000115
である。

トラバースされるパラメータとランダムなパラメータの比較例
パラメータのトラバースされる/ランダムな状態は、訓練パターンデータセットの設計者によって設定される。定義により、設計テーブルを構築する際に、トラバースされるパラメータのすべての可能な組み合わせが生成される。対照的に、設計テーブル内のランダムなパラメータを設定するには、所定数の値がランダムに選択される。
原理は、3Dオブジェクトの形状に大きく寄与するパラメータは、トラバースされるパラメータであるべきで、形状にそれほど寄与しないパラメータは、ランダムなパラメータであるべきである、というものであってもよい。典型的には、スタイルパラメータはトラバースされるパラメータであり、寸法パラメータはランダムなパラメータである。なお、数値区間の範囲
Figure 0007343963000116
を有するパラメータをトラバースすることは、それをサンプリングすることを暗に意味する。なぜなら、それは値の無限集合だからである。そのような場合、範囲を完全にトラバースすることはできない。
説明した実施例では、トラバースされるスタイルパラメータとランダムな寸法パラメータが検討されているが、ランダムなスタイルパラメータとトラバースされる寸法パラメータとすることも可能である。テクスチャパラメータは、ユーザの選択に応じて、トラバースされることも、ランダムとすることも可能である。
制約の例
パラメータの依存関係は、例えば、2つの種類の制約、すなわち、比例制約と条件/動作制約を用いて捉えてもよい。比例は、数値パラメータの値が別の数値パラメータの値に比例することを示す。例えば、
Figure 0007343963000117
は、典型的な比例制約である。これは、
Figure 0007343963000118
の値が設定された後で
Figure 0007343963000119
の値が設定されるという意味で方向性を有する。
条件/動作制約では、条件にはパラメータのリストとそれらの値が関与する。制約の条件に関与するパラメータは、「条件パラメータ」と呼ばれる。制約の動作に関与するパラメータは、「動作パラメータ」と呼ばれる。制約によってアクティブ化される動作とは、条件パラメータの値に従って動作パラメータの範囲を定義することである。例えば、典型的な条件/動作制約は以下のとおりである。
Figure 0007343963000120
これは、中央に脚を備えたテーブルは、長過ぎてはならないことを示している。条件パラメータは
Figure 0007343963000121
である。動作パラメータは
Figure 0007343963000122
である。
視覚的には、制約はパラメータの依存関係を形成する可能性があるが、ユーザが循環的な依存関係を避ける必要があってもよい。前述のように、訓練パターンの集合は、トラバースされるパラメータの観点からは、網羅的である。逆に、ランダムなパラメータの観点からは、ランダムにサンプリングされている。このため、条件パラメータとして、ランダムなパラメータが関与する制約は、動作パラメータとして、トラバースされるパラメータを含まない可能性がある。設計テーブルの生成は、この制限の恩恵を受ける場合があるが、これについては後述する。
説明した実施例の文脈では、優先日においてアクセス可能であった以下のURLに記載されているように、制約はprotobuff言語を用いて表す:https://developers.google.com/protocol-buffers/。
設計テーブルの例
設計テーブルの概念は、CADの業界では非常に一般的である。これは、本工程によって有利に再使用され得る。パラメータのリスト
Figure 0007343963000123
が与えられ、「パラメータの範囲」である集合のリスト
Figure 0007343963000124
が与えられ、いわゆる構成の数
Figure 0007343963000125
が与えられると、設計テーブルは、「構成」と呼ばれる
Figure 0007343963000126
個の行と、「パラメータ」と呼ばれる

Figure 0007343963000127
個の列を特徴とすることになる。これは
Figure 0007343963000128
と表され、ここで
Figure 0007343963000129
は、範囲
Figure 0007343963000130
の要素である。構成は、各パラメータの特定の値を指定する、設計テーブルの行である。設計テーブルの目的は、所与のオブジェクトの
Figure 0007343963000131
個のバリエーションをコンパクトな構造で収集することである。設計テーブルの存在意義は、設計テーブルのパラメータがCADモデルのものであるかのように、パラメータ化された3DCADモデルと組み合わされることである。このように、各構成は3Dオブジェクトの、あるバージョンを表す可能性がある。
例えば、ダイニングテーブルの
Figure 0007343963000132
個の構成を有する設計テーブルには、表IIに示すように、それぞれが範囲
Figure 0007343963000133
および
Figure 0007343963000134
に関連付けられた
Figure 0007343963000135
個のパラメータ
Figure 0007343963000136
が関与する。
Figure 0007343963000137
表II-「ダイニングテーブル」クラスの構成
図12は3Dオブジェクトの各構成を示す。
順序付けパラメータと制約の例
制約はパラメータの依存関係を形成するため、設計テーブルを構築する際に、適切な順序に従って、パラメータを設定し制約をアクティブ化してもよい。この順序は、有向非循環グラフ(DAG)のトポロジー的順序付けアルゴリズムをカスタマイズすることによって算出してもよい。
Figure 0007343963000138
を制約の集合とし、各制約
Figure 0007343963000139
について、制約
Figure 0007343963000140
の条件パラメータの集合を
Figure 0007343963000141
と表し、制約
Figure 0007343963000142
の動作パラメータの集合を
Figure 0007343963000143
と表す。順序は、パラメータおよび制約の依存関係を捉える有向グラフ
Figure 0007343963000144
を用いて算出される。このグラフは以下のように定義される。ノード
Figure 0007343963000145
は制約、条件パラメータ、および動作パラメータである。式にすると、
Figure 0007343963000146
となる。
弧は、条件パラメータから制約へ、および制約から動作パラメータへと方向づけられている。式にすると、すべての制約
Figure 0007343963000147
および各パラメータ
Figure 0007343963000148
について、
Figure 0007343963000149
で始まり
Figure 0007343963000150
で終わる弧
Figure 0007343963000151
が存在し、これは
Figure 0007343963000152
および
Figure 0007343963000153
を意味する。同様に、各パラメータ
Figure 0007343963000154
について、
Figure 0007343963000155
で始まり、
Figure 0007343963000156
で終わる弧
Figure 0007343963000157
が存在し、これは
Figure 0007343963000158
および
Figure 0007343963000159
を意味する。定義により、ノード
Figure 0007343963000160
の入力弧(または出力弧)は
Figure 0007343963000161
で終わる(または始まる)弧
Figure 0007343963000162
であり、すなわち、
Figure 0007343963000163
または(
Figure 0007343963000164
)である。ルートノード
Figure 0007343963000165
は入力弧を有さず、すなわち、
Figure 0007343963000166
であり、または同様に、
Figure 0007343963000167
である。定義により、ノード
Figure 0007343963000168
の出力ノード
Figure 0007343963000169
は、ノード
Figure 0007343963000170
の出力弧の終了ノードである。ノード
Figure 0007343963000171
の出力ノードの集合は
Figure 0007343963000172
である。グラフ理論によれば、有向非循環グラフには、少なくとも1つのルートノードが存在する。
例えば、表IIIに定義するように、制約
Figure 0007343963000173
Figure 0007343963000174
および
Figure 0007343963000175
、トラバースされるパラメータ
Figure 0007343963000176
Figure 0007343963000177
および
Figure 0007343963000178
、ランダムなパラメータ
Figure 0007343963000179
Figure 0007343963000180
および
Figure 0007343963000181
、および依存関係を検討する。
Figure 0007343963000182
表III-パラメータの依存関係
対応するグラフが図13に示されている。
順序付けアルゴリズムの原理は、除去シーケンスを記録しながら、グラフのルートノードを反復的に(および実質的に)除去することであってもよい。この目的のために、各ノード
Figure 0007343963000183
は、その入力弧の現在の数を表し、入力弧の初期数で初期化された整数
Figure 0007343963000184
に関連付けられる。すなわち、
Figure 0007343963000185
である。このように、ルートノード
Figure 0007343963000186
は、
Figure 0007343963000187
となるようなノードである。アルゴリズムの出力は、マッピング
Figure 0007343963000188
であってもよく、これは、シーケンスにおける
Figure 0007343963000189
番目のノードが
Figure 0007343963000190
であることを述べている。アルゴリズムは、
Figure 0007343963000191
によって定義される現在のルートノードの集合を利用してもよい。
Figure 0007343963000192
命令03は、除去するべき適切な現在のルートノードを選択する。選択は、次の優先順位に従って行われる。すなわち、まず、トラバースされるパラメータを選択する。トラバースされるパラメータがない場合は、制約を選択し、そうでない場合はランダムなパラメータを選択する。
なお、このアルゴリズムは、パラメータと制約とを区別しない。これはパラメータ値を設定し制約をアクティブ化するための順序を提供する。
例における
Figure 0007343963000193
および
Figure 0007343963000194
の最初のデータ構造は、以下の通りであってもよい。ルートノードは、最初の
Figure 0007343963000195
の集合が
Figure 0007343963000196
であってテーブル
Figure 0007343963000197
が設定されていないような
Figure 0007343963000198
および
Figure 0007343963000199
である。
これは図14に示されている。
アルゴリズムのwhileループにおけるデータ構造の連続的な状態が図15に示されている。
なお、ステップ4は、好ましくは、ランダムなパラメータのルートノード
Figure 0007343963000200
に対して、制約のルートノード
Figure 0007343963000201
を選択する。同様に、ステップ5は、好ましくは、ランダムなパラメータのルートノード
Figure 0007343963000202
または
Figure 0007343963000203
に対して、トラバースされるパラメータのルートノード
Figure 0007343963000204
を選択する。これは図16に示されている。
ステップ6の後、すべてのトラバースされるパラメータが順序付けに挿入され得る。最後のステップが、全体の順序付けを完了する。すなわち
Figure 0007343963000205
となる。
式にすると、図17に示すように、テーブル
Figure 0007343963000206
において
Figure 0007343963000207
Figure 0007343963000208
Figure 0007343963000209
そして
Figure 0007343963000210
まで捉えられる。
後に、設計テーブルを作成する際には、この順序付けは次のように解釈されてもよい。
1.パラメータ
Figure 0007343963000211
を設定する。
2.パラメータ
Figure 0007343963000212
を設定する。
3.制約
Figure 0007343963000213
をアクティブ化する。これはパラメータ
Figure 0007343963000214
および
Figure 0007343963000215
のそれぞれの範囲を定義する制約である。
4.制約
Figure 0007343963000216
をアクティブ化する。これはパラメータ
Figure 0007343963000217
および
Figure 0007343963000218
のそれぞれの範囲を定義する制約である。
5.パラメータ
Figure 0007343963000219
を設定する。
6.パラメータ
Figure 0007343963000220
を設定する。
7.パラメータ
Figure 0007343963000221
を設定する。
8.制約
Figure 0007343963000222
をアクティブ化する。これはパラメータ

Figure 0007343963000223
の範囲を定義する制約である。
9.パラメータ
Figure 0007343963000224
を設定する。

予想されるように、各パラメータは、その範囲が更新された後に設定され、各制約は、そのすべての条件パラメータが設定された後にアクティブ化される。また、さらに、制約の仕様とルートノード選択の優先順位により、順序付けには、ステップ1からステップ5において、最も左のサブシーケンス
Figure 0007343963000225
内のすべてのトラバースされるパラメータが関与する。残りの最も右のサブシーケンス
Figure 0007343963000226
には、すべてのランダムなパラ―メータが関与する。
しかしながら、パラメータ
Figure 0007343963000227
の範囲は、ステップ3で初めて設定され、ステップ4で再定義されることに留意されたい。パラメータ
Figure 0007343963000228
の値は、ステップ4において制約
Figure 0007343963000229
によって設定された範囲に従ってステップ5で設定される。明らかなように、最初の構造
Figure 0007343963000230
における制約の順序は、パラメータの出力値に影響を与える。実際、図18に示すように、制約
Figure 0007343963000231
が制約
Figure 0007343963000232
の前にあるテーブル
Figure 0007343963000233
を考える。
このような状況において、結果として得られるシーケンスは
Figure 0007343963000234
であり、これはパラメータ
Figure 0007343963000235
が、ステップ5において、ステップ4において制約
Figure 0007343963000236
により定義された範囲に従って設定されることを意味する。この現象は不可避であり、ユーザは順序付けアルゴリズムが予期されるシーケンスを生成するように、テーブル
Figure 0007343963000237
を編成しなければならない。

設計テーブル生成の例
設計テーブルの生成は、訓練の実行後における、訓練パターンの多様性を決定し、よって、ニューラルネットワークの効率を決定する。アルゴリズムは、オブジェクトの各クラスについて、1つの設計テーブルを生成する。これは、トラバースされるパラメータ値の、取り得るすべての組み合わせをカバーするために構築されている。対照的に、ランダムなパラメータを設定するためには、ランダムな値が選択される。入力は、パラメータ/クラステーブル、制約、および順序付けられたシーケンス
Figure 0007343963000238
である。アルゴリズム全体は、以下のようであってもよい。
Figure 0007343963000239
クラス
Figure 0007343963000240
が与えられるとき、設計テーブル生成アルゴリズムは、すべてのトラバースされるパラメータの値の網羅的なトラバーサルに基づいていてもよい。設計テーブルは、トラバースされるパラメータ値の各組み合わせについて
Figure 0007343963000241
個の構成で充実され、トラバースされるパラメータ値は当該組み合わせを用いて設定される。次いで、設計テーブルのランダムなパラメータが、それぞれの範囲内でランダムな値を選択することによって設定される。以下において、整数
Figure 0007343963000242
は、図19に示すように、順序付けにおいて最も右のトラバースされるパラメータの位置である
アルゴリズムは、図20に示すように、深さ優先ツリーのトラバーサルのように構成されてもよい。
図19における「設計テーブルを初期化」のステップでは、各パラメータについて、0ライン1列の設計テーブル
Figure 0007343963000243
を作成する。便宜上、列はパラメータ名でインデックス付けされている。
Figure 0007343963000244
という表現は、設計テーブル
Figure 0007343963000245
のライン数を表し、
Figure 0007343963000246
が、構成数
Figure 0007343963000247
におけるパラメータ
Figure 0007343963000248
の値となる。
図19における「設計テーブルを充実」のステップは、トラバースされるパラメータの組に新しい値が設定される度に起動されてもよい。これは以下のようであってもよい。
Figure 0007343963000249
次いで、順序付け、制約のアクティブ化、およびランダムサンプリングに従ってランダムなパラメータを設定してもよい。なお、
Figure 0007343963000250
は、順序付けシーケンスにおける記号の数である。
Figure 0007343963000251
命令
Figure 0007343963000252
は、パラメータ
Figure 0007343963000253
の範囲
Figure 0007343963000254
内の値をランダムに選択する。
ここで、例を用いてアルゴリズムを説明する。最初の空の設計テーブルは図21に示すようなものであってもよい。ランダムな構成の数は
Figure 0007343963000255
個であってもよい。
Figure 0007343963000256
表IV-設計テーブル
トラバースされるパラメータの範囲は、それぞれ、
Figure 0007343963000257
Figure 0007343963000258
および
Figure 0007343963000259
である。さらには、制約
Figure 0007343963000260
は、
Figure 0007343963000261
の場合
Figure 0007343963000262
となることを示している。制約
Figure 0007343963000263
については後で詳述する。制約
Figure 0007343963000264
については説明不要である。順序付け
Figure 0007343963000265
を用いることにより、トラバースされる(実質的な)ツリーは、次のようなものであってもよい。10個の葉ノードを特徴とし、それぞれが制約に準拠するトラバースされるパラメータの値の組み合わせを定義する。
これは図21に示されている。
一番左の葉ノードがアクセスされると、3つの構成が作成されてもよく、ツリーの一番左の枝に従って、トラバースされるパラメータ
Figure 0007343963000266
が設定され、ランダムなパラメータ
Figure 0007343963000267
はまだ設定されない。
Figure 0007343963000268
表IV-設計テーブル
ランダムなパラメータの範囲は
Figure 0007343963000269
Figure 0007343963000270
および
Figure 0007343963000271
である。制約
Figure 0007343963000272
は、
Figure 0007343963000273
の場合
Figure 0007343963000274
であることを示している。
設計テーブルは、サブシーケンス
Figure 0007343963000275
に従ってランダムに選択されたランダムパラメータを用いて完成させてもよい。例えば、設計テーブルの第1の構成は、以下によって得てもよい。
1.
Figure 0007343963000276
2.
Figure 0007343963000277
3.制約
Figure 0007343963000278
をアクティブ化する。これは、
Figure 0007343963000279
を設定する。なぜなら
Figure 0007343963000280
だからである。
4.
Figure 0007343963000281
よって、
Figure 0007343963000282
表V-設計テーブル
同じ工程を各構成に繰り返すことにより以下の設計テーブルが得られる。
Figure 0007343963000283
表VI-設計テーブル
ここで、図22に示すように、次の葉ノードにアクセスする。
3つの新たな構成が設計テーブルに追加されてもよく、トラバースされるパラメータがアクセスされた枝に応じて設定されてもよい。
Figure 0007343963000284
表VII-設計テーブル
ランダムなパラメータは、順序に従って、適切な範囲内の値をランダムに選択することによって設定してもよい。
Figure 0007343963000285
表VIII-設計テーブル
この工程は、10番目の葉ノードがアクセスされるまで続いてもよい。結果として生成される設計テーブルは、30個の構成を含む。
テンプレート3DCADモデルの例
テンプレート3DCADモデルは、寸法、パラメータ、公式、および制約を有する立体を含むパラメータ化された3Dモデルである。パラメータの名前は、パラメータ/クラステーブルの名前である。テンプレートモデルは、熟練したユーザによって、パラメータに適切な値を設定することにより任意のクラスの任意のオブジェクトの3Dジオメトリを作成できるように設計される。論理的には、このテンプレートモデルの名前はルートクラス名である。ダッソー・システムズのCATIA(登録商標)システムが、この機能を提供する。
3Dモデル、画像、および訓練パターン
設計テーブルをテンプレートモデルに挿入することにより、3Dモデルの作成が自動化される。実際には、挿入された設計テーブルの行を選択するとアクティブな構成となり、テンプレートモデルのパラメータが構成の値で設定される。ジオメトリを更新することにより、3Dオブジェクトの形状が算出される。ダッソー・システムズのCATIA(登録商標)システムが、この機能を提供する。
Figure 0007343963000286
図23~図26は、パラメトリックモデルの定義付けの一例を説明するための図である。
ソファの上位クラスは、カウチのサブクラスを含んでいてもよい。
カウチのクラスを定義することは、6つの値の範囲、すなわち、「no」、「right」、「left」、「right+」、「left+」、および「double」を有し得る「angle_sofa」スタイルパラメータを定義することを含んでいてもよい。これらの値は図23に示されている。スタイルパラメータ「armrest」は、さらに、アームレストの数を提供する異なる値で定義されていてもよく、その範囲は、例えば、{0;1;2;3}である。これらの値は図24に示されている。スタイルパラメータ「base」は、さらにベースの種類を提供してもよく、その範囲は、例えば、4つの値、すなわち、「none」、「armrests」、「round」、および「square」を有する。これらの値の範囲は図25に示されている。カウチクラスは、さらに、寸法パラメータを含んでいてもよい。図26は、寸法パラメータの値が異なる、異なるインスタンスを示している。カウチクラスは、さらに、異なる部材について材料のリストの例を提供するテクスチャパラメータを含んでいてもよい。すべてのパラメータおよびその範囲が宣言されると、パラメータモデルを定義することは、パラメータ値を入力として3Dモデル化オブジェクトを生成する関数を定義することを含んでいてもよい。このような関数を定義する手法は、上で定義したパラメータに鑑みると、容易である。工程は、オプションとして、パラメータ間に制約を定義することを含んでいてもよい。
他の家具クラスも同様の手法で定義してもよい。表IXは、異なる家具クラスについてパラメータを提供し、これにより、これらのクラスについて効率的に多様なデータセットを作成することが可能になる。スタイルパラメータは、トラバースされるようにラベル付けされてもよい。寸法およびテクスチャパラメータはランダム化(例えばランダム化されるようにラベル付け)されていてもよい。
Figure 0007343963000287
Figure 0007343963000288
表IX-異なる家具クラスのパラメータ

Claims (14)

  1. 関数を学習するように構成されたデータセットを形成するための、コンピュータによって実施される方法であって、前記関数は、現実の物体の1つまたは複数のクラスのインスタンスの画像を入力とし、前記方法は、各クラスについて、
    当該クラスのパラメトリックモデルであって、CADシステムによって生成された前記クラスのパラメータ化されたテンプレートであり1つまたは複数の物体を含むパラメトリックモデルを提供することであって、前記パラメトリックモデルは各パラメータの集合についての範囲の集合を含み、前記パラメータの集合及び各範囲は、前記1つまたは複数の物体をパラメータ化し、前記パラメトリックモデルは前記範囲の集合内に提供される各値の集合により、クラスの各インスタンスを表す各3Dモデル化オブジェクトを生成するように構成され、前記パラメータの集合は、1つまたは複数のスタイルパラメータ及び1つまたは複数の寸法パラメータを含み、少なくとも1つのスタイルパラメータは、有限の範囲について意味記述子を含み、前記意味記述子は、前記有限の範囲の各値について前記クラスのインスタンスに関連する形状または配置情報を表し、前記パラメトリックモデルの前記1つまたは複数の物体のジオメトリは、各範囲における前記パラメータの値から更新可能である、提供することと、
    パラメトリックモデルにより複数の3Dモデル化オブジェクトを生成することであって、前記範囲の集合のうちの1つまたは複数をトラバースすることを含み、前記範囲の集合の1つまたは複数の各値にアクセスすることにより前記範囲の集合をトラバースすることを含み、前記有限の範囲の前記クラスの前記インスタンスに関する前記3Dモデル化オブジェクトの形状または配置情報をサンプリングし、前記パラメトリックモデルの前記1つまたは複数の物体のジオメトリは、アクセスされた値および/またはサンプルから更新される、生成することと、
    前記複数の3Dモデル化オブジェクトのそれぞれについて、1つまたは複数の対応する画像をデータセットに追加することと
    を含み、
    前記データセットが、各スタイルパラメータの各値について、当該値を前記パラメトリックモデルに入力することにより生成された3Dモデル化オブジェクトに対応する少なくとも1つの画像を含み、
    各寸法パラメータの各範囲の少なくとも1つの値は、前記データセットが、当該値を前記パラメトリックモデルに入力することにより生成された3Dモデル化オブジェクトに対応する画像を含まないようになっている
    ことを特徴とする方法。
  2. 請求項1に記載の方法であって、前記パラメータの集合は、1つまたは複数の特性パラメータを含むことを特徴とする方法。
  3. 請求項2に記載の方法であって、前記トラバースされる範囲の集合のうちの1つまたは複数は、それぞれ、特性パラメータのものであることを特徴とする方法。
  4. 請求項3に記載の方法であって、範囲がトラバースされる前記1つまたは複数の特性パラメータは、スタイルパラメータを含むことを特徴とする方法。
  5. 請求項2~4のいずれか1つに記載の方法であって、前記1つまたは複数の特性パラメータは、さらに、1つまたは複数の寸法パラメータを含み、前記生成することは、前記1つまたは複数の寸法パラメータの範囲をサンプリングすることを含むことを特徴とする方法。
  6. 請求項1~5のいずれか1つに記載の方法であって、前記生成することは、前記範囲の集合のうち他の1つまたは複数をランダム化することを含むことを特徴とする方法。
  7. 請求項6に記載の方法であって、前記ランダム化は、ランダム化されていない範囲の集合のうちの1つまたは複数の集合における値の各組み合わせについて、ランダム化された範囲に対するランダムな値の組み合わせを、クラスについて所定の個数提供することを含むことを特徴とする方法。
  8. 請求項1~7のいずれか1つに記載の方法であって、前記パラメトリックモデルは、さらに、各パラメータを互いにリンクさせる1つまたは複数の制約をさらに含み、当該1つまたは複数の制約は、比例制約または条件/アクション制約の1つ以上を含み、比例制約は、パラメータの数値が他のパラメータの数値に比例するように制約し、条件/アクション制約は、少なくとも1つの他のパラメータの範囲を制約することを特徴する方法。
  9. 請求項8に記載の方法であって、前記生成することは、トラバースされる前記範囲の集合のうちの前記1つまたは複数について優先順位を与える前記パラメータの集合に対して定義され、かつ、前記1つまたは複数の制約に基づく、順序付けにしたがって行われ、当該順序付けは、有向グラフを用いて計算され、グラフはノードとアークを含み、グラフの各ノードは制約、少なくとも1つのパラメータおよび/または少なくとも1つの他のパラメータに対応し、少なくとも1つのアークは少なくとも1つのパラメータから所定の制約へ、および所定の制約から少なくとも1つの他のパラメータへ方向付けられることを特徴とする方法。
  10. 請求項1~9のいずれか1つに記載の方法にしたがってデータセットを形成するように構成された、現実の物体のクラスのパラメトリックモデルを定義するための、コンピュータによって実施される方法であって、前記パラメトリックモデルは、各パラメータの集合についての範囲の集合を含み、前記パラメトリックモデルは、前記範囲の集合内に提供される各値の集合により、クラスの各インスタンスを表す各3Dモデル化オブジェクトを生成するように構成されており、前記方法は、
    前記パラメータの集合と、各パラメータについての範囲とを、定義することと、
    前記データセットを形成する際にトラバースされるように1つまたは複数の範囲にラベル付けすることと
    を含むことを特徴とする方法。
  11. 請求項10に記載の方法であって、さらに、それぞれが各パラメータを互いにリンク付けする、1つまたは複数の制約を定義することと、オプションで、トラバースされ、かつ、前記1つまたは複数の制約に基づく、前記範囲の集合のうちの、前記1つまたは複数について優先順位を付ける前記パラメータの集合に対して、順序を定義することを含むことを特徴とする方法。
  12. コンピュータに、請求項1~9のいずれか1つに記載の方法を実行させるための命令を含むコンピュータプログラム。
  13. 請求項12に記載のコンピュータプログラムを記憶したコンピュータ読み取り可能媒体を備え、前記コンピュータプログラムを実行する装置。
  14. 請求項13に記載の装置であって、前記装置は、前記コンピュータ読み取り可能媒体に接続されたプロセッサをさらに備えることを特徴とする装置。
JP2018114621A 2017-06-16 2018-06-15 画像を入力とする関数を学習するためのデータセット Active JP7343963B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023020145A JP2023071722A (ja) 2017-06-16 2023-02-13 画像を入力とする関数を学習するためのデータセット

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP17305738.1A EP3416103A1 (en) 2017-06-16 2017-06-16 Dataset for learning a function taking images as inputs
EP17305738.1 2017-06-16

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023020145A Division JP2023071722A (ja) 2017-06-16 2023-02-13 画像を入力とする関数を学習するためのデータセット

Publications (2)

Publication Number Publication Date
JP2019032820A JP2019032820A (ja) 2019-02-28
JP7343963B2 true JP7343963B2 (ja) 2023-09-13

Family

ID=59227675

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018114621A Active JP7343963B2 (ja) 2017-06-16 2018-06-15 画像を入力とする関数を学習するためのデータセット
JP2023020145A Withdrawn JP2023071722A (ja) 2017-06-16 2023-02-13 画像を入力とする関数を学習するためのデータセット

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023020145A Withdrawn JP2023071722A (ja) 2017-06-16 2023-02-13 画像を入力とする関数を学習するためのデータセット

Country Status (4)

Country Link
US (1) US10984317B2 (ja)
EP (1) EP3416103A1 (ja)
JP (2) JP7343963B2 (ja)
CN (1) CN109145352B (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11348032B1 (en) * 2018-09-02 2022-05-31 Meta Platforms, Inc. Automated generation of machine learning models
EP3671660A1 (en) * 2018-12-20 2020-06-24 Dassault Systèmes Designing a 3d modeled object via user-interaction
EP3674870A1 (en) * 2018-12-29 2020-07-01 Dassault Systèmes Learning a neural network for inference of editable feature trees
EP3675061A1 (en) * 2018-12-29 2020-07-01 Dassault Systèmes Forming a dataset for inference of editable feature trees
CN110096674B (zh) * 2019-04-29 2022-10-18 电子科技大学 一种基于参数依赖的仪器参数校正方法
JP7313942B2 (ja) * 2019-07-17 2023-07-25 株式会社エビデント 評価支援方法、評価支援システム、プログラム
CN113222307A (zh) * 2020-01-21 2021-08-06 厦门邑通软件科技有限公司 一种生成操作行为记录集的仿真方法、系统和设备
JP6868875B1 (ja) * 2020-07-31 2021-05-12 株式会社アイエンター 姿勢推定学習システム、姿勢推定学習方法及び機械学習用データの作成プログラム
US11961052B2 (en) * 2020-12-15 2024-04-16 Caterpillar Inc. Systems and methods for wear assessment and part replacement timing optimization
US11886541B2 (en) * 2021-11-17 2024-01-30 Ford Motor Company Systems and methods for generating synthetic images of a training database
US20240111405A1 (en) * 2022-09-28 2024-04-04 Zazzle Inc. Gui for parametric modelling and grading

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE602007003849D1 (de) * 2007-10-11 2010-01-28 Mvtec Software Gmbh System und Verfahren zur 3D-Objekterkennung
JP5352738B2 (ja) * 2009-07-01 2013-11-27 本田技研工業株式会社 3次元モデルを使用した物体認識
WO2011146619A2 (en) * 2010-05-19 2011-11-24 The Regents Of The University Of California Systems and methods for identifying drug targets using biological networks
JP2012008685A (ja) * 2010-06-23 2012-01-12 Yamatake Corp 3次元データ生成装置、生成方法およびプログラム
JP5639499B2 (ja) * 2011-02-17 2014-12-10 セコム株式会社 顔画像処理装置
JP5989536B2 (ja) * 2012-12-21 2016-09-07 京セラ株式会社 太陽電池および太陽電池モジュール
EP2990970A1 (en) * 2014-08-26 2016-03-02 Dassault Systèmes Execution of sequential update
EP3163536B1 (en) * 2015-10-30 2021-12-08 Dassault Systèmes Compression of a three-dimensional modeled object
US11664125B2 (en) * 2016-05-12 2023-05-30 Siemens Healthcare Gmbh System and method for deep learning based cardiac electrophysiology model personalization
JP7011146B2 (ja) * 2017-03-27 2022-01-26 富士通株式会社 画像処理装置、画像処理方法、画像処理プログラム、及び教師データ生成方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Hao Su et al.,"Render for CNN:Viewpoint estimation in images using CNNs trained with rendered 3D model views",2015 International Conference on Computer Vision,2015.12.7,pages 2686-2694
手塚、谷口、大渕、「教示例の人工的拡張により学習効率を改善した3次元形状類似検索」、情報処理学会技術研究報告[グラフィクスとCAD]、2008-CG-131、2008.7.7、pages 1-6

Also Published As

Publication number Publication date
CN109145352B (zh) 2024-04-26
US10984317B2 (en) 2021-04-20
JP2023071722A (ja) 2023-05-23
CN109145352A (zh) 2019-01-04
JP2019032820A (ja) 2019-02-28
US20180365565A1 (en) 2018-12-20
EP3416103A1 (en) 2018-12-19

Similar Documents

Publication Publication Date Title
JP7343963B2 (ja) 画像を入力とする関数を学習するためのデータセット
JP7464387B2 (ja) 3dモデル化オブジェクト推定のための機械学習
JP7388811B2 (ja) オートエンコーダの学習
JP7491685B2 (ja) ニューラルネットワークのセット
CN108228987B (zh) 副本选择
Mitra et al. Shadow art
JP7049807B2 (ja) パラメトリックビュー関数に基づくデータベースの照会
EP3038060B1 (en) 3D modeled object defined by a grid of control points
EP3051446A1 (en) Engraving a 2D image on a subdivision surface
CN111382778A (zh) 形成用于推测实体cad特征的数据集
CN111382530A (zh) 学习用于推测实体cad特征的神经网络
JP2022036024A (ja) パラメータ化された3dモデルを出力するニューラルネットワーク
CN105761303A (zh) 在3d建模组件上创建包围盒
JP2021012693A (ja) 機能構造に対するモデリング演算
JP2022036023A (ja) 3dモデルを出力する変分オートエンコーダ
JP2020115340A (ja) 弱型定義を用いるモデリング
JP2021120853A (ja) 平滑マップによる3d再構成
JP2021131854A (ja) 変形の基礎学習
JP7294788B2 (ja) 3d配置のタイプに応じた2d画像の分類
JP2017168081A (ja) 記述子を用いた3dオブジェクトの位置特定
CN107066926B (zh) 使用描述符的3d对象定位
Bernard et al. Virtual engineering based on knowledge integration
JP2020115341A (ja) 弱型定義を用いるフレキシブルモデリング
Petse Modeling Virtual Environments 3d Assets from Visual Inputs
JP2023160791A (ja) 画像からの3d再構成

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220831

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20221011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230213

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20230213

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20230222

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20230228

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20230310

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20230314

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20230404

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230901

R150 Certificate of patent or registration of utility model

Ref document number: 7343963

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150