IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社Preferred Networksの特許一覧

特許7119081投影データ生成装置、3次元モデル、投影データ生成方法、ニューラルネットワーク生成方法及びプログラム
<>
  • 特許-投影データ生成装置、3次元モデル、投影データ生成方法、ニューラルネットワーク生成方法及びプログラム 図1
  • 特許-投影データ生成装置、3次元モデル、投影データ生成方法、ニューラルネットワーク生成方法及びプログラム 図2
  • 特許-投影データ生成装置、3次元モデル、投影データ生成方法、ニューラルネットワーク生成方法及びプログラム 図3
  • 特許-投影データ生成装置、3次元モデル、投影データ生成方法、ニューラルネットワーク生成方法及びプログラム 図4
  • 特許-投影データ生成装置、3次元モデル、投影データ生成方法、ニューラルネットワーク生成方法及びプログラム 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-05
(45)【発行日】2022-08-16
(54)【発明の名称】投影データ生成装置、3次元モデル、投影データ生成方法、ニューラルネットワーク生成方法及びプログラム
(51)【国際特許分類】
   G06T 15/00 20110101AFI20220808BHJP
【FI】
G06T15/00 501
【請求項の数】 17
(21)【出願番号】P 2020520389
(86)(22)【出願日】2019-05-24
(86)【国際出願番号】 JP2019020624
(87)【国際公開番号】W WO2019225734
(87)【国際公開日】2019-11-28
【審査請求日】2020-12-04
(31)【優先権主張番号】P 2018099397
(32)【優先日】2018-05-24
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】515130201
【氏名又は名称】株式会社Preferred Networks
(74)【代理人】
【識別番号】100091487
【弁理士】
【氏名又は名称】中村 行孝
(74)【代理人】
【識別番号】100105153
【弁理士】
【氏名又は名称】朝倉 悟
(74)【代理人】
【識別番号】100118876
【弁理士】
【氏名又は名称】鈴木 順生
(74)【代理人】
【識別番号】100202429
【弁理士】
【氏名又は名称】石原 信人
(72)【発明者】
【氏名】安藤 崇紘
【審査官】千葉 久博
(56)【参考文献】
【文献】特開2018-73393(JP,A)
【文献】特開2017-142788(JP,A)
【文献】特開2004-309947(JP,A)
【文献】米国特許出願公開第2015/0145861(US,A1)
【文献】米国特許出願公開第2006/0028474(US,A1)
【文献】前田浩輔 ほか,畳み込みニューラルネットワークを用いた3DCGによる強弱有り線画像の生成,情報処理学会研究報告 コンピュータグラフィックスとビジュアル情報学(CG),日本,情報処理学会,2018年02月24日,第2018-CG-169巻, 第7号,p.1-7,ISSN 2188-8949
【文献】Hiroharu KATO ほか,Neural 3D Mesh Renderer,[オンライン],2017年11月20日,p.1-17,[検索日 2019.07.04], インターネット<URL:https://arxiv.org/pdf/1711.07566.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/00
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのメモリと、
少なくとも1つのプロセッサと、を備え、
前記少なくとも1つのプロセッサは、
3次元モデルに関する情報から、2次元空間内における投影データに関する情報を取得することと、
前記投影データに関する情報と、前記3次元モデルの一部の領域の識別情報と前記一部の領域が前記2次元空間内において投影されるピクセルに関する情報とを紐付ける情報とを、前記少なくとも1つのメモリに記憶することと、
前記投影データに関する情報から、前記投影データを生成することと、
を実行する、
投影データ生成装置。
【請求項2】
前記少なくとも1つのプロセッサは、シェーディング又はレンダリングを用いて、前記投影データを生成する、
請求項1に記載の投影データ生成装置。
【請求項3】
教師データと前記投影データの間の誤差を表す情報を用いて、前記シェーディング又は前記レンダリングに用いるパラメータを更新する、
請求項2に記載の投影データ生成装置。
【請求項4】
前記少なくとも1つのプロセッサは、遅延シェーディングを用いて前記投影データを生成する、
請求項2又は請求項3に記載の投影データ生成装置。
【請求項5】
前記少なくとも1つのメモリは、Gバッファである、
請求項4に記載の投影データ生成装置。
【請求項6】
前記少なくとも1つのプロセッサは、前方シェーディングを用いて前記投影データを生成する、
請求項2又は請求項3に記載の投影データ生成装置。
【請求項7】
前記少なくとも1つのプロセッサは、微分可能な演算により前記投影データを生成する、
請求項1から請求項6のいずれかに記載の投影データ生成装置。
【請求項8】
前記少なくとも1つのプロセッサは、ニューラルネットワークを用いて前記投影データを生成する、
請求項1に記載の投影データ生成装置。
【請求項9】
教師データと前記投影データの間の誤差を表す情報を用いて、前記ニューラルネットワークを更新する、
請求項8に記載の投影データ生成装置。
【請求項10】
前記少なくとも1つのプロセッサは、前記紐付ける情報を用いて、教師データと前記投影データの間の誤差を表す情報を前記3次元モデルに逆伝播し、前記逆伝播に基づいて前記3次元モデルを更新する、
請求項1から請求項9のいずれかに記載の投影データ生成装置。
【請求項11】
前記3次元モデルの前記一部の領域は、多角形で表される、
請求項1から請求項10のいずれかに記載の投影データ生成装置。
【請求項12】
前記投影データに関する情報は、色、法線ベクトル、アルベド、深度、距離、反射特性、放射、拡散、遮蔽、照明、又は、照明計算に利用するデータ、のうち少なくとも1つに関する情報を含む、
請求項1から請求項11のいずれかに記載の投影データ生成装置。
【請求項13】
前記識別情報は、前記3次元モデルの前記一部の領域の識別子又は座標のいずれかである、
請求項1から請求項12のいずれかに記載の投影データ生成装置。
【請求項14】
少なくとも1つのプロセッサにより、
3次元モデルに関する情報から、2次元空間内における投影データに関する情報を取得することと、
前記投影データに関する情報と、前記3次元モデルの一部の領域の識別情報と前記一部の領域が前記2次元空間内において投影されるピクセルに関する情報とを紐付ける情報とを、少なくとも1つのメモリに記憶することと、
前記投影データに関する情報から、前記投影データを生成することと、
を含む投影データ生成方法。
【請求項15】
少なくとも1つのプロセッサにより、
3次元モデルに関する情報から、2次元空間内における投影データに関する情報を取得することと、
前記投影データに関する情報と、前記3次元モデルの一部の領域の識別情報と前記一部の領域が前記2次元空間内において投影されるピクセルに関する情報とを紐付ける情報とを、少なくとも1つのメモリに記憶することと、
前記投影データに関する情報から、前記投影データを生成することと、
前記紐付ける情報を用いて、教師データと前記投影データの間の誤差を表す情報を前記3次元モデルに逆伝播し、前記逆伝播に基づいて前記3次元モデルを更新することと、
を含む3次元モデル生成方法。
【請求項16】
少なくとも1つのプロセッサにより、
3次元モデルに関する情報から、2次元空間内における投影データに関する情報を取得することと、
前記投影データに関する情報と、前記3次元モデルの一部の領域の識別情報と前記一部の領域が前記2次元空間内において投影されるピクセルに関する情報とを紐付ける情報とを、少なくとも1つのメモリに記憶することと、
前記投影データに関する情報から、ニューラルネットワークにより、前記投影データを生成することと、
前記紐付ける情報を用いて、教師データと前記投影データの間の誤差を表す情報を逆伝播し、前記ニューラルネットワークを更新することと、
を含むニューラルネットワーク生成方法。
【請求項17】
少なくとも1つのプロセッサにより実行されると、
3次元モデルに関する情報から、2次元空間内における投影データに関する情報を取得することと、
前記投影データに関する情報と、前記3次元モデルの一部の領域の識別情報と前記一部の領域が前記2次元空間内において投影されるピクセルに関する情報とを紐付ける情報とを、少なくとも1つのメモリに記憶することと、
前記投影データに関する情報から、前記投影データを生成することと、
を含む方法を実行するプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、レンダリング装置、学習装置、レンダリング方法及びプログラムに関する。
【背景技術】
【0002】
機械学習の応用は、広い範囲において適用され始めている。2次元の画像から3次元のオブジェクトのモデリングを行う学習をする手法も提案されている。しかしながら、一般的なレンダリングエンジンを用いる場合、レンダリングされた2次元のピクセルの情報から3次元モデル上の元となる領域へと情報を伝播する手段がなく、学習に用いるロスを逆伝播させることが容易ではない。したがって、学習において、モデリングされた3次元オブジェクトから2次元の画像を生成する際には専用のレンダリングエンジンが必要となり、一般的なレンダラーを適用して学習を行うことが困難である。
【発明の開示】
【0003】
そこで、本発明の実施形態は、レンダリング結果からロスの逆伝播を可能とするレンダリング装置を提案する。
【0004】
一実施形態によれば、レンダリング装置は、3次元モデルのデータから2次元空間内における投影データを生成するレンダリング装置であって、前記3次元モデルの領域に関する情報から、前記2次元空間内における前記投影データに関する情報を取得する、情報取得部と、前記投影データに関する情報を、前記領域に関する情報と紐付けて記憶する、記憶部と、前記投影データに関する情報から、前記投影データを生成する、投影データ生成部と、を備える。
【図面の簡単な説明】
【0005】
図1】一実施形態に係るレンダリング装置の機能を示すブロック図。
図2】一実施形態に係るレンダリング装置の処理を示すフローチャート。
図3】一実施形態に係る3次元モデルと2次元投影データの対応を示す図。
図4】一実施形態に係る学習装置2の機能を示すブロック図。
図5】一実施形態に係るハードウェア構成の一例を示す図。
【発明を実施するための形態】
【0006】
以下、図面を参照して本発明の実施形態について説明する。図面及び実施形態の説明は一例として示すものであり、本発明を限定するものではない。
【0007】
図1は、本実施形態に係るレンダリング装置1を示す図である。レンダリング装置1は、情報取得部10と、記憶部12と、投影データ生成部14と、出力部16と、を備え、3次元モデルから、当該3次元モデルを2次元空間へと投影した画像を生成する。以下の説明において、例えば、レンダリング装置1の投影データ生成部14は、ニューラルネットワークを含むシェーダ又はレンダリングエンジンを備えていてもよい。
【0008】
情報取得部10は、3次元モデルにおいて、2次元空間における画像データを生成するために必要となる情報を取得する。例えば、3次元モデルが与えられると、3次元モデルを多角形のメッシュ状の領域(ポリゴン)に分割し、分割されたポリゴンにおける3次元モデルの情報を取得する。このポリゴンは、所謂プリミティブであり、三角形で表現される場合には、トライアングルと呼ばれるものである。以下の説明においては、ポリゴンとして説明をするが、ポリゴンを含むより広い概念としての3次元モデルの一部(又は全部)の領域を表す曲面であってもよい。すなわち、一般的に行われているように、3次元モデルを曲面に分割し、当該分割された曲面に対して処理を行うものとして説明をするが、必ずしもこの態様には限定されるものではない。また、以下の説明においては、3次元モデルを分割した一部を用いて処理を行うが、3次元モデルの大きさ、領域、形状等によっては、3次元モデルの全部を用いて以下の処理を行ってもよい。
【0009】
この情報の取得のために、まず、ポリゴンの頂点の座標の変換を実行する。座標の変換は、例えば、ローカル座標(3次元)をワールド座標(3次元)へ変換し、ワールド座標をビュー座標系(3次元)へ変換し、ビュー座標系をプロジェクション座標系(2次元)へ変換し、プロジェクション座標をスクリーン座標(2次元)へと変換することにより、3次元モデルが(仮想的に)存在する座標系から、画像データが描画される2次元空間への座標系へと変換が行われる。これらの座標系の変換は、一般に行われている変換を使用する。もっとも、全ての座標系を経由する必要は無く、ローカル座標又はワールド座標からスクリーン座標へと変換できるものであればよい。
【0010】
このように、3次元モデルを分割した各領域における頂点の情報を3次元空間の座標から、投影される2次元空間の座標へと変換することにより、3次元モデルを2次元空間へと描画することが可能となる。情報取得部10は、3次元モデルの各領域の情報に基づいて、投影先の2次元空間における位置(例えば、画素)における、照明計算に利用する色・反射特性に関する情報を取得する。照明計算に利用する情報とは、例えば、法線ベクトルや、アルベド、深度・距離(Depth/Distance)、反射特性(Reflection)、放射(Emission)、拡散(Diffusion)、遮蔽(Ambient Occlusion)、照明(Lightmap)等の投影データに関する情報のうち少なくとも1つを含む情報である。また、これらには限られず、投影データ生成のための照明計算に必要な他の情報を含んでいてもよい。各領域の形状は、各領域が2次元座標へと変換された際に2次元座標において表現される頂点及びこれら頂点を接続する線分、曲線及び面等のうち少なくとも1つを用いて表現される。また、投影データに関する情報が、2次元空間内における位置情報を含んでいてもよい。
【0011】
なお、以下において、投影データに関する情報(投影情報と記載する)とは、上記の照明計算に利用する情報そのものを含んでいてもよいし、これら照明計算に利用する情報から投影データ生成部14等により加工され、記憶部12に記憶されているデータを含んでいてもよい。この投影情報は、シェーディング手法により様々な形態で記憶される情報であり、上述のように、加工をしていない照明計算に利用するデータを含んでもよいし、当該データについて、ある程度計算を進め、投影データを生成する段階を進めたデータを含んでもよい。例えば、遅延シェーディングを適用する場合のように、照明計算に利用するデータそのものを含むものであってもよいし、前方シェーディングを適用する場合のように、3次元空間内に設置された複数の光源のうち1の光源に対して照明計算に利用するデータから計算された、投影データの生成途中のデータを含むものであってもよい。さらには、投影情報は、上記の例で挙げたデータ種類(法線ベクトル、アルベド、その他)のうち未加工又は加工済の少なくとも1つのデータを含むものであると定義する。
【0012】
記憶部12は、情報取得部10により取得された2次元空間内の各位置における色情報等の照明計算に利用する情報を記憶する。さらに、本実施形態においては、各位置において、これら色情報等の情報と併せて、3次元空間内の位置情報を記憶する。この3次元空間内の位置情報とは、例えば、上述したポリゴンに付与された識別子、又は、ポリゴンの頂点の座標(ローカル座標またはワールド座標)を示す。識別子は、ポリゴンにユニークに付与されるものであってもよい。すなわち、2次元空間内のある位置を示す記憶領域内に、当該位置に投射される3次元モデルにおけるポリゴンの識別子又はポリゴンの各頂点の座標が記憶される。
【0013】
このようにデータの紐付けをしておくことにより、2次元空間内に投影されたデータの位置に基づいて、3次元モデル内の位置、より詳しくは、3次元モデル内のいずれのポリゴンに属している領域の投影であるかを把握することが可能となる。
【0014】
投影データ生成部14は、記憶部12に記憶されている投影情報に基づいて、最終的に描画される2次元の投影データを微分可能な演算を用いて生成する。例えば、色情報や法線ベクトルの情報に基づいて、3次元空間上に存在する光源から出た反射光を演算し、2次元空間内の各位置における色、輝度等の情報を算出し、投影データを生成する。
【0015】
上記には限られず、投影データ生成部14は、記憶部12に記憶されているデータではなく、情報取得部10により取得されたデータに基づいて投影データを生成するようにしてもよい。この投影データの生成は、一般的なシェーディング処理により行われてもよい。
【0016】
例えば、微分可能な処理である遅延シェーディング処理をシェーディング手法として選択した場合には、記憶部12は、所謂Gバッファ(Geometry Buffer)を兼ねるものであってもよく、Gバッファに記憶される色情報等とともに、3次元空間における頂点の座標情報等を紐付けて記憶してもよい。この場合、記憶部12に記憶されているデータに基づいて、投影データ生成部14が投影データを生成する。尤も、遅延シェーディングは、一例として挙げたものであり、他のシェーディング手法を使用してもよい。
【0017】
出力部16は、投影データ生成部14が生成した投影データを出力する。この出力部16は、例えば、ディスプレイを備え、ディスプレイ上に投影データを描画して出力してもよい。別の例としては、投影データを適切な画像データへと変換し、当該画像データをファイルサーバ、ネットワークを介した別の装置、又は、記憶部12等へと出力するようにしてもよい。
【0018】
図2は、本実施形態に係るレンダリング装置1のレンダリング処理の一例を示すフローチャートである。この図2を用いて、レンダリング装置1の処理について説明する。
【0019】
まず、情報取得部10は、3次元モデルをポリゴンに分割する(S100)。なお、3次元モデル自体がポリゴンデータを備えて構成されている場合には、このステップを省略することも可能である。
【0020】
次に、情報取得部10は、3次元空間内におけるポリゴンの頂点の座標を取得する(S102)。上述した座標変換を実行し、2次元への投影データを生成するために、着目しているポリゴンの3次元空間内における頂点の座標を取得する。
【0021】
次に、情報取得部10は、S102で取得した座標データに上述した座標変換を施すことにより、当該ポリゴンが投影される2次元座標を算出する(S104)。2次元空間内において、ポリゴンの頂点の座標を変換し、当該変換された座標を線分で接続することにより当該ポリゴンが投影される2次元空間内の座標を特定する。
【0022】
次に、情報取得部10は、S104で取得されたポリゴンの座標に基づいて、2次元空間内の当該ポリゴンが投影される座標と、当該ポリゴンの識別子、又は、当該ポリゴンの3次元空間内の頂点の座標とを紐付けて記憶部12へと記憶する(S106)。このように記憶部12には、2次元座標に対して、ポリゴンの情報が記憶される。
【0023】
次に、投影データ生成部14は、情報取得部10が取得したデータ、又は、記憶部12に記憶されているデータに基づいて投影データを生成する(S108)。
【0024】
一例として、投影データ生成部14は、情報取得部10が取得した3次元モデルのポリゴンデータの色情報及び法線ベクトル情報等に基づいて、設置されている光源を考慮して2次元空間内に投影される画素のデータを算出する。投影データの算出は、上述したように、遅延シェーディングで行ってもよいし、前方シェーディングで行ってもよい。
【0025】
遅延シェーディングを行う場合、投影される2次元空間内のピクセルの座標それぞれに対して、色情報等の描画に必要な情報と、併せて、ポリゴンを識別するための情報と、情報取得部10により取得され、記憶される。投影データ生成部14は、これらの記憶されたデータのうち、描画に必要な情報と、光源等の情報を用いて、投影データを生成する。
【0026】
前方シェーディングを行う場合、S106とS108とを入れ替えてもよく、投影データ生成部14が情報取得部10により取得された情報に基づいて投影データを各ピクセルについて算出した後、情報取得部10が取得したポリゴンを識別する情報と併せて、それぞれのピクセルを示すメモリ領域に記憶させてもよい。尤もこれには限られず、ピクセルを示すメモリ領域内に、ポリゴンを識別する情報をあらかじめ記憶させ、その後、投影データ生成部14が色情報等と、光源等の情報から投影データを生成する。光源が複数ある場合には、生成途中のデータについて、ポリゴンを識別する情報と併せて記憶するようにしてもよいし、別のメモリ領域を用いて記憶してもよい。
【0027】
描画に必要なポリゴンのそれぞれについて2次元空間内のピクセルとの紐付け、及び、描画データの生成が終了した後に、レンダリング装置1は、出力部16からデータ等を出力して処理を終了する。投影データの生成に必要なポリゴンについて処理が終了していない場合、当該ポリゴンについて、S102からS108の処理を行う。遅延シェーディングの場合は、S102からS106までの処理を全てのポリゴンについて行った後に、S108の処理を行うようにしてもよい。
【0028】
図3は、一例として、遅延シェーディングを行う場合における、3次元モデルから投影データを生成するときのメモリの格納方法を示した図である。この処理は、微分可能な演算により構成されている。左の図は、3次元モデルを示し、右の図は、投影された画像を示している。3次元モデルの領域R1が2次元空間の投射P1へと投射されたものとする。同様に、領域R2が投射P2へと投射されたものとする。左の図中の矢印の方向から見た投影が右の図であるものとする。
【0029】
ここで、投射P1内の座標(x11,y11)の画素(ピクセル)について記憶されているデータと、投射P1内の座標(x12,y12)の画素(ピクセル)について記憶されているデータとについて説明する。代表的な例として、各画素の色情報、法線ベクトル情報を挙げて説明するが、記憶するパラメータ及びこれらのパラメータの並び順等は、これに限られるものではない。
【0030】
座標(x11,y11)と紐付けられて、領域R1内の当該ピクセルに対応する領域の色情報、法線ベクトルの情報が、それぞれC11、N11であるとして、図に示すように、例えば、(x11,y11,R1,C11,N11,・・・)として記憶部12に記憶される。R1は、領域R1の識別情報であり、例えば、上述したようにポリゴンの識別子、又は、頂点の座標である。色情報、法線ベクトルの情報のみならず、他の情報も同様に記憶していてもよい。
【0031】
座標(x12,y12)と紐付けられて、同様に、(x12,y12,R1,C12,N12,・・・)として記憶部12に記憶される。ただし、同じポリゴン上においては同じ色情報、法線情報を持つものとして考える場合には、C12=C11、N12=N11である。このように、2次元空間内における座標の情報から、3次元モデル上のいずれの領域に属しているかを辿ることができる情報を付与して記憶する。
【0032】
記憶の方法は、図示している方法には限られない。例えば、色情報、法線ベクトル情報、ポリゴン情報に対してそれぞれまとめて記憶できる領域を用意しておき、2次元のメモリ空間内で座標に対応するように配置して記憶するようにしてもよい。この場合、色情報テンソル、法線ベクトル情報テンソル、ポリゴン情報テンソル等が別々の領域に確保されることとなる。
【0033】
別の例としては、座標に対して、色情報、法線ベクトル情報、ポリゴン情報をまとめて記憶できる領域を用意してもよい。この場合、座標(x11,y11)のメモリ領域に対して、(R1,C12,N12,・・・)と言うようなデータが格納される。これらには限られず、他の様々なメモリ領域の使用方法でデータが格納されていてもよい。
【0034】
領域R2についても、同様に、投影P2内のそれぞれのピクセルに対して、データが格納される。例えば、座標(x21,y21)に対して、(x21,y21,R2,C21,N21,・・・)といったデータが格納される。
【0035】
なお、上述したようにポリゴン内において同じ色情報及び同じ法線ベクトル情報等が与えられる場合には、投影P1等の頂点における座標と、R1の情報と、色情報等の描画に必要となる情報とを紐付けて格納するようにしてもよい。投影データにおいては、2次元空間内の座標は、3次元モデルの領域の投影された頂点の座標に基づいて、いずれの領域からの投影であるかを逆算することが可能である。
【0036】
遅延シェーディングである場合、これらの色情報等の描画に必要な情報を用いて、光源や視点等の条件から、投影データ生成部14が投影データを生成する。
【0037】
前方シェーディングの場合も同様に、3次元モデルの領域に関する情報(以下、領域情報と記載する)を格納することが可能である。例えば、前方シェーディングでは、各シェーディングの段階のそれぞれにおいて、投影データの色情報とともに、3次元モデルの領域情報を記憶しておくことにより実装することが可能である。この場合、一度領域情報が書き込まれたピクセルに対しては、再度領域情報を書き込む必要は無いので、2回目からの書き込みに対しては領域情報を書き込まないようにすることも可能である。
【0038】
以上のように、本実施形態によれば、投影されたデータの各画素(ピクセル)と、3次元モデルの対応するポリゴンとを紐付けて格納することにより、投影されたデータの画素が、3次元モデルのいずれのポリゴンを微分可能な処理により投影したものなのかを辿ることが可能となる。
【0039】
以下、前述した実施形態に係るレンダリング装置1を利用したレンダリング装置1の学習装置について説明する。以下の説明において、例えば、レンダリング装置1の投影データ生成部14は、ニューラルネットワークを含むシェーダ又はレンダリングエンジンを備えている。
【0040】
図4は、レンダリング装置1の学習装置2について示すブロック図である。学習装置2は、レンダリング装置1と、入力部20と、誤差算出部22と、逆伝播部24と、出力部26と、を備える。また、別の例として、学習装置2は、レンダリング装置1とは、別の独立した構成であってもよい。
【0041】
入力部20は、3次元モデルの入力を受け付ける。別の例として、2次元投影の教師データの入力をさらに受け付けるものであってもよい。
【0042】
誤差算出部22は、入力部20から入力された3次元モデルに基づいてレンダリング装置1により生成された投影データから、誤差(ロス)を算出する。例えば、2次元投影された教師データがある場合には、当該教師データと、投影データとの各ピクセルにおける各色空間の情報から、ニューラルネットワークの更新に用いる誤差を算出する。
【0043】
誤差の算出は、これには限られず、形状の情報、すなわち、投影データの部分の座標と、当該投影データに対応する3次元モデルの領域の座標から算出した理想的な投影データにおける座標との誤差であってもよいし、3次元モデルに付されたテクスチャが、レンダリング装置1による変換及び理想的なデータにおいて、投影データのどのようなテクスチャに変換されたかに基づいた誤差であってもよい。
【0044】
逆伝播部24は、誤差算出部22が算出した誤差をニューラルネットワークの前の層へと逆伝播する。例えば、出力層において算出された誤差は、出力層の1つ前の隠れ層に逆伝播される。当該層に伝播された誤差を用いて当該層の重み付け行列を更新した後、誤差算出部22により誤差が算出され、算出された誤差がさらに1つ前の層へと逆伝播される。このように、入力層、又は、入力層の1つ先の層に至るまで逆伝播が繰り返され、重み行列、すなわち、ニューラルネットワークのパラメータが更新される。
【0045】
ニューラルネットワークの更新に係るエポック数、バッチ数等は、任意に決めてもよい。この更新は、一般的な更新方法で更新することが可能である。
【0046】
このような逆伝播は、投影データの座標が、3次元モデルにおけるいずれのポリゴンに該当するかを判断することにより行うことが可能であるので、レンダリング装置1の記憶部12に記憶されているポリゴンの識別子のデータを用いることにより、逆伝播を行うことが可能となる。順伝播を行うタイミングにおいて、3次元モデルのどのポリゴンからのレンダリング結果が着目した投影データの画素のデータに変換されたかの情報が必要なためである。
【0047】
出力部26は、逆伝播部24により更新されたニューラルネットワークを出力する。上記の場合、例えば、シェーダ又はレンダリングエンジンを出力してもよい。
【0048】
なお、上述においては、ニューラルネットワークであるとしたが、これには限られない。例えば、3次元モデルが入力されると投影データが出力される一般的なシェーダ又はレンダリングエンジンであって、シェーディング又はレンダリングの際に用いるパラメータの修正を受け付けることが可能なものであってもよい。
【0049】
この場合、誤差算出部22が投影データのあるピクセルの色情報と、理想の色情報とを比較して誤差を算出する。次に、逆伝播部24が、シェーダ又はレンダリングエンジンに当該誤差をフィードバックして、ニューラルネットワークを用いない一般的な最適化手法により、シェーダ又はレンダリングエンジンの最適化を行う。このように、本実施形態の利用できる範囲は、ニューラルネットワークには限られない。
【0050】
さらに応用すると、このようなレンダリング装置1及び学習装置2を用いることにより、誤差関数や目標2次元投影データなどで定義されるような指標の最も適合する理想の2次元投影データを出力するような3次元モデルを形成することも可能である。この場合、シェーダ又はレンダリングエンジンに対してフィードバックを行うのではなく、3次元モデルに対してフィードバックを行うことにより実現することが可能である。
【0051】
前述した実施形態によれば、各領域における識別子を付与した微分可能なレンダリングを実装することができる。この実装により、レンダリング処理における誤差の逆伝播をすることが可能となる。このことにより、3D再構成モデルとレンダリング結果とに基づいて、ディープラーニングを含む機械学習手法を適用し、適切にニューラルネットワークモデルを訓練することが可能となる。
【0052】
上記においては、ラスタライズの手法における解法を示したが、これには限られず、一部又は全部をレイトレーシングに適用することもできる。レイトレーシング手法に適用することにより、反射特性等をより詳細に、現実の世界に近い形で取り扱い、ニューラルネットに組み込むことが可能となる。さらに、3Dオブジェクトからさらに逆伝播して、より抽象的なレイヤ上のオブジェクトへの訓練にも応用することができる。
【0053】
さらに、上記においては、1のメッシュだけに基づいた説明をしたが、もちろん複数メッシュに対応することも可能である。このように、複数メッシュを用いることにより、複数のオブジェクトに対して並行してレンダリング、及び、機械学習モデルの訓練を行うことが可能となる。この場合、領域の識別子だけではなく、物体の識別子(例えば、グループを示すグループ識別子)を設定してもよい。すなわち、識別子として、いずれの物体に属しているいずれの領域であるかを示す識別子を別々に備えていてもよい。また、別途テーブルを用意し、領域ごとの識別子がいずれの物体に属するかを格納して、逆伝播処理を行うタイミングで、当該テーブルを参照してもよい。
【0054】
以上のように訓練された学習済みモデルによれば、リアルタイムで取得した2次元画像(例えば、RGB画像、グレースケール画像等)、又は、3次元画像(例えば、RGB-D画像、深度マップを備える画像等)から、シェーディングを行うことも可能となる。このような学習済みモデルを、例えば、ロボット、自動運転装置等に備えることにより、高速なシェーディング処理を行うとともに、シェーディング結果に基づいて高速な安全な自動操作等を行うことが可能となる。
【0055】
また、上述では、可視光におけるシェーディング、レンダリングについて説明したが、これには限られない。例えば、可視光以外の電波、音等の他の情報についても同様の処理を行うことも可能である。
【0056】
逆伝播に必要なデータを格納する記憶部12は、テクスチャにより実装されてもよい。すなわち、テクスチャに色等の情報を格納するとともに、上述した各識別子を格納してもよい。シェーディングを行う場合、及び、ニューラルネットワークの訓練を行う場合には、このテクスチャに格納されている各データを参照することが可能となる。
【0057】
前述した実施形態におけるレンダリング装置1及び学習装置2において、各機能は、アナログ回路、デジタル回路又はアナログ・デジタル混合回路で構成された回路であってもよい。また、各機能の制御を行う制御回路を備えていてもよい。各回路の実装は、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等によるものであってもよい。
【0058】
上記の全ての記載において、レンダリング装置1及び学習装置2の少なくとも一部はハードウェアで構成されていてもよいし、ソフトウェアで構成され、ソフトウェアの情報処理によりCPU等が実施をしてもよい。ソフトウェアで構成される場合には、レンダリング装置1、学習装置2及びその少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD-ROM等の記憶媒体に収納し、コンピュータに読み込ませて実行させるものであってもよい。記憶媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記憶媒体であってもよい。すなわち、ソフトウェアによる情報処理がハードウェア資源を用いて具体的に実装されるものであってもよい。さらに、ソフトウェアによる処理は、FPGA等の回路に実装され、ハードウェアが実行するものであってもよい。モデルの生成や、モデルに入力をした後の処理は、例えば、GPU等のアクセラレータを使用して行ってもよい。
【0059】
例えば、コンピュータが読み取り可能な記憶媒体に記憶された専用のソフトウェアをコンピュータが読み出すことにより、コンピュータを上記の実施形態の装置とすることができる。記憶媒体の種類は特に限定されるものではない。また、通信ネットワークを介してダウンロードされた専用のソフトウェアをコンピュータがインストールすることにより、コンピュータを上記の実施形態の装置とすることができる。こうして、ソフトウェアによる情報処理が、ハードウェア資源を用いて、具体的に実装される。
【0060】
図5は、本発明の一実施形態におけるハードウェア構成の一例を示すブロック図である。レンダリング装置1及び学習装置2は、プロセッサ71と、主記憶装置72と、補助記憶装置73と、ネットワークインタフェース74と、デバイスインタフェース75と、を備え、これらがバス76を介して接続されたコンピュータ装置7として実現できる。
【0061】
なお、図5のコンピュータ装置7は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図5では、1台のコンピュータ装置7が示されているが、ソフトウェアが複数のコンピュータ装置にインストールされて、当該複数のコンピュータ装置それぞれがソフトウェアの異なる一部の処理を実行してもよい。
【0062】
プロセッサ71は、コンピュータの制御装置および演算装置を含む電子回路(処理回路、Processing circuit、Processing circuitry)である。プロセッサ71は、コンピュータ装置7の内部構成の各装置などから入力されたデータやプログラムに基づいて演算処理を行い、演算結果や制御信号を各装置などに出力する。具体的には、プロセッサ71は、コンピュータ装置7のOS(オペレーティングシステム)や、アプリケーションなどを実行することにより、コンピュータ装置7を構成する各構成要素を制御する。プロセッサ71は、上記の処理を行うことができれば特に限られるものではない。検査対応部、モデル対応部、およびそれらの各構成要素は、プロセッサ71により実現される。
【0063】
主記憶装置72は、プロセッサ71が実行する命令および各種データなどを記憶する記憶装置であり、主記憶装置72に記憶された情報がプロセッサ71により直接読み出される。補助記憶装置73は、主記憶装置72以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、メモリでもストレージでもよい。また、メモリには、揮発性メモリと、不揮発性メモリがあるが、いずれでもよい。レンダリング装置1又は学習装置2内において各種データを保存するためのメモリは、主記憶装置72または補助記憶装置73により実現されてもよい。例えば、記憶部12は、この主記憶装置72又は補助記憶装置73に実装されていてもよい。別の例として、アクセラレータが備えられている場合には、記憶部12は、当該アクセラレータに備えられているメモリ内に実装されていてもよい。
【0064】
ネットワークインタフェース74は、無線または有線により、通信ネットワーク8に接続するためのインタフェースである。ネットワークインタフェース74は、既存の通信規格に適合したものを用いればよい。ネットワークインタフェース74により、通信ネットワーク8を介して通信接続された外部装置9Aと情報のやり取りが行われてもよい。
【0065】
外部装置9Aは、例えば、カメラ、モーションキャプチャ、出力先デバイス、外部のセンサ、入力元デバイスなどが含まれる。また、外部装置9Aは、レンダリング装置1及び学習装置2の構成要素の一部の機能を有する装置でもよい。そして、コンピュータ装置7は、レンダリング装置1及び学習装置2の処理結果の一部を、クラウドサービスのように通信ネットワーク8を介して受け取ってもよい。
【0066】
デバイスインタフェース75は、外部装置9Bと直接接続するUSB(Universal Serial Bus)などのインタフェースである。外部装置9Bは、外部記憶媒体でもよいし、ストレージ装置でもよい。記憶部12は、外部装置9Bにより実現されてもよい。
【0067】
外部装置9Bは出力装置でもよい。出力装置は、例えば、画像を表示するための表示装置でもよいし、音声などを出力する装置などでもよい。例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、スピーカなどがあるが、これらに限られるものではない。
【0068】
なお、外部装置9Bは入力装置でもよい。入力装置は、キーボード、マウス、タッチパネルなどのデバイスを備え、これらのデバイスにより入力された情報をコンピュータ装置7に与える。入力装置からの信号はプロセッサ71に出力される。
【0069】
上記の全ての記載に基づいて、本発明の追加、効果又は種々の変形を当業者であれば想到できるかもしれないが、本発明の態様は、上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更及び部分的削除が可能である。例えば、前述した全ての実施形態において、説明に用いた数値は、一例として示したものであり、これらに限られるものではない。
【0070】
学習、推論の各種演算は、例えば、GPU等のアクセラレータを用いて、又は、ネットワークを介した複数の計算機を用いて、並列処理により実行されるものであってもよい。例えば、学習におけるバッチ処理、推論における各オブジェクトの動作情報の生成等の処理は、複数ある演算コアに演算を振り分けて同じタイミングで実行されるものであってもよい。
【符号の説明】
【0071】
1:レンダリング装置、10:情報取得部、12:記憶部、14:投影データ生成部、16:出力部、2:学習装置、20:入力部、22:誤差算出部、24:逆伝播部、26:出力部
図1
図2
図3
図4
図5