(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-04-14
(45)【発行日】2025-04-22
(54)【発明の名称】被写体モデル化装置、レンダリング装置及びプログラム
(51)【国際特許分類】
G06T 17/00 20060101AFI20250415BHJP
【FI】
G06T17/00
(21)【出願番号】P 2021112450
(22)【出願日】2021-07-06
【審査請求日】2024-06-03
(73)【特許権者】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】100121119
【氏名又は名称】花村 泰伸
(72)【発明者】
【氏名】三須 俊枝
(72)【発明者】
【氏名】洗井 淳
【審査官】鈴木 肇
(56)【参考文献】
【文献】特開2019-215622(JP,A)
【文献】国際公開第2019/198501(WO,A1)
【文献】特開2016-206766(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00 -19/20
G06V 10/00 -20/90
G06V 30/418
G06V 40/16
G06V 40/20
H04N 1/41 - 1/419
H04N 1/64
H04N 7/10
H04N 7/14 - 7/173
H04N 7/20 - 7/56
H04N 13/00 -17/06
H04N 21/00 -21/858
(57)【特許請求の範囲】
【請求項1】
被写体の形状を表した複数の構成点の位置情報からなる点群、複数のカメラのカメラパラメータからなるカメラパラメータ群、及び前記複数のカメラのそれぞれにより撮影された前記被写体の画像からなる画像群を入力し、前記点群をモデル化して光線情報付き点群を生成する被写体モデル化装置であって、
前記点群を構成する前記構成点を順次選択するためのインデックスをnとし、前記カメラパラメータ群を構成する前記カメラパラメータ及び前記画像群を構成する前記画像を順次選択するためのインデックスをmとして、
前記インデックスmの前記カメラパラメータに含まれるカメラ位置及び前記インデックスnの前記構成点の前記位置情報に基づいて、前記構成点からカメラへの光線の方向に関する方向情報を演算する方向演算部と、
前記インデックスmの前記カメラパラメータを用いて、前記インデックスnの前記構成点の前記位置情報を前記インデックスmの前記画像の画像座標に投影する投影部と、
前記インデックスmの前記画像から、前記投影部により投影された前記画像座標の画素値情報を選択する選択部と、
前記インデックスnについて、前記方向演算部により演算された全ての前記インデックスmの前記方向情報及び前記選択部により選択された全ての前記インデックスmの前記画素値情報を多重化することで、前記インデックスnの観測光線情報を生成する第一多重化部と、
全ての前記インデックスnの前記位置情報及び前記第一多重化部により生成された全ての前記インデックスnの前記観測光線情報を多重化することで、前記光線情報付き点群を生成する第二多重化部と、
を備えたことを特徴とする被写体モデル化装置。
【請求項2】
請求項1に記載の被写体モデル化装置において、
前記選択部は、
前記画像から、前記画像座標の色情報を選択し、
前記第一多重化部は、
前記インデックスnについて、前記方向演算部により演算された全ての前記インデックスmの前記方向情報及び前記選択部により選択された全ての前記インデックスmの前記色情報を多重化することで、前記インデックスnの前記観測光線情報を生成する、ことを特徴とする被写体モデル化装置。
【請求項3】
被写体の形状を表した複数の構成点の位置情報及び光線情報が多重化された光線情報付き点群、及び仮想カメラのカメラパラメータpを用いて、前記光線情報付き点群をレンダリングし、前記仮想カメラにより撮影される合成画像を生成するレンダリング装置において、
前記光線情報を、複数のカメラのカメラパラメータと、前記複数のカメラのそれぞれにより撮影された前記被写体の画像とに基づいて生成された情報であって、前記構成点からカメラへの光線の方向に関する方向情報、及び前記構成点が投影された画素に関する画素値情報を含む情報とし、
前記光線情報付き点群を構成する前記構成点を順次選択するためのインデックスをnとし、前記光線情報に含まれる前記方向情報及び前記画素値情報を順次選択するためのインデックスをmとして、
前記カメラパラメータpを用いて、前記インデックスnの前記構成点の前記位置情報を画像座標に投影する投影部と、
前記カメラパラメータpに含まれる前記仮想カメラのカメラ位置及び前記インデックスnの前記構成点の前記位置情報に基づいて、前記構成点から前記仮想カメラへの光線の方向に関する仮想方向情報を演算する方向演算部と、
前記インデックスnについて、前記光線情報に含まれる前記インデックスmの前記方向情報及び前記方向演算部により演算された前記仮想方向情報に基づいて、重み値を演算する重み値演算部と、
前記インデックスnについて、前記光線情報に含まれる全ての前記インデックスmの前記画素値情報に対し、前記重み値演算部により演算された全ての前記インデックスmの前記重み値を用いて重み付け合成し、代表値を求める合成部と、
全ての前記インデックスnについて、前記合成部により求めた前記代表値を前記投影部により投影された前記画像座標に配置し、前記合成画像を生成する画像生成部と、
を備えたことを特徴とするレンダリング装置。
【請求項4】
請求項3に記載のレンダリング装置において、
前記光線情報を、前記方向情報、及び前記構成点が投影された画素に関する色情報を含む情報とし、
前記光線情報に含まれる前記方向情報及び前記色情報を順次選択するためのインデックスをmとして、
前記合成部は、
前記インデックスnについて、前記光線情報に含まれる全ての前記インデックスmの前記色情報に対し、全ての前記インデックスmの前記重み値を用いて重み付け合成し、前記代表値を求める、ことを特徴とするレンダリング装置。
【請求項5】
請求項3または4に記載のレンダリング装置において、
前記重み値演算部は、
前記インデックスnについて、前記光線情報に含まれる前記インデックスmの前記方向情報と前記仮想方向情報との間の成す角の絶対値に対し広義単調減少関数を適用することで、前記重み値を演算する、ことを特徴とするレンダリング装置。
【請求項6】
被写体の形状を表した複数の構成点の位置情報からなる点群、複数のカメラのカメラパラメータからなるカメラパラメータ群、及び前記複数のカメラのそれぞれにより撮影された前記被写体の画像からなる画像群を入力し、前記点群をモデル化して光線情報付き点群を生成する被写体モデル化装置を構成するコンピュータを、
前記点群を構成する前記構成点を順次選択するためのインデックスをnとし、前記カメラパラメータ群を構成する前記カメラパラメータ及び前記画像群を構成する前記画像を順次選択するためのインデックスをmとして、
前記インデックスmの前記カメラパラメータに含まれるカメラ位置及び前記インデックスnの前記構成点の前記位置情報に基づいて、前記構成点からカメラへの光線の方向に関する方向情報を演算する方向演算部、
前記インデックスmの前記カメラパラメータを用いて、前記インデックスnの前記構成点の前記位置情報を前記インデックスmの前記画像の画像座標に投影する投影部、
前記インデックスmの前記画像から、前記投影部により投影された前記画像座標の画素値情報を選択する選択部、
前記インデックスnについて、前記方向演算部により演算された全ての前記インデックスmの前記方向情報及び前記選択部により選択された全ての前記インデックスmの前記画素値情報を多重化することで、前記インデックスnの観測光線情報を生成する第一多重化部、及び、
全ての前記インデックスnの前記位置情報及び前記第一多重化部により生成された全ての前記インデックスnの前記観測光線情報を多重化することで、前記光線情報付き点群を生成する第二多重化部として機能させるためのプログラム。
【請求項7】
被写体の形状を表した複数の構成点の位置情報及び光線情報が多重化された光線情報付き点群、及び仮想カメラのカメラパラメータpを用いて、前記光線情報付き点群をレンダリングし、前記仮想カメラにより撮影される合成画像を生成するレンダリング装置を構成するコンピュータを、
前記光線情報を、複数のカメラのカメラパラメータと、前記複数のカメラのそれぞれにより撮影された前記被写体の画像とに基づいて生成された情報であって、前記構成点からカメラへの光線の方向に関する方向情報、及び前記構成点が投影された画素に関する画素値情報を含む情報とし、
前記光線情報付き点群を構成する前記構成点を順次選択するためのインデックスをnとし、前記光線情報に含まれる前記方向情報及び前記画素値情報を順次選択するためのインデックスをmとして、
前記カメラパラメータpを用いて、前記インデックスnの前記構成点の前記位置情報を画像座標に投影する投影部、
前記カメラパラメータpに含まれる前記仮想カメラのカメラ位置及び前記インデックスnの前記構成点の前記位置情報に基づいて、前記構成点から前記仮想カメラへの光線の方向に関する仮想方向情報を演算する方向演算部、
前記インデックスnについて、前記光線情報に含まれる前記インデックスmの前記方向情報及び前記方向演算部により演算された前記仮想方向情報に基づいて、重み値を演算する重み値演算部、
前記インデックスnについて、前記光線情報に含まれる全ての前記インデックスmの前記画素値情報に対し、前記重み値演算部により演算された全ての前記インデックスmの前記重み値を用いて重み付け合成し、代表値を求める合成部、及び、
全ての前記インデックスnについて、前記合成部により求めた前記代表値を前記投影部により投影された前記画像座標に配置し、前記合成画像を生成する画像生成部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、被写体の形状及び光線を記録及び描画する技術に関し、特に、3次元コンピュータグラフィクス用の被写体をモデル化する被写体モデル化装置、被写体のモデルを視点に応じてレンダリングするレンダリング装置、及びプログラムに関する。
【背景技術】
【0002】
従来、被写体(オブジェクト)の形状を記述するモデルとして、ポイントクラウドが知られている。このポイントクラウドは、3次元座標を有する点の集合として形状を表現する点群であり、ポイントクラウドの各構成点に対して、色情報(例えば、赤、緑及び青成分)を記録することもある。
【0003】
また、3D映像の記述法としてライトフィールドが知られている。ライトフィールドには、画像平面上の画像座標2次元及び当該画像座標へ向かう光線の方向2次元からなる4自由度での表現形式、及び、物体表面または内部の点(3次元)から発生した光線の方向2次元を記述する5自由度での表現形式がある。
【0004】
また、画像から被写体を表現する点群を取得し、ライトフィールドから被写体のパラメトリック曲面を抽出し、パラメトリック曲面に関連してテクスチャマップを取得する没入型ビデオフォーマットのための手法が開示されている(例えば、特許文献1を参照)。
【0005】
また、ライトフィールドデータから点群を再構築する手法も開示されている(例えば、特許文献2を参照)。
【0006】
また、ライトフィールド及び点群を組み合わせて鏡面反射成分を取り除くことで、文字情報の認識率を向上する手法が開示されている(例えば、特許文献3を参照)。
【0007】
さらに、被写体の3次元モデルを構成する各三角形パッチについて、ある視点CEから観測したテクスチャを求めるために、複数の視点で撮影した画像の中から、視点CEに最も近い方向から撮影した画像を利用する手法が提案されている(例えば、非特許文献1を参照)。
【先行技術文献】
【特許文献】
【0008】
【文献】特表2019-534500号公報
【文献】特表2019-534606号公報
【文献】特開2018-45464号公報
【非特許文献】
【0009】
【文献】宇野祐介、中島悠太、河合紀彦、佐藤智和、横矢直和、“拡張現実感のための視点依存テクスチャ・ジオメトリに基づく仮想化実物体の輪郭形状の修復”、電子情報通信学会技術研究報告、信学技報112(385)、223-228、2013-01-23
【発明の概要】
【発明が解決しようとする課題】
【0010】
前述の色情報を記録するポイントクラウドでは、視点に依存しない1つの色情報のみが記録されることが通例である。このため、鏡面反射、異方性反射等のように、視点を変えたときに見た目の色または輝度が変化する場合には、物体を正確に記述することができない。その結果、レンダリング結果が視点によっては不自然な質感を呈することがある。
【0011】
また、前述の4自由度のライトフィールドは、所定の画像平面の各画素について、入射する光線の方向(2自由度)毎に色情報を記録する。その結果、被写体内または被写体間におけるオクルージョンを生じない程度の限定された視点移動範囲内においては、実際の光線に近いものを再生することが可能となり、立体感または質感の提示が可能となる。しかし、前述のとおり、視点移動範囲は限定されるため、所謂3DoF+までの応用に限られる。
【0012】
自由に視点を移動可能な所謂6DoFに対応しつつ、被写体からの光線を正しく再生するためには、被写体上の微小領域毎に出射する光線の方向に対応付けて、色情報を記録する必要がある(5自由度のライトフィールド)。すなわち、被写体の存在する各3次元空間位置(3自由度)の各方向(2自由度)について、色情報を記録する必要がある。この場合、膨大な記憶容量を要するという問題がある。
【0013】
また、前述の非特許文献1に記載されているように、視点に依存してテクスチャ画像を適応的に選択する手法によれば、テクスチャ画像用に視点数分の画像を保持するだけでよいため、記憶容量を削減することが可能となる。
【0014】
しかし、被写体の領域毎または視点位置毎に、選択すべき最適なテクスチャ画像が変化することがあり、レンダリング結果は、テクスチャ画像の切り替えに伴う空間的及び時間的な画素値の不連続を生じる。この不連続はアーチファクトとして知覚され、主観的画質の低下を招く。
【0015】
そこで、本発明は前記課題を解決するためになされたものであり、その目的は、アーチファクトの少ない視点依存のレンダリングを実現すると共に、自然な質感を呈するレンダリング結果を得ることが可能な被写体モデル化装置、レンダリング装置及びプログラムを提供することにある。
【課題を解決するための手段】
【0016】
前記課題を解決するために、請求項1の被写体モデル化装置は、被写体の形状を表した複数の構成点の位置情報からなる点群、複数のカメラのカメラパラメータからなるカメラパラメータ群、及び前記複数のカメラのそれぞれにより撮影された前記被写体の画像からなる画像群を入力し、前記点群をモデル化して光線情報付き点群を生成する被写体モデル化装置であって、前記点群を構成する前記構成点を順次選択するためのインデックスをnとし、前記カメラパラメータ群を構成する前記カメラパラメータ及び前記画像群を構成する前記画像を順次選択するためのインデックスをmとして、前記インデックスmの前記カメラパラメータに含まれるカメラ位置及び前記インデックスnの前記構成点の前記位置情報に基づいて、前記構成点からカメラへの光線の方向に関する方向情報を演算する方向演算部と、前記インデックスmの前記カメラパラメータを用いて、前記インデックスnの前記構成点の前記位置情報を前記インデックスmの前記画像の画像座標に投影する投影部と、前記インデックスmの前記画像から、前記投影部により投影された前記画像座標の画素値情報を選択する選択部と、前記インデックスnについて、前記方向演算部により演算された全ての前記インデックスmの前記方向情報及び前記選択部により選択された全ての前記インデックスmの前記画素値情報を多重化することで、前記インデックスnの観測光線情報を生成する第一多重化部と、全ての前記インデックスnの前記位置情報及び前記第一多重化部により生成された全ての前記インデックスnの前記観測光線情報を多重化することで、前記光線情報付き点群を生成する第二多重化部と、を備えたことを特徴とする。
【0017】
また、請求項2の被写体モデル化装置は、請求項1に記載の被写体モデル化装置において、前記選択部が、前記画像から、前記画像座標の色情報を選択し、前記第一多重化部が、前記インデックスnについて、前記方向演算部により演算された全ての前記インデックスmの前記方向情報及び前記選択部により選択された全ての前記インデックスmの前記色情報を多重化することで、前記インデックスnの前記観測光線情報を生成する、ことを特徴とする。
【0018】
さらに、請求項3のレンダリング装置は、被写体の形状を表した複数の構成点の位置情報及び光線情報が多重化された光線情報付き点群、及び仮想カメラのカメラパラメータpを用いて、前記光線情報付き点群をレンダリングし、前記仮想カメラにより撮影される合成画像を生成するレンダリング装置において、前記光線情報を、複数のカメラのカメラパラメータと、前記複数のカメラのそれぞれにより撮影された前記被写体の画像とに基づいて生成された情報であって、前記構成点からカメラへの光線の方向に関する方向情報、及び前記構成点が投影された画素に関する画素値情報を含む情報とし、前記光線情報付き点群を構成する前記構成点を順次選択するためのインデックスをnとし、前記光線情報に含まれる前記方向情報及び前記画素値情報を順次選択するためのインデックスをmとして、前記カメラパラメータpを用いて、前記インデックスnの前記構成点の前記位置情報を画像座標に投影する投影部と、前記カメラパラメータpに含まれる前記仮想カメラのカメラ位置及び前記インデックスnの前記構成点の前記位置情報に基づいて、前記構成点から前記仮想カメラへの光線の方向に関する仮想方向情報を演算する方向演算部と、前記インデックスnについて、前記光線情報に含まれる前記インデックスmの前記方向情報及び前記方向演算部により演算された前記仮想方向情報に基づいて、重み値を演算する重み値演算部と、前記インデックスnについて、前記光線情報に含まれる全ての前記インデックスmの前記画素値情報に対し、前記重み値演算部により演算された全ての前記インデックスmの前記重み値を用いて重み付け合成し、代表値を求める合成部と、全ての前記インデックスnについて、前記合成部により求めた前記代表値を前記投影部により投影された前記画像座標に配置し、前記合成画像を生成する画像生成部と、を備えたことを特徴とする。
【0019】
また、請求項4のレンダリング装置は、請求項3に記載のレンダリング装置において、前記光線情報を、前記方向情報、及び前記構成点が投影された画素に関する色情報を含む情報とし、前記光線情報に含まれる前記方向情報及び前記色情報を順次選択するためのインデックスをmとして、前記合成部が、前記インデックスnについて、前記光線情報に含まれる全ての前記インデックスmの前記色情報に対し、全ての前記インデックスmの前記重み値を用いて重み付け合成し、前記代表値を求める、ことを特徴とする。
【0020】
また、請求項5のレンダリング装置は、請求項3または4に記載のレンダリング装置において、前記重み値演算部が、前記インデックスnについて、前記光線情報に含まれる前記インデックスmの前記方向情報と前記仮想方向情報との間の成す角の絶対値に対し広義単調減少関数を適用することで、前記重み値を演算する、ことを特徴とする。
【0021】
さらに、請求項6のプログラムは、被写体の形状を表した複数の構成点の位置情報からなる点群、複数のカメラのカメラパラメータからなるカメラパラメータ群、及び前記複数のカメラのそれぞれにより撮影された前記被写体の画像からなる画像群を入力し、前記点群をモデル化して光線情報付き点群を生成する被写体モデル化装置を構成するコンピュータを、前記点群を構成する前記構成点を順次選択するためのインデックスをnとし、前記カメラパラメータ群を構成する前記カメラパラメータ及び前記画像群を構成する前記画像を順次選択するためのインデックスをmとして、前記インデックスmの前記カメラパラメータに含まれるカメラ位置及び前記インデックスnの前記構成点の前記位置情報に基づいて、前記構成点からカメラへの光線の方向に関する方向情報を演算する方向演算部、前記インデックスmの前記カメラパラメータを用いて、前記インデックスnの前記構成点の前記位置情報を前記インデックスmの前記画像の画像座標に投影する投影部、前記インデックスmの前記画像から、前記投影部により投影された前記画像座標の画素値情報を選択する選択部、前記インデックスnについて、前記方向演算部により演算された全ての前記インデックスmの前記方向情報及び前記選択部により選択された全ての前記インデックスmの前記画素値情報を多重化することで、前記インデックスnの観測光線情報を生成する第一多重化部、及び、全ての前記インデックスnの前記位置情報及び前記第一多重化部により生成された全ての前記インデックスnの前記観測光線情報を多重化することで、前記光線情報付き点群を生成する第二多重化部として機能させることを特徴とする。
【0022】
また、請求項7のプログラムは、被写体の形状を表した複数の構成点の位置情報及び光線情報が多重化された光線情報付き点群、及び仮想カメラのカメラパラメータpを用いて、前記光線情報付き点群をレンダリングし、前記仮想カメラにより撮影される合成画像を生成するレンダリング装置を構成するコンピュータを、前記光線情報を、複数のカメラのカメラパラメータと、前記複数のカメラのそれぞれにより撮影された前記被写体の画像とに基づいて生成された情報であって、前記構成点からカメラへの光線の方向に関する方向情報、及び前記構成点が投影された画素に関する画素値情報を含む情報とし、前記光線情報付き点群を構成する前記構成点を順次選択するためのインデックスをnとし、前記光線情報に含まれる前記方向情報及び前記画素値情報を順次選択するためのインデックスをmとして、前記カメラパラメータpを用いて、前記インデックスnの前記構成点の前記位置情報を画像座標に投影する投影部、前記カメラパラメータpに含まれる前記仮想カメラのカメラ位置及び前記インデックスnの前記構成点の前記位置情報に基づいて、前記構成点から前記仮想カメラへの光線の方向に関する仮想方向情報を演算する方向演算部、前記インデックスnについて、前記光線情報に含まれる前記インデックスmの前記方向情報及び前記方向演算部により演算された前記仮想方向情報に基づいて、重み値を演算する重み値演算部、前記インデックスnについて、前記光線情報に含まれる全ての前記インデックスmの前記画素値情報に対し、前記重み値演算部により演算された全ての前記インデックスmの前記重み値を用いて重み付け合成し、代表値を求める合成部、及び、全ての前記インデックスnについて、前記合成部により求めた前記代表値を前記投影部により投影された前記画像座標に配置し、前記合成画像を生成する画像生成部として機能させることを特徴とする。
【発明の効果】
【0023】
以上のように、本発明によれば、アーチファクトの少ない視点依存のレンダリングを実現すると共に、自然な質感を呈するレンダリング結果を得ることができる。
【図面の簡単な説明】
【0024】
【
図1】本発明の実施形態による被写体モデル化装置の構成例を示すブロック図である。
【
図2】被写体モデル化装置の処理例を示すフローチャートである。
【
図3】被写体モデル化装置の処理例を説明する概念図である。
【
図4】光線情報付き点群Kを説明する概念図である。
【
図5】本発明の実施形態によるレンダリング装置の構成例を示すブロック図である。
【
図6】レンダリング装置の処理例を示すフローチャートである。
【
図7】レンダリング装置の処理例を説明する概念図である。
【発明を実施するための形態】
【0025】
以下、本発明を実施するための形態について図面を用いて詳細に説明する。
〔被写体モデル化装置〕
まず、本発明の実施形態による被写体モデル化装置について説明する。
図1は、本発明の実施形態による被写体モデル化装置の構成例を示すブロック図である。
【0026】
この被写体モデル化装置1は、被写体を構成する各構成点の位置ベクトル(構成点位置)Qnを含む点群、各カメラのカメラパラメータpmからなるカメラパラメータ群、及び各カメラにより撮影された被写体の画像Imからなる撮影画像群を入力する。そして、被写体モデル化装置1は、点群、カメラパラメータ群及び撮影画像群に基づいて、光線情報付き点群Kを生成して出力する。
【0027】
点群は、被写体の形状を3次元空間内の点の集合として記述するものである。すなわち、点群は、1以上の構成点からなり、各構成点には、位置情報として3次元座標の構成点位置Qnが含まれる。点群の構成点の数(構成点数)をN(Nは1以上の整数)とし、そのn番目(nは1以上N以下の整数)の構成点位置をQnとする。
【0028】
撮影画像群は、異なる視点のカメラにより被写体が撮影された複数の画像Imである。光線数(画像枚数、カメラ台数)をM(Mは1以上の整数)とし、そのm番目(mは1以上M以下の整数)の画像をImとする。
【0029】
カメラパラメータ群は、撮影画像群を構成する各画像Imが撮影された際の光学系(カメラ及びレンズ)のパラメータである。カメラパラメータ群を構成するm番目のカメラパラメータは、画像Imが撮影された際のカメラパラメータとし、これをpmとする。
【0030】
カメラパラメータpmは、被写界の3次元座標(以下、「世界座標」という。)を画像の画像座標に対応付けるために必要なパラメータであり、例えば、レンズの光学主点位置、カメラの姿勢、撮像素子の画素の大きさ及び配置、レンズの焦点距離等の情報からなる。
【0031】
以下、被写体及び複数のカメラが配置された空間の座標を世界座標Xとし、画像I
m上の座標を画像座標xとして、カメラパラメータpによる世界座標Xから画像座標xへの変換を、関数hを用いて以下の式で表すこととする。
【数1】
【0032】
図1に示すように、被写体モデル化装置1は、第一カウンタ10、構成点選択部11、第二カウンタ12、パラメータ選択部13、画像選択部14、方向ベクトル演算部(方向演算部)15、投影部16、画素値選択部17、第一多重化部18及び第二多重化部19を備えている。
【0033】
第一カウンタ10は、入力される点群の各構成点を順次選択するためのインデックスnを生成するために、1からNまで順番にカウントし、カウント値をインデックスnとして構成点選択部11及び第二多重化部19に出力する。
【0034】
構成点選択部11は、各構成点の構成点位置Q1,・・・,QNを含む点群を入力すると共に、第一カウンタ10からインデックスnを入力する。そして、構成点選択部11は、点群から、インデックスnに対応するn番目の構成点の構成点位置Qnを選択し、構成点位置Qnを方向ベクトル演算部15、投影部16及び第二多重化部19に出力する。
【0035】
第二カウンタ12は、入力される撮影画像群の各画像I1,・・・,IM及びこれに対応するカメラパラメータ群の各カメラパラメータp1,・・・,pMを順次選択するためのインデックスmを生成するために、1からMまで順番にカウントする。そして、第二カウンタ12は、カウント値をインデックスmとしてパラメータ選択部13、画像選択部14及び第一多重化部18に出力する。
【0036】
パラメータ選択部13は、各カメラのカメラパラメータp1,・・・,pMからなるカメラパラメータ群を入力すると共に、第二カウンタ12からインデックスmを入力する。そして、パラメータ選択部13は、カメラパラメータ群から、インデックスmに対応するm番目のカメラパラメータpmを選択し、カメラパラメータpmを方向ベクトル演算部15及び投影部16に出力する。
【0037】
画像選択部14は、各カメラにより撮影された画像I1,・・・,IMからなる撮影画像群を入力すると共に、第二カウンタ12からインデックスmを入力する。そして、画像選択部14は、撮影画像群から、インデックスmに対応するm番目の画像Imを選択し、画像Imを画素値選択部17に出力する。
【0038】
方向ベクトル演算部15は、構成点選択部11から構成点位置Qnを入力すると共に、パラメータ選択部13からカメラパラメータpmを入力する。カメラパラメータpmには、レンズの光学主点位置の世界座標(以下、「カメラ位置」という。)Wmが含まれるものとする。
【0039】
方向ベクトル演算部15は、以下の式にて、構成点位置Q
nからカメラ位置W
mに至る光線のベクトルの方向情報である方向(以下、「方向ベクトル」という。)Λ
m,nを演算し、方向ベクトルΛ
m,nを第一多重化部18に出力する。
【数2】
【0040】
投影部16は、構成点選択部11から構成点位置Q
nを入力すると共に、パラメータ選択部13からカメラパラメータp
mを入力する。そして、投影部16は、以下の式にて、カメラパラメータp
mを用いて構成点位置Q
nを画像座標ξ
m,nに投影し、画像座標ξ
m,nを画素値選択部17に出力する。
【数3】
【0041】
つまり、投影部16は、カメラパラメータpmを用いて、世界座標上のn番目の構成点を画像Imの画像座標上へ投影することで、構成点位置Qnを画像座標ξm,nに変換する。
【0042】
画素値選択部17は、画像選択部14から画像Imを入力すると共に、投影部16から画像座標ξm,nを入力する。そして、画素値選択部17は、画像Imから、画像座標ξm,nの画素値I(ξm,n)を選択し、これを画素値Vm,nとして第一多重化部18に出力する。
【0043】
尚、画素値選択部17は、画像Imから画素値I(ξm,n)を選択する際に、画像座標ξm,nに対応する画素値情報が存在しない場合、例えば当該画像座標ξm,nに最も近接し、かつ画素値情報が存在する画素値を選択するようにしてもよい。画像座標ξm,nに対応する画素値情報が存在しない場合とは、例えば画像座標ξm,nを示す座標値が非整数である場合、画像座標ξm,nが撮像センサ上における画素配列に合致しない位置を示している場合である。
【0044】
また、画素値選択部17は、画像座標ξm,nに対応する画素値情報が存在しない場合、画像座標ξm,nの周辺(例えば、距離が近い方から所定の個数まで)の画素の存在する複数の画素値とその位置関係を考慮して、内挿または外挿により画素値を求めるようにしてもよい。この場合、例えば、内挿に双一次補間、双三次補間、Lanczos補間、スプライン補間等の補間法を用いることができる。
【0045】
第一多重化部18は、第二カウンタ12からインデックスmを、方向ベクトル演算部15から方向ベクトルΛm,nを、画素値選択部17から画素値Vm,nをそれぞれ入力する。
【0046】
第一多重化部18は、インデックスnについて、全てのインデックスmの方向ベクトルΛ1,n,・・・,ΛM,n及び画素値V1,n,・・・,VM,nを多重化し、その結果の行列(以下、n番目の構成点における「観測光線情報」という。)Lnを求める。そして、第一多重化部18は、観測光線情報Lnを第二多重化部19に出力する。
【0047】
すなわち、第一多重化部18は、n番目の構成点について、m番目の方向ベクトルΛm,nと画素値Vm,nとを対応付けしながら、全てのインデックスmについてまとめ、その結果の集合を観測光線情報Lnとして求める。
【0048】
例えば観測光線情報L
nは、以下の式で表される。
【数4】
【0049】
尚、第一多重化部18は、前記式(4)のとおり、方向ベクトルΛ1,n,・・・,ΛM,nを含む観測光線情報Lnを求めるようにしてもよい。また、第一多重化部18は、方向ベクトルΛ1,n,・・・,ΛM,nを単位方向ベクトルに変換し、単位方向ベクトルを含む観測光線情報Lnを求めるようにしてもよい。さらに、第一多重化部18は、方向ベクトルΛ1,n,・・・,ΛM,nを2自由度の角度情報(例えば、方位角及び仰角)に変換し、2自由度の角度を含む観測光線情報Lnを求めるようにしてもよい。
【0050】
例えば第一多重化部18は、方向ベクトルΛ
1,n,・・・,Λ
M,nを方位角φ
1,n,・・・,φ
M,n及び仰角θ
1,n,・・・,θ
M,nに変換し、以下の式のとおり、これらの角度を含む観測光線情報L
nを求める。
【数5】
atan2(Y,X)は、座標[X,Y]
Tの偏角を求める関数である。
【0051】
第二多重化部19は、第一カウンタ10からインデックスnを、構成点選択部11から構成点位置Qnを、第一多重化部18から観測光線情報Lnをそれぞれ入力する。
【0052】
第二多重化部19は、全てのインデックスnの構成点位置Q1,・・・,QN及び観測光線情報L1,・・・,LNを多重化し、その結果の行列(以下、「光線情報付き点群」という。)Kを求める。そして、第二多重化部19は、光線情報付き点群Kを出力する。
【0053】
すなわち、第二多重化部19は、n番目の構成点の構成点位置Qnと観測光線情報Lnとを対応付けしながら、全ての構成点についてまとめ、その結果の集合を光線情報付き点群Kとして求める。
【0054】
例えば光線情報付き点群Kは、以下の式で表される。
【数6】
【0055】
(処理)
次に、
図1に示した被写体モデル化装置1の処理の流れについて詳細に説明する。
図2は、被写体モデル化装置1の処理例を示すフローチャートであり、
図3は、被写体モデル化装置1の処理例を説明する概念図である。
【0056】
図3において、被写体3の形状が反映された点群のうち、n番目の構成点の構成点位置Q
nが選択されるものとする。カメラ4-1,4-m,4-Mのカメラパラメータをそれぞれp
1,p
m,p
Mとし、これらのカメラ位置をそれぞれW
1,W
m,W
Mとする。
【0057】
カメラ4-1,4-m,4-Mにより撮影された画像をそれぞれI1,Im,IMとし、構成点位置Qnの構成点が画像I1,Im,IMの座標に投影された画像座標をそれぞれξ1,n,ξm,n,ξM,nとする。また、画像座標ξ1,n,ξm,n,ξM,nの画素値をそれぞれV1,n,Vm,n,VM,nとする。
【0058】
まず、第一カウンタ10は、1をカウント値としたインデックスn=1を生成する(ステップS201、n←1)。そして、構成点選択部11は、点群から、インデックスnに対応するn番目の構成点の構成点位置Q
nを選択する(ステップS202)。
図3に示すように、被写体3の形状が反映された点群のうち、n番目の構成点の構成点位置Q
nが選択される。
【0059】
第二カウンタ12は、1をカウント値としたインデックスmを生成する(ステップS203、m←1)。そして、パラメータ選択部13は、カメラパラメータ群から、インデックスmのカメラパラメータpmを選択し(ステップS204)、画像選択部14は、撮影画像群から、インデックスmの画像Imを選択する(ステップS205)。
【0060】
図3に示すように、インデックスm=1の場合、カメラパラメータp
1及び画像I
1が選択され、インデックスm=Mの場合、カメラパラメータp
M及び画像I
Mが選択される。つまり、インデックスmの場合、カメラパラメータp
m及び画像I
mが選択される。
【0061】
方向ベクトル演算部15は、構成点位置Qnからカメラ位置Wmに至る方向ベクトルΛm,nを演算し(ステップS206)、投影部16は、カメラパラメータpmを用いて構成点位置Qnを画像座標ξm,nに投影する(ステップS207)。そして、画素値選択部17は、画像Imから、画像座標ξm,nの画素値Vm,nを選択する(ステップS208)。
【0062】
図3に示すように、インデックスm=1の場合、方向ベクトルΛ
1,n、画像座標ξ
1,n及び画素値V
1,nが得られ、インデックスm=Mの場合、方向ベクトルΛ
M,n、画像座標ξ
M,n及び画素値V
M,nが得られる。つまり、インデックスmの場合、方向ベクトルΛ
m,n、画像座標ξ
m,n及び画素値V
m,nが得られる。
【0063】
第二カウンタ12は、インデックスmが光線数M未満であるか否かを判定する(ステップS209)。第二カウンタ12は、ステップS209において、インデックスmが光線数M未満であると判定した場合(ステップS209:Y)、インデックスmに1を加算し(ステップS210、m←m+1)、ステップS204へ移行する。これにより、インデックスmについて、ステップS204~S208の処理が行われる。
【0064】
一方、第二カウンタ12は、ステップS209において、インデックスmが光線数M未満でないと判定した場合(ステップS209:N)、ステップS211へ移行する。
【0065】
この場合、インデックスn(最初はn=1)及び全てのインデックスm=1,・・・,Mについて、ステップS204~S208の処理により、方向ベクトルΛ1,n,・・・,ΛM,n及び画素値V1,n,・・・,VM,nが得られる。
【0066】
第一多重化部18は、ステップS209(N)から移行して、インデックスnについて、全てのインデックスmの方向ベクトルΛ1,n,・・・,ΛM,n及び画素値V1,n,・・・,VM,nを多重化し、観測光線情報Lnを求める(ステップS211)。
【0067】
第一カウンタ10は、インデックスnが構成点数N未満であるか否かを判定する(ステップS212)。第一カウンタ10は、ステップS212において、インデックスnが構成点数N未満であると判定した場合(ステップS212:Y)、インデックスnに1を加算し(ステップS213、n←n+1)、ステップS202へ移行する。これにより、インデックスnについて、ステップS202~S211の処理が行われる。
【0068】
一方、第一カウンタ10は、ステップS212において、インデックスnが構成点数N未満でないと判定した場合(ステップS212:N)、ステップS214へ移行する。この場合、全てのインデックスn=1,・・・,Nについて、ステップS202~S211の処理により、構成点位置Q1,・・・,QN及び観測光線情報L1,・・・,LNが得られる。
【0069】
第二多重化部19は、ステップS212(N)から移行して、全てのインデックスnの構成点位置Q1,・・・,QN及び観測光線情報L1,・・・,LNを多重化し、光線情報付き点群Kを求める(ステップS214)。
【0070】
図4は、光線情報付き点群Kを説明する概念図であり、カメラ台数を5(光線数M=5)とした場合の例が示されている。
【0071】
全ての構成点のうち1つの構成点101に注目し、この構成点101の構成点位置をQnとする。1つの構成点101について、その構成点位置Qnと、5台のカメラ4-1,・・・,4-5により観測された光線情報の成分l1,・・・,l5からなる観測光線情報Lnとが多重化され、光線情報付き点群Kの成分(Qn,Ln)が得られる。
【0072】
前記式(5)の例では、構成点101について、構成点位置Qnに加えて、5台のカメラ4-1,・・・,4-5により観測された観測光線情報Ln=(φ1,n,θ1,n,V1,n),・・・,(φ5,n,θ5,n,V5,n)が多重化され、光線情報付き点群Kの成分(Qn,Ln)が得られる。
【0073】
つまり、全てのインデックスnの構成点について、構成点位置Q1,・・・,QNと観測光線情報L1,・・・,LNとが多重化され、光線情報付き点群Kが得られる。
【0074】
以上のように、本発明の実施形態の被写体モデル化装置1によれば、構成点選択部11は、点群からインデックスnの構成点位置Qnを選択し、パラメータ選択部13は、カメラパラメータ群からインデックスmのカメラパラメータpmを選択し、画像選択部14は、撮影画像群からインデックスmの画像Imを選択する。
【0075】
方向ベクトル演算部15は、構成点位置Qnからカメラ位置Wmに至る方向ベクトルΛm,nを演算し、投影部16は、カメラパラメータpmを用いて構成点位置Qnを画像座標ξm,nに投影し、画素値選択部17は、画像Imから画像座標ξm,nの画素値Vm,nを選択する。
【0076】
これにより、インデックスn及び全てのインデックスmについて、方向ベクトルΛ1,n,・・・,ΛM,n及び画素値V1,n,・・・,VM,nが得られる。
【0077】
第一多重化部18は、インデックスnについて、全てのインデックスmの方向ベクトルΛ1,n,・・・,ΛM,n及び画素値V1,n,・・・,VM,nを多重化し、観測光線情報Lnを求める。
【0078】
これにより、全てのインデックスn=1,・・・,Nについて、構成点位置Q1,・・・,QN及び観測光線情報L1,・・・,LNが得られる。
【0079】
第二多重化部19は、全てのインデックスnの構成点位置Q1,・・・,QN及び観測光線情報L1,・・・,LNを多重化し、光線情報付き点群Kを求める。
【0080】
このように、点群の各構成点に対して複数の観測光線情報L
nが得られるため、視点を変えて観視したときの見え方(例えば色)を違えたレンダリングに供することができる。つまり、後述する
図5に示すレンダリング装置2は、被写体モデル化装置1により生成された光線情報付き点群Kを用いて、視点を変えて観視したときの画像を生成することができる。
【0081】
レンダリング装置2により視点を変えた画像が生成される際に、被写体3の形状が反映された各構成点の構成点位置Qnと、構成点に対し複数のカメラ4の視点を基準にして得られた方向ベクトルΛm,n及び画素値Vm,nの観測光線情報Lnとからなる光線情報付き点群Kが使用される。
【0082】
前述の非特許文献1の手法においては、レンダリング結果には、テクスチャ画像の切り替えに伴う空間的及び時間的な画素値の不連続が生じる。これに対し、本発明の実施形態では、レンダリングのために、複数の視点を基準とした方向ベクトルΛm,n及び画素値Vm,nが用いられるため、レンダリング結果には、空間的及び時間的な画素値の不連続が生じることはない。
【0083】
したがって、複数の光線を切り替えながら画像を生成する際に問題となる空間的及び時間的な不連続を回避することができ、結果として、アーチファクトの少ない視点依存のレンダリングを実現すると共に、自然な質感を呈するレンダリング結果を得ることができる。
【0084】
また、観測光線情報Lnは、各構成点に対して複数のカメラ4の視点数分の構成点位置Qn、方向ベクトルΛm,n及び画素値Vm,nからなるため、データ量を削減することができる。
【0085】
以下、前述のライトフィールドの記述法を用いた従来技術によるデータ量と、本発明の実施形態によるデータ量とを比較する。この従来技術では、位置(2~3自由度)及び光線方向(2自由度)の計4~5次元空間において画素値を記録する場合、すなわち、4~5次元空間を細かく刻み、その各格子点に画素値を記録する場合を想定する。
【0086】
従来技術では、例えば空間内の1,000,000点に対し、方位角方向360個、仰角方向180個の刻みで色情報を記録すると、1,000,000×360×180=64,800,000,000個のアドレスに対して画素値(例えば24ビット値)を記録する必要がある。この場合に必要なメモリ容量は、1.5552×1012ビットである。
【0087】
これに対し、本発明の実施形態では、空間内の1,000,000点からなる点群の場合、この数値にカメラ台数(例えば光線数M=100)を乗算した1,000,000×100=100,000,000個のアドレスに対し、方向(360×180=64,800≒65,536のため、16ビット値)及び画素値(例えば24ビット値)からなる40ビット値を記録する必要がある。この場合に必要なメモリ容量は、4.0×109ビットである。
【0088】
このように、従来技術によるデータ量は1.5552×1012ビットであるのに対し、本発明の実施形態によるデータ量は4.0×109ビットである。したがって、本発明の実施形態において、カメラ台数が極端に多くない場合(例えば100台程度の場合)には、データ削減効果が顕著となる。この例ではデータ量は1/388.8倍となる。
【0089】
〔レンダリング装置〕
次に、本発明の実施形態によるレンダリング装置について説明する。
図5は、本発明の実施形態によるレンダリング装置の構成例を示すブロック図である。
【0090】
このレンダリング装置2は、
図1に示した被写体モデル化装置1により生成された光線情報付き点群K、及び仮想カメラ5のカメラパラメータpを入力する。そして、レンダリング装置2は、光線情報付き点群K及びカメラパラメータpに基づいて、カメラパラメータpで示される仮想カメラ5で観測したときのコンピュータグラフィクス(CG)画像を生成し、これを合成画像Jとして出力する。
【0091】
図5に示すように、レンダリング装置2は、第一カウンタ20、構成点選択部21、方向ベクトル演算部(方向演算部)22、投影部23、第二カウンタ24、光線選択部25、重み値演算部26、画素値合成部27及び画像生成部28を備えている。
【0092】
第一カウンタ20は、光線情報付き点群Kの各構成点を順次選択するためのインデックスnを生成するために、1からNまで順番にカウントし、カウント値をインデックスnとして構成点選択部21及び画像生成部28に出力する。
【0093】
構成点選択部21は、
図1に示した被写体モデル化装置1により生成された光線情報付き点群K={(Q
1,L
1),・・・,(Q
N,L
N)}を入力すると共に、第一カウンタ20からインデックスnを入力する。そして、構成点選択部21は、光線情報付き点群K={(Q
1,L
1),・・・,(Q
N,L
N)}から、インデックスnに対応するn番目の構成点の成分(Q
n,L
n)を選択する。構成点選択部21は、構成点位置Q
nを方向ベクトル演算部22及び投影部23に出力すると共に、観測光線情報L
nを光線選択部25に出力する。
【0094】
方向ベクトル演算部22は、構成点選択部21から構成点位置Qnを入力すると共に、仮想カメラ5のカメラパラメータpを入力する。カメラパラメータpには、カメラ位置Wが含まれるものとする。
【0095】
方向ベクトル演算部22は、以下の式にて、構成点位置Q
nからカメラ位置Wに至る光線の方向を示す仮想方向情報である単位方向ベクトル(以下、「方向ベクトル」という。)Γ
nを演算し、方向ベクトルΓ
nを重み値演算部26に出力する。
【数7】
【0096】
投影部23は、構成点選択部21から構成点位置Q
nを入力すると共に、仮想カメラ5のカメラパラメータpを入力する。そして、投影部23は、以下の式にて、カメラパラメータpを用いて構成点位置Q
nを画像座標q
nに投影し、画像座標q
nを画像生成部28に出力する。
【数8】
【0097】
つまり、投影部23は、カメラパラメータpを用いて、世界座標上のn番目の構成点を、仮想カメラ5により撮影される画像(合成画像J)の画像座標上へ投影することで、構成点位置Qnを画像座標qnに変換する。
【0098】
第二カウンタ24は、観測光線情報Lnから方向ベクトルΛm,n及び画素値Vm,nを順次選択すると共に、画素値Vm,nと重み値βm,nとを順次対応付けるためのインデックスmを生成するために、1からMまで順番にカウントする。そして、第二カウンタ24は、カウント値をインデックスmとして光線選択部25及び画素値合成部27に出力する。
【0099】
光線選択部25は、構成点選択部21から観測光線情報Lnを入力すると共に、第二カウンタ24からインデックスmを入力する。そして、光線選択部25は、観測光線情報Lnからインデックスmに対応するm番目の成分(前記式(4)に示した観測光線情報Lnの場合、第m列を構成する列ベクトルの成分(Λm,n,Vm,n))を選択する。光線選択部25は、方向ベクトルΛm,nの単位ベクトル(以下、説明の便宜上、方向ベクトルΛm,nとして説明する。)を重み値演算部26に出力すると共に、画素値Vm,nを画素値合成部27に出力する。
【0100】
尚、光線選択部25は、前記式(5)に示した観測光線情報Lnの場合、観測光線情報Lnからインデックスmに対応するm番目の成分(第m列を構成する列ベクトルの成分(φm,n,θm,n,Vm,n))を選択する。
【0101】
光線選択部25は、以下の式にて、方位角φ
m,n及び仰角θ
m,nを方向ベクトルΛ
m,nに変換し、方向ベクトルΛ
m,nを重み値演算部26に出力すると共に、画素値V
m,nを画素値合成部27に出力する。
【数9】
【0102】
重み値演算部26は、光線選択部25から方向ベクトルΛm,nを入力すると共に、方向ベクトル演算部22から方向ベクトルΓnを入力する。そして、重み値演算部26は、方向ベクトルΛm,n及び方向ベクトルΓnに基づいて、方向ベクトルΛm,nと方向ベクトルΓnとの間の成す角が狭いほど、大きい値の重み値βm,nを演算にて求め、当該成す角が広いほど、小さい値の重み値βm,nを演算にて求める。重み値演算部26は、例えば方向ベクトルΛm,nと方向ベクトルΓnとの間の成す角の絶対値に対し、広義単調減少関数を適用することで、重み値βm,nを求める。
【0103】
レンダリング時には、
図1に示した被写体モデル化装置1により光線情報付き点群Kが生成された際に活用したカメラのうち、できる限り仮想カメラ5の仮想視点に近い方向のカメラによって観測された画素値V
m,nを利用することが好ましい。このため、重み値β
m,nとしては、方向ベクトルΛ
m,nと方向ベクトルΓ
nの成す角α
m,nが狭いほど、小さくない値を設定することが好ましい。
【0104】
そこで、重み値演算部26は、例えば以下の式のように、単位方向ベクトルである方向ベクトルΛ
m,n及び方向ベクトルΓ
nの内積(すなわち、cosα
m,n)の関数fを用いて、重み値β
m,nを演算するようにしてもよい。
【数10】
ここで、関数fは、内積に対する広義単調増加関数とする。
【0105】
例えば、以下の式に示す関数fを用いるようにしてもよい。
【数11】
【数12】
ここで、sは正の実定数とする。
【0106】
前記式(11)及び前記式(12)において、定数sが大きいほど、方向の揃った(角αm,nが狭い)方向ベクトルΛm,n及び方向ベクトルΓnの組み合わせがより重視されるようになる。つまり、当該方向ベクトルΛm,nに対応する画素値Vm,nが合成画像Jに反映されるようになる。定数sは、例えば1以上100以下程度が好ましい。
【0107】
また、重み値演算部26は、定数sの代わりに、観測光線情報Lnの光線数Mに応じて変化する変数sを用いるようにしてもよい。合成画像Jは、観測光線情報Lnの光線数Mが多いほど、より方向の揃った方向ベクトルΛm,n及び方向ベクトルΓnの組み合わせだけに集中した方が、最終的に鮮明となる傾向にある。
【0108】
このため、重み値演算部26は、光線数Mが大きいほど、大きい値の変数sを設定し、光線数Mが小さいほど、小さい値の変数sを設定する(または、光線数Mに等しい値の変数sを設定する)。そして、重み値演算部26は、前記式(11)または前記式(12)の関数fを用いて前記式(10)にて、重み値βm,nを演算する。
【0109】
また、重み値演算部26は、以下の式にて、方向ベクトルΓ
nについて、方向ベクトルΛ
1,n,・・・,Λ
M,nの中から、内積値が最大となるものだけを選択するように、重み値β
m,nを演算するようにしてもよい。
【数13】
【0110】
画素値合成部27は、第二カウンタ24からインデックスmを、光線選択部25から画素値Vm,nを、重み値演算部26から重み値βm,nをそれぞれ入力する。
【0111】
画素値合成部27は、インデックスnについて、インデックスmの画素値Vm,n及び重み値βm,nを対応付けながら、全ての画素値V1,n,・・・,VM,nに対して全ての重み値β1,n,・・・,βM,nを用いた重み付けを行う。そして、画素値合成部27は、全てのインデックスmについての重み付け結果を合成し、代表値Unを求める。そして、画素値合成部27は、代表値Unを画像生成部28に出力する。
【0112】
例えば画素値合成部27は、以下の式にて、重み付き平均値を代表値U
nとして算出する。
【数14】
【0113】
また、画素値合成部27は、重み値βm,nに応じて画素値Vm,nを再サンプリングし(例えば、重み値βm,nが大きいほど画素値Vm,nのサンプル数を増やし)、再サンプリング後の画素値サンプル列の中央値を代表値Unとして求めるようにしてもよい。
【0114】
画像生成部28は、第一カウンタ20からインデックスnを、投影部23から画像座標q
nを、画素値合成部27から代表値U
nをそれぞれ入力する。そして、画像生成部28は以下の式にて、全てのインデックスnについて、代表値U
nを画像座標q
nに配置する操作を繰り返して行い、合成画像Jを生成して出力する。
【数15】
【0115】
尚、画像生成部28は、インデックスnについて、画像座標qnが合成画像Jの画像外にある場合、または、投影部23にて前記式(8)により画像座標qnが求められなかった場合(例えば、構成点位置Qnが仮想カメラ5の後ろ側にある場合)、当該インデックスnの代表値Unを画像座標qnに配置する処理をスキップするようにしてもよい。
【0116】
また、画像生成部28は、画像座標qnの成分が非整数値である場合、その値を整数に丸めた後に、前記式(15)にて、インデックスnの代表値Unを画像座標qnに配置する操作を行うようにしてもよい。
【0117】
また、画像生成部28は、インデックスnの代表値Unを、画像座標qnの周囲の画素に波及させて補間処理を行うようにしてもよい。さらには、画像生成部28は、最終的に出力する合成画像Jの解像度よりも高い解像度にて仮の合成画像を生成し(オーバサンプリングし)、この仮の合成画像を補間及び縮小することによって、最終的に出力する合成画像Jを生成するようにしてもよい。
【0118】
(処理)
次に、
図5に示したレンダリング装置2の処理の流れについて詳細に説明する。
図6は、レンダリング装置2の処理例を示すフローチャートであり、
図7は、レンダリング装置2の処理例を説明する概念図である。
【0119】
図7において、被写体3の形状が反映された点群のうち、n番目の構成点の構成点位置Q
nについて、代表値U
nが仮想カメラ5により撮影される合成画像J内の画像座標q
nに配置されるものとする。
【0120】
カメラ4-1,4-m,4-Mのカメラパラメータp
1,p
m,p
M及びカメラ位置W
1,W
m,W
M、並びに画像I
1,I
m,I
M、画像座標ξ
1,n,ξ
m,n,ξ
M,n、画素値V
1,n,V
m,n,V
M,n及び方向ベクトルΛ
1,n,Λ
m,n,Λ
M,nについては、
図3と同様である。
【0121】
まず、第一カウンタ20は、1をカウント値としたインデックスn=1を生成する(ステップS601、n←1)。そして、構成点選択部21は、光線情報付き点群Kから、インデックスnに対応するn番目の構成点の構成点位置Qn及び観測光線情報Lnを選択する(ステップS602)。
【0122】
図7に示すように、被写体3の形状が反映された点群のうち、n番目の構成点の構成点位置Q
nが選択されると共に、図示しない観測光線情報L
nである方向ベクトルΛ
1,n,・・・,Λ
M,n及び画素値V
1,n,・・・,V
M,nが選択される。
【0123】
方向ベクトル演算部22は、構成点位置Qnからカメラ位置Wに至る方向ベクトルΓnを演算し(ステップS603)、投影部23は、カメラパラメータpを用いて構成点位置Qnを画像座標qnに投影する(ステップS604)。
【0124】
図7に示すように、被写体3の構成点位置Q
nから仮想カメラ5のカメラ位置Wに至る方向ベクトルΓ
nが得られ、合成画像J内の画像座標q
nが得られる。
【0125】
第二カウンタ24は、1をカウント値としたインデックスmを生成する(ステップS605、m←1)。そして、光線選択部25は、観測光線情報Lnから、インデックスmの方向ベクトルΛm,n及び画素値Vm,nを選択し(ステップS606)、重み値演算部26は、方向ベクトルΛm,n及び方向ベクトルΓnから重み値βm,nを演算する(ステップS607)。
【0126】
図7に示すように、インデックスm=1の場合、観測光線情報L
1から方向ベクトルΛ
1,n及び画素値V
1,nが選択され、インデックスm=Mの場合、観測光線情報L
Mから方向ベクトルΛ
M,n及び画素値V
M,nが選択される。つまり、インデックスmの場合、観測光線情報L
mから方向ベクトルΛ
m,n及び画素値V
m,nが選択される。
【0127】
第二カウンタ24は、インデックスmが光線数M未満であるか否かを判定する(ステップS608)。第二カウンタ24は、ステップS608において、インデックスmが光線数M未満であると判定した場合(ステップS608:Y)、インデックスmに1を加算し(ステップS609、m←m+1)、ステップS606へ移行する。これにより、インデックスmについて、ステップS606,S607の処理が行われる。
【0128】
一方、第二カウンタ24は、ステップS608において、インデックスmが光線数M未満でないと判定した場合(ステップS608:N)、ステップS610へ移行する。
【0129】
この場合、インデックスn(最初はn=1)及び全てのインデックスm=1,・・・,Mについて、ステップS606,S607の処理により、画素値V1,n,・・・,VM,n及び重み値β1,n,・・・,βM,nが得られる。
【0130】
画素値合成部27は、ステップS608(N)から移行して、インデックスnについて、全てのインデックスmの画素値V1,n,・・・,VM,nに対し、対応する重み値β1,n,・・・,βM,nを用いて重み付け合成し、代表値Unを求める(ステップS610)。
【0131】
第一カウンタ20は、インデックスnが構成点数N未満であるか否かを判定する(ステップS611)。第一カウンタ20は、ステップS611において、インデックスnが構成点数N未満であると判定した場合(ステップS611:Y)、インデックスnに1を加算し(ステップS612、n←n+1)、ステップS602へ移行する。これにより、インデックスnについて、ステップS602~S610の処理が行われる。
【0132】
一方、第一カウンタ20は、ステップS611において、インデックスnが構成点数N未満でないと判定した場合(ステップS611:N)、ステップS613へ移行する。この場合、全てのインデックスn=1,・・・,Nについて、ステップS602~S610の処理により、画像座標q1,・・・,qN及び代表値U1,・・・,UNが得られる。
【0133】
画像生成部28は、ステップS611(N)から移行して、全てのインデックスnについて、代表値U1,・・・,UNを対応する画像座標q1,・・・,qNに配置し、合成画像Jを生成する(ステップS613)。
【0134】
以上のように、本発明の実施形態のレンダリング装置2によれば、構成点選択部21は、
図1に示した被写体モデル化装置1により生成された光線情報付き点群Kから、インデックスnの構成点位置Q
n及び観測光線情報L
nを選択する。また、方向ベクトル演算部22は、構成点位置Q
nから仮想カメラ5のカメラ位置Wに至る方向ベクトルΓ
nを演算する。
【0135】
投影部23は、カメラパラメータpを用いて構成点位置Qnを画像座標qnに投影する。これにより、全てのインデックスnについて、画像座標q1,・・・,qNが得られる。
【0136】
光線選択部25は、観測光線情報Lnからインデックスmの方向ベクトルΛm,n及び画素値Vm,nを選択し、重み値演算部26は、方向ベクトルΛm,n及び方向ベクトルΓnに基づいて、重み値βm,nを演算する。
【0137】
これにより、インデックスn及び全てのインデックスmについて、画素値V1,n,・・・,VM,n及び重み値β1,n,・・・,βM,nが得られる。
【0138】
画素値合成部27は、インデックスnについて、全てのインデックスmの画素値V1,n,・・・,VM,nに対し重み値β1,n,・・・,βM,nを用いて重み付け合成し、代表値Unを求める。これにより、全てのインデックスnについて、代表値U1,・・・,UNが得られる。
【0139】
画像生成部28は、全てのインデックスnについて、代表値U1,・・・,UNを画像座標q1,・・・,qNに配置し、合成画像Jを生成する。
【0140】
これにより、仮想カメラ5のカメラ位置Wである仮想視点と点群の各構成点の相対位置から演算される方向ベクトルΓn及び各構成点に付随する光線の方向ベクトルΛm,nに応じた重み付けにおいて、光線を補間しつつ合成画像Jを生成することができる。つまり、被写体モデル化装置1により生成された光線情報付き点群Kを用いて、視点を変えて観視した合成画像Jを生成することができる。
【0141】
合成画像Jが生成される際には、被写体3の形状が反映された各構成点の構成点位置Qnと、構成点に対し複数のカメラ4の視点を基準にして得られた方向ベクトルΛm,n及び画素値Vm,nの観測光線情報Lnとからなる光線情報付き点群Kが使用される。
【0142】
前述の非特許文献1の手法においては、レンダリング結果には、テクスチャ画像の切り替えに伴う空間的及び時間的な画素値の不連続が生じる。これに対し、本発明の実施形態では、レンダリングのために、複数の視点を基準とした方向ベクトルΛm,n及び画素値Vm,nが用いられるため、レンダリング結果には、空間的及び時間的な画素値の不連続が生じることはない。
【0143】
したがって、複数の光線を切り替えながら画像を生成する際に問題となる空間的及び時間的な不連続を回避することができ、結果として、アーチファクトの少ない視点依存のレンダリングを実現すると共に、自然な質感を呈するレンダリング結果を得ることができる。
【0144】
尚、レンダリング装置2は、Zバッファ法を用いて、合成画像Jを生成するようにしてもよい。Zバッファ法は、点群を構成する各構成点を順次画像面に投影し、その像を重ね合わせて画像を構成する方法において、カメラ位置から構成点までの距離(または奥行き値(Z値))を記録するZバッファを併用するものである。
【0145】
構成点の像を画像上に重ね合わせる際に、当該像の画素位置に既に記録されているZ値と、重ね合わせようとする構成点のZ値とを比較し、重ね合わせようとする構成点のZ値の方が小さい場合または両Z値が等しい場合に、重ね合わせようとする構成点の画素値を上書きするものである。
【0146】
具体的には、
図5に示したレンダリング装置2において、投影部23は、画像座標q
nに加え、以下の式にて、カメラパラメータpに含まれるカメラ位置Wから構成点位置Q
nまでの間の距離d
nを求める。そして、投影部23は、画像座標q
n及び距離d
nを画像生成部28に出力する。
【数16】
この場合、投影部23は、距離d
nに代えて奥行き(デプス)値を求め、画像座標q
n及び奥行き値を画像生成部28に出力するようにしてもよい。
【0147】
画像生成部28は、第一カウンタ20からインデックスnを、投影部23から画像座標q
n及び距離d
nを、画素値合成部27から代表値U
nをそれぞれ入力する。画像生成部28は、全てのインデックスnについて、画像座標q
1,・・・,q
N及び距離d
1,・・・,d
Nと代表値U
1,・・・,U
Nとを対応付けながら、以下の式にて、合成画像Jを求める。
【数17】
J
(n)及びZ
(n)は、それぞれインデックスn=1の1番目の構成点からインデックスnのn番目の構成点までの間で重ね合わせたときの仮の合成画像及びZバッファである。
【0148】
画像生成部28は、まず、前記式(17-1)のとおり、Zバッファの初期値Z(0)を全て無限大に設定し、仮の合成画像の初期値J(0)を任意の値(例えば0)に設定する。
【0149】
画像生成部28は、前記式(17-2)のとおり、既にZバッファに記録されている当該画像座標qnにおけるZ値Z(n-1)(qn)と距離dnとを比較する。そして、画像生成部28は、距離dnの方が小さい場合、代表値Unを当該画像座標qnにおける仮の合成画像の画素値J(n)(qn)に設定する。一方、画像生成部28は、距離dnの方が小さくない場合、n-1番目の画素値J(n-1)(qn)をそのまま画素値J(n)(qn)に維持(コピー)する。
【0150】
画像生成部28は、前記式(17-3)のとおり、既にZバッファに記録されている当該画像座標qnにおけるZ値Z(n-1)(qn)と距離dnとを比較する。そして、画像生成部28は、距離dnの方が小さい場合、距離dnを当該画像座標qnにおけるZ値Z(n)(qn)に設定する。一方、画像生成部28は、距離dnの方が小さくない場合、n-1番目のZ値Z(n-1)(qn)をそのままZ値Z(n)(qn)に維持(コピー)する。
【0151】
画像生成部28は、前記式(17-4)のとおり、画像座標qn以外の画像座標xについて、画素値J(n)(x)及びZ値Z(n)(x)共に、n-1番目の各値をそのまま維持(コピー)する。
【0152】
画像生成部28は、最後に、前記式(17-5)のとおり、全てのインデックスn=1,・・・,Nの(N個の)構成点に対し前記式(17-2)~前記式(17-4)を適用することで、最終結果である仮の合成画像J(N)(x)を求め、これを合成画像Jとする。
【0153】
以上、実施形態を挙げて本発明を説明したが、本発明は前記実施形態に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。
【0154】
例えば、
図1に示した被写体モデル化装置1の画素値選択部17は、画像I
mから画像座標ξ
m,nの画素値V
m,nを選択し、第一多重化部18は、方向ベクトルΛ
1,n,・・・,Λ
M,n及び画素値V
1,n,・・・,V
M,nを多重化して観測光線情報L
nを求めるようにした。この場合の画素値V
m,nは、画像I
mを構成する画素の振幅方向の値である。画素値V
m,nは、RGB値等の色情報であってもよく、赤外線強度、または距離センサにより測定された距離の値であってもよい。
図5に示したレンダリング装置2についても同様である。
【0155】
尚、本発明の実施形態による被写体モデル化装置1及びレンダリング装置2のハードウェア構成としては、通常のコンピュータを使用することができる。被写体モデル化装置1及びレンダリング装置2は、CPU、RAM等の揮発性の記憶媒体、ROM等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。
【0156】
被写体モデル化装置1に備えた第一カウンタ10、構成点選択部11、第二カウンタ12、パラメータ選択部13、画像選択部14、方向ベクトル演算部15、投影部16、画素値選択部17、第一多重化部18及び第二多重化部19の各機能は、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。これらのプログラムは、前記記憶媒体に格納されており、CPUに読み出されて実行される。
【0157】
また、レンダリング装置2に備えた第一カウンタ20、構成点選択部21、方向ベクトル演算部22、投影部23、第二カウンタ24、光線選択部25、重み値演算部26、画素値合成部27及び画像生成部28の各機能も、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。これらのプログラムは、前記記憶媒体に格納されており、CPUに読み出されて実行される。
【0158】
また、これらのプログラムは、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD-ROM、DVD等)、半導体メモリ等の記憶媒体に格納して頒布することもでき、ネットワークを介して送受信することもできる。
【符号の説明】
【0159】
1 被写体モデル化装置
2 レンダリング装置
3 被写体
4 カメラ
5 仮想カメラ
10,20 第一カウンタ
11,21 構成点選択部
12,24 第二カウンタ
13 パラメータ選択部
14 画像選択部
15,22 方向ベクトル演算部(方向演算部)
16,23 投影部
17 画素値選択部
18 第一多重化部
19 第二多重化部
25 光線選択部
26 重み値演算部
27 画素値合成部
28 画像生成部
101 構成点
n,m インデックス
N 構成点数
M 光線数(画像枚数、カメラ台数)
Qn 構成点位置
pm,p カメラパラメータ
Wm,W カメラ位置
Im 画像
J 合成画像
Λm,n,Γn 方向ベクトル
ξm,n,qn 画像座標
Vm,n 画素値
Un 代表値
Ln 観測光線情報
K 光線情報付き点群
βm,n 重み値