説明

カメラパラメータのキャリブレーション装置及びプログラム

【課題】直感的なキャリブレーション処理を可能とする、カメラパラメータのキャリブレーション装置を提供する。
【解決手段】キャリブレーション装置は、各撮影画像内の同じ被写体の同じ点である対応点それぞれについて、撮影画像内での位置を示す画像座標系での第1の座標を保存する手段と、各カメラのカメラパラメータから世界座標系と画像座標系とを変換する射影行列をそれぞれ計算する手段と、各カメラそれぞれについて、カメラの射影行列及び該カメラの撮影画像内の第1の座標に基づき実空間内の直線を求める手段と、各カメラの射影行列及び各撮影画像の第1の座標に基づき実空間上の1点の世界座標を求め、求めた世界座標と座標変換手段が求めた各直線との距離に基づき誤差量を算出する手段と、算出した誤差量を表示する手段と、保存している各カメラのカメラパラメータを変更する手段とを備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カメラパラメータのキャリブレーション技術に関する。
【背景技術】
【0002】
カメラが撮影した画像の画素を特定するための座標系である画像座標系と、実空間上の位置を特定するための座標系である世界座標系との間の座標変換を行う射影行列は、カメラパラメータにより決定される。ここで、カメラパラメータは、カメラ内部の光学系の特性により決まる内部パラメータと、カメラの向き及び設置位置により決まる外部パラメータに分類される。
【0003】
例えば、カメラの光学系の設計値から求めた内部パラメータ、カメラの向き及び設置位置の実測値による外部パラメータに基づき射影行列を求め、この求めた射影行列により画像座標系と世界座標系の座標変換を行ったとしても、通常、誤差が生じる。これは、光学系の設計値と実際の値との誤差及び外部パラメータの実測値に含まれる誤差に起因している。
【0004】
このため、通常、カメラパラメータについてはキャリブレーションが必要であり、例えば、非特許文献1にはキャリブレーション方法が記載されている。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】徐 剛、辻 三郎 著、“3次元ビジョン”、共立出版社、pp.79−pp.83、1999年5月
【発明の概要】
【発明が解決しようとする課題】
【0006】
同じ被写体を複数のカメラを用いて撮影し、この撮影した画像に基づき各カメラのカメラパラメータのキャリブレーションを行う場合、扱うべきパラメータの数が多すぎるため、その作業は煩雑なものとなり、直感的なキャリブレーション処理を可能とする装置があれば便利である。
【0007】
したがって、本発明は、直感的なキャリブレーション処理を可能とする、カメラパラメータのキャリブレーション装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明におけるカメラパラメータのキャリブレーション装置によれば、
各カメラのカメラパラメータを保存するパラメータ保存手段と、各カメラが撮影した撮影画像内の同じ被写体の同じ点である対応点それぞれについて、撮影画像内での位置を示す画像座標系での第1の座標を保存する対応点座標保存手段と、各カメラのカメラパラメータから、実空間の位置を示す世界座標系と各カメラの画像座標系とを変換する射影行列をそれぞれ計算する射影行列計算手段と、各カメラそれぞれについて、カメラの射影行列及び該カメラの撮影画像内の第1の座標に基づき実空間内の直線を求める座標変換手段と、各カメラの射影行列及び各撮影画像の第1の座標に基づき実空間上の1点の世界座標を求め、求めた世界座標と座標変換手段が求めた各直線との距離に基づき誤差量を算出する誤差量算出手段と、算出した誤差量を表示する表示手段と、パラメータ保存手段が保存している各カメラのカメラパラメータを変更するパラメータ変更手段とを備えていることを特徴とする。
【0009】
本発明の他の実施形態によれば、
パラメータ保存手段が保存しているカメラパラメータをパラメータ変更手段が変更した場合、射影行列計算手段は、変更後のカメラパラメータから射影行列を再計算し、座標変換手段は、再計算後の射影行列に基づき各直線を新たに求め、誤差量算出手段は、再計算後の射影行列に基づき実空間上の1点の世界座標を新たに求め、新たに求めた世界座標と新たに求めた複数の直線との距離に基づき誤差量を算出することも好ましい。
【0010】
また、本発明のカメラパラメータのキャリブレーション装置の他の実施形態によれば、
各カメラのカメラパラメータを保存するパラメータ保存手段と、各カメラが撮影した撮影画像内の同じ被写体の同じ点である対応点それぞれについて、撮影画像内での位置を示す画像座標系での第1の座標を保存する対応点座標保存手段と、各カメラのカメラパラメータから、実空間の位置を示す世界座標系と各カメラの画像座標系とを変換する射影行列をそれぞれ計算する射影行列計算手段と、各カメラそれぞれについて、カメラの射影行列及び該カメラの撮影画像内の対応点の第1の座標に基づき、該対応点に対応する光線の他の撮影画像内での軌跡であるエピポーラ線を、他の撮影画像それぞれについて求める座標変換手段と、各撮影画像の対応点と座標変換手段が求めたエピポーラ線との距離に基づき誤差量を算出する誤差量算出手段と、算出した誤差量を表示する表示手段と、パラメータ保存手段が保存している各カメラのカメラパラメータを変更するパラメータ変更手段とを備えていることを特徴とする。
【0011】
本発明におけるプログラムによれば、
上記キャリブレーション装置としてコンピュータを機能させることを特徴とする。
【発明の効果】
【0012】
表示部が表示する誤差量を確認しながら各カメラのカメラパラメータを調整することにより、複数カメラのカメラパラメータの直感的なキャリブレーション処理が可能となる。
【図面の簡単な説明】
【0013】
【図1】本発明によるカメラパラメータのキャリブレーション装置の構成図である。
【図2】初期データを説明する図である。
【図3】初期データを説明する他の図である。
【図4】カメラパラメータ及び対応点から求める実空間上の直線を示す図である。
【図5】誤差量算出部の処理を説明する図である。
【図6】エピポーラ線を示す図である。
【発明を実施するための形態】
【0014】
本発明を実施するための実施形態について、以下では図面を用いて詳細に説明する。
【0015】
図1は、本発明によるカメラパラメータのキャリブレーション装置の構成図である。図1によると、キャリブレーション装置は、初期データ入力部1と、パラメータ保存部2と、撮影画像保存部3と、対応点座標保存部4と、射影行列計算部5と、座標変換部6と、誤差量算出部7と、表示部8と、パラメータ変更部9とを備えている。
【0016】
まず、本装置の利用者は、初期データ入力部1経由で初期データを装置に入力する。図2及び図3は、利用者が装置に入力する初期データを説明する図である。図2において、符号10−1〜10−NはN台のカメラを表しており、A、M、R(1≦n≦N)は、それぞれ、カメラ10−nの内部パラメータ行列、カメラ設置位置の世界座標系での座標、カメラの向きを示す回転行列である。ここで、M、Rがカメラの外部パラメータである。また、符号20は被写体であり、符号30は被写体内の特徴点であり、Mは特徴点30の世界座標系での座標である。
【0017】
図3(a)はカメラ10−1が、図3(b)はカメラ10−2が、図3(c)はカメラ10−Nが撮影した撮影画像を示す図であり、符号40−1、40−2及び40−Nは、撮影画像内の特徴点30に対応する対応点を示している。また、mはカメラ10−1の画像座標系での対応点40−1の座標であり、mはカメラ10−2の画像座標系での対応点40−2の座標であり、mはカメラ10−Nの画像座標系での対応点40−Nの座標である。
【0018】
例えば、A、M、R、m(1≦n≦N)及びMは以下の行列で表される。
【0019】
【数1】

