以下、本発明を、実施形態をもって説明するが、本発明は後述する実施形態に限定されるものではない。なお、以下に参照する各図においては、共通する要素について同じ符号を用い、適宜、その説明を省略するものとする。
以下、本発明の実施形態である情報処理装置について説明する。
本実施形態の情報処理装置は、全天球画像を表示するためのディスプレイを備える情報処理装置であり、スマートフォン、タブレットPC、ノートPC、デスクトップPCといった各種のパーソナル・コンピュータを例示することができる。
本実施形態の情報処理装置には、全天球画像に含まれる任意の領域を連続的に表示するアニメーションを実行するためのアプリケーション・プログラム(以下、専用アプリという)がインストールされている。この専用アプリは、全天球画像の注視点を登録するためのUI画面を提供し、ユーザーは、このUI画面を介して、全天球画像を所定の3次元オブジェクトの表面(例えば、球体の内面)にマッピングした3次元モデルにおける任意の点を注視点として登録する。そして、この専用アプリは、ユーザーが登録した2以上の注視点の間を補間する経路に沿って注視点を遷移させ、遷移する注視点を中心とした部分画像を繋ぎ合わせたアニメーションを実行する。なお、本実施形態において、“部分画像”とは、全天球画像の3次元モデル上の任意の注視点を中心とする画像領域を射影変換した2次元画像を意味する。
図1は、本実施形態の情報処理装置の一例として、スマートフォン100を示す。図1に示すように、スマートフォン100のタッチパネル・ディスプレイ18には、全天球画像の注視点を登録するためのUI画面(以下、UI画面という)が表示されている。
図1に示すように、UI画面は、部分画像表示領域20とアイコン表示領域30とを含んで構成されており、部分画像表示領域20には、全天球画像の一部の画像領域(ユーザーが指定した注視点を中心とする画像領域)を射影変換した部分画像が表示されるとともに、当該部分画像の上に重畳する形で、表示モードの切り替えを受け付けるボタン21と、アニメーションの再生時間とデータ容量を表わす情報22と、注視点の登録を受け付けるボタン23と、全天球画像の注視点を示す十字カーソル24が表示されている。また、アイコン表示領域30には、アニメーションの実行指示を受け付けるボタン32の他、後述する各種アイコンが表示されるようになっている。
ここで、本実施形態では、部分画像が表示される部分画像表示領域20を任意の方向にスワイプすることによって、全天球画像上の任意の点を注視点として指定することができるようになっており、また、その部分画像をピンチすることによって、全天球画像上の画角を指定することができるようになっている。
図2は、スワイプ操作によってパン・チルトされた部分画像と、ピンチイン・ピンチアウト操作によって、ズームイン・ズームアウトされた部分画像を例示的に示す。なお、本実施形態では、全天球画像上の注視点を示す十字カーソル24が常に部分画像の中心に表示されるようになっている。
続いて、図3に示す機能ブロック図に基づいて、本実施形態のスマートフォン100の機能構成を説明する。
図3に示すように、スマートフォン100は、UI部102と、部分画像生成部103と、注視点登録部104と、補間線計算部105と、補間線登録部106と、注視点制御部107と、アニメーション実行部108と、動画データ生成部109と、記憶領域110とを含んで構成される。
UI部102は、上述したUI画像をタッチパネル・ディスプレイ18に表示し、当該UI画像を介して、全天球画像の注視点の登録をはじめとする各種要求をユーザーから受け付ける手段である。
部分画像生成部103は、記憶領域110から読み出した全天球画像から、ユーザーが指定する注視点を中心とした部分画像を生成する手段である。
注視点登録部104は、UI画面を介したユーザーの登録要求に応答して、ユーザーが指定する注視点をその要求順に登録する手段である。
補間線計算部105は、直近に登録された注視点と現在指定されている注視点との間を補間する補間線を計算する手段である。
補間線登録部106は、登録された注視点とその直前に登録された注視点との間を補間する補間線を登録する手段である。
注視点制御部107は、登録された2以上の注視点を補間する経路に沿って注視点を遷移させる手段である。
アニメーション実行部108は、遷移する注視点を中心とした部分画像をその遷移順に繋ぎ合わせたアニメーションを実行する手段である。
動画データ生成部109は、生成された複数の部分画像を汎用ファイル形式の動画データに変換する手段である。
記憶領域110は、各種データを保持する手段である。
なお、本実施形態では、スマートフォン100に搭載されるコンピュータが、専用アプリを実行することにより、上述した各手段として機能する。
以上、スマートフォン100の機能構成について説明してきたが、続いて、注視点の登録時に実行される処理の内容を図4に示すフローチャートに基づいて説明する。
スマートフォン100は、タッチパネル・ディスプレイ18にUI画面を表示して、以下に述べる一連の処理を繰り返し実行する。
まずステップ101では、UI部102が、部分画像生成部103が生成した部分画像(すなわち、ユーザーが指定する注視点を中心とした部分画像)をUI画面の部分画像表示領域20に表示する。
続くステップ102では、注視点登録部104が、登録済みの注視点の有無を判断し、それ以前に注視点が登録されていない場合は(ステップ102、No)、処理はステップ111に進んで、注視点の登録要求を監視する。その結果、ユーザーからの登録要求がない場合は(ステップ111、No)、そのまま処理を終了する。
一方、登録要求があった場合は(ステップ111、Yes)、処理はステップ112に進み、注視点登録部104が、ユーザーが現在指定している注視点を注視点登録テーブル500に登録する。
図5(a)は、上述した記憶領域110に保持されている注視点登録テーブル500を示す。図5(a)に示すように、注視点登録テーブル500は、注視点の3次元座標(x,y,z)、注視点を定義する仰角および方位角、注視点を表すオブジェクトの色情報(R,G,B,A)をそれぞれ格納するためのフィールドを備えており、ステップ112では、ユーザーからの登録要求を検知したときに指定されている注視点に対応する仰角、方位角と、その仰角、方位角から求まる全天球画像上の3次元座標(x,y,z)を注視点登録テーブル500に登録する。なお、色情報については後述する。
その後、UI部102が、続くステップ113で、注視点登録テーブル500に登録した注視点を表すオブジェクトを部分画像表示領域20に表示されている部分画像の上に重畳表示し、続くステップ114で、登録した注視点に対応する注視点アイコンをアイコン表示領域30に表示して、処理を終了する。
一方、ステップ102の判断の結果、1以上の注視点が既に注視点登録テーブル500に登録されている場合は(ステップ102、Yes)、処理はステップ103に進む。続くステップ103では、補間線計算部105が、既に登録されている注視点のうち、直近に登録された注視点と、ユーザーが現在指定している部分画像の注視点の間を補間する補間線を計算し、続くステップ104で、UI部102が、計算した補間線を部分画像の上に重畳表示する。なお、上述した補間線を計算する方法の詳細については後述する。
続くステップ105では、注視点登録部104が、注視点の登録要求を監視し、ユーザーからの登録要求がない場合は(ステップ105、No)、そのまま処理を終了する。一方、ユーザーからの登録要求があった場合は(ステップ105、Yes)、続くステップ106で、注視点登録部104が、ユーザーが現在指定している注視点を注視点登録テーブル500に登録する。
続くステップ107では、UI部102が、ステップ106で登録した注視点を部分画像の上に重畳表示し、続くステップ108で、登録した注視点に対応する注視点アイコンをアイコン表示領域30に表示する。
続くステップ109では、補間線登録部106が、新たに登録した注視点と、その直前に登録した注視点との間を補間する補間線(すなわち、注視点が新たに登録された時に計算された補間線)を記憶領域110に保持される補間線登録テーブル600に登録する。なお、補間線の登録の詳細については後述する。
その後、続くステップ110では、UI部102がステップ109で登録した補間線に対応する補間線アイコンを登録順に並べてアイコン表示領域30に表示して、処理を終了する。
ここで、図6を参照しながら注視点が登録されるときのUI画面の状態遷移を説明する。
それ以前に注視点の登録がない状態で、ユーザーがボタン23をタップすると、その時点でユーザーが指定している位置(すなわち、十字カーソル24の位置)1番目の注視点として登録される。このとき、図6(a)に示すように、登録された注視点を表すオブジェクト25aが十字カーソル24の上に重なる形で部分画像の上に重畳表示される。そして、これと同時に、登録された注視点25aに対応する注視点アイコン35aがアイコン表示領域30に表示される。なお、本実施形態では、注視点アイコン35aが、登録された注視点25aを中心とした部分画像のサムネイルとして表示される(以下、同様)。
図6(a)に示す状態から、図6(b)に示すように、ユーザーが部分画像表示領域20を破線矢線の方向にスワイプすると、その操作に応じて、指定する注視点の3次元座標が変更される。このとき、ユーザーのスワイプ操作に応じて、オブジェクト25aが十字カーソル24から相対的に離れていき、十字カーソル24を始点とし、オブジェクト25aを終点とする補間線を表すオブジェクト26aが部分画像の上に重畳表示される。
図6(b)に示す状態において、ユーザーがボタン23をタップすると、その時点の十字カーソル24の位置が2番目の注視点として登録される。このとき、図6(c)に示すように、2番目に登録された注視点を表すオブジェクト25bが十字カーソル24の上に重なる形で部分画像の上に重畳表示されるとともに、2番目に登録された注視点25bに対応する注視点アイコン35bが注視点アイコン35aの右隣に表示される。
そして、このとき、2番目に登録された注視点25bと1番目に登録された注視点25aの間を補間する補間線26aが登録され、これと同時に、図6(c)に示すように、登録された補間線26aに対応する補間線アイコン36aが、注視点アイコン35aと注視点アイコン35bの間に表示される。
図6(d)は、注視点25bに続く3番目の注視点が登録された時点のUI画面を示す。図6(d)に示すように、部分画像の上には、3番目に登録された注視点を表すオブジェクト25cが十字カーソル24の上に重なる形で部分画像の上に重畳表示されるとともに、3番目に登録された注視点25cに対応する注視点アイコン35cが注視点アイコン35bの右隣に表示される。
そして、これと同時に、3番目に登録された注視点25cとその直前に登録された注視点25bの間を補間する補間線26bが登録されるとともに、図6(d)に示すように、登録された補間線26bに対応する補間線アイコン36bが、注視点アイコン35bと注視点アイコン35cの間に表示される。
以上、注視点が登録されるときのUI画面の状態遷移について説明してきたが、続いて、図7に示すフローチャートに基づいて、2つの注視点の間を補間する補間線を計算する処理を説明する。なお、以下では、図8(a)に示す全天球画像の3次元モデルを参照して説明を行う。
まず、ステップ201では、注視点P1の仰角E1と注視点P2の仰角E2の間を等間隔に線形補間して、n個(nは1以上の整数。以下、同様。)の仰角の補間値ei(i=1~n)を算出する。
続くステップ202では、注視点P1の方位角A1と注視点P2の方位角A2の間を等間隔に線形補間して、n個の方位角の補間値ai(i=1~n)を算出する。
続くステップ203では、注視点P1から見た補間値の順番を示すカウンタiの値を初期値[1]にセットする。
続くステップ204では、仰角の補間値eiと方位角の補間値aiに基づいて、全天球画像の3次元モデル上の3次元座標を算出する。
続くステップ205では、注視点P1から見てi番目の補間注視点piとして、ステップ204で算出した3次元座標(x,y,z)を補間線登録テーブル600に登録する。図5(b)は、補間注視点pが登録される補間線登録テーブル600を示す。図5(b)に示すように、補間線登録テーブル600は、補間注視点pの3次元座標(x,y,z)と補間線を表すオブジェクトの色情報(R,G,B,A)をそれぞれ格納するためのフィールドを備えている。
続くステップ206では、カウンタiの値を1増分する。
その後、カウンタiの値がnを超えるまで(ステップ207、No)、上述したステップ204~206の処理を繰り返し、カウンタiの値がnを超えた時点で(ステップ207、Yes)、処理を終了する。
上述した一連の処理が終了した時点で、図8(b)に示すn個の補間注視点pが補間線登録テーブル600に登録される。本実施形態では、1つの補間線ごとに1つの補間線登録テーブル600が作成され、補間線を表すオブジェクトは、補間線登録テーブル600に登録されたn個の補間注視点pに基づいて生成される。
以上、補間線を計算する処理について説明してきたが、続いて、アイコン表示領域30に表示される注視点アイコンが選択されたときに実行される処理を図9に示すフローチャートに基づいて説明する。
ユーザーが注視点アイコンを選択したことを検知したUI部102は、ステップ301で、ユーザーが注視点の削除を要求したか否かを判断する。その結果、ユーザーが注視点の削除を要求していない場合は(ステップ301、No)、処理はステップ302に進み、UI部102が、UI画面の部分画像表示領域20を、ユーザーが選択した注視点アイコンに対応する注視点の変更を受け付ける状態に遷移させる。
その後、UI部102は、ステップ303で、所定期間にわたってユーザーによる注視点の変更を待機する。その結果、ユーザーが注視点を変更せずにタイムアウトした場合は(ステップ303、No)、処理をそのまま終了する。一方、ユーザーが注視点を変更した場合は(ステップ303、Yes)、処理はステップ304に進む。
続くステップ304では、補間線計算部105が、変更された注視点と、その直前または直後に登録された他の注視点との間を補間する補間線を再計算し、続くステップ305で、補間線登録部106が、再計算した補間線を補間線登録テーブル600に登録する。
その後、続くステップ306で、UI部102が、変更された注視点と再計算した補間線を部分画像の上に重畳表示して、処理を終了する。
ここで、図10を参照しながらユーザーが注視点を変更するときのUI画面の状態遷移を説明する。
図10(a)は、3つの注視点(25a、25b、25c)が登録されている状態のUI画面を示す。この状態において、ユーザーが2番目に登録した注視点25bに対応する注視点アイコン35bをタップすると、UI画面が、タップされた注視点アイコン35bに対応する注視点25bの位置の変更を受け付けるために、図10(b)に示す状態に遷移する。これを受けて、ユーザーは、2番目の注視点25bの位置を任意の位置に変更する。
図10(c)は、ユーザーが2番目の注視点25bの位置を変更した後のUI画面を示す。このとき、注視点25bの変更に伴って、注視点登録テーブル500における注視点25bの3次元座標が変更される。また、注視点25bと注視点25aの間を補間する補間線26aならびに注視点25bと注視点25cの間を補間する補間線26bが再計算され、その計算結果に基づいて各補間線に対応する補間線登録テーブル600の内容が変更される。
再び図9に戻って説明を続ける。
先のステップ301の判断の結果、ユーザーが注視点アイコンを選択した後に注視点の削除を要求した場合は(ステップ301、Yes)、処理はステップ307に進む。続くステップ307では、注視点登録部104が、ユーザーが選択した注視点アイコンに対応する注視点の登録を注視点登録テーブル500から削除し、続くステップ308で、UI部102が、削除した注視点に対応する注視点アイコンを非表示にする。
その後、続くステップ309で、補間線登録部106が、削除した注視点を始点または終点とする補間線の登録を補間線登録テーブル600から削除し、続くステップ310で、UI部102が、削除した補間線に対応する補間線アイコンを非表示にする。
その後、続くステップ311で、補間線計算部105が、削除した注視点の、その直前に登録された注視点と、その直後に登録された注視点との間を補間する補間線を新たに計算する。
その後、続くステップ312で、補間線登録部106が、新たに計算した補間線を補間線登録テーブル600に登録し、続くステップ313で、UI部102が、新たに計算した補間線を部分画像の上に重畳表示して、処理を終了する。
なお、先のステップ307で削除された注視点が最後順の注視点であった場合は、先のステップ308~310の処理を実行した後に、ステップ311~313の処理を実行することなく処理を終了する。
ここで、図11を参照しながら注視点が削除されるときのUI画面の状態遷移を説明する。
図11(a)は、3つの注視点(25a、25b、25c)が登録されている状態のUI画面を示す。この状態において、ユーザーが2番目に登録した注視点25bに対応する注視点アイコン35bをタップした後に、ゴミ箱アイコン27をタップすると、UI画面は図11(b)に示す状態に遷移する。
このとき、注視点登録テーブル500において、注視点25bの登録が削除されるとともに、注視点25aと注視点25cの間を補間する新たな補間線26dが新たに計算され、その計算結果が補間線登録テーブル600に登録され、新たな補間線26dが部分画像の上に重畳表示される。
以上、注視点アイコンが選択されたときに実行される処理について説明してきたが、続いて、補間線アイコンが選択されたときに実行される処理を図12に示すフローチャートに基づいて説明する。
UI部102は、ユーザーが補間線アイコンを選択したことに応答して、ステップ401で、パラメータ設定画面を表示する。
ここで、図13は、ユーザーが補間線アイコンを選択したときのUI画面の状態遷移を示す。図13(a)に示すように、ユーザーが補間線アイコン36bをタップすると、UI画面が図13(b)に示すパラメータ設定画面に遷移する。
図13(b)に示すように、パラメータ設定画面は、パラメータ設定領域40とプレビュー表示領域50から構成されている。ここで、パラメータ設定領域40には、進行方向(最短/遠回り)を選択するためのボタン群42と、スピードを設定するためのスライダー43と、イージングカーブを選択するためのボタン群44と、停止時間を選択するためのボタン群45が表示されており、ボタン群42のいずれかをタップして進行方向を選択したり、スライダー43を操作してスピードを選択したり、ボタン群44のいずれかをタップしてイージングカーブを選択したり、ボタン群45のいずれかをタップして停止時間を選択したりすることができるようになっている。
ここで、進行方向とは、アニメーションを実行する際の注視点の移動方向を意味し、スピードとは、注視点の移動速度を意味する。また、イージングカーブとは、注視点の移動加速度の時間変化を示すカーブを意味し、停止時間とは、登録された各ポイントで注視点の移動を停止させる時間(すなわち、アニメーションを停止させる時間)を意味する。
再び図12に戻って説明を続ける。
UI部102は、パラメータ設定画面を表示した後、続くステップ402で、ユーザーがパラメータ設定画面上で進行方向以外のパラメータ(スピード、イージングカーブ、停止時間)を変更したか否かを判断し、ユーザーが進行方向以外のパラメータを変更した場合は(ステップ402、Yes)、処理はステップ403に進む。
続くステップ403では、UI部102が、ユーザーが選択した補間線アイコンに対応する補間線に対応する経路に沿って実行されるアニメーションに係る3種類のパラメータ(スピード、イージングカーブ、停止時間)のうち、ユーザーが選択したパラメータの値をユーザーが選択した値に変更して、処理を終了する。
一方、ステップ402の判断の結果、ユーザーが進行方向を変更した場合は(ステップ402、No→ステップ404、Yes)、処理はステップ405に進む。なお、所定期間にわたってユーザーがいずれのパラメータの変更も要求せずにタイムアウトした場合は(ステップ402、No→ステップ404、No)、処理を終了する。
続くステップ405では、補間線計算部105が、ユーザーが選択した補間線アイコンに対応する補間線をユーザーが変更した進行方向に従って再計算する。例えば、ユーザーがボタン群42を操作して進行方向を「最短」から「遠回り」に変更した場合、ユーザーが選択した補間線アイコンに対応する補間線の始点から終点に至る経路が最長となるような補間線を再計算する。そして、続くステップ406で、補間線登録部106が、再計算した補間線を補間線登録テーブル600に登録して、処理を終了する。
ここで、図14(a)は、2つの注視点25a、25bが登録されているUI画面を示す。この状態から、上述した手順で進行方向が「最短」から「遠回り」に変更されると、UI画面は図14(b)に示す状態に遷移する。
なお、本実施形態では、プレビュー表示領域50に表示される再生ボタン52をユーザーがタップすると、アニメーション実行部108が、ユーザーが選択した補間線アイコンに対応する補間線に対応する経路に沿ってアニメーションを実行し、UI部102がそのアニメーションをプレビュー表示領域50に表示する。このプレビュー再生によって、ユーザーは、パラメータの変更によってアニメーションが意図したものとなっているか否かを確認することができる。
ここで、図1で述べたボタン21の機能について説明する。本実施形態では、ボタン21をタップすることによって、部分画像の上に重畳表示される各種オブジェクト(注視点25、補間線26、十字カーソル24)の表示/非表示を切り替えることができる。図15(a)は、表示モードが選択されたときのUI画面を示し、図15(b)は、非表示モードが選択されたときのUI画面を示す。
以上、説明したように、本実施形態においては、ユーザーが、UI部102が提供するUI画面を介して全天球画像上の任意の注視点を登録し、注視点制御部107が、登録された2以上の注視点を補間する経路に沿って注視点を遷移させ、アニメーション実行部108が、遷移する注視点を中心とした部分画像をその遷移順に繋ぎ合わせたアニメーションを実行する。これにより、全天球画像の注目領域がアニメーションの形でわかりやすく提示される。
加えて、本実施形態によれば、注視点を登録するUI画面において、注視点とその移動経路である補間線が部分画像上に可視化されるので、アニメーション全体の流れを直観的に把握しやすくなり、これにより、アニメーションの編集が容易になる。
なお、上述した実施形態では、登録された注視点を○で表示し、補間線を実線で表示する態様を説明したが、本実施形態では、登録された注視点を表すオブジェクトならびに補間線を表すオブジェクトの形態を任意に決めることができる。
また、本実施形態では、2以上の登録された注視点をそれぞれが区別可能な態様で表示してもよく、2以上の登録された補間線をそれぞれが区別可能な態様で表示してもよい。その場合、注視点登録テーブル500(図5(a))の色情報(R,G,B,A)を個別に設定することで登録された注視点のそれぞれに異なる色を割り当てることができ、補間線登録テーブル600(図5(b))の色情報(R,G,B,A)を個別に設定することで登録された補間線のそれぞれに異なる色を割り当てることもできる。
加えて、本実施形態では、登録された注視点と注視点アイコンを、その対応関係が把握可能な態様で表示したり、登録された補間線と補間線アイコンを、その対応関係が把握可能な態様で表示したりすることもできる。この点につき、図16は、登録された注視点とこれに対応する注視点アイコンのそれぞれに対して同じ番号を付加し、登録された補間線とこれに対応する補間線アイコンのそれぞれを異なる態様のオブジェクト(実線と破線)で表したUI画面を例示的に示す。
以上、全天球画像の注目領域をわかりやすく提示する情報処理装置の実施形態として、ユーザーが登録した注視点に基づいてアニメーションを実行する実施形態を説明してきたが、以下では、本発明の別の実施形態について説明する。別の実施形態では、ユーザーに注視点を登録させるのではなく、ユーザーが選択した全天球画像の内容に合った注視点を学習済みモデルを使用して自動的に登録する。
(別の実施形態)
図17は、別の実施形態のネットワークシステムを示す。本実施形態のネットワークシステムは、スマートフォン200とサーバ300を含んで構成されており、各スマートフォン200とサーバ300はネットワーク60を介して相互に通信可能に接続されている。なお、スマートフォン200は、全天球画像を表示する情報処理装置の一例として示されている。
図18は、スマートフォン200を示す。図18に示すように、スマートフォン200のタッチパネル・ディスプレイ18には、全天球画像の注目領域をわかりやすく提示するためのアニメーションの実行を受け付けるためのUI画面(以下、UI画面という)が表示されている。
図18に示すように、UI画面は、アニメーション表示領域70とアニメーションの実行条件を設定するためのパラメータ設定領域80から構成されている。ここで、アニメーション表示領域70には、アニメーションの実行を指示するための再生ボタン72が表示されており、パラメータ設定領域80には、注視点の数を指定するための入力ボックス82と、アニメーションのループ回数を指定するための入力ボックス83と、注視点におけるアニメーションの停止時間を指定するためのボタン群84と、動画データの生成場所を指定するためのボタン群85が表示されている。
続いて、図19に示す機能ブロック図に基づいて、本実施形態のスマートフォン200およびサーバ300の機能構成を説明する。
図19に示すように、スマートフォン200は、UI部202と、注視点登録要求部203と、注視点制御部204と、アニメーション実行部205と、動画データ生成部206と、記憶領域207とを含んで構成される。
UI部202は、アニメーションの実行を受け付けるためのUI画像をタッチパネル・ディスプレイ18に表示し、当該UI画像を介して、アニメーションの実行条件の設定およびその実行指示をユーザーから受け付ける手段である。
注視点登録要求部203は、ユーザーからアニメーションの実行指示を受け付けたことに応答して、注視点の登録をサーバ300に要求する手段である。
注視点制御部204は、サーバ300が登録した2以上の注視点を補間する経路に沿って注視点を遷移させる手段である。
アニメーション実行部205は、遷移する注視点を中心とした部分画像をその遷移順に繋ぎ合わせたアニメーションを実行する手段である。
動画データ生成部206は、実行されたアニメーションを汎用ファイル形式の動画データに変換する手段である。
記憶領域207は、各種データを保持する手段である。
なお、本実施形態では、スマートフォン200に搭載されるコンピュータが、専用アプリを実行することにより、上述した各手段として機能する。
一方、図19に示すように、サーバ300は、部分画像分割部301と、特徴量抽出部302と、重要度算出部303と、注目点尤度分布算出部304と、注目点算出部305と、注視点登録部306と、注視点制御部307と、アニメーション実行部308と、動画データ生成部309とを含んで構成される。
部分画像分割部301は、スマートフォン200から受信した全天球画像をEquirectangular形式(正距円筒図法)の画像に変換し、変換後の画像を異なる複数の方向に再投影して複数の部分画像に分割する手段である。
特徴量抽出部302は、各部分画像から特徴量を抽出する手段である。
重要度算出部303は、抽出した特徴量から所定の回帰モデル(学習済みモデル)に基づいて、処理対象となる画像の位置ごとの重要度を算出する手段である。
注目点尤度分布算出部304は、算出した重要度から注目点の尤度分布を算出する手段である。
注目点算出部305は、算出した注目点の尤度分布に基づいて注目点を算出する手段である。
注視点登録部306は、注目点算出部305が算出した2以上の注目点に基づいて2以上の注視点を登録する手段である。
注視点制御部307は、注視点登録部306が登録した2以上の注視点を補間する経路に沿って注視点を遷移させる手段である。
アニメーション実行部308は、遷移する注視点を中心とした部分画像をその遷移順に繋ぎ合わせたアニメーションを実行する手段である。
動画データ生成部309は、実行されたアニメーションを汎用ファイル形式の動画データに変換する手段である。
なお、本実施形態では、サーバ300を構成するコンピュータが所定のプログラムを実行することにより、サーバ300が上述した各手段として機能する。
以上、スマートフォン200およびサーバ300の機能構成について説明してきたが、続いて、本実施形態においてユーザーがアニメーションの実行を指示したときに実行される処理の内容を図20に示すシーケンス図に基づいて説明する。
まず、ユーザーは、記憶領域207に保存される全天球画像の中から所望の画像を選択した上で、UI部202が表示するUI画面(図18参照)のパラメータ設定領域80を介してアニメーションの実行条件を設定した後、アニメーション表示領域70の再生ボタン72をタップしてアニメーションの実行を指示する(S1)。
これを受けて、注視点登録要求部203は、ユーザーが選択した全天球画像とユーザーが設定した実行条件(注視点の数、ループ回数、停止時間、動画データの生成場所)を含む注視点登録要求を生成し、サーバ300に送信する(S2)。
これを受けて、サーバ300は、スマートフォン200から受信した注視点登録要求に含まれる全天球画像と「注視点の数」の設定に基づいて注視点登録テーブルを作成する(S3)。
ここで、S3において、サーバ300が注視点登録テーブルを作成する処理を図21に示すフローチャートに基づいて説明する。
まず、ステップ501では、部分画像分割部301が、注視点登録要求に含まれる全天球画像をEquirectangular形式(正距円筒図法)の全方位画像に変換した後、当該全方位画像の撮影方向を空間的に等分割し、当該全方位画像を異なる複数の撮影方向に再投影することによって複数の部分画像に分割する。以下、部分画像に分割する手順を具体的に説明する。
図22(a)に示すように、Equirectangular形式の全方位画像からは、経度緯度の座標値から任意の3次元方向の画素値を得ることができ、Equirectangular形式の全方位画像は、概念的には単位球に画素値がプロットされたものとして捉えることができる。そこで、本実施形態では、図22(b)に示すように、所定の投影面を定義し、単位球の中心を投影中心Oとして、下記式(1)により、Equirectangular形式の全方位画像の画素値(θ,φ)を定義した投影面上の画素値(x,y)に対応させる透視投影変換を行って部分画像を得る。なお、下記式(1)において、Pは透視投影行列を示し、等号は0以外のスカラー倍で等しいことを示す。
具体的には、Equirectangular形式の全方位画像の投影面として、単位球と共通する中心を有する正多面体を定義した上で、各面の法線方向を視線方向として透視投影変換を行って部分画像を得る。図23(a)は、全方位画像の投影面として正八面体を定義した例を示し、図23(b)は、全方位画像の投影面として正十二面体を定義した例を示す。
続くステップ502では、特徴量抽出部302が、先のステップ501で得た各部分画像から所定の特徴量を抽出する。なお、ここで抽出する特徴量としては、色、エッジ、顕著性、物体位置/ラベル、LBP、Haar like feature、HOG、SIFT、などを例示することができる。
続くステップ503では、重要度算出部303が、所定の回帰モデルを用いて、各部分画像から抽出した特徴量から全方位画像の位置ごと(画素ごと)に重要度を算出する。以下、この点を具体的に説明する。
全方位画像をN個に分割した部分画像のi番目の部分画像の位置ごとの特徴量を並べたベクトルをliとし、全方位画像の位置ごとの重要度を並べたベクトルをgとした上で、下記式(2)に示す回帰モデルfを考える。
ここで、回帰モデルfの具体的な形として、下記式(3)に示す線形変換を例示することができる。
上記式(3)において、W、bはパラメータを示す。本実施形態では、特徴量liを入力とし、重要度gを出力とする訓練データを事前に用意しておき、当該訓練データを学習させることによって、パラメータW、bを同定しておく(学習済みモデルの用意)。
その前提として、本実施形態では、訓練データの出力(教師データ)である重要度gを適切な方法で取得する。重要度gを取得する最も単純な方法としては、対象画像において、被験者が重要と思う領域を被験者に指定させ、被験者が指定した領域を構成する各画素の重要度を「1」とし、それ以外の画素の重要度を「0」とするといった方法を挙げることができる。この他にも、対象画像を見る被験者の視点の軌跡をアイトラッカーなどで取得した後、取得した視点の軌跡(線)にガウシアンぼかしを施し、その濃淡レベルに基づいて正規化された重要度(0~1)を取得する方法を例示することができる。
続くステップ504では、重要度の高い方向にユーザーの注目点が存在するという設計思想の下、注目点尤度分布算出部304が、先のステップ503で算出された重要度の分布に基づいて注目点の尤度分布を算出する。本実施形態では、図24に示すように、単位画像面上に、視点Aを通る撮影方向を中心とする領域Rを定義した上で、領域R内の各位置の重要度を加算した加算値を視点Aの注目点尤度として算出することができる。また、本実施形態では、領域R内の各位置の重要度に対して、視点Aから離れるに従って減衰するような重みを与えた上で、その重みを用いた重要度の加重加算値を視点Aの注目点尤度として算出することもできる。
ここで、撮影方向の3次元ベクトルをp、撮影方向qの重要度をg(q)と表現すると、注目点尤度a(q)は、下記式(4)のように定式化することができる。
上記式(4)において、ηは単調増加関数を示し、w(p,q)は重みを示し、積分は定積分であり、積分範囲は撮影単位球面全体である。本実施形態では、ηを指数関数とすることができ、w(p,q)を下記式(5)に示す関数とすることができる。
上記式(5)はvon Mises分布に順ずるものであり、方向p, qが一致する場合に最大値、p,qが逆方向を向く際に最小値を取る。本実施形態では、パラメータαで重みの減衰率を決めることができ、注目点を考える画角を反映することができる。
また、本実施形態では、重みw(p,q)を、下記式(6)に示すように、{αi}をパラメータとして、方向p,qの内積の多項式を指数関数の引数に取ることもできる。
再び、図21に戻って説明を続ける。
続くステップ505では、注目点算出部305が、注目点尤度a(p)の局所最大値を求める。ここで、注視点登録要求において「注視点の数」の設定値がM(Mは2以上の整数)であった場合、注目点算出部305は、注目点尤度a(p)につき、M個の局所最大値を求める。なお、注目点尤度a(p)の局所最大値は、ランダムに生成したpの初期値から山登り法で探索して求めることができる。その後、求めたM個の局所最大値に対応するM個の撮影方向pを求め、各方向に対応する位置を注目点として取得する。より具体的には、下記式(7)に示す評価関数を最大化するM個の撮影方向p1, p2, ..., pMを求め、各方向に対応する注目点(θ,φ)を取得する。
なお、上記式(7)において、dは、視点間の距離を表現する関数であり、このような関数としては、p1, p2, ..,,pMの分散や各視点間のユークリッド距離の総和などを例示することができる。このような評価関数を使用することにより、それぞれの位置が離れたM個の注目点を取得することができる。
続くステップ506では、注視点登録部306が以下の手順で注視点登録テーブルを作成する。具体的には、まず、先のステップ505で算出したM個の注目点(θ,φ)に対応する全天球画像上の3次元座標(x,y,z)を算出し、これらをM個の注視点(x,y,z)として取得する。
次に、取得したM個の注視点(x,y,z)を、所定の規則に従って、順番にテーブルに登録する。本実施形態では、例えば、全天球画像上に予め基準となる注視点(ホームポジション)を決めておき、取得したM個の注視点のうち、当該ホームポジションから最近傍の注視点を1番目に登録し、残りの(M-1)個の注視点のうち、1番目の注視点から最近傍の注視点を2番目に登録し、残りの(M-2)個の注視点のうち、2番目の注視点から最近傍の注視点を3番目に登録し、…といった手順を繰り返すことによって、M個の注視点を順番にテーブルに登録する。図25は、そのようにして作成された注視点登録テーブル700を示す。
再び、図20に戻って説明を続ける。
S3において、サーバ300が注視点登録テーブル700を作成した後は、注視点登録要求に含まれる「動画データの生成場所」の設定内容によって処理が分かれる。
まず、「動画データの生成場所」の設定が「クライアント」であった場合には、サーバ300は、S3で作成した注視点登録テーブル700と、S2で受信した全天球画像ならびに実行条件(ループ回数、停止時間)をスマートフォン200に送信する(S4)。
これを受けて、スマートフォン200の注視点制御部204が、S4で受信した注視点登録テーブル700に登録された注視点をその登録順に補間する経路に沿って、S4で受信した全天球画像上で注視点を遷移させ、アニメーション実行部205が、遷移する注視点を中心とした部分画像を繋ぎ合わせたアニメーションを、S4で受信した実行条件(ループ回数、停止時間)に従って実行する(S5)。その後、動画データ生成部206が、S5で実行したアニメーションを汎用ファイル形式の動画データに変換し、記憶領域207に保存する(S6)。
なお、スマートフォン200にて、動画データを生成が完了した際には、スマートフォン200からサーバ300へ動画データの生成が完了した旨の通知を送信する。この通知を受けたサーバ300は、スマートフォン200から受信した全天球画像や、実行条件、注視点登録テーブルに記憶されている情報などを削除し、個人情報への配慮を実施しても良い。
一方、「動画データの生成場所」の設定が「サーバ」であった場合には、サーバ300の注視点制御部307が、S3で作成した注視点登録テーブル700に登録された注視点をその登録順に補間する経路に沿って、S2で受信した全天球画像上で注視点を遷移させ、アニメーション実行部308が、遷移する注視点を中心とした部分画像を繋ぎ合わせたアニメーションを、S2で受信した実行条件(ループ回数、停止時間)に従って実行する(S7)。その後、動画データ生成部309が、S7で実行したアニメーションを汎用ファイル形式の動画データに変換する(S8)。
その後、サーバ300は、S8で変換した動画データをスマートフォン200に送信する(S9)。これを受けて、スマートフォン200は、受信した動画データを再生表示した後、記憶領域207に保存する(S10)。
なお、スマートフォン200にて、動画データを受信した際には、スマートフォン200からサーバ300へ動画データが受信できた旨の通知を送信する。この通知を受けたサーバ300は、スマートフォン200から受信した全天球画像や、実行条件、注視点登録テーブルに記憶されている情報、動画データなどを削除し、個人情報への配慮を実施しても良い。
以上、説明したように、上述した別の実施形態によれば、ユーザーに注視点を登録させる手間を取らせることなく、全天球画像の注目領域をアニメーションでわかりやすく提示することができる。なお、実施形態において、本発明を適用する好適なコンテンツとして全天球画像で説明しているが、この全天球画像以外にも、撮影の画角が180度以上の画像であれば、本発明を適用することが可能である。このように、画角が広く、通常の表示画面では表示がし難い画像に対して、表示の表現の幅を広げて、ユーザーへの画像の訴求力を高めることができる。
最後に、図26に基づいて本実施形態のハードウェア構成について説明する。
図26(a)に示すように、本実施形態のスマートフォン100,200に搭載されるコンピュータは、装置全体の動作を制御するプロセッサ10と、ブートプログラムやファームウェアプログラムなどを保存するROM12と、プログラムの実行空間を提供するRAM13と、当該コンピュータを上述した各手段として機能させるためのプログラムやオペレーティングシステム(OS)等を保存するための補助記憶装置14と、タッチパネル・ディスプレイ18などを接続するための入出力インターフェース15と、ネットワーク60に接続するためのネットワーク・インターフェース16とを備えている。
図26(b)に示すように、本実施形態のサーバ300に搭載されるコンピュータは、は、装置全体の動作を制御するプロセッサ310と、ブートプログラムやファームウェアプログラムなどを保存するROM312と、プログラムの実行空間を提供するRAM313と、当該コンピュータを上述した各手段として機能させるためのプログラムやオペレーティングシステム(OS)等を保存するための補助記憶装置314と、入出力インターフェース315と、ネットワーク60に接続するためのネットワーク・インターフェース316とを備えている。
なお、上述した実施形態の各機能は、C、C++、C#、Java(登録商標)などで記述されたプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、CD-ROM、MO、DVD、フレキシブルディスク、EEPROM、EPROMなどの記録媒体に格納して頒布することができ、また他の装置が可能な形式でネットワークを介して伝送することができる。
以上、本発明について実施形態をもって説明してきたが、本発明は上述した実施形態に限定されるものではなく、当業者が推考しうる実施態様の範囲内において、本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。