JP2023114238A - 情報処理装置および情報処理方法 - Google Patents
情報処理装置および情報処理方法 Download PDFInfo
- Publication number
- JP2023114238A JP2023114238A JP2022016495A JP2022016495A JP2023114238A JP 2023114238 A JP2023114238 A JP 2023114238A JP 2022016495 A JP2022016495 A JP 2022016495A JP 2022016495 A JP2022016495 A JP 2022016495A JP 2023114238 A JP2023114238 A JP 2023114238A
- Authority
- JP
- Japan
- Prior art keywords
- frame
- information
- mounted display
- image
- frames
- 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 27
- 239000000284 extract Substances 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 230000005484 gravity Effects 0.000 claims description 3
- 230000007613 environmental effect Effects 0.000 claims 1
- 230000033001 locomotion Effects 0.000 abstract description 27
- 230000000007 visual effect Effects 0.000 abstract description 15
- 238000010191 image analysis Methods 0.000 description 29
- 238000000034 method Methods 0.000 description 23
- 238000004891 communication Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 9
- 210000003128 head Anatomy 0.000 description 7
- 230000007704 transition Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 240000004050 Pentaglottis sempervirens Species 0.000 description 2
- 235000004522 Pentaglottis sempervirens Nutrition 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 210000005069 ears Anatomy 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 210000000887 face Anatomy 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 238000007654 immersion Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 101000969594 Homo sapiens Modulator of apoptosis 1 Proteins 0.000 description 1
- 102100021440 Modulator of apoptosis 1 Human genes 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
- 238000012795 verification Methods 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
-
- 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Processing Or Creating Images (AREA)
- Controls And Circuits For Display Device (AREA)
- User Interface Of Digital Computer (AREA)
- Image Analysis (AREA)
- Studio Devices (AREA)
Abstract
【課題】撮影画像を用いて対象物の位置や姿勢を正確に追跡し続ける。【解決手段】画像生成装置は、ヘッドマウントディスプレイを装着したユーザの周囲空間の撮影画像に基づき、Visual SLAMによりヘッドマウントディスプレイの状態を追跡する。(a)のプレイエリアの設定時、現フレームとの照合に用いるキーフレームを決定し(S50)、その一部を破棄不可に分類する(S52)。(b)のアプリケーションの実行時、保存されたキーフレームデータを読み出し、追跡に用いる(S60)。ユーザの移動に伴いキーフレームを追加するとともに、破棄可とされたキーフレームのデータを破棄していく(S64)。【選択図】図14
Description
本発明は、撮影画像に基づき対象物の状態を特定する情報処理装置および情報処理方法に関する。
ヘッドマウントディスプレイを装着したユーザが対象空間を自由な視点から鑑賞できる画像表示システムが普及している。例えば仮想3次元空間を表示対象とし、ユーザの視線方向に応じた画像がヘッドマウントディスプレイに表示されるようにすることで仮想現実(VR:Virtual Reality)を実現する電子コンテンツが知られている。また、ヘッドマウントディスプレイを装着したユーザが物理的に移動することで、映像として表示された空間内を仮想的に歩き回ることのできるウォークスルーシステムも開発されている。
自由な動きが許容される物体の位置や姿勢を追跡し、それに対応する情報処理を行う技術は、ヘッドマウントディスプレイに限らず、自律移動ロボットや自動車など各種分野で必要とされている(例えば特許文献1参照)。
ヘッドマウントディスプレイを装着し実空間の状況が見えないユーザが、周囲の物と衝突の危険なくコンテンツを楽しむためには、周囲の物とユーザとの位置関係を精度よく特定し、然るべき警告や移動制限を提示できるようにすることが望ましい。このような危険の回避や正しい移動方向への誘導は、上述のとおり多様な分野で必要とされる。ヘッドマウントディスプレイの場合はさらに、ユーザの動きに応じて視野を変化させるVR技術などにおいて、表示世界に対する没入感や臨場感を高めるためにも、ユーザ頭部の位置や姿勢を正確に把握し続けることが求められる。
本発明はこうした課題に鑑みてなされたものであり、その目的は、撮影画像を用いて対象物の位置や姿勢を正確に追跡し続けることのできる技術を提供することにある。
上記課題を解決するために、本発明のある態様は情報処理装置に関する。この情報処理装置は、撮影中の動画像の最新フレームから特徴点を抽出し、照合先の過去のフレームにおける対応する特徴点と、それらが表す被写体上のポイントとの関係に基づき、動画像を撮影しているカメラを搭載した装置の位置および姿勢の状態情報を取得する状態情報取得部と、最新フレームのうち所定の条件を満たしたフレームを、過去のフレームの基準として用いるキーフレームに定め、異なる破棄規則が設定された複数のグループのいずれかに分類して登録したうえ、破棄規則にしたがい登録済みのキーフレームのデータのいずれかを破棄する登録情報生成部と、キーフレームのデータを、分類の情報とともに格納する登録情報記憶部と、を備えたことを特徴とする。
本発明の別の態様は情報処理方法に関する。この情報処理方法は、撮影中の動画像の最新フレームから特徴点を抽出し、照合先の過去のフレームにおける対応する特徴点と、それらが表す被写体上のポイントとの関係に基づき、動画像を撮影しているカメラを搭載した装置の位置および姿勢の状態情報を取得するステップと、最新フレームのうち所定の条件を満たしたフレームを、過去のフレームの基準として用いるキーフレームに定め、異なる破棄規則が設定された複数のグループのいずれかに分類して登録するステップと、破棄規則にしたがい登録済みのキーフレームのデータのいずれかを破棄するステップと、キーフレームのデータを、分類の情報とともに記憶装置に格納するステップと、を含むことを特徴とする。
なお、以上の構成要素の任意の組合せ、本発明の表現をシステム、コンピュータプログラム、コンピュータプログラムを読み取り可能に記録した記録媒体、データ構造などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、撮影画像を用いて対象物の位置や姿勢を正確に追跡し続けることができる。
本実施の形態は、カメラを搭載した移動体の位置や姿勢を、当該カメラによる撮影画像を解析することによって特定する技術に関する。その限りにおいて、移動体の種類は特に限定されないが、以後、代表的な例として、ヘッドマウントディスプレイについて説明する。なお以後の説明では、ヘッドマウントディスプレイの位置および姿勢の少なくともいずれかを、ヘッドマウントディスプレイの「状態」と総称する場合がある。
図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は、あたかも表示世界の部屋の中にいるような仮想現実を体験することができる。
本実施の形態で画像生成装置200は、ヘッドマウントディスプレイ100の状態、ひいてはそれを装着したユーザ頭部の位置や姿勢を、少なくともステレオカメラ110による撮影画像に基づき逐次取得する。取得した情報は、ビュースクリーン14の設定に利用できるほか、ユーザが移動可能な実世界の範囲を規定するプレイエリアの設定にも利用できる。プレイエリアは、ヘッドマウントディスプレイ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の状態変化を導出できるが、この情報は相対的なものである。
そのため同じ処理を繰り返し行い、導出した状態変化を前の時刻で得られた状態に加算していくうちに誤差が蓄積していき、時間経過とともに追跡精度が悪化したり、最終的には追跡が破綻したりすることが考えられる。そこで、カメラ22の状態を特定済みの、過去のフレームの特徴点を、当該カメラ22の状態と対応づけて保存しておく。そして現フレーム(最新フレーム)の特徴点との照合に用いることにより、所定のタイミングで誤差の蓄積を解消する。つまり過去の状態情報を基準とし、そこからの変化としてカメラ22の状態を取得するタイミングを定常的に設けることにより、その間に発生した誤差をキャンセルする。
これにより、追跡が長期化しても誤差の増大を抑えることができる。このように状態変化の基準に用いるフレームを「キーフレーム」と呼ぶ。キーフレームを照合先に用いてカメラ22の状態を取得した場合、その時刻のフレーム(現フレーム)自体もまたキーフレームとして機能し得る。現フレームとの照合により、キーフレームとの対応点を必要数、得るには、現フレームを撮影しているカメラ22の状態になるべく近い状態で得られたキーフレームを確保しておくことが望ましい。
換言すれば、カメラ22の状態を精度よく追跡しつづけるには、カメラ22を備える移動体に許容される移動範囲が広いほど、多くのキーフレームを確保しておく必要がある。一方で、運用時などに移動体の移動に応じて高頻度でキーフレームを保存していくと、いずれは記憶領域が枯渇する。そのため、例えば古いキーフレームからデータを破棄していくことが考えられるが、この場合、キーフレームが確保されているカメラ22の状態に偏りが生じ得る。例えばカメラ22の位置や向きが大きく変化しない状態が長期化すると、その位置や向きを表すキーフレームばかりが残ることになる。
すると、カメラ22が急に向きを変えたりそれまでの傾向と異なる方向に移動したりした場合、十分な対応点を有するキーフレームが存在せず、照合に失敗する恐れがある。初期処理として、移動範囲を完全に網羅するように、多様なキーフレームをあらかじめ取得しておき、後の処理ではキーフレームを変化させずにカメラ22の状態を追跡することも考えられる。しかしながらヘッドマウントディスプレイ100の場合は特に、条件を満足するキーフレームが得られるまでユーザが動く必要があり、多大な手間となる。
本実施の形態では、プレイエリアの設定時やアプリケーションの実行時に、状態情報の取得とともにキーフレームを取得することを基本とする。そして取得したキーフレームを、異なる破棄規則が設定された複数のグループに分類する。最も単純には、破棄を不可とするキーフレームと、破棄を許容するキーフレームとに分ける。例えば前者として、カメラ22が向き得る方向を網羅する複数の状態のそれぞれについて、キーフレームを1つずつ選択する。
これにより、カメラ22の向きがどのように変化しても、その状態に近いキーフレームを照合先として選択できる。そのようなキーフレームを最低限、確保しておけば、それ以外は、現状に近い状態で得られたキーフレームに偏っていても、カメラ22の状態を精度よく取得できる。つまりそのようなキーフレームは、古い順に破棄しても構わないことになる。なお一旦決定した分類はそのまま固定としてもよいし、状況に応じて更新してもよい。具体例は後述する。
図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へ送信される。
図7は、画像生成装置の機能ブロックを示すブロック図である。上述したように、画像生成装置200は、電子ゲームの進行やサーバとの通信等、一般的な情報処理を実行するが、図7では主に、ヘッドマウントディスプレイ100の状態情報を取得する機能と、状態情報を利用して実現される機能を示している。なお、図7に示す画像生成装置200の機能のうち少なくとも一部は、ネットワークを介して画像生成装置200に接続されたサーバに実装されてもよい。また画像生成装置200の機能のうち、撮影画像からヘッドマウントディスプレイ100の状態情報を取得する機能は、別途、情報処理装置として実現してもよいし、ヘッドマウントディスプレイ100自体に実装されていてもよい。
また、図7に示す複数の機能ブロックは、ハードウェア的には、図5に示したCPU222、GPU224、メインメモリ226、記憶部234等の構成で実現でき、ソフトウェア的には、複数の機能ブロックの機能を実装したコンピュータプログラムにより実現できる。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
画像生成装置200は、データ処理部250とデータ記憶部252を備える。データ処理部250は、各種のデータ処理を実行する。データ処理部250は、図5に示した通信部232、出力部236、入力部238を介して、ヘッドマウントディスプレイ100およびコントローラ140とデータを送受信する。データ記憶部252は、図5に示した記憶部234により実現され、データ処理部250により参照または更新されるデータを記憶する。すなわちデータ記憶部252は、不揮発性の記憶装置として機能する。
データ記憶部252は、App記憶部254、プレイエリア記憶部256、登録情報記憶部258を備える。App記憶部254は、例えばVRゲームなど画像表示を伴うアプリケーションの実行に必要な、プログラムやオブジェクトモデルのデータなどを記憶する。プレイエリア記憶部256は、プレイエリアに関するデータを記憶する。プレイエリアに関するデータは、プレイエリアの境界を構成する点群の位置を示すデータ(例えばワールド座標系における各点の座標値)を含む。
登録情報記憶部258は、ヘッドマウントディスプレイ100、ひいてはヘッドマウントディスプレイ100を装着したユーザ頭部の位置や姿勢を取得するための登録データを記憶する。具体的には登録情報記憶部258は、上述したキーフレームのデータと、3次元実空間における物体表面の構造を表す環境地図(以後、「マップ」と呼ぶ)のデータとを対応づけて記憶する。
マップデータは例えば、ユーザがVRゲームをプレイする部屋を構成する物体表面上のポイント群の、3次元位置座標の情報であり、各ポイントは、キーフレームから抽出された特徴点に対応づけられる。キーフレームのデータは、それを取得した際のステレオカメラ110の状態と対応づけられる。
データ処理部250は、システム部260、App実行部290、表示制御部292を備える。これら複数の機能ブロックの機能は、コンピュータプログラムに実装されてもよい。画像生成装置200のCPU222とGPU224は、上記コンピュータプログラムを記憶部234や記録媒体からメインメモリ226に読み出して実行することにより上記複数の機能ブロックの機能を発揮してもよい。
システム部260は、ヘッドマウントディスプレイ100に関するシステムの処理を実行する。システム部260は、ヘッドマウントディスプレイ100用の複数のアプリケーション(例えばVRゲーム)に対して共通のサービスを提供する。システム部260は、撮影画像取得部262、画像解析部272、およびプレイエリア制御部264を含む。
撮影画像取得部262は、ヘッドマウントディスプレイ100から送信された、ステレオカメラ110による撮像画像のフレームデータを順次取得する。撮影画像取得部262がデータを取得する頻度は、ステレオカメラ110のフレームレートと同じであってもよいし、それより低くてもよい。
画像解析部272は、上述したVisual SLAMの手法により、ヘッドマウントディスプレイ100の状態情報を逐次取得する。ヘッドマウントディスプレイ100の状態情報は、VRゲームなどアプリケーションの実行に先立ち、プレイエリアの設定や再設定に用いられる。状態情報はまた、アプリケーションの実行時におけるビュースクリーンの設定や、プレイエリア境界へのユーザの接近に対する警告などに用いられる。したがって画像解析部272は、取得した状態情報を、そのときの状況に応じて、プレイエリア制御部264、App実行部290、表示制御部292に適宜供給する。
詳細には画像解析部272は、登録情報生成部274と状態情報取得部276を備える。登録情報生成部274は、撮影画像取得部262により取得された撮影画像のフレームのデータに基づき、キーフレームデータとマップデータからなる登録情報を生成する。登録情報生成部274は最終的に、生成した登録情報を登録情報記憶部258に格納し、後の任意のタイミングで読み出せるようにする。
状態情報取得部276は、撮影画像取得部262により取得された撮影画像の各フレームのデータと、登録情報とに基づき、ヘッドマウントディスプレイ100の状態、すなわち位置と姿勢の情報を各時刻で取得する。登録情報は、登録情報生成部274が生成中のものであってもよいし、登録情報生成部274が登録情報記憶部258から読み出したものであってもよい。状態情報取得部276は、ヘッドマウントディスプレイ100が内蔵するモーションセンサ134による計測値と統合して状態情報としてもよい。
登録情報生成部274は、状態情報取得部276がヘッドマウントディスプレイ100の状態を取得するために用いたフレームのうち、所定の基準を満たすフレームを抽出し、新たなキーフレームとして保存してよい。この際、登録情報生成部274は所定の基準に基づき、異なる破棄規則が設定された複数のグループのいずれかにキーフレームを分類する。
また登録情報生成部274は必要に応じて、各グループに設定された破棄規則に従って選択した、保存済みのキーフレームのデータを破棄する。例えば登録情報生成部274は、キーフレームのデータサイズが上限に達し、新たなキーフレームを保存できないとき、FIFO(First-In First-Out)での破棄規則が設定されたグループにおいて、最も先に登録されたキーフレームから順に破棄する。
登録情報生成部274はまた、破棄を不可とするグループに属するキーフレームが所定数、保存できたら、当該グループを構成するキーフレームを確定させ、以後のキーフレームは全て、破棄を許可するグループに分類してもよい。いずれにしろキーフレームの廃棄規則に差を設けることにより、状態情報の取得に必要なキーフレームを確保しつつ、登録情報記憶部258が容量不足にならないように制御する。
プレイエリア制御部264は、ユーザが安全に移動できる実空間の領域をプレイエリアとして設定したうえ、アプリケーションの実行段階において、その境界にユーザが接近した際などに適宜警告を提示する。そのいずれの段階においても、プレイエリア制御部264は、画像解析部272からヘッドマウントディスプレイ100の状態情報を逐次取得し、それに基づき処理を行う。
例えばプレイエリアを設定する際、プレイエリア制御部264は、ヘッドマウントディスプレイ100を装着したユーザに、周囲を見回すように指示を出す。これにより、ユーザの周囲にある家具、壁、床などの実物体が、ステレオカメラ110により撮影される。画像解析部272は、当該撮影画像のフレームを順次取得し、それに基づき登録情報を生成する。プレイエリア制御部264は、当該登録情報のうちマップデータを参照し、家具や壁などに衝突しない床面の範囲をプレイエリアとして自動で決定する。
プレイエリア制御部264は、一旦決定したプレイエリアの境界を表す画像を、ヘッドマウントディスプレイ100に表示させることにより、ユーザによるプレイエリアの編集操作を受け付けてもよい。この場合、プレイエリア制御部264は、コントローラ140を介したユーザ操作の内容を取得し、それに応じてプレイエリアの形状を変更する。プレイエリア制御部264は、決定したプレイエリアに関するデータを最終的にプレイエリア記憶部256に格納する。
なお画像解析部272の登録情報生成部274は、プレイエリアの設定中に保存したキーフレーム、あるいは当該キーフレームから所定の基準により選択したキーフレームを、破棄不可のキーフレームとしてもよい。上述のとおりプレイエリアの設定においては、意図的にユーザの周囲を網羅するように撮影がなされるため、状態に偏りのないキーフレームが得られやすいためである。
App実行部290は、ユーザにより選択されたVRゲームなどのアプリケーションのデータをApp記憶部254から読み出して実行する。この際、App実行部290は、ヘッドマウントディスプレイ100の状態情報を画像解析部272から逐次取得し、それに対応する位置および姿勢でビュースクリーンを設定し表示画像を描画する。これにより、ユーザ頭部の動きに応じた視野で表示対象の世界を表すことができる。
表示制御部292は、App実行部290により生成された様々な画像、例えばVR画像やAR画像のフレームのデータを、ヘッドマウントディスプレイ100へ順次送信する。表示制御部292はまた、プレイエリアの設定に際し、周囲を見回すようユーザに指示を与える画像、仮に決定したプレイエリアの様子を表して編集を受け付ける画像、プレイエリアの境界への接近を警告する画像、などを必要に応じてヘッドマウントディスプレイ100へ送信する。
図8は、ステレオカメラ110により撮影されたフレームの画像と、それから得られるキーフレームのデータ例を示す。なお実際には各フレームについて、ステレオカメラ110で撮影された画像の対が得られるが、図ではその一方のみを模式的に示している。状態情報取得部276は、フレーム画像40に含まれる複数の特徴点を、コーナー検出法や輝度の勾配に基づく手法など公知の手法を用いて抽出する。上述のとおり、これを前の時刻のフレーム画像と照合して対応点を得ることにより、フレーム画像40を撮影したときの、ステレオカメラ110の状態情報が特定される。
一方、登録情報生成部274は、1枚のフレーム画像40から所定数以上、例えば24個以上の特徴点が抽出された場合、それをキーフレームとする。特徴点が多いフレームは、他のフレームとの照合で対応点を検出しやすいためである。ただしキーフレームの選択基準は特徴点の数に限らず、撮影された際のステレオカメラ110の状態にしきい値以上の差があるフレーム画像などであってもよいし、複数の基準を組み合わせてもよい。
登録情報生成部274は、選択したフレーム画像40から抽出された特徴点(例えば特徴点44)の、画像平面における位置座標と、その周囲の所定範囲の画像とで構成されるキーフレーム42のデータを生成する。登録情報生成部274はさらに、それが撮影されたときのステレオカメラ110の状態情報を対応づけ、最終的なキーフレームデータとする。ただしキーフレームデータの構成要素をこれらに限る主旨ではない。
図9は、登録情報記憶部258に格納される登録情報のデータ構造を例示している。登録情報は、1つのマップデータ70に複数のキーフレームデータ72a、72b、72c、72d、・・・を対応づけた構造を有する。図ではマップデータ70を「MAP1」、キーフレームデータ72a、72b、72c、72d、・・・を「KF1」、「KF2」、「KF3」、「KF4」、・・・と表記しているが、それぞれが下に例示するような構造を有する。
マップデータ70は、マップに一意に与えられた識別情報である「マップID」と、マップを構成する「ポイント情報」の羅列で構成される。ポイント情報は、ポイントごとに、一意に与えられた識別情報である「ポイントID」と、その3次元空間での位置座標(図では「3D位置座標」と表記)を対応づけたデータである。
またキーフレームデータ72a、72b、72c、72d、・・・はそれぞれ、キーフレームに一意に与えられた識別情報である「キーフレームID」と、それが取得されたときのステレオカメラ110の位置姿勢である「カメラ状態情報」と、その「取得時刻」と、キーフレームを構成する「特徴点情報」の羅列で構成される。ここでカメラ状態情報は、例えば初期状態を基準として、Visual SLAMで得られた相対的な状態として表してもよいし、ヘッドマウントディスプレイ100が内蔵するモーションセンサ134による計測値とVisual SLAMによる結果を統合して得られた絶対的な値を採用してもよい。
特徴点情報は図8のキーフレーム42で示したデータに対応し、抽出された特徴点の画像平面における位置座標(図では「2D位置座標」と表記)と、その周囲の所定サイズの画像を対応づけたデータである。各特徴点にはさらに、それが表す3次元空間でのポイントの識別情報である「ポイントID」を対応づける。
なお登録情報のデータ構造は図示するものに限らず、現フレームとの照合において効率的に対応点を抽出したり、マップの精度を高めたりできる補助的な情報を適宜含めてよい。また登録情報記憶部258には、複数のマップデータ70について同様の構造で登録情報を格納してよい。例えばユーザがゲームをプレイする場所が複数ある場合、プレイエリア制御部264がそれぞれの場所でプレイエリアを設定するとともに、登録情報生成部274が個別に登録情報を取得して格納しておく。
この場合、登録情報にはさらに、場所の識別情報を対応づけておく。画像解析部272は、ユーザがゲームプレイの開始時などに入力した、場所の情報を取得し、それに対応する登録情報を読み出して、ヘッドマウントディスプレイ100の状態情報取得に用いる。登録情報生成部274はそのほか、同じ場所でも家具の配置を変えたときや、時間帯によって照明環境が異なる場合、各状態に対して登録情報を生成しておいてよい。
いずれにしろ登録情報生成部274は、それぞれの登録情報において、「グループA」、「グループB」、・・・といったように、所定の基準により分類した状態でキーフレームデータ72a、72b、72c、72d、・・・を格納する。登録情報生成部274は内部のメモリに、各グループに設定された、キーフレームの破棄規則を保持している。例えば2つのグループとし、一方を破棄不可、他方をFIFOでの破棄としてもよい。
この場合、登録情報生成部274は、まずユーザが向き得る方向を網羅する複数の状態のそれぞれにおいて得られたキーフレームを一通り前者に分類し、以後、重複する状態で得られたキーフレームを後者に分類する。あるいはキーフレームの「質」を評価し、それを複数段階に分けたものをグループとしてもよい。例えば「質」を3段階に分け、最も質が低いグループに属するキーフレームを優先して破棄する。最も質が高いグループは破棄不可とし、中間の質のグループは、特定の条件を満たした時に破棄する。
新たに得られたキーフレームと既存のキーフレームの「質」を比較して、適宜、既存のキーフレームの所属先グループを変更してもよい。ここで「質」が高いキーフレームとは、他と所定値以上差がある状態で撮影されたキーフレーム、特徴点の数が多いキーフレーム、取得時刻が新しいキーフレーム、照合に用いられた回数が多いキーフレーム、などである。そのいずれかを分類の指標としてもよいし、それらの2つ以上を組み合わせて分類の根拠としてもよい。
例えばそれらの観点でキーフレームをスコアづけし、その合計スコアの範囲によって分類してもよい。これにより、概ね質が低い順にキーフレームのデータが破棄される。なお照合に用いられた回数を分類の指標に用いる場合、登録情報生成部274は、図示するキーフレームデータの構造に、さらに照合回数を記録していく。なおキーフレームを分類するグループの数、分類する基準、グループに与える破棄規則は様々に考えられ、アプリケーションの特性やシステムの規模等によって最適化してよい。
図10は、キーフレームの空間網羅性を評価するための、空間の区分け例を示している。ここでキーフレームの空間網羅性とは、ヘッドマウントディスプレイ100がとり得る全状態に対し、各キーフレームが撮影された際のヘッドマウントディスプレイ100の状態の分布がおよぶ範囲の広さを指す。
図では3パターンの区分け例を示しており、いずれも、プレイエリア設定開始時など基準状態におけるユーザの位置を中心とし、重力方向を軸としたヨー(Yaw)方向で等分割した例である。パターン50は、中心角90度で4分割してなる区分けエリアで構成される。パターン52は、パターン50に対して、ユーザの向く方向を基準に位相を45度ずらした区分けエリアで構成される。パターン54は、中心角22.5度で16分割してなる区分けエリアで構成される。
登録情報生成部274は、パターン50、52、54の少なくともいずれかの区分けエリアをビンとして、キーフレームの条件を満たすフレームによりカバーされる範囲を評価する。具体的には登録情報生成部274は、キーフレームが撮影された際のステレオカメラ110の方向が、区分けエリアのどれに属するかを特定することで、当該キーフレームによりその区分けエリアがカバーされたと判定する。そして、キーフレームによりカバーされた区分けエリアの個数の合計をカウントする。
例えば図示する3つの区分けパターンを全て用いる場合、キーフレームによりカバーされた区分けエリアの個数の合計に対ししきい値「10」を設定する。パターン54のみを用いる場合、例えばしきい値「8」を設定する。これらの値は、ヘッドマウントディスプレイ100を装着したユーザが、自身の周囲180度をぐるりと見渡せばクリアできる値であるが、ユーザが周囲を見渡さない場合にはクリアできない値として定められたものである。
ただしアプリケーション実行時にユーザが向き得る方向の広さなどによって、用いる区分けパターンやしきい値は様々に設定してよい。例えば中心角は等分割しなくてもよい。キーフレームによりカバーされた区分けエリアの個数がしきい値に達したら、登録情報生成部274はキーフレームが空間を網羅したと判断する。そして登録情報生成部274は例えば、区分けエリアを最初にカバーしたキーフレームを、破棄不可のグループに分類する。これと同時にプレイエリア制御部264は、その時点で構築済みのマップを用いて、プレイエリアの形状を最終決定してもよい。
このような評価により破棄不可のキーフレームを選択することにより、キーフレームの状態が極力分散され、少ない数で広範囲を網羅できる。登録情報生成部274は、以降、得られたキーフレームを、破棄を許可するグループに分類する。あるいは同じ区分けエリアに対し新たに得られたキーフレームの質がより高ければ、既存の破棄不可のキーフレームと入れ替える。
なお区分けパターンはヨー方向の分割に限らず、仰角を決定づけるピッチ(Pitch)方向での分割や、ユーザの前後左右など並進方向での分割でもよいし、それらを組み合わせて複数方向に分割してもよい。ただし最も多くのバリエーションで特徴点の情報が得られる、ヨー方向の分割で網羅性を評価すれば、破棄を不可とするキーフレームの数が少なくても、現フレームと照合できるフレームが存在しない状況を回避しやすくなる。
次に、以上の構成による画像表示システムの動作を説明する。図11は、画像生成装置200がプレイエリアを設定する処理手順を示すフローチャートである。ユーザは、ヘッドマウントディスプレイ100のシステムの設定メニューの中で、プレイエリアの初期設定または再設定を選択可能である。プレイエリアの初期設定または再設定が選択された場合、画像生成装置200の撮影画像取得部262は、ヘッドマウントディスプレイ100と通信を確立し、ステレオカメラ110が撮影するフレームのデータ取得を開始する(S10)。
次にプレイエリア制御部264は、表示制御部292を介して、ステレオカメラ110の状態を変化させるようユーザに促すメッセージをヘッドマウントディスプレイ100に表示させる(S12)。実際にはプレイエリア制御部264は、ヘッドマウントディスプレイ100を装着したまま周囲を見回すような指示画像を、ヘッドマウントディスプレイ100に表示させればよい。
そして画像解析部272は、そのようにして撮影されたフレーム画像を用いてVisual SLAMを実施し、ユーザのいる空間の登録情報を生成する(S14)。具体的には画像解析部272は、各フレーム画像から抽出した特徴点の対応を取得し、当該特徴点が表すポイントの3次元位置座標を特定する。また当該位置座標の情報を用いて、ステレオカメラ110の状態変化を取得したうえ、それによりポイントを再投影し位置座標の誤差を修正する。これらの過程において、画像解析部272は、所定の条件に基づきフレーム画像からキーフレームを選択する。
これと並行してプレイエリア制御部264は、ユーザの周囲空間におけるプレイエリアを構築する(S16)。例えばプレイエリア制御部264は登録情報に含まれるマップデータを用いて、ユーザの部屋の3次元形状を推定する。この際、プレイエリア制御部264は、推定した部屋の3次元形状をもとに、モーションセンサ134が示す重力方向に対して垂直な平面(典型的には床面)を検出し、検出した同じ高さの複数の平面を合成した結果をプレイエリアとして検出してもよい。
S14とS16の処理は、図10に例示したような空間の区分けに対するキーフレームのカバー率の評価によって、画像解析部272が、周囲の空間を網羅するだけのキーフレームが得られたと判断するまで繰り返す(S18のN、S14、S16)。これにより、プレイエリアの境界とすべき範囲を抜けなく設定できるとともに、当該プレイエリアに対し十分なマップデータおよびキーフレームデータを準備できる。
キーフレームが周囲の空間を網羅したと判断できたら(S18のY)、プレイエリア制御部264は、プレイエリアの境界を構成する点群の座標値を含むプレイエリアデータをプレイエリア記憶部256に格納する(S20)。なおプレイエリア制御部264は、上述したように、ユーザがプレイエリアを編集する機会を与えたうえで、編集後のデータをプレイエリア記憶部256に格納してもよい。
また画像解析部272は、図9で示したようなマップデータと複数のキーフレームデータを対応づけて、登録情報記憶部258に格納する(S22)。この際、画像解析部272は、例えば図10で示した各区分けエリアを最初に埋めたキーフレームを、破棄不可のグループに分類し、それ以外のキーフレームを破棄可のグループに分類して格納する。ただし分類に係る態様が様々に考えられることは上述したとおりである。
図12は、図11のS14~S18の処理の期間における、ヘッドマウントディスプレイ100の状態変化の例を表す俯瞰図である。ここでヘッドマウントディスプレイ100の位置および方向を二等辺三角形(例えば二等辺三角形32)で表象して示している。二等辺三角形の底辺がステレオカメラ110の撮像面に対応する。すなわちヘッドマウントディスプレイ100、ひいてはユーザの視線は、例えば矢印34の方向になる。
S12で表示された指示に従い、ユーザは、ヘッドマウントディスプレイ100を頭部に装着して周囲を見回しつつ部屋30内を移動する。これにより、ヘッドマウントディスプレイの状態が、図示するように変化する。この際、プレイエリア制御部264は、ステレオカメラ110が撮影している視線方向の動画像を、そのまま表示させるよう、ヘッドマウントディスプレイ100を制御してもよい。ユーザが向いた方向の実空間の様子をそのままユーザに見せるビデオシースルーにより、ユーザは安全に移動できる。
画像生成装置200の画像解析部272は、当該動画像のフレームに基づき登録情報を生成する。プレイエリア制御部264は、それを用いてプレイエリア36を設定する。なお画像解析部272はヘッドマウントディスプレイ100に、動画像のフレームデータとともに、ヘッドマウントディスプレイ100の角速度や加速度など、モーションセンサ134による計測値を送信させてもよい。これを利用することで、画像解析部272は、各時刻におけるステレオカメラ110の状態情報を、より正確に特定できる。
図13は、画像生成装置200がアプリケーションを実行する処理手順を示すフローチャートである。このフローチャートは、例えばユーザが画像生成装置200においてアプリケーションを起動することにより開始される。その前提として、少なくとも図11で示したプレイエリアの設定処理がなされているものとする。まずプレイエリア制御部264は、プレイエリア記憶部256に格納されたプレイエリアのデータ、例えば、プレイエリアの形状およびサイズを示すデータを読み出す(S32)。
また画像解析部272は、登録情報記憶部258に格納された登録情報を読み出す(S34)。登録情報には、それ以前に行われたプレイエリアの設定やアプリケーションの実行により取得済みの、キーフレームデータが含まれる。
続いてApp実行部290は、App記憶部254からアプリケーションのプログラムデータを読み出し、処理を開始する(S36)。例えばApp実行部290は、ユーザの動きやコントローラ140を介したユーザ操作の内容に応じて進捗するVRゲームを開始する。これに伴い画像解析部272は、ヘッドマウントディスプレイ100から逐次送信される、ステレオカメラ110による撮影画像のフレームを用いてVisual SLAMを実行し、ヘッドマウントディスプレイ100の状態情報を取得する(S38)。
この際、画像解析部272は所定周期など定められたタイミングで、S34で読み出したキーフレームを、現フレームの照合先として利用する。これにより、フレームデータが十分に得られていない初期段階においても、ヘッドマウントディスプレイ100の状態を正確に取得できる。特にプレイエリアの設定時に取得したキーフレームを基準とすることにより、プレイエリアに対するユーザの位置を精度よく取得できる。
また画像解析部272は、新たに得たフレームがキーフレームの要件を満たすとき、当該フレームについてキーフレームデータを生成し、内部のメモリなどに保存しておく。この際、全キーフレームデータの合計サイズが、登録情報記憶部258の対応する記憶領域の容量を超えるなど、データ破棄の条件を満たしたら、画像解析部272は、破棄を許可するグループからキーフレームを選択して破棄する。
例えば画像解析部272は、当該グループのうち、取得時刻が古いキーフレーム、照合先とされた回数が少ないキーフレーム、現在のステレオカメラ110の状態から遠い状態で得られたキーフレームなど、所定の指標により破棄するキーフレームを決定する。また画像解析部272は、新たなキーフレームの分類を所定の基準により決定する。新たなキーフレームの登録により、既存のキーフレームの所属先のグループを変更してもよい。
なおS38の処理で画像解析部272は、上述のとおり、ヘッドマウントディスプレイ100が内蔵するモーションセンサ134による計測値とVisual SLAMの結果を統合して、ヘッドマウントディスプレイ100の状態を導出してもよい。ヘッドマウントディスプレイ100の状態情報は逐次、App実行部290へ供給される。App実行部290は、ヘッドマウントディスプレイ100の状態情報に基づき、ユーザの視点や視線に対応する視野で表示画像のフレームデータを生成し、表示制御部292を介してヘッドマウントディスプレイ100に逐次送信する(S40)。
ヘッドマウントディスプレイ100は、送信されたフレームデータを逐次表示させる。画像生成装置200のプレイエリア制御部264は、実世界におけるユーザの位置が警告を与えるべき条件を満たしたとき、例えば、ユーザに装着されたヘッドマウントディスプレイ100からプレイエリアの境界までの距離が所定の閾値(例えば30センチ)以下になった場合(S42のY)、ユーザに対する所定の警告処理を実行する(S44)。
例えばプレイエリア制御部264は、プレイエリアの境界を、柵などの3次元オブジェクトとして表した画像を表示制御部292に供給する。表示制御部292は、App実行部290により生成されたアプリケーションの画像に、プレイエリアの境界を表す画像を重畳し、表示画像としてヘッドマウントディスプレイ100に表示させてもよい。またプレイエリア制御部264は、実世界におけるユーザの位置がプレイエリアの境界近傍に至った場合やプレイエリアの境界を超えてしまった場合、表示制御部292を介してヘッドマウントディスプレイ100にビデオシースルー画像を表示させてもよい。
実世界におけるユーザの位置が、警告を与えるべき条件を満たしていなければ(S42のN)、S44の処理をスキップする。ユーザによりアプリケーションの実行が停止されるなど所定の終了条件が満たされないうちは(S46のN)、S38~S44の処理を繰り返す。所定の終了条件を満たした場合(S46のY)、画像解析部272は、S38において新たに得られたキーフレームデータや、それによる登録情報全体の更新内容を、登録情報記憶部258に反映させ(S48)、全処理を終了する。
図14は、本実施の形態におけるキーフレームの変遷を例示する図である。(a)はプレイエリア設定時、(b)はアプリケーション実行時に取得・利用されるキーフレームを、それぞれが取得される際のヘッドマウントディスプレイ100の状態を表象する二等辺三角形で示している。図12と同様、二等辺三角形の底辺がステレオカメラ110の撮像面に対応する。また図示する例は、キーフレームを「破棄不可」と「破棄可」の2通りに分類することを想定し、前者を黒い二等辺三角形(例えば二等辺三角形80)、後者を白い二等辺三角形(例えば二等辺三角形82)で示している。
(a)の変遷は、プレイエリアが未設定の場合、あるいは再設定の必要が生じたときに、プレイエリアの設定とともに実現される。初期段階であるS50においてユーザは、プレイエリア制御部264からの指示により、矢印のように周囲空間を見回す。これによりヘッドマウントディスプレイ100のステレオカメラ110は、およそ放射状に視線を動かしながら動画像を撮影する。画像解析部272は、当該動画像のフレームを用いてVisual SLAMにより登録情報を生成する。
この際、登録情報生成部274は、特徴点を抽出したフレームのうち、要件を満たしたフレームを順次、キーフレームに決定する。図ではS50の段階を初期状態として、全てのキーフレームが破棄可とされているが、その後の段階であるS52で、キーフレームが分類されている。例えば登録情報生成部274は、図10で示した、ヨー方向の区分けエリアのそれぞれに対応する状態で取得されたキーフレームを1つずつ選択して破棄不可のグループに分類し、それ以外を破棄可のグループとする。
プレイエリアの設定が完了したら、登録情報生成部274は、分類によらず全てのキーフレームのデータを、分類の情報とともにマップデータに対応づけて、登録情報記憶部258に格納する。なお実際には、例えば合計で100枚程度のキーフレームのデータを格納し、その半数程度を破棄不可に分類する。ただし実施形態をこれに限る主旨ではない。
(b)の変遷は、アプリケーションの処理とともに実現される。初期段階であるS60において、登録情報生成部274は、登録情報記憶部258に格納されている登録情報を読み出す。これによりユーザが周囲を見回さずとも、破線84で囲んだように、各方位を網羅したキーフレームが得られている状態となる。またアプリケーションの起動により、ヘッドマウントディスプレイ100から新たな撮影画像が送信されるため、適宜キーフレームが追加される。
状態情報取得部276は、新たに送信されたフレーム(例えばフレーム86)に近い状態で得られたキーフレームを照合先とすることで、ヘッドマウントディスプレイ100の現在の状態情報を取得する。新たに送信されたフレームの数が少ない初期段階にあっても、多様なキーフレームが準備されていることにより、ヘッドマウントディスプレイ100の状態によらず、効率的かつ安定した精度で状態情報を取得できる。
登録情報生成部274は基本的に、プレイエリアの設定時など、以前になされたキーフレームの分類を継承して破棄規則を定める。登録情報生成部274はまた、ヘッドマウントディスプレイ100の初期状態を取得したS62において、それまでに取得した新規のキーフレームも分類する。この際、登録情報生成部274は、破棄不可のキーフレームを増やしてもよい。登録情報生成部274はまた、元々破棄不可のグループに分類されていたキーフレームを破棄可とするなど、グループの構成を変化させてもよい。
アプリケーションであるゲームが進行するなどして、ユーザの位置や姿勢が大きく変化すると、S64に示すように、それに近い状態でのキーフレームが増加する。キーフレームの数が、登録情報記憶部258の容量などを加味して設定された上限に達したら、登録情報生成部274は、それまでに破棄可とされたキーフレームを順次破棄する。これにより、登録情報記憶部258の記憶容量が限定的でも、照合される可能性の高いキーフレームを優先して格納しておくことができる。
また所定の基準で選別されたキーフレームを破棄不可として残しておくことにより、ユーザの動きの傾向が突如変化しても、照合に時間を要したり失敗したりすることなく、高い精度での状態追跡を維持できる。アプリケーション処理が終了したら、登録情報生成部274は、分類によらず全てのキーフレームのデータを、分類の情報とともにマップデータに対応づけて、登録情報記憶部258に格納する。これにより次回のアプリケーション処理では、(b)と同様の変遷が繰り返される。
以上述べた本実施の形態によれば、Visual SLAMにより撮影画像のフレームから移動体の位置や姿勢と、環境地図を取得する技術において、基準となるキーフレームを選択し、現フレームとの照合に用いることにより、状態情報の誤差を抑える。ここでキーフレームを所定の基準により、破棄規則の異なる複数のグループに分類する。これにより、キーフレームの質や特性と、移動体の実際の状態との相性などによって、破棄の可否や破棄までの時間、保存の優先順位などを制御できる。
結果として、限られた記憶容量であっても、任意に読み出し可能な状態で、必要性の高いキーフレームを保存でき、撮影時間の少ない初期の段階から状態情報を精度よく取得できる。VRゲームなど、ユーザの動きに応じた仮想世界の画像を表示するヘッドマウントディスプレイに適用した場合、プレイエリアの設定時にキーフレームを取得する。これにより、ユーザ個々の環境に合わせ、空間を網羅するようなキーフレームを常駐させることができ、状態情報の取得、ひいてはそれを用いた表示画像生成や移動に伴う危険性の警告を、高精度に行える。
状態を追跡している間も、新たなキーフレームデータを生成、登録し、既存のキーフレームを規則にしたがい適宜破棄していくことにより、キーフレームの構成を、常に最適化された状態に保つことができる。このため、多様な事態を想定して事前に多くのキーフレームを準備しておく必要がなく、初期設定におけるユーザの手間を省くことができるとともに、必要な記憶容量を抑えられる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
10 画像表示システム、 100 ヘッドマウントディスプレイ、 200 画像生成装置、 222 CPU、 226 メインメモリ、 258 登録情報記憶部、 264 プレイエリア制御部、 272 画像解析部、 274 登録情報生成部、 276 状態情報取得部、 292 表示制御部。
Claims (11)
- 撮影中の動画像の最新フレームから特徴点を抽出し、照合先の過去のフレームにおける対応する特徴点と、それらが表す被写体上のポイントとの関係に基づき、前記動画像を撮影しているカメラを搭載した装置の位置および姿勢の状態情報を取得する状態情報取得部と、
前記最新フレームのうち所定の条件を満たしたフレームを、前記過去のフレームの基準として用いるキーフレームに定め、異なる破棄規則が設定された複数のグループのいずれかに分類して登録したうえ、前記破棄規則にしたがい登録済みのキーフレームのデータのいずれかを破棄する登録情報生成部と、
前記キーフレームのデータを、前記分類の情報とともに格納する登録情報記憶部と、
を備えたことを特徴とする情報処理装置。 - 前記登録情報生成部は、前記キーフレームの一部を、破棄を不可とするグループに分類することを特徴とする請求項1に記載の情報処理装置。
- 前記登録情報生成部は、前記キーフレームのそれぞれが撮影された際の前記装置の状態の分布に基づき、前記破棄を不可とするグループに分類する前記キーフレームを選択することを特徴とする請求項2に記載の情報処理装置。
- 前記登録情報生成部は、前記装置を中心に重力方向を軸としたヨー(Yaw)方向で空間を分割してなる区分けエリアのそれぞれの方向で撮影された前記キーフレームのうち1つを、前記破棄を不可とするグループに分類することを特徴とする請求項3に記載の情報処理装置。
- 前記登録情報生成部は、抽出された特徴点の数、取得時刻、照合に用いられた回数、撮影された際の前記装置の状態の他との差、の少なくともいずれかに基づき、前記キーフレームを分類することを特徴とする請求項1から4のいずれかに記載の情報処理装置。
- 前記登録情報生成部は、新たな前記キーフレームにより前記キーフレームの登録上限を超えるとき、1つの前記グループに属する登録済みの前記キーフレームのうち、最先に登録された前記キーフレームを破棄することを特徴とする請求項1から5のいずれかに記載の情報処理装置。
- 前記状態情報取得部は、前記装置であるヘッドマウントディスプレイを装着したユーザが動くことにより撮影された、ユーザの周囲空間を写した前記動画像に基づき、前記状態情報を取得することを特徴とする請求項1から6のいずれかに記載の情報処理装置。
- 前記状態情報とともに構築される、前記ポイントの集合からなる3次元構造の環境地図に基づき、ユーザが移動可能なプレイエリアを設定するプレイエリア制御部をさらに備え、
前記登録情報生成部は、前記プレイエリアの設定時に撮影される前記動画像のフレームから、破棄を不可とするグループに分類する前記キーフレームを選択することを特徴とする請求項7に記載の情報処理装置。 - 前記ヘッドマウントディスプレイの状態情報に基づき、ユーザの視線に対応する視野で表示画像を生成するアプリケーション実行部をさらに備え、
前記状態情報取得部は、前記アプリケーション実行部が処理を開始するより前に、前記登録情報記憶部に格納された前記キーフレームのデータを用いて、前記ヘッドマウントディスプレイの状態情報を取得することを特徴とする請求項7または8に記載の情報処理装置。 - 撮影中の動画像の最新フレームから特徴点を抽出し、照合先の過去のフレームにおける対応する特徴点と、それらが表す被写体上のポイントとの関係に基づき、前記動画像を撮影しているカメラを搭載した装置の位置および姿勢の状態情報を取得するステップと、
前記最新フレームのうち所定の条件を満たしたフレームを、前記過去のフレームの基準として用いるキーフレームに定め、異なる破棄規則が設定された複数のグループのいずれかに分類して登録するステップと、
前記破棄規則にしたがい登録済みのキーフレームのデータのいずれかを破棄するステップと、
前記キーフレームのデータを、前記分類の情報とともに記憶装置に格納するステップと、
を含むことを特徴とする情報処理方法。 - 撮影中の動画像の最新フレームから特徴点を抽出し、照合先の過去のフレームにおける対応する特徴点と、それらが表す被写体上のポイントとの関係に基づき、前記動画像を撮影しているカメラを搭載した装置の位置および姿勢の状態情報を取得する機能と、
前記最新フレームのうち所定の条件を満たしたフレームを、前記過去のフレームの基準として用いるキーフレームに定め、異なる破棄規則が設定された複数のグループのいずれかに分類して登録する機能と、
前記破棄規則にしたがい登録済みのキーフレームのデータのいずれかを破棄する機能と、
前記キーフレームのデータを、前記分類の情報とともに記憶装置に格納する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022016495A JP2023114238A (ja) | 2022-02-04 | 2022-02-04 | 情報処理装置および情報処理方法 |
PCT/JP2022/047632 WO2023149125A1 (ja) | 2022-02-04 | 2022-12-23 | 情報処理装置および情報処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022016495A JP2023114238A (ja) | 2022-02-04 | 2022-02-04 | 情報処理装置および情報処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023114238A true JP2023114238A (ja) | 2023-08-17 |
Family
ID=87552253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022016495A Pending JP2023114238A (ja) | 2022-02-04 | 2022-02-04 | 情報処理装置および情報処理方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2023114238A (ja) |
WO (1) | WO2023149125A1 (ja) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019123548A1 (ja) * | 2017-12-19 | 2019-06-27 | 株式会社ソニー・インタラクティブエンタテインメント | 画像生成装置および画像生成方法 |
JP2021184115A (ja) * | 2018-08-28 | 2021-12-02 | ソニーグループ株式会社 | 情報処理装置、情報処理方法、及び、プログラム |
JP7220591B2 (ja) * | 2019-03-07 | 2023-02-10 | 三菱重工業株式会社 | 自己位置推定装置、自己位置推定方法及びプログラム |
-
2022
- 2022-02-04 JP JP2022016495A patent/JP2023114238A/ja active Pending
- 2022-12-23 WO PCT/JP2022/047632 patent/WO2023149125A1/ja unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023149125A1 (ja) | 2023-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109643373B (zh) | 估计3d空间中的姿态 | |
KR102066890B1 (ko) | 정보 처리 장치, 정보 처리 시스템, 정보 처리 방법 및 컴퓨터 프로그램 | |
CN107315470B (zh) | 图形处理方法、处理器和虚拟现实系统 | |
JP4425274B2 (ja) | トラッキングされている頭部の動作に従って表示中のシーンのビューを調整する方法及び装置 | |
US20200265633A1 (en) | Image processing apparatus, image processing method, and storage medium | |
EP3794581A1 (en) | Eye tracking with prediction and late update to gpu for fast foveated rendering in an hmd environment | |
EP2395454A2 (en) | Image generation system, shape recognition method, and information storage medium | |
KR20190126919A (ko) | 생성 장치, 생성 방법, 및 기억 매체 | |
US10838515B1 (en) | Tracking using controller cameras | |
US20200012335A1 (en) | Individual visual immersion device for a moving person with management of obstacles | |
EP3407304A1 (en) | Information processing device and user guide presentation method | |
CN108629799B (zh) | 一种实现增强现实的方法及设备 | |
US11468258B2 (en) | Information processing apparatus, information processing method, and storage medium | |
JP7479793B2 (ja) | 画像処理装置、仮想視点映像を生成するシステム、画像処理装置の制御方法及びプログラム | |
WO2023149125A1 (ja) | 情報処理装置および情報処理方法 | |
TW201928761A (zh) | 影像擷取之設備及方法 | |
JP6487545B2 (ja) | 認知度算出装置、認知度算出方法及び認知度算出プログラム | |
US20240054749A1 (en) | Information processing device and information processing method | |
WO2023149126A1 (ja) | 情報処理装置および情報処理方法 | |
WO2023140004A1 (ja) | 情報処理装置および情報処理方法 | |
JP2580516B2 (ja) | 実時間3次元運動測定装置およびその方法 | |
US20240078767A1 (en) | Information processing apparatus and information processing method | |
US20200042077A1 (en) | Information processing apparatus | |
WO2023157471A1 (ja) | 情報処理装置および情報処理方法 | |
US20240005600A1 (en) | Nformation processing apparatus, information processing method, and information processing program |