(57)【要約】【課題】  パノラマ映像の揺れを軽減させること。【解決手段】  複数の画像を撮像した複数の撮像装置の位置・姿勢情報を推定する推定工程と、複数の撮像装置の位置・姿勢情報を用いて仮想撮像装置の位置・姿勢情報を求め、位置・姿勢情報を基に仮想撮像装置の揺れを軽減させる全体変換を算出する全体変換算出工程と、全体変換を基に複数の撮像装置の揺れを軽減させる個別変換を算出する個別変換算出工程と、複数の画像に対して個別変換を施し、個別変換を施した複数の画像を繋ぎ合わせてパノラマ画像を作成する繋ぎ合わせ工程とを備えることを特徴とする画像処理方法。【選択図】  図２
2004274701.tif 000002
【特許請求の範囲】
【請求項１】
複数の画像を撮像した複数の撮像装置の位置・姿勢情報を推定する推定手段と、
前記複数の撮像装置の位置・姿勢情報を用いて仮想撮像装置の位置・姿勢情報を求め、該位置・姿勢情報を基に仮想撮像装置の揺れを軽減させる全体変換を算出する全体変換算出手段と、
前記全体変換を基に複数の撮像装置の揺れを軽減させる個別変換を算出する個別変換算出手段と、
前記複数の画像に対して前記個別変換を施し、該個別変換を施した複数の画像を繋ぎ合わせてパノラマ画像を作成する繋ぎ合わせ手段と
を備えることを特徴とする画像処理装置。
【請求項２】
複数の画像を撮像した複数の撮像装置の位置・姿勢情報を推定する推定工程と、
前記複数の撮像装置の位置・姿勢情報を用いて仮想撮像装置の位置・姿勢情報を求め、該位置・姿勢情報を基に仮想撮像装置の揺れを軽減させる全体変換を算出する全体変換算出工程と、
前記全体変換を基に複数の撮像装置の揺れを軽減させる個別変換を算出する個別変換算出工程と、
前記複数の画像に対して前記個別変換を施し、該個別変換を施した複数の画像を繋ぎ合わせてパノラマ画像を作成する繋ぎ合わせ工程と
を備えることを特徴とする画像処理方法。
【請求項３】
請求項２に記載の画像処理方法をコンピュータ装置に実現させるコンピュータプログラム。
【請求項４】
請求項３に記載のプログラムを格納した、コンピュータ装置読み取り可能な記憶媒体。
【請求項５】
複数の撮影装置個々の座標系との位置関係が既知である共通座標系を設定し、
前記複数の撮影装置の各々について姿勢を推定し、
前記複数の撮影装置の個々の推定姿勢を用いて、前記共通座標系の推定姿勢を求め、
前記共通座標系の推定姿勢を用いて、前記共通座標系の揺れを軽減する補正変換を求め、
前記補正変換を用いて、前記複数の撮影装置個々の揺れを軽減する補正変換を求め、
前記複数の撮影装置の各々が撮影した撮影画像に対し、対応する前記補正変換を施し、
変換後の複数の撮影画像を合成してパノラマ画像を生成する、
ことを特徴とする画像処理方法。
【請求項６】
複数の撮影装置個々の座標系との位置関係が既知である共通座標系を設定し、
前記複数の撮影装置の各々について姿勢を推定し、
前記複数の撮影装置の個々の推定姿勢を用いて、前記共通座標系の推定姿勢を求め、
前記共通座標系の推定姿勢を用いて、前記共通座標系の揺れを軽減する補正変換を求め、
前記複数の撮像装置で撮影した複数の画像を合成してパノラマ画像を生成し、
前記パノラマ画像に前記共通座標系の揺れを軽減する補正変換を施す、
ことを特徴とする画像処理方法。
【請求項７】
前記共通座標系及び前記複数の撮影装置個々の揺れを軽減する補正変換が、ヨー、ロール及びピッチの補正を行う変換であることを特徴とする請求項５又は請求項６記載の画像処理方法。
【請求項８】
前記複数の撮影装置の各々及び前記共通座標系について、姿勢推定時に位置も推定することを特徴とする請求項５乃至請求項７のいずれか１項に記載の画像処理方法。
【請求項９】
前記共通座標系及び前記複数の撮影装置個々の揺れを軽減する補正変換が、ヨー、ロール及びピッチ及び位置の補正を行う変換であることを特徴とする請求項８記載の画像処理方法。
【請求項１０】
複数の撮影装置個々の座標系との位置関係が既知である共通座標系を設定する手段と、
前記複数の撮影装置の各々について姿勢を推定する手段と、
前記複数の撮影装置の個々の推定姿勢を用いて、前記共通座標系の推定姿勢を求める手段と、
前記共通座標系の推定姿勢を用いて、前記共通座標系の揺れを軽減する補正変換を求める手段と、
前記補正変換を用いて、前記複数の撮影装置個々の揺れを軽減する補正変換を求める手段と、
前記複数の撮影装置の各々が撮影した撮影画像に対し、対応する前記補正変換を施す手段と、
変換後の複数の撮影画像を合成してパノラマ画像を生成する手段と、
を有することを特徴とする画像処理装置。
【請求項１１】
複数の撮影装置個々の座標系との位置関係が既知である共通座標系を設定する手段と、
前記複数の撮影装置の各々について姿勢を推定する手段と、
前記複数の撮影装置の個々の推定姿勢を用いて、前記共通座標系の推定姿勢を求める手段と、
前記共通座標系の推定姿勢を用いて、前記共通座標系の揺れを軽減する補正変換を求める手段と、
前記複数の撮像装置で撮影した複数の画像を合成してパノラマ画像を生成する手段と、
前記パノラマ画像に前記共通座標系の揺れを軽減する補正変換を施す手段と、
を有することを特徴とする画像処理装置。
【請求項１２】
コンピュータ装置を、請求項１０又は請求項１１に記載の画像処理装置として機能させるコンピュータプログラム。
【請求項１３】
請求項１２記載のコンピュータプログラムを格納したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の画像に対して画像処理を施す画像処理装置及び画像処理方法に関するものである。
【背景技術】
【０００２】
移動体に搭載された撮像装置によって現実空間を撮像し、撮像された実写画像データをもとに、撮像した現実空間を計算機を用いて仮想空間として表現する試みが提案されている（たとえば非特許文献１、非特許文献２などを参照）。
【０００３】
移動体に搭載された撮像装置によって撮像された実写画像データをもとに、撮像した現実空間を仮想空間として表現する手法としては、実写画像データをもとに現実空間の幾何形状モデルを再現し、従来のＣＧ技術で表現する手法が挙げられるが、モデルの正確性や精密度、写実性などの点で限界がある。一方、モデルを用いた再現を行わずに、実写画像を用いて仮想空間を表現するImage-Based Rendering（ＩＢＲ）技術が近年注目を集めている。ＩＢＲ技術は、複数の実写画像をもとに、任意の視点から見た画像を生成する技術である。ＩＢＲ技術は実写画像に基づいているために、写実的な仮想空間の表現が可能である。
【０００４】
このようなＩＢＲ技術を用いてウォークスルー可能な仮想空間を構築するためには、使用者の仮想空間内の位置に応じた画像の生成・呈示を行う必要がある。そのため、この種のシステムにおいては、実写画像データの各フレームと仮想空間内の位置とを対応付けて保存しておき、使用者の仮想空間における位置と視線方向に基づいて対応するフレームを取得し、これを再生する。
【０００５】
現実空間内の位置データを得る手法としては、カー・ナビゲーション・システムなどにも用いられているＧＰＳ（Global Positioning System）に代表される人工衛星を用いた測位システムを利用するのが一般的である。ＧＰＳなどから得られる位置データと、実写画像データを対応付ける手法としては、タイムコードを用いて対応付ける手法が提案されている（例えば、特許文献１参照）。この手法では、位置データに含まれる時刻データと、実写画像データの各フレームに付加したタイムコードとを対応付けることで、実写画像データの各フレームと位置データとの対応付けを行う。
【０００６】
このような仮想空間内のウォークスルーにおいては、使用者が各視点位置で所望の方向を見ることができるようにする。このため、各視点位置の画像を、再生時の画角よりも広い範囲をカバーするパノラマ実写画像で保存しておき、使用者の仮想空間における視点位置と視線方向とに基づいてパノラマ実写画像から再生すべき部分画像を切り出し、これを表示することが考えられる。
【０００７】
ここで、撮像の際に撮像装置が揺れていた場合には、パノラマ実写画像も揺れることになり、さらには表示する部分画像も揺れてしまう。この場合、特殊な防振装置やレールなどの物理的な手段によって撮像装置の振動を防止すると、撮影装置を自由に移動させることができないため、撮影条件が制約されてしまう。また、これらの物理的な手段を用いる方法では、既に撮影された映像の振動を軽減することは原理的に不可能である。
【０００８】
動画像処理を用いれば、既に撮影された映像の振動を軽減することも可能である。たとえば、画像中の特徴点を見付けてそれを複数フレームにわたって追跡すれば、追跡された特徴点の組を基に因子分解法などの幾何計算によって、カメラの位置・姿勢を推定することが可能である。従来、このようなカメラの位置・姿勢の推定は例えば市販のマッチムーブソフトを用いて行うことが可能であり、映像の各フレームにおけるカメラの位置・姿勢が推定できれば、求められたカメラの位置・姿勢の推定値を基に、映像の揺れを軽減させることも可能であった。
【０００９】
【特許文献１】特開平１１−１６８７５４号公報
【非特許文献１】遠藤、片山、田村、廣瀬、渡辺、谷川：“移動車輌搭載カメラを用いた都市空間の電脳映像化について”（信学ソサイエティ、PA-3-4、pp。276-277、1997年）
【非特許文献２】廣瀬、渡辺、谷川、遠藤、片山、田村：“移動車輌搭載カメラを用いた電脳映像都市空間の構築(2)−実写画像を用いた広域仮想空間の生成−”（日本バーチャルリアリティ学会第2回大会論文集、pp。67-70、1997年）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、マッチムーブソフトなどを用いた動画像処理において、複数台のカメラの位置・姿勢を同時に推定することはできなかった。また、動画像処理によって求められるカメラの位置・姿勢の推定値には誤差が含まれていた。そのため、複数台のカメラによって撮影した画像の振動を、カメラ毎に動画像処理によって軽減してから１枚のパノラマ画像に繋ぎ合わせると、画像同士の繋ぎ目の重なり具合がフレーム毎に変動してしまうという課題を有していた。
【００１１】
本発明は以上の問題に鑑みてなされたものであり、パノラマ画像の揺れを軽減させることを目的とする。
【課題を解決するための手段】
【００１２】
本発明の目的を達成するために、たとえば本発明の画像処理装置は以下の構成を備える。
すなわち、複数の画像を撮像した複数の撮像装置の位置・姿勢情報を推定する推定手段と、
前記複数の撮像装置の位置・姿勢情報を用いて仮想撮像装置の位置・姿勢情報を求め、該位置・姿勢情報を基に仮想撮像装置の揺れを軽減させる全体変換を算出する全体変換算出手段と、
前記全体変換を基に複数の撮像装置の揺れを軽減させる個別変換を算出する個別変換算出手段と、
前記複数の画像に対して前記個別変換を施し、該個別変換を施した複数の画像を繋ぎ合わせてパノラマ画像を作成する繋ぎ合わせ手段とを備える。
【００１３】
また、上述の目的は、本発明による画像処理方法であって、複数の撮影装置個々の座標系との位置関係が既知である共通座標系を設定し、
前記複数の撮影装置の各々について姿勢を推定し、
前記複数の撮影装置の個々の推定姿勢を用いて、前記共通座標系の推定姿勢を求め、
前記共通座標系の推定姿勢を用いて、前記共通座標系の揺れを軽減する補正変換を求め、
前記補正変換を用いて、前記複数の撮影装置個々の揺れを軽減する補正変換を求め、
前記複数の撮影装置の各々が撮影した撮影画像に対し、対応する前記補正変換を施し、
変換後の複数の撮影画像を合成してパノラマ画像を生成する、
ことを特徴とする画像処理方法によっても達成される。
【００１４】
また、上述の目的は、本発明による画像処理方法であって、複数の撮影装置個々の座標系との位置関係が既知である共通座標系を設定し、
前記複数の撮影装置の各々について姿勢を推定し、
前記複数の撮影装置の個々の推定姿勢を用いて、前記共通座標系の推定姿勢を求め、
前記共通座標系の推定姿勢を用いて、前記共通座標系の揺れを軽減する補正変換を求め、
前記複数の撮像装置で撮影した複数の画像を合成してパノラマ画像を生成し、
前記パノラマ画像に前記共通座標系の揺れを軽減する補正変換を施す、
ことを特徴とする画像処理方法によっても達成される。
【発明の効果】
【００１５】
本発明によれば、パノラマ映像の揺れを軽減させることができる。
【発明を実施するための最良の形態】
【００１６】
以下、添付図面に従って、本発明の好適な実施形態について説明する。なお、以下に示す実施形態で説明する画像処理方法は、例えば当該画像処理方法を実現するコンピュータプログラムをコンピュータ装置である画像処理装置で実行することによって実現することができる。
【００１７】
［第１の実施形態］
以下の実施形態では、複数のカメラの各々で撮像した画像をつなぎ合わせて作成されるパノラマ画像を１度に撮像できるような仮想的なパノラマカメラ（以下、仮想パノラマカメラと呼ぶ）を想定し、このような仮想パノラマカメラの位置・姿勢データを基に、パノラマ映像の作成時に揺れを軽減させる画像処理方法を示す。この方法を説明するために、４台のカメラを用いた例を図１に示す。
【００１８】
４台のカメラの相対位置・姿勢は予めカメラキャリブレーション等の手法で求めておく。そして、仮想パノラマカメラ座標系１１５を定義して、各カメラの座標系１１１〜１１４と仮想パノラマカメラ座標系１１５の間の変換を求めておく。座標系の間の変換は、例えば４×４行列によって表すことができる。
【００１９】
ここで、仮想パノラマカメラの座標系の原点は、仮想パノラマカメラのレンズ中心の位置となる。仮想パノラマカメラのレンズ中心位置は、たとえば、パノラマ画像の作成方法に応じて、各カメラのレンズ中心の重心位置や、ある１台のカメラのレンズ中心の位置などになる。なお、各カメラの位置データを画像処理に使用しない場合には、仮想パノラマカメラの原点は任意の位置としてもよい。
【００２０】
上述の各カメラを同期させて撮像した映像からパノラマ画像を作成する処理の過程で揺れを軽減させる処理を、図２に示す同処理のフローチャートを用いて説明する。
まずステップＳ２０１で、各カメラを同期させて撮像した映像を処理装置に入力する。
【００２１】
次にステップＳ２０２で、各カメラ（ｎ＝１〜４）の各フレーム（ｍ＝２〜Ｍ）における座標系からフレーム１における座標系への変換Ｈｎｍを、マッチムーブソフト等を用いて求める。ここでＭは映像の総フレーム数を表すものとする。ここでは全てのカメラの全てのフレームにおける変換を求める。
【００２２】
次にステップＳ２０３で、仮想パノラマカメラの位置・姿勢をカメラ毎に推定する。つまり、図３に示すように、Ｈｎｍを基に、仮想パノラマカメラのフレームｍにおける座標系からフレーム１における座標系への変換Ｈｖｍ＿ｎを求める。
【００２３】
具体的には、Ｈｖｍ＿ｎは
Ｈｖｍ＿ｎ＝Ｈｎ・Ｈｎｍ・Ｈｎ−１
によって求めることができる。ここでＨｎは、仮想パノラマカメラの座標系からカメラｎの座標系への変換を表す。ここで、各カメラが固定されていて、それらの相対位置・姿勢が変化しない場合には、Ｈｎも変化しないので、Ｈｎは予め求めておくことができる。
【００２４】
次にステップＳ２０４で、仮想パノラマカメラの揺れを軽減する変換を求める。そのために、まず初めに、ステップＳ２０３でカメラ台数分だけ求めた仮想パノラマカメラの位置・姿勢の推定値に基づいて、仮想パノラマカメラの位置・姿勢を推定する。つまり、図４に示すように、カメラｎ（ｎ＝１〜４）に対して求められたＨｖｍ＿ｎを基に、仮想パノラマカメラのフレームｍにおける座標系からフレーム１における座標系への変換Ｈｖｍを推定する。
【００２５】
具体的には、カメラｎ（ｎ＝１〜４）に対して求められたＨｖｍ＿ｎを、位置・姿勢を表すベクトルｘｖｍ＿ｎ＝（ｘｖｍ＿ｎ、ｙｖｍ＿ｎ、ｚｖｍ＿ｎ、θｖｍ＿ｎ、φｖｍ＿ｎ、ψｖｍ＿ｎ）の形式に変換し、それら４個のベクトルから１個のベクトルｘｖｍ＝（ｘｖｍ、ｙｖｍ、ｚｖｍ、θｖｍ、φｖｍ、ψｖｍ）を算出し、それを４×４行列Ｈｖｍの形式に変換する。
【００２６】
ここでｘｖｍは、例えばｘｖｍ＿１〜ｘｖｍ＿４の平均とすることができる。平均を取ることによって、ｘｖｍ＿１〜ｘｖｍ＿４のどれかの誤差が大きかった場合にも、ｘｖｍの誤差を小さくすることができる。
【００２７】
またｘｖｍを計算する際に、ある１つのカメラに対して求められた位置・姿勢ベクトルが、他のカメラに対して求められた位置・姿勢ベクトルと比較して、予め設定しておいた閾値以上に異なっている場合には、その１つのカメラに対して求められた位置・姿勢ベクトルを計算に用いないようにすることもできる。そうすることによって、ｘｖｍの誤差を小さくすることができる。
【００２８】
またｘｖｍは、ｘｖｍ＿１〜ｘｖｍ＿４の１つまたは幾つかの値だけを用いるようにすることもできる。１つまたは幾つかの値だけを用いる場合には、ｘｖｍ＿１〜ｘｖｍ＿４の全ての値を用いる場合と比較して、処理時間を減少させることができる。また、進行方向から離れた向きのカメラに対して求められた位置・姿勢ベクトルを用いなければ、ｘｖｍの誤差を小さくすることもできる。
【００２９】
またｘｖｍは、例えばｘｖｍ＿１〜ｘｖｍ＿４の重み付け平均とすることもできる。例えば、進行方向に沿って前方と後方のカメラに対して求められた位置・姿勢ベクトルの重みを大きくし、進行方向からカメラの向きが離れるに従って重みを小さくすればよい。なぜならば、進行方向と直交する方向の映像と比較して、進行方向に沿った方向の映像の方が、マッチムーブソフトによる推定結果が優れているという傾向が見られるからである。一方、ｘｖｍ＿１〜ｘｖｍ＿４の重心からの距離に応じた重み付け平均を取ることによって、ｘｖｍの誤差を小さくすることもできる。
【００３０】
ここで、ｘｖｍ＿１〜ｘｖｍ＿４の重み付け平均を取る処理は、重みの設定の仕方によっては、単なる平均とすることも、１つのカメラに対して求められた位置・姿勢ベクトルを計算に用いないようにすることも、１つまたは幾つかの値だけを用いるようにすることもできることは明らかである。
【００３１】
そして、求められたＨｖｍに基づき、仮想パノラマカメラの揺れを軽減する変換Ｈｖｍ＿ｓを求める。例えば、Ｈｖｍ＿ｓは位置・姿勢ベクトルｘ＝（０、０、０、−θｖｍ、−φｖｍ、−ψｖｍ）を４×４行列の形式に変換したものとすればよい。ここで、θはロール角、φはピッチ角、ψはヨー角を表すものとする。このような変換を施せば、フレームｍにおける仮想パノラマカメラの姿勢をフレーム１における姿勢と略同一とすることができる。なお、ｘ＝（０、０、０、−θｖｍ、−φｖｍ、０）としてヨー角を補正しないようにしてもよい。そうすれば、仮想パノラマカメラが旋回しながら移動している場合に、旋回の動きを除去してしまうことを防ぐことができる。
【００３２】
次にステップＳ２０５で、カメラｎ（ｎ＝１〜４）の揺れを軽減する変換Ｈｎｍ＿ｓを求める（図５）。具体的には、Ｈｎｍ＿ｓは
Ｈｎｍ＿ｓ＝Ｈｎ−１・Ｈｖｍ＿ｓ・Ｈｎ
によって求められる。
【００３３】
次にステップＳ２０６で、カメラｎ（ｎ＝１〜４）で撮像された画像に対して変換Ｈｎｍ＿ｓを施した画像を繋ぎ合わせて、揺れが軽減されたパノラマ画像を作成する。パノラマの繋ぎ合わせには公知の手法を用いることができる。
【００３４】
次にステップＳ２０７で、全てのフレームに対して処理が終わったかどうかを判定する。終わっていなかった場合には、フレーム番号を更新し、ステップＳ２０３から処理を繰り返す。全てのフレームに対して処理が終わっていた場合には、ステップＳ２０８に進む。
【００３５】
最後にステップＳ２０８で、作成したパノラマ画像を表示装置に表示する。
以上の処理により、仮想パノラマカメラの位置・姿勢データを基に、パノラマ映像の作成時に揺れを軽減させることができる。
【００３６】
ここで、以上の処理における全ての変換において、位置データを使わずに姿勢データのみを用いることもできる。
なお本実施形態ではカメラ４台で全周方向の情景を撮像していたが、これに限定されることなく、任意の台数のカメラでもよい。
【００３７】
［第２の実施形態］
本実施形態では、仮想パノラマカメラの位置・姿勢データを基にパノラマ映像の揺れを表示時に軽減させる画像処理方法を示す。第１の実施形態と同様に４台のカメラを用いた例について説明する。
【００３８】
図１に示す４台のカメラの相対位置・姿勢は予めカメラキャリブレーション等の手法で求めておく。そして、例えば各カメラのレンズ中心の重心を原点とする仮想パノラマカメラ座標系１１５を定義して、各カメラの座標系１１１〜１１４と仮想パノラマカメラ座標系１１５の間の変換を求めておく。座標系の間の変換は、例えば４×４行列によって表すことができる。
【００３９】
上述の各カメラを同期させて撮像した映像の揺れを表示時に軽減させる処理を、図６に示す同処理のフローチャートを用いて説明する。
まずステップＳ６０１で、各カメラを同期させて撮像した映像を処理装置に入力する。
【００４０】
次にステップＳ６０２で、各カメラ（ｎ＝１〜４）の各フレーム（ｍ＝２〜Ｍ）における座標系からフレーム１における座標系への変換Ｈｎｍを、マッチムーブソフト等を用いて求める。ここでＭは映像の総フレーム数を表すものとする。ここでは全てのカメラの全てのフレームにおける変換を求める。
【００４１】
次にステップＳ６０３で、仮想パノラマカメラの位置・姿勢をカメラ毎に推定する。つまり、図３に示すように、Ｈｎｍを基に、仮想パノラマカメラのフレーム１における座標系からフレームｍにおける座標系への変換Ｈｖｍ＿ｎを求める。変換Ｈｖｍ＿ｎは、第１の実施形態のステップＳ２０３において説明した方法を用いて求める。
【００４２】
次にステップＳ６０４で、仮想パノラマカメラの揺れを軽減する変換を求める。そのために、図４に示すように、カメラｎ（ｎ＝１〜４）に対して求められたＨｖｍ＿ｎを基に、仮想パノラマカメラのフレームｍにおける座標系からフレーム１における座標系への変換Ｈｖｍを推定し、そして、求められたＨｖｍに基づき、仮想パノラマカメラの揺れを軽減する変換Ｈｖｍ＿ｓを求める。変換Ｈｖｍ＿ｓは、第１の実施形態のステップＳ２０４において説明した方法を用いて求める。
【００４３】
次にステップＳ６０５で、全てのフレームに対して処理が終わったかどうかを判定する。終わっていなかった場合には、フレーム番号を更新し、ステップＳ６０３から処理を繰り返す。全てのフレームに対して処理が終わっていた場合には、ステップＳ６０７に進む。
【００４４】
一方ステップＳ６０６で、カメラｎ（ｎ＝１〜４）で撮像されて、処理装置に入力された画像を繋ぎ合わせて、パノラマ画像を作成する。
最後にステップＳ６０７で、フレームｍのパノラマ画像に対して仮想パノラマカメラの揺れを軽減する変換Ｈｖｍ＿ｓを施して、揺れた軽減されたパノラマ画像を表示装置に表示する。
【００４５】
以上の処理により、仮想パノラマカメラの位置・姿勢データを基に、パノラマ映像の揺れを表示時に軽減させることができる。
ここで、以上の処理における全ての変換において、位置データを使わずに姿勢データのみを用いることもできる。
【００４６】
なお本実施形態ではカメラ４台で全周方向の情景を撮像していたが、これに限定されることなく、任意の台数のカメラでもよい。
【００４７】
［第３の実施形態］
本実施形態では、複数のカメラの姿勢情報を基に計算した仮想パノラマカメラの姿勢情報を用いて、パノラマ映像の表示時に振動を軽減する画像処理方法を示す。
まず、本実施形態によるパノラマ映像生成システムについて説明する。図７は本実施形態によるパノラマ映像生成システムの機能構成を説明するブロック図である。本システムは、映像収集システム１１０と画像処理装置１とを含んで構成される。画像処理装置１は、撮影映像保存部１０、個別カメラ姿勢情報計算部２０、操作部３０、表示部４０、個別カメラ姿勢情報保存部５０、仮想パノラマカメラ姿勢計算部６０、仮想パノラマカメラ姿勢情報保存部７０、パノラマ映像生成部８０、パノラマ映像保存部９０、振動除去部１００を有する。
【００４８】
撮影映像保存部１０は、後で説明する映像収集システム１１０によって得られた実写映像を例えばハードディスクドライブ等の記憶装置に格納する。
個別カメラ姿勢情報計算部２０は、撮影映像保存部１０に格納された映像の各フレームの姿勢情報を計算する。処理の詳細は後で説明する。
操作部３０は、本システムのユーザがシステムに指示入力等を行うためのものであり、マウス、キーボード等の入力装置を備える。上述の個別カメラ姿勢情報計算部２０では、操作部３０からの操作入力に従って、表示部４０の表示を見ながら、カメラパラメータなどを設定する。
【００４９】
カメラ姿勢情報保存部５０は、上述の個別カメラ姿勢情報計算部２０で算出した各カメラの姿勢情報を格納する。
仮想パノラマカメラ姿勢情報計算部６０は、上述の個別カメラ姿勢情報保存部５０に格納された各カメラの姿勢情報を統合して仮想パノラマカメラの姿勢情報を計算する。処理の詳細は後で説明する。
仮想パノラマカメラ姿勢情報保存部７０は、上述の仮想パノラマカメラ姿勢計算部６０で算出した仮想パノラマカメラの姿勢情報を格納する。
【００５０】
パノラマ映像生成部８０は、撮影映像保存部１０に格納された同時刻の映像フレームを順次繋ぎ合わせて、パノラマ映像の生成処理を行う。処理の詳細は後で説明する。
パノラマ映像保存部９０は、上述のパノラマ映像生成部８０で生成したパノラマ映像を格納する。
振動除去部１００は、仮想パノラマカメラ姿勢情報保存部７０に格納された仮想パノラマカメラの姿勢情報を用いて、パノラマ映像保存部９０に格納されたパノラマ映像の振動を軽減し、表示部４０に表示する。
【００５１】
図８は、撮影映像保存部１０に保存される映像を収集するための映像収集システム１１０の構成例を示す図である。図８に示されるように、この映像収集システム１１０は、撮影部１１０１、記録部１１０２、キャプチャ部１１０３の３つの部分に分けられる。撮影部１１０１は周囲の情景を移動しながら撮影するのに用いられ、記録部１１０２は撮影部１１０１からの映像出力を記録するのに用いられ、キャプチャ部１１０３は収集された映像を画像処理装置１の撮影映像保存部１０に格納するのに用いられる。
【００５２】
ここで撮影部１１０１は、図９に示すように、Ｎ台（Ｎ≧２）のカメラ１１０１−１〜Ｎと同期信号発生部１１０４から成る。カメラ１１０１−１〜Ｎにはそれぞれ同期信号発生部１１０４からの外部同期信号を入力することが可能であり、本実施形態では、同期信号発生部１１０４より出力される外部同期信号を用いて、カメラ１１０１−１〜Ｎのシャッタータイミングを一致させている。カメラ１１０１−１〜Ｎはたとえば図１に示したように放射状に配置することができる。または、カメラ１１０１−１〜Ｎの視界を多角錐ミラーで反射させることによって、夫々の視点を一致させてもよい。いずれの場合も、カメラ１１０１−１〜Ｎはしっかりと固定し、夫々の相対位置・姿勢が変化しないようにする。
【００５３】
次に、画像処理装置１について説明する。図１０は、本実施形態による画像処理装置１のハードウェア構成例を示すブロック図である。図１０に示したハードウェア構成は市販されている通常のパーソナルコンピュータの構成と同等である。図１０において、例えばハードディスクに代表されるディスク４０５は撮影映像保存部１０を構成するものであり、図８〜図９に関連して説明した映像収集システム１１０によって得られた映像が記憶される。なお、ディスク４０５は上述の撮影映像保存部１０のみならず、図７に示したカメラ姿勢情報保存部５０、仮想パノラマカメラ姿勢情報保存部７０、パノラマ映像保存部９０をも構成するものである。
【００５４】
ＣＰＵ４０１は、ディスク４０５またはＲＯＭ４０６、または外部記憶装置（不図示）に保存されているプログラムを実行することにより、個別カメラ姿勢情報計算部２０、仮想パノラマカメラ姿勢情報計算部６０、パノラマ映像生成部８０として機能する。
ＣＰＵ４０１が表示コントローラ（ＣＲＴＣ）４０２に対して各種の表示指示を行うことにより、表示コントローラ４０２およびフレームバッファ４０３によって表示器（ＣＲＴ）４０４に所望の表示がなされる。なお、図では表示コントローラ４０２としてＣＲＴＣ、表示器４０４としてＣＲＴを示したが、表示器としては陰極線管に限らず、液晶表示器等を用いてもよいことはもちろんである。なお、ＣＲＴＣ４０２、フレームバッファ４０３及びＣＲＴ４０４は、図７の表示部４０を構成する。マウス４０８およびキーボード４０９およびジョイスティック４１０は、当該画像処理装置１へのユーザの操作入力を行うためのものであり、図７の操作部３０を構成する。
【００５５】
次に、画像処理装置１における処理の詳細を説明する。この方法を説明するために、Ｎ台のカメラを放射状に配置した場合の例を図１１に示す。
Ｎ台のカメラ１１０１−１〜Ｎの相対姿勢は予め既知のカメラキャリブレーションなどの手法で求めておく。そして、たとえば各カメラのレンズ中心の重心を原点とする仮想パノラマカメラ座標系５１０を定義して、各カメラのレンズ中心を原点とする座標系１１１１−１〜Ｎと仮想パノラマカメラ座標系５１０の間の変換を求めておく。座標系間の変換は、たとえば４×４行列によって表すことができる。
【００５６】
上述の各カメラを同期させて撮影した映像を基に、パノラマ映像の表示時に振動を軽減する処理の流れを、図１２に示す同処理のフローチャートを用いて説明する。
まずステップＳ１００で、各カメラ１１０１−１〜Ｎの姿勢情報を個別に計算する。処理の詳細は、後で、図１３に示す同処理のフローチャートを用いて説明する。
次にステップＳ１２０で、各カメラ１１０１−１〜Ｎの姿勢情報を基に仮想パノラマカメラの姿勢情報を計算する。処理の詳細は、後で、図１４に示す同処理のフローチャートを用いて説明する。
【００５７】
一方、ステップＳ１４０で、カメラ１１０１−１〜Ｎによって得られた映像の各フレームを繋ぎ合わせて、パノラマ映像を生成する。処理の詳細は、後で、図１５に示す同処理のフローチャートを用いて説明する。
最後にステップＳ１６０で、ステップＳ１２０で求めた仮想パノラマカメラの位置姿勢に基づき、ステップＳ１４０で生成したパノラマ映像の各フレームに対して仮想パノラマカメラの振動を軽減する変換を施して、振動が軽減されたパノラマ映像を表示装置に表示する。処理の詳細は、後で、図１６に示す同処理のフローチャートを用いて説明する。以上の処理により、パノラマ映像の表示時に振動を軽減することができる。
【００５８】
（個別カメラの姿勢情報の計算）
ここで、図１２のステップＳ１００における処理の詳細を、図１３に示す同処理のフローチャートを用いて説明する。これは個別カメラ姿勢情報計算部２０における処理の詳細の説明でもある。
まずステップＳ１００１において、カメラ番号を指す変数ｎを初期値「１」に設定する。
次にステップＳ１００２において、カメラ１１０１−ｎによって得られた映像を、撮影映像保存部１０より取得する。ここで、撮影部１１０１が、カメラ１１０１−ｎを光軸回りに略９０度回転（ロール）させて縦長の映像を撮影する構成である場合には、取得した映像を略９０度回転させることによってロールの角度を調整しておく。また、撮影部１１０１が、カメラ１１０１−ｎの視界を多角錐ミラーで反射させる構成である場合には、取得した映像を反転させておく等してミラーの影響を除去する。
【００５９】
ステップＳ１００３では、撮像素子のサイズや焦点距離など、カメラ１１０１−ｎの既知のカメラパラメータを入力する。
そしてステップＳ１００４では、カメラ１１０１−ｎの各フレームにおける姿勢情報を計算する。具体的には、各フレームｍ（ｍ＝２〜Ｍ）における座標系からフレーム１における座標系への変換Ｈｎｍを、マッチムーブソフトなどを用いて求める。ここでＭはカメラ１１０１−ｎによって撮影された映像の総フレーム数を表すものとする。なお、姿勢情報は変換Ｈｎｍから容易に計算することができるので、本実施形態では変換Ｈｎｍが姿勢情報を表すものとする。
【００６０】
そしてステップＳ１００５において、各フレームにおけるカメラの姿勢情報Ｈｎｍを、カメラ姿勢情報保存部５０に格納する。
ステップＳ１００６では、カメラ番号を指すｎに「１」を足す。ステップＳ１００７で、全てのカメラの映像に対して処理を行ったかをチェックし、処理を終えていない場合にはステップＳ１００２へ戻る。
以上の処理により、各カメラの各フレームにおける姿勢情報を個別に求めることができる。
【００６１】
（仮想パノラマカメラの姿勢情報の計算）
次に、ステップＳ１２０における処理の詳細を、図１４に示す同処理のフローチャートを用いて説明する。これは仮想パノラマカメラ姿勢情報計算部６０における処理の詳細の説明でもある。
まずステップＳ１２０１において、カメラ姿勢情報保存部５０から、各カメラの各フレームにおける姿勢情報Ｈｎｍを取得する。
【００６２】
次にステップＳ１２０２において、フレーム番号を指すｍを初期値「１」に設定し、そしてステップＳ１２０３において、カメラ番号を指すｎを初期値「１」に設定する。
ステップＳ１２０４では、仮想パノラマカメラの姿勢情報をカメラ毎に計算する。つまり、図３に示すように、Ｈｎｍを基に、仮想パノラマカメラのフレームｍにおける座標系からフレーム１における座標系への変換Ｈｖｍ＿ｎを求める。ここで、変換Ｈｖｍ＿ｎが仮想パノラマカメラの姿勢情報を表すものとする。
【００６３】
具体的には、Ｈｖｍ＿ｎは
Ｈｖｍ＿ｎ＝Ｈｎ・Ｈｎｍ・Ｈｎ−１
によって求めることができる。ここでＨｎは、カメラ１１０１−ｎの座標系から仮想パノラマカメラの座標系への変換を表す。ここで、各カメラが固定されていて、それらの相対姿勢が変化しない場合には、Ｈｎも変化しないので、Ｈｎは予め求めておくことができる。
【００６４】
ステップＳ１２０５では、各フレームにおける仮想パノラマカメラの姿勢情報Ｈｖｍを、仮想パノラマカメラ姿勢情報保存部７０に格納する。
ステップＳ１２０６では、カメラ番号を指すｎに「１」を足す。ステップＳ１２０７で、全てのカメラの画像に対して処理を行ったかをチェックし、処理を終えていない場合にはステップＳ１２０４へ戻る。
次にステップＳ１２０８で、仮想パノラマカメラの姿勢情報を統合する。具体的には、ステップＳ１２０４でカメラ台数分だけ求めた仮想パノラマカメラの姿勢情報に基づいて、仮想パノラマカメラの姿勢情報を計算する。つまり、図４に示すように、カメラ１１０１−１〜Ｎに対して求められたＨｖｍ＿ｎを基に、仮想パノラマカメラのフレームｍにおける座標系からフレーム１における座標系への変換Ｈｖｍを計算する。
【００６５】
より具体的には、カメラ１１０１−１〜Ｎに対して求められたＨｖｍ＿ｎを、姿勢情報を表すベクトルｘｖｍ＿ｎ＝（θｖｍ＿ｎ、φｖｍ＿ｎ、ψｖｍ＿ｎ）の形式に変換し、それらＮ個のベクトルから１個のベクトルｘｖｍ＝（θｖｍ、φｖｍ、ψｖｍ）を算出し、それを４×４の回転行列Ｈｖｍの形式に変換する。ここで、θｖｍ＿ｎはロール角、φｖｍ＿ｎはピッチ角、ψｖｍ＿ｎはヨー角を表すものとする。
【００６６】
なお、たとえば左手座標系では、変換Ｈｖｍ＿ｎからθｖｍ＿ｎ、φｖｍ＿ｎ、ψｖｍ＿ｎを求める計算式は、Ｈｖｍ＿ｎの各要素が
【００６７】
【数１】
2004274701.tif 000003
と表されるとすると、
【００６８】
【数２】
2004274701.tif 000004
となる。また、４×４の回転行列Ｈｖｍは、
【００６９】
【数３】
2004274701.tif 000005
と表される。
【００７０】
ここでｘｖｍは、たとえばｘｖｍ＿１〜ｘｖｍ＿Ｎの平均とすることができる。この場合、ｘｖｍは、
【数４】
2004274701.tif 000006
となる。平均を取ることによって、ｘｖｍ＿１〜ｘｖｍ＿Ｎの何れかの誤差が大きかった場合にも、ｘｖｍの誤差を小さくすることができる。
【００７１】
一方、単純にｘｖｍ＿１〜ｘｖｍ＿Ｎの値の平均を取るのではなく、信頼度に応じた計算によってｘｖｍを算出することにより、さらにｘｖｍの誤差を小さくすることもできる。
【００７２】
以下、いくつかの例を説明する。
ｘｖｍ＿ｎ（ｎ＝１〜Ｎ）の値は、たとえば、画像中の特徴点を見付けてそれを複数フレームにわたって追跡し、追跡された特徴点のセットを基に因子分解法などの幾何計算を行うことによって求めることができる。その場合、ｘｖｍ＿ｎの値の信頼度は、特徴点を平均何フレームにわたって追跡できたかに依存する。つまり、ｘｖｍ＿ｎの信頼度ｒｎは、平均追跡可能フレーム数をｍｎとすると、  
ｒｎ＝ｆ（ｍｎ）
によって表すことができる。ここでｆは何らかの関数を表すものとする。
【００７３】
たとえば単純に比例の関係にある場合には、
ｒｎ＝ｍｎ
によって表すことができる。このとき、平均追跡可能フレーム数がある閾値（たとえば１０）未満ならば誤差が許容できないとすると、
ｒｎ＜１０
の場合にはｘｖｍ＿ｎをｘｖｍの計算に使わないようにすることにより、ｘｖｍの誤差を小さくすることができる。
【００７４】
またｘｖｍは、たとえばｘｖｍ＿１〜ｘｖｍ＿Ｎの信頼度に応じた重み付け平均とすることにより、さらに正確に推定することもできる。  この場合、ｘｖｍは、
【数５】
2004274701.tif 000007
となる。
【００７５】
ｘｖｍ＿ｎの信頼度ｒｎは、平均追跡可能フレーム数ｍｎを基に計算するのではなく、映像収集システム１１０を構成する各カメラの向きに応じて予め計算しておくこともできる。ここで、映像収集システム１１０の進行方向とカメラの光軸方向のなす角が９０度に近い場合には、画面上での特徴点の移動量が大きくなるため、平均追跡可能フレーム数が少なくなる傾向がある。そこで、進行方向または進行逆方向とカメラの光軸方向のなす角が大きいほど信頼度ｒｎを予め小さな値に設定しておいてもよい。
【００７６】
たとえば、進行方向のベクトルをｖｓ、カメラの光軸方向のベクトルをｖｃとすると、信頼度ｒｎは、それらの内積を用いて、
【数６】
2004274701.tif 000008
と表すことができる。ただし、ｒｎ０はある定数を表す。
【００７７】
ここで、各カメラに対応する信頼度は、映像収集システム１１０の中心から点対称となるように設定することができる。なお、映像収集システム１１０を自動車に搭載して左車線を走行した場合には、進行方向左側のカメラの方が右側のカメラよりも対象物までの距離が近いため、特徴点を追跡できる平均フレーム数ｍが少なくなる。そこで、進行方向左側のカメラの信頼度を右側よりも低く設定してもよい。
【００７８】
また、進行方向とのなす角が９０度に近いカメラに対応するｘｖｍ＿ｎの値をそもそも計算しないようにしてもよい。そうすることにより、計算時間を減少させつつ、ｘｖｍの誤差を小さくすることができる。
なお、ｘｖｍ＿１〜ｘｖｍ＿Ｎの重み付け平均を取る処理は、重みとなる信頼度ｒｎの設定の仕方によっては、単なる平均とすることも、いくつかの値を用いないようにすることもできることは明らかである。つまり、全てのｎに対してｒｎを同一にすれば、単なる平均となり、あるｎに対してｒｎを０にすれば、対応するｘｖｍ＿ｎの値は使用されないことになる。
【００７９】
ここで、図１４に示すフローチャートの説明に戻る。ステップＳ１２０９では、フレーム番号を指すｍに「１」を足す。ステップＳ１２１０で、全てのフレーム画像に対して処理を行ったかをチェックし、処理を終えていない場合にはステップＳ１２０３へ戻る。
以上の処理により、仮想パノラマカメラの各フレームにおける姿勢情報を求めることができる。
【００８０】
（パノラマ画像の生成）
次に、図１２のステップＳ１４０におけるパノラマ画像生成処理例の詳細を、図１５に示す同処理のフローチャートを用いて説明する。これはパノラマ映像生成部８０における処理の詳細の説明でもある。本処理では、連続する複数のフレームに対して以下の処理を順次行うことにより、パノラマ映像を生成する。
【００８１】
まずステップＳ１４０１において、不図示のパラメータ保存部から画像修正やパノラマ画像生成に用いる各種パラメータを読み込み、ステップＳ１４０２において、カメラ番号を指すｎを初期値「１」に設定する。
次にステップＳ１４０３において、カメラ１１０１−ｎによって得られた映像のフレームを、撮影映像保存部１０より取得する。ここで、上述したように、撮影部１１０１が、カメラ１１０１−ｎを光軸回りに略９０度回転させて縦長の映像を撮影する構成である場合には、取得した画像を９０度回転させることによってロールの角度を調整しておく。また、撮影部１１０１が、カメラ１１０１−ｎの視界を多角錐ミラーで反射させる構成である場合には、取得した画像を反転させておく。
【００８２】
そしてステップＳ１４０４では読み込んだ画像の縦横比を補正し、ステップＳ１４０５ではレンズの歪曲を補正する。本実施形態では樽型歪曲を修正する。さらにステップＳ１４０６で画像面の回転を行い、ステップＳ１４０７では、不図示のパラメータ保存部から読み込んだ画角に応じて、画像を平面から円筒面に投影し、変換画像を生成する。
ステップＳ１４０８では、カメラの番号を指すｎに「１」を足す。ステップＳ１４０９で、全てのカメラの画像に対して処理を行ったかをチェックし、処理を終えていない場合にはステップＳ１４０３へ戻る。
【００８３】
最後にステップＳ１４１０において、不図示のパラメータ保存部から読み込んだ上下左右シフト量や混合割合などを用いて、Ｎ枚（カメラ台数分）の変換画像を繋ぎ合わせる。そしてステップＳ１４１１で、生成されたパノラマ画像を、パノラマ映像保存部９０に格納する。
以上の処理により、各種パラメータに基づいて、パノラマ映像を生成することができる。
【００８４】
（振動の影響を軽減したパノラマ画像生成・表示）
次に、図１２のステップＳ１６０における処理例の詳細を、図１６に示す同処理のフローチャートを用いて説明する。これは振動除去部１００における処理の詳細の説明でもある。
まずステップＳ１６０１において、仮想パノラマカメラ姿勢情報保存部７０から、仮想パノラマカメラの各フレームにおける姿勢情報Ｈｖｍを取得する。
【００８５】
次にステップＳ１６０２において、操作部３０の操作に応じて、フレーム番号を指すｍを設定し、ステップＳ１６０３において、パノラマ映像のフレームｍをパノラマ映像保存部９０より取得する。
そしてステップＳ１６０４において、取得したパノラマ画像に対して、仮想パノラマカメラの振動を軽減する変換を施して、振動が軽減されたパノラマ画像を表示部４０に表示する。
【００８６】
ここで、仮想パノラマカメラの振動を軽減する変換Ｈｖｍ＿ｓは、ステップＳ１６０１で取得したＨｖｍから求めることができる。たとえばＨｖｍ＿ｓは、Ｈｖｍから求められるロール角θ、ピッチ角φ、ヨー角ψを基に、姿勢ベクトルｘｖｍ＝（−θｖｍ、−φｖｍ、−ψｖｍ）を構成し、それを４×４の回転行列の形式で表したものとすればよい。このような変換を施せば、フレームｍにおける仮想パノラマカメラの姿勢をフレーム１における姿勢と略同一とすることができる。なお、ｘｖｍ＝（−θｖｍ、−φｖｍ、０）としてヨー角を補正しないようにしてもよい。そうすれば、画像収集システム１１０が旋回しながら移動していた場合に、振動軽減処理によって旋回の動きを除去してしまうことを防ぐことができる。
【００８７】
最後にステップＳ１６０５で、表示処理を終了するかどうかを判定する。終了しない場合には、ステップＳ１６０２から処理を繰り返す。
以上の処理により、振動が軽減されたパノラマ映像を表示することができる。
以上のように、第３の実施形態によれば、複数のカメラの姿勢情報を基に計算した仮想パノラマカメラの姿勢情報を用いて、パノラマ映像の表示時に振動を軽減することができる。
【００８８】
［第４の実施形態］
第３の実施形態では、姿勢情報がロール角、ピッチ角、ヨー角の３つの方位情報から構成される場合について説明した。本実施形態では、姿勢情報に、３つの方位情報に加えて３次元の位置情報も含まれる場合について説明する。
【００８９】
本実施形態における、仮想パノラマカメラ姿勢情報計算部６０における処理の流れは、図１４に示す、第３の実施形態におけるフローチャートと同一である。ただし、ステップＳ１２０８における、仮想パノラマカメラの姿勢情報の統合方法が異なる。
本実施形態では、カメラ１１０１−１〜Ｎに対して求められたＨｖｍ＿ｎは、姿勢情報を表すベクトルｘｖｍ＿ｎ＝（Ｘｖｍ＿ｎ、Ｙｖｍ＿ｎ、Ｚｖｍ＿ｎ、θｖｍ＿ｎ、φｖｍ＿ｎ、ψｖｍ＿ｎ）の形式に変換し、それらＮ個のベクトルから１個のベクトルｘｖｍ＝（Ｘｖｍ、Ｙｖｍ、Ｚｖｍ、θｖｍ、φｖｍ、ψｖｍ）を算出し、それを４×４行列Ｈｖｍの形式に変換したものとすればよい。
【００９０】
なお、たとえば左手座標系では、変換Ｈｖｍ＿ｎからＸｖｍ＿ｎ、Ｙｖｍ＿ｎ、Ｚｖｍ＿ｎ、θｖｍ＿ｎ、φｖｍ＿ｎ、ψｖｍ＿ｎを求める計算式は、Ｈｖｍ＿ｎの各要素が
【００９１】
【数７】
2004274701.tif 000009
と表されるとすると、
【００９２】
【数８】
2004274701.tif 000010
【００９３】
となる。また、行列Ｈｖｍは、 
【００９４】
【数９】
2004274701.tif 000011
となる。
【００９５】
ここで、Ｎ個のベクトルから１個のベクトルｘｖｍを算出する方法は、第３の実施形態で説明した方法と同一である。
また、本実施形態における、振動除去部１００における処理の流れは、図１６に示す、第３の実施形態におけるフローチャートと同一である。ただし、ステップＳ１６０４における、仮想パノラマカメラの振動を軽減する変換Ｈｖｍ＿ｓの算出方法が異なる。
【００９６】
本実施形態では、Ｈｖｍ＿ｓは、Ｈｖｍから求められる座標Ｘｖｍ、Ｙｖｍ、Ｚｖｍ、および、ロール角θｖｍ、ピッチ角φｖｍ、ヨー角ψｖｍを基に、姿勢ベクトルｘｖｍ＝（−Ｘｖｍ、−Ｙｖｍ、−Ｚｖｍ、−θｖｍ、−φｖｍ、−ψｖｍ）を構成し、それを４×４行列の形式で表したものとすればよい。なお、ｘｖｍ＝（−Ｘｖｍ、−Ｙｖｍ、−Ｚｖｍ、−θｖｍ、−φｖｍ、０）としてヨー角を補正しないようにしてもよい。
以上のように、第４の実施形態によれば、姿勢情報に３次元の位置情報も含まれる場合にも、パノラマ映像の表示時に振動を軽減することができる。
【００９７】
［第５の実施形態］
本実施形態では、複数のカメラの姿勢情報を基に仮想パノラマカメラの姿勢情報を計算し、それを基に複数のカメラの姿勢情報を再計算した結果を用いて、パノラマ映像の生成時に振動を軽減する画像処理方法を示す。
【００９８】
まず、本実施形態によるパノラマ映像生成システムについて説明する。図１７は本実施形態によるパノラマ映像生成システムの機能構成を説明するブロック図である。本システムは、映像収集システム１１０と画像処理装置２とを含んで構成される。画像処理装置２は、撮影映像保存部２１０、個別カメラ姿勢情報計算部２２０、操作部２３０、表示部２４０、個別カメラ姿勢情報保存部２５０、仮想パノラマカメラ姿勢情報計算部２６０、仮想パノラマカメラ姿勢情報保存部２７０、連動カメラ姿勢情報計算部２８０、連動カメラ姿勢情報保存部２９０、除振パノラマ映像生成部３００、除振パノラマ映像保存部３１０を有する。
【００９９】
ここで、撮影映像保存部２１０、個別カメラ姿勢情報計算部２２０、操作部２３０、表示部２４０、個別カメラ姿勢情報保存部２５０、仮想パノラマカメラ姿勢情報計算部２６０、仮想パノラマカメラ姿勢情報保存部２７０の構成は、夫々、第３の実施形態における撮影映像保存部１０、個別カメラ姿勢情報計算部２０、操作部３０、表示部４０、個別カメラ姿勢情報保存部５０、仮想パノラマカメラ姿勢情報計算部６０、仮想パノラマカメラ姿勢情報保存部７０の構成と同一である。
【０１００】
連動カメラ姿勢情報計算部２８０は、仮想パノラマカメラ姿勢情報計算部２６０の計算結果を基に、各カメラの姿勢情報を再計算する。処理の詳細は後で説明する。
連動カメラ姿勢情報保存部２９０は、上述の連動カメラ姿勢情報計算部２８０で算出した各カメラの姿勢情報を格納する。
除振パノラマ映像生成部３００は、撮影映像保存部２１０に格納された映像を振動軽減してから繋ぎ合わせることにより、振動が軽減されたパノラマ映像の生成処理を行う。処理の詳細は後で説明する。
除振パノラマ映像保存部３１０は、上述の除振パノラマ映像生成部３００で生成した、振動が軽減されたパノラマ映像を格納する。
【０１０１】
次に、画像処理装置２について説明する。本実施形態による画像処理装置２は、図１０に示す、第３の実施形態による画像処理装置１のハードウェア構成と同一構成により実現できる。ただし、個々の構成の一部が異なる。
ディスク４０５は上述の撮影映像保存部２１０のみならず、図１７に示した個別カメラ姿勢情報保存部２５０、仮想パノラマカメラ姿勢情報保存部２７０、連動カメラ姿勢情報保存部２９０、除振パノラマ映像保存部３１０をも構成するものである。
【０１０２】
ＣＰＵ４０１は、個別カメラ姿勢情報計算部２２０、仮想パノラマカメラ姿勢情報計算部２６０、連動カメラ姿勢情報計算部２８０、除振パノラマ映像生成部３００として機能する。
ＣＲＴＣ４０２、フレームバッファ４０３及びＣＲＴ４０４は、上述の表示部２４０を構成する。マウス４０８およびキーボード４０９は、当該画像処理装置２へのユーザの操作入力を行うためのものであり、上述の操作部２３０を構成する。
【０１０３】
次に、画像処理装置２における処理の詳細を説明する。第３の実施形態と同様に、図１１のようにＮ台のカメラを放射状に配置した場合について説明する。
上述の各カメラを同期させて撮影した映像の振動を軽減してからパノラマ映像を生成する処理を、図１８に示す同処理のフローチャートを用いて説明する。
まずステップＳ２００で、各カメラの姿勢情報を個別に計算する。処理の内容は、第３の実施形態で図１３のフローチャートを用いて説明した処理の内容と同一である。
【０１０４】
次にステップＳ２２０で、各カメラの姿勢情報を基に仮想パノラマカメラの姿勢情報を計算する。処理の内容は、第３の実施形態で図１４のフローチャートを用いて説明した処理の内容と同一である。
次にステップＳ２４０で、仮想パノラマカメラの姿勢情報を基に、各カメラの姿勢情報を再計算する。処理の詳細は、後で、図１９に示す同処理のフローチャートを用いて説明する。
【０１０５】
次にステップＳ２６０で、カメラ１１０１−１〜Ｎによって得られた映像の各フレームを振動軽減しながら繋ぎ合わせて、パノラマ映像を生成する。処理の詳細は、後で、図２０に示す同処理のフローチャートを用いて説明する。以上の処理により、パノラマ映像の生成時に振動を軽減することができる。
【０１０６】
（連動カメラ姿勢情報計算処理）
次に、図１８のステップＳ２４０における連動カメラ姿勢情報計算処理例の詳細を、図１９に示す同処理のフローチャートを用いて説明する。これは連動カメラ姿勢情報計算部２８０における処理の詳細の説明でもある。
まずステップＳ２４０１において、仮想パノラマカメラ姿勢情報保存部２７０から、仮想パノラマカメラの各フレームにおける姿勢情報Ｈｖｍを取得する。
次にステップＳ２４０２において、フレーム番号を指すｍを初期値「１」に設定する。そしてステップＳ２４０３において、仮想パノラマカメラの振動を軽減する変換Ｈｖｍ＿ｓをＨｖｍから求める。
【０１０７】
たとえばＨｖｍ＿ｓは、Ｈｖｍから求められるロール角θ、ピッチ角φ、ヨー角ψを基に、姿勢ベクトルｘｖｍ＝（−θｖｍ、−φｖｍ、−ψｖｍ）を構成し、それを４×４の回転行列の形式で表したものとすればよい。このような変換を施せば、フレームｍにおける仮想パノラマカメラの姿勢をフレーム１における姿勢と略同一とすることができる。なお、ｘｖｍ＝（−θｖｍ、−φｖｍ、０）としてヨー角を補正しないようにしてもよい。そうすれば、画像収集システムが旋回しながら移動していた場合に、振動軽減処理によって旋回の動きを除去してしまうことを防ぐことができる。
【０１０８】
次にステップＳ２４０４において、カメラ番号を指すｎを初期値「１」に設定する。そしてステップＳ２４０５において、カメラ１１０１−ｎの振動を軽減する変換Ｈｎｍ＿ｓを求める（図５参照）。具体的には、Ｈｎｍ＿ｓは
Ｈｎｍ＿ｓ＝Ｈｎ−１・Ｈｖｍ＿ｓ・Ｈｎ
によって求めることができる。ここで、Ｈｎｍ＿ｓを基にカメラ１１０１−ｎの姿勢情報を求めることができるので、本実施形態ではＨｎｍ＿ｓがカメラ１１０１−ｎの姿勢情報を表すものとする。
【０１０９】
ステップＳ２４０６では、算出したカメラの姿勢情報Ｈｎｍ＿ｓを、連動カメラ姿勢情報保存部２９０に格納する。
ステップＳ２４０７では、カメラ番号を指すｎに「１」を足す。ステップＳ２４０８で、全てのカメラの画像に対して処理を行ったかをチェックし、処理を終えていない場合にはステップＳ２４０５へ戻る。
【０１１０】
ステップＳ２４０９では、フレーム番号を指すｍに「１」を足す。ステップＳ２４１０で、全てのフレーム画像に対して処理を行ったかをチェックし、処理を終えていない場合にはステップＳ２４０３へ戻る。以上の処理により、各カメラの各フレームにおける姿勢情報を求めることができる。
【０１１１】
（振動の影響を軽減したパノラマ画像生成・表示）
次に、図１８のステップＳ２６０における処理例の詳細を、図２０に示す同処理のフローチャートを用いて説明する。これは除振パノラマ映像生成部３００における処理の詳細の説明でもある。本処理では、連続する複数のフレームに対して以下の処理を順次行うことにより、振動が軽減されたパノラマ映像を生成する。
【０１１２】
まずステップＳ２６０１において、不図示のパラメータ保存部から画像修正やパノラマ画像生成に用いる各種パラメータを読み込み、ステップＳ２６０２において、連動カメラ姿勢情報保存部２９０から、各カメラの各フレームにおける姿勢情報を取得する。そしてステップＳ２６０３において、カメラの番号を指すｎを初期値「１」に設定する。
【０１１３】
次にステップＳ２６０４において、カメラ１１０１−ｎによって得られた映像のフレームを、撮影映像保存部２１０より取得する。ここで、上述したように、撮影部１１０１が、カメラ１１０１−ｎを光軸回りに略９０度回転させて縦長の映像を撮影する構成である場合には、取得した画像を９０度回転させることによってロールの角度を調整しておく。また、撮影部１１０１が、カメラ１１０１−ｎの視界を多角錐ミラーで反射させる構成である場合には、取得した画像を反転させておく。
【０１１４】
そしてステップＳ２６０５では読み込んだ画像の縦横比を補正し、ステップＳ２６０６ではレンズの歪曲を補正する。本実施形態では樽型歪曲を修正する。
ステップ２６０７では、上記の画像に対して、カメラ１１０１−ｎの振動を軽減する変換Ｈｎｍ＿ｓを施して、振動を軽減する。
さらにステップＳ２６０８で画像面の回転を行い、ステップＳ２６０９では、不図示のパラメータ保存部から読み込んだ画角に応じて、画像を平面から円筒面に投影し、変換画像を生成する。
【０１１５】
ステップＳ２６１０では、カメラ番号を指すｎに「１」を足す。ステップＳ２６１１で、全てのカメラの画像に対して処理を行ったかをチェックし、処理を終えていない場合にはステップＳ２６０４へ戻る。
最後にステップＳ２６１２において、不図示のパラメータ保存部から読み込んだ上下左右シフト量と混合割合を用いて、Ｎ枚（カメラ台数分）の変換画像を繋ぎ合わせる。そしてステップＳ２６１３で生成された、振動が軽減されたパノラマ画像を、除振パノラマ映像保存部３１０に格納する。
【０１１６】
以上の処理により、振動が軽減されたパノラマ映像を生成することができる。
以上のように、第５の実施形態によれば、複数のカメラの姿勢情報を基に仮想パノラマカメラの姿勢情報を計算し、それを基に複数のカメラの姿勢情報を再計算した結果を用いて、パノラマ映像の生成時に振動を軽減することができる。
【０１１７】
［第６の実施形態］
第５の実施形態では、姿勢情報がロール角、ピッチ角、ヨー角の３つの方位情報から構成される場合について説明した。本実施形態では、姿勢情報に、３つの方位情報に加えて３次元の位置情報も含まれる場合について説明する。
本実施形態における、仮想パノラマカメラ姿勢情報計算部２６０における処理の流れは、図１４に示す、第３の実施形態におけるフローチャートと同一である。ただし、ステップＳ１２０８における、仮想パノラマカメラの姿勢情報の統合方法が異なり、第４の実施形態において説明した方法と同一となる。
【０１１８】
また、本実施形態における連動カメラ姿勢情報計算部２８０における処理の流れは、図１９に示す、第５の実施形態におけるフローチャートと同一である。ただし、ステップＳ２４０３における、仮想パノラマカメラの振動を軽減する変換Ｈｖｍ＿ｓの算出方法が異なり、第４の実施形態において説明した方法と同一となる。
以上のように、第６の実施形態によれば、姿勢情報に３次元の位置情報も含まれる場合にも、パノラマ映像の生成時に振動を軽減することができる。
【０１１９】
［第７の実施形態］
第１〜第６の実施形態では、カメラ（仮想パノラマカメラまたは各カメラ）の姿勢情報を用いて振動の軽減を行っていた。本実施形態では、カメラの姿勢情報に変換を施してから振動の軽減を行う場合について説明する。
【０１２０】
たとえば、映像の第１フレームと最終フレームでは所望の姿勢となるように、カメラ（仮想パノラマカメラまたは各カメラ）の姿勢情報を変換してもよい。その際、姿勢を指定していないフレームの姿勢情報は、変換量が線形に変化するように変換すればよい。たとえば、カメラのロール角が第１フレームではθ１、最終フレームではθＭであり、所望のロール角が第１フレームではθ１’、最終フレームではθＭ’である場合に、フレームｍ（ｍ＝１〜Ｍ）における変換後のロール角θｍ’は、変換前のロール角をθｍとすると、
【０１２１】
【数１０】
2004274701.tif 000012
と表すことができる。
【０１２２】
ロール角以外の要素に関しても同様の計算式を用いればよい。なお、途中のいくつかのフレームでも所望の姿勢となるようにカメラの姿勢情報を変換してもよい。このように変換することにより、たとえば他のパノラマ映像への分岐が存在した場合に、映像が切り替わる際の姿勢の変化を少なくすることができる。
【０１２３】
また、振動軽減の際の姿勢の変換量（θｍ’−θｍ）に上限を設けてもよい。そうすることにより、姿勢が大きく変化した場合に、映像が表示されなくなる領域が大きくなり過ぎることを防止できる。たとえば、変換量に上限が無ければフレームｍにおけるロール角θｍが角θｍ’に変換されるような場合に、ロール角の変換量の上限を５度に設定すると、上限付きの変換値θｍ” は、
【０１２４】
【数１１】
2004274701.tif 000013
と表すことができる。または、変換量の最大値が例えば１２度だった場合に、上限付きの変換値θｍ” を、
【０１２５】
【数１２】
2004274701.tif 000014
によって求めてもよい。もちろん、ロール角以外の要素も同様の計算式によって求めることができる。
【０１２６】
上と同様の目的を達成するために、振動の全てを軽減するのではなく、振動の高周波成分のみを軽減するようにしてもよい。たとえば、高周波成分は、求められた変換量を、その前後数フレームの変換量の加重平均で除すことによって算出することができる。
以上のように、第７の実施形態によれば、各カメラの姿勢情報を変換してから振動の軽減を行うことにより、パノラマ映像の表示品質を改善することができる。
【０１２７】
［他の実施形態］
上述の実施形態において説明した画像処理方法は、１つの機器から構成される処理装置によって実現しても良いし、複数の機器から構成されるシステムによって実現しても良い。
【０１２８】
尚、前述した実施形態の機能を実現するソフトウェアのプログラムを、記録媒体から直接、或いは有線／無線通信を用いて当該プログラムを実行可能なコンピュータを有するシステム又は装置に供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムを実行することによって同等の機能が達成される場合も本発明に含む。
【０１２９】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータに供給、インストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明の機能処理を実現するためのコンピュータプログラム自体も本発明に含まれる。
【０１３０】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１３１】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、磁気テープ等の磁気記録媒体、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ等の光／光磁気記憶媒体、不揮発性の半導体メモリなどがある。
【０１３２】
有線／無線通信を用いたプログラムの供給方法としては、コンピュータネットワーク上のサーバに本発明を形成するコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイル等、クライアントコンピュータ上で本発明を形成するコンピュータプログラムとなりうるデータファイル（プログラムデータファイル）を記憶し、接続のあったクライアントコンピュータにプログラムデータファイルをダウンロードする方法などが挙げられる。この場合、プログラムデータファイルを複数のセグメントファイルに分割し、セグメントファイルを異なるサーバに配置することも可能である。
【０１３３】
つまり、本発明の機能処理をコンピュータで実現するためのプログラムデータファイルを複数のユーザに対してダウンロードさせるサーバ装置も本発明に含む。
【０１３４】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件を満たしたユーザに対して暗号化を解く鍵情報を、例えばインターネットを介してホームページからダウンロードさせることによって供給し、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１３５】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【０１３６】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【図面の簡単な説明】
【０１３７】
【図１】パノラマ画像の撮像用に４台のカメラを用いた例を示す図である。
【図２】第１の実施形態における、仮想パノラマカメラの位置・姿勢データを基にパノラマ映像の作成時に揺れを軽減させる処理を説明するフローチャートである。
【図３】仮想パノラマカメラの位置・姿勢をカメラ毎に推定する変換を説明する図である。
【図４】カメラ台数分だけ求めた仮想パノラマカメラの位置・姿勢の推定値に基づいて、仮想パノラマカメラの位置・姿勢を推定する変換を説明する図である。
【図５】カメラの揺れを軽減させる変換を説明する図である。
【図６】第２の実施形態における、仮想パノラマカメラの位置・姿勢データを基にパノラマ映像の揺れを表示時に軽減させる処理を説明するフローチャートである。
【図７】第３の実施形態によるパノラマ映像生成システムの機能構成を説明するブロック図である。
【図８】撮影映像保存部１０に保存される映像を収集するための映像データ収集システム１１０の構成例を示す図である。
【図９】撮影部１１０１の構成を詳細に示すブロック図である。
【図１０】画像処理装置１のハードウェア構成例を示すブロック図である。
【図１１】パノラマ映像の撮影用にカメラを放射状に配置した例を示す図である。
【図１２】パノラマ映像の表示時に振動を軽減する処理を説明するフローチャートである。
【図１３】個別カメラ姿勢情報計算部２０における処理を説明するフローチャートである。
【図１４】仮想パノラマカメラ姿勢情報計算部６０における処理を説明するフローチャートである。
【図１５】パノラマ映像生成部８０における処理を説明するフローチャートである。
【図１６】振動除去部１００における処理を説明するフローチャートである。
【図１７】第５の実施形態によるパノラマ映像生成システムの機能構成を説明するブロック図である。
【図１８】パノラマ映像の生成時に振動を軽減する処理を説明するフローチャートである。
【図１９】連動カメラ姿勢情報計算部２８０における処理を説明するフローチャートである。
【図２０】除振パノラマ映像生成部３００における処理を説明するフローチャートである。
【図１】
2004274701.tif 000015
【図２】
2004274701.tif 000016
【図３】
2004274701.tif 000017
【図４】
2004274701.tif 000018
【図５】
2004274701.tif 000019
【図６】
2004274701.tif 000020
【図７】
2004274701.tif 000021
【図８】
2004274701.tif 000022
【図９】
2004274701.tif 000023
【図１０】
2004274701.tif 000024
【図１１】
2004274701.tif 000025
【図１２】
2004274701.tif 000026
【図１３】
2004274701.tif 000027
【図１４】
2004274701.tif 000028
【図１５】
2004274701.tif 000029
【図１６】
2004274701.tif 000030
【図１７】
2004274701.tif 000031
【図１８】
2004274701.tif 000032
【図１９】
2004274701.tif 000033
【図２０】
2004274701.tif 000034
【手続補正書】
【提出日】平成16年6月1日(2004.6.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の撮影装置個々の座標系との間の変換が可能である共通座標系を設定し、
前記複数の撮影装置のうちの一以上の各々について姿勢を推定し、
前記複数の撮影装置のうちの一以上の推定姿勢を用いて、前記共通座標系の推定姿勢を求め、
前記共通座標系の推定姿勢を用いて、前記共通座標系の揺れを軽減する補正変換を求め、
前記補正変換を用いて、前記複数の撮影装置個々の揺れを軽減する補正変換を求め、
前記複数の撮影装置の各々が撮影した撮影画像に対し、対応する前記補正変換を施し、
変換後の複数の撮影画像を合成してパノラマ画像を作成する、
ことを特徴とする画像処理方法。
【請求項２】
複数の撮影装置個々の座標系との間の変換が可能である共通座標系を設定し、
前記複数の撮影装置のうちの一以上の各々について姿勢を推定し、
前記複数の撮影装置のうちの一以上の推定姿勢を用いて、前記共通座標系の推定姿勢を求め、
前記共通座標系の推定姿勢を用いて、前記共通座標系の揺れを軽減する補正変換を求め、
前記複数の撮像装置で撮影した複数の画像を合成してパノラマ画像を生成作成し、
前記パノラマ画像に前記共通座標系の揺れを軽減する補正変換を施す、
ことを特徴とする画像処理方法。
【請求項３】
前記共通座標系及び又は前記複数の撮影装置個々の揺れを軽減する補正変換が、ロール及びピッチの補正を行う変換であることを特徴とする請求項１又は請求項２記載の画像処理方法。
【請求項４】
前記共通座標系又は前記複数の撮影装置個々の揺れを軽減する補正変換が、ヨー、ロール及びピッチの補正を行う変換であることを特徴とする請求項１又は請求項２記載の画像処理方法。
【請求項５】
前記複数の撮影装置の各々及び前記共通座標系について、姿勢推定時に位置も推定することを特徴とする請求項１又は請求項２記載の画像処理方法。
【請求項６】
前記共通座標系及び前記複数の撮影装置個々の揺れを軽減する補正変換が、ヨー、ロール及びピッチ及び位置の補正を行う変換であることを特徴とする請求項５記載の画像処理方法。
【請求項７】
複数の撮影装置個々の座標系との間の変換が可能である共通座標系を設定する手段と、
前記複数の撮影装置のうちの一以上の各々について姿勢を推定する手段と、
前記複数の撮影装置のうちの一以上の推定姿勢を用いて、前記共通座標系の推定姿勢を求める手段と、
前記共通座標系の推定姿勢を用いて、前記共通座標系の揺れを軽減する補正変換を求める手段と、
前記補正変換を用いて、前記複数の撮影装置個々の揺れを軽減する補正変換を求める手段と、
前記複数の撮影装置の各々が撮影した撮影画像に対し、対応する前記補正変換を施す手段と、
変換後の複数の撮影画像を合成してパノラマ画像を作成する手段と、
を有することを特徴とする画像処理装置。
【請求項８】
複数の撮影装置個々の座標系との間の変換が可能である共通座標系を設定する手段と、
前記複数の撮影装置のうちの一以上の各々について姿勢を推定する手段と、
前記複数の撮影装置のうちの一以上の推定姿勢を用いて、前記共通座標系の推定姿勢を求める手段と、
前記共通座標系の推定姿勢を用いて、前記共通座標系の揺れを軽減する補正変換を求める手段と、
前記複数の撮像装置で撮影した複数の画像を合成してパノラマ画像を作成する手段と、
前記パノラマ画像に前記共通座標系の揺れを軽減する補正変換を施す手段と、
を有することを特徴とする画像処理装置。
【請求項９】
コンピュータ装置を、請求項７記載の画像処理装置として機能させるコンピュータプログラム。
【請求項１０】
コンピュータ装置を、請求項８記載の画像処理装置として機能させるコンピュータプログラム。
【請求項１１】
請求項９記載のコンピュータプログラムを格納したコンピュータ読み取り可能な記録媒体。
【請求項１２】
請求項１０記載のコンピュータプログラムを格納したコンピュータ読み取り可能な記録媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
上述の目的は、本発明による画像処理方法であって、複数の撮影装置個々の座標系との間の変換が可能である共通座標系を設定し、複数の撮影装置のうちの一以上の各々について姿勢を推定し、複数の撮影装置のうちの一以上の推定姿勢を用いて、共通座標系の推定姿勢を求め、共通座標系の推定姿勢を用いて、共通座標系の揺れを軽減する補正変換を求め、補正変換を用いて、複数の撮影装置個々の揺れを軽減する補正変換を求め、複数の撮影装置の各々が撮影した撮影画像に対し、対応する補正変換を施し、変換後の複数の撮影画像を合成してパノラマ画像を作成する、ことを特徴とする画像処理方法によって達成される。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
また、上述の目的は、本発明による画像処理方法であって、複数の撮影装置個々の座標系との間の変換が可能である共通座標系を設定し、複数の撮影装置のうちの一以上の各々について姿勢を推定し、複数の撮影装置のうちの一以上の推定姿勢を用いて、共通座標系の推定姿勢を求め、共通座標系の推定姿勢を用いて、共通座標系の揺れを軽減する補正変換を求め、複数の撮像装置で撮影した複数の画像を合成してパノラマ画像を生成作成し、パノラマ画像に共通座標系の揺れを軽減する補正変換を施す、ことを特徴とする画像処理方法によっても達成される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
また、上述の目的は、本発明による画像処理装置であって、複数の撮影装置個々の座標系との間の変換が可能である共通座標系を設定する手段と、複数の撮影装置のうちの一以上の各々について姿勢を推定する手段と、複数の撮影装置のうちの一以上の推定姿勢を用いて、共通座標系の推定姿勢を求める手段と、共通座標系の推定姿勢を用いて、共通座標系の揺れを軽減する補正変換を求める手段と、補正変換を用いて、複数の撮影装置個々の揺れを軽減する補正変換を求める手段と、複数の撮影装置の各々が撮影した撮影画像に対し、対応する補正変換を施す手段と、変換後の複数の撮影画像を合成してパノラマ画像を作成する手段と、を有することを特徴とする画像処理装置によっても達成される。
さらに、上述の目的は、本発明による画像処理装置であって、複数の撮影装置個々の座標系との間の変換が可能である共通座標系を設定する手段と、複数の撮影装置のうちの一以上の各々について姿勢を推定する手段と、複数の撮影装置のうちの一以上の推定姿勢を用いて、共通座標系の推定姿勢を求める手段と、共通座標系の推定姿勢を用いて、共通座標系の揺れを軽減する補正変換を求める手段と、複数の撮像装置で撮影した複数の画像を合成してパノラマ画像を作成する手段と、パノラマ画像に共通座標系の揺れを軽減する補正変換を施す手段と、を有することを特徴とする画像処理装置によっても達成される。