(57)【要約】【課題】観測可能な対応点を持たないカメラ間の外部パラメータを求めるキャリブレーションを行うことができるカメラキャリブレーション装置を提供する。【解決手段】第１のカメラと第２のカメラとの外部パラメータを求めるキャリブレーションを行うカメラキャリブレーション装置であって、第１のカメラまたは第２のカメラと、第３のカメラとの画像の間における対応点の対を求める対応点算出部と、対応点の対と、第１または第２のカメラの内部パラメータと、第３のカメラの内部パラメータとから第１の基本行列を求める第１の基本行列算出部と、基本行列を分解して、第３のカメラの位置ベクトルを取得する位置ベクトル取得部と、対応点の対と、位置ベクトルとから第１のカメラと第２のカメラ間の第２の基本行列を求める第２の基本行列算出部と、第２の基本行列を分解して、第１のカメラと第２のカメラの外部パラメータを算出する外部パラメータ算出部とを備える。【選択図】図１
2018014686.tif 000002
【特許請求の範囲】
【請求項１】
第１のカメラと第２のカメラとの外部パラメータを求めるキャリブレーションを行うカメラキャリブレーション装置であって、
第１のカメラまたは第２のカメラと、第３のカメラとの画像の間における対応点の対を求める対応点算出部と、
前記対応点の対と、前記第１または第２のカメラの内部パラメータと、前記第３のカメラの内部パラメータとから第１の基本行列を求める第１の基本行列算出部と、
前記基本行列を分解して、前記第３のカメラの位置ベクトルを取得する位置ベクトル取得部と、
前記対応点の対と、前記位置ベクトルとから前記第１のカメラと前記第２のカメラ間の第２の基本行列を求める第２の基本行列算出部と、
前記第２の基本行列を分解して、前記第１のカメラと前記第２のカメラの外部パラメータを算出する外部パラメータ算出部と
を備えるカメラキャリブレーション装置。
【請求項２】
第１のカメラと第２のカメラとの基礎行列を求めるキャリブレーションを行うカメラキャリブレーション装置であって、
第１のカメラまたは第２のカメラと、第３のカメラとの画像の間における対応点の対を求める対応点算出部と、
前記対応点の対から第１の基礎行列を求める第１の基礎行列算出部と、
前記第１の基礎行列を用いて前記第３のカメラのエピポールを求めるエピポール算出部と、
前記エピポールと、前記対応点の対とから前記第１のカメラと前記第２のカメラとの間の第２の基礎行列を求める第２の基礎行列算出部と
を備えるカメラキャリブレーション装置。
【請求項３】
第１のカメラと第２のカメラとの外部パラメータを求めるキャリブレーションを行うカメラキャリブレーション装置が行うカメラキャリブレーション方法であって、
第１のカメラまたは第２のカメラと、第３のカメラとの画像の間における対応点の対を求める対応点算出ステップと、
前記対応点の対と、前記第１または第２のカメラの内部パラメータと、前記第３のカメラの内部パラメータとから第１の基本行列を求める第１の基本行列算出ステップと、
前記基本行列を分解して、前記第３のカメラの位置ベクトルを取得する位置ベクトル取得ステップと、
前記対応点の対と、前記位置ベクトルとから前記第１のカメラと前記第２のカメラ間の第２の基本行列を求める第２の基本行列算出ステップと、
前記第２の基本行列を分解して、前記第１のカメラと前記第２のカメラの外部パラメータを算出する外部パラメータ算出ステップと
を有するカメラキャリブレーション方法。
【請求項４】
第１のカメラと第２のカメラとの基礎行列を求めるキャリブレーションを行うカメラキャリブレーション装置が行うカメラキャリブレーション方法であって、
第１のカメラまたは第２のカメラと、第３のカメラとの画像の間における対応点の対を求める対応点算出ステップと、
前記対応点の対から第１の基礎行列を求める第１の基礎行列算出ステップと、
前記第１の基礎行列を用いて前記第３のカメラのエピポールを求めるエピポール算出ステップと、
前記エピポールと、前記対応点の対とから前記第１のカメラと前記第２のカメラとの間の第２の基礎行列を求める第２の基礎行列算出ステップと
を有するカメラキャリブレーション方法。
【請求項５】
コンピュータを、請求項１または２に記載のカメラキャリブレーション装置として機能させるためのカメラキャリブレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、観測可能な対応点を持たないカメラ間の外部キャリブレーションを行うカメラキャリブレーション装置、カメラキャリブレーション方法及びカメラキャリブレーションプログラムに関する。
【背景技術】
【０００２】
複数のカメラで撮影した映像に対して幾何学的な処理、例えば被写体の三次元計測などを行う場合には、カメラ間の外部パラメータ（回転および並進）を求める外部キャリブレーションを行う必要がある。また、外部パラメータまで求めなくても、それらから成る基礎行列（Fundamental Matrix）を求めることができれば自由視点映像などさまざまなアプリケーションを実現することが可能である。
【０００３】
これらの外部パラメータやFundamental Matrixを求めるためのアプローチとして、カメラ間の対応点に基づく手法が一般的である。図８のように３次元空間中に３次元点ｐが存在するとし、それらを複数のカメラ（Ｃ０，Ｃ１）で撮影した際の画像平面上における投影点をそれぞれｑ０，ｑ１とした時、これらの間には以下のような関係が成り立つ。
【数１】
2018014686.tif 000003
【０００４】
この時、ＦはFundamental Matrix（基礎行列）である。この基礎行列Ｆは（ｑ０，ｑ１）のようにある三次元点をそれぞれのカメラで撮影した時の座標値のペアを８組以上用意し、８−point algorithmなどを適用することで求めることが可能である（例えば、非特許文献１参照）。
【０００５】
さらに、焦点距離や画像中心といったカメラ固有のパラメータである内部パラメータ（Ｋ０，Ｋ１）と、基本行列Ｅ（Essential Matrix）を用いると、式（１）は次のように展開できる。
【数２】
2018014686.tif 000004
すなわち、
【数３】
2018014686.tif 000005
であり、内部パラメータが既知の場合は、上記対応点の組からＥ行列を求めることができる。
【０００６】
さらに、このＥ行列は特異値分解を行うことで外部パラメータに分解することができる（例えば、非特許文献２参照）。
【０００７】
また、この基本行列Ｅは、各カメラ座標系における点ｐを表すベクトルをｐ０，ｐ１とした時、以下の式を満たす。
【数４】
2018014686.tif 000006
【０００８】
この時、カメラが透視投影カメラの場合には、
【数５】
2018014686.tif 000007
である。この時、Ｅ行列は（ｐ０，ｐ１）のペアあるいは（ｑ０，ｑ１）のペアに対して８−point algorithmを適用することで求めることが可能である（例えば、非特許文献１参照）。
【０００９】
以上のことから、複数カメラ画像間得られる対応点の組から、Fundamental Matrixおよび外部パラメータを求めることができることがわかる。
【００１０】
なお、本明細書において、画像とは、静止画像、または動画像を構成する１フレーム分の画像のことをいう。また映像とは、動画像と同じ意味であり、一連の画像の集合である。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】Hartley, Richard I. "In defense of the eight-point algorithm." Pattern Analysis and Machine Intelligence, IEEE Transactions on 19.6 (1997): 580-593.
【非特許文献２】Hartley, Richard, and Andrew Zisserman. Multiple view geometry in computer vision. Cambridge university press, 2003.
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、図９に示すようにカメラＣ０のＦＯＶ（field of view：視野）とカメラＣ１のＦＯＶとの間に共有視野が存在しない場合、あるいは図１０に示すように共有する部分があるが、その共有する部分に対応点が存在しない場合（共有する部分が一様な地面であるため対応が曖昧であったり、その場所に立ち入ることが出来ずに特徴点となるものを設置できない場合など）は、前述したような対応点を用いた手法が利用できないという問題がある。
【００１３】
本発明は、このような事情に鑑みてなされたもので、観測可能な対応点を持たないカメラ間の外部パラメータを求めるキャリブレーションを行うことができるカメラキャリブレーション装置、カメラキャリブレーション方法及びカメラキャリブレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の一態様は、第１のカメラと第２のカメラとの外部パラメータを求めるキャリブレーションを行うカメラキャリブレーション装置であって、第１のカメラまたは第２のカメラと、第３のカメラとの画像の間における対応点の対を求める対応点算出部と、前記対応点の対と、前記第１または第２のカメラの内部パラメータと、前記第３のカメラの内部パラメータとから第１の基本行列を求める第１の基本行列算出部と、前記基本行列を分解して、前記第３のカメラの位置ベクトルを取得する位置ベクトル取得部と、前記対応点の対と、前記位置ベクトルとから前記第１のカメラと前記第２のカメラ間の第２の基本行列を求める第２の基本行列算出部と、前記第２の基本行列を分解して、前記第１のカメラと前記第２のカメラの外部パラメータを算出する外部パラメータ算出部とを備えるカメラキャリブレーション装置である。
【００１５】
本発明の一態様は、第１のカメラと第２のカメラとの基礎行列を求めるキャリブレーションを行うカメラキャリブレーション装置であって、第１のカメラまたは第２のカメラと、第３のカメラとの画像の間における対応点の対を求める対応点算出部と、前記対応点の対から第１の基礎行列を求める第１の基礎行列算出部と、前記第１の基礎行列を用いて前記第３のカメラのエピポールを求めるエピポール算出部と、前記エピポールと、前記対応点の対とから前記第１のカメラと前記第２のカメラとの間の第２の基礎行列を求める第２の基礎行列算出部とを備えるカメラキャリブレーション装置である。
【００１６】
本発明の一態様は、第１のカメラと第２のカメラとの外部パラメータを求めるキャリブレーションを行うカメラキャリブレーション装置が行うカメラキャリブレーション方法であって、第１のカメラまたは第２のカメラと、第３のカメラとの画像の間における対応点の対を求める対応点算出ステップと、前記対応点の対と、前記第１または第２のカメラの内部パラメータと、前記第３のカメラの内部パラメータとから第１の基本行列を求める第１の基本行列算出ステップと、前記基本行列を分解して、前記第３のカメラの位置ベクトルを取得する位置ベクトル取得ステップと、前記対応点の対と、前記位置ベクトルとから前記第１のカメラと前記第２のカメラ間の第２の基本行列を求める第２の基本行列算出ステップと、前記第２の基本行列を分解して、前記第１のカメラと前記第２のカメラの外部パラメータを算出する外部パラメータ算出ステップとを有するカメラキャリブレーション方法である。
【００１７】
本発明の一態様は、第１のカメラと第２のカメラとの基礎行列を求めるキャリブレーションを行うカメラキャリブレーション装置が行うカメラキャリブレーション方法であって、第１のカメラまたは第２のカメラと、第３のカメラとの画像の間における対応点の対を求める対応点算出ステップと、前記対応点の対から第１の基礎行列を求める第１の基礎行列算出ステップと、前記第１の基礎行列を用いて前記第３のカメラのエピポールを求めるエピポール算出ステップと、前記エピポールと、前記対応点の対とから前記第１のカメラと前記第２のカメラとの間の第２の基礎行列を求める第２の基礎行列算出ステップとを有するカメラキャリブレーション方法である。
【００１８】
本発明の一態様は、コンピュータを、前記カメラキャリブレーション装置として機能させるためのカメラキャリブレーションプログラムである。
【発明の効果】
【００１９】
本発明によれば、観測可能な対応点を持たないカメラ間の外部パラメータを求めるキャリブレーションを行うことができるという効果が得られる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１実施形態によるカメラキャリブレーション装置の構成を示すブロック図である。
【図２】図１に示すカメラキャリブレーション装置の処理の動作を示すフローチャートである。
【図３】対応点のテーブルのテーブル構造を示す説明図である。
【図４】３つのカメラの幾何関係を示す説明図である。
【図５】対応点を作る一例を示す説明図である。
【図６】本発明の第２実施形態によるカメラキャリブレーション装置の構成を示すブロック図である。
【図７】図６に示すカメラキャリブレーション装置の処理の動作を示すフローチャートである。
【図８】２つのカメラの幾何関係を示す説明図である。
【図９】２つのカメラの視野が共通していない例を示す説明図である。
【図１０】２つのカメラの視野が共通しているが対応点を作ることができない例を示す説明図である。
【発明を実施するための形態】
【００２１】
＜第１実施形態＞
以下、図面を参照して、本発明の第１実施形態によるカメラキャリブレーション装置を説明する。第１実施形態は、２つのカメラ間の外部パラメータを求めるものである。第１実施形態では簡単のため２台のカメラＣ０，Ｃ１を用い、かつ図１０に示すようにカメラＣ０，Ｃ１が共通する視野を持つがその共通視野には対応する３次元点が存在しない。この時、カメラＣ０，Ｃ１の内部パラメータ（焦点距離、画像中心、アスペクト比、スキュー歪み）は例えば、参考文献１に記載の手法を利用することで既に得られているものとする。また、２つのカメラＣ０，Ｃ１は固定されている。
【００２２】
参考文献１：Zhang, Zhengyou. "A flexible new technique for camera calibration." Pattern Analysis and Machine Intelligence, IEEE Transactions on 22.11 (2000): 1330-1334.
【００２３】
また、カメラＣ０，Ｃ１と比較して広い視野を持つ新たに利用するカメラ（例えば、全天球カメラ）をＸとし、この内部パラメータは既知である。なお、全天球カメラの場合は画像のサイズを内部パラメータとして、それらは既知である。カメラＸはＮｘ視点において撮影されたとする。なお、カメラＸは広い視野を持つため、カメラＣ０，Ｃ１と視野を共有することが期待できる。また、カメラＣ０とカメラＸ，カメラＣ１とカメラＸの共有視野には図４、図５に示すように対応点が存在することを想定する。
【００２４】
図１は同実施形態によるカメラキャリブレーション装置の構成を示すブロック図である。この図において、符号１は、外部から３つの画像（カメラＣ０の画像、カメラＣ１の画像、カメラＸの画像）を入力する入力部である。ここでは、カメラＸが全天球カメラであるものとして説明する。符号２は、入力した３つの画像から仮想対応点を取得する仮想対応点取得部である。符号３は、仮想対応点からカメラＣ０、Ｃ１間の外部パラメータを計算する外部パラメータ計算部である。図１に示す各処理部の詳細な説明は後述する。
【００２５】
次に、図１に示すカメラキャリブレーション装置における全体の処理の動作について説明する。まず、入力部１は、カメラＣ０，Ｃ１および全天球カメラＸで撮影した映像を取得する。３つのカメラの撮影タイミングは一致していることが望ましい。次に、仮想対応点取得部２は、入力した映像からカメラＣ０およびカメラＣ１間における対応点を求める。最後に、外部パラメータ計算部３は、それらの対応点を元にしてカメラＣ０，Ｃ１間の外部パラメータを計算して出力する。
【００２６】
次に、図１に示す各処理部の詳細な動作を説明する。はじめに、入力部１について説明する。入力部１は、カメラＣ０，Ｃ１，全天球カメラＸのそれぞれから画像を入力し、これらの画像を内部に保持する。入力部１は、必要に応じて、内部に保持している３つの画像のそれぞれを仮想対応点取得部２へ出力する。
【００２７】
次に、仮想対応点取得部２について説明する。仮想対応取得部２は、入力部１から３つの画像を入力する。仮想対応点取得部２は、カメラＣ０，Ｃ１およびカメラＸで撮影した画像から、カメラＣ０−Ｃ１間の対応点情報を求める。
【００２８】
なお、カメラＣ０−Ｃ１間の対応点情報とは、ある空間中の点がカメラＣ０およびＣ１に投影された時の座標値のペアであり、例えば図３のようにテーブルで表すことができる。図３に示すようなテーブルは、対応点を一意に識別する対応点ＩＤと、カメラＣ０が撮影した画像上における座標値、カメラＣ１が撮影し他画像上における座標値とがある。そして、仮想対応点取得部２は、カメラＣ０−Ｃ１間の対応点情報を外部パラメータ計算部３へ出力する。
【００２９】
次に、外部パラメータ計算部３について説明する。外部パラメータ計算部３は、仮想対応点取得部２からカメラＣ０−Ｃ１間の対応点情報を入力する。そして、外部パラメータ計算部３は、カメラＣ０−Ｃ１間の対応点情報からＣ０−Ｃ１間の外部パラメータを計算し、得られたカメラＣ０−Ｃ１間の外部パラメータを出力する。
【００３０】
ここで、図２を参照して、図１に示す仮想対応点取得部２と外部パラメータ計算部３の処理の動作を説明する。図２は、図１に示す仮想対応点取得部２と外部パラメータ計算部３の処理の動作を示すフローチャートである。
【００３１】
まず、仮想対応点取得部２は、カメラＣｉ（ｉ＝０，１）について、カメラＣｉとカメラＸで撮影した画像の間で対応点のペアを求める（ステップＳ１）。すなわち、図４に示すように、カメラＸとカメラＣｉで撮影した画像上において対応点のペアを求める。なお、対応点の探索は手動で行ってもよいし、ＳＩＦＴ画像特徴量の類似度に基づくマッチング（例えば、参考文献２参照）を行ってもよい。自動で対応点の組を求める場合には誤対応が発生する場合があるが、これらに対してはＲＡＮＳＡＣアルゴリズムを適用することで誤対応を排除するようにしてもよい。
【００３２】
参考文献２：Lowe, David G. "Distinctive image features from scale-invariant keypoints." International journal of computer vision 60.2 (2004): 91-110.
【００３３】
次に、仮想対応点取得部２は、ステップＳ１で求めた対応点のペアからＥ行列を求める（ステップＳ２）。すなわち、対応点のペア、カメラＣｉの内部パラメータとカメラＸの内部パラメータを用いてＥ行列を求める。Ｅ行列を求める方法は特に制限しない。例えば８−point algorithmが代表的だが、他に５つの対応点のペアから求める５−point algorithm（例えば参考文献３参照）も知られており、こちらを用いてもよい。
【００３４】
参考文献３：Nister, David. "An efficient solution to the five-point relative pose problem." Pattern Analysis and Machine Intelligence, IEEE Transactions on 26.6 (2004): 756-770.
【００３５】
次に、仮想対応点取得部２は、求めたＥ行列を分解してカメラＸの位置ベクトルを求める（ステップＳ３）。Ｅ行列は特異値分解することでカメラＸの位置ベクトルを取得することができる。この位置ベクトルの取得処理は、例えば、非特許文献２に記載の公知の処理を適用可能であるため、ここでは、詳細な説明を省略する。この時、カメラＸはカメラＣｉの視野になくても求めることが可能である。
【００３６】
次に、この位置ベクトルと各カメラの内部パラメータを用いて、位置ベクトルの各カメラの画像平面における座標を求める。位置ベクトルをｘとすると、この投影座標ｑは以下のように求めることができる。
ｑ＝Ｋｉ×ｘ
【００３７】
次に、仮想対応点取得部２は、ステップＳ１からステップＳ３を全てのカメラＣｉについて行う（ステップＳ４）。この時点で、カメラＸの位置が投影された点が全てのカメラＣｉにとっての共通の対応点となる。
【００３８】
次に、仮想対応点取得部２は、ステップＳ１からステップＳ４を全てのカメラＸについて行う（ステップＳ５）。この時点で、全てのカメラＣｉにとっての共通の対応点のペアがＮｘ個得られたことになる。
【００３９】
次に、外部パラメータ計算部３は、得られたカメラＣ０−Ｃ１間の対応点情報（カメラＣ０の画像上におけるカメラＸの座標値、カメラＣ１の画像上におけるカメラＸの座標値）から、カメラＣ０−Ｃ１間のＥ行列を求める（ステップＳ６）。Ｅ行列はステップＳ２でも用いた８−point algorithmなどを利用して求めることができる。
【００４０】
次に、外部パラメータ計算部３は、ステップＳ６で求めたＥ行列を分解してカメラＣｉ間の外部パラメータを求めて出力する（ステップＳ７）。Ｅ行列は特異値分解することで外部パラメータを得ることができる。この特異値分解の処理は、例えば、非特許文献２に記載の公知の処理を提供可能であるため、ここでは詳細な説明を省略する。
【００４１】
以上説明した処理の動作によって、カメラＣｉ（ｉ＝０，１）間の外部パラメータを求めることができる。
【００４２】
＜第２実施形態＞
次に、本発明の第２実施形態によるカメラキャリブレーション装置を説明する。第２の実施形態は、Fundamental Matrix（基礎行列）を求めるものである。第２実施形態では簡単のため２台のカメラＣ０，Ｃ１を用い、かつ図１０に示すようにカメラＣ０，Ｃ１が共通する視野を持つがその共通する視野には対応する３次元点が存在しない。この時、カメラＣ０，Ｃ１の内部パラメータは参考文献１に記載の手法を利用することで既に得られている。また、カメラＣ０，Ｃ１は固定されている。
【００４３】
また、カメラＣ０，Ｃ１と比較して広い視野を持つ新たに利用するカメラ（例えば、全天球カメラ）をＸとし、この内部パラメータは既知である。なお、全天球カメラの場合は画像のサイズを内部パラメータとし、それらは未知である。カメラＸはＮｘ視点において撮影される。なお、カメラＸは広い視野を持つため、カメラＣ０，Ｃ１と視野を共有することが期待できる。また、カメラＣ０−Ｘ，カメラＣ１−Ｘの共有視野には図４、図５に示すように対応点が存在することを想定する。
【００４４】
図６は同実施形態によるカメラキャリブレーション装置の構成を示すブロック図である。この図において、符号１は、外部から３つの画像（カメラＣ０の画像、カメラＣ１の画像、カメラＸの画像）を入力する入力部である。ここでは、カメラＸが全天球カメラであるものとして説明する。符号２は、入力した３つの画像から仮想対応点を取得する仮想対応点取得部である。符号３は、仮想対応点からFundamental Matrix（基礎行列）を求めるFundamental Matrix計算部である。図６に示す各処理部の詳細な説明は後述する。
【００４５】
次に、図６に示すカメラキャリブレーション装置における全体の処理の動作について説明する。まず、入力部５は、カメラＣ０，Ｃ１および全天球カメラＸで撮影した映像を取得する。次に、仮想対応点取得部６は、それらの映像からカメラＣ０およびＣ１間における対応点を求める。最後に、Fundamental Matrix計算部７は、それらの対応点を元にしてカメラＣ０，Ｃ１間のFundamental Matrixを計算して出力する。
【００４６】
次に、図６に示す各処理部の詳細な動作を説明する。はじめに、入力部５について説明する。入力部５は、カメラＣ０，Ｃ１，全天球カメラＸのそれぞれから画像を入力し、これらの画像を内部に保持する。入力部１は、必要に応じて、内部に保持している３つの画像のそれぞれを仮想対応点取得部２へ出力する。
【００４７】
次に、仮想対応点取得部６について説明する。仮想対応点取得部６は、入力部５から３つの画像を入力する。仮想対応点取得部６は、カメラＣ０，Ｃ１およびカメラＸで撮影した画像から、カメラＣ０−Ｃ１間の対応点情報を求める。
【００４８】
なお、カメラＣ０−Ｃ１間の対応点情報とは、ある空間中の点がカメラＣ０およびＣ１に投影された時の座標値のペアであり、例えば図３のようにテーブルで表すことができる。図３に示すようなテーブルは、対応点を一意に識別する対応点ＩＤと、カメラＣ０が撮影した画像上における座標値、カメラＣ１が撮影した画像上における座標値とがある。そして、仮想対応点取得部６は、カメラＣ０−Ｃ１間の対応点情報をFundamental Matrix計算部７へ出力する。
【００４９】
次に、Fundamental Matrix計算部７は、仮想対応点取得部６からカメラＣ０−Ｃ１間の対応点情報を入力する。そして、Fundamental Matrix計算部７は、カメラＣ０−Ｃ１間の対応点情報からカメラＣ０−Ｃ１間のFundamental Matrixを計算し、得られたカメラＣ０−Ｃ１間のFundamental Matrix（基礎行列）を出力する。
【００５０】
ここで、図７を参照して、図６に示す仮想対応点取得部２とFundamental Matrix計算部７の処理の動作を説明する。図７は、図６に示す仮想対応点取得部２とFundamental Matrix計算部７の処理の動作を示すフローチャートである。
【００５１】
まず、仮想対応点取得部６は、カメラＣｉ（ｉ＝０，１）について、カメラＣｉとカメラＸで撮影した画像の間で対応点のペアを求める（ステップＳ１１）。
【００５２】
次に、仮想対応点取得部６は、ステップＳ１１で求めた対応点のペアからＦ行列を求める（ステップＳ１２）。Ｆ行列を求める方法は特に制限しない。例えば８−point algorithmが代表的だが、他に５つの対応点のペアから求める５−point algorithm（例えば、参考文献３参照）も知られており、こちらを用いてもよい。
【００５３】
次に、仮想対応点取得部６は、求めたＦ行列を用いてカメラＸのエピポールを求める（ステップＳ１３）。カメラＸのエピポールとはカメラＣｉの画像平面におけるカメラＸの投影点を意味する。カメラＸのエピポールｅｘは以下の式を満たす。
【数６】
2018014686.tif 000008
【００５４】
この時、エピポールｅｘはＦ行列のright null spaceとして求められる（例えば、非特許文献２参照）。なお、カメラＸのエピポールはカメラＸがカメラＣｉの視野になくても求めることが可能である。
【００５５】
次に、仮想対応点取得部６は、ステップＳ１１からステップＳ１３を全てのカメラＣｉについて行う（ステップＳ１４）。この時点で、カメラＸのエピポールが全てのカメラＣｉにとっての共通の対応点となる。
【００５６】
次に、仮想対応点取得部６は、ステップＳ１１からステップＳ１４を全てのカメラＸについて行う（ステップＳ１５）。この時点で、全てのカメラＣｉにとっての共通の対応点のペアがＮｘ個得られたことになる。
【００５７】
次に、Fundamental Matrix計算部７は、入力として与えられた対応点のペアから、カメラＣｉ間のＦ行列を求める（ステップＳ１６）。Fundamental Matrixは対応点のペアに対して８−point algorithmを適用することで求めることができる。
【００５８】
以上説明した処理の動作によって、カメラＣｉ（ｉ＝０，１）間のFundamental Matrix（Ｆ行列：基礎行列）を求めることができる。
【００５９】
なお、前述した説明ではカメラＣ０−Ｃ１が観測可能な対応点を持たない場合に適用可能であるが、観測可能な対応点を保つ場合にも適用可能である。
【００６０】
以上説明したように、カメラのキャリブレーションを行う際に、エピポーラ幾何を応用し、２つのカメラにおいて共有視野があるにも関わらず対応点が作れない場合、または／および、共有視野を持たない場合に、２つのカメラと共有視野を持ち、かつ、対応点が作ることができる第３のカメラを用いて、２つのカメラについてキャリブレーションを行う。第３のカメラとして全天球カメラに代表される非常に広い視野を持つカメラを更に利用する。そして、新たに利用する第３のカメラの位置そのものを対応点として利用する。
【００６１】
前述した実施形態におけるカメラキャリブレーション装置の全部または一部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、ＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されるものであってもよい。
【００６２】
以上、図面を参照して本発明の実施の形態を説明してきたが、上記実施の形態は本発明の例示に過ぎず、本発明が上記実施の形態に限定されるものではないことは明らかである。したがって、本発明の技術思想及び範囲を逸脱しない範囲で構成要素の追加、省略、置換、その他の変更を行ってもよい。
【産業上の利用可能性】
【００６３】
観測可能な対応点を持たないカメラ間の外部キャリブレーションを行うことが不可欠な用途に適用できる。
【符号の説明】
【００６４】
１・・・入力部、２・・・仮想対応点取得部、３・・・外部パラメータ計算部、５・・・入力部、６・・・仮想対応点取得部、７・・・Fundamental Matrix計算部
【図１】
2018014686.tif 000009
【図２】
2018014686.tif 000010
【図３】
2018014686.tif 000011
【図４】
2018014686.tif 000012
【図５】
2018014686.tif 000013
【図６】
2018014686.tif 000014
【図７】
2018014686.tif 000015
【図８】
2018014686.tif 000016
【図９】
2018014686.tif 000017
【図１０】
2018014686.tif 000018