(57)【特許請求の範囲】
【請求項１】
多視点画像撮影カメラ間の調整、または多視点画像撮影カメラによる取得画像の補正処理に適用するパラメータ算出処理を実行するキャリブレーション処理装置であり、
移動する球体を異なる視点方向から撮影した複数カメラの映像データを入力する画像入力部と、
前記画像入力部において入力する複数カメラの映像データを構成する複数の撮影画像フレームから球体中心位置を特徴点として抽出する処理を実行する特徴点抽出部と、
各カメラの対応フレームにおける特徴点として前記特徴点抽出部において抽出された球体中心位置の対応付け処理を実行する対応付け処理部と、
前記対応付け処理部において対応付けのなされた特徴点対応データに基づいてキャリブレーションパラメータとしてのファンダメンタル（Fundamental）行列を算出するＦ行列算出部とを有し、
前記Ｆ行列算出部は、
撮影画像フレーム内における球体中心位置、すなわち特徴点の分布状況判定処理を実行し、特徴点偏在が確認された場合、該偏在を解消する位置に追加設定した特徴点を含む特徴点対応データに基づくＦ行列再算出処理を実行する構成であることを特徴とするキャリブレーション処理装置。
【請求項２】
前記球体は、発光球体であり、
前記特徴点抽出部は、フレームに撮影された球体のエッジ情報に基づいて球体中心位置を算出する処理を実行する構成であることを特徴とする請求項１に記載のキャリブレーション処理装置。
【請求項３】
前記Ｆ行列算出部は、算出したＦ行列に基づくエピポーララインを設定し、設定したエピポーララインと、特徴点に対応する球体中心位置との距離を個別にまたは平均距離として算出し、該算出距離が予め定めた閾値より大である場合は新たな特徴点を含む特徴点対応データに基づいてＦ行列の再算出処理を実行する構成であることを特徴とする請求項１に記載のキャリブレーション処理装置。
【請求項４】
前記特徴点抽出部は、撮影フレーム内に球体全体のエッジが存在する場合にのみ、該エッジ情報に基づく中心位置算出処理を実行する構成であることを特徴とする請求項１に記載のキャリブレーション処理装置。
【請求項５】
多視点画像撮影カメラ間の調整、または多視点画像撮影カメラの取得画像の補正処理に適用するパラメータ算出処理を実行するキャリブレーション処理方法であり、
移動する球体を異なる視点方向から撮影した複数カメラの映像データを入力する画像入力ステップと、
前記画像入力ステップにおいて入力する複数カメラの映像データを構成する複数の撮影画像フレームから球体中心位置を特徴点として抽出する特徴点抽出ステップと、
前記特徴点抽出ステップにおいて抽出された球体中心位置に基づいて特徴点対応付け処理を実行する対応付け処理ステップと、
前記対応付け処理ステップにおいて対応付けのなされた特徴点対応データに基づいてキャリブレーションパラメータとしてのファンダメンタル（Fundamental）行列を算出するＦ行列算出ステップを有し、
前記Ｆ行列算出ステップは、撮影画像フレーム内における球体中心位置、すなわち特徴点の分布状況判定処理を実行し、特徴点偏在が確認された場合、該偏在を解消する位置に追加設定した追加特徴点を含む特徴点対応データに基づくＦ行列再算出処理を実行するステップであることを特徴とするキャリブレーション処理方法。
【請求項６】
前記球体は、発光球体であり、
前記特徴点抽出ステップは、フレームに撮影された球体のエッジ情報に基づいて球体中心位置の算出処理を実行することを特徴とする請求項５に記載のキャリブレーション処理方法。
【請求項７】
前記Ｆ行列算出ステップは、算出したＦ行列に基づくエピポーララインを設定し、設定したエピポーララインと前記特徴点としての球体中心位置との距離を個別にまたは平均距離として算出し、該算出距離が予め定めた閾値より大である場合は新たな特徴点を含む特徴点対応データに基づくＦ行列再算出処理を実行することを特徴とする請求項５に記載のキャリブレーション処理方法。
【請求項８】
前記特徴点抽出ステップは、撮影フレーム内に球体全体のエッジが存在する場合にのみ、該エッジ情報に基づく中心位置算出処理を実行することを特徴とする請求項５に記載のキャリブレーション処理方法。
【請求項９】
多視点画像撮影カメラ間の調整、または多視点画像撮影カメラの取得画像の補正処理に適用するパラメータ算出処理を実行するコンピュータ・プログラムであって、
移動する球体を異なる視点方向から撮影した複数カメラの映像データを入力する画像入力ステップと、
前記画像入力ステップにおいて入力する複数カメラの映像データを構成する複数の撮影画像フレームから球体中心位置を特徴点として抽出する特徴点抽出ステップと、
前記特徴点抽出ステップにおいて抽出された球体中心位置の対応付け処理を実行する対応付け処理ステップと、
前記対応付け処理ステップにおいて対応付けのなされた特徴点対応データに基づいてキャリブレーションパラメータとしてのファンダメンタル（Fundamental）行列を算出するＦ行列算出ステップを具備し、
前記Ｆ行列算出ステップは、撮影画像フレーム内における球体中心位置、すなわち特徴点の分布状況判定処理を実行し、特徴点偏在が確認された場合、該偏在を解消する位置に追加設定した追加特徴点を含む特徴点対応データに基づくＦ行列再算出処理を実行するステップであることを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、キャリブレーション処理装置、およびキャリブレーション処理方法、並びにコンピュータ・プログラムに関する。さらに詳細には、異なる位置に配置した複数のカメラで被写体を撮影して多視点画像を生成する多視点画像撮影カメラ間の調整、または多視点画像撮影カメラの取得画像の補正処理に適用するパラメータ算出処理を行うキャリブレーション処理装置、およびキャリブレーション処理方法、並びにコンピュータ・プログラムに関する。
【０００２】
【従来の技術】
近年、パノラマ、全天球画像など、視点を様々に移動可能とした画像データの利用が盛んになりつつある。例えば、ＤＶＤ、ＣＤ等の記憶媒体に複数の視点位置、視線方向からある被写体を撮影した画像を蓄積し、蓄積画像をＣＲＴ、液晶表示装置等に表示する際に、ユーザがコントローラの操作によって、自由な位置に視点を移動させて、被写体の像を観察するシステムが実現されている。また、インターネット等の通信システムを介して複数の視点位置、視線方向からある被写体を撮影した画像を配信し、ユーザがＰＣ等のマウス操作により、好みの視点位置、視線方向からの画像をディスプレイに表示するシステム等が構築されている。
【０００３】
コンピュータの処理能力の向上や多様な映像メディア再生機器の発展に伴って、以前困難とされた膨大なポリゴンデータや映像データ（コンテンツ）の処理が可能となり、視点の異なる複数台カメラで撮影された実世界（対象）の映像データをコンピュータや映像機器等により処理し、ユーザの要望に応じた任意視点の映像を実時間に生成し提示することができるようになってきている。
【０００４】
コンピュータ上の処理によって複数の視点で撮影された画像から任意視点映像を生成し、提示するためには、（１）全てのカメラが同一の領域（注目対象）を見えていること、（２）各カメラ間の位置関係等が得られることが必要である。
【０００５】
同じ対象を注目している視点の異なる複数カメラで撮影した多視点映像に基づいて、実写カメラの間の任意位置の仮想カメラで撮影した仮想視点映像を画像処理によって生成することが可能であるが、高精度な仮想視点映像を生成するには実写カメラ間の位置関係を正確に求めることが必要となる。実写カメラ間の位置関係を示すパラメータとしてジオメトリ・パラメータ（Geometry Parameters）がある。ジオメトリ・パラメータは、行列式によって表現され、これをファンダメンタル（Fundamental）行列またはＦ行列と呼ぶ。
【０００６】
実写カメラ間の位置関係を表すファンダメンタル（Fundamental）行列を求める方法は、これまでにも数多く提案されている。例えば、幾つかの（隣接）カメラによって、三次元空間にあるチェッカパターンを同時に観測し、チェッカパターン画像上の特徴点（例えば、白黒パターンの交差点位置）を抽出し、それらの特徴点の対応付けを行うことによって、ファンダメンタル（Fundamental）行列を推定する方法が知られている（例えば非特許文献１）。
【０００７】
しかしながら、（１）実際の撮影現場では、照明光の影響（例えば、反射光）等によって、撮影したチェッカパターン画像から必ずしも対応点を精度よく求めることができないため、高精度なファンダメンタル行列（以下、Ｆ行列と表現する）を推定することが容易ではない。（２）また、視点の異なる多数カメラで同一のチェッカパターンプレートを観測する場合、観測カメラはチェッカパターンプレートに正対していない場合が多く、そのため、観測されたチェッカパターン画像上のパターン変形によって、チェッカパターン画像における特徴点位置を精度よく検出することが容易ではないという問題がある。
【０００８】
（３）さらに、多数のカメラを同じ対象（被写体）を囲むように配置しようとした場合、撮影されたチェッカパターンが変形するだけでなく、平面状のチェッカパターンを用いると、チェッカパターンを３６０度周囲取り囲むよう配置しても全てのカメラが同じチェッカパターンを同時に撮影することができない。その際、多視点カメラを幾つかのグループに分けて、チェッカパターンを複数のカメラで複数回に分けて撮影することが必要となり、多くの労力や時間等を費やすことになる。（４）さらに、カメラキャリブレーションを行う際、Ｆ行列を推定するためのチェッカ画像パターンが十分に収録できたか、またそれらのチェッカパターンの空間位置が適切であるかどうかを判断する処理についての明確な基準がなく、結果的に算出されるＦ行列の精度が保証されないという問題がある。
【０００９】
【非特許文献１】
R.Y.Tsai: An Efficient and Accurate Camera Calibration Technique for 3D Machine Vision, Proceedings of IEEE Conference on Computer Vision and Pattern Recognition, Miami Beach, FL, pp.364-374,(1986)
【００１０】
【発明が解決しようとする課題】
本発明は、上述の問題点に鑑みてなされたものであり、多視点映像撮影システムを構成する実写カメラ間の位置関係を示すパラメータであるジオメトリ・パラメータ（Geometry Parameters）の算出を高精度に行なうことを可能とし、高速かつ高精度なカメラキャリブレーションを実現するカメラキャリブレーション装置、およびカメラキャリブレーション方法、並びにコンピュータ・プログラムを提供することを目的とする。
【００１１】
本発明は、照明環境等に影響しにくい発光球体をキャリブレーション治具として用い、球体の中心位置をリアルタイムに検出し対応付けしながらＦ行列を推定し、推定されたＦ行列と対応点との誤差や位置関係などを評価することによって、必要となる対応点の数や三次元空間上に置くべき球体位置を指示し、より高精度なＦ行列を自動的に推定するものである。
【００１２】
球体の形状はカメラ観測視点位置によらないため、様々な視点位置で全てのカメラによって観測可能となる。また、同期機能を備えた多視点映像撮影システムによって球体画像を観測撮影し、各パソコン上のメモリやハードディスクなどの記録媒体に収録しながらカメラキャリブレーションを行うことが可能である。そして、各パソコン上の画像処理手法によって、各フレーム画像における球体中心の座標位置（特徴点）を抽出し、抽出した特徴点を用いた画像間の対応付けによってファンダメンタル（Fundamental）行列を推定する。さらに、推定されたＦ行列の精度評価を実行して、対応点の数や対応点の適切な位置、つまり、球体の空間位置を自動的に提示し、高速かつ高精度なカメラ間パラメータの自動的推定を実現する装置および方法を提供する。
【００１３】
【課題を解決するための手段】
本発明の第１の側面は、
多視点画像撮影カメラ間の調整、または多視点画像撮影カメラによる取得画像の補正処理に適用するパラメータ算出処理を実行するキャリブレーション処理装置であり、
移動する球体を異なる視点方向から撮影した複数カメラの映像データを入力する画像入力部と、
前記画像入力部において入力する複数カメラの映像データを構成する複数の撮影画像フレームから球体中心位置を特徴点として抽出する処理を実行する特徴点抽出部と、
各カメラの対応フレームにおける特徴点として前記特徴点抽出部において抽出された球体中心位置の対応付け処理を実行する対応付け処理部と、
前記対応付け処理部において対応付けのなされた特徴点対応データに基づいてキャリブレーションパラメータとしてのファンダメンタル（Fundamental）行列を算出するＦ行列算出部とを有し、
前記Ｆ行列算出部は、
撮影画像フレーム内における球体中心位置、すなわち特徴点の分布状況判定処理を実行し、特徴点偏在が確認された場合、該偏在を解消する位置に追加設定した特徴点を含む特徴点対応データに基づくＦ行列再算出処理を実行する構成であることを特徴とするキャリブレーション処理装置にある。
【００１４】
さらに、本発明のキャリブレーション処理装置の一実施態様において、前記球体は、発光球体であり、前記特徴点抽出部は、フレームに撮影された球体のエッジ情報に基づいて球体中心位置を算出する処理を実行する構成であることを特徴とする。
【００１５】
さらに、本発明のキャリブレーション処理装置の一実施態様において、前記Ｆ行列算出部は、算出したＦ行列に基づくエピポーララインを設定し、設定したエピポーララインと、特徴点に対応する球体中心位置との距離を個別にまたは平均距離として算出し、該算出距離が予め定めた閾値より大である場合は新たな特徴点を含む特徴点対応データに基づいてＦ行列の再算出処理を実行する構成であることを特徴とする。
【００１７】
さらに、本発明のキャリブレーション処理装置の一実施態様において、前記特徴点抽出部は、撮影フレーム内に球体全体のエッジが存在する場合にのみ、該エッジ情報に基づく中心位置算出処理を実行する構成であることを特徴とする。
【００１９】
さらに、本発明の第２の側面は、
多視点画像撮影カメラ間の調整、または多視点画像撮影カメラの取得画像の補正処理に適用するパラメータ算出処理を実行するキャリブレーション処理方法であり、
移動する球体を異なる視点方向から撮影した複数カメラの映像データを入力する画像入力ステップと、
前記画像入力ステップにおいて入力する複数カメラの映像データを構成する複数の撮影画像フレームから球体中心位置を特徴点として抽出する特徴点抽出ステップと、
前記特徴点抽出ステップにおいて抽出された球体中心位置に基づいて特徴点対応付け処理を実行する対応付け処理ステップと、
前記対応付け処理ステップにおいて対応付けのなされた特徴点対応データに基づいてキャリブレーションパラメータとしてのファンダメンタル（Fundamental）行列を算出するＦ行列算出ステップを有し、
前記Ｆ行列算出ステップは、撮影画像フレーム内における球体中心位置、すなわち特徴点の分布状況判定処理を実行し、特徴点偏在が確認された場合、該偏在を解消する位置に追加設定した追加特徴点を含む特徴点対応データに基づくＦ行列再算出処理を実行するステップであることを特徴とするキャリブレーション処理方法にある。
【００２０】
さらに、本発明のキャリブレーション処理方法の一実施態様において、前記球体は、発光球体であり、前記特徴点抽出ステップは、フレームに撮影された球体のエッジ情報に基づいて球体中心位置の算出処理を実行することを特徴とする。
【００２１】
さらに、本発明のキャリブレーション処理方法の一実施態様において、前記Ｆ行列算出ステップは、算出したＦ行列に基づくエピポーララインを設定し、設定したエピポーララインと前記特徴点としての球体中心位置との距離を個別にまたは平均距離として算出し、該算出距離が予め定めた閾値より大である場合は新たな特徴点を含む特徴点対応データに基づくＦ行列再算出処理を実行することを特徴とする。
【００２３】
さらに、本発明のキャリブレーション処理方法の一実施態様において、前記特徴点抽出ステップは、撮影フレーム内に球体全体のエッジが存在する場合にのみ、該エッジ情報に基づく中心位置算出処理を実行することを特徴とする。
【００２５】
さらに、本発明の第３の側面は、
多視点画像撮影カメラ間の調整、または多視点画像撮影カメラの取得画像の補正処理に適用するパラメータ算出処理を実行するコンピュータ・プログラムであって、
移動する球体を異なる視点方向から撮影した複数カメラの映像データを入力する画像入力ステップと、
前記画像入力ステップにおいて入力する複数カメラの映像データを構成する複数の撮影画像フレームから球体中心位置を特徴点として抽出する特徴点抽出ステップと、
前記特徴点抽出ステップにおいて抽出された球体中心位置の対応付け処理を実行する対応付け処理ステップと、
前記対応付け処理ステップにおいて対応付けのなされた特徴点対応データに基づいてキャリブレーションパラメータとしてのファンダメンタル（Fundamental）行列を算出するＦ行列算出ステップを具備し、
前記Ｆ行列算出ステップは、撮影画像フレーム内における球体中心位置、すなわち特徴点の分布状況判定処理を実行し、特徴点偏在が確認された場合、該偏在を解消する位置に追加設定した追加特徴点を含む特徴点対応データに基づくＦ行列再算出処理を実行するステップであることを特徴とするコンピュータ・プログラムにある。
【００２６】
【作用】
本発明の構成によれば、多視点画像撮影カメラ間の調整、または多視点画像撮影カメラによる取得画像の補正処理に適用するパラメータ算出処理を実行するキャリブレーション処理において、発光球体を各カメラにより撮影する構成としたので、照明環境が不安定な撮影現場等でも球体検出と球体中心位置の取得を容易に行うことができ、球体中心位置を特徴点として対応付け処理を実行することで高精度なＦ行列の算出が可能となる。すなわち、多視点映像撮影システムを構成する実写カメラ間の位置関係を示すパラメータであるジオメトリ・パラメータ（Geometry Parameters）としてのファンダメンタル（Fundamental）行列の算出を高精度に行なうことが可能となり、高速かつ高精度なキャリブレーションが可能となる。
【００２７】
さらに、本発明の構成によれば、発光球体をキャリブレーション治具として用い、球体の中心位置をリアルタイムに検出し対応付けしながらＦ行列を推定し、推定されたＦ行列と対応点との誤差や位置関係などを評価することによって、必要となる対応点の数や三次元空間上に置くべき球体位置を指示し、より高精度なＦ行列を効率的に算出することが可能となる。
【００２８】
さらに、本発明の構成によれば、同期機能を備えた多視点映像撮影システムによって球体画像を観測撮影し、各パソコン上のメモリやハードディスクなどの記録媒体に収録しながらカメラキャリブレーションを行うことが可能であり、各パソコン上の画像処理手法によって、各フレーム画像における球体中心の座標位置（特徴点）抽出、抽出特徴点を用いた画像間の対応付けによるファンダメンタル（Fundamental）行列の推定、推定Ｆ行列の精度評価、対応点の数や対応点の適切な位置の判定、提示等を、例えばＰＣ上で実行可能であり、高速かつ高精度なキャリブレーション処理を、ＰＣ等、簡易なシステムにおいて実行することが可能となる。
【００２９】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、ＣＤやＦＤ、ＭＯなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００３０】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づく、より詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【００３１】
【発明の実施の形態】
以下、本発明のカメラキャリブレーション装置、およびカメラキャリブレーション方法、並びにコンピュータ・プログラムについて、図面を参照しながら詳細に説明する。
【００３２】
まず、図１を参照して多視点カメラ撮影処理及び多視点カメラで撮影した実写映像を用いて仮想視点映像を生成する処理について説明する。被写体１００を、被写体１００周囲に配置した複数のカメラで撮影する。各カメラは、異なる視点からの被写体１００の画像を撮影する。実写画像は、配置するカメラ数に応じて取得される。しかし、各カメラ間の実写画像は取得できない。従って各カメラ間の画像、すなわち仮想視点の画像は、実写画像に基づく画像処理によって生成する。
【００３３】
例えばカメラＡ１０１と、カメラＢ１０２との間にカメラが配置されていない場合、カメラＡ１０１と、カメラＢ１０２との間の画像は、これらのカメラの２つの実写画像１１１，１１２に基づいて生成する。これは、実際には撮影されていない画像を生成する処理、いわゆるビューインターポレーション処理によって生成することができる。
【００３４】
ビューインターポレーションとは、複数のカメラからの画像から、実際のカメラのない視点から見える画像を生成する技術である。このビューインターポレーションについては、たとえば［S. M. Seitz and C. R. Dyer, "View Morphing," Proc. SIGGRAPH 96, ACM, 1996pp.21-30．］に記載されている。ビューインターポレーションによれば、複数のカメラに基づく実際の取得画像に基づいて、カメラのない視点の画像の生成が可能となる。
【００３５】
例えば、カメラＡ１０１とカメラＢ１０２の間であたかも仮想カメラ１１３で撮影したような仮想視点カメラ画像１２１を生成するためには、カメラＡ１０１とカメラＢ１０２の特性の違いや相対的な位置関係を求め、これらの情報としてのパラメータに基づいて仮想視点画像の生成における各種補正を行なうことが必要になる。つまり、実写画像を撮影しているカメラの特性の差異を正確に把握した調整、すなわちカメラキャリブレーションを行う必要がある。
【００３６】
仮想視点映像生成に必要となるキャリブレーションパラメータを適用した補正処理には、図２に示すように歪係数（Distortion Coefficient）、歪中心（Distortion Center）、アスペクト比（Aspect Ration）からなる歪曲収差パラメータに基づく歪パラメータ補正と、スケール因子、捻れ、画像中心データからなる内部パラメータ［Ａ］と、並進［Ｔ］および回転［Ｒ］ベクトルからなる外部パラメータ［Ｔ，Ｒ］に基づくカメラ内部・外部パラメータ補正とがある。カメラ歪みパラメータについては、一般的にチェッカパターンや直線等をキャリブレーションを実行する複数カメラで撮影し、チェッカパターンや直線等の撮影画像に基づいて各カメラ間の調整パラメータの推定が行われる。
【００３７】
カメラ内部・外部パラメータ［Ａ，Ｔ，Ｒ］は、実写カメラ間の位置関係を示すパラメータとしてのジオメトリ・パラメータ（Geometry Parameters）を示す行列式によって表現される。これをファンダメンタル（Fundamental）行列（Ｆ行列）と呼ぶ。Ｆ行列は、下式（式１）によって示される。
【００３８】
【数１】
0004238586.tif 000002
【００３９】
上記式によって示されるカメラ間のファンダメンタル（Fundamental）行列を求める方法については、既にいくつか提案されている。ファンダメンタル（Fundamental）行列を求める一般的な方法について簡単に説明する。
【００４０】
図３は、一般的なＦ行列パラメータの推定方法を示す。まず、図３（ａ）に示すように、カメラ１，２３１とカメラ２，２３２によって、三次元空間にあるキャリブレーション治具としての画像パターン（例えば、チェッカパターン）を数回撮影し、撮影された画像Ｉ１，２４１（カメラ１，２３１実写画像）と、Ｉ２，２４２（カメラ２，２３２実写画像）から特徴点を抽出する。特徴点は、例えば、チェッカパターンの交差点ｍ１１，ｍ１２，......と、ｍ２１，ｍ２２,......を抽出する。
【００４１】
特徴点抽出後、図３（ｂ）または以下の式に示すように、抽出された特徴点ｍ１ｉとｍ２ｉ(ｉ＝１，２，......Ｎ)との対応付けによって、Ｆ行列を推定することができる。
【００４２】
【数２】
0004238586.tif 000003
【００４３】
上記式において、ｆを、ＷTＷの最小固有値に対応する固有ベクトルとして算出することで、Ｆ行列の要素を求めることができる。
【００４４】
図４は、実際にＦ行列を推定するために、チェッカパターンをキャリブレーション治具として用いた場合のカメラキャリブレーション手順を示した図である。
【００４５】
まず、ステップＳ１０１において、キャリブレーション治具としてのチェッカパターンを異なる視点からカメラ１とカメラ２で撮影する。
【００４６】
次に、ステップＳ１０２において、カメラ１とカメラ２で撮影したチェッカパターン画像Ｉ１(ｘ，ｙ)とＩ２(ｘ，ｙ)における特徴点ｍ１(ｘ，ｙ)とｍ２(ｘ，ｙ)を抽出し、ステップＳ１０３において、各抽出特徴点ｍ１(ｘ，ｙ)とｍ２(ｘ，ｙ)間の対応付け処理を行う。
【００４７】
対応付け処理とは、同一対象物を撮影して得られる複数の画像における画素同士を対応づけるマッチング処理である。従来から、よく使われている「対応付け」の手法には、例えばPixel-basedマッチング、Area-basedマッチング、Feature-basedマッチングがある。Pixel-basedマッチングとは、一方の画像における点の対応を、他方の画像でそのまま探索する方法である。Area-basedマッチングとは、一方の画像における点の対応を、他方の画像で探す時、その点の周りの局所的な画像パターンを用いて探索する方法である。Feature-basedマッチングとは、画像から濃淡エッジなどの特徴を抽出し、画像間の特徴だけを用いて対応付けを行う方法である。これらの方法を用いて複数の画像から抽出した特徴点に基づく画素同士の対応付けを行う。
【００４８】
最後に、ステップＳ１０４において、取得した複数の対応点に基づいて、前述の式（式２）を適用したＦ行列の算出を行なう。すなわち、抽出された特徴点ｍ１ｉとｍ２ｉ(ｉ＝１，２，......Ｎ)の対応付けによって、ｆを、ＷTＷの最小固有値に対応する固有ベクトルとして算出することで、Ｆ行列、すなわちファンダメンタル（Fundamental）行列（＝Ｆパラメータ）を求める。
【００４９】
しかしながら、上述の方法においては、カメラとチェッカパターンプレートが正対していない場合、特徴点の抽出精度が低下するという問題がある。また、複数カメラの配置によって、各カメラで同時にチェッカパターンを観測できない場合が発生することや、画像間の特徴点の対応付けが撮影画像の品質に影響され、処理時間がかかるなどの問題がある。
【００５０】
これらの問題を解決する手法として、本発明では、平面的なチェッカパターンではなく移動する発光球体をキャリブレーションツールとして用い、この発光球体を異なる方向から撮影する複数のカメラを設置し、各カメラ映像の同期収録を行い、収録画像に基づいてファンダメンタル（Fundamental）行列（＝Ｆパラメータ）を算出して、カメラキャリブレーションを実行する。本発明の構成によれば、平面のチェッカパターンを異なる方向から撮影することによる特徴点抽出精度の低下や、各カメラで同時にチェッカパターンを観測できないといった問題が発生することなく、効率的かつ高精度なカメラキャリブレーションを実行できる。
【００５１】
移動する発光球体をキャリブレーションツールとして用い、異なる視点から発行球体を撮影する構成例を図５に示す。また、各カメラの収録映像の同期記録処理装置構成例を図６に示す。
【００５２】
図５に示すように、カメラキャリブレーションを実行するカメラ３０１−１〜Ｎをキャリブレーションツールとしての発光球体３００の周囲に配列し、発光球体３００を移動させて、例えば３０フレーム／秒の映像を撮影する。図には、カメラ１，３０１−１、カメラ２，３０１−２、およびカメラｎ，３０１−ｎのそれぞれの取得画像（１フレーム）３０２−１，２，ｎを示している。
【００５３】
図５に示すような発光球体を用いる利点は、（１）任意背景・環境で観測された画像からその球体を容易に検出できることと、（２）任意の視点位置にあるカメラで球体を同じ形状（円形）として観測できることと、（３）画像内における球体の中心位置を精度よく推定できることと、（４）時系列画像から抽出された球体の中心を用いる画像間の対応点処理が容易にできることにある。
【００５４】
Ｆ行列を推定するためには、上述の式２に示すＦ行列を構成する９個の要素（ｆ11，ｆ12，・・ｆ33）の値を決定することが必要となる。これは、実質的にはＦ行列の９個の要素の比率を求めることになり未知数が８つの方程式の解を求めることに相当する。従って、多数の対応点（少なくとも８点以上）の関係式を設定することが必要となる。
【００５５】
本発明の構成では、移動する発光球体を撮影し、時間軸にそったフレーム毎に発光球体の中心位置を特徴点として抽出し、それら、時間軸にそったフレームから抽出される複数の特徴点を、あたかも一回の撮影画像から抽出されたと同様の扱いとして、画像間の対応付けに用いる。例えば３０フレーム／秒で５秒間撮影を実行すれば、３０×５＝１５０フレームを各カメラで撮影することが可能であり、１５０個の特徴点（＝球体中心位置）を抽出できる。
【００５６】
このような特徴点抽出と対応付けを自動的に行うために、図６に示すようにネットワーク同期機構を備えた複数カメラ映像の同期収録装置を適用する。
【００５７】
異なる視点からキャリブレーションツールとしての発光球体３００を撮影するカメラ１〜ｎのカメラ３０１は、同期信号発生器３２０より出力された同期信号（水平、垂直同期信号）を各カメラの外部同期入力端子を介して入力し、複数のカメラ１〜ｎにより観測された多視点の複数映像を同期映像として出力する。
【００５８】
各カメラ出力映像は、例えば輝度信号（Ｙ）とＲＧＢ色成分信号の差信号（Ｃ）としてのＹ／Ｃ信号等の映像信号であり、各カメラは、映像信号を各カメラに対応して設定されたＡＤコンバータ３３０に入力する。ＡＤコンバータ３３０では、カメラ３０１から入力する映像信号のデジタルデータへの変換、さらに必要に応じて圧縮データ（例えばモーションＪＰＥＧ等）への変換処理を実行し、処理後のデータをそれぞれのデータを記録する画像記録処理装置としてのクライアントＰＣ（ＰＣ１〜ＰＣｎ）３５０、画像モニタ３６０に出力する。
【００５９】
画像記録処理装置としてのクライアントＰＣ（ＰＣ１〜ＰＣｎ）３５０は、データを記録する記録媒体３５６、例えばハードディスク、ＤＶＤ、ＣＤ等を備えている。
【００６０】
クライアントＰＣ（ＰＣ１〜ＰＣｎ）３５０にＡＤコンバータ３３０から入力した映像信号は、クライアントＰＣ（ＰＣ１〜ＰＣｎ）３５０内の映像信号処理部３５５に入力される。映像信号処理部３５５は、例えば１３９４ＤＶキャプチャボードにより構成される。
【００６１】
クライアントＰＣ３５０を構成する複数のＰＣ１〜ＰＣｎは、汎用ＰＣ上で実行可能なＤＶキャプチャソフトによって、各カメラからのＤＶ映像をそれぞれのＰＣ内ハードディスク３５６に収録する。各クライアントＰＣ（ＰＣ１〜ＰＣｎ）３５０とサーバーＰＣ３７０は、各ＰＣに装着されたネットワークインタフェースとしてのネットワークカード３５７、およびネットワーク３８０によって接続されており、サーバーＰＣ３７０から各クライアントＰＣ（ＰＣ１〜ＰＣｎ）３５０に対して録画開始コマンドを出力することにより、各クライアントＰＣ３５０が一斉に録画を開始することが可能となる。
【００６２】
クライアントＰＣ３５０内の例えば１３９４ＤＶキャプチャボードにより構成される映像信号処理部３５５の構成例を図７に示す。
【００６３】
ＩＥＥＥ１３９４ポート（以下、１３９４ポート）３９４と、ＬＩＮＫ／ＰＨＹ３９５は、ＡＤコンバータ３３０によって処理されたデジタルビデオ（ＤＶ）信号を取り込む。１３９４ポート３９４は、ＤＶ信号を取り込む入力ポートであり、入力したＤＶ信号はＬＩＮＫ／ＰＨＹ３９5へ送出される。ＬＩＮＫ／ＰＨＹ３９５は、入力したＤＶ画像データをバッファ手段としてのＲＡＭ３９２に一次蓄積する。
【００６４】
ＲＡＭ３９２は、取り込まれたＤＶ画像データを記憶するバッファを備えた画像データ記憶手段として機能する。ＲＡＭ３９２に一次記録された画像データは、ＣＰＵ３９１の制御のもとにＨＤＤ、ＤＶＤ等の記憶手段３５６に記憶手段Ｉ／Ｆ３９６を介して出力され、格納される。前述したように、各クライアントＰＣ（ＰＣ１〜ＰＣｎ）３５０とサーバーＰＣ３７０は、各ＰＣに装着されたネットワークインタフェースとしてのネットワークカード３５７、およびネットワーク３８０によって接続されており、サーバーＰＣ３７０から各クライアントＰＣ（ＰＣ１〜ＰＣｎ）３５０に対して録画開始コマンドを出力することにより、各クライアントＰＣ３５０が一斉に録画、すなわち、ＨＤＤ、ＤＶＤ等の記憶手段３５６に対するデータ格納処理を開始することが可能である。
【００６５】
ＣＰＵ３９１は、画像データの撮り込み、格納に関する装置全体の制御を行ない、ＤＶ画像データの流れ全般を制御する画像データ制御手段として機能する。ＣＰＵ３９１は、ＲＯＭ３９３に記憶されたプログラムに従って、画像データの流れを制御する。
【００６６】
ＲＯＭ３９３に記憶されたプログラムは、例えば汎用ＰＣ上で実行可能なＤＶキャプチャソフトであり、サーバーＰＣからの録画開始コマンドによって、プログラムが実行され、クライアントＰＣが一斉に録画を開始する。
【００６７】
上述のように、同期信号発生器３２０からの基準ビデオ信号（同期信号）を各カメラ３０１−１〜ｎの外部同期端子に入力し、各カメラ３０１−１〜ｎのビデオ出力信号はＡＤ変換器３３０によってデジタル映像信号に変換され、キャプチャボードを通して、パソコン３５０に内蔵されたメモリやハードディスク等の記録媒体に保存される。各パソコンの実行環境などによって、画像収録のスタートを実行するまでのタイミングが必ずしも同じではないので、収録された各カメラ映像が通常同期されていない。そこで、各カメラ映像を保存する際、記録中の画像フレーム番号は、ネットワークを通して、計測ポイントデータとしてサーバー報告し、収録後の映像に対して、サーバー上に集計された計測ポイントデータを用いて、カメラ画像間の同期合わせを実現した。
【００６８】
図８を参照して、サーバーＰＣで実行する同期調整処理の詳細について説明する。まず、ステップＳ３０１において、サーバーＰＣは、各クライアントＰＣから入力した各計測点における各ＰＣの収録フレーム番号データを読込む。これは、例えば図８のデータ例（ａ）に示すデータである。
【００６９】
ここでは、サーバーＰＣが複数のクライアントＰＣ（ＰＣ１〜ＰＣｎ）から４回の計測点（計測点１〜４）における収録フレーム番号を取得したものとして説明する。
【００７０】
図８の（ａ）各クライアントＰＣから入力した各計測点における各ＰＣの収録フレーム番号のリストによれば、例えばＰＣ１は、
計側点１において、収録処理フレーム＝６、
計側点２において、収録処理フレーム＝１０、
計側点３において、収録処理フレーム＝１４、
計側点４において、収録処理フレーム＝１９、
を各計測点において、サーバーＰＣからの「現在収録フレーム番号保存」コマンドに応じて保存したフレーム番号であることを示している。
【００７１】
次に、サーバーＰＣは、ステップＳ３０２において、処理遅延量の大きいＰＣ、ここでは、計側点１において、フレームＮｏ．３を処理しているＰＣ２を基準ＰＣとして、各ＰＣにおける基準ＰＣからのフレームずれ量を算出する。
【００７２】
この処理の結果、図８に示す（ｂ）各計測点における各ＰＣ内収録映像のフレームずれ量が求められる。図８に示す例では、ＰＣ２が基準となり、ＰＣ２はすべての計測点においてずれ量＝０となる。また、例えばＰＣ１のずれ量は、各計測点において、ＰＣ１の収録処理フレーム−ＰＣ２の収録処理フレームによって求める。その結果、ＰＣ１のずれ量は、
計側点１において、ずれ量＝６−３＝３
計側点２において、ずれ量＝１０−７＝３
計側点３において、ずれ量＝１４−１１＝３
計側点４において、ずれ量＝１９−１５＝３
となる。
【００７３】
他のＰＣ、ＰＣ３〜ＰＣｎについてもＰＣ２との収録フレームＮｏ．との差分が、ずれ量として求められる。
【００７４】
次に、ステップＳ３０３において、基準ＰＣ＝ＰＣ２からの各ＰＣのずれ量の決定処理を行なう。これは、例えば各ＰＣの各計測点におけるずれ量の平均値を算出し、その平均値に基づく整数値を四捨五入により算出することにより実行する。
【００７５】
図８（ｃ）が、各ＰＣの各計測点におけるずれ量の平均値を算出したデータである。ＰＣ１のＰＣ２に対するずれ量は、
（３＋３＋３＋４）／４＝３．２５
となる。
【００７６】
図８（ｄ）が、各ＰＣの各計測点におけるずれ量の平均値を四捨五入したデータである。
ＰＣ１のＰＣ２に対するずれ量は３、
ＰＣｎのＰＣ２に対するずれ量は２となる。
このようにして、各クライアントＰＣの基準ＰＣ（ＰＣ２）からのずれ量が決定される。
【００７７】
次に、ステップＳ３０４において、サーバーＰＣは、算出した各ＰＣのずれ量に基づいて、各クライアントＰＣの同期調整処理を実行する。
【００７８】
各クライアントＰＣの各時刻１〜４における処理フレームＮｏ．を統一する処理として実行される。図８（ｅ）に示すように、時刻１〜４において、
時刻１においては、全てのＰＣの収録フレーム＝３
時刻２においては、全てのＰＣの収録フレーム＝７
時刻３においては、全てのＰＣの収録フレーム＝１１
時刻４においては、全てのＰＣの収録フレーム＝１５
とした設定が実行される。
【００７９】
例えばＰＣ１設定フレームＮｏ．は、基準ＰＣ（ＰＣ２）の設定フレームＮｏ．との差が３であると判定されるので、ＰＣ１設定フレームＮｏから差３を差し引いた値を、ＰＣ１における新たなフレームＮｏ．として設定する。また、ＰＣｎ設定フレームＮｏ．は、基準ＰＣ（ＰＣ２）の設定フレームＮｏ．との差が２であると判定されるので、ＰＣｎ設定フレームＮｏから差２を差し引いた値を、ＰＣ１における新たなフレームＮｏ．として各時刻において設定する。
【００８０】
このように各クライアントＰＣにおける同期調整処理を実行することにより、正確なフレーム間同期が可能となる。
【００８１】
上述した処理により各カメラ映像は完全に同期して取得することが可能となる。本発明のキャリブレーション装置は、上述した同期調整のなされた画像撮影フレームの各々について、特徴点としての発光球体中心の対応付け処理を実行し、前述の図４を参照して説明した手続きに従って、Ｆ行列を求める。
【００８２】
図９は、一台のカメラ（カメラ１，３０１−１）で観測した発光球体の時系列画像（t=1,……,ｋ）を示す。全てのカメラ映像から各フレーム画像における球体の中心を自動的に抽出し、対応付けを行うことによって、Ｆ行列を高速かつ精度よく推定することができる。
【００８３】
本発明の構成においては、発光球体の中心点を、対応付け処理を実行するための特徴点とする。この発光球体の中心点を求める処理を各カメラ撮影画像の各フレームにおいて実行する。Ｆ行列の要素を決定するためには、前述したように最低でも８つの特徴点の対応付けが必要となり、少なくとも８フレームにおいて、キャリブレーションを実行するカメラの撮影画像から特徴点抽出を行う。この特徴点抽出処理として行われる発光球体の中心位置の判定処理について、図１０を参照して説明する。
【００８４】
図１０の処理フローに従って、本発明の構成における特徴点抽出処理として実行される発光球体の中心点位置判定処理の手順を説明する。図１０は、１つのフレーム画像からの球体の中心画素位置を求める処理フローを示している。まず、ステップＳ５０１において、発光球体の撮影画像フレームを入力する。
【００８５】
ステップＳ５０２において、入力画像から球体のエッジを検出する。なお、エッジ画素の座標値が取得フレーム画像の４辺に接している場合、球体の一部が欠けていると判定し、そのフレーム（時刻）における特徴点の抽出は行わない。この判定処理がステップＳ５０３である。
【００８６】
入力フレームに発光球体全体が画像として観測されている場合（ステップＳ５０３：Ｙｅｓ）、ステップＳ５０４において、エッジ画素の座標値に基づく投影処理により球体の初期中心位置を判定する。具体的には、球体左右エッジ上画素のｘｙ座標値の差をそれぞれＸ軸とＹ軸に投影し、ＸとＹに対する分布を求め、それぞれの最大となる位置を球体の初期中心（ｘｓ，ｙｓ）および大きさ（半径）とする。
【００８７】
ステップＳ５０５において、推定された初期中心と大きさを、円形モデルに適用し、そのモデルから大きく外れたエッジ上の画素点を例外点（Outlier）として削除する。最後に、ステップＳ５０６において、例外点（Outlier）削除後のエッジ画素点を円形モデルに適用し、球体の中心位置（及び大きさ）を判定する。
【００８８】
図１１は、隣接カメラで観測された時系列画像から、それぞれ球体の中心位置を検出し、あたかも一枚の画像から抽出された特徴点のように設定する処理例を示した図である。
【００８９】
発光球体５００を異なる方向から撮影するカメラ１，５０１と、カメラ２，５０２間の調整処理のためのカメラキャリブレーション用のＦ行列を求めるとする。この場合、前述したように複数フレームから複数の特徴点（最低８個）を抽出することが必要となる。
【００９０】
本発明の構成においては、特徴点は発光球体撮影画像における発光球体の中心位置であり、各フレームにおける発光球体の中心位置を特徴点として抽出する。カメラ１，５０１と、カメラ２，５０２との撮影フレームｔ＝１〜ｋの各フレーム画像は、図６を参照して説明した同期調整処理がなされた画像であり、各対応フレームは同期した画像である。ｔ＝１〜ｋのｋ個のフレームについて、図１０を参照して説明した球体の中心位置座標判定処理を実行することで、各カメラ毎にｋ個の特徴点が求まることになる。ただし、前述したように球体画像がフレーム画像からはみ出ている場合は、中心を求めることができないので、最大ｋ個の特徴点となる。
【００９１】
前述したように少なくとも８個の特徴点を求め、その対応付け処理を実行することにより、９個の要素からなるＦ行列の要素を決定することができるので、キャリブレーション対象となる２つのカメラの同期フレーム画像から少なくとも発光球体の中心位置を求めることが可能な８フレームを選択して、その特徴点（球体中心位置）を求める。それらを１つにまとめると、図１１に示す特徴点分布データ５１１，５１２が得られる。
【００９２】
特徴点分布データ５１１は、カメラ１，５０１の撮影フレーム中のｔ＝１，２，．．ｋの各フレームの特徴点（球体中心位置）の分布を示している。ｐ１（１）は、ｔ＝１のフレームにおける球体中心位置であり、ｐ１（２）は、ｔ＝２のフレームにおける球体中心位置、ｐ１（ｋ）は、ｔ＝ｋのフレームにおける球体中心位置である。
【００９３】
特徴点分布データ５１２は、カメラ２，５０２の撮影フレーム中のｔ＝１，２，．．ｋの各フレームの特徴点（球体中心位置）の分布を示している。ｐ２（１）は、ｔ＝１のフレームにおける球体中心位置であり、ｐ２（２）は、ｔ＝２のフレームにおける球体中心位置、ｐ２（ｋ）は、ｔ＝ｋのフレームにおける球体中心位置である。
【００９４】
これらの特徴点分布データ５１１，５１２の対応特徴点、すなわち、ｐ１（１）とｐ２（１）、ｐ１（２）とｐ２（２）、・・ｐ１（ｋ）とｐ２（ｋ）との各特徴点についての対応付け処理を、先に説明した図４のフローの処理手順に従って実行し、前述の式（式２）を適用してＦ行列を求めることができる。
【００９５】
図１２は、複数フレームからなる時系列画像に基づいて、それぞれの画像フレームから特徴点としての球体中心位置を求める処理手順を示すフローチャートである。図１２に示すフローチャートの各処理ステップについて説明する。ここでは、特徴点抽出処理対象のカメラＮｏ．をｍとし、カメラＮｏ．ｍが撮影した画像フレーム数がｋであるとする。
【００９６】
ステップＳ７０１において、ｍ番目（ｍ=１，２，……,Ｎ）のカメラの観測（撮影）画像Ｉｍ（ｔ）（ｔ＝１，２，・・，ｋ）をキャリブレーション処理装置に入力する。
【００９７】
ステップＳ７０２において、順次、各フレームについての処理を実行するための処理フレームの初期値としてｔ＝１を設定する。ステップＳ７０３において、カメラ映像Ｉｍ（ｔ）を読み込み、先に図１０を参照して説明した手順に従って、読み込みフレームにおける球体の検出およびその中心位置の推定処理を実行する。
【００９８】
処理対象画像内に球体の画像が検出されないか、または球体全体が含まれていない場合（ステップＳ７０４：Ｎｏ）には、前述したように球体中心位置推定処理が実行されないが、キャリブレーション処理装置のメモリには、その結果、すなわち、中心位置が求められていないことを示すフレーム対応データとして、ステップＳ７１２においてＰｍ（ｔ）＝Ｎｕｌｌが保存される。
【００９９】
画像内に球体全体が検出された場合、先に説明した図１０の手法に従って球体の中心位置の推定が実行され、その結果を、ステップＳ７０５において、フレーム対応の中心位置データＰｍ（ｔ）としてメモリに保存する。
【０１００】
ここで、Ｐｍ（ｔ）は、ｍ番目のカメラ映像におけるt（t=1,……,ｎ）フレーム目の球体中心位置を意味する。ステップＳ７０６では、全フレームの処理が終了したか否か、すなわち［ｔ＜ｋ？］の判定処理が実行され、未処理フレームがある場合は、ステップＳ７１１において、［ｔ＝ｔ＋１］の更新処理を実行し、ステップＳ７０３以下において、球体中心位置の推定処理、保存処理が実行される。
【０１０１】
図１２に示す処理をＮ台のカメラ全てについて実行し、全てのカメラ映像から複数フレームにおけるボール（発光球体）の中心位置Ｐｍ（ｔ）を求める。
【０１０２】
キャリブレーション処理を実行する隣接カメラ、または離れたカメラの撮影フレームから中心位置が求められなかったフレームを除くフレームの組を用いて、図１１に示す特徴点分布データの組を構成し、構成した特徴点分布データにおける対応フレームの特徴点対応付け処理を実行して、Ｆ行列を算出する。特徴点の対応付けによるＦ行列の算出処理は、先に図３、図４を参照して説明したと同様の手法によって実行される。Ｆ行列が決定されると、Ｆ行列を用いて各カメラの撮影画像の補正処理が可能となり、複数カメラの実際の撮影画像から、高精度な仮想視点カメラ画像を生成することが可能となる。
【０１０３】
図１３に本発明のキャリブレーション処理装置の機能構成を説明するブロック図を示す。本発明のキャリブレーション処理装置において実行する各種の処理は、コンピュータ・プログラムに従った処理として実行可能である。具体的には、制御手段としてのＣＰＵの制御の下に様々な処理が実行される。図１３は、制御手段としてのＣＰＵの実行する処理を個別に説明するものであり、本発明のキャリブレーション処理装置の実行する機能を説明するブロック図である。具体的なハードウェア構成については後段で説明する。
【０１０４】
図１３のブロック図について説明する。画像入力部６０１は、発光球体を撮影した画像データを入力する。キャリブレーション処理は、多くの場合、２つのカメラ間の画像調整を目的とするものであり、発光球体を異なる視点から撮影した２つのカメラのフレーム画像が入力される。この入力フレーム画像は、先に図６を参照して説明した構成において取得された画像であり、それぞれのカメラの各フレーム画像は同期された画像データである。
【０１０５】
特徴点抽出部６０２は、図１０乃至図１２を参照して説明した手順に従って、各フレームの発光球体の中心位置を特徴点として求めるものである。対応付け処理部６０３は、各カメラで撮影された画像に基づいて求められた複数の特徴点からなる特徴点分布データ（例えば図１１に示す特徴点分布データ５１１，５１２）に基づいて、特徴点の対応付け処理を実行する。この対応付け処理は、例えばPixel-basedマッチング、Area-basedマッチング、Feature-basedマッチング等によって実行される。
【０１０６】
対応付け処理が実行されると、次に、Ｆ行列算出部６０４において、対応付けデータに基づくＦ行列算出処理が実行される。対応付けデータに基づくＦ行列算出処理は、先に図３、図４を参照して説明した処理に従って実行されるものであり、前述した式（式２）に従って、Ｆ行列が求められる。
【０１０７】
求められたＦ行列は、仮想視点画像生成部６０５に出力され、Ｆ行列に基づく２つのカメラの取得画像のキャリブレーション、すなわち補正処理が実行され、補正画像に基づいて２つのカメラの間の実際には撮影されていない仮想視点カメラの画像の生成が行われる。
【０１０８】
なお、算出されたＦ行列に基づいてカメラ自体の調整処理としてのキャリブレーションを実行してもよい。取得した画像の補正を行うか、カメラ自体の調整を行うかは選択的事項である。
【０１０９】
先に説明したように、同じ対象を注目している視点の異なる複数カメラで撮影した多視点映像から、それらの実写カメラの間に、あたかも仮想カメラで撮影したような任意の仮想視点映像を生成し表現するためには、実写カメラ間の位置関係を正確に求めることが必要となる。実写カメラ間の位置関係を示すパラメータとしてのファンダメンタル（Fundamental）行列により、２つのカメラの正確な位置関係が取得され、求められた位置関係に基づく撮影画像の補正、合成が高精度に実行可能となり、２つのカメラの間の実際には撮影されていない仮想視点カメラの高精度な画像生成が可能となる。
【０１１０】
次に、図１４に示すフローチャートを参照して、本発明のキャリブレーション処理装置の実行する最適なＦ行列の算出処理手順について説明する。
【０１１１】
ステップＳ８０１において、まず、発光球体をキャリブレーション対象となる各カメラが観測できる位置に置く。例えば、各カメラの光軸が交わるところに発光球体を置き移動させる。ステップＳ８０２において、各カメラにより移動する発光球体を撮影する。この撮影処理においては、図５〜８を参照して説明した通り、各カメラの撮影フレームが同期したフレームとして取得される。
【０１１２】
ステップＳ８０３において、各カメラの撮影画像から、特徴点としての球体中心位置を検出する。球体中心位置の検出は、図９、図１０を参照して説明した手順に従って実行する。
【０１１３】
ステップＳ８０４において、検出された球体中心位置を各カメラ画像の特徴点として、キャリブレーション対象カメラ画像間の対応付け処理を行う。特徴点対応付け処理は、図１１、図１２を参照して説明した手順に従って実行する。
【０１１４】
ステップＳ８０５において、対応点の数が８点に達しているかいないかを判定する。前述したようにＦ行列の９個の要素の比率を算出するためには、８つの特徴点の対応付けが必要となる。対応点数が８未満である場合は、ステップＳ８０１に戻り、さらに発光球体を動かして球体の位置を変えながら、キャリブレーション処理対象の複数カメラによる撮影画像を取得する。
【０１１５】
対応点の数が８点以上に達した場合、ステップＳ８０６に進み、特徴点の対応点に基づいてＦ行列を算出する。Ｆ行列の算出は、図２〜図４を参照して説明したように、式（式２）に従って行われる。なお、カメラによる撮影画像は、１回の撮影処理において、例えば３０フレーム／秒で数秒間撮影されることになり、１００以上のフレームが取得され、これら多数のフレームから特徴点抽出処理が実行される。
【０１１６】
従って、対応付け処理対象となる特徴点を１００個以上の特徴点からランダムに選択し、選択点に基づいて特徴点の対応付け処理がなされる。さらに対応付けされた特徴点に基づいてＦ行列の算出が実行される。しかし、特徴点の対応付けはあくまで画像間の相関に基づいて行われるものであるため、対応付け処理が誤って実行される場合も多い。このような誤りがあると正確なＦ行列が求まらなくなる。従って誤って対応付けのなされた特徴点の組み合わせを排除して、正確なＦ行列を求める処理が必要となる。
【０１１７】
ステップＳ８０７以下の処理は、誤った対応付けのなされた特徴点等、Ｆ行列の算出に不適当と判断される特徴点を排除する処理である。
【０１１８】
ステップＳ８０７において、算出したＦ行列を用いてエピポーララインを算出する。さらに、ステップＳ８０８において、Ｆ行列推定に使われた対応点とエピポーララインとの距離（誤差）を算出する。その誤差が、予め定めた閾値より大きい場合、球体位置を変えて、その中心を検出し、新しい対応点を求める。
【０１１９】
図１５および図１６を参照して、ステップＳ８０７，８０８の処理、すなわち、エピポーララインの生成と、Ｆ行列推定に使われた対応点とエピポーララインとの距離（誤差）の算出処理について説明する。まず、エピポーララインの生成について説明する。エピポーララインは２つのカメラの位置関係に基づいて設定されるラインであり、一般的にはステレオ法による視差検出により生成される。
【０１２０】
ステレオ法について、その原理を簡単に説明する。ステレオ法は複数のカメラを用いて２つ以上の視点（異なる視線方向）から同一対象物を撮影して得られる複数の画像における画素同士を対応づけることで計測対象物の三次元空間における位置を求めようとするものである。例えば基準カメラと検出カメラにより異なる視点から同一対象物を撮影して、それぞれの画像内の計測対象物の距離を三角測量の原理により測定する。
【０１２１】
図１５は、ステレオ法の原理を説明する図である。基準カメラ（Ｃａｍｅｒａ１）と検出カメラ（Ｃａｍｅｒａ  ２）は異なる視点から同一対象物を撮影する。基準カメラによって撮影された画像中の「ｍｂ」というポイントの奥行きを求めることを考える。
【０１２２】
基準カメラによる撮影画像中のポイント「ｍｂ」に見える物体は、異なる視点から同一物体を撮影している検出カメラによって撮影された画像において、「ｍ１」、「ｍ２」、「ｍ３」のようにある直線上に展開されることになる。この直線をエピポーラライン（Ｅｐｉｐｏｌａｒ  ｌｉｎｅ）Ｌｐと呼ぶ。
【０１２３】
基準カメラにおけるポイント「ｍｂ」の位置は、検出カメラによる画像中では「エピポーラライン」と呼ばれる直線上に現れる。撮像対象となる点Ｐ（Ｐ１，Ｐ２，Ｐ３を含む直線上に存在する点）は、基準カメラの視線上に存在する限り、奥行きすなわち基準カメラとの距離の大小に拘らず、基準画像上では同じ観察点「ｍｂ」に現れる。これに対し、検出カメラによる撮影画像上における点Ｐは、エピポーラ・ライン上に基準カメラと観察点Ｐとの距離の大小に応じた位置にあらわれる。
【０１２４】
本発明の構成においては、キャリブレーション対象となる２つのカメラの撮影画像に基づいて特徴点抽出を行い、抽出した特徴点に基づいて、ステップＳ８０６においてＦ行列を算出した。このＦ行列は、２つのカメラ間の位置関係を示すパラメータであり、この位置関係パラメータに基づいてエピポーララインの設定が可能となる。
【０１２５】
図１６を参照してエピポーララインの設定について説明する。図１６（ａ），（ｂ）は、キャリブレーション処理対象となるカメラの撮影した複数フレームにおいて求めた特徴点（球体中心）をまとめて示した図である。これは、図１１に示した特徴点分布データ５１１，５１２に相当する。さらに、（ｂ）には、図１４に示すフローのステップＳ８０６において求めたＦ行列に基づいて設定したエピポーララインＬ１，Ｌ２，Ｌｉを示している。これらのエピポーララインは、Ｆ行列算出のために対応付け処理を実行した例えば８つの特徴点に基づいて設定されたエピポーララインである。
【０１２６】
例えばカメラ１と２の画像における対応点ｍｌｉ（ｉ=１,……,Ｐ）とｍ２ｉ（ｉ=１,……,Ｐ）を用いて推定されたＦ行列から、次の式（式３）、（式４）によってカメラ１画像内の各特徴点（対応点）ｍ１ｉ（ｉ=１,……,Ｐ）に対して、カメラ２画像上でのエピポーララインＬｉが得られる。同様に、カメラ２画像内の各特徴点に対して、カメラ１画像でのエピポーララインが得られる。
【０１２７】
【数３】
0004238586.tif 000004
【０１２８】
上記式（式３）に基づいて、下式（式４）に示される１つの直線（エピポーラライン）が設定される。
【０１２９】
【数４】
0004238586.tif 000005
【０１３０】
しかし、Ｆ行列算出に用いた特徴点は、２つのカメラの撮影した多数フレームに存在する多数の特徴点からランダムに選択された特徴点である。Ｆ行列が正確に算出されていれば、特徴点は、Ｆ行列に基づいて設定されるエピポーラライン上にのることになるが、特徴点の正確な抽出あるいは正確な対応付けが実行されていないと、特徴点がエピポーララインからずれた位置になる。ずれが大きい場合は特徴点対応付け処理が不正確であり、Ｆ行列もまた不正確なものであると判定される。
【０１３１】
このＦ行列の正確度を判定する指標として、特徴点と、エピポーララインとの距離Ｄｉの算出を実行する。図１６に示すように、Ｆ行列に基づいて設定されたエピポーララインＬ１，Ｌ２・・，Ｌｉと、本来、ライン上にあるべき対応点としての各特徴点ｍ２１，ｍ２２，．．ｍ２ｉとの距離Ｄ１，Ｄ２，．．Ｄｉを求める。
【０１３２】
ステップＳ８０９において、各算出距離Ｄ１，Ｄ２，．．Ｄｉと、予め定めた閾値と比較する。閾値より大の距離を持つ特徴点ｍ２ｉがあった場合は、ステップＳ８１０において、その特徴点の組、すなわち、カメラ１とカメラ２の特徴点の組ｍ１ｉ，ｍ２ｉを対応付け対象から除いて、ステップＳ８０６において、その他の対応付け可能な特徴点の対応付け処理データに基づいて、再度Ｆ行列を算出する。
【０１３３】
ステップＳ８０９において、各算出距離Ｄ１，Ｄ２，．．Ｄｉのすべてが予め定めた閾値以下となった場合は、ステップＳ８１１において、各算出距離Ｄ１，Ｄ２，．．Ｄｉの平均値を算出し、平均値と予め定めた第２の閾値とを比較する。距離平均値が第２の閾値以上となった場合は、再度ステップＳ８０６において、その他の対応付け可能な特徴点の対応付け処理データに基づいて、再度Ｆ行列を算出する。
【０１３４】
ステップＳ８１１において、各算出距離Ｄ１，Ｄ２，．．Ｄｉの平均値が第２の閾値未満となった場合は、ステップＳ８１２に進み、特徴点の分布の判定を行う。特徴点分布判定処理について、図１７を参照して説明する。対応付け処理を実行する特徴点が撮影画像フレームの一部に偏っている場合、各カメラ間の正確な位置関係を求めることは困難となる。すなわち正確なＦ行列の算出は困難となる。そこで対応付け処理を実行する特徴点分布を撮影画像フレーム全体に散在するものとして、より正確なＦ行列算出を行うため、特徴点分布を確認し、特徴点の偏在がある場合には、離れた位置に新たな特徴点を設定して、再度Ｆ行列算出を行う。
【０１３５】
図１７に示すように、カメラ１の画像上の対応点ｍ１ｉ（ｉ=１,……,Ｐ）及びカメラ２の画像上の対応点ｍ２ｉ（ｉ=１,……,Ｐ）の座標値を用いて、下式（式５）に示すように、それぞれの座標分布（ｘ、ｙの平均値）を求める。
【０１３６】
【数５】
0004238586.tif 000006
【０１３７】
上記各式で求められた各カメラの座標分布が、それぞれ画像中心（ｘｃ１，ｙｃ１）、（ｘｃ２，ｙｃ２）から離れている場合、特徴点の偏在があると判定し、新たな特徴点の追加を行う。具体的には、上記各式で求められた各カメラの座標分布値と画像中心（ｘｃ１，ｙｃ１）、（ｘｃ２，ｙｃ２）との距離を、予め定めた第３の閾値と比較して閾値より大である場合に特徴点分布に偏りがあると判定し、ステップＳ８１３からステップＳ８１４に進み、必要となる特徴点位置を設定する。指示する追加特徴点は、上述の式（式５）において求められる座標分布の偏りを減少させる位置に設定される。例えば図１７に示す点ｍ１ｋ、ｍ２ｋである。
【０１３８】
ステップＳ８１５では、指示された特徴点を取得可能な位置に球体を移動し、その後、ステップＳ８０２に戻り、再度、球体のカメラ撮影を実行して、追加特徴点を加えて特徴点対応付け処理、Ｆ行列算出処理を実行する。
【０１３９】
ステップＳ８１３の特徴点の偏り判定において、特徴点の偏りがないと判定されると、求めたＦ行列を最終的なＦ行列として処理を終了する。
【０１４０】
このように、画像観測−＞球体検出−＞球体中心推定−＞対応付け−＞F行列推定−＞エピポーラライン算出−＞対応点とエピポーララインとの誤差計算−＞誤差値評価といった処理手順は、誤差評価がある閾値より小さくなるまで繰り返す。さらに、上記の誤差値がある閾値より小さくなった場合、画像間の視差情報を用いて、対応点の位置（つまり、球体の空間位置）が偏っているかどうかを判定する。もし、対応点が偏っていた場合、球体の置くべき空間位置を提示し、上記の繰り返し作業を行う。その結果、照明環境などが不安定な現場撮影でも高精度なカメラキャリブレーションを行うことが可能となる。
【０１４１】
上述したように、図１４を参照して説明した処理手順に従えば、キャリブレーション対象カメラの取得した球体の画像から求められる球体中心位置を特徴点として対応付け、Ｆ行列を算出する処理において、対応付け設定を行う特徴点の選択誤りや、対応付け処理における誤りが発生した場合であっても、その誤りを訂正することが可能となる。また特徴点が偏在している場合にも、偏在状況を確認し、偏在しない位置に特徴点を追加して新たなＦ行列を算出することができるので、より高精度なＦ行列を算出することが可能となる。従って、高精度なＦ行列に基づくカメラキャリブレーション、あるいは取得画像の補正処理、および補正処理に基づく高精度な仮想視点画像の生成が可能となる。
【０１４２】
次に、図１８を参照して、本発明に係るキャリブレーション処理装置の具体的なハードウェア構成例について説明する。ＣＰＵ(Central processing Unit)９０１は、上述した各フローチャートを参照して説明した処理プログラムや、ＯＳ（Operating System）を実行するプロセッサである。ＲＯＭ（Read-Only-Memory）９０２は、ＣＰＵ９０１が実行するプログラム、あるいは演算パラメータとしての固定データを格納する。ＲＡＭ（Random Access Memory）９０３は、ＣＰＵ９０１の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用される。ＨＤＤ９０４はハードディスクの制御を実行し、ハードディスクに対する各種データ、プログラムの格納処理および読み出し処理を実行する。
【０１４３】
バス９１０はＰＣＩ（Peripheral Component Internet/Interface）バス等により構成され、各モジュール、入出力インタフェース９１１を介した各入手力装置とのデータ転送を可能にしている。
【０１４４】
入力部９０５は、画像データの入力部、およびキーボード、ポインティングデバイス等によって構成され、キャリブレーションを実行するカメラによって取得された画像データを入力する他、ＣＰＵ９０１に各種のコマンド、データを入力する。出力部９０６は、撮影画像、特徴点抽出処理画像、あるいはＦ行列算出後に、カメラ取得画像に基づいて生成した仮想視点画像等を表示する例えばＣＲＴ、液晶ディスプレイ等である。
【０１４５】
通信部９０７は他デバイスとの通信処理を実行する。例えば図６に示す画像の同期取得処理を実行するシステムにおいて取得した複数のカメラの映像を入力する。入力画像に基づいて上述のＦ行列算出処理、仮想視点画像生成処理等が制御部としてのＣＰＵ９０１の制御の下に実行される。なお、処理対象とする画像データは、通信部を介して入力するばかりでなく、入力部９０５に構成したＡ／Ｖ入力部を介して入力してもよく、また、ドライブ９０８に接続されたＨＤＤ、ＣＤ、ＤＶＤ等のリムーバブル記録媒体９０９に格納された画像データを処理対象画像として入力する構成としてもよい。
【０１４６】
ドライブ９０８は、フレキシブルディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体９０９の記録再生を実行するドライブであり、各リムーバブル記録媒体９０９からのプログラムまたはデータ読み取り、リムーバブル記録媒体９０９に対するプログラムまたはデータ格納処理を実行する。
【０１４７】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０１４８】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【０１４９】
例えば、プログラムは記憶媒体としてのハードディスクやＲＯＭ（Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【０１５０】
また、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記憶媒体にインストールすることができる。
【０１５１】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【０１５２】
【発明の効果】
以上、説明したように、本発明の構成によれば、多視点画像撮影カメラ間の調整、または多視点画像撮影カメラによる取得画像の補正処理に適用するパラメータ算出処理を実行するキャリブレーション処理において、発光球体を各カメラにより撮影する構成としたので、照明環境が不安定な撮影現場等でも球体検出と球体中心位置の取得を容易に行うことができ、球体中心位置を特徴点として対応付け処理を実行することで高精度なＦ行列の算出が可能となる。すなわち、多視点映像撮影システムを構成する実写カメラ間の位置関係を示すパラメータであるジオメトリ・パラメータ（Geometry Parameters）としてのファンダメンタル（Fundamental）行列の算出を高精度に行なうことが可能となり、高速かつ高精度なキャリブレーションが可能となる。
【０１５３】
さらに、本発明の構成によれば、照明環境等に影響しにくい発光球体をキャリブレーション治具として用い、球体の中心位置をリアルタイムに検出し対応付けしながらＦ行列を推定し、推定されたＦ行列と対応点との誤差や位置関係などを評価することによって、必要となる対応点の数や三次元空間上に置くべき球体位置を指示し、より高精度なＦ行列を効率的に算出することが可能となる。
【０１５４】
さらに、本発明の構成によれば、同期機能を備えた多視点映像撮影システムによって球体画像を観測撮影し、各パソコン上のメモリやハードディスクなどの記録媒体に収録しながらカメラキャリブレーションを行うことが可能であり、各パソコン上の画像処理手法によって、各フレーム画像における球体中心の座標位置（特徴点）抽出、抽出特徴点を用いた画像間の対応付けによるファンダメンタル（Fundamental）行列の推定、推定Ｆ行列の精度評価、対応点の数や対応点の適切な位置の判定、提示等を、例えばＰＣ上で実行可能であり、高速かつ高精度なキャリブレーション処理を、ＰＣ等、簡易なシステムにおいて実行することが可能となる。
【図面の簡単な説明】
【図１】多視点カメラ撮影処理及び多視点カメラで撮影した実写映像を用いて仮想視点映像を生成する処理について説明する図である。
【図２】キャリブレーション処理に適用する各種パラメータを説明する図である。
【図３】一般的なＦパラメータ推定方法を示す図である。
【図４】Ｆ行列を推定するために、チェッカパターンをキャリブレーション治具として用いた場合のカメラキャリブレーション手順を示した図である。
【図５】発光球体をキャリブレーションツールとして用い、異なる視点から発光球体を撮影する構成例を示す図である。
【図６】ネットワーク同期機構を備えた複数カメラ映像の同期収録構成について説明する図である。
【図７】ＤＶキャプチャボードにより構成される映像信号処理部の構成例について説明する図である。
【図８】サーバーＰＣで実行する同期調整処理の詳細について説明する図である。
【図９】一台のカメラで観測した発光球体の時系列画像（t=1,……,ｋ）について説明する図である。
【図１０】特徴点抽出処理として実行される発光球体の中心点位置判定処理の手順を説明する図である。
【図１１】隣接カメラで観測された時系列画像から、それぞれ球体の中心位置を検出し、一枚の画像から抽出された特徴点のように設定する処理を説明する図である。
【図１２】複数フレームからなる時系列画像に基づいて、それぞれの画像フレームから特徴点としての球体中心位置を求める処理手順を示すフローチャートを示す図である。
【図１３】本発明のキャリブレーション処理装置の機能構成を説明するブロック図である。
【図１４】本発明のキャリブレーション処理装置の実行する最適なＦ行列の算出処理手順について説明する図である。
【図１５】エピポーララインについて説明する図である。
【図１６】エピポーララインの生成と、Ｆ行列推定に使われた対応点とエピポーララインとの距離（誤差）の算出処理について説明する図である。
【図１７】特徴点分布判定処理について説明する図である。
【図１８】本発明に係るキャリブレーション処理装置の具体的なハードウェア構成例について説明する図である。
【符号の説明】
１００  被写体
１０１，１０２  カメラ
１１１，１１２  実写画像
１１３  仮想視点カメラ
１２１  仮想視点カメラ画像
３０１  カメラ
３０２  実写画像
３０１  カメラ
３２０  同期信号発生部
３３０  Ａ／Ｄコンバータ
３５０  クライアントＰＣ
３５５  映像信号処理部
３５６  記憶手段
３５７  ネットワークカード
３６０  画像モニタ
３７０  サーバーＰＣ
３８０  ネットワーク
３９１  ＣＰＵ
３９２  ＲＡＭ
３９３  ＲＯＭ
３９４  １３９４ポート
３９５  ＬＩＮＫ／ＰＨＹ
３９６  記憶手段
５００  発光球体
５０１，５０２  カメラ
５１１，５１２  特徴点分布データ
６０１  画像入力部
６０２  特徴点抽出部
６０３  対応付け処理部
６０４  Ｆ行列算出部
６０５  仮想視点画像生成部
９０１  ＣＰＵ
９０２  ＲＯＭ
９０３  ＲＡＭ
９０４  ＨＤＤ
９０５  入力部
９０６  出力部
９０７  通信部
９０８  ドライブ
９０９  リムーバブル記録媒体
９１０  バス
９１１  入出力インタフェース
【図１】
0004238586.tif 000007
【図２】
0004238586.tif 000008
【図３】
0004238586.tif 000009
【図４】
0004238586.tif 000010
【図５】
0004238586.tif 000011
【図６】
0004238586.tif 000012
【図７】
0004238586.tif 000013
【図８】
0004238586.tif 000014
【図９】
0004238586.tif 000015
【図１０】
0004238586.tif 000016
【図１１】
0004238586.tif 000017
【図１２】
0004238586.tif 000018
【図１３】
0004238586.tif 000019
【図１４】
0004238586.tif 000020
【図１５】
0004238586.tif 000021
【図１６】
0004238586.tif 000022
【図１７】
0004238586.tif 000023
【図１８】
0004238586.tif 000024