以下、本発明を、実施形態をもって説明するが、本発明は後述する実施形態に限定されるものではない。なお、以下に参照する各図においては、共通する要素について同じ符号を用い、適宜、その説明を省略するものとする。
図1は、本実施形態の情報処理装置100を含む撮像システムの構成例を示す。撮像システムは、少なくとも1つの情報処理装置100と、少なくとも1つの撮像装置110とを含み、互いに通信可能に接続されている。図1に示す例では、3つの情報処理装置100a〜100cと、1つの撮像装置110とで構成され、3つの情報処理装置100a〜100cのそれぞれと、撮像装置110とが無線接続されている。
撮像装置110としては、全天球画像を撮像する全天球カメラを用いることができる。ここで、“全天球画像”とは、一度の撮像で全天球カメラを中心として概ね全方位を撮像した画像である。全天球画像は、必ずしも360°の全方位を撮像した画像でなくてもよく、例えば全天球カメラの持ち手の部分がある数度あるいは数十度の方位を除く画像も含まれる。全天球カメラは、ハードウェアとして、少なくとも2つの魚眼レンズ、少なくとも2つの撮像素子、コントローラ、通信インタフェースを含む。
魚眼レンズは、180°以上の画角を有する。画角は、カメラで撮像される画像の範囲を角度で表したものである。撮像素子は、魚眼レンズにより光が集光する位置(結像位置)に配置され、集光された光により形成される光学像を電気信号の画像データに変換して出力する。撮像素子としては、CMOSセンサやCCDセンサなどの画像センサを用いることができる。
撮像装置110は、例えば2つの魚眼レンズと、2つの撮像素子とを含み、2つの魚眼レンズは、互いに背面対向して配置され、互いに180°以上の方位を撮像した画像(半球画像)を撮像する。
コントローラは、各半球画像に対して所定の処理を行い、2つの半球画像を繋ぎ合わせて全天球画像を生成し、通信インタフェースを介して全天球画像を要求する情報処理装置100a〜100cへ送信する。なお、全天球カメラについて簡単に説明したが、本発明とは直接関係しないので、これ以上の詳細なハードウェア構成や機能などについては説明を省略する。
3つの情報処理装置100a〜100cは、撮像装置110と無線通信を行い、撮像装置110により撮像された全天球画像を、撮像装置110から取得し、表示する。したがって、情報処理装置100a〜100cは、撮像装置110との間で無線通信を行い、取得した全天球画像を表示し、その全天球画像に対して所定の処理を実行することができる装置であれば、いかなる装置であってもよい。図1に示す例では、情報処理装置100aが、スマートフォンとされ、情報処理装置100bが、タブレットPCとされ、情報処理装置100cが、ノートPCとされている。情報処理装置100は、これらの装置に限られるものではなく、デスクトップPC、デジタルカメラ、プロジェクタ、電子黒板、MFP(Multifunction Peripheral)などであってもよい。
図1に示す例では、3つの情報処理装置100a〜100cと、撮像装置110とが無線LAN等により無線接続されているが、これに限られるものではなく、ケーブルなどを使用して有線接続されていてもよい。また、3つの情報処理装置100a〜100cと、撮像装置110とは、無線または有線により直接接続されることに限られるものではなく、インターネットなどのネットワークを介して接続されていてもよい。
システム構成は以上の通りであるが、次に図2を参照して、本実施形態の情報処理装置100のハードウェア構成について説明する。図1に示す情報処理装置100a〜100cのいずれも、図2に示すハードウェア構成を採用することができる。
情報処理装置100は、装置全体の動作を制御するプロセッサ10と、ブートプログラムやファームウェアプログラムなどを保存するROM12と、プログラムの実行空間を提供するRAM13と、情報処理装置100を後述する各手段として機能させるためのプログラムやオペレーティングシステム(OS)などを保存するための補助記憶装置14と、ディスプレイ18などを接続するための入出力インタフェース15と、撮像装置110との間で通信を行うための通信インタフェース16とを備えている。
プロセッサ10は、補助記憶装置14からプログラムを読み出して実行し、通信インタフェース16を介して撮像装置110に対して全天球画像の取得を要求する。また、プロセッサ10は、プログラムの実行の下で、通信インタフェース16を介して取得した全天球画像を、RAM13や補助記憶装置14に保存し、ディスプレイ18に表示し、全天球画像に対して所定の処理を実行する。これらの詳細については後述する。
(第1実施形態)
図3は、本発明の第1実施形態である情報処理装置100の外観を示す。本実施形態の情報処理装置100は、ディスプレイ18を備える情報処理装置であり、上記の所定の処理を実行するためにプログラムとして、全天球画像に含まれる任意の領域を連続的に表示する動画を生成するためのアプリケーション・プログラム(以下、専用アプリという)がインストールされている。なお、図3に示す例では、情報処理装置100として、スマートフォンを示しているが、情報処理装置100は、スマートフォンに限定されるものではなく、上述したタブレットPC、ノートPC、デスクトップPCなどであってもよい。以下では、情報処理装置100として、スマートフォンを採用した場合を例にとって説明を行うものとする。
図3に示すように、専用アプリの操作画面は、領域20と、領域22と、領域23とを含んで構成されている。ここで、領域20には、全天球画像(3次元モデル)の一部の領域を射影変換した2次元画像が表示されるようになっている。また、領域22には、登録視点(後述する)のサムネイルが表示されるようになっている。さらに、領域23には、遷移速度(後述する)を設定するためのスライダーと、生成した動画をプレビュー再生するための「プレビュー」ボタンと、登録視点(後述する)を削除するための「削除」ボタンと、生成した動画を保存するための「保存」ボタンと、詳細設定を行うための「詳細設定」ボタンといった各種操作ボタンが表示されるようになっている。
続いて、図4に示す機能ブロック図に基づいて、情報処理装置100の機能構成を説明する。情報処理装置100は、プロセッサ10が上述した専用アプリを実行することで、情報処理装置100を各手段として機能させることから、専用アプリを実行する情報処理装置100は、各手段を備えているということができる。ここでは、専用アプリの実行により各手段として機能させることとして説明するが、これに限られるものではなく、一部または全部の機能について専用の回路などのハードウェアで実現してもよい。
図4に示すように、情報処理装置100は、上記の各手段として、表示部102と、制御部103と、演算部104と、視点管理部105と、視点制御部106と、動画データ生成部107とを含み、さらにRAM13や補助記憶装置14により実現される記憶領域108を含んで構成される。
表示部102は、ディスプレイ18に表示する画像を生成するとともに、ディスプレイ18にUIを表示して、ユーザの操作を受け付ける手段である。
視点管理部105は、全天球画像を所定の3次元オブジェクトの表面(例えば、球体の内面)にマッピングした3次元モデルにおいて、ユーザが指定する視点をその指定順に登録・管理する手段である。
視点制御部106は、全天球画像の3次元モデルにおいて、第1の視点から当該第1の視点の次に指定された第2の視点を補間する経路に沿って視点を遷移させる手段である。
演算部104は、各種画像処理や幾何学演算を実行する手段であり、上記経路上を遷移する各視点を中心とした部分画像を生成する手段である。ここで、本実施形態における“部分画像”とは、全天球画像の3次元モデル上の任意の視点を画像の中心とする一部の領域を射影変換した2次元画像を意味する。
制御部103は、生成された複数の部分画像を視点の遷移順に繋ぎ合わせたアニメーション表示を実行する手段である。
動画データ生成部107は、生成された複数の部分画像を汎用ファイル形式の動画データに変換する手段である。
記憶領域108は、各種データを記憶する手段である。
以上、情報処理装置100の機能構成について説明してきたが、続いて、本実施形態の専用アプリの使用方法を説明する。
本実施形態の情報処理装置100の表示部102は、スマートフォンのディスプレイ画面(タッチパネル)の領域20に演算部104が生成した部分画像を表示し、領域20に対するユーザの操作に応じて、全天球画像上の視点および画角の変更(パン・チルト・ズームイン・ズームアウト)を受け付ける。図5(a)〜(d)は、ユーザの操作に応じて、パン・チルト・ズームイン・ズームアウトされた部分画像を例示的に示す。
本実施形態の専用アプリの使用にあたり、まず、ユーザは、図6(a)に示すように、長押しあるいはダブルタップなどの所定の操作によって、領域20に表示される部分画像内の所望の位置を1番目の視点(視点1)として指定する。これを受けて、アプリ画面は、図6(b)に示す状態に遷移し、部分画像内のユーザが指定した位置に、視点1が登録されたことを示すアイコン21が表示されるともに、領域22に、視点1を呼び出すためのアイコン24がサムネイル表示される。
続いて、ユーザは、領域20を操作して視点を変更し、別の部分画像を表示させた後に、図7(a)に示すように、当該部分画像内の所望の位置を2番目の視点(視点2)として指定する。これを受けて、アプリ画面は、図7(b)に示す状態に遷移し、部分画像内のユーザが指定した位置に、視点2が登録されたことを示すアイコン21が表示されるともに、領域22の先ほどのアイコン24の隣に、視点2を呼び出すためのアイコン25がサムネイル表示される。
ここで、本実施形態では、登録した視点(以下、登録視点という場合がある)が2点以上になると、2点の登録視点を繋ぎ合わせてアニメーションとしてプレビュー再生することができるようになっている。
上述した例では、図7(b)に示すアプリ画面において、ユーザが領域23に表示される「プレビュー」ボタンを選択すると、図8に示すようなアニメーションが領域20に再生表示される。このプレビュー再生により、ユーザは、全天球画像のアニメーションが意図したものとなっているか否かを確認することができる。なお、視点2までアニメーションの再生表示が終了すると再生開始アイコン30が表示される。この再生開始アイコン30をタップすることにより、アニメーションのプレビューを再度実行するようにしてもよい。
本実施形態では、上述したように「視点1」と「視点2」という2つの視点(始点と終点)が登録された状態が最小構成となり、これ以降は、直近に登録された視点(終点)を次の始点と見立てて、新たな視点(終点)を登録する、という手順を繰り返すことによって登録視点を増やすことができる。なお、アプリケーションがアニメーション最初の起点(視点)をデフォルトで登録するようにしてもよく、その場合は、ユーザが最低1つの視点を指定すれば最小構成が成立する。
例えば、上述した2つの「視点1」、「視点2」に続けて、図9に示すような4つの視点(「視点3」、「視点4」、「視点5」、「視点6」)を追加することができる。なお、視点を登録する際には、領域20に表示される部分画像に対して、ズームイン・ズームアウト操作を行って画角を変更することができる。このように、画角の異なる視点を登録することにより、ズームイン・ズームアウトの演出をアニメーションの中に盛り込むことができるようになる。
図10(a)は、上述した6つの視点(視点1〜6)を登録した後のアプリ画面を示す。この場合、領域22には、6つの視点に対応する6つのアイコンがサムネイル表示されている。
本実施形態では、このように3つ以上の視点が登録されている場合には、最初の登録視点と最後の登録視点を除く任意の視点を始点として、途中からプレビュー再生することができるようになっており、これにより、アニメーションの確認時間を短縮することができる。
さらに、本実施形態では、領域22にサムネイル表示される視点のアイコンを介して各視点を呼び出し、その内容を編集することができるようになっている。
例えば、図10(b)に示すように、ユーザが「視点4」のアイコンを選択すると、領域20の表示が、「視点4」を中心とした部分画像に切り替わる。これを受けて、ユーザは、切り替わった部分画像を操作することによって、図10(b)、(c)に示すように、4番目の視点の内容を編集することができる。なお、図10(b)、(c)は、登録視点の座標を変更するケースを例示したが、同様の手順で視点を呼び出すことにより、視点に紐付いたその他のパラメータの編集を行うこともできる。
さらに、任意の視点のアイコンを選択した後に、領域23に表示される「削除」ボタンを選択することによって、当該視点を削除することもできる。さらに、任意の視点のアイコンを選択した後に、領域23に表示されるスライダーで「遷移速度(後述する)」を変更することもできる。
さらに、本実施形態では、図11(a)に示すように、ユーザが領域23に表示される「詳細設定」ボタンを選択すると、アプリ画面が図11(b)に示す詳細設定画面に遷移する。図11(b)に示すように、詳細設定画面は、領域26と、領域27と、領域28とを含んで構成されている。
領域26には、遷移速度を設定するためのスライダーと、遷移時間を設定するための数値入力ボックスが、各登録視点に対応付けられており、両者がラジオボタンによって択一的に選択されるようになっている。これにより、ユーザは、視点の遷移態様を、遷移速度または遷移時間で調整できるようになる。
ここで、“遷移速度”とは、全天球画像の3次元モデルにおける第1の視点と当該第1の視点の次に指定された第2の視点の間を補間する経路に沿って視点を遷移させる速度を意味し、“遷移時間”とは、視点が第1の視点から出発して第2の視点に至るまでに要する時間を意味する。
さらに、領域26には、イージングカーブを選択するためのプルダウンメニューが各登録視点に対応付けられており、これにより、ユーザは、視点の遷移態様をイージングカーブを用いて演出することができるようになる。ここで、イージングカーブとは、アニメーションの速度の時間変化を示すカーブであり、「linear」を設定した場合には、一定の速度で視点間を遷移する演出となり、「easeIn」を設定した場合には、始めゆっくり遷移して徐々に加速した後に一定の速度となる演出となり、「easeOut」を設定した場合には、「easeIn」の逆の演出となり、「easeInOut」が設定された場合には、「easeIn」と「easeOut」を併せたような演出となる。
本実施形態では、上述した各パラメータを「視点パラメータ」と呼ぶ。本実施形態では、各視点パラメータを視点間毎に個別的に設定することで、変化に富んだダイナミックなアニメーション表示を実行することが可能になる。
一方、領域27には、「全体設定」を選択するためのアイコンが表示されており、当該アイコンに対して、遷移速度を設定するためのスライダーと、遷移時間を設定するための数値入力ボックスと、イージングカーブを選択するためのプルダウンメニューが対応付けられている。「全体設定」を選択した場合、上述した各パラメータは、最初の視点から最後の視点に至る全体に対して適用されるので、アニメーション全体に統一感が生まれ、自然な挙動を演出することができる。「全体設定」は、例えば、同一方向に回転し続ける様なアニメーション表示を実行したい、といった場合に適している。
さらに、領域28には、視点パラメータのプリセット(プリセット1〜5)を選択するためのアイコンが表示されている。本実施形態では、事前に、代表的な視点の遷移パターン(遷移経路)とこれに対応する視点パラメータの1以上のセットをプリセットデータとして用意し、記憶領域108に保持しておくことができる。ユーザが領域28に表示されるアイコンを選択した場合、当該アイコンに対応するプリセットデータが記憶領域108から読み出され、それがユーザが読み込んだ全天球画像に適用されることにより、アニメーション表示が自動的に実行される。そして、この場合も、各視点を呼び出すためのアイコンが領域22にサムネイル表示される。この場合、ユーザは、プリセットデータに基づいて自動実行されたアニメーションをそのまま利用してもよいし、領域22に表示される任意の視点を編集してアニメーションをカスタマイズすることもできる。さらに、別の実施形態では、ユーザが作成したアニメーション表示に対応する視点パラメータのセットをプリセットとして記憶領域108に保存して再利用できるようにしてもよい。
さらに、本実施形態では、ユーザは、図12(a)に示すように、領域23に表示される「保存」ボタンを選択すると、アプリ画面は、図12(b)に示す状態に遷移する。この間、上述した手順で表示方法が作成されたアニメーションが表示画面のサイズでクロップされ、MPEGやAVIといった汎用的な動画ファイル形式の動画データに変換され、記憶領域108に保存される。なお、別の実施形態では、アニメーションを表示画面のサイズ以外の任意のクロップ領域でクロップしてもよく、また、アニメーションに任意の背景音声を合成してもよい。
このようにして汎用ファイル形式に変換された動画は、全天球画像の専用ビューワがなくても、標準的な動画再生アプリケーションで簡単に再生することができる。図12(c)は、変換された動画が標準的な動画再生アプリケーションで再生される様子を示す。よって、本実施形態によれば、全天球画像に基づいて作成された視点間を移動する部分画像を汎用的な動画ファイル形式に変換した動画像を動画投稿サイトに投稿したり、SNSで共有したりすることができる。
以上、本実施形態の専用アプリの使用方法について説明してきたが、続いて、情報処理装置100の上述した各手段(図4参照)が実行する具体的な処理の内容を説明する。ここでは、まず、情報処理装置100が視点登録時に実行する処理の内容を図13に示すシーケンス図に基づいて説明する。
まず、ユーザが上述した手順で視点を登録する操作を行うと(S1)、これに応答して、表示部102は、下記(1)および(2)の視点パラメータを読み込んで取得する(S2)。
(1)現在設定されている遷移速度または遷移時間
(2)現在設定されているイージングカーブ
次に、表示部102は、S2で取得したパラメータを引数として、ユーザより視点登録が要求されたことを制御部103に通知する(S3)。これを受けて、制御部103は、演算部104に対して、ユーザが指定した視点の画像座標(x,y)に対応する視点の球面座標(θ,φ)の計算を命令して、その計算結果を取得し(S4)、現在の表示倍率(初期画角に対するズーム倍率)の計算を命令して、その計算結果を取得する(S5)。
次に、制御部103は、表示部102から取得した上記(1)および(2)の視点パラメータと、演算部104から取得した視点座標(θ,φ)および表示倍率とを併せて、視点管理部105に通知して、新規の視点の登録を要求する(S6)。
これを受けて、視点管理部105は、図14(a)に示す視点情報管理テーブル500を新規に生成して、制御部103から通知された各値を登録する。図14(a)に示すように、視点情報管理テーブル500は、登録視点のインデックスを格納するためのフィールド501と、登録視点の水平角(θ)を格納するためのフィールド502と、登録視点の仰角(φ)を格納するためのフィールド503と、表示倍率を格納するためのフィールド504と、遷移速度を格納するためのフィールド505と、遷移時間を格納するためのフィールド506と、イージングカーブを格納するためのフィールド507とを含んで構成されており、視点管理部105は、S6で制御部103から通知された各値(以下、視点情報という)を該当するフィールドに格納する。
視点の登録が完了したことを受けて、制御部103は、登録視点のサムネイルアイコンを表示部102に返す(S7)。これを受けて、表示部102が当該アイコンを領域22にサムネイル表示して(S8)、視点登録が完了したことをユーザに示す。
以降、ユーザが視点登録操作を行う度に、上述したS1〜S8の処理が繰り返し実行され、これに伴って、視点情報管理テーブル500に、ユーザが指定する視点がその指定順に登録される。図14(b)は、6つの視点が登録された後の視点情報管理テーブル500を例示する。なお、直近の登録視点は、その時点の終点となり、終点に対応するレコードのフィールド505〜507には、値が無いことを表す情報(NONE)が格納される。本実施形態では、視点情報管理テーブル500は、全天球画像のメタデータとして対応付けられた状態で記憶領域108に保存される。
なお、上述した視点の編集操作に応答して、視点情報管理テーブル500の各フィールドの値が更新されることはいうまでもない。また、視点情報管理テーブル500は、全天球画像のメタデータとして使用する用途の他に、視点情報管理テーブル500の内容を単体でプリセットデータとして登録することもできる。さらに、視点情報管理テーブル500を、全天球画像と対応付けた状態、あるいは、それ単体で、外部のデータベースに出力することもできる。
以上、情報処理装置100が視点登録時に実行する処理について説明してきたが、続いて、情報処理装置100がプレビュー再生時に実行する処理の内容を図15に示すシーケンス図に基づいて説明する。
まず、ユーザが上述した手順でプレビュー再生の操作を行うと(S1)、これを受けて、表示部102は、ユーザよりアニメーションの再生が要求されたことを制御部103に通知する(S2)。
これを受けて、制御部103は、該当する全天球画像に係る視点情報を視点管理部105に要求し、視点管理部105から、該当する全天球画像に対応付けて記憶領域108に保存されている視点情報管理テーブル500に格納された視点情報のセットを取得する(S3)。
次に、制御部103は、1番目の登録視点(始点)と2番目の登録視点(終点)に係る視点情報のセットを引数として、視点制御部106にアニメーションの制御の開始を要求する(S4)。
これを受けて、視点制御部106は、1番目の登録視点(始点)から2番目の登録視点(終点)の間を補間する経路に沿って視点を遷移させる制御を実施する。具体的には、2つの登録視点間の距離と、1番目の登録視点(始点)から2番目の登録視点(終点)に遷移する遷移速度または遷移時間(1番目の登録視点に係る視点パラメータ)に基づいて、フレーム(アニメーションを構成する個々の部分画像)毎の視点の変位量を算出する(S5)。なお、S5では、1番目の登録視点(始点)と2番目の登録視点(終点)の間の最短距離を補間して視点が遷移するという前提で、視点の変位量を算出する。
フレーム毎の視点の変位量の算出を終えると、視点制御部106は、制御部103に対してアニメーションの開始を通知する(S6)。その後、視点制御部106は、フレーム数にフレーム期間を乗じた値が遷移時間を超えるまでの間、制御部103に対して、フレーム毎に視点の変位量を通知することを繰り返す(S7)。
一方、視点制御部106から視点の変位量を通知されたことを受けて、制御部103は、演算部104に視点移動の演算処理を要求し、その演算結果として、変位した視点を中心とする部分画像を取得する(S9)。これを受けて、制御部103は、S9で取得した部分画像を表示部102に渡して、表示の更新を要求する(S10)。
一方、フレーム数にフレーム期間を乗じた値が遷移時間を超えた時点で、視点制御部106は、1番目の登録視点(始点)から2番目の登録視点(終点)に至るアニメーションが終了したことを制御部103に通知し(S8)、後処理とともに次の遷移の処理へと移行する。以後、登録している視点のセット(始点と終点)の数だけS4〜S10の処理が繰り返し実行され、アニメーション回数が登録視点の総数に達した時点で、制御部103がアニメーション完了を表示部102に通知する(S11)。
以上の手順により、制御部103は、演算部104が生成した複数の部分画像を視点の遷移順に繋ぎ合わせたアニメーションを実行する。
なお、本実施形態では、視点の補間に加えて、2つの登録視点間で画角を補間して遷移することが好ましい。この場合、視点制御部106は、2つの登録視点間の表示倍率の差分からフレーム毎の画角の変位量を算出し、演算部104は、算出された画角の変位量に基づいてフレーム毎に画角が変化した部分画像を生成する。これにより、アニメーションにおいて、なめらかなズームイン・ズームアウト表現が可能になる。
さらに、動画データ生成部107は、演算部104が生成した複数の部分画像をMPEGやAVIといった汎用的な動画ファイル形式の動画データに変換して、記憶領域108に保存する。
以上、説明したように、本実施形態によれば、ユーザに視点の探索や選択の手間をかけること無く、全天球画像の注目領域を動画でわかりやすく提示することができる。
以上、本発明の第1実施形態を説明してきたが、続いて、本発明の第2実施形態を説明する。なお、以下では、第1実施形態の内容と共通する部分の説明を省略し、専ら、第1実施形態との相違点のみを説明するものとする。
(第2実施形態)
先に説明した第1実施形態では第1の登録視点(始点)と第2の登録視点(終点)の間の最短距離を補間して視点が遷移するという前提に立って、視点制御部106が視点の変位量を算出していたが、第2実施形態では、視点が遷移する方向を視点パラメータとしてユーザが設定できる点で第1実施形態と異なる。
第2実施形態では、図16(a)に示すように、ユーザが領域20に表示される部分画像内に視点を指定すると、アプリ画面は、図16(b)に示す状態に遷移し、部分画像内に視点が登録されたことを示すアイコン29が表示される。
このアイコン29は、部分画像の上下方向(チルト方向)および左右方向(パン方向)を指定するための4つの矢印型の方向指示ボタンを備えており、図16(c)に示すように、ユーザがいずれかの方向指示ボタンを選択したことに応答して、次に登録される視点に遷移する遷移方向が設定されるようになっている。なお、図16では、上下左右の四方向を指示する方向指示ボタンを例示したが、八方向など、遷移方向をより細かく設定できるようにしてもよい。また、方向指示ボタンは2つ目以降の視点の登録時に矢印の向きを登録中の視点に向かうように表示して、1つ前の視点から登録中の視点に対してどの方向で視点を遷移するかを指定するようにしてもよい。
図17(a)〜(d)は、アイコン29における方向指示ボタンの選択と、第1の登録視点から第2の登録視点に至る遷移方向の対応関係を示す。第2実施形態では、視点を登録時に、遷移方向の指定を受け付けることによって、図17に示すように、視点の遷移経路につき、最短の経路に加えて、遠回りの経路を設定することができ、アニメーションの演出バリエーションが豊富になる。
なお、第2実施形態では、視点登録時に設定される遷移方向が視点パラメータとして、視点情報管理テーブルに登録される。図14(c)は、第2実施形態で作成される視点情報管理テーブル550を示す。図14(c)に示すように、視点情報管理テーブル550は、上述したフィールド501〜507に加えて、遷移方向を格納するためのフィールド508を備えている。
以上、本発明の第2実施形態を説明してきたが、続いて、本発明の第3実施形態を説明する。なお、以下では、先の実施形態の内容と共通する部分の説明を省略し、専ら、相違点のみを説明するものとする。
(第3実施形態)
先の実施形態では、(1)プリセットデータを用いたアニメーションの自動実行、(2)アニメーションのクロップ、(3)アニメーションと背景音声の合成、について概略的に述べたが、第3実施形態では、他の実装例に基づいて上記(1)〜(3)を具体的に説明する。
図18(a)は、本実施形態のプリセットデータ600を示す。本実施形態のプリセットデータ600は、全天球画像における2以上の視点を順序付けて登録したものであり、アニメーションの生成において、視点情報管理テーブル500(図14参照)と同等の役割を果たすデータである。本実施形態では、1以上のプリセットデータ600が記憶領域108に保持されていることを前提とする。
図18(a)に示すように、プリセットデータ600は、登録視点のインデックスを格納するためのフィールド601と、登録視点の水平角(θ)を格納するためのフィールド602と、登録視点の仰角(φ)を格納するためのフィールド603と、表示倍率(初期画角に対するズーム倍率)を格納するためのフィールド604とを含んで構成されている。なお、本実施形態では、プリセットデータ600を用いる場合に、先に説明した「全体設定」と同様に、視点の全体に対して共通の「遷移速度」および「イージングカーブ」を適用するため、プリセットデータ600には、「遷移速度」および「イージングカーブ」が登録されない。
また、本実施形態においては、1以上の「クロップ領域」が記憶領域108に保持されていることを前提とする。ここでいう「クロップ領域」とは、生成したアニメーション画像をクロップする領域を定義するための矩形フレームであり、本実施形態では、任意のアスペクト比を持った矩形フレームを「クロップ領域」として登録することができる。
さらに、本実施形態においては、1以上の「背景音声」が記憶領域108に保持されていることを前提とする。ここでいう「背景音声」とは、任意の音声データであり、好ましい実施形態では、ユーザが所望の音声データを「背景音声」として登録できるようにしてもよい。
図19(a)は、本実施形態におけるアプリ画面を示す。図19(a)に示すように、本実施形態では、アプリ画面の領域23に、プリセットデータを呼び出すための「プリセット」ボタンが表示され、ユーザが「プリセット」ボタンを選択すると、アプリ画面は、図19(b)に示すプリセット利用画面に遷移するようになっている。
図19(b)に示すように、本実施形態のプリセット利用画面は、領域40と、領域42と、領域43と、領域44とを含んで構成されている。本実施形態では、領域40に全天球画像の部分画像が表示される。また、領域43には、プリセットデータ600を呼び出すための「プリセット」ボタンと、背景音声を呼び出すための「サウンド」ボタンと、クロップ領域を呼び出すための「クロップ」ボタンと、遷移速度を設定するための「遷移速度」ボタンが表示されている。さらに、領域44には、プレビュー再生を要求するための「プレビュー」ボタンと、生成した動画を保存するための「保存」ボタンが表示されている。なお、領域42は、領域43に表示された各ボタンに対応するUIが表示される領域となる。
本実施形態では、ユーザが「プリセット」ボタンを選択すると、図20(a)に示すように、記憶領域108に保持されているプリセットデータ600に対応するアイコンが領域42に選択可能に表示される。これを受けて、ユーザがいずれかのアイコンを選択すると、当該アイコンに対応するプリセットデータ600が記憶領域108から読み出され、一時記憶にセットされる。なお、図20(a)に示す例では、各アイコンにプリセットデータ600の内容を抽象化したイメージが表示されている。
また、ユーザが「サウンド」ボタンを選択すると、図20(b)に示すように、記憶領域108に保持された背景音声に対応するアイコンが領域42に選択可能に表示される。ユーザがいずれかのアイコンを選択した場合、記憶領域108から対応する音声データが読み出され、背景音声として設定される。なお、ユーザが背景音声を選択しない場合は、デフォルト値(無音)が設定される。
また、ユーザが「遷移速度」ボタンを選択すると、図20(c)に示すように、遷移速度を設定するためのスライダーが領域42に表示される。ユーザがこのスライダーを操作して遷移速度を指定した場合、指定された遷移速度がアニメーションを生成する際の視点の遷移速度として設定される。なお、ユーザが遷移速度を指定しない場合は、デフォルト値(所定の遷移速度)が設定される。また、イージングカーブについては、常にデフォルト値(例えば、「linear」)が設定される。
さらに、ユーザが「クロップ」ボタンを選択すると、図21(a)に示すように、記憶領域108に保持されたクロップ領域に対応するアイコンが領域42に選択可能に表示される。これを受けて、ユーザがいずれかのアイコンを選択した場合、記憶領域108から対応する矩形パターンが読み出され、クロップ領域として設定される。
例えば、ユーザがクロップ領域として「2:1」を選択した場合、アニメーションは、図21(b)に示す態様でクロップされる。また、ユーザがクロップ領域として「フリー」を選択した場合、図21(c)に示すように、領域40上に矩形の枠45が表示される。ここで、枠45は、その大きさが可変となっており、ユーザが手動で枠45の大きさを任意に変えることによって、クロップ領域を自由に設定できるようになっている。なお、ユーザがクロップ領域を選択しない場合は、デフォルト値(例えば、表示画面のサイズ)が設定される。
本実施形態では、ユーザは、必要に応じて、上述した各値(「プリセットデータ」、「背景音声」、「遷移速度」、「クロップ領域」)を何度でも設定し直すことができ、その度にプレビュー再生することができる。
例えば、図22(a)に示すように、ユーザが領域42に表示されたアイコンQを選択した後に、「プレビュー」ボタンを選択すると、これに応答して、制御部103が、視点管理部105を介して記憶領域108からアイコンQに対応するプリセットデータ600を取得する。その後、取得されたプリセットデータ600に格納された視点と表示倍率(画角)のセットに基づき、制御部103、視点制御部106、演算部104および表示部102が協働してプレビュー再生(アニメーション表示)を実行する。なお、プレビュー再生時に実行される処理の内容は、視点情報管理テーブル500の代わりにプリセットデータ600が用いる点を除いて、図15で説明した内容と実質的に同じなので、ここでは詳細な説明を省略する。
図22(b)は、プレビュー再生が終了した時点の画面を示す。このとき、領域40には、アニメーションの最終フレーム画像が停止した状態で映し出される。ここで、このアニメーションを動画投稿サイトやSNSに公開して評価を受けることを考えた場合、視聴者が最後に目にすることになる最終フレーム画像の印象が、そのアニメーションに対する評価を決定づける可能性がある。また、公開されるアニメーションのサムネイルに最終フレーム画像が使用されることも少なくない。
ここで、プリセットデータ600を利用する場合、アニメーションの最終フレーム画像は、そのプリセットデータ600の最後順に登録された視点と画角によって決まるが、そのようにして偶然的に決まった最終フレーム画像の内容が必ずしもユーザの希望に添うものになるとは限らない。例えば、アニメーション全体が非常に興味深いものであったとしても、その最終フレーム画像がたまたま特徴に乏しい画像であった場合、ネガティブな印象が視聴者に残る可能性があり、また、特徴に乏しい画像がサムネイルになったのでは、視聴者の興味を十分に引きつけられない可能性がある。
この点につき、本実施形態では、図22(b)に示すように、プレビュー再生終了時に、領域40に終点調整ボタン50が表示される。ユーザは、この終点調整ボタン50を選択することによって、アニメーションの最終フレーム画像を所望の内容に変更することができるようになる。
ユーザが終点調整ボタン50を選択した場合、表示部102は、プリセットデータ600に登録された最後順の視点と当該視点に紐付いた画角の変更を受け付けるために、領域40を、ユーザの画面操作(パン・チルト・ズームイン・ズームアウト)を受け付ける状態に遷移させる。これを受けて、ユーザが、図22(c)に示すように、領域40を操作して新たな視点および画角を指定すると、制御部103は、その時点で一時記憶にセットされているプリセットデータ600に登録された最後順の視点および当該視点に紐付いた画角を、ユーザが新たに指定した視点および画角に置き換えて更新する。図18(b)は、プリセットデータ600に登録された最後順の視点6の座標と表示倍率(画角)の値が置き換わった様子を示す。このとき、新たな視点が登録されたことを示すアイコン21が領域40に表示される。なお、ユーザが終点調整ボタン50を選択した場合に実行される処理は、先の実施形態において、視点のアイコンを選択して視点の内容を編集する際に実行される処理(図10参照)と実質的に同じなので、ここでは詳細な説明を省略する
このタイミングで、ユーザが「プレビュー」ボタンを選択すると、更新後のプリセットデータ600に基づいてアニメーションが生成される。すなわち、この場合、視点制御部106は、変更された最後順の視点に基づいて補間した経路に沿って視点を遷移させ、演算部104は、変更された経路に沿って遷移する視点ならびに変更された最後順の画角に基づいて部分画像を生成し、制御部103は、そのようにして生成された複数の部分画像を繋ぎ合わせたアニメーションを領域40に表示する。このとき、制御部103は、その時点で設定されているクロップ領域に基づいてアニメーションをクロップし、その時点で背景音声が設定されている場合は、その背景音声をアニメーションと同期して再生する。
一方、このタイミングで、ユーザが「保存」ボタンを選択すると、動画データ生成部107は、上述したのと同様の手順で作成された複数の部分画像を汎用的な動画ファイル形式の動画データに変換して、記憶領域108に保存する。このとき、動画データ生成部107は、その時点でクロップ領域が設定されているクロップ領域に基づいてアニメーションをクロップし、その時点で背景音声が設定されている場合は、その背景音声を動画データに合成する。
以上、説明したように、本実施形態によれば、予め用意されたプリセットデータを利用することで簡単に全天球画像の注目領域を提示する動画を生成することができる。また、本実施形態によれば、プリセットデータを利用する場合であっても、動画の最後を意図した画像で締めくくることができるようになる。
ここまで本発明の第3実施形態を説明してきたが、続いて、本発明の第4実施形態を説明する。なお、以下では、先の実施形態の内容と共通する部分の説明を省略し、専ら、相違点のみを説明するものとする。
(第4実施形態)
先に説明した第1実施形態から第3実施形態までは、全天球画像における視点や画角といったパラメータを変更することにより、多くの映像表現を可能にしている。しかしながら、パラメータは、これらに限られるものではなく、これら以外のパラメータも調整することで、例えば投影方式(プロジェクションタイプ)を変えることができ、躍動感のある(ダイナミックな)映像表現が可能となる。
プロジェクションタイプは、3次元物体(3次元オブジェクト)の表面(例えば球体の内面)に貼り付けられる(マッピングされる)全天球画像を2次元平面上に表現する方法であり、地図投影法に類似するものである。プロジェクションタイプについて説明する前に、映像表現を変更するためのパラメータについて説明する。
全天球画像は、所定の3次元オブジェクトの表面にマッピングされる。図23は、X軸、Y軸、Z軸の3つの軸で表される3次元空間のうちのY軸とZ軸で表される2次元平面上に球体200を表現した図である。なお、Y軸は、高さ方向(鉛直方向)で、Z軸は、地面に対して平行な水平方向の1つである。図23では、球体200の中心を原点201とし、原点201を通るZ軸上の球体200の外側に、部分画像を生成するために該部分画像を撮像して取得するカメラ202が配置されている。これらの球体200、カメラ202は、仮想的なものである。
パラメータには、第1実施形態から第3実施形態で説明したように、部分画像内の所望の位置として指定される視点と、カメラ202の視野範囲の角度を示す画角αがある。
パラメータには、そのほか、図23に示すようなカメラ202の位置を示す情報であるカメラ座標、カメラ202の上方向を示す情報である該上方向をベクトルで表現したカメラUP、カメラ202が注目している位置(注視点)を示す情報であるカメラ注視点座標、全天球画像をマッピングする3次元オブジェクトである球体200の半径などがある。
これらのパラメータは一例であり、その他のパラメータを含んでいてもよい。なお、これらのパラメータは、プロジェクションタイプを変えるために必要なパラメータである。
図23に示す例では、球体200の半径が1、注視点が球体200の原点201、画角αが120°、カメラ座標が(0,0,−1.8)、カメラUPが(0,1,0)に設定されている。
実際に、プロジェクションタイプとしてどのようなものがあるかについて、図24〜図26を参照して説明する。なお、図24〜図26に示すプロジェクションタイプは、一例であるため、これらのタイプに限定されるものではない。以下、図23に示した例と同様、全天球画像は、球体200の表面にマッピングされているものとし、球体200の半径を1、球体200の中心を原点201とし、Y軸とZ軸で表される2次元平面上に球体200を表現した図を使用して説明する。
図24は、球体200の外側にカメラ202を配置して見ている状態を表現するプロジェクションタイプ(第1のタイプ)を示す。第1のタイプは、ミラーボールの表面に広範囲の画像(パノラマ画像)を貼り付けたような映像を表現することができる。
第1のタイプは、図24(a)に示すように、注視点を球体200の中心を示す原点201とし、カメラ202が球体200の外側のZ軸上に原点201から球体200の半径より大きい、例えば1.8ほど離れた位置にあり、画角が、例えば120°とされる。このため、パラメータは、図24(b)に示すように、画角120°、カメラ注視点座標(0,0,0)、カメラ座標(0,0,−1.8)、カメラUP(0,1,0)とされる。
図25は、カメラ202のY座標を球体200の半径と同等にし、球体200の内部全体を上から見下ろした状態を表現するプロジェクションタイプ(第2のタイプ)を示す。第2のタイプは、小さな惑星の上に人や建物などが立っているような映像を表現することができる。
第2のタイプは、図25(a)に示すように、限りなく境界に近い球体200の内側にカメラ202を配置し、画角を超広角(170°以上)とし、注視点を原点201とする。このため、パラメータは、図25(b)に示すように、例えば画角が170°とされ、カメラ注視点座標(0,0,0)、カメラ座標(0,1,0)、カメラUP(0,0,1)とされる。
図26は、原点201にカメラ202を配置し、原点201から球体200を見ている状態を表現するプロジェクションタイプ(第3のタイプ)を示す。第3のタイプは、中心から周囲に向かって放射状に引き伸ばしたイメージを表現することができる。
第3のタイプは、図26(a)に示すように、原点201にカメラ202を配置し、球体200の表面を表す円周とZ軸との交点を注視点とする。このため、パラメータは、図26(b)に示すように、例えば画角が205°とされ、カメラ注視点座標(0,0,1)、カメラ座標(0,0,0)、カメラUP(0,1,0)とされる。
第1実施形態から第3実施形態までは、プロジェクションタイプを、例えば第1のタイプとして視点1、視点2、…を登録し、2点の登録視点を繋ぎ合わせてアニメーションとしてプレビュー再生を実行している。したがって、どの視点でも、プロジェクションタイプが同一である。また、注視点も、原点201であるため、パラメータとして考慮していない。
第4実施形態では、視点1については第1のタイプ、視点2については第2のタイプといったように、異なるプロジェクションタイプで各視点や各注視点などを登録し、視点や注視点などの遷移に伴ってプロジェクションタイプが変更されるようにプレビュー再生を実行する。
図27を参照して、プロジェクションタイプを選択する方法について説明する。ユーザは、表示する全天球画像のファイルを選択し、任意のプロジェクションタイプの部分画像を表示させた後、表示された部分画像の領域20に対してパン・チルト・ズームイン・ズームアウトなどの操作を行う前に、必要に応じて、図27(a)に示すスマートフォンのディスプレイ画面(タッチパネル)の領域23に表示される「タイプ選択」ボタンを選択し、図27(b)に示すプロジェクションタイプを選択する画面に切り替える。
ユーザは、図27(b)に示す画面の領域46に表示される「第1のタイプ」、「第2のタイプ」、「第3のタイプ」のうちの1つのボタンを選択する。任意のプロジェクションタイプは、デフォルトで設定されたプロジェクションタイプで、ユーザは、任意のプロジェクションタイプ以外のプロジェクションタイプで視点の登録を行いたい場合に、所望するプロジェクションタイプを選択することができる。図27(b)に示す例では、「第2のタイプ」を選択している。選択後は、選択されたプロジェクションタイプの部分画像に切り替わり、その部分画像が表示される領域20の上側にある元の画面に戻るボタン51を押下し、図27(a)に示す画面に戻ることができる。
本実施形態の情報処理装置100では、表示部102が、ユーザの操作に応じて、プロジェクションタイプの選択を受け付ける。表示部102は、現在表示している部分画像を、選択されたプロジェクションタイプの部分画像に切り替えて更新する。なお、プロジェクションタイプが選択されず、プロジェクションタイプが変更されない場合は、この処理は実行されない。
詳細には、表示部102は、プロジェクションタイプの選択を受け付け、図24(b)、図25(b)、図26(b)に示したような投影情報としてのパラメータのうちの、選択されたプロジェクションタイプで投影するための当該タイプと紐付けられたパラメータを取得し、取得したパラメータを使用して、選択されたプロジェクションタイプの部分画像を生成し、現在表示している部分画像から生成した部分画像に切り替える。
その後、ユーザは、第1実施形態から第3実施形態と同様に、長押しあるいはダブルタップなどの所定の操作によって、領域20に表示される部分画像内の所望の位置を視点1として指定する。視点1を指定する際、ズームインまたはズームアウトし、表示倍率を変更してもよい。これを受けて、アプリ画面は、部分画像内のユーザが指定した位置に、視点1が登録されたことを示すアイコンを表示するとともに、領域22に、視点1を呼び出すためのアイコンをサムネイル表示する。
続いて、ユーザは、必要に応じて、領域23に表示される「ビュー選択」ボタンを選択し、画面を切り替え、領域46に表示される「第1のタイプ」、「第2のタイプ」、「第3のタイプ」のうちの1つのボタンを選択する。表示部102は、現在表示している部分画像を選択されたプロジェクションタイプの部分画像に切り替えて更新する。この場合も、プロジェクションタイプが選択されず、プロジェクションタイプが変更されない場合は、この処理は実行されない。
その後、ユーザは、表示された部分画像内の所望の位置を視点2として指定する。視点2を指定する際、ズームインまたはズームアウトし、表示倍率を変更してもよい。これを受けて、アプリ画面は、その部分画像内のユーザが指定した位置に、視点2が登録されたことを示すアイコンを表示するとともに、領域22に、視点2を呼び出すためのアイコンをサムネイル表示する。
このような操作を繰り返し、視点1、視点2に続けて、視点3、視点4、…を追加することができる。この場合も、登録視点が2点以上になると、2点の登録視点を繋ぎ合わせてアニメーションとしてプレビュー再生することができる。
ここで、情報処理装置100が視点登録時に実行する処理の内容を図28に示すシーケンス図に基づいて説明する。ユーザは、視点を登録する操作を行う前に、プロジェクションタイプを選択する(S1)。これに応答して、表示部102は、選択されたプロジェクションタイプに紐付けられたパラメータを取得する。
パラメータは、プロジェクションタイプ毎に設定された部分画像を表示するために使用されるカメラ座標などの値で、視点管理部105によりテーブルを使用して管理される。テーブルは、具体的には図24(b)、図25(b)、図26(b)に示すようなテーブルである。したがって、表示部102は、視点管理部105に対して選択されたプロジェクションタイプを通知し、通知したプロジェクションタイプに紐付けられたパラメータを取得する。このパラメータは、予め設定されたカメラ座標などの初期値(デフォルト値)である。
選択されたプロジェクションタイプが第1のタイプで、パラメータとしてカメラ座標、画角、カメラ注視点座標、カメラUPを取得した場合、表示部102は、当該半径の球体200の表面に全天球画像をマッピングし、当該カメラ座標にカメラ202を配置し、当該カメラUPの方向をカメラ202の上方向とし、当該画角で、当該カメラ注視点座標に焦点を合わせた部分画像を生成し、現在表示している部分画像から生成した部分画像に切り替えて更新する。
ユーザによる視点を登録する操作(S3)から現在の表示倍率の計算結果の取得(S7)までは、図11に示したS1からS5までの処理と同様であるため、ここでは説明を省略する。視点を登録する操作では、視点を変更し、表示倍率も変更するため、S6で視点座標を算出し、S7で表示倍率を算出している。視点を登録する操作では、視点の変更などによって、カメラ202の上方向やカメラ座標が変わるため、これらも算出しなければならない。
そこで、制御部103は、演算部104に対して、カメラUPの計算を命令して、その計算結果を取得する(S8)。カメラUPは、視点を指定する際の全天球画像の上方向の情報と、S6で算出された視点座標(視点の球面座標)と、カメラ注視点座標とに基づき算出される。カメラ注視点座標は、第1のタイプ、第2のタイプについては球体200の原点201の座標(0,0,0)であるため、算出する必要はないが、第3のタイプについては、原点201から視点座標に基づいて決定されるカメラ202が見る方向に延びる直線と球体200の表面を表す円周とが交差する点の座標として算出される。カメラUPは、カメラ202が見る方向に延びる直線に対して垂直な方向であって、画像の上方向をカメラの上方向としたベクトルとして算出される。カメラ注視点座標を計算する必要がある場合、ここで計算を命令し、その計算結果を取得することができる。
制御部103は、演算部104に対して、カメラ座標の計算を命令して、その計算結果を取得する(S9)。カメラ座標は、S6で算出された視点座標と、S7で算出された表示倍率と、カメラ注視点座標とに基づき算出される。表示倍率は、その倍率に応じて画角を変化させ、画角に応じて注視点からカメラ202までの距離を決定する焦点距離を変化させる。このため、カメラ座標は、例えば表示倍率から、注視点からカメラ202までの距離を算出し、視点座標に基づいて決定されるカメラ202が見る方向とその距離とから算出することができる。なお、ここで例示した算出方法は一例であるため、カメラUPおよびカメラ座標を算出することができれば、これらの方法に限定されるものではない。
その後は、図11に示したS6からS8までの処理と同様であるため、ここでは説明を省略する。なお、パラメータ登録(S10)では、視点管理部105が各値を視点情報管理テーブルに登録するが、第4実施形態における視点情報管理テーブルは、選択されたプロジェクションタイプ、カメラUP、カメラ座標、カメラ注視点座標を格納するためのフィールドを含み、選択されたタイプ、算出された各値を該当するフィールドに格納する。画角については、初期画角に対するズーム倍率である表示倍率として格納することもできるし、表示倍率とは別に画角の値を格納してもよい。
以降、ユーザが視点登録操作を行う度に、S1〜S12の処理が繰り返し実行され、これに伴って、視点管理テーブルに、ユーザが指定する視点がその指定順に登録される。
次に、視点を登録した後に、プロジェクションタイプが異なる2つの登録視点間でプレビュー再生する際の視点の遷移について、図29〜図31を参照して説明する。
図29は、第1のタイプに設定した視点1から第2のタイプに設定した視点2への遷移について説明する図である。図29(a)中、「A」は、第1のタイプを示す図24(a)と同様の状態で、「C」は、第2のタイプを示す図25(a)と同様の状態である。「B」は、遷移途中の状態である。図29〜図31においては、説明を容易にするために、「B」における視点が、「A」における視点1と「C」における視点2の中間の位置にあるものして説明する。
「A」の状態から「C」の状態に遷移する場合、いずれの状態も注視点は同じ位置(原点201)となるが、画角、カメラ座標、カメラUPは変化する。このため、視点間を補間する経路に沿って視点を遷移させるとともに、画角、カメラ座標、カメラUPも視点間で補間して遷移させる。
「A」、「C」の状態におけるパラメータは、図24(b)、図25(b)に示したパラメータと同じであるため、ここでは説明を省略する。遷移途中の状態における画角は、視点制御部106により「A」、「C」の状態における画角を用いて算出される。具体的には、視点制御部106が、視点1における画角と視点2における画角との差分に基づいて、フレーム毎の画角の変位量を算出する。
図29(b)に示すように、「A」の状態の視点1における画角が120°で、「C」の状態の視点2における画角が170°であるため、その差分は50°である。「B」の状態に遷移したときの画角は、視点1における画角に、視点1から中間の位置までのフレーム数の画角の変位量の和を加算することにより算出される。この例では、視点1における画角120°に、当該変位量の和である、差分50°の半分の25°を加算して145°と算出される。
遷移途中の状態におけるカメラ座標は、視点制御部106により「A」、「C」の状態におけるカメラ座標を用いて算出される。具体的には、視点制御部106が、視点1におけるカメラ座標と視点2におけるカメラ座標との間の距離に基づいて、フレーム毎のカメラ座標の変位量を算出する。
「B」の状態に遷移したときの座標は、視点1におけるカメラ座標に、視点1から中間の位置までのフレーム数のカメラ座標の変位量の和を加算することにより算出される。この例では、視点1のカメラ座標(0,0,−1.8)に、変位量の和である、視点1と視点2の間のY軸方向の距離1、Z軸方向の距離1.8の半分の0.5、0.9を変位するy座標、z座標につき加算し、(0,0.5,−0.9)と算出される。両方を加算するのは、視点1から視点2に向けてy座標も、z座標も値が大きくなる方向に遷移するからである。
遷移途中の状態におけるカメラUPは、視点制御部106により「A」、「C」の状態におけるカメラUPを用いて算出される。具体的には、視点制御部106が、視点1におけるカメラUPと視点2におけるカメラUPとから得られる回転角度に基づいて、フレーム毎のカメラUPの変位量を算出する。
「B」の状態に遷移したときのカメラUPは、視点1におけるカメラUPに、視点1から中間の位置までのフレーム数のカメラUPの変位量の和を加算、もしくは減算、またはその両方を行うことにより算出される。図29(b)に示すように、視点1におけるカメラUPが(0,1,0)で、視点2におけるカメラUPが(0,0,1)であるため、カメラ202の上向き方向はY軸方向からZ軸方向に90°回転していることを示す。この例では、カメラUP(0,1,0)に、変位量の和である、回転角度90°の半分の45°に相当する0.5、0.5を変位するy座標につき減算し、z座標につき加算し、(0,0.5,0.5)と算出される。y座標を減算し、z座標を加算するのは、視点1から視点2に向けてy座標は小さく、z座標は値が大きくなる方向に遷移するからである。
図30は、第2のタイプに設定した視点1から第3のタイプに設定した視点2への遷移について説明する図である。図30(a)中、「A」は、第2のタイプを示す図25(a)と同様の状態で、「C」は、第3のタイプを示す図26(a)と同様の状態である。「B」は、遷移途中の状態である。
「A」の状態から「C」の状態に遷移する場合、画角、カメラ座標、カメラUP、カメラ注視点座標のすべてが変化する。このため、視点間を補間する経路に沿って視点を遷移させるとともに、画角、カメラ座標、カメラUP、カメラ注視点座標も視点間で補間して遷移させる。
「A」、「C」の状態におけるパラメータは、図25(b)、図26(b)に示したパラメータと同じであるため、ここでは説明を省略する。遷移途中の状態における画角は、視点制御部106により「A」、「C」の状態における画角を用いて、図29を参照して説明した方法と同様の方法で算出される。
この例では、「B」の状態に遷移したときの画角は、視点1における画角170°に、変位量の和である、差分35°の半分の17.5°を加算して187.5°と算出される。
遷移途中の状態におけるカメラ座標は、視点制御部106により「A」、「C」の状態におけるカメラ座標を用いて、図29を参照して説明した方法と同様の方法で算出される。
この例では、「B」の状態に遷移したときのカメラ座標は、視点1のカメラ座標(0,1,0)に、変位量の和である、視点1と視点2の間のY軸方向の距離1の半分の0.5を変位するy座標につき減算し、(0,0.5,0)と算出される。
遷移途中の状態におけるカメラUPは、視点制御部106により「A」、「C」の状態におけるカメラUPの値を用いて、図29を参照して説明した方法と同様の方法で算出される。
図30(b)に示すように、視点1におけるカメラUPが(0,0,1)で、視点2におけるカメラUPが(0,1,0)であるため、カメラ202の上向き方向はZ軸方向からY軸方向に90°回転していることを示す。この例では、カメラUP(0,0,1)に、変位量の和である、回転角度90°の半分の45°に相当する0.5、0.5を変位するy座標につき加算し、z座標につき減算し、(0,0.5,0.5)と算出される。
遷移途中の状態におけるカメラ注視点座標は、視点制御部106により「A」、「C」の状態におけるカメラ注視点座標を用いて算出される。具体的には、視点制御部106が、視点1における注視点1と視点2における注視点2の距離に基づいて、フレーム毎の注視点の変位量を算出する。
「B」の状態に遷移したときのカメラ注視点座標は、視点1におけるカメラ注視点座標(0,0,0)に、変位量の和である、視点1における注視点と視点2における注視点のZ軸方向の距離1の半分の0.5を変位するz座標につき加算し、(0,0,0.5)と算出される。
図31は、第3のタイプに設定した視点1から第1のタイプに設定した視点2への遷移について説明する図である。図31(a)中、「A」は、第3のタイプを示す図26(a)と同様の状態で、「C」は、第1のタイプを示す図24(a)と同様の状態である。「B」は、遷移途中の状態である。
「A」の状態から「C」の状態に遷移する場合、いずれの状態もカメラUPは同じであるが、画角、カメラ座標、注視点は変化する。このため、視点間を補間する経路に沿って視点を遷移させるとともに、画角、カメラ座標、カメラ注視点座標を視点間で補間して遷移させる。
「A」、「C」の状態におけるパラメータは、図26(b)、図24(b)に示したパラメータと同じであるため、ここでは説明を省略する。遷移途中の状態における画角は、視点制御部106により「A」、「C」の状態における画角を用いて、図29を参照して説明した方法と同様の方法で算出される。
この例では、「B」の状態に遷移したときの画角は、視点1における画角205°に、変位量の和である、差分85°の半分の42.5°を減算して162.5°として算出される。
遷移途中の状態におけるカメラ座標は、視点制御部106により「A」、「C」の状態におけるカメラ座標を用いて、図29を参照して説明した方法と同様の方法で算出される。
この例では、「B」の状態に遷移したときのカメラ座標は、視点1のカメラ座標(0,0,0)に、変位量の和である、視点1と視点2の間のZ軸方向の距離1.8の半分の0.9を減算し、(0,0,−0.9)と算出される。
遷移途中の状態におけるカメラ注視点座標は、視点制御部106により「A」、「C」の状態におけるカメラ注視点座標を用いて、図30を参照して説明した方法と同様の方法で算出される。
この例では、「B」の状態に遷移したときのカメラ注視点座標は、視点1におけるカメラ注視点座標(0,0,1)に、視点1における注視点と視点2における注視点の間のZ軸方向の距離1の半分の0.5をz座標につき減算し、(0,0,0.5)として算出される。
図29〜図31を参照して、第1のタイプから第2のタイプへ、第2のタイプから第3のタイプへ、第3のタイプから第2のタイプへ遷移する例について説明してきたが、それ以外の第2のタイプから第1のタイプへ、第3のタイプから第2のタイプへ、第1のタイプから第3のタイプへ遷移する場合なども同様にしてフレーム毎に画角、カメラ座標、カメラUP、カメラ注視点座標が変化した部分画像を生成し、アニメーションにおいて、滑らかな視点、注視点、カメラUPの遷移やズームイン・ズームアウト表現が可能となる。また、タイプの変更により、全天球画像を使用したダイナミックな映像表現が可能となる。
ここで、情報処理装置100がプレビュー再生時に実行する処理の内容を図32に示すシーケンス図に基づいて説明する。プレビュー再生時の処理は、図13に示した第1実施形態における処理とほぼ同様であるが、S5、S7における処理のみが異なるため、ここではS5、S7における処理のみを説明する。
S5では、視点制御部106が、1番目の登録視点(始点)から2番目の登録視点(終点)の間を補間する経路に沿って視点を遷移させる制御を実施する。その制御において、上記のようにしてフレーム毎の視点の変位量を算出するとともに、始点と終点に登録されたプロジェクションタイプに応じて、フレーム毎の画角、カメラ座標、カメラUP、カメラ注視点座標の変位量を算出する。
S7では、視点制御部106が、フレーム数にフレーム期間を乗じた値が遷移時間を超えるまでの間、制御部103に対して、フレーム毎に視点の変位量、始点と終点に登録されたプロジェクションタイプに応じた画角、カメラ座標、カメラUP、カメラ注視点座標の変位量を通知することを繰り返す。このとき、変位方向、すなわち加算するのか、減算するのかも通知することができる。
このようにして登録視点間でプロジェクションタイプを変えることで、視点変更や画角変更だけでは表現できないような多様な全天球の映像表現が可能となる。
なお、第4実施形態においても、第2実施形態で説明した視点が遷移する方向を視点パラメータとしてユーザが設定し、その設定した方向に視点を遷移させることができる。また、第4実施形態においても、第3実施形態で説明したプリセットデータを用いてアニメーションを自動実行させ、アニメーションをクロップし、アニメーションと背景音声を合成して再生させることが可能である。
上述した実施形態の各機能は、C、C++、C#、Java(登録商標)などで記述されたプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、CD−ROM、MO、DVD、フレキシブルディスク、EEPROM、EPROMなどの記録媒体に格納して頒布することができ、また他の装置が可能な形式でネットワークを介して伝送することができる。
以上、本発明について実施形態をもって説明してきたが、本発明は上述した実施形態に限定されるものではなく、当業者が推考しうる実施態様の範囲内において、本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。