前記姿勢推定部は、複数の画像間における同一画素でサンプリングされた前記較正物体上の位置が、撮影空間において一直線上に存在することを用いて前記較正物体の姿勢を推定するカメラキャリブレーション装置。前記姿勢推定部は、同一画素でサンプリングされた前記較正物体上の位置から、1つの画素に対して2本以上の線分を求め、当該線分に対応する方向ベクトル間の外積を最小化するように前記較正物体の姿勢を推定する請求項1に記載のカメラキャリブレーション装置。前記対応関係に関する情報と、前記姿勢情報とを用いて、同一画素でサンプリングされた前記較正物体上の位置から、1つの画素に対して2本以上の線分を求め、当該線分に対応する方向ベクトル間の外積に基づくキャリブレーション評価値を求めるキャリブレーション評価部を更に備える請求項1または請求項2に記載のカメラキャリブレーション装置。選択した画像群から較正物体の姿勢ごとに、画素と較正物体上の位置との対応関係に関する情報を取得する請求項1から請求項3のいずれか一項に記載のカメラキャリブレーション装置。推定された類似度とに基づいて、前記カメラからの距離の違いが少なく、カメラに対する姿勢が異なる較正物体を撮影した3枚以上の画像群を選択する請求項4に記載のカメラキャリブレーション装置。前記姿勢推定ステップは、複数の画像間における同一画素でサンプリングされた前記較正物体上の位置が、撮影空間において一直線上に存在することを用いて前記較正物体の姿勢を推定するカメラキャリブレーション方法。請求項6に記載のカメラキャリブレーション方法をコンピュータに実行させるためのカメラキャリブレーションプログラム。請求項7に記載のカメラキャリブレーションプログラムを記録した記録媒体。従来、カメラで撮影された画像から、三次元情報として、例えば被写体の形状や、被写体とカメラとの位置関係を抽出する技術が知られている。このような技術は、ロボットビジョン、拡張現実感を提供するシステム等において、非常に重要となる技術である。このような三次元情報の抽出を行うためには、画像上の各画素と現実空間での光線の対応関係に関する情報と、複数のカメラ間の位置関係に関する情報とを取得する必要がある。これらの情報を取得する処理は、カメラキャリブレーションと呼ばれている。画像上の各画素と現実空間での光線の対応関係に関する情報を取得する処理は、内部キャリブレーションと呼ばれ、複数のカメラ間の位置関係に関する情報を取得する処理は、外部キャリブレーションと呼ばれている。一般的なカメラキャリブレーションでは、オブジェクトと画像平面の間の写像が、ピンホールカメラモデルなど透視投影カメラモデルで表現できることを前提としている。そのような透視投影カメラモデルでは、オブジェクトからの光線は、カメラの投影中心に向かって直進しながら集束することを前提としている。そのため、カメラとオブジェクトの間に屈折層がある場合は、スネルの法則に基づき屈折層の屈折をモデル化することで、カメラキャリブレーションを実現する。屈折のモデル化を行うためには、屈折層の屈折率及び位置・形状に関する情報が必要となる。それらの情報を得ることは、一般的に困難であるため、屈折のモデル化を行うことができないという問題がある。仮に、それらの情報が得られたとしても、屈折層の形状等が複雑な場合は、屈折のモデル化の処理も複雑になるという問題がある。透視投影カメラモデルとは異なるカメラモデルとして、非特許文献1で提案されているRaxel(ray-pixel)カメラモデルが存在する。Raxelカメラモデルでは、画像上の各画素と三次元空間における光線とを直接対応付ける。そのため、屈折層における光線の屈折をモデル化せずに、カメラキャリブレーションにおいて、画素と光線の対応付けを求めることができる。【0006】しかしながら、非特許文献2に記載の手法は、近似関数で近似する精度の問題から屈折層の形状に制約があり、任意の屈折層に適用するのは困難であるという問題がある。キャリブレーションにおいて、カメラに対する較正物体の姿勢に関する情報が必要となる。その姿勢に関する情報を取得するために、経路中に屈折層を含む空間に設置された較正物体を撮影すると同時に、屈折層を含まない空間に設置された別の較正物体を撮影する必要がある。非特許文献2に記載の手法は、本来対象とする空間をカメラの一部でしか撮影できないことになり、高精細な画像を取得することができないという問題がある。非特許文献2に記載の手法は、屈折層を含む空間および屈折層を含まない空間の両方の空間が撮影可能な状況でしか、使用できないという問題がある。上記事情に鑑み、本発明は、カメラと被写体との間に未知の屈折層または複雑な形状の屈折層が存在する場合であっても、カメラモデルのキャリブレーションを実現することができるカメラキャリブレーション装置、カメラキャリブレーション方法、カメラキャリブレーションプログラム及び記録媒体を提供することを目的とする。取得された前記対応関係に関する情報と、前記姿勢推定部で推定された前記姿勢情報とを用いて、画素と光線との対応関係を示す光線情報を取得する光線情報取得部とを備え、前記姿勢推定部は、複数の画像間における同一画素でサンプリングされた前記較正物体上の位置が、撮影空間において一直線上に存在することを用いて前記較正物体の姿勢を推定するカメラキャリブレーション装置である。本発明の一態様は、前記姿勢推定部は、同一画素でサンプリングされた前記較正物体上の位置から、1つの画素に対して2本以上の線分を求め、当該線分に対応する方向ベクトル間の外積を最小化するように前記較正物体の姿勢を推定する。本発明の一態様は、前記対応関係に関する情報と、前記姿勢情報とを用いて、同一画素でサンプリングされた前記較正物体上の位置から、1つの画素に対して2本以上の線分を求め、当該線分に対応する方向ベクトル間の外積に基づくキャリブレーション評価値を求めるキャリブレーション評価部を更に備える。選択した画像群から較正物体の姿勢ごとに、画素と較正物体上の位置との対応関係に関する情報を取得する。推定された類似度とに基づいて、前記カメラからの距離の違いが少なく、カメラに対する姿勢が異なる較正物体を撮影した3枚以上の画像群を選択する。ステップで取得された前記対応関係に関する情報と、前記姿勢推定ステップで推定された前記姿勢情報とを用いて、画素と光線との対応関係を示す光線情報を取得する光線情報取得ステップとを備え、前記姿勢推定ステップは、複数の画像間における同一画素でサンプリングされた前記較正物体上の位置が、撮影空間において一直線上に存在することを用いて前記較正物体の姿勢を推定するカメラキャリブレーション方法である。本発明の一態様は、上記カメラキャリブレーション方法をコンピュータに実行させるためのカメラキャリブレーションプログラムである。本発明の一態様は、上記カメラキャリブレーションプログラムを記録した記録媒体である。本発明によれば、カメラと被写体との間に未知の屈折層または複雑な形状の屈折層が存在する場合であっても、カメラモデルのキャリブレーションを実現することができる。【図1】第1の実施形態におけるカメラキャリブレーションを行う撮影空間を示す図である。【図2】第1の実施形態における第1キャリブレーション装置の構成を示すブロック図である。【図3】第1の実施形態における第1キャリブレーション装置10の動作を示すフローチャートである。【図4】第2の実施形態におけるカメラキャリブレーションを行う撮影空間を示す図である。【図5】第2の実施形態における第2キャリブレーション装置の構成を示すブロック図である。【図6】第2の実施形態における第2キャリブレーション装置20の動作を示すフローチャートである。【図7】第1の実施形態における第1キャリブレーション装置10又は第2の実施形態における第2キャリブレーション装置20のハードウェアの構成例を示す図である。以下、図面を参照して、本発明の実施形態におけるカメラキャリブレーション装置について説明する。(第1の実施形態)まず、第1の実施形態として、1つのカメラにおけるキャリブレーションとして、撮影空間中の光線とカメラで撮影された画像の画素とのマッピングの処理(内部キャリブレーション)について説明する。図1は、第1の実施形態におけるカメラキャリブレーションが行われる撮影空間を示す図である。図1に示す通り、カメラ1と撮影空間との間に未知の屈折層2が存在し、撮影空間中に較正物体3、3’が設置されている。ここで、較正物体3’は、較正物体3と同一物体であって、較正物体3の姿勢が変更された後の状態を示すものである。較正物体3として、どのような物体を用いても構わないが、後述する画素と較正物体3上の位置との対応関係が得られるものを使う必要がある。本実施形態においては、較正物体3として、グレイコードを表示する平面ディスプレイなどが用いられる。図2は、第1の実施形態における第1キャリブレーション装置の構成を示すブロック図である。図2に示すように、第1キャリブレーション装置10は、画像入力部11と、対応関係取得部12と、姿勢推定部13と、光線情報出力部14とを備えている。図1には、示していないが、第1キャリブレーション装置10は、カメラ1で撮影された画像を入力可能で、入力された画像に対して画像処理を行うコンピュータ端末である。画像入力部11は、較正物体3を撮影した画像(群)を入力する。対応関係取得部12は、画像入力部11により入力された画像中の画素と較正物体3上の位置とを対応付ける情報を取得する。姿勢推定部13は、複数の較正物体3、3’間の相対的な姿勢を推定する。光線情報出力部14は、画素に対して光線を対応付ける。次に、図2に示す第1キャリブレーション装置10の動作を説明する。図3は、第1の実施形態における第1キャリブレーション装置10の動作を示すフローチャートである。画像入力部11は、較正物体3の姿勢を変化させながら撮影した画像群{In,m|n=0,...,N-1,m=0,...Mn-1}を入力する(ステップS101)。ここで、入力された画像群中に含まれる較正物体3の姿勢の数をNとし、較正物体3がn番目の姿勢である場合の画像の枚数をMnとする。ここで、Nは3以上とし、Mnは画素とn番目の姿勢の較正物体3上の位置を対応付けるのに必要な画像の枚数とする。Mnは較正物体3の種類や撮影空間の大きさなどに依存する。次に、対応関係取得部12は、較正物体3の姿勢ごとに、画素と較正物体3上の位置を対応付ける(ステップS102)。具体的には、画像平面上の座標値(画素位置)と、較正物体3上で定義された座標系における座標値を対応付ける。ここでの方法は、較正物体3の種類によって異なる。較正物体3が、平面ディスプレイで構成されており、かつ、較正物体3が、座標値をエンコードしたグレイコードパターンの系列を表示している場合について説明する。画像入力部11は、グレイコードパターンを表示する較正物体3を、撮影して得た画像群を入力する。対応関係取得部12は、入力された画像群から各画素で撮影された信号の系列を求め、それをデコードすることで、その画素に対応する較正物体3上の座標値を得ることができる。グレイコードを用いた画素と較正物体3の平面上の位置との対応付けに関しては、例えば非特許文献1に詳細が記載されている。【0024】ここで、ステップS102の結果として得られる、画素kに対するn番目の姿勢の較正物体3上の点Pk,mの座標値をpk,n(k=1,...,numPixs,n=1,...,N)で表す。ここで、numPixsは、光線との対応関係を求める画素の数である。各画素と較正物体3上の座標値との対応付けた後、姿勢推定部13は、較正物体3の姿勢に関する情報を推定する(ステップS103)。姿勢推定部13において、どのように較正物体3の姿勢に関する情報を表すかは、限定されるものではない。較正物体3のある姿勢を基準として、異なる姿勢となる較正物体3’を、基準の姿勢に変換するための回転行列Rnと並進ベクトルtnとを用いる形式で表しても構わない。以下の説明では、姿勢推定部13は、n=1に対する姿勢を基準とした回転行列と並進ベクトルを用いて姿勢を表現する。【0026】この回転行列Rnと並進ベクトルtnを求める処理では、各画素でサンプリングされる光線は、撮影空間中を直進してきたものであるという性質を用いる。画素kでサンプリングされた較正物体3上の点が、撮影空間中で同一直線上に存在することを用いる。回転行列Rnと並進ベクトルtnを用いると、以下の(式1)のように、画素kに対するn番目の姿勢の較正物体3上の座標値pk,nを、1番目の姿勢に対する座標系(以下、基準座標系と呼ぶ)における座標値Pk,n[1]で表すことができる。【0027】このとき、基準座標系での線分Pk,lPk,nの方向ベクトルは以下の(式2)で与えられる。画素kでサンプリングされた較正物体3上の点が撮影空間中で同一直線上に存在する場合、姿勢iと姿勢jの方向ベクトルの外積が0となる。以下の(式3)で示される外積が0となる回転上列と並進ベクトルが求める姿勢となる。【0029】ここで、×は外積を示し、Mkは座標値pk,nのみで構成される行列、hは回転行列及び並進ベクトルで構成されるベクトルである。ここで同一直線上に存在する条件が成立するためには、3点以上の点が存在する必要がある。N≧3である必要がある。ここではN=3として説明を行うが、N>3の場合に拡張可能であることは容易に類推可能である。上記の条件は、画素ごとに得られるため、全てをまとめると下記の(式4)に示す連立方程式が得られる。姿勢推定部13は、この連立方程式を解くことで回転行列と並進ベクトルを求めて、較正物体3の姿勢を推定する。(式4)の連立方程式は、どのような方法を用いて解いても構わない。【0031】なお、(式4)に示す連立方程式を解かずに較正物体3の姿勢を求める方法もある。外積の大きさを最小化するような最適化問題を解くことで較正物体3の姿勢を推定しても構わない。較正物体3の姿勢を表すベクトルをh^(実際のハット(^)はhの上)とし、画素kでサンプリングされた較正物体3上の点によって構成される線分(2本以上の線分)の外積をgkで表すと、較正物体3の姿勢を示すベクトルhは次の(式5)に示す最小化問題を解くことで得られる。【0032】また、外積gkを用いたGの代わりに、以下の(式6)を用いて、外積のノルムg’kを用いたG’を最小化することで較正物体3の姿勢を示すベクトルhを求めても構わない。較正物体3の姿勢を示すベクトルhのノルムを用いることで外積の各成分を最小化するのではなく、全成分を効率よく最小化する。これにより、最小化に要する演算量を低下させ、較正物体3の姿勢を示す適切なベクトルhを求めることが可能となる。姿勢推定部13は、外積を用いずに方向ベクトルが一致する条件を用いて、較正物体3の姿勢を推定するようにしても構わない。画素kでサンプリングされた較正物体3上の点の方向ベクトルの差分ベクトルの単位ベクトルdkとすると、以下の(式7)、(式8)を用いた最小化問題を解くことで、較正物体3の姿勢を示すベクトルhを求めることができる。14は、各画素に対して、その画素でサンプリングされる光線を対応付けた光線情報を生成する(ステップS104)。生成された光線情報は、第1キャリブレーション装置10の出力となる。どのような形で対応付けを表現しても構わない。本実施形態における光線情報は、例えば、各画素をインデックスとし、光線を表す直線の式を返すルックアップテーブルを用いて表したものである。【0035】なお、較正物体3の姿勢を推定する処理(ステップS103)が終了した後、キャリブレーションの精度、つまり較正物体3の姿勢の推定の精度を表す評価値を求めても構わない。この評価値は、較正物体3の姿勢の推定が正しく行われたか否かを表すことのできるものであれば、どのような評価値を用いても構わない。評価値の具体例1は、画素ごとに得られる較正物体3上の点で構成される線分の外積のノルムについて、和や最大値、分散を求めて、評価値としたものである。評価値の具体例2は、画素ごとに得られる較正物体3上の点で構成される方向ベクトルの差分ベクトルのノルムについて、和や最大値、分散を求めて、評価値としたものである。評価値の具体例3は、各画素に対応付けられた光線と較正物体3上の点の距離について、和や最大値、分散を求めて、評価値としたものである。評価値の具体例4は、各画素に対応付けられた光線と較正物体3上の点の較正物体3平面上での距離について、和や最大値、分散を求めて、評価値としたものである。求めた評価値が予め定められた精度を満たさないことを表す場合、第1キャリブレーション装置10は、別の姿勢の較正物体3’を撮影した画像を追加し、更新された画像群を用いて較正物体3’の姿勢を推定する処理(ステップS103)を再度行っても構わない。【0037】なお、画像を追加する際には、どのような姿勢の較正物体3を、撮影した画像を追加しても構わない。入力されている画像群と比較し、同じ較正物体3であって画像上の較正物体3の大きさが大きく異なるような画像を追加しても構わないし、同じ較正物体3であって画像上の較正物体3の大きさは同じだが形状が異なるような画像を追加しても構わない。前者は、既に入力されている画像と比較して、画像を撮影したカメラから較正物体3までの距離が異なるような画像であることを意味する。このような画像を入力することで、より長い経路で光線の直進性を考慮したキャリブレーションが可能となる。後者の画像は、より狭い空間での光線の直進性を考慮した、より頑健なキャリブレーションを行うことが可能となる。【0038】なお、新たな画像を追加する際に、過去に取得した画像群を全て蓄積しておくのではなく、画像を入れ替えて画像の総数は変化しないようにしても構わない。画像の総数を一定に保つことで、必要なメモリ量や演算量を一定に保つことが可能となる。上記の説明では、画像入力部11より、入力された画像をすべて用いてキャリブレーション処理が行われるが、入力された画像のうち一部のみを選択して使用するようにしても構わない。画像入力部11より、入力された画像群に基づいて、カメラ1から較正物体3までの距離が大きく変化するような画像群を選択するようにしても構わないし、カメラ1から較正物体3までの距離は同程度で較正物体3の姿勢が大きく変化するような画像群を選択するようにしても構わない。【0040】なお、カメラ1から較正物体3までの距離や較正物体3の姿勢に関する情報を正確に得るためにはキャリブレーションを実施する必要がある。それらの情報は別途与えられても構わないし、画像から推定するようにしても構わない。画像上の較正物体の大きさを用いて、カメラから較正物体までの距離を推定しても構わないし、画像上での較正物体の形状を比較することで較正物体の姿勢の類似性を推定しても構わない。対応関係取得部12は、カメラ1から較正物体3までの距離の推定方法として、較正物体3を撮影した画像に対して、較正物体3が撮影されている領域の割合にしたがって、カメラ1から較正物体3までの距離を推定する。対応関係取得部12は、較正物体3を撮影した画像群に対して、較正物体3の撮影されている領域の形状の違いにしたがって、カメラ1に対する較正物体3の姿勢の類似度を推定する。次に、対応関係取得部12は、推定した距離、類似度に基づいて、カメラ1からの距離の違いが少なく、カメラ1に対する姿勢が異なる較正物体3を撮影した3枚以上の画像群を選択する。【0041】(第2の実施形態)次に、第2の実施形態として、複数のカメラ間の関係を求めるキャリブレーションについて説明する。具体的には、2つのカメラ間の相対的な位置関係を推定し、各画素にマッピングされた光線に対して、カメラ間で共通の座標系を用いた記述を求めるキャリブレーション(外部キャリブレーション)について説明する。図4は、第2の実施形態におけるカメラキャリブレーションを行う撮影空間を示す図である。図4に示すように、複数のカメラ1a~1cと、被写体となる較正物体3a、3a’、3b、3b’との間に未知の屈折層2が存在している。較正物体3a、3a’、3b、3b’は、異なる時刻に設置されていて、1度には1つの較正物体しか存在しないものとする。較正物体3a’は、較正物体3aの姿勢が変更されたものであり、同様に、較正物体3b’は、較正物体3bの姿勢が変更されたものである。較正物体3a、較正物体3bは、異なる物体であっても同じ物体であってもよい。較正物体3a、3bとして、どのような物体を用いても構わないが、画素と較正物体上の位置との対応関係が得られるものを使う必要がある。本実施形態における較正物体3a、較正物体3bは、グレイコードを表示する平面ディスプレイなどが用いられる。【0043】なお、複数のカメラ1a~1cに共通の座標系を用いた記述による光線と画素のマッピングを求める最も簡単な方法として、以下の方法が考えらえる。複数のカメラ1a~1cの各々は、第1の実施形態に示した第1キャリブレーション装置10の構成を有する。複数のカメラ1a~1cに対して、同じ較正物体の画像群を入力し、同じ画像の較正物体の姿勢を基準として光線を記述し、画素とのマッピングを求める方法である。本実施形態では、そのような方法がつかえないカメラ間においても、共通の座標系を用いた記述による光線と画素のマッピングを求める方法について説明する。上記最も簡単な方法が適用できない撮影空間として、例えば、図4に示される撮影空間がある。図4の撮影空間では、カメラ1aとカメラ1bは、共通の較正物体3aを用いて光線記述と画素からのマッピングを求めることが可能であり、カメラ1bとカメラ1cは、共通の較正物体3bを用いて光線記述と画素からのマッピングを求めることが可能である。カメラ1aとカメラ1cは、共通の較正物体を撮影することができない状況である。本実施形態では、このような図4に示される撮影空間に対して、3つのカメラ1a~1cで共通の座標系を用いた記述による光線と画素のマッピングを求める方法を説明する。図5は、第2の実施形態における第2キャリブレーション装置の構成を示すブロック図である。図5に示すように、第2キャリブレーション装置20は、光線情報入力部21と、光線情報記憶部22と、カメラ位置情報推定部23と、光線記述変換部24とを備えている。光線情報入力部21は、カメラの画素ごとに対応付けられた光線の情報(以下、光線情報とする。光線情報記憶部22は、入力されたカメラの画素ごとに対応付けられた光線情報を記憶する。カメラ位置情報推定部23は、光線情報を用いてカメラの位置関係を推定する。光線記述変換部24は、得られたカメラの位置関係に基づいて、光線に対して共通の座標系で表現した記述を求める。次に、第2の実施形態における第2キャリブレーション装置20の動作を説明する。図6は、第2の実施形態における第2キャリブレーション装置20の動作を示すフローチャートである。光線情報入力部21は、カメラ対(カメラ1aとカメラ1b又はカメラ1bとカメラ1c)に対して、カメラの画素ごとに対応付けられた光線情報を入力し、光線情報記憶部22に記憶する(ステップS201)。ここで、カメラ対ごとに入力される光線情報は、共通の座標系で記述されている。【0047】なお、カメラ対ごとに共通の座標系で記述された光線情報を求める方法は、どのような方法であってもよい。第1の実施形態で示した第1キャリブレーション装置10を用いて、同じ較正物体の画像群を入力し、同じ画像の較正物体の姿勢を基準として、各カメラにおける画素と光線のマッピングを求めることで、共通の座標系で記述された光線情報を求めることができる。【0048】つまり、本実施形態においては、光線情報入力部21は、カメラ1aとカメラ1bに対して共通の座標系で記述された光線と画素とをマッピングする光線情報を入力して、カメラ1bとカメラ1cに対して共通の座標系で記述された光線と画素とをマッピングする光線情報を入力する。次に、カメラ位置情報推定部23は、複数の異なる座標系で表現された光線の記述が与えられた画素の集合{pk|k=1,...,numCPixs}を求める(ステップS202)。この画素の集合は、カメラ1bの画素のうち、カメラ1aと共通の座標系で表された光線l12(k)へのマッピングを持つ画素の集合と、カメラ1cと共通の座標系であらわされた光線l23(k)へのマッピングを持つ画素の集合とを含む。ここで画素pkに対応するカメラ1aと共通の座標系で表された光線をl12(k)、カメラ1cと共通の座標系で表された光線をl23(k)で表す。次に、普通の座標系での光線記述が与えられた画素の集合が得られたら、カメラ位置情報推定部23は、それら座標系間の関係を推定する(ステップS203)。具体的には、下記の(式9)を満たす回転行列Rと並進ベクトルtを求める。この(式9)では、カメラ1aの光線が与えられた座標系を基準としているが、カメラ1cの光線が与えられた座標系を基準としても構わない。2004)の方法を用いて求めることができる。この時、全てのpkについて上記(式9)を満たす回転行列と並進ベクトルを求めても構わない。画素の点数が多い場合、演算量が膨大になるほか、誤った光線の情報が含まれていた場合、その影響を受けて推定の精度が低下する。そのため、ステップS203では一部の画素のみを用いて推定するようにしても構わない。一部の画素のみを用いて推定を行った場合、推定された回転行列と並進ベクトルの推定精度を求める。どのような方法を用いて推定精度を表現しても構わない。推定された回転行列と並進ベクトルを用いて、カメラ1cと共通の座標系で表現されていた較正物体3b上の点qi(k)を下記の(式10)によって変換して得られる点q’i(k)と光線l12(k)との距離の和や最大値、分散を用いても構わない。q’i(k)と光線l12(k)との較正物体上での距離の和や最大値、分散を用いても構わない。【0053】さらに、カメラ1aと共通の座標系で表現されていた較正物体3a上の点sj(k)を下記の(式11)によって変換して得られる点s’j(k)と光線l23(k)との距離の和や最大値、分散を用いても構わないし、s’j(k)と光線l23(k)との較正物体上での距離の和や最大値、分散を用いても構わない。【数10】なお、得られた推定精度が予め定めた閾値を超えていない場合は、別の画素の集合を用いて回転行列と並進ベクトルの推定をやり直す。次に、回転行列と並進ベクトルの推定が終了したら、光線記述変換部24は、得られた回転行列と並進ベクトルを用いて、光線の記述を変換することで、共通の座標系における光線と画素のマッピングを生成して出力する(ステップS204)。具体的には、以下の(式12)にしたがって、カメラ1cと共通の座標系で表された光線群{l23(m)}に対して、カメラ1aと共通の座標系で表した光線群{l12(m)}を求めることで変換が行われる。【0055】(ハードウェアの構成例)図7は、第1の実施形態における第1キャリブレーション装置10又は第2の実施形態における第2キャリブレーション装置20のハードウェアの構成例を示す図である。図7に示すように、第1キャリブレーション装置10又は第2キャリブレーション装置20を、コンピュータによって構成する場合のハードウェア構成を示すブロック図である。Unit)100と、CPU100がアクセスするプログラムやデータが格納されるRAM等のメモリ101と、カメラ等からの処理対象の画像信号を入力する画像入力部102と、カメラキャリブレーション処理をCPU100に実行させるソフトウェアプログラムであるカメラキャリブレーションプログラム105が格納されたプログラム記憶装置103と、CPU100がメモリ101にロードされたカメラキャリブレーションプログラム105を実行することにより生成された画素と光線の対応関係を出力する光線情報出力部104とが、バスで接続された構成になっている。【0056】なお、画像入力部102は、ディスク装置等により画像信号を記憶し、記憶した画像信号を読み出すことで画像信号を入力する記憶部で構成してもよい。光線情報出力部104は、ディスク装置等により画素と光線の対応関係を示す光線情報を記憶する記憶部で構成してもよい。バスで接続されたCPUやメモリや補助記憶装置などを備え、カメラキャリブレーションプログラムを実行することによってカメラキャリブレーションを備える装置として機能する。Array)等のハードウェアを用いて実現されてもよい。カメラキャリブレーションプログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。カメラキャリブレーションプログラムは、電気通信回線を介して送信されてもよい。【0057】このように、第1の実施形態における第1キャリブレーション装置10又は第2の実施形態における第2キャリブレーション装置20を、コンピュータで実現することができる。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。Array)等のハードウェアを用いて実現されるものであってもよい。以上説明したように、光線が撮影空間中で直進することを利用して、複数の姿勢で同一の較正物体を撮影した画像群から、画素と光線の対応関係を生成することにより、カメラと被写体との間に任意の屈折層(未知の屈折層または複雑な形状の屈折層)を含む場合においても、カメラのキャリブレーションを実現することができる。カメラと被写体との間に屈折層を含まない空間を通して、被写体を撮影不可能な状況においても、カメラのキャリブレーションを実現することができる。以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。本発明のカメラキャリブレーション装置、カメラキャリブレーション方法、カメラキャリブレーションプログラム及び記録媒体は、カメラと被写体との間に未知の屈折層がある場合においても、画素と光線とを対応付けを行うことが不可欠な用途に適用できる。