(57)【特許請求の範囲】
【請求項１】
ユーザの頭部に装着された装身具の頭頂部のマーカーの撮影画像をスキャンして前記頭頂部のマーカーの撮影画像上の２次元座標を検出するマーカー検出部と、
前記頭頂部のマーカーのＺ方向の座標を用いることなく、検出された前記頭頂部のマーカーの２次元座標にもとづいて視点位置の並進補正量を求める並進補正量計算部と、
前記並進補正量にもとづいて視点位置を更新する視点位置更新部と、
更新された視点位置から３次元オブジェクトを見た場合の視差画像を生成する立体画像生成部と、
較正用３次元オブジェクトの視差画像を前記立体画像生成部に生成させ、頭部を垂直方向の回転軸周りに回転しても立体視された較正用３次元オブジェクトが静止するように、ユーザの頭部に装着された装身具を前後させてマーカーの位置を調整するようユーザに促す較正部とを含むことを特徴とする画像生成装置。
【請求項２】
ユーザの頭部に装着された装身具の頭頂部のマーカーと左側頭部のマーカーと右側頭部のマーカーの撮影画像をスキャンして前記頭頂部のマーカーと前記左側頭部のマーカーと前記右側頭部のマーカーの撮影画像上の２次元座標を検出するマーカー検出部と、
前記左側頭部のマーカーと前記右側頭部のマーカーのＺ方向の座標を用いることなく、検出された前記左側頭部のマーカーの２次元座標および前記右側頭部のマーカーの２次元座標にもとづいて前記左側頭部のマーカーと前記右側頭部のマーカーを結ぶ線が水平方向に対してなす角度である頭部の傾きを求める頭部傾き計算部と、
前記頭部の傾きにもとづいて視点位置のシフト量を求めるシフト量計算部と、
前記頭頂部のマーカーのＺ方向の座標を用いることなく、検出された前記頭頂部のマーカーの２次元座標および前記頭部の傾きにもとづいて視点位置の並進補正量を求める並進補正量計算部と、
前記シフト量および前記並進補正量にもとづいて視点位置を更新する視点位置更新部と、
更新された視点位置から３次元オブジェクトを見た場合の視差画像を生成する立体画像生成部とを含むことを特徴とする画像生成装置。
【請求項３】
較正用３次元オブジェクトの視差画像を前記立体画像生成部に生成させ、頭部を垂直方向の回転軸周りに回転しても立体視された較正用３次元オブジェクトが静止するように、ユーザの頭部に装着された装身具を前後させてマーカーの位置を調整するようユーザに促す較正部をさらに含むことを特徴とする請求項２に記載の画像生成装置。
【請求項４】
ユーザの頭部に装着された装身具の複数のマーカーの撮影画像をスキャンして前記複数のマーカーの撮影画像上の２次元座標を検出するマーカー検出ステップと、
マーカーのＺ方向の座標を用いることなく、検出された前記複数のマーカーの２次元座標を用いて、ユーザの視点位置を補正する視点位置補正ステップと、
更新された視点位置から較正用３次元オブジェクトを見た場合の視差画像を生成する立体画像生成ステップと、
頭部を垂直方向の回転軸周りに回転しても立体視された較正用３次元オブジェクトが静止するように、ユーザの頭部に装着された装身具を前後させてマーカーの位置を調整するようユーザに促す較正ステップとを含むことを特徴とする較正方法。
【請求項５】
ユーザの頭部に装着された装身具の頭頂部のマーカーの撮影画像をスキャンして前記頭頂部のマーカーの撮影画像上の２次元座標を検出するマーカー検出ステップと、
前記頭頂部のマーカーのＺ方向の座標を用いることなく、検出された前記頭頂部のマーカーの２次元座標にもとづいて視点位置の並進補正量を求める並進補正量計算ステップと、
前記並進補正量にもとづいて視点位置を更新する視点位置更新ステップと、
更新された視点位置から３次元オブジェクトを見た場合の視差画像を生成する立体画像生成ステップと、
較正用３次元オブジェクトの視差画像を前記立体画像生成ステップに生成させ、頭部を垂直方向の回転軸周りに回転しても立体視された較正用３次元オブジェクトが静止するように、ユーザの頭部に装着された装身具を前後させてマーカーの位置を調整するようユーザに促す較正ステップとを含むことを特徴とする画像生成方法。
【請求項６】
ユーザの頭部に装着された装身具の頭頂部のマーカーの撮影画像をスキャンして前記頭頂部のマーカーの撮影画像上の２次元座標を検出するマーカー検出機能と、
前記頭頂部のマーカーのＺ方向の座標を用いることなく、検出された前記頭頂部のマーカーの２次元座標にもとづいて視点位置の並進補正量を求める並進補正量計算機能と、
前記並進補正量にもとづいて視点位置を更新する視点位置更新機能と、
更新された視点位置から３次元オブジェクトを見た場合の視差画像を生成する立体画像生成機能と、
較正用３次元オブジェクトの視差画像を前記立体画像生成機能に生成させ、頭部を垂直方向の回転軸周りに回転しても立体視された較正用３次元オブジェクトが静止するように、ユーザの頭部に装着された装身具を前後させてマーカーの位置を調整するようユーザに促す較正機能とをコンピュータに実現させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、立体映像を生成する画像生成装置、画像生成方法および較正方法に関する。
【背景技術】
【０００２】
映像を立体的に提示できる３次元テレビやヘッドマウントディスプレイ等の３次元表示デバイスが利用されている。携帯電話や携帯ゲーム機等の携帯端末機において映像を立体的に提示できるデバイスも開発されており、一般のユーザが立体的な映像を視聴する機会が増加してきている。
【０００３】
立体的な映像を表示する３次元表示デバイスは、ユーザの左右の眼に視差のある画像を見せることでユーザが画像を立体視することを可能にする。左右の眼に視差のある画像を見せるために特殊な光学メガネを利用する方式や、光学メガネを使わずにパララックスバリアやレンチキュラーレンズを用いる方式などがある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このような３次元表示デバイスによる立体視では、ユーザの視点位置の情報が正確に得られ、また、視点位置が固定して動かないことが前提となっている。しかし、ユーザに頭を全く動かさないように求めることは現実的ではない。視点位置が動かないことを前提に生成された視差画像をユーザが立体視している場合に、ユーザが少しでも頭を動かしたり、傾けたりすると、視点位置が変位し、見ている立体映像が揺れ動くため、見づらさを感じたり、酔いが生じたりする。
【０００５】
本発明はこうした課題に鑑みてなされたものであり、その目的は、視点が変位しても安定した立体映像を生成することのできる画像生成装置、画像生成方法および較正方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のある態様の画像生成装置は、ユーザの頭部に装着された装身具の複数のマーカーの撮影画像をスキャンして前記複数のマーカーの撮影画像上の２次元座標を検出するマーカー検出部と、マーカーのＺ方向の座標を用いることなく、検出された前記複数のマーカーの２次元座標を用いて、ユーザの視点位置を補正する視点位置補正部と、補正された視点位置から３次元オブジェクトを見た場合の視差画像を生成する立体画像生成部とを含む。
【０００７】
本発明の別の態様は、較正方法である。この方法は、ユーザの頭部に装着された装身具の複数のマーカーの撮影画像をスキャンして前記複数のマーカーの撮影画像上の２次元座標を検出するマーカー検出ステップと、マーカーのＺ方向の座標を用いることなく、検出された前記複数のマーカーの２次元座標を用いて、ユーザの視点位置を補正する視点位置補正ステップと、補正された視点位置から較正用３次元オブジェクトを見た場合の視差画像を生成する立体画像生成ステップと、頭部を動かしても立体視された較正用３次元オブジェクトが静止するように、ユーザの頭部に装着された装身具を前後させてマーカーの位置を調整するようユーザに促す較正ステップとを含む。
【０００８】
本発明のさらに別の態様は、画像生成方法である。この方法は、ユーザの頭部に装着された装身具の複数のマーカーの撮影画像をスキャンして前記複数のマーカーの撮影画像上の２次元座標を検出するマーカー検出ステップと、マーカーのＺ方向の座標を用いることなく、検出された前記複数のマーカーの２次元座標を用いて、ユーザの視点位置を補正する視点位置補正ステップと、補正された視点位置から３次元オブジェクトを見た場合の視差画像を生成する立体画像生成ステップとを含む。
【０００９】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１０】
本発明によれば、視点が変位しても安定した立体映像を表示することができる。
【図面の簡単な説明】
【００１１】
【図１】３次元ディスプレイ装置を説明する図である。
【図２】図２（ａ）および図２（ｂ）は、ユーザが装着するマーカー付きヘアバンドを説明する図である。
【図３】マーカー付きヘアバンドを装着したユーザがディスプレイを見ている様子を説明する図である。
【図４】マーカーの発光分布をカメラが検知する様子を示す図である。
【図５】図５（ａ）は、ヘアバンドの３つのマーカーとカメラの位置関係を説明する図であり、図５（ｂ）は、カメラにより撮影された左側頭部マーカーの像と右側頭部マーカーの像を示す図である。
【図６】本実施の形態に係る立体画像生成装置の機能構成図である。
【図７】図６の視点位置補正部の詳細な機能構成図である。
【図８】カメラによる撮影画像における頭頂部マーカー、左側頭部マーカー、および右側頭部マーカーを示す図である。
【図９】図９（ａ）および図９（ｂ）は、マーカー検出部が撮影画像をスキャンして頭頂部マーカー、左側頭部マーカー、および右側頭部マーカーを検出する方法を説明する図である。
【図１０】３次元オブジェクトをスクリーンにステレオ表示する際の左右の目の視錐台を説明する図である。
【図１１】視点が並進移動したときの視点位置の並進補正量を説明する図である。
【図１２】図１２（ａ）および図１２（ｂ）は、頭部の傾き角度による頭頂部マーカーの位置の変化を説明する図である。
【図１３】図１３（ａ）および図１３（ｂ）は、ユーザが頭部を傾けた場合の視錘台の中心の変位を説明する図である。
【図１４】マーカー付きヘアバンドの装着位置と視錘台の射影原点の関係を説明する図である。
【図１５】図１５（ａ）および図１５（ｂ）は、視点位置のＺ方向の補正を行わないことの利点を説明する図である。
【図１６Ａ】ユーザの頭部の真上から見た場合の視錘台と３次元オブジェクトとスクリーンの位置関係を説明する図である。
【図１６Ｂ】ユーザが頭部を回した場合の新しい視錘台を説明する図である。
【図１６Ｃ】ユーザが頭部を回した場合の近似的な視錘台を説明する図である。
【図１７Ａ】頭部を正面に向けている場合の視線角度を示す図である。
【図１７Ｂ】頭部を回転角Φだけ回転した場合の視線角度を示す図である。
【図１７Ｃ】頭部の回転を並進移動で近似した場合の視線角度を示す図である。
【発明を実施するための形態】
【００１２】
図１は、３次元ディスプレイ装置を説明する図である。３次元ディスプレイ装置は、ゲーム機２００と、ディスプレイ３００と、カメラ３１０とを含む。
【００１３】
ディスプレイ３００は、無線通信またはＵＳＢなどの周辺機器を接続するインタフェースでゲーム機２００に接続される。ゲーム機２００は、さらにネットワークを介してサーバに接続されてもよい。ディスプレイ３００は、ゲーム機２００の代わりに、コンピュータや携帯端末に接続されてもよい。カメラ３１０は、ディスプレイ３００の上部などの設置され、ディスプレイ３００を見ているユーザを撮影し、撮影した画像をゲーム機２００に供給する。
【００１４】
図２（ａ）および図２（ｂ）は、ユーザが装着するマーカー付きヘアバンド１００を説明する図である。
【００１５】
図２（ａ）は、マーカー付きヘアバンド１００の構成図である。ヘアバンド１００は頭頂部マーカー１１０Ｔと、左側頭部マーカー１１０Ｌと、右側頭部マーカー１１０Ｒとを有する。ユーザがヘアバンド１００を装着すると、頭頂部マーカー１１０Ｔはユーザの頭部、左側頭部マーカー１１０Ｌと右側頭部マーカー１１０Ｒはユーザの左右の側頭部に設けられる。図２（ｂ）は、ユーザがマーカ付きヘアバンド１００を装着した様子を示す。これらのマーカーは一例として赤外線発光ダイオードである。
【００１６】
ここでは、ヘアバンドにマーカーを搭載したが、ユーザの頭部に装着し、装着位置を前後に調整できるものであれば、ヘアバンドに限らず、任意の頭部用装身具を用いることができる。たとえば、ヘッドセットであってもよく、帽子であってもよい。
【００１７】
図３は、マーカー付きヘアバンド１００を装着したユーザがディスプレイ３００を見ている様子を説明する図である。
【００１８】
ユーザはディスプレイ３００から距離ｄだけ離れた位置からディスプレイ３００を観察している。この例では、ユーザは立体視用メガネ４００を装着して視差画像が表示されたディスプレイ３００のスクリーンを見ている。ディスプレイ３００の上部に設置されたカメラ３１０は、マーカー付きヘアバンド１００を装着したユーザの頭部を撮影する。
【００１９】
カメラ３１０は、赤外線透過フィルタを備えており、カメラ３１０により撮影されたユーザの頭部の画像から輝点を検出する画像処理により、ヘアバンド１００の頭頂部マーカー１１０Ｔ、左側頭部マーカー１１０Ｌ、および右側頭部マーカー１１０Ｒの位置を検出することができる。
【００２０】
図４は、マーカー１１０の発光分布をカメラ３１０が検知する様子を示す図である。マーカー１１０の電力消費を最小化するために、発光分布に方向性のある発光ダイオードが使用されるが、カメラ３１０がマーカー１１０の光を撮像してマーカー１１０の位置を検出する際の位置の検出精度は発光分布に依存することになる。
【００２１】
赤外線発光ダイオードの発光強度分布は符号１１２で示すように正面方向に広がっており、発光ダイオードの正面から見ると発光分布がほぼ対称で急激な変化も少ないが、斜め方向から見ると不均一な光の強度分布が観測される。
【００２２】
カメラ３１０が発光ダイオードの正面からの光１１６を捉える場合、符号１１４で塗りつぶした部分の面積の重心がマーカー１１０の位置として検出され、高い精度でマーカー１１０の位置を検出することができる。一方、カメラ３１０が発光ダイオードの斜め方向からの光１１８を捉える場合は、光量が極端に少なくなり、また角度により不均一になるため、重心位置の測定精度が急激に低下し、マーカー１１０の位置を正確に検出することが困難になる。
【００２３】
図５（ａ）は、ヘアバンド１００の３つのマーカー１１０Ｔ、１１０Ｌ、１１０Ｒとカメラ３１０の位置関係を説明する図である。頭頂部マーカー１１０Ｔは、カメラ３１０と正対する位置にあるため、カメラ３１０が頭頂部マーカー１１０Ｔの像を撮影して頭頂部マーカー１１０Ｔの２次元座標を高い精度で測定することができる。それに対して、左側頭部マーカー１１０Ｌ、右側頭部マーカー１１０Ｒはカメラ３１０から見て斜め方向に位置するため、２次元座標の測定精度が低くなる。
【００２４】
図５（ｂ）は、カメラ３１０により撮影された左側頭部マーカー１１０Ｌの像５１０Ｌと、右側頭部マーカー１１０Ｒの像５１０Ｒを示す図である。左側頭部マーカー１１０Ｌの像５１０Ｌの２次元座標には測定誤差５１２Ｌが存在し、右側頭部マーカー１１０Ｒの像５１０Ｒの２次元座標には測定誤差５１２Ｒが存在し、測定精度は低い。しかし、ユーザが体を起こした状態でディスプレイを見ることを前提とすると、これらの測定誤差５１２Ｌ、５１２Ｒは水平方向であるから、頭部の傾きを検出する際には、水平方向の誤差は問題とならず、頭部の傾き角度ｖＡｎｇｌｅの測定の際には誤差の影響を最小にすることができる。
【００２５】
本実施の形態では、頭頂部マーカー１１０Ｔの２次元座標を基準として、視点位置の補正量を決定する。視点位置の補正が適切にできるように、ユーザがヘアバンド１００の位置を前後に動かし、頭頂部マーカー１１０Ｔの位置を調整する。これにより、個人差を最小化し、非常に少ない演算量でステレオ表示の際の視点位置の補正処理を実現することができる。
【００２６】
また、左側頭部マーカー１１０Ｌおよび右側頭部マーカー１１０Ｒの２次元座標から頭部の傾きを検出して、追加のステレオ表示補正を行う。
【００２７】
頭頂部マーカー１１０Ｔ、左側頭部マーカー１１０Ｌおよび右側頭部マーカー１１０ＲのＺ方向の座標は用いない。頭頂部マーカー１１０Ｔからは２次元座標すなわち頭部のＸＹ平面における位置のみを、左側頭部マーカー１１０Ｌおよび右側頭部マーカー１１０Ｒからは頭部の傾き角度のみを取り出して補正計算に使用することで、測定誤差の影響の少ない安定した視点位置の補正処理を実現することができる。
【００２８】
なお、左側頭部マーカー１１０Ｌおよび右側頭部マーカー１１０Ｒがカメラ３１０の正面方向を向くように角度をつけてヘアバンド１００に設置すれば、左側頭部マーカー１１０Ｌおよび右側頭部マーカー１１０Ｒについても２次元座標の内、水平方向の測定精度を高くすることができるが、これはカメラ３１０からヘアバンド１００までの距離が一定の場合にしか効果がないので、あまり現実的な解決方法ではない。本実施の形態では、左側頭部マーカー１１０Ｌおよび右側頭部マーカー１１０Ｒの２次元座標の内、水平方向の測定精度が低いことを前提とし、測定誤差の影響を受けないように、左側頭部マーカー１１０Ｌおよび右側頭部マーカー１１０Ｒについては検出された２次元座標を直接用いることはせずに、左側頭部マーカー１１０Ｌと右側頭部マーカー１１０Ｒを結ぶ線が水平方向に対してなす角度（すなわちユーザの頭部の傾き角度ｖＡｎｇｌｅ）を求める。傾き角度を求める過程で、左側頭部マーカー１１０Ｌの２次元座標の測定誤差と右側頭部マーカー１１０Ｒの２次元座標の測定誤差を相殺することができる。
【００２９】
図６は、本実施の形態に係る立体画像生成装置２１０の機能構成図である。同図は機能に着目したブロック図を描いており、これらの機能ブロックはハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現することができる。
【００３０】
立体画像生成装置２１０は、ディスプレイ３００に接続されたゲーム機２００に実装されるが、立体画像生成装置２１０の少なくとも一部の機能をディスプレイ３００の制御部に実装してもよい。あるいは、立体画像生成装置２１０の少なくとも一部の機能を、ネットワークを介してゲーム機２００に接続されたサーバに実装してもよい。
【００３１】
撮影部１０は、カメラ３１０により撮影されたマーカー付きヘアバンド１００を装着したユーザの頭部の撮影画像をメモリに記憶する。マーカー検出部２０は、撮影画像をスキャンして頭頂部マーカー１１０Ｔ、左側頭部マーカー１１０Ｌ、および右側頭部マーカー１１０Ｒの２次元座標を検出し、視点位置補正部３０に供給する。
【００３２】
視点位置補正部３０は、マーカー検出部２０から取得した頭頂部マーカー１１０Ｔ、左側頭部マーカー１１０Ｌ、および右側頭部マーカー１１０Ｒの２次元座標にもとづいて、視点位置を補正し、更新された視点位置の情報を立体画像生成部４０に与える。ここで、視点位置補正部３０は、各マーカー１１０Ｔ、１１０Ｌ、１１０ＲのＺ方向の座標、すなわち奥行き情報を用いずに、視点位置を補正することに留意すべきである。
【００３３】
立体画像生成部４０は、３次元モデル記憶部５０から表示すべきオブジェクトの３次元モデルを読み出し、視点位置補正部３０から与えられた更新された視点位置から見た場合の視差を有する左目用画像および右目用画像を生成し、表示部６０に供給する。表示部６０は、左目用画像および右目用画像をディスプレイ３００に表示する。
【００３４】
較正（キャリブレーション）部７０は、立体画像生成部４０にキャリブレーション用の３次元オブジェクトを生成するように指示する。較正部７０はまた、マーカー付きヘアバンド１００の装着位置を調整して、頭部を動かしてもキャリブレーション用の３次元オブジェクトが動かない装着位置を探るようにユーザに促すメッセージをディスプレイ３００に表示するように表示部６０に指示する。表示部６０はキャリブレーション用の３次元オブジェクトの視差画像をディスプレイ３００に表示するとともに、ユーザにマーカー付きヘアバンド１００の装着位置を調整するよう促すメッセージをディスプレイ３００に表示する。このメッセージを音声でユーザに提供してもよい。
【００３５】
図７は、視点位置補正部３０の詳細な機能構成図である。頭頂部マーカー座標取得部７２、左側頭部マーカー座標取得部７４、右側頭部マーカー座標取得部７６は、マーカー検出部２０からそれぞれ頭頂部マーカー１１０Ｔ、左側頭部マーカー１１０Ｌ、右側頭部マーカー１１０Ｒの座標位置を取得する。
【００３６】
並進移動計算部７８は、頭頂部マーカー１１０Ｔの２次元座標を用いて、ユーザの視点の並進移動を検出する。
【００３７】
頭部傾き計算部８０は、左側頭部マーカー１１０Ｌおよび右側頭部マーカー１１０Ｒの２次元座標を用いて、ユーザの頭部の傾き角度を計算し、並進補正量計算部８２およびシフト量計算部８４に与える。
【００３８】
並進補正量計算部８２は、ユーザの視点の並進移動とユーザの頭部の傾き角度から視点位置の並進補正量を計算し、視点位置更新部８６に与える。
【００３９】
シフト量計算部８４は、ユーザの頭部の傾き角度を用いて、ユーザの頭部の傾きに伴う視点位置のシフト量を計算し、視点位置更新部８６に与える。
【００４０】
視点位置更新部８６は、視点位置の並進補正量およびシフト量を用いて視点位置を更新し、更新後の視点位置の情報を立体画像生成部４０に供給する。
【００４１】
図８は、カメラ３１０による撮影画像５００における頭頂部マーカー１１０Ｔ、左側頭部マーカー１１０Ｌ、および右側頭部マーカー１１０Ｒを示す図である。撮影画像５００は横Ｗピクセル、縦Ｈピクセルの画像である。マーカー検出部２０は、撮影画像５００の左上を（０，０）として、頭頂部マーカー１１０Ｔの２次元座標（ｗｐｏｓＴ，ｈｐｏｓＴ）、左側頭部マーカー１１０Ｌの２次元座標（ｗｐｏｓＬ，ｈｐｏｓＬ）、右側頭部マーカー１１０Ｒの２次元座標（ｗｐｏｓＲ，ｈｐｏｓＲ）をピクセル単位で求める。
【００４２】
図９（ａ）および図９（ｂ）は、マーカー検出部２０が撮影画像５００をスキャンして頭頂部マーカー１１０Ｔ、左側頭部マーカー１１０Ｌ、および右側頭部マーカー１１０Ｒを検出する方法を説明する図である。
【００４３】
まず、図９（ａ）に示すように、撮影画像５００の左上から１ライン毎にスキャンして頭頂部マーカー１１０Ｔを検出する。頭頂部マーカー１１０Ｔの２次元座標（ｗｐｏｓＴ，ｈｐｏｓＴ）が検出されると、図９（ｂ）に示すように、撮影画像５００を頭頂部マーカー１１０Ｔの位置で左右に分けて、左領域において上から１ライン毎にスキャンして右側頭部マーカー１１０Ｒの２次元座標（ｗｐｏｓＲ，ｈｐｏｓＲ）を検出し、右領域において上から１ライン毎にスキャンして左側頭部マーカー１１０Ｌの２次元座標（ｗｐｏｓＬ，ｈｐｏｓＬ）を検出する。
【００４４】
この２段階スキャンによって３つのマーカー１１０Ｔ、１１０Ｌ、１１０Ｒのいずれかが検出されない場合、エラーとして扱い、前回のスキャンで得られたマーカー１１０Ｔ、１１０Ｌ、１１０Ｒの位置座標を続けて用いる。
【００４５】
図１０は、３次元オブジェクト６００をスクリーン６１０にステレオ表示する際の左右の目の視錐台６３０Ｌ、６３０Ｒを説明する図である。
【００４６】
視点位置の補正アルゴリズムを説明するために、以下の３つの座標系を定義する。
（１）カメラ入力座標系
カメラ３１０による撮影画像の２次元座標系であり、座標系の単位は撮影画像のピクセル単位である。
（２）ワールド座標系
３次元オブジェクト６００が存在する３次元空間の座標系である。右目の透視投影の原点と左目の透視投影の原点の中点をワールド座標系の原点とし、ディスプレイ３００のスクリーンに向かう方向をＺ軸とし、水平方向をＸ軸、垂直方向をＹ軸とする。座標系の単位は実空間の長さの単位である。
（３）ディスプレイのスクリーン座標系
ディスプレイ３００のピクセル空間で表される２次元のスクリーン座標系であり、座標系の単位はディスプレイ３００の表示ピクセル単位である。
【００４７】
ステレオ表示は、人間の左目６２０Ｌと右目６２０Ｒの間隔をＥｗとして、左目用に−Ｅｗ／２、右目用にＥｗ／２だけ並行移動した視錐台６３０Ｌ、６３０Ｒを用いて３次元オブジェクト６００を透視投影することによって行う。なお、実際の眼球の位置は、視錘台６３０Ｌ、６３０Ｒの原点６４０Ｌ、６４０Ｒよりも前にあると考えられるが、ここでは簡単のため、視錘台６３０Ｌ、６３０Ｒの原点６４０Ｌ、６４０Ｒの位置に眼球を描いている。
【００４８】
実際の計算では、透視変換の視錘台の座標系を固定として、例えば左目用には３次元オブジェクト６００を−（−Ｅｗ／２）＝Ｅｗ／２だけワールド座標系上で移動し、生成された画像をスクリーン座標系で上記に相当する量だけ反対方向に移動する。
【００４９】
スクリーンから視点までの距離は固定の設定値とする。カメラ３１０によりユーザの視点のＺ座標（奥行き）を計測することも可能であるが、余分な計算処理により表示画像の不安定性が増すため、ここではＺ座標は測定せず、Ｚ方向の視点位置の補正を行わない。Ｚ座標を使わず、撮影画像上のマーカーの２次元座標（Ｘ，Ｙ）だけを用いて視点位置を補正するため、誤差の影響を最小化することができる。
【００５０】
図１１は、視点が並進移動したときの視点位置の並進補正量を説明する図である。視点がＸ軸（水平方向）にｘＴｒａｎだけ並進移動したときの左目６２０Ｌ’の視錐台６３０Ｌ’と右目６２０Ｒ’の視錐台６３０Ｒ’が図示されている。
【００５１】
並進移動計算部７８は、カメラ入力座標系の頭頂部マーカー１１０Ｔの位置（ｗｐｏｓＴ，ｈｐｏｓＴ）から３次元オブジェクト６００のワールド座標系における表示位置の補正量（ｘＴｒａｎ，ｙＴｒａｎ）を以下のように計算する。この計算では、ユーザの両目は水平に保たれていると仮定する。
【００５２】
ｘＴｒａｎ＝−（ｗｐｏｓＴ−ｗＲｅｆ）・ｗＳｃａｌｅ
ｙＴｒａｎ＝  （ｈｐｏｓＴ−ｈＲｅｆ）・ｈＳｃａｌｅ
【００５３】
ただし（ｗＲｅｆ，ｈＲｅｆ）はカメラ入力座標系の中心となる基準点。これは、例えばカメラ３１０がディスプレイ３００のスクリーンの中央上端にある場合は、ｗＲｅｆはカメラ入力座標系の左右の視錘台の中心位置のＸ座標でよく、ワールド座標系の原点に人間の両目の透視変換の中心がある場合、ｈＲｅｆはカメラ３１０で検出される頭頂部マーカー１１０Ｔの位置のＹ座標でよい。
【００５４】
ｗＳｃａｌｅ、ｈＳｃａｌｅは、カメラ入力座標系上で得られたマーカーのピクセル位置を、ワールド空間の座標系へ変換するためのスケーリング係数である。本来はカメラからマーカーまでの距離を変数とした関数になるが、本手法の場合はユーザがディスプレイ３００に対して最適な位置付近で視聴を行うことを仮定するため、定数で処理する。
【００５５】
また、カメラ入力座標系の左側頭部マーカー１１０Ｌの２次元座標（ｗｐｏｓＬ，ｈｐｏｓＬ）と右側頭部マーカー１１０Ｒの２次元座標（ｗｐｏｓＲ，ｈｐｏｓＲ）の関係からユーザの頭部のワールド座標系での傾きを計測する。この場合も、ワールド座標系でのＺ方向の傾きは無視し、カメラ座標系およびスクリーン座標系と平行な２次元平面での傾きを扱う。この傾きの角度をｖＡｎｇｌｅとする。ｖＡｎｇｌｅは、下記の計算式により求められる。
【００５６】
ｖＡｎｇｌｅ＝ａｒｃＴａｎ（（ｈｐｏｓＲ−ｈｐｏｓＬ）／（ｗｐｏｓＲ−ｗｐｏｓＬ））
【００５７】
並進補正量計算部８２は、頭部の傾きがないと仮定して求めた上記の並進補正量ｘＴｒａｎ、ｙＴｒａｎを頭部の傾き角度ｖＡｎｇｌｅを用いてさらに以下のように補正する。
【００５８】
ｘＴｒａｎ＝（−（ｗｐｏｓ０−ｗＲｅｆ）＋ｈＤｉｓｔ・ｓｉｎ（ｖＡｎｇｌｅ））・ｗＳｃａｌｅ
ｙＴｒａｎ＝（ｈｐｏｓ０−ｈＲｅｆ＋ｈＤｉｓｔ・（１−ｃｏｓ（ｖＡｎｇｌｅ）））・ｈＳｃａｌｅ
【００５９】
ただし、ｈＤｉｓｔはカメラ入力座標系上での頭頂部マーカー１１０Ｔの位置とユーザの両目の基準位置（ワールド座標系の原点）の間の距離である。
【００６０】
図１２（ａ）および図１２（ｂ）は、頭部の傾き角度ｖＡｎｇｌｅによる頭頂部マーカー１１０Ｔの位置の変化を説明する図である。図１２（ａ）は、ユーザの両目が水平である場合の頭頂部マーカー１１０Ｔの位置を示しており、頭頂部マーカー１１０Ｔはユーザの両目の中心からｈＤｉｓｔだけ離れている。図１２（ｂ）は、ユーザの両目が水平方向に対して角度ｖＡｎｇｌｅだけ傾いた場合の頭頂部マーカー１１０Ｔの位置を示しており、頭頂部マーカー１１０Ｔは水平方向（Ｘ軸）にｈＤｉｓｔ・ｓｉｎ（ｖＡｎｇｌｅ）だけ、垂直方向（Ｙ軸）にｈＤｉｓｔ・（１−ｃｏｓ（ｖＡｎｇｌｅ））だけ変位している。この変位を考慮して、並進補正量ｘＴｒａｎ、ｙＴｒａｎは上記の式のように補正される。
【００６１】
こうして頭部の傾きも考慮に入れて求められた並進補正量ｘＴｒａｎ、ｙＴｒａｎは、カメラ入力座標系の３つのマーカー１１０Ｔ、１１０Ｌ、１１０Ｒの２次元座標の変化をもとに、立体視用の透視投影の視錘台の中心がワールド座標系の原点からどれだけずれたかを推定した値である。
【００６２】
図１１では、水平方向だけを考えた場合の視錘台の移動を表しているが、垂直方向も同様である。図１１からわかるように、この移動は、実際の３次元オブジェクト６００をワールド座標系で−ｘＴｒａｎ、−ｙＴｒａｎだけ移動させ、さらに生成された画像をスクリーン空間上でｘＴｒａｎ、ｙＴｒａｎに相当する量だけ移動させることにより得られる。
【００６３】
このスクリーン空間上でのピクセル単位の補正量ｘＡｄｊ、ｙＡｄｊは下記の式で表される。
【００６４】
ｘＡｄｊ＝−ｘＴｒａｎ／ｓＳｃａｌｅ
ｙＡｄｊ＝−ｙＴｒａｎ／ｓＳｃａｌｅ
【００６５】
ただし、ｓＳｃａｌｅはワールド座標系からスクリーン座標系への座標変換係数である。Ｘ方向、Ｙ方向で比率が異なる場合は、それぞれに合わせた値を用いる必要がある。
【００６６】
ユーザが頭部を左右に動かしたり、回転させると視錘台の中心がワールド座標系の原点からずれる。このずれに対して視点位置の補正をせずに左右の視差画像をディスプレイ３００に表示すると、立体映像がユーザの頭部の並進運動や回転運動に応じて揺れ動いて見えるため、酔いが生じる。本実施の形態では、並進補正量ｘＴｒａｎ、ｙＴｒａｎを求めて、視点位置を更新し、更新後の視点位置から見た場合の左右の視差画像を生成してディスプレイ３００に表示する。これにより、ユーザが頭部を自然に動かしても立体映像が視点のずれに伴って揺れ動くことがないため、安定した立体映像を提示することができる。
【００６７】
図１３（ａ）および図１３（ｂ）は、ユーザが頭部を傾けた場合の視錘台の中心の変位を説明する図である。
【００６８】
図１３（ａ）のように、ユーザの両目６２０Ｌ、６２０Ｒの位置が水平に保たれている場合は、立体視のためには透視変換の視錘台６３０Ｌ、６３０ＲをそれぞれＥｗ／２づつ平行移動させた両目画像を生成すればよい。
【００６９】
図１３（ｂ）のように、ユーザの両目が傾いている場合は、左目の視錘台６３０Ｌ、右目の視錘台６３０Ｒが斜め方向にずれるため、シフト量計算部８４は、左側頭部マーカー１１０Ｌ、右側頭部マーカー１１０Ｒから得たユーザの両目の傾きｖＡｎｇｌｅを用いて、視錘台の平行移動量をシフト補正する。
【００７０】
この補正は、ワールド座標系上での左右の目の位置のシフト補正量ｘｓｈｉｆｔ、ｙｓｈｉｆｔとして、下記の式で表現される。
左目について
ｘＳｈｉｆｔ＝  （Ｅｗ／２）・ｃｏｓ（ｖＡｎｇｌｅ）
ｙＳｈｉｆｔ＝−（Ｅｗ／２）・ｓｉｎ（ｖＡｎｇｌｅ）
右目について
ｘＳｈｉｆｔ＝−（Ｅｗ／２）・ｃｏｓ（ｖＡｎｇｌｅ）
ｙＳｈｉｆｔ＝  （Ｅｗ／２）・ｓｉｎ（ｖＡｎｇｌｅ）
【００７１】
実際にこの補正を行うには、視錘台の位置はもとのままとして、オブジェクトを逆の方向に移動する計算として表現する。このため、上記に相当する量だけ、スクリーン座標系上で得られた画像を反対方向に移動する。
【００７２】
スクリーン空間上でも、上記に対応したシフト補正を行う。シフト量をｘＳｈｉｆｔＡｄｊ，ｙＳｈｉｆｔＡｄｊと書くと、それらは左目、右目ともに下記の式で表される。
ｘＳｈｉｆｔＡｄｊ＝−ｘＳｈｉｆｔ／ｓＳｃａｌｅ
ｙＳｈｉｆｔＡｄｊ＝−ｙＳｈｉｆｔ／ｓＳｃａｌｅ
【００７３】
視点位置更新部８６は、並進補正量ｘＴｒａｎ、ｙＴｒａｎとシフト補正量ｘｓｈｉｆｔ、ｙｓｈｉｆｔを加算して視点位置の移動量を求め、視点位置を更新する。なお、頭の傾きによるシフト補正量を考慮して視点位置を補正するのはオプションであり、ユーザが頭を水平に保つことを前提にｖＡｎｇｌｅ＝０と仮定して、頭部の傾きを考慮に入れない並進補正量のみで視点位置を補正してもよい。
【００７４】
図１４は、マーカー付きヘアバンド１００の装着位置と視錘台の射影原点の関係を説明する図である。
【００７５】
視錘台の射影原点６４０は、人間の目の焦点位置であり、実際の目の位置よりも奥にあると考えられる。ここで、視錘台の射影原点６４０とは、正確に言えば、左右の２つの視錘台があるため、各視錘台の射影原点の中点のことであるが、ここでは、簡単のため、視錘台の射影原点と称する。
【００７６】
視点位置の補正アルゴリズムでは、視錘台の射影原点６４０をワールド座標系の原点として用いて画像の補正を行う。これは、視点位置を検出する基準として用いられるヘアバンド１００の頭頂部マーカー１１０Ｔが、ワールド座標系の原点すなわち視錘台の射影原点６４０の真上にｈＤｉｓｔだけ離れた位置にあることを仮定していることになる。
【００７７】
しかしながら、視錘台の射影原点は人間の目の焦点位置であるから、通常は直接その位置を計測することはできない。そこで、ヘアバンド１００のように頭部に装着して前後に装着位置を調整可能なアクセサリにマーカーを組み込み、ユーザがスクリーン上で映し出される立体画像が自然に見えるように自らヘアバンド１００の装着位置を調整することで、各人に合わせた理想的な視錘台の射影原点を設定することを可能にしている。
【００７８】
較正部７０は、キャリブレーション用の３次元オブジェクトの視差画像を生成してディスプレイ３００に表示するように立体画像生成部４０と表示部６０に指示する。較正部７０は、ユーザにマーカー付きヘアバンド１００の装着位置を前後に調整するように画面上の文字や音声などで指示する。
【００７９】
ユーザは、ディスプレイ３００に映し出されたキャリブレーション用の３次元オブジェクトの視差画像を立体視用メガネ４００を通して見ながら、頭部を左右に動かしたり、回転させてもキャリブレーション用の３次元オブジェクトが動かないように、ヘアバンド１００の装着位置を前後に調整する。ヘアバンド１００の頭頂部マーカー１１０Ｔが、ちょうどそのユーザの視錘台の射影原点６４０の真上に位置したとき、視点位置の補正アルゴリズムが有効に働き、頭部を動かしてもキャリブレーション用の３次元オブジェクトは動かなくなる。これでキャリブレーションは終了し、較正部７０は立体画像生成部４０と表示部６０に指示してキャリブレーション用の３次元オブジェクトの視差画像の生成と表示を終了させる。
【００８０】
従来は、例えば立体視用メガネ４００の表面にマーカーをとりつけてカメラで撮影し、マーカーの位置を３次元的に計測して視錘台の射影原点を算出する方法が取られることがある。しかし、立体視用メガネ４００にマーカーがある場合、視錘台の射影原点とはＺ方向にずれているため、マーカーの位置から視錘台の射影原点を求めるために奥行き方向の正確な情報が必要となり、計算も複雑になる。また、立体視用メガネ４００のマーカーを撮影してもユーザの頭部の回転と並進の区別がつきにくいことから、位置測定に誤差が生じやすい。さらに、各人の目の焦点位置に合わせた計算が必要になり、時間のかかる較正プロセスをユーザにメニュー操作を求めながら行う必要がある。
【００８１】
それに対して本実施の形態では、頭頂部マーカー１１０Ｔは、視錘台の射影原点の真上に調整されるため、頭頂部マーカー１１０Ｔマーカーと視錘台の射影原点はＺ方向にずれがないから、視線位置の補正計算を簡略化できる。また、本実施の形態の較正手法では、ヘアバンド１００の装着位置をユーザ自身が物理的に前後にずらすという極めて直感的な方法で個々人の目の焦点位置に合わせた調整が実現でき、誰でも容易にキャリブレーションを行うことができる。さらに、検出するマーカーの箇所が少ないためにマーカー毎の誤差の影響が少なく、非常に安定したキャリブレーションを行うことができる。
【００８２】
図１５（ａ）および図１５（ｂ）は、視点位置のＺ方向の補正を行わないことの利点を説明する図である。本実施の形態では、視点の奥行き方向に移動に対しては視点位置の補正をあえて行わないことで計算を簡略化しているが、これには他の利点もある。
【００８３】
図１５（ａ）は、視錘台６３０と３次元オブジェクト６００とスクリーン６１０の位置関係を示す。視錘台６３０の原点６４０がこの位置にあるときは、３次元オブジェクト６００の全体が視錘台６３０の内側にあるため、スクリーン６１０に３次元オブジェクト６００の画像がすべて表示される。
【００８４】
図１５（ｂ）は、視点がＺ方向に移動した場合の位置関係を示す。視点がスクリーン６１０に近づいたときにＺ方向の視点の位置補正を行うと、３次元オブジェクト６００の一部が視錘台６３０の外側にはみ出すため、３次元オブジェクト６００の画像がスクリーン６１０の縁にかかってしまう。
【００８５】
よく知られているように、立体視表示の場合、オブジェクトが画面の縁にかかると、額縁補正などの処理を行ったとしても、不自然に見えることは免れない。しかしながら、Ｚ方向の視点位置の補正をあえて行わないのであれば、オブジェクトが多少Ｚ方向に縮むようには見えるものの、画面の縁にかかる可能性は小さくなるため、結果的に見やすい画像を保つことが可能である。このように、Ｚ方向の視点位置の補正をあえて行わないことは、視点位置補正アルゴリズムを簡単にするだけでなく、視点がスクリーンに近づいても自然な立体視表示を維持することを容易にするという副次的な効果も奏する。
【００８６】
なお、上記説明では、Ｚ方向の補正を行わないことを前提として利点を説明したが、本実施の形態では、他の測定装置などを増やすことなしに、簡易的なＺ方向の視点位置の補正を追加することも可能である。
【００８７】
例えば、頭頂部マーカー１１０Ｔの２次元座標（ｗｐｏｓＴ，ｈｐｏｓＴ）、左側頭部マーカー１１０Ｌの２次元座標（ｗｐｏｓＬ，ｈｐｏｓＬ）、右側頭部マーカー１１０Ｒの２次元座標（ｗｐｏｓＲ，ｈｐｏｓＲ）から、点（ｗｐｏｓＬ，ｈｐｏｓＬ）と点（ｗｐｏｓＲ，ｈｐｏｓＲ）を結ぶ直線を求め、この直線と頭頂部マーカー１１０Ｔの２次元座標（ｗｐｏｓＴ，ｈｐｏｓＴ）との距離の変化を検出し、近似的に頭頂部マーカー１１０Ｔとスクリーンとの距離ｄを補正することが可能である。
【００８８】
このように、頭頂部マーカー１１０Ｔ、左側頭部マーカー１１０Ｌおよび右側頭部マーカー１１０Ｒのそれぞれの正確な奥行き方向の座標値を求めることなく、奥行き方向の補正を行うことも可能である。
【００８９】
以下、図１６Ａ〜図１６Ｃを参照しながら、立体視されたオブジェクトが静止して見えるようにヘアバンド１００の頭頂部マーカー１１０Ｔの位置を調整することでキャリブレーションが可能であることを人間の立体視モデルを用いて説明する。
【００９０】
図１６Ａは、ユーザの頭部６６０の真上から見た場合の視錘台６３０Ｌ、６３０Ｒと３次元オブジェクト６００とスクリーン６１０の位置関係を説明する図である。この図では、ユーザは頭部６６０をスクリーン６１０に対して真正面に向けている。ここで、符号６４０は、左目の視錘台６３０Ｌの原点６４０Ｌと右目の視錘台６３０Ｒの原点６４０Ｒの中点を示す。符号６５０は、頭部６６０の回転軸を示す。
【００９１】
ユーザは３次元オブジェクト６００上の点Ａの位置（Ａｘ，Ａｚ）を左右の視錘台６３０Ｌ、６３０Ｒの原点６４０Ｌ、６４０Ｒから見る。ユーザは、３次元オブジェクト６００の点Ａが左目の視錘台６３０Ｌの真正面方向に対して角度θ１の方向、右目の視錘台６３０Ｒの真正面方向に対して角度θ２の方向にあるものとして、３次元空間における点Ａの位置を推定すると考えられる。
【００９２】
図１６Ｂは、ユーザが頭部６６０を回した場合の新しい視錘台６３０Ｌ’、６３０Ｒ’を説明する図である。ユーザは回転軸６５０を中心として頭部６６０を回転角Φだけ回した状態で眼球を動かして３次元オブジェクト６００の点Ａを見る。
【００９３】
ユーザは点Ａの位置を左右の視錘台６３０Ｌ’、６３０Ｒ’の原点６４０Ｌ’、６４０Ｒ’から見ており、点Ａは左目の視錘台６３０Ｌ’の真正面方向に対して角度θ１’の方向、右目の視錘台６３０Ｒ’の真正面方向に対して角度θ２’の方向にある。θ１’＞θ１、θ２’＜θ２であることから、点Ａは頭部６６０の回転方向とは逆方向に移動することになるが、このとき、人間は点Ａがあくまでも静止していると認識するため、視線角度θ１’，θ２’に対して認知的に角度補正を行っていると考えられる。
【００９４】
ここで、人間には直接的に眼球の位置を知るセンサーはないと考えられるため、人間は、自分の首の回転から仮想的な左右二つの視錘台の原点の位置の移動を推測し、その位置から見るための角度補正を新しい視線角度θ１’，θ２’に対して行い、点Ａが静止していると認識すると考えられる。この人間の認知処理のゆえに、二つの視錘台の原点の中点の真上にヘアバンド１００の頭頂部マーカー１１０Ｔが来るように装着すると、視錘台の原点位置の補正処理が正確に行われ、ユーザが頭部６６０を回転させても点Ａが静止して見えると考えられる。
【００９５】
この図から容易にわかるように、頭頂部マーカー１１０Ｔが二つの視錘台の原点の中点の真上よりも前方に位置するようにヘアバンド１００を装着すると、頭部６６０の回転に伴い点Ａは回転方向と逆方向に移動するように見え、頭頂部マーカー１１０Ｔが二つの視錘台の原点の中点の真上よりも後方、すなわち頭部６６０の回転中心６５０に近くに位置するようにヘアバンド１００を装着すると、頭部６６０の回転に伴い点Ａは回転方向と同方向に移動するように見える。したがって、頭部６６０を回転しても点Ａが静止して見えるようにヘアバンド１００の装着位置を調整すると、頭頂部マーカー１１０Ｔは二つの視錘台の原点の中点のちょうど真上に来るようになる。
【００９６】
ただし、本手法ではＺ方向の視点位置の補正を行わないため、頭部６６０を回転させた場合でも、Ｚ方向を考慮しないで、図１６Ｃのように視錘台の原点が並進移動したものとして近似して扱うことになる。
【００９７】
図１６Ｃは、ユーザが頭部６６０を回した場合の近似的な視錘台６３０Ｌ’’、６３０Ｒ’’を説明する図である。
【００９８】
ユーザは点Ａの位置を左右の視錘台６３０Ｌ’’、６３０Ｒ’’の原点６４０Ｌ’’、６４０Ｒ’’から見ており、点Ａは左目の視錘台６３０Ｌ’’の真正面方向に対して角度θ１’’の方向、右目の視錘台６３０Ｒ’’の真正面方向に対して角度θ２’’の方向にある。この近似の結果、θ１”＞θ１’、θ２”＜θ２’となり、点Ａは静止位置よりやや右に動いて見えると予想されるが、人間の目の焦点位置は眼球よりも奥の位置にあり、本手法では、頭頂部マーカー１１０は頭部６６０の回転中心６５０に比較的近い位置に装着されることになり、この近似による計算誤差はほぼキャンセルされる。結果的に、ヘアバンド１００の頭頂部マーカー１１０Ｔの位置を個人で調整することにより、立体画像が静止して見えるような表示系を構成することが可能になる。
【００９９】
次に、図１７Ａ〜図１７Ｃを参照しながら、本実施の形態のキャリブレーションの妥当性を詳しく説明する。ここでは、３次元オブジェクト６００の点Ａが水平軸（Ｘ軸）の原点上にある場合に本手法の妥当性を計算式により示す。
【０１００】
図１７Ａは、頭部６６０を正面に向けている場合の視線角度を示す図である。ユーザは点Ａの位置を左右の視錘台の原点６４０Ｌ、６４０Ｒから見ており、点Ａは左目の視線角度θ１の方向、右目の視線角度θ２（＝θ１）の方向にある。
【０１０１】
左右の視錘台の間隔をＥｗ、頭部６６０の回転がないときの視錘台の原点の中点６４０から点ＡまでのＺ軸方向の距離をｄ、視錘台の原点の中点６４０から頭部６６０の回転中心６５０までの距離をａとする。頭部の回転角Φ＝０の場合の視線角度θ１、θ２は以下の式で表される。
【０１０２】
ｔａｎθ１＝ｔａｎθ２＝Ｅｗ／２ｄ
【０１０３】
図１７Ｂは、頭部６６０を回転角Φだけ回転した場合の視線角度を示す図である。ユーザは点Ａの位置を左右の視錘台の原点６４０Ｌ’、６４０Ｒ’から見ており、点Ａは左目の視線角度θ１’の方向、右目の視線角度θ２’の方向にある。回転角Φのときの視線角度θ１’、θ２’は次式で表される。
【０１０４】
ｔａｎθ１’＝（ａ・ｓｉｎΦ＋（Ｅｗ／２）・ｃｏｓΦ）／（ｄ＋ａ・（１−ｃｏｓΦ）＋（Ｅｗ／２）・ｓｉｎΦ）
ｔａｎθ２’＝（−ａ・ｓｉｎΦ＋（Ｅｗ／２）・ｃｏｓΦ）／（ｄ−ａ・（１−ｃｏｓΦ）−（Ｅｗ／２）・ｓｉｎΦ）
【０１０５】
図１７Ｃは、頭部６６０の回転を並進移動で近似した場合の視線角度を示す図である。ユーザは点Ａの位置を左右の視錘台の原点６４０Ｌ’’、６４０Ｒ’’から見ており、点Ａは左目の視線角度θ１’’の方向、右目の視線角度θ２’’の方向にある。近似的に用いられる２つの視錘台の原点６４０Ｌ’’、６４０Ｒ’’の中点６４０’’から頭部６６０の回転中心６５０までの距離をａ’とする。頭部の回転を並進移動で近似した場合の視線角度θ１’’、θ２’’は次式で表される。
【０１０６】
ｔａｎθ１”＝（ａ’・ｓｉｎΦ＋Ｅｗ／２）／ｄ
ｔａｎθ２”＝（−ａ’・ｓｉｎΦ＋Ｅｗ／２）／ｄ
【０１０７】
ここで回転角Φが０に近い場合、回転角Φのときの視線角度θ１’、θ２’の式および並進移動で近似した場合の視線角度θ１’’、θ２’’は以下のように簡略化される。
【０１０８】
ｔａｎθ１’＝（ａ・Φ＋Ｅｗ／２）／（ｄ＋（Ｅｗ／２）・Φ）＝（ａ・Φ＋Ｅｗ／２−（Ｅｗ／２ｄ）・Φ）／ｄ
ｔａｎθ２’＝（−ａ・Φ＋Ｅｗ／２）／（ｄ−（Ｅｗ／２）・Φ）＝（−ａ・Φ＋Ｅｗ／２＋（Ｅｗ／２ｄ）・Φ）／ｄ
【０１０９】
ｔａｎθ１”＝（ａ’・Φ＋Ｅｗ／２）／ｄ
ｔａｎθ２”＝（−ａ’・Φ＋Ｅｗ／２）／ｄ
【０１１０】
ここでθ１’＝θ１”の条件を加えると、ａ’＝ａ−Ｅｗ／２ｄが得られ、このときθ２’＝θ２”となる。θ１’＝θ１”およびθ２’＝θ２”の条件は回転と並進を区別しないことを意味する。
【０１１１】
本手法では、マーカーのＺ方向の位置の計測情報を全く使用しないが、対象物までの距離ｄに対応した距離ａ’＝ａ−Ｅｗ／２ｄだけ頭の回転中心から離れた位置の真上にヘアバンド１００の頭頂部マーカー１１０Ｔが来るようにヘアバンド１００を装着することにより、３次元オブジェクトが頭の回転運動にたいして静止して見えるような表示系を実現することが可能になる。
【０１１２】
対象物までの距離ｄが十分に大きい、すなわち対象物が十分遠くにある場合は、ａ’＝ａとなり、頭頂部マーカー１１０Ｔが二つの視錘台の原点の中点の真上に来るようにヘアバンド１００を装着すれば対象物は静止して見える。
【０１１３】
対象物までの距離ｄが小さい、すなわち対象物が近くにある場合は、二つの視錘台の原点の中点の位置よりＥｗ／２ｄの分だけさらに後ろにヘアバンド１００を装着するのが最適である。したがって、ヘアバンド１００の装着位置を調整する際は、対象物までの距離ｄを平均的な値に設定して、キャリブレーション用の３次元オブジェクトを表示することが望ましい。ただし、この調整量Ｅｗ／２ｄは十分に小さいので、実用的には無視してよいことも多いであろう。
【０１１４】
このようにヘアバンド１００の装着位置が厳密には対象物までの距離ｄに依存した調整量を含むことになるのは、本手法ではＺ方向のマーカーの位置を測定しないからである。本手法では、撮影画像上のマーカーの２次元座標のみを用いていることから、視点位置の補正アルゴリズムが簡単になり、また、計算に誤差が入り込まない。その一方で、ユーザが自分でヘアバンド１００の装着位置を調整して対象物が静止して見える位置を見つけることで、対象物までの距離ｄに依存する調整量Ｅｗ／２ｄも含めてマーカーの位置を最適な位置に調整している。
【０１１５】
上述のように、本実施の形態によれば、赤外線発光ダイオードなどのマーカーを頭部、特に頭頂部、左右の側頭部に取り付けたユーザを赤外線カメラなどで撮影し、撮影画像からこれらのマーカーの２次元座標を検出し、マーカーの２次元座標から視点位置をリアルタイムで補正して視差画像を生成する。これにより、立体視されるオブジェクトが動かなくなり、酔いなどの不快感を取り除くことができ、また、より正確な３次元形状の認識が可能である。特に、感覚的に重要な頭の垂直軸周りの回転と頭の左右の傾きに対して視点位置を補正することで、不自然なアーティファクトの発生を防ぎ、自然な立体映像を提示することができる。
【０１１６】
検出すべきマーカーの個数が少なく、Ｚ方向の座標値を用いないため、位置測定の誤差の影響を低減することができる。また、マーカーの２次元座標から視点位置を補正するため、少ない演算量で高速に視点位置を補正することができる。演算量が少ないことは結果的に補正処理にかかるレイテンシーを軽減させ、酔いを低減させる効果もある。
【０１１７】
また、それぞれのマーカーのＺ方向の座標値を必要としないため、計測に用いるカメラが一つで済むという利点もある。
【０１１８】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。そのような変形例を説明する。
【０１１９】
上記の実施の形態では、ディスプレイ３００に表示された視差画像をユーザが立体視する場合について視点位置の補正方法を説明したが、同じ方法は、ユーザがヘッドマウントディスプレイを頭部に装着して立体映像を見る場合にも適用することができる。ユーザがヘッドマウントディスプレイを装着したまま頭部を動かしても、表示された３次元オブジェクトが動かないように見せたい場合に、本実施の形態で説明した視点位置の補正方法を用いて、更新された視点位置に応じて立体映像を出力するように構成することができる。
【符号の説明】
【０１２０】
１０  撮影部、  ２０  マーカー検出部、  ３０  視点位置補正部、  ４０  立体画像生成部、  ５０  ３次元モデル記憶部、  ６０  表示部、  ７０  較正部、  ７２  頭頂部マーカー座標取得部、  ７４  左側頭部マーカー座標取得部、  ７６  右側頭部マーカー座標取得部、  ７８  並進移動計算部、  ８０  頭部傾き計算部、  ８２  並進補正量計算部、  ８４  シフト量計算部、  ８６  視点位置更新部、  １００  マーカー付きヘアバンド、  １１０  マーカー、  ２００  ゲーム機、  ２１０  立体画像生成装置、  ３００  ディスプレイ、  ３１０  カメラ、  ４００  立体視用メガネ。
【図１】
0006588196.tif 000002
【図２】
0006588196.tif 000003
【図３】
0006588196.tif 000004
【図４】
0006588196.tif 000005
【図５】
0006588196.tif 000006
【図６】
0006588196.tif 000007
【図７】
0006588196.tif 000008
【図８】
0006588196.tif 000009
【図９】
0006588196.tif 000010
【図１０】
0006588196.tif 000011
【図１１】
0006588196.tif 000012
【図１２】
0006588196.tif 000013
【図１３】
0006588196.tif 000014
【図１４】
0006588196.tif 000015
【図１５】
0006588196.tif 000016
【図１６Ａ】
0006588196.tif 000017
【図１６Ｂ】
0006588196.tif 000018
【図１６Ｃ】
0006588196.tif 000019
【図１７Ａ】
0006588196.tif 000020
【図１７Ｂ】
0006588196.tif 000021
【図１７Ｃ】
0006588196.tif 000022