(57)【要約】【課題】カメラキャリブレーション中にカメラの位置及び姿勢が変動する場合でも、高精度に多視点のカメラの位置姿勢パラメータを推定する。【解決手段】本発明のキャリブレーション装置は、複数のカメラにより撮影された画像を取得する画像取得手段と、カメラ毎に、画像から、カメラの振動を検知する振動検知手段と、カメラ毎に、カメラの振動が許容値内であって、かつカメラの位置姿勢が同じと見做される画像を画像群として抽出する抽出手段と、所定のカメラ台数以上で、画像群を組み合わせとして選択する選択手段と、選択された画像群の組み合わせを用いて、カメラ毎の位置姿勢パラメータを推定する推定手段とを備える。【選択図】図４
2019190974.tif 000002
【特許請求の範囲】
【請求項１】
複数のカメラにより撮影された画像を取得する画像取得手段と、
前記カメラ毎に、前記画像から、前記カメラの振動を検知する振動検知手段と、
前記カメラ毎に、前記カメラの振動が許容値内であって、かつ前記カメラの位置姿勢が同じと見做される画像を画像群として抽出する抽出手段と、
所定のカメラ台数以上で、前記画像群を組み合わせとして選択する選択手段と、
前記選択された画像群の組み合わせを用いて、前記カメラ毎の位置姿勢パラメータを推定する推定手段と
を備えることを特徴とするキャリブレーション装置。
【請求項２】
前記選択手段は、
前記画像からマーカを検出するマーカ検出手段と、
前記画像群の組み合わせ毎に、前記マーカの被覆率を導出する導出手段と
を有し、
前記選択手段は、前記マーカの被覆率に応じて、前記画像群の組み合わせを選択することを特徴とする請求項１に記載のキャリブレーション装置。
【請求項３】
前記導出手段は、前記マーカの被覆率を、以下の（ａ）〜（ｃ）のいずれかの指標により導出することを特徴とする請求項２に記載のキャリブレーション装置。
（ａ）前記マーカの座標を（ｘ、ｙ）とした場合に、（ｘの最大値−ｘの最小値）×（ｙの最大値−ｙの最小値）
（ｂ）前記マーカの座標を中心とした半径Ｒの円を描いた場合に、前記円が被覆する面積の和
（ｃ）画面全体を所定の領域に区切った場合に、前記マーカが前記所定の領域内に存在する前記所定の領域の数
【請求項４】
前記選択手段は前記画像群の組み合わせを複数、選択し、
前記推定手段は、前記選択手段により組み合わせとして選択された複数の画像群のうち、第１の画像群に対応した前記カメラ毎の位置姿勢パラメータを推定し、当該推定した第１の画像群に対応した前記カメラ毎の位置姿勢パラメータを用いて、第２の画像群に対応した前記カメラ毎の位置姿勢パラメータを推定することで、前記カメラ毎の位置姿勢パラメータを推定することを特徴とする請求項１に記載のキャリブレーション装置。
【請求項５】
前記推定された位置姿勢パラメータが、許容誤差内に収まるように調整されることを特徴とする請求項４に記載のキャリブレーション装置。
【請求項６】
前記選択手段により組み合わせとして選択された複数の画像群のうち、１の画像群の画像から抽出された画像特徴点と、前記１の画像群とは異なる画像群の画像における前記画像特徴点との対応から、変換行列を導出する導出手段をさらに備え、
前記推定手段は、前記変換行列により変換した結果をさらに用いて、前記カメラ毎に、前記カメラの位置姿勢パラメータを推定することを特徴とする請求項１に記載のキャリブレーション装置。
【請求項７】
前記選択手段は、前記組み合わせとして選択する画像群として、画像数のより多い画像群を選択することを特徴とする請求項１から３のいずれか１項に記載のキャリブレーション装置。
【請求項８】
前記選択手段は、ユーザに前記画像群を提示して、前記ユーザからの選択を受け付ける表示手段を備えることを特徴とする請求項１から３のいずれか１項に記載のキャリブレーション装置。
【請求項９】
コンピュータを、請求項１から８のいずれか１項に記載のキャリブレーション装置の各手段として機能させるためのプログラム。
【請求項１０】
画像取得手段により、複数のカメラにより撮影された画像を取得する画像取得ステップと、
振動検知手段により、前記カメラ毎に、前記画像から、前記カメラの振動を検知する振動検知ステップと、
抽出手段により、前記カメラ毎に、前記カメラの振動が許容値内であって、かつ前記カメラの位置姿勢が同じと見做される画像を画像群として抽出する抽出ステップと、
選択手段により、所定のカメラ台数以上で、前記画像群を組み合わせとして選択する選択ステップと、
推定手段により、前記選択された画像群の組み合わせを用いて、前記カメラ毎の位置姿勢パラメータを推定する推定ステップと
を含むことを特徴とするキャリブレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラのキャリブレーション技術に関し、より詳細には、カメラの位置姿勢をパラメータとして画像から推定する技術に関する。
【背景技術】
【０００２】
昨今、被写体を複数の視点で撮影した画像群から、撮影視点とは異なる任意の視点の画像を生成する任意視点画像生成技術や、被写体の３次元形状を取得する形状取得技術が知られている。そして、これらの技術では、複数の視点に配置された位置姿勢パラメータが正確に求められていることが前提とされ、そのため、カメラ設置時にキャリブレーションを実施し、カメラの位置姿勢パラメータを求めることが一般的である。
【０００３】
ここで、特許文献１には、既知の直径を有する球体を移動させて、複数のカメラで撮影し、さらに、対向するカメラにおいて空間上の同じ位置に対応する画像内の位置を認識することで、キャリブレーションを実施する技術が開示されている。この特許文献１の技術を用いれば、対向するカメラから被写体がほぼ同じ大きさに映る領域でマーカを移動させることで、高精度なキャリブレーションを実施することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−８９１６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、注視点からカメラまでの距離が遠い撮影環境、例えば、競技場のような広い撮影環境では、一般に焦点距離の長い望遠レンズが用いられる。但し、この望遠レンズを用いた撮影では、望遠レンズが通常のレンズより重いために不安定で物理的な振動が起きやすく、キャリブレーション中においてカメラの位置及び姿勢が徐々に変化してしまうことがある。
【０００６】
そして、このように、キャリブレーション中にカメラの位置及び姿勢が振動によって徐々に変化する場合、特許文献１の技術では、キャリブレーション中は同じ位置及び姿勢と仮定して処理を行うため、位置姿勢パラメータの推定結果に誤差が生じることになる。即ち、特許文献１の技術では、キャリブレーション中にカメラの位置及び姿勢が振動によって徐々に変化する場合、多視点のカメラの位置姿勢パラメータを推定することができない。
【０００７】
そこで、本発明は、カメラキャリブレーション中にカメラの位置及び姿勢が変動する場合でも、高精度に多視点のカメラの位置姿勢パラメータを推定することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明のキャリブレーション装置は、複数のカメラにより撮影された画像を取得する画像取得手段と、前記カメラ毎に、前記画像から、前記カメラの振動を検知する振動検知手段と、前記カメラ毎に、前記カメラの振動が許容値内であって、かつ前記カメラの位置姿勢が同じと見做される画像を画像群として抽出する抽出手段と、所定のカメラ台数以上で、前記画像群を組み合わせとして選択する選択手段と、前記選択された画像群の組み合わせを用いて、前記カメラ毎の位置姿勢パラメータを推定する推定手段とを備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、カメラキャリブレーション中にカメラの位置及び姿勢が変動する場合でも、高精度に多視点のカメラの位置姿勢パラメータを推定することができる。
【図面の簡単な説明】
【００１０】
【図１】画像処理システムの模式図である。
【図２】画像処理装置のハードウェア構成を示すブロック図である。
【図３】画像処理装置の機能ブロック図である。
【図４】画像処理装置における処理の手順を示すフローチャートである。
【図５】カメラの位置姿勢パラメータの推定処理の手順を示すフローチャートである。
【図６】カメラの振動と静止したカメラの位置及び姿勢の関係を示す図である。
【図７】静止画像群の抽出処理を説明するための図である。
【図８】静止画像群の抽出処理を説明するための図である。
【図９】静止画像群選択部の機能ブロック図である。
【図１０】静止画像群を選択する処理の手順を示すフローチャートである。
【図１１】マーカの分布評価値を説明するための図である。
【図１２】画像処理装置の機能ブロック図である。
【図１３】画像処理装置における処理の手順を示すフローチャートである。
【図１４】カメラの位置姿勢パラメータの推定処理の手順を示すフローチャートである。
【図１５】画像処理装置の機能ブロック図である。
【図１６】画像処理装置における処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１１】
（実施形態１）
以下、図面を参照して、本発明の実施形態に係るキャリブレーション装置について説明する。なお、以下の実施形態は、本発明を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１２】
本実施形態では、カメラの位置及び姿勢がキャリブレーション中に変動する場合に、複数のカメラにおいてカメラの変動を検知し、各カメラで同じカメラの位置及び姿勢と見做せる画像群を用いることで、高精度にカメラの位置姿勢パラメータを推定する。
【００１３】
以下、図１を用いて、本実施形態の構成について説明する。図１は、本実施形態に係る画像処理システムの模式図である。画像処理システム１は、複数のカメラ１０１、画像処理装置１０２、表示装置１０３、入力装置１０４を備える。
【００１４】
カメラ１０１は、略平面上の領域に配置され、被写体１０５を囲むように、複数の視点から被写体１０５を撮影する。画像処理装置１０２は、例えば、カメラ１０１により撮影された画像から仮想視点画像等を生成する。また、ユーザは、表示装置１０３及び入力装置１０４を用いて、撮影条件の設定や各種画像データ（例えば、撮影により取得した画像データに対して画像処理を施した結果等）を確認する。なお、キャリブレーションの実行時には、カメラ１０１によりマーカ１０６を撮影し、さらに画像処理装置１０２において、その撮影したマーカ１０６を認識することで、キャリブレーションを実行する。即ち、この場合、画像処理装置１０２は、キャリブレーション装置として機能する。
【００１５】
図２は、画像処理装置１０２のハードウェア構成を示すブロック図である。画像処理装置１０２は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、記憶部２０４、入力インタフェース２０５、出力インタフェース２０６、システムバス２０７を備える。また、画像処理装置１０２には、外部メモリ２０８と表示装置１０３が接続される。詳細には、外部メモリ２０８は画像処理装置１０２の入力インタフェース２０５と出力インタフェース２０６に接続され、表示装置１０３は画像処理装置１０２の出力インタフェース２０６に接続される。
【００１６】
ＣＰＵ（Central Processing Unit）２０１は、画像処理装置１０２の各構成を統括的に制御するプロセッサである。ＲＡＭ（Random Access Memory）２０２は、ＣＰＵ２０１の主メモリ、ワークエリアとして機能するメモリである。ＲＯＭ（Read Only Memory）２０３は、画像処理装置１０２内の処理に用いられるプログラム等を格納するメモリである。ＣＰＵ２０１は、ＲＡＭ２０２をワークエリアとして、ＲＯＭ２０３に格納されたプログラムを実行することで、後述する様々な処理を実行する。
【００１７】
記憶部２０４は、画像処理装置１０２における処理で用いられる画像データや、処理の実行時に用いられるパラメータ等を記憶する記憶デバイスであり、例えば、ＨＤＤ（Hard Disk Drive）、光ディスクドライブ、フラッシュメモリ等である。
【００１８】
入力インタフェース２０５は、例えば、ＵＳＢ（Universal Serial Bus）やＩＥＥＥ１３９４等のシリアルバスインタフェースである。画像処理装置１０２は、この入力インタフェース２０５を介して、外部メモリ２０８（例えば、ＨＤＤ、メモリカード、ＣＦカード、ＳＤカード、ＵＳＢメモリ）から処理対象の画像データ等を取得することができる。
【００１９】
出力インタフェース２０６は、例えば、ＤＶＩ（Digital Visual Interface）やＨＤＭＩ（登録商標）（High-Definition Multimedia Interface）等の映像出力端子である。画像処理装置１０２は、この出力インタフェース２０６を介して、表示装置１０３（液晶ディスプレイ等の画像表示デバイス）に、画像処理装置１０２において画像処理を施した画像データを出力することができる。なお、画像処理装置１０２の構成要素として、上述のブロック以外のブロックも存在するが、本発明の主眼ではないことから、ここでは、その説明を省略する。
【００２０】
以下、画像処理装置１０２における処理及び処理の手順に関して、図３に示す機能ブロック図と図４に示すフローチャートを用いて説明する。図３は、画像処理装置１０２の機能ブロック図である。本実施形態では、ＣＰＵ２０１がＲＯＭ２０３に格納された図４のフローチャートに示すプログラムを実行することにより、図３に記載の各ブロックとして機能する。勿論、全ての処理ブロックの機能をＣＰＵ２０１が有していなくてもよく、各処理ブロックに対応する処理回路を画像処理装置１０２内に新たに設けるようにしてもよい。なお、以下において、フローチャートの説明における記号「Ｓ」は、ステップを表す。
【００２１】
Ｓ４０１において、複数視点画像入力部３０１は、画像取得手段の一例であり、入力インタフェース２０５を介して外部メモリ２０８から複数視点の画像データを取得し、ＲＡＭ２０２に格納する。ここで、複数視点の画像データは、同一の被写体を互いに異なる視点から撮影した複数の画像に関するデータである。
【００２２】
なお、視点数は複数視点を前提とすることから少なくとも２視点、１台のカメラにおける画像の枚数は複数枚（複数の時点）とする。また、画像データは、動画であっても、静止画として連続して撮影された画像や、タイムラプス撮影された画像であってもよい。さらに、複数の視点のカメラにおいて同時点を示す画像は、同期が高精度に取られているものとする。仮に、同期が高精度に取られていない場合には、同時点の画像同士の中では画像特徴やマーカが動かないよう高精度に固定するようにしてもよい。
【００２３】
Ｓ４０２において、複数視点画像振動検知部３０２は、複数視点の画像の各々に関して、振動量を検知する。具体的には、例えば、同視点の複数時点における画像の中で、静止している物体の画像特徴や静止しているマーカを特徴点として検出し、さらに、その特徴点をトラッキングすることで、カメラ１０１の振動を検知する。その他、各カメラに角度センサや加速度センサを実装し、そのセンサにより測定された値から振動を検知してもよい。
【００２４】
Ｓ４０３において、静止画像群抽出部３０３は、最小カメラ数・許容振動設定値記憶部３０４から許容振動設定値を読み込み、カメラ１０１の振動が許容振動設定値以下になる時点の画像ＩＤ（以降、このＩＤを静止画像ＩＤと称する）をカメラ毎に抽出する。さらに、静止画像群抽出部３０３は、Ｓ４０１で取得した画像を、カメラ毎に同じ位置及び姿勢と見做すことができる群に分けて、ＩＤを設定する（以降、このＩＤを静止カメラ位置姿勢ＩＤと称する）。静止画像群抽出部３０３は、各カメラ１０１のカメラＩＤに、Ｓ４０３の処理を実行した結果として取得される静止カメラ位置姿勢ＩＤと静止画像ＩＤを関連付けて格納する。
【００２５】
補足として、図６を用いて、Ｓ４０３の処理について説明する。図６は、カメラの振動と静止したカメラの位置及び姿勢の関係を示す図である。図６（ａ）のグラフでは、検出された特徴点をマーカの画像上において２次元的な動きとして示している。また、図６（ｂ）のカメラ１０１の状態の遷移図では、カメラの位置及び姿勢の振動による変化を示しており、具体的には、カメラ１０１が６０１Ａから６０１Ｂに遷移（変化）する状態を示している。
【００２６】
図６（ｂ）の遷移図から振動許容値内に収まる時点をクラスタリングすることで、状態６０１Ａに対応する静止カメラ位置姿勢ＩＤ６０２Ａと静止画像ＩＤ、また、状態６０１Ｂに対応する静止カメラ位置姿勢ＩＤ６０２Ｂと静止画像ＩＤを求めることができる。
【００２７】
図４に戻り、Ｓ４０４において、静止画像群抽出部３０３は、Ｓ４０１で取得した画像データに関して、許容振動設定値以上である画像が存在するか否かを判定する。そして、画像処理装置１０２は、静止画像群抽出部３０３により許容振動設定値以上である画像が存在すると判定されると（Ｓ４０４ Ｙｅｓ）、処理をＳ４０５に移行させる。また、画像処理装置１０２は、静止画像群抽出部３０３により許容振動設定値以上である画像が存在しないと判定されると（Ｓ４０４ Ｎｏ）、処理をＳ４０８に移行させる。なお、存在しない場合は、全ての画像を用いた通常の位置姿勢パラメータの推定処理と同様の処理となる。
【００２８】
Ｓ４０５において、静止画像群抽出部３０３は、最小カメラ数・許容振動設定値記憶部３０４から最小カメラ数設定値を読み込み、ＲＡＭ２０２に格納する。
【００２９】
Ｓ４０６において、静止画像群抽出部３０３は、ＲＡＭ２０２に格納された静止画像ＩＤのうち、最小カメラ数設定値以上のカメラ分存在する静止画像ＩＤと、それに対応する静止カメラ位置姿勢ＩＤを抽出する。さらに、それを同じ静止カメラ位置姿勢ＩＤ毎に画像群（以降、静止画像群と称する）に分類し、その分類した画像群毎にＩＤを設定する（以降、静止画像群ＩＤと称する）。そして、Ｓ４０６を実行することで取得される、カメラＩＤ、静止カメラ位置姿勢ＩＤ、静止画像ＩＤ、静止画像群ＩＤは、ＲＡＭ２０２に格納される。
【００３０】
次に、図７及び図８を用いて、Ｓ４０６の処理について説明を補足する。図７及び図８は、静止画像群の抽出処理を説明するための図である。図７は、最小カメラ設定値を３台、カメラ台数を３台とした場合の静止画像群の抽出処理を説明するための図である。図７において、符号７０１は複数振動量、符号７０２は許容振動設定値、符号７０３は静止画像ＩＤ、符号７０４は静止カメラ位置姿勢ＩＤ、符号７０５は静止画像群ＩＤを示している。
【００３１】
また、図８は、最小カメラ設定値を２台、カメラ台数を３台とした場合の静止画像群の抽出処理を説明するための図である。図８において、符号８０１は複数振動量、符号８０２は許容振動設定値、符号８０３は静止画像ＩＤ、符号８０４は静止カメラ位置姿勢ＩＤ、符号８０５は静止画像群ＩＤ、符号８０６は静止画像群ＩＤ配列を示す。
【００３２】
図４に戻り、Ｓ４０７において、静止画像群選択部３０５は、ＲＡＭ２０２に格納された静止画像群から、同じカメラＩＤにおける静止カメラ位置姿勢ＩＤが同じになるように、静止画像群の組み合わせ（静止画像群ＩＤ）を１つ選択する。
【００３３】
なお、静止画像群ＩＤを抽出する基準としては、例えば、静止画像の数が多くなるように、静止画像群ＩＤ（又は、静止画像群ＩＤ配列）を抽出すればよい。例えば、図７の場合、静止画像群ＩＤに関して、画像数が多い順に、Ａ＞Ｂ＞Ｃ＞Ｄとなり、そのため、最も画像数の多い静止画像群ＩＤはＡとなる。また、図８の場合、静止画像群ＩＤ配列に関して、画像数が多い順に、［Ｇ，Ｊ］＞［Ｅ，Ｇ］＞［Ｆ，Ｈ］＞［Ｇ，Ｉ］となり、そのため、最も画像数の多い静止画像群ＩＤ配列は、［Ｇ，Ｊ］となる。その他、ユーザに対して、図７や図８のように静止画像群ＩＤ（又は、静止画像群ＩＤ配列）をいくつか提示することで、ユーザがその提示された静止画像群ＩＤ（又は、静止画像群ＩＤ配列）の中から選択できるようにしてもよい。補足として、以降の記載で、静止画像群ＩＤと記載している場合であっても、静止画像群ＩＤ配列を含む場合があるものとする。
【００３４】
Ｓ４０８において、カメラ位置姿勢パラメータ推定部３０６は、ＲＡＭ２０２に格納されたカメラＩＤと画像ＩＤに対応する画像の画像特徴点を用いて、カメラの位置姿勢パラメータと画像特徴点の３次元座標を推定し、ＲＡＭ２０２に格納する。
【００３５】
次に、図５のフローチャートを用いて、図４のＳ４０８の処理、即ち、カメラ位置姿勢パラメータ推定部３０６におけるカメラの位置姿勢パラメータの推定処理に関して、詳細に説明する。
【００３６】
Ｓ５０１において、カメラ位置姿勢パラメータ推定部３０６は、全てのカメラの複数枚の画像に対して、マーカと画像特徴点の２次元座標を検出し、カメラ間において画像特徴点のマッチングを実行する。
【００３７】
Ｓ５０２において、カメラ位置姿勢パラメータ推定部３０６は、全てのカメラの中から、カメラの位置姿勢パラメータを求めるための２台のカメラ（以降、キーフレームと称する）を選択する。なお、キーフレームは予め設定されていてもよいし、また、認識されたマーカや画像特徴点のマッチング数が最も多い２台のカメラをキーフレームとして選択してもよい。その他、予めカメラの順序や位置関係が大まかに設定されている場合には、それらの情報を用いて、位置関係が近く、かつ対応するマーカや画像特徴点の数が多い２台のカメラを、キーフレームとして選択してもよい。
【００３８】
Ｓ５０３において、カメラ位置姿勢パラメータ推定部３０６は、選択したキーフレームのマーカ及び画像特徴点の２次元座標とマッチング結果とから、Ｆ行列を推定する。Ｆ行列（fundamental行列）は、基礎行列とも称され、２つのカメラ視点間の相対関係を示す行列のことである。具体的には、キーフレームの２台のカメラ視点のマーカ座標を［ｘ0i,ｙ0i］、[ｘ1i,ｙ1i]（ｉ=１...Ｎ、Ｎはマーカの数）とした場合に、下式を充足する行列として示される。
【００３９】
【数１】
2019190974.tif 000003
【００４０】
なお、Ｆ行列を推定する上で、例えば、ＤＬＴ（Direct Linear Transformation）による解法等を用いることができる。また、画像特徴点のマッチング結果には誤対応が含まれることが多いため、ｒａｎｓａｃやＭ推定等のロバスト推定方法を用いて外れ値を削除することで、誤対応を計算から省くことが好ましい。この点、詳細には、"Overall view regarding fundamental matrix estimation",X Armangue, J Salvi,Image and vision computing, 2003に記載されている。
【００４１】
Ｓ５０３において、ロバスト推定方法を用いる場合、マーカと画像特徴点の信頼度が異なるならば、それに従ってロバスト推定を行うとよい。ここで、ロバスト推定として、ｒａｎｓａｃを用いる場合、信頼度の高いマーカや画像特徴点がより高い頻度でサンプリングされるようにすることで、信頼度の高いマーカや画像特徴点と整合性のないマーカや画像特徴点を外れ値として削除しやすくなる。
【００４２】
また、ロバスト推定方法として、Ｍ推定を用いる場合、次式のように、マーカや画像特徴点に対して重みα1i、α2iを乗算する。
【００４３】
【数２】
2019190974.tif 000004
【００４４】
上式において、信頼度の高いマーカや画像特徴点のαiを大きくして、信頼度の低いマーカや画像特徴点のαiを小さくして計算することで、信頼度の高いマーカや画像特徴点と整合性のない画像特徴点を外れ値として削除しやすくなる。
【００４５】
Ｓ５０４において、カメラ位置姿勢パラメータ推定部３０６は、Ｆ行列からカメラの位置姿勢パラメータ（即ち、カメラの位置ｔ、カメラの姿勢Ｒ）を推定する。具体的には、Ｆ行列の左にカメラの内部パラメータ行列Ａ1の逆行列を、Ｆ行列の右にカメラの内部パラメータ行列Ａ0の逆行列を乗算したものを特異値分解し、さらに直交行列Ｕ、Ｖ、対角行列Σに分解することで、カメラの位置ｔと姿勢Ｒを求めればよい。
【００４６】
【数３】
2019190974.tif 000005
【００４７】
なお、Ｒzは、２パターンのいずれかであり、対応点の３次元点がカメラの後ろ側に配置されないように設定すればよい。また、ここで算出するＲとｔは１台目のカメラ（以降、カメラ０と称する）の位置ｔ1を原点、姿勢Ｒ1を単位行列としたときの２台目のカメラ（以降、カメラ１と称する）の位置ｔ2と姿勢Ｒ2である。
【００４８】
Ｓ５０５において、カメラ位置姿勢パラメータ推定部３０６は、Ｓ５０４で推定した位置姿勢パラメータとキーフレームの画像特徴点のマッチング結果から、画像特徴点に対応する３次元座標を推定する。具体的には、例えば、画像上の座標ｘ, ｙに対して３次元座標ＸＹＺは、下式のように示される。
【００４９】
【数４】
2019190974.tif 000006
【００５０】
ここで、カメラｋ（ｋ＝０、１）のｉ番目（ｉ＝１...Ｎ、Ｎは、特徴点マッチングの数）の特徴点［ｘki，ｙki］に対応する３次元座標の集合［Ｘki，Ｙki,Ｚki］は、未知の変数ｓkiを用いて、下式のように示される。なお、３次元座標の集合［Ｘki，Ｙki,Ｚki］は、以降において、ｐkiと称する。
【００５１】
【数５】
2019190974.tif 000007
【００５２】
この場合、ｐki（ｋ＝０、１）の間のユークリッド距離が最短になるようにｓkiを求め、ｐkiの平均を取ると、特徴点の座標［ｘki，ｙki］（ｋ＝１，０）に対応する３次元点［Ｘi，Ｙi，Ｚi］を求めることができる。なお、３次元点［Ｘi，Ｙi，Ｚi］は、以降において、ｐiと称する。
【００５３】
【数６】
2019190974.tif 000008
【００５４】
ここで、ｐki（ｋ＝０，１）の間のユークリッド距離が最短になるようなｓkiは、以下の式で求めることができる。
【００５５】
【数７】
2019190974.tif 000009
【００５６】
そして、式（７）で算出したｓ1i、ｓ2iを式（５）に代入することで、式（６）から３次元点ｐiを求めることができる。なお、式（７）で算出したｓ1i、ｓ2iのいずれか一方でも負の値であると、カメラに対して後ろ側に３次元点が生成されることになるので（即ち、対応点の誤りと予想されるので）、その場合、外れ値として削除すればよい。
【００５７】
Ｓ５０６において、カメラ位置姿勢パラメータ推定部３０６は、特徴点の３次元座標のカメラ画像への再射影と特徴点の２次元座標との間の再射影誤差が最小になるように、位置姿勢パラメータと画像特徴点に対応する３次元座標を微調整する。なお、位置姿勢パラメータはＳ５０４で、画像特徴点に対応する３次元座標はＳ５０５で推定されたものである。また、この処理（調整）は、バンドル調整とも称される。
【００５８】
なお、３次元点ｐi（ｉ＝１，..，Ｎ）の再射影［ｘ（Ｒk,ｔk,ｐi），ｙ（Ｒk,ｔk,ｐi）］とマーカ又は画像特徴点の座標［ｘki,ｙki］との誤差Ｅ（Ｒ0,Ｒ1,ｔ0,ｔ1,…,ｐN）は下式で示される。
【００５９】
【数８】
2019190974.tif 000010
【００６０】
ここで、αkiはｉ個目のマーカ又は特徴点のカメラｋにおける画像上の座標の信頼度である。また、信頼度の高いマーカや画像特徴点のαkiを大きく、信頼度の低いマーカや画像特徴点のαkiを小さくすることで、信頼度の高いマーカの誤差を可能な限り小さくすることができる。
【００６１】
そして、この誤差Ｅの値を最小化するようなＲ0，Ｒ1，ｔ0，ｔ1，ｐ1，…，ｐNを、非線形最適化手法を用いることで求める。即ち、バンドル調整を行う。補足として、非線形最適化手法には、Levenberg-Marquardt法等を用いればよい。
【００６２】
なお、バンドル調整において、非線形最適化手法で収束したパラメータＲ0,Ｒ1,ｔ0,ｔ1はバンドル調整前とは値が異なっていることから、再度、外れ値の評価を行うことが好ましい。また、外れ値として判定した画像特徴点の中にも、更新されたＲ0,Ｒ1,ｔ0,ｔ1では外れ値とならない画像特徴点があるか否かを評価して、外れ値とはならない画像特徴点を追加する処理を行うことも好ましい。加えて、この場合、画像特徴点の削除や追加が行われた場合には、再度、バンドル調整を実行し、パラメータＲ0,Ｒ1,ｔ0,ｔ1を更新するとよい。
【００６３】
Ｓ５０７において、カメラ位置姿勢パラメータ推定部３０６は、全視点（全てのカメラ）においてカメラの位置姿勢パラメータの推定を完了したか否かを判定し、推定が完了していれば図５に示す処理を終了し、完了していなければ処理をＳ５０８に移行させる。
【００６４】
Ｓ５０８において、カメラ位置姿勢パラメータ推定部３０６は、カメラの位置姿勢パラメータの推定が完了していないカメラ（視点）の中から、次に処理すべき視点（以降、追加視点と称する）を選択する。なお、追加視点は、２視点以上、同時に選択してもよい。また、追加視点は、予め設定されていてもよいし、マーカや画像特徴点のマッチング結果の中で既に求められたマーカや画像特徴点の３次元座標に対応する数が十分に多い視点を選択してもよい。例えば、最も対応の多いカメラ視点の対応点数をＮ個としたとき、それに対して予め定めた割合（例えば、６０％なら０．５Ｎ個）以上の対応マーカを有するカメラ視点まで追加視点として選択するようにしてもよい。その他、予めカメラの順序や位置関係が大まかに設定されている場合には、それらの情報を用いて、位置関係が近く、かつ既に求められたマーカ３次元座標に対応するマーカ認識結果の数が十分に多い視点を選択してもよい。
【００６５】
Ｓ５０９において、カメラ位置姿勢パラメータ推定部３０６は、既に求められた画像特徴点に対応する３次元座標と、追加視点のマーカや画像特徴点の２次元座標を対応させる射影行列を推定する。具体的には、Ｓ５０７までに求められた３次元点［Ｘi,Ｙi,Ｚi］を画像上に射影した点［Ｒk，ｔk］と、３次元点と対応する２次元座標［ｘki, ｙki］との間の誤差が最小になるように［Ｒk，ｔk］を求めればよい。
【００６６】
なお、ここで、ｋは追加する視点に対応するインデックスである。また、再射影誤差Ｅ（Ｒk、ｔk）は、下式により示される。
【００６７】
【数９】
2019190974.tif 000011
【００６８】
式（９）では、式（８）とは異なり、ｐiはパラメータではなく固定値として取り扱われる。この解は、解析的に求めることができ、
【００６９】
【数１０】
2019190974.tif 000012
となる行列Ｍに対して、
【００７０】
【数１１】
2019190974.tif 000013
【００７１】
となるようなｒ11〜ｒ33、ｔ1〜ｔ3が式（９）を最小化するようなＲk＝［ｒij］、ｔk＝［ｔi］であり、これを射影行列と称する。式（１１）を満たすｒ11〜ｒ33、ｔ1〜ｔ3はＭTＭの特異値分解を行い、最小の固有値に対応する固有ベクトルを求めれば、ｒ11〜ｒ33、ｔ1〜ｔ3を求めることができる。
【００７２】
このような処理は、ＰｎＰ法と称される。補足として、３次元点のワールド座標から３次元点の分布に従った座標系に変換してからＰｎＰ法を行うＥＰｎＰと称される手法が高精度で処理が速いことが知られている。
【００７３】
なお、ここでも、画像特徴点の誤対応の影響で大きな外れ値が含まれる場合があるため、ＰｎＰ法においても、ｒａｎｓａｃやＭ推定のようなロバスト推定を行うことが好ましい。この場合、Ｓ５０１と同様に、マーカや画像特徴点の信頼度の高さに従って、ロバスト推定を行うとよい。ここで、ロバスト推定として、ｒａｎｓａｃを用いる場合、信頼度の高いマーカや画像特徴点がより高い頻度でサンプリングされるようにすることで、信頼度の高いマーカや画像特徴点と整合性のないマーカや画像特徴点を外れ値として削除しやすくなる。
【００７４】
また、ロバスト推定として、Ｍ推定を用いる場合、次式のように、マーカや画像特徴点に対して重みα1i、α2iを乗算する。
【００７５】
【数１２】
2019190974.tif 000014
【００７６】
上式において、信頼度の高いマーカや画像特徴点のαkiを大きくして、信頼度の低いマーカや画像特徴点のαkiを小さくして計算することで、信頼度の高いマーカや画像特徴点と整合性のない画像特徴点を外れ値として削除しやすくなる。
【００７７】
Ｓ５１０において、カメラ位置姿勢パラメータ推定部３０６は、射影行列から追加視点の位置姿勢パラメータを推定する。ここで、Ｓ５０９で推定したＲk＝［ｒij］は、式（１１）を求めるときに回転行列の制約がなかったことから、一般的に回転行列の条件を満たしていない。そこで、Ｒk＾ＴＲkが単位行列になるように制約付きの非線形最適化を行い、Ｐ=［ｒij］［ｔi］の特異値分解からＲkを求め、さらに、それを用いてｔkを求めればよい。
【００７８】
Ｓ５１１において、カメラ位置姿勢パラメータ推定部３０６は、Ｓ５１０で推定した追加視点のカメラの位置姿勢パラメータとマーカや画像特徴点の２次元座標から、画像特徴点に対応する３次元座標を推定する。具体的には、Ｓ５０５と同様の処理を、追加する点が見えているカメラの台数をＭ（＞２）個に拡張したものである。
【００７９】
この場合、マーカの画像上の座標と３次元座標の対応式は式（４）と同様であり、３次元点は、追加する点が見えているＭ台のカメラに対して、下式により算出される。
【００８０】
【数１３】
2019190974.tif 000015
【００８１】
なお、式（５）のｓk1i〜ｓkMi（ここで、ｋ１，..，ｋＭ は見えているカメラに対応するインデックス）は、式（７）を下式のようにＭ視点に拡張することで、求めることができる。
【００８２】
【数１４】
2019190974.tif 000016
【００８３】
そして、式（１４）で算出したｓk1i〜ｓkMiを式（５）に代入することで、式（１３）から３次元点ｐiを求めることができる。なお、式（１４）で算出したｓk1i〜ｓkMiのいずれかに負の値があると、カメラに対して後ろ側に３次元点が生成されることになるので（即ち、対応点の誤りと予想されるので）、その場合、外れ値として削除すればよい。或いは、もし、その点が見えているカメラの台数が、そのカメラを除いても、２台以上あるようであれば、そのカメラの対応のみ外れ値として、残りの対応点で３次元座標を導出すればよい。
【００８４】
Ｓ５１２において、カメラ位置姿勢パラメータ推定部３０６は、画像特徴点に対応する３次元座標のカメラ画像への再射影誤差が最小になるように、位置姿勢パラメータと画像特徴点に対応する３次元座標を微調整する。なお、位置姿勢パラメータはＳ５０４及びＳ５１０で、画像特徴点に対応する３次元座標はＳ５０５及びＳ５１１で推定される。また、Ｓ５１２における処理は、Ｓ５０６における処理と同様であることから、ここでは、その説明を省略する。
【００８５】
Ｓ５１２が終了すると、処理をＳ５０７に返し、全てのカメラにおいて処理が完了したか否かを判定し（全てのカメラにおいてカメラの位置姿勢パラメータの推定が完了したか否かを判定し）（Ｓ５０７）、処理が完了していれば、図５に示す処理を終了する。また、処理が完了していなければ、処理をＳ５０８に移行させる。
【００８６】
以上のように、各カメラにおいて、撮影された画像のうち、同じ位置及び姿勢で撮影されたものと見做せる画像を、静止画像群として抽出する。そして、同時刻にある静止画像群を、最小カメラ数設定値以上の台数分（所定のカメラ台数以上）、組み合わせとして選択し、さらに、その選択した静止画像群を用いてカメラの位置姿勢パラメータを推定する。これにより、カメラの位置姿勢パラメータを高精度に推定することができる。
【００８７】
（実施形態２）
実施形態１では、各カメラで同じ位置及び姿勢で撮影されたものと見做せる画像を静止画像群として抽出し、さらに、同時刻にある静止画像群を最小カメラ数設定値以上の台数分、組み合わせとして１つ選択し、位置姿勢パラメータを推定する例を説明した。
【００８８】
但し、この静止画像群の組み合わせを選択する場合、キャリブレーション用のマーカを用いるときに、マーカが画面上において全域にわたって分布しているか否かを考慮することが好ましい。そこで、実施形態２では、複数のカメラで同時に撮影された画像のうち、振動が許容振動設定値以下になる時間帯の画像（静止画像群）において、さらに、マーカの分布の評価値が高くなる静止画像群を用いて、位置姿勢パラメータを推定する例を説明する。
【００８９】
以下、本実施形態における位置姿勢パラメータの推定に関して、静止画像群選択部３０５の機能ブロック図（図９）、及び上述のＳ４０７において、マーカの分布を考慮して静止画像群を選択する処理の手順を示すフローチャート（図１０）を参照して説明する。
【００９０】
Ｓ１００１において、マーカ検出部９０１は、ＲＡＭ２０２に格納された各カメラの静止画像ＩＤと対応する静止画像に対して、キャリブレーション用のマーカの２次元座標とそのマーカの種類を識別するマーカＩＤを検出してＲＡＭ２０２に格納する。
【００９１】
なお、キャリブレーション用のマーカは、平面に描かれた円や、二重丸、十字マーク、チェッカーボードパターン、球体、ＡＲマーカのようなものであってもよい。また、検出する座標は、円や二重丸では円の中心、球体では球の中心、十字マークでは交差領域の中心、チェッカーボードパターンでは白黒の四角形の交差点等、空間上の点と対応する特徴点が各カメラの画像上で点として認識できるものであればよい。
【００９２】
Ｓ１００２において、マーカ静止画像群抽出部９０２は、分布評価値導出手段（被覆率導出手段）の一例であり、ＲＡＭ２０２に格納された静止画像群ＩＤ毎に対応する各カメラのマーカの分布評価値を計算する。ここで、マーカの分布評価値の計算について、図１１を用いて説明する。図１１において、符号１１０２〜１１０４は画像を示しており、また、画像内の複数の四角形１１０１はマーカを示している。
【００９３】
ここで、マーカ１１０１が同じ数であるならば、画像において広範囲に分散している方が計算精度は高くなる。そのため、マーカ１１０１の数が同じ画像１１０２と画像１１０３では、画像１１０３の分布評価値を画像１１０２の分布評価値よりも高くすることが好ましい。他方、マーカ１１０１が同じ範囲に分散しているならば、マーカ１１０１の数が多い方が計算精度は高くなる。そのため、マーカ１１０１の分散している範囲の同じ画像１１０３と画像１１０４では、画像１１０４の分布評価値を画像１１０３の分布評価値よりも高くすることが好ましい。
【００９４】
そして、このような関係を満たすような分布評価値として、例えば、以下の指標（指標１〜指標３）を検討することができ、指標１〜３のいずれか１つ以上を用いることで、マーカの分布評価値を計算することができる。
【００９５】
指標１として、「(ｘの最大値−ｘの最小値)×(ｙの最大値−ｙの最小値)」を検討することができる。また、指標２として、「マーカ座標を中心とした半径Ｒの円を描いたときの円が被覆する面積の和」を検討することができる。さらに、指標３として、「画面全体を小領域（例えば、１０×１０等）に区切ったときに、マーカがその小領域内に存在する小領域の数」を検討することができる。
【００９６】
Ｓ１００３において、マーカ静止画像群抽出部９０２は、ＲＡＭ２０２に格納されたデータから、同じカメラＩＤにおける静止カメラ位置姿勢ＩＤの同じ静止画像群ＩＤを１つ抽出する。なお、Ｓ１００３では、例えば、各カメラのマーカ分布評価値の和が高くなるように静止画像群を抽出すればよい。或いは、ユーザにマーカ分布評価値の高い静止画像群ＩＤをいくつか提示して、ユーザがその提示された静止画像群の中から選択できるようにしてもよい。
【００９７】
以上のように、本実施形態では、各カメラで同じ位置及び姿勢で撮影されたものと見做せる画像を静止画像群として抽出し、同時刻にある静止画像群を最小カメラ数設定値以上の台数分、マーカの分布評価値を考慮して選択する。これにより、位置姿勢パラメータを高精度に推定することができる。
【００９８】
（実施形態３）
実施形態１及び２では、各カメラで同じ位置及び姿勢で撮影されたものと見做せる画像を静止画像群として抽出し、その静止画像群の組み合わせを各カメラの画像のカメラ位置姿勢ＩＤが同じになるように１つ選択し、位置姿勢パラメータを推定した。但し、実施形態１及び２では、同じカメラにおける選択された静止カメラ位置姿勢ＩＤと異なる静止カメラ位置姿勢ＩＤの静止画像群のマーカや画像特徴量を位置姿勢パラメータの推定に用いていない。そこで、実施形態３では、同じカメラの異なる位置及び姿勢における画像群を用いて、位置姿勢パラメータを推定する。
【００９９】
以下、本実施形態に係る画像処理装置１０２における処理及び処理の手順に関して、図１２に示す機能ブロック図と図１３に示すフローチャートを用いて説明する。なお、ここでは、実施形態１と同様の処理は、その説明を省略し（即ち、例えば、Ｓ１３０１〜Ｓ１３０６は、Ｓ４０１〜Ｓ４０６と同様の処理であることから、その説明を省略し）、実施形態１との差分に着目して説明する。
【０１００】
Ｓ１３０７において、静止画像群選択部３０５は、ＲＡＭ２０２に格納されたカメラＩＤ、静止カメラ位置姿勢ＩＤ、静止画像ＩＤ、静止画像群ＩＤから、同じカメラＩＤにおける静止カメラ位置姿勢ＩＤの同じ静止画像群ＩＤを複数、抽出する。
【０１０１】
なお、静止画像群ＩＤを抽出する基準としては、例えば、静止画像群ＩＤに含まれる画像数が多い静止画像群ＩＤの順に抽出すればよい。例えば、図７の場合、即ち、最小カメラ設定値が３台、カメラ３台の場合、静止画像群ＩＤに関して、画像数が多い順にＡ＞Ｂ＞Ｃ＞Ｄとなり、Ａ→Ｂ→Ｃ→Ｄが処理の順序となる。これが、図８の場合、即ち、最小カメラ設定値２台、カメラ３台の場合、静止画像群ＩＤ配列に関して、画像数が多い順に［Ｇ，Ｊ］＞［Ｅ，Ｇ］＞［Ｆ，Ｈ］＞［Ｇ，Ｉ］となり、［Ｇ，Ｊ］→［Ｅ，Ｇ］→［Ｆ，Ｈ］→［Ｇ，Ｉ］が処理の順序となる。その他、ユーザに静止画像群ＩＤをいくつか提示して、ユーザがその中から処理対象と処理順序を選択するようにしてもよい。
【０１０２】
Ｓ１３０８に関して、処理順序に従って、処理対象とする静止画像群ＩＤに対して、位置姿勢パラメータを推定する。なお、位置姿勢パラメータの推定に関しては、図４のＳ４０８と同様である。即ち、ここでのカメラ位置姿勢推定部１２０２の処理は、カメラ位置姿勢パラメータ推定部３０６の処理と同様であり、位置姿勢パラメータと画像特徴点の３次元座標を推定し、ＲＡＭ２０２に格納する。
【０１０３】
Ｓ１３０９において、カメラ位置姿勢マージ部１２０１は、ＲＡＭ２０２に格納された静止画像群ＩＤに対応する画像のうち、未処理の静止画像群があるかどうかを判定する。そして、未処理の静止画像群がなければ（Ｓ１３０９ Ｎｏ）、図１３に示す処理を終了し、未処理の静止画像群があれば（Ｓ１３０９ Ｙｅｓ）、処理をステップＳ１３１０に移行させる。
【０１０４】
Ｓ１３１０において、カメラ位置姿勢マージ部１２０１は、次に、カメラ位置姿勢推定部１２０２で処理する画像群の画像ＩＤ、位置姿勢パラメータの初期値、及び許容誤差を設定してＲＡＭ２０２に格納する。
【０１０５】
ここで、位置姿勢パラメータの初期値は、Ｓ１３０８で推定した位置姿勢パラメータとする。また、許容誤差は、例えば、処理対象のカメラの静止画像ＩＤに対応する静止カメラ位置姿勢ＩＤを初期値として設定したものであれば、小さく設定し(又は、ゼロに設定し)、そうでないならば、大きく設定すればよい。例えば、望遠で撮影する場合、被写体とカメラの距離は一般に遠くなることから、カメラの振動による位置の変化は被写体−カメラ間距離と比較すれば小さくなり、そのため、カメラ位置の許容誤差を小さく設定すればよい(又は、ゼロに設定すればよい)。なお、位置姿勢パラメータの許容誤差は、振動の大きさに従って設定すればよい。
【０１０６】
Ｓ１３１１において、カメラ位置姿勢推定部１２０２は、ＲＡＭ２０２に格納されたカメラＩＤと画像ＩＤに対応する画像の画像特徴点を用いて、位置姿勢パラメータと画像特徴点の３次元座標を推定し、ＲＡＭ２０２に格納する。また、ここでは、Ｓ１３１０で設定した位置姿勢パラメータの初期値と許容誤差も用いる。なお、Ｓ１３１１を実行すると、Ｓ１３０９に処理を返し、終了判定を実行する。
【０１０７】
次に、Ｓ１３１１におけるカメラ位置姿勢推定部１２０２の処理の詳細を、図１４のフローチャートを用いて補足する。Ｓ１４０１において、カメラ位置姿勢推定部１２０２は、ＲＡＭ２０２に格納された位置姿勢パラメータの初期値と許容誤差を読み込む。
【０１０８】
Ｓ１４０２において、カメラ位置姿勢推定部１２０２は、全てのカメラの複数枚の画像に対して、マーカと画像特徴点の２次元座標を検出し、カメラ間においてマーカと画像特徴点のマッチングを実行し、その推定結果をＲＡＭ２０２に格納する。なお、この場合、処理を高速化するため、特徴点やマーカをマッチングするカメラのペアを、位置姿勢パラメータの初期値から制限することが好ましい。
【０１０９】
Ｓ１４０３において、カメラ位置姿勢推定部１２０２は、Ｓ１４０１で設定した位置姿勢パラメータの初期値と、マーカと画像特徴点の２次元座標及びマッチング結果から、画像特徴点に対応する３次元座標を推定する。なお、推定方法は、Ｓ５０５と同様であることから、ここでは、その説明を省略する。
【０１１０】
Ｓ１４０４において、カメラ位置姿勢推定部１２０２は、位置姿勢パラメータと画像特徴点に対応する３次元座標を、画像特徴点に対応する３次元座標の再射影誤差が小さく、かつ位置姿勢パラメータの初期値との誤差が許容誤差内に収まるように微調整する。具体的には、式（８）にＲkとｔkの初期値との誤差（例えば、ユークリッドノルム）を加えて、ラグランジェの未定乗数法等の方法で非線形最適化計算をすればよい。
【０１１１】
Ｓ１４０５〜Ｓ１４１０における処理は、Ｓ５０７〜Ｓ５１２における処理と同様であることから、ここでは、その説明を省略する。なお、Ｓ１４０６以降の処理は、Ｓ１３０８で位置姿勢パラメータを推定できず、初期値を設定できなかったカメラがある場合に実行される。この場合、初期値がないので、そのカメラに対する非線形最適化計算の制約条件を設定せずに計算すればよい。
【０１１２】
以上のように、各カメラで同じ位置及び姿勢で撮影されたものと見做せる画像を静止画像群として抽出し、同時刻にある静止画像群を最小カメラ数設定値以上の台数分、組み合わせてとして順に選択して位置姿勢パラメータを推定する。これにより、位置姿勢パラメータを高精度に推定することができる。
【０１１３】
（実施形態４）
上述の実施形態３では、同じカメラの異なる位置及び姿勢における画像群を、位置及び姿勢の近い異なるカメラとして順に選択して、位置姿勢パラメータを推定した。但し、位置姿勢パラメータを推定する上で実施形態３のように計算（処理）を順に実行すると、位置姿勢パラメータを推定するまでに相応に時間がかかる可能性がある。
【０１１４】
そこで、実施形態４では、カメラの位置及び姿勢の変動による画像特徴点のずれをホモグラフィ変換で変換できるような平面的な変動であると見做して、マーカや画像特徴点の位置を変換する。これにより、カメラの位置及び姿勢は各カメラで不変として、１回の計算で位置姿勢パラメータを推定する。
【０１１５】
以下、本実施形態に係る画像処理装置１０２における処理及び処理の手順に関して、図１５に示す機能ブロック図と図１６に示すフローチャートを用いて説明する。なお、ここでは、実施形態１と同様の処理は、その説明を省略する（即ち、例えば、Ｓ１６０１〜Ｓ１６０７は、Ｓ１３０１〜Ｓ１３０７と同様の処理であることから、その説明を省略する）。
【０１１６】
Ｓ１６０８において、特徴点変換行列算出部１５０１は、処理対象の静止画像群の静止画像ＩＤに対する画像特徴点の変換行列を算出する。なお、ここでの変換行列とは、具体的には、ホモグラフィ変換行列である。また、基準とする画像は、１つ目の静止画像群ＩＤに属する画像とする。
【０１１７】
ここで、画像特徴点として、異なる時点においても空間的な位置が変化しない画像特徴点を選択する。具体的には、例えば、１つ目の静止画像群の先頭画像で画像特徴点を検出し、その画像特徴点を異なる時点でトラッキングした結果、安定して複数時点でトラッキングできた場合に、その画像特徴点を採用（選択）すればよい。
【０１１８】
さらに、その選択した画像特徴点に対して、異なる静止画像群ＩＤに属する静止画像でトラッキング又は特徴点マッチングした結果の対応を用いて、ホモグラフィ変換行列を算出する。そして、その算出したホモグラフィ変換行列を用いて、異なる静止画像群ＩＤに属する画像の特徴点の２次元座標を１つ目の静止画像群ＩＤに属する画像に相当する２次元座標に変換する。
【０１１９】
なお、ホモグラフィ変換の基準画像は、１つ目の静止画像群ＩＤに属する画像に必ずしも限定されない。また、１つ目の静止画像群ＩＤに含まれていないカメラＩＤがある場合には、可能な限り処理の優先順位の高い静止画像群ＩＤに属する画像を選択すればよい。
【０１２０】
Ｓ１６０９において、カメラ位置姿勢推定部１５０２は、ＲＡＭ２０２に格納されたカメラＩＤと静止画像ＩＤに対応する画像の画像特徴点を特徴点変換行列で変換したものを用いて、位置姿勢パラメータと画像特徴点の３次元座標を推定する。
【０１２１】
なお、Ｓ１６０９におけるカメラ位置姿勢推定部１５０２の処理は、Ｓ５０１でのマーカと画像特徴量の２次元座標を特徴点変換行列で変換すること以外は、図５のフローと同様であるため、ここでは、その説明は省略する。
【０１２２】
以上のように、カメラの位置及び姿勢の変動による画像特徴点のずれをホモグラフィ変換で変換できるような平面的な変動であると見做して、マーカや画像特徴点の位置を変換する。これにより、カメラの位置及び姿勢は各カメラで不変として、１回の計算で位置姿勢パラメータを推定する。即ち、繰り返して計算（処理）することなく、位置姿勢パラメータを高精度に推定することができる。
【０１２３】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2019190974.tif 000017
【図２】
2019190974.tif 000018
【図３】
2019190974.tif 000019
【図４】
2019190974.tif 000020
【図５】
2019190974.tif 000021
【図６】
2019190974.tif 000022
【図７】
2019190974.tif 000023
【図８】
2019190974.tif 000024
【図９】
2019190974.tif 000025
【図１０】
2019190974.tif 000026
【図１１】
2019190974.tif 000027
【図１２】
2019190974.tif 000028
【図１３】
2019190974.tif 000029
【図１４】
2019190974.tif 000030
【図１５】
2019190974.tif 000031
【図１６】
2019190974.tif 000032