説明

キャリブレーション処理装置、およびキャリブレーション処理方法、並びにコンピュータ・プログラム

【課題】多視点画像撮影システムにおけるキャリブレーションを高精度にかつ効率的に実行する装置および方法を提供する。
【解決手段】キャリブレーション処理対象となるカメラにより、発光球体を異なる方向から撮影し、撮影画像フレームから球体中心位置を特徴点として抽出し、抽出した球体中心位置に基づく特徴点対応付けを実行し、特徴点対応付けデータに基づいてファンダメンタル(Fundamental)行列の算出を実行する。照明環境等に影響しにくい発光球体をキャリブレーション治具として用い、球体の中心位置をリアルタイムに検出し対応付けしながらF行列を推定し、推定されたF行列と対応点との誤差や位置関係などを評価することによって、必要となる対応点の数や三次元空間上に置くべき球体位置を指示し、より高精度なF行列を効率的に算出することが可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、キャリブレーション処理装置、およびキャリブレーション処理方法、並びにコンピュータ・プログラムに関する。さらに詳細には、異なる位置に配置した複数のカメラで被写体を撮影して多視点画像を生成する多視点画像撮影カメラ間の調整、または多視点画像撮影カメラの取得画像の補正処理に適用するパラメータ算出処理を行うキャリブレーション処理装置、およびキャリブレーション処理方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【0002】
近年、パノラマ、全天球画像など、視点を様々に移動可能とした画像データの利用が盛んになりつつある。例えば、DVD、CD等の記憶媒体に複数の視点位置、視線方向からある被写体を撮影した画像を蓄積し、蓄積画像をCRT、液晶表示装置等に表示する際に、ユーザがコントローラの操作によって、自由な位置に視点を移動させて、被写体の像を観察するシステムが実現されている。また、インターネット等の通信システムを介して複数の視点位置、視線方向からある被写体を撮影した画像を配信し、ユーザがPC等のマウス操作により、好みの視点位置、視線方向からの画像をディスプレイに表示するシステム等が構築されている。
【0003】
コンピュータの処理能力の向上や多様な映像メディア再生機器の発展に伴って、以前困難とされた膨大なポリゴンデータや映像データ(コンテンツ)の処理が可能となり、視点の異なる複数台カメラで撮影された実世界(対象)の映像データをコンピュータや映像機器等により処理し、ユーザの要望に応じた任意視点の映像を実時間に生成し提示することができるようになってきている。
【0004】
コンピュータ上の処理によって複数の視点で撮影された画像から任意視点映像を生成し、提示するためには、(1)全てのカメラが同一の領域(注目対象)を見えていること、(2)各カメラ間の位置関係等が得られることが必要である。
【0005】
同じ対象を注目している視点の異なる複数カメラで撮影した多視点映像に基づいて、実写カメラの間の任意位置の仮想カメラで撮影した仮想視点映像を画像処理によって生成することが可能であるが、高精度な仮想視点映像を生成するには実写カメラ間の位置関係を正確に求めることが必要となる。実写カメラ間の位置関係を示すパラメータとしてジオメトリ・パラメータ(Geometry Parameters)がある。ジオメトリ・パラメータは、行列式によって表現され、これをファンダメンタル(Fundamental)行列またはF行列と呼ぶ。
【0006】
実写カメラ間の位置関係を表すファンダメンタル(Fundamental)行列を求める方法は、これまでにも数多く提案されている。例えば、幾つかの(隣接)カメラによって、三次元空間にあるチェッカパターンを同時に観測し、チェッカパターン画像上の特徴点(例えば、白黒パターンの交差点位置)を抽出し、それらの特徴点の対応付けを行うことによって、ファンダメンタル(Fundamental)行列を推定する方法が知られている(例えば非特許文献1)。
【0007】
しかしながら、(1)実際の撮影現場では、照明光の影響(例えば、反射光)等によって、撮影したチェッカパターン画像から必ずしも対応点を精度よく求めることができないため、高精度なファンダメンタル行列(以下、F行列と表現する)を推定することが容易ではない。(2)また、視点の異なる多数カメラで同一のチェッカパターンプレートを観測する場合、観測カメラはチェッカパターンプレートに正対していない場合が多く、そのため、観測されたチェッカパターン画像上のパターン変形によって、チェッカパターン画像における特徴点位置を精度よく検出することが容易ではないという問題がある。
【0008】
(3)さらに、多数のカメラを同じ対象(被写体)を囲むように配置しようとした場合、撮影されたチェッカパターンが変形するだけでなく、平面状のチェッカパターンを用いると、チェッカパターンを360度周囲取り囲むよう配置しても全てのカメラが同じチェッカパターンを同時に撮影することができない。その際、多視点カメラを幾つかのグループに分けて、チェッカパターンを複数のカメラで複数回に分けて撮影することが必要となり、多くの労力や時間等を費やすことになる。(4)さらに、カメラキャリブレーションを行う際、F行列を推定するためのチェッカ画像パターンが十分に収録できたか、またそれらのチェッカパターンの空間位置が適切であるかどうかを判断する処理についての明確な基準がなく、結果的に算出されるF行列の精度が保証されないという問題がある。
【非特許文献1】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)
【発明の開示】
【発明が解決しようとする課題】
【0009】
本発明は、上述の問題点に鑑みてなされたものであり、多視点映像撮影システムを構成する実写カメラ間の位置関係を示すパラメータであるジオメトリ・パラメータ(Geometry Parameters)の算出を高精度に行なうことを可能とし、高速かつ高精度なカメラキャリブレーションを実現するカメラキャリブレーション装置、およびカメラキャリブレーション方法、並びにコンピュータ・プログラムを提供することを目的とする。
【0010】
本発明は、照明環境等に影響しにくい発光球体をキャリブレーション治具として用い、球体の中心位置をリアルタイムに検出し対応付けしながらF行列を推定し、推定されたF行列と対応点との誤差や位置関係などを評価することによって、必要となる対応点の数や三次元空間上に置くべき球体位置を指示し、より高精度なF行列を自動的に推定するものである。
【0011】
球体の形状はカメラ観測視点位置によらないため、様々な視点位置で全てのカメラによって観測可能となる。また、同期機能を備えた多視点映像撮影システムによって球体画像を観測撮影し、各パソコン上のメモリやハードディスクなどの記録媒体に収録しながらカメラキャリブレーションを行うことが可能である。そして、各パソコン上の画像処理手法によって、各フレーム画像における球体中心の座標位置(特徴点)を抽出し、抽出した特徴点を用いた画像間の対応付けによってファンダメンタル(Fundamental)行列を推定する。さらに、推定されたF行列の精度評価を実行して、対応点の数や対応点の適切な位置、つまり、球体の空間位置を自動的に提示し、高速かつ高精度なカメラ間パラメータの自動的推定を実現する装置および方法を提供する。
【課題を解決するための手段】
【0012】
本発明の第1の側面は、
多視点画像撮影カメラ間の調整、または多視点画像撮影カメラによる取得画像の補正処理に適用するパラメータ算出処理を実行するキャリブレーション処理装置であり、
移動する球体を異なる視点方向から撮影した複数カメラの映像データを入力する画像入力部と、
前記画像入力部において入力する複数カメラの映像データを構成する複数の撮影画像フレームから球体中心位置を特徴点として抽出する処理を実行する特徴点抽出部と、
各カメラの対応フレームにおける特徴点として前記特徴点抽出部において抽出された球体中心位置の対応付け処理を実行する対応付け処理部と、
前記対応付け処理部において対応付けのなされた特徴点対応データに基づいてキャリブレーションパラメータとしてのF行列[ファンダメンタル(Fundamental)行列]を算出するF行列算出部を有し、
前記特徴点抽出部は、前記F行列の9個の要素の比率を算出するために必要となる少なくとも8点の球体中心位置データを各カメラの複数の撮影画像フレームから取得し、
前記対応付け処理部は、前記特徴点抽出部において抽出された8点以上の球体中心位置の対応付け処理を実行し、
前記F行列算出部は、対応付けのなされた8以上の特徴点対応データに基づいてキャリブレーションパラメータとしてのファンダメンタル(Fundamental)行列の要素値算出を実行する構成であることを特徴とするキャリブレーション処理装置にある。
【0013】
さらに、本発明のキャリブレーション処理装置の一実施態様において、前記球体は、発光球体であり、前記特徴点抽出部は、フレームに撮影された球体のエッジ情報に基づいて球体中心位置を算出する処理を実行する構成であることを特徴とする。
【0014】
さらに、本発明のキャリブレーション処理装置の一実施態様において、前記F行列算出部は、算出したF行列に基づくエピポーララインを設定し、設定したエピポーララインと、特徴点に対応する球体中心位置との距離を個別にまたは平均距離として算出し、該算出距離が予め定めた閾値より大である場合は新たな特徴点を含む特徴点対応データに基づいてF行列の再算出処理を実行する構成であることを特徴とする。
【0015】
さらに、本発明のキャリブレーション処理装置の一実施態様において、前記F行列算出部は、撮影画像フレーム内における球体中心位置、すなわち特徴点の分布状況判定処理を実行し、特徴点偏在が確認された場合、該偏在を解消する位置に追加設定した特徴点を含む特徴点対応データに基づくF行列再算出処理を実行する構成であることを特徴とする。
【0016】
さらに、本発明のキャリブレーション処理装置の一実施態様において、前記特徴点抽出部は、撮影フレーム内に球体全体のエッジが存在する場合にのみ、該エッジ情報に基づく中心位置算出処理を実行する構成であることを特徴とする。
【0017】
さらに、本発明の第2の側面は、
多視点画像撮影カメラ間の調整、または多視点画像撮影カメラの取得画像の補正処理に適用するパラメータ算出処理を実行するキャリブレーション処理方法であり、
移動する球体を異なる視点方向から撮影した複数カメラの映像データを入力する画像入力ステップと、
前記画像入力ステップにおいて入力する複数カメラの映像データを構成する複数の撮影画像フレームから球体中心位置を特徴点として抽出する特徴点抽出ステップと、
前記特徴点抽出ステップにおいて抽出された球体中心位置に基づいて特徴点対応付け処理を実行する対応付け処理ステップと、
前記対応付け処理ステップにおいて対応付けのなされた特徴点対応データに基づいてキャリブレーションパラメータとしてのF行列[ファンダメンタル(Fundamental)行列]を算出するF行列算出ステップを有し、
前記特徴点抽出ステップは、前記F行列の9個の要素の比率を算出するために必要となる少なくとも8点の球体中心位置データを各カメラの複数の撮影画像フレームから取得し、
前記対応付け処理ステップは、前記特徴点抽出ステップにおいて抽出された8点以上の球体中心位置の対応付け処理を実行し、
前記F行列算出ステップは、対応付けのなされた8以上の特徴点対応データに基づいてキャリブレーションパラメータとしてのファンダメンタル(Fundamental)行列を構成する要素値算出を実行することを特徴とするキャリブレーション処理方法にある。
【0018】
さらに、本発明のキャリブレーション処理方法の一実施態様において、前記球体は、発光球体であり、前記特徴点抽出ステップは、フレームに撮影された球体のエッジ情報に基づいて球体中心位置の算出処理を実行することを特徴とする。
【0019】
さらに、本発明のキャリブレーション処理方法の一実施態様において、前記F行列算出ステップは、算出したF行列に基づくエピポーララインを設定し、設定したエピポーララインと前記特徴点としての球体中心位置との距離を個別にまたは平均距離として算出し、該算出距離が予め定めた閾値より大である場合は新たな特徴点を含む特徴点対応データに基づくF行列再算出処理を実行することを特徴とする。
【0020】
さらに、本発明のキャリブレーション処理方法の一実施態様において、前記F行列算出ステップは、撮影画像フレーム内における球体中心位置、すなわち特徴点の分布状況判定処理を実行し、特徴点偏在が確認された場合、該偏在を解消する位置に追加設定した追加特徴点を含む特徴点対応データに基づくF行列再算出処理を実行することを特徴とする。
【0021】
さらに、本発明のキャリブレーション処理方法の一実施態様において、前記特徴点抽出ステップは、撮影フレーム内に球体全体のエッジが存在する場合にのみ、該エッジ情報に基づく中心位置算出処理を実行することを特徴とする。
【0022】
さらに、本発明の第3の側面は、
多視点画像撮影カメラ間の調整、または多視点画像撮影カメラの取得画像の補正処理に適用するパラメータ算出処理を実行するコンピュータ・プログラムであって、
移動する球体を異なる視点方向から撮影した複数カメラの映像データを入力する画像入力ステップと、
前記画像入力ステップにおいて入力する複数カメラの映像データを構成する複数の撮影画像フレームから球体中心位置を特徴点として抽出する特徴点抽出ステップと、
前記特徴点抽出ステップにおいて抽出された球体中心位置の対応付け処理を実行する対応付け処理ステップと、
前記対応付け処理ステップにおいて対応付けのなされた特徴点対応データに基づいてキャリブレーションパラメータとしてのF行列[ファンダメンタル(Fundamental)行列]を算出するF行列算出ステップを具備し、
前記特徴点抽出ステップは、前記F行列の9個の要素の比率を算出するために必要となる少なくとも8点の球体中心位置データを各カメラの複数の撮影画像フレームから取得するステップであり、
前記対応付け処理ステップは、前記特徴点抽出ステップにおいて抽出された8点以上の球体中心位置の対応付け処理を実行するステップであり、
前記F行列算出ステップは、対応付けのなされた8以上の特徴点対応データに基づいてキャリブレーションパラメータとしてのファンダメンタル(Fundamental)行列を構成する要素値算出を実行するステップであることを特徴とするコンピュータ・プログラムにある。
【0023】
なお、本発明のプログラムは、例えば、様々なプログラム・コードを実行可能な汎用システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【0024】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【0025】
本発明の構成によれば、多視点画像撮影カメラ間の調整、または多視点画像撮影カメラによる取得画像の補正処理に適用するパラメータ算出処理を実行するキャリブレーション処理において、発光球体を各カメラにより撮影する構成としたので、照明環境が不安定な撮影現場等でも球体検出と球体中心位置の取得を容易に行うことができ、球体中心位置を特徴点として対応付け処理を実行することで高精度なF行列の算出が可能となる。すなわち、多視点映像撮影システムを構成する実写カメラ間の位置関係を示すパラメータであるジオメトリ・パラメータ(Geometry Parameters)としてのファンダメンタル(Fundamental)行列の算出を高精度に行なうことが可能となり、高速かつ高精度なキャリブレーションが可能となる。
【0026】
さらに、本発明の構成によれば、発光球体をキャリブレーション治具として用い、球体の中心位置をリアルタイムに検出し対応付けしながらF行列を推定し、推定されたF行列と対応点との誤差や位置関係などを評価することによって、必要となる対応点の数や三次元空間上に置くべき球体位置を指示し、より高精度なF行列を効率的に算出することが可能となる。
【0027】
さらに、本発明の構成によれば、同期機能を備えた多視点映像撮影システムによって球体画像を観測撮影し、各パソコン上のメモリやハードディスクなどの記録媒体に収録しながらカメラキャリブレーションを行うことが可能であり、各パソコン上の画像処理手法によって、各フレーム画像における球体中心の座標位置(特徴点)抽出、抽出特徴点を用いた画像間の対応付けによるファンダメンタル(Fundamental)行列の推定、推定F行列の精度評価、対応点の数や対応点の適切な位置の判定、提示等を、例えばPC上で実行可能であり、高速かつ高精度なキャリブレーション処理を、PC等、簡易なシステムにおいて実行することが可能となる。
【発明を実施するための最良の形態】
【0028】
以下、本発明のカメラキャリブレーション装置、およびカメラキャリブレーション方法、並びにコンピュータ・プログラムについて、図面を参照しながら詳細に説明する。
【0029】
まず、図1を参照して多視点カメラ撮影処理及び多視点カメラで撮影した実写映像を用いて仮想視点映像を生成する処理について説明する。被写体100を、被写体100周囲に配置した複数のカメラで撮影する。各カメラは、異なる視点からの被写体100の画像を撮影する。実写画像は、配置するカメラ数に応じて取得される。しかし、各カメラ間の実写画像は取得できない。従って各カメラ間の画像、すなわち仮想視点の画像は、実写画像に基づく画像処理によって生成する。
【0030】
例えばカメラA101と、カメラB102との間にカメラが配置されていない場合、カメラA101と、カメラB102との間の画像は、これらのカメラの2つの実写画像111,112に基づいて生成する。これは、実際には撮影されていない画像を生成する処理、いわゆるビューインターポレーション処理によって生成することができる。
【0031】
ビューインターポレーションとは、複数のカメラからの画像から、実際のカメラのない視点から見える画像を生成する技術である。このビューインターポレーションについては、たとえば[S. M. Seitz and C. R. Dyer, "View Morphing," Proc. SIGGRAPH 96, ACM, 1996pp.21-30.]に記載されている。ビューインターポレーションによれば、複数のカメラに基づく実際の取得画像に基づいて、カメラのない視点の画像の生成が可能となる。
【0032】
例えば、カメラA101とカメラB102の間であたかも仮想カメラ113で撮影したような仮想視点カメラ画像121を生成するためには、カメラA101とカメラB102の特性の違いや相対的な位置関係を求め、これらの情報としてのパラメータに基づいて仮想視点画像の生成における各種補正を行なうことが必要になる。つまり、実写画像を撮影しているカメラの特性の差異を正確に把握した調整、すなわちカメラキャリブレーションを行う必要がある。
【0033】
仮想視点映像生成に必要となるキャリブレーションパラメータを適用した補正処理には、図2に示すように歪係数(Distortion Coefficient)、歪中心(Distortion Center)、アスペクト比(Aspect Ration)からなる歪曲収差パラメータに基づく歪パラメータ補正と、スケール因子、捻れ、画像中心データからなる内部パラメータ[A]と、並進[T]および回転[R]ベクトルからなる外部パラメータ[T,R]に基づくカメラ内部・外部パラメータ補正とがある。カメラ歪みパラメータについては、一般的にチェッカパターンや直線等をキャリブレーションを実行する複数カメラで撮影し、チェッカパターンや直線等の撮影画像に基づいて各カメラ間の調整パラメータの推定が行われる。
【0034】
カメラ内部・外部パラメータ[A,T,R]は、実写カメラ間の位置関係を示すパラメータとしてのジオメトリ・パラメータ(Geometry Parameters)を示す行列式によって表現される。これをファンダメンタル(Fundamental)行列(F行列)と呼ぶ。F行列は、下式(式1)によって示される。
【0035】
【数1】

