IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ソニー・コンピュータエンタテインメントの特許一覧

<>
  • 特開-情報処理装置および情報処理方法 図1
  • 特開-情報処理装置および情報処理方法 図2
  • 特開-情報処理装置および情報処理方法 図3
  • 特開-情報処理装置および情報処理方法 図4
  • 特開-情報処理装置および情報処理方法 図5
  • 特開-情報処理装置および情報処理方法 図6
  • 特開-情報処理装置および情報処理方法 図7
  • 特開-情報処理装置および情報処理方法 図8
  • 特開-情報処理装置および情報処理方法 図9
  • 特開-情報処理装置および情報処理方法 図10
  • 特開-情報処理装置および情報処理方法 図11
  • 特開-情報処理装置および情報処理方法 図12
  • 特開-情報処理装置および情報処理方法 図13
  • 特開-情報処理装置および情報処理方法 図14
  • 特開-情報処理装置および情報処理方法 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024030465
(43)【公開日】2024-03-07
(54)【発明の名称】情報処理装置および情報処理方法
(51)【国際特許分類】
   G06T 7/579 20170101AFI20240229BHJP
   G06T 7/70 20170101ALI20240229BHJP
   A63F 13/213 20140101ALI20240229BHJP
   A63F 13/25 20140101ALI20240229BHJP
   A63F 13/65 20140101ALI20240229BHJP
   H04N 5/66 20060101ALI20240229BHJP
   G06F 3/01 20060101ALN20240229BHJP
