(57)【要約】【課題】直感的なキャリブレーション処理を可能とする、カメラパラメータのキャリブレーション装置を提供する。【解決手段】キャリブレーション装置は、各撮影画像内の同じ被写体の同じ点である対応点それぞれについて、撮影画像内での位置を示す画像座標系での第１の座標を保存する手段と、各カメラのカメラパラメータから世界座標系と画像座標系とを変換する射影行列をそれぞれ計算する手段と、各カメラそれぞれについて、カメラの射影行列及び該カメラの撮影画像内の第１の座標に基づき実空間内の直線を求める手段と、各カメラの射影行列及び各撮影画像の第１の座標に基づき実空間上の１点の世界座標を求め、求めた世界座標と座標変換手段が求めた各直線との距離に基づき誤差量を算出する手段と、算出した誤差量を表示する手段と、保存している各カメラのカメラパラメータを変更する手段とを備えている。【選択図】図１
2011047739.tif 000002
【特許請求の範囲】
【請求項１】
各カメラのカメラパラメータを保存するパラメータ保存手段と、
各カメラが撮影した撮影画像内の同じ被写体の同じ点である対応点それぞれについて、撮影画像内での位置を示す画像座標系での第１の座標を保存する対応点座標保存手段と、
各カメラのカメラパラメータから、実空間の位置を示す世界座標系と各カメラの画像座標系とを変換する射影行列をそれぞれ計算する射影行列計算手段と、
各カメラそれぞれについて、カメラの射影行列及び該カメラの撮影画像内の第１の座標に基づき実空間内の直線を求める座標変換手段と、
各カメラの射影行列及び各撮影画像の第１の座標に基づき実空間上の１点の世界座標を求め、求めた世界座標と座標変換手段が求めた各直線との距離に基づき誤差量を算出する誤差量算出手段と、
算出した誤差量を表示する表示手段と、
パラメータ保存手段が保存している各カメラのカメラパラメータを変更するパラメータ変更手段と、
を備えているカメラパラメータのキャリブレーション装置。
【請求項２】
パラメータ保存手段が保存しているカメラパラメータをパラメータ変更手段が変更した場合、
射影行列計算手段は、変更後のカメラパラメータから射影行列を再計算し、
座標変換手段は、再計算後の射影行列に基づき各直線を新たに求め、
誤差量算出手段は、再計算後の射影行列に基づき実空間上の１点の世界座標を新たに求め、新たに求めた世界座標と新たに求めた複数の直線との距離に基づき誤差量を算出する、
請求項１に記載の装置。
【請求項３】
各カメラのカメラパラメータを保存するパラメータ保存手段と、
各カメラが撮影した撮影画像内の同じ被写体の同じ点である対応点それぞれについて、撮影画像内での位置を示す画像座標系での第１の座標を保存する対応点座標保存手段と、
各カメラのカメラパラメータから、実空間の位置を示す世界座標系と各カメラの画像座標系とを変換する射影行列をそれぞれ計算する射影行列計算手段と、
各カメラそれぞれについて、カメラの射影行列及び該カメラの撮影画像内の対応点の第１の座標に基づき、該対応点に対応する光線の他の撮影画像内での軌跡であるエピポーラ線を、他の撮影画像それぞれについて求める座標変換手段と、
各撮影画像の対応点と座標変換手段が求めたエピポーラ線との距離に基づき誤差量を算出する誤差量算出手段と、
算出した誤差量を表示する表示手段と、
パラメータ保存手段が保存している各カメラのカメラパラメータを変更するパラメータ変更手段と、
を備えているカメラパラメータのキャリブレーション装置。
【請求項４】
請求項１から３のいずれか１項に記載のキャリブレーション装置としてコンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラパラメータのキャリブレーション技術に関する。
【背景技術】
【０００２】
カメラが撮影した画像の画素を特定するための座標系である画像座標系と、実空間上の位置を特定するための座標系である世界座標系との間の座標変換を行う射影行列は、カメラパラメータにより決定される。ここで、カメラパラメータは、カメラ内部の光学系の特性により決まる内部パラメータと、カメラの向き及び設置位置により決まる外部パラメータに分類される。
【０００３】
例えば、カメラの光学系の設計値から求めた内部パラメータ、カメラの向き及び設置位置の実測値による外部パラメータに基づき射影行列を求め、この求めた射影行列により画像座標系と世界座標系の座標変換を行ったとしても、通常、誤差が生じる。これは、光学系の設計値と実際の値との誤差及び外部パラメータの実測値に含まれる誤差に起因している。
【０００４】
このため、通常、カメラパラメータについてはキャリブレーションが必要であり、例えば、非特許文献１にはキャリブレーション方法が記載されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】徐  剛、辻  三郎  著、“３次元ビジョン”、共立出版社、ｐｐ．７９−ｐｐ．８３、１９９９年５月
【発明の概要】
【発明が解決しようとする課題】
【０００６】
同じ被写体を複数のカメラを用いて撮影し、この撮影した画像に基づき各カメラのカメラパラメータのキャリブレーションを行う場合、扱うべきパラメータの数が多すぎるため、その作業は煩雑なものとなり、直感的なキャリブレーション処理を可能とする装置があれば便利である。
【０００７】
したがって、本発明は、直感的なキャリブレーション処理を可能とする、カメラパラメータのキャリブレーション装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明におけるカメラパラメータのキャリブレーション装置によれば、
各カメラのカメラパラメータを保存するパラメータ保存手段と、各カメラが撮影した撮影画像内の同じ被写体の同じ点である対応点それぞれについて、撮影画像内での位置を示す画像座標系での第１の座標を保存する対応点座標保存手段と、各カメラのカメラパラメータから、実空間の位置を示す世界座標系と各カメラの画像座標系とを変換する射影行列をそれぞれ計算する射影行列計算手段と、各カメラそれぞれについて、カメラの射影行列及び該カメラの撮影画像内の第１の座標に基づき実空間内の直線を求める座標変換手段と、各カメラの射影行列及び各撮影画像の第１の座標に基づき実空間上の１点の世界座標を求め、求めた世界座標と座標変換手段が求めた各直線との距離に基づき誤差量を算出する誤差量算出手段と、算出した誤差量を表示する表示手段と、パラメータ保存手段が保存している各カメラのカメラパラメータを変更するパラメータ変更手段とを備えていることを特徴とする。
【０００９】
本発明の他の実施形態によれば、
パラメータ保存手段が保存しているカメラパラメータをパラメータ変更手段が変更した場合、射影行列計算手段は、変更後のカメラパラメータから射影行列を再計算し、座標変換手段は、再計算後の射影行列に基づき各直線を新たに求め、誤差量算出手段は、再計算後の射影行列に基づき実空間上の１点の世界座標を新たに求め、新たに求めた世界座標と新たに求めた複数の直線との距離に基づき誤差量を算出することも好ましい。
【００１０】
また、本発明のカメラパラメータのキャリブレーション装置の他の実施形態によれば、
各カメラのカメラパラメータを保存するパラメータ保存手段と、各カメラが撮影した撮影画像内の同じ被写体の同じ点である対応点それぞれについて、撮影画像内での位置を示す画像座標系での第１の座標を保存する対応点座標保存手段と、各カメラのカメラパラメータから、実空間の位置を示す世界座標系と各カメラの画像座標系とを変換する射影行列をそれぞれ計算する射影行列計算手段と、各カメラそれぞれについて、カメラの射影行列及び該カメラの撮影画像内の対応点の第１の座標に基づき、該対応点に対応する光線の他の撮影画像内での軌跡であるエピポーラ線を、他の撮影画像それぞれについて求める座標変換手段と、各撮影画像の対応点と座標変換手段が求めたエピポーラ線との距離に基づき誤差量を算出する誤差量算出手段と、算出した誤差量を表示する表示手段と、パラメータ保存手段が保存している各カメラのカメラパラメータを変更するパラメータ変更手段とを備えていることを特徴とする。
【００１１】
本発明におけるプログラムによれば、
上記キャリブレーション装置としてコンピュータを機能させることを特徴とする。
【発明の効果】
【００１２】
表示部が表示する誤差量を確認しながら各カメラのカメラパラメータを調整することにより、複数カメラのカメラパラメータの直感的なキャリブレーション処理が可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明によるカメラパラメータのキャリブレーション装置の構成図である。
【図２】初期データを説明する図である。
【図３】初期データを説明する他の図である。
【図４】カメラパラメータ及び対応点から求める実空間上の直線を示す図である。
【図５】誤差量算出部の処理を説明する図である。
【図６】エピポーラ線を示す図である。
【発明を実施するための形態】
【００１４】
本発明を実施するための実施形態について、以下では図面を用いて詳細に説明する。
【００１５】
図１は、本発明によるカメラパラメータのキャリブレーション装置の構成図である。図１によると、キャリブレーション装置は、初期データ入力部１と、パラメータ保存部２と、撮影画像保存部３と、対応点座標保存部４と、射影行列計算部５と、座標変換部６と、誤差量算出部７と、表示部８と、パラメータ変更部９とを備えている。
【００１６】
まず、本装置の利用者は、初期データ入力部１経由で初期データを装置に入力する。図２及び図３は、利用者が装置に入力する初期データを説明する図である。図２において、符号１０−１〜１０−ＮはＮ台のカメラを表しており、Ａｎ、Ｍｎ、Ｒｎ（１≦ｎ≦Ｎ）は、それぞれ、カメラ１０−ｎの内部パラメータ行列、カメラ設置位置の世界座標系での座標、カメラの向きを示す回転行列である。ここで、Ｍｎ、Ｒｎがカメラの外部パラメータである。また、符号２０は被写体であり、符号３０は被写体内の特徴点であり、ＭＣは特徴点３０の世界座標系での座標である。
【００１７】
図３（ａ）はカメラ１０−１が、図３（ｂ）はカメラ１０−２が、図３（ｃ）はカメラ１０−Ｎが撮影した撮影画像を示す図であり、符号４０−１、４０−２及び４０−Ｎは、撮影画像内の特徴点３０に対応する対応点を示している。また、ｍ１はカメラ１０−１の画像座標系での対応点４０−１の座標であり、ｍ２はカメラ１０−２の画像座標系での対応点４０−２の座標であり、ｍＮはカメラ１０−Ｎの画像座標系での対応点４０−Ｎの座標である。
【００１８】
例えば、Ａｎ、Ｍｎ、Ｒｎ、ｍｎ（１≦ｎ≦Ｎ）及びＭｃは以下の行列で表される。
【００１９】
【数１】
2011047739.tif 000003
ここで、ｆｎｕ及びｆｎｖは焦点距離であり、（ｔｎｕ，ｔｎｖ）は画像の中心の座標である。
【００２０】
利用者は、本装置に対して、各カメラの内部パラメータＡｎ、外部パラメータＭｎ及びＲｎ、撮影画像のデータ、撮影画像内の対応点の画像座標ｍｎ（１≦ｎ≦Ｎ）を入力する。なお、利用者が入力する各カメラの内部パラメータは、例えば、光学系の設計値に基づく値、外部パラメータＭｎ及びＲｎは実測値、対応点の画像座標は、利用者が目視により決定した画素の座標とすることができるが、他の方法であっても良い。
【００２１】
図１に戻り、パラメータ保存部２は、各カメラ１０−１〜１０−Ｎの内部パラメータＡ１〜ＡＮ並びに外部パラメータＭ１〜ＭＮ及びＲ１〜ＲＮを保存し、撮影画像保存部３は、各カメラ１０−１〜１０−Ｎが撮影した撮影画像を保存し、対応点座標保存部４は、各カメラ１０−１〜１０−Ｎが撮影した撮影画像内にある対応点４０−１〜４０−Ｎの画像座標ｍ１〜ｍＮを保存する。
【００２２】
射影行列計算部５は、カメラ１０−ｎの内部パラメータＡｎ並びに外部パラメータＭｎ及びＲｎに基づきカメラ１０−ｎの射影行列Ｐｎを以下の通り計算する。
【００２３】
【数２】
2011047739.tif 000004
【００２４】
【数３】
2011047739.tif 000005
とすると、対応点４０−ｎの斉次座標は、特徴点３０の斉次座標と、射影行列Ｐｎを用いて以下の計算式（１）にて求められることになる。なお、λｎはスカラー値である。
【００２５】
【数４】
2011047739.tif 000006
座標変換部６は、対応点４０−ｎの画像座標ｍｎと、射影行列Ｐｎと、式（１）に基づきカメラ１０−ｎを通る空間上の直線を計算する。この直線は、カメラ１０−ｎのカメラパラメータが正確である場合には、特徴点３０を通過するものである。しかしながら、カメラパラメータに含まれる誤差により、通常、この直線は図４に示す様に特徴点３０を通過しないものとなる。図４において、符号５０−１は、座標ｍ１と射影行列Ｐ１より求めた直線であり、符号５０−２は、座標ｍ２と射影行列Ｐ２より求めた直線であり、符号５０−Ｎは、座標ｍＮと射影行列ＰＮより求めた直線である。なお、図４においては、被写体２０は省略している。
【００２６】
誤差量算出部７は、各カメラ１０−１〜１０−Ｎのカメラパラメータのずれを示す指標である誤差量を計算する。以下に、誤差量の算出について説明する。まず式（１）から以下の式が求められる。
【００２７】
【数５】
2011047739.tif 000007
ここで、
【００２８】
【数６】
2011047739.tif 000008
とすると、
ＢＭｃ＝ｂ
となり、よって、座標Ｍｃは、
Ｍｃ＝（ＢＴＢ）−１ＢＴｂ
で求めることができる。求めた座標Ｍｃは、現在のカメラパラメータを基準とした場合の特徴点の位置であるが、この座標Ｍｃは、図５に示す様に、カメラパラメータの誤差により特徴点３０とは異なる座標６０を示している。しかしながら、本発明において特徴点３０の座標は未知であるため、誤差量算出部７は、現在のカメラパラメータを基準とした場合の特徴点の位置６０の座標Ｍｃと、座標変換部６が求めた各直線５０−１〜５０−Ｎとの最短距離の和、又は、最短距離の２乗の和を誤差量として算出する。当然ではあるが、カメラパラメータに誤差がない場合には、総ての直線５０−１〜５０−Ｎは一点を通り、この一点が位置６０かつ特徴点３０であり、誤差量は零である。表示部８は誤差量算出部７が算出した誤差量とパラメータ保存部２が保存している各カメラ１０−１〜１０−Ｎのカメラパラメータをディスプレイに表示する。また、図４及び５に示す様に、座標変換部６が求めた各直線と、誤差量算出部７が求めた位置６０を視覚的に表示しても良い。
【００２９】
パラメータ変更部９は、カメラパラメータ変更のための利用者との入出力インタフェースであり、利用者はパラメータ変更部９を用いて任意のカメラの任意のカメラパラメータの値を変更する。この変更により、パラメータ保存部２に保存されている値は変更後の値に更新され、射影行列計算部５は射影行列を再計算し、座標変換部５は直線を再計算し、誤差量算出部７は、誤差量を再計算し、表示部８は再計算後の結果を新たに表示する。
【００３０】
利用者は、この誤差量が所定の値より小さくなるまで各パラメータを修正する。以上の処理により複数カメラのカメラパラメータのキャリブレーションを直感的に、一括して実施することができる。
【００３１】
続いて、本発明の他の実施形態について説明する。射影行列Ｐｎの各要素のうち、
【００３２】
【数７】
2011047739.tif 000009
の部分はＡｎＲｎに対応し、
【００３３】
【数８】
2011047739.tif 000010
の部分は−ＡｎＲｎＭｎに対応するものであるため、カメラ位置Ｍｎは、
【００３４】
【数９】
2011047739.tif 000011
で導出することができる。したがって、座標ｍｎの画素に対応する光線の方向を示す単位ベクトル（ｘｎ，ｙｎ，ｚｎ）は、
【００３５】
【数１０】
2011047739.tif 000012
で求められることになる。
【００３６】
このベクトルに基づき座標ｍｎの画素に対応する光線の実空間における軌跡を求め、この軌跡の他の画像上の対応画素、つまり、エピポーラ線を求める。図６は、カメラ１０−１が撮影した画像におけるエピポーラ線５１−２と５１−Ｎを示している。ここで、エピポーラ線５１−２は、カメラ１０−２が撮影した画像内の対応点４０−２の座標ｍ２に対応するものであり、エピポーラ線５１−Ｎは、カメラ１０−Ｎが撮影した画像内の対応点４０−Ｎの座標ｍＮに対応するものである。
【００３７】
本実施形態において、座標変換部６は、カメラ１０−ｎが撮影した撮影画像上におけるカメラ１０−ｋが撮影した撮影画像の対応点ｍｋ（ｋは１以上Ｎ以下であり、ｎ以外の整数）に対応する光線のエピポーラ線を求め、誤差量算出部７は、対応点ｍｎと各エピポーラ線との最小距離又は最小距離の２乗の和を求め、さらに、求めた和の全カメラの撮影画像に渡る合計を誤差量とする。以上、本実施形態においても、複数カメラのカメラパラメータのキャリブレーションを直感的に、一括して実施することができる。
【００３８】
なお、本発明によるキャリブレーション装置は、コンピュータを図１の各部として機能させるプログラムにより実現することができる。これらコンピュータプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。さらに、本発明は、ハードウェア及びソフトウェアの組合せによっても実現可能である。
【符号の説明】
【００３９】
１  初期データ入力部
２  パラメータ保存部
３  撮影画像保存部
４  対応点座標保存部
５  射影行列計算部
６  座標変換部
７  誤差量算出部
８  表示部
９  パラメータ変更部
１０−１〜１０−Ｎ  カメラ
２０  被写体
３０  特徴点
４０−１〜４０−Ｎ  対応点
５０−１〜５０−Ｎ  直線
５１−２、５１−Ｎ  エピポーラ線
６０  座標
【図１】
2011047739.tif 000013
【図２】
2011047739.tif 000014
【図３】
2011047739.tif 000015
【図４】
2011047739.tif 000016
【図５】
2011047739.tif 000017
【図６】
2011047739.tif 000018