JP2023114237A - 情報処理装置および情報処理方法 - Google Patents
情報処理装置および情報処理方法 Download PDFInfo
- Publication number
- JP2023114237A JP2023114237A JP2022016494A JP2022016494A JP2023114237A JP 2023114237 A JP2023114237 A JP 2023114237A JP 2022016494 A JP2022016494 A JP 2022016494A JP 2022016494 A JP2022016494 A JP 2022016494A JP 2023114237 A JP2023114237 A JP 2023114237A
- Authority
- JP
- Japan
- Prior art keywords
- image
- mounted display
- head
- display
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000010365 information processing Effects 0.000 title claims description 21
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000012545 processing Methods 0.000 claims description 30
- 230000033001 locomotion Effects 0.000 claims description 17
- 238000010191 image analysis Methods 0.000 claims description 13
- 238000004458 analytical method Methods 0.000 claims description 9
- 230000003287 optical effect Effects 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 6
- 230000005484 gravity Effects 0.000 claims description 4
- 238000005520 cutting process Methods 0.000 claims description 3
- 238000000034 method Methods 0.000 abstract description 17
- 230000008569 process Effects 0.000 abstract description 9
- 238000003860 storage Methods 0.000 description 28
- 238000004891 communication Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 15
- 230000000007 visual effect Effects 0.000 description 15
- 210000003128 head Anatomy 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000001514 detection method Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 210000005069 ears Anatomy 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 210000000887 face Anatomy 0.000 description 2
- 238000007654 immersion Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/37—Details of the operation on graphic patterns
- G09G5/377—Details of the operation on graphic patterns for mixing or overlaying two or more graphic patterns
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/204—Image signal generators using stereoscopic image cameras
- H04N13/239—Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/332—Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
- H04N13/344—Displays for viewing with the aid of special glasses or head-mounted displays [HMD] with head-mounted left-right displays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/361—Reproducing mixed stereoscopic images; Reproducing mixed monoscopic and stereoscopic images, e.g. a stereoscopic image overlay window on a monoscopic image background
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/366—Image reproducers using viewer tracking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Human Computer Interaction (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
- Studio Devices (AREA)
- Controls And Circuits For Display Device (AREA)
- User Interface Of Digital Computer (AREA)
- Image Analysis (AREA)
- Processing Or Creating Images (AREA)
Abstract
【課題】ヘッドマウントディスプレイによる画像表示を伴うコンテンツを、シンプルな装置構成でも精度よく処理する。
【解決手段】画像生成装置は、ヘッドマウントディスプレイのステレオカメラが撮影する動画像のフレーム150を順次取得し、ビデオシースルーなどに用いる表示用の画像154を生成する。画像生成装置のクロップ部は、床面が写る領域152bをクロップし、ユーザが移動可能なプレイエリアの設定用の画像156とする。クロップ部はまた、ヘッドマウントディスプレイの正面が写る所定サイズの領域152cをクロップし、ヘッドマウントディスプレイの状態情報取得用の画像158とする。
【選択図】図8
【解決手段】画像生成装置は、ヘッドマウントディスプレイのステレオカメラが撮影する動画像のフレーム150を順次取得し、ビデオシースルーなどに用いる表示用の画像154を生成する。画像生成装置のクロップ部は、床面が写る領域152bをクロップし、ユーザが移動可能なプレイエリアの設定用の画像156とする。クロップ部はまた、ヘッドマウントディスプレイの正面が写る所定サイズの領域152cをクロップし、ヘッドマウントディスプレイの状態情報取得用の画像158とする。
【選択図】図8
Description
本発明は、ヘッドマウントディスプレイによる画像表現を実現する情報処理装置および情報処理方法に関する。
ヘッドマウントディスプレイを装着したユーザが対象空間を自由な視点から鑑賞できる画像表示システムが普及している。例えば仮想3次元空間を表示対象とし、ユーザの視線方向に応じた画像がヘッドマウントディスプレイに表示されるようにすることで仮想現実(VR:Virtual Reality)を実現する電子コンテンツが知られている。ヘッドマウントディスプレイを利用することで、映像への没入感を高めたり、ゲーム等のアプリケーションの操作性を向上させたりすることもできる。また、ヘッドマウントディスプレイを装着したユーザが物理的に移動することで、映像として表示された空間内を仮想的に歩き回ることのできるウォークスルーシステムも開発されている。
ヘッドマウントディスプレイを用いて高品質なユーザ体験を実現するには、ユーザの位置や姿勢、周囲にある家具や壁との位置関係など、実物体の状態を常時、正確に把握しつづけることが求められる。一方、取得すべき情報が多いほど、また情報の精度を向上させようとするほど、センサなど必要な装備が増え、製造コスト、重量、消費電力などの面で問題となる。
本発明はこうした課題に鑑みてなされたものであり、その目的は、ヘッドマウントディスプレイによる画像表示を伴うコンテンツを、シンプルな装置構成でも精度よく処理できる技術を提供することにある。
上記課題を解決するために、本発明のある態様は情報処理装置に関する。この情報処理装置は、ヘッドマウントディスプレイが搭載するカメラにより撮影中の動画像を表示画像として当該ヘッドマウントディスプレイに表示させる表示制御部と、動画像のフレームから、所定規則に従い一部の領域を切り出すクロップ部と、一部の領域の画像を解析し、動画像と異なる画像をヘッドマウントディスプレイに表示させる際に必要なデータを取得する画像解析部と、を備えたことを特徴とする。
本発明の別の態様は情報処理方法に関する。この情報処理方法は、ヘッドマウントディスプレイが搭載するカメラにより撮影中の動画像を表示画像として当該ヘッドマウントディスプレイに表示させるステップと、動画像のフレームから、所定規則に従い一部の領域を切り出すステップと、一部の領域の画像を解析し、動画像と異なる画像をヘッドマウントディスプレイに表示させる際に必要なデータを取得するステップと、を含むことを特徴とする。
なお、以上の構成要素の任意の組合せ、本発明の表現をシステム、コンピュータプログラム、コンピュータプログラムを読み取り可能に記録した記録媒体、データ構造などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、ヘッドマウントディスプレイによる画像表示を伴うコンテンツを、シンプルな装置構成でも精度よく処理できる。
本実施の形態は、ユーザの頭部に装着されたヘッドマウントディスプレイに画像を表示する画像表示システムに関する。図1は、ヘッドマウントディスプレイ100の外観例を示す。この例でヘッドマウントディスプレイ100は、出力機構部102および装着機構部104で構成される。装着機構部104は、ユーザが被ることにより頭部を一周し装置の固定を実現する装着バンド106を含む。
出力機構部102は、ヘッドマウントディスプレイ100をユーザが装着した状態において左右の目を覆うような形状の筐体108を含み、内部には装着時に目に正対するように表示パネルを備える。本実施の形態においてヘッドマウントディスプレイ100の表示パネルは、透過性がないものとする。すなわちヘッドマウントディスプレイ100は、光不透過型のヘッドマウントディスプレイである。
筐体108内部にはさらに、ヘッドマウントディスプレイ100の装着時に表示パネルとユーザの目との間に位置し、ユーザの視野角を拡大する接眼レンズを備えてよい。ヘッドマウントディスプレイ100はさらに、装着時にユーザの耳に対応する位置にスピーカーやイヤホンを備えてよい。また、ヘッドマウントディスプレイ100は、モーションセンサを内蔵し、ヘッドマウントディスプレイ100を装着したユーザの頭部の並進運動や回転運動、ひいては各時刻の位置や姿勢を検出する。
また、ヘッドマウントディスプレイ100は、筐体108の前面にステレオカメラ110を備える。ステレオカメラ110は、ユーザの視線に対応する視野で周囲の実空間を動画撮影する。撮影した画像を即時に表示させれば、ユーザが向いた方向の実空間の様子がそのまま見える、いわゆるビデオシースルーを実現できる。さらに撮影画像に写っている実物体の像上に仮想オブジェクトを描画すれば拡張現実(AR:Augmented Reality)を実現できる。
図2は、本実施の形態の画像表示システムの構成例を示す。画像表示システム10は、ヘッドマウントディスプレイ100、画像生成装置200、コントローラ140を備える。ヘッドマウントディスプレイ100は、無線通信により画像生成装置200に接続される。画像生成装置200は、さらにネットワークを介してサーバに接続されてもよい。その場合、サーバは、複数のユーザがネットワークを介して参加できるゲームなどのオンラインアプリケーションのデータを画像生成装置200に提供してもよい。
画像生成装置200は、ヘッドマウントディスプレイ100を装着したユーザの頭部の位置や姿勢に基づき視点の位置や視線の方向を特定し、それに応じた視野となるように表示画像を生成してヘッドマウントディスプレイ100に出力する情報処理装置である。例えば、画像生成装置200は、電子ゲームを進捗させつつゲームの舞台である仮想世界を表示画像として生成してもよいし、仮想世界か実世界かに関わらず観賞や情報提供のために動画像を表示させてもよい。また、ユーザの視点を中心に広い画角のパノラマ画像をヘッドマウントディスプレイ100に表示させることによって、表示世界への深い没入感をユーザに与えることができる。なお、画像生成装置200は、据置型ゲーム機であってもよく、PCであってもよい。
コントローラ140は、ユーザの手に把持され、画像生成装置200における画像生成や、ヘッドマウントディスプレイ100における画像表示を制御するためのユーザの操作が入力されるコントローラ(例えばゲームコントローラ)である。コントローラ140は、無線通信により画像生成装置200に接続される。変形例として、ヘッドマウントディスプレイ100とコントローラ140の一方、または両方は、信号ケーブル等を介した有線通信により画像生成装置200に接続されてもよい。
図3は、画像生成装置200がヘッドマウントディスプレイ100に表示させる画像世界の例を説明するための図である。この例では、ユーザ12が仮想空間である部屋にいる状態を作り出している。仮想空間を定義するワールド座標系には、図示するように、壁、床、窓、テーブル、テーブル上の物などのオブジェクトを配置している。画像生成装置200は、当該ワールド座標系に、ユーザ12の視点の位置や視線の方向に応じてビュースクリーン14を定義し、そこにオブジェクトの像を表すことで表示画像を描画する。
画像生成装置200は、ヘッドマウントディスプレイ100の状態を所定のレートで取得し、これに応じてビュースクリーン14の位置や姿勢を変化させる。これにより、ユーザの視点に対応する視野で画像をヘッドマウントディスプレイ100に表示させることができる。また画像生成装置200が、視差を有するステレオ画像を生成し、ヘッドマウントディスプレイ100の表示パネルの左右の領域にステレオ画像を表示させれば、仮想空間をユーザ12に立体視させることもできる。これにより、ユーザ12は、あたかも表示世界の部屋の中にいるような仮想現実を体験することができる。
図3で示したような画像表現を実現するには、ユーザの頭部、ひいてはヘッドマウントディスプレイ100の位置や姿勢の変化を追跡し、それに対応するように、ビュースクリーン14の位置や姿勢を高精度に制御することが求められる。また、光不透過型のヘッドマウントディスプレイを装着したユーザには、実空間における周囲の状況が見えないため、衝突や躓きなどの危険を回避する手段を設ける必要がある。本実施の形態では、上述したビデオシースルーやARの実現に用いる、ステレオカメラ110による撮影画像を利用して、効率的かつ低遅延で実物体に係る必要な情報を取得する。
ビデオシースルーなどの表示に用いる画像は、好適には、人の視野範囲を網羅するような広い画角で撮影される。この場合、ユーザの周囲にある実物体の情報や、それに対するユーザ頭部の位置や姿勢などの情報の多くは、当該撮影画像に含まれていることになる。本実施の形態ではこれを利用し、撮影画像のうち必要な部分を目的に応じて切り出し、画像解析に用いることにより、専用のセンサを別途設けずとも効率的に必要な情報が得られるようにする。なお以後の説明では、ヘッドマウントディスプレイ100の位置および姿勢の少なくともいずれかを、ヘッドマウントディスプレイの「状態」と総称する場合がある。
カメラが搭載された移動体の自己位置推定と環境地図の作成を、撮影画像を用いて同時に行う技術として、Visual SLAM(Simultaneous Localization and Mapping)が知られている。図4はVisual SLAMの原理を概説するための図である。カメラ22は移動体に設けられ、視野範囲の実空間26を、位置や姿勢を変えながら動画撮影している。ここで、ある時刻で撮影されたフレーム20aと、時間Δt後に撮影されたフレーム20bで、同じ被写体上のポイント24を表す特徴点28a、28bが抽出されたとする。
各フレーム平面における、対応する特徴点28a、28b(以後、「対応点」と呼ぶ場合がある)の位置座標のずれは、時間Δtにおけるカメラ22の位置と姿勢の変化に依存する。具体的には、カメラ22の回転運動および並進運動による変化分を表す行列をそれぞれR、Tとし、各時刻のカメラ22からポイント24までの3次元ベクトルをP1、P2とすると、次の関係式が成り立つ。
P1=R・P2+T
P1=R・P2+T
この関係を利用し、時間的に前後する2つのフレームにおける対応点を複数抽出して連立方程式を解くことにより、その間のカメラ22の位置と姿勢の変化を特定できる。また導出結果の誤差を再帰的計算で最小化する処理により、ポイント24など、実空間26における被写体表面の3次元情報を正確に構築できる。なおカメラ22をステレオカメラ110とすると、ポイント24等の3次元位置座標は、各時刻で独立して求められるため、対応点の抽出などの演算がより容易になる。
ただしカメラ22を単眼のカメラとする場合であっても、Visual SLAMのアルゴリズムは確立されている。したがってヘッドマウントディスプレイ100の状態を追跡する目的においては、ヘッドマウントディスプレイ100が備えるカメラはステレオカメラ110に限定されない。またVisual SLAMのアルゴリズムは多数、提案されており、そのいずれを採用しても構わない。いずれにしろ図示する原理によれば、動画像のフレームレートと同じレートで、前の時刻からのカメラ22の状態変化を導出できる。
一方、そのような微小時間での動きによれば、画像上の変化も微小となる。このため各フレームにおいて有効な数の特徴点が得られていれば、フレーム全体を解析対象とせずとも、実物体の状態追跡には十分である。結果として、適切な領域を切り出して解析に用いることで、追跡精度と処理速度を両立できることになる。
そこで本実施の形態では一例として、ビュースクリーン14の設定に用いる、ヘッドマウントディスプレイ100の状態取得、および、ユーザが移動可能な実世界の範囲を規定するプレイエリアの設定において、ステレオカメラ110による撮影画像の一部を切り出して利用する。ここでプレイエリアは、ヘッドマウントディスプレイ100により仮想世界を見ているユーザが動き回ることのできる実世界の範囲であり、例えば周囲の物に衝突することなく安全な移動が保証される範囲である。
図5は、画像生成装置200の内部回路構成を示す。画像生成装置200は、CPU(Central Processing Unit)222、GPU(Graphics Processing Unit)224、メインメモリ226を含む。これらの各部は、バス230を介して相互に接続される。バス230にはさらに入出力インターフェース228が接続される。入出力インターフェース228には、通信部232、記憶部234、出力部236、入力部238、記録媒体駆動部240が接続される。
通信部232は、USBやIEEE1394などの周辺機器インターフェースや、有線LANまたは無線LAN等のネットワークインターフェースを含む。記憶部234は、ハードディスクドライブや不揮発性メモリ等を含む。出力部236は、ヘッドマウントディスプレイ100へのデータを出力する。入力部238は、ヘッドマウントディスプレイ100からのデータ入力を受け付け、また、コントローラ140からのデータ入力を受け付ける。記録媒体駆動部240は、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する。
CPU222は、記憶部234に記憶されているオペレーティングシステムを実行することにより画像生成装置200の全体を制御する。また、CPU222は、記憶部234またはリムーバブル記録媒体から読み出されてメインメモリ226にロードされた、あるいは通信部232を介してダウンロードされた各種プログラム(例えばVRゲームアプリケーション等)を実行する。GPU224は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、CPU222からの描画命令にしたがって描画処理を行い、描画結果を出力部236に出力する。メインメモリ226は、RAM(Random Access Memory)により構成され、処理に必要なプログラムやデータを記憶する。
図6は、ヘッドマウントディスプレイ100の内部回路構成を示す。ヘッドマウントディスプレイ100は、CPU120、メインメモリ122、表示部124、音声出力部126を含む。これらの各部はバス128を介して相互に接続されている。バス128にはさらに入出力インターフェース130が接続されている。入出力インターフェース130には、無線通信のインターフェースを含む通信部132、モーションセンサ134、およびステレオカメラ110が接続される。
CPU120は、バス128を介してヘッドマウントディスプレイ100の各部から取得した情報を処理するとともに、画像生成装置200から取得した表示画像や音声のデータを表示部124や音声出力部126に供給する。メインメモリ122は、CPU120における処理に必要なプログラムやデータを格納する。
表示部124は、液晶パネルや有機ELパネルなどの表示パネルを含み、ヘッドマウントディスプレイ100を装着したユーザの眼前に画像を表示する。表示部124は、左右の目に対応する領域に一対のステレオ画像を表示することにより立体視を実現してもよい。表示部124はさらに、ヘッドマウントディスプレイ100装着時に表示パネルとユーザの目との間に位置し、ユーザの視野角を拡大する一対のレンズを含んでもよい。
音声出力部126は、ヘッドマウントディスプレイ100の装着時にユーザの耳に対応する位置に設けたスピーカーやイヤホンで構成され、ユーザに音声を聞かせる。通信部132は、画像生成装置200との間でデータを送受するためのインターフェースであり、Bluetooth(登録商標)などの既知の無線通信技術により通信を実現する。モーションセンサ134はジャイロセンサおよび加速度センサを含み、ヘッドマウントディスプレイ100の角速度や加速度を取得する。
ステレオカメラ110は、図1で示したとおり、ユーザの視点に対応する視野で周囲の実空間を左右の視点から撮影するビデオカメラの対である。ステレオカメラ110により撮像された動画像のフレームには、ユーザの視線方向(典型的にはユーザの正面)に存在する物体が映る。モーションセンサ134による計測値や、ステレオカメラ110による撮影画像のデータは、必要に応じて、通信部132を介して画像生成装置200へ送信される。
本実施の形態の画像表示システム10では上述のとおり、ヘッドマウントディスプレイ100を装着したユーザがアプリケーションのプレイ中に移動可能な実世界の範囲を規定したプレイエリアが設定される。アプリケーションのプレイ中にユーザがプレイエリアを逸脱しようとする場合や逸脱した場合、画像表示システム10は、注意を促す内容、または、プレイエリアへの復帰を促す内容の警告をユーザに提供する。
図7は、画像生成装置の機能ブロックを示すブロック図である。上述したように、画像生成装置200は、電子ゲームの進行やサーバとの通信等、一般的な情報処理を実行するが、図7では特に、ステレオカメラ110による撮影画像の処理に関する機能ブロックを詳細に示している。なお、図6に示す画像生成装置200の機能のうち少なくとも一部は、ヘッドマウントディスプレイ100に実装されてもよいし、ネットワークを介して画像生成装置200に接続されたサーバに実装されてもよい。また画像生成装置200の機能のうち、撮影画像のフレームを切り出し(クロップし)所定の情報を得る機能は、別途、情報処理装置として実現してもよい。
また、図7に示す複数の機能ブロックは、ハードウェア的には、図5に示したCPU222、GPU224、メインメモリ226、記憶部234等の構成で実現でき、ソフトウェア的には、複数の機能ブロックの機能を実装したコンピュータプログラムにより実現できる。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
画像生成装置200は、データ処理部250とデータ記憶部252を備える。データ処理部250は、各種のデータ処理を実行する。データ処理部250は、図5に示した通信部232、出力部236、入力部238を介して、ヘッドマウントディスプレイ100およびコントローラ140とデータを送受信する。データ記憶部252は、図5で示した記憶部234などで実現され、データ処理部250により参照または更新されるデータを記憶する。
データ記憶部252は、App記憶部254、プレイエリア記憶部256、マップ記憶部258を備える。App記憶部254は、例えばVRゲームなど画像表示を伴うアプリケーションの実行に必要な、プログラムやオブジェクトモデルのデータなどを記憶する。プレイエリア記憶部256は、プレイエリアに関するデータを記憶する。プレイエリアに関するデータは、プレイエリアの境界を構成する点群の位置を示すデータ(例えばワールド座標系における各点の座標値)を含む。
マップ記憶部258は、ヘッドマウントディスプレイ100、ひいてはヘッドマウントディスプレイ100を装着したユーザ頭部の位置や姿勢を取得するための登録情報を記憶する。具体的にはマップ記憶部258は、Visual SLAMで用いるキーフレームのデータと、3次元実空間における物体表面の構造を表す環境地図(以後、「マップ」と呼ぶ)のデータとを対応づけて記憶する。
キーフレームは、Visual SLAMにおいて特徴点を抽出したフレームのうち、特徴点の数が所定値以上など、所定の基準により選択されたフレームのデータである。ただし「フレーム」とは上述のとおり、ステレオカメラ110が撮影している動画像のフレームの全領域のうち、所定規則でクロップした一部の領域である。以後の説明において、当該一部の領域も「フレーム」と呼ぶ場合がある。キーフレームを「過去のフレーム」として、現フレーム(最新フレーム)の特徴点との照合に用いることにより、ヘッドマウントディスプレイ100の位置や姿勢の追跡において時間経過とともに蓄積される誤差をキャンセルできる。
マップデータは、ユーザが電子ゲームをプレイする部屋を構成する物体の表面を表すポイント群の、3次元位置座標の情報であり、各ポイントは、キーフレームから抽出された特徴点に対応づけられる。キーフレームのデータは、それを取得した際のステレオカメラ110の状態と対応づけられる。キーフレームに含まれるべき特徴点の個数は24個以上であってもよい。特徴点は、公知のコーナー検出法により検出されたコーナーを含んでもよく、また、輝度の勾配に基づいて検出されてもよい。
データ処理部250は、システム部260、App実行部290、表示制御部292を備える。これら複数の機能ブロックの機能は、コンピュータプログラムに実装されてもよい。画像生成装置200のCPU222とGPU224は、上記コンピュータプログラムを記憶部234や記録媒体からメインメモリ226に読み出して実行することにより上記複数の機能ブロックの機能を発揮してもよい。
システム部260は、ヘッドマウントディスプレイ100に関するシステムの処理を実行する。システム部260は、ヘッドマウントディスプレイ100用の複数のアプリケーション(例えばVRゲーム)に対して共通のサービスを提供する。システム部260は、撮影画像取得部262、入力情報取得部263、クロップ部274、状態情報取得部276、および、プレイエリア制御部264を含む。
撮影画像取得部262は、ヘッドマウントディスプレイ100から送信された、ステレオカメラ110による撮像画像のフレームデータを順次取得する。このデータは基本的に、表示に用いることのできる広角の画像データである。入力情報取得部263は、コントローラ140を介してユーザ操作の内容を取得する。クロップ部274は、撮影画像取得部262が取得したフレームから、後段で行うべき処理に必要な領域をクロップする。
クロップ部274は、クロップ規則記憶部278を内部に保持する。クロップ規則記憶部278は、クロップされた画像の用途と、クロップ対象の領域を決定する規則とを対応づけたクロップ規則を格納する。クロップ部274は、状態情報取得部276、およびプレイエリア制御部264からの要求に応じて、それぞれの処理に対応するクロップ規則に従い、各フレームをクロップする。
なおクロップ部274がクロップした画像の用途は、ヘッドマウントディスプレイ100の状態情報の取得やプレイエリアの設定に限らず、画像認識など別の画像解析であっても、表示画像の生成であってもよい。また、状態情報取得部276やプレイエリア制御部264の一部など、クロップされた画像を用いて画像解析を行う機能は、「画像解析部」と総称することもできる。ここで画像解析部は、クロップ部274がクロップした画像を用いて、ビデオシースルー以外の画像をヘッドマウントディスプレイ100に表示させる際に必要なデータを取得する特徴を有する。
状態情報取得部276は、上述したVisual SLAMの手法により、ヘッドマウントディスプレイ100の状態情報を逐次取得する。具体的には状態情報取得部276は、クロップ部274により提供された、クロップ後の各フレームのデータと、マップ記憶部258に格納されたデータとに基づき、ヘッドマウントディスプレイ100の状態、すなわち位置と姿勢の情報を各時刻で取得する。なお状態情報取得部276は、画像解析により得られた情報と、ヘッドマウントディスプレイ100が内蔵するモーションセンサ134による計測値とを統合して状態情報としてもよい。
ヘッドマウントディスプレイ100の状態情報は、アプリケーションの実行時におけるビュースクリーンの設定や、プレイエリア境界へのユーザの接近を監視する処理、プレイエリアへの接近を警告する処理などに用いられる。したがって状態情報取得部276は、取得した状態情報を、そのときの状況に応じて、プレイエリア制御部264、App実行部290、表示制御部292に適宜供給する。
プレイエリア制御部264は、ユーザが安全に移動できる実空間の領域をプレイエリアとして設定したうえ、アプリケーションの実行段階において、その境界にユーザが接近した際などに適宜警告を提示する。プレイエリアの設定においてプレイエリア制御部264は、クロップ部274により提供された、クロップ後の各フレームのデータを用いて、Visual SLAMなどによりマップデータを生成する。
例えばプレイエリア制御部264は、ヘッドマウントディスプレイ100を装着したユーザに、周囲を見回すように指示を出す。これにより、ユーザの周囲にある家具、壁、床などの実物体が、ステレオカメラ110により撮影される。プレイエリア制御部264は、当該撮影画像の各フレームからクロップされた領域のデータを順次取得し、それに基づきマップデータを生成する。
プレイエリア制御部264はまた、当該マップデータを参照し、家具や壁などに衝突しない床面の範囲をプレイエリアとして自動で決定する。プレイエリア制御部264は、一旦決定したプレイエリアの境界を表す画像を、ヘッドマウントディスプレイ100に表示させることにより、ユーザによるプレイエリアの編集操作を受け付けてもよい。この場合、プレイエリア制御部264は、コントローラ140を介したユーザ操作の内容を、入力情報取得部263を介して取得し、それに応じてプレイエリアの形状を変更する。
プレイエリア制御部264は、決定したプレイエリアに関するデータを最終的にプレイエリア記憶部256に格納する。プレイエリア制御部264はまた、生成したマップデータと、それに付随して得られるキーフレームのデータを対応づけて、マップ記憶部258に格納し、状態情報取得部276が後の任意のタイミングで読み出せるようにする。
App実行部290は、ユーザにより選択されたVRゲームなどのアプリケーションのデータをApp記憶部254から読み出して実行する。この際、App実行部290は、ヘッドマウントディスプレイ100の状態情報を状態情報取得部276から逐次取得し、それに対応する位置および姿勢でビュースクリーンを設定しVR画像を描画する。これにより、ユーザ頭部の動きに応じた視野で表示対象の仮想世界を表すことができる。
App実行部290はまた、ユーザにより選択されたアプリケーションによっては、AR画像を生成してもよい。この場合、App実行部290は、撮影画像取得部262が取得した撮影画像のフレーム、あるいはクロップ部274が表示処理に対応させてクロップしたフレームに、仮想オブジェクトを重畳描画する。ここでApp実行部290は、状態情報取得部276が取得した状態情報に基づき仮想オブジェクトの描画位置を決定する。これにより、撮影画像に写る被写体と対応するように、適切に仮想オブジェクトを表せる。
表示制御部292は、App実行部290により生成された様々な画像、例えばVR画像やAR画像のフレームのデータを、ヘッドマウントディスプレイ100へ順次送信する。表示制御部292はまた、プレイエリアの設定に際し、周囲を見回すようユーザに指示を与える画像、仮に決定したプレイエリアの様子を表して編集を受け付ける画像、プレイエリアの境界への接近を警告する画像、などを必要に応じてヘッドマウントディスプレイ100へ送信する。
例えばプレイエリアの設定時、表示制御部292は、プレイエリア制御部264からの要求に従い、撮影画像取得部262が取得した撮影画像のフレーム、あるいはクロップ部274が表示処理に対応させてクロップしたフレームのデータをヘッドマウントディスプレイ100へ送信し、表示させる。これにより、ユーザが向いた方向の実空間の様子をそのまま見せるビデオシースルーを実現でき、ユーザの安全性を高められる。なおビデオシースルーを実現する機会はこれに限らず、ユーザがプレイエリアを逸脱している期間、アプリケーションの開始前や終了後、ユーザがビデオシースルーを要求した場合、など様々であってよい。
図8は、クロップ部274による画像の変化を例示している。これまで述べたように、ステレオカメラ110はユーザが向いている方角の実空間を、水平画角が100°程度かそれ以上の広角で撮影する。フレーム150はそのようにして得られるステレオ動画像の対のうち、片側の一フレームを表しており、ユーザのいる部屋の様子が写されている。
ビデオシースルーを実現する場合、撮影画像取得部262が取得したフレーム150を、クロップ部274がクロップすることなく表示用の画像154としてよい。あるいはクロップ部274は、図示するように、所定幅の周縁領域を除いた領域152aをクロップして表示用の画像154としてもよい。いずれにしろ表示制御部292は、フレーム150あるいは表示用の画像154に適宜補正を施し、最終的な表示画像のデータとしてヘッドマウントディスプレイ100に送信する。
例えば図1に示したように、ステレオカメラ110がヘッドマウントディスプレイ100の筐体108の前面下方に設けられたりして、光軸の方向がユーザの視線と一致していない場合、そのまま表示するとユーザに違和感を与えることが考えられる。このため表示制御部292は、フレーム150あるいは表示用の画像154に対し、ユーザの視野に対応する画角となるように変換処理を施す。表示制御部292はそのほか、ヘッドマウントディスプレイ100が備える接眼レンズを介して鑑賞したときに歪みや色ずれのない画像が視認されるよう、接眼レンズの歪曲収差や色収差と逆の歪みを与える補正を施してもよい。
一方、プレイエリアを設定する場合、クロップ部274は、床面が写る領域152bをクロップし、プレイエリア設定用の画像156としてプレイエリア制御部264に提供する。プレイエリアの設定においては、プレイエリア制御部264が生成する3次元のマップにおいて、床面をまず検出し、それを基準として、ユーザの周囲にある壁や家具などを検出するためである。
またヘッドマウントディスプレイ100の状態情報を取得する場合、クロップ部274は、ヘッドマウントディスプレイ100のおよそ正面に対応する、所定サイズの領域152cをクロップし、状態情報取得用の画像158として状態情報取得部276に供給する。「およそ正面」とは例えば、ユーザの視線方向を含む所定サイズの範囲である。ヘッドマウントディスプレイ100のおよそ正面にある物の像を含む画像158には、床面や天上など一様な面の像が含まれにくく、多くの特徴点を有する可能性が高くなる。これにより、ヘッドマウントディスプレイ100の状態情報を安定した精度で取得しつづけられる。
このように、クロップする領域の位置やサイズを、目的に応じて最適化することにより、ステレオカメラ110のみを手段としても、複数の情報を精度よく取得できる。また表示を想定してステレオカメラ110の画角を広げても、プレイエリア設定やヘッドマウントディスプレイ100の状態取得で処理対象とする画像のサイズが影響を受けないため、処理に余計な時間をかけることがなく、精度の高さと低遅延性を両立できる。
図9は、クロップする領域についてさらに詳細な例を説明するための図である。図の(a)、(b)においてそれぞれ示される一対の実線の矩形が、ステレオ画像のフレーム対(左画像160a、右画像160b)を表す。そのうち(a)は、プレイエリア設定用にクロップされる領域162a、162b、(b)は、ヘッドマウントディスプレイ100の状態情報取得用にクロップされる領域164a、164bを示している。
この例は、図の右側に示すように、ステレオカメラ110を構成する2つのカメラ170a、170bの光軸172a、172bが、図の手前側に向かうユーザの視線方向と一致しない状態で搭載されていることを想定している。具体的には、光軸172a、172bが、互いに30°をなすように水平方向で外側を向き、双方、水平面より35°下方を向くように、ヘッドマウントディスプレイ100に搭載されているとする。一方、Visual SLAMにおいて、ステレオマッチングにより被写体表面上のポイントの位置を特定するには、光軸が平行なステレオ画像が必要となる。
したがって(a)のプレイエリア設定用として最適な領域162a、162bは、横方向では元のフレーム対である左画像160a、右画像160bのうち内側に寄った範囲となる。つまり左画像160aにおいては中央より右に寄った領域162a、右画像160bにおいては中央より左に寄った領域162bが最適なクロップ領域である。一方、縦方向では、領域162a、162bはそれぞれ、左画像160a、右画像160bの略中央に位置する。
これはカメラ170a、170bの光軸172a、172bがいくらか下方を向いており、プレイエリアの設定に重要な床面が縦方向の中央近傍に写る可能性が高いためである。また左画像160a、右画像160bの下端近傍を領域162a、162bに含めないことにより、ユーザ自身の身体の映り込みを排除している。
(b)の場合も、状態情報取得用として最適な領域164a、164bは、横方向では元のフレーム対である左画像160a、右画像160bの内側寄りの範囲である。一方、領域164a、164bは、縦方向では左画像160a、右画像160bの中央より上側に寄っている。これはカメラ170a、170bの光軸172a、172bが下方を向いているため、ヘッドマウントディスプレイ100の正面にある物はいくらか上に寄った範囲に写る可能性が高いためである。
図では一例として、元のフレーム対(左画像160a、右画像160b)の画素数を、それぞれ1016×1016とし、画像の左上を原点としたときの、クロップ対象の領域162a、162b、164a、164bの左上および右下の位置座標を示している。具体的には、(a)のプレイエリア設定時、左画像160aのうち位置座標(294,188)、(933,827)をそれぞれ左上、右下の頂点とする矩形の領域162aと、右画像160bのうち位置座標(82,188)、(721,827)をそれぞれ左上、右下の頂点とする矩形の領域162bをクロップする。
(b)の状態情報取得時は、左画像160aのうち位置座標(294,82)、(933,721)をそれぞれ左上、右下の頂点とする矩形の領域164aと、右画像160bのうち位置座標(82,82)、(721,721)をそれぞれ左上、右下の頂点とする矩形の領域164bをクロップする。
クロップ規則記憶部278にはこのように、用途ごとに最適化した、クロップすべき領域を表す位置座標などの情報を、用途と対応づけて格納しておく。領域を最適化する際は、図示するようなカメラ170a、170bの光軸172a、172bの向きに基づき、必要な像が写る領域を計算により求めてもよいし、必要な像が写る可能性が高い領域を実験により求めてもよい。
クロップ部274は、プレイエリア制御部264および状態情報取得部276からの要求に従い、用途に対応する領域をクロップしてそのデータを順次供給する。なおクロップされたデータは、App実行部290や表示制御部292が要求してもよい。これにより、撮影画像を用いた表示を、必要な領域のみを利用して効率的に行える。
なお図示するステレオカメラ110の搭載態様や、撮影画像のフレームの解像度およびサイズ、クロップ領域の位置およびサイズは一例に過ぎず、本実施の形態を限定する主旨ではない。例えば図ではクロップ領域を、床面が写る可能性の高さなどに鑑み固定としたが、各時点での状況や実際の画像に基づきクロップ部274が適応的に決定してもよい。一例として、座って鑑賞することが前提のアプリケーションと立って鑑賞することが前提のアプリケーションでは、傾向として床面が写る領域の範囲が異なり、前者の方が広範囲に及ぶ傾向となる。
したがって、クロップ部274はApp実行部290から、実行しているアプリケーションの特性を取得し、ユーザが座る前提のアプリケーションの場合、立つ前提のアプリケーションよりクロップする領域を広げたり、画像平面で上側にずらしたりしてもよい。これにより、ユーザの姿勢によらず床とその上の物が同時に写る可能性が高くなる。アプリケーションの特性として得られる情報はユーザの姿勢に限らず、アプリケーションの実行時に正面を見ることが多いか下方を見ることが多いか、といった、視線の傾向なども利用できる。
これらの場合、クロップ規則記憶部278には、アプリケーションの特性とクロップすべき領域を表す位置座標などの情報とを、用途ごとに対応づけて格納しておく。クロップ部274はまた、クロップする領域の決定に、ヘッドマウントディスプレイ100が備えるモーションセンサ134による計測値を利用してもよい。この場合、クロップ部274は、当該計測値により得られるヘッドマウントディスプレイ100の姿勢に基づき、床面が写っている可能性が高い領域などを各時刻で導出し、その結果に応じてクロップする領域を時間変化させてもよい。
あるいはクロップ部274は、プレイエリア設定における初期段階では、クロップする領域のサイズを小さくしておき、それにより床面が検出されたら、当該床面の像を含むようにクロップする領域を拡張してもよい。これにより、床面やその上にある物の情報を、効率的に、かつより多く収集できる。例えばクロップ部274は、ヘッドマウントディスプレイ100の、単位時間あたりの状態変化が閾値より小さい場合、クロップする領域を拡張する。これにより、特徴点など多くの情報を短時間で得られやすくなる。
クロップ部274は一旦、床面が検出されたら、その高さに基づき、座っているか立っているかなどユーザの姿勢を推定し、これにより上述のようにクロップする領域のサイズや位置を調整してもよい。これらの場合も、クロップ規則記憶部278には、クロップ領域を変化させる規則と、それに用いる条件とを対応づけて格納しておく。なお1つのフレームに対し行う解析が多いほど、結果の取得までに時間を要する。そのため本実施の形態では、床面など必要な像が得られる可能性が高い領域を固定としたり推定したりして、低遅延で結果を出すことを基本としている。
図9では一つの用途に対し、左画像160a、右画像160bから領域を1つずつクロップする例を示したが、各画像からクロップする領域の数は限定されない。例えば全天周画像を撮影できるカメラを導入したとすると、離散的な複数の角度範囲の領域をクロップすることにより、カメラを回転させて周囲を撮影した場合と同様の画像が得られる。したがってクロップ部274は例えば、1つのフレームから所定規則で決定した複数の領域をクロップしてもよい。
この際、クロップ部274は、特徴点が所定数以上ある複数の領域をクロップ対象としてもよい。クロップ部274は、そのような規則で一旦、決定したクロップ対象の領域の位置の変化を、それまでのヘッドマウントディスプレイ100の状態変化などに基づき推定することにより、現フレームでクロップすべき領域を決定してもよい。
次に、以上の構成による画像表示システムの動作を説明する。図10は、画像生成装置200が撮影画像を用いて各種処理を行う手順を示すフローチャートである。なお図示するフローチャートは、クロップ部274による処理の場合分けに着目しており、プレイエリア設定やアプリケーション実行の処理順を規定するものではない。また図示するフローチャートは、画像生成装置200とヘッドマウントディスプレイ100が通信を確立し、ヘッドマウントディスプレイ100から少なくとも撮影画像のデータが送信されている任意のタイミングで開始される。
画像生成装置200の撮影画像取得部262は、処理対象のフレームのデータを取得する(S10)。この時点でビデオシースルーを実現するモードとなっていたら(S12のY)、表示制御部292は、対象フレームに必要な補正処理を施すなどして、ビデオシースルーのための表示画像を生成し、ヘッドマウントディスプレイ100に送信する(S14)。画像生成装置200は上述のとおり、アプリケーションの実行期間の前後やユーザがプレイエリアを逸脱している期間などのほか、プレイエリアを設定するために、ユーザが周囲を見回している期間もビデオシースルーモードとする。
ユーザは、ヘッドマウントディスプレイ100のシステムの設定メニューの中で、プレイエリアの初期設定または再設定を選択可能である。プレイエリアの初期設定または再設定が選択された場合、プレイエリア制御部264は、表示制御部292を介して、周囲を見回すよう促す内容のメッセージをヘッドマウントディスプレイ100に表示させる。このようにプレイエリアを設定するモードとされている場合(S16のY)、クロップ部274は、プレイエリア設定用の領域をフレームからクロップする(S18)。プレイエリア制御部264は、クロップ後のフレームのデータを順次取得し、それを用いてプレイエリアを設定する(S20)。
これにより、S10で取得されたフレームは、表示画像として用いられると同時に、クロップされてプレイエリアの設定にも用いられる。プレイエリアを設定するモードでない場合(S16のN)、S18、S20の処理をスキップする。一方、S12において、ビデオシースルーを実現するモードでない場合(S12のN)、すなわちアプリケーションの画像を表示すべき期間、クロップ部274は、ヘッドマウントディスプレイ100の状態情報取得用の領域をフレームからクロップする(S22)。
状態情報取得部276は、クロップ後のフレームのデータを順次取得し、それを用いてVisual SLAMによりヘッドマウントディスプレイ100の状態情報を取得する(S24)。当該状態情報は、App実行部290に順次供給され、表示画像の生成に用いられるほか、プレイエリア制御部264がユーザに警告するために、ユーザとプレイエリア境界との位置関係を監視する処理にも用いられる。
いずれにしろそれらの画像は表示制御部292によりヘッドマウントディスプレイ100に送信され、表示される(S26)。ユーザにより実行が停止されるなど所定の終了条件が満たされないうちは(S28のN)、S10~S26の処理を繰り返す。所定の終了条件を満たした場合(S28のY)、画像生成装置200は全処理を終了する。
図11は、図10のS20において、プレイエリア制御部264がプレイエリアを設定する処理手順を示すフローチャートである。まずプレイエリア制御部264は、プレイエリア設定用にクロップされたフレームのデータをクロップ部274から取得する(S40)。プレイエリア制御部264は、クロップ後のフレームデータに基づいて、ユーザの周囲空間におけるプレイエリアを自動検出する(S42)。
具体的には、プレイエリア制御部264は、クロップされた画像に基づいて、Visual SLAMなど公知の手法によりユーザの部屋の3次元形状を推定する。Visual SLAMの場合、この処理はマップデータの生成に対応する。そしてプレイエリア制御部264は、推定した部屋の3次元形状をもとに、モーションセンサ134の計測値が示す重力方向に対して垂直な平面を床面として検出する。さらにプレイエリア制御部264は、当該床面を基準としてその上にある物の3次元形状を、フレームから抽出した特徴点に対応するポイントの集合として構築していく。
プレイエリア制御部264は、当該ポイントの集合に基づきプレイエリアの境界を決定し、その位置座標を含むプレイエリアデータを生成する。なおプレイエリア制御部264は、プレイエリア検出時、プレイエリアとしての床面の高さを導出する。床面の高さは、例えば、重力方向における床面とヘッドマウントディスプレイ100との距離であってもよい。プレイエリア制御部264は、床面の高さを示すデータをプレイエリアデータに含める。ヘッドマウントディスプレイ100の位置が原点の場合、床面の高さはマイナス1メートル等であってもよい。
プレイエリア制御部264は、プレイエリアの設定に必要な3次元空間に係るデータを全て取得できたかを確認し、取得できていなければ新たなフレームについてS42の処理を繰り返す(S46のN、S40、S42)。ここで必要なデータとは、プレイエリアを抜けなく設定するのに必要なデータであり、例えばユーザが向く可能性のある方向や移動が許容される方向を網羅するマップデータである。プレイエリア制御部264は、S46の判定を、キーフレームが得られたステレオカメラ110の状態の分布を確認することにより行ってもよい。
必要なデータが取得できたら(S46のY)、プレイエリア制御部264は、それまでに得られたマップデータやキーフレームのデータを、マップ記憶部258に格納する(S48)。続いてプレイエリア制御部264は、プレイエリアを調整するユーザ操作を受け付ける(S50)。例えばプレイエリア制御部264は、検出した床面の高さを示すデータに基づいて、床面調整画面を生成する。床面調整画面は、撮影画像取得部262により取得された撮影画像のフレームに、床面を示すオブジェクト(例えば半透明の格子状のオブジェクト)を重畳したAR画像を含んでもよい。
プレイエリア制御部264は、表示制御部292を介して、ヘッドマウントディスプレイ100の表示パネルに床面調整画面を表示させる。プレイエリア制御部264は、床面調整画面に対し入力された、床面の高さを調整するユーザの操作を受け付け、それに応じて床面の高さを変更する。プレイエリア制御部264はまた、検出したプレイエリアのデータに基づいて、プレイエリア編集画面を生成する。プレイエリア編集画面は、撮影画像取得部262により取得された撮影画像の上にプレイエリアを示すオブジェクトを重畳したAR画像を含む。
プレイエリア制御部264は、プレイエリア編集画面をヘッドマウントディスプレイ100の表示パネルに表示させる。プレイエリア制御部264は、プレイエリア編集画面に対し入力された、プレイエリアを編集するユーザの操作を受け付け、それに応じてプレイエリア62の形状を変更する。そしてプレイエリア制御部264は、最終的に決定したプレイエリアのデータを、プレイエリア記憶部256に格納する(S52)。プレイエリアのデータは例えば、境界を構成する点群の座標値を含む。
図12は、プレイエリア設定時のユーザの行動を模式的に示す。部屋30の中で、ユーザは、ヘッドマウントディスプレイ100を頭部に装着して周囲を見回しつつ移動する。図12においてユーザ32は、このときのユーザの位置を示している。矢印34は、ユーザの視線方向を示している。プレイエリア36は、設定されるプレイエリアの一例を示している。
図11のS40、42の処理中、プレイエリア制御部264は、撮影画像取得部262により取得された撮影画像のフレーム全体を、表示制御部292を介して、ヘッドマウントディスプレイ100の表示パネルに表示させ、ビデオシースルーを実現する。図示するようにユーザが様々な方向を向き、その撮影画像がヘッドマウントディスプレイ100から送信されることにより、プレイエリア制御部264は、ユーザの周囲の状況を3次元のマップデータとして構築できる。なお当該データの構築には、同時に計測されるモーションセンサ134の出力も利用してよい。
図13は、ステレオカメラ110により撮影されたフレームの画像と、それから得られるキーフレームのデータを例示している。なお実際には各フレームについて、ステレオカメラ110で撮影された画像の対が得られるが、図ではその一方のみを模式的に示している。プレイエリア制御部264および状態情報取得部276は、コーナー検出法等の公知の手法を用いて、フレーム画像40に含まれる複数の特徴点44を抽出する。
ここで処理対象とするフレーム画像40は、クロップ部274がプレイエリア設定用、あるいは状態情報取得用にクロップした画像である。上述のとおり、これを前の時刻のフレーム画像と照合して対応点を得ることにより、フレーム画像40を撮影したときの、ステレオカメラ110の状態情報が特定される。元のフレームのうち必要と推定される領域のみをクロップしてから特徴点を抽出することにより、これらの処理の効率を格段に向上させることができる。
一方、プレイエリア制御部264および状態情報取得部276は、1枚のフレーム画像40から所定数以上、例えば24個以上の特徴点が抽出された場合、それをキーフレーム42とする。プレイエリア制御部264および状態情報取得部276は、選択したフレーム画像40から抽出された特徴点(例えば特徴点44)の、画像平面における位置座標と、その周囲の所定範囲の画像とで構成されるキーフレーム42のデータを生成する。プレイエリア制御部264および状態情報取得部276はさらに、それが撮影されたときのステレオカメラ110の状態情報を対応づけ、最終的なキーフレームデータとする。
プレイエリア制御部264は、ユーザの周囲空間のうち入力された撮影画像(実施形態では撮影画像から生成されたキーフレーム)によりカバーされる割合に関するスコアを導出するための複数の基準(以下「ビン」と呼ぶ。)を記憶する。複数のビンは、ユーザの周囲空間を異なる態様で分割した複数の基準である。
図14は、本実施の形態で利用できる複数のビンを例示する。ビン50、ビン52、ビン54のそれぞれは、中心をユーザの位置とし、ユーザの周囲空間を、重力方向を軸として分割したものである。ビン50は、プレイエリア設定開始時のユーザの視線方向と、視線方向に垂直な方向とに基づいて、ユーザの周囲空間を中心角90度で4分割した基準である。ビン52は、ビン50に対して位相を45度ずらしたものである。ビン54は、ユーザの周囲空間を中心角22.5度で16分割した基準である。以下、ビン50、ビン52、ビン54のそれぞれで規定された、ユーザの周囲空間における分割されたエリアを「分割エリア」と呼ぶ。
プレイエリア制御部264は、ビン50、ビン52、ビン54に基づいて、ユーザの周囲空間のうち入力されたフレームの画像(実施形態では撮影画像から生成されたキーフレーム)によりカバーされる割合に関するスコアを導出する。プレイエリア制御部264は例えば、そのスコアが予め定められた閾値以上になった場合、図11のS46において、プレイエリアの設定に必要なデータが取得できたと判定する。
具体的には、プレイエリア制御部264は、撮影画像からキーフレームを生成した場合、ビン50、ビン52、ビン54のそれぞれについて、当該キーフレームが得られたときのヘッドマウントディスプレイ100の状態に合致する分割エリアを特定する。得られたキーフレームが、当該分割エリアに対する最初のキーフレームであれば、その分割エリアが埋まったこととし、埋められた分割エリアの個数をスコアに加算する。プレイエリア制御部264は、新たなキーフレームを生成すると、同様のアルゴリズムにより、各ビンにおいて新たに埋められた分割エリアの個数をスコアに加算する。
そしてプレイエリア制御部264は、例えばスコアが閾値「10」未満であれば必要なデータが取得されていないと判定し、プレイエリアの検出処理を継続する。スコアが閾値「10」以上になった場合、プレイエリア制御部264は、必要なデータが取得されたと判定し、ユーザによる調整を受け付ける段階へ移行する。スコアの閾値「10」は、ヘッドマウントディスプレイ100を装着したユーザが自身の周囲180度をぐるりと見渡せばクリアできる値であるが、ユーザが周囲を見渡さない場合にはクリアできない値として定められたものである。
なお、ステレオカメラ110の画角が広いほど、1フレームに含まれる情報量が多くなり、プレイエリア検出に必要なデータを少ないフレーム数でも取得できることになる。上述のとおりクロップ部274が、広角で撮影された画像から、角度範囲の異なる複数の領域をクロップすれば、ユーザが周囲を見回す手間を最小限に、プレイエリアの設定を完了させることができる。本実施の形態では、クロップされた領域のみを解析対象とするため、このようにステレオカメラ110の画角を広げても解析時間への影響を抑えられる。
図15は、プレイエリア編集画面の例を示す。プレイエリア編集画面60は、プレイエリア62と境界64を含む。プレイエリア62は、プレイエリア(典型的には障害物のない床面)を示す画像であり、例えば半透明の格子状のオブジェクトを示す画像であってもよい。境界64は、プレイエリア62の境界を示す画像であり、プレイエリア62の境界においてプレイエリアに垂直に交わる画像である。境界64も、例えば半透明の格子状のオブジェクトであってもよい。
プレイエリア制御部264は、プレイエリア編集画面に対し、境界64を移動させたりプレイエリア62の拡張や縮小を行ったりするユーザ操作の内容を、コントローラ140などを介して取得する。そしてユーザが確定操作を行ったとき、プレイエリア制御部264は、その時点でのプレイエリアを最終的な状態としてデータを生成し、プレイエリア記憶部256に格納する。
以上述べた本実施の形態によれば、ヘッドマウントディスプレイが備えるステレオカメラによる撮影画像を、ビデオシースルーやARなどの目的で表示に用いるほか、画像解析にも利用する。この際、解析内容や目的に応じて設定された規則に従い、最適な領域をクロップして用いる。これにより、ステレオカメラの画角を広くしても、効率を落とすことなく解析を行える。これを利用し、画角の広いステレオカメラを採用することにより、プレイエリアの設定時にユーザが周囲を見回す手間を軽減することもできる。
プレイエリアの設定には床面を含む画像、ヘッドマウントディスプレイの状態情報取得にはヘッドマウントディスプレイの正面の画像、といったように、用途に応じて適切な領域を、カメラの光軸方向などを踏まえてクロップする。これにより、重要な部分にリソースを集中させることができ、高い精度での情報が低遅延で得られる。また各種情報の取得に、専用のセンサを設ける必要がなくなるため、簡易な構成のヘッドマウントディスプレイでも、質の高い画像表現を実現できる。同時に、重量や消費電力の増加に伴うヘッドマウントディスプレイの装着感の悪化を回避できる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
10 画像表示システム、 100 ヘッドマウントディスプレイ、 200 画像生成装置、 256 プレイエリア記憶部、 258 マップ記憶部、 262 撮影画像取得部、 264 プレイエリア制御部、 274 クロップ部、 276 状態情報取得部、 278 クロップ規則記憶部、 292 表示制御部。
Claims (12)
- ヘッドマウントディスプレイが搭載するカメラにより撮影中の動画像を表示画像として当該ヘッドマウントディスプレイに表示させる表示制御部と、
前記動画像のフレームから、所定規則に従い一部の領域を切り出すクロップ部と、
前記一部の領域の画像を解析し、前記動画像と異なる画像を前記ヘッドマウントディスプレイに表示させる際に必要なデータを取得する画像解析部と、
を備えたことを特徴とする情報処理装置。 - 前記クロップ部は、前記所定規則に従い、前記フレームのうち床面が写る可能性の高い領域を切り出し、
前記画像解析部は、切り出された当該領域の画像を用いて、前記ヘッドマウントディスプレイを装着したユーザが移動可能なプレイエリアを設定するのに用いる、当該ユーザの周囲の空間の3次元情報を取得することを特徴とする請求項1に記載の情報処理装置。 - 前記クロップ部は、前記ユーザの姿勢を推定し、その結果に応じて前記床面が写る可能性の高い領域として切り出す領域を変化させることを特徴とする請求項2に記載の情報処理装置。
- 前記画像解析部は、前記3次元情報における床面の位置を、前記ヘッドマウントディスプレイが内蔵するモーションセンサによる重力方向の情報に基づき取得し、
前記クロップ部は、当該床面の位置に基づき、前記床面が写る可能性の高い領域を決定することを特徴とする請求項2または3に記載の情報処理装置。 - 前記クロップ部は、前記床面の位置に基づき、前記床面が写る可能性の高い領域を各時刻で導出することにより、切り出す領域を時間変化させることを特徴とする請求項4に記載の情報処理装置。
- 前記クロップ部は、前記ヘッドマウントディスプレイの、単位時間あたりの状態変化が閾値より小さいとき、前記一部の領域を拡張することを特徴とする請求項1から5のいずれかに記載の情報処理装置。
- 前記クロップ部は、前記画像解析部が行う解析の内容に対応づけられた規則に従い、当該内容に応じて異なる領域を切り出すことを特徴とする請求項1から6のいずれかに記載の情報処理装置。
- 前記クロップ部は、前記解析の内容に応じて、前記カメラの光軸の方向に基づき設定された固定領域を切り出すことを特徴とする請求項7に記載の情報処理装置。
- 前記クロップ部は、前記所定規則に従い、特徴点を多く含む可能性が高い領域を切り出し、
前記画像解析部は、切り出された当該領域の画像を用いて、前記ヘッドマウントディスプレイの位置姿勢を追跡することを特徴とする請求項1から8のいずれかに記載の情報処理装置。 - 前記クロップ部は、前記画像解析部が行う一種類の解析に対し、前記フレームから、複数の領域を切り出すことを特徴とする請求項1から9のいずれかに記載の情報処理装置。
- ヘッドマウントディスプレイが搭載するカメラにより撮影中の動画像を表示画像として当該ヘッドマウントディスプレイに表示させるステップと、
前記動画像のフレームから、所定規則に従い一部の領域を切り出すステップと、
前記一部の領域の画像を解析し、前記動画像と異なる画像を前記ヘッドマウントディスプレイに表示させる際に必要なデータを取得するステップと、
を含むことを特徴とする情報処理方法。 - ヘッドマウントディスプレイが搭載するカメラにより撮影中の動画像を表示画像として当該ヘッドマウントディスプレイに表示させる機能と、
前記動画像のフレームから、所定規則に従い一部の領域を切り出す機能と、
前記一部の領域の画像を解析し、前記動画像と異なる画像を前記ヘッドマウントディスプレイに表示させる際に必要なデータを取得する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022016494A JP2023114237A (ja) | 2022-02-04 | 2022-02-04 | 情報処理装置および情報処理方法 |
PCT/JP2022/047633 WO2023149126A1 (ja) | 2022-02-04 | 2022-12-23 | 情報処理装置および情報処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022016494A JP2023114237A (ja) | 2022-02-04 | 2022-02-04 | 情報処理装置および情報処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023114237A true JP2023114237A (ja) | 2023-08-17 |
Family
ID=87552264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022016494A Pending JP2023114237A (ja) | 2022-02-04 | 2022-02-04 | 情報処理装置および情報処理方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2023114237A (ja) |
WO (1) | WO2023149126A1 (ja) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016045874A (ja) * | 2014-08-26 | 2016-04-04 | ソニー株式会社 | 情報処理装置、情報処理方法、及びプログラム |
WO2016199731A1 (ja) * | 2015-06-10 | 2016-12-15 | 株式会社ソニー・インタラクティブエンタテインメント | ヘッドマウントディスプレイ、表示制御方法及びプログラム |
JP6867464B2 (ja) * | 2019-11-28 | 2021-04-28 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置および警告提示方法 |
-
2022
- 2022-02-04 JP JP2022016494A patent/JP2023114237A/ja active Pending
- 2022-12-23 WO PCT/JP2022/047633 patent/WO2023149126A1/ja unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023149126A1 (ja) | 2023-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6632443B2 (ja) | 情報処理装置、情報処理システム、および情報処理方法 | |
US11697062B2 (en) | Information processing apparatus and warning presentation method | |
JP2023037626A (ja) | Hmd環境での高速中心窩レンダリングのための予測及びgpuに対する最新の更新を伴う視線追跡 | |
US20200265633A1 (en) | Image processing apparatus, image processing method, and storage medium | |
US11865448B2 (en) | Information processing apparatus and user guide presentation method | |
JP2024050696A (ja) | 情報処理装置、ユーザガイド提示方法、およびヘッドマウントディスプレイ | |
JP2024061769A (ja) | 情報処理装置および警告提示方法 | |
US20240036327A1 (en) | Head-mounted display and image displaying method | |
KR20200128661A (ko) | 뷰 이미지를 생성하기 위한 장치 및 방법 | |
WO2023149126A1 (ja) | 情報処理装置および情報処理方法 | |
US20240054749A1 (en) | Information processing device and information processing method | |
WO2023157471A1 (ja) | 情報処理装置および情報処理方法 | |
WO2023149125A1 (ja) | 情報処理装置および情報処理方法 | |
WO2023140004A1 (ja) | 情報処理装置および情報処理方法 | |
US20240073400A1 (en) | Information processing apparatus and information processing method | |
US20240078767A1 (en) | Information processing apparatus and information processing method | |
US20240033618A1 (en) | Information processing apparatus and image generating method | |
EP4379452A1 (en) | Systems and methods for mapping and localisation | |
JP2021007231A (ja) | 情報処理装置、情報処理システム、および画像処理方法 |