以下、図面を参照して本発明の実施の形態について詳細に説明する。図1は、本発明に係るパノラマ画像生成装置1の主要部の構成を示したブロック図であり、ここでは、本発明の説明に不要な構成は図示が省略されている。
本発明のパノラマ画像生成装置1は、被写体がビルや鉄塔といった巨大な構造物であって、その全景を高解像度で一つのフレーム内に写し込むことができない場合などに、被写体の各部が複数フレームに分散された映像データから当該被写体のパノラマ画像を生成する。さらに、当該パノラマ画像と映像データのフレームとを対応付けることにより、パノラマ画像上で詳細に観察したい位置が指定されると、当該位置と対応付けられたフレーム画像に基づいて詳細に観察できるように構成されている。
映像データ取得手段10は、被写体の主要部が一端側から他端側まで漏れなく、パーンまたはチルト(縦パーン)およびズームを繰り返して撮影され、各フレームに被写体の部分映像が含まれる動画の映像データVをフレーム単位で取得する。映像分析部11は、映像データVの各フレームに含まれる特徴点の局所特徴量を算出する局所特徴量算出部11aおよびフレーム間の各特徴点の類似度をその局所特徴量に基づいて算出する類似度出部11bを備える。局所特徴量は、例えば非特許文献1の著者らが考案したSIFT検出器を利用することによりSIFT記述子で表現される。
カメラワーク検出部12は、オプティカルフロー算出部12a、オプティカルフロー集計部12bおよびカメラワーク判定部12cを備え、後に詳述するように、映像データVを分析してパーン区間やチルト区間といった視野移動区画、ズーム(イン/アウト)区間ならびに各ズーム区間のズーム率等のカメラワークを検出する。
移動区間画像生成部13は、後に詳述するように、合成対象のフレームを選択するフレーム選択部13aおよび前記選択されたフレームを合成し、チルト区間またはパーン区間ごとに当該区間を画像範囲とする移動区間画像Imvを作成する合成部13bを含む。
拡縮部14は、ズーム区間の前後でズーム率の異なる各移動区間画像Imvの少なくとも一方を各ズーム区間のズーム率に基づいて拡縮する。パノラマ画像生成部15は、前記拡縮後の各移動区間画像Imvを結合して被写体のパノラマ画像Ipanoを生成し、各フレーム画像のフレーム識別子と前記パノラマ画像Ipanoにおける各フレーム画像の占有位置とを紐付ける紐付情報を前記紐付情報生成部15aで生成、管理する。データベース16には、前記映像データV、パノラマ画像Ipanoおよびパノラマ画像Ipanoの各部の位置と当該位置に対応したフレーム番号とを対応付ける紐付情報が格納される。
再生制御部17は、前記パノラマ画像Ipanoを表示するパノラマ画像表示部17a、パノラマ画像Ipanoの表示中に指定位置の拡大要求が入力操作部18から出力されると、当該位置と対応付けられたフレーム番号を前記紐付情報に基づいて検出する対応フレーム検出部17bおよび当該フレーム番号に対応したフレーム画像または当該フレーム位置近傍の動画を前記映像データVから切り出して再生する対応映像再生部17cを含む。
次いで、図2のフローチャートを参照して本発明の一実施形態の動作について説明する。ステップS1では、映像データ取得部10により取得された映像データVから、映像分析部11により最初のフレームが今回フレームとして取り込まれる。ステップS2では、前回フレームが取り込み済みであるか否かが判定され、最初は取り込み済みではないと判定されるのでステップS3へ進む。ステップS3では、今回フレームが前回フレームとして保持されてステップS1へ戻る。
ステップS1では、時系列で次のフレームが今回フレームとして取り込まれる。ステップS2では、前回フレームが存在すると判定されるのでステップS4へ進む。ステップS4では、前記局所特徴量算出部11aにより、前回フレームおよび今回フレームから特徴点が検出され、各特徴点の局所特徴量が算出される。ステップS5では、各フレームから検出された特徴点の類似度が、その局所特徴量に基づいて算出される。
ステップS6〜S8では、前記カメラワーク検出部12により、前回フレームから今回フレームまでの期間におけるカメラワークが検出される。以下、図3,4,5の模式図を併せて参照しながら、本実施形態におけるカメラワークの検出方法について説明する。
ステップS6では、オプティカルフロー算出部12aにより、前回および今回の各フレームがn画素×n画素を1ブロックとする複数ブロックに分割されてオプティカルフローが算出される。本実施形態では、オプティカルフローとしてcalc Optical FlowPyrLK()を利用し、図3に示したように、局所領域内の物体の移動情報が、移動方向および移動量を代表するベクトルとして求められる。本実施形態では、30×30画素のブロックごとに900個のベクトルが算出される。
ステップS7では、オプティカルフロー集計部12bにより、前記オプティカルフローとしてのベクトルに基づいて移動方向別のヒストグラムが作成される。本実施形態では、各ベクトルの方向が、図4に一例を示した量子化スケールに基づいて、xy軸の360度を45度間隔で分割したいずれかの角度値に変換され、角度値ごとのベクトル数(頻度)を示すヒストグラムが作成される。ステップS8では、カメラワーク判定部12cにより、前記オプティカルフローの集計結果に基づいてカメラワークが判定される。
本実施形態では、ヒストグラムの頻度が所定の閾値を下回っていれば静止区間と判定される。これに対して、ヒストグラムの頻度が閾値を超えていると、各角度値の頻度に応じてカメラワークが判定される。
すなわち、図5に示したように、オプティカルフローが下向き傾向であり、その集計結果において下向き(角度値[6])の頻度が高い場合には、映像が下向きに移動している、すなわちカメラワークが上方向へのチルト(縦パーン)と判定される。
また、図6に示したように、オプティカルフローが外向き傾向であり、各ブロックを4分割したと集計結果において、右上ブロックB1では角度値[0],[1],[2]の頻度が高く、右下ブロックB2では角度値[0],[6],[7]の頻度が高く、左上ブロックB3では角度値[2],[3],[4]の頻度が高く、左下ブロックB4では角度値[4],[5],[6]の頻度が高い場合には、カメラワークがズームインと判定される。
さらに、図7に示したように、オプティカルフローが内向き傾向であり、各ブロックを4分割した集計結果において、右上ブロックB1では角度値[4],[5],[6]の頻度が高く、右下ブロックB2では角度値[2],[3],[4]の頻度が高く、左上ブロックB3では角度値[0],[6],[7]の頻度が高く、左下ブロックB4では角度値[0],[1],[2]の頻度が高い場合には、カメラワークがズームアウトと判定される。
図2へ戻り、ステップS9では、次のフレームが存在するか否かが判定される。最初は存在すると判定されるのでステップS3へ戻り、今回フレームを前回フレームとして保持し直した後、ステップS1へ戻って上記の各処理が繰り返される。その後、全てのフレームに関して上記の処理が完了すると、図8に一例を示したように、映像データVが移動区間(チルトまたはパーン)、ズーム区間および静止区間に分類される。
ステップS10では、移動区間画像Imvを生成るために合成されるフレーム画像が移動区間ごとに選択される。本実施形態では、図9にチルト区間を例にして示したように、同一のチルト区間に含まれるフレーム間で、最初のフレームを基準にして時系列で他のフレームとの類似度が、前記類似度出部11bによる算出結果に基づいて算出される。そして、基準フレームとの類似度が最初に略50%となるフレームが合成フレームとして選択され、さらにこの合成フレームを新たな基準フレームとして類似度が最初に略50%となるフレームが他の合成フレームとして選択され、以下同様の処理が繰り返されて複数のフレーム画像が選択される。
ステップS11では、移動区間ごとに選択された複数フレームが合成され、各移動区間を一枚で表現した移動区間画像Imvが生成される。ステップS12では、前記ズーム区間ごとに、その開始フレームの画像と終了フレームの画像とを比較することでズーム率が算出される。
ステップS13では、ズーム区間を挟んだ二つの移動区間画像Imvが、例えば縦エッジが不連続となるような倍率破綻なく結合されるように、少なくとも一方の移動区間画像Imvが拡縮される。すなわち、ズーム率が10%のズームイン区間を挟んで2つの移動区間画像Imv1,Imv2が存在する場合、ズームイン前の移動区間画像Imv1のみが10%だけ拡大されるか、ズームイン後の移動区間画像Imv2のみが10%だけ縮小される。あるいは、ズームイン前の移動区間画像Imv1を5%だけ拡大し、ズームイン後の移動区間画像Imv2を5%だけ縮小するようにしても良い。
ステップS14では、前記拡縮された各移動区間画像Imvが、前記パノラマ画像生成部15により時系列で結合され、被写体の全景を含むパノラマ画像Ipanoが生成される。この際、本実施形態では文献( W.Triggs, P.Mclauchlan, R. Hartley, and A. Fitzgibbon. Bundle adjustment : A modern synthesis. IN Vision Algorithms: Theory and Practice, number 1883 in LNCS, pages 298-373. Springer-Verlag, Corfu, Greece, September 1999.)に開示された手法を利用することにより、部分連結成分におけるカメラパラメータが推定され、この推定結果に基づいて、対応する部分領域を複数バンドのブレンドによりなめらかに結合できる。当該パノラマ画像Ipanoは、前記映像データVおよび紐付情報と共にデータベース16に蓄積される。
次いで、図10のフローチャートを参照して、前記データベース16に保持されたパノラマ画像Ipanoは、前記映像データVおよび紐付情報を用いた被写体の観察方法について説明する。
ステップS31では、図11に一例を示したように、前記パノラマ画像Ipanoがディスプレイ(図示省略)に出力される。このパノラマ画像Ipanoは、複数のフレーム画像を結合して生成されるため、その輪郭は各フレーム画像の輪郭を結んだ形状となっている。
ここで、パノラマ画像Ipanoを観察しているユーザが、さらに詳細に観察したい位置をパノラマ画像上で指定すると、これがステップS32で拡大要求と認識されてステップS33へ進む。ステップS33では、前記指定されたパノラマ画像上の位置座標が検出される。
ステップS34では、前記検出された位置座標と予め対応付けられている対応フレーム番号が、対応フレーム検出部17bにより、前記紐付情報に基づいて検出される。ステップS35では、図12に一例を示したように、フレーム番号に対応したフレーム画像が前記映像データから切り出され、前記指定箇所近傍の拡大映像として表示される。