説明

画像出力装置、画像表示装置、画像出力方法、プログラム及び記憶媒体

【課題】観察方向及び光源方向に依存する現実物体の色の変化を、表示装置上で再現する。
【解決手段】表示装置から該表示装置の外部に存在する光源へと向かう第1の方向と、表示装置から表示装置の観察者へと向かう第2の方向と、光源から表示装置へと照射される光の強度値と、輝度値と、の間の関連付けを示す入力データを入力する。既知の位置に配置された撮像装置を用いて撮像された光源の画像と、撮像装置と表示装置との位置姿勢関係とから、第1の方向と、第1の方向に存在する光源から表示装置に照射される光の強度と、を推定する。第2の方向を推定する。入力データを用いて、第1の推定手段が推定した第1の方向及び光の強度値並びに第2の推定手段が推定した第2の方向に対応する、輝度値を取得する。取得した輝度値に従う画像を生成して表示装置に出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、周辺環境に応じて表示を変更する画像処理技術に関する。
【背景技術】
【0002】
現実物体の色は、観察方向及び光源方向によって見える色が変化する。この原因として、観察方向及び光源方向によって光沢成分が変化することが挙げられる。光沢成分として具体的には、現実物体に映り込んだ光源像、及び現実物体に映り込んだ周囲環境像が挙げられる。また一方で、薄膜による光の干渉色や、モルフォ蝶の羽のような微細構造に起因する発色(以下、構造色)も、観察方向及び光源方向によって見える色が変化することが知られている。
【0003】
仮想空間の画像を生成する際に、仮想空間内に配置された光源と、仮想空間内に配置された視点とに従って、光沢を再現する方法が知られている。一例としては、光線追跡法やフォトンマッピングを用いて、視点に到達する光の量の算出を行う方法がある。また、周囲環境の映り込みを再現する手法として環境マッピングが知られている。環境マッピングにおいては、仮想空間内に視点と周囲環境のテクスチャ画像が配置され、視点と仮想オブジェクト表面の角度とを用いて、周囲環境の仮想オブジェクトへの映り込みが再現される。例えば、特許文献1に開示の技術によれば、予め作成された周囲風景のデータと、ユーザ指定に従って配置された光源のデータとに従って、オブジェクト上での周囲風景の映り込み及びグレアが再現される。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2003−99801号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
以上のように現実物体の色は観察方向及び光源方向によって見える色が変化する。しかしながら、このような観察方向及び光源方向に依存する現実物体の色の変化を、表示装置上で再現する方法は知られていなかった。例えば特許文献1に開示の方法は、仮想空間内の指定された位置に配置された光源と視点とに従って仮想空間画像を生成する方法であるが、現実空間における観察方向及び光源方向に依存する現実物体の色の変化を再現することはできない。
【0006】
本発明は、観察方向及び光源方向に依存する現実物体の色の変化を、表示装置上で再現することを目的とする。
【課題を解決するための手段】
【0007】
本発明の目的を達成するために、例えば、本発明の画像出力装置は以下の構成を備える。すなわち、
表示装置から該表示装置の外部に存在する光源へと向かう第1の方向と、該表示装置から該表示装置の観察者へと向かう第2の方向と、前記光源から前記表示装置へと照射される光の強度値と、輝度値と、の間の関連付けを示す入力データを入力する入力手段と、
既知の位置に配置された撮像装置を用いて撮像された前記光源の画像と、該撮像装置と前記表示装置との位置姿勢関係とから、前記第1の方向と、当該第1の方向に存在する前記光源から前記表示装置に照射される光の強度と、を検出する第1の検出手段と、
前記第2の方向を検出する第2の検出手段と、
前記入力データを用いて、前記第1の検出手段が推定した第1の方向及び光の強度値並びに前記第2の検出手段が検出した第2の方向に対応する、輝度値を取得する取得手段と、
前記取得手段が取得した輝度値に従う画像を生成して前記表示装置に出力する出力手段と、を備える。
【発明の効果】
【0008】
観察方向及び光源方向に依存する現実物体の色の変化を、表示装置上で再現することができる。
【図面の簡単な説明】
【0009】
【図1】実施例1における画像表示装置の構成を示すブロック図。
【図2】実施例1における画像表示装置の外観を示す図。
【図3】実施例1における画像処理アプリケーションの論理構成を示すブロック図。
【図4】実施例1における画像処理で使用されるXYZ直交座標系を示す図。
【図5】実施例1における画像処理の流れを示すフローチャート。
【図6】実施例1における環境画像の一例を示す図。
【図7】実施例1における位置ベクトルについて示す図。
【図8】実施例1における撮像入射光マップの形状及び配置を示す図。
【図9】実施例1における拡張入射光マップの形状及び配置を示す図。
【図10】実施例1における偏角色再現画像生成処理の流れを示すフローチャート。
【図11】実施例1における位置ベクトルと出射光ベクトルとの関係を示す図。
【図12】実施例1における座標ベクトルと入射光ベクトルとの関係を示す図。
【図13】実施例1における回転角と入射光及び出射光ベクトルとの関係を示す図。
【発明を実施するための形態】
【0010】
以下、本発明の実施の形態を図面を参照して詳細に説明する。尚、以下の実施の形態は本発明の特許請求の範囲を限定するものではなく、また以下の実施の形態で説明されている特徴の組み合わせの全てが本発明を構成する上で必須のものとは限らない。
【0011】
[実施例1]
以下、本発明に係る一実施例である実施例1について、図面を参照して詳細に説明する。本実施例においては、上述した光沢成分、干渉色、及び構造色などに起因する色の変化が、表示装置上で再現される(以下、偏角色再現と呼ぶ)。
【0012】
まず、本実施例の画像表示装置101の構成例について、図1および図2を参照して説明する。図1は、本発明に係る画像表示装置101の構成を示したブロック図である。102〜108は画像表示装置101の構成要素である。102は表示部、103はUI部、104はイメージセンサである。また105はCPU、106はメインメモリ、107はHDDやSSD等のデータ保存部、108は外部のデバイスやネットワーク等に接続可能なUSBやWi−Fi等の通信部、109はメインバスである。また、110は通信部108を介して接続される種々の外部デバイスである。
【0013】
本実施例における画像処理は、画像表示装置101上で動作する画像処理アプリケーション上で実現される。また、この画像処理アプリケーションは、画像表示装置101上で動作する汎用OS上で動作しうる。具体的には、画像処理アプリケーション及び汎用OSはデータ保存部107等の格納部に格納され、CPU105の制御の下メインメモリ106に展開され、CPU105によって実行される。CPU105は、画像処理アプリケーション及び汎用OSに従って、画像表示装置101の各部を制御する。このような汎用OS及び画像処理アプリケーションは、公知の技術によって達成可能なコンピュータプログラムを用いて実現可能である。よって、汎用OS上での画像処理アプリケーションの詳細な動作については、説明を省略する。
【0014】
以下、本実施例における画像表示装置101の動作の一例を簡単に説明する。まず、データ保存部107に格納されている画像処理アプリケーションが、CPU105からの指令により起動され、メインメモリ106に展開される。また、CPU105は、画像処理アプリケーションに従って、表示部102に画面を表示する。続いて、画像処理アプリケーションに従って、データ保存部107や外部デバイス110に格納されているオブジェクトデータを、バス109経由でメインメモリ106に転送する。
【0015】
その後、画像処理アプリケーションに従い、イメージセンサ104により取得された画像データが、バス109経由でメインメモリ106に随時転送される。さらに、画像処理アプリケーションに従い、CPU105は、メインメモリ106上のオブジェクトデータ及び画像データに基づいて、表示画像データの作成を行う。作成された表示画像データはバス109経由で表示部102上に表示される。
【0016】
図2は、画像表示装置101の外観図である。画像表示装置101は外部に表示部102、UI部103、及びイメージセンサ104を備える。画像表示装置101は携帯可能であり、ユーザが手に持って移動することができ、傾けることもできる。すなわち、ユーザは画像表示装置101を様々な環境下に置くことができる。
【0017】
本実施例では、表示部102とUI部103とはタッチパネル機能付きカラー液晶ディスプレイとして統合される。正確には、液晶ディスプレイである表示部102上に、タッチパネルであるUI部103が積層されている。本実施例において表示部102は、既知のsRGB色空間の再現が可能である。
【0018】
本実施例においては、表示部102に表示される画像において、オブジェクトの色再現を行う。そのため、表示部102自身が光沢性を持っている場合、表示部102表面の映り込みと、画像上で再現された映り込みとが重複する可能性がある。この場合、偏角色再現に支障をきたしうる。従って、表示部102表面には外光の反射を抑える処理が施されていることが望ましい。本実施例ではタッチパネルが液晶ディスプレイ上に積層されているため、タッチパネル表面にノングレア処理が施されている。
【0019】
イメージセンサ104は二次元イメージセンサであり、画像表示装置101の表面上に、表示部102と並んで配置されている。イメージセンサ104は、表示部102の表示面側を撮影する。画像表示装置101は、撮影された画像を用いて、入射光の状況及び観察者の位置を推定及び取得する。本実施例において画像表示装置101は、RGB各色の輝度をリアルタイムに取得可能なカラーデジタルイメージセンサを有するものとする。
【0020】
続いて、本実施例に係る画像処理アプリケーションについて説明する。図3は本発明を実現する画像処理アプリケーションの論理構成を示すブロック図である。301は画像表示装置101上で動作する画像処理アプリケーションであり、302〜307を含む。302はデータ保存部107や外部デバイス110に格納されているオブジェクトデータ(入力データ)を取得するオブジェクト取得部である。303はイメージセンサ104を駆動し表示部102の表示面側の画像(環境画像)を取得する環境取得部である。
【0021】
304は環境画像を用いて、観察者の方向および距離を推定する位置取得部である。305は環境画像を用いて、入射光マップを生成するマップ生成部である。入射光マップは、環境マップの一種である。入射光マップには、オブジェクトへと入射する入射光の輝度値が、それぞれの方向について記録されている。本実施例においては、入射光マップにおいて、輝度値データは平面又は曲面としてモデル化されている。
【0022】
306はオブジェクトデータ、観察者の位置、及び入射光マップに基づいて、偏角色再現画像を生成するレンダリング部306である。偏角色再現画像においては、観察者から見たオブジェクトの色及び光沢などが再現されている。307は偏角色再現画像に従って、表示部102への画像出力を行う出力部である。
【0023】
<オブジェクトデータ>
本実施例ではオブジェクトデータは、各ピクセルのRGB各色について、以下の関連付け情報を示す。画像表示装置101から画像表示装置101の外部に存在する光源へと向かう第1の方向と、画像表示装置101から画像表示装置101の観察者へと向かう第2の方向と、光源から表示装置へと照射される光の照度値と、輝度値と、の間の関連付けである。具体的には本実施例においては、偏角色再現を行うために、各ピクセルについて第1の方向(光の入射方向)と第2の方向(光の出射方向)とに応じた反射特性(以下、偏角反射特性)を示す平面画像データを用いる。
【0024】
この偏角反射特性を記述する代表的な方法として、BRDF(双方向反射率分布関数)を用いることができる。本実施例においては、BRDFに基づく色再現モデルである、偏角反射モデルを使用する。偏角反射モデルにおいては、光の入射角度θin、出射角度θoutおよび回転角φの組み合わせごとに、RGB各色の反射率Ref,Ref,Refが記録されたデータが用いられる。以下では、このデータのことを偏角反射データと呼ぶ。
【0025】
このように本実施例においては、光の入射方向と反射方向とを示すパラメータとして、光の入射角度θin、出射角度θoutおよび回転角φが用いられる。光の入射角度θin、出射角度θoutおよび回転角φは、以下で説明するように、光の入射方向及び光の出射方向から求めることができる。また反射率Refは、後述するように、光源から表示装置へと照射される光の照度値に対する輝度値の割合である。このように本実施例においては、反射率Refを用いて、光源から表示装置へと照射される光の強度値と、輝度値との関連が示される。本実施例においては、オブジェクトデータとして、θin,θout,φ,Ref,Ref,Refの組み合わせを格納するテーブル、すなわち偏角反射データが、オブジェクトの各ピクセルについて用意されている。
【0026】
入射角度θinとは、入射光ベクトルと反射面(オブジェクト)の法線ベクトルとがなす角度である。出射角度θoutとは、出射光ベクトルと反射面の法線ベクトルとがなす角度である。また回転角φとは、入射光ベクトルと出射光ベクトルとを反射面に投影した際に、投影された双方のベクトルがなす角度である。反射率Refとは、入射光ベクトルの方向からから照射される光の照度値と、他の光源が存在しない場合に出射光ベクトルの方向から観察されるオブジェクト表面の輝度値との比を示す値であり、単位は[1/sr]である。各パラメータの範囲は0°<θin<90°、0°<θout<90°、0°<φ<180°である。θin、θout、φについてそれぞれ5度刻みで、反射率Ref,Ref,Refが記録されている。
【0027】
<座標系>
図4は本実施例において説明のために使用するXYZ軸の向きを示した図である。本実施例ではイメージセンサ104の位置を原点とし、イメージセンサ104の光学軸(画像表示装置101の表面に対して垂直な方向)をZ軸とする。また、イメージセンサ104が向いている方向をZ軸正方向とする。また、イメージセンサ104と表示部102の中心とを結んだ直線をY軸とし、イメージセンサ側をY軸正方向とする。さらにZ軸およびY軸と垂直な軸をX軸とし、Y軸正方向からみて時計回りにある方向をX軸正方向とする。表示部102はZ=0となるXY平面上に位置する。
【0028】
<全体処理>
続いて、画像処理アプリケーション301において実施される画像処理について説明する。図5は本実施例における画像処理の流れを示したフローチャートである。もっとも、並列に実行可能なステップは並列に実行されてもよいし、逆の順序で実行されてもよい。
【0029】
ステップS501でオブジェクト取得部302は、オブジェクトデータの取得を行う。例えばオブジェクト取得部302は、データ保存部107又は外部デバイス110に保存されているオブジェクトデータを取得する。そしてオブジェクト取得部302は、取得したオブジェクトデータをメインメモリ106上に展開する。こうして、画像処理アプリケーション301はオブジェクトデータにアクセスすることができるようになる。
【0030】
続くステップS502からステップS507の処理は、画像処理アプリケーション301の演算能力、又は表示部102のリフレッシュレートに応じた速度で、繰り返し実行される。一連の処理を適切な速度で繰り返すことにより、画像表示装置101周囲の環境の変化、観察者の位置の変化、及び画像表示装置101の姿勢の変化を反映して表示を行うことができる。
【0031】
ステップS502で環境取得部303は、イメージセンサ104を駆動して画像(環境画像)を取得する。そして環境取得部303は、取得した画像をメインメモリ106上に保存する。図6は取得された環境画像の一例を示す。601は撮影された環境画像であり、この環境画像601には、主観察者602と副観察者603と光源604とが写っている。
【0032】
ステップS503で位置取得部304は、環境画像601を用いて、位置ベクトルOを算出する(第2の推定手段)。位置ベクトルOとは、イメージセンサ104から主観察者602へと向かうベクトル(第2の方向)である。図7は、イメージセンサ104と、主観察者602と、位置ベクトルOとの関係を示す。位置ベクトルOの始点はイメージセンサ104であり、終点は主観察者602である。本実施例においては位置ベクトルOの終点を主観察者602の視点とする。具体的には、具体的には、位置ベクトルOの終点を主観察者602の両眼の中間点とする。もっとも、位置ベクトルOの終点はこれには限られない。
【0033】
位置ベクトルOを算出するために位置取得部304は、既知の顔検出アルゴリズムを用いて、環境画像601中に存在する顔を検出する。さらに位置取得部304は、検出されたそれぞれの顔について、イメージセンサ104からの距離を取得する。本実施例においては、既知のコントラスト検出方式を用いて、イメージセンサ104と顔との間の距離が検出される。
【0034】
環境画像601からは、主観察者602と副観察者603の2つの顔が検出される。本実施例において位置取得部304は、最もイメージセンサ104に近い主観察者602を代表的な観察者として選択する。イメージセンサ104と主観察者602との間の距離が、位置ベクトルOの大きさとなる。さらに位置取得部304は、環境画像601上の主観察者602の顔の位置と、イメージセンサ104の画角とに従って、位置ベクトルOの方向を決定する。
【0035】
環境画像601内に観察者が検出されない場合、位置ベクトルOは任意に設定されうる。例えば、観察者が後ろを向いている等の理由で顔が検出できない場合、観察者がイメージセンサ104の画角外にいる場合、などがありうる。このような場合位置取得部304は、以前に算出した位置ベクトルO、例えば直前に算出した位置ベクトルO、を取得してもよい。また位置取得部304は、表示部102の正面の位置を指すベクトルを位置ベクトルOとして用いてもよいし、表示部102の外縁の1点を指すベクトルを位置ベクトルOとして用いてもよい。
【0036】
ステップS504でマップ生成部305は、ステップS502で取得された環境画像を用いて、入射光マップを生成する。まずマップ生成部305は、環境画像を用いて撮像入射光マップを作成する。図8は本実施例における撮像入射光マップ801の形状を示す図である。図8はまた、図8は本実施例における撮像入射光マップ801と画像表示装置101との位置関係を示す。
【0037】
撮像入射光マップ801は部分平面であり、イメージセンサ104の光軸と垂直な面上に存在する。イメージセンサ104と撮像入射光マップ801の距離は、dで示される。本実施例において距離dは任意の値であり、予め設定されている。例えば、距離dは無限大であってもよい。また、本実施例において、撮像入射光マップ801の大きさはイメージセンサ104の撮像範囲に一致する。撮像入射光マップ801の画素数は環境画像601の画素数と等しい。また、各画素についての輝度は、環境画像601の輝度と同じである。すなわち撮像入射光マップ801は、環境画像601を、イメージセンサ(原点)から距離dだけ離れた平面に配置したものに相当する。
【0038】
ステップS504においてマップ生成部305は、ユーザの指示に応じて、撮像入射光マップ801から観察者の顔を取り除いてもよい。本実施例において位置取得部304は、位置ベクトルOを算出するために環境画像から観察者の顔を検出する。また、マップ生成部305は、同じ環境画像を用いて撮像入射光マップを生成する。したがって、撮像入射光マップ801には観察者の顔が含まれる可能性が高い。
【0039】
撮像入射光マップ801に観察者の顔が含まれる場合、後に説明されるが、観察者の顔がオブジェクトに映り込むように表示部102への表示が行われうる。しかしながら、イメージセンサ104から観察者までの実際の距離と、撮像入射光マップ801におけるイメージセンサ(原点)から観察者までの距離が大きく異なる場合、映り込む観察者の位置、大きさ、形状などが不自然となる可能性がある。撮像入射光マップ801から観察者の顔を取り除いた場合、このような不自然な表示を避けることができる。
【0040】
本実施例では、撮像入射光マップ801から観察者の顔を取り除く指示をユーザから受けているものとする。この場合マップ生成部305は、撮像入射光マップ801から光源部分のみを抽出する。例えばマップ生成部305は撮像入射光マップ801において、光源部分以外の輝度情報を一定値にしうる。このためには、所定の輝度閾値が用いられうる。この輝度閾値は予め設定されていてもよいし、ユーザによって指定されてもよい。またこの輝度閾値は、撮像入射光マップ801の輝度分布に従って求められてもよい。例えばこの輝度閾値は、撮像入射光マップ801における輝度値の平均値又は所定のパーセンタイル値のような統計値であってもよい。
【0041】
そしてマップ生成部305は、撮像入射光マップ801における閾値以下の輝度を有する画素について、輝度値を固定値で置換する。固定値としては任意の値を用いることができる。この固定値は例えば、閾値以下の輝度を有する画素についての、輝度値の平均のような統計値でありうる。また、この固定値はユーザが指定してもよいし、予め定められた値であってもよい。
【0042】
さらにS504でマップ生成部305は、撮像入射光マップ801から拡張入射光マップ901を作成してもよい。以下に述べる拡張入射光マップ901を作成することにより、イメージセンサ104の画角外からの入射光の影響を再現しうる。本実施例においてマップ生成部305は撮像入射光マップ801から拡張入射光マップ901を作成し、拡張入射光マップ901が後の処理において用いられる。しかしながら、マップ生成部305が拡張入射光マップ901を生成せずに、撮像入射光マップ801が後の処理において用いられてもよい。
【0043】
図9は本実施例における拡張入射光マップ901の形状と、画像表示装置101との位置関係を示した図である。本実施例に係る拡張入射光マップ901は、キューブマップである。具体的には、Z=0となる平面にキューブマップの一方の底面(以下、下底面と呼ぶ)が位置し、Z=dとなる平面にキューブマップの他方の底面(以下、上底面と呼ぶ)が位置する。Z=dとなる平面には、光源部分のみが抽出された撮像入射光マップ801が位置している。イメージセンサ104(原点)と撮像入射光マップ801との位置関係は上述したものと同様であるから、説明を省略する。
【0044】
拡張入射光マップ901の側面の全ての画素の輝度は、所定の値に設定される。例えば、撮像入射光マップ801から光源部分以外の輝度値を一定値とする際に用いた固定値を、この所定の値とすることができる。もっとも、拡張入射光マップ901の側面の輝度値はこれには限定されず、例えばZ座標が大きいほど輝度値が大きくてもよい。また、拡張入射光マップ901の側面は、撮像入射光マップ801と同等の解像度を持つものとする。さらに本実施例においては、拡張入射光マップ901の下底面には輝度を設定しないものとする。
【0045】
上述の説明では、ステップS503及びステップS504の双方において、ステップS502で取得された環境画像601が使用される。しかしながら、ステップS503で用いられる画像とステップS504で用いられる画像とは異なる画像であってもよい。例えばステップS502で環境取得部303は、露出や被写界深度等の撮像条件を変化させて、S503用の画像とS504用の画像とを別々に取得してもよい。
【0046】
ステップS505でレンダリング部306は、オブジェクトデータ、観察者ベクトル、及び入射光マップを基に、偏角色再現画像を生成する。ステップS505の詳細については後述する。
【0047】
ステップS506で出力部307は、ステップS505で生成された偏角色再現画像に従って、表示部102に画像表示を行わせる。ここで出力部307は、偏角色再現画像に対して画像処理を行ってもよい。例えば表示部102が同じ画像を表示していても、観察者の位置に依存して、観察者に見える画像は異なるかもしれない。このような表示部102の偏角特性を考慮して、ステップS505で算出された偏角色再現画像が観察者に知覚されるように、偏角色再現画像に対して色補正を行うことができる。
【0048】
具体的には出力部307は、表示部102の各画素について、観察者ベクトルと、色成分のそれぞれについての補正係数とを格納しうる。偏角色再現画像の輝度値と、観察者ベクトルに対応する補正係数とから、出力部307は表示部102へと出力する画像データを生成することができる。例えば、偏角色再現画像の輝度値に対して補正係数を乗じて得た値を、表示部102へと出力する画像データの輝度値としてもよい。
【0049】
また、ステップS505で生成された偏角色再現画像は、本実施例に係る表示部102が再現可能な色域であるsRGBを超える色域を持っている可能性がある。出力部307は、既知の色域圧縮技術やHDR技術に従って、画像の色を補正してもよい。また出力部307は、GUIなどのアプリケーションの動作に必要とされる表示データを生成してもよい。このようなデータは、偏角色再現画像に追加又は重畳されうる。
【0050】
ステップS507で、画像処理アプリケーション301内の終了判定部(不図示)は、図5の処理を終了するか否かを判定する。例えば、ステップS502からステップS506までの処理の間に、ユーザから終了指示がなされた場合、終了判定部は処理を終了することを決定してもよい。また、オブジェクト取得部302、環境取得部303、又は位置取得部304が取得した情報に基づいて、終了判定部は処理を終了するか否かを決定してもよい。終了判定部が処理を終了することを決定した場合、図5の処理は終了する。終了判定部が処理を継続することを決定した場合、処理はステップS502に戻る。
【0051】
<偏角色再現画像生成処理>
図10は、ステップS505における偏角色再現画像を生成する処理の詳細を示すフローチャートである。ステップS1001でレンダリング部306は、オブジェクトの位置を決定し、仮想空間内にオブジェクトを配置する。本実施例において仮想空間は、上述の現実空間と座標系を共有する。すなわち、仮想空間のXYZ軸は、上述したイメージセンサ104を原点とする現実空間のXYZ軸と一致する。
【0052】
本実施例で用いる平面オブジェクトは、仮想空間内のXY平面上に、すなわち表示部102表面の位置に配置される。さらにレンダリング部306は、ユーザあるいは画像処理アプリケーション301の指示に従い、オブジェクトを操作することができる。例えばレンダリング部306は、オブジェクトをZ軸を中心として回転させ、拡大縮小させ、又は平行移動させることができる。こうしてレンダリング部306は、オブジェクトと表示部102との位置関係を決定する。
【0053】
以下、レンダリング部306は、表示部102の全画素に対してステップS1002からステップS1010までの処理を実行する。まずステップS1002でレンダリング部306は、表示部102の1つの画素を処理画素として指定する。ステップS1002における指定は、任意の順番に、例えばラスタ順に、行われうる。
【0054】
ステップS1003でレンダリング部306は、処理画素について、画素と主観察者602との位置関係を示す出射光ベクトルO(x,y)を算出する。図11は、イメージセンサ104、処理画素(x,y)、及び主観察者602の位置関係を示した図である。処理画素(x,y)の座標ベクトル(原点から処理画素(x,y)へのベクトル)をP(x,y)とした場合、出射光ベクトルO(x,y)は以下の式(1)により算出することができる。
(x,y) = O − P(x,y) …(1)
【0055】
またレンダリング部306は、Z軸と出射光ベクトルO(x,y)とがなす角度を、処理画素(x,y)からの光の出射角度θout(x,y)として求める。
【0056】
以下、レンダリング部306は、拡張入射光マップ901の全画素に対してステップS1004からステップS1007までの処理を実行する。まずステップS1004でレンダリング部306は、拡張入射光マップ901の1つの画素を着目画素として指定する。本実施例においてステップS1004でレンダリング部306が指定する画素は、拡張入射光マップ901の上底面および側面の全ての画素である。これは、本実施例において表示されるオブジェクトはZ=0となるXY平面上に位置する平面であり、Z=0である下底面からの入射光はオブジェクトの見え方に影響を与えないからである。もっとも他の実施例においては、ステップS1004でレンダリング部306が下底面のピクセルを指定してもよい。
【0057】
ステップS1005でレンダリング部306は、着目画素と処理画素(x,y)との位置関係を示す入射光ベクトル(第1の方向)I(x,y)を算出する(第1の推定手段)。ここで着目画素の輝度値は、入射光ベクトルの方向に存在する光源から処理画素(x,y)へと照射される光の強度を示す。図12は、原点であるイメージセンサ104と、着目画素(x,y)と、拡張入射光マップ901との位置関係を示した図である。着目画素の座標ベクトル(原点からのベクトル)をI、着目画素(x,y)の座標ベクトルをP(x,y)とした場合、入射光ベクトルI(x,y)は以下の式(2)により算出することができる。
(x,y) = I − P(x,y) …(2)
【0058】
またレンダリング部306は、Z軸と入射光ベクトルI(x,y)とがなす角度を、処理画素(x,y)への光の入射角度θin(x,y)として求める。
【0059】
イメージセンサ104と撮像入射光マップ801との間隔dが無限大に設定されている場合、任意の処理画素(x,y)及び任意の着目画素について、I(x,y)≒Iという近似ができる。したがってこの場合、入射光ベクトルI(x,y)として、Iを用いてもよい。
【0060】
ステップS1006でレンダリング部306は、入射光と出射光との間の回転角φを算出する。図13は、入射光ベクトルI(x,y)、出射光ベクトルO(x,y)、及び回転角φの関係を示す。1301は、Z=0であるXY平面を示す。ベクトルI’(x,y)は、入射光ベクトルI(x,y)をXY平面1301に投影して得られる。またベクトルO’(x,y)は、入射光ベクトルO(x,y)をXY平面1301に投影して得られる。これらのベクトルI’(x,y)とO(x,y)との間の角度を、本実施例においては、入射光ベクトルI(x,y)と出射光ベクトルO(x,y)との間の回転角とする。
【0061】
ステップS1007でレンダリング部306は、処理画素(x,y)における、着目画素からの光の入射に対する主観察者602への反射光量を算出する。まずレンダリング部306は、処理画素についての、オブジェクトの偏角反射データを取得する。具体的にはレンダリング部306は、オブジェクト取得部302が取得したオブジェクトデータを参照する。こうしてレンダリング部306は、画素(x,y)についての、θin(x,y),θout(x,y),及びφに対応する反射率Ref,Ref,Refを取得する。
【0062】
本実施例において偏角反射データには、角度の複数の組み合わせに対する反射率が記録されている。このため、θin(x,y),θout(x,y),及びφの組み合わせに対応する反射率は偏角反射データに含まれていないかもしれない。この場合、補間によって反射率を求めてもよい。例えば、四面体補完を用いることができる。
【0063】
その後、レンダリング部306は、着目画素からの入射光に対応する、処理画素から主観察者602への反射光の輝度Rout,Gout,Boutを算出する。反射光の輝度Rout,Gout,Boutは、以下の式(3)に従って算出される。
【数1】

