(57)【要約】【課題】三次元のオブジェクトと広角画像が連携したプログラムを提供すること。【解決手段】情報処理装置１０を、広角画像が貼り付けられるスクリーンオブジェクトを生成し、天井方向の測距データに基づく第一のオブジェクト、地面方向の測距データに基づく第二のオブジェクト、又は、前記周囲方向の測距データに基づく第三のオブジェクトの少なくとも１つを生成する撮像オブジェクト生成手段２８と、広角画像の視点となるカメラオブジェクトを生成するカメラオブジェクト生成手段２７と、ユーザ定義された三次元オブジェクトを生成するユーザオブジェクト生成手段２９と、スクリーンオブジェクト等を描画処理部２５に送出する描画手段として機能させ、撮像オブジェクト生成手段は、各オブジェクトが有する物理作用に関する属性に基づき各オブジェクトを更新することを特徴とするプログラムを提供する。【選択図】図１
2018151793.tif 000002
【特許請求の範囲】
【請求項１】
広角画像、及び、天井方向、地面方向又は周囲方向の測距データの少なくともいずれかを取得する情報処理装置を、
前記広角画像が貼り付けられるスクリーンオブジェクトを生成し、前記天井方向の測距データに基づく第一のオブジェクト、前記地面方向の測距データに基づく第二のオブジェクト、又は、前記周囲方向の測距データに基づく第三のオブジェクトの少なくとも１つを生成する撮像オブジェクト生成手段と、
前記広角画像の視点となるカメラオブジェクトを生成するカメラオブジェクト生成手段と、
ユーザ定義された三次元オブジェクトを生成するユーザオブジェクト生成手段と、
前記スクリーンオブジェクト、前記第一のオブジェクト、前記第二のオブジェクト、前記第三のオブジェクト、及び、前記三次元オブジェクトと、前記スクリーンオブジェクトに貼り付けられる前記広角画像を描画処理部に送出する描画手段として機能させ、
前記撮像オブジェクト生成手段は、各オブジェクトが有する物理作用に関する属性に基づき各オブジェクトを更新することを特徴とするプログラム。
【請求項２】
撮像オブジェクト生成手段、前記カメラオブジェクト生成手段、及び、前記ユーザオブジェクト生成手段のクラスを含むライブラリを有し、前記ライブラリを呼び出すことで、前記スクリーンオブジェクト、前記第一のオブジェクト、前記第二のオブジェクト、前記第三のオブジェクト、前記カメラオブジェクト、及び、前記三次元オブジェクトを生成する請求項１に記載のプログラム。
【請求項３】
前記スクリーンオブジェクト、前記第一のオブジェクト、前記第二のオブジェクト、前記第三のオブジェクト、及び、前記三次元オブジェクトは、透明度及び描画優先度の属性を有し、
前記描画手段は、前記透明度と前記描画優先度に基づいて、各オブジェクトの表示を制御する請求項１又は２に記載のプログラム。
【請求項４】
前記撮像オブジェクト生成手段は、前記広角画像から光源を検出し、前記第一のオブジェクト、前記第二のオブジェクト、又は、前記第三のオブジェクトのうち、前記光源が検出された位置に光源を表す光源オブジェクトを生成し、
前記描画手段は、前記光源オブジェクトが生成する影を前記描画処理部に描画させる請求項１〜３のいずれか１項に記載のプログラム。
【請求項５】
前記物理作用は他のオブジェクトとの相互作用に関する設定を含み、
前記撮像オブジェクト生成手段は、前記相互作用に関する設定を用いて、各オブジェクトの衝突の有無を判断する請求項１〜４のいずれか１項に記載のプログラム。
【請求項６】
前記広角画像は動画であり、前記測距データが動画と共に時系列に記録されており、
前記撮像オブジェクト生成手段は、前記第一のオブジェクト、及び、前記第二のオブジェクト、前記第三のオブジェクトを指示された時刻の前記測距データを用いて更新し、
前記三次元オブジェクトを設定された速度と向き及び物理作用を用いて更新し、
前記描画手段は、前記時刻の前記広角画像を前記描画処理部に送出する請求項１〜５のいずれか１項に記載のプログラム。
【請求項７】
前記情報処理装置は前記広角画像を撮像した撮像装置の回転角に関する角速度データを取得し、
前記撮像オブジェクト生成手段は、前記第一のオブジェクト、前記第二のオブジェクト、前記第三のオブジェクト、及び、前記三次元オブジェクトを、前記角速度データを用いて更新し、
前記描画手段は、前記角速度データを用いて前記広角画像を回転させてから前記描画処理部に送出する請求項１〜６のいずれか１項に記載のプログラム。
【請求項８】
前記情報処理装置は前記広角画像を撮像した撮像装置の加速度データを取得し、
前記撮像オブジェクト生成手段は、前記第一のオブジェクト、前記第二のオブジェクト、前記第三のオブジェクト、及び、前記三次元オブジェクトを、前記加速度データを用いて更新し、
前記描画手段は、前記加速度データを用いて前記広角画像を移動させてから前記描画処理部に送出する請求項１〜７のいずれか１項に記載のプログラム。
【請求項９】
前記情報処理装置は、複数の測定点の前記天井方向の測距データ、又は、前記地面方向の測距データを取得し、
前記撮像オブジェクト生成手段は、複数の測定点の前記天井方向の測距データに基づく傾きのある前記第一のオブジェクトを生成し、
複数の測定点の前記地面方向の測距データに基づく傾きのある前記第二のオブジェクトを生成する請求項１〜８のいずれか１項に記載のプログラム。
【請求項１０】
広角画像、及び、天井方向、地面方向又は周囲方向の測距データの少なくともいずれかを取得する情報処理装置であって、
前記広角画像が貼り付けられるスクリーンオブジェクトを生成し、前記天井方向の測距データに基づく第一のオブジェクト、前記地面方向の測距データに基づく第二のオブジェクト、又は、前記周囲方向の測距データに基づく第三のオブジェクトの少なくとも１つを生成する撮像オブジェクト生成手段と、
前記広角画像の視点となるカメラオブジェクトを生成するカメラオブジェクト生成手段と、
ユーザ定義された三次元オブジェクトを生成するユーザオブジェクト生成手段と、
前記スクリーンオブジェクト、前記第一のオブジェクト、前記第二のオブジェクト、前記第三のオブジェクト、及び、前記三次元オブジェクトと、前記スクリーンオブジェクトに貼り付けられる前記広角画像を描画処理部に送出する描画手段と、を有し、
前記撮像オブジェクト生成手段は、各オブジェクトが有する物理作用に関する属性に基づき各オブジェクトを更新することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、及び情報処理装置に関する。
【背景技術】
【０００２】
周囲３６０度の風景を撮像可能な全天球カメラが普及している。全天球カメラで撮像した画像データ（全天球画像）は球に貼り付けられた立体形状を有しており、立体形状の全天球画像を効果的に活用する方法が検討されている。例えば、全天球画像を閲覧するには二次元平面に投影する必要があるが、表示範囲によっては歪みが生じやすくなり、この歪みを低減する技術が考案されている（例えば、特許文献１参照。）。
【０００３】
特許文献１には、三次元モデルに全天球画像を貼り付けて、指定された出力範囲によって、視野角を優先的に変化させるか、視点の位置を優先的に変化させるかを切り替える画像処理システムについて開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、全天球画像が三次元形状を有していても、これをコンピュータグラフィックで活用することが容易でないという問題がある。三次元のオブジェクトを情報処理装置で表示させるアプリケーションソフトウェアの開発では、回転、移動、変倍等、よく使う機能が公開されている描画ライブラリを利用することが一般的である。開発者はこれらの描画ライブラリを使用して、効率的にアプリケーションソフトウェア（すなわちプログラム）を開発できる。
【０００５】
しかしながら、従来の描画ライブラリは全天球画像と直接連携できないため、三次元のオブジェクトと全天球画像が連携したアプリケーションソフトウェアを開発者が開発するには工数が必要となっていた。例えば、全天球画像に壁が写っている場合に、この壁にボール（オブジェクト）をぶつけるようなアプリケーションソフトウェアを作成する場合、開発者は全天球画像、壁及びボールに相当するオブジェクトを個別に生成し、これらの相互作用を記述する必要がある。
【０００６】
本発明は、上記課題に鑑み、三次元のオブジェクトと広角画像が連携したプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、広角画像、及び、天井方向、地面方向又は周囲方向の測距データの少なくともいずれかを取得する情報処理装置を、前記広角画像が貼り付けられるスクリーンオブジェクトを生成し、前記天井方向の測距データに基づく第一のオブジェクト、前記地面方向の測距データに基づく第二のオブジェクト、又は、前記周囲方向の測距データに基づく第三のオブジェクトの少なくとも１つを生成する撮像オブジェクト生成手段と、
前記広角画像の視点となるカメラオブジェクトを生成するカメラオブジェクト生成手段と、ユーザ定義された三次元オブジェクトを生成するユーザオブジェクト生成手段と、前記スクリーンオブジェクト、前記第一のオブジェクト、前記第二のオブジェクト、前記第三のオブジェクト、及び、前記三次元オブジェクトと、前記スクリーンオブジェクトに貼り付けられる前記広角画像を描画処理部に送出する描画手段として機能させ、前記撮像オブジェクト生成手段は、各オブジェクトが有する物理作用に関する属性に基づき各オブジェクトを更新することを特徴とするプログラムを提供する。
【発明の効果】
【０００８】
三次元のオブジェクトと広角画像が連携したプログラムを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】全天球画像を撮像する撮像装置の外観図の一例である。
【図２】撮像装置のハードウェア構成図の一例である。
【図３】情報処理装置の概略斜視図の一例である。
【図４】情報処理装置のハードウェア構成図の一例である。
【図５】撮像装置と情報処理装置の機能をブロック状に示す機能ブロック図の一例である。
【図６】全天球画像三次元ライブラリが生成するオブジェクトの一例を示す図である。
【図７】球でないスクリーンオブジェクトの一例を示す図である。
【図８】側面オブジェクトを模式的に示す図である。
【図９】描画優先度に基づくボールの描画を説明する図の一例である。
【図１０】全天球画像三次元ライブラリにより作成されたアプリケーションソフトウェアの動作手順を説明するシーケンス図の一例である。
【図１１】全天球画像三次元ライブラリにより作成されたアプリケーションソフトウェアの動作手順を説明するシーケンス図の一例である。
【図１２】全天球画像三次元ライブラリが生成するオブジェクトの一例を示す図である（実施例２）。
【図１３】全天球画像三次元ライブラリにより作成されたアプリケーションソフトウェアの動作手順を説明するシーケンス図の一例である（実施例２）。
【図１４】全天球画像三次元ライブラリにより作成されたアプリケーションソフトウェアの動作手順を説明するシーケンス図の一例である（実施例３）。
【図１５】撮像装置のハードウェア構成図の一例である（実施例４）。
【図１６】撮像装置と情報処理装置の機能をブロック状に示す機能ブロック図の一例である（実施例４）。
【図１７】全天球画像三次元ライブラリにより作成されたアプリケーションソフトウェアの動作手順を説明するシーケンス図の一例である（実施例４）。
【図１８】撮像装置のハードウェア構成図の一例である（実施例５）。
【図１９】撮像装置と情報処理装置の機能をブロック状に示す機能ブロック図の一例である（実施例５）。
【図２０】全天球画像三次元ライブラリにより作成されたアプリケーションソフトウェアの動作手順を説明するシーケンス図の一例である（実施例５）。
【図２１】撮像シーンを説明する図の一例である。
【図２２】全天球画像を撮像する撮像装置の外観図の一例である（実施例６）。
【図２３】全天球画像三次元ライブラリが生成するオブジェクトの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面を参照しながら説明する。
【実施例１】
【００１１】
本実施形態では、全天球画像に視点位置から「天井」「地面」までの高さ情報、視点位置から周囲方向への距離情報が予め付加されている。本実施形態のアプリケーションソフトウェアは、三次元空間内で全天球画像を仮想的なスクリーンオブジェクトに投影する一方、天井と地面の高さ情報と周囲への距離情報に基づきそれぞれ天井オブジェクト、地面オブジェクト、及び側面オブジェクトといったオブジェクトを三次元空間に配置し、任意の三次元オブジェクトとの物理作用を演算する。
【００１２】
オブジェクトの生成や物理作用はライブラリで供給されるため、三次元のオブジェクトと全天球画像が連携するアプリケーションソフトウェアの開発が容易になる。
【００１３】
＜用語について＞
連携とは、一方のオブジェクトが他方のオブジェクトに作用して少なくとも一方のオブジェクトの属性が変化することをいう。例えば、衝突すること、衝突により運動状態等が変わることをいう。
【００１４】
属性とはオブジェクトの有する特徴又は性質をいう。オブジェクトの表示態様や挙動等に影響する設定値ということもできる。具体例は本実施形態で説明する。
【００１５】
＜構成例＞
図１は全天球画像を撮像する撮像装置１００の外観図の一例である。筐体１０１に背中合わせになった２つの撮像部１０２を有する。２つの撮像部１０２はつなぎ合わされて周囲３６０度が撮像された全天球の画像データ（以下、全天球画像という）が得られる。
【００１６】
筐体１０１の中央部には操作部１０３を有し、この操作部１０３はユーザが撮像操作する際に押下されるシャッターボタンである。また、撮像装置１００の上面には天井方向の距離を検出する天方向測距センサ１０４を有し、撮像装置１００の下面には地面方向の距離を検出する地方向測距センサ１０５を有している。更に、筐体１０１の周囲には周囲方向の距離を検出するための周囲方向測距センサ１０６に配置されている。周囲方向測距センサ１０６は周囲に複数配置されており、この数が多いほど周囲方向の距離を高分解能に検出できる。
【００１７】
なお、測距方式はどのような方式でもよいが、例えば、超音波や光のＴＯＦ（Time Of Flight）、ステレオカメラ、距離を検出できる単眼カメラなどがある。天方向測距センサ１０４、地方向測距センサ１０５、及び、周囲方向測距センサ１０６は外付けでもよい。
【００１８】
天方向測距センサ１０４及び地方向測距センサ１０５は、操作部１０３が押下された時の筐体１０１と天井方向、筐体１０１と地面方向との距離をそれぞれ検出する。周囲方向測距センサ１０６は操作部１０３が押下された時の筐体１０１の周囲方向の物体との距離を検出する。周囲方向測距センサ１０６は、例えば操作部１０３が押下された状態でユーザが筐体１０１と共に自転した時の周囲方向の物体との距離を検出してもよい。これにより、周囲方向測距センサ１０６の数を低減できる。また、天方向測距センサ１０４及び地方向測距センサ１０５を１つのセンサで兼用してもよい。
【００１９】
＜ハードウェア構成例＞
図２は、撮像装置１００のハードウェア構成図の一例を示す。撮像装置１００は内部バス２１０に接続されたＣＰＵ２０４、ＲＡＭ２０５、ＲＯＭ２０６、二次記憶部２０７（フラッシュメモリ）、ＵＳＢ制御部２０８、無線通信部２０９、画像符号化部２０２、センサ処理部２０３、及び、操作部１０３を有する。また、画像符号化部２０２には画像処理部２０１が接続されており、画像処理部２０１には撮像部１０２として第１面撮像部１０２と第２面撮像部１０２が接続されている。センサ処理部２０３には天方向測距センサ１０４、地方向測距センサ１０５、周囲方向測距センサ１０６、及び周囲方向測距センサ１０６が接続されている。
【００２０】
撮像装置１００の制御はＲＯＭ２０６に記憶されたプログラムをＣＰＵ２０４が実行することで行われる。ユーザが操作部１０３を操作して撮像を実行すると、画像処理部２０１は第１面撮像部１０２及び第２面撮像部１０２から取得した撮像画像のつなぎ合わせや画質の補正等の画像処理を行う。
【００２１】
画像処理部２０１は画像を画像符号化部２０２に出力し、画像符号化部２０２が符号化（所定の方式で圧縮）する。画像符号化部２０２は撮像画像符号化データを内部バス２１０経由でＲＡＭ２０５に転送する。
【００２２】
センサ処理部２０３は天方向測距センサ１０４、地方向測距センサ１０５、及び周囲方向測距センサ１０６の測距データを同様に内部バス２１０経由でＲＡＭ２０５に転送する。
【００２３】
プログラムを実行するＣＰＵ２０４はＲＡＭ２０５上の撮像画像符号化データと測距データを１つのファイルに格納し、二次記憶部２０７に記憶させる。記憶された撮像画像符号化データはＵＳＢ制御部２０８や無線通信部２０９を介して接続先の情報処理装置（図３に示す）に転送される。情報処理装置は例えば、スマートフォン、タブレット端末、ＰＣ（Personal Computer）など、アプリケーションソフトウェアを実行できる装置、電子機器、コンピュータ等である。
【００２４】
＜情報処理装置について＞
図３は情報処理装置１０の概略斜視図の一例である。図３の情報処理装置１０はＰＣが想定されている。ＰＣは表示装置としてのディスプレイ３０８、入力装置としてのキーボード３１１及びマウス３１２を有している。
【００２５】
情報処理装置１０はアプリケーションソフトウェアを実行する。このアプリケーションソフトウェアを情報処理装置１０が実行すると、三次元のオブジェクトと全天球画像が描画された三次元コンピュータグラフィック（３ＤＣＧ）上で、開発者がプログラミングした内容に従い全天球画像と三次元のオブジェクトが連携する。
【００２６】
アプリケーションソフトウェアはＷｅｂアプリでもよい。この場合、情報処理装置１０はブラウザソフトを実行しサーバからＨＴＭＬ及びJavaScript（登録商標）で記述されたＷｅｂアプリを取得する。
【００２７】
アプリケーションソフトウェアには後述する全天球画像三次元描画ライブラリが組み込まれており、アプリケーションソフトウェアは全天球画像三次元描画ライブラリの機能を呼び出すことで、三次元のオブジェクトと全天球画像が連携した三次元コンピュータグラフィックを動作させる。
【００２８】
開発者はライブラリを利用してプログラミングできるので開発工程を低減することができる。
【００２９】
<<情報処理装置のハードウェア構成例>>
図４は、情報処理装置１０のハードウェア構成図の一例を示す。情報処理装置１０は、装置全体の動作を制御するＣＰＵ３０１、ＩＰＬ（Initial Program Loader）や静的なデータを記憶したＲＯＭ３０２、ＣＰＵ３０１のワークエリアとして使用されるＲＡＭ３０３、ＣＰＵ３０１が実行するプログラム３０４ｐや各種データを記憶するＨＤ３０４を有する。また、ＣＰＵ３０１の制御にしたがってＨＤ３０４に対する各種データの読み出し又は書き込みを制御するＨＤＤ(Hard Disk Drive)３０５、フラッシュメモリ等の記録メディア３０６に対するデータの読み出し又は書き込み（記憶）を制御するメディアドライブ３０７を有する。また、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示するディスプレイ３０８、ディスプレイへの描画を行うＧＰＵ（Graphic Processer Unit）３１０、通信ネットワークを利用してデータ伝送をするためのネットワークＩ／Ｆ３０９、文字、数値、各種指示などの入力のための複数のキーを備えたキーボード３１１を有する。また、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行うマウス３１２、着脱可能な記録媒体の一例としての光記憶媒体３１３等に対する各種データの読み出し又は書き込みを制御する光記憶媒体ドライブ３１４、及び、上記各構成要素を図４に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン３２０を備えている。
【００３０】
なお、プログラム３０４ｐは、インストール可能な形式又は実行可能な形式のファイルで、上記記録メディア３０６や光記憶媒体等のコンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。また、プログラム３０４ｐは、プログラム配信用のサーバからインストール可能な形式又は実行可能な形式のファイルで情報処理装置１０に配布されてもよい。プログラム３０４ｐには上記のアプリケーションソフトウェアが含まれる。
【００３１】
＜機能について＞
図５は、撮像装置１００と情報処理装置１０の機能をブロック状に示す機能ブロック図の一例である。まず、撮像装置１００は、画像データ取得部１１、距離データ取得部１２、操作受付部１３、ファイル作成部１４、及び、ファイル送信部１５を有する。撮像装置１００が有するこれら各部は、図２に示したＣＰＵ２０４がＲＯＭ２０６からＲＡＭ２０５に展開されたプログラムを実行し、図２に示す各部を制御することで実現される機能又は手段である。
【００３２】
画像データ取得部１１は、ユーザの操作に応じて全天球画像を取得する（撮像する）。画像データ取得部１１は、ＣＰＵ２０４がプログラムを実行して画像処理部２０１を制御すること等により実現される。
【００３３】
距離データ取得部１２は、ユーザの操作に応じて天井方向、地面方向、及び、周囲方向の測距データを取得する。距離データ取得部１２は、ＣＰＵ２０４がプログラムを実行してセンサ処理部２０３を制御すること等により実現される。
【００３４】
操作受付部１３は、撮像装置１００に対する各種のユーザ操作を受け付ける。操作受付部１３は、ＣＰＵ２０４がプログラムを実行して操作部１０３を制御すること等により実現される。
【００３５】
ファイル作成部１４は、全天球画像と測距データを１つにまとめたファイルを作成する。ファイル作成部１４は、ＣＰＵ２０４がプログラムを実行すること等により実現される。ファイルは二次記憶部２０７に記憶される。ファイルのフォーマットの一例を表１に示す。
【００３６】
ファイル送信部１５は、二次記憶部２０７に記憶されたファイルを情報処理装置１０に送信する。二次記憶部２０７の全てのファイルを情報処理装置１０に送信してもよいし、ユーザが選択したファイルのみを送信してもよい。ファイル送信部１５はＣＰＵ２０４がプログラムを実行してＵＳＢ制御部２０８、又は無線通信部２０９を制御すること等により実現される。ファイルは送信される他、ＵＳＢメモリなどの記憶媒体に記憶され、情報処理装置１０が記憶媒体から読み取ってもよい。また、ファイルが格納されるサーバに送信され、情報処理装置１０がサーバからファイルを受信（ダウンロード）してもよい。
【００３７】
情報処理装置１０は、ファイル取得部２１、制御部２２、操作受付部２３、全天球画像三次元ライブラリ２４、及び、描画処理部２５を有する。情報処理装置１０が有するこれら各部は、図４に示したＣＰＵ３０１がＨＤ３０４からＲＡＭ３０３に展開されたプログラム３０４ｐを実行し、図４に示す各部を制御することで実現される機能又は手段である。
【００３８】
ファイル取得部２１は、撮像装置１００が作成したファイルを取得する。例えば、撮像装置１００から無線又は有線で受信したり、記憶媒体から読み取ったり、サーバから受信したりする。ファイル取得部２１は、ＣＰＵ３０１がＨＤ３０４からＲＡＭ３０３に展開されたプログラム３０４ｐを実行しネットワークＩ／Ｆ３０９を制御すること等により実現される。
【００３９】
制御部２２は、情報処理装置１０の動作の全体を制御する。アプリケーションソフトウェアには動作手順が記述されており、この記述にしたがって全天球画像三次元ライブラリ２４を呼び出す。制御部２２は、ＣＰＵ３０１がＨＤ３０４からＲＡＭ３０３に展開されたプログラム３０４ｐを実行すること等により実現される。
【００４０】
操作受付部２３は、情報処理装置１０に対する各種のユーザ操作を受け付ける。操作受付部２３は、ＣＰＵ３０１がプログラム３０４ｐを実行してキーボード３１１及びマウス３１２を制御すること等により実現される。
【００４１】
全天球画像三次元ライブラリ２４は、全天球画像を三次元オブジェクトと連携させるためこれらを同じ座標系に配置したり、適切な属性を付与したり、連携させるための機能を備えるプログラムである。ライブラリとは、よく使用される機能がプログラムで記述された部品の集合である。アプリケーションソフトウェアの開発では、従来からライブラリが活用されている。
【００４２】
本実施形態では、一例として描画オブジェクト生成部２６、カメラオブジェクト生成部２７、シーンオブジェクト生成部２８、及び、ボールオブジェクト生成部２９を有している。全天球画像三次元ライブラリ２４はこれらオブジェクトのクラスを有している。クラスはプログラムの設計図、オブジェクトはクラスに具体的な数値が設定された実体である。
【００４３】
描画オブジェクトは生成されたオブジェクトの描画に関する処理を行う。例えば、各オブジェクトの描画優先度に基づく描画の有無の設定を行い、全天球画像を取得して後述するスクリーンオブジェクトへの貼り付けを描画処理部に要求する。カメラオブジェクト生成部２７は撮像装置１００のオブジェクト（カメラオブジェクト）を生成する。カメラオブジェクトは全天球画像の視点となる。シーンオブジェクト生成部２８は全天球画像や他のオブジェクトを配置するためのシーンオブジェクトを生成する。シーンオブジェクトは空間を表すオブジェクトということができ、時刻経過、重力などの属性を有する。ボールオブジェクト生成部２９は全天球画像と連携する三次元オブジェクトの一例としてボールオブジェクト４７を生成する。ボールオブジェクト生成部２９は開発者などが定義した（ユーザ定義した）任意の三次元オブジェクトを生成できる。ボールオブジェクト４７は一例に過ぎない。
【００４４】
描画処理部２５は、描画オブジェクトからの描画要求に応じて全天球画像を含め、各オブジェクトをディスプレイ１１４に描画するレンダリングに関する処理を行う。なお、描画処理部２５はＣＰＵ３０１がプログラムを実行しＧＰＵ３１０を制御すること等により実現される。
【００４５】
【表１】
2018151793.tif 000003
表１は全天球画像のデータと測距データが格納されるファイルのファイルフォーマットを模式的に示す。ファイルは主にファイルヘッダ情報、画像データ部、及び、測距データ部を有する。ファイルヘッダ情報はファイルから測距データをアプリケーションソフトウェアが抽出するためのファイル内の測距データ有無、周囲測距密度、及び、ファイル内の測距データのオフセット位置を示す。
【００４６】
周囲測距密度は、周囲方向の測距データの空間密度を表す。例えば、ある水平位置の周囲３６０°に対して３６０点の測距データがある場合、周囲測距密度は360点/360°=１である。２００点の場合は200/360=0.56である。
【００４７】
画像データ部は既存の符号化方式の画像データ（符号ヘッダと符号）を格納する。測距データ部は天方向測距データ、地方向測距データ及び周囲方向測距データを格納する。
【００４８】
＜全天球画像三次元ライブラリが生成するオブジェクトの概念的な説明＞
図６は、全天球画像三次元ライブラリ２４が生成するオブジェクトの一例を示す。各オブジェクトは同じ座標系に配置された三次元オブジェクトである。カメラオブジェクト４４は仮想的な三次元空間を情報処理装置１０が表示するための視点位置に配置される。カメラオブジェクト４４は、座標、視線方向、及び、ズーム倍率（画角）をパラメータとして有する。図示するようなカメラの形状は説明のためのものであり、カメラオブジェクト４４は大きさを有する必要はない。
【００４９】
スクリーンオブジェクト４３は全天球画像が貼り付けられるオブジェクトである。スクリーンオブジェクト４３はカメラオブジェクト４４の側（スクリーンオブジェクト４３の内側）に貼り付けられる。スクリーンオブジェクト４３の形状は図示するような球体であるが、これは全天球画像が球であるためである。スクリーンオブジェクト４３の他の形状については後述する。スクリーンオブジェクト４３は実際には三角形又は四角形のポリゴンが組み合わされて構築されている。
【００５０】
スクリーンオブジェクト４３の座標は中心位置がカメラオブジェクト４４と一致する座標とする。撮像装置１００の位置から全天球画像を情報処理装置１０が見えるように各オブジェクトを配置するためである。
【００５１】
スクリーンオブジェクト４３が球の場合の半径は焦点距離などでよく予め定められている。ユーザは画角α（ズーム倍率）を変更できるため、半径としては適宜決定された値（例えば焦点距離）が用いられればよい。
【００５２】
天井オブジェクト４１は、撮像装置１００から見た天井を表すオブジェクトであり、ファイルに含まれる天方向測距データに基づき生成される（カメラオブジェクト４４に天方向測距データを加えた値）。広さは無限大とし、高さ位置はカメラオブジェクト４４を基準に天方向測距データに基づいて決定される。情報処理装置１０は天井オブジェクト４１を表示するのでなく、スクリーンオブジェクト４３に貼り付けられた全天球画像を表示するので、天井オブジェクト４１自体は無色透明である。
【００５３】
なお、図６では天井オブジェクト４１がスクリーンオブジェクト４３の外側にあるが、天井オブジェクト４１の高さによってはスクリーンオブジェクト４３の内側にある場合もある。この場合でも、天井オブジェクト４１は無色透明なので、スクリーンオブジェクト４３に貼りつけられた実空間の天井の画像を遮ることはない。
【００５４】
地面オブジェクト４２は、撮像装置１００から見た地面を表すオブジェクトであり、ファイルに含まれる地方向測距データに基づき生成される。広さは無限大とし、高さ位置はカメラオブジェクト４４を基準に地方向測距データに基づいて決定される（カメラオブジェクト４４から地方向測距データを減じた値）。また、地面という意味では０(座標系の基準点)としてもよい。情報処理装置１０は地面オブジェクト４２を表示するのでなく、スクリーンオブジェクト４３に貼り付けられた全天球画像を表示するので、地面オブジェクト４２自体は無色透明である。
【００５５】
なお、図６では地面オブジェクト４２がスクリーンオブジェクト４３の外側にあるが、地面オブジェクト４２の高さによってはスクリーンオブジェクト４３の内側に来る場合もある。この場合でも、地面オブジェクト４２は無色透明なので、スクリーンオブジェクト４３に貼り付けられた実空間の地面の画像を遮ることはない。
【００５６】
図７は、球でないスクリーンオブジェクト４３の一例を示す。図７では、スクリーンオブジェクト４３は平面である。この場合、スクリーンの広さはカメラオブジェクト４４の画角αの大きさに相当するように可変である。また、スクリーンオブジェクト４３は任意の曲率を持たせた曲面でもよい。球体でない場合のスクリーンオブジェクト４３とカメラオブジェクト４４との距離は、投影した全天球画像がカメラオブジェクト４４から歪みなく見えるよう事前に調整した定数とする。例えば、画角αが大きいほど大きくなるような距離である。
【００５７】
図８は側面オブジェクト４６を模式的に示す図である。図８は、カメラオブジェクト４４を上面（天井側）から見た図である。側面オブジェクト４６は、撮像装置１００の側面（周囲方向）を表すオブジェクトであり、側面オブジェクト４６はファイルの周囲方向測距データから生成される。周囲方向測距データは周囲の方向によって変化しうるので帯状（厚みはない）の立体形状のオブジェクトである。
【００５８】
図８では周囲方向の形状の起伏を示しているが、周囲方向の撮像環境の形状は高さ方向にも起伏がある形状でよい。情報処理装置１０は側面オブジェクト４６を表示するのでなく、スクリーンオブジェクト４３に貼り付けられた全天球画像を表示するので、側面オブジェクト４６自体は無色透明である。
【００５９】
＜物理作用＞
各オブジェクトは、衝突や落下など実空間と同様の物理的な作用を受けて動作することができる。このため、各オブジェクトには物理作用（相互作用の有無、重力の影響の有無など）の属性が設定されうる。全天球画像三次元ライブラリ２４の各生成部は、開発者によるアプリケーションソフトウェアへの記述にしたがって、オブジェクトごとに物理作用の有無及び大きさを設定する。
【００６０】
スクリーンオブジェクト４３には一切の物理作用は設定されない。すなわち他のオブジェクトと衝突したり、重力の影響で落下したりしない。天井オブジェクト４１、地面オブジェクト４２及び側面オブジェクト４６は、他のオブジェクトと相互作用するように生成される。アプリケーションソフトウェアは他のオブジェクト（例えばボールオブジェクト）との衝突を表現することができる。ただし、天井オブジェクト４１と地面オブジェクト４２及び側面オブジェクト４６は重力の影響を受けないように設定される。ボールオブジェクトは他のオブジェクトと相互作用し、更に重力の影響を受けるように設定される。
【００６１】
＜描画優先度＞
描画優先度とは、視点からみて複数のオブジェクトが重なった場合、描画処理部２５がどのオブジェクトを表示するかを決定するための属性である。描画オブジェクトは、各オブジェクトの描画優先度を設定したり変更したりする。図９を用いて説明する。
【００６２】
図９は、描画優先度に基づくボールの描画を説明する図の一例である。まず、描画オブジェクトはスクリーンオブジェクト４３の描画優先度を最も低く設定する。したがって、スクリーンオブジェクト４３に貼り付けられた全天球画像の描画優先度も同様に扱われる。
【００６３】
ボールオブジェクト４７の描画優先度はスクリーンオブジェクト４３、天井オブジェクト４１、地面オブジェクト４２及び側面オブジェクト４６よりも高い。
【００６４】
描画オブジェクトは原則的に近くてかつ描画優先度が高いオブジェクトを表示する。ボールオブジェクト４７がカメラオブジェクト４４とスクリーンオブジェクト４３の間にある場合、ボールオブジェクト４７の方がスクリーンオブジェクト４３（全天球画像）よりも近く、かつ、ボールオブジェクト４７の描画優先度の方が高いのでボールオブジェクト４７が表示される。ボールオブジェクト４７がスクリーンオブジェクト４３と側面オブジェクト４６の間にある場合、スクリーンオブジェクト４３の方が近いが、ボールオブジェクト４７の描画優先度の方が高いので、ボールオブジェクト４７が表示候補になる。また、ボールオブジェクト４７と側面オブジェクト４６では、ボールオブジェクト４７の方が近いく優先度も高いのでボールオブジェクト４７が表示される。ボールオブジェクト４７が側面オブジェクト４６よりも遠方にある場合、ボールオブジェクト４７の優先度の方が高く側面オブジェクト４６は透明だが、描画オブジェクトは例外的にボールオブジェクト４７を非表示にする（マスクする）。
【００６５】
このように描画優先度を決定することで、各オブジェクトの表示と非表示を制御できる。
【００６６】
＜動作手順＞
図１０，図１１を用いて、全天球画像三次元ライブラリ２４により作成されたアプリケーションソフトウェアの動作手順を説明する。このアプリケーションソフトウェアは任意の位置からボールを投げる動作を行う。
【００６７】
S1：制御部２２は、全天球画像三次元ライブラリ２４の描画オブジェクト生成部２６を呼び出し、描画オブジェクトを生成する。具体的には、描画オブジェクト生成部２６は描画クラスコンストラクタを有しており、描画オブジェクトに適切な属性に初期値を設定する。
【００６８】
S2：同様に、制御部２２はカメラオブジェクト生成部２７を呼び出しでカメラオブジェクト４４を生成する。この時も、カメラクラスコンストラクタが属性に初期値（座標、画角、視線方向等）を設定する。
【００６９】
S3：同様に、制御部２２はシーンオブジェクト生成部２８を呼び出しでシーンオブジェクトを生成する。この時も、シーンクラスコンストラクタが属性に初期値（座標、時刻、重力の大きさ等）を設定する。また、この初期値として全天球画像のファイル名を指定する。
【００７０】
S4：シーンオブジェクト生成部２８はシーンオブジェクトの生成時、連携してスクリーンオブジェクト４３を生成する。必要な属性値（座標、サイズ、物理作用、描画優先度等）が設定される。
【００７１】
S5：更に、シーンオブジェクト生成部２８は、指定された全天球画像のファイルをファイル取得部２１から取得する。
【００７２】
S6：シーンオブジェクト生成部２８はファイルに格納されている天方向測距データに基づいて天井オブジェクト４１を生成しシーンオブジェクトに追加する。また、属性として高さ、サイズ、物理作用、透明度、描画優先度等を設定する。
【００７３】
S7：同様に、シーンオブジェクト生成部２８はファイルに格納されている地方向測距データに基づいて地面オブジェクト４２を生成しシーンオブジェクトに追加する。また、属性として、高さ、サイズ、物理作用、透明度、描画優先度等を設定する。
【００７４】
S8：同様に、シーンオブジェクト生成部２８はファイルに格納されている周囲方向測距データに基づいて側面オブジェクト４６を生成しシーンオブジェクトに追加する。また、属性として物理作用、透明度、描画優先度等を設定する。
【００７５】
S9、S10：次に、制御部２２はシーンオブジェクトに表現したい立体として、全天球画像三次元ライブラリ２４のボールオブジェクト生成部２９を呼び出す。ボールオブジェクト生成部２９はボールの他、各種の立体を生成することができる。この時も、立体クラスコンストラクタが初期値（座標、サイズ、速度、向き、物理作用、描画優先度等が設定される）を設定する。ボールのサイズや位置は任意でよい。
【００７６】
S11：次に、制御部２２は生成したボールオブジェクト４７をシーンオブジェクトに追加する。
【００７７】
S12：次に、制御部２２は描画オブジェクトに対して描画指示をおこなう。つまり、描画を開始する。
【００７８】
S13、S14：描画オブジェクトは描画優先度の定義に基づき描画対象の各オブジェクトの描画の有無を決定し、各オブジェクトの座標を描画処理部２５に送出する。
【００７９】
S15：次に、描画オブジェクトは全天球画像のファイルを読み出す。
【００８０】
S16：描画オブジェクトは、画像データをスクリーンオブジェクト４３に対するテクスチャデータとして描画処理部２５に送信する。全天球画像はスクリーンオブジェクト４３のテクスチャデータとなる。
【００８１】
S17：描画処理部２５は、テクスチャデータをスクリーンオブジェクト４３に貼り付け、描画オブジェクトから送出された描画対象の各オブジェクトの座標、描画の有無に基づき、三次元のオブジェクトを２次元のディスプレイに表示するためのレンダリングを行う。レンダリングとは、各オブジェクトの座標、カメラ位置、画角、視線方向、印影などを処理して、具体的な画素の集合を得ることをいう。
【００８２】
S18：以上で、全天球画像とボールがディスプレイに対して表示される。
【００８３】
S19：次に、制御部２２は、ボールオブジェクト４７の物理的な移動を表現するため、速度と向きをボールオブジェクト４７に対して設定する。
【００８４】
S20：次に、制御部２２は、シーンオブジェクトに対して時刻経過を指示する。時刻経過とはボールが動画のように動いているようにユーザから見える設定された時間間隔である。
【００８５】
S21：シーンオブジェクトはボールオブジェクト４７に対して、時刻経過、移動速度、及び向きに基づき、位置の更新を行う。ボールオブジェクト４７は物理作用に関する属性に重力の影響を受けることが設定されているので、重力加速度で落下する。本実施例では動くのはボールのみである。また、ボールと他の各オブジェクトとの間で衝突判断を行い、衝突する場合は速度と向きの更新を行う。衝突した場合、ボールオブジェクト４７が側面オブジェクト４６等に近づく角度、速度、ボールオブジェクト４７と側面オブジェクト４６等の反発係数などから衝突後の速度と向きが算出される。
【００８６】
S22：次に、制御部２２は、再度、描画オブジェクトに対して描画指示を行う。
【００８７】
S23〜S27：全天球画像のファイルの読み出しが不要なるが、それ以外は上記のステップＳ１３〜１８と同様である。
【００８８】
アプリケーションソフトウェアは、ステップＳ１９〜Ｓ２７を繰り返す。時刻経過の更新に基づいてボールオブジェクト４７の速度と向きの変更を繰り返し行う。このように、アプリケーションソフトウェアは、全天球画像と三次元のオブジェクトが連携した描画処理を、全天球画像三次元ライブラリ２４を用いて行うことができる。
【００８９】
全天球画像三次元ライブラリ２４が全天球画像のスクリーンオブジェクト、天井オブジェクト、地面オブジェクト、側面オブジェクト４６を生成し、ボールオブジェクト４７と相互作用させるので、三次元のオブジェクトと全天球画像が連携したアプリケーションソフトウェアを開発者が開発することが容易になる。
【実施例２】
【００９０】
本実施例では更に光源オブジェクトを生成可能な全天球画像三次元ライブラリ２４について説明する。
【００９１】
本実施例の全天球画像三次元ライブラリ２４は全天球画像の読み込み時に画像内の光源の位置を推定する。また、光源は天井、側面、又は、地面に配置されると推定して、測距データに基づき空間内の光源の配置位置を算出し、光源オブジェクトを自動的に生成する。図１２を用いて説明する。
【００９２】
図１２は、全天球画像三次元ライブラリ２４が生成するオブジェクトの一例を示す。本実施例において、図６において同一の符号を付した構成要素は同様の機能を果たすので、主に本実施例の主要な構成要素についてのみ説明する場合がある。
【００９３】
図１２には光源オブジェクト４８が示されている。光源オブジェクト４８は空間内の光源を表す。アプリケーションソフトウェアが空間内に配置した三次元の各オブジェクトは光源の影響を受け、アプリケーションソフトウェアは表面上の陰影及びボールオブジェクト４７の影４９を表現する。
【００９４】
シーンオブジェクトは全天球画像から光源位置を推定する。例えば、全天球画像を照明に相当する輝度で二値化して、ノイズを除去する。一定以上の面積を有する画素範囲のうち、光源の形状に類似した画素範囲に光源があると推定する。光源の形状は線状でも円形でもよい。全天球画像三次元ライブラリ２４が光源を推定できなかった場合、視点位置に光源オブジェクトを配置する。
【００９５】
側面オブジェクト４６、地面オブジェクト４２及び天井オブジェクト４１は無色透明だが、他のオブジェクト（ボール）が形成する影４９は表面上に投影されるものとする。
【００９６】
アプリケーションソフトウェアがカメラオブジェクト４４の付近から視線方向にボールを投げたものとする。ボールオブジェクト４７の表面の一部に光源オブジェクトの光があたり陰影が生じる。また、光源オブジェクトとボールを結ぶ直線上にボールオブジェクト４７の影４９が生じるため、地面オブジェクト４２及び側面オブジェクト４６に影４９が描画される。
【００９７】
＜動作手順＞
図１３は、全天球画像三次元ライブラリ２４により作成されたアプリケーションソフトウェアの動作手順を説明するシーケンス図の一例である。図１３の説明では主に図１０，１１との相違を説明する。ステップＳ１〜Ｓ８までの処理は図１０と同様である。
【００９８】
S8-2：次に、シーンオブジェクト生成部２８は全天球画像から光源位置を推定する。光源位置は緯度と経度で特定される。
【００９９】
S8-3：シーンオブジェクトは、光源位置と測距データに基づき光源オブジェクトの座標を決定する。カメラオブジェクト４４と光源位置（緯度・経度）を結ぶ直線が、天井、地面、又は側面のどこと交差するかを判断し、交差すると判断した天井、地面、又は側面の交差点に光源オブジェクトを配置する。
【０１００】
続く、ステップＳ９〜Ｓ１３は図１０と同様である。
S14：描画オブジェクトは描画対象の各オブジェクトの座標に加え光源オブジェクトの座標を描画処理部２５に送信する。以降の処理は実施例１と同様である。
【０１０１】
これにより、描画処理部２５がレンダリングを行う場合、光源オブジェクトに基づきシェーディング処理をすることができる。シェーディングとは、光源オブジェクト、オブジェクトの反射材質、及び、オブジェクトの法線ベクトルに基づいて陰影を付す処理である。
【０１０２】
このように本実施例の全天球画像三次元ライブラリ２４は、全天球画像から光源を検出して光源オブジェクトを生成するので、アプリケーションソフトウェアは他のオブジェクトに対する陰影を施すことができる。
【実施例３】
【０１０３】
本実施例では全天球画像が動画として撮像された場合に、三次元のオブジェクトと連携するアプリケーションソフトウェアを作成できる全天球画像三次元ライブラリ２４について説明する。実施例１では、ボールオブジェクト４７が移動しても全天球画像は静止していたが、本実施例ではボールオブジェクト４７の移動と共に、全天球画像三次元ライブラリ２４が全天球画像も変化させることができる。なお、動画の撮像中、撮像装置１００は移動しない（固定されている）ものとする。したがって、視点も移動しない。
【０１０４】
本実施例の距離データ取得部１２は、動画の撮像中、継続して測距データを検出する。したがって、測距データは動画の撮像と合わせて時間的な変化を有する。表２に本実施例のファイルフォーマットの一例を示す。
【０１０５】
【表２】
2018151793.tif 000004
表２のファイルフォーマットは、ファイルヘッダ情報、動画データ部、及び測距データ部を有する。動画データ部には動画データと音声データが格納され、測距データ部には、時系列天方向測距データ、時系列地方向測距データ、及び、時系列周囲方向測距データが格納される。
【０１０６】
＜動作手順＞
本実施例のアプリケーションソフトウェアの動作は実施例２の図１３と同様であるが、図１３に続く処理が本実施例では異なっている。
【０１０７】
図１４は、全天球画像三次元ライブラリ２４により作成されたアプリケーションソフトウェアの動作手順を説明するシーケンス図の一例である。図１４では、時刻経過に合わせて、シーンオブジェクトが各オブジェクト及び投影する全天球画像を更新する。Ｓ１９、Ｓ２０の処理は図１１と同様である。
【０１０８】
S21-1：シーンオブジェクトは、全天球の動画データのファイルが有する時系列天方向測距データから対応する時刻の測距データを読み出し、天井オブジェクト４１の高さを更新する。
【０１０９】
S21-2：シーンオブジェクトは、全天球の動画データのファイルが有する時系列地方向測距データから対応する時刻の測距データを読み出し、地面オブジェクト４２の高さを更新する。
【０１１０】
S21-3：シーンオブジェクトは、全天球の動画データのファイルが有する時系列周囲方向測距データから対応する時刻の測距データを読み出し、側面オブジェクト４６の形状を更新する。
【０１１１】
S21-4：シーンオブジェクトは、全天球の動画データから対応する時刻の画像データを読み出し、光源オブジェクトを更新する。すなわち、光源位置を推定して光源の座標等を更新する。
【０１１２】
S21-5：また、シーンオブジェクトは速度、向き及び重力の定義に基づいてボールオブジェクト４７の位置を更新し、ボールオブジェクト４７と各オブジェクトとの衝突判断を行う。衝突する場合には、速度と向きを更新する。
【０１１３】
ステップＳ２２〜２４の処理は実施例２と同様である。
S24-2：描画オブジェクトは、時刻経過にしたがって全天球の動画データを更新する。すなわち、指定された時刻に対応する画像データを動画データから読み出す。
【０１１４】
以上の処理により、本実施例のアプリケーションソフトウェアは、三次元オブジェクトの移動に合わせて全天球画像を更新するので、動画の全天球画像と三次元のオブジェクトを連携させることができる。
【実施例４】
【０１１５】
本実施例では回転しうる撮像装置１００により撮像された全天球画像が動画として撮像された場合でも、三次元のオブジェクトと連携するアプリケーションソフトウェアを作成できる全天球画像三次元ライブラリ２４について説明する。実施例３との相違は、撮像装置１００が回転する点である。撮像装置１００が回転角を検出し、シーンオブジェクトが天井オブジェクト４１、地面オブジェクト、側面オブジェクト４６、光源オブジェクト４８、及び、ボールオブジェクト４７の位置等を更新するので、撮像装置１００に手ぶれなどが生じても情報処理装置１０は一定の視点でオブジェクトを描画できる。
【０１１６】
図１５は、本実施例の撮像装置１００のハードウェア構成図の一例を示し、図１６は、本実施例の撮像装置１００と情報処理装置１０の機能をブロック状に示す機能ブロック図の一例である。図１５の説明では主に図２との相違を説明する。図１５に示すように撮像装置１００は角速度センサ１０７を有し、センサ処理部２０３と接続されている。
【０１１７】
また、図１６の説明では主に図５との相違を説明する。図１６の撮像装置１００は角速度データ取得部１６を有している。角速度データ取得部１６は、撮像装置１００に生じる角速度を検出する。角速度データ取得部１６は、ＣＰＵ２０４がプログラムを実行してセンサ処理部２０３を制御すること等により実現される。角速度データは表３に示すように画像データと共にファイルに格納される。
【０１１８】
【表３】
2018151793.tif 000005
表３は本実施例のファイルフォーマットの一例を示す。表２と比較すると、角速度データ部を有する。角速度データ部には時系列角速度データが格納される。また、ファイルヘッダ情報には、角速度データをアプリケーションソフトウェアが読み出せるように、角速度センサ１０７データ有無及び角速度センサオフセットを有する。
【０１１９】
＜動作手順＞
図１７は、全天球画像三次元ライブラリ２４により作成されたアプリケーションソフトウェアの動作手順を説明するシーケンス図の一例である。図１７の説明では主に図１４との相違を説明する。図１７では、時刻経過に合わせて、アプリケーションソフトウェアが各オブジェクト及び投影する全天球画像を更新すると共に撮像装置１００の回転に基づく各オブジェクトの座標を補正する。撮像装置１００が回転しても撮像装置１００の正面向きが一定になるよう補正する。
【０１２０】
S21-1：シーンオブジェクトは、全天球の動画データのファイルが有する時系列角速度データから対応する時刻の角速度を読み出し回転角を算出し、天井オブジェクト４１の座標を更新する。すなわち、撮像装置１００と同じ回転角だけ天井オブジェクト４１を回転させる。
【０１２１】
S21-2：シーンオブジェクトは、全天球の動画データのファイルが有する時系列角速度データから対応する時刻の角速度を読み出し回転角を算出し、地面オブジェクト４２の座標を更新する。すなわち、撮像装置１００と同じ回転角だけ地面オブジェクト４２を回転させる。
【０１２２】
S21-3：シーンオブジェクトは、全天球の動画データのファイルが有する時系列角速度データから対応する時刻の角速度を読み出し回転角を算出し、側面オブジェクト４６の座標を更新する。すなわち、撮像装置１００と同じ回転角だけ側面オブジェクト４６を回転させる。
【０１２３】
S21-4：シーンオブジェクトは、全天球の動画データのファイルが有する時系列角速度データから対応する時刻の角速度を読み出し回転角を算出し、また、光源位置を推定する。そして、撮像装置１００と同じ回転角だけ光源オブジェクト４８を回転させる。
【０１２４】
S21-5：また、シーンオブジェクトは速度、向き及び重力の定義に基づいて各オブジェクトの位置を更新すると共に、撮像装置１００と同じ回転角だけボールオブジェクト４７を回転させる。また、ボールと各オブジェクトとの衝突判断を行う。衝突する場合には、速度と向きを更新する。
【０１２５】
ステップＳ２２〜２４の処理は図１４と同様である。
S24-2：描画オブジェクトは、時刻経過にしたがって全天球の動画データを更新する。また、撮像装置１００と同じ回転角だけ全天球画像を回転させる。
【０１２６】
以上の処理により、本実施例のアプリケーションソフトウェアは、動画の撮像時に手ぶれなどで撮像装置１００が回転しても、各オブジェクト及び全天球画像を回転させるので、手ブレ等の筐体１０１の回転による視点ずれを補正して一定の視点で描画ができる。
【実施例５】
【０１２７】
本実施例では平行移動しうる撮像装置１００により撮像された全天球画像が動画として撮像された場合でも、三次元のオブジェクトと連携するアプリケーションソフトウェアを作成できる全天球画像三次元ライブラリ２４について説明する。実施例４との相違は、撮像装置１００が平行移動する点である。平行移動の加速度を検出して、アプリケーションソフトウェアが天井オブジェクト４１、地面オブジェクト４２、側面オブジェクト４６、光源オブジェクト４８、及び、ボールオブジェクト４７の位置等を更新するので、撮像者が移動した場合に各オブジェクトを一緒に移動させて各オブジェクトを描画できる。
【０１２８】
図１８は、本実施例の撮像装置１００のハードウェア構成図の一例を示し、図１９は、本実施例の撮像装置１００と情報処理装置１０の機能をブロック状に示す機能ブロック図の一例である。図１８の説明では主に図１５との相違を説明する。図１８に示すように撮像装置１００は加速度センサ１０８を有し、センサ処理部２０３と接続されている。
【０１２９】
図１９の説明では主に図１６との相違を説明する。図１９の撮像装置１００は加速度データ取得部１７を有している。加速度データ取得部１７は、撮像装置１００に生じる加速度を検出する。加速度データ取得部１７は、ＣＰＵ２０４がプログラムを実行してセンサ処理部２０３を制御すること等により実現される。加速度データは表４に示すように画像データと共にファイルに格納される。
【０１３０】
【表４】
2018151793.tif 000006
表４は本実施例のファイルフォーマットの一例を示す。表３と比較すると、加速度データ部を有する。加速度データ部には時系列加速度データが格納される。また、ファイルヘッダ情報には、加速度データをアプリケーションソフトウェアが読み出せるように、加速度センサ１０８データ有無及び加速度センサオフセットを有する。
【０１３１】
＜動作手順＞
図２０は、全天球画像三次元ライブラリ２４により作成されたアプリケーションソフトウェアの動作手順を説明するシーケンス図の一例である。図２０の説明では主に図１７との相違を説明する。図２０では、時刻経過に合わせて、各オブジェクト及び投影する全天球画像を更新すると共に、撮像装置１００の平行移動に基づきオブジェクトの座標を補正する。
【０１３２】
S21-1：シーンオブジェクトは、全天球の動画データのファイルが有する時系列加速度データから対応する時刻の加速度を読み出し移動量を算出し、天井オブジェクト４１の座標を更新する。すなわち、撮像装置１００が平行移動した分だけ天井オブジェクト４１を平行移動させる。
【０１３３】
S21-2：シーンオブジェクトは、全天球の動画データのファイルが有する時系列加速度データから対応する時刻の加速度を読み出し移動量を算出し、地面オブジェクト４２の座標を更新する。すなわち、撮像装置１００が平行移動した分だけ地面オブジェクト４２を平行移動させる。
【０１３４】
S21-3：シーンオブジェクトは、全天球の動画データのファイルが有する時系列加速度データから対応する時刻の加速度を読み出し移動量を算出し、側面オブジェクト４６の座標を更新する。すなわち、撮像装置１００が平行移動した分だけ側面オブジェクト４６を平行移動させる。
【０１３５】
S21-4：シーンオブジェクトは、全天球の動画データのファイルが有する時系列加速度データから対応する時刻の加速度を読み出し移動量を算出し、また、光源位置を推定する。そして、撮像装置１００が平行移動した分だけ光源オブジェクト４８を平行移動させる。
【０１３６】
S21-5：また、シーンオブジェクトは速度、向き及び重力の定義に基づいて各オブジェクトの位置を更新すると共に、撮像装置１００と同じ移動量だけボールオブジェクト４７を平行移動させる。また、ボールと各オブジェクトとの衝突判断を行う。衝突する場合には、速度と向きを更新する。
【０１３７】
ステップＳ２２〜２４の処理は実施例４と同様である。
S24-2：描画オブジェクトは、時刻経過にしたがって全天球の動画データを更新する。また、撮像装置１００と同じ移動量だけ全天球画像を平行移動させる。
【０１３８】
以上の処理により、本実施例のアプリケーションソフトウェアは、動画の撮像時に撮像装置１００が移動しても、各オブジェクト及び全天球画像を移動させるので、筐体１０１の移動による視点ずれを補正して一定の視点で描画ができる。実施例４と合わせれば、視点移動と回転による視点のズレを補正できる。
【実施例６】
【０１３９】
本実施例では、傾きを持つ有限の大きさの天井オブジェクト４１及び地面オブジェクト４２生成することができる全天球画像三次元ライブラリ２４について説明する。
【０１４０】
図２１は、撮像シーンを説明する図の一例である。実施例１〜５では、天井と地面が水平であることを前提にした。本実施例では図２１に示すように、撮像装置１００の上方向にある天井５１が傾きを持ち有限の大きさである。また撮像装置１００の下方向にある地面５２も傾きを持ち有限の大きさである。このような撮像シーンでは天井５１と地面５２の傾きを、天井オブジェクト４１と地面オブジェクト４２に反映させることが好ましい。
【０１４１】
図２２は、全天球画像を撮像する撮像装置１００の外観図の一例である。図２２の説明では主に図１との相違を説明する。図１の撮像装置１００に対して、図２２の撮像装置１００は複数の天方向測距センサ１０４及び複数の地方向測距センサ１０５を有する。したがって、それぞれが複数の測定点で距離を検出できるので、天井又は地面の傾きを検出できる。
【０１４２】
図２３は、全天球画像三次元ライブラリ２４が生成するオブジェクトの一例を示す。シーンオブジェクト生成部２８は、測距データに基づいて天井と地面の傾きを判断し、この傾きを有する天井オブジェクト４１及び地面オブジェクト４２をシーンオブジェクトに追加する。また、天井と地面の大きさは測距データが検出された範囲により決定される。図２３に示すように天井オブジェクト４１及び地面オブジェクト４２は複数の測定点の測距データに基づき、傾きを持つ有限の大きさのオブジェクトとして生成される。
【０１４３】
このように、大きさが有限で傾きや起伏がある天井又は地面が撮像されても、適切にオブジェクト生成が可能になる。
【０１４４】
＜まとめ＞
以上説明したように、本実施形態の全天球画像三次元ライブラリ２４は、視点位置から「天井」「地面」までの高さ情報、視点位置から周囲方向への距離情報が全天球画像に付加されていることを利用して、高さ情報と距離情報に基づきそれぞれ天井オブジェクト、地面オブジェクト、及び側面オブジェクトといったオブジェクトを三次元空間に配置できる。また、任意の三次元オブジェクトとの物理作用を演算することができる。オブジェクトの生成や物理作用はライブラリで供給されるため、三次元のオブジェクトと全天球画像が連携するアプリケーションソフトウェアの開発が容易になる。
【０１４５】
＜その他の適用例＞
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【０１４６】
例えば、情報処理装置１０がアプリケーションソフトウェアを実行するのでなく、撮像装置１００がアプリケーションを実行してもよい。
【０１４７】
また、測距データは撮像装置１００が撮像した値に限られず、ユーザがマニュアルで設定した値でもよい。ユーザは測距データがない場合に設定したり、測距データを編集したりすることができる。
【０１４８】
また、主に屋内の実施例を説明したが、撮像装置１００が屋外を撮像して、屋外に適したライブラリが用意されてもよい。この場合天井オブジェクト４１が不要になる場合がある。
【０１４９】
また、周囲３６０度が撮像された全天球画像を三次元空間が配置されたが、画像データは周囲３６０度が撮像されていなくてもよい。本実施形態の画像データは三次元空間に配置されることで見やすくなる湾曲した広角画像であればよい。例えば、水平方向にのみ３６０度撮像されていてもよいし、全天球の上半分や下半分が撮像されていてもよい。また、１８０度程度の広角画像でもよい。
【０１５０】
なお、シーンオブジェクト生成部２８は撮像オブジェクト生成手段の一例であり、カメラオブジェクト生成部２７はカメラオブジェクト生成手段の一例であり、ボールオブジェクト生成部２９はユーザオブジェクト生成手段の一例であり、描画オブジェクト生成部２６は描画手段の一例である。また、天井オブジェクト４１は第一のオブジェクトの一例であり、地面オブジェクト４２は第二のオブジェクトの一例であり、側面オブジェクト４６は第三のオブジェクトの一例である。ボールオブジェクト４７は三次元オブジェクトの一例である。
【符号の説明】
【０１５１】
１０      ：情報処理装置
２４      ：全天球画像三次元ライブラリ
４１      ：天井オブジェクト
４２      ：地面オブジェクト
４３      ：スクリーンオブジェクト
４４      ：カメラオブジェクト
４６      ：側面オブジェクト
４７      ：ボールオブジェクト
４８      ：光源オブジェクト
１００    ：撮像装置
【先行技術文献】
【特許文献】
【０１５２】
【特許文献１】特開2014-127001号公報
【図１】
2018151793.tif 000007
【図２】
2018151793.tif 000008
【図３】
2018151793.tif 000009
【図４】
2018151793.tif 000010
【図５】
2018151793.tif 000011
【図６】
2018151793.tif 000012
【図７】
2018151793.tif 000013
【図８】
2018151793.tif 000014
【図９】
2018151793.tif 000015
【図１０】
2018151793.tif 000016
【図１１】
2018151793.tif 000017
【図１２】
2018151793.tif 000018
【図１３】
2018151793.tif 000019
【図１４】
2018151793.tif 000020
【図１５】
2018151793.tif 000021
【図１６】
2018151793.tif 000022
【図１７】
2018151793.tif 000023
【図１８】
2018151793.tif 000024
【図１９】
2018151793.tif 000025
【図２０】
2018151793.tif 000026
【図２１】
2018151793.tif 000027
【図２２】
2018151793.tif 000028
【図２３】
2018151793.tif 000029