ここで、fnu及びfnvは焦点距離であり、(tnu,tnv)は画像の中心の座標である。
【0020】
利用者は、本装置に対して、各カメラの内部パラメータA、外部パラメータM及びR、撮影画像のデータ、撮影画像内の対応点の画像座標m(1≦n≦N)を入力する。なお、利用者が入力する各カメラの内部パラメータは、例えば、光学系の設計値に基づく値、外部パラメータM及びRは実測値、対応点の画像座標は、利用者が目視により決定した画素の座標とすることができるが、他の方法であっても良い。
【0021】
図1に戻り、パラメータ保存部2は、各カメラ10−1〜10−Nの内部パラメータA〜A並びに外部パラメータM〜M及びR〜Rを保存し、撮影画像保存部3は、各カメラ10−1〜10−Nが撮影した撮影画像を保存し、対応点座標保存部4は、各カメラ10−1〜10−Nが撮影した撮影画像内にある対応点40−1〜40−Nの画像座標m〜mを保存する。
【0022】
射影行列計算部5は、カメラ10−nの内部パラメータA並びに外部パラメータM及びRに基づきカメラ10−nの射影行列Pを以下の通り計算する。
【0023】
【数2】

【0024】
【数3】

とすると、対応点40−nの斉次座標は、特徴点30の斉次座標と、射影行列Pを用いて以下の計算式(1)にて求められることになる。なお、λはスカラー値である。
【0025】
【数4】