【0064】
式(3)においてRin,Gin,Binは、拡張入射光マップ901における着目画素の輝度値である。本実施例においては、着目画素の輝度値を、着目画素からの入射光の輝度として用いる。また、ωは処理画素からみた着目画素の立体角であり、入射光輝度に立体角ωを積算することで入射光照度が求められる。従って式(3)に示されるように、例えばR成分について、反射光の輝度Routは、入射光の輝度Rinと反射率Refと入射光立体角ωとの積として求められる。
【0065】
ステップS1008でレンダリング部306は、拡張入射光マップ901の全ての画素についてステップS1004〜S1007の処理を行ったか否かを判定する。全ての画素について処理が終わっている場合、処理はステップS1009に進む。まだ処理が行われていない画素がある場合、処理はステップS1004に戻る。
【0066】
ステップS1009でレンダリング部306は、それぞれの着目画素についてステップS1007で求められた反射光の輝度Routを合計する。こうして求められた合計値が、偏角色再現画像における、ステップS1002で指定された処理画素についてのR成分の輝度値となる。同様にレンダリング部306は、それぞれの着目画素についての反射光の輝度Goutの合計を、処理画素についてのG成分の輝度値として求める。またレンダリング部306は、それぞれの着目画素についての反射光の輝度Boutの合計を、処理画素についてのB成分の輝度値として求める。
【0067】
ステップS1010でレンダリング部306は、表示部102の全ての画素に対してステップS1003〜S1009の処理を行ったか否かを判定する。まだ処理が行われていない画素がある場合、処理はステップS1002に戻る。全ての画素について処理が終わっている場合、ステップS505の処理は終了する。以上のようにしてレンダリング部306は、偏角色再現画像のそれぞれの画素の輝度値を算出する。
【0068】
以上のように、本実施例によれば、ユーザ周囲の実環境に基づいてリアルタイムに偏角色再現を行うことが可能となる。
【0069】
[その他の実施例]
(表示部およびUI部について)
実施例1では、表示部102およびUI部103として、タッチパネル機能付きカラー液晶ディスプレイを使用した。しかしながら、本発明を構成する上で表示部102とUI部103が一体化されている必要はない。また、表示部102とUI部103とは異なる装置を用いて実装することもできる。例えばUI部103として、各種のボタン又はポインティングデバイスを用いてもよい。また、通信部108に接続された外部入力デバイスを、UI部103として使用してもよい。
【0070】
表示部102には有機ELディスプレイ等、他の種類のディスプレイデバイスを使用してもよい。その際、表示部102として使用されるディスプレイデバイスは、十分な応答速度を備えていることが望ましい。この場合、表示部102による表示は周囲環境をリアルタイムに反映しうる。また、表示部102が使用する色空間はsRGBに限らない。例えば、公知であるWide Gamut RGBなどの色空間を使用してもよい。また、本実施例ではRGBの3色について偏角色再現を行ったが、色数および色の組み合わせはこれに限定されない。例えば表示部102はモノクロディスプレイでもよく、この場合、モノクロ画像において偏角色再現を行うことができる。
【0071】
(イメージセンサについて)
実施例1では、イメージセンサ104は、表示部102の表示面側を撮影した。しかしながらイメージセンサ104の撮像系の光学軸は、正確に表示部102の法線方向になくてもよい。またイメージセンサ104は画像表示装置101に固定されている必要はなく、画像表示装置101に対して可動であってもよいし、画像表示装置101から分離可能であってもよい。
【0072】
これらの場合、イメージセンサ104と表示部102との位置姿勢関係が既知であることが望ましい。既知である位置姿勢関係は、位置ベクトルOを算出する際に考慮することができる。また、実施例1においては矩形の撮像領域をもつイメージセンサ104を使用した。しかしながら、イメージセンサの形態はこれに限定されない。例えばイメージセンサ104が、魚眼レンズを備え、円形の撮像範囲を有してもよい。
【0073】
(オブジェクトデータについて)
オブジェクトデータの形式は、上述の偏角反射データには限定されない。例えば、表示部102又は画像処理アプリケーション301の性能および処理形態に応じて、より簡略化されたデータをオブジェクトデータとして用いてもよいし、より詳細なデータをオブジェクトデータとして用いてもよい。例えばオブジェクトデータは偏角反射を表現可能な関数そのものであっても、関数の係数であってもよい。また例えばオブジェクトデータは、オブジェクトの拡散反射特性と鏡面反射特性を個別に記録するものであってもよく、これらの特性は個別にモデル化されていてもよい。またオブジェクトデータは、角度ごとの分光反射率データを記録した分光偏角反射データであってもよい。
【0074】
さらには上述の実施例において、偏角反射データは色成分R,G,Bのそれぞれについての反射率を示した。しかしながら偏角反射データはRGB色空間に基づくものである必要はなく、例えばXYZ色空間に基づくものであってもよい。この場合出力部307は、XYZ色空間で定義される偏角色再現画像を、RGB色空間で定義される画像へと変換してもよい。
【0075】
オブジェクトデータはさらに、平面画像ではなくてもよい。例えばオブジェクトデータは、凹凸情報を持ったデータ又は3Dのデータでありうる。この場合オブジェクトデータは、オブジェクト表面の偏角反射特性を記述したものでありうる。オブジェクトデータとして3Dデータを使用する場合、表示部102の背面側からの入射光も考慮することが好ましい。したがって、拡張入射光マップ901をZ<0の領域に拡張し、全周からの入射光を扱うことが望ましい。
【0076】
(観察者位置の取得について)
観察者の位置を取得する方法は、顔検出に限られない。任意の手法を用いて、画像表示装置と観察者との位置関係を取得しうる。例えば、観察者が頭部にマーカーを装着してもよい。このマーカーは、画像処理によって識別可能であってもよいし、他の位置検出方法によって識別可能であってもよい。この場合、マーカーを検出することにより、観察者の位置を取得することができる。あるいは、画像表示装置101は複数のイメージセンサを備えていてもよい。この場合、視差を用いて観察者の位置を算出することができる。
【0077】
また、複数の観察者の中から主観察者を選択する方法も限定されない。例えば、イメージセンサ104から観察者までの距離を取得するためには、例えばカメラのオートフォーカスにおいて用いられる既知の技術を使用することができる。またイメージセンサ104が固定焦点の光学系を有する場合、検出された顔のぼけ具合から距離を推定してもよい。さらには、検出された顔の大きさに基づいて、観察者までの距離を推定してもよい。あるいは、主観察者を指定する入力をユーザから取得してもよい。
【0078】
このようなイメージセンサ104から観察者までの距離を取得する技術は、イメージセンサ104から光源までの距離を取得するためにも利用することができる。この場合、イメージセンサ104から光源までの距離を、イメージセンサ104と撮像入射光マップ801との間隔dとしてもよい。
【0079】
(入射光マップについて)
上述の撮像入射光マップ801の形状は平面には限られない。また、拡張入射光マップ901の形状も、直方体には限られない。例えば撮像入射光マップ801は円形であってもよく、拡張入射光マップ901はこの撮像入射光マップ801を上底面の一部として有する円柱状であってもよい。また、イメージセンサ104が魚眼レンズを備えてもよい。この場合、拡張入射光マップ901は表示部102の表面側を覆う半球状であってもよく、拡張入射光マップ901の一部または全部が撮像入射光マップ801であってもよい。
【0080】
(レンダリングについて)
実施例1では、表示部102の表面にはノングレア処理が施されている。しかしながら、表面処理によって外光の反射を完全に抑えることは困難である。そのため、表示画像に適切な画像補正を行うことにより、外光の反射を相殺してもよい。このためには例えば、予め取得された表示部102表面のBRDF又は偏角反射データを用いることができる。この場合レンダリング部306は、拡張入射光マップ901からの入射光に対する、表示部102表面での反射光量を算出しうる。そして出力部307は、算出された反射光量を相殺するような画像補正を、表示部102に表示されるデータに対して行ってもよい。
【0081】
(その他の実施形態)
実施例1では、図1に示される画像表示装置101が処理を行った。しかしながら、本発明は他の装置を用いて実現することも可能である。例えば、CPUとメモリとを備える一般的なコンピュータを、実施例1の画像表示装置101として用いることもできる。また実施例1においては、画像表示装置101上で動作する画像処理アプリケーション301が処理を行うものとして説明した。しかしながら、実施例1に示した処理は、専用の装置を用いて実現することもできる。このような専用の装置は例えば、画像処理アプリケーション301の論理構成302〜307のそれぞれを実現する、1以上のハードウェア要素を備えてもよい。また、本発明に係る画像処理装置は、複数の機器から構成されるシステムであってもよい。
【0082】
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。

