(57)【特許請求の範囲】
【請求項１】
撮影された動画のフレーム画像を順次取り込み、該取り込まれた連続する２枚のフレーム画像を比較して共通領域以外の部分領域である差分画像及び上記連続する２枚のフレーム画像間移動量を求める手段と、
前記２枚のフレーム画像の差分画像及び前記移動量とを順次記憶する第１および第２の記録手段と、
前記第１の記録手段に記録される差分画像を前記移動量に基づいて逐次合成することでプレビュー画面を合成するプレビュー画面合成手段と、
前記取り込み終了後、前記第２の記録手段に記録される差分画像を前記移動量に基いて合成してパノラマ画像を合成するパノラマ画像合成手段と、
前記フレーム画像が取り込まれるのにあわせて逐次前記プレビュー画面を表示し、さらに、前記取り込み終了後に前記合成されたパノラマ画像を表示する表示手段とを有し、
前記第１の記録手段は、前記生成されるプレビュー画面が所定の大きさ以上になった場合に該プレビュー画面が該所定の大きさ以下になるように該プレビュー画面を構成する画素数を所定倍縮小して記録することを特徴とする画像合成装置。
【請求項２】
前記プレビュー画面合成手段は、前記プレビュー画面を構成する画素数が所定倍縮小されて前記第１の記録手段に記録されている場合には、該所定倍縮小した前記求められた移動量に基いて、該所定倍縮小された前記差分画像を前記記録されるプレビュー画面に合成することで前記プレビュー画面を合成することを特徴とする請求項１記載の画像合成装置。
【請求項３】
前記表示手段は、前記プレビュー画像中における、最新に取り込まれたフレームに対応する領域を強調表示することを特徴とする請求項１又は２に記載の画像合成装置。
【請求項４】
前記差分画像は、前記連続する２枚のフレーム画像の共通画像領域も含み、前記パノラマ画像合成手段は、該共通画像領域を用いて前記２枚のフレーム画像間の境界を滑らかに合成することを特徴とする請求項１乃至３のいずれかに記載の画像合成装置。
【請求項５】
撮影中の動画から順次フレーム画像を取り込み、該取り込まれた連続する２枚のフレーム画像を比較して共通領域以外の部分領域である差分画像と該２枚のフレーム画像間の移動量とを求めるステップと、
前記２枚のフレーム画像の差分画像及び前記移動量とを第１及び第２の記憶手段に記憶するステップと、
前記第１の記憶手段に記憶される前記移動量を用いて前記求められる差分画像を逐次合成してプレビュー画面を合成するステップと、
前記生成されたプレビュー画面を前記動画の取り込みにあわせて逐次表示するステップと、
前記取り込み終了後に前記第２の記録手段に記録される前記移動量に基づいて前記差分画像を合成しパノラマ画像を合成するステップと、
前記合成されたパノラマ画像を表示するステップとを有し、
前記第１の記録手段は前記生成されるプレビュー画面が所定の大きさ以上になった場合に該プレビュー画面が該所定の大きさ以下になるように該プレビュー画面を構成する画素数を所定倍縮小して記録すること特徴とする画像合成方法を実行するプログラムが記録されたコンピュータ読みとり可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、広視野角のパノラマ画像を合成する合成装置及び合成方法が記録された記録媒体に係り、特に連続する動画像からリアルタイムにパノラマ画像を合成する画像合成装置、及び該合成方法画記録された記録媒体に関する。
【０００２】
【従来の技術】
異なる視野を撮影した複数の画像を合成して、１枚の広視野のパノラマ画像を作る技術が注目されている。最近では、特に、ビデオカメラをパンして視野を変えながら撮影した連続動画像から同様にしてパノラマ画像を作成する、Video Mosaicと呼ばれる技術に関心が集まっている。例えば、米国マサチューセッツ工科大学のTeodosio、 L。、 Bender、 W。らによる Salient Video Stills: Content and Context Preserved、 Proc。 ACM Multimedia 93、 pp。39-46 (1993)などが知られている。この他にも様々な研究例が存在するが、いずれの手法も、連続して得られた複数枚の画像について、その共通領域を見つけ、ちょうど共通領域が重なるように、画像を貼り合わせることでパノラマ画像を得ている。カメラを動かすに伴って、撮影画像には新しい視野の画像が入ってくるので、それらが繋ぎ合わされて、最終的に広視野のパノラマ画像が得られる。
【０００３】
しかしながら、多くの研究例では、このような共通領域をいかに精度良く見つけるかや、レンズの歪みによる画像周辺部のずれをいかに補正するか、など、合成画像の精度を高めることが重視され、このようなパノラマ合成技術を実際に用いる操作者のユーザビリティの観点からの検討が十分とは言い難い。一般に、対象となる映像の種類を特定できない自然映像について画像認識を行うには、様々な局面で、人間が介在し、適切な判断を与える必要がある。この場合、処理の高速応答性が、操作者の使い勝手を大きく左右する。用途によっては、画像として破綻なく接続されてさえいれば、むしろ入力映像をリアルタイム、即ち、映像の入力に対して遅延なく処理でき、その結果が直ちに確認できる、ユーザビリティに優れた手法のほうが望ましい場合も少なくない。
【０００４】
【発明が解決しようとする課題】
パノラマ画像の作成においては、２種類の処理が行われる必要がある。一つは、連続する入力画像を認識して、共通領域の座標を決定する、カメラ動き量の推定処理である。もう一つは、得られた動き量から、実際に画像を繋ぎ合わせる合成処理である。ユーザビリティの観点からは、これらが同時に、しかもリアルタイムで行われることが最も望ましい。すなわち、カメラを振ると同時に、その振った量が計算されて自動的に画像が繋ぎ合わされ、撮り終わったときには合成画像がすでに出来ていて確認できることが理想である。これによって、気に入った画像が得られるまで何度でも気軽にやり直しができ、情報が欠落しているなどの本質的に合成が不可能な映像の撮り方をしても、その場でミスがわかり、撮り方からの根本的な修正ができる。
【０００５】
カメラを振ると同時に、その振った量が計算されて自動的に画像が繋ぎ合わされ、撮り終わったときには合成画像がすでに出来ていて確認できるようにする場合、これら２種類の推定処理、合成処理のいずれもリアルタイムに処理を行う必要がある。カメラ動き量の推定処理に関しては、例えば、発明者らによる特開平１１−００４３９８「デジタルワイドカメラ」で示した高速処理方式などがある。しかしながら、合成処理については、リアルタイムに同時に実行できるレベルにまで十分に検討されているとはいえない。単に、動き量を撮影と同時にリアルタイムで計算できるだけでは、撮影後に、動き量の計算分は短くなるものの、画像どうしの貼り合わせ処理の時間を待たねば、合成結果を確認することはできず、ユーザビリティの面で不十分である。
【０００６】
本発明の目的は、連続する動画像からパノラマ画像を合成する方法において、操作者のユーザビリティを向上させるため、合成結果をリアルタイムで確認できる、合成処理の高速応答性を実現することにある。
【０００７】
【課題を解決するための手段】
上記の目的を達成するため、撮影中された動画から順次フレーム画像を取り込み、取り込まれた連続する２枚のフレーム画像を比較して共通領域以外の部分領域である差分画像及び上記連続する２枚のフレーム画像間移動量を求める手段と、前記２枚のフレーム画像の差分画像及び前記移動量とを順次記録する第１および第２の記録手段と、前記第１の記録手段に記憶された差分画像を前記移動量に基いて逐次合成することでプレビュー画面を合成するプレビュー画面合成手段と、前記取り込み終了後、前記第２の記録手段に記録される差分画像を前記移動量に基いて合成してパノラマ画像を合成するパノラマ画像合成手段と、前記フレーム画像が取り込まれるのにあわせて逐次前記プレビュー画面を表示し、さらに、前記取り込み終了後に前記合成されたパノラマ画像を表示する表示手段とを設ける。更に、前記第１の記録手段は、前記生成されるプレビュー画面が所定の大きさ以上になった場合に該プレビュー画面が該所定の大きさ以下になるように該プレビュー画面を構成する画素数を所定倍縮小して記録する。
【０００８】
【発明の実施の形態】
以下、本発明の一実施例を詳細に説明する。図１は、本発明を実現するためのシステム構成の概略ブロック図の一例である。１００は一般的なビデオカメラ撮像部であり、撮影した映像を映像信号線106を介して演算処理装置116に送信する。カメラ部は、制御信号線108によって演算処理装置116と接続され、116は必要に応じてビデオカメラのズーム倍率を変更したり、ホワイトバランスを調整したり、といったカメラパラメータの設定ができるようになっている。このような設定が不要な場合は、省略可能である。演算処理装置116は、現在汎用的に用いられているデジタルコンピュータ、特にパソコンのシステム構成と同じであり、そのディスプレイ出力は映像信号線を通じてディスプレイ112の画面上に描画され、入力デバイス120でユーザから受けた指示は、演算処理装置116に通知される。カメラ部１００から出力される映像信号は、逐次、102のＡ／Ｄ変換器によってデジタル画像データに変換され、インタフェース104を介してメモリ114に入り、メモリ114の別の番地に格納されたプログラムに従って、ＣＰＵ110によって処理される。
【０００９】
ここでは、ビデオカメラからの信号がNTSC等のアナログビデオ形式の場合の例で説明しているが、デジタル出力のビデオカメラを利用する場合には、102のＡ／Ｄ変換器は不要である。この場合、替わりに画像形式の変換器が必要になる場合もある。また、処理の必要に応じて、各種情報を118の外部情報記憶装置に蓄積することができる。
【００１０】
メモリ114には、以下に説明する処理によって作成される各種のデータが格納され、CPU110が処理を行う際に、必要に応じて参照される。以下の説明では、すべてCPUが実行するソフトウェアとして説明するが、その一部または全部をハードウェア論理回路で置き換えて実行させても構わない。また、カメラ部100、演算処理装置116、ディスプレイ112を一体化したインテリジェントなビデオカメラ形態であっても構わない。
【００１１】
以下では、上記ハードウェア上で実行される、先述の課題を解決するソフトウェアフローについて詳細に説明する。まず最初に、上記ソフトウェアを用いた、パノラマ画像の作成方法について説明する。ユーザは、最初にリアルタイムでパノラマ合成が行われる状態（以下では、パノラマ撮影モードと呼ぶ）に移行することを、入力デバイス１２０によって演算処理装置１１６に伝える。入力デバイスは、コンピュータシステムを利用する場合には、キーボードやマウスなどにあたり、カメラ一体型形態をとる場合には、「パノラマ撮影開始ボタン」などのスイッチが相当する。演算処理装置１１６は、パノラマ撮影モードに入ると、ビデオカメラから出力される映像信号を毎フレーム入力し、入力されたフレーム画像のカメラ動き量を求め、パノラマ合成に必要なパラメータとデータを収集する。このとき、ディスプレイ１１２には、その全体、もしくは一部の領域が、合成状況を確認するためのプレビュー画面として設定され、カメラの動きに合わせて繋ぎ合わされていく合成画像の様子をリアルタイムで更新表示する。
【００１２】
図１のディスプレイ１１２内に、そのイメージを示す。本発明では、プレビュー表示用の合成画像１２２（以下、プレビュー画像と呼ぶ）は、プレビュー画面内で、その全体がおさまる最大の大きさになるように常にスケーリングされて表示されることを特徴とする。これによって、全体の合成状態を、瞬時に把握可能にする。このとき、プレビュー画面が矩形の場合には、合成画像の形状によって、画像の存在しない空白部分１２４が存在するが、これは適当な背景色で埋めておく。合成画像中における最新の入力フレームの位置は、枠で囲んだり、色を変えたりして強調表示することで、カメラを動かすべき方向を迷わせない羅針盤の役割も持たせる（１２６）。
【００１３】
ユーザが、再び入力デバイス１２０によって、パノラマ撮影モードの終了を指示すると、新規のフレーム画像入力を中止し、待機状態になる。ディスプレイ１１２には、最後のフレーム入力によって更新されたプレビュー画像が保持され、ユーザはその画像を見て所望の結果が得られているか判断し、良ければ、プレビュー用ではない実サイズの最終的な出力としての合成画像（以下、最終出力合成画像と呼ぶ）を作成し、外部情報記録装置１１８などに保存する。
【００１４】
図２に、上記機能を実現するフローチャートの一例を示す。このアルゴリズムは、上記機能に必須の高速処理を可能にするため、次の３点を基本コンセプトとしている。
【００１５】
(1) 最終出力合成画像とは別に、プレビュー専用に縮小サイズの合成画像を作成する。
【００１６】
(2) 最終合成画像用に記憶する画像は、最低限必要な領域のみとする。
【００１７】
(3) 任意形状・任意サイズのプレビュー画像の作成と、メモリ効率とを両立させる。
【００１８】
(1)は合成処理にかかる時間を減らすための工夫である。一般に、作成された画像が所望のものかどうかを判断する目的では、必ずしも大きなサイズの画像である必要はない。そこで、撮影時には、最終出力合成画像は作成せず、プレビュー用として別個に縮小サイズの合成画像を作成する。これによって、撮影とほぼ同時にプレービュー画像が完成するようにする。このプレビュー画像は、得られたカメラ動き推定量に基づいて合成が行われるので、実際の合成結果に極めて近く、歪みやミスなどもそのまま反映される。ユーザは、このプレビューによって所望の画像が得られたか否かを判断し、良しと確認されたら、改めて実際の大きさの最終出力合成画像を作成する。失敗と判断した場合には、直ちにやり直すことができ、実サイズの合成の時間を省けるので、効率的な作業ができる。
【００１９】
(2)は、最終出力合成画像のための元データの記録時間を削減するための工夫である。(1)を採用して最終出力合成画像の作成を後で行うようにした場合、その元データであるレーム画像を一時的に記録しておく必要がある。次々と入力される新しいフレーム画像を次々に記録していくことは、データ転送時間が長くかかったり、必要なメモリ容量が肥大化したりと、高速処理の阻害要因となる。
【００２０】
ここで、図３に示すように、パノラマ合成画像は、連続するフレーム画像の１枚１枚を重ね合わせて得られる。図３は、一連のパン映像からパノラマ画像を作成する例であり、上側が連続するフレーム画像からなる映像を模式的に表し、下側がそれから合成されるパノラマ画像を示している。上下を結び付ける複数の線は、フレーム画像どうしの対応関係を表している。下側のパノラマ画像では、連続するフレーム間で常に画像的に一致する領域（以下、共通領域と呼ぶ）が存在し、データとして冗長性が極めて高くなっている。そこで、この連続フレーム間の共通領域を省いた部分の領域だけを組み合わせることで、十分にパノラマ画像が再現できる。従って、1フレームにつき、この共通領域を省いた領域だけを記録するようにすれば、１フレームあたりの記録すべきデータ量は大幅に削減され、データ転送時間は短縮され、必要なメモリ容量も少なくなる。最後のフレームの重ねあわせだけには画像全体が必要になるが、唯一その1回のみであり、また、最後であるから、データ転送に時間が多少多くかかっても、次のフレームが存在しないため、次フレームのための処理に間に合わないという問題も発生しない。
【００２１】
最後の(3)についてであるが、プレビュー画像は、撮影終了と同時に得られるだけでなく、さらに撮影中からカメラの動きに即応してリアルタイムに、即ちカメラの動きに同期して更新されるほうが、ユーザにとって確認が容易であり、使い勝手がよい。しかし、合成されるパノラマ画像は、カメラを動かすにしたがって単調に大きくなり、また、カメラの動かし方によって、その形状や大きさは様々になる。プレビュー画像を表示するためには、プレビュー用に合成されるパノラマ画像が常にメモリ領域上で作成されていなければならないが、可能性のあるすべての形状や大きさのプレビュー画像をメモリ領域上に作成するためには、メモリ領域を予め極めて大きくとっておかなければならない。
【００２２】
(1)の指針により、縮小フレーム画像を用いるとしても、必要なメモリ領域の容量は巨大である。しかも、実際には利用されないメモリ部分も多く、メモリの使用効率が非常は低くなってしまう。もちろん、最初にカメラを動かす方向を決定して、それに必要な分だけメモリ領域を確保することはできる。しかし、この方法では、ユーザが予めカメラを動かす方向を指示しなくてはならない煩雑さが生じ、ましてユーザが途中で気が変わっても全く対応できない。また、最終的にどれだけの大きさの画像になるか、ユーザが予測できない場合も多い。無制限のサイズ・無制限の形状の合成画像に対応することが望まれる。
【００２３】
ここで、モニタにプレビュー画像を表示するためのプレビュー画面の大きさは固定であり、プレビュー画像の大きさが固定の大きさのプレビュー画面より大きくなった場合、その画面サイズに合うように縮小スケーリングされて表示されるようにする。逆にいえば、プレビュー画面の解像度を超える画素数は、プレビュー画像を表示する際には無駄になる。
【００２４】
そこで、プレビュー画像の大きさが、プレビュー画面の大きさのｎ倍（縦もしくは横の長さとしての比率。面積的にはｎ×ｎ倍）を超えた時点で、プレビュー画像の大きさを強制的に1/ｍ倍（同じく面積的には1/(ｍ×ｍ)倍）に縮小する。そしてまた、縮小したプレビュー画像の大きさが再びプレビュー画面のｎ倍を超えたときには、プレビュー画像の1/ｍ倍縮小を行うというように繰り返す。これにより、プレビュー画像用のメモリ領域サイズを、プレビュー画面のサイズのｎ倍以下に制限でき、かつ、プレビュー画面に表示されるプレビュー画像は、それ以上のメモリ領域を持っている場合と比べて解像度の劣化がないという効果が得られる。
【００２５】
以上のことを踏まえて、図２のフローチャートの説明に戻る。まず各種の初期化を処理２００で行う。例えば、プレビュー画像作成用のワーキングバッファとして、プレビュー画面の大きさを縦横それぞれｎ倍にした大きさのメモリ領域（以下、プレビューバッファと呼ぶ）を確保する。プレビュー画像は、このプレビューバッファの中で合成される。プレビューバッファには、プレビュー表示領域と呼ばれる領域が設定され、この領域が、ちょうどプレビュー画面の大きさいっぱいになるように常にスケーリング、即ち、拡大・縮小されて、プレビュー画面の表示となる。
【００２６】
最初は、バッファ中央部の、プレビュー画面と同じ大きさの領域が、プレビュー表示領域として設定され、プレビューバッファ上でプレビュー画像が大きくなるにしたがって、常にプレビュー画像全体が含まれるように、順次プレビュー表示領域を拡大する。次いで、プレビュー画像作成用の変数である、プレビュー縮小率ｒの初期値を計算する（２０２）。ｒは、カメラから入力されるフレーム画像の大きさと、プレビュー画面の大きさとの比率であり、カメラの動きがない初期状態において、入力フレーム画像が、プレビュー画面いっぱいに表示されるように調整するパラメータである。例えば、入力フレーム画像の大きさとプレビュー画面の大きさを同じにした場合には、r=1。0となる。
【００２７】
続く処理２０４では、ビデオカメラで撮影された映像の最新の１コマのフレーム画像を入力する。そして、次々と入力されるフレーム画像間で比較を行いながら画像の移動量検出処理を行う。この移動量検出には、オプティカルフロー等の様々な方法が考えられているが、ここでは高速に計算可能な方式として、例えば、特願平9-153303の「デジタルワイドカメラ」に記載された方式を利用する。この方式は、画像の投影分布から移動量を求めるために非常に高速処理を可能とする。
【００２８】
処理２０６では、このフレーム画像から水平投影分布Px、垂直投影分布Pyを作成する。水平投影分布とは、画像を構成する画素の各行について、その色や輝度の平均値をとったもので、行数分だけの平均値の一次元系列である。垂直投影分布は、画像の各列について、同様に色や輝度の平均値をとったもので、列数分だけの平均値の一次元系列である。例えば、垂直投影分布の値の並びは、画像が左右に移動すると、それに対応して順方向もしくは逆方向にシフトする性質がある。同様に垂直投影分布は、画像の上下動に対応して順逆方向にシフトする。したがって、あるフレーム画像から作成した水平／垂直投影分布と、次に入力されたフレーム画像から作成した水平／垂直投影分布とを比較し、その平均値の系列がそれぞれどれだけシフトしたかを求めれば、２枚の画像の間の水平／垂直方向の移動量が求まることになる。画像変化なので、ノイズや若干の変形等により投影分布の値の並びは完全に一致するわけではないが、比較する２つの投影分布の片方を順次δ画素分だけシフトして比較し（δは−Rから＋Rの範囲をとるすべての整数。Rは予め設定した探索範囲を示す値）、最も相違度が低くなったときのδを移動量として得る。相違度は、対応する行または列の画素の色や輝度の平均値それぞれの差の絶対の総和などを利用する（２１０〜２１２）。但し、初めての画像入力の場合には、過去に比較するフレーム画像が存在しないので、処理２０４に戻る（２０８）。
【００２９】
処理２１４では、得られた水平／垂直移動量δから、直前のフレーム画像と現在のフレーム画像との共通領域を求め、直前のフレームにおける、その共通領域以外の部分の領域についてのみ記録する。これによって、全ての領域について記録する場合に比べ記憶容量が少なくて済む。
【００３０】
また、処理２１６では、得られた水平／垂直移動量δの値に、ｒを乗じたプレビュー合成用の移動量を求め、直前にプレビューバッファ上に描画した縮小フレーム画像に対して、上記で得られたδ×ｒだけずらした位置にｒ倍に縮小した画像を重ねて描画する。このようにして拡大されたプレビュー画像全体を含むように更新したプレビュー表示領域を、プレビュー画面に表示する（２１８）。
【００３１】
このとき、もしプレビュー画像の全体が、プレビューバッファの端いっぱいに迫っているときには（２２０）、プレビューバッファ全体を１／ｍ倍に縮小する（２２２）。このとき、プレビュー表示領域も同様に１／ｍ倍に縮小される。そして、ｒも同様に１／ｍを乗じておく。
【００３２】
図４に、このプレビューバッファの縮小処理の模式的な流れを示す。４００は、プレビューバッファ全体を示し、４０２は、プレビュー表示領域である。４０４は、プレビュー画像を示す。プレビュー表示領域は、常にプレビュー画像全体に外接するように位置や大きさが変化する。Aは、パノラマ撮影開始直後の様子を表しており、入力されたフレーム画像が、中央部に描画されている。カメラを動かすにしたがって、プレビュー画像は伸びていき、プレビュー表示領域も追従して大きくなる（B）。そして、Cに示すように、プレビュー画像がプレビューバッファの端まで到達すると、バッファからはみ出すので、ここで１／ｍ倍にプレビューバッファ全体を縮小する（D）。このとき、プレビュー表示領域も同じ倍率で縮小する。そして、さらにプレビュー画像が伸びれば、それに合わせて画像の描画を続ける。
【００３３】
ここで、ｎ＝３、ｍ＝２とすると、はじめに、プレビューバッファの中央と表示領域の中央を合わせておき、その後、撮影画像に応じて伸び、端に到達したときのプレビュー表示領域のサイズは、プレビュー画面のオリジナルサイズの２倍(縦横の長さ比が２倍)よりも常に大きくなる。したがって、これをプレビューバッファ全体ごと１／２倍(縦横の長さ比を１／２倍)にしても、プレビュー表示領域のサイズは、プレビュー画面のオリジナルサイズを下回ることはない。なお、ｎ＝３、ｍ＝２のとき、プレビュー表示領域がちょうどバッファのに到達したとき、プレビュー表示領域は、プレビュー画面のオリジナルサイズの２倍となる。そこで、プレビューバッファを１／２倍すれば、プレビュー表示領域のサイズは、プレビュー画面のオリジナルサイズと同じになる。
【００３４】
これによって、巨大なメモリ領域を確保して、自由にプレビュー画像を描画し、その上で、プレビュー画面のサイズに間引いて表示する場合と、ほとんど変わらない結果が、プレビュー画面のｎ倍のメモリ容量を用意するだけで得られることになる。また、ｍ＝２の場合、単純に1画素おきに間引けばよいので、縮小も極めて高速に行える。
【００３５】
ここで、例えば、入力フレーム画像の１０倍の大きさのパノラマ画像を作成することを考える。上記の方法によらずに、あらかじめメモリ領域を確保する方法では、この面積のパノラマ画像のプレビューを行うためには、あらかじめ、入力フレーム画像の約４００倍のメモリ領域を必要とする。これは、最初からどの方向にカメラが動くか予測できないために、最初の入力フレーム画像を中心にして、上下左右の各方向にそれぞれ１０倍の長さを持つ矩形領域を確保する必要があるためである。ところが、本発明の方法によれば、ｎ＝３の場合で、高々９倍の大きさで良い。本発明は、この９倍の大きさで無制限のサイズを保証するので、従来方法とのメモリ領域の差は、合成するパノラマ画像の大きさが２０倍、３０倍になるに伴い、指数関数的に大きくなる。
【００３６】
さらに、上記の手法は、ズーム映像を用いた高解像静止画合成処理の場合に、さらに効果がある。図５に、ズームによる高解像静止画合成の原理を示す。この基本的な考え方は、すでに挙げた文献Salient Video Stills: Content and Context Preservedに示されている。最もズームインされたときのフレーム画像を基準サイズとして、他のフレーム画像をそのズーム率に合わせて重ね合わせていくことで、大きな高解像度画像を得ることができる。この高解像度画像は、周辺部は画素が単純に大きくなるだけであるが、中心部に近づくにしたがって少しずつ段階的に高精細になる。通常のスチルカメラで撮影した画像も、中心に焦点を合わせたときには周辺部はボケており、重ね合わせ合成された高解像度画像の特性に近い。すなわち、安価な低解像度の撮像素子を用いて、高価な高解像度の撮像素子を用いて写したのと同等の画像が得られることになる。
【００３７】
しかし、このような従来の手法では、ズームアウト時の画像を拡大してから重ね合わせ処理を行わなければならず、拡大率が大きくなるにつれて拡大処理時間も長くなり、パノラマ合成のときよりもさらにリアルタイム処理が困難になる。それでも、徐々に単調にズームアウトするような映像の場合には、最初に巨大なメモリ領域が用意できれば、最初のフレームを原寸大で描画し、後はフレーム画像を拡大しながら重ねていくだけでよい。しかし、逆に、ズームインするような映像の場合は、高解像画像合成の目的である、解像度を高めながらの合成には、最後に入力されたフレーム画像が常に原寸大になるように、合成画像のほうを拡大する必要があり、巨大なメモリ領域を毎フレームごと拡大するのは非常に時間がかかる。このことは、予めどのようなカメラの動きがあるか予測できないリアルタイム処理ならではの課題である。
【００３８】
一方、本発明の考え方を適用すれば、少ないメモリ領域でリアルタイムにプレビューが確認できる。ズーム率を高速に求める手法については、例えば、すでに発明者らによる特願平10-53100「超解像カメラ」において示している手法が利用できる。ここで確認しておくと、高解像画像の合成とは、連続するフレーム画像間の共通領域が同じ縮尺になるようにサイズを調整しながら、入力されるフレーム画像を重ね合わせていくことである。したがって、パノラマ合成のときと同様に、最終的な合成画像を得るには、共通領域は１回だけ記録すればよく、ズームインの映像の場合には、直前のフレームにおける、共通領域を除いたロの字型の外枠部分だけでよい。また、プレビュー画像の作成にあたっては、ズーム率に合わせて縮小したフレーム画像を、ただプレビューバッファに次々と描画していくだけでよい。
【００３９】
ズーム率は、ここでは、最初に入力されたフレーム画像を基準にして、共通領域が一致するようにサイズ合わせをしたときの比率として定義する。ズームのないときは1。0、ズームインの場合は1より小さく、ズームアウトの場合、1より大きくなる。一方、ズームアウトの映像の場合には、最新のフレームのほうが広い範囲を写しているので、今度は最新のフレームにおける共通領域を除いたロの字型の外枠部分を記録する。プレビュー画像の作成のあたっては、この外枠部分をズーム率に合わせて縮小して描画する。ズームアウトの場合は、プレビュー画像のサイズが、ズーム率が大きくなると、プレビューバッファのサイズを超えるので、その場合には、パノラマ合成のときと同様に、プレビューバッファ全体を1/mに縮小する。このように、ズームの場合にも、プレビュー画像作成のために必要な拡大は、ロの字型の外枠部分だけをｎ倍以下に拡大する処理だけであり、明らかに高速に処理できる。以上によって、撮影と同時に、高解像画像合成の結果もリアルタイムで確認できる。
【００４０】
本実施例において最終的な合成画像のために記録される元データの一例を図６と図７に示す。データは、パノラマファイル構造体６００とパノラマクリップ構造体７００とに大別される。前者のパノラマファイル構造体は、元データ全体をまとめるヘッダーであり、後者のパノラマクリップ構造体は、各フレームごとに記録が決定される画像データである。パノラマファイル構造体には、後続データが画像合成用の元データであることを示す識別子として、ファイルID６０２と、合成画像の実サイズを幅（６０４）、高さ（６０６）の順に格納する。合成画像の最終的なサイズは、カメラ動き量から決定され、特殊な形状をとっていても、それに外接する最小の矩形として表現できるので、幅と高さのみを格納する。また、元データの色数６０８（例えば、２５６色なのか、２４ビットフルカラーなのか等）や画像フォーマット６１０（例えば、RGB形式なのか、YUV形式なのか等）も格納する。
【００４１】
また、合成画像に外接する矩形領域の始点座標をパノラマ画像ｘ、ｙオフセット（６１２、６１４）として格納し、この座標を基準にして、後述するパノラマクリップの座標を計算する。このヘッダー情報に続いて、パノラマクリップ構造体７００がデータとして並ぶ。パノラマクリップ構造体は、フレーム１枚ごとのデータとなっており、合成画像における、そのフレーム画像の位置とサイズを格納する。まず７０２は総データサイズであり、画像データの量を格納する。画像始点ｘ座標７０２は、前述のパノラマ画像ｘオフセット６１２で示された座標を合成画像の始点座標としたときの、このパノラマクリップ構造体と対応づけられたフレーム画像の始点のx座標値を表す。同様に、画像始点ｙ座標７０４は、フレーム画像の始点のｙ座標値を表す。画像幅７０６と画像高７０８は、フレーム画像の入力されたままの実サイズを表す。これに、ズーム率７１０を乗じて、合成画像上でのフレーム画像のサイズを計算する。７１４〜７２０は、このフレーム画像における、前述の共通領域の範囲を指定する。共通領域始点ｘ座標７１４と共通領域始点ｙ座標７１６は、フレーム内における共通領域の始点座標を表し、共通領域幅７１８と共通領域高７２０で、その大きさを表す。画素データ７２２には、左上から右下方向にスキャンしながら、すべての画素データが順番に並ぶ。７１４〜７２０に適切な値が入っている場合には、共通領域に関する画素データは単純に無視される。
【００４２】
次に、上記で記憶した元データから最終的な合成画像を作成する方法について説明する。まずパノラマファイル構造体６００を参照して合成画像の幅と高さを調べ、その大きさの矩形画像領域をメモリ領域に確保する。そして、後続するパノラマクリップ構造体７００を参照して、描画すべき位置と大きさを調べて、確保したメモリ領域内における相対位置を求め、画像データ７２２を書き込む。但し、ズーム率が１倍を下回るクリップが１つでも存在する場合には、最初に、最も小さなズーム率が１になるように、すなわち、最もズームインされたフレーム画像が等倍で描画されるように、すべてのパノラマクリップ構造体のズーム率を比例変換する。この場合、合成画像のサイズも比例して大きくなる。これによって、フレーム画像が縮小されることがなくなり、解像度が高められる方向にのみ合成が行われる。
【００４３】
以上で述べた画像合成をより美しく見せるために、スムージング処理を行うことができる。一般に、画像を貼り合わせる場合には、動き量が正しく求まらなかったり、レンズの収差による入力画像の時点での歪みがあったり、あるいは撮影時点での明るさが変動するなどして、画像の繋ぎ目に微妙な境界線が発生することがある。人間の知覚では、この境界線は不快な印象を与えるため、補正を行う必要がある。このような補正を行う最も簡単な方法は、貼り合わせる画像どうしの間に糊代を持たせ、境界線を挟んで、一方の画像の色から他方の画像の色へと段階的に推移するように貼り合わせることである。その概念を非常に単純化して示したイメージを図８に示す。８００では、２枚の画像が単純に貼り合わされている様子を示している。ここでは、説明を簡単にするため、２枚の画像はそれぞれ特定の輝度で均一と仮定している。このときの水平方向の輝度の変化を見てみると、画像の境目では、グラフ８０２に示すように、瞬時に変化し、これが境界線８０８を形成する。一方、８０４および８０６に示すように、画像の境界に糊代を持たせて、一方の画像の輝度から他方の画像の輝度まで段階的な変化となるように貼り合わせれば、境界線は目立たなくなる。
【００４４】
本発明の合成方法で、上記のスムージング処理を実現するには、元データを記録するときに、糊代の分だけ広めの領域を記録するようにすればよい。これによって必要最低限のデータ量の増加で、スムージングが可能になる。そして、後の合成処理の際に、糊代の分について、スムージング処理を行うことで、滑らかに接続された合成画像が得られる。糊代とする領域は、基本的に、連続する２枚の画像の間の共通領域を狭める形で選ぶ。図９に、２枚のフレーム画像９００、９０２について、共通領域が重なるように配置した場合の例を示す。９０２が時間的に新しいフレーム画像であるとすると、図左上のL字型ハッチング領域９０４が元画像データとして記録される。糊代は、２つの画像の境界線を段階的に埋めればよいので、境界線に沿って、共通領域を狭める方向に幅を膨らませた領域が最低限必要な領域となる。図９の例では、糊代となる領域は、９０４の内側のL字型のハッチング領域９０６となる。図１０に、典型的なカメラ動き量と、そのときの糊代領域との組み合わせを一覧にして示す。図中、Δｘ、Δｙは、それぞれ水平／垂直方向の移動量を示す。図１１に、さらに、ズームがある場合の同様の糊代領域のパターンを示す。図では、ズームインの場合を示している。このように、ズームがあっても、共通領域の大きさが同じになるように大きさを合わせたときの画像間の境界線から、共通領域方向に拡張して糊代領域を確定する。ズームアウトの場合も、フレーム画像９００と９０２の関係が逆になるだけで基本的に同じである。
【００４５】
なお、高精細画像を作成する場合、ズーム率に合わせて画像データを貼り合わせる際に、単純な画素の拡大ではなく、バイリニア補間等の画素補間技術を利用して拡大することで、さらに見栄えのよい画像が得られることはいうまでもない。そして、上記のスムージング処理を、画素補間で拡大した画像データを対象にして行うことで、さらに美しい画像が得られる。
【００４６】
また、上記では、リアルタイムでプレビュー画像を作成し表示する手法について述べたが、プレビュー画像の替わりに、合成中の様子を示すシンボルで簡略表示するようにして、ユーザビリティと、一層の高速化との両立を図ることもできる。例えば、プレビュー画像そのものではなく、そのシルエット、すなわち合成画像がどのような形状でできているかを線画で示すことにより、フレーム画像を縮小して貼り合わせることも必要がなくなると同時に、線画のみなので高速に描画が可能になる。図12に、これに基づくプレビュー画面の例を示す。プレビュー画面には、入力映像がそのまま表示され、それと合わせて、線画１２００もインジケータ表示される。また、現在入力中のフレームが合成画像中のどこに当たるのかを示すため、１２０２に示すように、線画の中で現在のフレーム画像が占める領域を強調表示してもよい。これによって、合成状況をリアルタイムで確認するという目的が、より低コストの演算性能で実現される。
【００４７】
【発明の効果】
本発明によれば、パノラマ画像や高解像画像の作成において、撮影と同時に、処理の進行状況や結果を確認でき、気に入った画像が得られるまで、何度でも気軽に撮り直しが可能な、優れたユーザビリティを提供できる。
【図面の簡単な説明】
【図１】本発明を実現するためのシステム構成図の一例である。
【図２】本発明を実現するための処理のフローチャートの一例である。
【図３】パンする動画からパノラマ画像を合成するイメージ図である。
【図４】本発明を実行した場合のプレビューバッファの内容の一例である。
【図５】ズームする動画から高解像画像を合成するイメージ図である。
【図６】本発明の処理で用いられるデータ構造体の一例である。
【図７】本発明の処理で用いられるデータ構造体の一例である。
【図８】画像貼り合わせ方法を示すイメージ図である。
【図９】本発明の処理で定義した各画像領域を説明する図である。
【図１０】本発明の処理で用いられる糊代領域のパターンの一例である。
【図１１】本発明の処理で用いられる糊代領域のパターンの一例である。
【図１２】本発明の処理で用いられるインジケータ表示の一例である。
【符号の説明】
１００…カメラ部、１０２…A/D変換器、１０４…インタフェース、１０６…映像信号線、１０８…制御信号線、１１０…CPU、１１２…ディスプレイ、１１４…メモリ、１１６…演算処理装置、118…外部情報記憶装置、120…入力デバイス。
【図１】
0003799861.tif 000002
【図２】
0003799861.tif 000003
【図３】
0003799861.tif 000004
【図４】
0003799861.tif 000005
【図５】
0003799861.tif 000006
【図６】
0003799861.tif 000007
【図７】
0003799861.tif 000008
【図８】
0003799861.tif 000009
【図９】
0003799861.tif 000010
【図１０】
0003799861.tif 000011
【図１１】
0003799861.tif 000012
【図１２】
0003799861.tif 000013