【0036】
上記式によって示されるカメラ間のファンダメンタル(Fundamental)行列を求める方法については、既にいくつか提案されている。ファンダメンタル(Fundamental)行列を求める一般的な方法について簡単に説明する。
【0037】
図3は、一般的なF行列パラメータの推定方法を示す。まず、図3(a)に示すように、カメラ1,231とカメラ2,232によって、三次元空間にあるキャリブレーション治具としての画像パターン(例えば、チェッカパターン)を数回撮影し、撮影された画像I1,241(カメラ1,231実写画像)と、I2,242(カメラ2,232実写画像)から特徴点を抽出する。特徴点は、例えば、チェッカパターンの交差点m11,m12,......と、m21,m22,......を抽出する。
【0038】
特徴点抽出後、図3(b)または以下の式に示すように、抽出された特徴点m1iとm2i(i=1,2,......N)との対応付けによって、F行列を推定することができる。
【0039】
【数2】

【0040】
上記式において、fを、WWの最小固有値に対応する固有ベクトルとして算出することで、F行列の要素を求めることができる。
【0041】
図4は、実際にF行列を推定するために、チェッカパターンをキャリブレーション治具として用いた場合のカメラキャリブレーション手順を示した図である。
【0042】
まず、ステップS101において、キャリブレーション治具としてのチェッカパターンを異なる視点からカメラ1とカメラ2で撮影する。
【0043】
次に、ステップS102において、カメラ1とカメラ2で撮影したチェッカパターン画像I1(x,y)とI2(x,y)における特徴点m1(x,y)とm2(x,y)を抽出し、ステップS103において、各抽出特徴点m1(x,y)とm2(x,y)間の対応付け処理を行う。
【0044】
対応付け処理とは、同一対象物を撮影して得られる複数の画像における画素同士を対応づけるマッチング処理である。従来から、よく使われている「対応付け」の手法には、例えばPixel-basedマッチング、Area-basedマッチング、Feature-basedマッチングがある。Pixel-basedマッチングとは、一方の画像における点の対応を、他方の画像でそのまま探索する方法である。Area-basedマッチングとは、一方の画像における点の対応を、他方の画像で探す時、その点の周りの局所的な画像パターンを用いて探索する方法である。Feature-basedマッチングとは、画像から濃淡エッジなどの特徴を抽出し、画像間の特徴だけを用いて対応付けを行う方法である。これらの方法を用いて複数の画像から抽出した特徴点に基づく画素同士の対応付けを行う。
【0045】
最後に、ステップS104において、取得した複数の対応点に基づいて、前述の式(式2)を適用したF行列の算出を行なう。すなわち、抽出された特徴点m1iとm2i(i=1,2,......N)の対応付けによって、fを、WWの最小固有値に対応する固有ベクトルとして算出することで、F行列、すなわちファンダメンタル(Fundamental)行列(=Fパラメータ)を求める。
【0046】
しかしながら、上述の方法においては、カメラとチェッカパターンプレートが正対していない場合、特徴点の抽出精度が低下するという問題がある。また、複数カメラの配置によって、各カメラで同時にチェッカパターンを観測できない場合が発生することや、画像間の特徴点の対応付けが撮影画像の品質に影響され、処理時間がかかるなどの問題がある。
【0047】
これらの問題を解決する手法として、本発明では、平面的なチェッカパターンではなく移動する発光球体をキャリブレーションツールとして用い、この発光球体を異なる方向から撮影する複数のカメラを設置し、各カメラ映像の同期収録を行い、収録画像に基づいてファンダメンタル(Fundamental)行列(=Fパラメータ)を算出して、カメラキャリブレーションを実行する。本発明の構成によれば、平面のチェッカパターンを異なる方向から撮影することによる特徴点抽出精度の低下や、各カメラで同時にチェッカパターンを観測できないといった問題が発生することなく、効率的かつ高精度なカメラキャリブレーションを実行できる。
【0048】
移動する発光球体をキャリブレーションツールとして用い、異なる視点から発行球体を撮影する構成例を図5に示す。また、各カメラの収録映像の同期記録処理装置構成例を図6に示す。
【0049】
図5に示すように、カメラキャリブレーションを実行するカメラ301−1〜Nをキャリブレーションツールとしての発光球体300の周囲に配列し、発光球体300を移動させて、例えば30フレーム/秒の映像を撮影する。図には、カメラ1,301−1、カメラ2,301−2、およびカメラn,301−nのそれぞれの取得画像(1フレーム)302−1,2,nを示している。
【0050】
図5に示すような発光球体を用いる利点は、(1)任意背景・環境で観測された画像からその球体を容易に検出できることと、(2)任意の視点位置にあるカメラで球体を同じ形状(円形)として観測できることと、(3)画像内における球体の中心位置を精度よく推定できることと、(4)時系列画像から抽出された球体の中心を用いる画像間の対応点処理が容易にできることにある。
【0051】
F行列を推定するためには、上述の式2に示すF行列を構成する9個の要素(f11,f12,・・f33)の値を決定することが必要となる。これは、実質的にはF行列の9個の要素の比率を求めることになり未知数が8つの方程式の解を求めることに相当する。従って、多数の対応点(少なくとも8点以上)の関係式を設定することが必要となる。
【0052】
本発明の構成では、移動する発光球体を撮影し、時間軸にそったフレーム毎に発光球体の中心位置を特徴点として抽出し、それら、時間軸にそったフレームから抽出される複数の特徴点を、あたかも一回の撮影画像から抽出されたと同様の扱いとして、画像間の対応付けに用いる。例えば30フレーム/秒で5秒間撮影を実行すれば、30×5=150フレームを各カメラで撮影することが可能であり、150個の特徴点(=球体中心位置)を抽出できる。
【0053】
このような特徴点抽出と対応付けを自動的に行うために、図6に示すようにネットワーク同期機構を備えた複数カメラ映像の同期収録装置を適用する。
【0054】
異なる視点からキャリブレーションツールとしての発光球体300を撮影するカメラ1〜nのカメラ301は、同期信号発生器320より出力された同期信号(水平、垂直同期信号)を各カメラの外部同期入力端子を介して入力し、複数のカメラ1〜nにより観測された多視点の複数映像を同期映像として出力する。
【0055】
各カメラ出力映像は、例えば輝度信号(Y)とRGB色成分信号の差信号(C)としてのY/C信号等の映像信号であり、各カメラは、映像信号を各カメラに対応して設定されたADコンバータ330に入力する。ADコンバータ330では、カメラ301から入力する映像信号のデジタルデータへの変換、さらに必要に応じて圧縮データ(例えばモーションJPEG等)への変換処理を実行し、処理後のデータをそれぞれのデータを記録する画像記録処理装置としてのクライアントPC(PC1〜PCn)350、画像モニタ360に出力する。
【0056】
画像記録処理装置としてのクライアントPC(PC1〜PCn)350は、データを記録する記録媒体356、例えばハードディスク、DVD、CD等を備えている。
【0057】
クライアントPC(PC1〜PCn)350にADコンバータ330から入力した映像信号は、クライアントPC(PC1〜PCn)350内の映像信号処理部355に入力される。映像信号処理部355は、例えば1394DVキャプチャボードにより構成される。
【0058】
クライアントPC350を構成する複数のPC1〜PCnは、汎用PC上で実行可能なDVキャプチャソフトによって、各カメラからのDV映像をそれぞれのPC内ハードディスク356に収録する。各クライアントPC(PC1〜PCn)350とサーバーPC370は、各PCに装着されたネットワークインタフェースとしてのネットワークカード357、およびネットワーク380によって接続されており、サーバーPC370から各クライアントPC(PC1〜PCn)350に対して録画開始コマンドを出力することにより、各クライアントPC350が一斉に録画を開始することが可能となる。
【0059】
クライアントPC350内の例えば1394DVキャプチャボードにより構成される映像信号処理部355の構成例を図7に示す。
【0060】
IEEE1394ポート(以下、1394ポート)394と、LINK/PHY395は、ADコンバータ330によって処理されたデジタルビデオ(DV)信号を取り込む。1394ポート394は、DV信号を取り込む入力ポートであり、入力したDV信号はLINK/PHY395へ送出される。LINK/PHY395は、入力したDV画像データをバッファ手段としてのRAM392に一次蓄積する。
【0061】
RAM392は、取り込まれたDV画像データを記憶するバッファを備えた画像データ記憶手段として機能する。RAM392に一次記録された画像データは、CPU391の制御のもとにHDD、DVD等の記憶手段356に記憶手段I/F396を介して出力され、格納される。前述したように、各クライアントPC(PC1〜PCn)350とサーバーPC370は、各PCに装着されたネットワークインタフェースとしてのネットワークカード357、およびネットワーク380によって接続されており、サーバーPC370から各クライアントPC(PC1〜PCn)350に対して録画開始コマンドを出力することにより、各クライアントPC350が一斉に録画、すなわち、HDD、DVD等の記憶手段356に対するデータ格納処理を開始することが可能である。
【0062】
CPU391は、画像データの撮り込み、格納に関する装置全体の制御を行ない、DV画像データの流れ全般を制御する画像データ制御手段として機能する。CPU391は、ROM393に記憶されたプログラムに従って、画像データの流れを制御する。
【0063】
ROM393に記憶されたプログラムは、例えば汎用PC上で実行可能なDVキャプチャソフトであり、サーバーPCからの録画開始コマンドによって、プログラムが実行され、クライアントPCが一斉に録画を開始する。
【0064】
上述のように、同期信号発生器320からの基準ビデオ信号(同期信号)を各カメラ301−1〜nの外部同期端子に入力し、各カメラ301−1〜nのビデオ出力信号はAD変換器330によってデジタル映像信号に変換され、キャプチャボードを通して、パソコン350に内蔵されたメモリやハードディスク等の記録媒体に保存される。各パソコンの実行環境などによって、画像収録のスタートを実行するまでのタイミングが必ずしも同じではないので、収録された各カメラ映像が通常同期されていない。そこで、各カメラ映像を保存する際、記録中の画像フレーム番号は、ネットワークを通して、計測ポイントデータとしてサーバー報告し、収録後の映像に対して、サーバー上に集計された計測ポイントデータを用いて、カメラ画像間の同期合わせを実現した。
【0065】
図8を参照して、サーバーPCで実行する同期調整処理の詳細について説明する。まず、ステップS301において、サーバーPCは、各クライアントPCから入力した各計測点における各PCの収録フレーム番号データを読込む。これは、例えば図8のデータ例(a)に示すデータである。
【0066】
ここでは、サーバーPCが複数のクライアントPC(PC1〜PCn)から4回の計測点(計測点1〜4)における収録フレーム番号を取得したものとして説明する。
【0067】
図8の(a)各クライアントPCから入力した各計測点における各PCの収録フレーム番号のリストによれば、例えばPC1は、
計側点1において、収録処理フレーム=6、
計側点2において、収録処理フレーム=10、
計側点3において、収録処理フレーム=14、
計側点4において、収録処理フレーム=19、
を各計測点において、サーバーPCからの「現在収録フレーム番号保存」コマンドに応じて保存したフレーム番号であることを示している。
【0068】
次に、サーバーPCは、ステップS302において、処理遅延量の大きいPC、ここでは、計側点1において、フレームNo.3を処理しているPC2を基準PCとして、各PCにおける基準PCからのフレームずれ量を算出する。
【0069】
この処理の結果、図8に示す(b)各計測点における各PC内収録映像のフレームずれ量が求められる。図8に示す例では、PC2が基準となり、PC2はすべての計測点においてずれ量=0となる。また、例えばPC1のずれ量は、各計測点において、PC1の収録処理フレーム−PC2の収録処理フレームによって求める。その結果、PC1のずれ量は、
計側点1において、ずれ量=6−3=3
計側点2において、ずれ量=10−7=3
計側点3において、ずれ量=14−11=3
計側点4において、ずれ量=19−15=3
となる。
【0070】
他のPC、PC3〜PCnについてもPC2との収録フレームNo.との差分が、ずれ量として求められる。
【0071】
次に、ステップS303において、基準PC=PC2からの各PCのずれ量の決定処理を行なう。これは、例えば各PCの各計測点におけるずれ量の平均値を算出し、その平均値に基づく整数値を四捨五入により算出することにより実行する。
【0072】
図8(c)が、各PCの各計測点におけるずれ量の平均値を算出したデータである。PC1のPC2に対するずれ量は、
(3+3+3+4)/4=3.25
となる。
【0073】
図8(d)が、各PCの各計測点におけるずれ量の平均値を四捨五入したデータである。
PC1のPC2に対するずれ量は3、
PCnのPC2に対するずれ量は2となる。
このようにして、各クライアントPCの基準PC(PC2)からのずれ量が決定される。
【0074】
次に、ステップS304において、サーバーPCは、算出した各PCのずれ量に基づいて、各クライアントPCの同期調整処理を実行する。
【0075】
各クライアントPCの各時刻1〜4における処理フレームNo.を統一する処理として実行される。図8(e)に示すように、時刻1〜4において、
時刻1においては、全てのPCの収録フレーム=3
時刻2においては、全てのPCの収録フレーム=7
時刻3においては、全てのPCの収録フレーム=11
時刻4においては、全てのPCの収録フレーム=15
とした設定が実行される。
【0076】
例えばPC1設定フレームNo.は、基準PC(PC2)の設定フレームNo.との差が3であると判定されるので、PC1設定フレームNoから差3を差し引いた値を、PC1における新たなフレームNo.として設定する。また、PCn設定フレームNo.は、基準PC(PC2)の設定フレームNo.との差が2であると判定されるので、PCn設定フレームNoから差2を差し引いた値を、PC1における新たなフレームNo.として各時刻において設定する。
【0077】
このように各クライアントPCにおける同期調整処理を実行することにより、正確なフレーム間同期が可能となる。
【0078】
上述した処理により各カメラ映像は完全に同期して取得することが可能となる。本発明のキャリブレーション装置は、上述した同期調整のなされた画像撮影フレームの各々について、特徴点としての発光球体中心の対応付け処理を実行し、前述の図4を参照して説明した手続きに従って、F行列を求める。
【0079】
図9は、一台のカメラ(カメラ1,301−1)で観測した発光球体の時系列画像(t=1,……,k)を示す。全てのカメラ映像から各フレーム画像における球体の中心を自動的に抽出し、対応付けを行うことによって、F行列を高速かつ精度よく推定することができる。
【0080】
本発明の構成においては、発光球体の中心点を、対応付け処理を実行するための特徴点とする。この発光球体の中心点を求める処理を各カメラ撮影画像の各フレームにおいて実行する。F行列の要素を決定するためには、前述したように最低でも8つの特徴点の対応付けが必要となり、少なくとも8フレームにおいて、キャリブレーションを実行するカメラの撮影画像から特徴点抽出を行う。この特徴点抽出処理として行われる発光球体の中心位置の判定処理について、図10を参照して説明する。
【0081】
図10の処理フローに従って、本発明の構成における特徴点抽出処理として実行される発光球体の中心点位置判定処理の手順を説明する。図10は、1つのフレーム画像からの球体の中心画素位置を求める処理フローを示している。まず、ステップS501において、発光球体の撮影画像フレームを入力する。
【0082】
ステップS502において、入力画像から球体のエッジを検出する。なお、エッジ画素の座標値が取得フレーム画像の4辺に接している場合、球体の一部が欠けていると判定し、そのフレーム(時刻)における特徴点の抽出は行わない。この判定処理がステップS503である。
【0083】
入力フレームに発光球体全体が画像として観測されている場合(ステップS503:Yes)、ステップS504において、エッジ画素の座標値に基づく投影処理により球体の初期中心位置を判定する。具体的には、球体左右エッジ上画素のxy座標値の差をそれぞれX軸とY軸に投影し、XとYに対する分布を求め、それぞれの最大となる位置を球体の初期中心(xs,ys)および大きさ(半径)とする。
【0084】
ステップS505において、推定された初期中心と大きさを、円形モデルに適用し、そのモデルから大きく外れたエッジ上の画素点を例外点(Outlier)として削除する。最後に、ステップS506において、例外点(Outlier)削除後のエッジ画素点を円形モデルに適用し、球体の中心位置(及び大きさ)を判定する。
【0085】
図11は、隣接カメラで観測された時系列画像から、それぞれ球体の中心位置を検出し、あたかも一枚の画像から抽出された特徴点のように設定する処理例を示した図である。
【0086】
発光球体500を異なる方向から撮影するカメラ1,501と、カメラ2,502間の調整処理のためのカメラキャリブレーション用のF行列を求めるとする。この場合、前述したように複数フレームから複数の特徴点(最低8個)を抽出することが必要となる。
【0087】
本発明の構成においては、特徴点は発光球体撮影画像における発光球体の中心位置であり、各フレームにおける発光球体の中心位置を特徴点として抽出する。カメラ1,501と、カメラ2,502との撮影フレームt=1〜kの各フレーム画像は、図6を参照して説明した同期調整処理がなされた画像であり、各対応フレームは同期した画像である。t=1〜kのk個のフレームについて、図10を参照して説明した球体の中心位置座標判定処理を実行することで、各カメラ毎にk個の特徴点が求まることになる。ただし、前述したように球体画像がフレーム画像からはみ出ている場合は、中心を求めることができないので、最大k個の特徴点となる。
【0088】
前述したように少なくとも8個の特徴点を求め、その対応付け処理を実行することにより、9個の要素からなるF行列の要素を決定することができるので、キャリブレーション対象となる2つのカメラの同期フレーム画像から少なくとも発光球体の中心位置を求めることが可能な8フレームを選択して、その特徴点(球体中心位置)を求める。それらを1つにまとめると、図11に示す特徴点分布データ511,512が得られる。
【0089】
特徴点分布データ511は、カメラ1,501の撮影フレーム中のt=1,2,..kの各フレームの特徴点(球体中心位置)の分布を示している。p1(1)は、t=1のフレームにおける球体中心位置であり、p1(2)は、t=2のフレームにおける球体中心位置、p1(k)は、t=kのフレームにおける球体中心位置である。
【0090】
特徴点分布データ512は、カメラ2,502の撮影フレーム中のt=1,2,..kの各フレームの特徴点(球体中心位置)の分布を示している。p2(1)は、t=1のフレームにおける球体中心位置であり、p2(2)は、t=2のフレームにおける球体中心位置、p2(k)は、t=kのフレームにおける球体中心位置である。
【0091】
これらの特徴点分布データ511,512の対応特徴点、すなわち、p1(1)とp2(1)、p1(2)とp2(2)、・・p1(k)とp2(k)との各特徴点についての対応付け処理を、先に説明した図4のフローの処理手順に従って実行し、前述の式(式2)を適用してF行列を求めることができる。
【0092】
図12は、複数フレームからなる時系列画像に基づいて、それぞれの画像フレームから特徴点としての球体中心位置を求める処理手順を示すフローチャートである。図12に示すフローチャートの各処理ステップについて説明する。ここでは、特徴点抽出処理対象のカメラNo.をmとし、カメラNo.mが撮影した画像フレーム数がkであるとする。
【0093】
ステップS701において、m番目(m=1,2,……,N)のカメラの観測(撮影)画像Im(t)(t=1,2,・・,k)をキャリブレーション処理装置に入力する。
【0094】
ステップS702において、順次、各フレームについての処理を実行するための処理フレームの初期値としてt=1を設定する。ステップS703において、カメラ映像Im(t)を読み込み、先に図10を参照して説明した手順に従って、読み込みフレームにおける球体の検出およびその中心位置の推定処理を実行する。
【0095】
処理対象画像内に球体の画像が検出されないか、または球体全体が含まれていない場合(ステップS704:No)には、前述したように球体中心位置推定処理が実行されないが、キャリブレーション処理装置のメモリには、その結果、すなわち、中心位置が求められていないことを示すフレーム対応データとして、ステップS712においてPm(t)=Nullが保存される。
【0096】
画像内に球体全体が検出された場合、先に説明した図10の手法に従って球体の中心位置の推定が実行され、その結果を、ステップS705において、フレーム対応の中心位置データPm(t)としてメモリに保存する。
【0097】
ここで、Pm(t)は、m番目のカメラ映像におけるt(t=1,……,n)フレーム目の球体中心位置を意味する。ステップS706では、全フレームの処理が終了したか否か、すなわち[t<k?]の判定処理が実行され、未処理フレームがある場合は、ステップS711において、[t=t+1]の更新処理を実行し、ステップS703以下において、球体中心位置の推定処理、保存処理が実行される。
【0098】
図12に示す処理をN台のカメラ全てについて実行し、全てのカメラ映像から複数フレームにおけるボール(発光球体)の中心位置Pm(t)を求める。
【0099】
キャリブレーション処理を実行する隣接カメラ、または離れたカメラの撮影フレームから中心位置が求められなかったフレームを除くフレームの組を用いて、図11に示す特徴点分布データの組を構成し、構成した特徴点分布データにおける対応フレームの特徴点対応付け処理を実行して、F行列を算出する。特徴点の対応付けによるF行列の算出処理は、先に図3、図4を参照して説明したと同様の手法によって実行される。F行列が決定されると、F行列を用いて各カメラの撮影画像の補正処理が可能となり、複数カメラの実際の撮影画像から、高精度な仮想視点カメラ画像を生成することが可能となる。
【0100】
図13に本発明のキャリブレーション処理装置の機能構成を説明するブロック図を示す。本発明のキャリブレーション処理装置において実行する各種の処理は、コンピュータ・プログラムに従った処理として実行可能である。具体的には、制御手段としてのCPUの制御の下に様々な処理が実行される。図13は、制御手段としてのCPUの実行する処理を個別に説明するものであり、本発明のキャリブレーション処理装置の実行する機能を説明するブロック図である。具体的なハードウェア構成については後段で説明する。
【0101】
図13のブロック図について説明する。画像入力部601は、発光球体を撮影した画像データを入力する。キャリブレーション処理は、多くの場合、2つのカメラ間の画像調整を目的とするものであり、発光球体を異なる視点から撮影した2つのカメラのフレーム画像が入力される。この入力フレーム画像は、先に図6を参照して説明した構成において取得された画像であり、それぞれのカメラの各フレーム画像は同期された画像データである。
【0102】
特徴点抽出部602は、図10乃至図12を参照して説明した手順に従って、各フレームの発光球体の中心位置を特徴点として求めるものである。対応付け処理部603は、各カメラで撮影された画像に基づいて求められた複数の特徴点からなる特徴点分布データ(例えば図11に示す特徴点分布データ511,512)に基づいて、特徴点の対応付け処理を実行する。この対応付け処理は、例えばPixel-basedマッチング、Area-basedマッチング、Feature-basedマッチング等によって実行される。
【0103】
対応付け処理が実行されると、次に、F行列算出部604において、対応付けデータに基づくF行列算出処理が実行される。対応付けデータに基づくF行列算出処理は、先に図3、図4を参照して説明した処理に従って実行されるものであり、前述した式(式2)に従って、F行列が求められる。
【0104】
求められたF行列は、仮想視点画像生成部605に出力され、F行列に基づく2つのカメラの取得画像のキャリブレーション、すなわち補正処理が実行され、補正画像に基づいて2つのカメラの間の実際には撮影されていない仮想視点カメラの画像の生成が行われる。
【0105】
なお、算出されたF行列に基づいてカメラ自体の調整処理としてのキャリブレーションを実行してもよい。取得した画像の補正を行うか、カメラ自体の調整を行うかは選択的事項である。
【0106】
先に説明したように、同じ対象を注目している視点の異なる複数カメラで撮影した多視点映像から、それらの実写カメラの間に、あたかも仮想カメラで撮影したような任意の仮想視点映像を生成し表現するためには、実写カメラ間の位置関係を正確に求めることが必要となる。実写カメラ間の位置関係を示すパラメータとしてのファンダメンタル(Fundamental)行列により、2つのカメラの正確な位置関係が取得され、求められた位置関係に基づく撮影画像の補正、合成が高精度に実行可能となり、2つのカメラの間の実際には撮影されていない仮想視点カメラの高精度な画像生成が可能となる。
【0107】
次に、図14に示すフローチャートを参照して、本発明のキャリブレーション処理装置の実行する最適なF行列の算出処理手順について説明する。
【0108】
ステップS801において、まず、発光球体をキャリブレーション対象となる各カメラが観測できる位置に置く。例えば、各カメラの光軸が交わるところに発光球体を置き移動させる。ステップS802において、各カメラにより移動する発光球体を撮影する。この撮影処理においては、図5〜8を参照して説明した通り、各カメラの撮影フレームが同期したフレームとして取得される。
【0109】
ステップS803において、各カメラの撮影画像から、特徴点としての球体中心位置を検出する。球体中心位置の検出は、図9、図10を参照して説明した手順に従って実行する。
【0110】
ステップS804において、検出された球体中心位置を各カメラ画像の特徴点として、キャリブレーション対象カメラ画像間の対応付け処理を行う。特徴点対応付け処理は、図11、図12を参照して説明した手順に従って実行する。
【0111】
ステップS805において、対応点の数が8点に達しているかいないかを判定する。前述したようにF行列の9個の要素の比率を算出するためには、8つの特徴点の対応付けが必要となる。対応点数が8未満である場合は、ステップS801に戻り、さらに発光球体を動かして球体の位置を変えながら、キャリブレーション処理対象の複数カメラによる撮影画像を取得する。
【0112】
対応点の数が8点以上に達した場合、ステップS806に進み、特徴点の対応点に基づいてF行列を算出する。F行列の算出は、図2〜図4を参照して説明したように、式(式2)に従って行われる。なお、カメラによる撮影画像は、1回の撮影処理において、例えば30フレーム/秒で数秒間撮影されることになり、100以上のフレームが取得され、これら多数のフレームから特徴点抽出処理が実行される。
【0113】
従って、対応付け処理対象となる特徴点を100個以上の特徴点からランダムに選択し、選択点に基づいて特徴点の対応付け処理がなされる。さらに対応付けされた特徴点に基づいてF行列の算出が実行される。しかし、特徴点の対応付けはあくまで画像間の相関に基づいて行われるものであるため、対応付け処理が誤って実行される場合も多い。このような誤りがあると正確なF行列が求まらなくなる。従って誤って対応付けのなされた特徴点の組み合わせを排除して、正確なF行列を求める処理が必要となる。
【0114】
ステップS807以下の処理は、誤った対応付けのなされた特徴点等、F行列の算出に不適当と判断される特徴点を排除する処理である。
【0115】
ステップS807において、算出したF行列を用いてエピポーララインを算出する。さらに、ステップS808において、F行列推定に使われた対応点とエピポーララインとの距離(誤差)を算出する。その誤差が、予め定めた閾値より大きい場合、球体位置を変えて、その中心を検出し、新しい対応点を求める。
【0116】
図15および図16を参照して、ステップS807,808の処理、すなわち、エピポーララインの生成と、F行列推定に使われた対応点とエピポーララインとの距離(誤差)の算出処理について説明する。まず、エピポーララインの生成について説明する。エピポーララインは2つのカメラの位置関係に基づいて設定されるラインであり、一般的にはステレオ法による視差検出により生成される。
【0117】
ステレオ法について、その原理を簡単に説明する。ステレオ法は複数のカメラを用いて2つ以上の視点(異なる視線方向)から同一対象物を撮影して得られる複数の画像における画素同士を対応づけることで計測対象物の三次元空間における位置を求めようとするものである。例えば基準カメラと検出カメラにより異なる視点から同一対象物を撮影して、それぞれの画像内の計測対象物の距離を三角測量の原理により測定する。
【0118】
図15は、ステレオ法の原理を説明する図である。基準カメラ(Camera 1)と検出カメラ(Camera 2)は異なる視点から同一対象物を撮影する。基準カメラによって撮影された画像中の「mb」というポイントの奥行きを求めることを考える。
【0119】
基準カメラによる撮影画像中のポイント「mb」に見える物体は、異なる視点から同一物体を撮影している検出カメラによって撮影された画像において、「m1」、「m2」、「m3」のようにある直線上に展開されることになる。この直線をエピポーラライン(Epipolar line)Lpと呼ぶ。
【0120】
基準カメラにおけるポイント「mb」の位置は、検出カメラによる画像中では「エピポーラライン」と呼ばれる直線上に現れる。撮像対象となる点P(P1,P2,P3を含む直線上に存在する点)は、基準カメラの視線上に存在する限り、奥行きすなわち基準カメラとの距離の大小に拘らず、基準画像上では同じ観察点「mb」に現れる。これに対し、検出カメラによる撮影画像上における点Pは、エピポーラ・ライン上に基準カメラと観察点Pとの距離の大小に応じた位置にあらわれる。
【0121】
本発明の構成においては、キャリブレーション対象となる2つのカメラの撮影画像に基づいて特徴点抽出を行い、抽出した特徴点に基づいて、ステップS806においてF行列を算出した。このF行列は、2つのカメラ間の位置関係を示すパラメータであり、この位置関係パラメータに基づいてエピポーララインの設定が可能となる。
【0122】
図16を参照してエピポーララインの設定について説明する。図16(a),(b)は、キャリブレーション処理対象となるカメラの撮影した複数フレームにおいて求めた特徴点(球体中心)をまとめて示した図である。これは、図11に示した特徴点分布データ511,512に相当する。さらに、(b)には、図14に示すフローのステップS806において求めたF行列に基づいて設定したエピポーララインL1,L2,Liを示している。これらのエピポーララインは、F行列算出のために対応付け処理を実行した例えば8つの特徴点に基づいて設定されたエピポーララインである。
【0123】
例えばカメラ1と2の画像における対応点mli(i=1,……,P)とm2i(i=1,……,P)を用いて推定されたF行列から、次の式(式3)、(式4)によってカメラ1画像内の各特徴点(対応点)m1i(i=1,……,P)に対して、カメラ2画像上でのエピポーララインLiが得られる。同様に、カメラ2画像内の各特徴点に対して、カメラ1画像でのエピポーララインが得られる。
【0124】
【数3】

