JP2004258775A - 光線空間データ処理方法、空間データ処理装置 - Google Patents
光線空間データ処理方法、空間データ処理装置 Download PDFInfo
- Publication number
- JP2004258775A JP2004258775A JP2003046227A JP2003046227A JP2004258775A JP 2004258775 A JP2004258775 A JP 2004258775A JP 2003046227 A JP2003046227 A JP 2003046227A JP 2003046227 A JP2003046227 A JP 2003046227A JP 2004258775 A JP2004258775 A JP 2004258775A
- Authority
- JP
- Japan
- Prior art keywords
- ray space
- space data
- data
- ray
- recorded
- 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.)
- Withdrawn
Links
Images
Landscapes
- Image Generation (AREA)
- Image Analysis (AREA)
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
Abstract
【課題】光線空間データを用いて任意視点の画像を再構成する際の画質を向上させること。
【解決手段】各サンプリング画像を光線空間へマッピングする(S1401)。そして未定サンプリングポインタ位置の中心から、M個の近傍のサンプリングポインタ位置中心までの距離を計算し、M個のサンプリングポインタ位置に記録されたサンプリングポインタ値が指す縦ラインの画素群の画素値に対する重みを算出する(S1404)。そして検出したM個のサンプリングポインタ位置を特定する特定データと、このM個のサンプリングポインタ位置に記録されたポインタ値が指す縦ラインの画素群の画素値に対する重みを保存する(S1406)。
【選択図】 図14
【解決手段】各サンプリング画像を光線空間へマッピングする(S1401)。そして未定サンプリングポインタ位置の中心から、M個の近傍のサンプリングポインタ位置中心までの距離を計算し、M個のサンプリングポインタ位置に記録されたサンプリングポインタ値が指す縦ラインの画素群の画素値に対する重みを算出する(S1404)。そして検出したM個のサンプリングポインタ位置を特定する特定データと、このM個のサンプリングポインタ位置に記録されたポインタ値が指す縦ラインの画素群の画素値に対する重みを保存する(S1406)。
【選択図】 図14
Description
【0001】
【発明の属する技術分野】
本発明は、像画像のデータを光線空間に光線空間データ群として写像し、光線空間データ群の夫々を光線空間の対応する位置に記録する処理を複数の撮像画像に対して行う光線空間データ処理技術に関するものである。
【0002】
【従来の技術】
仮想空間を、3次元幾何形状を基に記述するのではなく、実写画像を基に記述表現する手法が数多く提案されている。これらはImage Based Rendering(以下、IBRと略す)と呼ばれており、実写画像を基にするが故に、3次元幾何形状を基にする手法からは得られない写実性の高い仮想空間を表現できる点に特徴がある。
【0003】
IBRの一手法である光線空間理論に基づいた仮想空間の記述に関する試みが提案されている(例えば、非特許文献1、非特許文献2を参照)。
【0004】
以下、光線空間理論について説明する。
【0005】
図1は光線空間を説明する図である。図1に示すように実空間にO X−Y−Z座標系を設置する。z軸に垂直な基準面P(Z=z)を通過する光線を、光線がPを横切る位置(x、y)と、光線の方向を示す変数θ、φで表すことにする。すなわち、1本の光線は(x、y、z、θ、φ)の5つの変数により一意に定められる。この光線の光強度を表す関数をfと定義すると、この空間中の光線群データはf(x、y、z、θ、φ)で表現することが出来る。この5次元の空間を「光線空間」と呼ぶ。より一般的には、時間変動分tを入れる場合もあるがここでは省略する.
ここで、基準面Pをz=0に設定し、光線の垂直方向の視差情報、すなわちφ方向の自由度を省略すると、光線の自由度を(x、θ)の2次元に縮退させることができる。このx−θの2次元空間は、光線空間の部分空間となる。そして、図2に示すように実空間中の点Pを通る光線群201乃至204は、u=tanθとおくと、x−u空間上では、図3に示すように、
【0006】
【数1】
という直線上に写像される。図2は、実空間において点Pを通る光線群の例を示す図であり、図3は、図2に示した点Pを通る光線群201乃至204をx−u区間上に写像した場合の直線を示す図である。
【0007】
カメラによる撮影とは、カメラのレンズ焦点を通過する光線を撮像面で受光し、その明るさや色を画像化する操作に相当する。言い換えると、焦点位置という実空間中の1点を通る光線群を画像として画素数分獲得していることになる。ここでは、φ方向の自由度を省略し(縦視差を省略するとも言う)、X−Z平面内のみでの光線の振舞いを考えているので、Y軸との直交面と画像が交わる線分上の画素のみを考えることになる。このように、画像の撮影によって1点を通る光線を集めることができ、1回の撮影でx−u空間の1本の線分上のデータを獲得する(サンプリングするとも言う)ことができる。以下、光線空間上で表現されるデータを光線空間データと呼称する。
【0008】
この撮影を視点位置(本明細書では、特に断らない限りは、視点位置は、視点の位置と視線方向の双方を含むものとする)を変え多数行うと、多数の点を通る光線群を獲得することができる。図4に示すように、N台のカメラを用いて実空間を撮影すると、n番目(n=1,2,...,N)のカメラCnの焦点位置(xn、yn)に対応して、図5に示す如く、
【0009】
【数2】
x−u空間における直線上の光線空間データを得ることができる。図4はN台のカメラにより現実空間を撮像する様子を示す模式図であり、図5は図4に示したN台のカメラにより撮像された夫々の撮像画像をx−u空間に写像することで得られる直線群を示す図である。
【0010】
このように、十分に多数の視点からの撮影を行うことによって、x−u空間を密に光線空間データで埋めていくことができる。
【0011】
逆に、図6に示すように、光線空間データから、新しい任意の視点位置からの観察画像を生成することができる。例えば図7に示すように、新しい任意の視点位置を(X、Z)とすると、この視点位置における観察画像を生成するためにはx−u空間においてX=x+uZ上の光線空間データが必要となる。よって、図6に示すX=x+uZ上の光線空間データを読み出すことで、視点位置(X、Z)における観察画像を生成することができる。
【0012】
図6は、新しい任意の視点位置における観察画像を生成するためのx−u空間における直線を示す図であり、図7は新しい任意の視点位置を示す図である。
【0013】
光線空間理論を用いて仮想空間や物体を記述するには、上記光線空間データの量を十分に確保するために、十分に光線をサンプリングしておく必要があるが、十分に光線をサンプリングすると、光線空間データ量は膨大なものとなる。よって実際には、サンプリングする光線の数を調節し、不足分の光線空間データはサンプリングした光線による光線空間データから補間して生成する。補間処理方法としては、最近傍法がある。その他に、多視点画像列から生成されるエピポーラ平面画像上での対応点の軌跡検出に基づく方法等もある。
【非特許文献1】
電子情報通信学会論文誌「CGモデルと光線空間データとの融合による仮想環境の実現」(D−11, Vol. J80−D−11 No. 11, pp3048−3057, 1997年11月)
【非特許文献2】
「3次元統合画像通信を目指したホログラムと光線空間の相互変換」(3D Image Conference 95, pp8−9, 1995)
【0014】
【発明が解決しようとする課題】
上述の説明により、光線空間データを補間することで、サンプリング光線(即ち画像データ)の数を減らすことが可能になる。図8は被写体809の光線空間データを作成するために、複数の視点位置で被写体809を撮像する様子を示す図である。801から808は被写体809を撮像するカメラである。
【0015】
図9はカメラ801から808のうち、いずれか2つの隣接したカメラにより撮像された被写体の画像901,902を示す図である。図10は夫々の画像を光線空間にマッピングすることで得られる夫々の直線を示す図である。
【0016】
図9、10において、画像901は直線1001、画像902は直線1002に夫々マッピングされると仮定する。縦視差を省略した光線空間を利用する場合は、直線1001上の各点は、画像901の一縦ラインに対応する。例えば、縦ライン901a、901bは夫々点1003、1004に対応することにする。光線空間1000の中で、直線1001と直線1002との間には直線は存在しないので、当然夫々の直線間に相当する画像も存在しない。
【0017】
よって、画像901と画像902との間の視点位置から見た画像は、直線1001上の光線空間データと直線1002上の光線空間データとを用いた補間処理により作成する。
【0018】
また、直線1001と直線1002との間に相当する画像を生成するための他の方法としては、直線1001を中心とする領域1007および直線1002を中心とする領域1008を考え、視点位置が領域1007に含まれる場合は直線1001上の光線空間データを、視点位置が領域1008に含まれる場合は直線1002上の光線空間データを用いて生成しても良い。
【0019】
カメラ801から808によって撮影した画像も同様に光線空間にマッピングされ、各画像に対応した光線空間データ群による直線が生成される。そして各直線間の光線空間データは、生成された直線上の光線空間データを用いて補間処理によって作成できる。こうしてできた光線空間1000から任意視点の画像を再構成する。
【0020】
例えば、点線1009をある視点位置に対応する光線空間データ群による直線と仮定する。図10において点線1009上の点に対する画像の縦ラインを組み合わせると、所望の視点位置の画像が再構成できる。
【0021】
ただし、図10を見るとわかるように、点線1009上のサンプリング点を読み取っていくと、領域1007から領域1008にかけて、対応する画像が画像901の縦ラインからいきなり画像902の縦ラインに変化する。対応する画像が急に変わるので、再構成画像があるラインで不連続になることがある。画像901と画像902が違っていれば違うほど、再構成画像の不連続が目立つ。
【0022】
本発明は以上の問題に鑑みてなされたものであり、光線空間データを用いて任意視点の画像を再構成する際の画質を向上させることを目的とする。
【0023】
【課題を解決するための手段】
本発明の目的を達成するために、例えば本発明の光線空間データ処理方法は以下の構成を備える。
【0024】
すなわち、撮像画像のデータを光線空間に光線空間データ群として写像し、前記光線空間データ群の夫々を前記光線空間の対応する位置に記録する処理を複数の撮像画像に対して行う光線空間データ処理方法であって、
前記光線空間において、夫々の撮像画像の光線空間データ群の何れも記録されない第1の位置と、当該第1の位置の近傍であって、夫々の前記撮像画像の光線空間データの何れかが記録された複数の第2の位置との夫々の関連の度合を示すデータ群を、第1のデータとして求める計算工程と、
前記複数の第2の位置の夫々を特定する第2のデータと、前記第1のデータとを光線空間データとして前記第1の位置に記録すべきデータとして生成する生成工程と
を備えることを特徴とする。
【0025】
本発明の目的を達成するために、例えば本発明の光線空間データ処理方法は以下の構成を備える。
【0026】
すなわち、夫々の視点における撮像画像を光線空間に写像することで得られる、夫々の視点毎の第1の光線空間データ群と、1つ以上の当該第1の光線空間データ群を用いて生成された第2の光線空間データ群とを含む第3の光線空間データ群を用いて、所望の視点における撮像画像を生成する光線空間データ処理方法であって、
前記第3の光線空間データから、所望の視点に対応する第4の光線空間データ群を特定する特定工程と、
前記第4の光線空間データ群において、前記第1の光線空間データ群と共有する光線空間データが存在する場合には、当該共有する光線空間データの写像元である撮像画像の画素値を順次メモリ上に記録する第2の記録工程と、
前記第4の光線空間データ群において、前記第2の光線空間データ群と共有する光線空間データが存在する場合には、当該共有する光線空間データが示す、参照すべき光線空間データ群と、当該光線空間データ群の写像元である撮像画像の画素値に対する重みとを用いて、前記共有する光線空間データに対応する画素値を求める計算工程と、
前記計算工程が求めた画素値を順次前記メモリ上に記録する第2の記録工程とを備え、
前記第1、第2の記録工程の夫々で前記メモリ上に順次記録した画素値群は、前記所望の視点における撮像画像を構成する画素値群であることを特徴とする。
【0027】
本発明の目的を達成するために、例えば本発明の光線空間データ処理方法は以下の構成を備える。
【0028】
すなわち、撮像画像のデータを光線空間に光線空間データ群として写像し、前記光線空間データ群の夫々を前記光線空間の対応する位置に記録する処理を複数の撮像画像に対して行う光線空間データ処理方法であって、
前記光線空間において、前記夫々の撮像画像の光線空間データ群のいずれも記録されない第1の位置と、当該第1の位置の近傍であって、前記夫々の撮像画像の光線空間データのいずれかが記録された複数の第2の位置の夫々との関連の度合いに応じた関連データ群を、前記第1の位置に記録すべきデータとして求めるデータ計算工程と、
夫々の前記第2の位置に記録された光線空間データ対応する撮像画像中の画素の画素値と、夫々の前記第2の位置に対する前記関連データとに基づいて計算される画素値を、前記第1の位置に対応する画素の画素値として求める画素値計算工程と、
前記光線空間において、前記第1の位置に相当するすべての位置に対して前記画素値計算工程が計算する画素値を順次メモリ上に保持する保持工程とを備え、
前記第1の位置に記録すべきデータは、前記第1の位置に対応する画素を特定するデータであることを特徴とする。
【0029】
本発明の目的を達成するために、例えば本発明の光線空間データ処理装置は以下の構成を備える。
【0030】
すなわち、撮像画像のデータを光線空間に光線空間データ群として写像し、前記光線空間データ群の夫々を前記光線空間の対応する位置に記録する処理を複数の撮像画像に対して行う光線空間データ処理装置であって、
前記光線空間において、夫々の撮像画像の光線空間データ群の何れも記録されない第1の位置と、当該第1の位置の近傍であって、夫々の前記撮像画像の光線空間データの何れかが記録された複数の第2の位置との夫々の関連の度合を示すデータ群を、第1のデータとして求める計算手段と、
前記複数の第2の位置の夫々を特定する第2のデータと、前記第1のデータとを光線空間データとして前記第1の位置に記録すべきデータとして生成する生成手段と
を備えることを特徴とする。
【0031】
本発明の目的を達成するために、例えば本発明の光線空間データ処理装置は以下の構成を備える。
【0032】
すなわち、夫々の視点における撮像画像を光線空間に写像することで得られる、夫々の視点毎の第1の光線空間データ群と、1つ以上の当該第1の光線空間データ群を用いて生成された第2の光線空間データ群とを含む第3の光線空間データ群を用いて、所望の視点における撮像画像を生成する光線空間データ処理装置であって、
前記第3の光線空間データから、所望の視点に対応する第4の光線空間データ群を特定する特定手段と、
前記第4の光線空間データ群において、前記第1の光線空間データ群と共有する光線空間データが存在する場合には、当該共有する光線空間データの写像元である撮像画像の画素値を順次メモリ上に記録する第2の記録手段と、
前記第4の光線空間データ群において、前記第2の光線空間データ群と共有する光線空間データが存在する場合には、当該共有する光線空間データが示す、参照すべき光線空間データ群と、当該光線空間データ群の写像元である撮像画像の画素値に対する重みとを用いて、前記共有する光線空間データに対応する画素値を求める計算手段と、
前記計算手段が求めた画素値を順次前記メモリ上に記録する第2の記録手段とを備え、
前記第1、第2の記録手段の夫々が前記メモリ上に順次記録した画素値群は、前記所望の視点における撮像画像を構成する画素値群であることを特徴とする。
【0033】
本発明の目的を達成するために、例えば本発明の光線空間データ処理装置は以下の構成を備える。
【0034】
すなわち、撮像画像のデータを光線空間に光線空間データ群として写像し、前記光線空間データ群の夫々を前記光線空間の対応する位置に記録する処理を複数の撮像画像に対して行う光線空間データ処理装置であって、
前記光線空間において、前記夫々の撮像画像の光線空間データ群のいずれも記録されない第1の位置と、当該第1の位置の近傍であって、前記夫々の撮像画像の光線空間データのいずれかが記録された複数の第2の位置の夫々との関連の度合いに応じた関連データ群を、前記第1の位置に記録すべきデータとして求めるデータ計算手段と、
夫々の前記第2の位置に記録された光線空間データ対応する撮像画像中の画素の画素値と、夫々の前記第2の位置に対する前記関連データとに基づいて計算される画素値を、前記第1の位置に対応する画素の画素値として求める画素値計算手段と、
前記光線空間において、前記第1の位置に相当するすべての位置に対して前記画素値計算手段が計算する画素値を順次保持する保持手段とを備え、
前記第1の位置に記録すべきデータは、前記第1の位置に対応する画素を特定するデータであることを特徴とする。
【0035】
【発明の実施の形態】
以下、添付図面を参照しながら、本発明の好適な実施形態を説明する。
【0036】
[第1の実施形態]
図11は多視点画像と光線空間との関係を示す図である。ここで多視点画像とは、夫々異なる位置に設けられた複数のカメラ(視点)によって撮像された撮像画像群を示す。同図では多視点画像は、1102,1103,1104の夫々の撮像画像(群)により構成されている。1103は複数の撮像画像からなる。また各撮像画像は以下説明する処理において、光線空間データを生成するためにサンプリングされるものであるから、サンプリング画像と呼称する場合がある。
【0037】
1101は夫々のサンプリング画像(1102,1103,1104)を式1に示したX=x+u・Zに従って光線空間にマッピング(写像)することで得られる縦視差を省略した光線空間データの存在する光線空間である。光線空間1101において、サンプリング画像がマッピングされた直線上における各点(x、u)上の位置に記録されるべきデータが光線空間データである。
【0038】
なお、本明細書では、光線空間はコンピュータのメモリ上にエリアとして確保され、「光線空間上の位置Xにデータを記録する」とは、位置Xに相当するメモリ上のアドレスにデータを記録する動作に相当すると解釈する。
【0039】
光線空間1101における各直線は、各サンプリング画像を光線空間1101にマッピングすることで得られるものであり、例えば、撮像画像1104は、光線空間1101における直線1106上にマッピングされる。また、撮像画像の各縦ライン(方向の位置が同じ画素の集合)は、1つの光線空間データに写像され、例えば、撮像画像1104の縦ライン1105は直線1106上の1点1107にマッピングされる。
【0040】
また、光線空間1101において直線上の各点には、サンプリング画像の縦ラインの画素群を特定するためのデータとして、この縦ラインの画素群へのポインタ値が記録されている。例えば、光線空間1101上の1点1107には、画像1104の縦ライン1105へのポインタ値が記録されている。このように、直線1106上の各点には、サンプリング画像1104の各縦ラインへのポインタ値が記録される。これは他の直線上の各点に対しても同様で、対応するサンプリング画像の縦ラインの画素群へのポインタ値が記録される。
【0041】
縦視差を省略しない光線空間データでは、光線空間1101の各位置にサンプリング画像の画素値が記録される。以下では、サンプリング画像の縦ラインへのポインタ値をサンプリングポインタ値と呼称することがある。
【0042】
図12に量子化された光線空間データ1201を示す。ここで量子化された光線空間とは、x軸方向、u軸方向共に離散的な座標値で表現することが可能な光線空間を示す。以下用いる光線空間は全て量子化されている。同図では光線空間における離散的な各位置は「ます」で示されている。以下では各「ます」の位置をサンプリングポインタ位置と呼称する場合がある。
【0043】
同図において網掛けされた「ます」の集合である夫々の直線1202、1203,1204,1205,1206,1207,1208は、夫々対応するサンプリング画像を光線空間1201にマッピングすることで得られるものであって、網掛けされた夫々の「ます」には、対応するサンプリング画像の縦ラインの画素群へのポインタ値が記録されている。すなわち、直線上に記録される光線空間データとしては、ポインタ値のみである。
【0044】
また同図において、白の「ます」の位置には直線が通っておらず、白の「ます」の位置を通る直線に対応するサンプリング画像が存在しないので、白の「ます」には光線空間データは記録されていない。
【0045】
本実施形態では、この白で示された「ます」の位置に、網掛けされた「ます」に記録された光線空間データ(すなわちポインタ値)を用いて補間処理を行うことで生成される光線空間データを記録する処理を行う。より具体的には、図12中のサンプリングポインタ位置で、白い「ます」(以下、未定サンプリングポインタ位置と呼称する)に、近傍の光線空間データが記録されたサンプリングポインタ位置を特定するデータと、このサンプリングポインタ位置に記録されたサンプリングポインタ値が指す画像群の画素値に対する重みとを光線空間データとして記録することで補間処理を行う。よって本実施形態では、未定サンプリングポインタ位置と直線上の位置とでは、光線空間データの内容が異なる。
【0046】
図13Aは、本実施形態に係る、未定サンプリングポインタ位置に記録すべき光線空間データを生成する処理を説明するための図である。同図において1301は図12に示した光線空間1201の部分空間である。
【0047】
以下では説明のため、図9におけるサンプリング画像901は図13Aの網掛け部分の直線1302にマッピングされると、サンプリング画像902は直線1303にマッピングされると仮定する。補間される部分は白いますで示されている。
【0048】
注目の未定サンプリングポインタ位置に格納される対象は、注目の未定サンプリングポインタ位置の中心から近傍、特に最も近い、光線空間データが記録された4つのサンプリングポインタ位置を特定するデータ(特定データ)とする。ただし、異なるサンプリング画像から2つづつとする。この特定データとしては例えば、4つの夫々のサンプリングポインタ位置1304,1305,1307,1308の光線空間1201における座標であっても良いし、光線空間1201内に記録される光線空間データを保持するメモリ上のアドレスであってもよい。
【0049】
また、上記特定データにより特定される4つのサンプリングポインタ位置に記録された夫々の画素群の画素値に対する重みは、注目の未定サンプリングポインタ位置の中心から上記4つの各サンプリングポインタ位置の中心との距離を用いて計算される。例えば、未定サンプリングポインタ位置1310に格納される特定データは、最も近いサンプリングポインタ位置の「ます」である白星形の「ます」1304、白三角の「ます」1305、黒星形の「ます」1307と黒三角の「ます」1308を特定するデータである。
【0050】
図13AのL1は、未定サンプリングポインタ位置1310の中心から白星形の「ます」1304のサンプリングポインタ位置の中心への距離である。L2、L3,L4は夫々、未定サンプリングポインタ位置1310の中心から黒星形の「ます」1307、白三角の「ます」1305、黒三角の「ます」1308のサンプリングポインタ位置の中心への距離である。T1、T2、T3、T4を夫々白星形の「ます」1304、黒星形の「ます」1307、白三角の「ます」1305、黒三角の「ます」1308に記録されたサンプリングポインタ値が指す画像群の画素値に対する重みとすると、
【0051】
【数3】
【0052】
【数4】
【0053】
【数5】
【0054】
【数6】
と決めることができる。T1〜T4を計算した結果が夫々30%、20%、20%、30%であるとき、図13Bにサンプリングポインタ位置1310に格納する光線空間データを示す。
【0055】
光線空間データとして、未定サンプリングポインタ位置に記録すべき光線空間データを生成するために参照した4つのサンプリングポインタ位置を特定する特定データ(同図では白の三角、白の星、黒の三角、黒の星の夫々を特定するための特定データ)と、4つの夫々のサンプリングポインタ位置に記録されたサンプリングポインタ値が指す縦ラインの画素群の画素値に対する夫々の重みが記録されている。
【0056】
なお、本実施形態では未定サンプリングポインタ位置の近傍として、最も近い4つのサンプリングポインタ位置を用いたが、任意の数のサンプリングポインタ位置を用いても良いし、各未定サンプリングポインタ位置で異なるサンプリングポインタ位置に対する特定データを記録しても良い。その場合は、重みの計算は、式7に従って行う。
【0057】
【数7】
【0058】
ただし、Mは用いたサンプリングポインタ位置の数である。また、サンプリングポインタ値が指す画像群の画素値の重みは上記に限るものではない。
【0059】
また、以下詳しく説明する任意視点画像の再構成の際に結果画素の計算を容易にするために、サンプリングポインタ値が指す画像群の画素値の重みの合計を100%にした方が良いが、これに限定されるものではない。
【0060】
以上説明した、未定サンプリングポインタ位置に記録すべき光線空間データを生成し、生成した光線空間データを未定サンプリングポインタ位置に記録する一連の処理について、同処理のフローチャートを示す図14を参照して説明する。
まず、ステップS1401では多視点画像を撮影するときのカメラパラメータ(位置、姿勢、画角など)を用いて、光線空間データの量子化などの初期設定を行い、その後、各サンプリング画像のカメラパラメータを用いて、各サンプリング画像を光線空間へマッピングする処理を行う。
【0061】
ステップS1402では、最初の補間すべき未定サンプリングポインタ位置をセットする。ステップS1403では、未定サンプリングポインタ位置の中心から、M個の近傍のサンプリングポインタ位置を検出する。次に、ステップS1404では、未定サンプリングポインタ位置の中心から、ステップS1403で検出されたM個のサンプリングポインタ位置中心までの距離を計算し、式7に従って、M個のサンプリングポインタ位置に記録されたサンプリングポインタ値が指す縦ラインの画素群の画素値に対する重みT1〜TMを算出する。
【0062】
ステップS1405では、未定サンプリングポインタ位置に格納する各サンプリングポインタが指す画像群の画素値の重みの合計を100%にするための処理を行う。これは例えば、M個のサンプリングポインタ位置に対して求めた重みの値に対して100を掛けることで実現される。
【0063】
そしてステップS1406では、ステップS1403で検出したM個のサンプリングポインタ位置を特定する特定データと、このM個のサンプリングポインタ位置に記録されたポインタ値が指す縦ラインの画素群の画素値に対する重みを、図15に示すような形式で登録する。図15は、未定サンプリングポインタ位置に記録する光線空間データを登録するための表の一例を示す図である。
【0064】
図15に示す表には、光線空間における座標で表現される各未定サンプリングポインタ位置と、その光線空間データを生成するために参照したサンプリングポインタ位置を特定する特定データと、参照したサンプリングポインタ位置に記録されたポインタ値が指す縦ラインの画素群の画素値に対する重みとが記録される。
【0065】
例えば、同図の表において位置(a1,b1)が図13Aのサンプリングポインタ位置1310であるとすると、図15の表では特定データは白星形、白三角、黒星形と黒三角のサンプリングポインタ位置を示し、夫々のサンプリングポインタ位置に記録されたサンプリングポインタ値が示す縦ラインの画素群の画素値に対する重みは30%、20%、20%と30%として記憶されている。これはすなわち、位置(a1,b1)に対応する縦ラインの画素値gを求めるためには、白星形、白三角、黒星形、黒三角の夫々のサンプリングポインタ位置に記録されたポインタ値が示す縦ラインの画素群の画素値p、q、r、sを用いて、
g=(30×p+20×q+20×r+30×s)/100
と求めればよいことを示している。
【0066】
また本実施形態では、未定サンプリングポインタ位置に記録する光線空間データを登録するための表の形式の一例として図15に示す表を用いたが、この形式に限定されるものではなく、各未定サンプリングポインタ位置に記録する光線空間データが特定できるような形式であればよいことは、言うまでもない。
【0067】
図14に戻って、ステップS1406では、全ての未定サンプリングポインタ位置に対してステップS1403からステップS1405までの処理を行ったか、すなわち、図15に例示した表の全ての未定サンプリングポインタ位置に記録すべき光線空間データが登録されたか否かを判断する。
【0068】
まだ光線空間データが登録されていない未定サンプリングポインタ位置が存在する場合には処理をステップS1408に進め、次の未定サンプリングポインタ位置を処理対象としてセットし、ステップS1403以降の処理を行う。
【0069】
一方、全ての未定サンプリングポインタ位置に対して記録すべき光線空間データが求まった、すなわち、全ての未定サンプリングポインタ位置に対する光線空間データが図15に例示した表に登録された場合には、処理をステップS1407に進め、図15に例示した表に登録された全ての未定サンプリングポインタ位置に対して同表に登録されている光線空間データを保存する。
【0070】
以上の処理により、未定サンプリングポインタ位置に記録すべき光線空間データは、その近傍の(光線空間データが記録された)サンプリングポインタ位置との関連の度合い、即ち距離を反映したものとなる。これにより、2つのサンプリング画像を光線空間にマッピングしたことによる夫々の直線間に位置する未定サンプリングポインタ位置に記録される光線空間データは、その位置に応じて連続的に変化するものであり、従来のように、いきなり別の画像に変化するなど、急峻な変化を生じさせるものにはならない。
【0071】
図16は、以上説明した光線空間データを生成するための一連の処理を含む、全てのサンプリングポインタ位置に光線空間データを記録する処理を行う光線空間データ処理装置として機能するコンピュータの外観図で、図17はこのコンピュータの基本構成を示すブロック図である。
【0072】
図17において、1701はCPUで、RAM1702やROM1703に格納されたプログラムやデータなどを用いて、コンピュータ全体の制御を行ったり、図14に示したフローチャートに従った、全てのサンプリングポインタ位置に対する光線空間データを生成し、記録する処理を実行する。
【0073】
1702はRAMで、記憶媒体のドライブ装置1704や外部記憶装置1705から読み込んだプログラムやデータなどを一時的に格納するエリアを備えると共に、CPU1701が各種の処理を実行する際に使用するワークエリアなども備える。又上述の通り、光線空間に記録されるべきデータ群を保持するためのエリアも備える。
【0074】
1703はROMで、コンピュータ全体の制御を行うためのプログラム(ブートプログラムを含む)やデータ(各種の設定などを含む)を格納する。又、文字コードなども格納する。
【0075】
1704は記憶媒体のドライブ装置で、CD−ROMやDVD−ROM等の記憶媒体からプログラムやデータ等を読み出し、RAM1702や後述の記憶装置1705に出力する。
【0076】
1705は記憶装置であって、ここにOS(オペレーティングシステム)や記憶媒体のドライブ装置1704から読み込んだプログラムやデータ等を保存する。また、CPU1701が使用するワークエリアのサイズがRAM1702が提供するワークエリアのサイズを越えた場合には、ファイルとしてその越えた分のワークエリアを提供することもできる。
【0077】
なお、図14に示したフローチャートに従った、全てのサンプリングポインタ位置に光線空間データを記録する処理をCPU1701に実行させるためのプログラムや、上記複数のサンプリング画像等は予め記憶装置1705に保存させておき、必要に応じてRAM502にロードさせても良いし、記憶媒体に記録させておき、記憶媒体のドライブ装置1704によってこの記憶媒体から読み出してRAM502にロードさせても良い。
【0078】
また、図15に例示した表などは例えばRAM502に作成しておき、全ての未定サンプリングポインタ位置に対する光線空間データが生成されると、この表に記録された各光線空間データを記憶装置1705に保存する。
【0079】
1706は表示部で、CRTや液晶画面等(例えば、図16に示したディスプレイ1601)により構成されており、上記複数のサンプリング画像や図12に例示した光線空間を示す画像など、さらには以上説明した一連の処理を行うために表示すべきGUIなどを表示することができる。
【0080】
1707は操作部で、キーボードやマウス(例えば図16に示したマウス1602)などのポインティングデバイスを含み、各種の指示をCPU1701に入力することができる。
【0081】
1708はインターフェース(I/F)部で、インターネットやLAN等のネットワークに接続するためのもので、例えば上記複数のサンプリング画像をネットワークを介して外部の装置からRAM502にダウンロードしたり、生成した光線空間データを外部の装置にネットワークを介して出力する場合、このI/F部1708を介して行われる。
【0082】
また、I/F部1708はこの他にもプリンタやスキャナ等と接続するためにも使用しても良く、例えば紙やOHPなどの記録媒体上に記録された複数のサンプリング画像をスキャナにより読み取った場合に、読み取った画像をRAM502に入力したり、生成した光線空間データによる任意視点からの撮像画像を生成し、プリンタにより上記記録媒体上に記録する場合にも、このI/F部1708を介して行われる。
【0083】
1709は上述の各部を繋ぐバスである。
【0084】
次に、図14に示したフローチャートに従って全てのサンプリングポインタ位置に光線空間データを生成する処理に従って生成した光線空間データを用いて、任意視点から見た撮像画像を生成する処理について説明する。図18は、同処理のフローチャートである。なお、同図のフローチャートに従ったプログラムは上記記憶装置1705に保存され、必要に応じてRAM502にロードされ、CPU1701の実行対象となっても良いし、記憶媒体に記録させておき、記憶媒体のドライブ装置1704によってRAM502にロードし、CPU1701の実行対象としても良い。
【0085】
まずステップS1801では、記憶装置1705、もしくは記憶媒体のドライブ1704から、全てのサンプリングポインタ位置に記録された光線空間データ、及び各サンプリング画像をRAM502にロードする。
【0086】
次にステップS1802では、光線空間における任意視点に対応する線分を式1に基づいて求める。
【0087】
ステップS1803では、光線空間データからステップS1802で求めた線分上の最初のサンプリングポインタ位置に記録されている光線空間データを読み出す。
【0088】
ステップS1804では、読み出した光線空間データを参照して、この光線空間データが記録されたサンプリングポインタ位置が、元未定サンプリングポインタ位置であるか否かを判断する。これは、光線空間データに重みを示すデータが含まれているかなどを判断すればよい。
【0089】
この光線空間データが記録されたサンプリングポインタ位置が、元未定サンプリングポインタ位置でない場合、処理をステップS1809に進め、ステップS1809では、この光線空間データを参照して、サンプリングポインタ値が指すサンプリング画像の縦ラインの画素群の画素値を、RAM502にロードされた各サンプリング画像から特定して、RAM502の空エリアに順次読み出し、記録する。
【0090】
一方、この光線空間データが記録されたサンプリングポインタ位置が、元未定サンプリングポインタ位置である場合、処理をステップS1805に進め、ステップS1805では、この光線空間データに含まれる1つ以上の(本実施形態では4つの)サンプリングポインタ位置を特定する特定データと、特定データで特定される夫々のサンプリングポインタ位置に記録されたポインタ値が指す縦ラインの画素群の画素値の重みのデータを読み出す。
【0091】
そしてステップS1806では、ステップS1805において読み出した、特定データが特定するサンプリングポインタ位置に記録されたポインタ値が指すサンプリング画像の縦ラインの画素群の画素値を、RAM502にロードされた各サンプリング画像から特定して読み出し、更に読み出した夫々の画素値と、ステップS1805にて読み出した重みとを用いて、上記線分上の最初のサンプリングポインタ位置に対応する画素値を求め、上記空きエリアに順次記録する。
【0092】
上記画素値は、すべてのy座標の画素値について、補間で利用するサンプリング画像中の複数の縦ライン上の同じy座標の画素値から求める。
【0093】
例えば光線空間データに2つのサンプリングポインタ値(AとB)があると仮定する。サンプリングポインタ値Aは、サンプリング画像Aの縦ラインA(縦ラインAを構成する各画素をA1,A2,A3,,,とする)を指す。サンプリングポインタ値Bは、画像Bの縦ラインB(縦ラインBを構成する各画素をB1,B2,B3,,,とする)を指す。そこから、結果画像Cの縦ラインC(縦ラインCを構成する各画素をC1,C2,C3,,,とする)を計算する場合、縦ラインCのあるy座標値(例えば1)の画素(この場合、C1)は、他の縦ラインの同じy座標からの画素(A1とB1)から計算される。つまり、C1=A1*Wa+B1*Wbを計算することにより、画素C1が計算される。ただし、WaとWbはそれぞれの重みである。
【0094】
そして、ステップS1802において求めた線分上の全てのサンプリングポインタ位置に対する画素値を求めたか否かを判断し、全て求めたのであれば、処理をステップS1808に進め、ステップS1808では、ステップS1806,ステップS1809の夫々において順次空きエリアに記録した結果、即ち任意視点における撮像画像を表示部1706上に表示する。なお、ステップS1808では生成した撮像画像は表示することに限定されるものではなく、上述の通り、ネットワーク上に出力したり、プリンタに出力したりしても良い。
【0095】
一方、ステップS1807において、ステップS1802で求めた線分上の全てのサンプリングポインタ位置に対する画素値が求まっていない場合、処理をステップS1810に進め、線分上の次の光線空間データを読み出し、ステップS1804以降の処理を行う。
【0096】
上述のように、本実施形態における未定サンプリングポインタ位置における光線空間データの生成処理によれば、多視点画像とその画像を撮影した際のカメラパラメータを用いて光線空間データを作成する際に、未定サンプリングポインタ位置の中心から近傍のサンプリングポインタ位置を特定する特定データと、特定データが特定するサンプリングポインタ位置に記録されたサンプリングポインタ値が指す画像群の画素値の重みを利用して求めることによりサンプリング画像間で生じる急激な変化を避けることができる。
【0097】
また、このように作成された光線空間データを用いて任意視点画像を再構成することで、再構成画像の画質を向上させることができる。
【0098】
[第2の実施形態]
第1の実施形態では、未定サンプリングポインタ位置には1つ以上の特定データと、重みとを記録することで、任意視点画像の再構成時における再構成画像の画質を向上させることができた。
【0099】
本実施形態では、未定サンプリングポインタ位置に記録すべき光線空間データの生成において、特定データと重みの決定方法に被写体の幾何学形状情報を考慮する。
【0100】
図19は、本実施形態に係る、未定サンプリングポインタ位置に記録すべき光線空間データを生成する処理を説明するための図である。同図において1901は図12に示した光線空間1201の部分空間である。
【0101】
以下では説明のため、図9におけるサンプリング画像901は図19の網掛け部分の直線1902にマッピングされると、サンプリング画像902は直線1903にマッピングされると仮定する。
【0102】
まず直線1902と直線1903との対応点を検出する。これは、サンプリング画像901とサンプリング画像902と対応する縦ラインを検出することと同じである。対応点を検出する方法としては、サンプリング画像902の撮影時のカメラパラメータと被写体の幾何学形状と位置情報を用いて計算しても良い。これは、被写体の2つのステレオ画像があるときに、ステレオ画像の対応点(画像中に写っている被写体の同じポイント)が分かると、被写体の幾何学形状の計算は可能である。被写体の幾何学形状が既知であれば、被写体の一つのポイントは、異なる位置から撮った画像にどこに写っている(対応点)のかが計算することが可能である。
【0103】
また、サンプリング画像901の各縦ラインを参照縦ラインとして、縦ラインブロック単位でサンプリング画像902の各縦ラインとのブロック・マッチングを行い、最も二乗誤差の少ないサンプリング画像902の縦ラインを求める処理によって、対応する縦ラインを選んでも良い。
【0104】
或いは、操作者が、例えばGUIなどを介して、手作業で対応点を指定する方法も考えられる。この指定は、例えば図16に示す一般のコンピュータを用いて、図19に示した光線空間1901を表示部1706の表示画面上に表示させ、操作者がこの表示部1706の表示画面上に表示された画面を見ながら、操作部1707を用いて対応する2つの点を指定しても良い。さらに、光線空間データだけではなく、多視点画像も同時に表示すると、対応点の指定作業がより簡単になる。
【0105】
本実施形態では、直線1902上の黒星形、黒三角、黒丸の記号が付いているサンプリングポインタ位置1907、1908、1909は夫々、直線1903上の白星形、白三角、白丸の記号が付いているサンプリングポインタ位置1904、1905、1906に対応すると仮定する。対応点を決めると、対応点同士を結ぶ全ての線分を計算する。以下では対応点同士を結ぶ線分を対応点同士線分と呼称する場合がある。
【0106】
図19では、線分1910、1911、1912は夫々星形(1904と1907)、三角(1905と1908)と丸(1906と1909)の対応点同士を結ぶ。ここで、ある未定サンプリングポインタ位置の近傍、例えば最も近い2つの対応点同士線分(第1の線分、第2の線分)の夫々の両端のサンプリングポインタ位置(4つのサンプリングポインタ位置)の夫々を特定する特定データをその未定サンプリングポインタ位置に記録しても良い。
【0107】
そしてその場合、未定サンプリングポインタ位置の中心から第1の線分までの距離d1、第2の線分までの距離d2を求め、100×1/d1/(1/d1+1/d2)を第1の線分の両端のサンプリングポインタ位置に記録されたサンプリングポインタ値が指す縦ラインの画素群の画素値に対する重みとして、100×1/d2/(1/d1+1/d2)を第2の線分の両端のサンプリングポインタ位置に記録されたサンプリングポインタ値が指す縦ラインの画素群の画素値に対する重みとして未定サンプリングポインタ位置に記録する。
【0108】
以上のようにすることで、対応点同士線分を用いて未定サンプリングポインタ位置に光線空間データを記録することができる。しかし、対応点同士線分を用いて未定サンプリングポインタ位置に光線空間データを記録する方法は上述の方法に限定されるものではなく、他の方法でも良い。例えば、図20に示す方法も考えられる。
【0109】
図20は、対応点同士線分を利用して未定サンプリングポインタ位置に光線空間データを記録させるための方法のうちの一つを説明する図である。
【0110】
夫々の対応点同士線分1910、1911、1912を含む、領域2004(星形)、2005(三角)と2006(丸)を考える。各領域の境界は、対応点を結ぶ線分同士の中央にある。
【0111】
例えば未定サンプリングポインタ位置が2002で示す位置である場合を例に取り説明すると、未定サンプリングポインタ位置に記録すべき重みの計算は以下の通りである。位置2002から直線1910までの直線距離:位置2002から直線1911までの直線距離=7:3の場合、直線1910の両端のサンプリングポインタ位置(星形で示される位置)に記録されたサンプリングポインタ値が指す縦ラインの画像群の画素値の重みを30%、直線1911の両端のサンプリングポインタ位置(三角で示される位置)に記録されたサンプリングポインタ値が指す縦ラインの画像群の画素値の重みを70%とする(距離に反比例する場合)。
【0112】
当然、未定サンプリングポインタ位置に記録すべき特定データは、直線1910の両端のサンプリングポインタ位置を特定するデータ、直線1911の両端のサンプリングポインタ位置を特定するデータである。
【0113】
また上述のように、領域2004と2005の2つの領域における直線だけでなく3つの領域2004,2005,2006における直線を利用することも考えられる。例えば未定サンプリングポインタ位置が2003で示す位置である場合に、未定サンプリングポインタ位置と各領域における直線1910,1911,1912との直線距離に応じて、直線1910の両端のサンプリングポインタ位置(星形で示される位置)に記録されたサンプリングポインタ値が指す縦ラインの画像群の画素値の重みを4%、直線1911の両端のサンプリングポインタ位置(三角で示される位置)に記録されたサンプリングポインタ値が指す縦ラインの画像群の画素値の重みを90%、直線1912の両端のサンプリングポインタ位置(三角で示される位置)に記録されたサンプリングポインタ値が指す縦ラインの画像群の画素値の重みを6%としてもよい。
【0114】
以上説明した処理により、未定サンプリングポインタ位置に記録すべき光線空間データを作成する際に、被写体の幾何学形状情報を考慮し、補間されたサンプリングポインタ位置に1つ以上のサンプリングポインタ値とそのポインタが指す画像群の画素値の重みを格納することで、任意視点の再構成画像の画質を上げることができる。
【0115】
[第3の実施形態]
第1、2の実施形態では、未定サンプリングポインタ位置には1つ以上の特定データと、重みとを光線空間データとして記録することで、任意視点画像の再構成時における再構成画像の画質を向上させることができた。
【0116】
本実施形態では、注目の未定サンプリングポインタ位置に記録されるべき光線空間データとしては、すべての未定サンプリングポインタ位置の夫々に対する画素値を求め、求めた画素値の集合である画像において上記注目の未定サンプリングポインタ位置に対応する画素値(画素)を指すサンプリングポインタ値を用いる。
【0117】
本実施形態に係る、未定サンプリングポインタ位置に記録すべき光線空間データを生成し、生成した光線空間データを未定サンプリングポインタ位置に記録する一連の処理について、同処理のフローチャートを示す図21を参照して説明する。なお、同図において、図14に示した各ステップと同じものについては同じステップ番号を付けており、その説明を省略する。よって、ステップS2101,ステップS2102について説明する。
【0118】
ステップS2101では、注目の未定サンプリングポインタ位置の近傍の夫々のサンプリングポインタ位置に対応する画素値と、夫々の画素値に対して求めた重みとを夫々掛け合わせたものをすべて加算した結果を、図18に示したフローチャートに従った処理により求める。求めた結果は、注目の未定サンプリングポインタ位置に対応する画素値として求めたものである。求めた画素値は順次RAM1702に記録され、順次記録される画素値の集合は新たなサンプリング画像として形成される。
【0119】
またステップS2101では、注目の未定サンプリングポインタ位置に記録されるべき光線空間データとしてのサンプリングポインタ値として、RAM1702上に形成されるサンプリング画像において、注目の未定サンプリングポインタ位置に対応する画素を指すサンプリングポインタ値を生成し、注目の未定サンプリングポインタ位置に記録する。
【0120】
そしてステップS2102では、各未定サンプリングポインタ位置に記録する光線空間データと、新たに形成したサンプリング画像を保存する。
【0121】
以上説明した処理により、新しい画素値を生成して新たなサンプリング画像として保存し、さらにその生成されたサンプリング画像へのサンプリングポインタ値を注目の未定サンプリングポインタ位置に記録することで、任意視点画像の再構成時の画素値とその重みの積の計算と合計の計算を省略できるので、任意視点画像の再構成の速度を上げつつ、再構成画像の画質を上げることができる。
【0122】
[第4の実施形態]
第1、2の実施形態では、サンプリングポインタ位置は整数値で表現していた。ところが、実際に光線空間上に写像される直線上の各点(サンプリングポインタ位置)はほとんどが実数値となり、これらのサンプリングポインタ位置を整数値で表現していたのでは、実際の位置と整数値表現による位置とでずれが生じてしまう。この位置のずれが、任意視点における撮像画像の画質に影響することがある。
【0123】
本実施形態では、サンプリングポインタ位置を整数ではなく、浮動小数で表す。特定データとサンプリングポインタ値が指す画像群の画素値の重みの決定方法は、第2の実施形態で説明した方法を採用しても良い。
【0124】
図22は本実施形態に係る、多視点画像から光線空間データへのマッピングを説明する図である。2201は光線空間で、2202は多視点画像中の1枚の画像に対する線分、2203は多視点画像中のもう1枚の画像に対する線分である。線分2203上には白星形(2204)、白三角(2205)と白丸(2206)の各サンプリングポインタ位置が存在する。また同図には、白星形(2204)、白三角(2205)と白丸(2206)の夫々のサンプリングポインタ位置の対応点である線分2202上の黒星形(2207)、黒三角(2208)と黒丸(2209)の各サンプリングポインタ位置が存在する。
【0125】
1つの未定サンプリングポインタ位置に対する特定データとサンプリングポインタ値が指す画像群の画素値の重みの求め方は、上述の実施形態で用いたいずれの方法を用いても良いが、その際、未定サンプリングポインタ位置、サンプリングポインタ位置が整数でないことのみが異なる。しかし本実施形態の場合、2210で示した未定サンプリングポインタ位置に記録すべき光線空間データを求める場合には例えば以下説明するような方法がある。
【0126】
まず、線分2203上の各サンプリングポインタ位置を中心として互いに重ならないような領域(同図では各サンプリングポインタ位置毎に網掛けの部分で示す領域が設けられている)を設定する。
【0127】
このようにすると、2210で示す未定サンプリングポインタ位置にはサンプリングポインタ位置2205を中心とした領域(第1の領域)とサンプリングポインタ位置2206を中心とした領域(領域2)とが、ある割合で重なっている。ここで未定サンプリングポインタ位置2210の面積に対して領域1が45%、領域2が35%重なっている場合、未定サンプリングポインタ位置2210には、サンプリングポインタ位置2205とサンプリングポインタ位置2206の夫々を特定するための特定データと、夫々のサンプリングポインタ位置に記録されたサンプリングポインタ値が示す画素値に対する重み45%と35%(上記各領域の割合)とを光線空間データとして記録する。
【0128】
このような未定サンプリングポインタ位置、すなわち各サンプリングポインタ位置毎に設定された領域が重なっている未定サンプリングポインタ位置には上述の処理を適用することで、光線空間データを求め、記録することができる。
【0129】
なお、各サンプリングポインタ位置毎に設定する領域は、図22に例示するようなものに限定されるものではない。
【0130】
多視点画像の光線空間データへのマッピング処理が終了したら、以降の処理は上述のいずれの実施形態に従った処理を行う。
【0131】
以上説明した処理によって、多視点画像の光線空間データへのマッピングの際、サンプリングポインタ位置を整数にすることによる上記写像位置誤差が再構成画像に与える画質の影響を軽減することができ、再構成画像の画質を上げることができる。
【0132】
[その他の実施形態]
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【0133】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0134】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0135】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【0136】
【発明の効果】
以上の説明により、本発明によって、光線空間データを用いて任意視点の画像を再構成する際の画質を向上させることができる。
【図面の簡単な説明】
【図1】光線空間を説明する図である。
【図2】実空間中の点Pを通る光線群201乃至204を示す図である。
【図3】図2に示した点Pを通る光線群201乃至204をx−u区間上に写像した場合の直線を示す図である。
【図4】図4はN台のカメラにより現実空間を撮像する様子を示す模式図である。
【図5】図5は図4に示したN台のカメラにより撮像された夫々の撮像画像をx−u空間に写像することで得られる直線群を示す図である。
【図6】図6は、新しい任意の視点位置における観察画像を生成するためのx−u空間における直線を示す図である。
【図7】図7は新しい任意の視点位置を示す図である。
【図8】図8は被写体809の光線空間データを作成するために、複数の視点位置で被写体809を撮像する様子を示す図である。
【図9】図9はカメラ801から808のうち、いずれか2つの隣接したカメラにより撮像された被写体の画像901,902を示す図である。
【図10】図10は夫々の画像を光線空間にマッピングすることで得られる夫々の直線を示す図である。
【図11】図11は多視点画像と光線空間との関係を示す図である。
【図12】量子化された光線空間データ1201を示す図である。
【図13A】本発明の第1の実施形態に係る、未定サンプリングポインタ位置に記録すべき光線空間データを生成する処理を説明するための図である。
【図13B】サンプリングポインタ位置1310に格納する光線空間データを示す図である。
【図14】未定サンプリングポインタ位置に記録すべき光線空間データを生成し、生成した光線空間データを未定サンプリングポインタ位置に記録する一連の処理のフローチャートである。
【図15】未定サンプリングポインタ位置に記録する光線空間データを登録するための表の一例を示す図である。
【図16】全てのサンプリングポインタ位置に光線空間データを記録する処理を行う光線空間データ処理装置として機能するコンピュータの外観図である。
【図17】図16に示すコンピュータの基本構成を示すブロック図である。
【図18】図14に示したフローチャートに従って全てのサンプリングポインタ位置に光線空間データを生成する処理に従って生成した光線空間データを用いて、任意視点から見た撮像画像を生成する処理のフローチャートである。
【図19】本発明の第2の実施形態に係る、未定サンプリングポインタ位置に記録すべき光線空間データを生成する処理を説明するための図である。
【図20】対応点同士線分を利用して未定サンプリングポインタ位置に光線空間データを記録させるための方法のうちの一つを説明する図である。
【図21】本発明の第3の実施形態に係る、未定サンプリングポインタ位置に記録すべき光線空間データを生成し、生成した光線空間データを未定サンプリングポインタ位置に記録する一連の処理のフローチャートである。
【図22】本発明の第4の実施形態に係る、多視点画像から光線空間データへのマッピングを説明する図である。
【発明の属する技術分野】
本発明は、像画像のデータを光線空間に光線空間データ群として写像し、光線空間データ群の夫々を光線空間の対応する位置に記録する処理を複数の撮像画像に対して行う光線空間データ処理技術に関するものである。
【0002】
【従来の技術】
仮想空間を、3次元幾何形状を基に記述するのではなく、実写画像を基に記述表現する手法が数多く提案されている。これらはImage Based Rendering(以下、IBRと略す)と呼ばれており、実写画像を基にするが故に、3次元幾何形状を基にする手法からは得られない写実性の高い仮想空間を表現できる点に特徴がある。
【0003】
IBRの一手法である光線空間理論に基づいた仮想空間の記述に関する試みが提案されている(例えば、非特許文献1、非特許文献2を参照)。
【0004】
以下、光線空間理論について説明する。
【0005】
図1は光線空間を説明する図である。図1に示すように実空間にO X−Y−Z座標系を設置する。z軸に垂直な基準面P(Z=z)を通過する光線を、光線がPを横切る位置(x、y)と、光線の方向を示す変数θ、φで表すことにする。すなわち、1本の光線は(x、y、z、θ、φ)の5つの変数により一意に定められる。この光線の光強度を表す関数をfと定義すると、この空間中の光線群データはf(x、y、z、θ、φ)で表現することが出来る。この5次元の空間を「光線空間」と呼ぶ。より一般的には、時間変動分tを入れる場合もあるがここでは省略する.
ここで、基準面Pをz=0に設定し、光線の垂直方向の視差情報、すなわちφ方向の自由度を省略すると、光線の自由度を(x、θ)の2次元に縮退させることができる。このx−θの2次元空間は、光線空間の部分空間となる。そして、図2に示すように実空間中の点Pを通る光線群201乃至204は、u=tanθとおくと、x−u空間上では、図3に示すように、
【0006】
【数1】
という直線上に写像される。図2は、実空間において点Pを通る光線群の例を示す図であり、図3は、図2に示した点Pを通る光線群201乃至204をx−u区間上に写像した場合の直線を示す図である。
【0007】
カメラによる撮影とは、カメラのレンズ焦点を通過する光線を撮像面で受光し、その明るさや色を画像化する操作に相当する。言い換えると、焦点位置という実空間中の1点を通る光線群を画像として画素数分獲得していることになる。ここでは、φ方向の自由度を省略し(縦視差を省略するとも言う)、X−Z平面内のみでの光線の振舞いを考えているので、Y軸との直交面と画像が交わる線分上の画素のみを考えることになる。このように、画像の撮影によって1点を通る光線を集めることができ、1回の撮影でx−u空間の1本の線分上のデータを獲得する(サンプリングするとも言う)ことができる。以下、光線空間上で表現されるデータを光線空間データと呼称する。
【0008】
この撮影を視点位置(本明細書では、特に断らない限りは、視点位置は、視点の位置と視線方向の双方を含むものとする)を変え多数行うと、多数の点を通る光線群を獲得することができる。図4に示すように、N台のカメラを用いて実空間を撮影すると、n番目(n=1,2,...,N)のカメラCnの焦点位置(xn、yn)に対応して、図5に示す如く、
【0009】
【数2】
x−u空間における直線上の光線空間データを得ることができる。図4はN台のカメラにより現実空間を撮像する様子を示す模式図であり、図5は図4に示したN台のカメラにより撮像された夫々の撮像画像をx−u空間に写像することで得られる直線群を示す図である。
【0010】
このように、十分に多数の視点からの撮影を行うことによって、x−u空間を密に光線空間データで埋めていくことができる。
【0011】
逆に、図6に示すように、光線空間データから、新しい任意の視点位置からの観察画像を生成することができる。例えば図7に示すように、新しい任意の視点位置を(X、Z)とすると、この視点位置における観察画像を生成するためにはx−u空間においてX=x+uZ上の光線空間データが必要となる。よって、図6に示すX=x+uZ上の光線空間データを読み出すことで、視点位置(X、Z)における観察画像を生成することができる。
【0012】
図6は、新しい任意の視点位置における観察画像を生成するためのx−u空間における直線を示す図であり、図7は新しい任意の視点位置を示す図である。
【0013】
光線空間理論を用いて仮想空間や物体を記述するには、上記光線空間データの量を十分に確保するために、十分に光線をサンプリングしておく必要があるが、十分に光線をサンプリングすると、光線空間データ量は膨大なものとなる。よって実際には、サンプリングする光線の数を調節し、不足分の光線空間データはサンプリングした光線による光線空間データから補間して生成する。補間処理方法としては、最近傍法がある。その他に、多視点画像列から生成されるエピポーラ平面画像上での対応点の軌跡検出に基づく方法等もある。
【非特許文献1】
電子情報通信学会論文誌「CGモデルと光線空間データとの融合による仮想環境の実現」(D−11, Vol. J80−D−11 No. 11, pp3048−3057, 1997年11月)
【非特許文献2】
「3次元統合画像通信を目指したホログラムと光線空間の相互変換」(3D Image Conference 95, pp8−9, 1995)
【0014】
【発明が解決しようとする課題】
上述の説明により、光線空間データを補間することで、サンプリング光線(即ち画像データ)の数を減らすことが可能になる。図8は被写体809の光線空間データを作成するために、複数の視点位置で被写体809を撮像する様子を示す図である。801から808は被写体809を撮像するカメラである。
【0015】
図9はカメラ801から808のうち、いずれか2つの隣接したカメラにより撮像された被写体の画像901,902を示す図である。図10は夫々の画像を光線空間にマッピングすることで得られる夫々の直線を示す図である。
【0016】
図9、10において、画像901は直線1001、画像902は直線1002に夫々マッピングされると仮定する。縦視差を省略した光線空間を利用する場合は、直線1001上の各点は、画像901の一縦ラインに対応する。例えば、縦ライン901a、901bは夫々点1003、1004に対応することにする。光線空間1000の中で、直線1001と直線1002との間には直線は存在しないので、当然夫々の直線間に相当する画像も存在しない。
【0017】
よって、画像901と画像902との間の視点位置から見た画像は、直線1001上の光線空間データと直線1002上の光線空間データとを用いた補間処理により作成する。
【0018】
また、直線1001と直線1002との間に相当する画像を生成するための他の方法としては、直線1001を中心とする領域1007および直線1002を中心とする領域1008を考え、視点位置が領域1007に含まれる場合は直線1001上の光線空間データを、視点位置が領域1008に含まれる場合は直線1002上の光線空間データを用いて生成しても良い。
【0019】
カメラ801から808によって撮影した画像も同様に光線空間にマッピングされ、各画像に対応した光線空間データ群による直線が生成される。そして各直線間の光線空間データは、生成された直線上の光線空間データを用いて補間処理によって作成できる。こうしてできた光線空間1000から任意視点の画像を再構成する。
【0020】
例えば、点線1009をある視点位置に対応する光線空間データ群による直線と仮定する。図10において点線1009上の点に対する画像の縦ラインを組み合わせると、所望の視点位置の画像が再構成できる。
【0021】
ただし、図10を見るとわかるように、点線1009上のサンプリング点を読み取っていくと、領域1007から領域1008にかけて、対応する画像が画像901の縦ラインからいきなり画像902の縦ラインに変化する。対応する画像が急に変わるので、再構成画像があるラインで不連続になることがある。画像901と画像902が違っていれば違うほど、再構成画像の不連続が目立つ。
【0022】
本発明は以上の問題に鑑みてなされたものであり、光線空間データを用いて任意視点の画像を再構成する際の画質を向上させることを目的とする。
【0023】
【課題を解決するための手段】
本発明の目的を達成するために、例えば本発明の光線空間データ処理方法は以下の構成を備える。
【0024】
すなわち、撮像画像のデータを光線空間に光線空間データ群として写像し、前記光線空間データ群の夫々を前記光線空間の対応する位置に記録する処理を複数の撮像画像に対して行う光線空間データ処理方法であって、
前記光線空間において、夫々の撮像画像の光線空間データ群の何れも記録されない第1の位置と、当該第1の位置の近傍であって、夫々の前記撮像画像の光線空間データの何れかが記録された複数の第2の位置との夫々の関連の度合を示すデータ群を、第1のデータとして求める計算工程と、
前記複数の第2の位置の夫々を特定する第2のデータと、前記第1のデータとを光線空間データとして前記第1の位置に記録すべきデータとして生成する生成工程と
を備えることを特徴とする。
【0025】
本発明の目的を達成するために、例えば本発明の光線空間データ処理方法は以下の構成を備える。
【0026】
すなわち、夫々の視点における撮像画像を光線空間に写像することで得られる、夫々の視点毎の第1の光線空間データ群と、1つ以上の当該第1の光線空間データ群を用いて生成された第2の光線空間データ群とを含む第3の光線空間データ群を用いて、所望の視点における撮像画像を生成する光線空間データ処理方法であって、
前記第3の光線空間データから、所望の視点に対応する第4の光線空間データ群を特定する特定工程と、
前記第4の光線空間データ群において、前記第1の光線空間データ群と共有する光線空間データが存在する場合には、当該共有する光線空間データの写像元である撮像画像の画素値を順次メモリ上に記録する第2の記録工程と、
前記第4の光線空間データ群において、前記第2の光線空間データ群と共有する光線空間データが存在する場合には、当該共有する光線空間データが示す、参照すべき光線空間データ群と、当該光線空間データ群の写像元である撮像画像の画素値に対する重みとを用いて、前記共有する光線空間データに対応する画素値を求める計算工程と、
前記計算工程が求めた画素値を順次前記メモリ上に記録する第2の記録工程とを備え、
前記第1、第2の記録工程の夫々で前記メモリ上に順次記録した画素値群は、前記所望の視点における撮像画像を構成する画素値群であることを特徴とする。
【0027】
本発明の目的を達成するために、例えば本発明の光線空間データ処理方法は以下の構成を備える。
【0028】
すなわち、撮像画像のデータを光線空間に光線空間データ群として写像し、前記光線空間データ群の夫々を前記光線空間の対応する位置に記録する処理を複数の撮像画像に対して行う光線空間データ処理方法であって、
前記光線空間において、前記夫々の撮像画像の光線空間データ群のいずれも記録されない第1の位置と、当該第1の位置の近傍であって、前記夫々の撮像画像の光線空間データのいずれかが記録された複数の第2の位置の夫々との関連の度合いに応じた関連データ群を、前記第1の位置に記録すべきデータとして求めるデータ計算工程と、
夫々の前記第2の位置に記録された光線空間データ対応する撮像画像中の画素の画素値と、夫々の前記第2の位置に対する前記関連データとに基づいて計算される画素値を、前記第1の位置に対応する画素の画素値として求める画素値計算工程と、
前記光線空間において、前記第1の位置に相当するすべての位置に対して前記画素値計算工程が計算する画素値を順次メモリ上に保持する保持工程とを備え、
前記第1の位置に記録すべきデータは、前記第1の位置に対応する画素を特定するデータであることを特徴とする。
【0029】
本発明の目的を達成するために、例えば本発明の光線空間データ処理装置は以下の構成を備える。
【0030】
すなわち、撮像画像のデータを光線空間に光線空間データ群として写像し、前記光線空間データ群の夫々を前記光線空間の対応する位置に記録する処理を複数の撮像画像に対して行う光線空間データ処理装置であって、
前記光線空間において、夫々の撮像画像の光線空間データ群の何れも記録されない第1の位置と、当該第1の位置の近傍であって、夫々の前記撮像画像の光線空間データの何れかが記録された複数の第2の位置との夫々の関連の度合を示すデータ群を、第1のデータとして求める計算手段と、
前記複数の第2の位置の夫々を特定する第2のデータと、前記第1のデータとを光線空間データとして前記第1の位置に記録すべきデータとして生成する生成手段と
を備えることを特徴とする。
【0031】
本発明の目的を達成するために、例えば本発明の光線空間データ処理装置は以下の構成を備える。
【0032】
すなわち、夫々の視点における撮像画像を光線空間に写像することで得られる、夫々の視点毎の第1の光線空間データ群と、1つ以上の当該第1の光線空間データ群を用いて生成された第2の光線空間データ群とを含む第3の光線空間データ群を用いて、所望の視点における撮像画像を生成する光線空間データ処理装置であって、
前記第3の光線空間データから、所望の視点に対応する第4の光線空間データ群を特定する特定手段と、
前記第4の光線空間データ群において、前記第1の光線空間データ群と共有する光線空間データが存在する場合には、当該共有する光線空間データの写像元である撮像画像の画素値を順次メモリ上に記録する第2の記録手段と、
前記第4の光線空間データ群において、前記第2の光線空間データ群と共有する光線空間データが存在する場合には、当該共有する光線空間データが示す、参照すべき光線空間データ群と、当該光線空間データ群の写像元である撮像画像の画素値に対する重みとを用いて、前記共有する光線空間データに対応する画素値を求める計算手段と、
前記計算手段が求めた画素値を順次前記メモリ上に記録する第2の記録手段とを備え、
前記第1、第2の記録手段の夫々が前記メモリ上に順次記録した画素値群は、前記所望の視点における撮像画像を構成する画素値群であることを特徴とする。
【0033】
本発明の目的を達成するために、例えば本発明の光線空間データ処理装置は以下の構成を備える。
【0034】
すなわち、撮像画像のデータを光線空間に光線空間データ群として写像し、前記光線空間データ群の夫々を前記光線空間の対応する位置に記録する処理を複数の撮像画像に対して行う光線空間データ処理装置であって、
前記光線空間において、前記夫々の撮像画像の光線空間データ群のいずれも記録されない第1の位置と、当該第1の位置の近傍であって、前記夫々の撮像画像の光線空間データのいずれかが記録された複数の第2の位置の夫々との関連の度合いに応じた関連データ群を、前記第1の位置に記録すべきデータとして求めるデータ計算手段と、
夫々の前記第2の位置に記録された光線空間データ対応する撮像画像中の画素の画素値と、夫々の前記第2の位置に対する前記関連データとに基づいて計算される画素値を、前記第1の位置に対応する画素の画素値として求める画素値計算手段と、
前記光線空間において、前記第1の位置に相当するすべての位置に対して前記画素値計算手段が計算する画素値を順次保持する保持手段とを備え、
前記第1の位置に記録すべきデータは、前記第1の位置に対応する画素を特定するデータであることを特徴とする。
【0035】
【発明の実施の形態】
以下、添付図面を参照しながら、本発明の好適な実施形態を説明する。
【0036】
[第1の実施形態]
図11は多視点画像と光線空間との関係を示す図である。ここで多視点画像とは、夫々異なる位置に設けられた複数のカメラ(視点)によって撮像された撮像画像群を示す。同図では多視点画像は、1102,1103,1104の夫々の撮像画像(群)により構成されている。1103は複数の撮像画像からなる。また各撮像画像は以下説明する処理において、光線空間データを生成するためにサンプリングされるものであるから、サンプリング画像と呼称する場合がある。
【0037】
1101は夫々のサンプリング画像(1102,1103,1104)を式1に示したX=x+u・Zに従って光線空間にマッピング(写像)することで得られる縦視差を省略した光線空間データの存在する光線空間である。光線空間1101において、サンプリング画像がマッピングされた直線上における各点(x、u)上の位置に記録されるべきデータが光線空間データである。
【0038】
なお、本明細書では、光線空間はコンピュータのメモリ上にエリアとして確保され、「光線空間上の位置Xにデータを記録する」とは、位置Xに相当するメモリ上のアドレスにデータを記録する動作に相当すると解釈する。
【0039】
光線空間1101における各直線は、各サンプリング画像を光線空間1101にマッピングすることで得られるものであり、例えば、撮像画像1104は、光線空間1101における直線1106上にマッピングされる。また、撮像画像の各縦ライン(方向の位置が同じ画素の集合)は、1つの光線空間データに写像され、例えば、撮像画像1104の縦ライン1105は直線1106上の1点1107にマッピングされる。
【0040】
また、光線空間1101において直線上の各点には、サンプリング画像の縦ラインの画素群を特定するためのデータとして、この縦ラインの画素群へのポインタ値が記録されている。例えば、光線空間1101上の1点1107には、画像1104の縦ライン1105へのポインタ値が記録されている。このように、直線1106上の各点には、サンプリング画像1104の各縦ラインへのポインタ値が記録される。これは他の直線上の各点に対しても同様で、対応するサンプリング画像の縦ラインの画素群へのポインタ値が記録される。
【0041】
縦視差を省略しない光線空間データでは、光線空間1101の各位置にサンプリング画像の画素値が記録される。以下では、サンプリング画像の縦ラインへのポインタ値をサンプリングポインタ値と呼称することがある。
【0042】
図12に量子化された光線空間データ1201を示す。ここで量子化された光線空間とは、x軸方向、u軸方向共に離散的な座標値で表現することが可能な光線空間を示す。以下用いる光線空間は全て量子化されている。同図では光線空間における離散的な各位置は「ます」で示されている。以下では各「ます」の位置をサンプリングポインタ位置と呼称する場合がある。
【0043】
同図において網掛けされた「ます」の集合である夫々の直線1202、1203,1204,1205,1206,1207,1208は、夫々対応するサンプリング画像を光線空間1201にマッピングすることで得られるものであって、網掛けされた夫々の「ます」には、対応するサンプリング画像の縦ラインの画素群へのポインタ値が記録されている。すなわち、直線上に記録される光線空間データとしては、ポインタ値のみである。
【0044】
また同図において、白の「ます」の位置には直線が通っておらず、白の「ます」の位置を通る直線に対応するサンプリング画像が存在しないので、白の「ます」には光線空間データは記録されていない。
【0045】
本実施形態では、この白で示された「ます」の位置に、網掛けされた「ます」に記録された光線空間データ(すなわちポインタ値)を用いて補間処理を行うことで生成される光線空間データを記録する処理を行う。より具体的には、図12中のサンプリングポインタ位置で、白い「ます」(以下、未定サンプリングポインタ位置と呼称する)に、近傍の光線空間データが記録されたサンプリングポインタ位置を特定するデータと、このサンプリングポインタ位置に記録されたサンプリングポインタ値が指す画像群の画素値に対する重みとを光線空間データとして記録することで補間処理を行う。よって本実施形態では、未定サンプリングポインタ位置と直線上の位置とでは、光線空間データの内容が異なる。
【0046】
図13Aは、本実施形態に係る、未定サンプリングポインタ位置に記録すべき光線空間データを生成する処理を説明するための図である。同図において1301は図12に示した光線空間1201の部分空間である。
【0047】
以下では説明のため、図9におけるサンプリング画像901は図13Aの網掛け部分の直線1302にマッピングされると、サンプリング画像902は直線1303にマッピングされると仮定する。補間される部分は白いますで示されている。
【0048】
注目の未定サンプリングポインタ位置に格納される対象は、注目の未定サンプリングポインタ位置の中心から近傍、特に最も近い、光線空間データが記録された4つのサンプリングポインタ位置を特定するデータ(特定データ)とする。ただし、異なるサンプリング画像から2つづつとする。この特定データとしては例えば、4つの夫々のサンプリングポインタ位置1304,1305,1307,1308の光線空間1201における座標であっても良いし、光線空間1201内に記録される光線空間データを保持するメモリ上のアドレスであってもよい。
【0049】
また、上記特定データにより特定される4つのサンプリングポインタ位置に記録された夫々の画素群の画素値に対する重みは、注目の未定サンプリングポインタ位置の中心から上記4つの各サンプリングポインタ位置の中心との距離を用いて計算される。例えば、未定サンプリングポインタ位置1310に格納される特定データは、最も近いサンプリングポインタ位置の「ます」である白星形の「ます」1304、白三角の「ます」1305、黒星形の「ます」1307と黒三角の「ます」1308を特定するデータである。
【0050】
図13AのL1は、未定サンプリングポインタ位置1310の中心から白星形の「ます」1304のサンプリングポインタ位置の中心への距離である。L2、L3,L4は夫々、未定サンプリングポインタ位置1310の中心から黒星形の「ます」1307、白三角の「ます」1305、黒三角の「ます」1308のサンプリングポインタ位置の中心への距離である。T1、T2、T3、T4を夫々白星形の「ます」1304、黒星形の「ます」1307、白三角の「ます」1305、黒三角の「ます」1308に記録されたサンプリングポインタ値が指す画像群の画素値に対する重みとすると、
【0051】
【数3】
【0052】
【数4】
【0053】
【数5】
【0054】
【数6】
と決めることができる。T1〜T4を計算した結果が夫々30%、20%、20%、30%であるとき、図13Bにサンプリングポインタ位置1310に格納する光線空間データを示す。
【0055】
光線空間データとして、未定サンプリングポインタ位置に記録すべき光線空間データを生成するために参照した4つのサンプリングポインタ位置を特定する特定データ(同図では白の三角、白の星、黒の三角、黒の星の夫々を特定するための特定データ)と、4つの夫々のサンプリングポインタ位置に記録されたサンプリングポインタ値が指す縦ラインの画素群の画素値に対する夫々の重みが記録されている。
【0056】
なお、本実施形態では未定サンプリングポインタ位置の近傍として、最も近い4つのサンプリングポインタ位置を用いたが、任意の数のサンプリングポインタ位置を用いても良いし、各未定サンプリングポインタ位置で異なるサンプリングポインタ位置に対する特定データを記録しても良い。その場合は、重みの計算は、式7に従って行う。
【0057】
【数7】
【0058】
ただし、Mは用いたサンプリングポインタ位置の数である。また、サンプリングポインタ値が指す画像群の画素値の重みは上記に限るものではない。
【0059】
また、以下詳しく説明する任意視点画像の再構成の際に結果画素の計算を容易にするために、サンプリングポインタ値が指す画像群の画素値の重みの合計を100%にした方が良いが、これに限定されるものではない。
【0060】
以上説明した、未定サンプリングポインタ位置に記録すべき光線空間データを生成し、生成した光線空間データを未定サンプリングポインタ位置に記録する一連の処理について、同処理のフローチャートを示す図14を参照して説明する。
まず、ステップS1401では多視点画像を撮影するときのカメラパラメータ(位置、姿勢、画角など)を用いて、光線空間データの量子化などの初期設定を行い、その後、各サンプリング画像のカメラパラメータを用いて、各サンプリング画像を光線空間へマッピングする処理を行う。
【0061】
ステップS1402では、最初の補間すべき未定サンプリングポインタ位置をセットする。ステップS1403では、未定サンプリングポインタ位置の中心から、M個の近傍のサンプリングポインタ位置を検出する。次に、ステップS1404では、未定サンプリングポインタ位置の中心から、ステップS1403で検出されたM個のサンプリングポインタ位置中心までの距離を計算し、式7に従って、M個のサンプリングポインタ位置に記録されたサンプリングポインタ値が指す縦ラインの画素群の画素値に対する重みT1〜TMを算出する。
【0062】
ステップS1405では、未定サンプリングポインタ位置に格納する各サンプリングポインタが指す画像群の画素値の重みの合計を100%にするための処理を行う。これは例えば、M個のサンプリングポインタ位置に対して求めた重みの値に対して100を掛けることで実現される。
【0063】
そしてステップS1406では、ステップS1403で検出したM個のサンプリングポインタ位置を特定する特定データと、このM個のサンプリングポインタ位置に記録されたポインタ値が指す縦ラインの画素群の画素値に対する重みを、図15に示すような形式で登録する。図15は、未定サンプリングポインタ位置に記録する光線空間データを登録するための表の一例を示す図である。
【0064】
図15に示す表には、光線空間における座標で表現される各未定サンプリングポインタ位置と、その光線空間データを生成するために参照したサンプリングポインタ位置を特定する特定データと、参照したサンプリングポインタ位置に記録されたポインタ値が指す縦ラインの画素群の画素値に対する重みとが記録される。
【0065】
例えば、同図の表において位置(a1,b1)が図13Aのサンプリングポインタ位置1310であるとすると、図15の表では特定データは白星形、白三角、黒星形と黒三角のサンプリングポインタ位置を示し、夫々のサンプリングポインタ位置に記録されたサンプリングポインタ値が示す縦ラインの画素群の画素値に対する重みは30%、20%、20%と30%として記憶されている。これはすなわち、位置(a1,b1)に対応する縦ラインの画素値gを求めるためには、白星形、白三角、黒星形、黒三角の夫々のサンプリングポインタ位置に記録されたポインタ値が示す縦ラインの画素群の画素値p、q、r、sを用いて、
g=(30×p+20×q+20×r+30×s)/100
と求めればよいことを示している。
【0066】
また本実施形態では、未定サンプリングポインタ位置に記録する光線空間データを登録するための表の形式の一例として図15に示す表を用いたが、この形式に限定されるものではなく、各未定サンプリングポインタ位置に記録する光線空間データが特定できるような形式であればよいことは、言うまでもない。
【0067】
図14に戻って、ステップS1406では、全ての未定サンプリングポインタ位置に対してステップS1403からステップS1405までの処理を行ったか、すなわち、図15に例示した表の全ての未定サンプリングポインタ位置に記録すべき光線空間データが登録されたか否かを判断する。
【0068】
まだ光線空間データが登録されていない未定サンプリングポインタ位置が存在する場合には処理をステップS1408に進め、次の未定サンプリングポインタ位置を処理対象としてセットし、ステップS1403以降の処理を行う。
【0069】
一方、全ての未定サンプリングポインタ位置に対して記録すべき光線空間データが求まった、すなわち、全ての未定サンプリングポインタ位置に対する光線空間データが図15に例示した表に登録された場合には、処理をステップS1407に進め、図15に例示した表に登録された全ての未定サンプリングポインタ位置に対して同表に登録されている光線空間データを保存する。
【0070】
以上の処理により、未定サンプリングポインタ位置に記録すべき光線空間データは、その近傍の(光線空間データが記録された)サンプリングポインタ位置との関連の度合い、即ち距離を反映したものとなる。これにより、2つのサンプリング画像を光線空間にマッピングしたことによる夫々の直線間に位置する未定サンプリングポインタ位置に記録される光線空間データは、その位置に応じて連続的に変化するものであり、従来のように、いきなり別の画像に変化するなど、急峻な変化を生じさせるものにはならない。
【0071】
図16は、以上説明した光線空間データを生成するための一連の処理を含む、全てのサンプリングポインタ位置に光線空間データを記録する処理を行う光線空間データ処理装置として機能するコンピュータの外観図で、図17はこのコンピュータの基本構成を示すブロック図である。
【0072】
図17において、1701はCPUで、RAM1702やROM1703に格納されたプログラムやデータなどを用いて、コンピュータ全体の制御を行ったり、図14に示したフローチャートに従った、全てのサンプリングポインタ位置に対する光線空間データを生成し、記録する処理を実行する。
【0073】
1702はRAMで、記憶媒体のドライブ装置1704や外部記憶装置1705から読み込んだプログラムやデータなどを一時的に格納するエリアを備えると共に、CPU1701が各種の処理を実行する際に使用するワークエリアなども備える。又上述の通り、光線空間に記録されるべきデータ群を保持するためのエリアも備える。
【0074】
1703はROMで、コンピュータ全体の制御を行うためのプログラム(ブートプログラムを含む)やデータ(各種の設定などを含む)を格納する。又、文字コードなども格納する。
【0075】
1704は記憶媒体のドライブ装置で、CD−ROMやDVD−ROM等の記憶媒体からプログラムやデータ等を読み出し、RAM1702や後述の記憶装置1705に出力する。
【0076】
1705は記憶装置であって、ここにOS(オペレーティングシステム)や記憶媒体のドライブ装置1704から読み込んだプログラムやデータ等を保存する。また、CPU1701が使用するワークエリアのサイズがRAM1702が提供するワークエリアのサイズを越えた場合には、ファイルとしてその越えた分のワークエリアを提供することもできる。
【0077】
なお、図14に示したフローチャートに従った、全てのサンプリングポインタ位置に光線空間データを記録する処理をCPU1701に実行させるためのプログラムや、上記複数のサンプリング画像等は予め記憶装置1705に保存させておき、必要に応じてRAM502にロードさせても良いし、記憶媒体に記録させておき、記憶媒体のドライブ装置1704によってこの記憶媒体から読み出してRAM502にロードさせても良い。
【0078】
また、図15に例示した表などは例えばRAM502に作成しておき、全ての未定サンプリングポインタ位置に対する光線空間データが生成されると、この表に記録された各光線空間データを記憶装置1705に保存する。
【0079】
1706は表示部で、CRTや液晶画面等(例えば、図16に示したディスプレイ1601)により構成されており、上記複数のサンプリング画像や図12に例示した光線空間を示す画像など、さらには以上説明した一連の処理を行うために表示すべきGUIなどを表示することができる。
【0080】
1707は操作部で、キーボードやマウス(例えば図16に示したマウス1602)などのポインティングデバイスを含み、各種の指示をCPU1701に入力することができる。
【0081】
1708はインターフェース(I/F)部で、インターネットやLAN等のネットワークに接続するためのもので、例えば上記複数のサンプリング画像をネットワークを介して外部の装置からRAM502にダウンロードしたり、生成した光線空間データを外部の装置にネットワークを介して出力する場合、このI/F部1708を介して行われる。
【0082】
また、I/F部1708はこの他にもプリンタやスキャナ等と接続するためにも使用しても良く、例えば紙やOHPなどの記録媒体上に記録された複数のサンプリング画像をスキャナにより読み取った場合に、読み取った画像をRAM502に入力したり、生成した光線空間データによる任意視点からの撮像画像を生成し、プリンタにより上記記録媒体上に記録する場合にも、このI/F部1708を介して行われる。
【0083】
1709は上述の各部を繋ぐバスである。
【0084】
次に、図14に示したフローチャートに従って全てのサンプリングポインタ位置に光線空間データを生成する処理に従って生成した光線空間データを用いて、任意視点から見た撮像画像を生成する処理について説明する。図18は、同処理のフローチャートである。なお、同図のフローチャートに従ったプログラムは上記記憶装置1705に保存され、必要に応じてRAM502にロードされ、CPU1701の実行対象となっても良いし、記憶媒体に記録させておき、記憶媒体のドライブ装置1704によってRAM502にロードし、CPU1701の実行対象としても良い。
【0085】
まずステップS1801では、記憶装置1705、もしくは記憶媒体のドライブ1704から、全てのサンプリングポインタ位置に記録された光線空間データ、及び各サンプリング画像をRAM502にロードする。
【0086】
次にステップS1802では、光線空間における任意視点に対応する線分を式1に基づいて求める。
【0087】
ステップS1803では、光線空間データからステップS1802で求めた線分上の最初のサンプリングポインタ位置に記録されている光線空間データを読み出す。
【0088】
ステップS1804では、読み出した光線空間データを参照して、この光線空間データが記録されたサンプリングポインタ位置が、元未定サンプリングポインタ位置であるか否かを判断する。これは、光線空間データに重みを示すデータが含まれているかなどを判断すればよい。
【0089】
この光線空間データが記録されたサンプリングポインタ位置が、元未定サンプリングポインタ位置でない場合、処理をステップS1809に進め、ステップS1809では、この光線空間データを参照して、サンプリングポインタ値が指すサンプリング画像の縦ラインの画素群の画素値を、RAM502にロードされた各サンプリング画像から特定して、RAM502の空エリアに順次読み出し、記録する。
【0090】
一方、この光線空間データが記録されたサンプリングポインタ位置が、元未定サンプリングポインタ位置である場合、処理をステップS1805に進め、ステップS1805では、この光線空間データに含まれる1つ以上の(本実施形態では4つの)サンプリングポインタ位置を特定する特定データと、特定データで特定される夫々のサンプリングポインタ位置に記録されたポインタ値が指す縦ラインの画素群の画素値の重みのデータを読み出す。
【0091】
そしてステップS1806では、ステップS1805において読み出した、特定データが特定するサンプリングポインタ位置に記録されたポインタ値が指すサンプリング画像の縦ラインの画素群の画素値を、RAM502にロードされた各サンプリング画像から特定して読み出し、更に読み出した夫々の画素値と、ステップS1805にて読み出した重みとを用いて、上記線分上の最初のサンプリングポインタ位置に対応する画素値を求め、上記空きエリアに順次記録する。
【0092】
上記画素値は、すべてのy座標の画素値について、補間で利用するサンプリング画像中の複数の縦ライン上の同じy座標の画素値から求める。
【0093】
例えば光線空間データに2つのサンプリングポインタ値(AとB)があると仮定する。サンプリングポインタ値Aは、サンプリング画像Aの縦ラインA(縦ラインAを構成する各画素をA1,A2,A3,,,とする)を指す。サンプリングポインタ値Bは、画像Bの縦ラインB(縦ラインBを構成する各画素をB1,B2,B3,,,とする)を指す。そこから、結果画像Cの縦ラインC(縦ラインCを構成する各画素をC1,C2,C3,,,とする)を計算する場合、縦ラインCのあるy座標値(例えば1)の画素(この場合、C1)は、他の縦ラインの同じy座標からの画素(A1とB1)から計算される。つまり、C1=A1*Wa+B1*Wbを計算することにより、画素C1が計算される。ただし、WaとWbはそれぞれの重みである。
【0094】
そして、ステップS1802において求めた線分上の全てのサンプリングポインタ位置に対する画素値を求めたか否かを判断し、全て求めたのであれば、処理をステップS1808に進め、ステップS1808では、ステップS1806,ステップS1809の夫々において順次空きエリアに記録した結果、即ち任意視点における撮像画像を表示部1706上に表示する。なお、ステップS1808では生成した撮像画像は表示することに限定されるものではなく、上述の通り、ネットワーク上に出力したり、プリンタに出力したりしても良い。
【0095】
一方、ステップS1807において、ステップS1802で求めた線分上の全てのサンプリングポインタ位置に対する画素値が求まっていない場合、処理をステップS1810に進め、線分上の次の光線空間データを読み出し、ステップS1804以降の処理を行う。
【0096】
上述のように、本実施形態における未定サンプリングポインタ位置における光線空間データの生成処理によれば、多視点画像とその画像を撮影した際のカメラパラメータを用いて光線空間データを作成する際に、未定サンプリングポインタ位置の中心から近傍のサンプリングポインタ位置を特定する特定データと、特定データが特定するサンプリングポインタ位置に記録されたサンプリングポインタ値が指す画像群の画素値の重みを利用して求めることによりサンプリング画像間で生じる急激な変化を避けることができる。
【0097】
また、このように作成された光線空間データを用いて任意視点画像を再構成することで、再構成画像の画質を向上させることができる。
【0098】
[第2の実施形態]
第1の実施形態では、未定サンプリングポインタ位置には1つ以上の特定データと、重みとを記録することで、任意視点画像の再構成時における再構成画像の画質を向上させることができた。
【0099】
本実施形態では、未定サンプリングポインタ位置に記録すべき光線空間データの生成において、特定データと重みの決定方法に被写体の幾何学形状情報を考慮する。
【0100】
図19は、本実施形態に係る、未定サンプリングポインタ位置に記録すべき光線空間データを生成する処理を説明するための図である。同図において1901は図12に示した光線空間1201の部分空間である。
【0101】
以下では説明のため、図9におけるサンプリング画像901は図19の網掛け部分の直線1902にマッピングされると、サンプリング画像902は直線1903にマッピングされると仮定する。
【0102】
まず直線1902と直線1903との対応点を検出する。これは、サンプリング画像901とサンプリング画像902と対応する縦ラインを検出することと同じである。対応点を検出する方法としては、サンプリング画像902の撮影時のカメラパラメータと被写体の幾何学形状と位置情報を用いて計算しても良い。これは、被写体の2つのステレオ画像があるときに、ステレオ画像の対応点(画像中に写っている被写体の同じポイント)が分かると、被写体の幾何学形状の計算は可能である。被写体の幾何学形状が既知であれば、被写体の一つのポイントは、異なる位置から撮った画像にどこに写っている(対応点)のかが計算することが可能である。
【0103】
また、サンプリング画像901の各縦ラインを参照縦ラインとして、縦ラインブロック単位でサンプリング画像902の各縦ラインとのブロック・マッチングを行い、最も二乗誤差の少ないサンプリング画像902の縦ラインを求める処理によって、対応する縦ラインを選んでも良い。
【0104】
或いは、操作者が、例えばGUIなどを介して、手作業で対応点を指定する方法も考えられる。この指定は、例えば図16に示す一般のコンピュータを用いて、図19に示した光線空間1901を表示部1706の表示画面上に表示させ、操作者がこの表示部1706の表示画面上に表示された画面を見ながら、操作部1707を用いて対応する2つの点を指定しても良い。さらに、光線空間データだけではなく、多視点画像も同時に表示すると、対応点の指定作業がより簡単になる。
【0105】
本実施形態では、直線1902上の黒星形、黒三角、黒丸の記号が付いているサンプリングポインタ位置1907、1908、1909は夫々、直線1903上の白星形、白三角、白丸の記号が付いているサンプリングポインタ位置1904、1905、1906に対応すると仮定する。対応点を決めると、対応点同士を結ぶ全ての線分を計算する。以下では対応点同士を結ぶ線分を対応点同士線分と呼称する場合がある。
【0106】
図19では、線分1910、1911、1912は夫々星形(1904と1907)、三角(1905と1908)と丸(1906と1909)の対応点同士を結ぶ。ここで、ある未定サンプリングポインタ位置の近傍、例えば最も近い2つの対応点同士線分(第1の線分、第2の線分)の夫々の両端のサンプリングポインタ位置(4つのサンプリングポインタ位置)の夫々を特定する特定データをその未定サンプリングポインタ位置に記録しても良い。
【0107】
そしてその場合、未定サンプリングポインタ位置の中心から第1の線分までの距離d1、第2の線分までの距離d2を求め、100×1/d1/(1/d1+1/d2)を第1の線分の両端のサンプリングポインタ位置に記録されたサンプリングポインタ値が指す縦ラインの画素群の画素値に対する重みとして、100×1/d2/(1/d1+1/d2)を第2の線分の両端のサンプリングポインタ位置に記録されたサンプリングポインタ値が指す縦ラインの画素群の画素値に対する重みとして未定サンプリングポインタ位置に記録する。
【0108】
以上のようにすることで、対応点同士線分を用いて未定サンプリングポインタ位置に光線空間データを記録することができる。しかし、対応点同士線分を用いて未定サンプリングポインタ位置に光線空間データを記録する方法は上述の方法に限定されるものではなく、他の方法でも良い。例えば、図20に示す方法も考えられる。
【0109】
図20は、対応点同士線分を利用して未定サンプリングポインタ位置に光線空間データを記録させるための方法のうちの一つを説明する図である。
【0110】
夫々の対応点同士線分1910、1911、1912を含む、領域2004(星形)、2005(三角)と2006(丸)を考える。各領域の境界は、対応点を結ぶ線分同士の中央にある。
【0111】
例えば未定サンプリングポインタ位置が2002で示す位置である場合を例に取り説明すると、未定サンプリングポインタ位置に記録すべき重みの計算は以下の通りである。位置2002から直線1910までの直線距離:位置2002から直線1911までの直線距離=7:3の場合、直線1910の両端のサンプリングポインタ位置(星形で示される位置)に記録されたサンプリングポインタ値が指す縦ラインの画像群の画素値の重みを30%、直線1911の両端のサンプリングポインタ位置(三角で示される位置)に記録されたサンプリングポインタ値が指す縦ラインの画像群の画素値の重みを70%とする(距離に反比例する場合)。
【0112】
当然、未定サンプリングポインタ位置に記録すべき特定データは、直線1910の両端のサンプリングポインタ位置を特定するデータ、直線1911の両端のサンプリングポインタ位置を特定するデータである。
【0113】
また上述のように、領域2004と2005の2つの領域における直線だけでなく3つの領域2004,2005,2006における直線を利用することも考えられる。例えば未定サンプリングポインタ位置が2003で示す位置である場合に、未定サンプリングポインタ位置と各領域における直線1910,1911,1912との直線距離に応じて、直線1910の両端のサンプリングポインタ位置(星形で示される位置)に記録されたサンプリングポインタ値が指す縦ラインの画像群の画素値の重みを4%、直線1911の両端のサンプリングポインタ位置(三角で示される位置)に記録されたサンプリングポインタ値が指す縦ラインの画像群の画素値の重みを90%、直線1912の両端のサンプリングポインタ位置(三角で示される位置)に記録されたサンプリングポインタ値が指す縦ラインの画像群の画素値の重みを6%としてもよい。
【0114】
以上説明した処理により、未定サンプリングポインタ位置に記録すべき光線空間データを作成する際に、被写体の幾何学形状情報を考慮し、補間されたサンプリングポインタ位置に1つ以上のサンプリングポインタ値とそのポインタが指す画像群の画素値の重みを格納することで、任意視点の再構成画像の画質を上げることができる。
【0115】
[第3の実施形態]
第1、2の実施形態では、未定サンプリングポインタ位置には1つ以上の特定データと、重みとを光線空間データとして記録することで、任意視点画像の再構成時における再構成画像の画質を向上させることができた。
【0116】
本実施形態では、注目の未定サンプリングポインタ位置に記録されるべき光線空間データとしては、すべての未定サンプリングポインタ位置の夫々に対する画素値を求め、求めた画素値の集合である画像において上記注目の未定サンプリングポインタ位置に対応する画素値(画素)を指すサンプリングポインタ値を用いる。
【0117】
本実施形態に係る、未定サンプリングポインタ位置に記録すべき光線空間データを生成し、生成した光線空間データを未定サンプリングポインタ位置に記録する一連の処理について、同処理のフローチャートを示す図21を参照して説明する。なお、同図において、図14に示した各ステップと同じものについては同じステップ番号を付けており、その説明を省略する。よって、ステップS2101,ステップS2102について説明する。
【0118】
ステップS2101では、注目の未定サンプリングポインタ位置の近傍の夫々のサンプリングポインタ位置に対応する画素値と、夫々の画素値に対して求めた重みとを夫々掛け合わせたものをすべて加算した結果を、図18に示したフローチャートに従った処理により求める。求めた結果は、注目の未定サンプリングポインタ位置に対応する画素値として求めたものである。求めた画素値は順次RAM1702に記録され、順次記録される画素値の集合は新たなサンプリング画像として形成される。
【0119】
またステップS2101では、注目の未定サンプリングポインタ位置に記録されるべき光線空間データとしてのサンプリングポインタ値として、RAM1702上に形成されるサンプリング画像において、注目の未定サンプリングポインタ位置に対応する画素を指すサンプリングポインタ値を生成し、注目の未定サンプリングポインタ位置に記録する。
【0120】
そしてステップS2102では、各未定サンプリングポインタ位置に記録する光線空間データと、新たに形成したサンプリング画像を保存する。
【0121】
以上説明した処理により、新しい画素値を生成して新たなサンプリング画像として保存し、さらにその生成されたサンプリング画像へのサンプリングポインタ値を注目の未定サンプリングポインタ位置に記録することで、任意視点画像の再構成時の画素値とその重みの積の計算と合計の計算を省略できるので、任意視点画像の再構成の速度を上げつつ、再構成画像の画質を上げることができる。
【0122】
[第4の実施形態]
第1、2の実施形態では、サンプリングポインタ位置は整数値で表現していた。ところが、実際に光線空間上に写像される直線上の各点(サンプリングポインタ位置)はほとんどが実数値となり、これらのサンプリングポインタ位置を整数値で表現していたのでは、実際の位置と整数値表現による位置とでずれが生じてしまう。この位置のずれが、任意視点における撮像画像の画質に影響することがある。
【0123】
本実施形態では、サンプリングポインタ位置を整数ではなく、浮動小数で表す。特定データとサンプリングポインタ値が指す画像群の画素値の重みの決定方法は、第2の実施形態で説明した方法を採用しても良い。
【0124】
図22は本実施形態に係る、多視点画像から光線空間データへのマッピングを説明する図である。2201は光線空間で、2202は多視点画像中の1枚の画像に対する線分、2203は多視点画像中のもう1枚の画像に対する線分である。線分2203上には白星形(2204)、白三角(2205)と白丸(2206)の各サンプリングポインタ位置が存在する。また同図には、白星形(2204)、白三角(2205)と白丸(2206)の夫々のサンプリングポインタ位置の対応点である線分2202上の黒星形(2207)、黒三角(2208)と黒丸(2209)の各サンプリングポインタ位置が存在する。
【0125】
1つの未定サンプリングポインタ位置に対する特定データとサンプリングポインタ値が指す画像群の画素値の重みの求め方は、上述の実施形態で用いたいずれの方法を用いても良いが、その際、未定サンプリングポインタ位置、サンプリングポインタ位置が整数でないことのみが異なる。しかし本実施形態の場合、2210で示した未定サンプリングポインタ位置に記録すべき光線空間データを求める場合には例えば以下説明するような方法がある。
【0126】
まず、線分2203上の各サンプリングポインタ位置を中心として互いに重ならないような領域(同図では各サンプリングポインタ位置毎に網掛けの部分で示す領域が設けられている)を設定する。
【0127】
このようにすると、2210で示す未定サンプリングポインタ位置にはサンプリングポインタ位置2205を中心とした領域(第1の領域)とサンプリングポインタ位置2206を中心とした領域(領域2)とが、ある割合で重なっている。ここで未定サンプリングポインタ位置2210の面積に対して領域1が45%、領域2が35%重なっている場合、未定サンプリングポインタ位置2210には、サンプリングポインタ位置2205とサンプリングポインタ位置2206の夫々を特定するための特定データと、夫々のサンプリングポインタ位置に記録されたサンプリングポインタ値が示す画素値に対する重み45%と35%(上記各領域の割合)とを光線空間データとして記録する。
【0128】
このような未定サンプリングポインタ位置、すなわち各サンプリングポインタ位置毎に設定された領域が重なっている未定サンプリングポインタ位置には上述の処理を適用することで、光線空間データを求め、記録することができる。
【0129】
なお、各サンプリングポインタ位置毎に設定する領域は、図22に例示するようなものに限定されるものではない。
【0130】
多視点画像の光線空間データへのマッピング処理が終了したら、以降の処理は上述のいずれの実施形態に従った処理を行う。
【0131】
以上説明した処理によって、多視点画像の光線空間データへのマッピングの際、サンプリングポインタ位置を整数にすることによる上記写像位置誤差が再構成画像に与える画質の影響を軽減することができ、再構成画像の画質を上げることができる。
【0132】
[その他の実施形態]
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【0133】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0134】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0135】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【0136】
【発明の効果】
以上の説明により、本発明によって、光線空間データを用いて任意視点の画像を再構成する際の画質を向上させることができる。
【図面の簡単な説明】
【図1】光線空間を説明する図である。
【図2】実空間中の点Pを通る光線群201乃至204を示す図である。
【図3】図2に示した点Pを通る光線群201乃至204をx−u区間上に写像した場合の直線を示す図である。
【図4】図4はN台のカメラにより現実空間を撮像する様子を示す模式図である。
【図5】図5は図4に示したN台のカメラにより撮像された夫々の撮像画像をx−u空間に写像することで得られる直線群を示す図である。
【図6】図6は、新しい任意の視点位置における観察画像を生成するためのx−u空間における直線を示す図である。
【図7】図7は新しい任意の視点位置を示す図である。
【図8】図8は被写体809の光線空間データを作成するために、複数の視点位置で被写体809を撮像する様子を示す図である。
【図9】図9はカメラ801から808のうち、いずれか2つの隣接したカメラにより撮像された被写体の画像901,902を示す図である。
【図10】図10は夫々の画像を光線空間にマッピングすることで得られる夫々の直線を示す図である。
【図11】図11は多視点画像と光線空間との関係を示す図である。
【図12】量子化された光線空間データ1201を示す図である。
【図13A】本発明の第1の実施形態に係る、未定サンプリングポインタ位置に記録すべき光線空間データを生成する処理を説明するための図である。
【図13B】サンプリングポインタ位置1310に格納する光線空間データを示す図である。
【図14】未定サンプリングポインタ位置に記録すべき光線空間データを生成し、生成した光線空間データを未定サンプリングポインタ位置に記録する一連の処理のフローチャートである。
【図15】未定サンプリングポインタ位置に記録する光線空間データを登録するための表の一例を示す図である。
【図16】全てのサンプリングポインタ位置に光線空間データを記録する処理を行う光線空間データ処理装置として機能するコンピュータの外観図である。
【図17】図16に示すコンピュータの基本構成を示すブロック図である。
【図18】図14に示したフローチャートに従って全てのサンプリングポインタ位置に光線空間データを生成する処理に従って生成した光線空間データを用いて、任意視点から見た撮像画像を生成する処理のフローチャートである。
【図19】本発明の第2の実施形態に係る、未定サンプリングポインタ位置に記録すべき光線空間データを生成する処理を説明するための図である。
【図20】対応点同士線分を利用して未定サンプリングポインタ位置に光線空間データを記録させるための方法のうちの一つを説明する図である。
【図21】本発明の第3の実施形態に係る、未定サンプリングポインタ位置に記録すべき光線空間データを生成し、生成した光線空間データを未定サンプリングポインタ位置に記録する一連の処理のフローチャートである。
【図22】本発明の第4の実施形態に係る、多視点画像から光線空間データへのマッピングを説明する図である。
Claims (12)
- 撮像画像のデータを光線空間に光線空間データ群として写像し、前記光線空間データ群の夫々を前記光線空間の対応する位置に記録する処理を複数の撮像画像に対して行う光線空間データ処理方法であって、
前記光線空間において、夫々の撮像画像の光線空間データ群の何れも記録されない第1の位置と、当該第1の位置の近傍であって、夫々の前記撮像画像の光線空間データの何れかが記録された複数の第2の位置との夫々の関連の度合を示すデータ群を、第1のデータとして求める計算工程と、
前記複数の第2の位置の夫々を特定する第2のデータと、前記第1のデータとを光線空間データとして前記第1の位置に記録すべきデータとして生成する生成工程と
を備えることを特徴とする光線空間データ処理方法。 - 前記計算工程では前記第1のデータとして、前記第1の位置と前記複数の第2の位置の夫々との距離に基づいて、前記複数の第2の位置の夫々に対応する撮像画像中の画素値に対する重みを求めることを特徴とする請求項1に記載の光線空間データ処理方法。
- 前記計算工程では前記第1のデータとして、2つの撮像画像の夫々の光線空間データ群において、対応する光線空間データ間を結ぶ線分群のうち、前記第1の位置近傍の2つの線分の夫々と前記第1の位置との距離に基づいて、前記2つの線分の夫々の両端に位置する光線空間データに対する重みを求めることを特徴とする請求項1に記載の光線空間データ処理方法。
- 前記第1の位置を含む第1の領域が前記第1の位置毎に、前記第2の位置を含む第2の領域が前記第2の位置毎に設けられており、
前記計算工程では前記第1のデータとして、1つ以上の前記第2の領域が前記第1の領域に重なる割合に基づいて、前記第1の領域に重なる前記第2の領域に含まれる夫々の前記第2の位置に対応する撮像画像中の画素値に対する重みを求めることを特徴とする請求項1に記載の光線空間データ処理方法。 - 夫々の視点における撮像画像を光線空間に写像することで得られる、夫々の視点毎の第1の光線空間データ群と、1つ以上の当該第1の光線空間データ群を用いて生成された第2の光線空間データ群とを含む第3の光線空間データ群を用いて、所望の視点における撮像画像を生成する光線空間データ処理方法であって、
前記第3の光線空間データから、所望の視点に対応する第4の光線空間データ群を特定する特定工程と、
前記第4の光線空間データ群において、前記第1の光線空間データ群と共有する光線空間データが存在する場合には、当該共有する光線空間データの写像元である撮像画像の画素値を順次メモリ上に記録する第2の記録工程と、
前記第4の光線空間データ群において、前記第2の光線空間データ群と共有する光線空間データが存在する場合には、当該共有する光線空間データが示す、参照すべき光線空間データ群と、当該光線空間データ群の写像元である撮像画像の画素値に対する重みとを用いて、前記共有する光線空間データに対応する画素値を求める計算工程と、
前記計算工程が求めた画素値を順次前記メモリ上に記録する第2の記録工程とを備え、
前記第1、第2の記録工程の夫々で前記メモリ上に順次記録した画素値群は、前記所望の視点における撮像画像を構成する画素値群であることを特徴とする光線空間データ処理方法。 - 撮像画像のデータを光線空間に光線空間データ群として写像し、前記光線空間データ群の夫々を前記光線空間の対応する位置に記録する処理を複数の撮像画像に対して行う光線空間データ処理方法であって、
前記光線空間において、前記夫々の撮像画像の光線空間データ群のいずれも記録されない第1の位置と、当該第1の位置の近傍であって、前記夫々の撮像画像の光線空間データのいずれかが記録された複数の第2の位置の夫々との関連の度合いに応じた関連データ群を、前記第1の位置に記録すべきデータとして求めるデータ計算工程と、
夫々の前記第2の位置に記録された光線空間データ対応する撮像画像中の画素の画素値と、夫々の前記第2の位置に対する前記関連データとに基づいて計算される画素値を、前記第1の位置に対応する画素の画素値として求める画素値計算工程と、
前記光線空間において、前記第1の位置に相当するすべての位置に対して前記画素値計算工程が計算する画素値を順次メモリ上に保持する保持工程とを備え、
前記第1の位置に記録すべきデータは、前記第1の位置に対応する画素を特定するデータであることを特徴とする光線空間データ処理方法。 - 撮像画像のデータを光線空間に光線空間データ群として写像し、前記光線空間データ群の夫々を前記光線空間の対応する位置に記録する処理を複数の撮像画像に対して行う光線空間データ処理装置であって、
前記光線空間において、夫々の撮像画像の光線空間データ群の何れも記録されない第1の位置と、当該第1の位置の近傍であって、夫々の前記撮像画像の光線空間データの何れかが記録された複数の第2の位置との夫々の関連の度合を示すデータ群を、第1のデータとして求める計算手段と、
前記複数の第2の位置の夫々を特定する第2のデータと、前記第1のデータとを光線空間データとして前記第1の位置に記録すべきデータとして生成する生成手段と
を備えることを特徴とする光線空間データ処理装置。 - 夫々の視点における撮像画像を光線空間に写像することで得られる、夫々の視点毎の第1の光線空間データ群と、1つ以上の当該第1の光線空間データ群を用いて生成された第2の光線空間データ群とを含む第3の光線空間データ群を用いて、所望の視点における撮像画像を生成する光線空間データ処理装置であって、
前記第3の光線空間データから、所望の視点に対応する第4の光線空間データ群を特定する特定手段と、
前記第4の光線空間データ群において、前記第1の光線空間データ群と共有する光線空間データが存在する場合には、当該共有する光線空間データの写像元である撮像画像の画素値を順次メモリ上に記録する第2の記録手段と、
前記第4の光線空間データ群において、前記第2の光線空間データ群と共有する光線空間データが存在する場合には、当該共有する光線空間データが示す、参照すべき光線空間データ群と、当該光線空間データ群の写像元である撮像画像の画素値に対する重みとを用いて、前記共有する光線空間データに対応する画素値を求める計算手段と、
前記計算手段が求めた画素値を順次前記メモリ上に記録する第2の記録手段とを備え、
前記第1、第2の記録手段の夫々が前記メモリ上に順次記録した画素値群は、前記所望の視点における撮像画像を構成する画素値群であることを特徴とする光線空間データ処理装置。 - 撮像画像のデータを光線空間に光線空間データ群として写像し、前記光線空間データ群の夫々を前記光線空間の対応する位置に記録する処理を複数の撮像画像に対して行う光線空間データ処理装置であって、
前記光線空間において、前記夫々の撮像画像の光線空間データ群のいずれも記録されない第1の位置と、当該第1の位置の近傍であって、前記夫々の撮像画像の光線空間データのいずれかが記録された複数の第2の位置の夫々との関連の度合いに応じた関連データ群を、前記第1の位置に記録すべきデータとして求めるデータ計算手段と、
夫々の前記第2の位置に記録された光線空間データ対応する撮像画像中の画素の画素値と、夫々の前記第2の位置に対する前記関連データとに基づいて計算される画素値を、前記第1の位置に対応する画素の画素値として求める画素値計算手段と、
前記光線空間において、前記第1の位置に相当するすべての位置に対して前記画素値計算手段が計算する画素値を順次保持する保持手段とを備え、
前記第1の位置に記録すべきデータは、前記第1の位置に対応する画素を特定するデータであることを特徴とする光線空間データ処理装置。 - コンピュータに請求項1乃至6の何れか1項に記載の光線空間データ処理方法を実行させることを特徴とするプログラム。
- コンピュータを請求項7乃至9に何れか1項に記載の光線空間データ処理装置として機能させることを特徴とするプログラム。
- 請求項10又は11に記載のプログラムを格納することを特徴とするコンピュータ読み取り可能な記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003046227A JP2004258775A (ja) | 2003-02-24 | 2003-02-24 | 光線空間データ処理方法、空間データ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003046227A JP2004258775A (ja) | 2003-02-24 | 2003-02-24 | 光線空間データ処理方法、空間データ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004258775A true JP2004258775A (ja) | 2004-09-16 |
Family
ID=33112825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003046227A Withdrawn JP2004258775A (ja) | 2003-02-24 | 2003-02-24 | 光線空間データ処理方法、空間データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004258775A (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007095073A (ja) * | 2005-09-29 | 2007-04-12 | Mitsubishi Electric Research Laboratories Inc | シーンから収集される画像からアルファマットを抽出するための方法及びシステム |
JP2008015756A (ja) * | 2006-07-05 | 2008-01-24 | Kddi Corp | 局所領域分割による自由視点画像の生成方法、装置およびプログラム |
JP2008217547A (ja) * | 2007-03-06 | 2008-09-18 | Kddi Corp | 自由視点画像の生成方法 |
JP2009151747A (ja) * | 2007-11-26 | 2009-07-09 | Kddi Corp | 自由視点映像生成方法および記録媒体 |
JP2010039501A (ja) * | 2008-07-31 | 2010-02-18 | Kddi Corp | 3次元移動の自由視点映像生成方法および記録媒体 |
JP2010072921A (ja) * | 2008-09-18 | 2010-04-02 | Kddi Corp | 画像表示装置、視点誘導方法及びプログラム |
JP2010152770A (ja) * | 2008-12-26 | 2010-07-08 | Kddi Corp | 画像処理装置、方法及びプログラム |
US8243122B2 (en) | 2007-07-31 | 2012-08-14 | Kddi Corporation | Video method for generating free viewpoint video image using divided local regions |
CN110024002A (zh) * | 2016-12-30 | 2019-07-16 | 谷歌有限责任公司 | 用于使用贡献区域来光场重构的系统和方法 |
-
2003
- 2003-02-24 JP JP2003046227A patent/JP2004258775A/ja not_active Withdrawn
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007095073A (ja) * | 2005-09-29 | 2007-04-12 | Mitsubishi Electric Research Laboratories Inc | シーンから収集される画像からアルファマットを抽出するための方法及びシステム |
JP2008015756A (ja) * | 2006-07-05 | 2008-01-24 | Kddi Corp | 局所領域分割による自由視点画像の生成方法、装置およびプログラム |
JP2008217547A (ja) * | 2007-03-06 | 2008-09-18 | Kddi Corp | 自由視点画像の生成方法 |
US8243122B2 (en) | 2007-07-31 | 2012-08-14 | Kddi Corporation | Video method for generating free viewpoint video image using divided local regions |
JP2009151747A (ja) * | 2007-11-26 | 2009-07-09 | Kddi Corp | 自由視点映像生成方法および記録媒体 |
JP2010039501A (ja) * | 2008-07-31 | 2010-02-18 | Kddi Corp | 3次元移動の自由視点映像生成方法および記録媒体 |
US8259160B2 (en) | 2008-07-31 | 2012-09-04 | Kddi Corporation | Method for generating free viewpoint video image in three-dimensional movement and recording medium |
JP2010072921A (ja) * | 2008-09-18 | 2010-04-02 | Kddi Corp | 画像表示装置、視点誘導方法及びプログラム |
JP2010152770A (ja) * | 2008-12-26 | 2010-07-08 | Kddi Corp | 画像処理装置、方法及びプログラム |
CN110024002A (zh) * | 2016-12-30 | 2019-07-16 | 谷歌有限责任公司 | 用于使用贡献区域来光场重构的系统和方法 |
CN110024002B (zh) * | 2016-12-30 | 2021-05-04 | 谷歌有限责任公司 | 用于根据光场渲染视图的方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5011168B2 (ja) | 仮想視点画像生成方法、仮想視点画像生成装置、仮想視点画像生成プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP6515985B2 (ja) | 三次元画像結合方法及び三次元画像結合装置 | |
KR101956149B1 (ko) | 이미지 사이의 광학 흐름의 효율적 결정 | |
KR101820349B1 (ko) | 화상 표시 방법 및 장치 | |
JP4947593B2 (ja) | 局所領域分割による自由視点画像の生成装置およびプログラム | |
EP2272050B1 (en) | Using photo collections for three dimensional modeling | |
JP4803594B2 (ja) | 局所領域分割による自由視点画像の生成装置およびプログラム | |
US20020113865A1 (en) | Image processing method and apparatus | |
EP0797171B1 (en) | Image processing method and apparatus | |
CA2813742A1 (en) | Rapid 3d modeling | |
CN110827392B (zh) | 单目图像三维重建方法、系统及装置 | |
Lindner et al. | Sub-pixel data fusion and edge-enhanced distance refinement for 2d/3d images | |
CN106534670B (zh) | 一种基于固联鱼眼镜头摄像机组的全景视频生成方法 | |
Ding et al. | Fusing structure from motion and lidar for dense accurate depth map estimation | |
JP2007257100A (ja) | パノラマ画像作成方法 | |
KR102109814B1 (ko) | 영상 정합 장치 및 방법 | |
CN112598789A (zh) | 图像纹理重建方法、装置、设备及存储介质 | |
JP2004234350A (ja) | 画像処理装置、画像処理方法、及び画像処理プログラム | |
JP2004258775A (ja) | 光線空間データ処理方法、空間データ処理装置 | |
JP2004220312A (ja) | 多視点カメラシステム | |
d’Annibale | Image based modeling from spherical photogrammetry and structure for motion. The case of the treasury, Nabatean architecture in Petra | |
JP2016114445A (ja) | 3次元位置算出装置およびそのプログラム、ならびに、cg合成装置 | |
Musialski et al. | Interactive Multi-View Facade Image Editing. | |
Ortin et al. | Occlusion-free image generation for realistic texture mapping | |
KR20200122870A (ko) | 포토그래메트리를 이용한 고품질 3차원 공간 정보 획득 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060509 |