(57)【要約】【課題】コンピュータグラフィックスの見た目の品質を向上させる。【解決手段】レンダリング部２３２は、仮想空間のオブジェクトをレンダリングしてコンピュータグラフィックス画像を生成する。ＡＲ重畳部２３４は、現実空間の撮影画像にコンピュータグラフィックス画像を重畳して拡張現実画像を生成する。ポストプロセス部２３６は、拡張現実画像にポストプロセスを施す。リプロジェクション部２４０は、ポストプロセスが施された拡張現実画像を新たな視点位置または視線方向に合うように変換するリプロジェクション処理を行う。ＧＰＵ割り込み部２３３は、ＧＰＵ割り込みのタイミングにおいてレンダリングに割り込み、ＧＰＵ割り込みのタイミングまでのレンダリング結果にもとづいて撮影画像とコンピュータグラフィックス画像の重畳、拡張現実画像のポストプロセス、およびポストプロセスが施された拡張現実画像のリプロジェクション処理を実行させる。【選択図】図４
2020064520.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間のオブジェクトをレンダリングしてコンピュータグラフィックス画像を生成するレンダリング部と、
コンピュータグラフィックス画像に後続の描画処理を施す描画処理部と、
グラフィックスプロセッサ割り込みのタイミングにおいてレンダリングに割り込み、前記グラフィックスプロセッサ割り込みのタイミングまでのレンダリング結果にもとづいて前記後続の描画処理を実行させる割り込み部とを含み、
前記描画処理部は、前記後続の描画処理として前記コンピュータグラフィックス画像を新たな視点位置または視線方向に合うように変換するリプロジェクション処理を行うリプロジェクション部を含み、
前記割り込み部は、前記グラフィックスプロセッサ割り込みのタイミングまでのレンダリング結果にもとづいて前記コンピュータグラフィックス画像のリプロジェクション処理を実行させることを特徴とする画像生成装置。
【請求項２】
前記描画処理部は、前記後続の描画処理としてコンピュータグラフィックス画像にポストプロセスを施すポストプロセス部をさらに含み、
前記割り込み部は、前記グラフィックスプロセッサ割り込みのタイミングまでのレンダリング結果にもとづいて前記コンピュータグラフィックス画像のポストプロセスおよびポストプロセスが施された前記コンピュータグラフィックス画像のリプロジェクション処理を実行させることを特徴とする請求項１に記載の画像生成装置。
【請求項３】
前記描画処理部は、現実空間の撮影画像に前記コンピュータグラフィックス画像を重畳して拡張現実画像を生成する重畳部をさらに含み、
前記ポストプロセス部は、前記拡張現実画像にポストプロセスを施し、
前記割り込み部は、前記グラフィックスプロセッサ割り込みのタイミングまでのレンダリング結果にもとづいて前記撮影画像と前記コンピュータグラフィックス画像の重畳、前記拡張現実画像のポストプロセス、およびポストプロセスが施された前記拡張現実画像のリプロジェクション処理を実行させることを特徴とする請求項２に記載の画像生成装置。
【請求項４】
前記レンダリング部が行う基本レンダリングに対して、前記描画処理部は、前記後続の描画処理として前記仮想空間の一部のオブジェクトをレンダリングする部分レンダリングを実行し、
前記割り込み部は、前記グラフィックスプロセッサ割り込みのタイミングにおいて前記基本レンダリングに割り込み、前記グラフィックスプロセッサ割り込みのタイミングまでのレンダリング結果にもとづいて前記部分レンダリングを実行させることを特徴とする請求項１から３のいずれかに記載の画像生成装置。
【請求項５】
前記基本レンダリングでは、前記部分レンダリングで描画対象となるオブジェクトのメッシュデータに基づいて、前記部分レンダリングで描画対象となるオブジェクト自体を描画せずに、他のオブジェクトへの光の影響をレンダリングすることを特徴とする請求項４に記載の画像生成装置。
【請求項６】
前記描画処理部は、前記後続の描画処理として前記コンピュータグラフィックス画像をクロマキー処理してクロマキー画像を生成するクロマキー生成部をさらに含み、
前記クロマキー画像は、現実空間の撮影画像に重畳して拡張現実画像を生成するために利用され、
前記割り込み部は、前記グラフィックスプロセッサ割り込みのタイミングまでのレンダリング結果にもとづいて前記コンピュータグラフィックス画像のクロマキー処理および前記コンピュータグラフィックス画像のリプロジェクション処理を実行させることを特徴とする請求項１に記載の画像生成装置。
【請求項７】
仮想空間のオブジェクトをレンダリングしてコンピュータグラフィックス画像を生成するレンダリングステップと、
コンピュータグラフィックス画像に後続の描画処理を施す描画処理ステップと、
グラフィックスプロセッサ割り込みのタイミングにおいてレンダリングに割り込み、前記グラフィックスプロセッサ割り込みのタイミングまでのレンダリング結果にもとづいて前記後続の描画処理を実行させる割り込みステップとを含み、
前記描画処理ステップは、前記後続の描画処理として前記コンピュータグラフィックス画像を新たな視点位置または視線方向に合うように変換するリプロジェクション処理を行うリプロジェクションステップを含み、
前記割り込みステップは、前記グラフィックスプロセッサ割り込みのタイミングまでのレンダリング結果にもとづいて前記コンピュータグラフィックス画像のリプロジェクション処理を実行させることを特徴とする画像生成方法。
【請求項８】
仮想空間のオブジェクトをレンダリングしてコンピュータグラフィックス画像を生成するレンダリング機能と、
コンピュータグラフィックス画像に後続の描画処理を施す描画処理機能と、
グラフィックスプロセッサ割り込みのタイミングにおいてレンダリングに割り込み、前記グラフィックスプロセッサ割り込みのタイミングまでのレンダリング結果にもとづいて前記後続の描画処理を実行させる割り込み機能とをコンピュータに実現させ、
前記描画処理機能は、前記後続の描画処理として前記コンピュータグラフィックス画像を新たな視点位置または視線方向に合うように変換するリプロジェクション処理を行うリプロジェクション機能を含み、
前記割り込み機能は、前記グラフィックスプロセッサ割り込みのタイミングまでのレンダリング結果にもとづいて前記コンピュータグラフィックス画像のリプロジェクション処理を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像を生成する装置および方法に関する。
【背景技術】
【０００２】
ゲーム機に接続されたヘッドマウントディスプレイを頭部に装着して、ヘッドマウントディスプレイに表示された画面を見ながら、コントローラなどを操作してゲームプレイすることが行われている。ヘッドマウントディスプレイを装着すると、ヘッドマウントディスプレイに表示される映像以外はユーザは見ないため、映像世界への没入感が高まり、ゲームのエンタテインメント性を一層高める効果がある。また、ヘッドマウントディスプレイに仮想現実（ＶＲ(Virtual Reality)）の映像を表示させ、ヘッドマウントディスプレイを装着したユーザが頭部を回転させると、３６０度見渡せる全周囲の仮想空間が表示されるようにすると、さらに映像への没入感が高まり、ゲームなどのアプリケーションの操作性も向上する。
【０００３】
また、非透過型ヘッドマウントディスプレイを装着したユーザは外界を直接見ることができなくなるが、ヘッドマウントディスプレイに搭載されたカメラによって外界の映像を撮影してディスプレイパネルに表示することのできるビデオ透過（ビデオシースルー）型ヘッドマウントディスプレイもある。ビデオ透過型ヘッドマウントディスプレイでは、カメラで撮影される外界の映像にコンピュータグラフィックス（ＣＧ(Computer Graphics)）によって生成された仮想世界のオブジェクトを重畳させることで拡張現実（ＡＲ(Augmented Reality)）の映像を生成して表示することもできる。拡張現実の映像は、現実世界から切り離された仮想現実とは違って、現実世界が仮想オブジェクトで拡張されたものであり、ユーザは現実世界とのつながりを意識しつつ、仮想世界を体験することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
グラフィックスプロセッサの進歩により、レイトレーシングのような計算に時間がかかるレンダリング処理をリアルタイムに実行することができる環境が整いつつある。しかし、コンピュータグラフィックスの品質次第であるが、リアルタイムレイトレーシングを十分なフレームレートで実現することはまだ難しい。特にヘッドマウントで仮想現実や拡張現実の映像を表示するには、１２０ｆｐｓ（フレーム／秒）以上で描画することが求められるが、レンダリング処理に時間がかかってフレームレートが低下し、フレームレートが安定しない状態になると、ユーザはモーションシックになる。一定したフレームレートでも６０ｆｐｓのような低フレームレートでは、人間の目の特性上、ブラーがかかったように見えてしまう。
【０００５】
また、拡張現実の映像をヘッドマウントディスプレイに表示する場合、ヘッドマウントディスプレイに搭載されたカメラではユーザの頭部の動きに連動して高フレームレートで外界の映像が取り込まれるのに対して、重畳される仮想世界はレンダリングに時間がかかるため、仮想世界のフレームレートはカメラに比べると低い。そのため、カメラの高フレームレートに合わせて拡張現実の映像を生成することができず、ユーザは拡張現実の映像に微妙な遅れを感じ、現実世界とのつながり感を失うことになる。また、拡張現実の映像に施すポストプロセスの頻度もレンダリングの頻度で行われるため映像の品質が低下する。
【０００６】
本発明はこうした課題に鑑みてなされたものであり、その目的は、コンピュータグラフィックスの見た目の品質を向上させることのできる画像生成装置および画像生成方法を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様の画像生成装置は、仮想空間のオブジェクトをレンダリングしてコンピュータグラフィックス画像を生成するレンダリング部と、コンピュータグラフィックス画像に後続の描画処理を施す描画処理部と、グラフィックスプロセッサ割り込みのタイミングにおいてレンダリングに割り込み、前記グラフィックスプロセッサ割り込みのタイミングまでのレンダリング結果にもとづいて前記後続の描画処理を実行させる割り込み部とを含む。前記描画処理部は、前記後続の描画処理として前記コンピュータグラフィックス画像を新たな視点位置または視線方向に合うように変換するリプロジェクション処理を行うリプロジェクション部を含み、前記割り込み部は、前記グラフィックスプロセッサ割り込みのタイミングまでのレンダリング結果にもとづいて前記コンピュータグラフィックス画像のリプロジェクション処理を実行させる。
【０００８】
本発明の別の態様は、画像生成方法である。この方法は、仮想空間のオブジェクトをレンダリングしてコンピュータグラフィックス画像を生成するレンダリングステップと、コンピュータグラフィックス画像に後続の描画処理を施す描画処理ステップと、グラフィックスプロセッサ割り込みのタイミングにおいてレンダリングに割り込み、前記グラフィックスプロセッサ割り込みのタイミングまでのレンダリング結果にもとづいて前記後続の描画処理を実行させる割り込みステップとを含む。前記描画処理ステップは、前記後続の描画処理として前記コンピュータグラフィックス画像を新たな視点位置または視線方向に合うように変換するリプロジェクション処理を行うリプロジェクションステップを含み、前記割り込みステップは、前記グラフィックスプロセッサ割り込みのタイミングまでのレンダリング結果にもとづいて前記コンピュータグラフィックス画像のリプロジェクション処理を実行させる。
【０００９】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１０】
本発明によれば、コンピュータグラフィックスの見た目の品質を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】ヘッドマウントディスプレイの外観図である。
【図２】本実施の形態に係る画像生成システムの構成図である。
【図３】ヘッドマウントディスプレイの機能構成図である。
【図４】本実施の形態に係る画像生成装置の機能構成図である。
【図５】カメラ画像にＣＧ画像を重畳して拡張現実画像を生成するための前提となる画像生成システムの構成を説明する図である。
【図６】図５の画像生成システムによる拡張現実画像の生成手順を説明する図である。
【図７】カメラ画像にＣＧ画像を重畳して拡張現実画像を生成するための本実施の形態に係る画像生成システムの構成を説明する図である
【図８】図７の画像生成システムによる拡張現実画像の生成手順を説明する図である。
【発明を実施するための形態】
【００１２】
図１は、ヘッドマウントディスプレイ１００の外観図である。ヘッドマウントディスプレイ１００は、ユーザの頭部に装着してディスプレイに表示される静止画や動画などを鑑賞し、ヘッドホンから出力される音声や音楽などを聴くための表示装置である。
【００１３】
ヘッドマウントディスプレイ１００に内蔵または外付けされたジャイロセンサや加速度センサなどによりヘッドマウントディスプレイ１００を装着したユーザの頭部の位置情報と頭部の回転角や傾きなどの姿勢（orientation）情報を計測することができる。
【００１４】
ヘッドマウントディスプレイ１００にはカメラユニットが搭載されており、ユーザがヘッドマウントディスプレイ１００を装着している間、外界を撮影することができる。
【００１５】
ヘッドマウントディスプレイ１００は、「ウェアラブルディスプレイ」の一例である。ここでは、ヘッドマウントディスプレイ１００に表示される画像の生成方法を説明するが、本実施の形態の画像生成方法は、狭義のヘッドマウントディスプレイ１００に限らず、めがね、めがね型ディスプレイ、めがね型カメラ、ヘッドフォン、ヘッドセット（マイクつきヘッドフォン）、イヤホン、イヤリング、耳かけカメラ、帽子、カメラつき帽子、ヘアバンドなどを装着した場合にも適用することができる。
【００１６】
図２は、本実施の形態に係る画像生成システムの構成図である。ヘッドマウントディスプレイ１００は、一例として、映像・音声をデジタル信号で伝送する通信インタフェースの標準規格であるＨＤＭＩ（登録商標）（High-Definition Multimedia Interface）などのインタフェース３００で画像生成装置２００に接続される。
【００１７】
画像生成装置２００は、ヘッドマウントディスプレイ１００の現在の位置・姿勢情報から、映像の生成から表示までの遅延を考慮してヘッドマウントディスプレイ１００の位置・姿勢情報を予測し、ヘッドマウントディスプレイ１００の予測位置・姿勢情報を前提としてヘッドマウントディスプレイ１００に表示されるべき画像を描画し、ヘッドマウントディスプレイ１００に伝送する。
【００１８】
画像生成装置２００の一例はゲーム機である。画像生成装置２００は、さらにネットワークを介してサーバに接続されてもよい。その場合、サーバは、複数のユーザがネットワークを介して参加できるゲームなどのオンラインアプリケーションを画像生成装置２００に提供してもよい。ヘッドマウントディスプレイ１００は、画像生成装置２００の代わりに、コンピュータや携帯端末に接続されてもよい。
【００１９】
図３は、ヘッドマウントディスプレイ１００の機能構成図である。
【００２０】
制御部１０は、画像信号、センサ信号などの信号や、命令やデータを処理して出力するメインプロセッサである。入力インタフェース２０は、ユーザからの操作信号や設定信号を受け付け、制御部１０に供給する。出力インタフェース３０は、制御部１０から画像信号を受け取り、ディスプレイパネル３２に表示する。
【００２１】
通信制御部４０は、ネットワークアダプタ４２またはアンテナ４４を介して、有線または無線通信により、制御部１０から入力されるデータを外部に送信する。通信制御部４０は、また、ネットワークアダプタ４２またはアンテナ４４を介して、有線または無線通信により、外部からデータを受信し、制御部１０に出力する。
【００２２】
記憶部５０は、制御部１０が処理するデータやパラメータ、操作信号などを一時的に記憶する。
【００２３】
姿勢センサ６４は、ヘッドマウントディスプレイ１００の位置情報と、ヘッドマウントディスプレイ１００の回転角や傾きなどの姿勢情報を検出する。姿勢センサ６４は、ジャイロセンサ、加速度センサ、角加速度センサなどを適宜組み合わせて実現される。３軸地磁気センサ、３軸加速度センサおよび３軸ジャイロ（角速度）センサの少なくとも１つ以上を組み合わせたモーションセンサを用いて、ユーザの頭部の前後、左右、上下の動きを検出してもよい。
【００２４】
外部入出力端子インタフェース７０は、ＵＳＢ（Universal Serial Bus）コントローラなどの周辺機器を接続するためのインタフェースである。外部メモリ７２は、フラッシュメモリなどの外部メモリである。
【００２５】
カメラユニット８０は、レンズ、イメージセンサ、測距センサなど撮影に必要な構成を含み、撮影された外界の映像と奥行き情報を制御部１０に供給する。制御部１０は、カメラユニット８０のフォーカスやズームなどを制御する。
【００２６】
ＨＤＭＩ送受信部９０は、ＨＤＭＩにしたがって映像・音声のデジタル信号を画像生成装置２００との間で送受信する。ＨＤＭＩ送受信部９０は、カメラユニット８０により撮影された外界の映像と奥行き情報を制御部１０から受け取り、ＨＤＭＩ伝送路で画像生成装置２００に送信する。ＨＤＭＩ送受信部９０は、画像生成装置２００により生成された画像をＨＤＭＩ伝送路で画像生成装置２００から受信し、制御部１０に供給する。
【００２７】
制御部１０は、画像やテキストデータを出力インタフェース３０に供給してディスプレイパネル３２に表示させたり、通信制御部４０に供給して外部に送信させることができる。
【００２８】
姿勢センサ６４が検出したヘッドマウントディスプレイ１００の現在の位置・姿勢情報は、通信制御部４０または外部入出力端子インタフェース７０を介して画像生成装置２００に通知される。あるいは、ＨＤＭＩ送受信部９０がヘッドマウントディスプレイ１００の現在の位置・姿勢情報を画像生成装置２００に送信してもよい。
【００２９】
図４は、本実施の形態に係る画像生成装置２００の機能構成図である。同図は機能に着目したブロック図を描いており、これらの機能ブロックはハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現することができる。
【００３０】
画像生成装置２００の少なくとも一部の機能をヘッドマウントディスプレイ１００に実装してもよい。あるいは、画像生成装置２００の少なくとも一部の機能を、ネットワークを介して画像生成装置２００に接続されたサーバに実装してもよい。
【００３１】
位置・姿勢取得部２１０は、ヘッドマウントディスプレイ１００の現在の位置・姿勢情報をヘッドマウントディスプレイ１００から取得する。
【００３２】
視点・視線設定部２２０は、位置・姿勢取得部２１０により取得されたヘッドマウントディスプレイ１００の位置・姿勢情報を用いて、ユーザの視点位置および視線方向を設定する。
【００３３】
ＨＤＭＩ送受信部２８０は、ヘッドマウントディスプレイ１００からカメラユニット８０により撮影された現実空間の映像を受信し、画像信号処理部２５０に供給する。
【００３４】
画像信号処理部２５０は、ヘッドマウントディスプレイ１００のカメラユニット８０により撮影されたＲａｗ画像に対してＲＧＢ変換（デモザイク処理）、ホワイトバランス、色補正、ノイズリダクションなどの画像信号処理（ＩＳＰ(Image Signal Processing)）を施し、さらにカメラユニット８０の光学系による歪みなどを取り除く歪み補正処理を施す。画像信号処理部２５０は画像信号処理および歪み補正処理が施されたＲＧＢ画像を画像生成部２３０に供給する。
【００３５】
画像生成部２３０は、画像記憶部２６０からコンピュータグラフィックスの生成に必要なデータを読み出し、仮想空間のオブジェクトをレンダリングしてＣＧ画像を生成し、画像信号処理部２５０から提供される現実空間のカメラ画像に重畳することで拡張現実画像を生成し、画像記憶部２６０に出力する。
【００３６】
画像生成部２３０は、レンダリング部２３２と、ＧＰＵ割り込み部２３３と、ＡＲ重畳部２３４と、ポストプロセス部２３６と、逆リプロジェクション部２３８と、リプロジェクション部２４０と、歪み処理部２４２とを含む。ＡＲ重畳部２３４、ポストプロセス部２３６、逆リプロジェクション部２３８、リプロジェクション部２４０、歪み処理部２４２による各処理は、ＧＰＵ割り込みが発生すると実行される後続の描画処理の一例である。
【００３７】
レンダリング部２３２は、視点・視線設定部２２０によって設定されたユーザの視点位置および視線方向にしたがって、ヘッドマウントディスプレイ１００を装着したユーザの視点位置から視線方向に見える仮想空間のオブジェクトをレンダリングし、ＡＲ重畳部２３４に与える。
【００３８】
ＧＰＵ割り込み部２３３は、Ｖｓｙｎｃの数ミリ秒前にＧＰＵ割り込みを発生させ、ＧＰＵ割り込みのタイミングにおいてレンダリング部２３２によるレンダリング処理に割り込む。ＧＰＵ割り込みが発生すると、レンダリング部２３２はＧＰＵ割り込みのタイミングまでのレンダリング結果をＡＲ重畳部２３４に与える。
【００３９】
過去の時点の視点位置・視線方向を前提としてレンダリングされたＣＧ画像に対してより新しい時点の視点位置・視線方向で撮影されたカメラ画像を重畳する場合、視点位置・視線方向を過去のＣＧ画像に合わせるためにカメラ画像に対して逆リプロジェクション処理を施す必要がある。
【００４０】
逆リプロジェクション部２３８は、画像信号処理部２５０から供給されるカメラ画像を過去の視点位置・視線方向から見える画像に戻す逆リプロジェクション処理を施し、ＡＲ重畳部２３４に与える。
【００４１】
ＡＲ重畳部２３４は、逆リプロジェクションされたカメラ画像にレンダリング部２３２によりＧＰＵ割り込みのタイミングまでに生成された過去の視点位置・視線方向のＣＧ画像を重畳することで拡張現実画像を生成し、ポストプロセス部２３６に与える。
【００４２】
ポストプロセス部２３６は、拡張現実画像に対して、被写界深度調整、トーンマッピング、アンチエイリアシングなどのポストプロセスを施し、現実空間の画像に仮想オブジェクトが重畳された拡張現実画像が自然で滑らかに見えるように後処理する。
【００４３】
リプロジェクション部２４０は、位置・姿勢取得部２１０からヘッドマウントディスプレイ１００の最新の位置・姿勢情報を受け取り、ポストプロセスが施された拡張現実画像に対してリプロジェクション処理を施し、ヘッドマウントディスプレイ１００の最新の視点位置・視線方向から見える画像に変換する。
【００４４】
ここで、リプロジェクションについて説明する。ヘッドマウントディスプレイ１００にヘッドトラッキング機能をもたせて、ユーザの頭部の動きと連動して視点や視線方向を変えて仮想現実の映像を生成した場合、仮想現実の映像の生成から表示までに遅延があるため、映像生成時に前提としたユーザの頭部の向きと、映像をヘッドマウントディスプレイ１００に表示した時点でのユーザの頭部の向きとの間でずれが発生し、ユーザは酔ったような感覚（「ＶＲ酔い（Virtual Reality Sickness）」などと呼ばれる）に陥ることがある。
【００４５】
このように、ヘッドマウントディスプレイ１００の動きを検知し、ＣＰＵが描画コマンドを発行し、ＧＰＵ（Graphics Processing Unit）がレンダリングを実行し、描画された画像がヘッドマウントディスプレイ１００に出力されるまでには時間がかかる。描画がたとえば６０ｆｐｓ（フレーム／秒）のフレームレートで行われており、ヘッドマウントディスプレイ１００の動きを検知してから画像を出力するまでに１フレーム分の遅れが生じるとする。これはフレームレート６０ｆｐｓのもとでは、１６．６７ミリ秒ほどであり、人間がずれを感知するには十分な時間である。
【００４６】
そこで、「タイムワープ」または「リプロジェクション」と呼ばれる処理を行い、レンダリングした画像をヘッドマウントディスプレイ１００の最新の位置と姿勢に合わせて補正することで人間がずれを感知しにくいようにする。
【００４７】
歪み処理部２４２は、リプロジェクション処理が施された拡張現実画像に対してヘッドマウントディスプレイ１００の光学系で生じる歪みに合わせて画像を変形（distortion）させて歪ませる処理を施し、画像記憶部２６０に記憶する。
【００４８】
クロマキー生成部２４４は、カメラ画像の奥行き情報にもとづいてＣＧ画像からクロマキー画像を生成する。具体的には、現実空間のオブジェクトと仮想空間のオブジェクトの位置関係を判定し、ＣＧ画像において仮想オブジェクトの背景や仮想オブジェクトよりも手前にある現実空間のオブジェクトの部分を特定の１色（たとえば赤色）に塗りつぶしたクロマキー画像を生成する。クロマキー画像は、カメラ画像にＣＧ画像を重畳して拡張現実画像を生成するために利用される。画像生成装置２００側では低解像度で遅延のあるカメラ画像を利用してクロマキー画像を生成し、ヘッドマウントディスプレイ１００側でクロマキー画像にもとづいて低遅延かつ高解像度のカメラ画像にＣＧ画像を重畳することにより、不自然さのない拡張現実画像を生成できる。
【００４９】
ＨＤＭＩ送受信部２８０は、画像記憶部２６０から画像生成部２３０により生成された拡張現実画像のフレームデータを読み出し、ＨＤＭＩにしたがってヘッドマウントディスプレイ１００に伝送する。
【００５０】
図５および図６を参照して、本実施の形態の前提技術を説明し、その後、図７および図８を参照して本実施の形態の改良技術を説明する。
【００５１】
図５は、カメラ画像にＣＧ画像を重畳して拡張現実画像を生成するための前提となる画像生成システムの構成を説明する図である。ここでは、説明を簡単にするため、拡張現実画像を生成するためのヘッドマウントディスプレイ１００と画像生成装置２００の主な構成を図示して説明する。
【００５２】
ヘッドマウントディスプレイ１００のカメラユニット８０により撮影された外界のカメラ画像は画像生成装置２００に送信され、画像信号処理部２５０に供給される。画像信号処理部２５０は、カメラ画像に対して画像信号処理と歪み補正処理を施し、ＡＲ重畳部２３４に与える。
【００５３】
画像生成装置２００のレンダリング部２３２は、ヘッドマウントディスプレイ１００を装着したユーザの視点位置・視線方向から見た仮想オブジェクトを生成し、ＡＲ重畳部２３４に与える。
【００５４】
ＡＲ重畳部２３４は、カメラ画像にＣＧ画像を重畳し、拡張現実画像を生成する。ポストプロセス部２３６は拡張現実画像にポストプロセスを施す。リプロジェクション部２４０はポストプロセスが施された拡張現実画像を最新の視点位置・視線方向に合うように変換する。歪み処理部２４２はリプロジェクション後の拡張現実画像に歪み処理を施す。歪み処理後の最終的なＲＧＢ画像はヘッドマウントディスプレイ１００に送信され、ディスプレイパネル３２に表示される。
【００５５】
図６は、図５の画像生成システムによる拡張現実画像の生成手順を説明する図である。
【００５６】
ヘッドマウントディスプレイ１００のカメラユニット８０が外界を撮影し、Ｒａｗ画像を出力する（Ｓ１０）。画像信号処理部２５０は、カメラユニット８０により撮影されたＲａｗ画像に画像信号処理および歪み補正処理を施し、ＳＬＡＭ（Simultaneous Localization and Mapping）に使用するためのカメラ画像を生成する（Ｓ１２）。ヘッドマウントディスプレイ１００の姿勢センサ６４などの慣性計測ユニット（ＩＭＵ(Inertial Measurement Unit)）から、ヘッドマウントディスプレイ１００の現在の姿勢情報を示すＩＭＵデータを取得する（Ｓ１４）。カメラ画像およびＩＭＵデータを用いて、自己位置推定と環境地図作成を同時に行うＳＬＡＭ処理が実行され、ヘッドマウントディスプレイ１００を装着したユーザの姿勢が推定される（Ｓ１６）。
【００５７】
姿勢推定データにもとづいて視点計算、仮想オブジェクトの物理演算などコンピュータグラフィックスの更新に必要な処理が行われる（Ｓ１８）。レンダリング部２３２は仮想空間のオブジェクトをレンダリングし、ＣＧ画像を生成する（Ｓ２０）。
【００５８】
ここで、レンダリングは、仮想空間に表示するオブジェクトの数に応じて処理量が増えるため、オブジェクトの数が多いと処理に相当な時間がかかることに留意する。
【００５９】
画像信号処理部２５０は、カメラユニット８０により撮影されたＲａｗ画像に画像信号処理および歪み補正処理を施し、ヘッドマウントディスプレイ１００にシースルー映像を提供するためのカメラ画像を生成する（Ｓ２２）。
【００６０】
ＡＲ重畳部２３４は、カメラ画像にＣＧ画像を重畳することで拡張現実画像を生成する（Ｓ２４）。ポストプロセス部２３６は拡張現実画像にポストプロセスを施す（Ｓ２６）。
【００６１】
ここで、ポストプロセスは、画像全体に対する処理であるため、仮想オブジェクトの数には関係なく、レンダリングに比べて短い時間で行うことができることに留意する。
【００６２】
慣性計測ユニットから、ヘッドマウントディスプレイ１００の最新の姿勢情報を示すＩＭＵデータを取得する（Ｓ２８）。リプロジェクション部２４０は、ヘッドマウントディスプレイ１００の最新の姿勢情報に合わせて拡張現実画像を変換する（Ｓ３０）。歪み処理部２４２は、リプロジェクション後の拡張現実画像にレンズ歪み処理を施し、レンズ歪み処理を施した拡張現実画像を出力する（Ｓ３２）。
【００６３】
図５および図６で説明した画像生成システムの構成と処理手順の場合、レンダリングのフレームレートに合わせてカメラ画像を重畳することになる。レンダリングは処理時間がかかるため、レンダリング部２３２による仮想空間のレンダリングのフレームレートは、カメラユニット８０による現実空間の撮影のフレームレートに比べると遅い。たとえば、カメラユニット８０により１２０ｆｐｓの撮影が行われても、レンダリングは６０ｆｐｓでしか描画できないことがある。そのため、ヘッドマウントディスプレイ１００のディスプレイパネルに表示されるシースルー映像のフレームレートはレンダリングのフレームレートに合わせて低下し、シースルー映像がとぎれとぎれになり、拡張現実の映像を見ても現実感が伴わない結果となる。
【００６４】
そこで、本実施の形態では、ＧＰＵ割り込みのタイミングにおいてレンダリングに割り込み、ＧＰＵ割り込みのタイミングまでのレンダリング結果にもとづいてカメラ画像を重畳し、ポストプロセスを実行することで、カメラユニット８０のフレームレートに合わせた滑らかな映像を生成する。
【００６５】
図７は、カメラ画像にＣＧ画像を重畳して拡張現実画像を生成するための本実施の形態に係る画像生成システムの構成を説明する図である。図５の前提術の説明と重複する説明は適宜省略し、前提技術から改善した構成について説明する。
【００６６】
ＧＰＵ割り込み部２３３は、たとえばＶｓｙｎｃの２ミリ秒前にＧＰＵ割り込みが発生するように設定する。ＧＰＵ割り込み部２３３は、ＧＰＵ割り込みのタイミングにおいてレンダリング部２３２によるレンダリング処理に割り込み、ＧＰＵ割り込みのタイミングまでのレンダリング結果にもとづいてそれ以降の各処理、すなわちＡＲ重畳部２３４によるカメラ画像の重畳、ポストプロセス部２３６によるポストプロセス、リプロジェクション部２４０によるリプロジェクション処理、および歪み処理部２４２による歪み処理を実行させる。
【００６７】
逆リプロジェクション部２３８は、画像信号処理部２５０により画像信号処理および歪み補正処理されたカメラ画像に対して逆リプロジェクション処理を施し、過去のヘッドマウントディスプレイ１００の視点位置・視線方向から見える画像に変換し、ＡＲ重畳部２３４に与える。
【００６８】
ＡＲ重畳部２３４は、レンダリング部２３２によるＧＰＵ割り込みのタイミングまでのレンダリング結果のＣＧ画像に対して逆リプロジェクション部２３８により逆リプロジェクションされたカメラ画像を合成する。ポストプロセス部２３６は、ＡＲ重畳部２３４により合成された拡張現実画像にポストプロセスを施す。それ以降の処理は図５の前提技術と同じである。
【００６９】
図８は、図７の画像生成システムによる拡張現実画像の生成手順を説明する図である。
【００７０】
ヘッドマウントディスプレイ１００のカメラユニット８０が外界を撮影し、（ｎ−１）番目のＲａｗ画像を出力する（Ｓ４０）。
【００７１】
ｎ番目のＶｓｙｎｃのタイミングまでに、以下のステップＳ４２〜Ｓ４８の処理が実行されるが、ステップＳ５０のレンダリング処理は一般に時間がかかるため、ｎ番目のＶｓｙｎｃのタイミングまでには完了しないことがある。
【００７２】
画像信号処理部２５０は、カメラユニット８０により撮影された（ｎ−１）番目のＲａｗ画像に画像信号処理および歪み補正処理を施し、ＳＬＡＭに使用するためのカメラ画像を生成する（Ｓ４２）。慣性計測ユニットから、ヘッドマウントディスプレイ１００の現在の姿勢情報を示すＩＭＵデータを取得する（Ｓ４４）。カメラ画像およびＩＭＵデータを用いて、ＳＬＡＭ処理が実行され、ヘッドマウントディスプレイ１００を装着したユーザの姿勢が推定される（Ｓ４６）。
【００７３】
姿勢推定データにもとづいて視点計算、仮想オブジェクトの物理演算などコンピュータグラフィックスの更新に必要な処理が行われる（Ｓ４８）。レンダリング部２３２は仮想空間のオブジェクトをレンダリングし、（ｎ−１）番目のＣＧ画像を生成する（Ｓ５０）が、ｎ番目のＶｓｙｎｃのタイミングまでには完了せず、ＧＰＵ割り込みによりレンダリングに割り込みが入り（Ｓ６０）、レンダリング２３２はＧＰＵ割り込みのタイミングまでのレンダリング結果をＡＲ重畳部２３４に渡す。
【００７４】
次にｎ番目のＶｓｙｎｃのタイミングにおいてヘッドマウントディスプレイ１００のカメラユニット８０が外界を撮影し、ｎ番目のＲａｗ画像を出力する（Ｓ７０）。
【００７５】
（ｎ＋１）番目のＶｓｙｎｃのタイミングまでに、以下のステップＳ７２〜Ｓ８６の処理が実行される。
【００７６】
画像信号処理部２５０は、カメラユニット８０により撮影されたｎ番目のＲａｗ画像に画像信号処理および歪み補正処理を施し、ヘッドマウントディスプレイ１００にシースルー映像を提供するためのｎ番目のカメラ画像を生成する（Ｓ７２）。
【００７７】
慣性計測ユニットから、ヘッドマウントディスプレイ１００の最新の姿勢情報を示すＩＭＵデータを取得する（Ｓ７４）。逆リプロジェクション部２３８は、最新のＩＭＵデータにもとづいてｎ番目のカメラ画像を１フレーム前の視点位置・視線方向から見た（ｎ−１）番目のカメラ画像に変換する（Ｓ７６）。
【００７８】
ＡＲ重畳部２３４は、逆リプロジェクションされた（ｎ−１）番目のカメラ画像に、ステップＳ５０においてＧＰＵ割り込みのタイミングまでにレンダリングされた（ｎ−１）番目のＣＧ画像を重畳することで（ｎ−１）番目の拡張現実の画像を生成する（Ｓ７８）。ポストプロセス部２３６は（ｎ−１）番目の拡張現実画像にポストプロセスを施す（Ｓ８０）。
【００７９】
慣性計測ユニットから、ヘッドマウントディスプレイ１００の最新の姿勢情報を示すＩＭＵデータを取得する（Ｓ８２）。リプロジェクション部２４０は、ヘッドマウントディスプレイ１００の最新の姿勢情報にもとづいて２フレーム先の視点位置・視線方向を予測し、（ｎ−１）番目の拡張現実画像を（ｎ＋１）番目の拡張現実画像に変換する（Ｓ８４）。レンダリングにより２フレーム分遅延するため、２フレーム先を予測してリプロジェクションを行う。
【００８０】
歪み処理部２４２は、リプロジェクション後の（ｎ＋１）番目の拡張現実画像にレンズ歪み処理を施し、（ｎ＋１）番目のＶｓｙｎｃのタイミングでレンズ歪み処理を施した（ｎ＋１）番目の拡張現実画像を出力する（Ｓ８６）。
【００８１】
ここでは図示していないが、ＣＧ画像をカメラ画像に重畳するためにクロマキー合成を利用する場合は、ステップＳ８６の後、クロマキー処理を行ってもよい。前述したように、この場合、クロマキー生成部２４４が低解像度で遅延のあるカメラ画像の奥行き情報にもとづいてＣＧ画像からクロマキー画像を生成し、ヘッドマウントディスプレイ１００側でクロマキー画像にもとづいて低遅延かつ高解像度のカメラ画像にＣＧ画像を重畳することにより、低遅延で高品質の拡張現実画像を生成できる。
【００８２】
このようにレンダリングに時間がかかる場合でも、レンダリングが完了するのを待たずに、Ｖｓｙｎｃに同期して発生するＧＰＵ割り込みによってレンダリングに割り込み、それ以降のカメラ画像とＣＧ画像の重畳や拡張現実画像のポストプロセスなどを実行することで、レンダリング処理に同期することなくカメラのフレームレートで拡張現実画像が生成されて表示される。
【００８３】
逆リプロジェクションは、三次元グラフィックスの視点のタイムスタンプとポストプロセス時に使用するカメラ画像のタイムスタンプを合わせるために行われるものであり、逆リプロジェクションで適用する姿勢の差分を計算するために、２つのタイムスタンプの間に取得されるＩＭＵデータを利用する。
【００８４】
なお、慣性計測ユニットからは常にＩＭＵデータを取得しており、リプロジェクションに必要な区間のＩＭＵデータをすべて利用して姿勢を予測することができる。ＩＭＵデータの取得周期は１ミリ秒以下であり、Ｖｓｙｎｃの間隔よりも短い。ＩＭＵデータが不足している区間は予測時間分を線形補間すればよい。
【００８５】
別の実施の形態として、ＧＰＵ割り込みのタイミングにおいてレンダリングに割り込み、仮想空間の一部のオブジェクトに限ってレンダリングする部分レンダリングを実行してもよい。部分レンダリングもＧＰＵ割り込みが発生すると実行される後続の描画処理の一例である。たとえば、レイトレーシングのように計算に時間を要するグラフィックス処理は基本レンダリングで実行し、ＧＰＵ割り込みが発生すると、基本レンダリングに割り込み、部分レンダリングが実行される。部分レンダリングは、たとえば仮想空間内の移動オブジェクトなど一部のオブジェクトをレンダリングする。
【００８６】
基本レンダリングは静的オブジェクトをレイトレーシングにより高精度で描画するため、高フレームレートの描画は難しく、たとえば３０ｆｐｓでしか描画できない。一方、部分レンダリングは動的オブジェクトを描画するため、フレームレートを上げる必要があり、たとえば６０ｆｐｓで描画する。カメラ画像とＣＧ画像の重畳やポストプロセス、リプロジェクション、歪み処理などはヘッドマウントディスプレイを装着したユーザの頭部の動きに連動して高フレームレートで実行する必要があり、たとえば１２０ｆｐｓで実行する。
【００８７】
異なるフレームレートで異なる種類の描画処理を実行するためにＧＰＵ割り込みに優先度を設けてもよい。基本レンダリングは最も低い優先度の通常処理でレンダリングを実行し、部分レンダリングは、たとえば２回のＶｓｙｎｃに一度、Ｖｓｙｎｃの６ミリ秒前にＧＰＵ割り込みを発生させ、基本レンダリングに割り込んで実行する。ポストプロセスやリプロジェクションは、Ｖｓｙｎｃ毎に、Ｖｓｙｎｃの２ミリ秒前にＧＰＵ割り込みを発生させ、基本レンダリングに割り込んで実行する。ポストプロセスやリプロジェクションは、最も高い優先度の割り込み処理となり、部分レンダリングは中位の優先度の割り込み処理となり、基本レンダリングは最も低い優先度で実行される。
【００８８】
基本レンダリング、部分レンダリング、リプロジェクションの間で描画の前提となる時刻に差が生じるため、時間差に応じた視点変換が必要になる。部分レンダリングを行う場合、基本レンダリングの視点を部分レンダリング開始時の視点にタイムワープしてから部分レンダリングの結果を重ねる。リプロジェクションでは、部分レンダリングの視点からパネル出力時点の視点にタイムワープする。時間差に応じた視点変換の別の方法として、基本レンダリングの視点で部分レンダリングを行い、ポストプロセスのリプロジェクションにおいてパネル出力時点の視点にタイムワープしてもよい。
【００８９】
部分レンダリングの結果を基本レンダリングに反映させる際、以下の点を考慮する必要がある。
【００９０】
部分レンダリングで利用するポリゴンメッシュデータは、基本レンダリング時にも利用するが、カメラ視点からの光線追跡で最初に光線が反射したのが部分レンダリングで利用するメッシュデータの場合のみ、反射させずに光線を直進させる（ただし２度目以降の反射の場合はそのまま利用する）。その結果、部分レンダリングで利用するメッシュ自体は描画されないが、他のオブジェクトには影響を与える。すなわち、少し遅れて見えるが、影の表現もできるようになる。基本レンダリングでは、レイトレーシングに限らず、部分レンダリングで描画対象となるオブジェクトのメッシュデータに基づいて、当該オブジェクト自体を描画せずに、他のオブジェクトへの光の影響をレンダリングする任意の手法を用いてもよい。
【００９１】
基本レンダリングの結果が利用されるのは数フレーム先になるため、部分レンダリングのメッシュデータは、数フレーム先を予想した姿勢のデータを利用する。
【００９２】
以上述べたように、本実施の形態の画像生成装置２００によれば、ＧＰＵ割り込みのタイミングでレンダリングに割り込み、その時点までに生成された画像にポストプロセスを施して出力することができる。レンダリングが完了するのを待たずに、レンダリングとは非同期に、ＧＰＵ割り込みのタイミングで画像を出力できるため、安定した高いフレームレートでの映像出力が可能になる。これによりユーザの酔いを防ぐことができる。またフレームレートを高くすることにより、ディスプレイパネルの解像度が低くても見かけ上、解像度が高くなったようにユーザに感じさせることもできる。
【００９３】
また、本実施の形態の画像生成装置２００によれば、ＧＰＵ割り込みのタイミングでレンダリングに割り込み、高フレームレートでポストプロセスを施すことができるため、滑らかで自然な拡張現実画像を生成することができる。これにより、変動するアプリケーション負荷に依存せずに、円滑な動きの拡張現実体験をユーザに提供することができる。
【００９４】
さらに、本実施の形態の画像生成装置２００によれば、ＧＰＵ割り込みのタイミングで基本レンダリングに割り込み、部分レンダリングを実行することにより、静的なオブジェクトをレイトレーシングなどによって高精度に描画しつつ、動的なオブジェクトを高いフレームレートで描画することができる。
【００９５】
上記の実施の形態では、カメラ画像にＣＧ画像を重畳した拡張現実画像をレンダリングする場合を説明したが、本発明は、拡張現実画像に限らず、ＣＧ画像のレンダリング全般に適用することができ、安定した高いフレームレートで映像を出力することができる。
【００９６】
上記の実施の形態は、ヘッドマウントディスプレイのトラッキングに限らず、一般的にレンダリングに使う仮想カメラのアングルが変化している場合に適用しても効果を奏する。
【００９７】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【００９８】
１０  制御部、  ２０  入力インタフェース、  ３０  出力インタフェース、  ３２  ディスプレイパネル、  ４０  通信制御部、  ４２  ネットワークアダプタ、  ４４  アンテナ、  ５０  記憶部、  ６４  姿勢センサ、  ７０  外部入出力端子インタフェース、  ７２  外部メモリ、  ８０  カメラユニット、  １００  ヘッドマウントディスプレイ、  ２００  画像生成装置、  ２１０  位置・姿勢取得部、  ２２０  視点・視線設定部、  ２３０  画像生成部、  ２３２  レンダリング部、  ２３３  ＧＰＵ割り込み部、  ２３４  ＡＲ重畳部、  ２３６  ポストプロセス部、  ２３８  逆リプロジェクション部、  ２４０  リプロジェクション部、  ２４２  歪み処理部、  ２４４  クロマキー生成部、  ２５０  画像信号処理部、  ２６０  画像記憶部、  ２８０  ＨＤＭＩ送受信部、  ３００  インタフェース。
【図１】
2020064520.tif 000003
【図２】
2020064520.tif 000004
【図３】
2020064520.tif 000005
【図４】
2020064520.tif 000006
【図５】
2020064520.tif 000007
【図６】
2020064520.tif 000008
【図７】
2020064520.tif 000009
【図８】
2020064520.tif 000010