(57)【特許請求の範囲】
【請求項１】
所定の角度をなす複数の平面を有するチャートの撮影画像のデータを取得する画像取得部と、
前記撮影画像から、前記チャートの表面に表されたチャートパターンの特徴点の像を検出し、当該特徴点の像の位置座標と、前記チャートの表面での当該特徴点の位置座標とを対応づけた特徴点情報を生成する特徴点情報取得部と、
前記特徴点情報に基づきキャリブレーション用の演算を行い、所定のカメラパラメータを取得し出力するキャリブレーション部と、
前記チャートパターンに含まれ、前記チャートの平面ごとに異なる図形で表されたマーカーと、撮影画像における前記特徴点の位置関係を表すインデックスを各平面上での特徴点の位置座標に変換するための変換パラメータとを対応づけて記憶する射影変換パラメータ記憶部と、
を備え、
前記特徴点情報取得部は前記撮影画像における、前記マーカーの像を検出することにより、各平面の前記変換パラメータを特定するとともに、少なくとも当該マーカーの像の歪みを用いて、撮影画像から検出した特徴点の像を前記インデックスに対応づけることにより、チャートの平面ごとに前記特徴点情報の生成処理を実施することを特徴とするキャリブレーション装置。
【請求項２】
前記チャートパターンは、撮影画像において所定のパターンが得られるように、撮像面から前記平面までの距離の変化に応じた変換を前記所定のパターンに施してなり、
前記特徴点情報取得部は、前記撮影画像における画像の歪みを、前記所定のパターンからの変化に基づき特定したうえ、歪みに応じた箇所を探索することにより、前記撮影画像における特徴点の像と、前記インデックスとを対応づけることを特徴とする請求項１に記載のキャリブレーション装置。
【請求項３】
前記射影変換パラメータ記憶部は、前記インデックスを定義するインデックス座標系における位置座標を、前記チャートの平面上での前記特徴点の位置座標に変換するホモグラフィ行列を格納し、
前記特徴点情報取得部は、前記撮影画像における特徴点の像に対応するインデックスに基づき、前記チャートの平面上での当該特徴点の位置座標を前記ホモグラフィ行列により取得することにより、前記特徴点情報を生成することを特徴とする請求項２に記載のキャリブレーション装置。
【請求項４】
前記特徴点情報取得部は、前記所定のパターンにおける隣り合う４つの特徴点を頂点とする矩形を、前記撮影画像における当該特徴点の像を頂点とする矩形に変換するホモグラフィ行列を取得することで前記歪みを特定し、当該ホモグラフィ行列を、前記所定のパターンにおける別の矩形に適用することにより、前記撮影画像における次の特徴点の像の探索範囲を決定することを特徴とする請求項２または３に記載のキャリブレーション装置。
【請求項５】
撮像装置のキャリブレーション用のチャートであって、
所定角度をなす複数の平面と、
前記平面に表され、撮影画像において所定のパターンが得られるように、撮像面から前記平面までの距離の変化に応じた変換を前記所定のパターンに施してなるチャート画像と、
を備え、
前記所定のパターンは、前記平面ごとに異なる図形で表されたマーカーとその周囲に配された特徴点を含むことを特徴とするキャリブレーション用チャート。
【請求項６】
前記複数の平面は、想定される撮像装置の光軸において撮像面からの距離が最も大きくなる構造を有することを特徴とする請求項５に記載のキャリブレーション用チャート。
【請求項７】
前記複数の平面は、同じ面積を有する２つの矩形平面を接続した線対称の構造を含むことを特徴とする請求項５または６のいずれかに記載のキャリブレーション用チャート。
【請求項８】
前記複数の平面は、前記２つの矩形平面に、さらに別の矩形平面を接続した構造を有することを特徴とする請求項７に記載のキャリブレーション用チャート
【請求項９】
撮像装置のキャリブレーション用のチャートに表すチャートパターンを生成するチャートパターン生成装置であって、
前記チャートを構成する複数の平面と前記撮像装置の撮像面との位置および姿勢に係る設定情報を取得し、撮影画像において所定のパターンが得られるように、撮像面から前記平面までの距離の変化に応じた変換を実現する変換パラメータを生成する逆変換パラメータ生成部と、
前記所定のパターンを、前記変換パラメータを用いて変換し前記チャートパターンのデータを生成して出力するパターン変換部と、
前記所定のパターンにおける特徴点の位置関係を表すインデックスを、前記チャートパターンが表された前記チャートの表面における特徴点の位置座標に変換するための変換パラメータを前記チャートの平面ごとに生成し、出力する射影変換パラメータ生成部と、
を備え、
前記所定のパターンは、平面ごとに異なる図形で表されたマーカーとその周囲に配された前記特徴点を含むことを特徴とするチャートパターン生成装置。
【請求項１０】
前記射影変換パラメータ生成部は、前記インデックスを、前記チャートの表面における特徴点の位置座標に変換するホモグラフィ行列を生成し出力することを特徴とする請求項９に記載のチャートパターン生成装置。
【請求項１１】
所定の角度をなす複数の平面を有するチャートの撮影画像のデータを撮像装置から取得するステップと、
前記撮影画像から、前記チャートの表面に表されたチャートパターンの特徴点の像を検出し、当該特徴点の像の位置座標と、前記チャートの表面での当該特徴点の位置座標とを対応づけた特徴点情報を生成するステップと、
前記特徴点情報に基づきキャリブレーション用の演算を行い、所定のカメラパラメータを取得し出力するステップと、
を含み、
前記特徴点情報を生成するステップは、前記撮影画像から、前記チャートパターンに含まれ、前記チャートの平面ごとに異なる図形で表されたマーカーの像を検出し、当該マーカーと、撮影画像における前記特徴点の位置関係を表すインデックスを各平面上での特徴点の位置座標に変換するための変換パラメータとを対応づけて記憶するメモリを参照することにより、各平面の前記変換パラメータを特定するとともに、少なくとも当該マーカーの像の歪みを用いて、撮影画像から検出した特徴点の像を前記インデックスに対応づけることにより、チャートの平面ごとに前記特徴点情報の生成処理を実施することを特徴とする、キャリブレーション装置によるキャリブレーション方法。
【請求項１２】
所定の角度をなす複数の平面を有するチャートの撮影画像のデータを取得する機能と、
前記撮影画像から、前記チャートの表面に表されたチャートパターンの特徴点の像を検出し、当該特徴点の像の位置座標と、前記チャートの表面での当該特徴点の位置座標とを対応づけた特徴点情報を生成する機能と、
前記特徴点情報に基づきキャリブレーション用の演算を行い、所定のカメラパラメータを取得し出力する機能と、
をコンピュータに実現させ、
前記特徴点情報を生成する機能は、前記チャートパターンに含まれ、前記チャートの平面ごとに異なる図形で表されたマーカーの像を前記撮影画像から検出し、当該マーカーと、撮影画像における前記特徴点の位置関係を表すインデックスを各平面上での特徴点の位置座標に変換するための変換パラメータとを対応づけて記憶するメモリを参照することにより、各平面の前記変換パラメータを特定するとともに、少なくとも当該マーカーの像の歪みを用いて、撮影画像から検出した特徴点の像を前記インデックスに対応づけることにより、チャートのマーカーの像に基づき前記平面の像を識別し、当該平面ごとに前記特徴点情報の生成処理を実施することを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置のキャリブレーションを実現する装置、キャリブレーションに用いるチャート、およびキャリブレーション方法に関する。
【背景技術】
【０００２】
ユーザの体やマーカーをカメラで撮影し、その像の領域を別の画像で置換してディスプレイに表示するゲームが知られている（例えば、特許文献１参照）。撮影画像における像を検出し解析することにより、被写体やカメラ自体の位置や動きを取得したり被写体の属性を認識したりする技術は、ゲーム装置や情報端末に搭載されたカメラのみならず、防犯カメラ、車載カメラ、ロボット搭載カメラなどを含むシステムにおいても広く導入されている。【０００３】
それらのシステムにおける処理精度を保障するため、撮像装置の内部パラメータ、歪み補正係数、外部パラメータ等、装置固有の情報を事前に取得するキャリブレーション処理が行なわれる。内部パラメータは、撮影画像における画素の位置座標と、光学中心を原点とし長さを単位とするカメラ座標系における位置座標との関係を規定し、焦点距離、原点の相対位置、せん断係数、スケールファクタによって定まるレンズの特性を表す。【０００４】
歪み補正係数は、レンズによる樽型歪みや円周方向の歪みを補正するための係数である。外部パラメータは、カメラ座標系とワールド座標系の関係を規定し、特にステレオカメラなど多眼カメラについて同時にキャリブレーションを行うことにより、それぞれが撮影した画像の傾きを合わせるなどの目的で用いられる。キャリブレーション技術としては、チェッカーパターンの平面チャートを複数の視点から撮影し、撮影画像上での特徴点の位置と、実空間でのチャートの平面における特徴点の位置とが正しい対応関係となるようにパラメータを最適化するZhangの手法が広く知られている（非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】欧州特許出願公開第０９９９５１８号明細書
【非特許文献】
【０００６】
【非特許文献１】Zhengyou Zhang, "A Flexible New Technique for Camera Calibration", Microsoft Research Technical Report, MSR-TR-98-71, December 2, 1998.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
Zhangの手法では、いくつかの位置や姿勢で撮像装置やチャートをセッティングしたうえ、撮影を繰り返す必要があり、作業負担が大きい。ある種の拘束条件を設ければ撮影作業の負担を軽減させることができるが、その拘束条件によって汎用性が損なわれることが考えられる。また簡易的なキャリブレーション手法ではZhangの手法のような精度が出にくい。【０００８】
本発明はこうした課題に鑑みてなされたものであり、その目的は、撮像装置のキャリブレーションを、少ない工数で高精度に行うことのできる技術を提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明のある態様はキャリブレーション装置に関する。このキャリブレーション装置は、所定の角度をなす複数の平面を有するチャートの撮影画像のデータを取得する画像取得部と、撮影画像から、チャートの表面に表されたチャートパターンの特徴点の像を検出し、当該特徴点の像の位置座標と、チャートの表面での当該特徴点の位置座標とを対応づけた特徴点情報を生成する特徴点情報取得部と、特徴点情報に基づきキャリブレーション用の演算を行い、所定のカメラパラメータを取得し出力するキャリブレーション部と、を備え、特徴点情報取得部は撮影画像における、チャートパターンに含まれるマーカーの像に基づき平面の像を識別し、当該平面ごとに特徴点情報の生成処理を実施することを特徴とする。【００１０】
本発明の別の態様はキャリブレーション用のチャートに関する。このキャリブレーション用のチャートは、撮像装置のキャリブレーション用のチャートであって、所定角度をなす複数の平面と、平面に表され、撮影画像において所定のパターンが得られるように、撮像面から平面までの距離の変化に応じた変換を所定のパターンに施してなるチャート画像と、を備えたことを特徴とする。【００１１】
本発明のさらに別の態様はチャートパターン生成装置に関する。このチャートパターン生成装置は、撮像装置のキャリブレーション用のチャートに表すチャートパターンを生成するチャートパターン生成装置であって、チャートを構成する複数の平面と撮像装置の撮像面との位置および姿勢に係る設定情報を取得し、撮影画像において所定のパターンが得られるように、撮像面から平面までの距離の変化に応じた変換を実現する変換パラメータを生成する逆変換パラメータ生成部と、所定のパターンを、変換パラメータを用いて変換しチャートパターンのデータを生成して出力するパターン変換部と、を備えたことを特徴とする。【００１２】
本発明のさらに別の態様はキャリブレーション方法に関する。このキャリブレーション方法は、所定の角度をなす複数の平面を有するチャートの撮影画像のデータを撮像装置から取得するステップと、撮影画像から、チャートの表面に表されたチャートパターンの特徴点の像を検出し、当該特徴点の像の位置座標と、チャートの表面での当該特徴点の位置座標とを対応づけた特徴点情報を生成するステップと、特徴点情報に基づきキャリブレーション用の演算を行い、所定のカメラパラメータを取得し出力するステップと、を含み、特徴点情報を生成するステップは、撮影画像における、チャートパターンに含まれるマーカーの像に基づき平面の像を識別し、当該平面ごとに特徴点情報の生成処理を実施することを特徴とする。【００１３】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１４】
本発明によると、撮像装置のキャリブレーションを、少ない工数で高精度に行うことができる。
【図面の簡単な説明】
【００１５】
【図１】本実施の形態のキャリブレーションシステムの構成を示す図である。
【図２】本実施の形態におけるキャリブレーション用のチャートをより詳細に説明するための図である。
【図３】本実施の形態における撮像装置とチャートの好適な位置関係を説明するための図である。
【図４】本実施の形態におけるチャートの別の例を示す図である。
【図５】本実施の形態におけるチャートパターン生成装置とキャリブレーション装置の内部回路構成を示す図である。
【図６】本実施の形態におけるチャートパターン生成装置とキャリブレーション装置の機能ブロックの構成を示す図である。
【図７】本実施の形態においてチャートパターン生成装置が行う処理の手順を説明するための図である。
【図８】本実施の形態において、逆変換パラメータ生成部が変換パラメータを生成する手法を説明するための図である。
【図９】本実施の形態において、逆変換パラメータ生成部が変換パラメータを生成する手法を説明するための図である。
【図１０】本実施の形態において、チャートパターンの特徴点に与えるインデックスを説明するための図である。
【図１１】本実施の形態におけるキャリブレーション装置が、チャートの撮影画像に基づきキャリブレーションを行う処理手順を示すフローチャートである。
【図１２】図１１のＳ１４において特徴点情報取得部が特徴点情報を生成する処理手順を示すフローチャートである。
【図１３】本実施の形態において、チャートを撮影した画像におけるマーカーとマス目の様子を例示する図である。
【図１４】図１２のＳ３４において、近傍での画像の歪みを考慮してマス目の頂点を検出するために、基準とする座標系を説明するための図である。
【図１５】図１２のＳ４０において、チェッカーパターンのマス目を基点として周囲のマス目の頂点の位置座標を特定する処理を説明するための図である。
【図１６】本実施の形態において特徴点情報記憶部に格納される特徴点情報のデータ構造例を示す図である。
【図１７】本実施の形態においてチャートパターン生成装置が生成したチャートパターンを示す図である。
【図１８】本実施の形態において、広角カメラを用いてチャートを撮影したときの撮影画像を示す図である。
【図１９】図１８で示した撮影画像から特徴点およびマーカーを検出した結果を示す図である。
【図２０】本実施の形態において、特徴点の対応情報を用いてキャリブレーションを行い、得られたカメラパラメータに基づき補正した画像を示す図である。
【発明を実施するための形態】
【００１６】
図１は、本実施の形態のキャリブレーションシステムの構成を示す。このキャリブレーションシステムは、キャリブレーションを行う撮像装置１２、キャリブレーション用のチャート２００、撮像装置１２とチャート２００を所定の位置関係で固定する治具１４、およびキャリブレーションによりカメラのパラメータを取得するキャリブレーション装置１０を含む。
【００１７】
撮像装置１２は、対象物を撮影するカメラと、その出力信号にデモザイク処理など一般的な処理を施すことにより撮影画像の出力データを生成し、キャリブレーション装置１０に送出する機構とを有する。カメラはＣＣＤ（Charge Coupled Device）センサやＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサなど、一般的なデジタルカメラ、デジタルビデオカメラで利用されている可視光センサ、あるいは赤外線センサを備える。カメラを赤外線センサとする場合、図示しない赤外線照射機構をさらに設けてよい。
【００１８】
撮像装置１２が備えるカメラは１つのみでもよいし、２つのカメラを既知の間隔で左右に配置したいわゆるステレオカメラでもよい。あるいは３つ以上のカメラを有していてもよい。撮像装置１２に備えるカメラをどのような構成とするかは、撮像装置１２を用いて行う情報処理の内容によって決定される。例えばユーザやコントローラなどの対象物の３次元空間における位置を取得して電子ゲームを実現する場合、撮像装置１２をステレオカメラで実現することが考えられる。
【００１９】
また赤外線を照射し、その反射光を検出するまでの時間に基づき対象物の位置を求めるＴＯＦ（Time Of Flight）の技術を導入する場合、撮像装置１２は赤外線の照射機構と赤外線カメラで実現することが考えられる。同様の構成で、赤外線をランダムなパターンで照射し、その反射光をステレオカメラで撮影することにより、赤外線のパターンを特徴点として視差を求め、３次元空間における位置を特定することも考えられる。その他、使用目的や導入する技術によって、単眼カメラ／多眼カメラ、可視光カメラ／赤外線カメラをどのように組み合わせてもよい。
【００２０】
キャリブレーション装置１０は、撮像装置１２がキャリブレーション用のチャート２００を撮影した画像のデータを取得し、それに基づきキャリブレーションの演算を行い、内部パラメータや外部パラメータを導出する。これらのパラメータは一般に知られたものである。当該パラメータを用いると、撮影画像における画素ｍ（ｕ，ｖ）とワールド座標系の位置Ｍ（Ｘ，Ｙ，Ｚ）との関係は次のように表される
【００２１】
【数１】
0006764533.tif 000002
【００２２】
ここでｓはスケールファクタ、Ａは内部パラメータである。［Ｒ｜ｔ］は外部パラメータであり、ワールド座標系をカメラ座標系に変換するための回転行列Ｒと並進ベクトルｔからなる。内部パラメータＡは次のように表される。
【００２３】
【数２】
0006764533.tif 000003
【００２４】
ここでｆは焦点距離、ｋｕ、ｋｖは画像平面の横方向、縦方向のスケールファクタ、（ｕ０，ｖ０）は画像平面における光軸の位置座標を表す。なお上式においてはスキュー歪みを０としている。
【００２５】
さらにレンズによる樽型歪みや円周方向の歪みを考慮した場合、撮影画像における光軸を中心とする位置座標（ｘ，ｙ）の点は、例えば次の近似式により位置座標（ｘ’，ｙ’）に補正される。
ｘ’＝（１＋ｋ１ｒ２＋ｋ２ｒ４）ｘ＋２ｐ１ｘｙ＋ｐ２（ｒ２＋２ｘ２）
ｙ’＝（１＋ｋ１ｒ２＋ｋ２ｒ４）ｙ＋ｐ１（ｒ２＋２ｙ２）＋２ｐ２ｘｙ
ここで
ｒ２＝ｘ２＋ｙ２
である。またｋ１、ｋ２が樽型歪みによるパラメータ、ｐ１、ｐ２が円周方向の歪みによるパラメータであり、これらを総称して歪み補正係数と呼ぶ。
【００２６】
キャリブレーション装置１０は、撮影画像における特徴点の像が、本来の３次元空間での位置を反映した位置に表れるように、内部パラメタ−、歪み補正係数、外部パラメータを求める。以後、それらのパラメータを総称して「カメラパラメータ」と呼ぶことがある。カメラパラメータの導出処理の基本的なアルゴリズムは既存技術でよく、特に非特許文献１に記載されるZhangの手法を用いることができる。すなわち、撮影画像からチャート２００に表された特徴点の像を抽出し、その位置座標を求める。そして当該位置座標と３次元での特徴点の位置に基づき内部パラメータの初期値を求め、バンドル調整と呼ばれる非線形最適化処理により、内部パラメータおよび外部パラメータを最終的に決定する。
【００２７】
一方、本実施の形態では、キャリブレーション用のチャート２００を、撮像面と平行でない複数の平面を有する立体構造とする。図示する例でチャート２００は、同一面積の２枚のボードの一辺同士を合わせ、当該辺を軸に角度θ（０＜θ＜１８０°）をなすようにして立てた状態としている。治具１４は、撮像装置１２の光軸がチャート２００の軸と交わり、チャート２００から所定距離を有するような位置・姿勢となるように、両者を固定する。
【００２８】
チャート２００のうち、撮像装置１２側の各平面には、格子状に区切られてなる矩形のうち隣り合う矩形で白黒が逆転するようなチェッカーのパターンと、平面を識別するためのマーカーとを含むチャートパターンを表す。この場合、特徴点は各矩形の頂点となる。このように奥行き方向に変化をつけて特徴点を配置することにより、視点を変えて１枚の平面チャートを撮影するのと同様の情報を、一度の撮影で得ることができる。なおチャート２００に表すパターンはチェッカーパターンに限らず、既存の探索手法で検出が容易な形状や配置で特徴点が分布していればよい。例えば黒丸を縦横に配列させたサークルグリッドなど、直交系をなす特徴点配列を採用することにより、特徴点の検出やその属性取得を容易にできる。
【００２９】
図２は、キャリブレーション用のチャート２００をより詳細に説明するための図である。（ａ）は、チャート２００を構成する各平面に表すチェッカーおよびマーカーのチャートパターンを示しており、撮像装置１２から見て左側に配置する平面にはチャートパターン２１２ａを、右側に配置する平面にはチャートパターン２１２ｂを表す。（ｂ）は図の左に示した俯瞰図の通り、撮像装置１２に対し２枚の平面が角度θをなした状態で正対したときの、撮像装置１２から見たチャート２００の様子を示している。
【００３０】
本実施の形態では、撮像面に対しチャートの平面が傾斜した状態において、見かけ上、チャートパターンが一般的なチェッカーパターンとなるようにする。その他のチャートパターンの場合も、探索処理などを考慮して決定した標準的なチャートパターンが、チャート２００の平面が傾斜した状態で撮影画像に表れるようにする。このため（ａ）に示すように、各平面に表すチャートパターン２１２ａ、２１２ｂは、元のチェッカーパターンに対し傾斜を踏まえた逆のパースをつけたものとなっている。
【００３１】
定性的には、チャート２００の面のうち、撮像面から遠い位置のパターンほどスケールを大きくする。このようにすることで、実空間では異なる距離にありながら、縦横方向に等しい大きさの図形が均等に並んだ画像が撮影される。これにより、一度の撮影でキャリブレーションに必要な情報を得られるとともに、特徴点の検出処理が複雑化するのを回避できる。なお本実施の形態によれば一度の撮影で多くの情報が得られるが、撮影回数を一度に限定する趣旨ではなく、必要に応じて複数回撮影してもよい。
【００３２】
図３は、撮像装置１２とチャート２００の好適な位置関係を説明するための図である。例えば魚眼レンズを用い等距離射影方式で撮影すると、仮想スクリーン２２０は、撮像装置１２の光学中心Ｏを原点とし焦点距離ｆを半径とする球面と考えられる。ここで実空間からレンズへの投射線が光軸Ｌとなす角度φと、スクリーンにおける光軸の交点から射影点までの距離（像高）ｙには次のような関係がある。
ｙ＝ｆ・φ
【００３３】
一般的なレンズによる中心射影方式がｙ＝ｆ・ｔａｎφであることに鑑みれば、魚眼レンズの系では角度φが大きくなるほど像が縮むことがわかる。そこで図示するように、仮想スクリーン２２０に接するようにチャート２００を配置することにより、歪みの影響が大きい視野範囲をカバーしてチャートパターンが撮影されることになる。また視野の中心から外側に向かうほど像が縮小される傾向となるため、外側ほどチャート２００の平面が撮像面に近づくようにすることで、解析精度を面内で均一にできる。このように撮影された画像を用いてカメラパラメータを導出することにより、運用時には、レンズ歪みの影響を抑え、正確に像を抽出したり位置を計測したりすることが可能になる。
【００３４】
また焦点距離ｆの推定においては、透視投影した被写体の像が奥行き方向に対してどれだけ拡縮するかが重要となる。例えば格子パターンの消失点の位置から焦点距離ｆを求める技術では、消失点が画像中心に近い位置で生じるように、撮像面に対し適切な角度をつけて格子パターンの平面を配置することがなされる（例えば金谷建一、“カメラキャリブレーションの数理−最良格子パタンはどのようにして導かれたか−、数理科学 No. 364, October 1993, pp. 56参照）。
【００３５】
同様の原理で、チャート２００を構成する平面を、撮像装置１２の撮像面に対し非平行に配置することにより、奥行き方向の位置による像の表れ方に大きく変化をつけることができ、１つの撮影画像から多くの情報を得ることができる。図示するチャート２００は、２枚の平面（ボード）が光軸Ｌを通る垂直線で互いに接し、光軸Ｌに対しそれぞれθ／２をなすような線対称の形状を有するが、チャート２００の形状や、撮像装置１２との位置や姿勢の関係をこれに限る趣旨ではない。
【００３６】
図４は、本実施の形態のチャートの別の例を示している。この例のチャート２３０は図の右に示すように、３枚の平面２３２ａ、２３２ｂ、２３２ｃで構成される。すなわち図２で示した、角度θをなすように立てられた２平面に対応する平面２３２ａ、２３２ｂが接地する底面に、それらと接するように３枚目の平面２３２ｃを設けた構造を有する。そして各平面２３２ａ、２３２ｂ、２３２ｃには、図の左に展開図で示すチャートパターン２３４ａ、２３４ｂ、２３４ｃをそれぞれ表す。
【００３７】
この場合、撮像装置１２を、底面に配置される平面２３２ｃを俯瞰する、すなわち視線が水平より下向きになるように配置することにより、平面２３２ｃに表されたチャートパターンも撮影されるようにする。この場合も上述同様、撮影された画像において通常のチェッカーパターンが表れるように、元のチェッカーパターンに逆のパースをつけておく。結果として図示するように、撮像面から最も遠いポイント２３６でスケールが大きく、そこから離れるほど縮小されていくようなチャートパターンとなる。
【００３８】
平面を増やすことにより、カメラパラメータの取得に利用できる情報が増えることになり、より精度の高いキャリブレーションを実現できる。ただし特徴点を検出する処理の負荷は増える。したがって、運用時の処理に求められる精度や処理を行う装置の性能などによって、チャートを構成する平面の数を適切に選択する。また各平面のなす角度は、撮影した時に、上述のとおりチャート上の平行な直線の消失点が画像中心に近くなるような値を実験などにより求める。いずれにしろ本実施の形態のチャートパターンは、チャート２００、２３０を構成する平面の数や、チャート２００、２３０と撮像装置１２の位置や姿勢の相対関係に依存して決定する。
【００３９】
換言すれば、チャートパターンが一つに決まれば、チャート２００、２３０と撮像装置１２がとるべき位置や姿勢の相対関係は一つである。そのため、治具１４を用いて当該相対関係が達成されるようにする。なおチャートパターンは、チャート２００、２３０を構成するボードに直接印刷したり、別途印刷したものを貼り付けたりしてもよいし、プロジェクタなどで投影してもよい。
【００４０】
次に、チャートパターンの生成を行うチャートパターン生成装置と、生成されたチャートパターンを表すチャートを用いてキャリブレーションを行うキャリブレーション装置１０の構成について説明する。なお両者はそれぞれ独立した装置としてもよいし、両者の機能を有する一つの装置としてもよい。
【００４１】
図５は、チャートパターン生成装置とキャリブレーション装置１０の内部回路構成を示している。チャートパターン生成装置およびキャリブレーション装置１０は、ＣＰＵ（Central Processing Unit）１２２、ＧＰＵ（Graphics Processing Unit)１２４、メインメモリ１２６を含む。ＣＰＵ１２２は、オペレーティングシステムやアプリケーションなどのプログラムに基づいて、装置内部の構成要素における処理や信号伝送を制御する。ＧＰＵ１２４は画像処理を行う。メインメモリ１２６はＲＡＭ（Random Access Memory）により構成され、処理に必要なプログラムやデータを記憶する。
【００４２】
これらの各部は、バス１３０を介して相互に接続されている。バス１３０にはさらに入出力インターフェース１２８が接続されている。入出力インターフェース１２８には、ＵＳＢやＩＥＥＥ１３９４などの周辺機器インターフェースや、有線又は無線ＬＡＮのネットワークインターフェースからなる通信部１３２、ハードディスクドライブや不揮発性メモリなどの記憶部１３４、撮像装置１２や図示しない表示装置、プリンタなどの出力装置へデータを出力する出力部１３６、撮像装置１２や図示しない入力装置からデータを入力する入力部１３８、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部１４０が接続される。
【００４３】
ＣＰＵ１２２は、記憶部１３４に記憶されているオペレーティングシステムを実行することにより装置の全体を制御する。ＣＰＵ１２２はまた、リムーバブル記録媒体から読み出されてメインメモリ１２６にロードされた、あるいは通信部１３２を介してダウンロードされた各種プログラムを実行する。ＧＰＵ１２４は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、ＣＰＵ１２２からの描画命令に従って画像描画を行う。
【００４４】
図６は、チャートパターン生成装置２０とキャリブレーション装置１０の機能ブロックの構成を示している。図６に示す各機能ブロックは、ハードウェア的には、図５で示したＣＰＵ１２２、ＧＰＵ１２４、メインメモリ１２６などで実現でき、ソフトウェア的にはハードディスクや記録媒体からメインメモリにロードされたコンピュータプログラムなどで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００４５】
チャートパターン生成装置２０は、通常のチェッカーパターンのような元のチャートパターンに逆のパースをつけるための変換パラメータを生成する逆変換パラメータ生成部２２、当該変換パラメータを用いてチャートパターンを生成するパターン変換部２４、元のチャートパターンと変換後のチャートパターンのデータを格納するパターン画像記憶部２６、パターン中の特徴点に与えられたインデックスから、チャートの各平面上の位置座標を取得するための変換パラメータを生成する射影変換パラメータ生成部２８、および、生成された変換パラメータを格納する射影変換パラメータ記憶部３０を備える。
【００４６】
逆変換パラメータ生成部２２は、撮像装置１２とチャート２００の位置および姿勢の相対関係に係る情報を取得し、撮像面からチャート２００の平面までの距離に応じた変形がなされるような変換パラメータを生成する。位置や姿勢の相対情報はあらかじめ設定しておいてもよいし、必要に応じてユーザが入力してもよい。変換パラメータは上述のとおり、距離に応じて見かけのサイズが変化するのを打ち消すような変形を実現するものである。具体的には、元のチャートパターンの矩形を、距離に反比例するように縮小させてなる矩形の４頂点を、本来の矩形の４頂点に変換するようなホモグラフィ行列を求める。詳細は後述する。
【００４７】
パターン変換部２４は、逆変換パラメータ生成部２２が生成した変換パラメータを用いてチャートパターンを変形させる処理を、チャート２００を構成する平面ごとに行う。このためパターン画像記憶部２６には、各平面に対応づけて、元のチャートパターンの画像データを格納しておく。これにより図２の（ａ）に示したようなチャートパターンが生成される。パターン変換部２４は生成したデータをパターン画像記憶部２６に格納する。格納されたデータは、ユーザ操作によりプリンタやプロジェクタなどに出力され、適宜、印刷されたり画像が投影されたりすることにより、チャート２００が実現される。
【００４８】
射影変換パラメータ生成部２８は、元のチャートパターンにおいて全特徴点に与えたインデックスを、チャート２００上のチャートパターンにおける特徴点の位置座標に変換する変換パラメータを、チャートを構成する平面ごとに生成する。チャート２００上のチャートパターンにおける特徴点の位置座標とは、実物体としてのチャート上で本来与えられている位置座標という観点から、チャートの「３Ｄモデルの位置座標」と捉えることができる。ただしキャリブレーションに必要な情報として、チャート２００の各平面上の位置座標が判明していればすむため、実質的には２次元の位置座標でよい。
【００４９】
射影変換パラメータ生成部２８が生成する変換パラメータも、インデックスの座標系における位置座標を、変形後のチャートパターンにおける対応する特徴点の位置座標に変換するホモグラフィである。このような対応づけを行っておくことにより、キャリブレーション時には、実際に撮影された特徴点の像の位置座標と、３Ｄモデルの位置座標とを、インデックスを介して対応づけることができる。射影変換パラメータ生成部２８は、生成したパラメータを射影変換パラメータ記憶部３０に格納する。あるいは直接、キャリブレーション装置１０に送信してもよい。
【００５０】
キャリブレーション装置１０は、撮影画像のデータを取得する画像取得部３４、撮影画像における特徴点の位置座標と３Ｄモデルにおける対応する特徴点の位置座標とを対応づける特徴点情報取得部３６、それに用いる変換パラメータを格納する射影変換パラメータ記憶部４０、特徴点の対応情報を格納する特徴点情報記憶部４２、当該対応情報を用いてキャリブレーションを行うキャリブレーション部３８、およびキャリブレーションの結果として得られたカメラパラメータを格納するカメラパラメータ記憶部４４を備える。
【００５１】
画像取得部３４は、チャート２００の撮影画像のデータを撮像装置１２から取得する。撮像装置１２が多眼カメラで構成される場合、各カメラが撮影した画像のデータを全て取得する。射影変換パラメータ記憶部４０は、チャートパターン生成装置２０の射影変換パラメータ記憶部３０に格納された変換パラメータを格納する。格納処理はユーザが手動で行ってもよいし、チャートパターン生成装置２０から自動で送信されるようにしてもよい。あるいはチャート２００と共に、変換パラメータを格納した記録媒体を提供し、キャリブレーション時にデータを読み出して格納するようにしてもよい。
【００５２】
特徴点情報取得部３６は、撮影画像から特徴点とマーカーの像を検出し、マーカーによって識別される平面ごとに、検出した特徴点の像の位置座標と３Ｄモデルにおける特徴点の位置座標とを対応づける。この際、特徴点ごとにそのインデックスを特定し、射影変換パラメータ記憶部４０に格納された変換パラメータを用いてインデックスから３Ｄモデルの位置座標を特定する。これにより特徴点ごとに、撮影画像における位置座標と３Ｄモデルの位置座標とが対応づけられる
【００５３】
取得した対応情報は、特徴点情報記憶部４２に格納する。キャリブレーション部３８は、特徴点の対応情報を入力データとして、既存のアルゴリズムによりカメラパラメータを特定する。特定したパラメータは、カメラパラメータ記憶部４４に格納する。あるいは当該パラメータを撮像装置１２に送信してもよい。撮像装置１２においてカメラパラメータを保持することにより、撮像装置１２内部で適切な補正を行える。または、撮像装置１２が撮影した画像を用いてゲームなどの情報処理を行う情報処理装置に送信してもよい。これにより、撮影されたステレオ画像に対しエピポーラ線を合わせるなど適切な補正を施したうえで解析を行える。
【００５４】
図７は、チャートパターン生成装置２０が行う処理の手順を説明するための図である。チャートパターン生成装置２０のパターン画像記憶部２６には、チャート２００を構成する平面のそれぞれに対応する、変換前のチャートパターン５０のデータを格納しておく。この例で変換前のチャートパターンは、チェッカーパターンとマーカー５２により構成される。マーカー５２はチャート２００を構成する複数の平面を画像上で識別するための図形である。したがって当該平面ごとに異なる図形とする。
【００５５】
逆変換パラメータ生成部２２は、ユーザ入力あるいは事前の設定によって、撮像装置１２とチャート２００の各面との位置および姿勢の相対関係に係る位置姿勢情報５４を取得すると、距離の差による見かけのサイズの変化を打ち消すような変換パラメータ５５を生成する（Ｓ１０）。パターン変換部２４は、生成された変換パラメータ５５を用いて元のチャートパターン５０を変換し、チャートの傾斜に応じたチャートパターン５６を生成する（Ｓ１２）。なお図では１つのチャートパターン５６を示しているが、チャート２００の各面に対しチャートパターンを生成する。
【００５６】
また射影変換パラメータ生成部２８は、チャートパターンの特徴点の２次元インデックスを、チャート２００の３Ｄモデルの位置座標に変換するホモグラフィ行列５８を生成する（Ｓ１４）。図示するチェッカーパターンの場合、特徴点は白や黒のマス目の頂点である。変換前のチャートパターン５０において特徴点は横方向、縦方向に均等に分布しているため、その配列をインデックス座標系とし、各特徴点に２次元のインデックス（ｉ，ｊ）を与えておく。ここでｉ、ｊは整数値である。
【００５７】
そして特徴点のうちの代表点のインデックスと、チャートパターン５６を表したチャート２００の３Ｄモデルにおける、対応する特徴点の位置座標との関係に基づきホモグラフィ行列を生成する。このホモグラフィ行列を用いれば、全ての特徴点の３Ｄモデルにおける位置座標を、そのインデックスから容易に特定できる。
【００５８】
図８および図９は、逆変換パラメータ生成部２２が変換パラメータを生成する手法を説明するための図である。図８は、撮像装置１２とチャート２００のうち一つの平面を上側から見た様子を模式的に示している。同図に示すようにチャート２００において、撮像装置１２の撮像面から最も近い箇所ａまでの距離ｚａと、最も遠い箇所ｂまでの距離ｚｂが、位置姿勢情報５４に基づき取得される。
【００５９】
逆変換パラメータ生成部２２は上述のとおり、変換後のチャートパターンを傾斜のあるチャートに表示させ、それを撮影したときに変換前のチャートパターンの像が得られるような変換パラメータを取得する。例えば箇所ｂの見かけ上のスケールは箇所ａのｚａ／ｚｂ倍になるため、あらかじめその逆数倍しておけば、ａ、ｂにおけるパターンは見かけ上、同じサイズとなる。なお図示する例は説明のために単純化しており、より厳密には複数のカメラの位置と姿勢の関係、各カメラの画角やレンズ歪み等を考慮して透視投影を行い、撮影画像に写るであろうパターンの形状を算出しながら調整することにより、より最適な変換パラメータが得られる。
【００６０】
図９は、変換前後のチャートパターンの仮想的な幾何形状を示している。図示するチャートパターン平面６０において、図８で示したａが左辺、ｂが右辺に対応する。チャートパターンの高さをｈ、幅をｗとし、左上をパターン平面の原点とする。ある画像を、射影変換を用いて異なる平面上の画像に変換することを一般にホモグラフィと呼ぶ。変換パラメータであるホモグラフィ行列は、変換前後の４点の対応情報によって決定できる。
【００６１】
この例では、チャートパターンの４頂点の座標に着目する。チャートパターンは上述のとおり、チャート２００において撮像面から離れるほど大きい倍率で拡大し、撮像面から最も遠いｂにおいてｚｂ／ｚａ倍に拡大する必要がある。したがって変換前のチャートパターンのうち変換後のチャートパターンとして残るのは、辺ａから辺ｂに向けて高さが徐々に小さくなり、ｂにおいては高さがｈ・ｚａ／ｚｂとなる台形６２の部分となる。なおこの例は辺ｂの中点である点ｐに光軸がある場合を示しており、光軸の位置によって台形の形状も異なる。そして台形６２を、元の長方形６４に変換するようなホモグラフィ行列を求めれば、画像全体に対し適切な変換を行える。
【００６２】
変換前の台形６２の４頂点の座標（ｘｎ，ｙｎ）（ｎ＝０，１，２，３）は、次のように表せる。
（ｘ０，ｙ０）＝（０，０）
（ｘ１，ｙ１）＝（ｗ，０．５＊ｈ＊（１−ｚａ／ｚｂ））
（ｘ２，ｙ２）＝（０，ｈ）
（ｘ３，ｙ３）＝（ｗ，０．５＊ｈ＊（１＋ｚａ／ｚｂ））
【００６３】
一方、変換後の長方形６４の４頂点の座標（ｘ’ｎ，ｙ’ｎ）（ｎ＝０，１，２，３）は、次のように表せる。
（ｘ’０，ｙ’０）＝（０，０）
（ｘ’１，ｙ’１）＝（ｗ，０）
（ｘ’２，ｙ’２）＝（０，ｈ）
（ｘ’３，ｙ’３）＝（ｗ，ｈ）
【００６４】
ホモグラフィ行列Ｈは、スケーリングファクタをｓとして次のように定義される。
【００６５】
【数３】
0006764533.tif 000004
【００６６】
図示するように変換前後の矩形の頂点座標を規定した場合、次の式が与えられる。
【００６７】
【数４】
0006764533.tif 000005
【００６８】
左辺左側の行列をＥ、右辺の行列をＦとすると、Ｅは正方行列のため、ホモグラフィ行列Ｈは次のように求められる。
Ｈ＝Ｅ−１Ｆ
【００６９】
図１０は、チャートパターンの特徴点に与えるインデックスを説明するための図である。上述のとおりキャリブレーション時には、撮影画像における特徴点の像の位置と、その３Ｄモデルでの位置との対応づけを行う。そのためチャートパターン５０におけるマーカー５２の近傍を基点として、各特徴点を識別するインデックスを与えるとともに、インデックスをキーとして３Ｄモデルでの位置座標を特定できるようにする。
【００７０】
図示する例では、マーカー５２から２つ上のマス目の左上の頂点を、インデックス（ｉ，ｊ）の座標系の原点としている。一方、画像平面での画素を単位とする位置座標（ｘ，ｙ）の系では、画像の左上を原点とする。この例では画像の座標系での原点（ｘ，ｙ）＝（０，０）は、インデックス座標系では（ｉ，ｊ）＝（−７，−４）に対応している。逆にインデックス座標系の原点（ｉ，ｊ）＝（０，０）は、画像の座標系では（ｘ，ｙ）＝（７＊ｇｒｉｄＳｉｚｅ，４＊ｇｒｉｄＳｉｚｅ）の位置にある。
【００７１】
ここでｇｒｉｄＳｉｚｅは、１つのマス目を構成する縦横の画素数であり、例えばｎ＝６４である。このときインデックス座標系の原点は、画像の座標系における（ｘ，ｙ）＝（４４８，２５６）の位置にある。図ではこの位置を（Ｃｘ，Ｃｙ）としている。一般化すると、特徴点のインデックス（ｉ，ｊ）と画像平面における位置座標（ｘ，ｙ）には次の関係がある。
ｘ＝ｉ＊ｇｒｉｄＳｉｚｅ＋Ｃｘ
ｙ＝ｊ＊ｇｒｉｄＳｉｚｅ＋Ｃｙ
【００７２】
射影変換パラメータ生成部２８は、特徴点のインデックスからチャート２００の３Ｄモデルにおける位置座標を取得するための変換パラメータを生成する。特徴点のインデックス（ｉ，ｊ）と画像の位置座標（ｘ，ｙ）の関係は上式の通りである。さらに変換前のチャートパターン５０における位置座標（ｘ，ｙ）から、変換後のチャートパターン５６における位置座標（ｘ’，ｙ’）へは、上述のホモグラフィ行列Ｈにより変換できる。
【００７３】
さらに、チャートの３Ｄモデルにおける長さを単位とする位置座標（ｘ”，ｙ”，ｚ”）は、画素サイズと実際の長さとの関係から、次のように求められる。
ｘ”＝ｘ’＊ｓｃａｌｅ
ｙ”＝ｙ’＊ｓｃａｌｅ
ｚ”＝０
ここでｓｃａｌｅは１画素領域の幅であり、長さの単位をミリとすると、例えば０．２５といった値である。
【００７４】
したがって射影変換パラメータ生成部２８は、例えばチャートパターン５０の４頂点のインデックス（ｉｎ，ｊｎ）（ｎ＝０，１，２，３）と、それに対応するチャート２００の３Ｄモデルにおける位置座標のｘ成分、ｙ成分（ｘ”，ｙ”）を取得し、上述と同様にホモグラフィ行列Ｈの方程式を立てることにより、インデックスを３Ｄモデルの位置座標に変換するホモグラフィ行列を求めることができる。ホモグラフィ行列はチャート２００を構成する平面ごとに取得し、平面の識別情報と対応づけて射影変換パラメータ記憶部３０に格納する。
【００７５】
次にキャリブレーション装置１０の動作について説明する。図１１は、本実施の形態におけるキャリブレーション装置１０が、チャート２００の撮影画像に基づきキャリブレーションを行う処理手順を示すフローチャートである。まず画像取得部３４は、撮像装置１２から撮影画像のデータを取得する（Ｓ２０）。撮像装置１２をステレオカメラなどの多眼カメラとする場合は、各カメラで撮影された画像のデータを全て取得する。
【００７６】
また同じ撮影状態で複数回撮影された画像のデータを取得してもよい。このとき画像取得部３４は、各フレーム画像を加算することによりノイズ低減処理を実施してもよい。例えば１６フレーム分の画像を、対応する画素ごとに加算して平均値を取得し、当該平均値を画素値とする画像を生成する。
【００７７】
次に特徴点情報取得部３６は、撮影画像から特徴点の像を抽出する（Ｓ２２）。チェッカーパターンのマス目の頂点を特徴点として検出する手法として様々なものが実用化されており、ここではそれらのいずれを採用してもよい。例えばＨａｒｒｉｓ特徴量を用いた手法によれば、特徴量の値が所定値以上のものを、マス目の頂点（コーナー）として抽出する（C. Harris and M. Stephens, "A combined corner and edge detector", Proceedings of the 4th Alvey Vision Conference, 1988, pp. 147-151参照）。
【００７８】
ただしこの手法で求めた位置座標では精度が十分でない場合があるため、２つのエッジ輝度勾配を用い、サブピクセル精度で撮影画像における位置座標（ｕ，ｖ）を取得することが望ましい。この処理には、オープンソースの画像処理ソフトウェアライブラリとして代表的なＯｐｅｎＣＶのcv::FindCornerSubPix()関数などを利用できる。
【００７９】
さらに特徴点情報取得部３６は、マーカーの像との位置関係に基づき各特徴点のインデックスを求め、チャートパターン生成装置２０から取得したホモグラフィ行列を用いてチャート２００での位置座標に変換する。これにより、特徴点の撮影画像上での位置座標とチャート２００の３Ｄモデルでの位置座標とを対応づけた特徴点情報を生成する（Ｓ２４）。
【００８０】
この際、マーカーの図形によってチャート２００を構成する平面を識別し、各平面に対応づけられたホモグラフィ行列を、射影変換パラメータ記憶部３０から読み出して用いる。多眼カメラの場合Ｓ１４の処理を、全てのカメラが撮影した画像について繰り返す（Ｓ２６のＮ）。全てのカメラが撮影した画像について特徴点情報を生成できたら（Ｓ２６のＹ）、キャリブレーション部３８は、当該特徴点情報を用いてキャリブレーションを行い、カメラパラメータを取得する（Ｓ２８）。
【００８１】
このキャリブレーション処理は、非特許文献１などに記載されている既存の技術を利用できるため、以後、Ｓ１４の処理に主眼を置いて説明する。この処理は、撮影画像において、マーカーの像を基点として周囲に探索を広げていくことにより、全ての特徴点の像の位置座標とインデックスを対応づけ、ひいては当該位置座標をチャート２００の３Ｄモデルの位置座標に対応づけるものである。
【００８２】
図１２は、図１１のＳ１４において特徴点情報取得部３６が特徴点情報を生成する処理手順を示すフローチャートである。特徴点情報取得部３６はまず、撮影画像におけるマーカーの像を検出する（Ｓ３０）。この検出処理は、実世界でボード等に記したマーカーを検出し、それに対応する仮想オブジェクトを撮影画像中に描画するＡＲ（拡張現実）の技術と同様に行える。例えばＡｒＵｃｏ  Ｍａｒｋｅｒの技術を採用することができる（S. Garrido-Jurado et al. "Automatic generation and detection of highly reliable fiducial markers under occlusion" Pattern Recognition, Vol. 47, No. 6. 2014, June, pp. 2280-2292参照）
【００８３】
次に特徴点情報取得部３６は、検出したマーカーのうちの１つについて、画像上での歪みを表すパラメータを取得する（Ｓ３２）。具体的には、マーカーの像として本来表れるべき水平および垂直方向に辺を有する矩形の４頂点を、マーカーの実際の像の４頂点へ変換するホモグラフィ行列を取得する。
【００８４】
続いて、当該マーカーを基点として、その周囲のマス目の頂点を検出する（Ｓ３４）。このとき、当該マス目の像として本来表れるべき正方形の４頂点を、Ｓ３２で取得したホモグラフィ行列により変換することで、その付近で生じている歪みを考慮したうえで、４頂点のおよその位置を特定できる。そして変換後の位置座標の周囲（例えば０．５画素程度の範囲）で、有効に検出されている特徴点を探索する。検出された特徴点のインデックスはマーカーとの位置関係から明らかなため、結果としてこの処理は、撮影画像における特徴点の位置座標（ｕ，ｖ）とインデックスを対応づけていることになる。
【００８５】
次にそれらのインデックスから、３Ｄモデルの位置座標（ｘ”，ｙ”，ｚ”）（ただしｚ”＝０）を特定することで、特徴点の位置座標（ｕ，ｖ）と３Ｄモデルの位置座標（ｘ”，ｙ”，ｚ”）を対応づける（Ｓ３６）。位置座標の変換には、射影変換パラメータ記憶部４０に格納された、マーカーに対応する平面のホモグラフィ行列を用いる。次に、Ｓ３４で検出したマス目の歪みを表すパラメータを取得する（Ｓ３８）。具体的にはＳ３２と同様、マス目の像として本来表れるべき正方形の４頂点を、マス目の実際の像の４頂点へ変換するホモグラフィ行列を取得する。
【００８６】
次に当該マス目を基点として、その周囲のマス目の頂点を検出する（Ｓ４０）。このときもＳ３４と同様、マス目の像として本来表れるべき正方形の４頂点を、Ｓ３８で取得したホモグラフィ行列により変換することで、その付近で生じている歪みを考慮したうえで、マス目の頂点のおよその位置を特定できる。そして変換後の位置座標の周囲で、有効に検出されている特徴点を探索、検出することにより、その位置座標（ｕ，ｖ）とインデックスとを対応づける。
【００８７】
次にＳ３６と同様、それぞれのインデックス（ｉ，ｊ）をホモグラフィ行列により３Ｄモデルの位置座標（ｘ”，ｙ”，ｚ”）に変換し、撮影画像における特徴点の位置座標（ｕ，ｖ）と対応づけて格納する（Ｓ４２）。Ｓ３８からＳ４２の処理を、同じ平面に表された全てのマス目について繰り返す（Ｓ４４のＮ）。全マス目の頂点、すなわち特徴点の対応情報が生成されたら（Ｓ４４のＹ）、Ｓ３０で検出した別のマーカーに対応する平面に対し、Ｓ３２〜Ｓ４４の処理を繰り返す（Ｓ４６のＮ）。このようにして、検出された全てのマーカー、ひいては全ての平面に対し特徴点情報を生成、格納できたら処理を終了する（Ｓ４６のＹ）。
【００８８】
図１３は、チャート２００を撮影した画像におけるマーカーとマス目の様子を例示している。（ａ）は一例として、チャート２００の一面のみを撮影した画像全体を示しており、（ｂ）はそのうちマーカー近傍の領域を拡大して示している。図１１のＳ２２の処理により、（ａ）に示した撮影画像に写る特徴点、すなわちこの例ではチェッカーを構成するマス目の頂点が検出される。（ｂ）ではそれらの位置を白丸で示している。
【００８９】
ただしわかりやすさのために強調表示しており、実際にはサブピクセル単位で位置座標が詳細に求められる。この後の説明でも同様である。さらに図１２のＳ３０の処理により、マーカー５２の像が検出される。これにより、同図に十字で示すようにマーカー５２の４頂点の位置座標（ｕ０，ｖ０）、（ｕ１，ｖ１）、（ｕ２，ｖ２）、（ｕ３，ｖ３）が判明する。
【００９０】
図１４は、図１２のＳ３４において、近傍での画像の歪みを考慮してマス目の頂点を検出するために、基準とする座標系を説明するための図である。これまで述べたように、チャート２００に表すチャートパターンは、撮像面に対する平面の傾斜を考慮して射影変換されており、その結果、撮影画像におけるチャートパターンの像は、本来は図示するような射影変換前のチャートパターン５０と同様となる。これが実際の撮影画像でどのように歪んでいるかを、チャートパターン５０の状態を基点としたホモグラフィー行列によって特定する。
【００９１】
そのためチャートパターン５０において、マーカー５２の頂点のうち黒丸で示した左上の点を原点とし、マーカーの一辺の長さを単位とする座標系を、「マーカー正規化座標系」として定義する。図の右側に拡大して示すように、マーカー正規化座標系においてマーカーの４頂点の位置座標は、（０．０，０．０）、（１．０，０．０）、（０．０，１．０）、（１．０，１．０）である。このようなマーカー正規化座標系における頂点の位置座標から、実際に撮影画像から得たマーカーの像の頂点の位置座標への変換を行うホモグラフィ行列を求める。
【００９２】
マーカー検出処理により４頂点の位置座標の変換前後の対応が判明しているため、ホモグラフィ行列は上述と同様に計算できる。マーカー５２の周辺では同様の歪みが生じていると考えられるため、周囲のマス目の頂点を探索する際は、このホモグラフィ行列を用いてマス目の頂点の位置座標を変換する。つまりマーカー正規化座標系におけるマス目の頂点の位置座標を、歪みに応じて変換することで、撮影画像における実際の頂点に近い位置座標を得ることができる。
【００９３】
図示する例では、マーカー正規化座標系において、マーカー５２の２つ上のマス目の４頂点の位置座標は（０．２５，−１．２５）、（０．７５，−１．２５）、（０．２５，−０．７５）、（０．７５，−０．７５）である。ただしチェッカーパターンのマス目はマーカーの１／４のサイズであり、中心軸が一致するとしている。なお当該マス目の左上の頂点は、特徴点のインデックスの原点であり、これとの関係からその他の頂点のインデックスも判明する。これらの頂点の位置座標を、マーカーから求めたホモグラフィ行列により変換した位置座標が、撮影画像において特徴点の像があるべきおよその位置を表す。
【００９４】
したがって、撮影画像において変換後の位置座標の最近傍の特徴点を特定すれば、実際の画像における特徴点の位置座標とインデックスを対応づけることができる。そして上述の通り、インデックスをキーとして３Ｄモデルの位置座標を特定することにより、特徴点の位置座標の対応に係る情報を取得できる。マーカー５２の上下左右のマス目の頂点について特徴点情報を取得したら、それらのマス目を基点として同様の処理を繰り返すことで、特徴点情報を取得済みの特徴点の範囲を拡張していく。
【００９５】
図１５は、図１２のＳ４０において、チェッカーパターンのマス目を基点として周囲のマス目の頂点の位置座標を特定する処理を説明するための図である。例えば図１４で説明した、インデックスの原点を左上とするマス目７０を基点とする場合、その頂点のうち黒丸で示した左上の点を原点とし、マス目の一辺の長さを単位とする座標系を、「基点マス目正規化座標系」として定義する。
【００９６】
基点マス目正規化座標系において、基点とするマス目７０の４頂点の位置座標は、（０．０，０．０）、（１．０，０．０）、（０．０，１．０）、（１．０，１．０）である。そして基点となるマス目７０の上下左右のマス目の４頂点のうち、特徴点情報が生成されていない頂点を検出する。例えば基点とするマス目７０の上のマス目７２の場合、その４頂点のうちマス目７０と共通する頂点については特徴点情報が得られているため、残りの２点について処理を行う。
【００９７】
すなわち、基点とするマス目７０の歪みを表すホモグラフィ行列を求め、それを用いて対象の２点の位置座標（０．０，−１．０）、（１．０，−１．０）を変換することにより、撮影画像上でのおよその位置を特定する。そして当該位置座標の最近傍の特徴点を検出し、上述のとおり対応情報を生成する。続いてマス目７２を基点として正規化座標系を定義すれば、さらにその周囲のマス目の頂点について特徴点情報を生成できる。そのようにして基点となるマス目を順次移行させていけば、撮影画像に写るほとんどの特徴点について、効率的に特徴点情報を得ることができる。
【００９８】
図１６は、特徴点情報記憶部４２に格納される特徴点情報のデータ構造例を示している。特徴点情報８０は、カメラＩＤフィールド８２、平面ＩＤフィールド８４、インデックスフィールド８６、２Ｄ位置座標フィールド、３Ｄ位置座標フィールド９０を含む。カメラＩＤフィールド８２は撮像装置１２を多眼カメラとしたときのカメラを識別する情報を示し、撮影画像の付加データとして撮像装置１２から取得する。
【００９９】
図示する例では撮像装置をステレオカメラと仮定し、「０」、「１」なる２つの識別番号が与えられている。平面ＩＤフィールド８４は、チャート２００を構成する平面を識別する情報を示し、撮影画像におけるマーカーの像に基づき特定する。図示する例では「０」、「１」、・・・といった識別番号が与えられている。マーカーの図形と識別番号はあらかじめ対応づけておく。チャート２００を２枚の平面とする場合、識別番号は「０」と「１」となる。
【０１００】
インデックスフィールド８６は、マーカーで識別される平面内で一意に与えられた、特徴点のインデックスを示す。図１０に示すようにインデックスの原点をマーカー５２の近傍に設定する場合、インデックスは負の値をとり得る。図示する例では、縦横双方向に、−ｍからｎまでの整数が与えられているとしている。２Ｄ位置座標フィールド８８は、撮影画像における各特徴点の像の位置座標を示す。図示する例では、縦横双方向にＮ＋１個の特徴点があるとし、座標の値を添え字で区別している。
【０１０１】
３Ｄ位置座標フィールド９０は、チャート２００の３Ｄモデルにおける特徴点の位置座標を示す。この情報は３次元であるが、チャート２００を構成する平面上での位置を表すため、ｚ”は０としてよい。座標値の添え字は、２Ｄ位置座標フィールド８８における記載と同様である。なお各フィールドの値のフォーマットは図示するものに限らない。
【０１０２】
キャリブレーション部３８は特徴点情報８０を用いて、所定の手法でカメラパラメータを取得する。例えばZhangの手法を用いる場合、平面チャートを複数の視点から撮影した画像における特徴点情報の代わりに、一度の撮影で得られた画像における複数平面の特徴点情報を用いることができる。同時に回転行列と並進ベクトルも得られるため、それらに基づき多眼カメラの相互関係など外部パラメータを得ることもできる。なお回転行列や並進ベクトルを特定する手法としては、ＯｐｅｎＣＶのcv::CalibrateCamera()関数を用いることができる。
【０１０３】
次に実験の結果を示す。図１７は、チャートパターン生成装置２０が生成したチャートパターンを示している。同図の場合、チャート２００として２枚の平面を想定しており、各平面に対し左用チャートパターン９２ａ、右用チャートパターン９２ｂを生成する。図２で示したように、撮像装置１２の光軸を通る垂直線に対し線対称に平面を立てた場合、左用チャートパターン９２ａの右辺と右用チャートパターン９２ｂの左辺が，撮像面から最も遠い位置となる。したがって当該距離の変化に応じてチャートパターンのマス目には逆のパースが施されている。
【０１０４】
図１８は、広角カメラを用いてチャート２００を撮影したときの撮影画像を示している。画像の中央付近では、チェッカーパターンを構成するマス目の像が、およそ直交かつ均等に並んでいる一方、画像の縁に向かうほどマス目の形状が歪んでいる。これは上述のとおり、通常のカメラと射影方式が異なることによる。このような撮影画像の場合、単純な水平、垂直方向の探索では特徴点のインデックスを特定しづらい。
【０１０５】
図１９は、図１８で示した撮影画像から特徴点およびマーカーを検出した結果を示している。この際、上述のとおり、撮影画像における歪みを考慮したうえで、マーカーの像を基点として特徴点を探索していくことで、インデックスとの対応づけを正確かつ効率的に行える。ひいては特徴点の撮影画像上での位置座標と、３Ｄモデルでの位置座標との対応づけを容易にできる。
【０１０６】
図２０は、特徴点の対応情報を用いてキャリブレーションを行い、得られたカメラパラメータに基づき補正した画像を示している。この画像は光軸を中心としている。また同図では複数の視野角に対応する範囲を円形で示している。中心に近い方から範囲９４ａ、９４ｂ、９４ｃの視野角はそれぞれ、５０ｄｅｇ、１００ｄｅｇ、１２０ｄｅｇである。１２０ｄｅｇの広角においても、チャート２００の像が歪みなく得られていることがわかる。
【０１０７】
以上、述べた本実施の形態によれば、撮像装置のキャリブレーションにおいて、所定角度をなす複数の平面で構成されるチャートを用いる。これにより、１つの平面を視点を変えて撮影したのと同等の情報を、一度の撮影で得ることができる。またチャートに表すパターンは、撮像面に対し傾斜のある状態で撮影したときに直交かつ均等な特徴点の配列が得られるようにする。またチャートは、撮像装置の焦点距離を半径とし光学中心を中心とする円周に接するような開き角度で、撮像面の前面に配置する。
【０１０８】
これにより、チャートのどの平面についても歪みが最小限に抑えられた撮影画像を取得でき、特徴点の探索を容易かつ高精度に行える。特にチャートを構成する平面と撮像面との角度に応じて適切なチャートパターンを生成することにより、撮影画像に写る特徴点の配列を一般的なチャートパターンと同様にできるため、様々なキャリブレーション手法に容易に適用できる。
【０１０９】
例えばZhangの手法で工数を要していた、位置や姿勢を変化させながらの撮影を行わずに、当該手法の演算をそのまま利用できるため、精度を劣化させることなく作業工数を軽減させることができる。結果として、撮像装置の量産コストも軽減させることができる。
【０１１０】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【０１１１】
１０  キャリブレーション装置、  １２  撮像装置、  １４  治具、  ２０  チャートパターン生成装置、  ２２  逆変換パラメータ生成部、  ２４  パターン変換部、  ２６  パターン画像記憶部、  ２８  射影変換パラメータ生成部、  ３０  射影変換パラメータ記憶部、  ３４  画像取得部、  ３６  特徴点情報取得部、  ３８  キャリブレーション部、  ４０  射影変換パラメータ記憶部、  ４２  特徴点情報記憶部、  ４４  カメラパラメータ記憶部、  １２２  ＣＰＵ、  １２４  ＧＰＵ、  １２６  メインメモリ、  ２００  チャート。
【産業上の利用可能性】
【０１１２】
以上のように本発明は、撮像装置のキャリブレーション装置、キャリブレーション用の治具、チャートパターンを生成する装置と、それを含むシステムなどに利用可能である。
【図１】
0006764533.tif 000006
【図２】
0006764533.tif 000007
【図３】
0006764533.tif 000008
【図４】
0006764533.tif 000009
【図５】
0006764533.tif 000010
【図６】
0006764533.tif 000011
【図７】
0006764533.tif 000012
【図８】
0006764533.tif 000013
【図９】
0006764533.tif 000014
【図１０】
0006764533.tif 000015
【図１１】
0006764533.tif 000016
【図１２】
0006764533.tif 000017
【図１３】
0006764533.tif 000018
【図１４】
0006764533.tif 000019
【図１５】
0006764533.tif 000020
【図１６】
0006764533.tif 000021
【図１７】
0006764533.tif 000022
【図１８】
0006764533.tif 000023
【図１９】
0006764533.tif 000024
【図２０】
0006764533.tif 000025