【特許請求の範囲】
【請求項1】
表示装置から該表示装置の外部に存在する光源へと向かう第1の方向と、該表示装置から該表示装置の観察者へと向かう第2の方向と、前記光源から前記表示装置へと照射される光の強度値と、輝度値と、の間の関連付けを示す入力データを入力する入力手段と、
既知の位置に配置された撮像装置を用いて撮像された前記光源の画像と、該撮像装置と前記表示装置との位置姿勢関係とから、前記第1の方向と、当該第1の方向に存在する前記光源から前記表示装置に照射される光の強度と、を推定する第1の推定手段と、
前記第2の方向を推定する第2の推定手段と、
前記入力データを用いて、前記第1の推定手段が推定した第1の方向及び光の強度値並びに前記第2の推定手段が推定した第2の方向に対応する、輝度値を取得する取得手段と、
前記取得手段が取得した輝度値に従う画像を生成して前記表示装置に出力する出力手段と、
を備えることを特徴とする画像出力装置。
【請求項2】
前記第2の推定手段は、前記撮像装置を用いて撮像された画像に対して顔検出を行い、前記表示装置から前記検出された顔へと向かう方向を前記第2の方向とすることを特徴とする請求項1に記載の画像出力装置。
【請求項3】
前記第2の推定手段は、前記撮像装置を用いて撮像された画像から2つ以上の顔を検出した場合、前記表示装置から前記検出された顔のうち最も大きい顔へと向かう方向を前記第2の方向とすることを特徴とする請求項2に記載の画像出力装置。
【請求項4】
前記第1の推定手段は、複数の前記第1の方向のそれぞれについて前記輝度値を取得し、
前記出力手段は、複数の前記第1の方向のそれぞれについての前記輝度値の合計値に従う画像を生成して前記表示装置に出力することを特徴とする、請求項1乃至3の何れか1項に記載の画像出力装置。
【請求項5】
前記入力データは、前記第1の方向と前記表示装置の表示面の法線とがなす角度、前記第2の方向と前記表示装置の表示面の法線とがなす角度、前記表示装置の表示面に投影された前記第1の方向と前記第2の方向とがなす角度、及び、前記第1の方向から照射される光の強度値と前記輝度値との比、の間の関連付けを示すことを特徴とする、請求項1乃至4の何れか1項に記載の画像出力装置。
【請求項6】
請求項1乃至5の何れか1項に記載の画像出力装置と、該画像出力装置に接続された表示装置とを備えることを特徴とする、画像表示装置。
【請求項7】
画像出力装置が行う画像出力方法であって、
前記画像出力装置の入力手段が、表示装置から該表示装置の外部に存在する光源へと向かう第1の方向と、該表示装置から該表示装置の観察者へと向かう第2の方向と、前記光源から前記表示装置へと照射される光の強度値と、輝度値と、の間の関連付けを示す入力データを入力する入力工程と、
前記画像出力装置の第1の推定手段が、既知の位置に配置された撮像装置を用いて撮像された前記光源の画像と、該撮像装置と前記表示装置との位置姿勢関係とから、前記第1の方向と、当該第1の方向に存在する前記光源から前記表示装置に照射される光の強度と、を推定する第1の推定工程と、
前記画像出力装置の第2の推定手段が、前記第2の方向を推定する第2の推定工程と、
前記画像出力装置の取得手段が、前記入力データを用いて、前記第1の推定工程で推定した第1の方向及び光の強度値並びに前記第2の推定工程で推定した第2の方向に対応する、輝度値を取得する取得工程と、
前記画像出力装置の出力手段が、前記取得工程で取得した輝度値に従う画像を生成して前記表示装置に出力する出力工程と、
を含むことを特徴とする画像出力方法。
【請求項8】
コンピュータを、請求項1乃至6の何れか1項に記載の画像出力装置が有する各手段として機能させるための、コンピュータプログラム。
【請求項9】
請求項8に記載のコンピュータプログラムを格納した、コンピュータが読み取り可能な記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2012−155624(P2012−155624A)
【公開日】平成24年8月16日(2012.8.16)
【国際特許分類】
【出願番号】特願2011−15705(P2011−15705)
【出願日】平成23年1月27日(2011.1.27)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】