(57)【要約】【課題】視野角を減少させることなく適切な視差で表示用画像を生成することが出来る画像処理装置を提供すること。  【解決手段】表示装置に表示する表示用画像を視差画像から生成する画像処理装置であって、前記表示装置の姿勢情報を取得する第１の取得手段と、前記視差画像の視差量を取得する第２の取得手段と、前記表示装置の姿勢情報と前記視差画像の視差量とに基づいて、前記視差画像に対応する視点に仮想的に配置される仮想カメラの姿勢を調整する調整手段と、前記表示装置の姿勢情報と、調整された前記仮想カメラの姿勢とに基づいて、前記視差画像から前記表示用画像を生成する生成手段と、を備える。【選択図】  図２
2018110295.tif 000002
【特許請求の範囲】
【請求項１】
表示装置に表示する表示用画像を視差画像から生成する画像処理装置であって、
前記表示装置の姿勢情報を取得する第１の取得手段と、
前記視差画像の視差量を取得する第２の取得手段と、
前記表示装置の姿勢情報と前記視差画像の視差量とに基づいて、前記視差画像に対応する視点に仮想的に配置される仮想カメラの姿勢を調整する調整手段と、
前記表示装置の姿勢情報と、調整された前記仮想カメラの姿勢とに基づいて、前記視差画像から前記表示用画像を生成する生成手段と、
を備えることを特徴とする画像処理装置。  
【請求項２】
前記表示装置の姿勢情報は、前記表示装置の画像表示面に垂直な軸周りの、前記画像表示面の回転量であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記仮想カメラは右目用画像の仮想カメラと、左目用画像の仮想カメラとからなり、
前記調整手段は、前記右目用画像の仮想カメラの姿勢と、前記左目用画像の仮想カメラの姿勢とを異なる方向に調整することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記調整手段は、前記仮想カメラの水平方向における前記仮想カメラの方位角と、前記仮想カメラの垂直方向における仰角とを調整することを特徴とする請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記調整手段は、前記表示装置の画像表示面の高さ方向に発生する表示用画像のずれを減ずる方向に前記仰角を調整することを特徴とする請求項４に記載の画像処理装置。  
【請求項６】
前記調整手段は、前記表示装置の画像表示面の幅方向に発生する表示用画像の視差量が前記表示装置が傾いていないときに表示用画像に生じる視差量と等しくなるように前記方位角を調整することを特徴とする請求項４または５に記載の画像処理装置。  
【請求項７】
前記生成手段は、前記視差画像の画素位置に対応する方位角と仰角のテーブルに基づいて、前記視差画像から画素値をサンプリングして前記表示用画像を生成することを特徴とする請求項４〜６のいずれか１項に記載の画像処理装置。
【請求項８】
前記調整手段は、前記視差量が所定の閾値より小さい場合、前記仮想カメラの姿勢の調整を行わないことを特徴とする請求項１〜７のいずれか１項に記載の画像処理装置。
【請求項９】
前記第２の取得手段は、前記視差画像を前記仮想カメラで見たときの中心領域における視差量を取得することを特徴とする請求項１〜８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記第２の取得手段は、前記視差画像の中心領域をマッチング処理することで、前記視差量を取得することを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記視差画像は全天球画像または魚眼カメラで撮影した画像であることを特徴とする請求項１〜１０のいずれか１項に記載の画像処理装置。  
【請求項１２】
前記生成手段は、前記表示装置のレンズの歪曲を補正して前記表示用画像を生成することを特徴とする請求項１〜１１のいずれか１項に記載の画像処理装置。
【請求項１３】
前記表示装置はヘッドマウントディスプレイであることを特徴とする請求項１〜１２のいずれか１項に記載の画像処理装置。
【請求項１４】
前記生成手段は、前記表示装置の画像表示パラメータを使用して、前記表示用画像を生成し、前記画像表示パラメータは、前記ヘッドマウントディスプレイの接眼レンズの焦点距離、前記接眼レンズの歪曲パラメータ、前記ヘッドマウントディスプレイの画像表示面における前記接眼レンズの中心位置、前記ヘッドマウントディスプレイの解像度、前記画像表示面のサイズの少なくとも１つを含むことを特徴とする請求項１３に記載の画像処理装置。
【請求項１５】
請求項１〜１４のいずれか１項に記載の画像処理装置と、
前記画像処理装置が生成した表示用画像を表示する表示装置と、
を含む画像処理システム。
【請求項１６】
表示装置に表示する表示用画像を視差画像から生成する画像処理方法であって、
前記表示装置の姿勢情報と前記視差画像の視差量とに基づいて、前記視差画像に対応する視点に仮想的に配置される仮想カメラの姿勢を調整するステップと、
前記表示装置の姿勢情報と、調整された前記仮想カメラの姿勢とに基づいて、前記視差画像から前記表示用画像を生成するステップと、
を有することを特徴とする画像処理方法。  
【請求項１７】
コンピュータを、請求項１〜１４のいずれか１項に記載の画像処理装置の手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
左目用画像と右目用画像からなる視差画像を用いて３次元画像（映像）を表示する表示装置が知られている。このような表示装置において、視聴者が頭を左右に傾けて視聴を行った場合に、視聴者の両目を結ぶ線分とは異なる方向に視差が発生するという問題が知られている。このような視差は、視聴者の眼の疲れの原因となったり、視差画像の融像を困難にする原因となる。
【０００３】
上記した視差を低減する技術として、特許文献１に記載された技術がある。特許文献１では、視聴者の頭の傾きに応じて左右の映像（表示用画像）の表示位置をそれぞれシフトして、平面の３Ｄディスプレイに表示用画像を表示している。特許文献１では、３Ｄ眼鏡に搭載した姿勢センサで取得した視聴者の頭の傾きに応じて、画像表示位置をシフトしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２４４４５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ヘッドマウントディスプレイに画像（映像）を表示する場合、表示の際に画像を大きく変形する処理が必要になる場合がある（例えば、魚眼カメラで撮影した画像や全天球画像などを表示する場合）。大きな変形を伴う処理をした後の画像を単純にシフトすると、表示用画像の周辺部が大きく削られるため、ヘッドマウントディスプレイで視聴した際の視野角が狭くなってしまう。また、ヘッドマウントディスプレイの接眼レンズの歪曲補正を変形処理と合わせて適用する場合に表示用画像を単純にシフトすると、正しく接眼レンズの歪曲補正ができなくなる。
本発明は、上記した課題を解決すべく、視野角を減少させることなく適切な視差で表示用画像を生成する画像処理を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の１つの態様に係る画像処理装置は、表示装置に表示する表示用画像を視差画像から生成する画像処理装置であって、前記表示装置の姿勢情報を取得する第１の取得手段と、前記視差画像の視差量を取得する第２の取得手段と、前記表示装置の姿勢情報と前記視差画像の視差量とに基づいて、前記視差画像に対応する視点に仮想的に配置される仮想カメラの姿勢を調整する調整手段と、前記表示装置の姿勢情報と、調整された前記仮想カメラの姿勢とに基づいて、前記視差画像から前記表示用画像を生成する生成手段と、を備える。
【発明の効果】
【０００７】
本発明によれば、視野角を減少させることなく適切な視差で表示用画像を生成することができる。  
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態１の画像処理装置の構成を示すブロック図。
【図２】実施形態１の画像処理装置の機能ブロック図。
【図３】実施形態１の画像処理装置における処理の流れを示すフローチャート。
【図４】実施形態１における視差のある全天球画像の例を示す図。
【図５】実施形態１における表示用画像の例を示す図。
【図６】実施形態１におけるディスプレイの座標と回転の例を示す図。
【図７】実施形態１におけるディスプレイに表示する画像の座標系を示す図。
【図８】実施形態１における頭（首）を傾けたときの表示用画像の例を示す図。
【図９】表示用画像を単純にシフトした場合を示す図。
【図１０】実施形態１における仮想カメラの姿勢の調整の例を示す図。
【図１１】実施形態１における表示用画像生成処理の流れを示すフローチャート。
【図１２】実施形態１における表示用画像上でのレンズの歪曲を示す図。
【図１３】実施形態１における眼を原点とした座標系での画素位置を示す図。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施形態は本発明を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成については、同じ符号を付して説明する。
＜実施形態１＞
実施形態１では、左目用画像と右目用画像から構成される視差画像をヘッドマウントディスプレイなどのステレオ画像表示用の表示装置に表示する際に、頭が傾いても視野角を狭めることなく適切な視差で画像を表示する画像処理装置について説明する。
【００１０】
（画像処理装置のハードウェア構成）
まず、本実施形態における画像処理装置を含む画像処理システムの構成例について、図１を用いて説明する。
図１に示されるように、画像処理システム１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、ＨＤＤインタフェイス（Ｉ／Ｆ）１０４、ハードディスクドライブ（ＨＤＤ）１０５、入力Ｉ／Ｆ１０６および入力デバイス１０７を備える。また、画像処理システム１００は、出力インタフェイス（Ｉ／Ｆ）１０８、出力デバイス１０９、姿勢検出インタフェイス（Ｉ／Ｆ）１１０および姿勢検出装置１１１を備える。ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、ＨＤＤ１０５、入力デバイス１０７、出力デバイス１０９および姿勢検出装置１１１は、バス１１２および付随するＩ／Ｆ（１０４、１０６、１０８、１１０）を介して相互に接続されている。本実施形態の画像処理装置１１３は、画像処理システム１００に含まれており、画像処理装置１１３は、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、ＨＤＤＩ／Ｆ１０４、入力Ｉ／Ｆ１０６、出力Ｉ／Ｆ１０８および姿勢検出Ｉ／Ｆ１１０を有する。
【００１１】
ＲＯＭ１０３およびＨＤＤ１０５は、画像処理装置１１３の動作に必要なプログラムを格納する。
ＨＤＤＩ／Ｆ１０４は、ＨＤＤ１０５を画像処理装置１１３に接続する。ＨＤＤＩ／Ｆ１０４は、例えばシリアルＡＴＡ（ＳＡＴＡ）等のインタフェイスである。なお、ＨＤＤ１０５は画像処理装置１１３に接続される二次記憶装置の一例であり、ＨＤＤに加えて（またはＨＤＤに代えて）光ディスクドライブなどの二次記憶装置が画像処理装置１１３に接続されてもよい。ＡＴＡはＡｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔの略である。
【００１２】
ＣＰＵ１０１は、ＲＡＭ１０２をワークメモリとして、ＲＯＭ１０３および（または）ＨＤＤ１０５に格納されたプログラムを実行し、システムバス１１２を介して画像処理装置１１３の各構成部を制御する。これにより、後述する様々な処理が実行される。
ＣＰＵ１０１は、ＨＤＤＩ／Ｆ１０４を介して、ＨＤＤ１０５からデータを読み出すことができると共に、ＨＤＤ１０５へデータを書き込みむことができる。ＣＰＵ１０１は、ＨＤＤ１０５に格納されたデータをＲＡＭ１０２に展開することができる。ＣＰＵ１０１は、ＲＡＭ１０２に展開されたデータをＨＤＤ１０５に保存することもできる。ＣＰＵ１０１は、ＲＡＭ１０２に展開したプログラムを実行することができる。
【００１３】
入力Ｉ／Ｆ１０６は、キーボード、マウス、デジタルカメラ、スキャナなどの入力デバイス１０７を画像処理装置１１３に接続する。入力Ｉ／Ｆ１０６は、例えば、ＵＳＢやＩＥＥＥ１３９４等の規格に準拠したシリアルバスインタフェイスである。ＣＰＵ１０１は、入力Ｉ／Ｆ１０６を介して入力デバイス１０７からデータを読み込むことができる。
出力Ｉ／Ｆ１０８は、出力デバイス１０９を画像処理装置１１３に接続する。出力デバイス１０９は画像表示面を有する。出力デバイス１０９は、本実施形態では、ヘッドマウントディスプレイである。ヘッドマウントディスプレイは接眼レンズを備える。出力Ｉ／Ｆ１０８は、例えば、ＤＶＩやＨＤＭＩ（登録商標）等の規格に準拠した映像出力インタフェイスである。ＤＶＩはＤｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅの略である。ＨＤＭＩはＨｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅの略である。ＣＰＵ１０１は、出力Ｉ／Ｆ１０８を介して出力デバイス１０９にデータを送り、出力デバイス１０９に表示を実行させることができる。
【００１４】
姿勢検出Ｉ／Ｆ１１０は、加速度センサや角速度センサなどの姿勢検出装置１１１を画像処理装置１１３に接続する。姿勢検出Ｉ／Ｆ１１０は、例えば、ＵＳＢやＩＥＥＥ１３９４等の規格に準拠したシリアルバスインタフェイスである。本実施形態では、姿勢検出装置１１１は出力デバイス１０９の画像表示面またはその近傍に取り付けられている。ＣＰＵ１０１は、姿勢検出Ｉ／Ｆ１１０を介して姿勢検出装置１１１から、出力デバイス１０９の画像表示面の姿勢情報を読み込むことができる。なお、出力デバイス１０９の画像表示面の姿勢情報は、マウス、キーボード、カメラなどを用いてＣＰＵ１０１に入力することもできる。
【００１５】
以下、本実施形態の画像処理装置１１３が行う処理の流れについて、図２と図３とを参照して説明する。
（画像処理装置の機能構成）
図２（Ａ）は、本実施形態における画像処理装置１１３の機能構成を示すブロック図である。画像処理装置１１３は、姿勢情報取得部２０１、画像データ取得部２０２、視差量取得部２０３、仮想カメラ姿勢調整部２０４、表示パラメータ取得部２０５、表示用画像生成部２０６および画像データ出力部２０７を含む。視差量取得部２０３、仮想カメラ姿勢調整部２０４および表示用画像生成部２０６は、画像処理部２０８を構成する。図２の各機能部の処理・動作は、図３のフローチャートを用いて説明する。仮想カメラは、視差画像に対応する視点に仮想的に配置されるカメラである。
【００１６】
図２（Ｂ）は、ヘッドマウントディスプレイの姿勢のロール（ｒｏｌｌ）、ピッチ（ｐｉｔｃｈ）およびヨー（ｙａｗ）を示す図である。
なお、図１のＣＰＵ１０１は、ＲＯＭ１０３又はＨＤＤ１０４に格納されたプログラムを読み出して、ＲＡＭ１０２をワークエリアとしてプログラムを実行することで、図２に示す各機能ブロックとしての役割を果たす。また、本実施形態で扱う画像は、全天球画像であるとする。
【００１７】
（画像処理装置の処理）
図３は本実施形態の画像処理装置１１３で行われる処理の流れを示すフローチャートである。
まず、Ｓ１において、姿勢情報取得部２０１（図２）が姿勢検出装置１１１（図１）または入力デバイス１０７（図１）から姿勢情報を取得する。姿勢情報はＲＡＭ１０２やＨＤＤ１０５に一旦保存されたものを取得してもよい。姿勢情報はヘッドマウントディスプレイの姿勢を表すデータであり、本実施形態では３×３の回転行列Ｒとロール、ピッチおよびヨーを使用して説明する。姿勢情報取得部２０１は、取得した姿勢情報を視差量取得部２０３へ出力する。
【００１８】
Ｓ２において、画像データ取得部２０２は、次に表示する画像データをＨＤＤ１０５や入力デバイス１０７から取得する。画像データ取得部２０２は、取得した画像データを視差量取得部２０３へ出力する。取得した画像データのうち左目に表示する画像データをＩＬとし、右目に表示する画像データをＩＲとする（図４）。上記したように、本実施形態で扱う画像は、全天球画像である。
全天球画像の例を図４に示す。全天球画像の画像データは全ての向きの入射光線の色を保存した画像データである。画像データの横軸を方位角θとし、その範囲は［０  ２π］とする。また、縦軸を仰角φとし、その範囲は［−π／２  π／２］とする。
【００１９】
Ｓ３以降のステップで、入力画像データ（取得した画像データ）から図５のような表示用画像（表示用の視差画像）を作成する。表示用画像は左目に提示するための左目用の表示用画像ＪＬと右目に提示するための右目用の表示用画像ＪＲとからなる。左目用の表示用画像ＪＬと右目用の表示用画像ＪＲは、接眼レンズを通して視聴したときに歪みなく見えるように接眼レンズの歪曲を補正した画像である。
Ｓ３において、視差量取得部２０３は、姿勢情報と画像データに基づいて（または画像データに基づいて）、画像データＩＬ、画像データＩＲの注目領域における視差量を取得する。視差量取得部２０３は、取得した視差量を仮想カメラ姿勢調整部２０４へ出力する。
【００２０】
頭部の動きに追従して映像を表示するヘッドマウントディスプレイでは、視聴者は頭を動かして周囲を見回すため、視野の中心領域を注目することが多い。そこで、本実施形態では、画像データＩＬ、画像データＩＲの視野の中心領域を注目領域として、視差量を取得する。視差量は画像データＩＬ、画像データＩＲからあらかじめ作成しておいた視差マップから取得してもよいし、計算して取得してもよい。
【００２１】
視差量を計算して取得する場合、ヘッドマウントディスプレイの姿勢である方位角θｄ、仰角Φｄが示す座標を画像データにおける視野中心とする。左目用画像データＩＬの視野中心周りのＮ×Ｍ画素の領域をＡＬとし、右目用画像データＩＲの視野中心の画素周辺を水平方向に走査してマッチング処理を行い、最も類似度が高い領域ＡＲを求める。このマッチング処理は、例えば、テンプレートマッチングである。類似度の評価指標はＳＳＤ（Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅ）やＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）など領域間の類似度を評価できるものであればよい。求めた領域ＡＲと領域ＡＬの中心の水平方向のずれ量を、注目対象（注目領域）の視差量ｄとする。なお、注目対象（注目領域）を画像データの視野中心として説明したが、画像データ中で最も距離が近い領域や、最も顕著度が高い領域や、手動で指定した領域を注目領域として視差を求めてもよい。
【００２２】
Ｓ４において、仮想カメラ姿勢調整部２０４は、視差量取得部２０３から取得した視差量と姿勢情報に基づいて、左右の表示用画像を生成する際の左右の仮想カメラの姿勢を調整する。仮想カメラ姿勢調整部２０４は、調整後の仮想カメラの姿勢の情報（姿勢情報）を表示用画像生成部２０６に出力する。ここでは、姿勢情報のうち、ヘッドマウントディスプレイの正面方向を正とする軸周りの回転量（ロール角）αを利用して仮想カメラの姿勢を調整する。
【００２３】
（ヘッドマウントディスプレイのロール）
図６にヘッドマウントディスプレイのロールの例を示す。なお、図６〜図９、図１２および図１３では「ヘッドマウントディスプレイの画像表示面」を「ディスプレイ」と表記している。座標系は正面方向がＺ軸正、右方向がＸ軸正、上方向がＹ軸正である。図６（Ａ）はロール角αが０°の場合を示している。ロール角αが０°の場合、ディスプレイのＹ軸は地面に対して垂直になっており、視聴者の両目を結ぶ線分は、Ｙが一定の平面上にある（つまり、Ｘ軸に平行かＸ軸を含む平面上にある）。図６（Ｂ）はロール角αが３０°の場合を示している。つまり、図６（Ｂ）は、視聴者が頭部を右に傾けたときのディスプレイの状態を示している。仮想カメラは、ディスプレイが傾くと、同じように傾く。
【００２４】
（ディスプレイに表示する画像の座標系）
図７はディスプレイに表示する画像の座標系を示している。ディスプレイの右方向をｘ軸正、上方向をｙ軸正とする。視差画像は水平方向に視差が生じている画像であり、視差画像をヘッドマウントディスプレイで快適に視聴するためには、その視差がディスプレイのｘ軸方向にのみ存在している必要がある。しかしながら、単純にディスプレイの姿勢情報に基づいて表示用画像を生成・表示すると、表示した表示用画像では、ディスプレイのｘ軸方向およびｙ軸方向に視差ずれが生じてしまう。例えば、視聴者が頭を右に傾けると、図８に示すように（視差は地面に対して水平方向にあるのに対し）、視聴者の眼の位置はディスプレイのｘ軸に平行になってしまう。これにより、視聴者の眼に対して水平方向（ディスプレイの幅方向）の視差が小さくなり（ｘ軸方向の内向きの２つの矢印）、ディスプレイの垂直方向（ｙ軸方向）に視差が生じる（ディスプレイの高さ方向の矢印）。つまり、ディスプレイの水平方向と垂直方向に視差ずれが生じてしまう。水平方向の視差が小さくなることで距離感が変化し、垂直方向に視差が生じることで、融像が困難になる。
【００２５】
（従来の手法）
従来の方法では、図８のような表示用画像に対しては、表示用画像を上下左右にシフトするという処理をしている。詳しくは、図９に示すように、表示用画像をディスプレイの上下左右にシフトすることで垂直方向の視差を無くし、水平方向に視差を付ける。しかしながら、このようなシフトを行うと、ディスプレイ（画面表示面）の端ではシフトした分だけ画像を表示できない領域が発生し視野角が狭くなってしまう（図９の黒塗り部分）。また、画像をシフトすることで接眼レンズの中心と歪曲補正の中心位置がずれてしまうため、正しく歪曲補正ができない。
【００２６】
（本実施形態の手法）
そこで、本実施形態では注目領域において、視聴者の眼に対して水平方向に適切な視差がつき、垂直方向の視差がなくなるように左右の仮想カメラの姿勢を調整することで、視野角を減少することなく適切な視差量の画像を提示する。
例えばディスプレイに対して垂直方向（ｙ軸方向）の視差がついている場合は、仮想カメラの左右方向軸周りに仮想カメラをΔΦ［ｒａｄｉａｎ］だけ回転をして調整する。ディスプレイに対して水平方向（ｘ軸方向）の視差を調整する場合は、仮想カメラの上下方向軸周りに仮想カメラをΔθ［ｒａｄｉａｎ］だけ回転して視差を調整する。これにより、視野を狭くすることなく（視野角を減少することなく）、歪曲も正しく補正され適切な視差がついた画像を表示できる。以下に、仮想カメラの回転量の算出方法について説明する。
【００２７】
図８のように頭が傾き左目よりも右目が下方向になった場合（０≦α＜π）、右目用の表示用画像の注目領域は適切な位置よりも下に表示される。逆に、左目用の表示用画像の注目領域は適切な位置よりも上に表示される。そこで、右目用の表示用画像を上にシフトして表示するため仮想カメラを下向きに回転し、左目用の表示用画像を下にシフトして表示するため仮想カメラを上向きに回転する。右目よりも左目が下になった場合（―π≦α＜０）は、右目用の表示用画像を下にシフトして表示するため仮想カメラを上向きに回転し、左目用の表示用画像を上にシフトして表示するため仮想カメラを下向きに回転する。また、頭が傾くとディスプレイのｘ軸方向の視差は小さくなるため、視差が大きくなる方向に表示用画像をシフトするために左右の仮想カメラの姿勢を内向きに回転する。回転量は全天球画像における水平方向の視差量dがロール回転によって垂直成分および水平成分に配分された視差ずれを打ち消すように決定する。ディスプレイの幅方向について言えば、表示用画像の視差量は、ディスプレイが傾いていないときの視差画像に生じる視差量と等しくなるように仮想カメラの姿勢（方位角）を調整する。
【００２８】
左仮想カメラの回転量（調整量）ΔθＬ、ΔΦＬ、右仮想カメラの回転量ΔθＲ、ΔΦＲは以下の式で表される。
左仮想カメラの回転量
ΔθＬ  ＝  Ｓｉｇｎ（ｃｏｓα）×Ｄ／２×（  １  −  ｜ｃｏｓα｜）  
ΔΦＬ  ＝  −Ｄｓｉｎα／２  
右仮想カメラの回転量
ΔθＲ  ＝  −Ｓｉｇｎ（ｃｏｓα）×Ｄ／２×（  １  −  ｜ｃｏｓα｜）  
ΔΦＲ  ＝  Ｄｓｉｎα／２
【００２９】
ここで、視差量Ｄは全天球画像上の視差量ｄ［ｐｉｘｅｌ］をｒａｄｉａｎの単位系に変換したものであり、Ｄ＝ｄ×２π／ｗとなる。ただしｗは全天球画像の幅［ｐｉｘｅｌ］である。また、Ｓｉｇｎ（）は符号関数であり、変数が０より大きければ１を、０であれば０を、０より小さければ−１を返す。ここで求めた仮想カメラの調整量を回転行列に変換したものをＭＬ、ＭＲとする。左仮想カメラの姿勢ＲＬと右仮想カメラの姿勢ＲＲは、ディスプレイの姿勢Ｒに、それぞれＭＬ、ＭＲを適用した回転行列である。調整した仮想カメラの向きの例を図１０に示す。
【００３０】
（仮想カメラの姿勢調整）
図１０に示すように、調整前の仮想カメラの向きを全天球画像上で表したものが白丸３０１、３０３であり、両目で同じ座標を示している。黒丸３０２、３０４は調整後の仮想カメラの向きである。このように、本実施形態では、右目用画像の仮想カメラの姿勢と、左目用画像の仮想カメラの姿勢とを異なる方向に調整する。より詳しくは、調整前の仮想カメラの向きを示す白丸３０１、３０３に対して、左右の仮想カメラは対称な位置（黒丸３０２、３０４の位置）に調整され、その距離は視差量ｄに等しい。
【００３１】
なお、上記の説明では左右の仮想カメラを同じ量だけ回転したが、本実施形態はこのような調整に限定されない。左右の仮想カメラによりトータルで調整した量（シフトした量）が同じであればよいため、シフト量が左右の仮想カメラで同じ量でなくてもよい。例えば、右仮想カメラのみを調整してもよいし、左仮想カメラのみを調整してもよい。また、調整量を０〜１の数で定数倍することで姿勢調整量を調整してもよい。
視差量が小さい場合は、ロールが起きたときの視差ずれも小さいため、仮想カメラの姿勢の調整を行わないようにしてもよい。その場合は、あらかじめ視差量の閾値ｄｔｈを決めておき、閾値ｄｔｈより視差量が大きい場合は仮想カメラの姿勢を調整し、閾値ｄｔｈより視差量が小さい場合は仮想カメラの姿勢を調整しないようにする。
【００３２】
（表示パラメータの取得）
Ｓ５において、表示パラメータ取得部２０５は、視差画像を出力デバイス１０９に表示するために必要なパラメータである画像表示パラメータを入力デバイス１０７から取得する。画像表示パラメータは、ヘッドマウントディスプレイの接眼レンズの焦点距離、歪曲パラメータ、ディスプレイ上における接眼レンズの中心位置、ディスプレイ解像度、ディスプレイサイズなどである。表示パラメータ取得部２０５は、取得した画像表示パラメータを表示用画像生成部２０６に出力する。なお、表示パラメータ取得部２０５は、画像表示パラメータを入力デバイス１０７から取得するのではなく、ＲＡＭ１０２やＨＤＤ１０５に保存されている画像表示パラメータをＲＡＭ１０２やＨＤＤ１０５から取得してもよい。
【００３３】
Ｓ６において、表示用画像生成部２０６は、画像表示パラメータと画像データと左右の仮想カメラの姿勢情報とから、出力デバイス１０９に表示するための表示用画像を生成する。図５に示されるように、表示用画像は左目に提示するための表示用画像ＪＬと右目に提示するための表示用画像ＪＲからなり、表示用画像ＪＬとＪＲは接眼レンズを通してみたときに歪みのなく見えるように接眼レンズの歪曲を補正した画像である。この表示用画像生成処理の詳細については、図１１、図１２および図１３を用いて後述する。表示用画像生成部２０６は、表示用画像ＪＬとＪＲを画像データ出力部２０７に出力する。
【００３４】
Ｓ７において、画像データ出力部２０７は、Ｓ６で生成した表示用画像ＪＬ、ＪＲを画像データとして出力デバイス１０９に出力し、表示用画像ＪＬ、ＪＲをディスプレイに表示させる。
Ｓ７の後、Ｓ８に進む。Ｓ８において、処理を終了すべきかを判定する。Ｓ７の判定がＹｅｓならば、画像処理装置１１３は処理を終了する。Ｓ７の判定がＮｏならば、Ｓ１に戻る。
【００３５】
（表示用画像生成処理）
ヘッドマウントディスプレイに表示する表示用画像は、視聴者（ヘッドマウントディスプレイ装着者）の頭部の傾いている方向に応じて画素値を視差画像からサンプリングして生成する。画素値を視差画像からサンプリングするために、左右の仮想カメラの姿勢情報を基に、ディスプレイ上の各画素位置にどの向きの光線を表示するか計算する。この光線の向きは上下方向の軸周りの角度を表す方位角θと左右方向の軸周りの角度を表す仰角φとによって表すことができる。以下の説明では、接眼レンズ中心を原点とした座標系における画素の位置を（ｘ，ｙ）として、光線の向き（θ，φ）を計算し、その向きから表示用画像の画素値を求める。
図１１のフローチャートを用いて表示用画像生成処理の詳細を説明する。以下の処理は左右の表示用画像の全ての画素に対して行う。
Ｓ１１において、表示用画像生成部２０６（図２）が、画素位置（ｘ，ｙ）における接眼レンズによる歪曲率を取得する。歪曲率については図１２を用いて説明する。
【００３６】
図１２は、画像座標上での歪曲の例を示している。歪曲率は接眼レンズ中心からの距離ｒと接眼レンズの光学特性で決まるため、接眼レンズの光学特性に応じてあらかじめ用意した接眼レンズ中心からの距離ｒに対する歪曲率のルックアップテーブルを使って歪曲率を取得する。接眼レンズの光学特性によって、波長ごとに歪曲率が異なる場合は、ディスプレイにおけるＲ、ＧおよびＢの波長ごとにルックアップテーブルを用意する。そして、Ｒ、ＧおよびＢごとの歪曲率を取得して、Ｓ１２以降のステップでＲ、ＧおよびＢごとに異なる歪曲率を使用して処理を行う。ＲはＲｅｄ（赤）、ＧはＧｒｅｅｎ（緑）、ＢはＢｌｕｅ（青）の略である。
なお、あらかじめ画素位置ごとに歪曲率を参照できるようにルックアップテーブルを作成しておき、接眼レンズ中心からの距離ｒの計算を省略できるようにしてもよい。また、接眼レンズ中心からの距離ｒが遠く、接眼レンズの視聴可能範囲外である場合は、表示用画像の画素値を黒にしてその画素の処理を終了してもよい。
【００３７】
Ｓ１２において、表示用画像生成部２０６は、画素位置（ｘ，ｙ）が接眼レンズの歪曲によって屈折した結果、そこから光線が射出しているように見える画素位置を算出する。算出される画素位置（ｘｃ，ｙｃ）は、以下の記載において「歪曲後の位置」と称する。歪曲後の位置（ｘｃ，ｙｃ）は、式（１）に示すように、画素位置（ｘ，ｙ）のｘとｙに歪曲率ｃを積算することで算出できる。
ｘｃ  ＝  ｘ  ×  ｃ
ｙｃ  ＝  ｙ  ×  ｃ                        （１）
歪曲後の位置（ｘｃ，ｙｃ）は、図１２に示されている。
【００３８】
Ｓ１３において、表示用画像生成部２０６は、歪曲後の位置（ｘｃ，ｙｃ）を、眼の位置を原点とする座標系の３次元位置（Ｘ，Ｙ，Ｚ）に変換することにより、３次元位置（Ｘ，Ｙ，Ｚ）を算出する。図１３に画像座標上の点と３次元位置の関係の例を示す。仮想カメラの姿勢情報を３×３の回転行列Ｒとし、画素単位で表現した焦点距離をｆとすると、３次元位置（Ｘ，Ｙ，Ｚ）は以下の式（２）で算出できる。
［Ｘ  Ｙ  Ｚ］ｔ  ＝  Ｒ  ×  ［ｘ  ｙ  ｆ］ｔ        （２）
左目用の表示用画像なのか、右目用の表示用画像なのかにより、仮想カメラの姿勢が異なるため、左目用の表示用画像中の画素値を求める場合は、式（２）のＲはＲＬをとし、右目用の表示用画像中の画素値を求める場合は、式（２）のＲはＲＲとする。
【００３９】
Ｓ１４において、表示用画像生成部２０６は、画素の三次元位置（Ｘ，Ｙ，Ｚ）から方位角θと仰角φを算出する。図１３には、原点と３次元位置の関係が示されている。原点から（Ｘ，Ｙ，Ｚ）までの距離をＬ＝（Ｘ２＋Ｙ２＋Ｚ２）１／２とすると、方位角θと仰角φは以下の式（３）で算出できる。
φ＝ａｓｉｎ（Ｙ  ／  Ｌ）
θ＝ａｓｉｎ（Ｚ  ／  Ｌ  ／  ｃｏｓφ）                    （３）
Ｓ１５において、表示用画像生成部２０６は、光線の方向（θ，φ）の画素値を、対応する画像から取得し（サンプリングし）、表示用画像の対応する画素位置に格納する。つまり、Ｓ１５において、表示用画像生成部２０６は、光線の方向（θ，φ）の画素値を、対応する画像からサンプリングし、描画配列に格納する。左目用の表示用画像を生成する際は左目用画像から画素値をサンプリングし、右目用の表示用画像を生成する際は右目用画像から画素値をサンプリングする。格納する位置は原点から（ｘ，ｙ）だけ移動した位置である。
【００４０】
画像から画素値をサンプリングする際は、最近傍の画素値を取得してもよいし、バイリニア補間やバイキュービック補間など周辺の画素値を使って補間してサンプリングを行ってもよい。また、ロール角αが｜α｜＞９０°であるときは、眼の位置関係が｜α｜≦９０°のときと左右逆転するため、左右の表示用画像を入れ替えてもよい。すなわち、左目用の表示用画像のサンプリングを右目用画像から行い、右目用の表示用画像のサンプリングを左目用画像から行ってもよい。
【００４１】
なお、全天球画像以外の画像（例えば、魚眼カメラなどで撮影した画像）からサンプリングする場合は、あらかじめ格納した光線の向き（方位角と仰角）とそれに対応する画素位置のルックアップテーブルを用意しておく。このルックアップテーブルを使って光線の向き（θ、φ）に対応する画素位置（ａ，ｂ）を取得し、画像データの画素位置（ａ，ｂ）の画素をサンプリングし、全天球画像の場合と同様に表示用画像の座標（ｘ，ｙ）に格納する。
Ｓ１５の後、Ｓ１６において、左右の表示用画像の全画素を処理したかを判定する。全画素を処理していなければ、Ｓ１１に戻る。全画素を処理していれば、図３のフローチャートに戻り、Ｓ７に進む。
【００４２】
（実施形態１の効果）
特許文献１では表示用画像を生成した後に表示用画像の表示位置をシフトしているので、図９に示したように、ディスプレイ（画面）の端ではシフトした分だけ表示用画像を表示できない領域が発生し視野角が減少してしまう。また、表示用画像をシフトすることで接眼レンズの中心と歪曲補正の中心位置がずれてしまうため、正しく歪曲補正ができない。これに対し、本実施形態では、表示用画像を生成する前に、仮想カメラの姿勢を調整することにより、視野角を減少させずに視差ずれを抑制している。また、接眼レンズの中心と歪曲補正の中心位置がずれないので、歪曲補正を正しく行うことができる。
【００４３】
よって、本実施形態の画像処理装置１１３によれば、視差画像をヘッドマウントディスプレイに表示する際に頭が傾いた場合に生じる視差ずれを軽減し、注目領域において適切な視差で画像を表示することができる。
本実施形態の画像処理装置１１３は、仮想カメラの姿勢を調整しているので、全天球画像や魚眼画像からの表示用画像の生成に適用することができ、正しい歪曲補正を実行することができる。
【００４４】
（変形例）
図２に示す機能ブロックの少なくとも一部をハードウェアにより実現してもよい。ハードウェアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのプログラムからＦＰＧＡ上に自動的に専用回路を生成すればよい。また、ＦＰＧＡと同様にしてＧａｔｅ  Ａｒｒａｙ回路を形成し、ハードウェアとして実現するようにしてもよい。また、ＡＳＩＣにより実現するようにしてもよい。ＦＰＧＡは、Ｆｉｅｌｄ―Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略である。ＡＳＩＣは、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略である。
【００４５】
上記の説明において、ＣＰＵ１０１は、ＲＯＭ１０３等に格納されたプログラムを実行することで、図２に示す各機能ブロックとしての役割を果たすとしたが、全ての機能ブロックの役割をＣＰＵ１０１が果たす必要はない。例えば、いくつかの機能ブロックに対応する専用の処理回路を設け、当該機能についてはＣＰＵ１０１ではなく専用の処理回路が実行するようにしてもよい。
【００４６】
上記の説明において、画像処理装置１１３は、ＨＤＤ１０５、入力デバイス１０７、出力デバイス１０９および姿勢検出装置１１１を含まないとしたが、本発明の画像処理装置はこのような構成に限定されない。例えば、画像処理装置１１３は、ＨＤＤ１０５、入力デバイス１０７、出力デバイス１０９および姿勢検出装置１１１の少なくとも１つを画像処理装置１１３の構成部として有してもよい。
上記の説明においてＨＤＤＩ／Ｆ１０４は画像処理装置１１３に含まれるとしたが、ＨＤＤ１０５を使用する必要がなければ、画像処理装置１１３はＨＤＤＩ／Ｆ１０４を備えなくてもよい。
上記の説明において、姿勢を表現する場合に、ロール、ピッチおよびヨーという表現を用いたが、クォータニオンなどの表現を用いてもよい。
【００４７】
上記の説明において、全天球画像や魚眼カメラなどで撮影した画像を例に挙げたが、所定値以上の画角を有する視差画像を視聴する場合には、本発明を適用することができる。
上記の説明において、ヘッドマウントディスプレイを例に挙げたが、その他の表示装置にも本発明を適用することができる。
上記の説明では、姿勢検出装置１１１は出力デバイス１０９の画像表示面またはその近傍に取り付けられるとしたが、姿勢検出装置１１１の設置位置は、ディスプレイの傾きが検出できるならば、上記した位置以外の位置でもよい。
【００４８】
＜その他の実施形態＞
本発明は、上記した実施形態１の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００４９】
１００…画像処理システム、１０１…ＣＰＵ、１１３…画像処理装置、２０１…姿勢情報取得部、２０２…画像データ取得部、２０３…視差量取得部、２０４…仮想カメラ姿勢調整部、２０５…表示パラメータ取得部、２０６…表示用画像生成部、２０７…画像データ出力部、２０８…画像処理部
【図１】
2018110295.tif 000003
【図２】
2018110295.tif 000004
【図３】
2018110295.tif 000005
【図４】
2018110295.tif 000006
【図５】
2018110295.tif 000007
【図６】
2018110295.tif 000008
【図７】
2018110295.tif 000009
【図８】
2018110295.tif 000010
【図９】
2018110295.tif 000011
【図１０】
2018110295.tif 000012
【図１１】
2018110295.tif 000013
【図１２】
2018110295.tif 000014
【図１３】
2018110295.tif 000015