(57)【特許請求の範囲】
【請求項１】
屈折層を介して被写体を撮影することによって得られる画像の各画素と、前記被写体からの光線との対応付けを行うカメラキャリブレーション装置であって、
前記被写体として姿勢の異なる較正物体を撮影した画像群から、前記較正物体の姿勢ごとに、前記画素と前記較正物体上の位置との対応関係に関する情報を取得する対応関係取得部と、
前記対応関係取得部で取得された前記対応関係に関する情報を用いて、前記較正物体の姿勢を推定して姿勢情報を出力する姿勢推定部と、
前記対応関係取得部で取得された前記対応関係に関する情報と、前記姿勢推定部で推定された前記姿勢情報とを用いて、画素と光線との対応関係を示す光線情報を取得する光線情報取得部とを備え、
前記姿勢推定部は、複数の画像間における同一画素でサンプリングされた前記較正物体上の位置が、撮影空間において一直線上に存在することを用いて前記較正物体の姿勢を推定するカメラキャリブレーション装置。
【請求項２】
前記姿勢推定部は、同一画素でサンプリングされた前記較正物体上の位置から、１つの画素に対して２本以上の線分を求め、当該線分に対応する方向ベクトル間の外積を最小化するように前記較正物体の姿勢を推定する請求項１に記載のカメラキャリブレーション装置。
【請求項３】
前記対応関係に関する情報と、前記姿勢情報とを用いて、同一画素でサンプリングされた前記較正物体上の位置から、１つの画素に対して２本以上の線分を求め、当該線分に対応する方向ベクトル間の外積に基づくキャリブレーション評価値を求めるキャリブレーション評価部を更に備える請求項１または請求項２に記載のカメラキャリブレーション装置。
【請求項４】
カメラに対する姿勢の異なる前記較正物体を撮影した画像群から、前記カメラからの距離の違いが少なく、カメラに対する姿勢が異なる較正物体を撮影した３枚以上の画像群を選択する対象画像選択部を更に備え、
前記対応関係取得部は、前記対象画像選択部が選択した画像群から較正物体の姿勢ごとに、画素と較正物体上の位置との対応関係に関する情報を取得する請求項１から請求項３のいずれか一項に記載のカメラキャリブレーション装置。
【請求項５】
前記較正物体を撮影した画像に対して、前記較正物体が撮影されている領域の割合にしたがって、前記カメラから前記較正物体までの距離を推定する距離推定部と、
前記較正物体を撮影した画像群に対して、前記較正物体の撮影されている領域の形状の違いにしたがって、前記カメラに対する前記較正物体の姿勢の類似度を推定する類似度推定部とを更に備え、
前記対象画像選択部は、前記距離推定部で推定された距離と、前記類似度推定部で推定された類似度とに基づいて、前記カメラからの距離の違いが少なく、カメラに対する姿勢が異なる較正物体を撮影した３枚以上の画像群を選択する請求項４に記載のカメラキャリブレーション装置。
【請求項６】
屈折層を介して被写体を撮影することによって得られる画像の各画素と、前記被写体からの光線との対応付けを行うカメラキャリブレーション方法であって、
前記被写体として姿勢の異なる較正物体を撮影した画像群から、前記較正物体の姿勢ごとに、前記画素と前記較正物体上の位置との対応関係に関する情報を取得する対応関係取得ステップと、
前記対応関係取得ステップで取得された前記対応関係に関する情報を用いて、前記較正物体の姿勢を推定して姿勢情報を出力する姿勢推定ステップと、
前記対応関係取得ステップで取得された前記対応関係に関する情報と、前記姿勢推定ステップで推定された前記姿勢情報と用いて、画素と光線との対応関係を示す光線情報を取得する光線情報取得ステップとを備え、
前記姿勢推定ステップは、複数の画像間における同一画素でサンプリングされた前記較正物体上の位置が、撮影空間において一直線上に存在することを用いて前記較正物体の姿勢を推定するカメラキャリブレーション方法。
【請求項７】
請求項６に記載のカメラキャリブレーション方法をコンピュータに実行させるためのカメラキャリブレーションプログラム。
【請求項８】
請求項７に記載のカメラキャリブレーションプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラと被写体の間に屈折層が存在する場合におけるカメラキャリブレーション装置、カメラキャリブレーション方法、カメラキャリブレーションプログラム及び記録媒体に関する。
【背景技術】
【０００２】
従来、カメラで撮影された画像から、三次元情報として、例えば被写体の形状や、被写体とカメラとの位置関係を抽出する技術が知られている。このような技術は、ロボットビジョン、拡張現実感を提供するシステム等において、非常に重要となる技術である。このような三次元情報の抽出を行うためには、画像上の各画素と現実空間での光線の対応関係に関する情報と、複数のカメラ間の位置関係に関する情報とを取得する必要がある。そして、これらの情報を取得する処理は、カメラキャリブレーションと呼ばれている。特に、画像上の各画素と現実空間での光線の対応関係に関する情報を取得する処理は、内部キャリブレーションと呼ばれ、複数のカメラ間の位置関係に関する情報を取得する処理は、外部キャリブレーションと呼ばれている。
【０００３】
一般的なカメラキャリブレーションでは、オブジェクトと画像平面の間の写像が、ピンホールカメラモデルなど透視投影カメラモデルで表現できることを前提としている。そのような透視投影カメラモデルでは、オブジェクトからの光線は、カメラの投影中心に向かって直進しながら集束することを前提としている。そのため、カメラとオブジェクトの間に屈折層がある場合は、スネルの法則に基づき屈折層の屈折をモデル化することで、カメラキャリブレーションを実現する。そして、屈折のモデル化を行うためには、屈折層の屈折率及び位置・形状に関する情報が必要となる。しかし、予めそれらの情報を得ることは、一般的に困難であるため、屈折のモデル化を行うことができないという問題がある。また、仮に、それらの情報が得られたとしても、屈折層の形状等が複雑な場合は、屈折のモデル化の処理も複雑になるという問題がある。
【０００４】
透視投影カメラモデルとは異なるカメラモデルとして、非特許文献１で提案されているＲａｘｅｌ（ｒａｙ−ｐｉｘｅｌ）カメラモデルが存在する。Ｒａｘｅｌカメラモデルでは、画像上の各画素と三次元空間における光線とを直接対応付ける。そのため、屈折層における光線の屈折をモデル化せずに、カメラキャリブレーションにおいて、画素と光線の対応付けを求めることができる。
例えば、非特許文献２に記載の手法は、カメラとの間に屈折層を含んだ撮影対象とする空間中に、チェッカーボードなどの較正物体を設置し、画素からその較正物体平面上の点へのマッピングを表す近似関数を求めることでキャリブレーションを実現している。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Michael D. Grossbarg, Shree K. Nayar, “The Raxel Imaging Model and Ray-Based Calibration,” International Journal of Computer Vision, 61(2), pp. 119-137, 2005.
【非特許文献２】Tomohiko Yano, Shohei Nobuhara, Takashi Matsuyama, “3D Shape from Silhouettes in Water for Online Novel-View Synthesis,” 第16回 画像の認識理解シンポジウム(MIRU), 2013.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、非特許文献２に記載の手法は、近似関数で近似する精度の問題から屈折層の形状に制約があり、任意の屈折層に適用するのは困難であるという問題がある。さらに、キャリブレーションにおいて、カメラに対する較正物体の姿勢に関する情報が必要となる。そして、その姿勢に関する情報を取得するために、経路中に屈折層を含む空間に設置された較正物体を撮影すると同時に、屈折層を含まない空間に設置された別の較正物体を撮影する必要がある。つまり、非特許文献２に記載の手法は、本来対象とする空間をカメラの一部でしか撮影できないことになり、高精細な画像を取得することができないという問題がある。また、非特許文献２に記載の手法は、屈折層を含む空間および屈折層を含まない空間の両方の空間が撮影可能な状況でしか、使用できないという問題がある。
【０００７】
上記事情に鑑み、本発明は、カメラと被写体との間に未知の屈折層または複雑な形状の屈折層が存在する場合であっても、カメラモデルのキャリブレーションを実現することができるカメラキャリブレーション装置、カメラキャリブレーション方法、カメラキャリブレーションプログラム及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様は、屈折層を介して被写体を撮影することによって得られる画像の各画素と、前記被写体からの光線との対応付けを行うカメラキャリブレーション装置であって、前記被写体として姿勢の異なる較正物体を撮影した画像群から、前記較正物体の姿勢ごとに、前記画素と前記較正物体上の位置との対応関係に関する情報を取得する対応関係取得部と、前記対応関係取得部で取得された前記対応関係に関する情報を用いて、前記較正物体の姿勢を推定して姿勢情報を出力する姿勢推定部と、前記対応関係取得部で取得された前記対応関係に関する情報と、前記姿勢推定部で推定された前記姿勢情報とを用いて、画素と光線との対応関係を示す光線情報を取得する光線情報取得部とを備え、前記姿勢推定部は、複数の画像間における同一画素でサンプリングされた前記較正物体上の位置が、撮影空間において一直線上に存在することを用いて前記較正物体の姿勢を推定するカメラキャリブレーション装置である。
【０００９】
本発明の一態様は、前記姿勢推定部は、同一画素でサンプリングされた前記較正物体上の位置から、１つの画素に対して２本以上の線分を求め、当該線分に対応する方向ベクトル間の外積を最小化するように前記較正物体の姿勢を推定する。
【００１０】
本発明の一態様は、前記対応関係に関する情報と、前記姿勢情報とを用いて、同一画素でサンプリングされた前記較正物体上の位置から、１つの画素に対して２本以上の線分を求め、当該線分に対応する方向ベクトル間の外積に基づくキャリブレーション評価値を求めるキャリブレーション評価部を更に備える。
【００１１】
本発明の一態様は、カメラに対する姿勢の異なる前記較正物体を撮影した画像群から、前記カメラからの距離の違いが少なく、カメラに対する姿勢が異なる較正物体を撮影した３枚以上の画像群を選択する対象画像選択部を更に備え、前記対応関係取得部は、前記対象画像選択部が選択した画像群から較正物体の姿勢ごとに、画素と較正物体上の位置との対応関係に関する情報を取得する。
【００１２】
本発明の一態様は、前記較正物体を撮影した画像に対して、前記較正物体が撮影されている領域の割合にしたがって、前記カメラから前記較正物体までの距離を推定する距離推定部と、前記較正物体を撮影した画像群に対して、前記較正物体の撮影されている領域の形状の違いにしたがって、前記カメラに対する前記較正物体の姿勢の類似度を推定する類似度推定部とを更に備え、前記対象画像選択部は、前記距離推定部で推定された距離と、前記類似度推定部で推定された類似度とに基づいて、前記カメラからの距離の違いが少なく、カメラに対する姿勢が異なる較正物体を撮影した３枚以上の画像群を選択する。
【００１３】
本発明の一態様は、屈折層を介して被写体を撮影することによって得られる画像の各画素と、前記被写体からの光線との対応付けを行うカメラキャリブレーション方法であって、前記被写体として姿勢の異なる較正物体を撮影した画像群から、前記較正物体の姿勢ごとに、前記画素と前記較正物体上の位置との対応関係に関する情報を取得する対応関係取得ステップと、前記対応関係取得ステップで取得された前記対応関係に関する情報を用いて、前記較正物体の姿勢を推定して姿勢情報を出力する姿勢推定ステップと、前記対応関係取得ステップで取得された前記対応関係に関する情報と、前記姿勢推定ステップで推定された前記姿勢情報とを用いて、画素と光線との対応関係を示す光線情報を取得する光線情報取得ステップとを備え、前記姿勢推定ステップは、複数の画像間における同一画素でサンプリングされた前記較正物体上の位置が、撮影空間において一直線上に存在することを用いて前記較正物体の姿勢を推定するカメラキャリブレーション方法である。
【００１４】
本発明の一態様は、上記カメラキャリブレーション方法をコンピュータに実行させるためのカメラキャリブレーションプログラムである。
【００１５】
本発明の一態様は、上記カメラキャリブレーションプログラムを記録した記録媒体である。
【発明の効果】
【００１６】
本発明によれば、カメラと被写体との間に未知の屈折層または複雑な形状の屈折層が存在する場合であっても、カメラモデルのキャリブレーションを実現することができる。
【図面の簡単な説明】
【００１７】
【図１】第１の実施形態におけるカメラキャリブレーションを行う撮影空間を示す図である。
【図２】第１の実施形態における第１キャリブレーション装置の構成を示すブロック図である。
【図３】第１の実施形態における第１キャリブレーション装置１０の動作を示すフローチャートである。
【図４】第２の実施形態におけるカメラキャリブレーションを行う撮影空間を示す図である。
【図５】第２の実施形態における第２キャリブレーション装置の構成を示すブロック図である。
【図６】第２の実施形態における第２キャリブレーション装置２０の動作を示すフローチャートである。
【図７】第１の実施形態における第１キャリブレーション装置１０又は第２の実施形態における第２キャリブレーション装置２０のハードウェアの構成例を示す図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照して、本発明の実施形態におけるカメラキャリブレーション装置について説明する。
（第１の実施形態）
まず、第１の実施形態として、１つのカメラにおけるキャリブレーションとして、撮影空間中の光線とカメラで撮影された画像の画素とのマッピングの処理（内部キャリブレーション）について説明する。図１は、第１の実施形態におけるカメラキャリブレーションが行われる撮影空間を示す図である。図１に示す通り、カメラ１と撮影空間との間に未知の屈折層２が存在し、撮影空間中に較正物体３、３’が設置されている。ここで、較正物体３’は、較正物体３と同一物体であって、較正物体３の姿勢が変更された後の状態を示すものである。なお、較正物体３として、どのような物体を用いても構わないが、後述する画素と較正物体３上の位置との対応関係が得られるものを使う必要がある。本実施形態においては、較正物体３として、グレイコードを表示する平面ディスプレイなどが用いられる。
【００１９】
図２は、第１の実施形態における第１キャリブレーション装置の構成を示すブロック図である。図２に示すように、第１キャリブレーション装置１０は、画像入力部１１と、対応関係取得部１２と、姿勢推定部１３と、光線情報出力部１４とを備えている。図１には、示していないが、第１キャリブレーション装置１０は、カメラ１で撮影された画像を入力可能で、入力された画像に対して画像処理を行うコンピュータ端末である。
【００２０】
画像入力部１１は、較正物体３を撮影した画像（群）を入力する。対応関係取得部１２は、画像入力部１１により入力された画像中の画素と較正物体３上の位置とを対応付ける情報を取得する。姿勢推定部１３は、複数の較正物体３、３’間の相対的な姿勢を推定する。光線情報出力部１４は、画素に対して光線を対応付ける。
【００２１】
次に、図２に示す第１キャリブレーション装置１０の動作を説明する。図３は、第１の実施形態における第１キャリブレーション装置１０の動作を示すフローチャートである。
まず、画像入力部１１は、較正物体３の姿勢を変化させながら撮影した画像群｛Ｉn,m｜ｎ＝０，…，Ｎ−１，ｍ＝０，…Ｍn−１｝を入力する（ステップＳ１０１）。ここで、入力された画像群中に含まれる較正物体３の姿勢の数をＮとし、較正物体３がｎ番目の姿勢である場合の画像の枚数をＭnとする。ここで、Ｎは３以上とし、Ｍnは画素とｎ番目の姿勢の較正物体３上の位置を対応付けるのに必要な画像の枚数とする。Ｍnは較正物体３の種類や撮影空間の大きさなどに依存する。
【００２２】
次に、対応関係取得部１２は、較正物体３の姿勢ごとに、画素と較正物体３上の位置を対応付ける（ステップＳ１０２）。具体的には、画像平面上の座標値（画素位置）と、較正物体３上で定義された座標系における座標値を対応付ける。ここでの方法は、較正物体３の種類によって異なる。
【００２３】
例えば、較正物体３が、平面ディスプレイで構成されており、かつ、較正物体３が、座標値をエンコードしたグレイコードパターンの系列を表示している場合について説明する。画像入力部１１は、グレイコードパターンを表示する較正物体３を、撮影して得た画像群を入力する。対応関係取得部１２は、入力された画像群から各画素で撮影された信号の系列を求め、それをデコードすることで、その画素に対応する較正物体３上の座標値を得ることができる。グレイコードを用いた画素と較正物体３の平面上の位置との対応付けに関しては、例えば非特許文献１に詳細が記載されている。
【００２４】
ここで、ステップＳ１０２の結果として得られる、画素ｋに対するｎ番目の姿勢の較正物体３上の点Ｐｋ,mの座標値をｐｋ,ｎ（ｋ＝１，…，ｎｕｍＰｉｘｓ，ｎ＝１，…，Ｎ）で表す。ここで、ｎｕｍＰｉｘｓは、光線との対応関係を求める画素の数である。
【００２５】
各画素と較正物体３上の座標値との対応付けた後、姿勢推定部１３は、較正物体３の姿勢に関する情報を推定する（ステップＳ１０３）。姿勢推定部１３において、どのように較正物体３の姿勢に関する情報を表すかは、限定されるものではない。例えば、較正物体３のある姿勢を基準として、異なる姿勢となる較正物体３’を、基準の姿勢に変換するための回転行列Ｒｎと並進ベクトルｔｎとを用いる形式で表しても構わない。以下の説明では、姿勢推定部１３は、ｎ＝１に対する姿勢を基準とした回転行列と並進ベクトルを用いて姿勢を表現する。
【００２６】
この回転行列Ｒｎと並進ベクトルｔｎを求める処理では、各画素でサンプリングされる光線は、撮影空間中を直進してきたものであるという性質を用いる。つまり、画素ｋでサンプリングされた較正物体３上の点が、撮影空間中で同一直線上に存在することを用いる。回転行列Ｒｎと並進ベクトルｔｎを用いると、以下の（式１）のように、画素ｋに対するｎ番目の姿勢の較正物体３上の座標値ｐｋ,ｎを、１番目の姿勢に対する座標系（以下、基準座標系と呼ぶ）における座標値Ｐｋ,ｎ[1]で表すことができる。
【数１】
0006384961.tif 000002
【００２７】
このとき、基準座標系での線分Ｐｋ,ｌＰｋ,ｎの方向ベクトルは以下の（式２）で与えられる。
【数２】
0006384961.tif 000003
【００２８】
画素ｋでサンプリングされた較正物体３上の点が撮影空間中で同一直線上に存在する場合、姿勢ｉと姿勢ｊの方向ベクトルの外積が０となる。つまり、以下の（式３）で示される外積が０となる回転上列と並進ベクトルが求める姿勢となる。
【数３】
0006384961.tif 000004
【００２９】
ここで、×は外積を示し、Ｍｋは座標値ｐｋ,ｎのみで構成される行列、ｈは回転行列及び並進ベクトルで構成されるベクトルである。なお、ここで同一直線上に存在する条件が成立するためには、３点以上の点が存在する必要がある。つまり、Ｎ≧３である必要がある。ここではＮ＝３として説明を行うが、Ｎ＞３の場合に拡張可能であることは容易に類推可能である。
【００３０】
上記の条件は、画素ごとに得られるため、全てをまとめると下記の（式４）に示す連立方程式が得られる。
【数４】
0006384961.tif 000005
姿勢推定部１３は、この連立方程式を解くことで回転行列と並進ベクトルを求めて、較正物体３の姿勢を推定する。なお、（式４）の連立方程式は、どのような方法を用いて解いても構わない。
【００３１】
なお、（式４）に示す連立方程式を解かずに較正物体３の姿勢を求める方法もある。例えば、外積の大きさを最小化するような最適化問題を解くことで較正物体３の姿勢を推定しても構わない。つまり、較正物体３の姿勢を表すベクトルをｈ＾（実際のハット（＾）はｈの上）とし、画素ｋでサンプリングされた較正物体３上の点によって構成される線分（２本以上の線分）の外積をｇｋで表すと、較正物体３の姿勢を示すベクトルｈは次の（式５）に示す最小化問題を解くことで得られる。
【数５】
0006384961.tif 000006
【００３２】
また、外積ｇｋを用いたＧの代わりに、以下の（式６）を用いて、外積のノルムｇ’ｋを用いたＧ’を最小化することで較正物体３の姿勢を示すベクトルｈを求めても構わない。較正物体３の姿勢を示すベクトルｈのノルムを用いることで外積の各成分を最小化するのではなく、全成分を効率よく最小化する。これにより、最小化に要する演算量を低下させ、較正物体３の姿勢を示す適切なベクトルｈを求めることが可能となる。
【数６】
0006384961.tif 000007
【００３３】
更に、姿勢推定部１３は、外積を用いずに方向ベクトルが一致する条件を用いて、較正物体３の姿勢を推定するようにしても構わない。例えば、画素ｋでサンプリングされた較正物体３上の点の方向ベクトルの差分ベクトルの単位ベクトルｄｋとすると、以下の（式７）、（式８）を用いた最小化問題を解くことで、較正物体３の姿勢を示すベクトルｈを求めることができる。
【数７】
0006384961.tif 000008
【００３４】
較正物体３の姿勢に関する情報を推定した後、光線情報出力部１４は、各画素に対して、その画素でサンプリングされる光線を対応付けた光線情報を生成する（ステップＳ１０４）。生成された光線情報は、第１キャリブレーション装置１０の出力となる。なお、どのような形で対応付けを表現しても構わない。本実施形態における光線情報は、例えば、各画素をインデックスとし、光線を表す直線の式を返すルックアップテーブルを用いて表したものである。
【００３５】
なお、較正物体３の姿勢を推定する処理（ステップＳ１０３）が終了した後、キャリブレーションの精度、つまり較正物体３の姿勢の推定の精度を表す評価値を求めても構わない。この評価値は、較正物体３の姿勢の推定が正しく行われたか否かを表すことのできるものであれば、どのような評価値を用いても構わない。評価値の具体例１は、画素ごとに得られる較正物体３上の点で構成される線分の外積のノルムについて、和や最大値、分散を求めて、評価値としたものである。また、評価値の具体例２は、画素ごとに得られる較正物体３上の点で構成される方向ベクトルの差分ベクトルのノルムについて、和や最大値、分散を求めて、評価値としたものである。更に、評価値の具体例３は、各画素に対応付けられた光線と較正物体３上の点の距離について、和や最大値、分散を求めて、評価値としたものである。更に、評価値の具体例４は、各画素に対応付けられた光線と較正物体３上の点の較正物体３平面上での距離について、和や最大値、分散を求めて、評価値としたものである。
【００３６】
求めた評価値が予め定められた精度を満たさないことを表す場合、第１キャリブレーション装置１０は、別の姿勢の較正物体３’を撮影した画像を追加し、更新された画像群を用いて較正物体３’の姿勢を推定する処理（ステップＳ１０３）を再度行っても構わない。
【００３７】
なお、画像を追加する際には、どのような姿勢の較正物体３を、撮影した画像を追加しても構わない。例えば、既に入力されている画像群と比較し、同じ較正物体３であって画像上の較正物体３の大きさが大きく異なるような画像を追加しても構わないし、同じ較正物体３であって画像上の較正物体３の大きさは同じだが形状が異なるような画像を追加しても構わない。前者は、既に入力されている画像と比較して、画像を撮影したカメラから較正物体３までの距離が異なるような画像であることを意味する。このような画像を入力することで、より長い経路で光線の直進性を考慮したキャリブレーションが可能となる。一方、後者の画像は、より狭い空間での光線の直進性を考慮した、より頑健なキャリブレーションを行うことが可能となる。
【００３８】
なお、新たな画像を追加する際に、過去に取得した画像群を全て蓄積しておくのではなく、画像を入れ替えて画像の総数は変化しないようにしても構わない。画像の総数を一定に保つことで、必要なメモリ量や演算量を一定に保つことが可能となる。
【００３９】
上記の説明では、画像入力部１１より、入力された画像をすべて用いてキャリブレーション処理が行われるが、入力された画像のうち一部のみを選択して使用するようにしても構わない。例えば、画像入力部１１より、入力された画像群に基づいて、カメラ１から較正物体３までの距離が大きく変化するような画像群を選択するようにしても構わないし、カメラ１から較正物体３までの距離は同程度で較正物体３の姿勢が大きく変化するような画像群を選択するようにしても構わない。
【００４０】
なお、カメラ１から較正物体３までの距離や較正物体３の姿勢に関する情報を正確に得るためにはキャリブレーションを実施する必要がある。それらの情報は別途与えられても構わないし、画像から推定するようにしても構わない。例えば、画像上の較正物体の大きさを用いて、カメラから較正物体までの距離を推定しても構わないし、画像上での較正物体の形状を比較することで較正物体の姿勢の類似性を推定しても構わない。例えば、対応関係取得部１２は、カメラ１から較正物体３までの距離の推定方法として、較正物体３を撮影した画像に対して、較正物体３が撮影されている領域の割合にしたがって、カメラ１から較正物体３までの距離を推定する。また、対応関係取得部１２は、較正物体３を撮影した画像群に対して、較正物体３の撮影されている領域の形状の違いにしたがって、カメラ１に対する較正物体３の姿勢の類似度を推定する。次に、対応関係取得部１２は、推定した距離、類似度に基づいて、カメラ１からの距離の違いが少なく、カメラ１に対する姿勢が異なる較正物体３を撮影した３枚以上の画像群を選択する。
【００４１】
（第２の実施形態）
次に、第２の実施形態として、複数のカメラ間の関係を求めるキャリブレーションについて説明する。具体的には、２つのカメラ間の相対的な位置関係を推定し、各画素にマッピングされた光線に対して、カメラ間で共通の座標系を用いた記述を求めるキャリブレーション（外部キャリブレーション）について説明する。
【００４２】
図４は、第２の実施形態におけるカメラキャリブレーションを行う撮影空間を示す図である。図４に示すように、複数のカメラ１ａ〜１ｃと、被写体となる較正物体３ａ、３ａ’、３ｂ、３ｂ’との間に未知の屈折層２が存在している。較正物体３ａ、３ａ’、３ｂ、３ｂ’は、異なる時刻に設置されていて、１度には１つの較正物体しか存在しないものとする。例えば、較正物体３ａ’は、較正物体３ａの姿勢が変更されたものであり、同様に、較正物体３ｂ’は、較正物体３ｂの姿勢が変更されたものである。なお、較正物体３ａ、較正物体３ｂは、異なる物体であっても同じ物体であってもよい。また、較正物体３ａ、３ｂとして、どのような物体を用いても構わないが、画素と較正物体上の位置との対応関係が得られるものを使う必要がある。本実施形態における較正物体３ａ、較正物体３ｂは、グレイコードを表示する平面ディスプレイなどが用いられる。
【００４３】
なお、複数のカメラ１ａ〜１ｃに共通の座標系を用いた記述による光線と画素のマッピングを求める最も簡単な方法として、以下の方法が考えらえる。まず、複数のカメラ１ａ〜１ｃの各々は、第１の実施形態に示した第１キャリブレーション装置１０の構成を有する。そして、複数のカメラ１ａ〜１ｃに対して、同じ較正物体の画像群を入力し、同じ画像の較正物体の姿勢を基準として光線を記述し、画素とのマッピングを求める方法である。本実施形態では、そのような方法がつかえないカメラ間においても、共通の座標系を用いた記述による光線と画素のマッピングを求める方法について説明する。
【００４４】
上記最も簡単な方法が適用できない撮影空間として、例えば、図４に示される撮影空間がある。図４の撮影空間では、カメラ１ａとカメラ１ｂは、共通の較正物体３ａを用いて光線記述と画素からのマッピングを求めることが可能であり、カメラ１ｂとカメラ１ｃは、共通の較正物体３ｂを用いて光線記述と画素からのマッピングを求めることが可能である。しかし、カメラ１ａとカメラ１ｃは、共通の較正物体を撮影することができない状況である。本実施形態では、このような図４に示される撮影空間に対して、３つのカメラ１ａ〜１ｃで共通の座標系を用いた記述による光線と画素のマッピングを求める方法を説明する。
【００４５】
図５は、第２の実施形態における第２キャリブレーション装置の構成を示すブロック図である。図５に示すように、第２キャリブレーション装置２０は、光線情報入力部２１と、光線情報記憶部２２と、カメラ位置情報推定部２３と、光線記述変換部２４とを備えている。
光線情報入力部２１は、カメラの画素ごとに対応付けられた光線の情報（以下、光線情報とする。）を入力する。光線情報記憶部２２は、入力されたカメラの画素ごとに対応付けられた光線情報を記憶する。カメラ位置情報推定部２３は、光線情報を用いてカメラの位置関係を推定する。光線記述変換部２４は、得られたカメラの位置関係に基づいて、光線に対して共通の座標系で表現した記述を求める。
【００４６】
次に、第２の実施形態における第２キャリブレーション装置２０の動作を説明する。図６は、第２の実施形態における第２キャリブレーション装置２０の動作を示すフローチャートである。
まず、光線情報入力部２１は、カメラ対（カメラ１ａとカメラ１ｂ又はカメラ１ｂとカメラ１ｃ）に対して、カメラの画素ごとに対応付けられた光線情報を入力し、光線情報記憶部２２に記憶する（ステップＳ２０１）。ここで、カメラ対ごとに入力される光線情報は、共通の座標系で記述されている。
【００４７】
なお、カメラ対ごとに共通の座標系で記述された光線情報を求める方法は、どのような方法であってもよい。例えば、第１の実施形態で示した第１キャリブレーション装置１０を用いて、同じ較正物体の画像群を入力し、同じ画像の較正物体の姿勢を基準として、各カメラにおける画素と光線のマッピングを求めることで、共通の座標系で記述された光線情報を求めることができる。
【００４８】
つまり、本実施形態においては、光線情報入力部２１は、カメラ１ａとカメラ１ｂに対して共通の座標系で記述された光線と画素とをマッピングする光線情報を入力して、カメラ１ｂとカメラ１ｃに対して共通の座標系で記述された光線と画素とをマッピングする光線情報を入力する。
【００４９】
次に、カメラ位置情報推定部２３は、複数の異なる座標系で表現された光線の記述が与えられた画素の集合｛ｐｋ｜ｋ＝１，…，ｎｕｍＣＰｉｘｓ｝を求める（ステップＳ２０２）。この画素の集合は、カメラ１ｂの画素のうち、カメラ１ａと共通の座標系で表された光線ｌ１２（ｋ）へのマッピングを持つ画素の集合と、カメラ１ｃと共通の座標系であらわされた光線ｌ２３（ｋ）へのマッピングを持つ画素の集合とを含む。ここで画素ｐｋに対応するカメラ１ａと共通の座標系で表された光線をｌ１２（ｋ）、カメラ１ｃと共通の座標系で表された光線をｌ２３（ｋ）で表す。
【００５０】
次に、普通の座標系での光線記述が与えられた画素の集合が得られたら、カメラ位置情報推定部２３は、それら座標系間の関係を推定する（ステップＳ２０３）。具体的には、下記の（式９）を満たす回転行列Ｒと並進ベクトルｔを求める。なお、この（式９）では、カメラ１ａの光線が与えられた座標系を基準としているが、カメラ１ｃの光線が与えられた座標系を基準としても構わない。
【数８】
0006384961.tif 000009
【００５１】
回転行列Ｒと並進ベクトルｔはどのような方法を用いて求めても構わないが、例えば、参考文献（B. Kamgar-Parsi and B. Kamgar-Parsi, "Algorithms for matching 3D line sets," TPAMI, vol.26, No. 5, pp.582−593, May 2004）の方法を用いて求めることができる。この時、全てのｐｋについて上記（式９）を満たす回転行列と並進ベクトルを求めても構わない。しかし、画素の点数が多い場合、演算量が膨大になるほか、誤った光線の情報が含まれていた場合、その影響を受けて推定の精度が低下する。そのため、ステップＳ２０３では一部の画素のみを用いて推定するようにしても構わない。
【００５２】
一部の画素のみを用いて推定を行った場合、推定された回転行列と並進ベクトルの推定精度を求める。どのような方法を用いて推定精度を表現しても構わない。例えば、推定された回転行列と並進ベクトルを用いて、カメラ１ｃと共通の座標系で表現されていた較正物体３ｂ上の点ｑｉ（ｋ）を下記の（式１０）によって変換して得られる点ｑ’ｉ（ｋ）と光線ｌ１２（ｋ）との距離の和や最大値、分散を用いても構わない。また、ｑ’ｉ（ｋ）と光線ｌ１２（ｋ）との較正物体上での距離の和や最大値、分散を用いても構わない。
【数９】
0006384961.tif 000010
【００５３】
さらに、カメラ１ａと共通の座標系で表現されていた較正物体３ａ上の点ｓｊ（ｋ）を下記の（式１１）によって変換して得られる点ｓ’ｊ（ｋ）と光線ｌ２３（ｋ）との距離の和や最大値、分散を用いても構わないし、ｓ’ｊ（ｋ）と光線ｌ２３（ｋ）との較正物体上での距離の和や最大値、分散を用いても構わない。
【数１０】
0006384961.tif 000011
なお、得られた推定精度が予め定めた閾値を超えていない場合は、別の画素の集合を用いて回転行列と並進ベクトルの推定をやり直す。
【００５４】
次に、回転行列と並進ベクトルの推定が終了したら、光線記述変換部２４は、得られた回転行列と並進ベクトルを用いて、光線の記述を変換することで、共通の座標系における光線と画素のマッピングを生成して出力する（ステップＳ２０４）。具体的には、以下の（式１２）にしたがって、カメラ１ｃと共通の座標系で表された光線群｛ｌ２３（ｍ）｝に対して、カメラ１ａと共通の座標系で表した光線群｛ｌ１２（ｍ）｝を求めることで変換が行われる。
【数１１】
0006384961.tif 000012
【００５５】
（ハードウェアの構成例）
図７は、第１の実施形態における第１キャリブレーション装置１０又は第２の実施形態における第２キャリブレーション装置２０のハードウェアの構成例を示す図である。
図７に示すように、第１キャリブレーション装置１０又は第２キャリブレーション装置２０を、コンピュータによって構成する場合のハードウェア構成を示すブロック図である。第１キャリブレーション装置１０又は第２キャリブレーション装置２０は、プログラムを実行するＣＰＵ（Central Processing Unit）１００と、ＣＰＵ１００がアクセスするプログラムやデータが格納されるＲＡＭ等のメモリ１０１と、カメラ等からの処理対象の画像信号を入力する画像入力部１０２と、カメラキャリブレーション処理をＣＰＵ１００に実行させるソフトウェアプログラムであるカメラキャリブレーションプログラム１０５が格納されたプログラム記憶装置１０３と、ＣＰＵ１００がメモリ１０１にロードされたカメラキャリブレーションプログラム１０５を実行することにより生成された画素と光線の対応関係を出力する光線情報出力部１０４とが、バスで接続された構成になっている。
【００５６】
なお、画像入力部１０２は、ディスク装置等により画像信号を記憶し、記憶した画像信号を読み出すことで画像信号を入力する記憶部で構成してもよい。また、光線情報出力部１０４は、ディスク装置等により画素と光線の対応関係を示す光線情報を記憶する記憶部で構成してもよい。また、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、カメラキャリブレーションプログラムを実行することによってカメラキャリブレーションを備える装置として機能する。なお、カメラキャリブレーションの各機能の全て又は一部は、ＡＳＩＣ（Application Specific Integrated Circuit）やＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されてもよい。カメラキャリブレーションプログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。カメラキャリブレーションプログラムは、電気通信回線を介して送信されてもよい。
【００５７】
このように、第１の実施形態における第１キャリブレーション装置１０又は第２の実施形態における第２キャリブレーション装置２０を、コンピュータで実現することができる。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、ＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されるものであってもよい。
【００５８】
以上説明したように、光線が撮影空間中で直進することを利用して、複数の姿勢で同一の較正物体を撮影した画像群から、画素と光線の対応関係を生成することにより、カメラと被写体との間に任意の屈折層（未知の屈折層または複雑な形状の屈折層）を含む場合においても、カメラのキャリブレーションを実現することができる。また、カメラと被写体との間に屈折層を含まない空間を通して、被写体を撮影不可能な状況においても、カメラのキャリブレーションを実現することができる。
【００５９】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【００６０】
本発明のカメラキャリブレーション装置、カメラキャリブレーション方法、カメラキャリブレーションプログラム及び記録媒体は、カメラと被写体との間に未知の屈折層がある場合においても、画素と光線とを対応付けを行うことが不可欠な用途に適用できる。
【符号の説明】
【００６１】
１、１ａ、１ｂ、１ｃ…カメラ、  ２…屈折層、  ３、３’、３ａ、３ａ’、３ｂ、３ｂ’…較正物体、  １０…第１キャリブレーション装置、  １１…画像入力部、  １２…対応関係取得部、  １３…姿勢推定部、  １４…光線情報出力部、  ２０…第２キャリブレーション装置、  ２１…光線情報入力部、  ２２…光線情報記憶部、  ２３…カメラ位置情報推定部、  ２４…光線記述変換部
【図１】
0006384961.tif 000013
【図２】
0006384961.tif 000014
【図３】
0006384961.tif 000015
【図４】
0006384961.tif 000016
【図５】
0006384961.tif 000017
【図６】
0006384961.tif 000018
【図７】
0006384961.tif 000019