【FI】
G06T7/579
G06T7/70 Z
A63F13/213
A63F13/25
A63F13/65
H04N5/66 Z
G06F3/01 510
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022133390
(22)【出願日】2022-08-24
(71)【出願人】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(74)【代理人】
【識別番号】100109047
【弁理士】
【氏名又は名称】村田 雄祐
(74)【代理人】
【識別番号】100109081
【弁理士】
【氏名又は名称】三木 友由
(74)【代理人】
【識別番号】100134256
【弁理士】
【氏名又は名称】青木 武司
(72)【発明者】
【氏名】鶴 大輔
(72)【発明者】
【氏名】土江 竜雄
(72)【発明者】
【氏名】岡本 寛史
【テーマコード(参考)】
5C058
5E555
5L096
【Fターム(参考)】
5C058AA18
5C058BA31
5C058BA35
5C058BB25
5E555AA64
5E555BA38
5E555BB38
5E555BC08
5E555BE17
5E555CA42
5E555CB45
5E555DA08
5E555DD05
5E555EA22
5E555FA00
5L096AA09
5L096CA05
5L096EA12
5L096FA02
5L096FA35
5L096JA03
(57)【要約】
【課題】撮影画像を用いて実世界の情報を安定した精度で取得する。
【解決手段】情報処理装置のプレイエリア制御部264は、ヘッドマウントディスプレイのステレオカメラが撮影するフレームデータと撮影パラメータを取得する。照度推定部298は、撮影パラメータに基づき照度を推定する。ポイント生成部300は、ステレオ画像の対応点に基づく実物体表面のポイント生成において、照度に応じてフィルタ強度を切り替える。プレイエリア設定部304は、床面の検出に用いるしきい値、およびプレイエリアの輪郭導出規則を、照度に応じて切り替える。
【選択図】図8
【特許請求の範囲】
【請求項1】
ヘッドマウントディスプレイが搭載するカメラによる撮影画像と、当該カメラによって、照度に応じて調整される撮影パラメータを取得する撮影画像取得部と、
前記撮影パラメータに基づき推定される照度に応じて、解析条件を変化させて前記撮影画像を解析し実物体の3次元情報を取得することにより、ユーザが移動可能な範囲を規定するプレイエリアを検出するプレイエリア制御部と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記プレイエリア制御部は、前記撮影画像を構成するステレオ画像に対しブロックマッチングを実施することにより対応点を抽出し、当該対応点の妥当性を判定するフィルタの強度を、前記撮影パラメータに応じて変化させることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記プレイエリア制御部は、前記フィルタの強度として、前記ブロックマッチングによって得られる類似度の傾向を参照する範囲、および参照する画素の間隔を変化させることを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記プレイエリア制御部は、前記撮影画像における特徴点に対応する、3次元空間におけるポイントの分布に基づき、床面候補を検出する条件を、前記撮影パラメータに応じて変化させることを特徴とする請求項1または2に記載の情報処理装置。
【請求項5】
前記プレイエリア制御部は前記検出する条件として、重力方向における前記ポイントの数のヒストグラムに与えるしきい値を、前記撮影パラメータに応じて変化させることを特徴とする請求項4に記載の情報処理装置。
【請求項6】
前記プレイエリア制御部は、前記撮影画像における特徴点に対応する、3次元空間における床面上のポイントの分布から、前記プレイエリアの輪郭を導出する規則を、前記撮影パラメータに応じて切り替えることを特徴とする請求項1または2に記載の情報処理装置。
【請求項7】
前記プレイエリア制御部は前記導出する規則として、アルファシェイプ法におけるαの値を、前記撮影パラメータに応じて変化させることを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記撮影画像取得部は、露光時間、アナログゲイン、およびデジタルゲインの少なくともいずれかを、前記撮影パラメータとして取得することを特徴とする請求項1から3のいずれかに記載の情報処理装置。
【請求項9】
ヘッドマウントディスプレイが搭載するカメラによる撮影画像と、当該カメラによって、照度に応じて調整される撮影パラメータを取得するステップと、
前記撮影パラメータに基づき推定される照度に応じて、解析条件を変化させて前記撮影画像を解析し実物体の3次元情報を取得することにより、ユーザが移動可能な範囲を規定するプレイエリアを検出するステップと、
を含むことを特徴とする情報処理方法。
【請求項10】
ヘッドマウントディスプレイが搭載するカメラによる撮影画像と、当該カメラによって、照度に応じて調整される撮影パラメータを取得する機能と、
前記撮影パラメータに基づき推定される照度に応じて、解析条件を変化させて前記撮影画像を解析し実物体の3次元情報を取得することにより、ユーザが移動可能な範囲を規定するプレイエリアを検出する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮影画像を用いて実世界の状態情報を取得する情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
ヘッドマウントディスプレイを装着したユーザが対象空間を自由な視点から鑑賞できる画像表示システムが普及している。例えば仮想3次元空間を表示対象とし、ユーザの視線方向に応じた画像がヘッドマウントディスプレイに表示されるようにすることで仮想現実(VR:Virtual Reality)を実現する電子コンテンツが知られている。ヘッドマウントディスプレイを利用することで、映像への没入感を高めたり、ゲーム等のアプリケーションの操作性を向上させたりすることもできる。また、ヘッドマウントディスプレイを装着したユーザが物理的に移動することで、映像として表示された空間内を仮想的に歩き回ることのできるウォークスルーシステムも開発されている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
上記のような技術において、高品質なユーザ体験を実現するには、ユーザの位置や姿勢、周囲にある家具や壁との位置関係など、実物体の状態を常時、正確に把握しつづけることが求められる。一方、取得すべき情報が多いほど、また情報の精度を向上させようとするほど、センサなど必要な装備が増え、製造コスト、重量、消費電力などの面で問題となる。そこで表示にも利用可能な撮影画像を解析し、実物体の状態を取得することが考えられるが、同じ実物体でも撮影状況や環境によって像の見かけに差が生じ、情報の取得精度が安定しなかったり、場合によっては情報取得に失敗したりする問題がある。
【0004】
本発明はこうした課題に鑑みてなされたものであり、その目的は、撮影画像を用いて実世界の情報を安定した精度で取得できる技術を提供することにある。
【課題を解決するための手段】
【0005】
上記課題を解決するために、本発明のある態様は情報処理装置に関する。この情報処理装置は、ヘッドマウントディスプレイが搭載するカメラによる撮影画像と、当該カメラによって、照度に応じて調整される撮影パラメータを取得する撮影画像取得部と、撮影パラメータに基づき推定される照度に応じて、解析条件を変化させて撮影画像を解析し実物体の3次元情報を取得することにより、ユーザが移動可能な範囲を規定するプレイエリアを検出するプレイエリア制御部と、を備えることを特徴とする。
【0006】
本発明の別の態様は情報処理方法に関する。この情報処理方法は、ヘッドマウントディスプレイが搭載するカメラによる撮影画像と、当該カメラによって、照度に応じて調整される撮影パラメータを取得するステップと、撮影パラメータに基づき推定される照度に応じて、解析条件を変化させて撮影画像を解析し実物体の3次元情報を取得することにより、ユーザが移動可能な範囲を規定するプレイエリアを検出するステップと、を含むことを特徴とする。
【0007】
なお、以上の構成要素の任意の組合せ、本発明の表現をシステム、コンピュータプログラム、コンピュータプログラムを読み取り可能に記録した記録媒体、データ構造などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0008】
本発明によれば、撮影画像を用いて実世界の情報を安定した精度で取得できる。
【図面の簡単な説明】
【0009】
図1】本実施の形態におけるヘッドマウントディスプレイの外観例を示す図である。
図2】本実施の形態における画像表示システムの構成例を示す図である。
図3】本実施の形態において画像生成装置がヘッドマウントディスプレイに表示させる画像世界の例を説明するための図である。
図4】Visual SLAMの原理を概説するための図である。
図5】本実施の形態における画像生成装置の内部回路構成を示す図である。
図6】本実施の形態におけるヘッドマウントディスプレイの内部回路構成を示す図である。
図7】本実施の形態における画像生成装置の機能ブロックを示すブロック図である。
図8】本実施の形態におけるプレイエリア制御部の機能ブロックの詳細な構成を示す図である。
図9】本実施の形態のプレイエリア設定部が表示させるプレイエリアの画像を例示する図である。
図10】本実施の形態においてポイント生成部がポイント情報を生成する処理を説明するための図である。
図11】本実施の形態のポイント生成部がブロックマッチングの結果の妥当性を判定する手法を説明するための図である。
図12】本実施の形態におけるポイント生成部が生成するポイントの情報を例示する図である。
図13】本実施の形態においてプレイエリア設定部が床面を検出する手法を説明するための図である。
図14】本実施の形態においてプレイエリア設定部がプレイエリアに該当する床面のデータを生成する手法を説明するための図である。
図15】本実施の形態において解析条件記憶部に格納されるデータの構造例を示す図である。
【発明を実施するための形態】
【0010】
本実施の形態は、ユーザの頭部に装着されたヘッドマウントディスプレイに画像を表示する画像表示システムに関する。図1は、ヘッドマウントディスプレイ100の外観例を示す。この例でヘッドマウントディスプレイ100は、出力機構部102および装着機構部104で構成される。装着機構部104は、ユーザが被ることにより頭部を一周し装置の固定を実現する装着バンド106を含む。
【0011】
出力機構部102は、ヘッドマウントディスプレイ100をユーザが装着した状態において左右の目を覆うような形状の筐体108を含み、内部には装着時に目に正対するように表示パネルを備える。筐体108内部にはさらに、ヘッドマウントディスプレイ100の装着時に表示パネルとユーザの目との間に位置し、ユーザの視野角を拡大する接眼レンズを備えてよい。
【0012】
ヘッドマウントディスプレイ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の位置や姿勢を高精度に制御することが求められる。またヘッドマウントディスプレイ100を光不透過型とした場合、ユーザ12には実空間における周囲の状況が見えないため、衝突や躓きなどの危険を回避する手段を設ける必要がある。本実施の形態では、ステレオカメラ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】
この関係を利用し、複数のフレームにおける対応点を抽出して連立方程式を解くことにより、その間のカメラ22の位置と姿勢の変化を特定できる。また導出結果の誤差を再帰的計算で最小化する処理により、ポイント24など、実空間26における被写体表面の3次元情報を正確に構築できる。なおカメラ22をステレオカメラ110とすると、ポイント24等の3次元位置座標は、各時刻で独立に求められるため、演算がより容易になる。以後の説明でポイント24等の「ポイント」は、撮影画像上の特徴点が表す、実空間での点を指す。
【0024】
本実施の形態の画像表示システム10ではこのように、ステレオカメラ110による撮影画像に表れる特徴点に基づき、ユーザの周囲にある実物体の3次元の構造を把握するとともに、ヘッドマウントディスプレイ100の位置や姿勢を追跡する。これらの情報を撮影画像から得る場合、特徴点の抽出精度、ひいては最終的に取得したい情報の精度が、撮影環境に大きく依存する。例えば暗所では当然、イメージセンサに入射する光量が少なくなるが、ステレオカメラ110が露出やゲインを調整することにより、シースルーモードなどで表示される画像は、視認上では大きな問題となりにくい。
【0025】
一方、特徴点を抽出し実物体の情報を得る目的では、暗所での撮影画像に含まれるノイズ成分が、情報に大きな影響を及ぼし得る。つまり増幅されたノイズが特徴点として抽出される結果、それに対応する偽のポイントが3次元情報に多く含まれ、場合によっては本来存在しない面が存在するような情報が生成され得る。ノイズ軽減のための画像補正をすると、本来の特徴点も失われ、面が検出されづらくなる。またノイズ対策のアルゴリズムやフィルタを一律に適用すると、明所での撮影画像において、本来正しく得られているはずの像が詳細度を失い、やはり面の検出精度が悪化することにもなり得る。
【0026】
そこで本実施の形態では、ステレオカメラ110による自動補正の機能を利用して撮影環境の照度を推定し、それに基づき画像解析に導入される各種条件を変化させる。具体的には画像表示システム10は、露光時間、アナログゲイン、デジタルゲインなど、直接的または間接的に、周囲の明るさ(照度)に応じて調整される撮影パラメータを参照し、それに基づき、照度の実情を取得する。そしてその範囲での撮影画像において、着目する実物体の情報の精度が高くなるように、画像解析の条件を決定する。
【0027】
画像解析による情報の取得目的は限定されないが、以後では主に、プレイエリアの設定処理を例に説明する。プレイエリアは、ヘッドマウントディスプレイ100を装着したユーザがアプリケーションのプレイ中に移動可能な実世界の範囲である。VRゲームなどのアプリケーションの実行中に、ユーザがプレイエリアを逸脱しようとする場合や逸脱した場合、画像表示システム10は、注意を促す内容、または、プレイエリアへの復帰を促す内容の警告をユーザに提示する。
【0028】
これによりユーザは、周囲の実空間が見えない状況にあっても、安全にアプリケーションを楽しめる。プレイエリアの設定においては、基準となる床面の検出が重要となる。そこで本実施の形態では、撮影パラメータに基づく内容で画像解析を行うことにより、照度によらず安定的に床面を検出し、ひいてはプレイエリアを正確に設定する。ただし着目する対象を床に限る趣旨ではなく、状況に応じて様々な実物体に同様に適用可能である。
【0029】
図5は、画像生成装置200の内部回路構成を示す。画像生成装置200は、CPU(Central Processing Unit)222、GPU(Graphics Processing Unit)224、メインメモリ226を含む。これらの各部は、バス230を介して相互に接続される。バス230にはさらに入出力インターフェース228が接続される。入出力インターフェース228には、通信部232、記憶部234、出力部236、入力部238、記録媒体駆動部240が接続される。
【0030】
通信部232は、USBやIEEE1394などの周辺機器インターフェースや、有線LANまたは無線LAN等のネットワークインターフェースを含む。記憶部234は、ハードディスクドライブや不揮発性メモリ等を含む。出力部236は、ヘッドマウントディスプレイ100へのデータを出力する。入力部238は、ヘッドマウントディスプレイ100からのデータ入力を受け付け、また、コントローラ140からのデータ入力を受け付ける。記録媒体駆動部240は、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する。
【0031】
CPU222は、記憶部234に記憶されているオペレーティングシステムを実行することにより画像生成装置200の全体を制御する。また、CPU222は、記憶部234またはリムーバブル記録媒体から読み出されてメインメモリ226にロードされた、あるいは通信部232を介してダウンロードされた各種プログラム(例えばVRゲームアプリケーション等)を実行する。GPU224は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、CPU222からの描画命令にしたがって描画処理を行い、描画結果を出力部236に出力する。メインメモリ226は、RAM(Random Access Memory)により構成され、処理に必要なプログラムやデータを記憶する。
【0032】
図6は、ヘッドマウントディスプレイ100の内部回路構成を示す。ヘッドマウントディスプレイ100は、CPU120、メインメモリ122、表示部124、音声出力部126を含む。これらの各部はバス128を介して相互に接続されている。バス128にはさらに入出力インターフェース130が接続されている。入出力インターフェース130には、無線通信のインターフェースを含む通信部132、モーションセンサ134、およびステレオカメラ110が接続される。
【0033】
CPU120は、バス128を介してヘッドマウントディスプレイ100の各部から取得した情報を処理するとともに、画像生成装置200から取得した表示画像や音声のデータを表示部124や音声出力部126に供給する。メインメモリ122は、CPU120における処理に必要なプログラムやデータを格納する。
【0034】
表示部124は、液晶パネルや有機ELパネルなどの表示パネルを含み、ヘッドマウントディスプレイ100を装着したユーザの眼前に画像を表示する。表示部124は、左右の目に対応する領域に一対のステレオ画像を表示することにより立体視を実現してもよい。表示部124はさらに、ヘッドマウントディスプレイ100装着時に表示パネルとユーザの目との間に位置し、ユーザの視野角を拡大する一対のレンズを含んでもよい。
【0035】
音声出力部126は、ヘッドマウントディスプレイ100の装着時にユーザの耳に対応する位置に設けたスピーカーやイヤホンで構成され、ユーザに音声を聞かせる。通信部132は、画像生成装置200との間でデータを送受するためのインターフェースであり、Bluetooth(登録商標)などの既知の無線通信技術により通信を実現する。モーションセンサ134はジャイロセンサおよび加速度センサを含み、ヘッドマウントディスプレイ100の角速度や加速度を取得する。
【0036】
ステレオカメラ110は、図1で示したとおり、ユーザの視点に対応する視野で周囲の実空間を左右の視点から撮影するビデオカメラの対である。ステレオカメラ110により撮像された動画像のフレームには、ユーザの視線方向(典型的にはユーザの正面)に存在する物体が映る。モーションセンサ134による計測値や、ステレオカメラ110による撮影画像のデータは、必要に応じて、通信部132を介して画像生成装置200へ送信される。
【0037】
図7は、画像生成装置の機能ブロックを示すブロック図である。なお、図7に示す画像生成装置200の機能のうち少なくとも一部は、ヘッドマウントディスプレイ100に実装されてもよいし、ネットワークを介して画像生成装置200に接続されたサーバに実装されてもよい。また画像生成装置200の機能のうち、撮影画像を用いて実物体の情報を取得する機能は、別途、情報処理装置として実現してもよい。
【0038】
また、図7に示す複数の機能ブロックは、ハードウェア的には、図5に示したCPU222、GPU224、メインメモリ226、記憶部234等の構成で実現でき、ソフトウェア的には、複数の機能ブロックの機能を実装したコンピュータプログラムにより実現できる。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【0039】
画像生成装置200は、データ処理部250とデータ記憶部252を備える。データ処理部250は、各種のデータ処理を実行する。データ処理部250は、図5に示した通信部232、出力部236、入力部238を介して、ヘッドマウントディスプレイ100およびコントローラ140とデータを送受信する。データ記憶部252は、図5で示した記憶部234などで実現され、データ処理部250により参照または更新されるデータを記憶する。
【0040】
データ記憶部252は、App記憶部254、プレイエリア記憶部256、マップ記憶部258を備える。App記憶部254は、例えばVRゲームなど画像表示を伴うアプリケーションの実行に必要な、プログラムやオブジェクトモデルのデータなどを記憶する。プレイエリア記憶部256は、プレイエリアに関するデータを記憶する。プレイエリアに関するデータは、プレイエリアの境界を構成するポイント群の位置を示すデータ(例えばワールド座標系における各ポイントの座標値)を含む。
【0041】
マップ記憶部258は、ヘッドマウントディスプレイ100、ひいてはヘッドマウントディスプレイ100を装着したユーザ頭部の位置や姿勢を取得するための登録情報を記憶する。具体的にはマップ記憶部258は、Visual SLAMで用いるキーフレームのデータと、3次元実空間における物体表面の構造を表す環境地図(以後、「マップ」と呼ぶ)のデータとを対応づけて記憶する。
【0042】
キーフレームは、Visual SLAMにおいて特徴点を抽出したフレームのうち、特徴点の数が所定値以上など、所定の基準により選択されたフレームのデータである。キーフレームを「過去のフレーム」として、現フレーム(最新フレーム)の特徴点との照合に用いることにより、ヘッドマウントディスプレイ100の位置や姿勢の追跡において時間経過とともに蓄積される誤差をキャンセルできる。
【0043】
マップデータは、ユーザがいる実空間に存在する物体の表面を構成するポイント群の、3次元位置座標の情報であり、各ポイントは、キーフレームから抽出された特徴点に対応づけられる。キーフレームのデータは、それを取得した際のステレオカメラ110の状態と対応づけられる。キーフレームに含まれるべき特徴点の個数は24個以上であってもよい。特徴点は、公知のコーナー検出法により検出されたコーナーを含んでもよく、また、輝度の勾配に基づいて検出されてもよい。
【0044】
データ処理部250は、システム部260、App実行部290、表示制御部292を備える。これら複数の機能ブロックの機能は、コンピュータプログラムに実装されてもよい。画像生成装置200のCPU222とGPU224は、上記コンピュータプログラムを記憶部234や記録媒体からメインメモリ226に読み出して実行することにより上記複数の機能ブロックの機能を発揮してもよい。
【0045】
システム部260は、ヘッドマウントディスプレイ100に関するシステムの処理を実行する。システム部260は、ヘッドマウントディスプレイ100用の複数のアプリケーション(例えばVRゲーム)に対して共通のサービスを提供する。システム部260は、撮影画像取得部262、入力情報取得部263、プレイエリア制御部264、および状態情報取得部276を含む。
【0046】
撮影画像取得部262は、ヘッドマウントディスプレイ100から送信される、ステレオカメラ110による撮像画像のフレームデータを順次取得する。この際、撮影画像取得部262は、撮影画像の各フレームのデータに対応づけて、当該フレームを撮影した際のヘッドマウントディスプレイ100の状態情報と、フレームの撮影パラメータを取得する。状態情報は、ヘッドマウントディスプレイ100のモーションセンサ134による計測値から取得される。
【0047】
撮影パラメータとは、上述のとおり、撮影環境における照度に依存してステレオカメラ110により調整されるパラメータであり、例えば露光時間、アナログゲイン、デジタルゲインの少なくともいずれかである。ただし撮影パラメータをこれらに限定する趣旨ではない。入力情報取得部263は、コントローラ140を介してユーザ操作の内容を取得する。
【0048】
プレイエリア制御部264は、撮影画像のフレームデータを用いてプレイエリアを設定したうえ、アプリケーションの実行段階において、その境界にユーザが接近した際などに適宜警告を提示する。プレイエリアの設定においてプレイエリア制御部264は、上述したVisual SLAMなどの手法によりマップデータを生成する。プレイエリア制御部264はまた、当該マップデータを用いて、家具や壁などの障害物に衝突しない床面の範囲をプレイエリアとして自動で決定する。
【0049】
プレイエリア制御部264は、一旦決定したプレイエリアの境界を表す画像を、ヘッドマウントディスプレイ100に表示させることにより、ユーザによるプレイエリアの編集操作を受け付けてもよい。この場合、プレイエリア制御部264は、コントローラ140を介したユーザ操作の内容を、入力情報取得部263を介して取得し、それに応じてプレイエリアの形状を変更する。
【0050】
プレイエリア制御部264は、決定したプレイエリアに関するデータを最終的にプレイエリア記憶部256に格納する。プレイエリア制御部264はまた、生成したマップデータと、それに付随して得られるキーフレームのデータを対応づけて、マップ記憶部258に格納し、状態情報取得部276が後の任意のタイミングで読み出せるようにする。
【0051】
状態情報取得部276は、撮影画像のフレームデータと、マップ記憶部258に格納されたデータとに基づき、Visual SLAMなどの手法により、ヘッドマウントディスプレイ100の状態、すなわち位置と姿勢の情報を各時刻で取得する。なお状態情報取得部276は、画像解析により得られた情報と、ヘッドマウントディスプレイ100が内蔵するモーションセンサ134による計測値とを統合して状態情報としてもよい。
【0052】
ヘッドマウントディスプレイ100の状態情報は、アプリケーションの実行時におけるビュースクリーンの設定や、プレイエリア境界へのユーザの接近を監視する処理、プレイエリアへの接近を警告する処理などに用いられる。したがって状態情報取得部276は、取得した状態情報を、そのときの状況に応じて、プレイエリア制御部264、App実行部290、表示制御部292に適宜供給する。なおプレイエリア制御部264と状態情報取得部276は、ステレオカメラ110による撮影画像を解析して実物体の3次元情報を得る画像解析部としての機能を有する。
【0053】
App実行部290は、ユーザにより選択されたVRゲームなどのアプリケーションのデータをApp記憶部254から読み出して実行する。この際、App実行部290は、ヘッドマウントディスプレイ100の状態情報を状態情報取得部276から逐次取得し、それに対応する位置および姿勢でビュースクリーンを設定しVR画像を描画する。これにより、ユーザ頭部の動きに応じた視野で表示対象の仮想世界を表すことができる。
【0054】
App実行部290はまた、ユーザにより選択されたアプリケーションによっては、AR画像を生成してもよい。この場合、App実行部290は、撮影画像取得部262が取得した撮影画像のフレームに、仮想オブジェクトを重畳描画する。ここでApp実行部290は、状態情報取得部276が取得した状態情報に基づき仮想オブジェクトの描画位置を決定する。これにより、撮影画像に写る被写体と対応するように、適切に仮想オブジェクトを表せる。
【0055】
表示制御部292は、App実行部290により生成された様々な画像、例えばVR画像やAR画像のフレームのデータを、ヘッドマウントディスプレイ100へ順次送信する。表示制御部292はまた、プレイエリアの設定に際し、周囲を見回すようユーザに指示を与える画像、仮に決定したプレイエリアの様子を表して編集を受け付ける画像、プレイエリアの境界への接近を警告する画像、などを必要に応じてヘッドマウントディスプレイ100へ送信する。
【0056】
例えばプレイエリアの設定時、表示制御部292は、プレイエリア制御部264からの要求に従い、撮影画像取得部262が取得した撮影画像のフレームのデータをヘッドマウントディスプレイ100へ送信し、表示させる。これにより、ユーザが向いた方向の実空間の様子をそのまま見せるビデオシースルーを実現でき、ユーザの安全性を高められる。なおビデオシースルーを実現する機会はこれに限らず、ユーザがプレイエリアを逸脱している期間、アプリケーションの開始前や終了後、ユーザがビデオシースルーを要求した場合、など様々であってよい。
【0057】
図8は、プレイエリア制御部264の機能ブロックの詳細な構成を示している。プレイエリア制御部264は、撮影画像のフレームデータを、撮影画像取得部262から順次取得する。当該フレームデータは、左視点、右視点のステレオ画像のデータである。各フレームのデータには、撮影時のヘッドマウントディスプレイ100の状態情報、および撮影パラメータが対応づけられている。プレイエリア制御部264は上述のとおり、それらのデータを継続的に取得し、解析を行うことにより、マップのデータとプレイエリアのデータを出力する。
【0058】
プレイエリア制御部264は、照度推定部298、ポイント生成部300、マップ生成部302、プレイエリア設定部304、および解析条件記憶部306を備える。照度推定部298は、撮影パラメータに基づき、ヘッドマウントディスプレイ100の周囲の照度を推定する。例えば撮影パラメータは、露光時間、アナログゲイン、デジタルゲインの値の少なくともいずれかでよい。2つ以上のパラメータを用いる場合、それらの積を撮影パラメータとしてもよい。
【0059】
照度推定部298は、フレームデータとともにヘッドマウントディスプレイ100から送信される撮影パラメータにローパスフィルタをかけ、細かい変動を抑えたうえで照度の推定に用いてもよい。いずれにしろ照度推定部298は、撮影パラメータの範囲に基づき、ヘッドマウントディスプレイ100の周囲の照度が、あらかじめ定義された区分のいずれに該当するかを特定する。上述した撮影パラメータの場合、値が大きいほど暗い環境であることが推定されるため、例えば大、中、小の範囲を設定したうえ、それぞれ暗所、中間照度、明所の3区分に対応づけておく。
【0060】
照度推定部298は、フレームデータとともに取得される撮影パラメータを用い、継続的に照度を推定してもよい。これにより、周囲の照度に変化が生じても、解析処理を適応的に変化させることができる。照度推定部298は、推定した照度の情報を、ポイント生成部300およびプレイエリア設定部304に逐次通知する。
【0061】
ポイント生成部300は、撮影画像の各フレームを構成するステレオ画像から対応点を抽出し、その視差に基づき実物体表面上のポイントの情報を生成する。ユーザが周囲を見回すように動き、その期間に撮影されたフレームから順次、対応点を抽出することにより、広い範囲に対し多数のポイント情報が生成される。
【0062】
1つのフレームから抽出される対応点が多いほど、ポイント情報の取得効率や精度が向上する。一方、偽の対応点が抽出されると、当然、ポイント情報の精度が下がる。ポイント生成部300は照度推定部298が推定した照度に基づき、真の対応点が極力多く抽出されるように、抽出条件を変化させる。
【0063】
具体的には、ポイント生成部300は、ブロックマッチングによって抽出した対応点の妥当性を判定するフィルタの強度を、照度に応じて変化させる。ここでフィルタの強度とは、ブロックマッチングによって得られる類似度の傾向を参照する範囲や参照する画素の間隔などである。より具体的な手法については後述する。
【0064】
マップ生成部302は、各フレームで得られたカメラ座標系でのポイントの位置座標を、当該フレームが撮影された際のヘッドマウントディスプレイ100の状態を踏まえて統合することにより、ワールド座標系におけるマップデータを生成する。統合には様々な手法が提案されており、そのいずれを採用してもよい。
【0065】
例えばマップ生成部302は、TSDF(Truncated Signed Distance Function)のアルゴリズムを用いマップデータを生成してもよい。当該アルゴリズムは、3次元空間をボクセルに分割し、様々な視点から得られたポイントの位置座標とボクセルとの最短距離を重みづけ平均してなる値により、実物体表面と各ボクセルとの位置関係、ひいては当該表面の位置を特定する手法である。
【0066】
プレイエリア設定部304は、マップデータに表される物体表面の位置情報に基づき、プレイエリアを検出する。すなわちプレイエリア設定部304は、ヘッドマウントディスプレイ100の状態情報に基づきワールド座標系における重力方向を特定し、それに垂直な面を床面として取得する。この際、プレイエリア設定部304は、重力方向に垂直な床面候補の抽出条件を、照度に応じて変化させる。
【0067】
さらにプレイエリア設定部304は、当該床面を基準として、壁や家具などの障害物の面を取得し、その内側の床面領域をプレイエリアとする。ポイントで構成される床面を連続した領域として定義するため、プレイエリア設定部304は、ポイント群を包含するような輪郭を求める。この際、プレイエリア設定部304は、輪郭の導出規則を、照度に応じて変化させる。
【0068】
プレイエリア設定部304は、マップデータが表す各面や、プレイエリアの境界面などについても、同様に導出規則を変化させて輪郭を導出し、連続した面としてデータを生成してもよい。プレイエリア設定部304はそのようにして決定した各面を、格子状のオブジェクトなどで可視化し、ビデオシースルーの表示画像に重畳させるなどしてユーザに確認させてもよい。上述のとおりプレイエリア設定部304は、そのように表示させた床面やプレイエリアを修正するユーザ操作を受け付けてもよい。
【0069】
プレイエリア設定部304が床面を検出したり、プレイエリアの範囲にある連続した床面の領域を導出したりする処理の精度は、ポイント生成部300が生成するポイントの数、ひいては周囲の照度の影響を受ける。例えばポイントの数が少なければ床面は検出されにくく、プレイエリアの範囲は不完全になりやすい。そのためプレイエリア設定部304は上述のとおり、照度推定部298が推定した照度に基づき、解析条件を変化させ、得られたポイントの数によらず精度が保たれるようにする。
【0070】
解析条件記憶部306は、照度推定部298が推定する照度の区分と、それに応じて選択すべき解析条件、すなわち解析に用いるパラメータの値とを対応づけたデータを格納する。ここで解析パラメータとは例えば、ポイント生成部300がポイント情報を生成する処理、プレイエリア設定部304が床面を検出する処理や、プレイエリアのデータを生成する処理などで用いられるパラメータである。ただし精度が照度の影響を受けるものであれば、適用する解析の内容や対応づけるパラメータは限定されない。
【0071】
図9は、プレイエリア設定部304が表示させるプレイエリアの画像を例示している。プレイエリア画像60は、プレイエリア部62と境界面部64を含む。プレイエリア部62は、床面上の範囲としてのプレイエリアを示す画像であり、例えば半透明の格子状のオブジェクトを示す画像であってもよい。境界面部64は、プレイエリアの境界面を示す画像であり、プレイエリアの境界においてプレイエリアに垂直に交わる面を表す。境界面部64も、例えば半透明の格子状のオブジェクトであってよい。プレイエリア設定部304は上述のとおり、図示するような画像をビデオシースルーの画像に重畳させてもよいし、それに対する修正操作をユーザより受け付けてもよい。
【0072】
図10は、ポイント生成部300がポイント情報を生成する処理を説明するための図である。ポイント生成部300は、ステレオ画像における特徴点に基づき、当該特徴点が表すポイントまでの距離を取得する。ポイントまでの距離と、画像平面での特徴点の位置座標とに基づき、当該ポイントの3次元位置座標が得られる。
【0073】
距離Zにある対象物をステレオカメラ110で撮影すると、その像はステレオ画像の平面上、水平方向に視差D=C/Zだけずれた位置に表れる。ここでCはカメラおよびそのセッティングにより定まる値であり、運用時は定数とみなせる。したがって同じ物体の像、すなわち対応点のずれを視差Dとして取得すれば、距離Zが求められる。
【0074】
視差Dを取得するため、ポイント生成部300は、ステレオ画像における特徴点についてブロックマッチングを行う。詳細にはポイント生成部300は、ステレオ画像を構成する左視点、右視点の画像400a、400bのうち、例えば左視点の画像400aに、特徴点を表す画素を中心とする所定サイズのターゲットブロック402を設定する。そしてポイント生成部300は、右視点の画像400bにおいて、ターゲットブロック402に対応するエピポーラ線404上に探索領域406を設定する。
【0075】
なお画像400a、400bをステレオ平行化しておくことにより、探索領域406はターゲットブロック402と同じ高さの水平方向に設定できる。ポイント生成部300は、ターゲットブロック402と同じサイズのブロック枠を当該探索領域406内で横方向に1画素ずつずらしながら、ブロック枠で囲まれた領域とターゲットブロック402との類似度を計算していく。その結果、下段の類似度グラフ408に示すように、探索領域406内の位置に対し、画素の粒度で類似度の変化が得られる。
【0076】
類似度は、ZNCC(Zero-mean Normalized Cross-Correlation)、SSD(Sum of Squared Difference)、SAD(Sum of Absolute Difference)、NCC(Normalized Cross-Correlation)など、周知の計算手法によって求められる。ポイント生成部300は、類似度グラフ408において最も高い類似度が得られたブロック枠における中心画素を、ターゲットブロック402の特徴点に対応する画素とし、両者の位置のずれ量を視差Dの候補値として取得する。
【0077】
続いてポイント生成部300は、そのように検出された対応点の周囲の画素を用いて、マッチング結果の妥当性を判定する。類似度グラフ408において、最高類似度がブロック枠内の像の真の類似度を表している場合、仮にブロック枠が数画素程度ずれていても、類似度はある程度保たれると考えられる。そこで周囲の画素に対し得られた類似度の平均値(例えば図における平均値ave.)を評価することにより、最高類似度が得られた画素が真の対応点である可能性を確認する。
【0078】
図11は、ポイント生成部300がブロックマッチングの結果の妥当性を判定する手法を説明するための図である。ポイント生成部300は、右視点の画像400bのうち対応点とされた画素410を中心に所定範囲の領域412を設定し、その内部の画素について得られた類似度の平均値を計算する。当該類似度の平均値が所定のしきい値より大きければ、ポイント生成部300は、画素410を対応点とするブロックマッチングの結果を妥当と判定し、視差Dに基づくポイントの情報を生成する。
【0079】
ここでポイント生成部300は、妥当性の評価に用いる領域412の範囲(以後、カーネルと呼ぶ)と、そのうち類似度をサンプリングする画素の間隔を、撮影パラメータによって切り替える。図では切り替え候補のカーネルとして、1×1画素のカーネル414a、3×3画素のカーネル414b、5×5画素のカーネル414c、414d、414eを示している。このうち黒い画素は対応点とされた画素、網掛けされた画素は類似度のサンプリング対象である。
【0080】
カーネル414aは、対応点とされた画素自体をカーネルとするため、ポイント生成部300は、最高類似度がしきい値より大きければマッチング結果を妥当とする。カーネル414b、414cを用いる場合、ポイント生成部300は、カーネルに含まれる周囲の画素を全てサンプリング対象とし、類似度の平均値をしきい値と比較する。カーネル414d、414eを用いる場合、ポイント生成部300はそれぞれ、2画素ごと(1画素おき)、4画素ごと(3画素おき)に類似度をサンプリングし、類似度の平均値をしきい値と比較する。
【0081】
定性的には、撮影画像にノイズ成分が多いほど、広い範囲の像を低解像度で確認することにより、妥当性の評価精度を高められる。そこでポイント生成部300は、撮影パラメータに基づき推定される照度が暗所に分類される場合、例えばカーネル414dあるいはカーネル414eのサイズやサンプリング間隔を採用する。推定される照度が明所に分類される場合、ポイント生成部300は例えば、カーネル414aを採用する。推定される照度がそれらの中間である場合、ポイント生成部300は例えば、カーネル414bあるいはカーネル414cを採用する。ただし図示するカーネルサイズやサンプリング間隔は一例であり、本実施の形態を限定する趣旨ではない。
【0082】
図12は、ポイント生成部300が生成するポイントの情報を例示している。上段の画像420a、420bはそれぞれ、同じ空間を明所および暗所で撮影した画像のフレームデータである。実際にはそれぞれについて、ステレオ画像が取得される。図の下段は、暗所で撮影された画像420bを用いて取得したポイントまでの距離を、画像平面における画素値として表した距離画像である。このうち(a)は、カーネルのサイズを1×1画素、類似度の平均値に与えるしきい値を0としたときの距離画像である。
【0083】
つまり(a)は、ポイント生成部300が、ブロックマッチングにおいて最大類似度が得られた画素を全て対応点と認定し、ポイントの情報を生成した結果である。この場合、ポイントが高い密度で得られるが、暗所の場合、白線で囲んだ領域(例えば領域422)のように、ノイズによって形成された偽のポイントが多く含まれることになる。これをマップに反映させると、本来は存在しない面が存在するようなデータが生成されてしまうことが起こり得る。
【0084】
(b)は、カーネルのサイズを5×5画素、サンプリング間隔を4画素、類似度の平均値に与えるしきい値を0.2としたときの距離画像である。すなわちカーネルを拡大するとともに、サンプリングの間隔を広げている。このようにすると、空間的な相関性を俯瞰して確認でき、相関性の低い対応点が除外される結果、元の画像420bに映る物体の面に近い構成でポイントの分布が得られる。
【0085】
(c)は、(b)と同様、カーネルのサイズを5×5画素、サンプリング間隔を4画素とする一方、類似度の平均値に与えるしきい値を0.73と増加させたときの距離画像である。つまり(b)と比較し、妥当性ありとする条件を厳しくしたため、真のポイントまで結果から除外される。その結果、マップに寄与する情報量が不足し、プレイエリアの検出に時間を要したり、場合によってはプレイエリアが検出できなくなったりする。
【0086】
このように、カーネルのサイズやサンプリングの間隔によって、得られるポイントの数、およびそこに含まれる偽のポイントの割合が大きく変化する。またカーネルのサイズやサンプリングの間隔によって、類似度の平均値に与えるしきい値の適正値も変化する。したがって、偽のポイントが少なく、かつ多くのポイントが得られるときのカーネルサイズ、サンプリング間隔、しきい値のセットを、事前の実験などにより照度の区分ごとに求めておく。図示する例では、暗所に対して(b)の条件を採用することにより、少ない誤差で必要十分な面を検出できる。
【0087】
図13は、プレイエリア設定部304が床面を検出する手法を説明するための図である。プレイエリア設定部304は、マップ生成部302が生成したマップから、重力方向に垂直で所定値以上の面積を有する平面、なる条件を満たす面を床面として検出する。ところが近傍にあるローテーブルやベッド、あるいは床自体の段差に起因して、当該条件を満たす平面が複数検出される場合がある。
【0088】
これを踏まえプレイエリア設定部304は、まず複数の床面候補を抽出したうえ、そのうち、ステレオカメラ110の視点に近く面積が広い平面を床面として選択する。図では高さ0m、0.7mに床面の候補となる面があり、そのうち0mが床面であるとする。図の上段は、横軸を時間経過とし、プレイエリア設定部304が各時刻で推定する床面の高さを示している。下段は、プレイエリア設定部304が床面候補を抽出するために生成する、面の高さのヒストグラムである。当該ヒストグラムの度数は、マップの3次元空間において、重力方向の軸上の位置に対するポイントの数を示している。
【0089】
時間経過に対しポイント情報の生成が進むと、それに応じてヒストグラムが成長していく。図では上段の時間経過において破線で示した時刻ta、tbで得られたヒストグラムを、それぞれの下段に示している。水平面が存在すれば、その位置に多数のポイントが表れる。したがってヒストグラムにおける極大点は、空間に存在する水平面の高さを表す。プレイエリア設定部304は、当該ヒストグラムの度数に対ししきい値を設定し、それより大きい極大点を取得することで床面候補を抽出する。
【0090】
ここで床面候補の抽出結果は、しきい値の設定に影響を受ける。すなわち(a)においては、しきい値Thが適正値より大きいため、高さ0.7mに対応する極大点430bのみが抽出される。高さ0mに対応する極大点430aがいつまでもしきい値Thを超えなければ、上段に示すように、床面の高さは時間経過に関わらず0.7mのみとなる。結果として0.7mの高さを基準にプレイエリアが設定されてしまう。
【0091】
(b)に示すようにしきい値Th’が適正であれば、極大点432a、432bの双方が取得され、高さ0mと0.7mの床面候補が抽出される。プレイエリア設定部304は、マップにおいてこれらの高さにある面の位置と面積を取得し比較することにより、上述のとおり床面を絞り込む。この例では上段に示すように、ある時刻で床面の高さが0mと推定され、0mの高さを基準にプレイエリアが設定される。
【0092】
ヒストグラムの度数は撮影画像から生成されたポイントの数に依存する。暗所で撮影された画像を用いた場合、偽のポイントを排除する条件においては、ポイント数が全体的に少なくなりやすい。そのため暗所の環境において、図示するように度数に与えるしきい値を小さくすることにより、床面候補を抜けなく抽出できるようになる。
【0093】
一方でしきい値が小さすぎると、ノイズによる偶発的な極大点をも床面候補として抽出してしまう可能性が出てくる。したがって、真の水平面のみを抜けなく抽出できるようなしきい値を、事前の実験などにより照度の区分ごとに求めておくことで、プレイエリア設定部304は、実際の照度の区分に応じてしきい値を切り替える。なお当該しきい値は、ポイント生成部300が照度に応じて決定するパラメータに依存させて設定してもよい。
【0094】
図14は、プレイエリア設定部304がプレイエリアに該当する床面のデータを生成する手法を説明するための図である。プレイエリア設定部304は、床面におけるプレイエリアの範囲を明確に決定し、格子状のオブジェクトなどにより可視化することにより、ユーザが確認したり調整したりできるようにする。ステレオ画像の対応点から得られた床面上のポイントは離散的なため、障害物に衝突しない範囲にあるポイントに基づき、連続した領域をプレイエリアとして決定する必要がある。
【0095】
そこでプレイエリア設定部304は例えば、アルファシェイプ法を用いてプレイエリアの領域を決定する。アルファシェイプ法は、1/αを半径とする円を準備し、点群のうち2つの点を周に含み、他の点を内側に含まない円があるとき、当該2つの点を結ぶ線を点群の輪郭とする手法である(例えばH. Edelsbrunner、外2名、「On the shape of a set of points in the plane」、 IEEE Transactions on Information Theory、1983年7月、29(4)p.551-559参照)。
【0096】
図は、小矩形で表される、床面上のポイント分布に対し、アルファシェイプ法により生成される領域(グレーの領域)を、α=0.20、0.33、0.50の場合で比較している。αの値が小さいほど、輪郭を定める円のサイズが大きくなり、粗い粒度での処理となる結果、より広く、穴の少ない領域が生成される傾向となる。図の例ではα=0.20の場合と比較し、α=0.33、0.50と値が大きくなるにつれ、生成される領域が小さくなり、穴が発生したり分離したりする。
【0097】
一方で、元々のポイントの数が少なければ当然、生成される領域が過度に狭まったり、穴や分離が発生しやすくなったりする。暗所で撮影された画像を用いた場合、偽のポイントを排除する条件においては、ポイント数が全体的に少なくなりやすい。そのためプレイエリア設定部304は、暗所の環境において、αの値を小さくすることにより穴や分離の発生を抑え、適切な連続領域が生成されるようにする。
【0098】
一方、明所の環境においてプレイエリア設定部304は、αの値を大きくすることにより、領域が過度に広がらないようにする。照度の区分に対するαの適正値も、事前の実験などにより求めておき、プレイエリア設定部304は、実際の照度の区分に応じてαの値を切り替える。なお当該適正値は、ポイント生成部300が照度に応じて決定するパラメータ、および、プレイエリア設定部304がヒストグラムの度数に与えるしきい値の少なくともいずれかに依存させて設定してもよい。
【0099】
図15は、解析条件記憶部306に格納されるデータの構造例を示している。解析条件テーブル440は、照度の区分に係る定義442と、各区分における解析条件444、446、448とを対応づけている。照度の区分に係る定義442において、図の例では、照度Iが200lx(ルクス)以上を明所、10lx未満を暗所、その間を中間照度と定義している。照度の範囲は実際には、撮影パラメータCを指標として推定される。
【0100】
上述のとおり撮影パラメータCを、露光時間、アナログゲイン、デジタルゲインのいずれか、またはそれらの積などとした場合、暗い環境ほどCの値が大きくなる。したがって図の例では、2つのしきい値C1、C2(ただしC1<C2)を導入し、C<C1のときを明所、C1≦C<C2のときを中間照度、C2≦Cのときを暗所としている。しきい値C1、C2は実際には、照度区分の境界での撮影パラメータを実験により事前に求めておく。なお照度の区分に係る定義442は、照度推定部298の内部で保持してもよい。
【0101】
ポイント生成部300がポイントの情報を生成する際の解析条件444として、カーネルサイズ、サンプリング間隔、および、類似度の平均に与えるしきい値を格納する。上述のとおり明所、中間照度、暗所の順で、カーネルサイズとサンプリング間隔に大、中、小の値を設定する。実際にはそれぞれの照度の区分に対し最適値を実験により求めておく。類似度の平均に与えるしきい値は、カーネルサイズやサンプリング間隔の設定に応じて、高い精度が得られる値を調整値として求めておく。
【0102】
プレイエリア設定部304が床面を検出する際の解析条件446として、ヒストグラムの極大点を取得するためのしきい値を格納する。当該しきい値として、上述のとおり明所、中間照度、暗所の順で、大、中、小の値を設定する。実際にはそれぞれの照度の区分に対し最適値を実験により求めておく。プレイエリア設定部304がプレイエリアの領域のデータを生成する際の解析条件448として、アルファシェイプ法におけるαの値を格納する。当該値として、上述のとおり明所、中間照度、暗所の順で、大、中、小の値を設定する。実際にはそれぞれの照度の区分に対し最適値を実験により求めておく。
【0103】
ただし図示する解析条件テーブル440は一例であり、照度の区分や制御するパラメータは限定されない。例えば照度の区分は2種類でも4種類以上でもよいし、境界とする照度の数値も限定されない。あるいは照度の区分を無段階とし、撮影パラメータの値に応じて各種パラメータを連続的に変化させてもよい。またポイント情報の生成、床検出、プレイエリアの領域生成に用いるアルゴリズムは上述したものに限らず、制御対象のパラメータもアルゴリズムに応じて適宜選択してよい。
【0104】
以上述べた本実施の形態によれば、ヘッドマウントディスプレイが備えるステレオカメラによる撮影画像を、ビデオシースルーやARなどの目的で表示に用いるほか、画像解析にも利用する。この際、フレームデータとともに得られる撮影パラメータを利用して周囲の照度を推定し、それに応じて解析に用いる各種パラメータの値を切り替える。例えば暗所で得られたステレオ画像の対応点から実物体表面上のポイントを生成する処理において、ノイズによる偽のポイントを排除しつつ真のポイントが失われにくいパラメータを選択する。
【0105】
また床面候補と認定するポイント数のしきい値や、ポイントの分布からプレイエリアの領域を決定する際に用いるパラメータなどを適切に調整する。これにより、照度に影響されて撮影画像から得られるポイントの数が変動しても、最終的に得られる情報の精度を安定させることができ、解析の効率も向上する。このように撮影画像の解析における頑健性を高めることにより、別途センサを設けることなく簡易な構成で、安全かつ高品質のユーザ体験を提供できる。
【0106】
以上のような構成により、各種情報の取得に、専用のセンサを設ける必要がなくなるため、簡易な構成のヘッドマウントディスプレイでも、質の高い画像表現を実現できる。同時に、重量や消費電力の増加に伴うヘッドマウントディスプレイの装着感の悪化を回避できる。
【0107】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【0108】
10 画像表示システム、 100 ヘッドマウントディスプレイ、 200 画像生成装置、 222 CPU、 226 メインメモリ、 256 プレイエリア記憶部、 258 マップ記憶部、 262 撮影画像取得部、 264 プレイエリア制御部、 276 状態情報取得部、 292 表示制御部、 298 照度推定部、 300 ポイント生成部、 302 マップ生成部、 304 プレイエリア設定部、 306 解析条件記憶部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15