JP2018151793A - プログラム、情報処理装置 - Google Patents
プログラム、情報処理装置 Download PDFInfo
- Publication number
- JP2018151793A JP2018151793A JP2017046744A JP2017046744A JP2018151793A JP 2018151793 A JP2018151793 A JP 2018151793A JP 2017046744 A JP2017046744 A JP 2017046744A JP 2017046744 A JP2017046744 A JP 2017046744A JP 2018151793 A JP2018151793 A JP 2018151793A
- Authority
- JP
- Japan
- Prior art keywords
- distance measurement
- measurement data
- wide
- imaging
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 46
- 238000003384 imaging method Methods 0.000 claims abstract description 101
- 238000012545 processing Methods 0.000 claims abstract description 48
- 230000000704 physical effect Effects 0.000 claims abstract description 19
- 238000005259 measurement Methods 0.000 claims description 73
- 230000001133 acceleration Effects 0.000 claims description 25
- 230000003993 interaction Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 abstract description 16
- 238000010586 diagram Methods 0.000 description 27
- 238000000034 method Methods 0.000 description 25
- 230000033001 locomotion Effects 0.000 description 20
- 230000005484 gravity Effects 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Abstract
【課題】三次元のオブジェクトと広角画像が連携したプログラムを提供すること。【解決手段】情報処理装置10を、広角画像が貼り付けられるスクリーンオブジェクトを生成し、天井方向の測距データに基づく第一のオブジェクト、地面方向の測距データに基づく第二のオブジェクト、又は、前記周囲方向の測距データに基づく第三のオブジェクトの少なくとも1つを生成する撮像オブジェクト生成手段28と、広角画像の視点となるカメラオブジェクトを生成するカメラオブジェクト生成手段27と、ユーザ定義された三次元オブジェクトを生成するユーザオブジェクト生成手段29と、スクリーンオブジェクト等を描画処理部25に送出する描画手段として機能させ、撮像オブジェクト生成手段は、各オブジェクトが有する物理作用に関する属性に基づき各オブジェクトを更新することを特徴とするプログラムを提供する。【選択図】図1
Description
本発明は、プログラム、及び情報処理装置に関する。
周囲360度の風景を撮像可能な全天球カメラが普及している。全天球カメラで撮像した画像データ(全天球画像)は球に貼り付けられた立体形状を有しており、立体形状の全天球画像を効果的に活用する方法が検討されている。例えば、全天球画像を閲覧するには二次元平面に投影する必要があるが、表示範囲によっては歪みが生じやすくなり、この歪みを低減する技術が考案されている(例えば、特許文献1参照。)。
特許文献1には、三次元モデルに全天球画像を貼り付けて、指定された出力範囲によって、視野角を優先的に変化させるか、視点の位置を優先的に変化させるかを切り替える画像処理システムについて開示されている。
しかしながら、従来の技術では、全天球画像が三次元形状を有していても、これをコンピュータグラフィックで活用することが容易でないという問題がある。三次元のオブジェクトを情報処理装置で表示させるアプリケーションソフトウェアの開発では、回転、移動、変倍等、よく使う機能が公開されている描画ライブラリを利用することが一般的である。開発者はこれらの描画ライブラリを使用して、効率的にアプリケーションソフトウェア(すなわちプログラム)を開発できる。
しかしながら、従来の描画ライブラリは全天球画像と直接連携できないため、三次元のオブジェクトと全天球画像が連携したアプリケーションソフトウェアを開発者が開発するには工数が必要となっていた。例えば、全天球画像に壁が写っている場合に、この壁にボール(オブジェクト)をぶつけるようなアプリケーションソフトウェアを作成する場合、開発者は全天球画像、壁及びボールに相当するオブジェクトを個別に生成し、これらの相互作用を記述する必要がある。
本発明は、上記課題に鑑み、三次元のオブジェクトと広角画像が連携したプログラムを提供することを目的とする。
本発明は、広角画像、及び、天井方向、地面方向又は周囲方向の測距データの少なくともいずれかを取得する情報処理装置を、前記広角画像が貼り付けられるスクリーンオブジェクトを生成し、前記天井方向の測距データに基づく第一のオブジェクト、前記地面方向の測距データに基づく第二のオブジェクト、又は、前記周囲方向の測距データに基づく第三のオブジェクトの少なくとも1つを生成する撮像オブジェクト生成手段と、
前記広角画像の視点となるカメラオブジェクトを生成するカメラオブジェクト生成手段と、ユーザ定義された三次元オブジェクトを生成するユーザオブジェクト生成手段と、前記スクリーンオブジェクト、前記第一のオブジェクト、前記第二のオブジェクト、前記第三のオブジェクト、及び、前記三次元オブジェクトと、前記スクリーンオブジェクトに貼り付けられる前記広角画像を描画処理部に送出する描画手段として機能させ、前記撮像オブジェクト生成手段は、各オブジェクトが有する物理作用に関する属性に基づき各オブジェクトを更新することを特徴とするプログラムを提供する。
前記広角画像の視点となるカメラオブジェクトを生成するカメラオブジェクト生成手段と、ユーザ定義された三次元オブジェクトを生成するユーザオブジェクト生成手段と、前記スクリーンオブジェクト、前記第一のオブジェクト、前記第二のオブジェクト、前記第三のオブジェクト、及び、前記三次元オブジェクトと、前記スクリーンオブジェクトに貼り付けられる前記広角画像を描画処理部に送出する描画手段として機能させ、前記撮像オブジェクト生成手段は、各オブジェクトが有する物理作用に関する属性に基づき各オブジェクトを更新することを特徴とするプログラムを提供する。
三次元のオブジェクトと広角画像が連携したプログラムを提供することができる。
以下、本発明を実施するための形態について図面を参照しながら説明する。
本実施形態では、全天球画像に視点位置から「天井」「地面」までの高さ情報、視点位置から周囲方向への距離情報が予め付加されている。本実施形態のアプリケーションソフトウェアは、三次元空間内で全天球画像を仮想的なスクリーンオブジェクトに投影する一方、天井と地面の高さ情報と周囲への距離情報に基づきそれぞれ天井オブジェクト、地面オブジェクト、及び側面オブジェクトといったオブジェクトを三次元空間に配置し、任意の三次元オブジェクトとの物理作用を演算する。
オブジェクトの生成や物理作用はライブラリで供給されるため、三次元のオブジェクトと全天球画像が連携するアプリケーションソフトウェアの開発が容易になる。
<用語について>
連携とは、一方のオブジェクトが他方のオブジェクトに作用して少なくとも一方のオブジェクトの属性が変化することをいう。例えば、衝突すること、衝突により運動状態等が変わることをいう。
連携とは、一方のオブジェクトが他方のオブジェクトに作用して少なくとも一方のオブジェクトの属性が変化することをいう。例えば、衝突すること、衝突により運動状態等が変わることをいう。
属性とはオブジェクトの有する特徴又は性質をいう。オブジェクトの表示態様や挙動等に影響する設定値ということもできる。具体例は本実施形態で説明する。
<構成例>
図1は全天球画像を撮像する撮像装置100の外観図の一例である。筐体101に背中合わせになった2つの撮像部102を有する。2つの撮像部102はつなぎ合わされて周囲360度が撮像された全天球の画像データ(以下、全天球画像という)が得られる。
図1は全天球画像を撮像する撮像装置100の外観図の一例である。筐体101に背中合わせになった2つの撮像部102を有する。2つの撮像部102はつなぎ合わされて周囲360度が撮像された全天球の画像データ(以下、全天球画像という)が得られる。
筐体101の中央部には操作部103を有し、この操作部103はユーザが撮像操作する際に押下されるシャッターボタンである。また、撮像装置100の上面には天井方向の距離を検出する天方向測距センサ104を有し、撮像装置100の下面には地面方向の距離を検出する地方向測距センサ105を有している。更に、筐体101の周囲には周囲方向の距離を検出するための周囲方向測距センサ106に配置されている。周囲方向測距センサ106は周囲に複数配置されており、この数が多いほど周囲方向の距離を高分解能に検出できる。
なお、測距方式はどのような方式でもよいが、例えば、超音波や光のTOF(Time Of Flight)、ステレオカメラ、距離を検出できる単眼カメラなどがある。天方向測距センサ104、地方向測距センサ105、及び、周囲方向測距センサ106は外付けでもよい。
天方向測距センサ104及び地方向測距センサ105は、操作部103が押下された時の筐体101と天井方向、筐体101と地面方向との距離をそれぞれ検出する。周囲方向測距センサ106は操作部103が押下された時の筐体101の周囲方向の物体との距離を検出する。周囲方向測距センサ106は、例えば操作部103が押下された状態でユーザが筐体101と共に自転した時の周囲方向の物体との距離を検出してもよい。これにより、周囲方向測距センサ106の数を低減できる。また、天方向測距センサ104及び地方向測距センサ105を1つのセンサで兼用してもよい。
<ハードウェア構成例>
図2は、撮像装置100のハードウェア構成図の一例を示す。撮像装置100は内部バス210に接続されたCPU204、RAM205、ROM206、二次記憶部207(フラッシュメモリ)、USB制御部208、無線通信部209、画像符号化部202、センサ処理部203、及び、操作部103を有する。また、画像符号化部202には画像処理部201が接続されており、画像処理部201には撮像部102として第1面撮像部102と第2面撮像部102が接続されている。センサ処理部203には天方向測距センサ104、地方向測距センサ105、周囲方向測距センサ106、及び周囲方向測距センサ106が接続されている。
図2は、撮像装置100のハードウェア構成図の一例を示す。撮像装置100は内部バス210に接続されたCPU204、RAM205、ROM206、二次記憶部207(フラッシュメモリ)、USB制御部208、無線通信部209、画像符号化部202、センサ処理部203、及び、操作部103を有する。また、画像符号化部202には画像処理部201が接続されており、画像処理部201には撮像部102として第1面撮像部102と第2面撮像部102が接続されている。センサ処理部203には天方向測距センサ104、地方向測距センサ105、周囲方向測距センサ106、及び周囲方向測距センサ106が接続されている。
撮像装置100の制御はROM206に記憶されたプログラムをCPU204が実行することで行われる。ユーザが操作部103を操作して撮像を実行すると、画像処理部201は第1面撮像部102及び第2面撮像部102から取得した撮像画像のつなぎ合わせや画質の補正等の画像処理を行う。
画像処理部201は画像を画像符号化部202に出力し、画像符号化部202が符号化(所定の方式で圧縮)する。画像符号化部202は撮像画像符号化データを内部バス210経由でRAM205に転送する。
センサ処理部203は天方向測距センサ104、地方向測距センサ105、及び周囲方向測距センサ106の測距データを同様に内部バス210経由でRAM205に転送する。
プログラムを実行するCPU204はRAM205上の撮像画像符号化データと測距データを1つのファイルに格納し、二次記憶部207に記憶させる。記憶された撮像画像符号化データはUSB制御部208や無線通信部209を介して接続先の情報処理装置(図3に示す)に転送される。情報処理装置は例えば、スマートフォン、タブレット端末、PC(Personal Computer)など、アプリケーションソフトウェアを実行できる装置、電子機器、コンピュータ等である。
<情報処理装置について>
図3は情報処理装置10の概略斜視図の一例である。図3の情報処理装置10はPCが想定されている。PCは表示装置としてのディスプレイ308、入力装置としてのキーボード311及びマウス312を有している。
図3は情報処理装置10の概略斜視図の一例である。図3の情報処理装置10はPCが想定されている。PCは表示装置としてのディスプレイ308、入力装置としてのキーボード311及びマウス312を有している。
情報処理装置10はアプリケーションソフトウェアを実行する。このアプリケーションソフトウェアを情報処理装置10が実行すると、三次元のオブジェクトと全天球画像が描画された三次元コンピュータグラフィック(3DCG)上で、開発者がプログラミングした内容に従い全天球画像と三次元のオブジェクトが連携する。
アプリケーションソフトウェアはWebアプリでもよい。この場合、情報処理装置10はブラウザソフトを実行しサーバからHTML及びJavaScript(登録商標)で記述されたWebアプリを取得する。
アプリケーションソフトウェアには後述する全天球画像三次元描画ライブラリが組み込まれており、アプリケーションソフトウェアは全天球画像三次元描画ライブラリの機能を呼び出すことで、三次元のオブジェクトと全天球画像が連携した三次元コンピュータグラフィックを動作させる。
開発者はライブラリを利用してプログラミングできるので開発工程を低減することができる。
<<情報処理装置のハードウェア構成例>>
図4は、情報処理装置10のハードウェア構成図の一例を示す。情報処理装置10は、装置全体の動作を制御するCPU301、IPL(Initial Program Loader)や静的なデータを記憶したROM302、CPU301のワークエリアとして使用されるRAM303、CPU301が実行するプログラム304pや各種データを記憶するHD304を有する。また、CPU301の制御にしたがってHD304に対する各種データの読み出し又は書き込みを制御するHDD(Hard Disk Drive)305、フラッシュメモリ等の記録メディア306に対するデータの読み出し又は書き込み(記憶)を制御するメディアドライブ307を有する。また、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示するディスプレイ308、ディスプレイへの描画を行うGPU(Graphic Processer Unit)310、通信ネットワークを利用してデータ伝送をするためのネットワークI/F309、文字、数値、各種指示などの入力のための複数のキーを備えたキーボード311を有する。また、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行うマウス312、着脱可能な記録媒体の一例としての光記憶媒体313等に対する各種データの読み出し又は書き込みを制御する光記憶媒体ドライブ314、及び、上記各構成要素を図4に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン320を備えている。
図4は、情報処理装置10のハードウェア構成図の一例を示す。情報処理装置10は、装置全体の動作を制御するCPU301、IPL(Initial Program Loader)や静的なデータを記憶したROM302、CPU301のワークエリアとして使用されるRAM303、CPU301が実行するプログラム304pや各種データを記憶するHD304を有する。また、CPU301の制御にしたがってHD304に対する各種データの読み出し又は書き込みを制御するHDD(Hard Disk Drive)305、フラッシュメモリ等の記録メディア306に対するデータの読み出し又は書き込み(記憶)を制御するメディアドライブ307を有する。また、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示するディスプレイ308、ディスプレイへの描画を行うGPU(Graphic Processer Unit)310、通信ネットワークを利用してデータ伝送をするためのネットワークI/F309、文字、数値、各種指示などの入力のための複数のキーを備えたキーボード311を有する。また、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行うマウス312、着脱可能な記録媒体の一例としての光記憶媒体313等に対する各種データの読み出し又は書き込みを制御する光記憶媒体ドライブ314、及び、上記各構成要素を図4に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン320を備えている。
なお、プログラム304pは、インストール可能な形式又は実行可能な形式のファイルで、上記記録メディア306や光記憶媒体等のコンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。また、プログラム304pは、プログラム配信用のサーバからインストール可能な形式又は実行可能な形式のファイルで情報処理装置10に配布されてもよい。プログラム304pには上記のアプリケーションソフトウェアが含まれる。
<機能について>
図5は、撮像装置100と情報処理装置10の機能をブロック状に示す機能ブロック図の一例である。まず、撮像装置100は、画像データ取得部11、距離データ取得部12、操作受付部13、ファイル作成部14、及び、ファイル送信部15を有する。撮像装置100が有するこれら各部は、図2に示したCPU204がROM206からRAM205に展開されたプログラムを実行し、図2に示す各部を制御することで実現される機能又は手段である。
図5は、撮像装置100と情報処理装置10の機能をブロック状に示す機能ブロック図の一例である。まず、撮像装置100は、画像データ取得部11、距離データ取得部12、操作受付部13、ファイル作成部14、及び、ファイル送信部15を有する。撮像装置100が有するこれら各部は、図2に示したCPU204がROM206からRAM205に展開されたプログラムを実行し、図2に示す各部を制御することで実現される機能又は手段である。
画像データ取得部11は、ユーザの操作に応じて全天球画像を取得する(撮像する)。画像データ取得部11は、CPU204がプログラムを実行して画像処理部201を制御すること等により実現される。
距離データ取得部12は、ユーザの操作に応じて天井方向、地面方向、及び、周囲方向の測距データを取得する。距離データ取得部12は、CPU204がプログラムを実行してセンサ処理部203を制御すること等により実現される。
操作受付部13は、撮像装置100に対する各種のユーザ操作を受け付ける。操作受付部13は、CPU204がプログラムを実行して操作部103を制御すること等により実現される。
ファイル作成部14は、全天球画像と測距データを1つにまとめたファイルを作成する。ファイル作成部14は、CPU204がプログラムを実行すること等により実現される。ファイルは二次記憶部207に記憶される。ファイルのフォーマットの一例を表1に示す。
ファイル送信部15は、二次記憶部207に記憶されたファイルを情報処理装置10に送信する。二次記憶部207の全てのファイルを情報処理装置10に送信してもよいし、ユーザが選択したファイルのみを送信してもよい。ファイル送信部15はCPU204がプログラムを実行してUSB制御部208、又は無線通信部209を制御すること等により実現される。ファイルは送信される他、USBメモリなどの記憶媒体に記憶され、情報処理装置10が記憶媒体から読み取ってもよい。また、ファイルが格納されるサーバに送信され、情報処理装置10がサーバからファイルを受信(ダウンロード)してもよい。
情報処理装置10は、ファイル取得部21、制御部22、操作受付部23、全天球画像三次元ライブラリ24、及び、描画処理部25を有する。情報処理装置10が有するこれら各部は、図4に示したCPU301がHD304からRAM303に展開されたプログラム304pを実行し、図4に示す各部を制御することで実現される機能又は手段である。
ファイル取得部21は、撮像装置100が作成したファイルを取得する。例えば、撮像装置100から無線又は有線で受信したり、記憶媒体から読み取ったり、サーバから受信したりする。ファイル取得部21は、CPU301がHD304からRAM303に展開されたプログラム304pを実行しネットワークI/F309を制御すること等により実現される。
制御部22は、情報処理装置10の動作の全体を制御する。アプリケーションソフトウェアには動作手順が記述されており、この記述にしたがって全天球画像三次元ライブラリ24を呼び出す。制御部22は、CPU301がHD304からRAM303に展開されたプログラム304pを実行すること等により実現される。
操作受付部23は、情報処理装置10に対する各種のユーザ操作を受け付ける。操作受付部23は、CPU301がプログラム304pを実行してキーボード311及びマウス312を制御すること等により実現される。
全天球画像三次元ライブラリ24は、全天球画像を三次元オブジェクトと連携させるためこれらを同じ座標系に配置したり、適切な属性を付与したり、連携させるための機能を備えるプログラムである。ライブラリとは、よく使用される機能がプログラムで記述された部品の集合である。アプリケーションソフトウェアの開発では、従来からライブラリが活用されている。
本実施形態では、一例として描画オブジェクト生成部26、カメラオブジェクト生成部27、シーンオブジェクト生成部28、及び、ボールオブジェクト生成部29を有している。全天球画像三次元ライブラリ24はこれらオブジェクトのクラスを有している。クラスはプログラムの設計図、オブジェクトはクラスに具体的な数値が設定された実体である。
描画オブジェクトは生成されたオブジェクトの描画に関する処理を行う。例えば、各オブジェクトの描画優先度に基づく描画の有無の設定を行い、全天球画像を取得して後述するスクリーンオブジェクトへの貼り付けを描画処理部に要求する。カメラオブジェクト生成部27は撮像装置100のオブジェクト(カメラオブジェクト)を生成する。カメラオブジェクトは全天球画像の視点となる。シーンオブジェクト生成部28は全天球画像や他のオブジェクトを配置するためのシーンオブジェクトを生成する。シーンオブジェクトは空間を表すオブジェクトということができ、時刻経過、重力などの属性を有する。ボールオブジェクト生成部29は全天球画像と連携する三次元オブジェクトの一例としてボールオブジェクト47を生成する。ボールオブジェクト生成部29は開発者などが定義した(ユーザ定義した)任意の三次元オブジェクトを生成できる。ボールオブジェクト47は一例に過ぎない。
描画処理部25は、描画オブジェクトからの描画要求に応じて全天球画像を含め、各オブジェクトをディスプレイ114に描画するレンダリングに関する処理を行う。なお、描画処理部25はCPU301がプログラムを実行しGPU310を制御すること等により実現される。
周囲測距密度は、周囲方向の測距データの空間密度を表す。例えば、ある水平位置の周囲360°に対して360点の測距データがある場合、周囲測距密度は360点/360°=1である。200点の場合は200/360=0.56である。
画像データ部は既存の符号化方式の画像データ(符号ヘッダと符号)を格納する。測距データ部は天方向測距データ、地方向測距データ及び周囲方向測距データを格納する。
<全天球画像三次元ライブラリが生成するオブジェクトの概念的な説明>
図6は、全天球画像三次元ライブラリ24が生成するオブジェクトの一例を示す。各オブジェクトは同じ座標系に配置された三次元オブジェクトである。カメラオブジェクト44は仮想的な三次元空間を情報処理装置10が表示するための視点位置に配置される。カメラオブジェクト44は、座標、視線方向、及び、ズーム倍率(画角)をパラメータとして有する。図示するようなカメラの形状は説明のためのものであり、カメラオブジェクト44は大きさを有する必要はない。
図6は、全天球画像三次元ライブラリ24が生成するオブジェクトの一例を示す。各オブジェクトは同じ座標系に配置された三次元オブジェクトである。カメラオブジェクト44は仮想的な三次元空間を情報処理装置10が表示するための視点位置に配置される。カメラオブジェクト44は、座標、視線方向、及び、ズーム倍率(画角)をパラメータとして有する。図示するようなカメラの形状は説明のためのものであり、カメラオブジェクト44は大きさを有する必要はない。
スクリーンオブジェクト43は全天球画像が貼り付けられるオブジェクトである。スクリーンオブジェクト43はカメラオブジェクト44の側(スクリーンオブジェクト43の内側)に貼り付けられる。スクリーンオブジェクト43の形状は図示するような球体であるが、これは全天球画像が球であるためである。スクリーンオブジェクト43の他の形状については後述する。スクリーンオブジェクト43は実際には三角形又は四角形のポリゴンが組み合わされて構築されている。
スクリーンオブジェクト43の座標は中心位置がカメラオブジェクト44と一致する座標とする。撮像装置100の位置から全天球画像を情報処理装置10が見えるように各オブジェクトを配置するためである。
スクリーンオブジェクト43が球の場合の半径は焦点距離などでよく予め定められている。ユーザは画角α(ズーム倍率)を変更できるため、半径としては適宜決定された値(例えば焦点距離)が用いられればよい。
天井オブジェクト41は、撮像装置100から見た天井を表すオブジェクトであり、ファイルに含まれる天方向測距データに基づき生成される(カメラオブジェクト44に天方向測距データを加えた値)。広さは無限大とし、高さ位置はカメラオブジェクト44を基準に天方向測距データに基づいて決定される。情報処理装置10は天井オブジェクト41を表示するのでなく、スクリーンオブジェクト43に貼り付けられた全天球画像を表示するので、天井オブジェクト41自体は無色透明である。
なお、図6では天井オブジェクト41がスクリーンオブジェクト43の外側にあるが、天井オブジェクト41の高さによってはスクリーンオブジェクト43の内側にある場合もある。この場合でも、天井オブジェクト41は無色透明なので、スクリーンオブジェクト43に貼りつけられた実空間の天井の画像を遮ることはない。
地面オブジェクト42は、撮像装置100から見た地面を表すオブジェクトであり、ファイルに含まれる地方向測距データに基づき生成される。広さは無限大とし、高さ位置はカメラオブジェクト44を基準に地方向測距データに基づいて決定される(カメラオブジェクト44から地方向測距データを減じた値)。また、地面という意味では0(座標系の基準点)としてもよい。情報処理装置10は地面オブジェクト42を表示するのでなく、スクリーンオブジェクト43に貼り付けられた全天球画像を表示するので、地面オブジェクト42自体は無色透明である。
なお、図6では地面オブジェクト42がスクリーンオブジェクト43の外側にあるが、地面オブジェクト42の高さによってはスクリーンオブジェクト43の内側に来る場合もある。この場合でも、地面オブジェクト42は無色透明なので、スクリーンオブジェクト43に貼り付けられた実空間の地面の画像を遮ることはない。
図7は、球でないスクリーンオブジェクト43の一例を示す。図7では、スクリーンオブジェクト43は平面である。この場合、スクリーンの広さはカメラオブジェクト44の画角αの大きさに相当するように可変である。また、スクリーンオブジェクト43は任意の曲率を持たせた曲面でもよい。球体でない場合のスクリーンオブジェクト43とカメラオブジェクト44との距離は、投影した全天球画像がカメラオブジェクト44から歪みなく見えるよう事前に調整した定数とする。例えば、画角αが大きいほど大きくなるような距離である。
図8は側面オブジェクト46を模式的に示す図である。図8は、カメラオブジェクト44を上面(天井側)から見た図である。側面オブジェクト46は、撮像装置100の側面(周囲方向)を表すオブジェクトであり、側面オブジェクト46はファイルの周囲方向測距データから生成される。周囲方向測距データは周囲の方向によって変化しうるので帯状(厚みはない)の立体形状のオブジェクトである。
図8では周囲方向の形状の起伏を示しているが、周囲方向の撮像環境の形状は高さ方向にも起伏がある形状でよい。情報処理装置10は側面オブジェクト46を表示するのでなく、スクリーンオブジェクト43に貼り付けられた全天球画像を表示するので、側面オブジェクト46自体は無色透明である。
<物理作用>
各オブジェクトは、衝突や落下など実空間と同様の物理的な作用を受けて動作することができる。このため、各オブジェクトには物理作用(相互作用の有無、重力の影響の有無など)の属性が設定されうる。全天球画像三次元ライブラリ24の各生成部は、開発者によるアプリケーションソフトウェアへの記述にしたがって、オブジェクトごとに物理作用の有無及び大きさを設定する。
各オブジェクトは、衝突や落下など実空間と同様の物理的な作用を受けて動作することができる。このため、各オブジェクトには物理作用(相互作用の有無、重力の影響の有無など)の属性が設定されうる。全天球画像三次元ライブラリ24の各生成部は、開発者によるアプリケーションソフトウェアへの記述にしたがって、オブジェクトごとに物理作用の有無及び大きさを設定する。
スクリーンオブジェクト43には一切の物理作用は設定されない。すなわち他のオブジェクトと衝突したり、重力の影響で落下したりしない。天井オブジェクト41、地面オブジェクト42及び側面オブジェクト46は、他のオブジェクトと相互作用するように生成される。アプリケーションソフトウェアは他のオブジェクト(例えばボールオブジェクト)との衝突を表現することができる。ただし、天井オブジェクト41と地面オブジェクト42及び側面オブジェクト46は重力の影響を受けないように設定される。ボールオブジェクトは他のオブジェクトと相互作用し、更に重力の影響を受けるように設定される。
<描画優先度>
描画優先度とは、視点からみて複数のオブジェクトが重なった場合、描画処理部25がどのオブジェクトを表示するかを決定するための属性である。描画オブジェクトは、各オブジェクトの描画優先度を設定したり変更したりする。図9を用いて説明する。
描画優先度とは、視点からみて複数のオブジェクトが重なった場合、描画処理部25がどのオブジェクトを表示するかを決定するための属性である。描画オブジェクトは、各オブジェクトの描画優先度を設定したり変更したりする。図9を用いて説明する。
図9は、描画優先度に基づくボールの描画を説明する図の一例である。まず、描画オブジェクトはスクリーンオブジェクト43の描画優先度を最も低く設定する。したがって、スクリーンオブジェクト43に貼り付けられた全天球画像の描画優先度も同様に扱われる。
ボールオブジェクト47の描画優先度はスクリーンオブジェクト43、天井オブジェクト41、地面オブジェクト42及び側面オブジェクト46よりも高い。
描画オブジェクトは原則的に近くてかつ描画優先度が高いオブジェクトを表示する。ボールオブジェクト47がカメラオブジェクト44とスクリーンオブジェクト43の間にある場合、ボールオブジェクト47の方がスクリーンオブジェクト43(全天球画像)よりも近く、かつ、ボールオブジェクト47の描画優先度の方が高いのでボールオブジェクト47が表示される。ボールオブジェクト47がスクリーンオブジェクト43と側面オブジェクト46の間にある場合、スクリーンオブジェクト43の方が近いが、ボールオブジェクト47の描画優先度の方が高いので、ボールオブジェクト47が表示候補になる。また、ボールオブジェクト47と側面オブジェクト46では、ボールオブジェクト47の方が近いく優先度も高いのでボールオブジェクト47が表示される。ボールオブジェクト47が側面オブジェクト46よりも遠方にある場合、ボールオブジェクト47の優先度の方が高く側面オブジェクト46は透明だが、描画オブジェクトは例外的にボールオブジェクト47を非表示にする(マスクする)。
このように描画優先度を決定することで、各オブジェクトの表示と非表示を制御できる。
<動作手順>
図10,図11を用いて、全天球画像三次元ライブラリ24により作成されたアプリケーションソフトウェアの動作手順を説明する。このアプリケーションソフトウェアは任意の位置からボールを投げる動作を行う。
図10,図11を用いて、全天球画像三次元ライブラリ24により作成されたアプリケーションソフトウェアの動作手順を説明する。このアプリケーションソフトウェアは任意の位置からボールを投げる動作を行う。
S1:制御部22は、全天球画像三次元ライブラリ24の描画オブジェクト生成部26を呼び出し、描画オブジェクトを生成する。具体的には、描画オブジェクト生成部26は描画クラスコンストラクタを有しており、描画オブジェクトに適切な属性に初期値を設定する。
S2:同様に、制御部22はカメラオブジェクト生成部27を呼び出しでカメラオブジェクト44を生成する。この時も、カメラクラスコンストラクタが属性に初期値(座標、画角、視線方向等)を設定する。
S3:同様に、制御部22はシーンオブジェクト生成部28を呼び出しでシーンオブジェクトを生成する。この時も、シーンクラスコンストラクタが属性に初期値(座標、時刻、重力の大きさ等)を設定する。また、この初期値として全天球画像のファイル名を指定する。
S4:シーンオブジェクト生成部28はシーンオブジェクトの生成時、連携してスクリーンオブジェクト43を生成する。必要な属性値(座標、サイズ、物理作用、描画優先度等)が設定される。
S5:更に、シーンオブジェクト生成部28は、指定された全天球画像のファイルをファイル取得部21から取得する。
S6:シーンオブジェクト生成部28はファイルに格納されている天方向測距データに基づいて天井オブジェクト41を生成しシーンオブジェクトに追加する。また、属性として高さ、サイズ、物理作用、透明度、描画優先度等を設定する。
S7:同様に、シーンオブジェクト生成部28はファイルに格納されている地方向測距データに基づいて地面オブジェクト42を生成しシーンオブジェクトに追加する。また、属性として、高さ、サイズ、物理作用、透明度、描画優先度等を設定する。
S8:同様に、シーンオブジェクト生成部28はファイルに格納されている周囲方向測距データに基づいて側面オブジェクト46を生成しシーンオブジェクトに追加する。また、属性として物理作用、透明度、描画優先度等を設定する。
S9、S10:次に、制御部22はシーンオブジェクトに表現したい立体として、全天球画像三次元ライブラリ24のボールオブジェクト生成部29を呼び出す。ボールオブジェクト生成部29はボールの他、各種の立体を生成することができる。この時も、立体クラスコンストラクタが初期値(座標、サイズ、速度、向き、物理作用、描画優先度等が設定される)を設定する。ボールのサイズや位置は任意でよい。
S11:次に、制御部22は生成したボールオブジェクト47をシーンオブジェクトに追加する。
S12:次に、制御部22は描画オブジェクトに対して描画指示をおこなう。つまり、描画を開始する。
S13、S14:描画オブジェクトは描画優先度の定義に基づき描画対象の各オブジェクトの描画の有無を決定し、各オブジェクトの座標を描画処理部25に送出する。
S15:次に、描画オブジェクトは全天球画像のファイルを読み出す。
S16:描画オブジェクトは、画像データをスクリーンオブジェクト43に対するテクスチャデータとして描画処理部25に送信する。全天球画像はスクリーンオブジェクト43のテクスチャデータとなる。
S17:描画処理部25は、テクスチャデータをスクリーンオブジェクト43に貼り付け、描画オブジェクトから送出された描画対象の各オブジェクトの座標、描画の有無に基づき、三次元のオブジェクトを2次元のディスプレイに表示するためのレンダリングを行う。レンダリングとは、各オブジェクトの座標、カメラ位置、画角、視線方向、印影などを処理して、具体的な画素の集合を得ることをいう。
S18:以上で、全天球画像とボールがディスプレイに対して表示される。
S19:次に、制御部22は、ボールオブジェクト47の物理的な移動を表現するため、速度と向きをボールオブジェクト47に対して設定する。
S20:次に、制御部22は、シーンオブジェクトに対して時刻経過を指示する。時刻経過とはボールが動画のように動いているようにユーザから見える設定された時間間隔である。
S21:シーンオブジェクトはボールオブジェクト47に対して、時刻経過、移動速度、及び向きに基づき、位置の更新を行う。ボールオブジェクト47は物理作用に関する属性に重力の影響を受けることが設定されているので、重力加速度で落下する。本実施例では動くのはボールのみである。また、ボールと他の各オブジェクトとの間で衝突判断を行い、衝突する場合は速度と向きの更新を行う。衝突した場合、ボールオブジェクト47が側面オブジェクト46等に近づく角度、速度、ボールオブジェクト47と側面オブジェクト46等の反発係数などから衝突後の速度と向きが算出される。
S22:次に、制御部22は、再度、描画オブジェクトに対して描画指示を行う。
S23〜S27:全天球画像のファイルの読み出しが不要なるが、それ以外は上記のステップS13〜18と同様である。
アプリケーションソフトウェアは、ステップS19〜S27を繰り返す。時刻経過の更新に基づいてボールオブジェクト47の速度と向きの変更を繰り返し行う。このように、アプリケーションソフトウェアは、全天球画像と三次元のオブジェクトが連携した描画処理を、全天球画像三次元ライブラリ24を用いて行うことができる。
全天球画像三次元ライブラリ24が全天球画像のスクリーンオブジェクト、天井オブジェクト、地面オブジェクト、側面オブジェクト46を生成し、ボールオブジェクト47と相互作用させるので、三次元のオブジェクトと全天球画像が連携したアプリケーションソフトウェアを開発者が開発することが容易になる。
本実施例では更に光源オブジェクトを生成可能な全天球画像三次元ライブラリ24について説明する。
本実施例の全天球画像三次元ライブラリ24は全天球画像の読み込み時に画像内の光源の位置を推定する。また、光源は天井、側面、又は、地面に配置されると推定して、測距データに基づき空間内の光源の配置位置を算出し、光源オブジェクトを自動的に生成する。図12を用いて説明する。
図12は、全天球画像三次元ライブラリ24が生成するオブジェクトの一例を示す。本実施例において、図6において同一の符号を付した構成要素は同様の機能を果たすので、主に本実施例の主要な構成要素についてのみ説明する場合がある。
図12には光源オブジェクト48が示されている。光源オブジェクト48は空間内の光源を表す。アプリケーションソフトウェアが空間内に配置した三次元の各オブジェクトは光源の影響を受け、アプリケーションソフトウェアは表面上の陰影及びボールオブジェクト47の影49を表現する。
シーンオブジェクトは全天球画像から光源位置を推定する。例えば、全天球画像を照明に相当する輝度で二値化して、ノイズを除去する。一定以上の面積を有する画素範囲のうち、光源の形状に類似した画素範囲に光源があると推定する。光源の形状は線状でも円形でもよい。全天球画像三次元ライブラリ24が光源を推定できなかった場合、視点位置に光源オブジェクトを配置する。
側面オブジェクト46、地面オブジェクト42及び天井オブジェクト41は無色透明だが、他のオブジェクト(ボール)が形成する影49は表面上に投影されるものとする。
アプリケーションソフトウェアがカメラオブジェクト44の付近から視線方向にボールを投げたものとする。ボールオブジェクト47の表面の一部に光源オブジェクトの光があたり陰影が生じる。また、光源オブジェクトとボールを結ぶ直線上にボールオブジェクト47の影49が生じるため、地面オブジェクト42及び側面オブジェクト46に影49が描画される。
<動作手順>
図13は、全天球画像三次元ライブラリ24により作成されたアプリケーションソフトウェアの動作手順を説明するシーケンス図の一例である。図13の説明では主に図10,11との相違を説明する。ステップS1〜S8までの処理は図10と同様である。
図13は、全天球画像三次元ライブラリ24により作成されたアプリケーションソフトウェアの動作手順を説明するシーケンス図の一例である。図13の説明では主に図10,11との相違を説明する。ステップS1〜S8までの処理は図10と同様である。
S8-2:次に、シーンオブジェクト生成部28は全天球画像から光源位置を推定する。光源位置は緯度と経度で特定される。
S8-3:シーンオブジェクトは、光源位置と測距データに基づき光源オブジェクトの座標を決定する。カメラオブジェクト44と光源位置(緯度・経度)を結ぶ直線が、天井、地面、又は側面のどこと交差するかを判断し、交差すると判断した天井、地面、又は側面の交差点に光源オブジェクトを配置する。
続く、ステップS9〜S13は図10と同様である。
S14:描画オブジェクトは描画対象の各オブジェクトの座標に加え光源オブジェクトの座標を描画処理部25に送信する。以降の処理は実施例1と同様である。
S14:描画オブジェクトは描画対象の各オブジェクトの座標に加え光源オブジェクトの座標を描画処理部25に送信する。以降の処理は実施例1と同様である。
これにより、描画処理部25がレンダリングを行う場合、光源オブジェクトに基づきシェーディング処理をすることができる。シェーディングとは、光源オブジェクト、オブジェクトの反射材質、及び、オブジェクトの法線ベクトルに基づいて陰影を付す処理である。
このように本実施例の全天球画像三次元ライブラリ24は、全天球画像から光源を検出して光源オブジェクトを生成するので、アプリケーションソフトウェアは他のオブジェクトに対する陰影を施すことができる。
本実施例では全天球画像が動画として撮像された場合に、三次元のオブジェクトと連携するアプリケーションソフトウェアを作成できる全天球画像三次元ライブラリ24について説明する。実施例1では、ボールオブジェクト47が移動しても全天球画像は静止していたが、本実施例ではボールオブジェクト47の移動と共に、全天球画像三次元ライブラリ24が全天球画像も変化させることができる。なお、動画の撮像中、撮像装置100は移動しない(固定されている)ものとする。したがって、視点も移動しない。
本実施例の距離データ取得部12は、動画の撮像中、継続して測距データを検出する。したがって、測距データは動画の撮像と合わせて時間的な変化を有する。表2に本実施例のファイルフォーマットの一例を示す。
<動作手順>
本実施例のアプリケーションソフトウェアの動作は実施例2の図13と同様であるが、図13に続く処理が本実施例では異なっている。
本実施例のアプリケーションソフトウェアの動作は実施例2の図13と同様であるが、図13に続く処理が本実施例では異なっている。
図14は、全天球画像三次元ライブラリ24により作成されたアプリケーションソフトウェアの動作手順を説明するシーケンス図の一例である。図14では、時刻経過に合わせて、シーンオブジェクトが各オブジェクト及び投影する全天球画像を更新する。S19、S20の処理は図11と同様である。
S21-1:シーンオブジェクトは、全天球の動画データのファイルが有する時系列天方向測距データから対応する時刻の測距データを読み出し、天井オブジェクト41の高さを更新する。
S21-2:シーンオブジェクトは、全天球の動画データのファイルが有する時系列地方向測距データから対応する時刻の測距データを読み出し、地面オブジェクト42の高さを更新する。
S21-3:シーンオブジェクトは、全天球の動画データのファイルが有する時系列周囲方向測距データから対応する時刻の測距データを読み出し、側面オブジェクト46の形状を更新する。
S21-4:シーンオブジェクトは、全天球の動画データから対応する時刻の画像データを読み出し、光源オブジェクトを更新する。すなわち、光源位置を推定して光源の座標等を更新する。
S21-5:また、シーンオブジェクトは速度、向き及び重力の定義に基づいてボールオブジェクト47の位置を更新し、ボールオブジェクト47と各オブジェクトとの衝突判断を行う。衝突する場合には、速度と向きを更新する。
ステップS22〜24の処理は実施例2と同様である。
S24-2:描画オブジェクトは、時刻経過にしたがって全天球の動画データを更新する。すなわち、指定された時刻に対応する画像データを動画データから読み出す。
S24-2:描画オブジェクトは、時刻経過にしたがって全天球の動画データを更新する。すなわち、指定された時刻に対応する画像データを動画データから読み出す。
以上の処理により、本実施例のアプリケーションソフトウェアは、三次元オブジェクトの移動に合わせて全天球画像を更新するので、動画の全天球画像と三次元のオブジェクトを連携させることができる。
本実施例では回転しうる撮像装置100により撮像された全天球画像が動画として撮像された場合でも、三次元のオブジェクトと連携するアプリケーションソフトウェアを作成できる全天球画像三次元ライブラリ24について説明する。実施例3との相違は、撮像装置100が回転する点である。撮像装置100が回転角を検出し、シーンオブジェクトが天井オブジェクト41、地面オブジェクト、側面オブジェクト46、光源オブジェクト48、及び、ボールオブジェクト47の位置等を更新するので、撮像装置100に手ぶれなどが生じても情報処理装置10は一定の視点でオブジェクトを描画できる。
図15は、本実施例の撮像装置100のハードウェア構成図の一例を示し、図16は、本実施例の撮像装置100と情報処理装置10の機能をブロック状に示す機能ブロック図の一例である。図15の説明では主に図2との相違を説明する。図15に示すように撮像装置100は角速度センサ107を有し、センサ処理部203と接続されている。
また、図16の説明では主に図5との相違を説明する。図16の撮像装置100は角速度データ取得部16を有している。角速度データ取得部16は、撮像装置100に生じる角速度を検出する。角速度データ取得部16は、CPU204がプログラムを実行してセンサ処理部203を制御すること等により実現される。角速度データは表3に示すように画像データと共にファイルに格納される。
<動作手順>
図17は、全天球画像三次元ライブラリ24により作成されたアプリケーションソフトウェアの動作手順を説明するシーケンス図の一例である。図17の説明では主に図14との相違を説明する。図17では、時刻経過に合わせて、アプリケーションソフトウェアが各オブジェクト及び投影する全天球画像を更新すると共に撮像装置100の回転に基づく各オブジェクトの座標を補正する。撮像装置100が回転しても撮像装置100の正面向きが一定になるよう補正する。
図17は、全天球画像三次元ライブラリ24により作成されたアプリケーションソフトウェアの動作手順を説明するシーケンス図の一例である。図17の説明では主に図14との相違を説明する。図17では、時刻経過に合わせて、アプリケーションソフトウェアが各オブジェクト及び投影する全天球画像を更新すると共に撮像装置100の回転に基づく各オブジェクトの座標を補正する。撮像装置100が回転しても撮像装置100の正面向きが一定になるよう補正する。
S21-1:シーンオブジェクトは、全天球の動画データのファイルが有する時系列角速度データから対応する時刻の角速度を読み出し回転角を算出し、天井オブジェクト41の座標を更新する。すなわち、撮像装置100と同じ回転角だけ天井オブジェクト41を回転させる。
S21-2:シーンオブジェクトは、全天球の動画データのファイルが有する時系列角速度データから対応する時刻の角速度を読み出し回転角を算出し、地面オブジェクト42の座標を更新する。すなわち、撮像装置100と同じ回転角だけ地面オブジェクト42を回転させる。
S21-3:シーンオブジェクトは、全天球の動画データのファイルが有する時系列角速度データから対応する時刻の角速度を読み出し回転角を算出し、側面オブジェクト46の座標を更新する。すなわち、撮像装置100と同じ回転角だけ側面オブジェクト46を回転させる。
S21-4:シーンオブジェクトは、全天球の動画データのファイルが有する時系列角速度データから対応する時刻の角速度を読み出し回転角を算出し、また、光源位置を推定する。そして、撮像装置100と同じ回転角だけ光源オブジェクト48を回転させる。
S21-5:また、シーンオブジェクトは速度、向き及び重力の定義に基づいて各オブジェクトの位置を更新すると共に、撮像装置100と同じ回転角だけボールオブジェクト47を回転させる。また、ボールと各オブジェクトとの衝突判断を行う。衝突する場合には、速度と向きを更新する。
ステップS22〜24の処理は図14と同様である。
S24-2:描画オブジェクトは、時刻経過にしたがって全天球の動画データを更新する。また、撮像装置100と同じ回転角だけ全天球画像を回転させる。
S24-2:描画オブジェクトは、時刻経過にしたがって全天球の動画データを更新する。また、撮像装置100と同じ回転角だけ全天球画像を回転させる。
以上の処理により、本実施例のアプリケーションソフトウェアは、動画の撮像時に手ぶれなどで撮像装置100が回転しても、各オブジェクト及び全天球画像を回転させるので、手ブレ等の筐体101の回転による視点ずれを補正して一定の視点で描画ができる。
本実施例では平行移動しうる撮像装置100により撮像された全天球画像が動画として撮像された場合でも、三次元のオブジェクトと連携するアプリケーションソフトウェアを作成できる全天球画像三次元ライブラリ24について説明する。実施例4との相違は、撮像装置100が平行移動する点である。平行移動の加速度を検出して、アプリケーションソフトウェアが天井オブジェクト41、地面オブジェクト42、側面オブジェクト46、光源オブジェクト48、及び、ボールオブジェクト47の位置等を更新するので、撮像者が移動した場合に各オブジェクトを一緒に移動させて各オブジェクトを描画できる。
図18は、本実施例の撮像装置100のハードウェア構成図の一例を示し、図19は、本実施例の撮像装置100と情報処理装置10の機能をブロック状に示す機能ブロック図の一例である。図18の説明では主に図15との相違を説明する。図18に示すように撮像装置100は加速度センサ108を有し、センサ処理部203と接続されている。
図19の説明では主に図16との相違を説明する。図19の撮像装置100は加速度データ取得部17を有している。加速度データ取得部17は、撮像装置100に生じる加速度を検出する。加速度データ取得部17は、CPU204がプログラムを実行してセンサ処理部203を制御すること等により実現される。加速度データは表4に示すように画像データと共にファイルに格納される。
<動作手順>
図20は、全天球画像三次元ライブラリ24により作成されたアプリケーションソフトウェアの動作手順を説明するシーケンス図の一例である。図20の説明では主に図17との相違を説明する。図20では、時刻経過に合わせて、各オブジェクト及び投影する全天球画像を更新すると共に、撮像装置100の平行移動に基づきオブジェクトの座標を補正する。
図20は、全天球画像三次元ライブラリ24により作成されたアプリケーションソフトウェアの動作手順を説明するシーケンス図の一例である。図20の説明では主に図17との相違を説明する。図20では、時刻経過に合わせて、各オブジェクト及び投影する全天球画像を更新すると共に、撮像装置100の平行移動に基づきオブジェクトの座標を補正する。
S21-1:シーンオブジェクトは、全天球の動画データのファイルが有する時系列加速度データから対応する時刻の加速度を読み出し移動量を算出し、天井オブジェクト41の座標を更新する。すなわち、撮像装置100が平行移動した分だけ天井オブジェクト41を平行移動させる。
S21-2:シーンオブジェクトは、全天球の動画データのファイルが有する時系列加速度データから対応する時刻の加速度を読み出し移動量を算出し、地面オブジェクト42の座標を更新する。すなわち、撮像装置100が平行移動した分だけ地面オブジェクト42を平行移動させる。
S21-3:シーンオブジェクトは、全天球の動画データのファイルが有する時系列加速度データから対応する時刻の加速度を読み出し移動量を算出し、側面オブジェクト46の座標を更新する。すなわち、撮像装置100が平行移動した分だけ側面オブジェクト46を平行移動させる。
S21-4:シーンオブジェクトは、全天球の動画データのファイルが有する時系列加速度データから対応する時刻の加速度を読み出し移動量を算出し、また、光源位置を推定する。そして、撮像装置100が平行移動した分だけ光源オブジェクト48を平行移動させる。
S21-5:また、シーンオブジェクトは速度、向き及び重力の定義に基づいて各オブジェクトの位置を更新すると共に、撮像装置100と同じ移動量だけボールオブジェクト47を平行移動させる。また、ボールと各オブジェクトとの衝突判断を行う。衝突する場合には、速度と向きを更新する。
ステップS22〜24の処理は実施例4と同様である。
S24-2:描画オブジェクトは、時刻経過にしたがって全天球の動画データを更新する。また、撮像装置100と同じ移動量だけ全天球画像を平行移動させる。
S24-2:描画オブジェクトは、時刻経過にしたがって全天球の動画データを更新する。また、撮像装置100と同じ移動量だけ全天球画像を平行移動させる。
以上の処理により、本実施例のアプリケーションソフトウェアは、動画の撮像時に撮像装置100が移動しても、各オブジェクト及び全天球画像を移動させるので、筐体101の移動による視点ずれを補正して一定の視点で描画ができる。実施例4と合わせれば、視点移動と回転による視点のズレを補正できる。
本実施例では、傾きを持つ有限の大きさの天井オブジェクト41及び地面オブジェクト42生成することができる全天球画像三次元ライブラリ24について説明する。
図21は、撮像シーンを説明する図の一例である。実施例1〜5では、天井と地面が水平であることを前提にした。本実施例では図21に示すように、撮像装置100の上方向にある天井51が傾きを持ち有限の大きさである。また撮像装置100の下方向にある地面52も傾きを持ち有限の大きさである。このような撮像シーンでは天井51と地面52の傾きを、天井オブジェクト41と地面オブジェクト42に反映させることが好ましい。
図22は、全天球画像を撮像する撮像装置100の外観図の一例である。図22の説明では主に図1との相違を説明する。図1の撮像装置100に対して、図22の撮像装置100は複数の天方向測距センサ104及び複数の地方向測距センサ105を有する。したがって、それぞれが複数の測定点で距離を検出できるので、天井又は地面の傾きを検出できる。
図23は、全天球画像三次元ライブラリ24が生成するオブジェクトの一例を示す。シーンオブジェクト生成部28は、測距データに基づいて天井と地面の傾きを判断し、この傾きを有する天井オブジェクト41及び地面オブジェクト42をシーンオブジェクトに追加する。また、天井と地面の大きさは測距データが検出された範囲により決定される。図23に示すように天井オブジェクト41及び地面オブジェクト42は複数の測定点の測距データに基づき、傾きを持つ有限の大きさのオブジェクトとして生成される。
このように、大きさが有限で傾きや起伏がある天井又は地面が撮像されても、適切にオブジェクト生成が可能になる。
<まとめ>
以上説明したように、本実施形態の全天球画像三次元ライブラリ24は、視点位置から「天井」「地面」までの高さ情報、視点位置から周囲方向への距離情報が全天球画像に付加されていることを利用して、高さ情報と距離情報に基づきそれぞれ天井オブジェクト、地面オブジェクト、及び側面オブジェクトといったオブジェクトを三次元空間に配置できる。また、任意の三次元オブジェクトとの物理作用を演算することができる。オブジェクトの生成や物理作用はライブラリで供給されるため、三次元のオブジェクトと全天球画像が連携するアプリケーションソフトウェアの開発が容易になる。
以上説明したように、本実施形態の全天球画像三次元ライブラリ24は、視点位置から「天井」「地面」までの高さ情報、視点位置から周囲方向への距離情報が全天球画像に付加されていることを利用して、高さ情報と距離情報に基づきそれぞれ天井オブジェクト、地面オブジェクト、及び側面オブジェクトといったオブジェクトを三次元空間に配置できる。また、任意の三次元オブジェクトとの物理作用を演算することができる。オブジェクトの生成や物理作用はライブラリで供給されるため、三次元のオブジェクトと全天球画像が連携するアプリケーションソフトウェアの開発が容易になる。
<その他の適用例>
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
例えば、情報処理装置10がアプリケーションソフトウェアを実行するのでなく、撮像装置100がアプリケーションを実行してもよい。
また、測距データは撮像装置100が撮像した値に限られず、ユーザがマニュアルで設定した値でもよい。ユーザは測距データがない場合に設定したり、測距データを編集したりすることができる。
また、主に屋内の実施例を説明したが、撮像装置100が屋外を撮像して、屋外に適したライブラリが用意されてもよい。この場合天井オブジェクト41が不要になる場合がある。
また、周囲360度が撮像された全天球画像を三次元空間が配置されたが、画像データは周囲360度が撮像されていなくてもよい。本実施形態の画像データは三次元空間に配置されることで見やすくなる湾曲した広角画像であればよい。例えば、水平方向にのみ360度撮像されていてもよいし、全天球の上半分や下半分が撮像されていてもよい。また、180度程度の広角画像でもよい。
なお、シーンオブジェクト生成部28は撮像オブジェクト生成手段の一例であり、カメラオブジェクト生成部27はカメラオブジェクト生成手段の一例であり、ボールオブジェクト生成部29はユーザオブジェクト生成手段の一例であり、描画オブジェクト生成部26は描画手段の一例である。また、天井オブジェクト41は第一のオブジェクトの一例であり、地面オブジェクト42は第二のオブジェクトの一例であり、側面オブジェクト46は第三のオブジェクトの一例である。ボールオブジェクト47は三次元オブジェクトの一例である。
10 :情報処理装置
24 :全天球画像三次元ライブラリ
41 :天井オブジェクト
42 :地面オブジェクト
43 :スクリーンオブジェクト
44 :カメラオブジェクト
46 :側面オブジェクト
47 :ボールオブジェクト
48 :光源オブジェクト
100 :撮像装置
24 :全天球画像三次元ライブラリ
41 :天井オブジェクト
42 :地面オブジェクト
43 :スクリーンオブジェクト
44 :カメラオブジェクト
46 :側面オブジェクト
47 :ボールオブジェクト
48 :光源オブジェクト
100 :撮像装置
Claims (10)
- 広角画像、及び、天井方向、地面方向又は周囲方向の測距データの少なくともいずれかを取得する情報処理装置を、
前記広角画像が貼り付けられるスクリーンオブジェクトを生成し、前記天井方向の測距データに基づく第一のオブジェクト、前記地面方向の測距データに基づく第二のオブジェクト、又は、前記周囲方向の測距データに基づく第三のオブジェクトの少なくとも1つを生成する撮像オブジェクト生成手段と、
前記広角画像の視点となるカメラオブジェクトを生成するカメラオブジェクト生成手段と、
ユーザ定義された三次元オブジェクトを生成するユーザオブジェクト生成手段と、
前記スクリーンオブジェクト、前記第一のオブジェクト、前記第二のオブジェクト、前記第三のオブジェクト、及び、前記三次元オブジェクトと、前記スクリーンオブジェクトに貼り付けられる前記広角画像を描画処理部に送出する描画手段として機能させ、
前記撮像オブジェクト生成手段は、各オブジェクトが有する物理作用に関する属性に基づき各オブジェクトを更新することを特徴とするプログラム。 - 撮像オブジェクト生成手段、前記カメラオブジェクト生成手段、及び、前記ユーザオブジェクト生成手段のクラスを含むライブラリを有し、前記ライブラリを呼び出すことで、前記スクリーンオブジェクト、前記第一のオブジェクト、前記第二のオブジェクト、前記第三のオブジェクト、前記カメラオブジェクト、及び、前記三次元オブジェクトを生成する請求項1に記載のプログラム。
- 前記スクリーンオブジェクト、前記第一のオブジェクト、前記第二のオブジェクト、前記第三のオブジェクト、及び、前記三次元オブジェクトは、透明度及び描画優先度の属性を有し、
前記描画手段は、前記透明度と前記描画優先度に基づいて、各オブジェクトの表示を制御する請求項1又は2に記載のプログラム。 - 前記撮像オブジェクト生成手段は、前記広角画像から光源を検出し、前記第一のオブジェクト、前記第二のオブジェクト、又は、前記第三のオブジェクトのうち、前記光源が検出された位置に光源を表す光源オブジェクトを生成し、
前記描画手段は、前記光源オブジェクトが生成する影を前記描画処理部に描画させる請求項1〜3のいずれか1項に記載のプログラム。 - 前記物理作用は他のオブジェクトとの相互作用に関する設定を含み、
前記撮像オブジェクト生成手段は、前記相互作用に関する設定を用いて、各オブジェクトの衝突の有無を判断する請求項1〜4のいずれか1項に記載のプログラム。 - 前記広角画像は動画であり、前記測距データが動画と共に時系列に記録されており、
前記撮像オブジェクト生成手段は、前記第一のオブジェクト、及び、前記第二のオブジェクト、前記第三のオブジェクトを指示された時刻の前記測距データを用いて更新し、
前記三次元オブジェクトを設定された速度と向き及び物理作用を用いて更新し、
前記描画手段は、前記時刻の前記広角画像を前記描画処理部に送出する請求項1〜5のいずれか1項に記載のプログラム。 - 前記情報処理装置は前記広角画像を撮像した撮像装置の回転角に関する角速度データを取得し、
前記撮像オブジェクト生成手段は、前記第一のオブジェクト、前記第二のオブジェクト、前記第三のオブジェクト、及び、前記三次元オブジェクトを、前記角速度データを用いて更新し、
前記描画手段は、前記角速度データを用いて前記広角画像を回転させてから前記描画処理部に送出する請求項1〜6のいずれか1項に記載のプログラム。 - 前記情報処理装置は前記広角画像を撮像した撮像装置の加速度データを取得し、
前記撮像オブジェクト生成手段は、前記第一のオブジェクト、前記第二のオブジェクト、前記第三のオブジェクト、及び、前記三次元オブジェクトを、前記加速度データを用いて更新し、
前記描画手段は、前記加速度データを用いて前記広角画像を移動させてから前記描画処理部に送出する請求項1〜7のいずれか1項に記載のプログラム。 - 前記情報処理装置は、複数の測定点の前記天井方向の測距データ、又は、前記地面方向の測距データを取得し、
前記撮像オブジェクト生成手段は、複数の測定点の前記天井方向の測距データに基づく傾きのある前記第一のオブジェクトを生成し、
複数の測定点の前記地面方向の測距データに基づく傾きのある前記第二のオブジェクトを生成する請求項1〜8のいずれか1項に記載のプログラム。 - 広角画像、及び、天井方向、地面方向又は周囲方向の測距データの少なくともいずれかを取得する情報処理装置であって、
前記広角画像が貼り付けられるスクリーンオブジェクトを生成し、前記天井方向の測距データに基づく第一のオブジェクト、前記地面方向の測距データに基づく第二のオブジェクト、又は、前記周囲方向の測距データに基づく第三のオブジェクトの少なくとも1つを生成する撮像オブジェクト生成手段と、
前記広角画像の視点となるカメラオブジェクトを生成するカメラオブジェクト生成手段と、
ユーザ定義された三次元オブジェクトを生成するユーザオブジェクト生成手段と、
前記スクリーンオブジェクト、前記第一のオブジェクト、前記第二のオブジェクト、前記第三のオブジェクト、及び、前記三次元オブジェクトと、前記スクリーンオブジェクトに貼り付けられる前記広角画像を描画処理部に送出する描画手段と、を有し、
前記撮像オブジェクト生成手段は、各オブジェクトが有する物理作用に関する属性に基づき各オブジェクトを更新することを特徴とする情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017046744A JP6859763B2 (ja) | 2017-03-10 | 2017-03-10 | プログラム、情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017046744A JP6859763B2 (ja) | 2017-03-10 | 2017-03-10 | プログラム、情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018151793A true JP2018151793A (ja) | 2018-09-27 |
JP6859763B2 JP6859763B2 (ja) | 2021-04-14 |
Family
ID=63681664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017046744A Active JP6859763B2 (ja) | 2017-03-10 | 2017-03-10 | プログラム、情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6859763B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7445027B2 (ja) | 2019-02-07 | 2024-03-06 | マクセル株式会社 | 複合撮像測距装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11328443A (ja) * | 1998-05-12 | 1999-11-30 | Synergy:Kk | 三次元パノラマ画像生成システム、三次元パノラマ画像生成方法及び記録媒体 |
JP2006506745A (ja) * | 2002-11-15 | 2006-02-23 | ワーナー・ブロス・エンターテイメント・インコーポレーテッド | 映画におけるデジタルイメージング用のリアリティベースのライト環境 |
-
2017
- 2017-03-10 JP JP2017046744A patent/JP6859763B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11328443A (ja) * | 1998-05-12 | 1999-11-30 | Synergy:Kk | 三次元パノラマ画像生成システム、三次元パノラマ画像生成方法及び記録媒体 |
JP2006506745A (ja) * | 2002-11-15 | 2006-02-23 | ワーナー・ブロス・エンターテイメント・インコーポレーテッド | 映画におけるデジタルイメージング用のリアリティベースのライト環境 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7445027B2 (ja) | 2019-02-07 | 2024-03-06 | マクセル株式会社 | 複合撮像測距装置 |
Also Published As
Publication number | Publication date |
---|---|
JP6859763B2 (ja) | 2021-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11663785B2 (en) | Augmented and virtual reality | |
US10964108B2 (en) | Augmentation of captured 3D scenes with contextual information | |
US11238644B2 (en) | Image processing method and apparatus, storage medium, and computer device | |
JP7344974B2 (ja) | マルチ仮想キャラクターの制御方法、装置、およびコンピュータプログラム | |
TWI619088B (zh) | 圖像資料處理系統和相關方法以及相關圖像融合方法 | |
US10437545B2 (en) | Apparatus, system, and method for controlling display, and recording medium | |
CN109743892B (zh) | 虚拟现实内容的显示方法和装置 | |
KR102534637B1 (ko) | 증강 현실 시스템 | |
JP2011239361A (ja) | 繰り返し撮影用arナビゲーション及び差異抽出のシステム、方法及びプログラム | |
JP7353782B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
CA3114601A1 (en) | A cloud-based system and method for creating a virtual tour | |
US9754398B1 (en) | Animation curve reduction for mobile application user interface objects | |
US20200106959A1 (en) | Panoramic light field capture, processing, and display | |
US20210142511A1 (en) | Method of generating 3-dimensional model data | |
JP2017212510A (ja) | 画像管理装置、プログラム、画像管理システム及び情報端末 | |
JP2018109946A (ja) | 表示装置、プログラム、表示方法 | |
JP6859763B2 (ja) | プログラム、情報処理装置 | |
JP5506371B2 (ja) | 画像処理装置、画像処理方法およびプログラム | |
CN113822936A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
US11948257B2 (en) | Systems and methods for augmented reality video generation | |
US20240087157A1 (en) | Image processing method, recording medium, image processing apparatus, and image processing system | |
WO2015156128A1 (ja) | 表示制御装置、表示制御方法、及び、プログラム | |
JP2023163060A (ja) | 画像処理プログラム、画像処理装置、及び画像処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200116 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210224 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210309 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6859763 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |