JP2024034143A - 情報処理装置および情報処理方法 - Google Patents
情報処理装置および情報処理方法 Download PDFInfo
- Publication number
- JP2024034143A JP2024034143A JP2022138197A JP2022138197A JP2024034143A JP 2024034143 A JP2024034143 A JP 2024034143A JP 2022138197 A JP2022138197 A JP 2022138197A JP 2022138197 A JP2022138197 A JP 2022138197A JP 2024034143 A JP2024034143 A JP 2024034143A
- Authority
- JP
- Japan
- Prior art keywords
- image
- calibration
- camera
- head
- 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 22
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000000605 extraction Methods 0.000 claims abstract description 14
- 239000000284 extract Substances 0.000 claims abstract description 10
- 238000012937 correction Methods 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 21
- 238000003702 image correction Methods 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 abstract description 16
- 238000000034 method Methods 0.000 description 29
- 238000004891 communication Methods 0.000 description 16
- 230000032683 aging Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 15
- 230000033001 locomotion Effects 0.000 description 11
- 210000003128 head Anatomy 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007654 immersion Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002250 progressing effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 210000005069 ears Anatomy 0.000 description 1
- 238000005562 fading Methods 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 238000003384 imaging method Methods 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
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
Images
Classifications
-
- 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/327—Calibration thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
- G06T7/85—Stereo camera calibration
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- 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/366—Image reproducers using viewer tracking
-
- 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/398—Synchronisation thereof; Control thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
- G06T2207/10012—Stereo images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
- G06T2207/10021—Stereoscopic video; Stereoscopic image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
Abstract
【課題】ヘッドマウントディスプレイが備えるステレオカメラのキャリブレーションの効率を向上させ、ユーザの負担感を緩和する。【解決手段】画像生成装置のキャリブレーション部は、カメラ画像における対応点の抽出状況の2次元分布を表すガイド画像を、シースルー画像に重畳して表示させるとともに(S40)、カメラ画像から対応点を抽出する(S42)。キャリブレーション部は、ガイド画像を分割してなるグリッドごとに、対応点の抽出数に応じて透明度を増加させる(S44)。全グリッドで対応点の抽出数が目標値に達したら(S46)、ガイド画像を非表示とする(S48)。【選択図】図13
Description
本発明は、ヘッドマウントディスプレイに係るデータを処理する情報処理装置および情報処理方法に関する。
ヘッドマウントディスプレイを装着したユーザが対象空間を自由な視点から鑑賞できる画像表示システムが普及している。例えば仮想3次元空間を表示対象とし、ユーザの視線方向に応じた画像がヘッドマウントディスプレイに表示されるようにすることで仮想現実(Virtual Reality:VR)を実現する電子コンテンツが知られている。ヘッドマウントディスプレイを利用することで、映像への没入感を高めたり、ゲーム等のアプリケーションの操作性を向上させたりすることもできる。また、ヘッドマウントディスプレイを装着したユーザが物理的に移動することで、映像として表示された空間内を仮想的に歩き回ることのできるウォークスルーシステムも開発されている。
ヘッドマウントディスプレイに表示させた画像世界への臨場感を高め、高品質なユーザ体験を提供するには、ユーザの動きに応じて表示画像を適切に変化させることが求められる。このためヘッドマウントディスプレイにステレオカメラを設け、撮影画像を用いて実物体と撮像面の関係を求めることにより、ユーザ頭部の位置や姿勢を追跡する技術が実用化されている。ステレオカメラを用いて実世界の情報を得る技術では、事前のカメラキャリブレーションが情報の精度に多大な影響を及ぼすため、様々なキャリブレーション手法が提案されている(例えば特許文献1参照)。
ヘッドマウントディスプレイの出荷前に厳密なカメラキャリブレーションを行っても、運用時の発熱、振動、衝撃など個々の事情によりハードウェアに経年変化が生じ、情報の取得精度が低下していくことがある。このためユーザ個々の環境においても、状況に応じてキャリブレーションを実施することが望ましいが、一般的なユーザにとっては、キャリブレーションは馴染みが薄く、その実施に負担感をもつ場合も多い。また環境によっては、キャリブレーションに必要な画像が得られにくく、完了までに多大な時間を要することがあり得る。
本発明はこうした課題に鑑みてなされたものであり、その目的は、ヘッドマウントディスプレイが備えるステレオカメラのキャリブレーションの効率を向上させ、ユーザの負担感を緩和する技術を提供することにある。
上記課題を解決するために、本発明のある態様は情報処理装置に関する。この情報処理装置は、ヘッドマウントディスプレイのカメラにより撮像されたカメラ画像を補正する画像補正部と、補正後のカメラ画像を用いて実物体の状態を推定する状態推定部と、カメラのキャリブレーションに必要な、カメラ画像における特徴点の抽出状況を表すガイド画像をヘッドマウントディスプレイに表示させたうえ、特徴点のデータを収集してキャリブレーションを行い、画像補正部が用いる補正パラメータを更新するキャリブレーション部と、を備えたことを特徴とする。
本発明の別の態様は情報処理方法に関する。この情報処理方法は、ヘッドマウントディスプレイのカメラにより撮像されたカメラ画像を補正するステップと、補正後のカメラ画像を用いて実物体の状態を推定するステップと、カメラのキャリブレーションに必要な、カメラ画像における特徴点の抽出状況を表すガイド画像をヘッドマウントディスプレイに表示させたうえ、特徴点のデータを収集してキャリブレーションを行い、補正するステップで用いられる補正パラメータを更新するステップと、を含むことを特徴とする。
なお、以上の構成要素の任意の組合せ、本発明の表現をシステム、コンピュータプログラム、コンピュータプログラムを読み取り可能に記録した記録媒体、データ構造などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、ヘッドマウントディスプレイが備えるステレオカメラのキャリブレーションの効率を向上させ、ユーザの負担感を緩和できる。
本実施の形態は、ユーザの頭部に装着されたヘッドマウントディスプレイにアプリケーションの画像を表示する画像表示システムに関する。図1は、ヘッドマウントディスプレイ100の外観例を示す。本実施の形態のヘッドマウントディスプレイ100は、出力機構部102および装着機構部104で構成される。装着機構部104は、ユーザが被ることにより頭部を一周し装置の固定を実現する装着バンド106を含む。
出力機構部102は、ヘッドマウントディスプレイ100をユーザが装着した状態において左右の目を覆うような形状の筐体108を含み、内部には装着時に目に正対するように表示パネルを備える。筐体108内部にはさらに、ヘッドマウントディスプレイ100の装着時に表示パネルとユーザの目との間に位置し、ユーザの視野角を拡大する接眼レンズを備えてよい。
ヘッドマウントディスプレイ100はさらに、装着時にユーザの耳に対応する位置にスピーカーやイヤホンを備えてよい。また、ヘッドマウントディスプレイ100は、モーションセンサを内蔵し、ヘッドマウントディスプレイ100を装着したユーザの頭部の並進運動や回転運動、ひいては各時刻の位置や姿勢を検出する。
またヘッドマウントディスプレイ100は、筐体108の前面にステレオカメラ110を備える。ステレオカメラ110は、ユーザの視線に対応する視野で周囲の実空間を動画撮影する。撮影した画像を即時に表示させれば、ユーザが向いた方向の実空間の様子がそのまま見える、いわゆるビデオシースルーを実現できる。さらに撮影画像に映っている実物体の像上に仮想オブジェクトを描画すれば拡張現実(Augmented Reality:AR)を実現できる。
なおステレオカメラ110の配置は図示するものに限らず、例えば筐体108前面の下方に、いくらか下向きの画角となるように実装してもよい。この場合、ステレオカメラ110による撮影画像を、ユーザの正面方向の視野の画像に変換して表示に用いることにより、ビデオシースルーやARを実現できる。
図2は、本実施の形態の画像表示システムの構成例を示す。画像表示システムは、ヘッドマウントディスプレイ100、画像生成装置200、コントローラ140を備える。ヘッドマウントディスプレイ100は、無線通信により画像生成装置200に接続される。画像生成装置200は、さらにネットワークを介してサーバに接続されてもよい。その場合、サーバは、複数のユーザがネットワークを介して参加できるゲームなどのオンラインアプリケーションのデータを画像生成装置200に提供してもよい。
画像生成装置200は、ヘッドマウントディスプレイ100を装着したユーザの頭部の位置や姿勢に基づき視点の位置や視線の方向を特定し、それに応じた視野となるように表示画像を生成してヘッドマウントディスプレイ100に出力する情報処理装置である。例えば、画像生成装置200は、電子ゲームを進捗させつつゲームの舞台である仮想世界を表示画像として生成してもよいし、仮想世界か実世界かに関わらず観賞や情報提供のために動画像を表示させてもよい。
また、ユーザの視点を中心に広い画角のパノラマ画像をヘッドマウントディスプレイ100に表示させることによって、表示世界への深い没入感をユーザに与えることができる。なお、画像生成装置200は、据置型ゲーム機であってもよく、PC(Personal Computer)であってもよい。
コントローラ140は、ユーザの手に把持され、画像生成装置200における画像生成や、ヘッドマウントディスプレイ100における画像表示を制御するためのユーザの操作が入力されるコントローラ(例えばゲームコントローラ)である。コントローラ140は、無線通信により画像生成装置200に接続される。変形例として、ヘッドマウントディスプレイ100とコントローラ140の一方、または両方は、信号ケーブル等を介した有線通信により画像生成装置200に接続されてもよい。
図3は、画像生成装置200がヘッドマウントディスプレイ100に表示させる画像世界の例を説明するための図である。この例では、ユーザ12が仮想空間である部屋にいる状態を作り出している。仮想空間を定義するワールド座標系には、図示するように、壁、床、窓、テーブル、テーブル上の物などのオブジェクトを配置している。画像生成装置200は、当該ワールド座標系に、ユーザ12の視点の位置や視線の方向に応じてビュースクリーン14を定義し、そこにオブジェクトの像を表すことで表示画像を描画する。
画像生成装置200は、ユーザ12の視点の位置や視線の方向を所定のレートで取得し、これに応じてビュースクリーン14の位置や姿勢を変化させる。これにより、ユーザの視点に対応する視野で、画像をヘッドマウントディスプレイ100に表示させることができる。ここで画像生成装置200は、視差を有するステレオ画像を生成してもよい。当該ステレオ画像を、ヘッドマウントディスプレイ100の表示パネルの左右の領域に表示させれば、ユーザ12は仮想空間を立体視できる。これによりユーザ12は、あたかも表示世界の部屋の中にいるような仮想現実を体験できる。
図4は、画像生成装置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)により構成され、処理に必要なプログラムやデータを記憶する。
図5は、ヘッドマウントディスプレイ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を装着したユーザの動きを追跡するトラッキング処理を実行し、その結果に基づき視野を変化させたアプリケーションの画像を、ヘッドマウントディスプレイ100に表示させる。ここで画像表示システム10は、カメラ画像に映る実物体の特徴点と、その3次元空間での位置座標との関係を用いて、ヘッドマウントディスプレイ100の位置や姿勢を所定のレートで取得する。
例えば画像表示システム10は、SLAM(Simultaneous Localization and Mapping)など公知の技術を利用し、ヘッドマウントディスプレイ100の位置や姿勢を追跡する。あるいは画像表示システム10は、当該技術を用いてカメラ画像から得られた情報と、モーションセンサ134による計測値とを統合し、ヘッドマウントディスプレイ100の位置や姿勢をより高い精度で求めてもよい。
図6は、画像生成装置200の機能ブロックを示すブロック図である。上述したように、画像生成装置200は、アプリケーションの進行やサーバとの通信等、一般的な情報処理を実行するが、図6では特に、カメラ画像を用いた情報取得に関する機能ブロックを詳細に示している。なお、図6に示す画像生成装置200の機能のうち少なくとも一部は、ネットワークを介して画像生成装置200に接続されたサーバに実装されてもよいし、ヘッドマウントディスプレイ100に実装されてもよい。
また、図6に示す複数の機能ブロックは、ハードウェア的には、図4に示したCPU222、GPU224、メインメモリ226、記憶部234等の構成で実現でき、ソフトウェア的には、複数の機能ブロックの機能を実装したコンピュータプログラムにより実現できる。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
画像生成装置200は、データ処理部250とデータ記憶部252を備える。データ処理部250は、各種のデータ処理を実行する。データ処理部250は、図4に示した通信部232、出力部236、入力部238を介して、ヘッドマウントディスプレイ100およびコントローラ140とデータを送受信する。データ記憶部252は、データ処理部250により参照または更新されるデータを記憶する。
データ記憶部252は、App記憶部254、補正パラメータ記憶部256、およびマップ記憶部258を備える。App記憶部254は、VRゲームなどのアプリケーションのデータを記憶する。補正パラメータ記憶部256は、ステレオカメラ110のキャリブレーションの結果として得られる、画像補正用のパラメータを格納する。当該補正パラメータは、左右のカメラ固有の内部パラメータおよびカメラ間の外部パラメータから導出される変換式あるいは変換行列を含む。
マップ記憶部258は、ヘッドマウントディスプレイ100の位置や姿勢、ひいてはユーザ頭部の位置や姿勢を推定するためのマップデータを記憶する。本実施の形態のマップデータは、カメラ画像から抽出された特徴点の、3次元空間における分布を表すマップと、キーフレームとを対応づけたデータである。キーフレームは、カメラ画像をもとに生成された画像であり、かつ、所定個数以上の特徴点を含む画像である。各キーフレームには、それを撮影した際のヘッドマウントディスプレイ100の位置および視線方向を対応づけておく。
データ処理部250は、システム部260、App実行部290、表示制御部292を備える。これら複数の機能ブロックの機能は、コンピュータプログラムに実装されてもよい。画像生成装置200のCPU222とGPU224は、上記コンピュータプログラムを記憶部234や記録媒体からメインメモリ226に読み出して実行することにより上記複数の機能ブロックの機能を発揮してもよい。
App実行部290は、ユーザにより選択されたアプリケーションのデータをApp記憶部254から読み出し、実行する。App実行部290は、システム部260(後述の状態推定部276)により推定されたヘッドマウントディスプレイ100の位置や姿勢、ひいてはユーザ頭部の位置や姿勢に応じたアプリケーションの実行結果を生成する。
表示制御部292は、システム部260およびApp実行部290により生成された様々な画像(例えばVR画像やAR画像)のデータをヘッドマウントディスプレイ100へ送信し、それらの画像をヘッドマウントディスプレイ100の表示部124(表示パネル)に表示させる。なお表示制御部292は、音声のデータをヘッドマウントディスプレイ100に送信し、ヘッドマウントディスプレイ100の音声出力部126から出力させてもよい。
システム部260は、ヘッドマウントディスプレイ100に関するシステムの処理を実行する。システム部260は、ヘッドマウントディスプレイ100用の複数のアプリケーション(例えばVRゲーム)に対して共通のサービスを提供する。共通のサービスは、カメラ画像の補正、マップデータの生成、ユーザの位置や姿勢の推定、およびステレオカメラ110のキャリブレーションを含む。システム部260は、カメラ画像取得部262、画像補正部264、状態推定部276、およびキャリブレーション部266を含む。
カメラ画像取得部262は、ヘッドマウントディスプレイ100から送信された、ステレオカメラ110によるカメラ画像を所定のレートで取得する。画像補正部264は、補正パラメータ記憶部256に格納された補正パラメータを用いてカメラ画像を補正する。補正の内容は様々であってよいが、本実施の形態では特に、左右のカメラ画像をステレオ平行化(ステレオレクティフィケーション)する補正を含むものとする。
ステレオ平行化された左右のカメラ画像では、エピポーラ線が画像平面の同一高さに位置する水平線上に表れる。つまり左右のカメラ画像において、同じ実物体上の点を表す特徴点(以後、対応点と呼ぶ)は常に同じ高さの水平線上に表れることになり、画像上の像と実物体との対応関係を高精度かつ効率的に取得できる。
状態推定部276は、画像補正部264による補正後のカメラ画像を用いて実物体の状態、具体的には実世界におけるユーザ頭部の位置および姿勢の少なくとも一方を推定する。例えば状態推定部276は、左右のカメラ画像の一方から、実物体の像の角部(コーナー)やエッジなどの特徴点を抽出する。特徴点の抽出には周知の抽出フィルタやアルゴリズムを利用できる。そして状態推定部276は、抽出した特徴点ごとに、他方のカメラ画像において探索範囲を設定し、ブロックマッチングを行うことで対応点、すなわち対応する特徴点のペアを検出する。
カメラ画像がステレオ平行化されていることから、状態推定部276は、ブロックマッチングの探索範囲を限定し、少ない誤差で効率的に対応点を導出できる。そして状態推定部276は、左右のカメラ画像における対応点の位置のずれ量に基づき、三角測量の原理で、それらが表す実物体表面上の点の3次元位置座標を求める。
さらに状態推定部276は、求めた3次元位置座標を、マップ記憶部258に格納されたマップデータと照合することにより、元のカメラ画像が撮影された際のステレオカメラ110の位置や姿勢、ひいてはユーザ頭部の位置や姿勢を導出する。上述のとおり状態推定部276は、導出した結果を、ヘッドマウントディスプレイ100が備えるモーションセンサ134による計測値と統合することにより、最終的な位置や姿勢の推定結果としてもよい。
キャリブレーション部266は、左右のカメラの経年ずれを踏まえたキャリブレーションを実施し、必要に応じて補正パラメータ記憶部256に格納された補正パラメータを更新する。ここで経年ずれとは例えば、左右のカメラのピッチ角の差、ヨー角の差、ロール角の差、および左右のカメラ画像におけるスケール比率に発生する、経時的な変化をいう。以後、これらのパラメータを経年ずれパラメータと呼ぶ。
経年ずれパラメータの値が変化すると、画像補正部264がカメラ画像を補正しても、左右のカメラ画像で対応点が垂直方向および水平方向にずれ、誤った対応点が検出されたり、対応点を検出できなくなったりするほか、三角測量により取得される3次元位置座標の精度にも影響が生じる。それらの結果、最終的にはユーザの位置や姿勢の情報の精度が悪化する。そこでキャリブレーション部266は、左右のカメラ画像から抽出された対応点の垂直方向のずれ量を監視し、必要に応じて、経年ずれパラメータの最新値を取得するキャリブレーションを行う。
そしてキャリブレーション部266は、経年ずれパラメータの最新値に基づき、補正パラメータ記憶部256に格納されている補正パラメータの内容を更新する。キャリブレーション部266は、App実行部290が実行中のアプリケーションのために、状態推定部276が左右のカメラ画像から抽出した対応点の情報を利用して、対応点の垂直方向のずれ量を監視してよい。
キャリブレーション部266は、当該ずれ量がしきい値を超えたときなど所定の条件でキャリブレーションの必要性を判定する。そしてキャリブレーション部266は、アプリケーションの実行と並行にキャリブレーションを行う第1段階と、第1段階のキャリブレーションで好適な結果が得られなかった場合の第2段階とに分けて、キャリブレーションを実施する。詳細は後述する
本実施の形態においてキャリブレーション部266が行うキャリブレーションは上述のとおり、対応点の垂直方向のずれ量に基づき、経年ずれパラメータの最新値を取得し、補正パラメータを更新する処理である。この限りにおいて具体的なキャリブレーションの手法は限定されないが、一例として特許文献1に開示される技術を利用できる。詳細な説明は当該文献に開示されるため、以下、概略を説明する。図7は、画像生成装置200のキャリブレーション部266等が行うキャリブレーションの処理手順を示すフローチャートである。
画像生成装置200のカメラ画像取得部262はまず、ステレオカメラ110が撮影してなる左右のカメラ画像のデータを取得する(S10)。当該カメラ画像は、有限時間に撮影された複数のフレームを含んでよい。状態推定部276あるいはキャリブレーション部266は、ステレオ平行化された左右のカメラ画像から対応点を抽出する(S12)。ステレオ平行化は、キャリブレーション前の補正パラメータを用いて、画像補正部264が実施する。
次にキャリブレーション部266は、経年ずれパラメータを変数として対応点の垂直方向のずれ量ΔYを表すモデル式と、実際のずれ量との差が最小になるような経年ずれパラメータを推定する(S14)。画像平面上の座標(X,Y)におけるずれ量ΔYのモデル式は、次のように表される。
ここでパラメータθは、ステレオカメラ110の左右のカメラの水平方向の軸を中心とした回転方向の角度、すなわちピッチ角の差である。パラメータφは、左右のカメラの垂直方向の軸を中心とした回転方向の角度、すなわちヨー角の差である。パラメータαは、左右のカメラの光軸方向を中心とした回転方向の角度、すなわちロール角の差である。パラメータλは、左右のカメラ画像のサイズの比である。
左右のカメラ画像における、対応点の座標を(XL,YL)、(XR,YR)とする。キャリブレーション部266は、それらの中点の座標(XM,YM)におけるモデル式上のずれ量ΔYと、実際のずれ量との残渣の、全対応点についての自乗和Eを次のように計算する。
キャリブレーション部266は、例えばLevenberg-Marquardt法などの一般的な非線形最小二乗法の解法を用い、残渣の自乗和Eを最小とする経年ずれパラメータを推定する。ただしキャリブレーション部266は、経年ずれパラメータのうち対応点の抽出精度への影響が大きいパラメータや経年ずれが大きいパラメータなどを選択して推定対象とし、それ以外は上記計算から省いてもよい。また特許文献1に開示されるように、カメラ画像から得られた対応点の分布に応じて、推定精度が高いと見込めるパラメータのみを推定対象としてもよい。
続いてキャリブレーション部266は、推定した経年ずれパラメータが妥当か否かを確認するベリフィケーションを行う(S16)。ベリフィケーションは、推定した経年ずれパラメータを代入したときのモデル式上のずれ量ΔYと、実際のずれ量との差が0に近い値となっているかを統計的に確認する処理である。キャリブレーション部266は例えば、モデル式上のずれ量ΔYと実際のずれ量との差分を変数とし、各差分が得られる対応点の個数を表すヒストグラムを生成する。
キャリブレーション部266は、差分が0から所定の範囲内に入っている対応点の数が、全対応点に対し所定割合以上であるとき、推定した経年ずれパラメータが妥当であると判定する。経年ずれパラメータを妥当とした場合、キャリブレーション部266は、当該経年ずれパラメータを用いて新たな補正パラメータを導出し、補正パラメータ記憶部256に格納されているデータを更新する(S18)。これにより画像補正部264は、以後、新たな補正パラメータを用いて画像補正を行うことにより、垂直方向のずれの少ないカメラ画像を生成できる。
図8は、画像生成装置200がアプリケーションの実行とともにステレオカメラ110のキャリブレーションを実施する処理手順を示すフローチャートである。このフローチャートは、ユーザがヘッドマウントディスプレイ100を装着し、コントローラ140等により所望のアプリケーションを選択することにより開始される。これに応じてApp実行部290はアプリケーションの実行を開始し(S20)、カメラ画像取得部262はステレオカメラ110が撮影しているカメラ画像のデータ取得を開始する。
そして状態推定部276は、左右のカメラ画像から対応点を抽出し、実物体との位置関係を取得することにより、上述のとおりユーザの頭部の位置姿勢などの状態を推定する(S22)。一方、キャリブレーション部266は、抽出された対応点の、画像平面における垂直方向のずれ量を取得する(S24)。対応点は一対のカメラ画像のフレームから多数、抽出されるため、キャリブレーション部266はそれらのずれ量を統計処理して、有意なずれ量を表す指標を導出してもよい。
ずれ量の指標がしきい値を超えるなど、キャリブレーションを必要とする条件が満たされないうちは(S26のN)、状態推定部276による状態の推定と、キャリブレーション部266によるずれ量の監視が継続される(S22、S24)。当然、推定された位置姿勢の情報を用い、アプリケーションの実行結果を表す画像が生成され、表示制御部292からヘッドマウントディスプレイ100に出力されるが、図では当該処理を省略している。
対応点のずれ量(またはその指標)が、キャリブレーションを必要とする条件を満たしたら(S26のY)、キャリブレーション部266はまず、第1段階のキャリブレーションを実行する(S28)。第1段階のキャリブレーションとは、アプリケーションの実行と並行して行われ、ユーザがその実施を認識しない、いわゆる裏での処理である。
この段階ではキャリブレーション部266は、アプリケーション実行のためにヘッドマウントディスプレイ100から送信されるカメラ画像を用いてキャリブレーションを行う。この場合、ユーザはアプリケーションの結果であるVRなどの表示画像を見ながら動いているため、キャリブレーションに必要な対応点が十分に得られないことが考えられる。
そのような状況でもキャリブレーション部266が、図7で示したようにキャリブレーションを行い、妥当な経年ずれパラメータが得られたら(S32のY)、キャリブレーション部266は、その結果を補正パラメータに反映させ、第1段階のキャリブレーションを終了する。この場合、App実行部290はそのままアプリケーションを続行し、状態推定部276による位置姿勢などの状態の推定と、キャリブレーション部266によるずれ量の監視が継続される(S22、S24)。
一方、第1段階のキャリブレーションによって妥当な経年ずれパラメータが得られなかったら(S32のN)、キャリブレーション部266はApp実行部290にアプリケーションの実行を停止させたうえ(S34)、第2段階のキャリブレーションを実行する(S36)。この際、キャリブレーション部266は、キャリブレーションの必要がある旨のメッセージをヘッドマウントディスプレイ100に表示させ、ユーザに通知してもよい。
また第2段階のキャリブレーションは、ユーザの協力のもと行う必要があるため、キャリブレーション部266は実際には、ユーザがキャリブレーションの開始操作を行ったことを受けて第2段階のキャリブレーションを開始してもよい。アプリケーションの停止についても、App実行部290は、ユーザが停止操作を行ったことを条件にアプリケーションの実行を停止させてもよい。
キャリブレーション部266は第2段階のキャリブレーションにおいても、図7で示した処理手順でキャリブレーションを行ってよい。ただしこの段階では、キャリブレーション部266は、画像平面のうち必要な領域に十分な対応点が得られるまで、カメラ画像を収集する。これにより、対応点のずれ量の残渣の自乗和Eが高精度に得られ、経年ずれパラメータを正しく推定できる可能性が高くなる。
第2段階のキャリブレーションではアプリケーションを停止させているため、ヘッドマウントディスプレイ100における表示はビデオシースルーを基本とする。そしてユーザに適切な方向を向いてもらうことにより、キャリブレーションに適したカメラ画像のデータが得られるようにする。第2段階のキャリブレーションにより妥当な経年ずれパラメータが得られたら、キャリブレーション部266は、その結果を補正パラメータに反映させ、第2段階のキャリブレーションを終了する。
図9は、画像平面における対応点の分布とキャリブレーション精度の関係を説明するための図である。図では、ヘッドマウントディスプレイ100を装着しているユーザがいる室内の空間を模式的に示している。当該空間に対し、左右のカメラ画像のうち一方の視野が、視野30aにあるとする。
視野30aでは、下半分の領域32において椅子やテーブルなどの物が映り、それ以外の領域は壁や天井など一様で大きな面の物が映っている。この場合、視野30aのカメラ画像、およびそれと対となるカメラ画像から抽出される対応点は、下半分の領域32に偏って分布する。上述した、ずれ量ΔYのモデル式によれば、各経年ずれパラメータがずれ量ΔYに与える影響の度合いは、画像平面上で、パラメータによって異なる分布を持つ。
そのため経年ずれパラメータを高い精度で推定するには、画像平面の全領域で満遍なく対応点を抽出し、ずれ量の残渣の計算に広範囲の対応点のデータを組み入れることが望ましい。上述のとおりずれ量の残渣は画像平面における位置座標に対し計算されるため、視野を変化させ、時間方向に対応点のデータを収集すれば、広範囲の位置座標に対しずれ量の残渣が得られることになる。
図の例では、ユーザがいくらか下を向き、カメラ画像の視野を視野30aから視野30bへ変化させれば、画像平面における上半分の領域についても、多くの対応点を抽出できる。以後、視野に対し相対的に像を移動させ、画像平面上の各位置で対応点を取得することを「対応点の収集」と呼ぶ。
一方、上述のとおりカメラ画像に基づきビデオシースルーの画像を生成し、ユーザに見せたとしても、ユーザがどの方向へ顔を向ければよいかわからず、対応点の収集が進捗しないことが考えられる。そこで本実施の形態においてキャリブレーション部266は、第2段階のキャリブレーションにおいて、ビデオシースルーの画像(以後、シースルー画像と呼ぶ)にガイド画像を重畳させユーザの動きを支援することにより、効率的に対応点を収集できるようにする。ガイド画像は、対応点の抽出状況をシースルー画像の視野に対する2次元分布で表した画像である。
図10は、キャリブレーション部266がシースルー画像に重畳させるガイド画像の基本的な構造を例示している。ガイド画像40は、シースルー画像全体、あるいはそのうち所定範囲の領域を覆うサイズを有し、全体領域を所定数に分割してなる小領域(以後グリッドと呼ぶ)によって構成される。グリッドの数は例えば、水平方向、垂直方向に10~30程度とする。なお図ではグリッドの境界線を示しているが、実際のガイド画像では境界線は表さなくてよい。
また図では水平方向を長手方向とする長方形の視野を想定し、それに重畳させるガイド画像40を1つ示しているが、実際には水平方向、垂直方向の幅が略同一の、左目用、右目用のシースルー画像のそれぞれにガイド画像40を重畳させてよい。この場合、ガイド画像40は、例えば16×16個、あるいは28×28個のグリッドで構成する。
なおヘッドマウントディスプレイ100が接眼レンズを有する場合、シースルー画像には、歪曲収差や色収差に応じた歪みを与えておくことにより、接眼レンズを介して見た時に歪みのない画像が視認されるようにする。この場合、キャリブレーション部266は、ガイド画像40にも同様の歪みを与えたうえで重畳させる。これによりユーザには、図示するような直交系のグリッドが視認される。
キャリブレーション部266は、初期状態のガイド画像40を所定色の不透明(透明度0%)な塗りつぶし画像とし、対応点が抽出される都度、グリッド単位で透明度を上げていく。ガイド画像40を赤やオレンジ色など実空間ではあまりない色とすることにより、シースルー画像との混同の可能性を抑えられる。キャリブレーション部266は、各グリッド内での対応点の抽出数に応じて所定の増加幅で当該グリッドの透明度を増加させ、最終的に、抽出数が目標値に達した時点でグリッドが透明になるようにする。
すなわち透明度の増加幅は、対応点の抽出目標数によって決定する。例えば、各グリッドにおける抽出目標数を10個とする場合、キャリブレーション部266は、対応点が1組抽出される都度、グリッドの透明度を10%増加させる。あるいはキャリブレーション部266は、対応点の抽出目標数を8個とし、対応点が1組抽出される都度、グリッドの透明度を12.5%増加させるなどでもよい。このようにすると、対応点が多く収集された部分から先にガイド画像が透明になり、ユーザにとっては視界が開けていくような印象となる。
図11は、シースルー画像にガイド画像を重畳させてなる表示画像の変化を模式的に示している。まず(a)は、第2段階のキャリブレーション開始直後の表示画像を示しており、ユーザの前方の様子を表すシースルー画像がガイド画像で隠蔽される。なお図ではわかりやすさのために、シースルー画像が透けて見えるように示しているが、実際には透明度0%の塗りつぶし画像でよい。あるいは図のとおり、初期状態のガイド画像において透明度を0%以外の値としてもよい。
(b)は、(a)と同じ視野において対応点が抽出されている状態を示している。この例では、図9で例示したのと同様、特徴点が画像平面の下半分の領域に偏って抽出されることを想定している。このためガイド画像は、下半分の領域において徐々に透明度を増し、ユーザにはテーブルや椅子などがクリアに見え始める。このようなガイド画像の変化により、ユーザは、その他の領域もクリアに見たい欲求が高まり、自然に顔を動かし視野を変化させる可能性が高くなる。
(c)はその結果として、ユーザが若干下を向いたことにより、透明度が高いグリッドの範囲が増えた状態を示している。すなわち(b)において透明度が高くなったグリッドはそのままに、画像平面の上半分の領域に相対的にテーブルや椅子の像が移動したことにより、当該領域のグリッドも透明度が上がる傾向となる。ガイド画像の変化を見ながらユーザが意図的に視野を変化させることにより、やがてはガイド画像全体が透明となり、通常のビデオシースルーの状態に到達する。
なお対応点の抽出目標数は、全グリッドで同じであっても異なっていてもよい。例えばキャリブレーション上、重要な領域である、画像平面の4隅および中央の所定サイズの範囲に含まれるグリッドは、抽出目標数を他のグリッドより多くしてもよい。抽出目標数が多いグリッドは、対応点抽出ごとの透明度の増加幅が小さくなるため、見かけとしては透明になるスピードが遅くなる。ユーザが、当該領域に着目して視野を変化させることにより、対応点の抽出目標数の分布などを意識せずとも自然に好適な分布で対応点が収集される。
ガイド画像におけるグリッドのサイズは、等しくてもよいし領域によって異なっていてもよい。例えばキャリブレーション上、重要性の低い領域はグリッドのサイズを他より大きくしてもよい。また対応点の抽出数によってグリッドごとに変化を与える対象は、透明度に限らない。例えばキャリブレーション部266は、透明度を固定とし、色を変化させてもよい。あるいはキャリブレーション部266は、初期状態で表示させていた網掛けなどの模様の密度を、対応点の検出数に応じて低下させることで、シースルー画像が見えていくようにしてもよい。キャリブレーション部266は、透明度、色、模様の密度などの2つ以上を組み合わせて変化させてもよい。
図12は、ガイド画像の別の例を模式的に示している。この例でシースルー画像に重畳されているガイド画像42は、上述のとおり抽出された対応点の数によって透明度が増加するグリッドの集合とともに、抽出されている対応点が表す、実物体上の位置を表すドット等のオブジェクト(例えば特徴点オブジェクト44)を含む。すなわち上述したグリッド集合は、シースルー画像の画面に貼り付いた状態で表されるのに対し、特徴点オブジェクトは、シースルー画像における実物体の像に貼り付いた状態で表される。
特徴点オブジェクトを表示させない場合、グリッドの透明度がある程度上がると、ユーザにとってはそれまでのようなガイド画像の明確な変化が感じられず、顔を向ける拠り所を見失うことが考えられる。図示するように、抽出済みの対応点から得られる、実物体上の特徴点を可視化することにより、ユーザは顔を向けるべき方向の拠り所が得られ、対応点の収集効率を上げることができる。また対応点を画像平面全体に行き渡らせるという作業の状況が明確になり、ユーザの意欲を高められる。なおキャリブレーション部266は好適には、ガイド画像におけるグリッドの色と、特徴点オブジェクトの色を異ならせることにより、ユーザが容易に区別できるようにする。
図13は、キャリブレーション部266がガイド画像を制御する処理手順を示すフローチャートである。このフローチャートは、図8のS36に示した第2段階のキャリブレーションにおいて、図7のS12に示した対応点を抽出する際になされる。まずキャリブレーション部266は、ヘッドマウントディスプレイ100から送信されるカメラ画像からシースルー画像を生成し、それにガイド画像を重畳させた表示画像を生成する(S40)。当該表示画像は、表示制御部292を介してヘッドマウントディスプレイ100に表示される。
ガイド画像を構成する各グリッドには、対応点の抽出目標数が設定され、それに応じて透明度の増加幅も設定されている。キャリブレーション部266は、左右のカメラ画像から対応点を抽出し(S42)、その数に応じて各グリッドの透明度を増加させる(S44)。この処理により、1フレームにおいて抽出された対応点の数だけ、グリッドの透明度に変化が生じる。
キャリブレーション部266は図12で示したように、対応点を示すオブジェクトをガイド画像に含めてもよい。全グリッドで対応点の抽出数が目標値に到達していなければ(S46のN)、キャリブレーション部266は次のフレーム対について対応点を抽出し、その結果に応じてグリッドの透明度を増加させる(S42、S44)。全グリッドにおいて対応点の抽出数が目標値に到達するまで、キャリブレーション部266は順次送信される左右のカメラ画像のフレーム対について同様の処理を繰り返す。
このループ処理において、ユーザは、ガイド画像を見ながら顔の向きを変えることにより、シースルー画像の視野、ひいてはステレオカメラ110の視野を変化させる。このような動作により対応点が収集され、抽出数が目標値に到達したら(S46のY)、キャリブレーション部266はガイド画像を非表示とし通常のビデオシースルーモードへ移行する(S48)。ただし全グリッドで対応点の抽出数が目標値に到達した時点で、ガイド画像は全領域で透明になっているため、見た目の変化は生じない。
一方、ガイド画像における周縁領域に、透明度を変化させない枠部分を設けてもよい。この場合、枠内の全グリッドで対応点の抽出数が目標値に到達すると、当該枠部分のみが残ることになる。そこでキャリブレーション部266はS48において、ガイド画像のうち残りの枠部分をフェードアウトしてガイド画像を非表示としてもよい。いずれにしろユーザは、ガイド画像が透明あるいは非表示となったことにより、キャリブレーションが順調に進捗していることを認識できる。
以上述べた態様では、ユーザの周囲の実空間に、テーブルや椅子など特徴点を一定数以上、収集できる実物体が存在することを前提としていた。一方、そのような実物体が少なくなるほど、ユーザがガイド画像を見ながら顔の向きを変化させても対応点が収集しづらくなり、キャリブレーションに必要な対応点分布が得られるまでの時間が長くなることが考えられる。そこでキャリブレーション部266は、テレビ受像器などの出力装置に、特徴点を多く含む画像を表示させ、カメラ画像に映る特徴点を作り出すことで、対応点の収集をより効率化してもよい。
図14は、出力装置を含めた画像表示システムの構成を示す。この例で画像表示システムは、図2で示したヘッドマウントディスプレイ100、画像生成装置200、コントローラ140に加え、出力装置50を備える。出力装置50は、ヘッドマウントディスプレイ100とは異なる表示装置であって、据置型のテレビ受像器であってよい。出力装置50は、無線通信または有線により画像生成装置200と接続される。
出力装置50はキャリブレーション時のみならず、アプリケーションの実行時にも有用である。すなわちヘッドマウントディスプレイ100を装着したユーザにとって出力装置50は必要ないが、出力装置50を用意することで、別のユーザが出力装置50の表示画像を見ることができる。VRゲームなどのアプリケーションの実行中、画像生成装置200は、ヘッドマウントディスプレイ100を装着したユーザが見ている画像と同じ画像を出力装置50に表示してもよい。
あるいは画像生成装置200は、ヘッドマウントディスプレイ100を装着したユーザが見ている画像と別の画像を表示してもよい。例えばヘッドマウントディスプレイ100を装着したユーザと、別のユーザとが一緒にゲームをプレイするような場合、出力装置50は、当該別のユーザのキャラクタ視点からのゲーム画像を表示してもよい。
この画像表示システムにおける画像生成装置200は、図6で示したのと同様の機能ブロックを有する。ただしキャリブレーション部266は、第2段階のキャリブレーションにおいてキャリブレーション用画像を生成し、表示制御部292を介して出力装置50に表示させる。キャリブレーション用画像は、それを撮影したカメラ画像から対応点を抽出しやすい模様を含む画像である。
図15は、出力装置50に表示されるキャリブレーション用画像とヘッドマウントディスプレイ100に表示されるシースルー画像を模式的に示している。出力装置50に表示するキャリブレーション用画像52は、画像の全体領域にコーナーやエッジが分布するとともに、近い位置で同じパターンの繰り返しがない画像である。図の例でキャリブレーション用画像52は、丸、三角、バツの図形をランダムな向きおよび配置で分布させた画像としている。ただしキャリブレーション用画像に表す図形をこれらに限る主旨ではない。
またキャリブレーション用画像52において、図形と背景を異なる色とすることにより、対応点抽出精度をより高められる。ユーザが、出力装置50の画面の方向に顔を向けると、ヘッドマウントディスプレイ100の表示部124には、シースルー画像としてキャリブレーション用画像52の像が表される。図では左目用画像54a、右目用画像54bとして、視差のある画像対を示している。
画像生成装置200のキャリブレーション部266は、シースルー画像の元となる左右のカメラ画像をヘッドマウントディスプレイ100から取得し、対応点を抽出する。カメラ画像の視野全体に、キャリブレーション用画像52の図形の像が分布していれば、キャリブレーションに必要な対応点も短期間で収集できる。なお図示する例では、キャリブレーション部266は、図11で例示したのと同様に、シースルー画像にガイド画像を重畳させ左目用画像54a、右目用画像54bとしている。
この場合、キャリブレーション部266は上述のとおり、対応点の抽出数に応じてグリッドの透明度を増加させ、キャリブレーション用画像52の像が徐々にクリアに見えるようにする。この構成によれば、出力装置50の画面の一部のみがカメラ画像の視野に入っている状態であっても、ユーザがガイド画像を見ながら顔を動かすことにより、画像平面全体での対応点収集を効率的に行える。
ただし第2段階のキャリブレーション時のビデオシースルーの状態で、出力装置50にキャリブレーション用画像52が表示されていれば、ユーザはその方向へ顔を向ける結果、カメラ画像の大部分の領域にキャリブレーション用画像52の図形が映ることが期待される。そのためガイド画像を表示させずとも、キャリブレーション用画像52によって、対応点収集を短期間で完了させる可能性を高められる。なおキャリブレーション部266は、出力装置50の画面の方向へ顔を向けるようにユーザに促すメッセージを、ヘッドマウントディスプレイ100に表示させてもよい。
キャリブレーション部266はまた、状況に応じてキャリブレーション用画像52の表示態様を制御し、より精度よく効率的に対応点が収集されるようにしてもよい。例えばキャリブレーション部266は、カメラ画像の輝度の特性に応じて、キャリブレーション用画像52の表示輝度を調整してもよい。具体的にはキャリブレーション部266は、周囲の照度が低いなどの理由でカメラ画像の輝度が全体的に低いとき、キャリブレーション用画像52の表示輝度を上げるように出力装置50を制御してもよい。
あるいはキャリブレーション部266は、カメラ画像に映るキャリブレーション用画像の図形の像が適切なサイズになるように、キャリブレーション用画像52の表示倍率を調整してもよい。基本的には、カメラ画像に多数の特徴点が映るほど、対応点の収集を短期間で終えることができる。一方、キャリブレーション用画像52における図形が小さすぎると、カメラ画像において像がつぶれてしまい、対応点を抽出しづらくなる。つまりカメラ画像に映るキャリブレーション用画像52の図形のサイズには、適切な範囲が存在する。
一方、当該サイズは、出力装置50の画面サイズや、当該画面とユーザとの距離に依存して様々に変化し得る。そこでキャリブレーション部266は例えば、カメラ画像に映る図形の像を、パターンマッチングなど周知の技術により抽出し、そのサイズを確認する。そしてキャリブレーション部266は当該図形の像が、対応点の抽出に適したサイズとなるように、出力装置50におけるキャリブレーション用画像52の表示倍率を調整する。
あるいはキャリブレーション部266は、カメラ画像に映る出力装置50の画面の像のサイズ(あるいは画面枠の像のサイズ)に基づき、キャリブレーション用画像52の表示倍率を適切に調整してもよい。あるいはキャリブレーション部266は、キャリブレーションの初期処理として、出力装置50におけるキャリブレーション用画像52の表示倍率を連続的に変化させ、最も多くの対応点が得られる表示倍率を探索することにより、キャリブレーション用画像52の表示倍率を決定してもよい。
キャリブレーション部266は、出力装置50の表示輝度と表示倍率の双方を調整してもよいし、どちらか一方を調整してもよい。いずれにしろ出力装置50にキャリブレーション用画像52を適切に表示させることにより、物の少ない一様な色の室内などでも、カメラ画像に多くの対応点を作り出せる。結果として対応点の収集効率が向上し、ユーザの手間を少なく、キャリブレーションを短期間で完了させることができる。
以上述べた本実施の形態によれば、ヘッドマウントディスプレイが備えるステレオカメラを用いてユーザの位置や姿勢を取得する技術において、ステレオカメラのキャリブレーションに適したカメラ画像が得られるようユーザに動きを促すガイド画像をビデオシースルーの画像に重畳させる。ガイド画像は例えばシースルー画像の視野に対応するサイズとし、所定数に分割してなるグリッドごとに、対応点が検出される都度、透明度が増加し、対応点の検出数が目標値に達した時点で透明になるような画像とする。
これによりユーザは、画像平面において対応点の検出数が足りない領域を一見して把握できる。またビデオシースルーの画像における隠蔽された領域が、対応点の検出とともに徐々に見えてくるような画像上の演出を実現できる。これらのことにより、画像平面の全領域で対応点を抽出できるようなユーザの動作が促進される。結果として、ユーザの負担感を緩和させながら、効率的かつ高精度に対応点を収集でき、ひいてはキャリブレーション処理を短時間で完了させることができる。
またテレビ受像器などの出力装置にキャリブレーション用画像を表示させることにより、実物体の像から対応点を抽出しづらい環境においても、安定して対応点を収集できる。実物体と比較しキャリブレーション用画像は、カメラ画像に映る像の輝度やサイズをキャリブレーションに適した状態とすることが容易なため、当該状態を積極的に作り出すことにより、ユーザの手間をより軽減させることができる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
100 ヘッドマウントディスプレイ、 110 ステレオカメラ、 200 画像生成装置、 256 補正パラメータ記憶部、 258 マップ記憶部、 262 カメラ画像取得部、 264 画像補正部、 266 キャリブレーション部、 276 状態推定部、 292 表示制御部。
Claims (12)
- ヘッドマウントディスプレイのカメラにより撮像されたカメラ画像を補正する画像補正部と、
補正後のカメラ画像を用いて実物体の状態を推定する状態推定部と、
前記カメラのキャリブレーションに必要な、前記カメラ画像における特徴点の抽出状況を表すガイド画像を前記ヘッドマウントディスプレイに表示させたうえ、前記特徴点のデータを収集してキャリブレーションを行い、前記画像補正部が用いる補正パラメータを更新するキャリブレーション部と、
を備えたことを特徴とする情報処理装置。 - 前記キャリブレーション部は、前記特徴点の抽出状況を、前記カメラ画像に基づくシースルー画像の視野に対する2次元分布で表した前記ガイド画像を、前記シースルー画像に重畳させて表示させることを特徴とする請求項1に記載の情報処理装置。
- 前記キャリブレーション部は、前記ガイド画像を分割してなるグリッド内で抽出された前記特徴点の数に応じて、表示態様を前記グリッドごとに変化させることを特徴とする請求項2に記載の情報処理装置。
- 前記キャリブレーション部は、前記ガイド画像を所定色の塗りつぶし画像とし、前記特徴点の抽出数が目標値に達した時点で前記グリッドが透明になるように、当該抽出数に応じて前記グリッドの透明度を増加させることを特徴とする請求項3に記載の情報処理装置。
- 前記キャリブレーション部は、前記特徴点の抽出数に対する表示態様の変化のスピードを、前記ガイド画像の領域によって異ならせることを特徴とする請求項3または4に記載の情報処理装置。
- 前記キャリブレーション部は、抽出された前記特徴点に対応する、実物体上の位置を表すオブジェクトを、前記ガイド画像に含めることを特徴とする請求項1から4のいずれかに記載の情報処理装置。
- 前記キャリブレーション部は、前記状態推定部の推定結果を用いたアプリケーションの実行と並行して行う第1段階のキャリブレーションにおいて妥当な結果が得られなかったとき、前記ガイド画像を表示させることによる第2段階のキャリブレーションを行うことを特徴とする請求項1から4のいずれかに記載の情報処理装置。
- 前記キャリブレーション部は、所定の図形を含むキャリブレーション用画像を前記ヘッドマウントディスプレイと異なる表示装置に表示させ、それを撮影した前記カメラ画像から前記特徴点を抽出することを特徴とする請求項1から4のいずれかに記載の情報処理装置。
- 前記キャリブレーション部は、前記カメラ画像に映る前記キャリブレーション用画像の図形の像のサイズに応じて、前記キャリブレーション用画像の表示倍率を調整することを特徴とする請求項8に記載の情報処理装置。
- 前記キャリブレーション部は、前記カメラ画像の輝度に応じて、前記キャリブレーション用画像の表示輝度を調整することを特徴とする請求項8に記載の情報処理装置。
- ヘッドマウントディスプレイのカメラにより撮像されたカメラ画像を補正するステップと、
補正後のカメラ画像を用いて実物体の状態を推定するステップと、
前記カメラのキャリブレーションに必要な、前記カメラ画像における特徴点の抽出状況を表すガイド画像を前記ヘッドマウントディスプレイに表示させたうえ、前記特徴点のデータを収集してキャリブレーションを行い、前記補正するステップで用いられる補正パラメータを更新するステップと、
を含むことを特徴とする情報処理方法。 - ヘッドマウントディスプレイのカメラにより撮像されたカメラ画像を補正する機能と、
補正後のカメラ画像を用いて実物体の状態を推定する機能と、
前記カメラのキャリブレーションに必要な、前記カメラ画像における特徴点の抽出状況を表すガイド画像を前記ヘッドマウントディスプレイに表示させたうえ、前記特徴点のデータを収集してキャリブレーションを行い、前記補正する機能で用いられる補正パラメータを更新する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022138197A JP2024034143A (ja) | 2022-08-31 | 2022-08-31 | 情報処理装置および情報処理方法 |
US18/455,624 US20240073400A1 (en) | 2022-08-31 | 2023-08-25 | Information processing apparatus and information processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022138197A JP2024034143A (ja) | 2022-08-31 | 2022-08-31 | 情報処理装置および情報処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024034143A true JP2024034143A (ja) | 2024-03-13 |
Family
ID=89995307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022138197A Pending JP2024034143A (ja) | 2022-08-31 | 2022-08-31 | 情報処理装置および情報処理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240073400A1 (ja) |
JP (1) | JP2024034143A (ja) |
-
2022
- 2022-08-31 JP JP2022138197A patent/JP2024034143A/ja active Pending
-
2023
- 2023-08-25 US US18/455,624 patent/US20240073400A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240073400A1 (en) | 2024-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11928838B2 (en) | Calibration system and method to align a 3D virtual scene and a 3D real world for a stereoscopic head-mounted display | |
AU2018389234B2 (en) | Method for calibrating an augmented reality device | |
US7596259B2 (en) | Image generation system, image generation method, program, and information storage medium | |
JP2017174125A (ja) | 情報処理装置、情報処理システム、および情報処理方法 | |
JP6732617B2 (ja) | 情報処理装置および画像生成方法 | |
JP2017090979A (ja) | 情報処理装置、情報処理システム、および情報処理方法 | |
JP6126821B2 (ja) | 画像生成方法、画像表示方法、画像生成プログラム、画像生成システム、および画像表示装置 | |
JP2012058968A (ja) | プログラム、情報記憶媒体及び画像生成システム | |
EP3688985A1 (en) | Head-mountable display system | |
JP7358448B2 (ja) | 画像生成装置、ヘッドマウントディスプレイ、および画像生成方法 | |
US9639972B2 (en) | Computer-readable storage medium having stored therein display control program, display control apparatus, display control method, and display control system for performing display control of a display apparatus capable of stereoscopic display | |
US20220113543A1 (en) | Head-mounted display and image display method | |
US9225968B2 (en) | Image producing apparatus, system and method for producing planar and stereoscopic images | |
JP6768933B2 (ja) | 情報処理装置、情報処理システム、および画像処理方法 | |
KR20200128661A (ko) | 뷰 이미지를 생성하기 위한 장치 및 방법 | |
US20240036327A1 (en) | Head-mounted display and image displaying method | |
JP2003284095A (ja) | 立体画像処理方法および装置 | |
KR101947372B1 (ko) | Hmd에 위치 보정 영상을 제공하는 방법 및 hmd에 위치 보정 영상을 표시하는 방법, 그리고 이를 이용한 위치 보정 영상을 표시하는 hmd | |
JP2024034143A (ja) | 情報処理装置および情報処理方法 | |
US11403830B2 (en) | Image processing device, image processing method, and program | |
JP2019102828A (ja) | 画像処理装置、画像処理方法、及び画像処理プログラム | |
CN116917951A (zh) | 图像合成装置、图像合成方法、以及程序 | |
JPWO2017191703A1 (ja) | 画像処理装置 | |
JP2011205385A (ja) | 立体映像制御装置および立体映像制御方法 | |
JP6930011B2 (ja) | 情報処理装置、情報処理システム、および画像処理方法 |