(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024024367
(43)【公開日】2024-02-22
(54)【発明の名称】情報処理装置および情報処理方法
(51)【国際特許分類】
G06T 19/00 20110101AFI20240215BHJP
【FI】
G06T19/00 300B
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022127152
(22)【出願日】2022-08-09
(71)【出願人】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(74)【代理人】
【識別番号】100109047
【弁理士】
【氏名又は名称】村田 雄祐
(74)【代理人】
【識別番号】100109081
【弁理士】
【氏名又は名称】三木 友由
(74)【代理人】
【識別番号】100134256
【弁理士】
【氏名又は名称】青木 武司
(72)【発明者】
【氏名】土江 竜雄
(72)【発明者】
【氏名】鶴 大輔
(72)【発明者】
【氏名】岡本 寛史
【テーマコード(参考)】
5B050
【Fターム(参考)】
5B050AA10
5B050BA09
5B050BA11
5B050CA07
5B050DA04
5B050EA09
5B050EA19
5B050EA27
(57)【要約】
【課題】撮影画像を用いて実世界の情報を効率よく取得する。
【解決手段】画像生成装置のクロップ部274は、ヘッドマウントディスプレイのステレオカメラが撮影する動画像のフレームを順次取得する。領域制御部300は、各フレームからクロップすべき領域を、時間軸に対し所定の規則で移動させながら決定する。クロップ処理部302は決定に従い、各フレームから一部の領域をクロップする。補正部304は、クロップすべき領域として設定された複数の領域に対応づけて準備された補正パラメータを用い、クロップされてなる画像を補正する。
【選択図】
図12
【特許請求の範囲】
【請求項1】
撮影中の動画像のフレームのデータを取得する撮影画像取得部と、
時系列順の前記フレームのそれぞれから、一部の領域の画像を切り出すクロップ部と、
前記一部の領域の画像を解析し、所定の情報を取得する画像解析部と、
を備え、
前記クロップ部は、時間軸に対する所定規則で、切り出す領域を移動させることを特徴とする情報処理装置。
【請求項2】
前記クロップ部は、前記切り出す領域を、フレーム平面の所定方向で往復させることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記切り出す領域として設定された複数の領域のそれぞれに対し、画像補正用のパラメータを格納した画像補正パラメータ記憶部をさらに備え、
前記クロップ部は、前記複数の領域間で、前記切り出す領域を切り替えたうえ、切り出してなる画像を、対応する前記パラメータにより補正することを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記クロップ部は、前記切り出す領域を、フレーム平面の所定方向で等速に移動させることを特徴とする請求項1または2に記載の情報処理装置。
【請求項5】
前記クロップ部は、毎フレーム、または所定数おきのフレームで、切り出す領域を切り替えて、画像を切り出すことを特徴とする請求項1または2に記載の情報処理装置。
【請求項6】
前記クロップ部は、フレーム平面における前記切り出す領域の移動速度を、当該フレーム平面上の位置によって変化させることを特徴とする請求項1または2に記載の情報処理装置。
【請求項7】
前記クロップ部は、前記フレームにおいて所定の物体が写っている可能性が高い領域を特定し、当該領域において、前記切り出す領域の移動速度を低減させることを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記撮影画像取得部は、ヘッドマウントディスプレイが搭載するカメラにより撮影された前記フレームのデータを取得し、
前記クロップ部は、前記ヘッドマウントディスプレイの姿勢に基づき、前記所定の物体が写っている可能性が高い領域を特定することを特徴とする請求項7に記載の情報処理装置。
【請求項9】
前記撮影画像取得部は、ヘッドマウントディスプレイが搭載するカメラにより撮影された前記フレームのデータを取得し、
前記画像解析部は、前記ヘッドマウントディスプレイを装着しているユーザの周囲に存在する物体の構成に係る情報を取得することを特徴とする請求項1または2に記載の情報処理装置。
【請求項10】
撮影中の動画像のフレームのデータを取得するステップと、
時系列順の前記フレームのそれぞれから、一部の領域を切り出すステップと、
前記一部の領域の画像を解析し、所定の情報を取得するステップと、
を含み、
前記切り出すステップは、時間軸に対する所定規則で、切り出す領域を移動させることを特徴とする情報処理方法。
【請求項11】
撮影中の動画像のフレームのデータを取得する機能と、
時系列順の前記フレームのそれぞれから、一部の領域を切り出す機能と、
前記一部の領域の画像を解析し、所定の情報を取得する機能と、
をコンピュータに実現させ、
前記切り出す機能は、時間軸に対する所定規則で、切り出す領域を移動させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮影画像を用いて実世界の状態情報を取得する情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
ヘッドマウントディスプレイを装着したユーザが対象空間を自由な視点から鑑賞できる画像表示システムが普及している。例えば仮想3次元空間を表示対象とし、ユーザの視線方向に応じた画像がヘッドマウントディスプレイに表示されるようにすることで仮想現実(VR:Virtual Reality)を実現する電子コンテンツが知られている。ヘッドマウントディスプレイを利用することで、映像への没入感を高めたり、ゲーム等のアプリケーションの操作性を向上させたりすることもできる。また、ヘッドマウントディスプレイを装着したユーザが物理的に移動することで、映像として表示された空間内を仮想的に歩き回ることのできるウォークスルーシステムも開発されている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
上記のような技術において、高品質なユーザ体験を実現するには、ユーザの位置や姿勢、周囲にある家具や壁との位置関係など、実物体の状態を常時、正確に把握しつづけることが求められる。一方、取得すべき情報が多いほど、また情報の精度を向上させようとするほど、センサなど必要な装備が増え、製造コスト、重量、消費電力などの面で問題となる。そこで表示にも利用可能な撮影画像を解析し、実物体の状態を取得することが考えられるが、当該撮影画像の視野が不規則に変化する環境では特に、必要な像が得られにくく情報の取得効率が悪いという問題がある。
【0004】
本発明はこうした課題に鑑みてなされたものであり、その目的は、撮影画像を用いて実世界の情報を効率よく取得できる技術を提供することにある。
【課題を解決するための手段】
【0005】
上記課題を解決するために、本発明のある態様は情報処理装置に関する。この情報処理装置は、撮影中の動画像のフレームのデータを取得する撮影画像取得部と、時系列順のフレームのそれぞれから、一部の領域の画像を切り出すクロップ部と、一部の領域の画像を解析し、所定の情報を取得する画像解析部と、を備え、クロップ部は、時間軸に対する所定規則で、切り出す領域を移動させることを特徴とする。
【0006】
本発明の別の態様は情報処理方法に関する。この情報処理方法は、撮影中の動画像のフレームのデータを取得するステップと、時系列順の前記フレームのそれぞれから、一部の領域の画像を切り出すステップと、一部の領域の画像を解析し、所定の情報を取得するステップと、を含み、切り出すステップは、時間軸に対する所定規則で、切り出す領域を移動させることを特徴とする。
【0007】
なお、以上の構成要素の任意の組合せ、本発明の表現をシステム、コンピュータプログラム、コンピュータプログラムを読み取り可能に記録した記録媒体、データ構造などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0008】
本発明によれば、撮影画像を用いて実世界の情報を効率よく取得できる。
【図面の簡単な説明】
【0009】
【
図1】本実施の形態におけるヘッドマウントディスプレイの外観例を示す図である。
【
図2】本実施の形態における画像表示システムの構成例を示す図である。
【
図3】本実施の形態において画像生成装置がヘッドマウントディスプレイに表示させる画像世界の例を説明するための図である。
【
図4】Visual SLAMの原理を概説するための図である。
【
図5】本実施の形態における画像生成装置の内部回路構成を示す図である。
【
図6】本実施の形態におけるヘッドマウントディスプレイの内部回路構成を示す図である。
【
図7】本実施の形態における画像生成装置の機能ブロックを示すブロック図である。
【
図8】本実施の形態のプレイエリア制御部がプレイエリアを設定する処理手順を示すフローチャートである。
【
図9】
図8のS20で表示されるプレイエリア編集画面の例を示す図である。
【
図10】本実施の形態のクロップ部による基本的な処理を説明するための図である。
【
図11】本実施の形態のクロップ部が、クロップ対象の領域を切り替える一態様を説明するための図である。
【
図12】本実施の形態において、クロップ対象の領域を切り替える態様における、クロップ部の機能ブロックの詳細な構成を示す図である。
【
図13】本実施の形態においてクロップ対象の領域を切り替える契機を、ヘッドマウントディスプレイの姿勢によって決定する態様を説明するための図である。
【発明を実施するための形態】
【0010】
本実施の形態は、ユーザの頭部に装着されたヘッドマウントディスプレイに画像を表示する画像表示システムに関する。
図1は、ヘッドマウントディスプレイ100の外観例を示す。この例でヘッドマウントディスプレイ100は、出力機構部102および装着機構部104で構成される。装着機構部104は、ユーザが被ることにより頭部を一周し装置の固定を実現する装着バンド106を含む。
【0011】
出力機構部102は、ヘッドマウントディスプレイ100をユーザが装着した状態において左右の目を覆うような形状の筐体108を含み、内部には装着時に目に正対するように表示パネルを備える。本実施の形態においてヘッドマウントディスプレイ100の表示パネルは、透過性がないものとする。すなわちヘッドマウントディスプレイ100は、光不透過型のヘッドマウントディスプレイである。
【0012】
筐体108内部にはさらに、ヘッドマウントディスプレイ100の装着時に表示パネルとユーザの目との間に位置し、ユーザの視野角を拡大する接眼レンズを備えてよい。ヘッドマウントディスプレイ100はさらに、装着時にユーザの耳に対応する位置にスピーカーやイヤホンを備えてよい。また、ヘッドマウントディスプレイ100は、モーションセンサを内蔵し、ヘッドマウントディスプレイ100を装着したユーザの頭部の並進運動や回転運動、ひいては各時刻の位置や姿勢を検出する。
【0013】
また、ヘッドマウントディスプレイ100は、筐体108の前面にステレオカメラ110を備える。ステレオカメラ110は、ユーザの視線に対応する視野で周囲の実空間を動画撮影する。撮影した画像を即時に表示させれば、ユーザが向いた方向の実空間の様子がそのまま見える、いわゆるビデオシースルーを実現できる。さらに撮影画像に写っている実物体の像上に仮想オブジェクトを描画すれば拡張現実(AR:Augmented Reality)を実現できる。
【0014】
図2は、本実施の形態の画像表示システムの構成例を示す。画像表示システム10は、ヘッドマウントディスプレイ100、画像生成装置200、コントローラ140を備える。ヘッドマウントディスプレイ100は、無線通信により画像生成装置200に接続される。画像生成装置200は、さらにネットワークを介してサーバに接続されてもよい。その場合、サーバは、複数のユーザがネットワークを介して参加できるゲームなどのオンラインアプリケーションのデータを画像生成装置200に提供してもよい。
【0015】
画像生成装置200は、ヘッドマウントディスプレイ100を装着したユーザの頭部の位置や姿勢に基づき視点の位置や視線の方向を特定し、それに応じた視野となるように表示画像を生成してヘッドマウントディスプレイ100に出力する情報処理装置である。例えば、画像生成装置200は、電子ゲームを進捗させつつゲームの舞台である仮想世界を表示画像として生成してもよいし、仮想世界か実世界かに関わらず観賞や情報提供のために動画像を表示させてもよい。また、ユーザの視点を中心に広い画角のパノラマ画像をヘッドマウントディスプレイ100に表示させることによって、表示世界への深い没入感をユーザに与えることができる。なお、画像生成装置200は、据置型ゲーム機であってもよく、PCであってもよい。
【0016】
コントローラ140は、ユーザの手に把持され、画像生成装置200における画像生成や、ヘッドマウントディスプレイ100における画像表示を制御するためのユーザの操作が入力されるコントローラ(例えばゲームコントローラ)である。コントローラ140は、無線通信により画像生成装置200に接続される。変形例として、ヘッドマウントディスプレイ100とコントローラ140の一方、または両方は、信号ケーブル等を介した有線通信により画像生成装置200に接続されてもよい。
【0017】
図3は、画像生成装置200がヘッドマウントディスプレイ100に表示させる画像世界の例を説明するための図である。この例では、ユーザ12が仮想空間である部屋にいる状態を作り出している。仮想空間を定義するワールド座標系には、図示するように、壁、床、窓、テーブル、テーブル上の物などのオブジェクトを配置している。画像生成装置200は、当該ワールド座標系に、ユーザ12の視点の位置や視線の方向に応じてビュースクリーン14を定義し、そこにオブジェクトの像を表すことで表示画像を描画する。
【0018】
画像生成装置200は、ヘッドマウントディスプレイ100の状態を所定のレートで取得し、これに応じてビュースクリーン14の位置や姿勢を変化させる。これにより、ユーザの視点に対応する視野で画像をヘッドマウントディスプレイ100に表示させることができる。また画像生成装置200が、視差を有するステレオ画像を生成し、ヘッドマウントディスプレイ100の表示パネルの左右の領域にステレオ画像を表示させれば、仮想空間をユーザ12に立体視させることもできる。これにより、ユーザ12は、あたかも表示世界の部屋の中にいるような仮想現実を体験することができる。
【0019】
図3で示したような画像表現を実現するには、ユーザの頭部、ひいてはヘッドマウントディスプレイ100の位置や姿勢の変化を追跡し、それに対応するように、ビュースクリーン14の位置や姿勢を高精度に制御することが求められる。また、光不透過型のヘッドマウントディスプレイを装着したユーザには、実空間における周囲の状況が見えないため、衝突や躓きなどの危険を回避する手段を設ける必要がある。本実施の形態では、ステレオカメラ110による撮影画像を利用して、効率的かつ低遅延で実物体に係る必要な情報を取得する。
【0020】
ビデオシースルーなどの表示に用いる画像は、好適には、人の視野範囲を網羅するような広い画角で撮影する。この場合、ユーザの周囲にある実物体の情報や、それに対するユーザ頭部の位置や姿勢などの情報の多くは、当該撮影画像に含まれていることになる。本実施の形態ではこれを利用し、撮影画像のうち必要な部分を目的に応じて切り出し、画像解析に用いることにより、専用のセンサを別途設けずとも効率的に必要な情報が得られるようにする。なお以後の説明では、ヘッドマウントディスプレイ100の位置および姿勢の少なくともいずれかを、ヘッドマウントディスプレイの「状態」と総称する場合がある。
【0021】
カメラが搭載された移動体の自己位置推定と環境地図の作成を、撮影画像を用いて同時に行う技術として、Visual SLAM(Simultaneous Localization and Mapping)が知られている。
図4はVisual SLAMの原理を概説するための図である。カメラ22は移動体に設けられ、視野範囲の実空間26を、位置や姿勢を変えながら動画撮影している。ここで、ある時刻で撮影されたフレーム20aと、時間Δt後に撮影されたフレーム20bで、同じ被写体上のポイント24を表す特徴点28a、28bが抽出されたとする。
【0022】
各フレーム平面における、対応する特徴点28a、28b(以後、「対応点」と呼ぶ場合がある)の位置座標のずれは、時間Δtにおけるカメラ22の位置と姿勢の変化に依存する。具体的には、カメラ22の回転運動および並進運動による変化分を表す行列をそれぞれR、Tとし、各時刻のカメラ22からポイント24までの3次元ベクトルをP1、P2とすると、次の関係式が成り立つ。
P1=R・P2+T
【0023】
この関係を利用し、時間的に前後する2つのフレームにおける対応点を複数抽出して連立方程式を解くことにより、その間のカメラ22の位置と姿勢の変化を特定できる。また導出結果の誤差を再帰的計算で最小化する処理により、ポイント24など、実空間26における被写体表面の3次元情報を正確に構築できる。なおカメラ22をステレオカメラ110とすると、ポイント24等の3次元位置座標は、各時刻で独立して求められるため、対応点の抽出などの演算がより容易になる。
【0024】
ただしカメラ22を単眼のカメラとする場合であっても、Visual SLAMのアルゴリズムは確立されている。したがってヘッドマウントディスプレイ100の状態を追跡する目的においては、ヘッドマウントディスプレイ100が備えるカメラはステレオカメラ110に限定されない。またVisual SLAMのアルゴリズムは多数、提案されており、そのいずれを採用しても構わない。いずれにしろ図示する原理によれば、動画像のフレームレートと同じレートで、前の時刻からのカメラ22の状態変化を導出できる。
【0025】
図5は、画像生成装置200の内部回路構成を示す。画像生成装置200は、CPU(Central Processing Unit)222、GPU(Graphics Processing Unit)224、メインメモリ226を含む。これらの各部は、バス230を介して相互に接続される。バス230にはさらに入出力インターフェース228が接続される。入出力インターフェース228には、通信部232、記憶部234、出力部236、入力部238、記録媒体駆動部240が接続される。
【0026】
通信部232は、USBやIEEE1394などの周辺機器インターフェースや、有線LANまたは無線LAN等のネットワークインターフェースを含む。記憶部234は、ハードディスクドライブや不揮発性メモリ等を含む。出力部236は、ヘッドマウントディスプレイ100へのデータを出力する。入力部238は、ヘッドマウントディスプレイ100からのデータ入力を受け付け、また、コントローラ140からのデータ入力を受け付ける。記録媒体駆動部240は、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する。
【0027】
CPU222は、記憶部234に記憶されているオペレーティングシステムを実行することにより画像生成装置200の全体を制御する。また、CPU222は、記憶部234またはリムーバブル記録媒体から読み出されてメインメモリ226にロードされた、あるいは通信部232を介してダウンロードされた各種プログラム(例えばVRゲームアプリケーション等)を実行する。GPU224は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、CPU222からの描画命令にしたがって描画処理を行い、描画結果を出力部236に出力する。メインメモリ226は、RAM(Random Access Memory)により構成され、処理に必要なプログラムやデータを記憶する。
【0028】
図6は、ヘッドマウントディスプレイ100の内部回路構成を示す。ヘッドマウントディスプレイ100は、CPU120、メインメモリ122、表示部124、音声出力部126を含む。これらの各部はバス128を介して相互に接続されている。バス128にはさらに入出力インターフェース130が接続されている。入出力インターフェース130には、無線通信のインターフェースを含む通信部132、モーションセンサ134、およびステレオカメラ110が接続される。
【0029】
CPU120は、バス128を介してヘッドマウントディスプレイ100の各部から取得した情報を処理するとともに、画像生成装置200から取得した表示画像や音声のデータを表示部124や音声出力部126に供給する。メインメモリ122は、CPU120における処理に必要なプログラムやデータを格納する。
【0030】
表示部124は、液晶パネルや有機ELパネルなどの表示パネルを含み、ヘッドマウントディスプレイ100を装着したユーザの眼前に画像を表示する。表示部124は、左右の目に対応する領域に一対のステレオ画像を表示することにより立体視を実現してもよい。表示部124はさらに、ヘッドマウントディスプレイ100装着時に表示パネルとユーザの目との間に位置し、ユーザの視野角を拡大する一対のレンズを含んでもよい。
【0031】
音声出力部126は、ヘッドマウントディスプレイ100の装着時にユーザの耳に対応する位置に設けたスピーカーやイヤホンで構成され、ユーザに音声を聞かせる。通信部132は、画像生成装置200との間でデータを送受するためのインターフェースであり、Bluetooth(登録商標)などの既知の無線通信技術により通信を実現する。モーションセンサ134はジャイロセンサおよび加速度センサを含み、ヘッドマウントディスプレイ100の角速度や加速度を取得する。
【0032】
ステレオカメラ110は、
図1で示したとおり、ユーザの視点に対応する視野で周囲の実空間を左右の視点から撮影するビデオカメラの対である。ステレオカメラ110により撮像された動画像のフレームには、ユーザの視線方向(典型的にはユーザの正面)に存在する物体が映る。モーションセンサ134による計測値や、ステレオカメラ110による撮影画像のデータは、必要に応じて、通信部132を介して画像生成装置200へ送信される。
【0033】
本実施の形態の画像表示システム10では上述のとおり、撮影画像を用いて取得した実空間の情報に基づき、ユーザのプレイエリアを設定する。プレイエリアは、ヘッドマウントディスプレイ100を装着したユーザがアプリケーションのプレイ中に移動可能な実世界の範囲である。アプリケーションのプレイ中にユーザがプレイエリアを逸脱しようとする場合や逸脱した場合、画像表示システム10は、注意を促す内容、または、プレイエリアへの復帰を促す内容の警告をユーザに提示する。
【0034】
図7は、画像生成装置の機能ブロックを示すブロック図である。上述したように、画像生成装置200は、電子ゲームの進行やサーバとの通信等、一般的な情報処理を実行するが、
図7では特に、ステレオカメラ110による撮影画像の処理に関する機能ブロックを詳細に示している。なお、
図7に示す画像生成装置200の機能のうち少なくとも一部は、ヘッドマウントディスプレイ100に実装されてもよいし、ネットワークを介して画像生成装置200に接続されたサーバに実装されてもよい。また画像生成装置200の機能のうち、撮影画像のフレームを切り出し(クロップし)所定の情報を得る機能は、別途、情報処理装置として実現してもよい。
【0035】
また、
図7に示す複数の機能ブロックは、ハードウェア的には、
図5に示したCPU222、GPU224、メインメモリ226、記憶部234等の構成で実現でき、ソフトウェア的には、複数の機能ブロックの機能を実装したコンピュータプログラムにより実現できる。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【0036】
画像生成装置200は、データ処理部250とデータ記憶部252を備える。データ処理部250は、各種のデータ処理を実行する。データ処理部250は、
図5に示した通信部232、出力部236、入力部238を介して、ヘッドマウントディスプレイ100およびコントローラ140とデータを送受信する。データ記憶部252は、
図5で示した記憶部234などで実現され、データ処理部250により参照または更新されるデータを記憶する。
【0037】
データ記憶部252は、App記憶部254、プレイエリア記憶部256、マップ記憶部258を備える。App記憶部254は、例えばVRゲームなど画像表示を伴うアプリケーションの実行に必要な、プログラムやオブジェクトモデルのデータなどを記憶する。プレイエリア記憶部256は、プレイエリアに関するデータを記憶する。プレイエリアに関するデータは、プレイエリアの境界を構成する点群の位置を示すデータ(例えばワールド座標系における各点の座標値)を含む。
【0038】
マップ記憶部258は、ヘッドマウントディスプレイ100、ひいてはヘッドマウントディスプレイ100を装着したユーザ頭部の位置や姿勢を取得するための登録情報を記憶する。具体的にはマップ記憶部258は、Visual SLAMで用いるキーフレームのデータと、3次元実空間における物体表面の構造を表す環境地図(以後、「マップ」と呼ぶ)のデータとを対応づけて記憶する。
【0039】
キーフレームは、Visual SLAMにおいて特徴点を抽出したフレームのうち、特徴点の数が所定値以上など、所定の基準により選択されたフレームのデータである。ただし本実施の形態において「フレーム」とは、ステレオカメラ110が撮影している動画像のフレームの全領域に限らず、全領域から所定規則でクロップされた一部の領域を指す場合もある。キーフレームを「過去のフレーム」として、現フレーム(最新フレーム)の特徴点との照合に用いることにより、ヘッドマウントディスプレイ100の位置や姿勢の追跡において時間経過とともに蓄積される誤差をキャンセルできる。
【0040】
マップデータは、ユーザがいる実空間に存在する物体の表面を表すポイント群の、3次元位置座標の情報であり、各ポイントは、キーフレームから抽出された特徴点に対応づけられる。キーフレームのデータは、それを取得した際のステレオカメラ110の状態と対応づけられる。キーフレームに含まれるべき特徴点の個数は24個以上であってもよい。特徴点は、公知のコーナー検出法により検出されたコーナーを含んでもよく、また、輝度の勾配に基づいて検出されてもよい。
【0041】
データ処理部250は、システム部260、App実行部290、表示制御部292を備える。これら複数の機能ブロックの機能は、コンピュータプログラムに実装されてもよい。画像生成装置200のCPU222とGPU224は、上記コンピュータプログラムを記憶部234や記録媒体からメインメモリ226に読み出して実行することにより上記複数の機能ブロックの機能を発揮してもよい。
【0042】
システム部260は、ヘッドマウントディスプレイ100に関するシステムの処理を実行する。システム部260は、ヘッドマウントディスプレイ100用の複数のアプリケーション(例えばVRゲーム)に対して共通のサービスを提供する。システム部260は、撮影画像取得部262、入力情報取得部263、クロップ部274、状態情報取得部276、および、プレイエリア制御部264を含む。
【0043】
撮影画像取得部262は、ヘッドマウントディスプレイ100から送信された、ステレオカメラ110による撮像画像のフレームデータを順次取得する。このデータは基本的に、表示に用いることのできる広角の画像データである。入力情報取得部263は、コントローラ140を介してユーザ操作の内容を取得する。クロップ部274は、撮影画像取得部262が取得したフレームから、後段で行うべき処理に必要な領域をクロップする。
【0044】
状態情報取得部276は、上述したVisual SLAMの手法により、ヘッドマウントディスプレイ100の状態情報を逐次取得する。具体的には状態情報取得部276は例えば、クロップ部274により提供された、クロップ後の各フレームのデータと、マップ記憶部258に格納されたデータとに基づき、ヘッドマウントディスプレイ100の状態、すなわち位置と姿勢の情報を各時刻で取得する。なお状態情報取得部276は、画像解析により得られた情報と、ヘッドマウントディスプレイ100が内蔵するモーションセンサ134による計測値とを統合して状態情報としてもよい。
【0045】
ヘッドマウントディスプレイ100の状態情報は、アプリケーションの実行時におけるビュースクリーンの設定や、プレイエリア境界へのユーザの接近を監視する処理、プレイエリアへの接近を警告する処理などに用いられる。したがって状態情報取得部276は、取得した状態情報を、そのときの状況に応じて、プレイエリア制御部264、App実行部290、表示制御部292に適宜供給する。
【0046】
プレイエリア制御部264は、ユーザが安全に移動できる実空間の領域をプレイエリアとして設定したうえ、アプリケーションの実行段階において、その境界にユーザが接近した際などに適宜警告を提示する。プレイエリアの設定においてプレイエリア制御部264は、クロップ部274により提供された、クロップ後の各フレームのデータを用いて、Visual SLAMなどによりマップデータを生成する。
【0047】
プレイエリア制御部264はまた、当該マップデータを参照し、家具や壁などに衝突しない床面の範囲をプレイエリアとして自動で決定する。プレイエリア制御部264は、一旦決定したプレイエリアの境界を表す画像を、ヘッドマウントディスプレイ100に表示させることにより、ユーザによるプレイエリアの編集操作を受け付けてもよい。この場合、プレイエリア制御部264は、コントローラ140を介したユーザ操作の内容を、入力情報取得部263を介して取得し、それに応じてプレイエリアの形状を変更する。
【0048】
プレイエリア制御部264は、決定したプレイエリアに関するデータを最終的にプレイエリア記憶部256に格納する。プレイエリア制御部264はまた、生成したマップデータと、それに付随して得られるキーフレームのデータを対応づけて、マップ記憶部258に格納し、状態情報取得部276が後の任意のタイミングで読み出せるようにする。
【0049】
なおクロップ部274がクロップした画像の用途は、ヘッドマウントディスプレイ100の状態情報の取得やプレイエリアの設定に限らず、画像認識など別の画像解析であっても、表示画像の生成であってもよい。また、状態情報取得部276やプレイエリア制御部264の一部など、クロップされた画像を用いて画像解析を行う機能は、「画像解析部」と総称することもできる。
【0050】
App実行部290は、ユーザにより選択されたVRゲームなどのアプリケーションのデータをApp記憶部254から読み出して実行する。この際、App実行部290は、ヘッドマウントディスプレイ100の状態情報を状態情報取得部276から逐次取得し、それに対応する位置および姿勢でビュースクリーンを設定しVR画像を描画する。これにより、ユーザ頭部の動きに応じた視野で表示対象の仮想世界を表すことができる。
【0051】
App実行部290はまた、ユーザにより選択されたアプリケーションによっては、AR画像を生成してもよい。この場合、App実行部290は、撮影画像取得部262が取得した撮影画像のフレーム、あるいはクロップ部274が表示処理に対応させてクロップしたフレームに、仮想オブジェクトを重畳描画する。ここでApp実行部290は、状態情報取得部276が取得した状態情報に基づき仮想オブジェクトの描画位置を決定する。これにより、撮影画像に写る被写体と対応するように、適切に仮想オブジェクトを表せる。
【0052】
表示制御部292は、App実行部290により生成された様々な画像、例えばVR画像やAR画像のフレームのデータを、ヘッドマウントディスプレイ100へ順次送信する。表示制御部292はまた、プレイエリアの設定に際し、周囲を見回すようユーザに指示を与える画像、仮に決定したプレイエリアの様子を表して編集を受け付ける画像、プレイエリアの境界への接近を警告する画像、などを必要に応じてヘッドマウントディスプレイ100へ送信する。
【0053】
例えばプレイエリアの設定時、表示制御部292は、プレイエリア制御部264からの要求に従い、撮影画像取得部262が取得した撮影画像のフレーム、あるいはクロップ部274が表示処理に対応させてクロップしたフレームのデータをヘッドマウントディスプレイ100へ送信し、表示させる。これにより、ユーザが向いた方向の実空間の様子をそのまま見せるビデオシースルーを実現でき、ユーザの安全性を高められる。なおビデオシースルーを実現する機会はこれに限らず、ユーザがプレイエリアを逸脱している期間、アプリケーションの開始前や終了後、ユーザがビデオシースルーを要求した場合、など様々であってよい。
【0054】
図8は、プレイエリア制御部264がプレイエリアを設定する処理手順を示すフローチャートである。前提として、画像生成装置200とヘッドマウントディスプレイ100が通信を確立し、ヘッドマウントディスプレイ100から、ステレオカメラ110による撮影画像のデータが送信されているとする。そしてユーザが、ヘッドマウントディスプレイ100のシステムの設定メニューの中で、プレイエリアの初期設定または再設定を選択したとき、図示する処理を開始する。
【0055】
画像生成装置200の表示制御部292は、撮影画像のフレームのデータに必要な補正処理を施すなどして、ビデオシースルーのための表示画像を生成し、ヘッドマウントディスプレイ100に送信し表示させる(S10)。この際、プレイエリア制御部264は表示制御部292を介して、周囲を見回すようユーザに促す内容のメッセージを表示画像に重畳表示させる。これに応じてユーザが様々な方角を向き、その撮影画像がヘッドマウントディスプレイ100から送信されたら、プレイエリア制御部264は、そのフレームのデータを順次取得する(S12)。
【0056】
詳細にはまずクロップ部274が、送信された撮影画像から所定の規則で決定した領域をクロップし、プレイエリア制御部264は、クロップ後のフレームデータを順次取得する。そしてプレイエリア制御部264は、取得したフレームデータに基づいてプレイエリアを自動検出する(S14)。詳細にはプレイエリア制御部264は、フレームデータに基づいて、Visual SLAMなど公知の手法により、ユーザの周囲の空間の3次元形状を推定する。Visual SLAMの場合、この処理はマップデータの生成に対応する。
【0057】
そしてプレイエリア制御部264は、推定した3次元形状をもとに、モーションセンサ134の計測値が示す重力方向に対して垂直な平面を床面として検出する。さらにプレイエリア制御部264は、当該床面を基準としてその上にある物の3次元形状を、フレームから抽出した特徴点に対応するポイントの集合として構築していく。
【0058】
プレイエリア制御部264は、当該ポイントの集合に基づきプレイエリアの境界を決定し、その位置座標を含むプレイエリアデータを生成する。なおプレイエリア制御部264は、プレイエリア検出時、プレイエリアとしての床面の高さを導出する。床面の高さは、例えば、重力方向における床面とヘッドマウントディスプレイ100との距離であってもよい。
【0059】
プレイエリア制御部264は、プレイエリアの設定に必要な3次元空間に係るデータを全て取得できたかを確認し、取得できていなければ新たなフレームについて、S12、S14の処理を繰り返す(S16のN)。ここで必要なデータとは、プレイエリアを抜けなく設定するのに必要なデータであり、例えばユーザが向く可能性のある方向や、移動が許容される方向を網羅するマップデータである。プレイエリア制御部264は、S16の判定を、キーフレームが得られたステレオカメラ110の状態の分布を確認することにより行ってもよい。
【0060】
必要なデータが取得できたら(S16のY)、プレイエリア制御部264は、それまでに得られたマップデータやキーフレームのデータを、マップ記憶部258に格納する(S18)。続いてプレイエリア制御部264は、プレイエリアを調整するユーザ操作を受け付ける(S20)。例えばプレイエリア制御部264は、検出した床面の高さを示すデータに基づいて、床面調整画面を生成する。床面調整画面は、撮影画像取得部262により取得された撮影画像のフレームに、床面を示すオブジェクト(例えば半透明の格子状のオブジェクト)を重畳したAR画像を含んでもよい。
【0061】
プレイエリア制御部264は、表示制御部292を介して、ヘッドマウントディスプレイ100の表示パネルに床面調整画面を表示させる。プレイエリア制御部264は、床面調整画面に対し入力された、床面の高さを調整するユーザの操作を受け付け、それに応じて床面の高さを変更する。プレイエリア制御部264はまた、検出したプレイエリアのデータに基づいて、プレイエリア編集画面を生成する。プレイエリア編集画面は、撮影画像取得部262により取得された撮影画像の上にプレイエリアを示すオブジェクトを重畳したAR画像を含む。
【0062】
プレイエリア制御部264は、プレイエリア編集画面をヘッドマウントディスプレイ100の表示パネルに表示させる。プレイエリア制御部264は、プレイエリア編集画面に対し入力された、プレイエリアを編集するユーザの操作を受け付け、それに応じてプレイエリア62の形状を変更する。そしてプレイエリア制御部264は、最終的に決定したプレイエリアのデータを、プレイエリア記憶部256に格納する(S22)。プレイエリアのデータは例えば、境界面を構成する点群の座標値を含む。
【0063】
図9は、
図8のS20で表示されるプレイエリア編集画面の例を示す。プレイエリア編集画面60は、プレイエリア62と境界面64を含む。プレイエリア62は、プレイエリア(典型的には障害物のない床面)を示す画像であり、例えば半透明の格子状のオブジェクトを示す画像であってもよい。境界面64は、プレイエリア62の境界面を示す画像であり、プレイエリア62の境界においてプレイエリアに垂直に交わる面である。境界面64も、例えば半透明の格子状のオブジェクトであってよい。なおプレイエリア編集画面は実際には、図示するようなオブジェクトをビデオシースルーの画像に重畳させた画像であってもよい。
【0064】
プレイエリア制御部264は、プレイエリア編集画面に対し、境界面64を移動させたりプレイエリア62の拡張や縮小を行ったりするユーザ操作の内容を、コントローラ140などを介して取得する。そしてユーザが確定操作を行ったとき、プレイエリア制御部264は、その時点でのプレイエリアを最終的な状態としてデータを生成し、プレイエリア記憶部256に格納する。
【0065】
図示するように詳細なプレイエリアを精度よく決定するには、
図8のS12において、ユーザの周囲の実空間を網羅するような多様な視野のフレームデータを取得する必要がある。換言すれば、S12で得られるフレームデータの空間網羅性が高いほど、S18で生成されるマップデータの精度が高まる。その結果、アプリケーションの実行時に状態情報取得部276が取得する、ヘッドマウントディスプレイ100の状態情報の精度も高くなり、VR画像などの画像表現の質を高めることができる。
【0066】
一方で、十分なフレームデータが取得できるまで周囲を見回すのは、ユーザにとって負担となり得る。そこで本実施の形態においてクロップ部274は、マップの生成やプレイエリアの検出に用いるクロップ対象の領域を、撮影画像の平面において適切に切り替えることにより、効率よく必要なフレームデータが得られるようにする。
【0067】
図10は、クロップ部274による基本的な処理を説明するための図である。画像160a、160bは、ステレオカメラ110により撮影されたステレオ画像のフレーム対を模式的に示しており、ユーザがいる室内を、左視点、右視点から見た様子を表している。クロップ部274は例えば、画像160a、160bからそれぞれ、領域162a、162bをクロップする。この例は、図の右側に示すように、ステレオカメラ110を構成する2つのカメラ170a、170bの光軸172a、172bが、図の手前側に向かうユーザの視線方向と一致しない状態で搭載されていることを想定している。
【0068】
具体的には、光軸172a、172bが、互いに30°をなすように水平方向で外側を向き、双方、水平面より35°下方を向くように、ヘッドマウントディスプレイ100に搭載されているとする。一方、Visual SLAMにおいて、ステレオマッチングにより被写体表面上のポイントの位置を特定するには、光軸が平行なステレオ画像が必要となる。
【0069】
そのためクロップ部274は図示するように、元の画像160a、160bのうち、内側に寄った領域をクロップする。つまり左視点の画像160aにおいては中央より右に寄った領域162aを、右視点の画像160bにおいては中央より左に寄った領域162bをクロップする。またステレオカメラ110を魚眼レンズによる広角カメラとした場合、元の画像160a、160bは等距離射影の画像となるため、クロップ部274は、周知の変換行列により、クロップした領域162a、162bの画像を、中心射影の画像に変換する。
【0070】
ただし図示する例では、左右の画像160a、160b間でクロップする位置が異なるため、クロップ部274は、それぞれに対応する変換行列を用いる。クロップ部274はこのほか、ステレオマッチングを精度よく行うための、周知の画像補正を施してよい。以上の処理により、光軸が平行な中心射影のステレオ画像164a、164bが生成される。
【0071】
図11は、クロップ部274がクロップ対象の領域を切り替える一態様を説明するための図である。同図は横方向を時間軸とし、ステレオカメラ110による撮影画像のうち右視点の画像のフレーム列を並べて示している。すなわちT、T+1、T+2、・・・の順でフレームが撮影されクロップされる。この例でクロップ部274は、白い点線の矩形で示すように、クロップ対象の領域(例えば領域180)を、時間軸に対する所定規則で移動させる。
【0072】
すなわちクロップ部274は、あるフレームに対し、当該フレーム平面において上側、中間、下側のいずれかに位置する所定サイズの領域をクロップ対象と定める。そしてクロップ部274は時系列順のフレーム列に対し、上、中、下、中、上、中、下、・・・というように、クロップ対象の領域を縦方向で往復させる。なお図示するT、T+1、T+2、・・・のフレーム列は、ステレオカメラ110が撮影する全てのフレームを含んでいてもよいし、1フレームおき、2フレームおきなど、所定規則で間引いたフレームで構成されてもよい。
【0073】
いずれにしろ数フレームから数十フレーム分の微小時間においては、ユーザの顔の向きの変化、ひいてはフレーム列の視野の変化が限定的である。そのようなフレーム列に対しクロップ対象の領域を高速に変化させれば、各領域には異なる範囲の被写体が映っている可能性が高くなる。結果として、各フレームにおいて特徴点を抽出する領域が限定的であっても、図の右端に示したように広い範囲の領域182の情報が得られることになる。さらに、より長いスパンでユーザの顔の向きが変化することにより、周囲の空間を網羅するような情報を効率よく短時間で得ることができる。
【0074】
ここでクロップする領域を、フレーム平面における上側、中間、下側の3種類に限定しているため、画像補正に用いるパラメータを事前に計算し、各領域に対応づけておけば、運用時の計算を簡略化でき、クロップした画像を高速で補正できる。なおクロップする領域は、その位置とサイズを事前に決定しておく限り、3種類に限らず、2種類でも4種類以上でもよい。ただし、前後するフレームでクロップする領域の重複面積が大きいほど、被写体上の共通のポイントを表す対応点が増えることになり、生成するマップの精度が高くなる。
【0075】
またクロップ部274は、クロップ対象の領域を等速で移動させるのに限らず、フレーム平面での位置によってその移動速度を変化させてもよい。例えばクロップ部274は、フレーム平面のうち中央近傍など所定の領域で移動速度を低減させ、ひいては当該領域でのクロップ回数を増加させてもよい。あるいは当該領域においてクロップ対象の領域の変化の幅を狭めてもよい。後述するようにクロップ部274は、床など特定の物体が写っている可能性の高い領域を都度、特定し、当該領域においてクロップ対象の領域の移動速度を低減させてもよい。
【0076】
図では右視点のフレーム列のみを示しているが、クロップ部274は当然、左視点のフレーム列に対しても、対応する領域、すなわち縦方向で同じ位置の領域を、切り替えながらクロップする。左視点、右視点のフレームにおいてクロップする領域の水平方向の位置関係は、
図10で説明したように、ステレオカメラ110光軸の関係に依存する。
【0077】
したがって当該光軸の関係による拘束条件が許す限り、クロップ部274は、クロップする領域を水平方向にも移動させてよい。つまりクロップ部274は、クロップ対象の領域を、フレーム平面におけるどの方向に移動させてもよい。例えばクロップ部274は、クロップする領域をフレーム平面の水平方向に往復させてもよいし、斜め方向に往復させてもよい。あるいはクロップ部274は、クロップする領域をフレーム平面のラスタ順に移動させてもよい。
【0078】
クロップ部274がクロップしてなる画像の使途は、マップ生成やプレイエリアの検出に限らない。すなわち上述のとおり、状態情報取得部276がヘッドマウントディスプレイ100の状態情報を取得するのに用いてもよいし、プレイエリア制御部246が、プレイエリアのうち床面を検出するのに用いてもよい。クロップ部274は、画像の使用目的によって、異なる規則でクロップ対象の領域を切り替えてよい。
【0079】
図12は、クロップ対象の領域を切り替える態様における、クロップ部274の機能ブロックの詳細な構成を示している。クロップ部274は、領域制御部300、クロップ処理部302、補正部304、切り替えパターン記憶部306、および補正パラメータ記憶部308を備える。切り替えパターン記憶部306は、クロップすべき領域の切り替え規則に係る設定情報を、クロップした画像の使用目的と対応づけて格納する。
【0080】
マップの生成やプレイエリアの検出を目的とする場合、
図11に示したようにクロップ領域を満遍なく移動させることにより、空間を網羅する画像を効率的に取得できる。一方、床面の検出を目的とするなど、特定の物体の像を含む画像を収集したい場合、クロップ部274は、撮影時のヘッドマウントディスプレイ100の状態に基づき、像が映る可能性の高い領域を特定し、当該領域をクロップするように切り替えてもよい。あるいは、時間軸に対する規則でのクロップ領域の移動と、ヘッドマウントディスプレイ100の状態に基づく切り替えとを組み合わせてもよい。
【0081】
いずれにしろ切り替えパターン記憶部306には、クロップする領域のサイズ、移動速度、移動経路、切り替えの契機となる条件など、切り替えに必要な情報を格納しておく。領域制御部300は、画像の使用目的に応じて、クロップすべき領域の切り替え規則を切り替えパターン記憶部306から読み出し、それに従い、クロップ対象の領域をフレームごとに決定する。画像の使用目的は、プレイエリア制御部264や状態情報取得部276など、画像の要求元によって指定される。
【0082】
クロップ処理部302は、領域制御部300による制御のもと、撮影画像取得部262から取得したステレオ画像の双方から対象領域をクロップする。補正パラメータ記憶部308は、クロップされた領域の画像補正に必要なパラメータを、当該領域の位置情報と対応づけて格納する。
図11で示したように、上、中、下の3種類の位置でクロップする場合、補正パラメータ記憶部308には、それぞれの領域について補正パラメータを計算し対応づけておく。
【0083】
図11で示したように、左視点、右視点の撮影画像においてクロップすべき領域の位置が水平方向で異なる場合、補正パラメータ記憶部308には、上、中、下の3つのクロップ領域のそれぞれに、左視点用、右視点用の2種類の補正パラメータを対応づける。クロップすべき領域の数や位置が異なる場合も同様に、各領域に対し補正パラメータを対応づけておく。
【0084】
補正部304は、クロップ処理部302によってクロップされた領域に対応する補正パラメータを補正パラメータ記憶部308から読み出し、当該領域の画像を補正する。これにより
図10のステレオ画像164a、164bのような、部分的なステレオ画像のデータが生成される。補正部304は、当該データを順次、プレイエリア制御部264など画像の要求元に供給する。
【0085】
クロップした画像をマップの生成に用いる場合、上述のように特徴点が多数得られた画像はキーフレームとして保存され、以後、ヘッドマウントディスプレイ100の状態情報の取得に利用される。このためマップ記憶部258には、キーフレームが撮影されたときのヘッドマウントディスプレイ100の状態情報を、各キーフレームに対応づけておく必要がある。しかしながらクロップ前の画像を撮影したときのヘッドマウントディスプレイ100の状態は、クロップ後の画像を仮に撮影するとした場合のヘッドマウントディスプレイ100の仮想的な状態とは一致しない場合がある。
【0086】
例えばフレーム平面において上側をクロップする場合、クロップ後の画像を撮影するときのステレオカメラ110の光軸は当然、上側に移動する。結果としてヘッドマウントディスプレイ100の状態も、当該光軸の移動に合わせて変化する。したがって補正部304は、クロップ前の画像を撮影したときのヘッドマウントディスプレイ100の状態を、クロップ後の画像を撮影するとしたときのヘッドマウントディスプレイ100の仮想的な状態に変換する。
【0087】
そして補正部304は変換後の状態情報を、クロップされた画像のデータに対応づけてプレイエリア制御部264に供給する。プレイエリア制御部264は、通常と同じ処理によりキーフレームを選択し、対応する状態情報とともにマップ記憶部258に格納すればよい。なおヘッドマウントディスプレイ100の状態情報の変換に用いるパラメータは、クロップすべき領域の位置に既存するため、画像の補正パラメータとともに補正パラメータ記憶部308に格納しておく。
【0088】
図13は、クロップ対象の領域を切り替える契機を、ヘッドマウントディスプレイ100の姿勢によって決定する態様を説明するための図である。プレイエリア制御部264がプレイエリアを設定する場合、まず床の面を検出し、それを基準に周囲の物の面を検出する。このためヘッドマウントディスプレイ100の様々な状態に対し、床面が映っている撮影画像を収集することが、プレイエリアの設定処理の効率化につながる。
【0089】
固定されている床の特性上、ヘッドマウントディスプレイ100(ステレオカメラ110)、ひいてはユーザの頭部の姿勢に対し、撮影画像中、床が映る領域はおよそ特定される。図ではユーザの視線方向のピッチ角θを縦軸とし、3つの状態におけるステレオカメラ110の縦方向の視野を扇型で示している。ユーザ190aのように、視野に天井が入るような上向きの状態では、床192aは撮影画像の下側に映る可能性が高い。
【0090】
ユーザ190bのように正面を向いている状態では、床192bは撮影画像の中間部分に映る可能性が高い。ユーザ190cのように、視野に自分自身の身体が入るような下向きの状態では、床192cは撮影画像の上側に映る可能性が高い。したがってクロップ部274は、ヘッドマウントディスプレイ100の姿勢におけるピッチ角にしきい値を設定し、処理対象のフレームを撮影した際のヘッドマウントディスプレイ100のピッチ角に応じて、クロップする領域を切り替える。この態様においてクロップ部274は、モーションセンサ134による計測値をヘッドマウントディスプレイ100から逐次取得し、ヘッドマウントディスプレイ100の姿勢を特定する。
【0091】
図の例では、ピッチ角θに±30°のしきい値を設け、視野を示す扇形のうち網掛けで示した3通りの画角で、クロップする領域を切り替えている。すなわち30°≦θのとき、撮影画像のうち下端を含む所定領域194aをクロップする。-30°≦θ<30°のとき、撮影画像のうち中央を含む所定領域194bをクロップする。θ<-30°のとき、撮影画像のうち上端を含む所定領域194cをクロップする。このような切り替え規則により、プレイエリア制御部264は、床の像を効率よく収集し、プレイエリアにおける床面検出を短時間で行える。
【0092】
なお図の例は、
図10に示したように、光軸がヘッドマウントディスプレイ100のやや下向きになるようにステレオカメラ110が設けられていることを想定して、クロップ対象の領域を定めている。つまり、ユーザ190cのように下向きの状態ではユーザ自身の身体が映りやすく、ユーザ190bのように正面向きの状態では撮影画像の中央に床が映りやすい特性を踏まえている。このように、ヘッドマウントディスプレイ100におけるステレオカメラ110の取り付け方も考慮し、ピッチ角θに与えるしきい値や、各状態においてクロップすべき領域を設定する。またしきい値によって分けられる状態の数も限定されない。
【0093】
また各状態におけるクロップすべき領域は、立位や座位などユーザの姿勢によっても変化させてよい。クロップ部274は、実行中のアプリケーションの内容や、その段階で検出されている床面の高さの推定値などに基づき、ユーザの姿勢を特定し、それに基づきクロップ対象の領域を決定してもよい。
【0094】
図示する例で、ヘッドマウントディスプレイ100のピッチ角θが±30°のどちらかの近傍で揺れ動くと、クロップすべき領域が高頻度に切り替わり、補正処理などにレイテンシを生む恐れがある。そのためクロップ部274は、ピッチ角θの変化の方向、すなわち増加方向か減少方向かによってしきい値を異ならせ、そのようなチャタリングを防止してもよい。
【0095】
図の例では床の像を収集することを想定したが、実空間に固定され、撮影画像における像の位置が、ヘッドマウントディスプレイ100の姿勢に対しおよそ定まる対象であれば、床に限らず同様の手法で像を収集できる。したがって、像を収集する対象物や、収集した画像を用いて行う情報処理の内容は特に限定されない。また
図11で示したように時間軸に対し所定規則でクロップ領域を移動させる前提で、ヘッドマウントディスプレイ100の姿勢を加味してクロップ領域を決定してもよい。
【0096】
例えばクロップ部274は、
図11で示したように等速でクロップ領域を変化させるのではなく、特定の対象が映る可能性の高い領域をクロップする回数を増やし、それ以外の領域をクロップする回数を減らしてもよい。すなわちクロップ部274は、画像平面における領域の位置によって移動速度を増減させ、ひいてはクロップする回数に重みをつけてもよい。当該重みは、ヘッドマウントディスプレイ100の姿勢に応じて変化させてもよい。
【0097】
以上述べた本実施の形態によれば、ヘッドマウントディスプレイが備えるステレオカメラによる撮影画像を、ビデオシースルーやARなどの目的で表示に用いるほか、画像解析にも利用する。この際、解析内容や目的に応じて設定された規則に従い、最適な領域をクロップして用いる。これにより、ステレオカメラの画角を広くしても、効率を落とすことなく解析を行える。
【0098】
さらにクロップする領域は、所定の規則によりフレーム間で切り替える。例えばクロップする領域を数通り準備し、クロップする領域を周期的に切り替える。これにより、一度の解析に用いる領域が小さい範囲でも、時間方向の情報蓄積により、広い視野範囲の解析を行える。結果として、ユーザの周囲の空間を網羅するような実物体の情報が効率よく得られ、マップの生成やプレイエリアの検出に係るユーザの負担を減らすことができる。
【0099】
またヘッドマウントディスプレイの姿勢に係る数通りの状態を準備し、実際の姿勢に基づきクロップする領域を切り替える。これにより、床など解析に重要となる物体の像を効率よく収集できる。これらの切り替えにおいて、クロップする領域に対応する画像の補正パラメータをあらかじめ準備しておくことにより、クロップしてなる画像を短時間で補正し、後段の処理に渡すことができる。そのため、クロップ領域の高速切り替えも可能になり、必要な情報をより短時間で取得できる。
【0100】
以上のような構成により、各種情報の取得に、専用のセンサを設ける必要がなくなるため、簡易な構成のヘッドマウントディスプレイでも、質の高い画像表現を実現できる。同時に、重量や消費電力の増加に伴うヘッドマウントディスプレイの装着感の悪化を回避できる。
【0101】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【0102】
10 画像表示システム、 100 ヘッドマウントディスプレイ、 200 画像生成装置、 256 プレイエリア記憶部、 258 マップ記憶部、 262 撮影画像取得部、 264 プレイエリア制御部、 274 クロップ部、 276 状態情報取得部、 292 表示制御部、 300 領域制御部、 302 クロップ処理部、 304 補正部、 切り替えパターン記憶部306、 補正パラメータ記憶部308。