【0125】
上記式(式3)に基づいて、下式(式4)に示される1つの直線(エピポーラライン)が設定される。
【0126】
【数4】

【0127】
しかし、F行列算出に用いた特徴点は、2つのカメラの撮影した多数フレームに存在する多数の特徴点からランダムに選択された特徴点である。F行列が正確に算出されていれば、特徴点は、F行列に基づいて設定されるエピポーラライン上にのることになるが、特徴点の正確な抽出あるいは正確な対応付けが実行されていないと、特徴点がエピポーララインからずれた位置になる。ずれが大きい場合は特徴点対応付け処理が不正確であり、F行列もまた不正確なものであると判定される。
【0128】
このF行列の正確度を判定する指標として、特徴点と、エピポーララインとの距離Diの算出を実行する。図16に示すように、F行列に基づいて設定されたエピポーララインL1,L2・・,Liと、本来、ライン上にあるべき対応点としての各特徴点m21,m22,..m2iとの距離D1,D2,..Diを求める。
【0129】
ステップS809において、各算出距離D1,D2,..Diと、予め定めた閾値と比較する。閾値より大の距離を持つ特徴点m2iがあった場合は、ステップS810において、その特徴点の組、すなわち、カメラ1とカメラ2の特徴点の組m1i,m2iを対応付け対象から除いて、ステップS806において、その他の対応付け可能な特徴点の対応付け処理データに基づいて、再度F行列を算出する。
【0130】
ステップS809において、各算出距離D1,D2,..Diのすべてが予め定めた閾値以下となった場合は、ステップS811において、各算出距離D1,D2,..Diの平均値を算出し、平均値と予め定めた第2の閾値とを比較する。距離平均値が第2の閾値以上となった場合は、再度ステップS806において、その他の対応付け可能な特徴点の対応付け処理データに基づいて、再度F行列を算出する。
【0131】
ステップS811において、各算出距離D1,D2,..Diの平均値が第2の閾値未満となった場合は、ステップS812に進み、特徴点の分布の判定を行う。特徴点分布判定処理について、図17を参照して説明する。対応付け処理を実行する特徴点が撮影画像フレームの一部に偏っている場合、各カメラ間の正確な位置関係を求めることは困難となる。すなわち正確なF行列の算出は困難となる。そこで対応付け処理を実行する特徴点分布を撮影画像フレーム全体に散在するものとして、より正確なF行列算出を行うため、特徴点分布を確認し、特徴点の偏在がある場合には、離れた位置に新たな特徴点を設定して、再度F行列算出を行う。
【0132】
図17に示すように、カメラ1の画像上の対応点m1i(i=1,……,P)及びカメラ2の画像上の対応点m2i(i=1,……,P)の座標値を用いて、下式(式5)に示すように、それぞれの座標分布(x、yの平均値)を求める。
【0133】
【数5】

