(57)【要約】【課題】実写データに基づいて、任意の視点から見た画像を生成する情報処理装置等を提供すること。【解決手段】情報処理装置は、撮影装置３０と被写体とを結ぶ直線に関連づけられた直線情報、および、前記被写体に関連づけられた輝度を取得する第１取得部と、複数の仮想画素を含む仮想スクリーンを定めるスクリーン情報を取得する第２取得部と、前記第１取得部が取得した直線情報に関連づけられた前記直線が、前記第２取得部が取得したスクリーン情報に基づいて定められる前記仮想スクリーンと交差する交点を算出する算出部と、前記算出部が算出した交点を含む仮想画素に、前記第１取得部が取得した前記輝度を割り当てる割当部と、前記割当部により各仮想画素に輝度が割り当てられることにより前記仮想スクリーン上に形成される出力画像を出力する出力部とを備える。【選択図】図１
2019016979.tif 000002
【特許請求の範囲】
【請求項１】
撮影装置と被写体とを結ぶ直線に関連づけられた直線情報、および、前記被写体に関連づけられた輝度を取得する第１取得部と、
複数の仮想画素を含む仮想スクリーンを定めるスクリーン情報を取得する第２取得部と、
前記第１取得部が取得した直線情報に関連づけられた前記直線が、前記第２取得部が取得したスクリーン情報に基づいて定められる前記仮想スクリーンと交差する交点を算出する算出部と、
前記算出部が算出した交点を含む仮想画素に、前記第１取得部が取得した前記輝度を割り当てる割当部と、
前記割当部により各仮想画素に輝度が割り当てられることにより前記仮想スクリーン上に形成される出力画像を出力する出力部と
を備える情報処理装置。
【請求項２】
前記直線情報は、前記被写体から前記撮影装置に向かい、前記撮影装置が撮影する撮影画像を構成する個々の撮影画素に記録される光の経路に関連づけられており、
前記輝度は、前記撮影画素に記録される前記被写体の輝度である
請求項１に記載の情報処理装置。
【請求項３】
前記第１取得部は、同一の前記被写体を異なる位置から撮影した撮影画像に基づいて特定された前記直線情報と前記輝度とを順次取得する
請求項１または請求項２のいずれか一つに記載の情報処理装置。
【請求項４】
前記直線は、前記被写体から前記撮影装置に向かう向きを有し、
前記スクリーン情報は、前記仮想スクリーンを見る仮想視点を含み、
１本の前記直線について前記交点が複数存在する場合に、
前記割当部は、前記仮想視点からそれぞれの前記交点に向かう仮想視線と、前記直線とがなす角度が大きい方の前記交点を含む仮想画素に前記輝度を割り当てる
請求項１から請求項３のいずれか一つに記載の情報処理装置。
【請求項５】
前記仮想スクリーンは球殻形状であり、
前記仮想視点は、前記仮想スクリーンの中心に位置する
請求項４に記載の情報処理装置。
【請求項６】
前記割当部が、一つの前記仮想画素に複数の前記輝度を割り当てた場合に、
前記仮想画素と交差する前記直線のうち、前記仮想視線との間でなす角度が最大である前記直線に関連づけられた輝度を選択する選択部を備える
請求項４または請求項５に記載の情報処理装置。
【請求項７】
前記第１取得部は、前記輝度に関連づけられた前記撮影装置の撮影位置をさらに取得し、
前記割当部が、一つの前記仮想画素に複数の前記輝度を割り当てた場合に、
前記仮想視点と前記輝度に関連づけられた撮影位置との間の距離が最小である輝度を選択する選択部を備える
請求項４または請求項５に記載の情報処理装置。
【請求項８】
前記出力部は、前記仮想スクリーンの一部分に形成される画像を出力する
請求項１から請求項７のいずれか一つに記載の情報処理装置。
【請求項９】
撮影装置により撮影された撮影画像を取得する画像取得部と、
前記撮影装置が撮影を行った撮影位置および撮影向きを取得する撮影条件取得部と、
前記撮影条件取得部が取得した前記撮影向きに基づいて、被写体から前記撮影装置に向かい、前記撮影装置が撮影する撮影画像を構成する個々の撮影画素に記録される光の経路の向きを算出する向き算出部と、
前記撮影条件取得部が取得した前記撮影位置に基づいて、前記経路が通過する通過点を算出する通過点算出部と、
前記向き算出部が算出した向きと、前記通過点算出部が算出した通過点とに基づいて定まる直線に関する情報を、前記撮影画素に記録される輝度と関連づけて記録する記録部と
を備える情報処理装置。
【請求項１０】
第１情報処理装置と第２情報処理装置とを備える情報処理システムにおいて、
前記第２情報処理装置は、
仮想視点を送信する視点送信部を備え、
前記第１情報処理装置は、
前記視点送信部が送信した視点を受信する視点受信部と、
前記視点受信部が受信した視点に基づいて、複数の仮想画素を含む仮想スクリーンを定めるスクリーン生成部と、
撮影装置と被写体とを結ぶ直線に関連づけられた直線情報、および、前記被写体に関連づけられた輝度を取得する第１取得部と、
前記第１取得部が取得した直線情報に関連づけられた前記直線が、前記スクリーン生成部が生成した前記仮想スクリーンと交差する交点を算出する算出部と、
前記算出部が算出した交点を含む仮想画素に、前記第１取得部が取得した前記輝度を割り当てる割当部と、
前記割当部により各仮想画素に輝度が割り当てられることにより前記仮想スクリーン上に形成される画像を送信する画像送信部とを備え、
前記第２情報処理装置は、
前記画像送信部が送信した画像を受信する画像受信部と、
前記画像受信部が受信した画像を表示する表示部とを備える
情報処理システム。
【請求項１１】
撮影装置と被写体とを結ぶ直線に関連づけられた直線情報、および、前記被写体に関連づけられた輝度を取得し、
複数の仮想画素を含む仮想スクリーンを定めるスクリーン情報を取得し、
取得した直線情報に関連づけられた前記直線が、取得したスクリーン情報に基づいて定められる前記仮想スクリーンと交差する交点を算出し、
算出した交点を含む仮想画素に、取得した前記輝度を割り当て、
各仮想画素に輝度が割り当てられることにより前記仮想スクリーン上に形成される出力画像を出力する
処理をコンピュータに実行させる情報処理方法。
【請求項１２】
撮影装置と被写体とを結ぶ直線に関連づけられた直線情報、および、前記被写体に関連づけられた輝度を取得し、
複数の仮想画素を含む仮想スクリーンを定めるスクリーン情報を取得し、
取得した直線情報に関連づけられた前記直線が、取得したスクリーン情報に基づいて定められる前記仮想スクリーンと交差する交点を算出し、
算出した交点を含む仮想画素に、取得した前記輝度を割り当て、
各仮想画素に輝度が割り当てられることにより前記仮想スクリーン上に形成される出力画像を出力する
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
１８０度より広い画角を有する撮像系２個を背中合わせに配置し、両者で撮影した画像を合成することにより全天球の画像を撮影する、いわゆる全天球カメラが提案されている（特許文献１）。
【０００３】
所定の経路に沿って全天球カメラを動かしながら撮影した動画データを、経路の分岐位置で滑らかに繋ぎ替えて、撮影時とは別の順番で経路を辿った場合の動画を生成する動画提示装置が提案されている（特許文献２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−５６０４８
【特許文献２】特開２０１３−１８３２４９
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献２に記載の動画提示装置においては、撮影時の経路から外れた位置から見た場合の映像を提示することはできない。したがって、たとえば美術館の大きな展示室内を自由に歩き回りながら、壁や天井に飾られた作品を鑑賞するような体験を提供することはできない。
【０００６】
一つの側面では、実写データに基づいて、任意の視点から見た画像を生成する情報処理装置等を提供することを目的とする。
【課題を解決するための手段】
【０００７】
情報処理装置は、撮影装置と被写体とを結ぶ直線に関連づけられた直線情報、および、前記被写体に関連づけられた輝度を取得する第１取得部と、複数の仮想画素を含む仮想スクリーンを定めるスクリーン情報を取得する第２取得部と、前記第１取得部が取得した直線情報に関連づけられた前記直線が、前記第２取得部が取得したスクリーン情報に基づいて定められる前記仮想スクリーンと交差する交点を算出する算出部と、前記算出部が算出した交点を含む仮想画素に、前記第１取得部が取得した前記輝度を割り当てる割当部と、前記割当部により各仮想画素に輝度が割り当てられることにより前記仮想スクリーン上に形成される出力画像を出力する出力部とを備える。
【発明の効果】
【０００８】
一つの側面では、実写データに基づいて、任意の視点から見た画像を生成する情報処理装置等を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理システムの処理の概要を説明する説明図である。
【図２】撮影時の情報処理システムの構成を説明する説明図である。
【図３】表示時の情報処理システムの構成を説明する説明図である。
【図４】カメラの外観を説明する説明図である。
【図５】撮影画像の構成を説明する説明図である。
【図６】仮想スクリーンと仮想画素との関係を説明する説明図である。
【図７】仮想スクリーンへの投影方法を説明する説明図である。
【図８】補完処理を説明する説明図である。
【図９】光線ＤＢのレコードレイアウトを説明する説明図である。
【図１０】投影ＤＢのレコードレイアウトを説明する説明図である。
【図１１】表示ＤＢのレコードレイアウトを説明する説明図である。
【図１２】撮影時のプログラムの処理の流れを説明するフローチャートである。
【図１３】表示時のプログラムの処理の流れを説明するフローチャートである。
【図１４】投影のサブルーチンの処理の流れを説明するフローチャートである。
【図１５】輝点算出のサブルーチンの処理の流れを説明するフローチャートである。
【図１６】統合のサブルーチンの処理の流れを説明するフローチャートである。
【図１７】輝度決定のサブルーチンの処理の流れを説明するフローチャートである。
【図１８】補完のサブルーチンの処理の流れを説明するフローチャートである。
【図１９】実施の形態２の光線ＤＢのレコードレイアウトを説明する説明図である。
【図２０】実施の形態３の輝度決定のサブルーチンの処理の流れを説明するフローチャートである。
【図２１】実施の形態４の輝度決定のサブルーチンの処理の流れを説明するフローチャートである。
【図２２】実施の形態５の輝度決定のサブルーチンの処理の流れを説明するフローチャートである。
【図２３】実施の形態６の仮想スクリーンへの投影方法を説明する説明図である。
【図２４】対応付けＤＢのレコードレイアウトを説明する説明図である。
【図２５】実施の形態６の統合のサブルーチンの処理の流れを説明するフローチャートである。
【図２６】低解像度使用のサブルーチンの処理の流れを説明するフローチャートである。
【図２７】実施の形態７の表示時のプログラムの処理の流れを説明するフローチャートである。
【図２８】実施の形態７の輝点算出のサブルーチンの処理の流れを説明するフローチャートである。
【図２９】実施の形態８の画面例を示す説明図である。
【図３０】実施の形態９の表示時のプログラムの処理の流れを説明するフローチャートである。
【図３１】実施の形態１０の撮影時の処理の概要を説明する説明図である。
【図３２】実施の形態１０の光線ＤＢのレコードレイアウトを説明する説明図である。
【図３３】実施の形態１０の表示時の処理の概要を説明する説明図である。
【図３４】実施の形態１１の表示時の処理の概要を説明する説明図である。
【図３５】実施の形態１１の交点が仮想スクリーンの範囲内であるか否かを判定する処理の概要を説明する説明図である。
【図３６】実施の形態１２の表示時の処理の概要を説明する説明図である。
【図３７】実施の形態１３の情報処理システムのブロック図である。
【図３８】実施の形態１４の情報処理システムの構成を説明する説明図である。
【発明を実施するための形態】
【００１０】
［実施の形態１］
図１は、情報処理システム４０の処理の概要を説明する説明図である。本実施の形態においては、カメラ３０を用いて、各壁に絵画が飾られた美術館の展示室を撮影する。カメラ３０は、撮影装置の一例である。カメラ３０は、１回のシャッターで前後左右上下の撮影を行う全天球カメラを使用する。撮影位置は、たとえば四角形の展示室の四隅付近であるが、これに限定しない。３箇所以下または５箇所以上の任意の場所から撮影を行っても良い。
【００１１】
カメラ３０が撮影を行う位置および向きは、カメラ３０に内蔵されたセンサまたはカメラ３０を外部から監視するセンサにより測定される。カメラ３０を特定の位置および向きに固定する治具等を利用しても良い。
【００１２】
撮影された撮影画像に基づいて、被写体からカメラ３０に向かい、撮影画像を構成する一つの撮影画素と、その撮影画素に撮影されている被写体の部分とを結ぶ有向直線、すなわち向きを有する直線を示す直線情報と、撮影画素に記録される被写体の輝度とが光線ＤＢ５１に記録される。光線ＤＢ５１の詳細については、後述する。
【００１３】
なお、以下の説明では光線ＤＢ５１に記録される直線情報が示す有向直線を光線と記載する。光線は、被写体上の微小領域からカメラ３０に向かい、撮影画像を構成する一つの撮影画素に記録される光の経路を意味する。光線には、撮影画素の輝度が関連づけられている。
【００１４】
第２情報処理装置２０は、美術館から離れた場所にいるユーザが装着したＨＭＤ（Head mounted Display）型の情報処理装置である。第２情報処理装置２０には、各種センサが内蔵されており、ユーザの頭部の位置および向きを検出可能である。
【００１５】
第２情報処理装置２０は、スマートフォン、タブレットまたはパソコン等の汎用の情報処理装置と、ＨＭＤ等の表示装置との組合せでも良い。第２情報処理装置２０は、スマートフォン等の軽量の携帯型情報処理装置と、携帯型情報処理装置をユーザの目の前に固定する固定部材との組合せでも良い。
【００１６】
検出した位置に基づいて、仮想視点と仮想スクリーンが定められる。本実施の形態においては、仮想視点はユーザの頭部の中心であり、仮想スクリーンは仮想視点を中心とする球殻形状である。
【００１７】
仮想スクリーンの半径を、仮想視点からユーザが注目したい被写体、たとえば表示部２８（図３参照）の中央付近に表示される被写体までの距離に設定することにより、被写体の輝度をより正確に表示可能である。しかしながら、仮想スクリーンの半径はこれに限定しない。
【００１８】
仮想スクリーンの形状は、球殻に限定しない。卵殻型、楕円球殻型、その他任意の形状を採用できる。仮想視点は、仮想スクリーンの中心から外れた位置であっても良い。情報処理システム４０は、仮想スクリーンの半径および形状について、ユーザによる入力を受け付けても良い。
【００１９】
光線ＤＢ５１に記録された光線が、仮想スクリーンに投影される。具体的には、光線が仮想スクリーンを外側から内側に通過する交点に、光線に関連づけられた輝度が割り当てられる。十分な数の光線が仮想スクリーンに投影されることにより、仮想スクリーンに仮想視点から見た展示室の画像が形成される。
【００２０】
仮想スクリーンに形成された画像のうち、ＨＭＤの向きに応じた部分が第２情報処理装置２０に送信され、表示される。
【００２１】
以上により、ＨＭＤを装着したユーザは、展示室内を歩き回り、任意の向きを向いて、壁に展示された絵画を鑑賞する体験を得ることができる。
【００２２】
なお、ユーザは回転可能な椅子に着席した状態で、ジョイスティック等を操作することで仮想視点を移動させても良い。転倒および衝突のおそれなく、展示室内を歩き回り、あるいは飛翔し、任意の向きを向いて、壁に展示された絵画を鑑賞する体験を得ることができる。
【００２３】
図２は、撮影時の情報処理システム４０の構成を説明する説明図である。撮影時の情報処理システム４０は、インターネット、公衆通信回線またはＬＡＮ（Local Area Network）等のネットワークを介して接続された第１情報処理装置１０およびカメラ３０を備える。
【００２４】
第１情報処理装置１０は、第１ＣＰＵ（Central Processing Unit）１１、主記憶装置１２、補助記憶装置１３、通信部１４、入力部１５、表示部１８およびバスを備える。本実施の形態の第１情報処理装置１０は汎用のパーソナルコンピュータ、サーバマシン等の情報処理装置である。また、本実施の形態の第１情報処理装置１０は、大型計算機上で動作する仮想マシンでも良い。
【００２５】
第１ＣＰＵ１１は、本実施の形態にかかるプログラムを実行する演算制御装置である。第１ＣＰＵ１１には、一または複数のＣＰＵまたはマルチコアＣＰＵ等が使用される。第１ＣＰＵ１１は、バスを介して第１情報処理装置１０を構成するハードウェア各部と接続されている。
【００２６】
主記憶装置１２は、ＳＲＡＭ（Static Random Access Memory）、ＤＲＡＭ（Dynamic Random Access Memory）、フラッシュメモリ等の記憶装置である。主記憶装置１２には、第１ＣＰＵ１１が行う処理の途中で必要な情報および第１ＣＰＵ１１で実行中のプログラムが一時的に保存される。
【００２７】
補助記憶装置１３は、ＳＲＡＭ、フラッシュメモリ、ハードディスクまたは磁気テープ等の記憶装置である。補助記憶装置１３には、第１ＣＰＵ１１に実行させるプログラム、光線ＤＢ５１およびプログラムの実行に必要な各種情報が保存される。なお、光線ＤＢ５１は、第１情報処理装置１０に接続された外部の大容量記憶装置等に保存されていても良い。
【００２８】
光線ＤＢ５１、投影ＤＢ５２、および、表示ＤＢ５３は、ネットワーク等を介して第１情報処理装置１０に接続された別の記憶装置に記憶されても良い。各ＤＢの詳細については後述する。
【００２９】
通信部１４は、ネットワークとの通信を行うインターフェイスである。入力部１５は、たとえばキーボードおよびマウス等である。表示部１８は、たとえば液晶表示パネル等である。
【００３０】
カメラ３０は、第３ＣＰＵ３１、主記憶装置３２、補助記憶装置３３、通信部３４、シャッターボタン３６、撮影部３７およびバスを備える。
【００３１】
第３ＣＰＵ３１は、本実施の形態にかかるプログラムを実行する演算制御装置である。第３ＣＰＵ３１には、一または複数のＣＰＵまたはマルチコアＣＰＵ等が使用される。第３ＣＰＵ３１は、バスを介してカメラ３０を構成するハードウェア各部と接続されている。
【００３２】
主記憶装置３２は、ＳＲＡＭ、ＤＲＡＭ、フラッシュメモリ等の記憶装置である。主記憶装置３２には、第３ＣＰＵ３１が行う処理の途中で必要な情報および第３ＣＰＵ３１で実行中のプログラムが一時的に保存される。
【００３３】
補助記憶装置３３は、ＳＲＡＭ、フラッシュメモリ、ハードディスクまたは磁気テープ等の記憶装置である。補助記憶装置３３には、第３ＣＰＵ３１に実行させるプログラムおよびプログラムの実行に必要な各種情報が保存される。
【００３４】
通信部３４は、ネットワークとの通信を行うインターフェイスである。シャッターボタン３６は、静止画を撮影する指示を受け付けるボタンである。なお、第３ＣＰＵ３１は、ネットワークを通じてシャッターボタン３６の操作を受け付けても良い。
【００３５】
撮影部３７は、撮影を行う光学系と撮像素子とを含む。第３ＣＰＵ３１は、シャッターボタン３６から受け付けた指示に基づいて撮像素子が取得したデータに対して、各種画像処理を行い、撮影画像を生成する。
【００３６】
図３は、表示時の情報処理システム４０の構成を説明する説明図である。表示時の情報処理システム４０は、インターネット、公衆通信回線またはＬＡＮ（Local Area Network）等のネットワークを介して接続された第１情報処理装置１０および第２情報処理装置２０を備える。
【００３７】
第１情報処理装置１０は、図２を使用して説明した撮影時の情報処理装置１０の構成の補助記憶装置１３に、投影ＤＢ５２および表示ＤＢ５３が追加された構成である。光線ＤＢ５１、投影ＤＢ５２および表示ＤＢ５３は、第１情報処理装置１０に接続された外部の大容量記憶装置等に保存されていても良い。
【００３８】
なお、投影ＤＢ５２および表示ＤＢ５３は、撮影時においても補助記憶装置１３に記憶されていても良い。撮影時と表示時とで、異なるハードウェアを情報処理装置１０に使用しても良い。
【００３９】
前述のとおり、第２情報処理装置２０は、ＨＭＤ型の情報処理装置である。第２情報処理装置２０は、第２ＣＰＵ２１、主記憶装置２２、補助記憶装置２３、通信部２４、表示部２８、センサ部２９およびバスを備える。
【００４０】
第２ＣＰＵ２１は、本実施の形態にかかるプログラムを実行する演算制御装置である。第２ＣＰＵ２１には、一または複数のＣＰＵまたはマルチコアＣＰＵ等が使用される。第２ＣＰＵ２１は、バスを介して第２情報処理装置２０を構成するハードウェア各部と接続されている。
【００４１】
主記憶装置２２は、ＳＲＡＭ、ＤＲＡＭ、フラッシュメモリ等の記憶装置である。主記憶装置２２には、第２ＣＰＵ２１が行う処理の途中で必要な情報および第２ＣＰＵ２１で実行中のプログラムが一時的に保存される。
【００４２】
補助記憶装置２３は、ＳＲＡＭ、フラッシュメモリ、ハードディスクまたは磁気テープ等の記憶装置である。補助記憶装置２３には、第２ＣＰＵ２１に実行させるプログラムおよびプログラムの実行に必要な各種情報が保存される。
【００４３】
通信部２４は、ネットワークとの通信を行うインターフェイスである。表示部２８は、たとえば液晶表示パネル等である。センサ部２９は、たとえば地磁気センサ、傾きセンサ、ＧＰＳ等の複数のセンサの組合せであり、第２情報処理装置２０の位置および向きを検出する。
【００４４】
図４は、カメラ３０の外観を説明する説明図である。本実施の形態のカメラ３０は、略長方形板状の板状部３８を有する。以後の説明においては、板状部３８の長辺方向を上下方向、板状部３８の短辺方向を左右方向、板状部３８の第１広面３８１側を前側、第２広面３８２側を後側にそれぞれ向けた状態で説明する。
【００４５】
第１広面３８１の上寄りに、ドーム状の第１レンズ３７１が設けられている。第２広面３８２の上寄りに、ドーム状の第２レンズ３７２が設けられている。第１レンズ３７１および第２レンズ３７２の内側には、図示しない複数のレンズおよびプリズム等の光学部品が配置されており、１８０度以上の視野角を有する光学系を形成している。
【００４６】
以後の説明では、第１レンズ３７１側の光学系の光軸を第１光軸、第２レンズ３７２側の光学系を第２光軸と記載する。第１光軸と、第２光軸とは、同一の直線上に配置されている。第１広面３８１に、シャッターボタン３６が配置されている。
【００４７】
図５は、撮影画像の構成を説明する説明図である。図５Ａは、全天球画像を示す模式図である。図５Ｂは、図５Ａの全天球画像を正距円筒図法により展開した画像を示す模式図である。
【００４８】
第３ＣＰＵ３１は、第１光軸側で撮影した画像と第２光軸側で撮影した画像とを合成することにより、図５Ａに示すように撮影中心Ｃ点を中心とする全天球画像を生成する。
【００４９】
全天球画像上の画素の位置を定める極座標系について説明する。図４を使用して説明したように、カメラ３０は板状部３８の長辺方向を上下方向に向けて配置される。以後の説明では、前後左右方向を含む面を水平面と記載する。
【００５０】
第２光軸側を基準として、水平面内の反時計周りの角度を方位角φで示す。第１光軸は、方位角φがπラジアンの位置に存在する。ここでπは円周率を意味する。第２光軸は、方位角φが０ラジアンかつ２πラジアンの位置に存在する。
【００５１】
水平面から上下に向かう角度を仰角θで示す。仰角θは、上向きが正、下向きが負である。仰角θの最大値はπ／２ラジアン、最小値は−π／２ラジアンである。全天球画像上の任意の一点の位置は、方位角φと仰角θを用いる極座標系により表現することができる。
【００５２】
第３ＣＰＵ３１は、図５Ｂに示すように、全天球画像を方位角φ＝０の線に沿って切断して、正距円筒図法により平面に展開した縦Ｍ画素、横Ｎ画素の長方形の撮影画像を生成する。撮影画像を構成する各撮影画素には、被写体の輝度が記録される。本実施の形態においては、撮影画像は白黒画像であり、各画素にはたとえば０から２５５までの２５６段階の数値が記録される。ここで０は黒色を、２５５は白色を示す。
【００５３】
撮影画像の左下を基準にして、ｍ行ｎ列の画素Ｇ（ｎ，ｍ）で表される撮影画素の範囲を全天球画像の極座標系（φG，θG）で示すと（１）式および（２）式で表現される。
【００５４】
【数１】
2019016979.tif 000003
【００５５】
撮影画像を構成する一つの撮影画素と、その撮影画素に撮影されている被写体の部分とを結ぶ光線について説明する。
【００５６】
撮影画素Ｇ（ｎ，ｍ）の画素中心ａの座標を極座標系（φa，θa）で示す。φaおよびθaは、（３）式および（４）式で表現される。
【００５７】
【数２】
2019016979.tif 000004
【００５８】
被写体から撮影画素Ｇに向かう光線Ｌaは、画素中心aと、全天球画像の撮影中心Ｃとを通り、画素中心aから撮影中心Ｃに向かう向きの直線である。上向きをＺ軸の正側、前向きをＹ軸の正側とする右手系の直交座標系において、光線Ｌaは（５）式で示される。
【００５９】
【数３】
2019016979.tif 000005
【００６０】
なお、以後の説明では、ベクトルを示す矢印記号を省略する場合がある。
【００６１】
以上により、撮影画像中の任意の画素に対応する光線は、撮影中心Ｃの座標（Ｃx，Ｃy，Ｃz）と、撮影画像の画素数ＭおよびＮと、撮影画像中の画素の位置ｍおよびｎとに基づいて定まる。
【００６２】
カメラ３０の第３ＣＰＵ３１は、撮影中心Ｃの座標と、画素数と、撮影画像とを第１ＣＰＵ１１に送信する。第１ＣＰＵ１１は、撮影画像を構成する各画素に対応する光線と輝度とを、光線ＤＢ５１に記録する。光線ＤＢ５１の構成の詳細については、後述する。
【００６３】
なお第３ＣＰＵ３１は、Ｅｘｉｆ（Exchangeable image file format）形式を使用することにより、撮影中心Ｃの座標と、画素数と、撮影画像とを一つのファイルで送信することが可能である。
【００６４】
第１光軸を任意の向きにして撮影を行っても良い。その場合、第３ＣＰＵ３１または第１ＣＰＵ１１は、図５を使用して説明した向きに合わせるように撮影画像を回転させる座標変換を行う。座標変換の処理は、従来から行われているので、説明を省略する。
【００６５】
図６は、仮想スクリーンと仮想画素との関係を説明する説明図である。仮想スクリーンは、仮想視点Ｖ（Ｖx，Ｖy，Ｖz）を中心とし、半径Ｆの球殻形状である。仮想スクリーン上の任意の表示画素は、仮想視点Ｖを中心とする極座標系で示すことができる。仮想スクリーンは、方位角φ＝０の線に沿って切断して、正距円筒図法により平面に展開した縦Ｈ画素、横Ｗ画素の長方形の仮想画像により表現できる。
【００６６】
表示画像を構成する各仮想画素と、仮想スクリーンとの関係は、前述の撮影画像と全天球画像との関係と同様であるので、詳細については省略する。それぞれの仮想画素には、Ｖ１−１からＶＷ−Ｈまでの固有の仮想画素ＩＤが割り当てられる。
【００６７】
仮想スクリーンを定めるスクリーン情報は、たとえば仮想視点Ｖの座標と、仮想スクリーンの半径とを含む。仮想スクリーンを定めるスクリーン情報は、それぞれの仮想画素の代表点の座標および仮想視点Ｖの座標を含んでも良い。仮想スクリーンは、その他任意の形式のスクリーン情報により定められてもよい。
【００６８】
図７は、仮想スクリーンへの投影方法を説明する説明図である。Ｌa、ＬbおよびＬcは、光線ＤＢ５１に記録された光線である。Ｒa、ＲbおよびＲcは、それぞれの光線の向きを表す光線ベクトルである。光線ベクトルは、長さが１の単位ベクトルである。
【００６９】
以下の説明では、光線が仮想スクリーンの外側から内側に入る点、および、光線と仮想スクリーンが接する点を輝点と呼ぶ。光線ＤＢ５１に記録されたそれぞれの光線が、輝点に投影されることにより、仮想スクリーン上に画像が形成される。
【００７０】
図７を使用して、画像の形成方法の概要を説明する。光線Ｌaは、交点ａ1および交点ａ2の二点で仮想スクリーンと交差する。第１ＣＰＵ１１は、２つの交点のうち、光線Ｌaが仮想スクリーンを外側から内側に貫く交点ａ1を含む仮想画素と、光線Ｌaとを関連づけて、投影ＤＢ５２に記録する。
【００７１】
第１ＣＰＵ１１が二つの交点の一方を選択する処理について説明する。仮想視点Ｖから交点ａ1に向ける視線ベクトルを、視線ベクトルＳa1で示す。同様に、仮想視点Ｖから交点ａ2に向ける視線ベクトルを、視線ベクトルＳa2で示す。各視線ベクトルは仮想視点Ｖから仮想スクリーンに向かう仮想視線の向きを表す、長さが１の単位ベクトルである。
【００７２】
第１ＣＰＵ１１は、光線ベクトルＲaと視線ベクトルＳa1との内積と、光線ベクトルＲaと視線ベクトルＳa2との内積と比較する。図７に示す例においては、光線ベクトルＲaと視線ベクトルＳa1との内積は負の値、光線ベクトルＲaと視線ベクトルＳa2との内積は正の値である。第１ＣＰＵ１１は、内積が小さい方の視線ベクトル、すなわち視線ベクトルＳa1に対応する交点ａ1に含む仮想画素と、光線Ｌaとを関連づけて、投影ＤＢ５２に記録する。
【００７３】
光線Ｌbは、接点ｂで仮想スクリーンと接する。第１ＣＰＵ１１は、接点ｂを含む仮想画素と、光線Ｌbとを関連づけて、投影ＤＢ５２に記録する。
【００７４】
光線Ｌcは、仮想スクリーンと交差も接触もしない。第１ＣＰＵ１１は、光線Ｌcを投影ＤＢ５２に記録しない。
【００７５】
以上の処理により、仮想スクリーン上の各仮想画素と、光線とが関連づけられて、投影ＤＢ５２に記録される。
【００７６】
第１ＣＰＵ１１は、投影ＤＢ５２に基づいて、各々の仮想画素の輝度を決定する。たとえば一つの仮想画素に一つの光線が交差している場合には、第１ＣＰＵ１１はその仮想画素の輝度を、交差している光線に関連づけられた輝度に決定する。
【００７７】
一つの仮想画素に複数の光線が交差している場合には、第１ＣＰＵ１１は所定の方法により仮想画素の輝度を決定する。本実施の形態においては、所定の方法は視線ベクトルＳと光線ベクトルＲとの内積が小さい光線に関連づけられた輝度を選択する方法である。内積が小さいことは、光線ベクトルＲが仮想視点Ｖの方を向いていることを意味するからである。
【００７８】
仮想画素に光線が交差していない場合には、第１ＣＰＵ１１は周囲の仮想画素に基づいて輝度を補完する。図８は、補完処理を説明する説明図である。
【００７９】
図８に示す各枠は仮想画素を示す。中央に「１」で示す仮想画素に交差する光線が存在しない場合、第１ＣＰＵ１１は「２」で示す周囲の８個の仮想画素と交差する光線を抽出する。抽出された光線が１本だけである場合には、第１ＣＰＵ１１は、抽出した光線に関連づけられた輝度を「１」で示す仮想画素の輝度に決定する。抽出された光線が複数存在する場合には、第１ＣＰＵ１１は所定の方法により「１」で示す仮想画素の輝度を決定する。
【００８０】
「２」で示す８個の仮想画素に交差する光線も存在しない場合、第１ＣＰＵ１１は「３」で示す周囲の１６個の仮想画素と交差する光線を抽出する。このようにして、抽出範囲を順次拡げることにより、「１」で示す仮想画素の輝度を補完する。
【００８１】
なお、補完方法は、図８を使用して説明した方法に限定しない。第１ＣＰＵ１１は、任意の方法により仮想画素の輝度を補完することができる。また、第１ＣＰＵ１１は補完を行う代わりに、輝点を含まない仮想画素の輝度を０、すなわち黒色と定めても良い。
【００８２】
図９は、光線ＤＢ５１のレコードレイアウトを説明する説明図である。光線ＤＢ５１は、撮影シーンと、光線に固有に付与された光線ＩＤと、光線を示す直線情報と、輝度とを関連づけて記憶するＤＢである。光線ＤＢ５１は、シーンＩＤフィールドと、光線ＩＤフィールドと、直線情報フィールドと、輝度フィールドとを有する。直線情報フィールドは、位置フィールドと向きフィールドとを有する。位置フィールドはｘフィールド、ｙフィールドおよびｚフィールドを有する。向きフィールドは、φフィールドとθフィールドとを有する。
【００８３】
シーンＩＤフィールドには、撮影したシーンに固有に付与されたＩＤが記録されている。一つのシーンは、たとえば一つの展示室を示す。展示室内の展示品の配置が変更された場合には、新たなシーンＩＤを付与する。
【００８４】
光線ＩＤフィールドには、光線に付与された固有の光線ＩＤが記録されている。ｘフィールド、ｙフィールドおよびｚフィールドには、図５を使用して説明した撮影中心Ｃ（Ｃｘ，Ｃｙ，Ｃｚ）を示す座標が記録されている。φフィールドおよびθフィールドには、図５を使用して説明した撮影画素の極座標が記録されている。輝度フィールドには、撮影画素に記録された輝度が記録されている。
【００８５】
なお、直線情報の記録形式は、図９を使用して説明した形式に限定しない。たとえば位置フィールドに撮影画素の中心位置の座標が記録されていても良い。位置フィールドに、光線が通過する任意の点の座標を記録しても良い。また、直線情報は、たとえば撮影中心Ｃと、撮影画素の中心位置等の、光線が通過する二つの点の座標により記録しても良い。
【００８６】
φフィールドおよびθフィールドの代わりに、画素数ＭおよびＮと、画素の位置ｍおよびｎとを記録するフィールドを設けても良い。第１ＣＰＵ１１は（３）式および（４）式に基づいてφおよびθを算出できる。
【００８７】
図１０は、投影ＤＢ５２のレコードレイアウトを説明する説明図である。投影ＤＢ５２は、仮想画素ＩＤと、交差する光線とを関連づけて記録するＤＢである。投影ＤＢ５２は、仮想画素ＩＤフィールド、第１輝点フィールド、第２輝点フィールド、第３輝点フィールド、および、第４輝点以降のフィールドを有する。それぞれの輝点フィールドは、光線ＩＤフィールドと、輝度フィールドと、座標フィールドとを有する。
【００８８】
仮想画素フィールドには、仮想画素に固有に付与された仮想画素ＩＤが記録されている。光線ＩＤフィールドには、仮想スクリーンの外側から仮想画素に交差する光線および仮想画素に接する光線に固有に付与された光線ＩＤが記録されている。輝度フィールドには、光線に関連づけられた輝度が記録されている。座標フィールドには仮想画素と光線との交点または接点の座標が記録されている。
【００８９】
図１１は、表示ＤＢ５３のレコードレイアウトを説明する説明図である。表示ＤＢ５３は、仮想画素ＩＤと輝度とを関連づけて記録するＤＢである。表示ＤＢ５３は、仮想画素ＩＤフィールドと輝度フィールドとを有する。仮想画素ＩＤフィールドには、仮想画素ＩＤが記録されている。輝度フィールドには、輝度が記録されている。第１ＣＰＵ１１は、表示ＤＢ５３に基づいて第２情報処理装置２０に送信する表示画像を生成できる。
【００９０】
図１２は、撮影時のプログラムの処理の流れを説明するフローチャートである。なお、図１２に示すフローチャートは、カメラ３０がユーザまたはロボット等により所定の位置および向きに配置された状態から説明を開始する。
【００９１】
第１ＣＰＵ１１は、第３ＣＰＵ３１に対して撮影指示を送信する（ステップＳ５０１）。第３ＣＰＵ３１は、撮影指示を受信する（ステップＳ６０１）。第３ＣＰＵ３１は撮影を行う（ステップＳ６０２）。なお、第３ＣＰＵ３１は、ステップＳ６０２でユーザによるシャッターボタン３６の操作を受け付けても良い。第３ＣＰＵ３１は、撮影した画像を送信する（ステップＳ６０３）。
【００９２】
第１ＣＰＵ１１は、画像を受信する（ステップＳ５０３）。ステップＳ５０３により、第１ＣＰＵ１１は本実施の形態の画像取得部の機能を実現する。第１ＣＰＵ１１は、撮影位置を取得する（ステップＳ５０４）。撮影位置は、たとえばカメラ３０が内蔵するセンサにより測定され、画像と共に送信される。撮影位置は、他のセンサ等により測定されて、ネットワークまたは入力部１５を介して入力されても良い。ステップＳ５０４により、第１ＣＰＵ１１は、光線が通過する通過点を算出する通過点算出部の機能を実現する。
【００９３】
なお、カメラ３０の向きが図５を使用して説明した向きに限定されない場合には、ステップＳ５０３においてカメラ３０の位置と向きとを受信する。その後第１ＣＰＵ１１は、座標変換を行い、受信した画像の向きを所定の向きに修正する。ステップＳ５０３およびステップＳ５０４により、第１ＣＰＵ１１は、本実施の形態の撮影条件取得部の機能を実現する。
【００９４】
第１ＣＰＵ１１は、ステップＳ５０３で受信した画像から一つの撮影画素を取得する（ステップＳ５０５）。第１ＣＰＵ１１は、取得した撮影画素に記録されている光線に、固有の光線ＩＤを付与する（ステップＳ５０６）。
【００９５】
第１ＣＰＵ１１は、（３）式および（４）式に基づいて、撮影画素に記録された光線の向きを示すφおよびθを算出する（ステップＳ５０７）。ステップＳ５０７により、第１ＣＰＵ１１は本実施の形態の向き算出部の機能を実現する。
【００９６】
第１ＣＰＵ１１は、光線ＤＢ５１に新規レコードを作成する。第１ＣＰＵ１１は、シーンＩＤフィールドにあらかじめ設定されたシーンＩＤを、位置情報フィールドに撮影位置の座標を、向きフィールドにステップＳ５０７で算出したφおよびθを、輝度フィールドに撮影画素に記録された輝度をそれぞれ記録する（ステップＳ５０８）。ステップＳ５０８により、第１ＣＰＵ１１は本実施の形態の記録部の機能を実現する。
【００９７】
第１ＣＰＵ１１は、すべての撮影画素の処理を終了したか否かを判定する（ステップＳ５０９）。終了していないと判定した場合（ステップＳ５０９でＮＯ）、第１ＣＰＵ１１はステップＳ５０５に戻る。
【００９８】
終了したと判定した場合（ステップＳ５０９でＹＥＳ）、第１ＣＰＵ１１は撮影を終了するか否かを判定する（ステップＳ５１０）。たとえば、所定の数の画像の撮影を終了した場合、またはユーザから撮影終了の指示を受け付けた場合、第１ＣＰＵ１１は撮影を終了すると判定する。
【００９９】
撮影を終了しないと判定した場合（ステップＳ５１０でＮＯ）、第１ＣＰＵ１１はステップＳ５０１に戻る。撮影を終了すると判定した場合（ステップＳ５１０でＹＥＳ）、第１ＣＰＵ１１は処理を終了する。
【０１００】
図１３は、表示時のプログラムの処理の流れを説明するフローチャートである。第１ＣＰＵ１１は、表示するシーンのシーンＩＤを受け付ける（ステップＳ５２１）。第１ＣＰＵ１１は、第２ＣＰＵ２１に位置情報を要求する（ステップＳ５２２）。
【０１０１】
第２ＣＰＵ２１は、要求を受信する（ステップＳ７０１）。第２ＣＰＵ２１は、センサ部２９のたとえばＧＰＳから現在位置を取得する（ステップＳ７０２）。第２ＣＰＵ２１は、現在位置を示す位置情報を送信する（ステップＳ７０３）。ステップＳ７０３により、第２ＣＰＵ２１は本実施の形態の視点送信部の機能を実現する。
【０１０２】
第１ＣＰＵ１１は、位置情報を受信して記録する（ステップＳ５２４）。ステップＳ５２４により、第１ＣＰＵ１１は本実施の形態の視点受信部の機能を実現する。第１ＣＰＵ１１は、前回のステップＳ５２４で受信した位置情報と比較して、第２情報処理装置２０が移動したか否かを判定する（ステップＳ５２５）。
【０１０３】
移動したと判定した場合（ステップＳ５２５でＹＥＳ）、第１ＣＰＵ１１は第２情報処理装置２０の新たな位置を仮想視点とし、所定の半径を有する球殻状の仮想スクリーンを設定する（ステップＳ５２６）。ステップＳ５２６により、第１ＣＰＵ１１は本実施の形態のスクリーン生成部の機能を実現する。第１ＣＰＵ１１は、投影ＤＢ５２および表示ＤＢ５３を、仮想画素ＩＤフィールド以外のフィールドのデータを削除することにより初期化する。
【０１０４】
第１ＣＰＵ１１は、投影のサブルーチンを起動する（ステップＳ５２７）。投影のサブルーチンは、光線ＤＢ５１に記録された光線を仮想スクリーンに投影して、投影ＤＢ５２および表示ＤＢ５３に記録するサブルーチンである。投影のサブルーチンの処理の流れは後述する。
【０１０５】
移動していないと判定した場合（ステップＳ５２５でＮＯ）、またはステップＳ５２７の終了後、第１ＣＰＵ１１は、第２ＣＰＵ２１に向き情報を要求する（ステップＳ５２８）。第２ＣＰＵ２１は、要求を受信する（ステップＳ７０５）。第２ＣＰＵ２１は、センサ部２９のたとえば磁気センサから第２情報処理装置２０の向きを取得する（ステップＳ７０６）。第２ＣＰＵ２１は、向きを示す向き情報を送信する（ステップＳ７０７）。
【０１０６】
第１ＣＰＵ１１は、向き情報を受信して記録する（ステップＳ５３１）。第１ＣＰＵ１１は、前回のステップＳ５３１で受信した向き情報と比較して、第２情報処理装置２０の向きが変化したか否かを判定する。さらに、第１ＣＰＵ１１は、ステップＳ５２５の判定結果に基づき、第２情報処理装置２０の位置および向きの一方または両方が変化したか否かを判定する（ステップＳ５３２）。
【０１０７】
変化したと判定した場合（ステップＳ５３２でＹＥＳ）、第１ＣＰＵ１１は第２情報処理装置２０の新たな向きに応じて表示部２８に表示する表示データを表示ＤＢ５３から抽出する（ステップＳ５３３）。第１ＣＰＵ１１は、抽出した表示データを第２ＣＰＵ２１に送信する（ステップＳ５３４）。ステップＳ５３４により、第１ＣＰＵ１１は本実施の形態の画像送信部の機能を実現する。
【０１０８】
第２ＣＰＵ２１は、表示データを受信する（ステップＳ７１１）。ステップＳ７１１により、第２ＣＰＵ２１は本実施の形態の画像受信部の機能を実現する。第２ＣＰＵ２１は、表示部２８に画像を表示する（ステップＳ７１２）。
【０１０９】
位置および向きのいずれも変化しないと判定した場合（ステップＳ５３２でＮＯ）またはステップＳ５３４の終了後、第１ＣＰＵ１１は、処理を終了するか否かを判定する（ステップＳ５３５）。第１ＣＰＵ１１は、たとえばユーザから表示終了の指示を受け付けた場合、第２情報処理装置２０との間の通信が途絶えた場合、および、所定の使用可能時間が過ぎた場合等に、処理を終了すると判定する。
【０１１０】
終了しないと判定した場合（ステップＳ５３５でＮＯ）、第１ＣＰＵ１１はステップＳ５２２に戻る。終了すると判定した場合（ステップＳ５３５でＹＥＳ）、第１ＣＰＵ１１は処理を終了する。
【０１１１】
図１４は、投影のサブルーチンの処理の流れを説明するフローチャートである。投影のサブルーチンは、光線ＤＢ５１に記録された光線を仮想スクリーンに投影して、投影ＤＢ５２および表示ＤＢ５３に記録するサブルーチンである。
【０１１２】
第１ＣＰＵ１１は、光線ＤＢ５１の一つのレコードに記録された、１本の光線に関する情報を取得する（ステップＳ５４１）。第１ＣＰＵ１１は、輝点算出のサブルーチンを起動する（ステップＳ５４２）。輝点算出のサブルーチンは、光線と仮想スクリーンとに基づいて輝点の位置を算出するサブルーチンである。輝点算出のサブルーチンの処理の流れは後述する。
【０１１３】
第１ＣＰＵ１１は、輝点が存在するか否かを判定する（ステップＳ５４３）。存在すると判定した場合（ステップＳ５４３でＹＥＳ）、第１ＣＰＵ１１は、輝点が含まれる仮想画素の仮想画素ＩＤを算出する（ステップＳ５４４）。第１ＣＰＵ１１は、ステップＳ５４４で算出した仮想画素ＩＤをキーとして投影ＤＢ５２からレコードを抽出する。
【０１１４】
第１ＣＰＵ１１は、ステップＳ５４１で取得した光線の光線ＩＤと輝度、および、輝点の座標を記録する（ステップＳ５４５）。なお、既に輝点フィールドにデータが記録されている場合には、第１ＣＰＵ１１は次の輝点フィールドにデータを記録する。
【０１１５】
輝点が存在しないと判定した場合（ステップＳ５４３でＮＯ）、または、ステップＳ５４５の終了後、第１ＣＰＵ１１は光線の処理が終了したか否かを判定する（ステップＳ５４６）。終了していないと判定した場合（ステップＳ５４６でＮＯ）、第１ＣＰＵ１１は、ステップＳ５４１に戻る。
【０１１６】
終了したと判定した場合（ステップＳ５４６でＹＥＳ）、第１ＣＰＵ１１は、統合のサブルーチンを起動する（ステップＳ５４７）。統合のサブルーチンは、投影ＤＢ５２に記録された情報を統合して、表示ＤＢ５３を作成するサブルーチンである。統合のサブルーチンの処理の流れは後述する。
【０１１７】
第１ＣＰＵ１１は、補完のサブルーチンを起動する（ステップＳ５４８）。補完のサブルーチンは、輝点が含まれない仮想画素の情報を補完するサブルーチンである。補完のサブルーチンの処理の流れは後述する。その後、第１ＣＰＵ１１は処理を終了する。
【０１１８】
図１５は、輝点算出のサブルーチンの処理の流れを説明するフローチャートである。輝点算出のサブルーチンは、光線と仮想スクリーンとに基づいて輝点の位置を算出するサブルーチンである。
【０１１９】
第１ＣＰＵ１１は、光線と仮想スクリーンとが交差するか否かを判定する（ステップＳ５５１）。交差するか否かは、たとえば光線を示す方程式と、仮想スクリーンを示す方程式との連立方程式を解くことにより判定できる。数値計算により連立方程式を解くアルゴリズムは従来から使用されているので、説明を省略する。
【０１２０】
連立方程式に２個の解が存在する場合、光線と仮想スクリーンとは交差し、解が交点の座標を示す。なお、連立方程式に１個の解が存在する場合、光線と仮想スクリーンとは接し、解が接点の座標を示す。また、連立方程式に解が存在しない場合、光線と仮想スクリーンとは交差しない。
【０１２１】
交差すると判定した場合（ステップＳ５５１でＹＥＳ）、第１ＣＰＵ１１は、仮想視点Ｖから第１交点に向かう第１視線ベクトルＳを作成する（ステップＳ５５２）。なお、第１交点は２つの交点のどちらであっても良い。第１ＣＰＵ１１は、光線ベクトルＲを取得する（ステップＳ５５３）。光線ベクトルＲは、図５を使用して説明したとおり、撮影中心Ｃを中心とする極座標系において（−φ，−θ）で表される向きのベクトルである。
【０１２２】
第１ＣＰＵ１１は、光線ベクトルＲと視線ベクトルＳとの内積が負であるか否かを判定する（ステップＳ５５４）。負であると判定した場合（ステップＳ５５４でＹＥＳ）、第１ＣＰＵ１１は第１交点が輝点であると判定し、主記憶装置１２または補助記憶装置１３に記録する（ステップＳ５５５）。
【０１２３】
内積が負でないと判定した場合（ステップＳ５５４でＮＯ）、第１ＣＰＵ１１は第２交点が輝点であると判定し、主記憶装置１２または補助記憶装置１３に記録する（ステップＳ５５６）。
【０１２４】
光線と仮想スクリーンとが交差しないと判定した場合（ステップＳ５５１でＮＯ）、第１ＣＰＵ１１は、光線と仮想スクリーンとが接するか否かを判定する（ステップＳ５６１）。接すると判定した場合（ステップＳ５６１でＹＥＳ）、第１ＣＰＵ１１は接点が輝点であると判定し、主記憶装置１２または補助記憶装置１３に記録する（ステップＳ５６２）。接しないと判定した場合（ステップＳ５６１でＮＯ）、第１ＣＰＵ１１は輝点はないと判定し、主記憶装置１２または補助記憶装置１３に記録する（ステップＳ５６３）。
【０１２５】
図１６は、統合のサブルーチンの処理の流れを説明するフローチャートである。統合のサブルーチンは、投影ＤＢ５２に記録された情報を統合して、表示ＤＢ５３を作成するサブルーチンである。
【０１２６】
第１ＣＰＵ１１は、投影ＤＢ５２から１個の投影レコードを選択する（ステップＳ５７１）。第１ＣＰＵ１１は選択した投影レコードの第１輝点フィールドにデータが記録されているか否かを判定する（ステップＳ５７２）。記録されていると判定した場合（ステップＳ５７２でＹＥＳ）、第１ＣＰＵ１１は選択したレコードの第２輝点フィールド以降にデータが記録されているか否かを判定する（ステップＳ５７３）。
【０１２７】
記録されていると判定した場合（ステップＳ５７３でＹＥＳ）、第１ＣＰＵ１１は輝度決定のサブルーチンを起動する（ステップＳ５７４）。輝度決定のサブルーチンは、複数の輝点を含む仮想画素の輝度を決定して、表示ＤＢ５３に記録するサブルーチンである。輝度決定のサブルーチンの処理の流れは後述する。輝度決定のサブルーチンにより、第１ＣＰＵ１１は本実施の形態の選択部の機能を実現する。
【０１２８】
第２輝点フィールド以降にデータが記録されていないと判定した場合（ステップＳ５７３でＮＯ）、第１ＣＰＵ１１はステップＳ５７１で選択した投影レコードの仮想画素ＩＤフィールドに記録された仮想画素ＩＤをキーとして、表示ＤＢ５３から表示レコードを抽出する（ステップＳ５７５）。第１ＣＰＵ１１は、ステップＳ５７１で選択したレコードの第１輝点フィールド内の輝度フィールドに記録された輝度を、表示レコードの輝度フィールドに記録する（ステップＳ５７６）。
【０１２９】
第１輝点フィールドにデータが記録されていないと判定した場合（ステップＳ５７２でＮＯ）、ステップＳ５７６の終了後、またはステップＳ５７４の終了後、第１ＣＰＵ１１は投影ＤＢ５２内の指定されたシーンのレコードの処理を終了したか否かを判定する（ステップＳ５７７）。
【０１３０】
終了していないと判定した場合（ステップＳ５７７でＮＯ）、第１ＣＰＵ１１はステップＳ５７１に戻る。終了したと判定した場合（ステップＳ５７７でＹＥＳ）、第１ＣＰＵ１１は処理を終了する。
【０１３１】
図１７は、輝度決定のサブルーチンの処理の流れを説明するフローチャートである。輝度決定のサブルーチンは、複数の輝点を含む仮想画素の輝度を決定して、表示ＤＢ５３に記録するサブルーチンである。
【０１３２】
第１ＣＰＵ１１は、処理中の投影レコードから、一つの輝点にかかる情報を取得する（ステップＳ５８１）。第１ＣＰＵ１１は、仮想視点Ｖから輝点に向ける視線ベクトルＳを作成する（ステップＳ５８２）。第１ＣＰＵ１１は、光線ＩＤフィールドに記録された光線ＩＤをキーとして光線ＤＢ５１を検索し、光線レコードを取得する（ステップＳ５８３）。第１ＣＰＵ１１は、光線レコードの向きフィールドに記録された方位角φおよび仰角θに基づいて、光線ベクトルＲを作成する（ステップＳ５８４）。ここで光線ベクトルＲは、（−φ、−θ）の向きのベクトルである。
【０１３３】
第１ＣＰＵ１１は、ステップＳ５８２で作成した視線ベクトルＳと、ステップＳ５８４で作成した光線ベクトルＲとの内積を算出する（ステップＳ５８５）。第１ＣＰＵ１１は、算出した内積を主記憶装置１２または補助記憶装置１３に記録する（ステップＳ５８６）。
【０１３４】
第１ＣＰＵ１１は、処理中の投影レコードに記録された輝点の処理を終了したか否かを判定する（ステップＳ５８７）。終了していないと判定した場合（ステップＳ５８７でＮＯ）、第１ＣＰＵ１１はステップＳ５８１に戻る。
【０１３５】
終了したと判定した場合（ステップＳ５８７でＹＥＳ）、第１ＣＰＵ１１は内積が最小の輝点を選択する（ステップＳ５８８）。第１ＣＰＵ１１は、処理中の投影レコードの仮想画素ＩＤフィールドに記録された仮想画素ＩＤをキーとして、表示ＤＢ５３から表示レコードを抽出する（ステップＳ５８９）。第１ＣＰＵ１１は、ステップＳ５８８で選択した輝点に対応する輝度フィールドに記録された輝度を、ステップＳ５８９で抽出した表示レコードの輝度フィールドに記録する（ステップＳ５９０）。第１ＣＰＵ１１は、処理を終了する。
【０１３６】
なお、仮想スクリーンの解像度が十分に高い場合には、一つの仮想画素内のそれぞれの輝点に向かう視線ベクトルは略同一であるので、第１ＣＰＵ１１は、ステップＳ５８２において仮想視点Ｖから仮想画素の中心に向かう視線ベクトルＳを作成しても良い。
【０１３７】
図１８は、補完のサブルーチンの処理の流れを説明するフローチャートである。補完のサブルーチンは、輝点が含まれない仮想画素の情報を補完するサブルーチンである。
【０１３８】
第１ＣＰＵ１１は表示ＤＢ５３から表示レコードを選択する（ステップＳ８０１）。第１ＣＰＵ１１は、選択した表示レコードの輝度フィールドにデータが記録されているか否かを判定する（ステップＳ８０２）。データが記録されていないと判定した場合（ステップＳ８０２でＮＯ）、第１ＣＰＵ１１は、図８を使用して説明したようにステップＳ８０１で選択した表示レコードに対応する仮想画素の周囲の仮想画素にデータが記録されているか否かを判定する（ステップＳ８０３）。記録されていないと判定した場合（ステップＳ８０３でＮＯ）第１ＣＰＵ１１はステップＳ８０３に戻り、１段階拡げた範囲の仮想画素についての判定を行う。
【０１３９】
周囲の仮想画素にデータが記録されていると判定した場合（ステップＳ８０３でＹＥＳ）、第１ＣＰＵ１１は、データが記録されている仮想画素の輝度の代表値を算出する（ステップＳ８０４）。代表値は、たとえば輝度の平均値、最頻値、または、中央値である。第１ＣＰＵ１１は、算出した代表値を主記憶装置１２または補助記憶装置１３に記録する（ステップＳ８０５）。
【０１４０】
データが記録されていると判定した場合（ステップＳ８０２でＹＥＳ）、またはステップＳ８０５の終了後、第１ＣＰＵ１１は表示ＤＢ５３のレコードの処理を終了したか否かを判定する（ステップＳ８０６）。終了していないと判定した場合（ステップＳ８０６でＮＯ）、第１ＣＰＵ１１はステップＳ８０１に戻る。
【０１４１】
終了したと判定した場合（ステップＳ８０６でＹＥＳ）、第１ＣＰＵ１１はステップＳ８０５で記録した代表値を表示ＤＢ５３のそれぞれのレコードに複写する（ステップＳ８０７）。その後、第１ＣＰＵ１１は処理を終了する。
【０１４２】
本実施の形態によると、実写データに基づいて、任意の視点から見た画像を生成する情報処理システム４０を提供することができる。被写体が美術館の展示室である場合には、大きな展示室内を自由に移動しながら、作品を鑑賞するような体験を提供することができる。なお、被写体は美術館の展示室に限定しない。たとえば住宅のモデルルーム、各種ホール等であっても良い。
【０１４３】
本実施の形態によると、ＨＭＤ型の第２情報処理装置２０を使用するので、コンピュータ等の操作に不慣れなユーザであっても容易に様々な視点から画像を鑑賞できる情報処理システム４０を提供できる。
【０１４４】
本実施の形態によると、被写体の状態が変化していない場合には、追加で撮影した画像を光線ＤＢ５１に追加して、画質の向上を図ることができる情報処理システム４０を提供できる。
【０１４５】
本実施の形態によると、市販の全天球カメラ等を用いて撮影したＪＰＥＧ（Joint Photographic Experts Group）形式等の汎用の形式の画像を使用して、様々な視点から被写体を鑑賞できる情報処理システム４０を提供できる。
【０１４６】
たとえば、右目を仮想視点に設定して作成した画像を右目側に表示し、左目を仮想視点に設定して作成した画像を左目側に表示することにより、立体感のある画像を提供する情報処理システム４０を提供できる。
【０１４７】
光線ＤＢ５１を第２情報処理装置２０の補助記憶装置２３に複写しておき、第２情報処理装置２０が単独で図１３を使用して説明した表示時のプログラムの処理を実行しても良い。この場合、投影ＤＢ５２および表示ＤＢ５３は、第２ＣＰＵ２１により補助記憶装置２３に作成される。
【０１４８】
カメラ３０は、全天球カメラに限定しない。たとえば、半球型の範囲を撮影可能なカメラであっても良い。通常の平面画像撮影用のカメラでも良い。
【０１４９】
［実施の形態２］
本実施の形態は、カラーの画像を表示する情報処理システム４０に関する。実施の形態１と共通する部分については、説明を省略する。
【０１５０】
図１９は、実施の形態２の光線ＤＢ５１のレコードレイアウトを説明する説明図である。光線ＤＢ５１は、シーンＩＤフィールドと、光線ＩＤフィールドと、直線情報フィールドと、輝度フィールドとを有する。シーンＩＤフィールド、光線ＩＤフィールドおよび直線情報フィールドは、図９を使用して説明した実施の形態１の光線ＤＢ５１と同一であるので、説明を省略する。
【０１５１】
輝度フィールドは、Ｒフィールドと、Ｇフィールドと、Ｂフィールドとを有する。Ｒフィールドには、赤色の輝度、Ｇフィールドには緑色の輝度、Ｂフィールドには青色の輝度がそれぞれ記録される。図示を省略するが、投影ＤＢ５２および表示ＤＢ５３の輝度フィールドも同様に、Ｒフィールドと、Ｇフィールドと、Ｂフィールドとを有する。
【０１５２】
第１ＣＰＵ１１は、赤色、緑色、青色の輝度をそれぞれ実施の形態１の輝度と同様に処理する。第２ＣＰＵ２１は、赤色、緑色、青色の輝度に基づいて、表示部２８にカラー画像を表示する。本実施の形態によると、カラー画像を表示する情報処理システム４０を提供できる。
【０１５３】
［実施の形態３］
本実施の形態は、一つの仮想画素が複数の輝点を含む場合に、それぞれの輝点の輝度を平均した輝度を仮想画素の輝度に決定する情報処理システム４０に関する。実施の形態１と共通する部分については、説明を省略する。
【０１５４】
図２０は、実施の形態３の輝度決定のサブルーチンの処理の流れを説明するフローチャートである。図２０に示す輝度決定のサブルーチンは、図１７を使用して説明した輝度決定のサブルーチンの代わりに使用するサブルーチンである。
【０１５５】
第１ＣＰＵ１１は、処理中の投影レコードからの各輝度フィールドに記録されている輝度の平均値を算出する（ステップＳ８１１）。第１ＣＰＵ１１は、処理中の投影レコードの仮想画素ＩＤフィールドに記録された仮想画素ＩＤをキーとして、表示ＤＢ５３から表示レコードを抽出する（ステップＳ８１２）。第１ＣＰＵ１１は、ステップＳ８１１で算出した平均値を、ステップＳ８１２で抽出した表示レコードの輝度フィールドに記録する（ステップＳ８１３）。第１ＣＰＵ１１は、処理を終了する。
【０１５６】
本実施の形態によると、一つの仮想画素が複数の輝点を含む場合に、それぞれの輝点の輝度を平均した輝度を仮想画素の輝度に決定する情報処理システム４０を提供できる。一つの仮想画素の輝度に、複数の光線の輝度を反映させるので、撮影した画像のデータを無駄なく利用することができる。
【０１５７】
［実施の形態４］
本実施の形態は、一つの仮想画素が複数の輝点を含む場合に、それぞれの輝点の輝度を重み付け平均した輝度を仮想画素の輝度に決定する情報処理システムに関する。実施の形態１と共通する部分については、説明を省略する。
【０１５８】
図２１は、実施の形態４の輝度決定のサブルーチンの処理の流れを説明するフローチャートである。図２１に示す輝度決定のサブルーチンは、図１７を使用して説明した輝度決定のサブルーチンの代わりに使用するサブルーチンである。ステップＳ５８４までは、図１７を使用して説明したサブルーチンの処理と同一であるので、説明を省略する。
【０１５９】
第１ＣＰＵ１１は、（６）式に基づいて重み付け係数を算出する（ステップＳ８２１）。
【０１６０】
【数４】
2019016979.tif 000006
【０１６１】
（６）は、重み付け係数ＫIの算出方法の一例である。第１ＣＰＵ１１は、視線ベクトルＳIと光線ベクトルＲIの内積に対して単調減少する任意の関数に基づいて、重み付け係数ＫIを定めてもよい。
【０１６２】
第１ＣＰＵ１１は、算出した重み付け係数を主記憶装置１２または補助記憶装置１３に記録する（ステップＳ８２２）。第１ＣＰＵ１１は、処理中の投影レコードに記録された輝点の処理を終了したか否かを判定する（ステップＳ８２３）。終了していないと判定した場合（ステップＳ８２３でＮＯ）、第１ＣＰＵ１１はステップＳ５８１に戻る。
【０１６３】
終了したと判定した場合（ステップＳ８２３でＹＥＳ）、第１ＣＰＵ１１は（７）式および（８）式に基づいて輝度の重み付け平均Ｅ0を算出する（ステップＳ８２４）。
【０１６４】
【数５】
2019016979.tif 000007
【０１６５】
（７）式および（８）式は、重み付け平均Ｅ0の算出方法の一例である。第１ＣＰＵ１１は、たとえば、相乗平均に基づいて重み付け平均Ｅ0を算出しても良い。
【０１６６】
第１ＣＰＵ１１は、処理中の投影レコードの仮想画素ＩＤフィールドに記録された仮想画素ＩＤをキーとして、表示ＤＢ５３から表示レコードを抽出する（ステップＳ８２５）。第１ＣＰＵ１１は、ステップＳ８２４で算出した輝度の重み付け平均Ｅ0をステップＳ８２５で抽出した表示レコードの輝度フィールドに記録する（ステップＳ８２６）。第１ＣＰＵ１１は、処理を終了する。
【０１６７】
本実施の形態によると、一つの仮想画素が複数の輝点を含む場合に、それぞれの輝点の輝度を重み付け平均した輝度を仮想画素の輝度に決定する情報処理システム４０を提供できる。
【０１６８】
本実施の形態によると、一つの仮想画素が複数の輝点を含む場合に、仮想視点の方に向いた光線の輝度の影響が大きくなるように重み付け平均した輝度を仮想画素の輝度に決定する情報処理システム４０を提供できる。一つの仮想画素の輝度に、複数の光線の輝度を反映させるので、撮影した画像のデータを無駄なく利用することができる。
【０１６９】
［実施の形態５］
本実施の形態は、一つの仮想画素が複数の輝点を含む場合に、仮想視点に近い位置から撮影された輝点の輝度を仮想画素の輝度に決定する情報処理システムに関する。実施の形態１と共通する部分については、説明を省略する。
【０１７０】
本実施の形態においては、図９を使用して説明した光線ＤＢ５１の位置フィールドには、撮影中心Ｃの座標、すなわち撮影位置が記録される。
【０１７１】
図２２は、実施の形態５の輝度決定のサブルーチンの処理の流れを説明するフローチャートである。図２２に示す輝度決定のサブルーチンは、図１７を使用して説明した輝度決定のサブルーチンの代わりに使用するサブルーチンである。
【０１７２】
第１ＣＰＵ１１は、処理中の投影レコードから、一つの輝点にかかる情報を取得する（ステップＳ５８１）。第１ＣＰＵ１１は、光線ＩＤフィールドに記録された光線ＩＤをキーとして光線ＤＢ５１を検索し、光線レコードを取得する（ステップＳ５８３）。第１ＣＰＵ１１は、光線レコードの位置フィールドに記録された撮影位置の座標を取得する（ステップＳ８３１）。第１ＣＰＵ１１は、撮影位置と仮想視点との間の距離を算出する（ステップＳ８３２）。第１ＣＰＵ１１は、算出した距離を主記憶装置１２または補助記憶装置１３に記録する（ステップＳ８３３）。
【０１７３】
第１ＣＰＵ１１は、処理中の投影レコードに記録された輝点の処理を終了したか否かを判定する（ステップＳ８３４）。終了していないと判定した場合（ステップＳ８３４でＮＯ）、第１ＣＰＵ１１はステップＳ５８１に戻る。終了したと判定した場合（ステップＳ８３４でＹＥＳ）、第１ＣＰＵ１１はステップＳ８３３で記録した距離が最小の輝点を選択する（ステップＳ８３５）。
【０１７４】
第１ＣＰＵ１１は、処理中の投影レコードの仮想画素ＩＤフィールドに記録された仮想画素ＩＤをキーとして、表示ＤＢ５３から表示レコードを抽出する（ステップＳ８３６）。第１ＣＰＵ１１は、ステップＳ８３５で選択した輝点に対応する輝度フィールドに記録された輝度を、ステップＳ８３６で抽出した表示レコードの輝度フィールドに記録する（ステップＳ８３７）。第１ＣＰＵ１１は、処理を終了する。
【０１７５】
本実施の形態によると、一つの仮想画素が複数の輝点を含む場合に、仮想視点に近い位置から撮影された輝点の輝度を仮想画素の輝度に決定する情報処理システム４０を提供できる。一つの仮想画素の輝度に、最も近い距離から撮影された光線の輝度を反映させるので、画質を向上させることができる。
【０１７６】
なお、一つの仮想画素が複数の輝点を含む場合に、撮影位置と仮想視点との間の距離により仮想画素の輝点に対応する輝度を重み付けして平均しても良い。
【０１７７】
［実施の形態６］
本実施の形態は、解像度の異なる仮想スクリーンを重畳させることにより、光線が通過しない仮想画素の輝度を補完する情報処理システム４０に関する。実施の形態１と共通する部分については、説明を省略する。
【０１７８】
図２３は、実施の形態６の仮想スクリーンへの投影方法を説明する説明図である。本実施の形態においては、第１仮想スクリーン、第２仮想スクリーンおよび第３仮想スクリーン等、任意の数の仮想スクリーンを重畳して設定する。なお、第４仮想スクリーン以降の仮想スクリーンについては、図示を省略する。
【０１７９】
第１仮想スクリーンは、図６を使用して説明した実施の形態１の仮想スクリーンと同一である。仮想画素ＩＤＶ６−５の仮想画素を、太枠で示す。第２仮想スクリーンは、第１仮想スクリーンの仮想画素を縦に２個、横に２個の合計４個組み合わせて、１個の仮想画素を構成する。第１仮想スクリーン上の仮想画素ＩＤＶ６−５の仮想画素は、ハッチングで示すように、４個の仮想画素により構成される１個の第２仮想画素に含まれる。
【０１８０】
同様に第３仮想スクリーンは、第２仮想スクリーンの第２仮想画素を縦に２個、横に２個の合計４個組み合わせて、１個の仮想画素を構成する。第１仮想スクリーン上の仮想画素ＩＤＶ６−５の仮想画素は、ハッチングで示すように、１６個の仮想画素が組み合わされた１個の第３仮想画素に含まれる。
【０１８１】
すなわち、第ｎ仮想スクリーンは、縦２n-1個、横２n-1個の仮想画素を１画素とする低解像度の仮想スクリーンである。
【０１８２】
図２４は、対応付けＤＢのレコードレイアウトを説明する説明図である。対応付けＤＢは、仮想画素ＩＤと、第２仮想画素および第３仮想画素とを関連づけて記録するＤＢである。対応付けＤＢは、仮想画素ＩＤフィールド、第２仮想画素フィールドおよび第３以降の仮想画素フィールドを有する。
【０１８３】
仮想画素ＩＤフィールドには、仮想画素ＩＤが記録されている。第２仮想画素フィールドには、同一の第２仮想画素に含まれる仮想画素の仮想画素ＩＤが記録されている。第３仮想画素フィールドには、同一の第３仮想画素に含まれる仮想画素の仮想画素ＩＤが記録されている。
【０１８４】
仮想画素ＩＤフィールドに「Ｖ６−５」が記録されたレコードを例にして、具体的に説明する。第２仮想画素フィールドには、「Ｖ５−５、Ｖ５−６、Ｖ６−５、Ｖ６−６」と記録されている。これは、仮想画素ＩＤが「Ｖ６−５」である仮想画素は、仮想画素ＩＤが「Ｖ５−５」、「Ｖ５−６」および「Ｖ６−６」である仮想画素と同一の第２仮想画素に含まれることを意味する。
【０１８５】
なお、第ｎ仮想スクリーンの第ｎ仮想画素が含む仮想画素の数は、縦２n-1個、横２n-1個に限定しない。たとえば、縦ｎ個、横ｎ個でも良い。また、縦横の仮想画素の数が異なっていても良い。第ｎ仮想画素は、位置により異なる数の仮想画素を含んでも良い。
【０１８６】
図２５は、実施の形態６の統合のサブルーチンの処理の流れを説明するフローチャートである。図２５に示す統合のサブルーチンは、図１６を使用して説明した統合のサブルーチンの代わりに使用するサブルーチンである。
【０１８７】
ステップＳ５７２まで、およびステップＳ５７２でＹＥＳと判定した後の処理は、図１６を使用して説明した統合のサブルーチンと同一の処理であるので説明を省略する。選択した投影レコードの第１輝点フィールドにデータが記録されていないと判定した場合（ステップＳ５７２でＮＯ）、第１ＣＰＵ１１は低解像度使用のサブルーチンを起動する（ステップＳ８４１）。低解像度使用のサブルーチンは、図２３を使用して説明した第２仮想スクリーン以降の低解像度のスクリーンを使用して、仮想画素の輝度を算出するサブルーチンである。低解像度使用のサブルーチンの処理の流れは後述する。
【０１８８】
ステップＳ８４１の終了後、第１ＣＰＵ１１は投影ＤＢ５２内の指定されたシーンのレコードの処理を終了したか否かを判定する（ステップＳ５７７）。以後の処理は、図１６を使用して説明した統合のサブルーチンと同一の処理であるので説明を省略する。
【０１８９】
図２６は、低解像度使用のサブルーチンの処理の流れを説明するフローチャートである。第１ＣＰＵ１１は、処理中の投影レコードの仮想画素ＩＤフィールドに記録された仮想画素ＩＤを主記憶装置１２または補助記憶装置１３に記録する（ステップＳ８５１）。
【０１９０】
第１ＣＰＵ１１は、ステップＳ８５１で記録した仮想画素ＩＤをキーとして対応ＤＢを検索して、対応レコードを抽出する（ステップＳ８５２）。第１ＣＰＵ１１は、抽出したレコードの第ｎ仮想画素フィールドに記録された仮想画素ＩＤを抽出する（ステップＳ８５３）。ここで、ｎはステップＳ８５３の実行回数に１を加えた値である。すなわち、１回目のステップＳ８５３においては、第２仮想画素フィールドに記録された仮想画素ＩＤを抽出し、２回目のステップＳ８５３においては、第３仮想画素フィールドに記録された仮想画素ＩＤを抽出する。
【０１９１】
第１ＣＰＵ１１は、ステップＳ８５３で抽出した仮想画素ＩＤをキーとして、投影ＤＢ５２を検索し、投影レコードを抽出する（ステップＳ８５４）。たとえば、ステップＳ８５３において４個の仮想画素ＩＤを抽出した場合、ステップＳ８５４において第１ＣＰＵ１１は４個の投影レコードを抽出する。
【０１９２】
第１ＣＰＵ１１は抽出した各投影レコードの輝点フィールドに記録されている輝点に関する情報を取得する（ステップＳ８５５）。第１ＣＰＵ１１は、１個以上の輝点に関する情報の取得に成功したか否かを判定する（ステップＳ８５６）。成功していないと判定した場合（ステップＳ８５６でＮＯ）、第１ＣＰＵ１１はステップＳ８５２で取得した対応レコードに記録された仮想スクリーンの処理を終了したか否かを判定する（ステップＳ８５０）。
【０１９３】
終了していないと判定した場合（ステップＳ８５０でＮＯ）、第１ＣＰＵ１１はステップＳ８５３に戻り、次の低解像度スクリーンの処理を行う。終了したと判定した場合（ステップＳ８５０でＹＥＳ）、第１ＣＰＵ１１は処理を終了する。
【０１９４】
１個以上の輝点に関する情報の取得に成功したと判定した場合（ステップＳ８５６でＹＥＳ）、第１ＣＰＵ１１は、取得した輝点が複数であるか否かを判定する（ステップＳ８５７）。
【０１９５】
複数であると判定した場合（ステップＳ８５７でＹＥＳ）、第１ＣＰＵ１１は輝度決定のサブルーチンを起動する（ステップＳ８５８）。輝度決定のサブルーチンは、図１７で使用して説明したサブルーチンと同一のサブルーチンである。第１ＣＰＵ１１は、その後処理を終了する。
【０１９６】
複数でないと判定した場合（ステップＳ８５７でＮＯ）、第１ＣＰＵ１１はステップＳ５７１で選択した投影レコードの仮想画素ＩＤフィールドに記録された仮想画素ＩＤをキーとして、表示ＤＢ５３から表示レコードを抽出する（ステップＳ８５９）。第１ＣＰＵ１１は、ステップＳ８５５で取得した輝点に対応する輝度を、表示レコードの輝度フィールドに記録する（ステップＳ８６０）。第１ＣＰＵ１１は、その後処理を終了する。
【０１９７】
［実施の形態７］
本実施の形態は、表示部２８に画像を表示するために必要な範囲の仮想スクリーンを使用する情報処理システム４０に関する。実施の形態１と共通する部分については、説明を省略する。
【０１９８】
図２７は、実施の形態７の表示時のプログラムの処理の流れを説明するフローチャートである。図２７に示すプログラムは、図１３を使用して説明したプログラムの代わりに使用するプログラムである。
【０１９９】
第１ＣＰＵ１１は、表示するシーンのシーンＩＤを受け付ける（ステップＳ８６１）。第１ＣＰＵ１１は、第２ＣＰＵ２１に現在位置を示す位置情報および向きを示す向き情報を要求する（ステップＳ８６２）。
【０２００】
第２ＣＰＵ２１は、要求を受信する（ステップＳ７２１）。第２ＣＰＵ２１は、センサ部２９のたとえばＧＰＳおよび磁気センサから現在の位置および向きを取得する（ステップＳ７２２）。第２ＣＰＵ２１は、位置情報および向き情報を送信する（ステップＳ７２３）。
【０２０１】
第１ＣＰＵ１１は、位置情報および向き情報を受信して記録する（ステップＳ８６４）。第１ＣＰＵ１１は、前回のステップＳ８６４で受信した位置情報および向き情報と比較して、第２情報処理装置２０の位置または向きが変化したか否かを判定する（ステップＳ８６５）。
【０２０２】
変化したと判定した場合（ステップＳ８６５でＹＥＳ）、第１ＣＰＵ１１は第２情報処理装置２０の位置を仮想視点とし、所定の半径を有する球殻状の仮想スクリーンを設定する（ステップＳ８６６）。第１ＣＰＵ１１は、第２情報処理装置２０の向きに基づいて、表示部２８に表示する視野範囲の仮想スクリーンを抽出する（ステップＳ８６７）。第１ＣＰＵ１１は、ステップＳ８６７で抽出した範囲の仮想スクリーンを対象にして、以後の処理を実行する。
【０２０３】
第１ＣＰＵ１１は、投影ＤＢ５２および表示ＤＢ５３を、仮想画素ＩＤフィールド以外のフィールドのデータを削除することにより初期化する。第１ＣＰＵ１１は、投影のサブルーチンを起動する（ステップＳ８６８）。投影のサブルーチンは、図１４を使用して説明したサブルーチンと同一のサブルーチンである。ただし、本実施の形態においては投影のサブルーチンのステップＳ５４２で起動する輝点算出のサブルーチンは、後述する本実施の形態の輝点算出のサブルーチンを使用する。
【０２０４】
第１ＣＰＵ１１は、表示ＤＢ５３に記録された表示データを第２ＣＰＵ２１に送信する（ステップＳ８６９）。第２ＣＰＵ２１は、表示データを受信する（ステップＳ７４１）。第２ＣＰＵ２１は、表示部２８に画像を表示する（ステップＳ７４２）。
【０２０５】
変化していないと判定した場合（ステップＳ８６５でＮＯ）、またはステップＳ８６９の終了後、第１ＣＰＵ１１は、処理を終了するか否かを判定する（ステップＳ８７０）。第１ＣＰＵ１１は、たとえばユーザから表示終了の指示を受け付けた場合、第２情報処理装置２０との間の通信が途絶えた場合、および、所定の使用可能時間が過ぎた場合等に、処理を終了すると判定する。
【０２０６】
終了しないと判定した場合（ステップＳ８７０でＮＯ）、第１ＣＰＵ１１はステップＳ８６２に戻る。終了すると判定した場合（ステップＳ８７０でＹＥＳ）、第１ＣＰＵ１１は処理を終了する。
【０２０７】
図２８は、実施の形態７の輝点算出のサブルーチンの処理の流れを説明するフローチャートである。図２８に示す輝点算出のサブルーチンは、図１５を使用して説明した輝点算出のサブルーチンの代わりに使用するサブルーチンである。
【０２０８】
第１ＣＰＵ１１は、光線を示す方程式と、仮想スクリーンを示す方程式との連立方程式を作成する（ステップＳ８８１）。第１ＣＰＵ１１は、ステップＳ８８１で作成した連立方程式を解き、解の数を判定する（ステップＳ８８２）。
【０２０９】
なお、前述のとおり連立方程式の解は、光線と仮想スクリーンとの交点または接点の座標を意味する。ステップＳ８８２においては、視野範囲外も含めた仮想スクリーン全体における解の数を判定する。
【０２１０】
解はないと判定した場合（ステップＳ８８２で０個）、第１ＣＰＵ１１は輝点はないと判定し、主記憶装置１２または補助記憶装置１３に記録する（ステップＳ８８３）。第１ＣＰＵ１１は、その後処理を終了する。
【０２１１】
解は１個であると判定した場合（ステップＳ８８２で１個）、第１ＣＰＵ１１は第１交点が接点であると判定し、主記憶装置１２または補助記憶装置１３に記録する（ステップＳ８８４）。
【０２１２】
解は２個であると判定した場合（ステップＳ８８２で２個）、第１ＣＰＵ１１は、仮想視点から第１交点に向かう第１視線ベクトルＳを作成する（ステップＳ８９１）。なお、第１交点は２つの交点のどちらであっても良い。第１ＣＰＵ１１は、光線ベクトルＲを取得する（ステップＳ８９２）。
【０２１３】
第１ＣＰＵ１１は、光線ベクトルＲと視線ベクトルＳとの内積が負であるか否かを判定する（ステップＳ８９３）。負であると判定した場合（ステップＳ８９３でＹＥＳ）、第１ＣＰＵ１１は第１交点が輝点であると判定し、主記憶装置１２または補助記憶装置１３に記録する（ステップＳ８９５）。
【０２１４】
内積が負でないと判定した場合（ステップＳ８９３でＮＯ）、第１ＣＰＵ１１は第２交点が輝点であると判定し、主記憶装置１２または補助記憶装置１３に記録する（ステップＳ８９６）。ステップＳ８８４、ステップＳ８９５またはステップＳ８９６の終了後、第１ＣＰＵ１１は輝点が仮想スクリーンの視野範囲内であるか否かを判定する（ステップＳ８８６）。
【０２１５】
視野範囲内ではないと判定した場合（ステップＳ８８６でＮＯ）、第１ＣＰＵ１１は輝点はないと判定し、主記憶装置１２または補助記憶装置１３に記録する（ステップＳ８８７）。第１ＣＰＵ１１は、ステップＳ８８４、ステップＳ８９５、または、ステップＳ８９６で行った記録を削除する。
【０２１６】
視野範囲内であると判定した場合（ステップＳ８８６でＹＥＳ）、またはステップＳ８８７の終了後、第１ＣＰＵ１１は処理を終了する。
【０２１７】
本実施の形態によると、表示部２８に表示する領域に限定して仮想スクリーンを作成するので、特に仮想視点の移動が多い場合に、計算負荷および記憶容量を節約可能な情報処理システム４０を提供できる。
【０２１８】
［実施の形態８］
本実施の形態は、パソコン、スマートフォン、または、タブレット等の汎用の情報処理装置を第２情報処理装置２０に使用する情報処理システム４０に関する。実施の形態１と共通する部分については、説明を省略する。
【０２１９】
図２９は、実施の形態８の画面例を示す説明図である。画面には、表示エリア７１、上視線ボタン７２１、右視線ボタン７２２、下視線ボタン７２３、左視線ボタン７２４、移動ボタン７３およびズームボタン７４が含まれる。ユーザは、表示部２８に設けられたタッチパネルのタッチ操作、または、マウスを用いたクリック操作等により各ボタンを選択できる。
【０２２０】
上視線ボタン７２１の入力を受け付けた場合、第１ＣＰＵ１１は第２情報処理装置２０の向きが上向きであるという入力を受け付けた場合と同様に、表示エリア７１に表示される画像の範囲を上向きに変化させる。同様に、右視線ボタン７２２、下視線ボタン７２３および左視線ボタン７２４の選択を受け付けた場合も、第１ＣＰＵ１１は表示エリア７１に表示される画像の範囲をそれぞれの向きに変化させる。
【０２２１】
移動ボタン７３は、前後左右の領域に分割されている。移動ボタン７３のそれぞれの領域の選択を受け付けた場合、第１ＣＰＵ１１は第２情報処理装置２０の位置がそれぞれの向きに変化したと判定し、仮想視点を移動させる。ズームボタン７４の選択を受け付けた場合、第１ＣＰＵ１１は、表示エリア７１に表示する画像の範囲を拡大または縮小する。
【０２２２】
以上により、ユーザは画面上のボタンの操作により、たとえば美術館の展示室内を自由に移動して展示品を鑑賞する体験を得ることができる。第２情報処理装置２０を傾ける操作またはジョイスティック等の操作が、画面上の各ボタンの操作の代わりに用いられても良い。
【０２２３】
［実施の形態９］
本実施の形態は、動画ファイルを作成する情報処理システム４０に関する。実施の形態７と共通する部分については、説明を省略する。
【０２２４】
図３０は、実施の形態９の表示時のプログラムの処理の流れを説明するフローチャートである。図３０に示すプログラムは、図２７を使用して説明したプログラムの代わりに使用するプログラムである。ステップＳ８６９までの処理、および、第２ＣＰＵ２１が行う処理は、図２７を使用して説明したプログラムと同一の処理であるので、説明を省略する。
【０２２５】
第１ＣＰＵ１１は、フレームレートを調整するために、所定のタイミングまで待つ処理を行う（ステップＳ９０１）。たとえば、３０ｆｐｓ（flame per second）の動画を記録する場合、フレーム間の時間は１／３０秒である。第１ＣＰＵ１１は、前回のステップＳ９０１から１／３０秒経過するまで待つ。
【０２２６】
第１ＣＰＵ１１は、ステップＳ８６９で送信した画像を動画ファイルの末尾に記録する（ステップＳ９０２）。第１ＣＰＵ１１は、処理を終了するか否かを判定する（ステップＳ８７０）。終了しないと判定した場合（ステップＳ８７０でＮＯ）、第１ＣＰＵ１１はステップＳ８６２に戻る。終了すると判定した場合（ステップＳ８７０でＹＥＳ）、第１ＣＰＵ１１は処理を終了する。
【０２２７】
本実施の形態によると、任意視点から見た画像を動画ファイルに記録する情報処理システムを提供できる。たとえば、ガイドが解説を行いながら展示室内を案内するような動画を作成することができる。
【０２２８】
［実施の形態１０］
本実施の形態は、光線ＤＢ５１の容量を節約する情報処理システム４０に関する。実施の形態１と共通する部分については、説明を省略する。
【０２２９】
図３１は、実施の形態１０の撮影時の処理の概要を説明する説明図である。図３１の上側は、全天球画像撮影時の座標系の模式図を示す。図３１の下側は、全天球画像を正距円筒図法で表示した模式図を示す。本実施の形態においては、撮影画像上の座標により個々の撮影画素を示す。
【０２３０】
正距円筒図法により、撮影画像は、縦Ｈ，横Ｗの寸法の長方形に展開される。i番目の撮影画素Ｇiの位置は、撮影画像の左下を原点とする（ｘi，ｙi）で示される。撮影画素Ｇiの方位角φiおよび仰角θiは、（９）式および（１０）式で表わされる
【０２３１】
【数６】
2019016979.tif 000008
【０２３２】
撮影中心Ｃ（Ｃｘ，Ｃｙ、Ｃｚ）から、撮影画素Ｇｉに向かう方向ベクトルｄ（φ、θ）は、直交座標系においては（１１）式により表される。
【０２３３】
【数７】
2019016979.tif 000009
【０２３４】
以上により、撮影中心Ｃ（Ｃｘ，Ｃｙ、Ｃｚ）および、撮影画素Ｇｉを通過する光線Ｌを示す方程式が特定される。光線Ｌと、直交座標系のＺ＝０の面との交点Ｐ（Ｐx、Ｐy、０）の座標は、（１２）式および（１３）式により表される。
【０２３５】
Ｐｘ ＝Ｃｘ−Ｃｚcotθsinφ      ‥‥‥  （１２）
Ｐｙ ＝Ｃｙ＋Ｃｚcotθcosφ      ‥‥‥  （１３）
【０２３６】
第１ＣＰＵ１１は、カメラ３０の第３ＣＰＵ３１から受信した画像データに基づいて、各撮影画素に対応する方位角φを（９）式により、仰角θを（１０）式により、交点Ｐの座標を（１２）式および（１３）式により算出する。
【０２３７】
図３２は、実施の形態１０の光線ＤＢ５１のレコードレイアウトを説明する説明図である。本実施の形態の光線ＤＢ５１は、シーンＩＤフィールドと、光線ＩＤフィールドと、直線情報フィールドと、輝度フィールドとを有する。直線情報フィールドは、位置フィールドと、向きフィールドとを有する。位置フィールドはｘフィールドと、ｙフィールドとを有する。向きフィールドは、φフィールドとθフィールドとを有する。
【０２３８】
シーンＩＤフィールドには、撮影したシーンに固有に付与されたＩＤが記録されている。光線ＩＤフィールドには、光線に付与された固有の光線ＩＤが記録されている。ｘフィールドには、式（１２）により算出される交点Ｐのｘ座標が記録される。ｙフィールドには、式（１３）により算出される交点Ｐのｙ座標が記録される。φフィールドには、式（９）により算出される方位角φが記録される。θフィールドには、式（１０）により算出される仰角θが記録される。
【０２３９】
図３３は、実施の形態１０の表示時の処理の概要を説明する説明図である。仮想スクリーンは、仮想視点Ｖ（Ｖx，Ｖy，Ｖz）を中心とする球殻形状である。表示時の処理においては、第１ＣＰＵ１１は、交点Ｐ（Ｐx，Ｐy，０）を通過し、方向ベクトルｄ＝（cosθsinφ，−cosθcosφ，sinθ）の直線である光線Ｌと、仮想視点Ｖ（Ｖx，Ｖy，Ｖz）を中心とし、半径ｒの球面である仮想スクリーンとの交点を算出する。以下に計算手法の概略を説明する。
【０２４０】
第１ＣＰＵ１１は、仮想視点Ｖが直交座標系の原点に一致するように、仮想スクリーンおよび光線を平行移動させる。平行移動は、（−Ｖx，−Ｖy，−Ｖz）で表される。この操作に伴い、交点Ｐは、交点Ｐ（Ｐx−Ｖx，Ｐy−Ｖy，−Ｖz）に移動する。したがって、第１ＣＰＵ１１は、交点Ｐ（Ｐx−Ｖx，Ｐy−Ｖy，−Ｖz）を通過し、方向ベクトルｄ＝（cosθsinφ，−cosθcosφ，sinθ）の直線Ｌと、原点を中心とした半径ｒの球との交点を算出する。
【０２４１】
直線Ｌは、（１４）式に示す直線方程式により表される。
【０２４２】
【数８】
2019016979.tif 000010
【０２４３】
（１４）式と、仮想スクリーンを示す球面の方程式とを等号で結ぶと、（１５）式が得られる。
【０２４４】
【数９】
2019016979.tif 000011
【０２４５】
（１５）式を媒介変数ｔに関する多項式に変形することにより、（１６）式が得られる。
【０２４６】
【数１０】
2019016979.tif 000012
【０２４７】
ここで、Ａ、ＢおよびＣを（１７）式から（１９）式のように定める。
【０２４８】
【数１１】
2019016979.tif 000013
【０２４９】
（１６）式は、Ａ、Ｂ、Ｃを用いて（２０）式のように表される。
【０２５０】
Ａｔ2＋Ｂｔ＋Ｃ＝０      ‥‥‥  （２０）
【０２５１】
ｔの根は、（２１）式により表される。
【０２５２】
【数１２】
2019016979.tif 000014
【０２５３】
判別式は、（２２）式により表される。
Ｄ＝Ｂ2−４ＡＣ      ‥‥‥  （２２）
【０２５４】
Ｄ＜０である場合には、直線Ｌと仮想スクリーンとの交点は存在しない。Ｄ＝０である場合には、直線Ｌと仮想スクリーンとは一点で接する。Ｄ＞０である場合には、直線Ｌと仮想スクリーンとは２点で交差する。このうち、仮想スクリーンの外側から内側に入る交点に対応する媒介変数ｔは（２３）式で表される。
【０２５５】
【数１３】
2019016979.tif 000015
【０２５６】
以上により、光線が仮想スクリーンの外側から内側に入る交点Ｊは、（１４）式の右辺の媒介変数ｔに、（２３）式を代入することにより求めることができる。
【０２５７】
以下の説明では、交点Ｊの座標をＪ（Ｊx，Ｊy，Ｊz）と記載する。仮想視点Ｖから見た交点Ｊの仰角θJは、（２４）式により表される。
【０２５８】
【数１４】
2019016979.tif 000016
【０２５９】
同様に、仮想視点Ｖから見た交点Ｊの方位角φJは、（２５）式または（２６）式により表される。
【０２６０】
【数１５】
2019016979.tif 000017
【０２６１】
ただし、（２４）式から（２６）式において、cos-1（ｘ）の値域を０＜cos-1（ｘ）＜πとする。
【０２６２】
球面スクリーンを正距円筒図法により、高さＨ0、幅Ｗ0、左右の端が方位角φ＝０＝２πの二次元配列の出力画像に投影する。出力画像中の画素（ｘ0，ｙ0）は、（２７）式により表される。
【０２６３】
【数１６】
2019016979.tif 000018
【０２６４】
（２７）式に基づいて、第１ＣＰＵ１１は、（ｘ0，ｙ0）を、切り捨てまたは四捨五入などの手段により整数化し、デジタル画像の画素位置に対応させる。
【０２６５】
本実施の形態によると、光線ＤＢ５１の容量を節約する情報処理システム４０を提供できる。
【０２６６】
［実施の形態１１］
本実施の形態は、仮想スクリーンが平面である情報処理システム４０に関する。実施の形態１０と共通する部分については、説明を省略する。
【０２６７】
図３４は、実施の形態１１の表示時の処理の概要を説明する説明図である。本実施の形態においては、仮想スクリーンは仮想視点Ｖ（Ｖx，Ｖy，Ｖz）から距離ｄだけ離れた長方形の平面である。仮想視点Ｖから仮想スクリーンの中心Ｑ（Ｑx，Ｑy，Ｑz）に向かうベクトルは、仮想スクリーンの法線ベクトルｎ（ｎx，ｎy，ｎz）と平行である。
【０２６８】
以上より仮想スクリーンの中心Ｑ（Ｑx，Ｑy，Ｑz）は、（Ｖx＋ｄｎx，Ｖy＋ｄｎy，Ｖz＋ｄｎz）で表される。仮想スクリーン上の任意の点Ｊ（Ｊx，Ｊy，Ｊz）は、仮想スクリーンの中心Ｑから見た位置ベクトルＪ−Ｑ＝（Ｊx−Ｑx，Ｊy−Ｑy，Ｊz−Ｑz）と、仮想スクリーンの法線ベクトルｎ（ｎx，ｎy，ｎz）とが直交する点の集合である。したがって、平面の方程式は（２８）式により表される。
【０２６９】
【数１７】
2019016979.tif 000019
【０２７０】
仮想スクリーンの上下方向の画角をＦH、左右方向の画角をＦWで示す。図３２を使用して説明した、ｚ＝０の平面との交点の座標Ｐ0（ｒx，ｒy，０）と、方位角φrと、仰角θrとにより直線情報が記録された光線ｒ（φr，θr，ｒx，ｒy）の向きを直交座標で表現する場合の単位方向ベクトルｇ（ｇx，ｇy，ｇz）は、（２９）式により表される。
【０２７１】
【数１８】
2019016979.tif 000020
【０２７２】
光線上の任意の点ｐ（ｐx，ｐy，ｐz）は媒介変数ｔを用いて（３０）式により表される。
【０２７３】
【数１９】
2019016979.tif 000021
【０２７４】
光線を示す直線の式を平面の方程式に代入することにより、（３１）式が得られる。
【０２７５】
【数２０】
2019016979.tif 000022
【０２７６】
（３１）式から媒介変数ｔについてまとめると、（３２）式が得られる。
【０２７７】
【数２１】
2019016979.tif 000023
【０２７８】
（３２）式を（３０）式の直線の方程式に代入することにより、光線と仮想スクリーンを含む無限平面との交点Ｐa の座標を得ることができる。Ｐaを（３３）式に示す。
【０２７９】
【数２２】
2019016979.tif 000024
【０２８０】
第１ＣＰＵ１１は、（３３）式を、ｘ、ｙ、ｚ座標それぞれの成分ごとに計算することにより、交点Ｐaの座標を算出する。なお（３３）式により算出する交点は、光線と、仮想スクリーンを含む無限平面との交点である。
【０２８１】
図３５は、実施の形態１１の交点が仮想スクリーンの範囲内であるか否かを判定する処理の概要を説明する説明図である。仮想スクリーンの左上の頂点の座標をＳ00で示す。仮想スクリーンの右上の頂点の座標をＳ01で示す。仮想スクリーンの右下の頂点の座標をＳ11で示す。仮想スクリーンの左下の頂点の座標をＳ10で示す。
【０２８２】
以後の説明においては、以下の方向ベクトルを使用する。
【０２８３】
【数２３】
2019016979.tif 000025
【０２８４】
（３０）式により算出した交点Ｐaは、（３４）式に示すように、方向ベクトルＳWと方向ベクトルＳHとの線形和により一意に表現できる。
【０２８５】
【数２４】
2019016979.tif 000026
【０２８６】
（３４）式において、０≦α≦１かつ０≦β＜１である場合、交点Ｐaは仮想スクリーンの内部に位置する。それ以外の場合、交点Ｐaは仮想スクリーンの外部に位置し、光線と仮想スクリーンとは交わらない。
【０２８７】
第１ＣＰＵ１１は、仮想スクリーンを高さＨ0、幅Ｗ0の二次元配列の出力画像により出力する。第１ＣＰＵ１１は、交点Ｐaを含む画素の位置を、（α×Ｗ0，β×Ｈ0）を、切捨てまたは四捨五入等の手段により整数化することにより算出する。
【０２８８】
本実施の形態によると、仮想スクリーンが平面である情報処理システム４０を提供できる。平面の表示装置を使用する場合に、歪み等の少ない画像を出力できる。
【０２８９】
［実施の形態１２］
本実施の形態は、仮想スクリーンが円筒面である情報処理システム４０に関する。実施の形態１０と共通する部分については、説明を省略する。
【０２９０】
図３６は、実施の形態１２の表示時の処理の概要を説明する説明図である。本実施の形態の仮想スクリーンは、仮想視点Ｖ（Ｖx，Ｖy，Ｖz）を通り、Ｚ軸に平行な中心軸を有し、半径ｒの円筒面である。
【０２９１】
本実施の形態においては、光線と仮想スクリーンとの交点の計算は、ＸＹ平面に投影した二次元座標上で行う。ＸＹ平面においては、仮想スクリーン上の任意の点の座標（ｘ、ｙ）は（３５）式に示す円の方程式により表される。
（ｘ−Ｖx）2＋（ｙ−Ｖy）2＝ｒ2      ‥‥‥  （３５）
【０２９２】
図３２を使用して説明した、ｚ＝０の平面との交点の座標Ｐ0（ｒx，ｒy，０）と、方位角φrと、仰角θrとにより直線情報が記録された光線ｒ（φr，θr，ｒx，ｒy）も、ＸＹ平面に投影する。投影された光線は（ｒx，ｒy）を通り、方向ベクトルｇ（ｇx，ｇｙ）＝（sinφr，−cosφr）の直線Ｌにより表される。
【０２９３】
直線Ｌは（３６）式に示す直線の方程式により表される。
（ｙ−ｒy）＝−cotφr（ｘ−ｒx）      ‥‥‥  （３６）
【０２９４】
（３６）式は、（３７）式に変形される。
ｙ＝−cotφr・ｘ＋（cotφr・ｒx＋ｒy）      ‥‥‥  （３７）
【０２９５】
（３７）式を（３５）式の円の方程式に代入して得られる（３８）式を解くことにより、直線Ｌと仮想スクリーンを含む無限平面との交点Ｐa をＸＹ平面に投影した座標を得ることができる。
【０２９６】
（ｘ−Ｖx）2
＋｛−cotφr・ｘ＋（cotφｒ・ｒx＋ｒy)−Ｖy｝2
＝ｒ2      ‥‥‥  （３８）
【０２９７】
ここで、Ａ、ＢおよびＣを（３９）式から（４１）式のように定める。
【０２９８】
Ａ＝１＋cot2φr      ‥‥‥  （３９）
Ｂ＝−２Ｖx
−２cotφｒ（cotφｒ・ｒx＋ｒy−Ｖy)       ‥‥‥  （４０）
Ｃ＝Ｖx2＋（cotφｒ・ｒx＋ｒy−Ｖy)2−ｒ2      ‥‥‥  （４１）
【０２９９】
Ａ、Ｂ、Ｃを用いて、直線Ｌと仮想スクリーンとの交点は、（４２）式により表される。
【０３００】
Ａｘ2＋Ｂｘ＋Ｃ＝０      ‥‥‥  （４２）
【０３０１】
判別式は、（４３）式により表される。
Ｄ＝Ｂ2−４ＡＣ      ‥‥‥  （４３）
【０３０２】
Ｄ＜０である場合には、直線Ｌと仮想スクリーンとの交点は存在しない。Ｄ＝０である場合には、直線Ｌと仮想スクリーンとは一点で接する。Ｄ＞０である場合には、直線Ｌと仮想スクリーンとは２点で交差する。
【０３０３】
２点で交差する場合の解は、（４４）式により表される。
【０３０４】
【数２５】
2019016979.tif 000027
【０３０５】
第１ＣＰＵ１１は、（４４）式に基づいてＸＹ平面上の交点の座標（ｘ，ｙ）を算出する。Ｄ＞０である場合には、２個の（ｘ，ｙ）座標が算出される。
【０３０６】
第１ＣＰＵ１１は、光線のＸＹ平面上の切片（ｒx，ｒy）から、それぞれの交点に向かうベクトルを算出する。それぞれのベクトルは、光線の方向ベクトルｇ（ｇx，ｇy）を係数ｋ倍したベクトルである。第１ＣＰＵ１１は、係数ｋが小さい方の交点を輝点であると判定する。
【０３０７】
第１ＣＰＵ１１は、（４５）式により輝点のｚ座標を算出する。
ｚ＝ｋ・ｇz＝ｋ・sinθr      ‥‥‥  （４５）
【０３０８】
本実施の形態によると、仮想スクリーンが円筒面である情報処理システム４０を提供できる。円筒面の表示装置を使用する場合に、歪み等の少ない画像を出力できる。
【０３０９】
［実施の形態１３］
図３７は、実施の形態１３の情報処理システムのブロック図である。情報処理装置１０は、第１取得部８１と、第２取得部８２と、算出部８３と、割当部８４と、出力部８５とを有する。
【０３１０】
第１取得部８１は、撮影装置と被写体とを結ぶ直線に関連づけられた直線情報、および、被写体に関連づけられた輝度を取得する。第２取得部８２は、複数の仮想画素を含む仮想スクリーンを定めるスクリーン情報を取得する。算出部８３は、第１取得部８１が取得した直線情報に関連づけられた直線が、第２取得部８２が取得したスクリーン情報に基づいて定められる仮想スクリーンと交差する交点を算出する。
【０３１１】
割当部８４は、算出部８３が算出した交点を含む仮想画素に、第１取得部８１が取得した輝度を割り当てる。出力部８５は、割当部８４により各仮想画素に輝度が割り当てられることにより仮想スクリーン上に形成される出力画像を出力する。
【０３１２】
［実施の形態１４］
本実施の形態は、汎用のコンピュータとプログラム９７とを組み合わせて動作させることにより、本実施の形態の情報処理システム４０を実現する形態に関する。図３８は、実施の形態１４の情報処理システム４０の構成を示す説明図である。なお、実施の形態１と共通する部分の説明は省略する。
【０３１３】
本実施の形態の情報処理システム４０は、ネットワークを介して接続されたコンピュータ９０と、第２情報処理装置２０と、カメラ３０とを含む。第２情報処理装置２０およびカメラ３０の構成は、実施の形態１と同一である。
【０３１４】
コンピュータ９０は、第１ＣＰＵ１１、主記憶装置１２、補助記憶装置１３、通信部１４、入力部１５、読取部９２およびバスを備える。コンピュータ９０は、汎用のパーソナルコンピュータ、タブレット、スマートフォンまたは大型計算機等の情報機器等である。また、本実施の形態のコンピュータ９０は、大型計算機上で動作する仮想マシンでも良い。
【０３１５】
プログラム９７は、可搬型記録媒体９６に記録されている。第１ＣＰＵ１１は、読取部９２を介してプログラム９７を読み込み、補助記憶装置１３に保存する。また第１ＣＰＵ１１は、コンピュータ９０に実装されたフラッシュメモリ等の半導体メモリ９８に記憶されたプログラム９７を読出しても良い。さらに、第１ＣＰＵ１１は、通信部１４および図示しないネットワークを介して接続される図示しない他のサーバコンピュータからプログラム９７をダウンロードして補助記憶装置１３に保存しても良い。
【０３１６】
プログラム９７は、コンピュータ９０の制御プログラムとしてインストールされ、主記憶装置１２にロードして実行される。これにより、コンピュータ９０は上述した第１情報処理装置１０として機能する。
【０３１７】
第１ＣＰＵ１１はネットワークを介してプログラム９７を第２ＣＰＵ２１および第３ＣＰＵ３１に送信しても良い。
【０３１８】
第２ＣＰＵ２１は、ネットワークを介してプログラム９７のうち第２情報処理装置２０で実行する部分を取得し、補助記憶装置２３に保存する。プログラム９７は、第２情報処理装置２０の制御プログラムとしてインストールされ、主記憶装置２２にロードして実行される。
【０３１９】
第３ＣＰＵ３１は、ネットワークを介してプログラム９７のうちカメラ３０で実行する部分を取得し、補助記憶装置３３に保存する。プログラム９７は、カメラ３０の制御プログラムとしてインストールされ、主記憶装置３２にロードして実行される。
【０３２０】
以上により、コンピュータ９０と、第２情報処理装置２０と、カメラ３０とは、上述した情報処理システム４０として機能する。
【０３２１】
各実施例で記載されている技術的特徴（構成要件）はお互いに組合せ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０３２２】
１０  第１情報処理装置（情報処理装置）
１１  第１ＣＰＵ
１２  主記憶装置
１３  補助記憶装置
１４  通信部
１５  入力部
１８  表示部
２０  第２情報処理装置
２１  第２ＣＰＵ
２２  主記憶装置
２３  補助記憶装置
２４  通信部
２８  表示部
２９  センサ部
３０  カメラ（撮影装置）
３１  第３ＣＰＵ
３２  主記憶装置
３３  補助記憶装置
３４  通信部
３６  シャッターボタン
３７  撮影部
３７１  第１レンズ
３７２  第２レンズ
３８  板状部
３８１  第１広面
３８２  第２広面
５１  光線ＤＢ
５２  投影ＤＢ
５３  表示ＤＢ
７１  表示エリア
７２１  上視線ボタン
７２２  右視線ボタン
７２３  下視線ボタン
７２４  左視線ボタン
７３  移動ボタン
７４  ズームボタン
８１  第１取得部
８２  第２取得部
８３  算出部
８４  割当部
８５  出力部
９０  コンピュータ
９２  読取部
９６  可搬型記録媒体
９７  プログラム
９８  半導体メモリ
【図１】
2019016979.tif 000028
【図２】
2019016979.tif 000029
【図３】
2019016979.tif 000030
【図４】
2019016979.tif 000031
【図５】
2019016979.tif 000032
【図６】
2019016979.tif 000033
【図７】
2019016979.tif 000034
【図８】
2019016979.tif 000035
【図９】
2019016979.tif 000036
【図１０】
2019016979.tif 000037
【図１１】
2019016979.tif 000038
【図１２】
2019016979.tif 000039
【図１３】
2019016979.tif 000040
【図１４】
2019016979.tif 000041
【図１５】
2019016979.tif 000042
【図１６】
2019016979.tif 000043
【図１７】
2019016979.tif 000044
【図１８】
2019016979.tif 000045
【図１９】
2019016979.tif 000046
【図２０】
2019016979.tif 000047
【図２１】
2019016979.tif 000048
【図２２】
2019016979.tif 000049
【図２３】
2019016979.tif 000050
【図２４】
2019016979.tif 000051
【図２５】
2019016979.tif 000052
【図２６】
2019016979.tif 000053
【図２７】
2019016979.tif 000054
【図２８】
2019016979.tif 000055
【図２９】
2019016979.tif 000056
【図３０】
2019016979.tif 000057
【図３１】
2019016979.tif 000058
【図３２】
2019016979.tif 000059
【図３３】
2019016979.tif 000060
【図３４】
2019016979.tif 000061
【図３５】
2019016979.tif 000062
【図３６】
2019016979.tif 000063
【図３７】
2019016979.tif 000064
【図３８】
2019016979.tif 000065