(57)【要約】【課題】  画像をシフトさせた際に発生する黒帯領域を抑制する。【解決手段】  情報処理装置に、現実空間の画像を撮像する撮像手段と、前記画像に基づいて生成された表示画像を表示する表示手段と、画像表示装置の姿勢を計測する計測手段を有する該画像表示装置に接続された情報処理装置であって、前記画像表示装置の姿勢の変位に基づいて前記表示画像の表示位置をシフトさせる制御情報を決定する決定手段と、前記制御情報に基づいて、前記画像表示装置が有する表示光学系に対応して設定される補正テーブルの少なくとも一部を更新する更新手段と、前記補正テーブルに基づいて、シフトさせた前記表示画像のシフトさせた領域を補完して表示させる表示制御手段とを備える。【選択図】  図６
2020106655.tif 000002
【特許請求の範囲】
【請求項１】
現実空間の画像を撮像する撮像手段と、前記画像に基づいて生成された表示画像を表示する表示手段と、画像表示装置の姿勢を計測する計測手段とを有する該画像表示装置に接続された情報処理装置であって、
前記画像表示装置の姿勢の変位に基づいて前記表示画像の表示位置をシフトさせる制御情報を決定する決定手段と、
前記制御情報に基づいて、前記画像表示装置が有する表示光学系に対応して設定される補正テーブルの少なくとも一部を更新する更新手段と、
前記制御情報に基づいて前記表示画像の表示位置をシフトさせ、該シフトさせた領域を前記補正テーブルに基づいて補完して表示させる表示制御手段を有することを特徴とする情報処理装置。
【請求項２】
前記補正テーブルは、前記画像の部分領域毎に前記表示光学系に対応する歪み補正を行う前後の座標変換を行うパラメータであることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記更新手段は、前記画像から決定される前記制御情報に応じて前記補正テーブルを更新することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記表示画像をシフトさせる量に応じた複数の前記補正テーブルを保持する保持手段を更に有し、
前記更新手段は、前記制御情報に基づいて前記表示画像をシフトさせる量に応じて、前記補正テーブルを更新することを特徴とする請求項１または２に記載の情報処理装置。
【請求項５】
前記更新手段は、前記制御情報を入力として前記補正テーブルを出力する学習済みモデルに基づいて前記補正テーブルを更新することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記撮像手段によって画像が撮像されてから、前記表示画像を生成するまでの所要時間における前記計測手段で計測された姿勢に基づいて、前記画像表示装置の姿勢の変位を取得する取得手段を更に有し、
前記決定手段は、前記取得手段によって取得された前記画像表示装置の姿勢の変位に基づいて前記制御情報を決定することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記表示制御手段は、前記画像表示装置の姿勢が変化した向きに対応した前記表示画像の部分領域に対して、該部分領域の周辺画素を拡大するようにして表示することを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記決定手段は、前記画像表示装置の姿勢の変位が大きいほど、前記表示画像の表示位置をシフトさせるシフト量を大きくするように前記制御情報を決定し、
前記表示制御手段は、前記シフト量に応じて拡大する画素の範囲を制御することを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記表示画像は、前記撮像手段によって現実世界を撮像した画像に対して、所定の位置に仮想現実の物体を描写することによって生成された画像であることを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記画像表示装置は、ユーザの頭部に装着されて使用されることを特徴とする請求項１乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記計測手段は、前記画像表示装置のロール、ピッチ、ヨーそれぞれにおける前記姿勢を計測することを特徴とする請求項１乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
コンピュータを、請求項１乃至１１のいずれか１項に記載の情報処理装置として機能させるためのプログラム。
【請求項１３】
現実空間の画像を撮像する撮像手段と、前記画像に基づいて生成された表示画像を表示する表示手段と、画像表示装置の姿勢を計測する計測手段とを有する該画像表示装置に接続された情報処理装置であって、
前記画像表示装置の姿勢の変位に基づいて前記表示画像の表示位置をシフトさせる制御情報を決定する決定手段と、
前記制御情報に基づいて、前記画像表示装置が有する表示光学系に対応して設定される補正テーブルの少なくとも一部を更新する更新手段と、
前記制御情報に基づいて前記表示画像の表示位置をシフトさせ、該シフトさせた領域を前記補正テーブルに基づいて補完して表示させる表示制御工程を有することを情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複合現実感の画像表示に関する。
【背景技術】
【０００２】
近年、現実世界と仮想世界をリアルタイムにシームレスに融合させる技術として複合現実感、いわゆるＭＲ（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）技術が知られている。ＭＲ技術では、ビデオシースルー方式のヘッドマウントディスプレイ（Ｈｅａｄ  Ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ、以下ＨＭＤと省略する）を利用するものがある。ビデオシースルー方式のＨＭＤでは、ＨＭＤを装着するユーザの瞳位置から観察される被写体と略一致する被写体をビデオカメラなどで撮像する。その撮像映像にＣＧ（Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）を重畳表示した画像をユーザがＨＭＤ内部パネルを通して観察する。
【０００３】
上述したビデオシースルー方式のＨＭＤを用いたＭＲ技術においては、ビデオカメラで撮影した撮像映像に対し描画するＣＧをレンダリングし、生成されたＣＧを撮像映像に重畳した表示映像をＨＭＤ内部パネルに表示するシステムが一般的である。このようなシステムは上記一連の処理を行う演算時間が必ず発生するため撮影した映像の時間と表示される映像の時間との間に遅延（レイテンシ）が生じることとなる。このため、ユーザが頭を動かした場合、映像の遅延だけ時間が経過したのち視野の方向が頭の向きに応じて動き出すことになる。このような映像の遅延は、体験者が想定する映像とは異なる映像が表示されるためユーザにとっては違和感となる。この問題に対して、特許文献１では、遅延時間の姿勢変化量に対応した量だけ、表示画像を画面内シフトすることが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１０９９９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１では、表示画像を画面内シフトすることによって、ＨＭＤの画面に画像が表示されない領域（これを黒帯領域と呼ぶ）が生じる。黒帯領域が生じることによって、表示される画像は、ユーザにとって違和感があった。本発明は上記課題に鑑みてなされたものであり、画像をシフトさせた際に発生する黒帯領域を抑制する。
【課題を解決するための手段】
【０００６】
上記課題を解決する本発明にかかる情報処理装置は、現実空間の画像を撮像する撮像手段と、前記画像に基づいて生成された表示画像を表示する表示手段と、画像表示装置の姿勢を計測する計測手段を有する該画像表示装置に接続された情報処理装置であって、前記画像表示装置の姿勢の変位に基づいて前記表示画像の表示位置をシフトさせる制御情報を決定する決定手段と、前記制御情報に基づいて、前記画像表示装置が有する表示光学系に対応して設定される補正テーブルの少なくとも一部を更新する更新手段と、前記補正テーブルに基づいて、シフトさせた前記表示画像のシフトさせた領域を補完して表示させる表示制御手段を有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、画像をシフトさせた際に発生する黒帯領域を抑制できる。
【図面の簡単な説明】
【０００８】
【図１】処理を施す前後の画像の一例を示す図。
【図２】ユーザの頭部の空間座標系の一例を示す図。
【図３】ユーザの動きに基づいた画面表示の一例を示す図。
【図４】ユーザの動きに基づいた画面表示の一例を示す図。
【図５】情報処理システムのハードウェア構成図。
【図６】情報処理システムの機能構成例を示すブロック図。
【図７】情報処理システムが実行する動作の一例を示すフローチャート。
【図８】制御情報取得部が実行する動作の一例を示すフローチャート。
【図９】制御情報取得部が実行する動作の一例を示すフローチャート。
【図１０】情報処理システムの機能構成例を示すブロック図。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して、本発明をその好適な実施形態に基づき詳細に説明する。
【００１０】
＜実施形態１＞
ここで、本実施形態の情報処理について概念を説明する。現実世界を撮像した画像に仮想現実としてＣＧを重畳して表示する情報処理システムでは、撮影した映像の時間と表示される映像を生成する時間との差である遅延時間が生じ、観測者に違和感を与えてしまう。この遅延時間による違和感を軽減するために、遅延時間に相当する観測者の頭部の移動距離を計測し、その移動距離に基づいて画像をシフトすることを考える。図１の（ａ）は現実世界を撮像した画像の一例を示す。この画像を表示するときに観測者が左を向いた場合、図１の（ｂ）のように遅延時間と頭部の変位に応じた幅Ｓピクセルだけシフトした表示画像を横幅Ｗピクセル高さＨピクセルの表示パネルに画面表示させる。しかし、ただシフトしただけでは図１の（ｂ）のように幅Ｓピクセルの黒帯領域が発生してしまう。
【００１１】
そのため本実施形態では、表示系画像処理部１２４で表示系に歪み補正を行い、図１の（ｃ）のような画像を観測者に観測されるように、補正テーブルを動的に変更する。補正テーブルは、ＨＭＤの表示光学系に基づいて設定されるパラメータであって、画像の部分領域毎に表示光学系に対応する歪み補正を行う前後の座標変換を行う。入力画像の各画素、もしくはＮピクセル毎に座標変換のパラメータが設定される。なお、後者の場合、Ｎピクセルの間にある画素については線形補完を行う。画像全体について関数を設定してもよいし、一部の領域について設定してもよい。図１の（ｃ）は、図１の（ｂ）で生じていた黒帯を軽減するために、シフト量Ｓピクセルに対応した幅Ｓ’ピクセルの領域の画像情報を用いて幅Ｓピクセルの欠損領域を補完するように黒帯領域及び隣接領域に対応する補正テーブルを変更する。このような処理によって黒帯領域を軽減する。
【００１２】
なお、シフト量Ｓピクセルの黒帯領域の補完に利用する隣接領域の幅Ｓ‘ピクセルは、Ｓの量に応じて設定され、例えばＳ＜Ｓ’≦２Ｓの範囲で定義する。例えば、Ｓが大きくなるほどＳ’の大きさを大きく設定する。また、Ｓの大きさがある程度の大きさ（Ｗの半分等）を超える場合は、Ｓ’の大きさの最大値を予め設定する。このように設定することで違和感の少ない画像が生成できる。図１（ｃ）の幅Ｓ’’の領域は、ユーザの注目領域であるので補正テーブルを変更せずに表示する。なお、幅Ｓ’の隣接領域より左側の領域（幅Ｓ’’の領域）に対応する補正テーブルは変更しても良い。例えば、幅Ｓピクセルの領域に隣接する幅Ｓ‘の領域に含まれる画素情報を用いて補完を行うとき、幅Ｓ’に含まれる画素２００の情報を隣接する画素にも適用することによって、引き伸ばしたような部分画像を表示する。そのため、幅Ｓ’ピクセルの領域内にある画素２００は図１の（ｂ）では図１の（ａ）と同じ大きさであるが、図１の（ｃ）では図１の（ａ）より大きくなる。なお、Ｓ’の決め方として次のような方法も考えられる。ＨＭＤ装着者は表示画像の中央から頭部の動く方向に該当する注目領域を注視する。例えば、図１（ｂ）（ｃ）の太枠で囲まれた領域を注目領域とする。このとき、Ｓ‘は注目領域を含まないように設定するとよい。つまり、注目領域に対応する補正テーブルは更新を抑制する。このようにすることで、ユーザが注視する注目領域を高画質で表示し、ユーザが注目しない領域のみを補完するため、違和感がより少ない画像を表示できる。
【００１３】
一方、幅Ｓ’の領域外である画素２０１は、図１の（ａ），（ｂ），（ｃ）ともに同じ大きさである。図１の（ｃ）の画像を観測者に見せることで、遅延による違和感を軽減することが出来る。図１の（ｄ）は図１の（ｃ）を観測者に見せるために表示系歪み補正を行った後の画像である。つまり表示制御部１１０７は、図１の（ａ）の入力画像を、図１の（ｄ）ののような表示画像に補正させる制御を行う。これによって、黒帯領域を抑制した、見栄えのいい表示をユーザに提示することが出来る。
【００１４】
図２から図４を用いて本実施形態の概要について説明する。図２にＨＭＤを装着した観察者の頭部の空間座標系の一例を示す図である。本実施形態では、ＨＭＤ１００を装着した観察者の視線方向をＲｏｌｌ軸（Ｒ）、視線方向に対して水平方向をＰｉｔｃｈ軸（Ｐ）、視線方向に対して垂直方向をＹａｗ（Ｙ）と定義する。それぞれの軸に対して回転した場合をそれぞれＲｏｌｌ、Ｐｉｔｃｈ、Ｙａｗ（ロール、ピッチ、ヨー）と定義する。すなわち、Ｒｏｌｌは観察者が頭部を傾ける場合、Ｐｉｔｃｈは観察者がうなずく場合、Ｙａｗは観察者が首を横に振る場合となる。
【００１５】
図３は、ＨＭＤ１００を装着した観察者が、（ａ）：頭部動作なしの場合、（ｂ）：頭部をＹａｗ動作した場合、（ｃ）：頭部をＰｉｔｃｈ動作した場合、（ｄ）：頭部をＲｏｌｌ動作した場合、（ｅ）：頭部を前後移動した場合について説明している。それぞれについて、上から順に、画像シフトのみ実施する場合の状態、体験中の観察者を頭上から見た現実世界の様子、ＭＲ体験中の観察者を横から見た様子、ＭＲ映像を体験中の観察者を正面から見た様子である。頭部動作なしの場合、解像度Ｈ×Ｖの範囲内に表示される。ここで、頭部動作情報は、加速度センサ、角速度センサなどのセンサを用いて計測されるセンサデータであり、頭部の動き（首ふりや移動）を数値化したデータであるとする。
【００１６】
（ｂ）のように頭部をＹａｗ動作した場合、画像の水平シフト量Ｈｄを求める。水平シフト量Ｈｄは、頭部動作情報に含まれるＹａｗの角速度Ｙωと遅延時間から求められるＹａｗ角Ｙθと、距離Ｌとの関係から計算することが出来る。（ｃ）のように、頭部をＰｉｔｃｈ動作した場合もＹａｗ動作と同様に、画像の垂直シフト量Ｖｄを計算することが出来る。（ｄ）のように、頭部をＲｏｌｌ動作した場合、頭部動作情報に含まれるＲｏｌｌの角速度Ｒωと遅延時間からＲｏｌｌ角Ｒθが求められる。Ｒｏｌｌ角Ｒθから画像の回転角θｄを求めることが出来る。（ｅ）のように頭部を前後移動した場合、頭部動作情報に含まれるＲｏｌｌ軸方向の加速度Ｒａと遅延時間からＲｏｌｌ軸方向の移動量Ｒｍが求められる。Ｒｏｌｌ軸方向の移動量Ｒｍと撮像画角Ａθの関係から画像の拡大率Ｅｄが求められる。
【００１７】
図４は、図３と同様に、ＨＭＤ１００を装着した観察者が、（ａ）：頭部動作なしの場合、（ｂ）：頭部をＹａｗ動作した場合、（ｃ）：頭部をＰｉｔｃｈ動作した場合、（ｄ）：頭部をＲｏｌｌ動作した場合、（ｅ）：頭部を前後移動した場合を示している。本来黒帯が発生する箇所について、黒帯を軽減するよう引き伸ばし処理が実施された映像となる。
【００１８】
図５は、本実施形態に係る情報処理システムのハードウェア構成例を示す図である。情報処理システムは、情報処理装置１１０と、ＨＭＤ１００とを有している。情報処理装置１１０は、ＣＰＵ５０１と、ＲＯＭ５０２と、ＲＡＭ５０３と、記憶装置５０４と、入力部５０５と、通信インターフェース（Ｉ／Ｆ）５０６とを有している。これら各部はバス５０９を介して接続している。ＣＰＵ５０１は、ＲＯＭ５０２やＲＡＭ５０３に格納されているプログラムやデータを用いて、情報処理装置１１０全体の制御を行う。ＲＯＭ５０２には、コンピュータの設定データやブートプログラム等が格納されている。ＲＡＭ５０３は、記憶装置５０４からロードされたプログラムやデータを一時的に記憶するための領域を有する。ＲＡＭ５０３は、さらに、通信Ｉ／Ｆ５０６を介して外部から受信したデータを一時的に記憶するためのエリアを有する。ＲＡＭ５０３はまた、ＣＰＵ５０１が各処理を実行する際に用いるワークエリアも有する。即ち、ＲＡＭ５０３は、各種エリアを適宜提供することができる。記憶装置５０４は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。記憶装置５０４には、ＯＳ（オペレーティングシステム）や、各処理をＣＰＵ５０１に実行させるためのプログラムやデータが格納されている。記憶装置５０４に保存されているプログラムやデータは、ＣＰＵ５０１による制御に従って適宜ＲＡＭ５０２３ロードされる。後述する情報処理装置１１０の機能や処理は、ＣＰＵ５０１がＲＯＭ５０２又は記憶装置５０４に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。入力部５０５は、キーボードやマウスである。ユーザは入力部５０５を操作することで、各種の指示をＣＰＵ５０１に対して入力することができる。通信Ｉ／Ｆ５０６は、ＨＭＤ１００の撮像部５０８を接続するためのアナログビデオポート又はＩＥＥＥ１３９４等のデジタル入出力ポート、ＨＭＤ１００の表示部５０７に合成画像を出力するためのＤＶＩポート等を有している。情報処理装置１１０がＩＦ１０８を介して受信したデータは、ＲＡＭ５０２や記憶装置５０４に入力される。なお、本実施形態においては、情報処理装置１１０とＨＭＤ１００は、アナログビデオポート等を介してデータの送受信を行うものとするが、両装置の通信方式は実施形態に限定されるものではない。他の例としては、情報処理装置１１０とＨＭＤ１００は、無線ＬＡＮ等のネットワークを介してデータの送受信を行ってもよい。ＨＭＤ１００は、撮像部５０８と、表示部５０７とを有している。撮像部５０８は、画像の撮影を行う。表示部５０７は、各種情報を表示する。撮像部５０８により得られた撮影画像は、情報処理装置１１０に送信される。そして、情報処理装置１１０は、撮像部５０８の位置や姿勢に応じて生成した画像（仮想モデル等）を撮影画像上に重畳した合成画像を生成する。そして、表示部５０７は、この合成画像を表示する。これにより、現実空間の画像上に仮想モデルが重畳された複合現実空間が実現される。
【００１９】
図６は本実施形態における情報処理システムの機能構成例を示すブロック図である。係るシステムは観測者に対して複合現実（ＭＲ）を提供する複合現実システムであり、ビデオシースルーＨＭＤ（以下、ＨＭＤ）１００と、ＰＣである情報処理装置１１０とで構成されている。ＨＭＤ１００は、現実空間の画像を撮像する撮像部５０８と、撮像された画像に基づいて生成された表示画像を表示する表示部５０７と、ＨＭＤの少なくとも姿勢を計測する姿勢計測装置５１０を有する。
【００２０】
画像表示装置であるヘッドマウントディスプレイ（以下、ＨＭＤ）は、両目用のディスプレイおよび両耳用のヘッドホンを内蔵する。ユーザはＨＭＤを頭部に装着することにより、ディスプレイに表示される静止画や動画などを鑑賞し、ヘッドホンから出力される音声や音楽などを聴くことができる。本実施形態では特に複合現実システム（ＭＲシステム）に用いられるＨＭＤの例を説明する。このとき、ＨＭＤはＨＭＤ内の撮像部から取り込んだ現実空間の画像と仮想空間の画像とを合成し、複合現実感を体験できる映像としてＨＭＤ内の表示部に出力する。ＨＭＤ１００は、ユーザの頭部に装着される。撮像部５０８は、少なくとも撮像光学系５０８０と撮像センサ５０８１から構成され、現実空間を撮像する。撮像部５０８で撮像された撮像画像は情報処理装置１１０に取得される。姿勢計測装置５１０は、ＨＭＤに内蔵または外付けされたジャイロセンサーや加速度センサなどである。姿勢計測装置５１０は、ＨＭＤを装着したユーザの頭部の位置情報と頭部の回転角や傾きなどの姿勢情報を計測することができる。なお、姿勢情報とは、ジャイロセンサー等の姿勢センサによってＨＭＤの相対的な動きを計測した結果である。表示部５０７は、少なくとも表示パネル５０７１と表示光学系５０７０から構成され、表示系補正部１１０６で補正された表示画像を提示する。
【００２１】
情報処理装置１１０は、画像取得部１１００、動作情報取得部１１０１、撮像系画像補正部１１０２、位置姿勢推定部１１０３、決定部１１０４、表示画像生成部１１０５、表示系画像補正部１１０６、表示制御部１１０７を有する。さらに、決定部１１０４は制御情報取得部１１０４０と遅延時間保持部１１０４１から構成される。また、表示系補正部１１０６は、補正テーブル更新部１１０６０と補正テーブル保持部１１０６１から構成される。
【００２２】
画像取得部１１００は、ＨＭＤ１００の撮像部５０７で撮像された画像と撮像時刻を取得する。動作情報取得部１１０１は、頭部動作情報として、姿勢計測装置５１０からＨＭＤ１００の姿勢の変位を取得する。頭部動作情報は、加速度センサ、角速度センサなどのセンサを用いて計測されるセンサデータであり、頭部の動き（首ふりや移動）を数値化したデータである。
【００２３】
撮像系画像補正部１１０２は、撮像された画像を撮像系補正情報に基づいて補正する。撮像系補正情報は、撮像光学系５０８０に対応したレンズ歪み補正処理を行うためのパラメータである。撮像された画像を、ＨＭＤ１００と情報処理装置１１０間の通信エラー検出や画素欠陥補正、撮像系歪み補正などの画像処理を行い、処理結果の画像を位置姿勢推定部１１０３に出力する。
【００２４】
位置姿勢推定部１１０３は、ＣＧ画像を現実空間と対応させて重畳する為に用いるＨＭＤ１００の位置姿勢を撮像画像から推定する。位置及び姿勢を推定する手段は、現実空間におけるＨＭＤの絶対位置と姿勢が観測可能な方法を用いる。例えば、計測対象に複数のマーカーを付けて、天井などに設置された複数のカメラからマーカーの情報を統合することで位置姿勢を計測する光学センサなどを用いればよい。また、Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｌｏｃａｌｉｚａｔｉｏｎ  Ａｎｄ  Ｍａｐｐｉｎｇ  （ＳＬＡＭ）を用いた位置及び姿勢の推定手法が利用可能である。ＳＬＡＭは、撮像画像に映った角点のような自然物の特徴を毎フレーム追跡することで現実空間における撮像装置の３次元位置姿勢情報を推定する技術である。光学センサ以外にも、ＨＭＤの撮像部５０８の撮像画像に写るマーカーや画像特徴などを用いてＨＭＤの位置姿勢を計測してもよい。ここで計測した位置及び姿勢を用いて、所定のＣＧモデルを所定の位置及び姿勢に描写したＣＧ画像を生成する。なお、複合現実感の映像を作る場合に必要な構成である。なお、位置姿勢推定部１１０３は撮像画像に限らず磁気センサや姿勢センサなど外部センサからの計測値を使用してもよい。
【００２５】
決定部１１０４は、ＨＭＤ１００の姿勢の変位に基づいて、生成された表示画像の表示位置をシフトさせる制御情報を決定する。撮像から表示までの処理における少なくとも一部の処理時間に起因する遅延時間、およびＨＭＤ１００の姿勢の変化に基づいて、表示画像をシフトさせる制御値を制御情報とする。表示画像に用いられる現実世界の画像は、ＣＧ画像を生成する前の画像であるため、そのまま体験者に提示すると遅延を体感させてしまう。この体感遅延を軽減するために、表示画像生成部１１０５は、画像合成が終了する時刻に近いタイミングでＨＭＤの姿勢を計測し、撮像画像とＣＧ画像を合成した表示画像を姿勢情報に基づいて画像シフトする。姿勢センサなどＨＭＤ１００の姿勢を検知する動作情報取得部１１０１から頭部動作情報を受け取り、頭部動作情報から後述するシフト量を計算し表示制御部１１０７へ出力する。詳細な処理は図８を用いた説明を後述する。
【００２６】
表示画像生成部１１０５は、位置姿勢推定部１１０３で計測された位置姿勢情報をもとにＣＧデータを撮像画像に重畳し表示画像を生成する。撮像画像に仮想画像（ＣＧデータ）を重畳した表示映像を生成する。ＣＧデータは、例えばＣＡＤソフトなどを用いて作成された３ＤＣＡＤデータや、グラフィックデザインソフトなどを用いて作成された３ＤＣＧデータなどが該当する。表示画像生成部１１０５では、ＣＧ重畳位置情報に基づき、予め用意してあるＣＧデータをレンダリングして撮像画像に重畳する。これにより、現実空間には存在しないＣＧデータが映像内に描画された映像（合成画像）を作り出すことができる。
【００２７】
表示系画像補正部１１０６は、決定部１１０４の制御情報に応じた補正テーブルを取得する。補正テーブル変更部１１０６０は、制御情報取得部１１０４０からの制御情報を受け、合成画像に対して画像シフト処理と補正処理を同時に実施する補正テーブルを更新する。補正テーブル保持部１１０６１は、表示光学系５０７０に対応した補正テーブルを少なくとも１つ以上保持する。
【００２８】
表示制御部１１０７は、少なくとも制御情報に基づいて、シフトさせる表示画像の部分領域を補正して表示させる。表示制御部１１０７は、表示画像生成部１１０５で生成された表示画像を、補正テーブル更新部１１０６の補正テーブルを用いて補正して表示する。表示制御部１１０７で表示制御を行った表示画像を表示部５０７に出力することで、表示光学系５０７０を通し観測者に図５の（ａ）に相当する画像を表示することが出来る。表示系画像補正部１１０６で更新された補正テーブルを適用して補正された表示画像を、ＨＭＤ１００の表示部５０７が表示光学系５０７０を通して投影することで、ユーザは複合現実感を体験することが出来る。なお、情報処理装置１１０の各機能の一部または全部をＨＭＤ１００が備えるようにしてもよい。
【００２９】
決定部１１０４は、動作情報取得部１１０１からＨＭＤの動きを示す頭部動作情報を取得し、制御情報取得部１１０４０に入力する。頭部動作情報は、図１で示したように姿勢センサなど動作情報取得部１１０１の計測値である。あるいは、図１のシステムでは位置姿勢推定部１１０３でもＨＭＤの動きを計測しているため、頭部動作情報を位置姿勢推定部１１０３から入力してもよい。制御情報取得部１１０４０は、遅延時間保持部１１０４１から撮像してから表示するまでの遅延時間を取得する。本実施形態では、簡略化のため遅延時間保持部１１０４１は映像によらず常に一定の遅延時間を出力する事としているが、フレームごとに遅延時間が大きく異なる場合は、フレームごとに遅延時間を計算し制御情報取得部１１０４０に出力してもよい。フレームごとに遅延時間が異なる主な原因は、位置姿勢推定部１１０３と表示画像生成部１１０５であるため、例えば撮像時と表示画像生成部１１０５の処理直後にタイムスタンプをつけることでフレームごとの遅延時間を得ることが出来る。制御情報取得部１１０４０は、頭部動作情報と遅延時間から、遅延分の移動量に相当する水平シフト量Ｈｄ、垂直シフト量Ｖｄ、回転角θｄ、拡大率Ｅｄを求め、制御情報として表示系画像補正部１１０６へ出力する。この補正の方法は、補正テーブル（座標変換テーブル）を持つ歪み補正手法を用いる。なお、多項式の近似式を用いて補正してもよい。
【００３０】
図７の情報処理システム１０が実行する動作の一例を示すフローチャートを用いて本実施形態で行う情報処理について説明する。以下の説明では、各工程（ステップ）について先頭にＳを付けて表記することで、工程（ステップ）の表記を省略する。ただし、情報処理装置は必ずしもこのフローチャートで説明するすべてのステップを行わなくても良い。以下、フローチャートは、コンピュータである図５のＣＰＵ５０１が記憶装置５０４で格納されているコンピュータプログラムを実行することにより実現されるものとする。
【００３１】
Ｓ７１０では、ＨＭＤ１００の撮像部５０８が、ユーザの視界に対応する現実世界の画像を撮像する。撮像された画像と撮像時刻は情報処理装置１１０に画像情報として出力される。
【００３２】
Ｓ７２０では、ＨＭＤ１００の姿勢計測装置が、撮像時のＨＭＤの少なくとも姿勢を計測する。計測された姿勢は情報処理装置１１０に撮像時刻における姿勢情報として出力される。この姿勢情報を用いて、画像が撮像されてから、表示画像を生成するまでの所要時間（遅延時間）におけるＨＭＤ１００の姿勢の変位を計測できる。なお、変位の大きさが大きくなるほど表示制御時の画像シフト量は大きくする。
【００３３】
Ｓ７３０では、画像取得部１１００が、撮像された画像と撮像時刻を取得する。この画像を用いて、ＨＭＤ１００に表示する画像を生成する。また、位置推定部において、ＨＭＤ１００の位置姿勢を推定する。なお、撮影時刻から表示画像が生成される時刻までの遅延時間は、前の処理に取得した遅延時間を遅延時間保持部１１０４１が保持する。
【００３４】
Ｓ７４０では、撮像系画像補正部１１０２が、撮像された画像を撮像系補正情報に基づいて補正する。
【００３５】
Ｓ７５０では、位置姿勢推定部１１０３が、撮像された画像に基づいて、撮像時刻におけるＨＭＤの絶対的な位置と姿勢を推定する。
【００３６】
Ｓ７６０では、表示画像生成部１１０５が、撮像された画像と、ＣＧデータとに基づいて、ＨＭＤ１００に表示させる表示画像を生成する。ＣＧデータとは、仮想現実における物体（ＣＧモデル）が、現実世界の所定の位置に存在するように描写するためのデータである。具体的にはＣＡＤデータ等である。
【００３７】
Ｓ７７０では、決定部１１０４が、ＨＭＤ１００の姿勢の変位に基づいて、生成された表示画像の表示位置をシフトさせる制御情報を決定する。詳細は図８を用いて後述する。
【００３８】
Ｓ７８０では、表示系画像補正部１１０６が、制御情報に基づいて、表示光学系５０７０に対応した補正テーブルを補正する。本実施形態では、制御情報に基づいて、ＨＭＤが有する表示光学系に対応して設定される補正テーブルを更新することによって、画面表示時に黒帯になってしまう領域を、表示画像の一部を用いて補正する。詳細は図９を用いて後述する。
【００３９】
Ｓ７９０では、表示制御部１１０７が、少なくとも制御情報に基づいて、シフトさせた表示画像の部分領域を補正して表示させる。具体的には、補正テーブルと、制御情報とに基づいて、表示画像の一部を拡大するようにして表示画像を表示部５０７に表示させる。図４、５に示すように、ＨＭＤ１００の姿勢が変化した向きに対応した表示画像の部分領域に対して、該部分領域の周辺画素を拡大するようにして表示する。表示画像のシフト処理と、シフトの際に発生する黒帯領域を補正する処理とを同時に行うため、効率的に黒帯領域を抑制できる。
【００４０】
図８の決定部１１０４が実行する動作の一例を示すフローチャートを用いて、Ｓ７７０について更に詳細に説明する。Ｓ７７１では、制御情報取得部１１０４０が、動作情報取得部１１０１より頭部動作情報を取得する。前述のとおり、この頭部動作情報は加速度センサ、角速度センサなどのセンサを用いて計測されるセンサデータであり、頭部の動き（首ふりや移動）を数値化したデータとなっている。次に、Ｓ７７２では、制御情報取得部１１０４０が、遅延時間保持部１１０４１より遅延時間を取得する。この後、Ｓ７７３では、制御情報取得部１１０４０は頭部動作情報から頭部の縦ふりもしくは横ふりを判定する。例えば頭部の縦ふりもしくは横ふりを判定するために、Ｙａｗの角速度とＰｉｔｃｈの角速度から判定する方法がある。Ｙａｗの角速度Ｙωが閾値以上の場合は頭部の横ふり、Ｐｉｔｃｈの角速度Ｐωが一定値以上の場合は頭部の縦ふりと判定する。頭部の縦ふりもしくは横ふりと判定された場合は、Ｓ７７４１に進み、制御情報取得部１１０４０は、画像の水平シフト量（Ｈｄ）と垂直シフト量（Ｖｄ）を取得する。また、頭部の縦ふり、横ふりではない（閾値以下）と判定された場合、Ｓ７７４２に進み、制御情報取得部１１０４０は、画像の水平シフト量（Ｈｄ）と垂直シフト量（Ｖｄ）をそれぞれ０とする。
【００４１】
次に、Ｓ７７５では、制御情報取得部１１０４０は頭部動作情報から頭部の傾きを判定する。例えば頭部の傾きを判定するために、Ｒｏｌｌの角速度から判定する方法がある。Ｒｏｌｌの角速度Ｒωが閾値以上の場合は頭部を傾きがあったと判定する。頭部の傾きがあったと判定された場合は、Ｓ７８６１に進み、制御情報取得部１１０４０は、画像の回転角（θｄ）を取得する。また、頭部の傾きはなかったと判定された場合、Ｓ７８６２に進み、制御情報取得部１１０４０は、画像の回転角（θｄ）を０にする。
【００４２】
次に、Ｓ７７７では、制御情報取得部１１０４０は頭部動作情報から頭部の前後移動を判定する。例えば頭部の前後移動を判定するために、Ｒｏｌｌ軸方向の加速度情報から判定する方法がある。Ｒｏｌｌ軸方向の加速度Ｒａが閾値以上の場合は頭部が前後移動をしたと判定する。頭部の前後移動と判定された場合は、Ｓ７７８１に進み、制御情報取得部１１０４０は、画像の拡大率（Ｅｄ）を取得する。また、頭部の前後移動ではないと判定された場合、Ｓ７７８２に進み、制御情報取得部１１０４０は、画像の拡大率（Ｅｄ）を０にする。Ｓ７７９では、制御情報取得部１１０４０は、制御情報として、画像の水平シフト量Ｈｄ、垂直シフト量Ｖｄ、回転角θｄ、拡大率Ｅｄを表示系補正部１１０６に出力する。
【００４３】
このようにして、決定部１１０４は、動作情報取得部１１０１より入力される頭部動作情報と、遅延時間保持部１１０４１に保存されている遅延時間とに基づいて撮像画像の移動量と変形量を決定する。また、移動量と変形量の計算の順番については特に限定はない。先に頭部の前後移動による倍率を計算したのちに頭部の縦ふり／横ふりによるシフト量を計算するといった構成としてもよい。また、移動量や変形量の計算手段についても、頭部動作情報と、遅延時間より予測可能な範囲で観察者に違和感のないように画像変換すれば本発明の効果を享受できることは言うまでもない。
【００４４】
図９のフローチャートを用いて表示系補正部１１０６の補正テーブルを更新する例について説明する。図９の（ａ）は、制御情報に応じてリアルタイムに補正テーブルを更新する場合である。ユーザのとりうる多様な動きに対応可能であるため、精度良く黒帯領域を抑制することが期待できる。まず、Ｓ７８１では、補正テーブル更新部１１０６０は、決定部１１０４から表示位置のシフト量を取得し、シフト量が閾値以内であるか判定する。シフト量が閾値以内であれば、Ｓ７８２に進み、シフト量に応じて補正テーブルを更新する。シフト量が閾値外である場合は、Ｓ７８３に進み、最大補正値で補正する。最大補正値は、予めユーザが設定しておく。
【００４５】
図９の（ｂ）はシフト量に応じて複数の補正テーブルを切り替えて、パラメータを更新する場合である。図９（ａ）の場合は、１つの補正テーブルを用いるのに対し、図９（ｂ）の場合は、複数のパラメータからシフト量に対応したパラメータを用いる。シフト量を段階的に分類し、その範囲に対応した補正テーブルを予め用意しておく。これらの複数の補正テーブルは、補正テーブル保持部１１０６１が保持する。ルールベースで補正テーブルを更新できるため、処理効率が良い。まず、Ｓ７８４では、補正テーブル更新部１１０６０は、決定部１１０４から表示位置のシフト量を取得し、シフト量に対応する補正テーブルがあるか判定する。対応する補正テーブルがあれば、Ｓ７８５に進み、対応した補正テーブルに切り替えることで補正テーブルを更新する。対応する補正テーブルがない場合は、Ｓ７８６に進み、最大補正値で補正する。また、表示系補正部１１０６の処理は、ニューラルネットワークを用いた学習済みモデルに基づいて補正テーブルを更新してもよい。この場合、ニューラルネットワークに、制御情報に対して理想的な補正テーブル（または補正された表示画像）を教師データとして与える。学習済みモデルを用いることによって、リアルタイムに効率的な処理が実行できる。
【００４６】
以上の処理により表示光学系を含んだＨＭＤにおいて画像をシフトさせた際に発生する黒帯領域を抑制できる。
【００４７】
なお、本発明の本質は画素欠損が起きた領域に対して動的に歪み補正テーブルを変更することで画素欠損を緩和する画像処理を行うことにある。そのため、本実施形態の撮像系補正部１１０２でも同様の処理を行うことが出来る。具体的には前述したように、撮像系補正部１１０２では、ＨＭＤ１００と情報処理装置１１０間の通信エラー検出や画素欠陥補正、撮像系歪み補正を実施する。特に通信エラーは、フレームごとに違う位置の画素が欠けてしまう恐れがある。フレームごとに画素欠陥検出処理を実施し、画素欠陥を補正するよう動的に歪み補正テーブルを変更することで画素欠陥を緩和することも出来る。
【００４８】
＜変形例＞
実施形態１では、補正テーブル全体を更新する必要があった。そのため、補正テーブル全体を更新するための高速メモリや、補正テーブル全体を切り替えるための大容量メモリが必要となってしまう。本変形例では歪み補正テーブル全域を変更するのではなく、シフト量に応じて補正テーブルの一部のみを変更する方法について説明する。
【００４９】
まず、概要について図１を用いて説明する。実施形態１では、図１の（ａ）から図１の（ｄ）に変換するために画面全域の補正テーブルを更新した。本変形例では、補正で画像全体を補正するのではなく、図１の（ｂ）に相当する画像を作る表示シフト処理を行ったのちに、補正処理を実施する。表示シフト処理を歪み補正前に実施することで、図１の（ｃ）のｓ’に相当する領域のみ補正テーブルを変更する。ｓ’’に相当する領域の補正テーブルは、通常の光学歪みを補正する補正テーブルのままで使用することが出来るので、ｓ’’領域の補正テーブルを更新する必要がなくなる。よって、表示シフト処理を実施後に補正処理を行う構成にすることで、より安価に本発明を実施することが出来るようになる。
【００５０】
図１０は情報処理システムの機能構成例を示すブロック図である。実施形態１の表示系画像補正部１１０６に比べ、シフト処理部１１０６２が追加されている。またパラメータ更新部１１０６１についても一部動作が異なる。シフト処理部１１０６２は、決定部１１０４からの制御情報に基づいて、表示画像に対してシフト処理（前述した図１の（ｂ）相当の処理）を行う。補正テーブル更新部１１０６２は決定部１１０４からの制御情報に基づいて、デフォルトの補正テーブルから、制御情報のシフト量に応じた領域（図１（ｃ）のｓ’領域に相当）のみ補正テーブルを更新する。
【００５１】
以上の構成により高速メモリや大容量メモリを必要とせず、安価な構成で画像をシフトさせた際に発生する黒帯領域を抑制できる。
【００５２】
（その他の変形例）
なお、上述した各処理部のうち、撮像系補正部１１０２等については、その代わりとして、機械学習された学習済みモデルを代わりに用いて処理しても良い。その場合には、例えば、その処理部への入力データと出力データとの組合せを学習データとして複数個準備し、それらから機械学習によって知識を獲得し、獲得した知識に基づいて入力データに対する出力データを結果として出力する学習済みモデルを生成する。学習済みモデルは、例えばニューラルネットワークモデルで構成可能である。そして、その学習済みモデルは、前記処理部と同等の処理をするためのプログラムとして、ＣＰＵあるいはＧＰＵなどと協働で動作することにより、前記処理部の処理を行う。なお、上記学習済みモデルは、必要に応じて一定の処理後に更新しても良い。
【００５３】
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、データ通信用のネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、そのプログラムをコンピュータが読み取り可能な記録媒体に記録して提供してもよい。
【符号の説明】
【００５４】
１００  ＨＭＤ
５０８  撮像部
５０７  表示部
５１０  姿勢計測装置
１１０  情報処理装置
【図１】
2020106655.tif 000003
【図２】
2020106655.tif 000004
【図３】
2020106655.tif 000005
【図４】
2020106655.tif 000006
【図５】
2020106655.tif 000007
【図６】
2020106655.tif 000008
【図７】
2020106655.tif 000009
【図８】
2020106655.tif 000010
【図９】
2020106655.tif 000011
【図１０】
2020106655.tif 000012