座標変換部6は、対応点40−nの画像座標mと、射影行列Pと、式(1)に基づきカメラ10−nを通る空間上の直線を計算する。この直線は、カメラ10−nのカメラパラメータが正確である場合には、特徴点30を通過するものである。しかしながら、カメラパラメータに含まれる誤差により、通常、この直線は図4に示す様に特徴点30を通過しないものとなる。図4において、符号50−1は、座標mと射影行列Pより求めた直線であり、符号50−2は、座標mと射影行列Pより求めた直線であり、符号50−Nは、座標mと射影行列Pより求めた直線である。なお、図4においては、被写体20は省略している。
【0026】
誤差量算出部7は、各カメラ10−1〜10−Nのカメラパラメータのずれを示す指標である誤差量を計算する。以下に、誤差量の算出について説明する。まず式(1)から以下の式が求められる。
【0027】
【数5】

ここで、
【0028】
【数6】

とすると、
BM=b
となり、よって、座標Mは、
=(BB)−1
で求めることができる。求めた座標Mは、現在のカメラパラメータを基準とした場合の特徴点の位置であるが、この座標Mは、図5に示す様に、カメラパラメータの誤差により特徴点30とは異なる座標60を示している。しかしながら、本発明において特徴点30の座標は未知であるため、誤差量算出部7は、現在のカメラパラメータを基準とした場合の特徴点の位置60の座標Mと、座標変換部6が求めた各直線50−1〜50−Nとの最短距離の和、又は、最短距離の2乗の和を誤差量として算出する。当然ではあるが、カメラパラメータに誤差がない場合には、総ての直線50−1〜50−Nは一点を通り、この一点が位置60かつ特徴点30であり、誤差量は零である。表示部8は誤差量算出部7が算出した誤差量とパラメータ保存部2が保存している各カメラ10−1〜10−Nのカメラパラメータをディスプレイに表示する。また、図4及び5に示す様に、座標変換部6が求めた各直線と、誤差量算出部7が求めた位置60を視覚的に表示しても良い。
【0029】
パラメータ変更部9は、カメラパラメータ変更のための利用者との入出力インタフェースであり、利用者はパラメータ変更部9を用いて任意のカメラの任意のカメラパラメータの値を変更する。この変更により、パラメータ保存部2に保存されている値は変更後の値に更新され、射影行列計算部5は射影行列を再計算し、座標変換部5は直線を再計算し、誤差量算出部7は、誤差量を再計算し、表示部8は再計算後の結果を新たに表示する。
【0030】
利用者は、この誤差量が所定の値より小さくなるまで各パラメータを修正する。以上の処理により複数カメラのカメラパラメータのキャリブレーションを直感的に、一括して実施することができる。
【0031】
続いて、本発明の他の実施形態について説明する。射影行列Pの各要素のうち、
【0032】
【数7】

の部分はAに対応し、
【0033】
【数8】

の部分は−Aに対応するものであるため、カメラ位置Mは、
【0034】
【数9】

で導出することができる。したがって、座標mの画素に対応する光線の方向を示す単位ベクトル(x,y,z)は、
【0035】
【数10】