【0134】
上記各式で求められた各カメラの座標分布が、それぞれ画像中心(xc1,yc1)、(xc2,yc2)から離れている場合、特徴点の偏在があると判定し、新たな特徴点の追加を行う。具体的には、上記各式で求められた各カメラの座標分布値と画像中心(xc1,yc1)、(xc2,yc2)との距離を、予め定めた第3の閾値と比較して閾値より大である場合に特徴点分布に偏りがあると判定し、ステップS813からステップS814に進み、必要となる特徴点位置を設定する。指示する追加特徴点は、上述の式(式5)において求められる座標分布の偏りを減少させる位置に設定される。例えば図17に示す点m1k、m2kである。
【0135】
ステップS815では、指示された特徴点を取得可能な位置に球体を移動し、その後、ステップS802に戻り、再度、球体のカメラ撮影を実行して、追加特徴点を加えて特徴点対応付け処理、F行列算出処理を実行する。
【0136】
ステップS813の特徴点の偏り判定において、特徴点の偏りがないと判定されると、求めたF行列を最終的なF行列として処理を終了する。
【0137】
このように、画像観測−>球体検出−>球体中心推定−>対応付け−>F行列推定−>エピポーラライン算出−>対応点とエピポーララインとの誤差計算−>誤差値評価といった処理手順は、誤差評価がある閾値より小さくなるまで繰り返す。さらに、上記の誤差値がある閾値より小さくなった場合、画像間の視差情報を用いて、対応点の位置(つまり、球体の空間位置)が偏っているかどうかを判定する。もし、対応点が偏っていた場合、球体の置くべき空間位置を提示し、上記の繰り返し作業を行う。その結果、照明環境などが不安定な現場撮影でも高精度なカメラキャリブレーションを行うことが可能となる。
【0138】
上述したように、図14を参照して説明した処理手順に従えば、キャリブレーション対象カメラの取得した球体の画像から求められる球体中心位置を特徴点として対応付け、F行列を算出する処理において、対応付け設定を行う特徴点の選択誤りや、対応付け処理における誤りが発生した場合であっても、その誤りを訂正することが可能となる。また特徴点が偏在している場合にも、偏在状況を確認し、偏在しない位置に特徴点を追加して新たなF行列を算出することができるので、より高精度なF行列を算出することが可能となる。従って、高精度なF行列に基づくカメラキャリブレーション、あるいは取得画像の補正処理、および補正処理に基づく高精度な仮想視点画像の生成が可能となる。
【0139】
次に、図18を参照して、本発明に係るキャリブレーション処理装置の具体的なハードウェア構成例について説明する。CPU(Central processing Unit)901は、上述した各フローチャートを参照して説明した処理プログラムや、OS(Operating System)を実行するプロセッサである。ROM(Read-Only-Memory)902は、CPU901が実行するプログラム、あるいは演算パラメータとしての固定データを格納する。RAM(Random Access Memory)903は、CPU901の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用される。HDD904はハードディスクの制御を実行し、ハードディスクに対する各種データ、プログラムの格納処理および読み出し処理を実行する。
【0140】
バス910はPCI(Peripheral Component Internet/Interface)バス等により構成され、各モジュール、入出力インタフェース911を介した各入手力装置とのデータ転送を可能にしている。
【0141】
入力部905は、画像データの入力部、およびキーボード、ポインティングデバイス等によって構成され、キャリブレーションを実行するカメラによって取得された画像データを入力する他、CPU901に各種のコマンド、データを入力する。出力部906は、撮影画像、特徴点抽出処理画像、あるいはF行列算出後に、カメラ取得画像に基づいて生成した仮想視点画像等を表示する例えばCRT、液晶ディスプレイ等である。
【0142】
通信部907は他デバイスとの通信処理を実行する。例えば図6に示す画像の同期取得処理を実行するシステムにおいて取得した複数のカメラの映像を入力する。入力画像に基づいて上述のF行列算出処理、仮想視点画像生成処理等が制御部としてのCPU901の制御の下に実行される。なお、処理対象とする画像データは、通信部を介して入力するばかりでなく、入力部905に構成したA/V入力部を介して入力してもよく、また、ドライブ908に接続されたHDD、CD、DVD等のリムーバブル記録媒体909に格納された画像データを処理対象画像として入力する構成としてもよい。
【0143】
ドライブ908は、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体909の記録再生を実行するドライブであり、各リムーバブル記録媒体909からのプログラムまたはデータ読み取り、リムーバブル記録媒体909に対するプログラムまたはデータ格納処理を実行する。
【0144】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0145】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【0146】
例えば、プログラムは記憶媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【0147】
また、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記憶媒体にインストールすることができる。
【0148】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【産業上の利用可能性】
【0149】
以上、説明したように、本発明の構成によれば、多視点画像撮影カメラ間の調整、または多視点画像撮影カメラによる取得画像の補正処理に適用するパラメータ算出処理を実行するキャリブレーション処理において、発光球体を各カメラにより撮影する構成としたので、照明環境が不安定な撮影現場等でも球体検出と球体中心位置の取得を容易に行うことができ、球体中心位置を特徴点として対応付け処理を実行することで高精度なF行列の算出が可能となる。すなわち、多視点映像撮影システムを構成する実写カメラ間の位置関係を示すパラメータであるジオメトリ・パラメータ(Geometry Parameters)としてのファンダメンタル(Fundamental)行列の算出を高精度に行なうことが可能となり、高速かつ高精度なキャリブレーションが可能となる。
【0150】
さらに、本発明の構成によれば、照明環境等に影響しにくい発光球体をキャリブレーション治具として用い、球体の中心位置をリアルタイムに検出し対応付けしながらF行列を推定し、推定されたF行列と対応点との誤差や位置関係などを評価することによって、必要となる対応点の数や三次元空間上に置くべき球体位置を指示し、より高精度なF行列を効率的に算出することが可能となる。
【0151】
さらに、本発明の構成によれば、同期機能を備えた多視点映像撮影システムによって球体画像を観測撮影し、各パソコン上のメモリやハードディスクなどの記録媒体に収録しながらカメラキャリブレーションを行うことが可能であり、各パソコン上の画像処理手法によって、各フレーム画像における球体中心の座標位置(特徴点)抽出、抽出特徴点を用いた画像間の対応付けによるファンダメンタル(Fundamental)行列の推定、推定F行列の精度評価、対応点の数や対応点の適切な位置の判定、提示等を、例えばPC上で実行可能であり、高速かつ高精度なキャリブレーション処理を、PC等、簡易なシステムにおいて実行することが可能となる。
【図面の簡単な説明】
【0152】
【図1】多視点カメラ撮影処理及び多視点カメラで撮影した実写映像を用いて仮想視点映像を生成する処理について説明する図である。
【図2】キャリブレーション処理に適用する各種パラメータを説明する図である。
【図3】一般的なFパラメータ推定方法を示す図である。
【図4】F行列を推定するために、チェッカパターンをキャリブレーション治具として用いた場合のカメラキャリブレーション手順を示した図である。
【図5】発光球体をキャリブレーションツールとして用い、異なる視点から発光球体を撮影する構成例を示す図である。
【図6】ネットワーク同期機構を備えた複数カメラ映像の同期収録構成について説明する図である。
【図7】DVキャプチャボードにより構成される映像信号処理部の構成例について説明する図である。
【図8】サーバーPCで実行する同期調整処理の詳細について説明する図である。
【図9】一台のカメラで観測した発光球体の時系列画像(t=1,……,k)について説明する図である。
【図10】特徴点抽出処理として実行される発光球体の中心点位置判定処理の手順を説明する図である。
【図11】隣接カメラで観測された時系列画像から、それぞれ球体の中心位置を検出し、一枚の画像から抽出された特徴点のように設定する処理を説明する図である。
【図12】複数フレームからなる時系列画像に基づいて、それぞれの画像フレームから特徴点としての球体中心位置を求める処理手順を示すフローチャートを示す図である。
【図13】本発明のキャリブレーション処理装置の機能構成を説明するブロック図である。
【図14】本発明のキャリブレーション処理装置の実行する最適なF行列の算出処理手順について説明する図である。
【図15】エピポーララインについて説明する図である。
【図16】エピポーララインの生成と、F行列推定に使われた対応点とエピポーララインとの距離(誤差)の算出処理について説明する図である。
【図17】特徴点分布判定処理について説明する図である。
【図18】本発明に係るキャリブレーション処理装置の具体的なハードウェア構成例について説明する図である。
【符号の説明】
【0153】
100 被写体
101,102 カメラ
111,112 実写画像
113 仮想視点カメラ
121 仮想視点カメラ画像
301 カメラ
302 実写画像
301 カメラ
320 同期信号発生部
330 A/Dコンバータ
350 クライアントPC
355 映像信号処理部
356 記憶手段
357 ネットワークカード
360 画像モニタ
370 サーバーPC
380 ネットワーク
391 CPU
392 RAM
393 ROM
394 1394ポート
395 LINK/PHY
396 記憶手段
500 発光球体
501,502 カメラ
511,512 特徴点分布データ
601 画像入力部
602 特徴点抽出部
603 対応付け処理部
604 F行列算出部
605 仮想視点画像生成部
901 CPU
902 ROM
903 RAM
904 HDD
905 入力部
906 出力部
907 通信部
908 ドライブ
909 リムーバブル記録媒体
910 バス
911 入出力インタフェース

