(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024116705
(43)【公開日】2024-08-28
(54)【発明の名称】表示画像生成装置および画像表示方法
(51)【国際特許分類】
G06T 19/00 20110101AFI20240821BHJP
G06F 3/01 20060101ALI20240821BHJP
G06F 3/0346 20130101ALI20240821BHJP
【FI】
G06T19/00 600
G06F3/01 510
G06F3/0346 426
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023022465
(22)【出願日】2023-02-16
(71)【出願人】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(74)【代理人】
【識別番号】100109047
【弁理士】
【氏名又は名称】村田 雄祐
(74)【代理人】
【識別番号】100109081
【弁理士】
【氏名又は名称】三木 友由
(74)【代理人】
【識別番号】100134256
【弁理士】
【氏名又は名称】青木 武司
(72)【発明者】
【氏名】西部 満
(72)【発明者】
【氏名】岩城 春香
(72)【発明者】
【氏名】大江 邦明
(72)【発明者】
【氏名】南野 孝範
【テーマコード(参考)】
5B050
5B087
5E555
【Fターム(参考)】
5B050AA03
5B050BA06
5B050BA09
5B050BA11
5B050BA13
5B050CA08
5B050DA07
5B050EA04
5B050EA19
5B050EA26
5B050FA02
5B050FA05
5B050FA06
5B087AA07
5B087BC05
5E555AA27
5E555AA66
5E555BA08
5E555BA87
5E555BB08
5E555BE16
5E555BE17
5E555CA29
5E555CA42
5E555CB47
5E555DA08
5E555DA09
5E555DB37
5E555DB57
5E555DC09
5E555DC43
5E555FA00
(57)【要約】
【課題】CGと実物体の像を少ない負荷で高精度に合成する。
【解決手段】
コンテンツ処理装置は、ステレオカメラ110が撮影した、実物体276を含む撮影画像を仮想的な投影面272に投影し、表示用の仮想カメラ260aの視点で表したシースルー画像を生成する。CGを合成するとき、実物体276に対応づけて配置された仮想オブジェクト290を、ステレオカメラ110の視点で表した中間画像を生成したうえ、表示用の仮想カメラ260aの視点での合成画像とする。
【選択図】
図7
【特許請求の範囲】
【請求項1】
カメラによる撮影画像のデータを取得する撮影画像取得部と、
表示対象の3次元空間に配置された仮想オブジェクトを、前記カメラを視点として表した中間画像を生成する中間画像生成部と、
前記中間画像と前記撮影画像を、表示用の仮想カメラを視点として表した合成画像を生成する表示画像生成部と、
前記合成画像のデータを表示画像として出力する出力部と、
を備えたことを特徴とする表示画像生成装置。
【請求項2】
前記撮影画像取得部は、ヘッドマウントディスプレイが備えるカメラによる撮影画像を取得し、
前記出力部は、前記ヘッドマウントディスプレイに前記合成画像のデータを出力することを特徴とする請求項1に記載の表示画像生成装置。
【請求項3】
前記中間画像生成部は、前記仮想オブジェクトを前記カメラのスクリーン座標系に射影した状態を表す前記中間画像を生成し、
前記表示画像生成部は、前記撮影画像と前記中間画像を前記カメラのスクリーン座標系で合成したうえ、前記仮想カメラを視点とした画像に変換することにより前記合成画像を生成することを特徴とする請求項1または2に記載の表示画像生成装置。
【請求項4】
前記表示画像生成部は、前記3次元空間に設定した投影面に、前記カメラのスクリーン座標系で合成した画像を投影し、それを前記仮想カメラから見てなる像を前記合成画像とすることを特徴とする請求項3に記載の表示画像生成装置。
【請求項5】
前記中間画像生成部は、前記3次元空間に設定した投影面に、前記カメラから見た前記仮想オブジェクトの像を投影した状態を表す前記中間画像を生成し、
前記表示画像生成部は、前記中間画像を前記仮想カメラから見てなる像と、前記投影面に投影した前記撮影画像を前記仮想カメラから見てなる像とを合成することにより、前記合成画像を生成することを特徴とする請求項1または2に記載の表示画像生成装置。
【請求項6】
前記中間画像生成部は、前記仮想オブジェクトの頂点情報を表す前記中間画像を生成し、
前記表示画像生成部は、前記頂点情報を用いて、前記合成画像において前記仮想オブジェクトの像を描画することを特徴とする請求項1または2に記載の表示画像生成装置。
【請求項7】
カメラによる撮影画像のデータを取得するステップと、
表示対象の3次元空間に配置された仮想オブジェクトを、前記カメラを視点として表した中間画像を生成するステップと、
前記中間画像と前記撮影画像を、表示用の仮想カメラを視点として表した合成画像を生成するステップと、
前記合成画像のデータを表示画像として出力するステップと、
を含むことを特徴とする画像表示方法。
【請求項8】
カメラによる撮影画像のデータを取得する機能と、
表示対象の3次元空間に配置された仮想オブジェクトを、前記カメラを視点として表した中間画像を生成する機能と、
前記中間画像と前記撮影画像を、表示用の仮想カメラを視点として表した合成画像を生成する機能と、
前記合成画像のデータを表示画像として出力する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、撮影画像とCGを合成して表示させる表示画像生成装置、および画像表示方法に関する。
【背景技術】
【0002】
対象空間を自由な視点から鑑賞できる画像表示システムが普及している。例えばヘッドマウントディスプレイにパノラマ映像を表示し、ヘッドマウントディスプレイを装着したユーザの視線方向に応じた画像が表示されるようにしたシステムが開発されている。ヘッドマウントディスプレイにおいて、視差を有するステレオ画像を左目用、右目用として表示させることにより、ユーザには表示された画像が立体的に見え、画像世界への没入感を高めることができる。
【0003】
また実空間を撮影するカメラをヘッドマウントディスプレイに設け、その撮影画像にコンピュータグラフィクス(CG)を合成することにより、拡張現実(AR:Augmented Reality)や複合現実(MR:Mixed Reality)を実現する技術も実用化されている。当該撮影画像はまた、密閉式のヘッドマウントディスプレイに表示させることにより、ユーザが周囲の様子を確認したり、ゲームのプレイエリアを設定したりする際にも有用となる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ARやMRのように、撮影画像にCGを合成する技術においては、実物体の像とCGの位置合わせの精度がコンテンツの質に大きく影響する。またゲームのプレイエリアを実世界の部屋の様子と対応させて提示する場合、両者にずれがあると、ユーザが混乱したり適切なプレイエリア設定が困難になったりする。
【0005】
一方、ユーザの動きに依存して視野が大きく変化し得る状況においては、当該変化にCGを追随させる必要があるため、撮影画像の取得から合成画像の生成までを少ない処理負荷で高速に行うことが求められる。すなわち3次元空間での厳密な位置合わせなどにより演算に時間を要すると、ユーザの動きに対し表示が遅れ、やはりコンテンツの質を低下させたり、映像酔いの原因になったりする。
【0006】
本発明はこうした課題に鑑みてなされたものであり、その目的は、CGと撮影画像を少ない負荷で高精度に合成する技術を提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明のある態様は表示画像生成装置に関する。この表示画像生成装置は、カメラによる撮影画像のデータを取得する撮影画像取得部と、表示対象の3次元空間に配置された仮想オブジェクトを、カメラを視点として表した中間画像を生成する中間画像生成部と、中間画像と撮影画像を、表示用の仮想カメラを視点として表した合成画像を生成する表示画像生成部と、合成画像のデータを表示画像として出力する出力部と、を備えたことを特徴とする。
【0008】
本発明の別の態様は画像表示方法に関する。この画像表示方法は、カメラによる撮影画像のデータを取得するステップと、表示対象の3次元空間に配置された仮想オブジェクトを、カメラを視点として表した中間画像を生成するステップと、中間画像と撮影画像を、表示用の仮想カメラを視点として表した合成画像を生成するステップと、合成画像のデータを表示画像として出力するステップと、を含むことを特徴とする。
【0009】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0010】
本発明によれば、CGと撮影画像を少ない負荷で高精度に合成することができる。
【図面の簡単な説明】
【0011】
【
図1】本実施の形態のヘッドマウントディスプレイの外観例を示す図である。
【
図2】本実施の形態の画像表示システムの構成例を示す図である。
【
図3】本実施の形態の画像表示システムにおけるデータの経路を模式的に示す図である。
【
図4】本実施の形態においてヘッドマウントディスプレイの表示世界を形成する3次元空間と、撮影画像から生成される表示画像の関係を説明するための図である。
【
図5】本実施の形態においてシースルー画像に生じ得る、実世界との差を説明するための図である。
【
図6】本実施の形態においてシースルー画像にCGを合成する際の、位置ずれの発生原理を説明するための図である。
【
図7】本実施の形態においてCGを実物体の像に合わせる手法を説明するための図である。
【
図8】本実施の形態におけるコンテンツ処理装置の内部回路構成を示す図である。
【
図9】本実施の形態におけるヘッドマウントディスプレイの内部回路構成を示す図である。
【
図10】本実施の形態におけるコンテンツ処理装置の機能ブロックの構成を示す図である。
【
図11】本実施の形態で表示対象とする仮想オブジェクトを例示する図である。
【
図12】本実施の形態においてコンテンツ処理装置が合成画像を出力する処理手順とデータの変遷を例示する図である。
【
図13】本実施の形態においてコンテンツ処理装置が合成画像を出力する処理手順とデータの変遷の別の例を示す図である。
【発明を実施するための形態】
【0012】
図1はヘッドマウントディスプレイ100の外観例を示す。この例においてヘッドマウントディスプレイ100は、出力機構部102および装着機構部104で構成される。装着機構部104は、ユーザが被ることにより頭部を一周し装置の固定を実現する装着バンド106を含む。出力機構部102は、ヘッドマウントディスプレイ100をユーザが装着した状態において左右の目を覆うような形状の筐体108を含み、内部には装着時に目に正対するように表示パネルを備える。
【0013】
筐体108内部にはさらに、ヘッドマウントディスプレイ100の装着時に表示パネルとユーザの目との間に位置し、画像を拡大して見せる接眼レンズを備える。ヘッドマウントディスプレイ100はさらに、装着時にユーザの耳に対応する位置にスピーカーやイヤホンを備えてよい。またヘッドマウントディスプレイ100はモーションセンサを内蔵し、ヘッドマウントディスプレイ100を装着したユーザの頭部の並進運動や回転運動、ひいては各時刻の位置や姿勢を検出する。
【0014】
ヘッドマウントディスプレイ100はさらに、筐体108の前面に、実空間を左右の視点から撮影するステレオカメラ110を備える。本実施の形態では、ステレオカメラ110が撮影している動画像を、少ない遅延で表示させることにより、ユーザが向いた方向の実空間の様子をそのまま見せるモードを提供する。以後、このようなモードを「シースルーモード」と呼ぶ。例えばヘッドマウントディスプレイ100は、コンテンツの画像を表示していない期間を自動でシースルーモードとする。
【0015】
これによりユーザは、コンテンツの開始前、終了後、中断時などに、ヘッドマウントディスプレイ100を外すことなく周囲の状況を確認できる。シースルーモードはこのほか、ユーザが明示的に操作を行ったことを契機に開始させてもよいし、プレイエリアの設定時やユーザがプレイエリアから逸脱した時など、状況に応じて、開始させたり終了させたりしてよい。
【0016】
ここでプレイエリアは、ヘッドマウントディスプレイ100により仮想世界を見ているユーザが動き回ることのできる実世界の範囲であり、例えば周囲の物に衝突することなく安全な移動が保証される範囲である。なお図示する例でステレオカメラ110は、筐体108の前面下方に設けられているが、その配置は特に限定されない。またステレオカメラ110以外のカメラが設けられていてもよい。
【0017】
ステレオカメラ110による撮影画像は、コンテンツの画像としても利用できる。例えばカメラの視野にある実物体に合わせた位置、姿勢、動きで、仮想オブジェクトを撮影画像に合成して表示することにより、ARやMRを実現できる。また撮影画像を表示に含めるか否かによらず、撮影画像を解析し、その結果を用いて、描画するオブジェクトの位置、姿勢、動きを決定づけることもできる。
【0018】
例えば、撮影画像にステレオマッチングを施すことにより、被写体の像の対応点を抽出し、三角測量の原理で被写体までの距離を取得してもよい。あるいはVisual SLAM(Simultaneous Localization and Mapping)など周知の技術により、周囲の空間に対するヘッドマウントディスプレイ100、ひいてはユーザの頭部の位置や姿勢を取得してもよい。Visual SLAMは、ステレオ画像から抽出した対応点に基づき、物体表面の特徴点の3次元位置座標を取得するとともに、時系列順のフレームにおいて特徴点を追跡することにより、ステレオカメラ110の位置姿勢と環境地図を並行して取得する技術である。
【0019】
図2は、本実施の形態における画像表示システムの構成例を示す。画像表示システム10において、ヘッドマウントディスプレイ100は、無線通信またはUSB Type-Cなどの周辺機器を接続するインターフェースによりコンテンツ処理装置200に接続される。コンテンツ処理装置200は、さらにネットワークを介してサーバに接続されてもよい。その場合、サーバは、複数のユーザがネットワークを介して参加できるゲームなどのオンラインアプリケーションをコンテンツ処理装置200に提供してもよい。
【0020】
コンテンツ処理装置200は、基本的に、コンテンツを処理して表示画像を生成し、ヘッドマウントディスプレイ100に送信することで表示させる情報処理装置である。典型的にはコンテンツ処理装置200は、ヘッドマウントディスプレイ100を装着したユーザの頭部の位置や姿勢に基づき視点の位置や視線の方向を特定し、それに対応する視野で表示画像を生成する。例えばコンテンツ処理装置200は、電子ゲームを進捗させつつ、ゲームの舞台である仮想世界を表す画像を生成し、VR(仮想現実:Virtual Reality)を実現する。
【0021】
本実施の形態においてコンテンツ処理装置200が処理するコンテンツは特に限定されず、上述のとおりARやMRであってもよいし、映画などあらかじめ表示画像が制作されているものであってもよい。
【0022】
図3は、本実施の形態の画像表示システム10におけるデータの経路を模式的に示している。ヘッドマウントディスプレイ100は上述のとおり、ステレオカメラ110と表示パネル122を備える。表示パネル122は、液晶ディスプレイや有機ELディスプレイなどの一般的な表示機構を有するパネルである。本実施の形態において表示パネル122は、ユーザの左目および右目に正対する左右の領域に、動画像のフレームを構成する左目用および右目用の画像をそれぞれ表示する。
【0023】
左目用画像と右目用画像を、両眼の間隔に対応する視差を有するステレオ画像とすることにより、表示対象を立体的に見せることができる。表示パネル122は、左目用のパネルと右目用のパネルを左右に並べてなる2つのパネルで構成してもよいし、左目用画像と右目用画像を左右に接続した画像を表示する1つのパネルであってもよい。
【0024】
ヘッドマウントディスプレイ100はさらに、画像処理用集積回路120を備える。画像処理用集積回路120は例えば、CPUを含む様々な機能モジュールを搭載したシステムオンチップである。なおヘッドマウントディスプレイ100はこのほか、上述のとおりジャイロセンサ、加速度センサ、角加速度センサなどのモーションセンサや、DRAM(Dynamic Random Access Memory)などのメインメモリ、ユーザに音声を聞かせるオーディオ回路、周辺機器を接続するための周辺機器インターフェース回路などが備えられてよいが、ここでは図示を省略している。
【0025】
図では、ステレオカメラ110が撮影した画像を表示に含めるケースにおける、2通りのデータ経路を矢印で示している。ARやMRを実現する場合、一般にはステレオカメラ110による撮影画像を、コンテンツを処理する主体に取り込み、そこで仮想オブジェクトと合成して表示画像を生成する。図示する画像表示システム10においてコンテンツを処理する主体はコンテンツ処理装置200のため、矢印Bに示すように、ステレオカメラ110で撮影された画像は、画像処理用集積回路120を経て一旦、コンテンツ処理装置200に送信される。
【0026】
そして仮想オブジェクトが合成されるなどしてヘッドマウントディスプレイ100に返され、表示パネル122に表示される。一方、シースルーモードの場合、矢印Aに示すように、ステレオカメラ110で撮影された画像を、画像処理用集積回路120で表示に適した画像に補正したうえ表示パネル122に表示させることができる。矢印Aの経路によれば、矢印Bの経路と比較しデータの伝送経路が格段に短くなるため、画像の撮影から表示までの時間を短縮できるとともに、伝送に要する消費電力を軽減させることができる。
【0027】
ただし本実施の形態におけるシースルーモードのデータ経路を矢印Aに限定する主旨ではない。つまり矢印Bの経路を採用し、ステレオカメラ110により撮影された画像を、一旦、コンテンツ処理装置200に送信してもよい。そして、コンテンツ処理装置200側で表示画像として補正したうえで、ヘッドマウントディスプレイ100に返すことで表示に至る構成としてもよい。
【0028】
いずれにしろ本実施の形態では好適には、ステレオカメラ110による撮影画像を行単位など1フレームより小さい単位で順次、パイプライン処理することにより、表示までの時間を最小限にする。これにより、頭部の動きに対し映像が遅れて表示され、ユーザが違和感や映像酔いを覚える可能性を低くする。
【0029】
図4は、ヘッドマウントディスプレイ100の表示世界を形成する3次元空間と、撮影画像から生成される表示画像の関係を説明するための図である。なお以後の説明では、シースルーモードか否かによらず、表示画像に変換された撮影画像をシースルー画像と呼ぶ。図の上段は、表示画像生成時に構成される仮想的な3次元空間(以後、表示世界と呼ぶ)を俯瞰した状態を示している。仮想カメラ260a、260bは、表示画像を生成するための仮想的なレンダリングカメラであり、ユーザの左視点、右視点に対応する。図の上方向が奥行き方向(仮想カメラ260a、260bからの距離)を表す。
【0030】
シースルー画像268a、268bは、ヘッドマウントディスプレイ100前方の室内の様子をステレオカメラ110が撮影した画像に対応し、左目用、右目用の表示画像の1フレーム分を示している。当然、ユーザが顔の向きを変化させれば、シースルー画像268a、268bの視野も変化する。シースルー画像268a、268bを生成するため、ヘッドマウントディスプレイ100あるいはコンテンツ処理装置200は例えば、表示世界における所定の距離Diに撮影画像264を配置する。
【0031】
より詳細にはヘッドマウントディスプレイ100は、例えば仮想カメラ260a、260bをそれぞれ中心とする半径Diの球の内面に、ステレオカメラ110が撮影した左視点、右視点の撮影画像264を表す。そしてヘッドマウントディスプレイ100は、仮想カメラ260a、264bから撮影画像264を見てなる像を描画することにより、左目用、右目用のシースルー画像268a、268bを生成する。
【0032】
これにより、ステレオカメラ110による撮影画像264は、表示世界を見るユーザの視点での画像に変換される。また同じ被写体の像は、左目用のシースルー画像268aでは右寄りに、右目用のシースルー画像268bでは左寄りに表れる。左視点、右視点の撮影画像は元々、視差を持って撮影されているため、シースルー画像268a、268bにおいても、被写体の像はその実際の位置(距離)に応じて、様々なずれ量で表れる。これによりユーザは、被写体の像に距離感を知覚する。
【0033】
このように、撮影画像264を一様な仮想面上に表したうえ、ユーザに対応する視点からそれを見た状態を表示画像とすると、被写体の配置や構造を正確にトレースした3次元の仮想世界を構築せずとも、奥行き感のある撮影画像を表示できる。また撮影画像264を表す面(以後、投影面と呼ぶ)を、仮想カメラ260から所定距離を保つ球面とすれば、方角によらず想定される範囲に存在する物の像を、一様な品質で表すことができる。結果として、小さい処理負荷での低遅延性と臨場感を両立させることができる。
【0034】
一方で、実世界を直接見た状態と比較すると、図示する表示手法による実物体の像には多少の差異が生じ得る。当該差異は、シースルー画像のみを表示させる際には気づかれにくいが、CGを合成する場合に、CGとの位置ずれとして顕在化しやすい。CGは一般に、仮想オブジェクトの3次元モデルをユーザの視点から見た様子を表すのに対し、シースルー画像は元から、2次元の撮影画像として別途得られたデータであることが、この位置ずれの要因になる。そこで本実施の形態では、シースルー画像における実物体の像の位置を想定してCGを描画することにより、位置ずれの少ない合成画像を表示させる。
【0035】
図5は、本実施の形態においてシースルー画像に生じ得る、実世界との差を説明するための図である。同図は、
図4の上段に示した表示世界の3次元空間を側面から見た様子であり、左右の仮想カメラのうち一方の仮想カメラ260aとともに、ステレオカメラ110のうち対応する側のカメラを示している。上述のとおりシースルー画像は、ステレオカメラ110で撮影された画像を、投影面272に投影し、それを仮想カメラ260aから見た様子を表す。投影面272は例えば、仮想カメラ260aを中心とする半径2mの球の内面である。ただし投影面の形状や大きさはこれに限らない。
【0036】
仮想カメラ260aとステレオカメラ110はヘッドマウントディスプレイ100、ひいてはユーザの頭部の動きに連動する。例えばステレオカメラ110の視野に直方体の実物体276が入ると、その像は、投影面272において、ステレオカメラ110から実物体276への視線280が交差する位置278近傍に投影される。これを仮想カメラ260aから見たシースルー画像では、本来は視線282の方向にあるべき実物体276が、視線284の方向に表される。結果としてユーザには、実物体276が距離Dだけ手前に存在するように見える(表示上実物体286)。
【0037】
図6は、シースルー画像にCGを合成する際の、位置ずれの発生原理を説明するための図である。同図は、
図5で示した環境において、実物体276の上に存在するように仮想オブジェクト290をCGで表現することを想定している。この場合、一般的には、まず実物体276の3次元位置座標を求め、それに対応するように、表示世界における仮想オブジェクト290を位置決めする。
【0038】
そして仮想カメラ260aから仮想オブジェクト290を見た状態を、CG画像として描画し、シースルー画像と合成する。この手順によれば、当然、表示上の仮想オブジェクト290は、仮想カメラ260aから仮想オブジェクト290への視線292の方向に存在するように表現される。一方、
図5を参照して説明したように、実物体276は、距離Dだけ手前に存在する表示上実物体286として表現されるため、ユーザには両者がずれているように見える。
【0039】
この現象は、ステレオカメラ110と仮想カメラ260aの光学中心および光軸方向の差によって生じる。換言すれば、実物体276が、ステレオカメラ110の撮像面に対応するスクリーン座標系、および投影面272を経て、仮想カメラ260aのスクリーン座標系に射影されるのに対し、仮想オブジェクト290は、仮想カメラ260aのスクリーン座標系に直接射影されていることが、両者の位置ずれを生んでいる。そこで本実施の形態では、仮想オブジェクト290を、ステレオカメラ110のスクリーン座標系、あるいは投影面272に一旦、射影することにより、その像(CG)を実物体276の像に合わせる処理を組み入れる。
【0040】
図7は、CGを実物体の像に合わせる手法を説明するための図である。この場合も
図6のケースと同様、実物体276の3次元位置座標を求め、それに対応するように仮想オブジェクト290を位置決めする。一方、本実施の形態では、実物体276がシースルー画像として表されるまでに経由する射影を踏襲するように、仮想オブジェクト290の中間画像を生成する。
【0041】
具体的には、仮想オブジェクト290をステレオカメラ110のスクリーン座標系298に射影することにより、ステレオカメラ110から見た仮想オブジェクト290の状態を中間画像として表す。あるいは、ステレオカメラ110から仮想オブジェクト290を見たときの像を投影面272に投影した状態を位置299近傍に直接表し、中間画像としてもよい。いずれにしろこれらの中間画像によれば、仮想オブジェクト290は、ステレオカメラ110から見た視線294の方向に表される。
【0042】
つまり撮影画像の視点と統一されるため、その後はシースルー画像を生成する残りの処理を行い、いずれかの段階で両者を合成すれば、CGと実物体の像に位置ずれのない画像を表示できる。なおこの場合、仮想オブジェクト290は、仮想カメラ260aから視線296の方向に表される。つまり
図5のケースと同様、ユーザには、仮想オブジェクト290が距離Dだけ手前に存在するように見えることになるが(表示上仮想物体297)、表示上実物体286との位置ずれが解消されることによりユーザには気づかれにくく、全体として精度のよい合成画像が表示されているように見せることができる。
【0043】
図8は、コンテンツ処理装置200の内部回路構成を示す。コンテンツ処理装置200は、CPU(Central Processing Unit)222、GPU(Graphics Processing Unit)224、メインメモリ226を含む。これらの各部は、バス230を介して相互に接続される。バス230にはさらに入出力インターフェース228が接続される。入出力インターフェース228には、通信部232、記憶部234、出力部236、入力部238、記録媒体駆動部240が接続される。
【0044】
通信部232は、USBやIEEE1394などの周辺機器インターフェースや、有線LANまたは無線LAN等のネットワークインターフェースを含む。記憶部234は、ハードディスクドライブや不揮発性メモリ等を含む。出力部236は、ヘッドマウントディスプレイ100へのデータを出力する。入力部238は、ヘッドマウントディスプレイ100からのデータ入力を受け付け、また、図示しないコントローラからのデータ入力を受け付ける。記録媒体駆動部240は、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する。
【0045】
CPU222は、記憶部234に記憶されているオペレーティングシステムを実行することによりコンテンツ処理装置200の全体を制御する。また、CPU222は、記憶部234またはリムーバブル記録媒体から読み出されてメインメモリ226にロードされた、あるいは通信部232を介してダウンロードされた各種プログラム(例えばVRゲームアプリケーション等)を実行する。GPU224は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、CPU222からの描画命令にしたがって描画処理を行い、描画結果を出力部236に出力する。メインメモリ226は、RAM(Random Access Memory)により構成され、処理に必要なプログラムやデータを記憶する。
【0046】
図9は、ヘッドマウントディスプレイ100の内部回路構成を示す。ヘッドマウントディスプレイ100は、CPU136、GPU138、メインメモリ140、表示部142を含む。これらの各部はバス152を介して相互に接続されている。バス152にはさらに、音声出力部144、通信部146、モーションセンサ148、ステレオカメラ110、および記憶部150が接続される。なおバス152の構成は限定されず、例えば複数のバスをインターフェースで接続した構成としてもよい。
【0047】
CPU136は、記憶部150に記憶されているオペレーティングシステムを実行することによりヘッドマウントディスプレイ100の全体を制御する。またCPU136は、記憶部150から読み出されてメインメモリ140にロードされた、あるいは通信部146を介してダウンロードされた、各種プログラムを実行する。GPU138は、CPU136からの描画命令にしたがって画像の描画や補正を行う。メインメモリ140は、RAMにより構成され、処理に必要なプログラムやデータを記憶する。
【0048】
表示部142は、
図3で示した表示パネル122を含み、ヘッドマウントディスプレイ100を装着したユーザの眼前に画像を表示する。音声出力部144は、ヘッドマウントディスプレイ100の装着時にユーザの耳に対応する位置に設けたスピーカーやイヤホンで構成され、ユーザに音声を聞かせる。
【0049】
通信部146は、コンテンツ処理装置200との間でデータを送受するためのインターフェースであり、Bluetooth(登録商標)など既知の無線通信技術、あるいは有線通信技術により通信を実現する。モーションセンサ148はジャイロセンサ、加速度センサ、角加速度センサなどを含み、ヘッドマウントディスプレイ100の傾き、加速度、角速度などを取得する。ステレオカメラ110は、
図1で示したとおり、周囲の実空間を左右の視点から撮影するビデオカメラの対である。記憶部150はROM(Read Only Memory)などのストレージで構成される。
【0050】
図10は、本実施の形態におけるコンテンツ処理装置200の機能ブロックの構成を示している。図示する機能ブロックは、ハードウェア的には、
図8に示した回路構成で実現でき、ソフトウェア的には、記憶部234からメインメモリ226にロードした、データ入力機能、データ保持機能、画像処理機能、通信機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【0051】
またコンテンツ処理装置200は、上述のとおり様々な電子コンテンツを処理したりサーバと通信したりする機能を有してよいが、図では、シースルー画像にCGを合成しヘッドマウントディスプレイ100に表示させる機能の構成を示している。この観点でコンテンツ処理装置200は、表示画像生成装置であってよい。なお図示する機能ブロックのうちの一部は、ヘッドマウントディスプレイ100が備えていてもよい。
【0052】
コンテンツ処理装置200は、ヘッドマウントディスプレイ100から各種データを取得するデータ取得部70、表示画像のデータを生成する表示画像生成部76、および、表示画像のデータを出力する出力部78を備える。コンテンツ処理装置200はさらに、実物体の表面を検出する物体表面検出部80、物体表面のデータを格納する物体表面データ記憶部82、表示世界に仮想オブジェクトを配置するオブジェクト配置部84、仮想オブジェクトのデータを格納するオブジェクトデータ記憶部86、および、仮想オブジェクトの中間画像を生成する中間画像生成部90を備える。
【0053】
データ取得部70は、ヘッドマウントディスプレイ100が継続的に取得している各種データを、所定のレートで取得する。詳細にはデータ取得部70は、撮影画像取得部72とセンサデータ取得部74を備える。撮影画像取得部72は、ステレオカメラ110による撮影画像のデータを所定のフレームレートでヘッドマウントディスプレイ100から取得する。
【0054】
センサデータ取得部74は、ヘッドマウントディスプレイ100が備えるモーションセンサのデータを所定のレートで取得する。当該センサデータは、加速度や角加速度などの計測値でもよいし、それを用いて導出された、ヘッドマウントディスプレイ100の並進運動や回転運動、ひいては各時刻の位置や姿勢のデータでもよい。前者の場合、センサデータ取得部74は、取得した計測値を用いてヘッドマウントディスプレイ100の位置や姿勢を所定のレートで導出する。
【0055】
物体表面検出部80は、実世界においてユーザの周囲にある実物体の面を検出する。例えば物体表面検出部80は、物体表面上の特徴点分布を3次元空間に表した環境地図のデータを生成する。この場合、物体表面検出部80は、撮影画像取得部72から撮影画像のデータを逐次取得し、上述したVisual SLAMを実行して環境地図のデータを生成する。ただし物体表面検出部80が行う検出手法や、検出結果の表現形式は特に限定されない。物体表面データ記憶部82は、物体表面検出部80による検出結果を示すデータ、例えば環境地図のデータを格納する。
【0056】
オブジェクトデータ記憶部86は、シースルー画像に合成すべき仮想オブジェクトの配置規則や、CGで表すための3次元モデルのデータを格納する。オブジェクト配置部84は、オブジェクトデータ記憶部86に格納された情報に基づき、仮想オブジェクトを表示世界の3次元空間に配置する。
図7で示したように実物体の位置や動きに合わせて仮想オブジェクトを表す場合、オブジェクト配置部84は、物体表面データ記憶部82から環境地図など物体表面の3次元位置情報を取得し、それに対応するように、仮想オブジェクトの3次元での位置や姿勢を決定する。
【0057】
中間画像生成部90は、3次元の表示世界に配置された仮想オブジェクトに対する視点を、撮影画像に表されている実物体に対する視点に揃えた中間画像を生成する。表示画像生成部76は、当該中間画像と撮影画像を用いて、シースルー画像にCGを合成した表示画像を生成する。中間画像生成部90と表示画像生成部76の協働により表示画像を生成する手順として、例えば次の2つがある。
【0058】
(手順1)
中間画像生成部90は、ステレオカメラ110のスクリーン座標系にCGを描画した中間画像を生成する。これにより、撮影画像に対する視点と仮想オブジェクトに対する視点がすでに揃うことになるため、表示画像生成部76は、それらを合成することにより、CGと実物体の像に位置ずれのない画像を生成できる。そして表示画像生成部76は、シースルー画像を生成する場合と同様、当該合成画像を投影面(例えば
図7の投影面272)に投影し、仮想カメラ260から見た状態を表すことにより表示画像を生成する。
【0059】
(手順2)
中間画像生成部90は、シースルー画像を生成する際に撮影画像を投影する投影面(例えば
図7の投影面272)上に、ステレオカメラ110から見た仮想オブジェクトの像を描画(投影)して中間画像とする。すなわち中間画像生成部90は、投影面272に投影された撮影画像と同じ状態のCGを描画する。この場合、表示画像生成部76は、当該中間画像を仮想カメラ260から見た状態の画像と、投影面272に投影した撮影画像を仮想カメラ260から見た状態の画像をそれぞれ生成し、両者を合成して表示画像とする。
【0060】
手順1と手順2には、合成処理を投影面への投影前とするか投影後とするかに差がある。手順1の場合、ステレオカメラ110の視点に合わせてCGを撮影画像に合成しておくことにより、その後の処理は、撮影画像からシースルー画像を生成する処理と同様となる。この場合、一旦、ステレオカメラ110の視点に合わせてCGを描画し合成することで、最終的には、ポリゴンの粗密に関わらず自然な表示画像を生成できる。
【0061】
手順2の場合、撮影画像からシースルー画像を生成するのと同様の処理を、CGと撮影画像で個別に実施したうえ両者を合成している。なお投影面上のCGの描画は、周知の射影変換により、ステレオカメラ110のスクリーン座標系への描画を経由せずに行える。つまりこの場合、仮想カメラ260から見た状態のCGを直接描画できるため、処理を高速化できる。
【0062】
どちらの手順によっても最終的には、撮影された実物体の像とCGに位置ずれのない表示画像を生成できる。中間画像生成部90や表示画像生成部76がそれぞれの画像を生成する際に用いる、ステレオカメラ110の視点の位置や視線の方向、投影面の位置や姿勢、仮想カメラ260の位置や姿勢は、ヘッドマウントディスプレイ100、ひいてはユーザの頭部の動きに依存する。したがって中間画像生成部90および表示画像生成部76は、データ取得部70が取得するデータに基づき、それらのパラメータを所定のレートで決定する。
【0063】
なおどちらの手順においても、中間画像生成部90は、中間画像として実際にCGを描画するのに限らず、像の位置や姿勢を決定づける情報を生成するのみでもよい。例えば中間画像生成部90は、CGの頂点情報のみを画像平面に表し中間画像としてもよい。ここで頂点情報とは、位置座標、法線ベクトル、色、テクスチャ座標など、一般的なCG描画に用いるデータでよい。この場合、表示画像生成部76は、例えばシースルー画像との合成の段階で、中間画像に基づき適宜視点の変換などを行いつつ、実際のCGを描画すればよい。これにより、中間画像の生成に要する負荷が軽減され、より高速に合成画像を生成できる。
【0064】
出力部78は、表示画像のデータを表示画像生成部76から取得し、表示に必要な処理を施して、ヘッドマウントディスプレイ100に順次出力する。当該表示画像は、左目用、右目用の画像対で構成される。出力部78は、接眼レンズを介して見たときに歪みのない画像が視認されるように、歪曲収差や色収差を打ち消す方向に表示画像を補正してよい。出力部78はそのほか、ヘッドマウントディスプレイ100の表示パネルに対応する各種データ変換を行ってよい。
【0065】
図11は、本実施の形態で表示対象とする仮想オブジェクトを例示している。この例では仮想オブジェクトとして、ユーザがプレイエリアを設定する際に表示する、プレイエリアのオブジェクトを示している。プレイエリアのオブジェクト60は、床面部62と境界面部64を含む。床面部62は、床面におけるプレイエリアの範囲を表す。境界面部64はプレイエリアの境界面を表し、例えば床面に対し垂直に交わる面で構成される。床面部62と境界面部64は例えば、半透明の格子形状のオブジェクトとして表す。
【0066】
例えばオブジェクト配置部84は、物体表面検出部80が検出した、ユーザの周囲にある物の表面の構造を表すデータに基づき、床面の位置や広さを特定したうえ、それに合うように、3次元の表示世界でのプレイエリアの位置や形状を決定する。そのように決定されたプレイエリアの像を、シースルー画像に合成して表すことにより、ユーザは実世界でのプレイエリアの範囲を把握したり、プレイエリアを適宜調節したりすることが容易になる。
【0067】
ところが上述した理由により、表示画像上でプレイエリアの像と実物体の像が位置ずれしていると、例えばCGで表された床面部62が実際の床面の像から乖離して見えるなどして、プレイエリアの把握や調節の妨げになることがあり得る。上述の手順1、または手順2によれば、そのような問題が起こりにくくなる。
【0068】
図12は、コンテンツ処理装置200が合成画像を出力する処理手順とデータの変遷を例示している。同図は上記の手順1を想定している。まずコンテンツ処理装置200のオブジェクト配置部84は、プレイエリアの設定やAR、MRの実行などの必要に応じて、表示世界の3次元空間に仮想オブジェクトの3次元モデルを配置する。この際、オブジェクト配置部84は、物体表面データ記憶部82に格納された、実物体の3次元座標に基づき、対応する位置に仮想オブジェクトの3次元座標300を決定する。
【0069】
次に中間画像生成部90は中間画像として、ステレオカメラ110のスクリーン座標系に仮想オブジェクトの像302、つまりCGを描画する(S10)。一方、表示画像生成部76は撮影画像取得部72から、ステレオカメラ110による撮影画像304のデータを取得する。この撮影画像304は当然、実物体をステレオカメラ110のスクリーン座標系に射影した状態を表している。
【0070】
表示画像生成部76は、仮想オブジェクトの像302と撮影画像304を合成して、ステレオカメラのスクリーン座標系での合成画像306を生成する(S12)。当該合成画像は、同じステレオカメラ110から仮想オブジェクトと実物体を見た様子を表しているため、両者に位置ずれが発生しない。続いて表示画像生成部76は、当該合成画像306を、所定の投影面に投影してなる合成画像308を生成する(S14)。
【0071】
そして表示画像生成部76は、表示用の仮想カメラのスクリーン座標系、すなわち表示画像平面に、投影面上の合成画像308を射影してなる合成画像310を描画する(S16)。表示画像生成部76は合成画像310を表示画像として、出力部78に出力する。出力部78は上述のとおり表示画像に対し、ヘッドマウントディスプレイ100が備える接眼レンズに応じた歪みを与える補正などを施したうえ、ヘッドマウントディスプレイ100に出力する。
【0072】
図13は、コンテンツ処理装置200が合成画像を出力する処理手順とデータの変遷の別の例を示している。同図は上記の手順2を想定している。まずコンテンツ処理装置200のオブジェクト配置部84は、
図11の例と同様に、実物体の3次元座標に基づき、対応する位置に仮想オブジェクトの3次元座標320を決定する。次に中間画像生成部90は中間画像として、当該仮想オブジェクトを所定の投影面に投影した状態を表す、仮想オブジェクトの像322、つまりCGを描画する(S20)。
【0073】
この際、中間画像生成部90は、
図7で説明したように、ステレオカメラ110から見た仮想オブジェクト290の像を投影面272に投影することにより、実質的に、同じ投影面272に投影される撮影画像との位置合わせを行う。表示画像生成部76は、表示用の仮想カメラのスクリーン座標系、すなわち表示画像平面に、投影面上の仮想オブジェクトの像322を射影してなる仮想オブジェクトの像324を描画する(S22)。
【0074】
一方、表示画像生成部76は、撮影画像取得部72から、ステレオカメラ110による撮影画像326を取得し、所定の投影面に投影してなる撮影画像328を生成する(S24)。そして表示画像生成部76は、表示用の仮想カメラのスクリーン座標系に、投影面上の撮影画像328を射影してなる撮影画像330を描画する(S26)。そして表示画像生成部76は、仮想オブジェクトの像324と撮影画像330を合成し、仮想カメラのスクリーン座標系で合成画像332を生成する(S28)。
【0075】
なお仮想カメラのスクリーン座標系に撮影画像330を描画するS26の処理は、実際には、仮想オブジェクトの像324が表された画像平面に、撮影画像を直接描画することにより、S28の合成処理と一括して行える。表示画像生成部76は合成画像332を表示画像として、出力部78に出力する。この場合も、出力部78は表示画像に対し、適宜補正を施したうえヘッドマウントディスプレイ100に出力する。
【0076】
以上述べた本実施の形態によれば、ヘッドマウントディスプレイが備えるカメラによる撮影画像と、3次元仮想オブジェクトのCGを合成して表示する際、一旦、カメラ視点でCGを表した中間画像を生成したうえで、表示用の視点での合成画像を生成する。これにより、撮影画像を3次元の実空間構造に厳密に対応づけるといった負荷の高い処理を経由せずに、CGと実物体の像に位置ずれのない合成画像を生成できる。結果として、ユーザの動きによらず高い精度の合成画像を高速に表示させ続けることができる。
【0077】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0078】
例えば、CGと合成する対象は、ヘッドマウントディスプレイが備えるステレオカメラによる撮影画像に限らない。例えば単眼、または3つ以上の複眼のカメラによる撮影画像であっても、本実施の形態と同様の処理により、撮影画像とCGに位置ずれのない合成画像を低い処理負荷で生成できる。また撮影画像と表示画像の視点が異なる表示システムであれば、表示装置はヘッドマウントディスプレイに限らず適用可能である。
【符号の説明】
【0079】
10 画像表示システム、 70 データ取得部、 72 撮影画像取得部、 74 センサデータ取得部、 76 表示画像生成部、 78 出力部、 80 物体表面検出部、 82 物体表面データ記憶部、 84 オブジェクト配置部、 86 オブジェクトデータ記憶部、 90 中間画像生成部、 100 ヘッドマウントディスプレイ、 110 ステレオカメラ、 120 画像処理用集積回路、 122 表示パネル、 136 CPU、 138 GPU、 200 コンテンツ処理装置。