(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.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記非特許文献２に記載の手法は、近似関数で近似する精度の問題から屈折層の形状に制約があり、任意の屈折層に適用するのは困難であるという問題がある。さらに、キャリブレーションにおいて、カメラに対する較正物体の姿勢に関する情報が必要となる。そして、その姿勢に関する情報を取得するために、経路中に屈折層を含む空間に設置された較正物体を撮影すると同時に、屈折層を含まない空間に設置された別の較正物体を撮影する必要がある。つまり、非特許文献２に記載の手法は、本来対象とする空間をカメラの一部でしか撮影できないことになり、高精細な画像を取得することができないという問題がある。また、非特許文献２に記載の手法は、屈折層を含む空間および屈折層を含まない空間の両方の空間が撮影可能な状況でしか、使用できないという問題がある。
【０００７】
上記事情に鑑み、本発明は、カメラと被写体との間に未知の屈折層または複雑な形状の屈折層が存在する場合であっても、カメラモデルのキャリブレーションを実現することができるカメラキャリブレーション方法、カメラキャリブレーション装置及びカメラキャリブレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様は、屈折層を介して被写体を撮影することによって得られる画像の各画素と、前記被写体からの光線との対応付けを行うカメラキャリブレーション方法であって、前記被写体として姿勢の異なる較正物体を撮影した画像群から、前記較正物体の姿勢ごとに、前記画素と前記較正物体上の位置との対応関係に関する情報を取得する対応関係取得ステップと、前記姿勢の異なる較正物体が、撮影空間において交わる交線に対応する画素群を検出する交線検出ステップと、前記交線検出ステップで検出された前記交線における前記対応関係取得ステップで取得された前記対応関係に関する情報を用いて、前記較正物体の姿勢を推定して姿勢情報を出力する姿勢推定ステップと、前記対応関係取得ステップで取得された前記対応関係に関する情報と、前記姿勢推定ステップで推定された前記姿勢情報とを用いて、画素と前記撮影空間中の光線との対応関係を示す光線情報を取得する光線情報取得ステップとを有するカメラキャリブレーション方法である。
【０００９】
本発明の一態様は、上記のカメラキャリブレーション方法であって、前記姿勢推定ステップにおいて、前記交線が２つの前記較正物体上で定義されることを用いて前記較正物体の姿勢を推定する。
【００１０】
本発明の一態様は、上記のカメラキャリブレーション方法であって、前記姿勢推定ステップにおいて、複数の前記交線が前記撮影空間上において１点で交わることを用いて前記較正物体の姿勢を推定する。
【００１１】
本発明の一態様は、上記のカメラキャリブレーション方法であって、前記交線検出ステップにおいて、前記異なる姿勢の較正物体を撮影した画像間で、同じ位置の画素における較正平面密度が同じ場合に、当該画素を前記交線が存在する画素として検出する。
【００１２】
本発明の一態様は、上記のカメラキャリブレーション方法であって、前記対応関係取得ステップで取得した前記対応関係に関する情報と、前記姿勢推定ステップで推定した前記較正物体の姿勢とを用いて、前記較正物体の姿勢の推定の評価値を取得する評価値取得ステップをさらに有する。
【００１３】
本発明の一態様は、上記のカメラキャリブレーション方法であって、前記評価値取得ステップにおいて、同一画素でサンプリングされた前記較正物体上の位置から、１つの画素に対して２本以上の線分を求め、当該線分に対応する方向ベクトル間の外積を用いて、前記較正物体の姿勢の推定の評価値を取得する。
【００１４】
本発明の一態様は、屈折層を介して被写体を撮影することによって得られる画像の各画素と、前記被写体からの光線との対応付けを行うカメラキャリブレーション装置であって、前記被写体として姿勢の異なる較正物体を撮影した画像群から、前記較正物体の姿勢ごとに、前記画素と前記較正物体上の位置との対応関係に関する情報を取得する対応関係取得部と、前記姿勢の異なる較正物体が、撮影空間において交わる交線に対応する画素群を検出する交線検出部と、前記交線検出部で検出された前記交線における前記対応関係取得部で取得された前記対応関係に関する情報を用いて、前記較正物体の姿勢を推定して姿勢情報を出力する姿勢推定部と、前記対応関係取得部で取得された前記対応関係に関する情報と、前記姿勢推定部で推定された前記姿勢情報とを用いて、画素と前記撮影空間中の光線との対応関係を示す光線情報を取得する光線情報取得部とを備えるカメラキャリブレーション装置である。
【００１５】
本発明の一態様は、上記カメラキャリブレーション方法をコンピュータに実行させるためのカメラキャリブレーションプログラムである。
【発明の効果】
【００１６】
本発明によれば、カメラと被写体との間に未知の屈折層または複雑な形状の屈折層が存在する場合であっても、カメラモデルのキャリブレーションを実現することができる。
【図面の簡単な説明】
【００１７】
【図１】本実施形態におけるカメラキャリブレーションを行う撮影空間を示す図である。
【図２】本実施形態におけるカメラキャリブレーション装置の構成を示すブロック図である。
【図３】本実施形態におけるカメラキャリブレーション装置１０の動作を示すフローチャートである。
【図４】較正物体３の姿勢を推定する第１の方法を説明するための図である。
【図５】較正物体３の姿勢を推定する第２の方法を説明するための図である。
【図６】本実施形態におけるカメラキャリブレーション装置１０のハードウェアの構成例を示す図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照して、本発明の実施形態におけるカメラキャリブレーション装置について説明する。
まず、１つのカメラにおけるキャリブレーションとして、撮影空間中の光線とカメラで撮影された画像の画素とのマッピングの処理（内部キャリブレーション）について説明する。図１は、本実施形態におけるカメラキャリブレーションが行われる撮影空間を示す図である。図１に示す通り、カメラ１と撮影空間との間に未知の屈折層２が存在し、撮影空間中に較正物体３または較正物体３’が配置されている。ここで、較正物体３’は、較正物体３と同一物体であって、較正物体３の姿勢が変更された後の状態を示すものである。なお、較正物体３として、どのような物体を用いても構わないが、後述するように、画素と較正物体３上の位置との対応関係が得られるものを使う必要がある。本実施形態においては、較正物体３として、グレイコードを表示する平面ディスプレイを用いる。
【００１９】
図２は、本実施形態におけるカメラキャリブレーション装置の構成を示すブロック図である。図２に示すように、カメラキャリブレーション装置１０は、画像入力部１１と、対応関係取得部１２と、交線検出部１３と、姿勢推定部１４と、光線情報出力部１５とを備えている。図１には、示していないが、カメラキャリブレーション装置１０は、カメラ１で撮影された画像を入力可能で、入力された画像に対して画像処理を行うコンピュータ端末である。
【００２０】
画像入力部１１は、較正物体３、３’を撮影した画像（群）を入力する。対応関係取得部１２は、画像入力部１１により入力された画像中の画素と較正物体３上の位置とを対応付ける情報を取得する。交線検出部１３は、姿勢の異なる較正物体３と較正物体３’とが撮影空間中で構成する交線を画像上で検出する。姿勢推定部１４は、複数の較正物体３、３’間の相対的な姿勢を推定する。光線情報出力部１５は、対応関係取得部１２で取得した情報と、姿勢推定部１４で推定した複数の較正物体３、３’の姿勢に関する情報とを用いて、各画素に対して光線を対応付ける処理を行う。
【００２１】
次に、図２に示すカメラキャリブレーション装置１０の動作を説明する。図３は、本実施形態におけるカメラキャリブレーション装置１０の動作を示すフローチャートである。
まず、画像入力部１１は、較正物体３の姿勢を変化させながら撮影した画像群｛Ｉｎ，ｍ｜ｎ＝１，…，Ｎ，ｍ＝１，…Ｍｎ｝を入力する（ステップＳ１０１）。ここで、入力された画像群中に含まれる較正物体３の姿勢の数をＮとし、較正物体３がｎ番目の姿勢である場合の画像の枚数をＭｎとする。ここで、Ｎは３以上とし、Ｍｎは画素とｎ番目の姿勢の較正物体３上の位置を対応付けるのに必要な画像の枚数とする。Ｍｎは較正物体３の種類や撮影空間の大きさなどに依存する。
【００２２】
次に、対応関係取得部１２は、入力された画像群から３つの異なる姿勢の較正物体３を含む画像群を選択する（ステップＳ１０２）。ここで、対応関係取得部１２は、種々の方法を用いて較正物体３と較正物体３’の姿勢の違いの有無を判断して、異なる姿勢の較正物体３を含む画像を選択可能である。対応関係取得部１２は、例えば、画像中に占める較正物体３の領域の大きさが同程度で、画像中の較正物体３の領域の形状の変化が大きい画像を複数選択する構成である。そのような構成とすることで、後述の処理で検出する撮影空間中の較正物体３の交線が存在する可能性を高めることができる。以下の説明では、選択された画像における較正物体３の姿勢（未知）をΦ１、Φ２、Φ３とする。
【００２３】
次に、対応関係取得部１２は、較正物体３の姿勢ごとに、画素と較正物体３上の位置を対応付ける（ステップＳ１０３）。具体的には、画像平面上の座標値（画素位置）と、較正物体３上で定義された座標系における座標値を対応付ける。ここでの方法は、較正物体３の種類によって異なる。
【００２４】
例えば、較正物体３が、平面ディスプレイで構成されており、かつ、較正物体３が、座標値をエンコードしたグレイコードパターンの系列を表示している場合について説明する。画像入力部１１は、グレイコードパターンを表示する較正物体３を、撮影して得た画像群を入力する。対応関係取得部１２は、入力された画像群から各画素で撮影された信号の系列を求め、それをデコードすることで、その画素に対応する較正物体３上の座標値を得ることができる。グレイコードを用いた画素と較正物体３の平面（較正平面）上の位置との対応付けに関しては、例えば非特許文献１に詳細が記載されている。
【００２５】
ここで、ステップＳ１０３の結果として得られる、画素ｋに対する姿勢Φｉの較正物体３上の点Ｐk,iの姿勢Φｉの較正物体３を基準とした座標系における座標値をｐk,i[i]（ｋ＝１，…，ｎｕｍＰｉｘｓｉ，ｉ＝１，…，３）で表す。ここで、ｎｕｍＰｉｘｓｉは、姿勢Φｉの較正物体３上の点と対応関係が得られる画素の数である。各画素と較正物体３上の座標値とを対応付けた後、交線検出部１３は、姿勢の異なる較正物体３が撮影空間において交わる交線を画像上で検出する（ステップＳ１０４）。なお、姿勢の異なる較正物体３が撮影空間において交わる交線とは、姿勢の異なる較正物体３が、撮影空間中に同時に存在していると仮想して、仮想上の姿勢の異なる較正物体３の平面が交差する部分である。
【００２６】
姿勢Φｉの較正物体３と姿勢Φｊの較正物体３’とで構成される交線上の画素を｛Ｋi,j（ａ）｜ａ＝１，…，ｎｕｍＰｉｘｓ（ｉ，ｊ）｝とする。ｎｕｍＰｉｘｓ（ｉ，ｊ）は、姿勢Φｉの較正物体３を撮影した画像中の姿勢Φｉの較正物体３と、姿勢Φｊの較正物体３’とで構成される交線上の画素数であり、Ｋi,j（ａ）＝Ｋj,i（ａ）である。
【００２７】
なお、交線検出部１３は、どのような方法を用いて姿勢Φｉの較正物体３と、姿勢Φｊの較正物体３’との交線を検出しても構わない。交線検出部１３は、例えば、画像上の各画素または各画素を中心とする一定の領域において、撮影された較正平面の面積が占める割合である較正平面密度を用いる方法を用いても構わない。つまり、異なる姿勢の較正物体３を撮影した画像間で、同じ位置の画素が同じ較正平面密度を持つ場合に、交線が存在するとし、そのような画素の集合を求めることで交線を検出することができる。なお、較正物体３が平面ディスプレイで構成されている場合、較正平面の面積として平面ディスプレイの画素数を用い、画像上の画素あたりの平面ディスプレイの画素の密度である画素密度を用いて交線を検出することができる。
【００２８】
平面ディスプレイを較正物体３として用いる場合には、上記説明したグレイコードのように画素と較正物体上の位置との対応が取れるようなものが好ましい。また、グレイコード以外であっても、画素密度を取得しやすいパターンを撮影した画像を、平面ディスプレイに表示して、較正物体３としても構わない。また、平面ディスプレイを用いない場合においても、画像上の各画素または各画素を中心とする一定の領域で撮影される較正物体３上の面積や、較正物体３上の単位面積の領域が撮影された画像上の画素数などを検出できるものを較正物体３として用いてもよい。このような較正物体３を用いることで、交線検出部１３において、交線を検出することが可能となる。
【００２９】
なお、交線検出部１３は、交線が十分な精度で求まらなかった場合は、交線を検出できなかったと判断する。また、交線検出部１３は、交線検出の精度として、どのような尺度を用いても構わない。交線検出部１３は、例えば、交線として検出した画素群に対応する較正物体３上の点群｛ｐＫi,j(a)[i]，ｉ｝の直線性を用いて交線の検出精度を評価する。また、交線検出部１３は、例えば、点群の直線性の評価値として、点群に対して得られる尤もらしい直線を求め、その直線と各点との距離の合計値や分散値を用いてもよい。また、交線検出部１３は、点群の直線性の評価値として、直線からの距離が一定以内の点の数を用いてもよい。
【００３０】
また、交線検出部１３は、点群｛ｐＫi,j(a)[i]，ｉ｝のうち、直線性を満たさないものを交線に対応する画素群から除外するようにしてもよい。この場合、交線検出部１３は、残った画素の数が一定数以下の場合は、交線が検出できなかったと判断してもよい。
【００３１】
ここで、全ての姿勢間で３つの交線が検出できなかった場合や、各交線で２点以上の交線上の点が検出できなかった場合は（ステップＳ１０５のＮＯ）、対応関係取得部１２は、別の姿勢の較正物体３を含む組み合わせの画像群を選択し（ステップＳ１０６）、ステップＳ１０３へ戻る。なお、ステップＳ１０３の較正物体３の姿勢ごとに、画素と較正物体３上の位置を対応付ける処理は、図３に示すように、異なる姿勢の組み合わせが選ばれるたびに繰り返す手順に限らず、他の手順でもよい。例えば、カメラキャリブレーション装置１０内に十分な記憶領域が確保され、姿勢ごとに画素と較正物体３上の位置を対応付けた結果を、その記憶領域に蓄積した場合の手順である。カメラキャリブレーション装置１０は、例えば、新たに選ばれた異なる姿勢の組み合わせの中に、既に画素と較正物体３上の位置との対応関係を求めた画像群について蓄積済みのものがあった場合は、その記憶領域から蓄積済みの画素と較正物体３上の位置を対応付けた結果を読み出すという手順を行う。
【００３２】
なお、図３に示した処理手順に限らず、例えば、ステップＳ１０２の次にステップＳ１０４の処理を行う手順や、ステップＳ１０５の条件をチェックしたのちにステップＳ１０３の処理を行う手順であってもよい。ただし、上記説明した検出した交線の較正物体３上での直線性を評価する場合は、一部の画素についてはステップＳ１０４の中で、ステップＳ１０３の対応関係を求める処理を行う必要がある。
【００３３】
次に、３つの交線を検出でき、かつ、各交線上で２点以上の点を検出できた場合は（ステップＳ１０５のＹＥＳ）、姿勢推定部１４は、検出した交線上の点の情報を用いて、較正物体３の姿勢を求める（ステップＳ１０７）。なお、姿勢推定部１４は、求める較正物体３の姿勢を、どのような情報で表現してもよい。また、姿勢推定部１４は、例えば、姿勢Φｉの較正物体３に対する座標系を、ある基準となる姿勢の較正物体３に対する座標系に変換するための回転行列Ｒｉと並進ベクトルｔｉの形で表してもよい。
【００３４】
以下の説明は、姿勢Φ１に対する姿勢を基準とした回転行列と並進ベクトルを用いて、較正物体３の姿勢を表現し、それら回転行列と並進ベクトルを推定する第１の方法について説明を行う。この回転行列Ｒｉと並進ベクトルｔｉを求める処理では、検出した交線が２つの較正物体３上で定義されることを利用する。つまり、１つの交線が２つの異なる座標系で表現されることを利用する。
【００３５】
以下、姿勢推定部１４における較正物体３の姿勢の推定処理について具体的に説明する。
図４は、較正物体３の姿勢を推定する第１の方法を説明するための図である。図４は、交線検出部１３で検出された姿勢Φ１〜Φ３である較正物体３の較正平面が交差する３つの交線の一例が示されている。図４に示すように各交線上の点Ｐｉ（ｉ＝１，…，６）を定義する。この時、各点Ｐｉは２つの較正物体上の点であることから次の（式１）に示す関係が成り立つ。
【数１】
0006355206.tif 000002
【００３６】
この関係から、点Ｐｉの姿勢Φjの較正物体３を基準とした座標系における座標値をｐi[j]で表すとすると、次の（式２）〜（式４）の関係が成り立つ。
【数２】
0006355206.tif 000003
【００３７】
また、直線Ｐ１Ｐ２と直線Ｐ５Ｐ６の内積と、直線Ｐ３Ｐ４と直線Ｐ５Ｐ６の内積について、それぞれ、次の（式５）、（式６）の関係が成り立つ。なお、直線ＰｉＰｊとは点ＰｉとＰｊとを結ぶ直線のことを示す。
【数３】
0006355206.tif 000004
【００３８】
これらをＲ２、Ｒ３、ｔ２、ｔ３について整理すると、Ｒ２、Ｒ３、ｔ２、ｔ３の要素を含むベクトルｘと、Ｒ２、Ｒ３、ｔ２、ｔ３の要素を含まない行列Ｍ及びベクトルｂを用いて、Ｍｘ＝ｂの形で表現される連立方程式が得られる。そのため、この連立方程式を解くことで回転行列Ｒ２、Ｒ３と並進ベクトルｔ２、ｔ３が求まる。なお、回転行列と並進ベクトルを求める方法は、どのような方法を用いてもよい。例えば、特異値分解を利用して回転行列と並進ベクトルを求めてもよい。
【００３９】
なお、上記の回転行列と並進ベクトルを求める説明では３つの交線上の２点（合計６点）を用いたが、交線上に３点以上の点が存在する場合は、任意の方法で点を選択して、上記処理を行ってもよい。更に、複数の組み合わせを用いて推定・検証することで、ノイズに対して頑健に推定を行う方法を用いてもかまわない。そのような方法の代表的なものにＲＡＮＳＡＣ（ＲＡＮｄｏｍ  ＳＡｍｐｌｅ  Ｃｏｎｓｅｎｓｕｓ）と呼ばれる方法がある。
【００４０】
また、３つの姿勢の較正物体３が互いに並行でなく、かつ、３つの較正物体３の交線が１直線で交差していない場合、３つの姿勢の較正物体３が三角錐の各面の一部となることを利用して、回転行列Ｒｉと並進ベクトルｔｉを求めてもよい。より具体的には、３つの交線が三角錐の頂点となる１点で交わることを利用して回転行列と並進ベクトルを求めてもよい。
【００４１】
以下、回転行列と並進ベクトルを用いて較正物体３の姿勢を推定する第２の方法について具体的に説明を行う。
図５は、較正物体３の姿勢を推定する第２の方法を説明するための図である。図５に示すように、姿勢Φ１〜Φ３である較正物体３の較正平面が交差する各交線上の点Ｐｉ（ｉ＝1，３，５）及び、３交線の交点Ｏを定義する。この時、点Ｐｉ（ｉ＝1，３，５）については上述の説明と同じ関係が成立するのに加えて、交点Ｏの姿勢Φｉの較正物体３を基準とした座標系における座標値ｏ[ｉ]は、各交線を表す直線の交点を求めることで計算できる。この時、線分及び内積の等価性より、次の（式７）〜（式１１）の関係が成り立つ。
【数４】
0006355206.tif 000005
【００４２】
これらを回転行列Ｒ２、Ｒ３について整理すると、回転行列Ｒ２、Ｒ３の要素を含むベクトルｘ’と、回転行列Ｒ２、Ｒ３の要素を含まない行列Ｍ’及びベクトルｂ’を用いて、Ｍ’ｘ’＝ｂ’の形で表現される連立方程式が得られる。そのため、この連立方程式を解くことで回転行列Ｒ２、Ｒ３を求めることができる。なお、回転行列Ｒ２、Ｒ３を求める方法として、どのような方法を用いてもよい。そして、回転行列Ｒ２、Ｒ３が得られたら次の（式１２）、（式１３）によって並進ベクトルが得られる。
【数５】
0006355206.tif 000006
【００４３】
なお、上記の回転行列を求める説明では、各交線上の１点（合計３点）を用いたが、交線上に２点以上の点が存在する場合は、任意の方法で点を選択して、上記処理を行っても構わない。更に、交線上の複数の点の組み合わせを用いて推定・検証することで、ノイズに対して頑健に推定を行う方法を用いてもよい。そのような方法の代表的なものにＲＡＮＳＡＣ（ＲＡＮｄｏｍ  ＳＡｍｐｌｅ  Ｃｏｎｓｅｎｓｕｓ）と呼ばれる手法がある。
【００４４】
較正物体３の姿勢の関係が得られたら、光線情報出力部１５は、各画素に対して、その画素でサンプリングされる光線を対応付けた結果を生成する（ステップＳ１０８）。生成された結果は、カメラキャリブレーション装置１０の出力となる。なお、画素と光線を対応付ける表現は、どのような形式で表現してもよい。例えば、各画素をインデックスとし、光線を表す直線の式を返すルックアップテーブルを用いて表現してもよい。
【００４５】
画素ｋでサンプリングされた光線は、較正物体３上の座標値｛ｐk,i[ｉ]｜（ｉ＝１，２，３）｝から直線を推定することで求めることができる。なお、ここでは姿勢Φ１の較正物体３を基準とした座標系で光線を表現するものとしたが、別の姿勢を基準とした座標系を用いても構わない。
【００４６】
また、較正物体３の姿勢を推定する処理（ステップＳ１０７）が終了した後、キャリブレーションの精度、つまり較正物体３の姿勢の推定の精度を表す評価値を求めてもよい。この評価値は、較正物体３の姿勢の推定が正しく行われたか否かを表すことのできるものであれば、どのような評価値を用いてもよい。評価値の具体例１は、画素ごとに得られる較正物体３上の点で構成される２本以上の線分の外積のノルムについて、和や最大値、分散を求めて、評価値としたものである。また、評価値の具体例２は、画素ごとに得られる較正物体３上の点で構成される２本以上の線分を求めて、その線分に対応する方向ベクトルの差分ベクトルのノルムについて、和や最大値、分散を求めて、評価値としたものである。更に、評価値の具体例３は、各画素に対応付けられた光線と較正物体３上の点の距離について、和や最大値、分散を求めて、評価値としたものである。更に、評価値の具体例４は、各画素に対応付けられた光線と較正物体３上の点の較正物体３平面上での距離について、和や最大値、分散を求めて、評価値としたものである。
【００４７】
また、別の姿勢の較正物体３を撮影した画像を追加し、更新された画像群から異なる姿勢の較正物体３に対する画像群を選択し、ステップＳ１０３へ戻っても構わない。なお、追加する画像は、どのような姿勢の較正物体３を撮影した画像であってもよい。例えば、既に入力されている画像群と比較し、同じ較正物体３であって画像上の較正物体３の大きさが大きく異なるような画像を追加してもよい。また、同じ較正物体３であって画像上の較正物体３の大きさは同じだが形状が異なるような画像を追加してもよい。前者は、既に入力されている画像と比較して、画像を撮影したカメラから較正物体３までの距離が異なるような画像であることを意味する。以上のような異なる姿勢の較正物体３を含む画像を入力することで、より長い経路で光線の直進性を考慮したキャリブレーションが可能となる。一方、後者は、より狭い空間での光線の直進性を考慮することで、より頑健にキャリブレーションを行うことが可能となる。
【００４８】
（ハードウェアの構成例）
図６は、本実施形態におけるカメラキャリブレーション装置１０のハードウェアの構成例を示す図である。
図６に示すように、カメラキャリブレーション装置１０を、コンピュータによって構成する場合のハードウェア構成を示すブロック図である。カメラキャリブレーション装置１０は、プログラムを実行するＣＰＵ（Central Processing Unit）１００と、ＣＰＵ１００がアクセスするプログラムやデータが格納されるＲＡＭ等のメモリ１０１と、カメラ等からの処理対象の画像信号を入力する画像入力部１０２と、カメラキャリブレーション処理をＣＰＵ１００に実行させるソフトウェアプログラムであるカメラキャリブレーションプログラム１０５が格納されたプログラム記憶装置１０３と、ＣＰＵ１００がメモリ１０１にロードされたカメラキャリブレーションプログラム１０５を実行することにより生成された画素と光線の対応関係を出力する光線情報出力部１０４とが、バスで接続された構成になっている。
【００４９】
なお、画像入力部１０２は、ディスク装置等により画像信号を記憶し、記憶した画像信号を読み出すことで画像信号を入力する記憶部で構成してもよい。また、光線情報出力部１０４は、ディスク装置等により画素と光線の対応関係を示す光線情報を記憶する記憶部で構成してもよい。また、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、カメラキャリブレーションプログラムを実行することによってカメラキャリブレーションを備える装置として機能する。なお、カメラキャリブレーションの各機能の全て又は一部は、ＡＳＩＣ（Application Specific Integrated Circuit）やＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されてもよい。カメラキャリブレーションプログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。カメラキャリブレーションプログラムは、電気通信回線を介して送信されてもよい。
【００５０】
このように、本実施形態におけるカメラキャリブレーション装置１０を、コンピュータで実現することができる。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、ＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されるものであってもよい。
【００５１】
以上説明したように、光線が撮影空間中で直進することを利用して、複数の姿勢で同一の較正物体を撮影した画像群から、画素と光線の対応関係を生成することにより、カメラと被写体との間に任意の屈折層（未知の屈折層または複雑な形状の屈折層）を含む場合においても、カメラのキャリブレーションを実現することができる。また、カメラと被写体との間に屈折層を含まない空間を通して、被写体を撮影不可能な状況においても、カメラのキャリブレーションを実現することができる。
【００５２】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【００５３】
本発明のカメラキャリブレーション方法、カメラキャリブレーション装置及びカメラキャリブレーションプログラムは、カメラと被写体との間に未知の屈折層がある場合において、画素と光線とを対応付けを行うことが不可欠な用途に適用することができる。
【符号の説明】
【００５４】
１…カメラ，  ２…屈折層，  ３、３’…較正物体，  １０…カメラキャリブレーション装置，  １１…画像入力部，  １２…対応関係取得部，  １３…交線検出部，  １４…姿勢推定部，  １５…光線情報出力部
【図１】
0006355206.tif 000007
【図２】
0006355206.tif 000008
【図３】
0006355206.tif 000009
【図４】
0006355206.tif 000010
【図５】
0006355206.tif 000011
【図６】
0006355206.tif 000012