【特許請求の範囲】
【請求項1】
多視点画像撮影カメラ間の調整、または多視点画像撮影カメラによる取得画像の補正処理に適用するパラメータ算出処理を実行するキャリブレーション処理装置であり、
移動する球体を異なる視点方向から撮影した複数カメラの映像データを入力する画像入力部と、
前記画像入力部において入力する複数カメラの映像データを構成する複数の撮影画像フレームから球体中心位置を特徴点として抽出する処理を実行する特徴点抽出部と、
各カメラの対応フレームにおける特徴点として前記特徴点抽出部において抽出された球体中心位置の対応付け処理を実行する対応付け処理部と、
前記対応付け処理部において対応付けのなされた特徴点対応データに基づいてキャリブレーションパラメータとしてのF行列[ファンダメンタル(Fundamental)行列]を算出するF行列算出部を有し、
前記特徴点抽出部は、前記F行列の9個の要素の比率を算出するために必要となる少なくとも8点の球体中心位置データを各カメラの複数の撮影画像フレームから取得し、
前記対応付け処理部は、前記特徴点抽出部において抽出された8点以上の球体中心位置の対応付け処理を実行し、
前記F行列算出部は、対応付けのなされた8以上の特徴点対応データに基づいてキャリブレーションパラメータとしてのファンダメンタル(Fundamental)行列の要素値算出を実行する構成であることを特徴とするキャリブレーション処理装置。
【請求項2】
前記球体は、発光球体であり、
前記特徴点抽出部は、フレームに撮影された球体のエッジ情報に基づいて球体中心位置を算出する処理を実行する構成であることを特徴とする請求項1に記載のキャリブレーション処理装置。
【請求項3】
前記F行列算出部は、算出したF行列に基づくエピポーララインを設定し、設定したエピポーララインと、特徴点に対応する球体中心位置との距離を個別にまたは平均距離として算出し、該算出距離が予め定めた閾値より大である場合は新たな特徴点を含む特徴点対応データに基づいてF行列の再算出処理を実行する構成であることを特徴とする請求項1に記載のキャリブレーション処理装置。
【請求項4】
前記F行列算出部は、撮影画像フレーム内における球体中心位置、すなわち特徴点の分布状況判定処理を実行し、特徴点偏在が確認された場合、該偏在を解消する位置に追加設定した特徴点を含む特徴点対応データに基づくF行列再算出処理を実行する構成であることを特徴とする請求項1に記載のキャリブレーション処理装置。
【請求項5】
前記特徴点抽出部は、撮影フレーム内に球体全体のエッジが存在する場合にのみ、該エッジ情報に基づく中心位置算出処理を実行する構成であることを特徴とする請求項1に記載のキャリブレーション処理装置。
【請求項6】
多視点画像撮影カメラ間の調整、または多視点画像撮影カメラの取得画像の補正処理に適用するパラメータ算出処理を実行するキャリブレーション処理方法であり、
移動する球体を異なる視点方向から撮影した複数カメラの映像データを入力する画像入力ステップと、
前記画像入力ステップにおいて入力する複数カメラの映像データを構成する複数の撮影画像フレームから球体中心位置を特徴点として抽出する特徴点抽出ステップと、
前記特徴点抽出ステップにおいて抽出された球体中心位置に基づいて特徴点対応付け処理を実行する対応付け処理ステップと、
前記対応付け処理ステップにおいて対応付けのなされた特徴点対応データに基づいてキャリブレーションパラメータとしてのF行列[ファンダメンタル(Fundamental)行列]を算出するF行列算出ステップを有し、
前記特徴点抽出ステップは、前記F行列の9個の要素の比率を算出するために必要となる少なくとも8点の球体中心位置データを各カメラの複数の撮影画像フレームから取得し、
前記対応付け処理ステップは、前記特徴点抽出ステップにおいて抽出された8点以上の球体中心位置の対応付け処理を実行し、
前記F行列算出ステップは、対応付けのなされた8以上の特徴点対応データに基づいてキャリブレーションパラメータとしてのファンダメンタル(Fundamental)行列を構成する要素値算出を実行することを特徴とするキャリブレーション処理方法。
【請求項7】
前記球体は、発光球体であり、
前記特徴点抽出ステップは、フレームに撮影された球体のエッジ情報に基づいて球体中心位置の算出処理を実行することを特徴とする請求項6に記載のキャリブレーション処理方法。
【請求項8】
前記F行列算出ステップは、算出したF行列に基づくエピポーララインを設定し、設定したエピポーララインと前記特徴点としての球体中心位置との距離を個別にまたは平均距離として算出し、該算出距離が予め定めた閾値より大である場合は新たな特徴点を含む特徴点対応データに基づくF行列再算出処理を実行することを特徴とする請求項6に記載のキャリブレーション処理方法。
【請求項9】
前記F行列算出ステップは、撮影画像フレーム内における球体中心位置、すなわち特徴点の分布状況判定処理を実行し、特徴点偏在が確認された場合、該偏在を解消する位置に追加設定した追加特徴点を含む特徴点対応データに基づくF行列再算出処理を実行することを特徴とする請求項6に記載のキャリブレーション処理方法。
【請求項10】
前記特徴点抽出ステップは、撮影フレーム内に球体全体のエッジが存在する場合にのみ、該エッジ情報に基づく中心位置算出処理を実行することを特徴とする請求項6に記載のキャリブレーション処理方法。
【請求項11】
多視点画像撮影カメラ間の調整、または多視点画像撮影カメラの取得画像の補正処理に適用するパラメータ算出処理を実行するコンピュータ・プログラムであって、
移動する球体を異なる視点方向から撮影した複数カメラの映像データを入力する画像入力ステップと、
前記画像入力ステップにおいて入力する複数カメラの映像データを構成する複数の撮影画像フレームから球体中心位置を特徴点として抽出する特徴点抽出ステップと、
前記特徴点抽出ステップにおいて抽出された球体中心位置の対応付け処理を実行する対応付け処理ステップと、
前記対応付け処理ステップにおいて対応付けのなされた特徴点対応データに基づいてキャリブレーションパラメータとしてのF行列[ファンダメンタル(Fundamental)行列]を算出するF行列算出ステップを具備し、
前記特徴点抽出ステップは、前記F行列の9個の要素の比率を算出するために必要となる少なくとも8点の球体中心位置データを各カメラの複数の撮影画像フレームから取得するステップであり、
前記対応付け処理ステップは、前記特徴点抽出ステップにおいて抽出された8点以上の球体中心位置の対応付け処理を実行するステップであり、
前記F行列算出ステップは、対応付けのなされた8以上の特徴点対応データに基づいてキャリブレーションパラメータとしてのファンダメンタル(Fundamental)行列を構成する要素値算出を実行するステップであることを特徴とするコンピュータ・プログラム。

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図18】
image rotate

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2009−71844(P2009−71844A)
【公開日】平成21年4月2日(2009.4.2)
【国際特許分類】
【出願番号】特願2008−271650(P2008−271650)
【出願日】平成20年10月22日(2008.10.22)
【分割の表示】特願2003−21605(P2003−21605)の分割
【原出願日】平成15年1月30日(2003.1.30)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】