(57)【要約】  レンダリング結果から誤差の逆伝播を可能にする。レンダリング装置は、３次元モデルのデータから２次元空間内における投影データを生成するレンダリング装置であって、前記３次元モデルの領域に関する情報から、前記２次元空間内における前記投影データに関する情報を取得する、情報取得部と、前記投影データに関する情報を、前記領域に関する情報と紐付けて記憶する、記憶部と、前記投影データに関する情報から、前記投影データを生成する、投影データ生成部と、を備える。
2019225734.tif 000002
【特許請求の範囲】
【請求項１】
３次元モデルのデータから２次元空間内における投影データを生成するレンダリング装置であって、
前記３次元モデルの領域に関する情報から、前記２次元空間内における前記投影データに関する情報を取得する、情報取得部と、
前記投影データに関する情報を、前記領域に関する情報と紐付けて記憶する、記憶部と、
前記投影データに関する情報から、前記投影データを生成する、投影データ生成部と、
を備えるレンダリング装置。
【請求項２】
前記記憶部は、テクスチャにより実装される、請求項１に記載のレンダリング装置。
【請求項３】
前記投影データ生成部は、微分可能な演算により前記投影データを生成する、請求項１又は請求項２に記載のレンダリング装置。
【請求項４】
前記投影データ生成部は、ニューラルネットワークにより前記投影データを生成する、請求項３に記載のレンダリング装置。
【請求項５】
前記領域に関する情報は、前記３次元モデルの一部又は全部を構成する多角形の頂点の３次元座標を備え、
前記記憶部は、前記多角形の前記頂点の３次元座標情報と前記２次元空間内において前記多角形が投影される各位置の情報を記憶する、
請求項１から請求項４のいずれかに記載のレンダリング装置。
【請求項６】
前記領域に関する情報は、前記３次元モデルの一部又は全部を構成する曲面に付与される識別子を備え、
前記記憶部は、前記曲面の前記識別子と前記２次元空間内において前記曲面が投影される各位置の情報を記憶する、
請求項１から請求項４のいずれかに記載のレンダリング装置。
【請求項７】
前記投影データに関する情報は、前記２次元空間内における照明計算に必要な情報を含む、
請求項１から請求項６のいずれかに記載のレンダリング装置。
【請求項８】
前記照明計算に必要な情報は、色情報及び前記領域の法線ベクトルの少なくとも１つを含む請求項７に記載のレンダリング装置。
【請求項９】
前記投影データに関する情報は、前記２次元空間内における位置情報を含む、
請求項１から請求項８のいずれかに記載のレンダリング装置。
【請求項１０】
前記２次元空間内において投影されるデータに基づいて、フィードバックを行い、前記３次元モデルを形成する学習をする、請求項１から請求項９のいずれかに記載の学習装置。
【請求項１１】
３次元モデルの入力を受け付ける、入力部と、
前記３次元モデルに基づいて、請求項１から請求項１０のいずれかに記載のレンダリング装置により生成された２次元空間内の投影データの一部又は全部から誤差を算出する、誤差算出部と、
前記誤差及び前記投影データと紐付けられて記憶されている領域情報に基づいて、前記２次元空間から前記３次元モデルが存在する空間へと前記誤差を逆伝播する、逆伝播部と、
を備える、学習装置。
【請求項１２】
前記誤差算出部は、前記投影データの形状情報に基づいて前記誤差を算出する、請求項１１に記載の学習装置。
【請求項１３】
前記誤差算出部は、前記投影データの色情報に基づいて前記誤差を算出する、請求項１１又は請求項１２に記載の学習装置。
【請求項１４】
前記誤差算出部は、前記投影データのテクスチャ情報に基づいて前記誤差を算出する、請求項１１から請求項１３のいずれかに記載の学習装置。
【請求項１５】
前記２次元空間内において投影されるデータに基づいて、フィードバックを行い、前記３次元モデルを形成する学習をする、請求項１１から請求項１４のいずれかに記載の学習装置。
【請求項１６】
前記レンダリング装置は、ニューラルネットワークモデルを備え、当該ニューラルネットワークモデルの学習をする、請求項１１から請求項１５のいずれかに記載の学習装置。
【請求項１７】
３次元モデルのデータから２次元空間内における投影データを生成するレンダリング方法であって、
情報取得部が、前記３次元モデルの領域に関する情報から、前記２次元空間内における前記投影データに関する情報を取得するステップと、
記憶部が、前記投影データに関する情報を、前記領域に関する情報と紐付けて記憶するステップと、
投影データ生成部が、前記投影データに関する情報から、前記投影データを生成するステップと、
を備えるレンダリング方法。
【請求項１８】
入力部が、３次元モデルの入力を受け付けるステップと、
誤差算出部が、前記３次元モデルに基づいて、請求項１７に記載のレンダリング方法により生成された２次元空間内の投影データの一部又は全部から誤差を算出するステップと、
逆伝播部が、前記誤差及び前記領域に関する情報に基づいて、前記２次元空間から前記３次元モデルが存在する空間へと前記誤差を逆伝播するステップと、
を備える、学習方法。
【請求項１９】
コンピュータを、
３次元モデルのデータから２次元空間内における投影データを生成するプログラムであって、
前記３次元モデルにおける領域に関する情報から、前記２次元空間内における前記投影データに関する情報を取得する、情報取得手段、
前記投影データに関する情報を、前記領域に関する情報と紐付けて記憶する、記憶手段、
前記投影データに関する情報から、前記投影データを生成する、投影データ生成手段、
として機能させるプログラム。
【請求項２０】
コンピュータに、
３次元モデルの入力を受け付ける、入力手段、
前記３次元モデルに基づいて、請求項１９に記載の手段により生成された２次元空間内の投影データの一部又は全部から誤差を算出する、誤差算出手段、
前記誤差及び前記領域に関する情報に基づいて、前記２次元空間から前記３次元モデルが存在する空間へと前記誤差を逆伝播する、逆伝播手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、レンダリング装置、学習装置、レンダリング方法及びプログラムに関する。
【背景技術】
【０００２】
機械学習の応用は、広い範囲において適用され始めている。２次元の画像から３次元のオブジェクトのモデリングを行う学習をする手法も提案されている。しかしながら、一般的なレンダリングエンジンを用いる場合、レンダリングされた２次元のピクセルの情報から３次元モデル上の元となる領域へと情報を伝播する手段がなく、学習に用いるロスを逆伝播させることが容易ではない。したがって、学習において、モデリングされた３次元オブジェクトから２次元の画像を生成する際には専用のレンダリングエンジンが必要となり、一般的なレンダラーを適用して学習を行うことが困難である。
【発明の開示】
【０００３】
そこで、本発明の実施形態は、レンダリング結果からロスの逆伝播を可能とするレンダリング装置を提案する。
【０００４】
一実施形態によれば、レンダリング装置は、３次元モデルのデータから２次元空間内における投影データを生成するレンダリング装置であって、前記３次元モデルの領域に関する情報から、前記２次元空間内における前記投影データに関する情報を取得する、情報取得部と、前記投影データに関する情報を、前記領域に関する情報と紐付けて記憶する、記憶部と、前記投影データに関する情報から、前記投影データを生成する、投影データ生成部と、を備える。
【図面の簡単な説明】
【０００５】
【図１】一実施形態に係るレンダリング装置の機能を示すブロック図。
【図２】一実施形態に係るレンダリング装置の処理を示すフローチャート。
【図３】一実施形態に係る３次元モデルと２次元投影データの対応を示す図。
【図４】一実施形態に係る学習装置２の機能を示すブロック図。
【図５】一実施形態に係るハードウェア構成の一例を示す図。
【発明を実施するための形態】
【０００６】
以下、図面を参照して本発明の実施形態について説明する。図面及び実施形態の説明は一例として示すものであり、本発明を限定するものではない。
【０００７】
図１は、本実施形態に係るレンダリング装置１を示す図である。レンダリング装置１は、情報取得部１０と、記憶部１２と、投影データ生成部１４と、出力部１６と、を備え、３次元モデルから、当該３次元モデルを２次元空間へと投影した画像を生成する。以下の説明において、例えば、レンダリング装置１の投影データ生成部１４は、ニューラルネットワークを含むシェーダ又はレンダリングエンジンを備えていてもよい。
【０００８】
情報取得部１０は、３次元モデルにおいて、２次元空間における画像データを生成するために必要となる情報を取得する。例えば、３次元モデルが与えられると、３次元モデルを多角形のメッシュ状の領域（ポリゴン）に分割し、分割されたポリゴンにおける３次元モデルの情報を取得する。このポリゴンは、所謂プリミティブであり、三角形で表現される場合には、トライアングルと呼ばれるものである。以下の説明においては、ポリゴンとして説明をするが、ポリゴンを含むより広い概念としての３次元モデルの一部（又は全部）の領域を表す曲面であってもよい。すなわち、一般的に行われているように、３次元モデルを曲面に分割し、当該分割された曲面に対して処理を行うものとして説明をするが、必ずしもこの態様には限定されるものではない。また、以下の説明においては、３次元モデルを分割した一部を用いて処理を行うが、３次元モデルの大きさ、領域、形状等によっては、３次元モデルの全部を用いて以下の処理を行ってもよい。
【０００９】
この情報の取得のために、まず、ポリゴンの頂点の座標の変換を実行する。座標の変換は、例えば、ローカル座標（３次元）をワールド座標（３次元）へ変換し、ワールド座標をビュー座標系（３次元）へ変換し、ビュー座標系をプロジェクション座標系（２次元）へ変換し、プロジェクション座標をスクリーン座標（２次元）へと変換することにより、３次元モデルが（仮想的に）存在する座標系から、画像データが描画される２次元空間への座標系へと変換が行われる。これらの座標系の変換は、一般に行われている変換を使用する。もっとも、全ての座標系を経由する必要は無く、ローカル座標又はワールド座標からスクリーン座標へと変換できるものであればよい。
【００１０】
このように、３次元モデルを分割した各領域における頂点の情報を３次元空間の座標から、投影される２次元空間の座標へと変換することにより、３次元モデルを２次元空間へと描画することが可能となる。情報取得部１０は、３次元モデルの各領域の情報に基づいて、投影先の２次元空間における位置（例えば、画素）における、照明計算に利用する色・反射特性に関する情報を取得する。照明計算に利用する情報とは、例えば、法線ベクトルや、アルベド、深度・距離（Depth/Distance）、反射特性（Reflection）、放射（Emission）、拡散（Diffusion）、遮蔽（Ambient Occlusion）、照明（Lightmap）等の投影データに関する情報のうち少なくとも１つを含む情報である。また、これらには限られず、投影データ生成のための照明計算に必要な他の情報を含んでいてもよい。各領域の形状は、各領域が２次元座標へと変換された際に２次元座標において表現される頂点及びこれら頂点を接続する線分、曲線及び面等のうち少なくとも１つを用いて表現される。また、投影データに関する情報が、２次元空間内における位置情報を含んでいてもよい。
【００１１】
なお、以下において、投影データに関する情報（投影情報と記載する）とは、上記の照明計算に利用する情報そのものを含んでいてもよいし、これら照明計算に利用する情報から投影データ生成部１４等により加工され、記憶部１２に記憶されているデータを含んでいてもよい。この投影情報は、シェーディング手法により様々な形態で記憶される情報であり、上述のように、加工をしていない照明計算に利用するデータを含んでもよいし、当該データについて、ある程度計算を進め、投影データを生成する段階を進めたデータを含んでもよい。例えば、遅延シェーディングを適用する場合のように、照明計算に利用するデータそのものを含むものであってもよいし、前方シェーディングを適用する場合のように、３次元空間内に設置された複数の光源のうち１の光源に対して照明計算に利用するデータから計算された、投影データの生成途中のデータを含むものであってもよい。さらには、投影情報は、上記の例で挙げたデータ種類（法線ベクトル、アルベド、その他）のうち未加工又は加工済の少なくとも１つのデータを含むものであると定義する。
【００１２】
記憶部１２は、情報取得部１０により取得された２次元空間内の各位置における色情報等の照明計算に利用する情報を記憶する。さらに、本実施形態においては、各位置において、これら色情報等の情報と併せて、３次元空間内の位置情報を記憶する。この３次元空間内の位置情報とは、例えば、上述したポリゴンに付与された識別子、又は、ポリゴンの頂点の座標（ローカル座標またはワールド座標）を示す。識別子は、ポリゴンにユニークに付与されるものであってもよい。すなわち、２次元空間内のある位置を示す記憶領域内に、当該位置に投射される３次元モデルにおけるポリゴンの識別子又はポリゴンの各頂点の座標が記憶される。
【００１３】
このようにデータの紐付けをしておくことにより、２次元空間内に投影されたデータの位置に基づいて、３次元モデル内の位置、より詳しくは、３次元モデル内のいずれのポリゴンに属している領域の投影であるかを把握することが可能となる。
【００１４】
投影データ生成部１４は、記憶部１２に記憶されている投影情報に基づいて、最終的に描画される２次元の投影データを微分可能な演算を用いて生成する。例えば、色情報や法線ベクトルの情報に基づいて、３次元空間上に存在する光源から出た反射光を演算し、２次元空間内の各位置における色、輝度等の情報を算出し、投影データを生成する。
【００１５】
上記には限られず、投影データ生成部１４は、記憶部１２に記憶されているデータではなく、情報取得部１０により取得されたデータに基づいて投影データを生成するようにしてもよい。この投影データの生成は、一般的なシェーディング処理により行われてもよい。
【００１６】
例えば、微分可能な処理である遅延シェーディング処理をシェーディング手法として選択した場合には、記憶部１２は、所謂Ｇバッファ（Geometry Buffer）を兼ねるものであってもよく、Ｇバッファに記憶される色情報等とともに、３次元空間における頂点の座標情報等を紐付けて記憶してもよい。この場合、記憶部１２に記憶されているデータに基づいて、投影データ生成部１４が投影データを生成する。尤も、遅延シェーディングは、一例として挙げたものであり、他のシェーディング手法を使用してもよい。
【００１７】
出力部１６は、投影データ生成部１４が生成した投影データを出力する。この出力部１６は、例えば、ディスプレイを備え、ディスプレイ上に投影データを描画して出力してもよい。別の例としては、投影データを適切な画像データへと変換し、当該画像データをファイルサーバ、ネットワークを介した別の装置、又は、記憶部１２等へと出力するようにしてもよい。
【００１８】
図２は、本実施形態に係るレンダリング装置１のレンダリング処理の一例を示すフローチャートである。この図２を用いて、レンダリング装置１の処理について説明する。
【００１９】
まず、情報取得部１０は、３次元モデルをポリゴンに分割する（Ｓ１００）。なお、３次元モデル自体がポリゴンデータを備えて構成されている場合には、このステップを省略することも可能である。
【００２０】
次に、情報取得部１０は、３次元空間内におけるポリゴンの頂点の座標を取得する（Ｓ１０２）。上述した座標変換を実行し、２次元への投影データを生成するために、着目しているポリゴンの３次元空間内における頂点の座標を取得する。
【００２１】
次に、情報取得部１０は、Ｓ１０２で取得した座標データに上述した座標変換を施すことにより、当該ポリゴンが投影される２次元座標を算出する（Ｓ１０４）。２次元空間内において、ポリゴンの頂点の座標を変換し、当該変換された座標を線分で接続することにより当該ポリゴンが投影される２次元空間内の座標を特定する。
【００２２】
次に、情報取得部１０は、Ｓ１０４で取得されたポリゴンの座標に基づいて、２次元空間内の当該ポリゴンが投影される座標と、当該ポリゴンの識別子、又は、当該ポリゴンの３次元空間内の頂点の座標とを紐付けて記憶部１２へと記憶する（Ｓ１０６）。このように記憶部１２には、２次元座標に対して、ポリゴンの情報が記憶される。
【００２３】
次に、投影データ生成部１４は、情報取得部１０が取得したデータ、又は、記憶部１２に記憶されているデータに基づいて投影データを生成する（Ｓ１０８）。
【００２４】
一例として、投影データ生成部１４は、情報取得部１０が取得した３次元モデルのポリゴンデータの色情報及び法線ベクトル情報等に基づいて、設置されている光源を考慮して２次元空間内に投影される画素のデータを算出する。投影データの算出は、上述したように、遅延シェーディングで行ってもよいし、前方シェーディングで行ってもよい。
【００２５】
遅延シェーディングを行う場合、投影される２次元空間内のピクセルの座標それぞれに対して、色情報等の描画に必要な情報と、併せて、ポリゴンを識別するための情報と、情報取得部１０により取得され、記憶される。投影データ生成部１４は、これらの記憶されたデータのうち、描画に必要な情報と、光源等の情報を用いて、投影データを生成する。
【００２６】
前方シェーディングを行う場合、Ｓ１０６とＳ１０８とを入れ替えてもよく、投影データ生成部１４が情報取得部１０により取得された情報に基づいて投影データを各ピクセルについて算出した後、情報取得部１０が取得したポリゴンを識別する情報と併せて、それぞれのピクセルを示すメモリ領域に記憶させてもよい。尤もこれには限られず、ピクセルを示すメモリ領域内に、ポリゴンを識別する情報をあらかじめ記憶させ、その後、投影データ生成部１４が色情報等と、光源等の情報から投影データを生成する。光源が複数ある場合には、生成途中のデータについて、ポリゴンを識別する情報と併せて記憶するようにしてもよいし、別のメモリ領域を用いて記憶してもよい。
【００２７】
描画に必要なポリゴンのそれぞれについて２次元空間内のピクセルとの紐付け、及び、描画データの生成が終了した後に、レンダリング装置１は、出力部１６からデータ等を出力して処理を終了する。投影データの生成に必要なポリゴンについて処理が終了していない場合、当該ポリゴンについて、Ｓ１０２からＳ１０８の処理を行う。遅延シェーディングの場合は、Ｓ１０２からＳ１０６までの処理を全てのポリゴンについて行った後に、Ｓ１０８の処理を行うようにしてもよい。
【００２８】
図３は、一例として、遅延シェーディングを行う場合における、３次元モデルから投影データを生成するときのメモリの格納方法を示した図である。この処理は、微分可能な演算により構成されている。左の図は、３次元モデルを示し、右の図は、投影された画像を示している。３次元モデルの領域Ｒ１が２次元空間の投射Ｐ１へと投射されたものとする。同様に、領域Ｒ２が投射Ｐ２へと投射されたものとする。左の図中の矢印の方向から見た投影が右の図であるものとする。
【００２９】
ここで、投射Ｐ１内の座標（ｘ１１，ｙ１１）の画素（ピクセル）について記憶されているデータと、投射Ｐ１内の座標（ｘ１２，ｙ１２）の画素（ピクセル）について記憶されているデータとについて説明する。代表的な例として、各画素の色情報、法線ベクトル情報を挙げて説明するが、記憶するパラメータ及びこれらのパラメータの並び順等は、これに限られるものではない。
【００３０】
座標（ｘ１１，ｙ１１）と紐付けられて、領域Ｒ１内の当該ピクセルに対応する領域の色情報、法線ベクトルの情報が、それぞれＣ１１、Ｎ１１であるとして、図に示すように、例えば、（ｘ１１，ｙ１１，Ｒ１，Ｃ１１，Ｎ１１，・・・）として記憶部１２に記憶される。Ｒ１は、領域Ｒ１の識別情報であり、例えば、上述したようにポリゴンの識別子、又は、頂点の座標である。色情報、法線ベクトルの情報のみならず、他の情報も同様に記憶していてもよい。
【００３１】
座標（ｘ１２，ｙ１２）と紐付けられて、同様に、（ｘ１２，ｙ１２，Ｒ１，Ｃ１２，Ｎ１２，・・・）として記憶部１２に記憶される。ただし、同じポリゴン上においては同じ色情報、法線情報を持つものとして考える場合には、Ｃ１２＝Ｃ１１、Ｎ１２＝Ｎ１１である。このように、２次元空間内における座標の情報から、３次元モデル上のいずれの領域に属しているかを辿ることができる情報を付与して記憶する。
【００３２】
記憶の方法は、図示している方法には限られない。例えば、色情報、法線ベクトル情報、ポリゴン情報に対してそれぞれまとめて記憶できる領域を用意しておき、２次元のメモリ空間内で座標に対応するように配置して記憶するようにしてもよい。この場合、色情報テンソル、法線ベクトル情報テンソル、ポリゴン情報テンソル等が別々の領域に確保されることとなる。
【００３３】
別の例としては、座標に対して、色情報、法線ベクトル情報、ポリゴン情報をまとめて記憶できる領域を用意してもよい。この場合、座標（ｘ１１，ｙ１１）のメモリ領域に対して、（Ｒ１，Ｃ１２，Ｎ１２，・・・）と言うようなデータが格納される。これらには限られず、他の様々なメモリ領域の使用方法でデータが格納されていてもよい。
【００３４】
領域Ｒ２についても、同様に、投影Ｐ２内のそれぞれのピクセルに対して、データが格納される。例えば、座標（ｘ２１，ｙ２１）に対して、（ｘ２１，ｙ２１，Ｒ２，Ｃ２１，Ｎ２１，・・・）といったデータが格納される。
【００３５】
なお、上述したようにポリゴン内において同じ色情報及び同じ法線ベクトル情報等が与えられる場合には、投影Ｐ１等の頂点における座標と、Ｒ１の情報と、色情報等の描画に必要となる情報とを紐付けて格納するようにしてもよい。投影データにおいては、２次元空間内の座標は、３次元モデルの領域の投影された頂点の座標に基づいて、いずれの領域からの投影であるかを逆算することが可能である。
【００３６】
遅延シェーディングである場合、これらの色情報等の描画に必要な情報を用いて、光源や視点等の条件から、投影データ生成部１４が投影データを生成する。
【００３７】
前方シェーディングの場合も同様に、３次元モデルの領域に関する情報（以下、領域情報と記載する）を格納することが可能である。例えば、前方シェーディングでは、各シェーディングの段階のそれぞれにおいて、投影データの色情報とともに、３次元モデルの領域情報を記憶しておくことにより実装することが可能である。この場合、一度領域情報が書き込まれたピクセルに対しては、再度領域情報を書き込む必要は無いので、２回目からの書き込みに対しては領域情報を書き込まないようにすることも可能である。
【００３８】
以上のように、本実施形態によれば、投影されたデータの各画素（ピクセル）と、３次元モデルの対応するポリゴンとを紐付けて格納することにより、投影されたデータの画素が、３次元モデルのいずれのポリゴンを微分可能な処理により投影したものなのかを辿ることが可能となる。
【００３９】
以下、前述した実施形態に係るレンダリング装置１を利用したレンダリング装置１の学習装置について説明する。以下の説明において、例えば、レンダリング装置１の投影データ生成部１４は、ニューラルネットワークを含むシェーダ又はレンダリングエンジンを備えている。
【００４０】
図４は、レンダリング装置１の学習装置２について示すブロック図である。学習装置２は、レンダリング装置１と、入力部２０と、誤差算出部２２と、逆伝播部２４と、出力部２６と、を備える。また、別の例として、学習装置２は、レンダリング装置１とは、別の独立した構成であってもよい。
【００４１】
入力部２０は、３次元モデルの入力を受け付ける。別の例として、２次元投影の教師データの入力をさらに受け付けるものであってもよい。
【００４２】
誤差算出部２２は、入力部２０から入力された３次元モデルに基づいてレンダリング装置１により生成された投影データから、誤差（ロス）を算出する。例えば、２次元投影された教師データがある場合には、当該教師データと、投影データとの各ピクセルにおける各色空間の情報から、ニューラルネットワークの更新に用いる誤差を算出する。
【００４３】
誤差の算出は、これには限られず、形状の情報、すなわち、投影データの部分の座標と、当該投影データに対応する３次元モデルの領域の座標から算出した理想的な投影データにおける座標との誤差であってもよいし、３次元モデルに付されたテクスチャが、レンダリング装置１による変換及び理想的なデータにおいて、投影データのどのようなテクスチャに変換されたかに基づいた誤差であってもよい。
【００４４】
逆伝播部２４は、誤差算出部２２が算出した誤差をニューラルネットワークの前の層へと逆伝播する。例えば、出力層において算出された誤差は、出力層の１つ前の隠れ層に逆伝播される。当該層に伝播された誤差を用いて当該層の重み付け行列を更新した後、誤差算出部２２により誤差が算出され、算出された誤差がさらに１つ前の層へと逆伝播される。このように、入力層、又は、入力層の１つ先の層に至るまで逆伝播が繰り返され、重み行列、すなわち、ニューラルネットワークのパラメータが更新される。
【００４５】
ニューラルネットワークの更新に係るエポック数、バッチ数等は、任意に決めてもよい。この更新は、一般的な更新方法で更新することが可能である。
【００４６】
このような逆伝播は、投影データの座標が、３次元モデルにおけるいずれのポリゴンに該当するかを判断することにより行うことが可能であるので、レンダリング装置１の記憶部１２に記憶されているポリゴンの識別子のデータを用いることにより、逆伝播を行うことが可能となる。順伝播を行うタイミングにおいて、３次元モデルのどのポリゴンからのレンダリング結果が着目した投影データの画素のデータに変換されたかの情報が必要なためである。
【００４７】
出力部２６は、逆伝播部２４により更新されたニューラルネットワークを出力する。上記の場合、例えば、シェーダ又はレンダリングエンジンを出力してもよい。
【００４８】
なお、上述においては、ニューラルネットワークであるとしたが、これには限られない。例えば、３次元モデルが入力されると投影データが出力される一般的なシェーダ又はレンダリングエンジンであって、シェーディング又はレンダリングの際に用いるパラメータの修正を受け付けることが可能なものであってもよい。
【００４９】
この場合、誤差算出部２２が投影データのあるピクセルの色情報と、理想の色情報とを比較して誤差を算出する。次に、逆伝播部２４が、シェーダ又はレンダリングエンジンに当該誤差をフィードバックして、ニューラルネットワークを用いない一般的な最適化手法により、シェーダ又はレンダリングエンジンの最適化を行う。このように、本実施形態の利用できる範囲は、ニューラルネットワークには限られない。
【００５０】
さらに応用すると、このようなレンダリング装置１及び学習装置２を用いることにより、誤差関数や目標２次元投影データなどで定義されるような指標の最も適合する理想の２次元投影データを出力するような３次元モデルを形成することも可能である。この場合、シェーダ又はレンダリングエンジンに対してフィードバックを行うのではなく、３次元モデルに対してフィードバックを行うことにより実現することが可能である。
【００５１】
前述した実施形態によれば、各領域における識別子を付与した微分可能なレンダリングを実装することができる。この実装により、レンダリング処理における誤差の逆伝播をすることが可能となる。このことにより、３Ｄ再構成モデルとレンダリング結果とに基づいて、ディープラーニングを含む機械学習手法を適用し、適切にニューラルネットワークモデルを訓練することが可能となる。
【００５２】
上記においては、ラスタライズの手法における解法を示したが、これには限られず、一部又は全部をレイトレーシングに適用することもできる。レイトレーシング手法に適用することにより、反射特性等をより詳細に、現実の世界に近い形で取り扱い、ニューラルネットに組み込むことが可能となる。さらに、３Ｄオブジェクトからさらに逆伝播して、より抽象的なレイヤ上のオブジェクトへの訓練にも応用することができる。
【００５３】
さらに、上記においては、１のメッシュだけに基づいた説明をしたが、もちろん複数メッシュに対応することも可能である。このように、複数メッシュを用いることにより、複数のオブジェクトに対して並行してレンダリング、及び、機械学習モデルの訓練を行うことが可能となる。この場合、領域の識別子だけではなく、物体の識別子（例えば、グループを示すグループ識別子）を設定してもよい。すなわち、識別子として、いずれの物体に属しているいずれの領域であるかを示す識別子を別々に備えていてもよい。また、別途テーブルを用意し、領域ごとの識別子がいずれの物体に属するかを格納して、逆伝播処理を行うタイミングで、当該テーブルを参照してもよい。
【００５４】
以上のように訓練された学習済みモデルによれば、リアルタイムで取得した２次元画像（例えば、ＲＧＢ画像、グレースケール画像等）、又は、３次元画像（例えば、ＲＧＢ−Ｄ画像、深度マップを備える画像等）から、シェーディングを行うことも可能となる。このような学習済みモデルを、例えば、ロボット、自動運転装置等に備えることにより、高速なシェーディング処理を行うとともに、シェーディング結果に基づいて高速な安全な自動操作等を行うことが可能となる。
【００５５】
また、上述では、可視光におけるシェーディング、レンダリングについて説明したが、これには限られない。例えば、可視光以外の電波、音等の他の情報についても同様の処理を行うことも可能である。
【００５６】
逆伝播に必要なデータを格納する記憶部１２は、テクスチャにより実装されてもよい。すなわち、テクスチャに色等の情報を格納するとともに、上述した各識別子を格納してもよい。シェーディングを行う場合、及び、ニューラルネットワークの訓練を行う場合には、このテクスチャに格納されている各データを参照することが可能となる。
【００５７】
前述した実施形態におけるレンダリング装置１及び学習装置２において、各機能は、アナログ回路、デジタル回路又はアナログ・デジタル混合回路で構成された回路であってもよい。また、各機能の制御を行う制御回路を備えていてもよい。各回路の実装は、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）等によるものであってもよい。
【００５８】
上記の全ての記載において、レンダリング装置１及び学習装置２の少なくとも一部はハードウェアで構成されていてもよいし、ソフトウェアで構成され、ソフトウェアの情報処理によりＣＰＵ等が実施をしてもよい。ソフトウェアで構成される場合には、レンダリング装置１、学習装置２及びその少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記憶媒体に収納し、コンピュータに読み込ませて実行させるものであってもよい。記憶媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記憶媒体であってもよい。すなわち、ソフトウェアによる情報処理がハードウェア資源を用いて具体的に実装されるものであってもよい。さらに、ソフトウェアによる処理は、ＦＰＧＡ等の回路に実装され、ハードウェアが実行するものであってもよい。モデルの生成や、モデルに入力をした後の処理は、例えば、ＧＰＵ等のアクセラレータを使用して行ってもよい。
【００５９】
例えば、コンピュータが読み取り可能な記憶媒体に記憶された専用のソフトウェアをコンピュータが読み出すことにより、コンピュータを上記の実施形態の装置とすることができる。記憶媒体の種類は特に限定されるものではない。また、通信ネットワークを介してダウンロードされた専用のソフトウェアをコンピュータがインストールすることにより、コンピュータを上記の実施形態の装置とすることができる。こうして、ソフトウェアによる情報処理が、ハードウェア資源を用いて、具体的に実装される。
【００６０】
図５は、本発明の一実施形態におけるハードウェア構成の一例を示すブロック図である。レンダリング装置１及び学習装置２は、プロセッサ７１と、主記憶装置７２と、補助記憶装置７３と、ネットワークインタフェース７４と、デバイスインタフェース７５と、を備え、これらがバス７６を介して接続されたコンピュータ装置７として実現できる。
【００６１】
なお、図５のコンピュータ装置７は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図５では、１台のコンピュータ装置７が示されているが、ソフトウェアが複数のコンピュータ装置にインストールされて、当該複数のコンピュータ装置それぞれがソフトウェアの異なる一部の処理を実行してもよい。
【００６２】
プロセッサ７１は、コンピュータの制御装置および演算装置を含む電子回路（処理回路、Processing circuit、Processing circuitry）である。プロセッサ７１は、コンピュータ装置７の内部構成の各装置などから入力されたデータやプログラムに基づいて演算処理を行い、演算結果や制御信号を各装置などに出力する。具体的には、プロセッサ７１は、コンピュータ装置７のＯＳ（オペレーティングシステム）や、アプリケーションなどを実行することにより、コンピュータ装置７を構成する各構成要素を制御する。プロセッサ７１は、上記の処理を行うことができれば特に限られるものではない。検査対応部、モデル対応部、およびそれらの各構成要素は、プロセッサ７１により実現される。
【００６３】
主記憶装置７２は、プロセッサ７１が実行する命令および各種データなどを記憶する記憶装置であり、主記憶装置７２に記憶された情報がプロセッサ７１により直接読み出される。補助記憶装置７３は、主記憶装置７２以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、メモリでもストレージでもよい。また、メモリには、揮発性メモリと、不揮発性メモリがあるが、いずれでもよい。レンダリング装置１又は学習装置２内において各種データを保存するためのメモリは、主記憶装置７２または補助記憶装置７３により実現されてもよい。例えば、記憶部１２は、この主記憶装置７２又は補助記憶装置７３に実装されていてもよい。別の例として、アクセラレータが備えられている場合には、記憶部１２は、当該アクセラレータに備えられているメモリ内に実装されていてもよい。
【００６４】
ネットワークインタフェース７４は、無線または有線により、通信ネットワーク８に接続するためのインタフェースである。ネットワークインタフェース７４は、既存の通信規格に適合したものを用いればよい。ネットワークインタフェース７４により、通信ネットワーク８を介して通信接続された外部装置９Ａと情報のやり取りが行われてもよい。
【００６５】
外部装置９Ａは、例えば、カメラ、モーションキャプチャ、出力先デバイス、外部のセンサ、入力元デバイスなどが含まれる。また、外部装置９Ａは、レンダリング装置１及び学習装置２の構成要素の一部の機能を有する装置でもよい。そして、コンピュータ装置７は、レンダリング装置１及び学習装置２の処理結果の一部を、クラウドサービスのように通信ネットワーク８を介して受け取ってもよい。
【００６６】
デバイスインタフェース７５は、外部装置９Ｂと直接接続するＵＳＢ（Universal Serial Bus）などのインタフェースである。外部装置９Ｂは、外部記憶媒体でもよいし、ストレージ装置でもよい。記憶部１２は、外部装置９Ｂにより実現されてもよい。
【００６７】
外部装置９Ｂは出力装置でもよい。出力装置は、例えば、画像を表示するための表示装置でもよいし、音声などを出力する装置などでもよい。例えば、ＬＣＤ（Liquid Crystal Display）、ＣＲＴ（Cathode Ray Tube）、ＰＤＰ（Plasma Display Panel）、スピーカなどがあるが、これらに限られるものではない。
【００６８】
なお、外部装置９Ｂは入力装置でもよい。入力装置は、キーボード、マウス、タッチパネルなどのデバイスを備え、これらのデバイスにより入力された情報をコンピュータ装置７に与える。入力装置からの信号はプロセッサ７１に出力される。
【００６９】
上記の全ての記載に基づいて、本発明の追加、効果又は種々の変形を当業者であれば想到できるかもしれないが、本発明の態様は、上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更及び部分的削除が可能である。例えば、前述した全ての実施形態において、説明に用いた数値は、一例として示したものであり、これらに限られるものではない。
【００７０】
学習、推論の各種演算は、例えば、ＧＰＵ等のアクセラレータを用いて、又は、ネットワークを介した複数の計算機を用いて、並列処理により実行されるものであってもよい。例えば、学習におけるバッチ処理、推論における各オブジェクトの動作情報の生成等の処理は、複数ある演算コアに演算を振り分けて同じタイミングで実行されるものであってもよい。
【符号の説明】
【００７１】
１：レンダリング装置、１０：情報取得部、１２：記憶部、１４：投影データ生成部、１６：出力部、２：学習装置、２０：入力部、２２：誤差算出部、２４：逆伝播部、２６：出力部
【図１】
2019225734.tif 000003
【図２】
2019225734.tif 000004
【図３】
2019225734.tif 000005
【図４】
2019225734.tif 000006
【図５】
2019225734.tif 000007
【手続補正書】
【提出日】令和2年12月4日(2020.12.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも１つのメモリと、
少なくとも１つのプロセッサと、を備え、
前記少なくとも１つのプロセッサは、
３次元モデルの領域に関する情報から、２次元空間内における投影データに関する情報を取得することと、
前記投影データに関する情報を、前記領域に関する情報と紐付けて前記少なくとも１つのメモリに記憶することと、
前記投影データに関する情報から、前記投影データを生成することと、
を実行可能に構成され、
前記紐付けの情報は、前記３次元モデルを分割した一部の領域に付与された識別子と前記一部の領域が前記２次元空間内において投影される位置に関する情報とを紐付けた情報を含む、
レンダリング装置。
【請求項２】
前記少なくとも１つのプロセッサは、遅延シェーディングを用いて前記投影データを生成する、
請求項１に記載のレンダリング装置。
【請求項３】
前記少なくとも１つのプロセッサは、微分可能な演算により前記投影データを生成する、
請求項１又は請求項２に記載のレンダリング装置。
【請求項４】
前記少なくとも１つのプロセッサは、ニューラルネットワークにより前記投影データを生成する、請求項３に記載のレンダリング装置。
【請求項５】
前記３次元モデルを分割した前記一部の領域は、多角形で表される、
請求項１乃至請求項４のいずれかに記載のレンダリング装置。
【請求項６】
前記投影データに関する情報は、色、法線ベクトル、アルベド、深度、距離、反射特性、放射、拡散、遮蔽、照明、又は、照明計算に利用するデータ、のうち少なくとも１つに関する情報を含む、
請求項１乃至請求項５のいずれかに記載のレンダリング装置。
【請求項７】
前記少なくとも１つのプロセッサは、前記紐付けの情報を用いて、教師データと前記投影データの間の誤差を表す情報を前記３次元モデルに逆伝播し、前記逆伝播に基づいて前記３次元モデルを形成する、
請求項１から請求項６のいずれかに記載のレンダリング装置。
【請求項８】
教師データと前記投影データの間の誤差を表す情報を用いて、前記ニューラルネットワークを更新する、
請求項４に記載のレンダリング装置。
【請求項９】
請求項７に記載のレンダリング装置で形成された３次元モデル。
【請求項１０】
少なくとも１つのプロセッサにより、
３次元モデルの領域に関する情報から、２次元空間内における投影データに関する情報を取得することと、
前記投影データに関する情報を、前記領域に関する情報と紐付けて前記少なくとも１つのメモリに記憶することと、
前記投影データに関する情報から、前記投影データを生成することと、
を含む方法であって、
前記紐付けの情報は、前記３次元モデルを分割した一部の領域に付与された識別子と前記一部の領域が前記２次元空間内において投影される位置に関する情報とを紐付けた情報を含む、
レンダリング方法。
【請求項１１】
少なくとも１つのプロセッサにより、
３次元モデルの領域に関する情報から、２次元空間内における投影データに関する情報を取得することと、
前記投影データに関する情報を、前記領域に関する情報と紐付けて前記少なくとも１つのメモリに記憶することと、
前記投影データに関する情報から、前記投影データを生成することと、
前記紐付けの情報を用いて、教師データと前記投影データの間の誤差を表す情報を前記３次元モデルに逆伝播し、前記逆伝播に基づいて前記３次元モデルを形成することと、
を含む方法であって、
前記紐付けの情報は、前記３次元モデルを分割した一部の領域に付与された識別子と前記一部の領域が前記２次元空間内において投影される位置に関する情報とを紐付けた情報を含む、
３次元モデル生成方法。
【請求項１２】
少なくとも１つのプロセッサにより、
３次元モデルの領域に関する情報から、２次元空間内における投影データに関する情報を取得することと、
前記投影データに関する情報を、前記領域に関する情報と紐付けて前記少なくとも１つのメモリに記憶することと、
前記投影データに関する情報から、ニューラルネットワークにより、前記投影データを生成することと、
前記紐付けの情報を用いて、教師データと前記投影データの間の誤差を表す情報を前記３次元モデルに逆伝播し、前記逆伝播に基づいて前記３次元モデルを形成することと、
教師データと前記投影データの間の誤差を表す情報を用いて、前記ニューラルネットワークを更新することと、
を含む方法であって、
前記紐付けの情報は、前記３次元モデルを分割した一部の領域に付与された識別子と前記一部の領域が前記２次元空間内において投影される位置に関する情報とを紐付けた情報を含む、
ニューラルネットワークの生成方法。
【請求項１３】
少なくとも１つのプロセッサにより実行されると、
３次元モデルの領域に関する情報から、２次元空間内における投影データに関する情報を取得することと、
前記投影データに関する情報を、前記領域に関する情報と紐付けて前記少なくとも１つのメモリに記憶することと、
前記投影データに関する情報から、前記投影データを生成することと、
を含む方法を実行するプログラムであって、
前記紐付けの情報は、前記３次元モデルを分割した一部の領域に付与された識別子と前記一部の領域が前記２次元空間内において投影される位置に関する情報とを紐付けた情報を含む、
プログラム。
【国際調査報告】
2019225734.tif 000008
2019225734.tif 000009
2019225734.tif 000010
2019225734.tif 000011