で求められることになる。
【0036】
このベクトルに基づき座標mの画素に対応する光線の実空間における軌跡を求め、この軌跡の他の画像上の対応画素、つまり、エピポーラ線を求める。図6は、カメラ10−1が撮影した画像におけるエピポーラ線51−2と51−Nを示している。ここで、エピポーラ線51−2は、カメラ10−2が撮影した画像内の対応点40−2の座標mに対応するものであり、エピポーラ線51−Nは、カメラ10−Nが撮影した画像内の対応点40−Nの座標mに対応するものである。
【0037】
本実施形態において、座標変換部6は、カメラ10−nが撮影した撮影画像上におけるカメラ10−kが撮影した撮影画像の対応点m(kは1以上N以下であり、n以外の整数)に対応する光線のエピポーラ線を求め、誤差量算出部7は、対応点mと各エピポーラ線との最小距離又は最小距離の2乗の和を求め、さらに、求めた和の全カメラの撮影画像に渡る合計を誤差量とする。以上、本実施形態においても、複数カメラのカメラパラメータのキャリブレーションを直感的に、一括して実施することができる。
【0038】
なお、本発明によるキャリブレーション装置は、コンピュータを図1の各部として機能させるプログラムにより実現することができる。これらコンピュータプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。さらに、本発明は、ハードウェア及びソフトウェアの組合せによっても実現可能である。
【符号の説明】
【0039】
1 初期データ入力部
2 パラメータ保存部
3 撮影画像保存部
4 対応点座標保存部
5 射影行列計算部
6 座標変換部
7 誤差量算出部
8 表示部
9 パラメータ変更部
10−1〜10−N カメラ
20 被写体
30 特徴点
40−1〜40−N 対応点
50−1〜50−N 直線
51−2、51−N エピポーラ線
60 座標

【特許請求の範囲】
【請求項1】
各カメラのカメラパラメータを保存するパラメータ保存手段と、
各カメラが撮影した撮影画像内の同じ被写体の同じ点である対応点それぞれについて、撮影画像内での位置を示す画像座標系での第1の座標を保存する対応点座標保存手段と、
各カメラのカメラパラメータから、実空間の位置を示す世界座標系と各カメラの画像座標系とを変換する射影行列をそれぞれ計算する射影行列計算手段と、
各カメラそれぞれについて、カメラの射影行列及び該カメラの撮影画像内の第1の座標に基づき実空間内の直線を求める座標変換手段と、
各カメラの射影行列及び各撮影画像の第1の座標に基づき実空間上の1点の世界座標を求め、求めた世界座標と座標変換手段が求めた各直線との距離に基づき誤差量を算出する誤差量算出手段と、
算出した誤差量を表示する表示手段と、
パラメータ保存手段が保存している各カメラのカメラパラメータを変更するパラメータ変更手段と、
を備えているカメラパラメータのキャリブレーション装置。
【請求項2】
パラメータ保存手段が保存しているカメラパラメータをパラメータ変更手段が変更した場合、
射影行列計算手段は、変更後のカメラパラメータから射影行列を再計算し、
座標変換手段は、再計算後の射影行列に基づき各直線を新たに求め、
誤差量算出手段は、再計算後の射影行列に基づき実空間上の1点の世界座標を新たに求め、新たに求めた世界座標と新たに求めた複数の直線との距離に基づき誤差量を算出する、
請求項1に記載の装置。
【請求項3】
各カメラのカメラパラメータを保存するパラメータ保存手段と、
各カメラが撮影した撮影画像内の同じ被写体の同じ点である対応点それぞれについて、撮影画像内での位置を示す画像座標系での第1の座標を保存する対応点座標保存手段と、
各カメラのカメラパラメータから、実空間の位置を示す世界座標系と各カメラの画像座標系とを変換する射影行列をそれぞれ計算する射影行列計算手段と、
各カメラそれぞれについて、カメラの射影行列及び該カメラの撮影画像内の対応点の第1の座標に基づき、該対応点に対応する光線の他の撮影画像内での軌跡であるエピポーラ線を、他の撮影画像それぞれについて求める座標変換手段と、
各撮影画像の対応点と座標変換手段が求めたエピポーラ線との距離に基づき誤差量を算出する誤差量算出手段と、
算出した誤差量を表示する表示手段と、
パラメータ保存手段が保存している各カメラのカメラパラメータを変更するパラメータ変更手段と、
を備えているカメラパラメータのキャリブレーション装置。
【請求項4】
請求項1から3のいずれか1項に記載のキャリブレーション装置としてコンピュータを機能させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2011−47739(P2011−47739A)
【公開日】平成23年3月10日(2011.3.10)
【国際特許分類】
【出願番号】特願2009−195333(P2009−195333)
【出願日】平成21年8月26日(2009.8.26)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】