本発明を反映した上記課題解決手段を実施するための実施形態について、図面を用いて以下に詳細に説明する。なお、上記課題解決手段は、以下に記載の構成に限定されるものではなく、同一の技術的思想において種々の構成を採用することができる。例えば、以下の説明では、一体型のヘッドマウントディスプレイ(Head Mounted Display/以下、「HMD」という。)を例に説明するが、ヘッドマウントディスプレイ本体と、ヘッドマウントディスプレイ本体にコンテンツデータにより示される画像を提供する制御ボックスと、を接続した構成とすることもできる。
(ヘッドマウントディスプレイの概要)
図1は、HMDの構成、より具体的には、図1(a)はHMDの上面図、図1(b)はHMDの正面図、図1(c)はHMDの左側面図を示す。また、図2は利用者がHMDを装着した状態を示す。なお、図1及び図2において、画像提示装置(ハーフミラー)を移動させるための移動機構は省略する(図5〜図7参照)。
HMD100は、一端に利用者の耳に当たるモダン102A,102Bが取り付けられたテンプル104A,104Bと、テンプル104A,104Bの他端に蝶番112A,112Bを介して連結されたヨロイ106A,106Bと、ヨロイ106A,106Bを連結するフロントフレーム108と、フロントフレーム108の中央部に取り付けられ、利用者の鼻に当接する鼻パッド110と、により骨格部が形成されている。ヨロイ106A,106Bに形成された蝶番112A,112Bでテンプル104A,104Bを折りたたむことができる。HMD100の骨格部の構成は、例えば、通常の眼鏡と同様であり、HMD100は、利用者に装着された状態において、モダン102A,102Bと、鼻パッド110と、により利用者の顔に支持される(図2参照)。なお、図1(b)において、モダン102A,102B及びテンプル104A,104Bの描画を省略している。
HMD100には画像提示装置114が、図1に示す位置から利用者の左眼118の前方側に移動可能に取り付けられている(詳細は後述する。)。画像提示装置114は、HMD100に取り付けられた状態において、HMD100を装着した利用者の左眼118と略同一の高さとなる位置に配設される。また、画像提示装置114は、後述のとおり、その内部に種々の構成を含む。画像提示装置114が内部に備える構成によって、コンテンツデータが処理(レンダリング)され、所定の画像が生成される。そして、生成された画像を示す画像光が、画像提示装置114に内蔵された画像提示部310(図3参照)からハーフミラー116に向けて光学的に出射される。なお、ハーフミラー116は、画像提示部310等を内蔵する画像提示装置114の所定の位置に取り付けられ、画像提示装置114を構成する。
画像提示部310から出射された画像光は、ハーフミラー116で、反射し、利用者の左眼118に入射、換言すれば、視認可能に提示(投影)される。これにより、利用者は所定の画像を認識する。ここで、図1(a)において符号120aは、画像提示部310から出射された画像に関する画像光を示し、符号120bは、ハーフミラー116で反射し、利用者の左眼118に入射する画像光を示す。なお、画像提示部310は、取得した画像信号に応じた画像光120a,120bを2次元方向に走査し、その走査された画像光120a,120bを利用者の左眼118に導き網膜上に画像を形成する網膜走査型のディスプレイを用いて構成することができる他、液晶ディスプレイ、有機EL(Organic Electroluminescence)ディスプレイその他の装置を用いた構成とすることもできる。
ここで、画像提示装置114の上面には利用者の左眼118を撮像可能なCCDカメラ300が取り付けられている。
(画像提示装置の構成)
図3に、画像提示装置114の機能ブロックを示す。画像提示装置114は、自装置の制御を司るCPU202と、各種プログラムを記憶するプログラムROM204とを備える。また、画像提示装置114は、コンテンツデータ、基準状態データその他各種データを記憶する不揮発性のフラッシュロム206と、作業領域としてのRAM208とを備える。ここで、基準状態データは、利用者の視線方向が左側方向及び右側方向(詳細については後述する。)にある左眼118(図1参照)の状態に対応する基準状態を示すデータ(情報)である。
また、画像提示装置114は、CCDカメラ300が接続されるCCDカメラ接続I/F210を備える。CCDカメラ接続I/F210は、CCDカメラ接続コントローラ2102とCCDカメラ用VRAM(Video RAM)2104とを搭載する。ここで、CCDカメラ接続コントローラ2102は、CCDカメラ300からの撮像画像データの入力(受信)を、CPU202からの指令に基づき制御する。また、CCDカメラ用VRAM(Video RAM)2104は、CCDカメラ300によって撮像された画像を記憶する。
また、画像提示装置114は、画像提示部310が接続される画像提示部接続I/F212を備える。画像提示部接続I/F212は、画像提示部接続コントローラ2122と画像提示部用VRAM2124とを搭載する。ここで、画像提示部接続コントローラ2122は、CPU202からの指令に基づき画像提示部310との間の各種データを含む信号の入出力(送受信)を制御する。画像提示部用VRAM2124は、画像提示部310に出力される画像を記憶する。画像提示部310は、画像提示部用VRAM2124に記憶され、画像提示部接続コントローラ2122によって入力されるレンダリングによって生成された所定の画像を示す画像光120aを出射する。出射された画像光120aは、ハーフミラー116で反射する。
また、画像提示装置114は、周辺I/F214と通信部216とを備える。ここで、周辺I/F214は、例えば、CCDカメラ300による撮像位置を照らすランプ320と、HMD100の電源スイッチ330とが接続される。通信部216は、例えば、キーボード(図5において描画せず)から所定の指示の入力を受け付ける。
さらに、画像提示装置114は、CPU202からの指令に基づき、画像提示装置114の移動を制御する画像提示装置移動部コントローラ218を備える。画像提示装置移動部コントローラ218は、画像提示装置114を移動するための駆動源であるモータ154(図5(b)参照)を制御する。なお、画像提示装置114の移動が、例えば、利用者の手操作(手動)で行われる構成を採用する場合、モータ154を制御する機能は含まれなくてもよい。画像提示装置移動部コントローラ218は、画像提示装置114(ハーフミラー116)が所定の第1位置に移動し配置されたこと及び所定の第2位置に移動し配置されたことを検出するための位置センサ340が接続される。画像提示装置移動部コントローラ218は、この位置センサ340からの信号の入力(受信)を、CPU202からの指令に基づき制御する。位置センサ340から入力された画像提示装置114の位置情報は、CPU202に伝達される。
なお、第1位置は、利用者の左眼118の略前方から左側頭部側の所定の位置である。換言すれば、第1位置は、コンテンツデータによって示される画像の画像光120aを出射し、ハーフミラー116での反射を介し、画像光120bが利用者の左眼118に入射するとき、画像提示装置114に取り付けられたハーフミラー116が配置される位置である。すなわち、HMD100が、利用者の左眼118にコンテンツデータにより示される画像(画像光120a,120b)を視認可能に提示し、この利用者に画像を認識させるといった、HMD100の本質的機能を発揮する場合、画像提示装置114に取り付けられたハーフミラー116は、この第1位置に配置される。
これに対し、第2位置は、利用者の左眼118の略前方の所定の位置である。換言すれば、第2位置は、例えば、HMD100の動作(例えば、再生開始、再生停止)を制御するための基準となる基準状態データ(詳細は後述する。)を記憶する際(キャリブレーションを実行する際)、ハーフミラー116が配置される位置である。
第1位置において画像を視認可能に提示し、第2位置においてキャリブレーションを実行することで、以下に述べる利点がある。第1位置では左眼118の略前方から左側頭部側の所定の位置だけずれた方向から画像光が出射される。これにより、利用者が通常前方を見ているときには、画像光は左眼118に入射しない。すなわち、利用者は、画像光を視認できないため、前方の外界のみを画像光に邪魔されることなく視認できる。利用者が左側頭部側の所定の位置(後述する図5でθだけ左方向)を見ると、画像光が左眼118に入射し、画像光を視認することができる。これにより、画像光を見る必要があるときのみ左側頭部側の所定の位置を見れば画像光を視認でき、必要がないときは前方を見て画像光に邪魔されることなく外界を見て所定の作業を行うことができる。特にレーザ光を走査して網膜上に画像を形成する場合、レーザ光のビーム径は小さいので、利用者が左側頭部側の所定の位置から正面方向に視線を移動させるだけで、レーザ光は左眼118に入らなくなる。ただし、第1位置においてキャリブレーションを行おうとしても、キャリブレーションのガイダンスを視認するためには、視線を常に左側頭部側の所定の位置に向ける必要がある。利用者の視線がほぼ左側頭部側の所定の位置に固定されるので、上下左右に視線方向を動かすためのガイダンスが表示されても、利用者は、上下左右に視線方向を動かし、基準状態データを取得することが困難となる。すなわち、キャリブレーションを良好に行うことができない。一方、第2位置は利用者の左眼118の略前方の所定の位置であるため、キャリブレーションのガイダンスを表示させて、利用者が上下左右に視線方向を動かすことで、基準状態データを取得することができる。ただし、第2状態のまま作業を行うと作業対象の外界と、所定の作業のための作業指示書やマニュアルの表示とが常に重なって見えてしまい、画像光が作業の邪魔になってしまう。そこで、本実施形態では、第1位置において画像を視認可能に提示することで作業の邪魔とならず、第2位置においてキャリブレーションを実行することでキャリブレーションを良好に行うことができるようにしている。
CPU202は、プログラムROM204に記憶されているコンテンツデータを再生(レンダリング)するためのプログラムを、RAM208上で実行することで、所定の画像を取得する。そして、プログラムROM204に記憶されている画像提示部接続I/F212を制御するためのプログラムをRAM208上で実行し、この画像を含む画像信号の画像提示装置100への出力を、画像提示部接続コントローラ2122に指令する。
また、CPU202は、CCDカメラ300からCCDカメラ接続I/F210を介して入力され、CCDカメラ接続コントローラ2102によってCCDカメラ用VRAM2104に記憶された利用者の左眼118の画像及び基準状態データによって示される画像を用いて、プログラムROM204に記憶されている解析用プログラム(例えば、パターンマッチングのためのプログラム)をRAM208上で実行することで、利用者の左眼118の状態について解析する。また、CPU202は、プログラムROM204に記憶されているHMD100を制御するためのプログラムをRAM208上で実行し、解析結果に基づいたHMD100の動作を制御する。
さらに、CPU202は、通信部216が受け付けた指示又は図3には図示されていないHMD100が備える操作部を介した指示を取得し、この指示に基づき、プログラムROM204に記憶されたキャリブレーション用のプログラムを実行することで、後述する処理(図9に示すキャリブレーション)を実行する。
したがって、CPU202が、コンテンツデータ、CCDカメラ300で撮像された左眼118の画像及び基準状態データによって示される画像等の各種データを用い、プログラムROM204に記憶された各種プログラムをRAM208上で実行することにより、各種機能手段(例えば、検知手段、動作制御手段、指令取得手段、記憶制御手段)が構成される。
(画像提示部の構成)
図4に、画像提示装置の構成を示す。画像提示部310は、走査画像光生成部3121、コリメート光学系3122、水平走査部3123、垂直走査部3124、リレー光学系3125、リレー光学系3126を有している。
走査画像光生成部3121は、画像提示部接続I/F212が出力する画像信号を、ドットクロック毎に読み出し、読み出した画像信号に応じて強度変調して走査画像光を生成する装置である。走査画像光生成部3121は、信号処理回路3211、光源部3212、光合成部3213を有している。
信号処理回路3211は、画像提示部接続I/F212と接続している。信号処理回路3211は、画像提示部接続I/F212から入力された「画像信号」に基づいて、走査画像光を生成するための要素となるB(青)、G(緑)、R(赤)の各画像信号3214a〜3214cを生成し、光源部3212に出力する。また、信号処理回路3211は、後述する水平走査部3123の水平走査制御回路3123bと接続している。信号処理回路3211は、画像提示部接続I/F212から入力された「画像信号」に基づいて水平駆動信号3215を生成し、この水平駆動信号3215を水平走査制御回路3123bに出力する。更に、信号処理回路3211は、後述する垂直走査制御回路3124bと接続している。信号処理回路3211は、画像提示部接続I/F212から入力された「画像信号」に基づいて垂直駆動信号3216を生成し、この垂直駆動信号3216を垂直走査制御回路3124bに出力する。
光源部3212は、Bレーザドライバ3212a、Gレーザドライバ3212b、Rレーザドライバ3212c、Bレーザ3212d、Gレーザ3212e、Rレーザ3212fから構成されている。Bレーザドライバ3212aは、信号処理回路3211からドットクロック毎に出力されたB(青)の画像信号3214aに基づき、Bレーザ3212dを駆動させる。Bレーザ3212dは、B(青)の画像信号3214aに基づき、強度変調された青色のレーザ光を出射する。Gレーザ3212e及びRレーザ3212fも、同様に、それぞれ強度変調された、緑色のレーザ光、赤色のレーザ光を出射する。
各レーザ3212d〜3212fには、半導体レーザや、高調波発生機能付固体レーザが含まれる。なお、半導体レーザを用いる場合には、駆動電流を直接変調して、レーザ光の強度変調を行う。また、高調波発生機能付固体レーザを用いる場合には、各レーザ3212d〜3212fそれぞれに、外部変調器を備えてレーザ光の強度変調を行う。なお、高調波発生の効率は高くなく、さらに外部変調器での損失も加わるため、高調波発生機能付固体レーザの消費電力は大きくなるため、各レーザ3212d〜3212fに半導体レーザを用いることが好ましい。
光合成部3213は、コリメート光学系3213a〜3213c、ダイクロイックミラー3213d〜3213f、結合光学系3213gとから構成されている。コリメート光学系3213a〜3213cは、それぞれ、各レーザ3212d〜3212fの前方に配設されていて、各レーザ3212d〜3212fが出射したレーザ光を、平行光化する。ダイクロイックミラー3213d〜3213fは、それぞれ、コリメート光学系3213a〜3213cの前方に配設されていて、各コリメート光学系3213a〜3213cが平行化した各レーザ光を、所定の範囲の波長のレーザ光のみを選択的に、反射又は透過する。
結合光学系3213gは、ダイクロイックミラー3213dの前方に配設されている。ダイクロイックミラー3213dを透過した青色のレーザ光及び、ダイクロイックミラー3213e、3213fでそれぞれ反射された、緑色のレーザ光、赤色のレーザ光が、結合光学系3213gに入射する。結合光学系3213gは、各3原色のレーザ光を集光(混合)させて、光ファイバ3127に入射させる。なお、青色のレーザ光、緑色のレーザ光、赤色の各レーザ光の強度を均等にすると、白色を表現することができる。
水平走査部3123及び垂直走査部3124は、光ファイバ3127に入射されたレーザ光を、画像として照射するために、当該レーザ光を水平方向と垂直方向に走査して走査画像光を生成する。
水平走査部3123は、共振型偏向素子3123a、水平走査制御回路3123b、水平走査角検出回路3123cとから構成されている。光ファイバ3127に入射されたレーザ光は、コリメート光学系3122で平行光化され、共振型偏向素子3123aに入射される。共振型偏向素子3123aは、水平走査制御回路3123bで揺動される反射面3123dを有し、入射されたレーザ光を、揺動する反射面3123dで反射させて水平方向に走査する。水平走査制御回路3123bは、信号処理回路3211から出力される水平駆動信号3215に基づいて、共振型偏向素子3123aの反射面3123dを揺動させる駆動信号を発生する。水平走査角検出回路3123cは、共振型偏向素子3123aから出力される変位信号に基づいて、共振型偏向素子3123aの反射面3123dの揺動範囲及び揺動周波数等の揺動状態を検出し、当該揺動状態を示す信号を、画像提示部接続I/F212に出力する。
垂直走査部3124は、偏向素子3124a、垂直走査制御回路3124b、垂直走査角検出回路3124cとから構成されている。偏向素子3124aは、垂直走査制御回路3124bで揺動される反射面3124dを有し、入射されたレーザ光を、揺動する反射面3124dで反射させて垂直方向に走査し、2次元的に走査された画像光として、リレー光学系3126に出射する。垂直走査制御回路3124bは、信号処理回路3211から出力される垂直駆動信号3216に基づいて、偏向素子3124aの反射面3124dを揺動させる駆動信号を発生する。垂直走査角検出回路3124cは、偏向素子3124aから出力される変位信号に基づいて、偏向素子3124aの反射面3124dの揺動範囲及び揺動周波数等の揺動状態を検出し、当該揺動状態を示す信号を、画像提示部接続I/F212に出力する。
リレー光学系3125は、共振型偏向素子3123aと偏向素子3124aの間に配設されている。リレー光学系3125は、共振型偏向素子3123aの反射面3123dで水平方向に走査されたレーザ光を、偏向素子3124aの反射面3124dに入射させる。
信号処理回路3211は、画像提示部接続I/F212から入力された「画像信号」に基づいて、水平駆動信号3215と垂直駆動信号3216を、それぞれ水平走査制御回路3123bと垂直走査制御回路3124bに出力し、反射面3123d、3124dの走査角を変更することにより、画像光を生成する。
こうして変更された反射面3123d、3124dの走査角度は、水平走査角検出回路3123c及び垂直走査角検出回路3124cによって検出信号として検出され、当該検出信号が画像提示部接続I/F212に入力され、水平駆動信号3215及び垂直駆動信号3216にフィードバックされる。
リレー光学系3126は、正の屈折力を持つレンズ系3126a、3126bを有している。偏向素子3124aから出射された画像光は、レンズ系26aによって、それぞれの画像光が、その走査画像光の中心線を相互に略平行にされ、かつそれぞれ収束画像光に変換される。前記収束画像光は、レンズ系26bによってそれぞれほぼ平行な走査画像光となるとともに、これらの走査画像光の中心線が利用者の瞳孔Eaに収束するように集光される。
なお、本実施形態では、光ファイバ3127から入射されたレーザ光を、水平走査部3123で水平方向に走査した後、垂直走査部3124によって垂直方向に走査することとしたが、水平走査部3123と垂直走査部3124の配置を入れ替え、垂直走査部3124に垂直方向に走査した後、水平走査部3123で水平方向に走査するように構成してもよい。
(画像提示装置の移動機構)
図5は、画像提示装置の移動機構を示す図である。図5において、画像提示装置114に取り付けられたハーフミラー116は、上述した第1位置に配置されている。なお、図5において、CCDカメラ300(例えば、図1参照)は省略する。
画像提示装置の移動機構は、画像提示装置114に対向して配置されるベース150と、ベース150の画像提示装置114に対向する面に形成された移動ガイド152と、画像提示装置114を移動させるための駆動源であるモータ154とにより構成される。移動ガイド152にはギア152aが形成され、モータ154の回転軸の先端には移動ガイド152に形成されたギアにかみ合う小ギア154aが取り付けられている。画像提示装置114には、移動ガイド152に係合するカムローラ156が取り付けられている。
例えば、モータ154が一の方向に回転した場合、小ギア154aの一の方向への回転がギア152aに伝達され、画像提示装置114は第1位置側から第2位置側に移動する。この際、画像提示装置114は、移動ガイド152に係合したカムローラ156の作用によって、この移動ガイド152に沿って移動する。また、モータ154が他の方向に回転した場合、小ギア154aの他の方向への回転がギア152aに伝達され、画像提示装置114は、図5(a)に示す第2位置側から第1位置側に上記同様に移動する。ベース150には、上述した位置センサ340が第1位置側及び第2位置側各々に設置されている。画像提示装置114が第1位置側に移動した場合、第1位置側に設置された位置センサ340は、画像提示装置114を検知する。位置センサ340は、例えば、近接スイッチによって構成されている。また、位置センサ340は、スイッチと突起、ホール素子と磁石、反射型光センサによって構成することもできる。
画像提示装置114が移動し、ハーフミラー116が第1位置に配置された場合、画像提示装置114の画像提示部310から出射され(画像光120a参照)、ハーフミラー116で反射した画像光120bは、左眼118の前方に対して所定の角度θをもって左眼118に入射する。利用者は、画像光120b側に視線を向けることで画像光120bによって示される画像を視認し、また、左眼118の前方に視線を向けることで外界を視認することができる。
なお、ベース150は、所定の方法で、例えば、テンプル104Aに取り付けられている。また、モータ154は、ベース150に取り付けられている。
図6は、画像提示装置が移動し、ハーフミラーが第2位置に配置された状態を示す図である。なお、図6において、CCDカメラ300(例えば、図1参照)は省略する。画像提示装置114が第2位置側に移動した場合、第2位置側に設置された位置センサ340(図6において図示を省略。図5(b)参照)は、画像提示装置114を検知する。画像提示装置114が移動し、ハーフミラー116が第2位置に配置された場合、画像提示装置114の画像提示部310から出射され(画像光120a参照)、ハーフミラー116で反射した画像光120bは、顔正面側から左眼118に入射する。利用者は、第2位置に配置された画像提示装置114の画像提示部310から出射される画像光120bを、視線方向が左眼118の前方にある状態で視認する。そのため、利用者は、画像光120bによって示されるキャリブレーション用のガイダンスにしたがい、例えば上下左右に視線方向を動かすことができる。なお、キャリブレーションについての詳細は後述する。
図7(a)は、画像提示装置及びハーフミラーの移動軌跡を示す図である。この図から明らかなとおり、画像提示装置114の本体部分は左眼118を中心とした円弧M上を略水平移動し、ハーフミラー116は左眼118を中心とした円弧N上を略水平移動する。なお、画像提示装置114の上面に配置されたCCDカメラ300も、画像提示装置114とともに円弧M上を略水平移動する。CCDカメラ300が左眼118を撮像する方向(角度)は、ハーフミラー116を反射した画像光120bの入射角(左眼118の前方に対する角度。図5(a)の角度θ参照)より大きな角度となる方向である。
図7(b)は、画像提示装置に取り付けられたハーフミラーが第1位置から第2位置に移動した際の変化量を示す図である(CCDカメラ300の図示を省略)。なお、図7(b)において、符号114’,116’,120a’,120b’は、第1位置側にある各部(2点鎖線にて描画)を示し、符号114,116,120a,120bは、第2位置側にある各部を示す。図7(b)から明らかなとおり、ハーフミラー116は、画像提示装置114の移動にともない、左眼118を中心として角度θだけ移動し、第2位置に配置される。なお、画像提示装置114が移動ガイド152(図5,6参照)を移動した場合の移動量は、左眼118を中心とした角度θである。
以下、CPU202が、プログラムROM204に記憶されている所定のプログラムをRAM208上で処理することで実行される各種処理について説明する。
(メイン処理)
図8は、メイン処理の処理フローを示す図である。このメイン処理は、CPU202がプログラムROM204に記憶されているメイン処理用プログラムを読み出すとともに、取得した各種データに基づき、このプログラムをRAM208上で実行することで行われる。メイン処理は、利用者がHMD100の電源スイッチ330をONにしたことを条件として開始、実行される。
この処理を開始したCPU202は、先ず、RAM208を初期化する(S100)。そして、CPU202は、画像提示装置114の位置を検出する。すなわち、CPU202は、画像提示装置移動部コントローラ218を介して第1位置側及び第2位置側に設置された位置センサ340が出力する信号を取得し、画像提示装置114の位置を検出する(S102)。続けて、CPU202は、画像提示装置114が第2位置側に移動し、所定の場所に配置されているか否かを判断する(S104)。なお、CPU202は、第2位置側に設置された位置センサ340が出力した信号を取得した場合、画像提示装置114が第2位置側に配置されていると判断する。
S104の判断の結果、画像提示装置114が第2位置側に配置されていない場合(S104:No)、CPU202は処理をS108に移行する。一方、画像提示装置114が第2位置側に配置されている場合(S104:Yes)、CPU202は、キャリブレーションを開始、実行する(S106)。キャリブレーションについての詳細は後述する。
S106のキャリブレーションを実行後、CPU202は、画像提示装置114が第1位置側に移動し、第1位置側に配置されているか否かを判断する(S108)。なお、CPU202は、第1位置側に設置された位置センサ340が出力した信号を取得した場合、画像提示装置114が第1位置側に配置されていると判断する。
ここで、第1位置側から第2位置側への移動又第2位置側から第1位置側への移動は、通信部216が受け付けた指示又は図3には図示されていないHMD100が備える操作部を介した指示を、CPU202が取得し、この指示に基づき画像提示装置移動部コントローラ218に対して所定の指令を与えることで、実行される。また、利用者が手動にて移動させる構成を採用することできる。
S108の判断の結果、画像提示装置114が第1位置側に配置されていない場合(S108:No)、CPU202は処理をS112に移行する。一方、画像提示装置114が第2位置側に配置されている場合(S108:Yes)、CPU202は、フラッシュROM206に記憶されたコンテンツデータの再生(コンテンツ提示処理)を開始、実行する(S110)。コンテンツ提示処理についての詳細は後述する。
そして、CPU202は、電源OFFの指令(終了指令)が入力されたか否かを判断する(S112)。ここで、電源OFFの指令は、利用者が電源スイッチ330を操作することで入力される。判断の結果、終了指令が入力されていない場合(S112:No)、CPU202は、処理をS102に戻す一方、終了指令が入力された場合(S112:Yes)、CPU202は、電源をOFFにし、このメイン処理を終了する。
(キャリブレーション)
図9は、キャリブレーションの処理フローを示す図である。このキャリブレーションは、CPU202がプログラムROM204に記憶されているキャリブレーション用プログラムを読み出すとともに、取得した各種データに基づき、このプログラムをRAM208上で実行することで行われる。キャリブレーションは、メイン処理のS106で開始、実行される。
この処理を開始したCPU202は、図10(a)に示すようなキャリブレーション用の注視点Pを中心に表わした画像を生成し、これを示す画像光120aが出射されるよう、所定の制御を実行する(S200)。S200でCPU202は、画像提示部接続コントローラ2122に対して、画像提示部310に、図10(a)に示す画像を入力する指令を与える。画像提示部310は、画像提示部接続コントローラ2122から図10(a)に示す画像の入力を受け、これを示す画像光120aを出射する。
S200を実行後、CPU202は、注視点Pの位置を左へ所定距離移動した画像(図10(b)参照)を生成し、生成した画像が提示されるようにS200と同様の制御を実行する(S202)。利用者は、画像提示部310から出射される画像光120bに基づき、注視点Pを視認し認識する。なお、図10(b)に示す白丸は、後述の左側視線入力位置Lを説明するために描画したものであり、実際に生成される画像には含まれない。
CPU202は、注視点Pが左へ移動した画像を生成等し、注視点Pの位置が、移動の最終位置である左側視線入力位置Lであるか否かを判断する(S204)。ここで、CPU202は、視線入力位置を決定する旨の指示を取得した場合、移動の最終位置である左側視線入力位置Lを判断する。視線入力位置を決定する旨の指示は、利用者が通信部216に接続されたキーボード又はHMD100が備える操作部を操作することで、入力される。なお、利用者の視線方向に基づき所定の動作を制御するHMD100において、利用者からの入力に基づき視線入力位置を決定する構成は、利用者の好みに合った適切なキャリブレーションを実現することができる。判断の結果、注視点Pの位置が左側視線入力位置Lでない場合(S204:No)、CPU202は、処理をS202に戻し、注視点Pを順次左へ移動させた画像を生成し、生成された画像が順次提示されるように制御する。利用者は、順次提示される画像に基づき左へ移動する注視点Pを視認し続ける。
これに対し、判断の結果、注視点Pの位置が左側視線入力位置Lである場合(S204:Yes)、CPU202は、左側視線入力位置Lにある注視点Pを視認している左眼118、すなわち、視線方向が左側視線入力位置Lにある左眼118の画像を取得し、所定の処理を実行する。そして、CPU202は、所定の処理によって得られた左側基準状態データをフラッシュROM206に記憶する(S206)。
S206の処理を具体的に説明すると、先ず、CPU202は、CCDカメラ接続コントローラ2102に対して所定の指令を与える。この指令を取得したCCDカメラ接続コントローラ2102は、CCDカメラ300によって撮像された、視線方向が左側視線入力位置Lにある左眼118の画像をCCDカメラ用VRAM2104に記憶する。CPU202は、CCDカメラ用VRAM2104に記憶された画像を、角度θ(図7(b)参照)に基づき補正する。この補正により、ハーフミラー116が第2位置に配置された状態でCCDカメラ300によって撮像された左眼118(視線方向が左側視線入力位置Lにある左眼118)を示す画像が、ハーフミラー116が第1位置に配置された状態で撮像される左眼118を示す画像に補正される。この点について、図11に基づき説明する。図11(a)は第2位置でCCDカメラ300によって撮像された左眼118を示すものである。ここで、点線が交わる点Oは、CCDカメラ300のレンズの中心点を示す。また、直線Qは、撮像された像面を示す。ここで、図11(a)の状態において点O及び直線Qを角度θ(図7(b)参照)だけ回転させると、左眼118の外形に対し、黒眼118aの画像を構成する各点の位置がずれるため、このずれを黒眼118aの各点において予め求め、例えば、フラッシュROM206に記憶しておく。CPU202は、フラッシュROM206に予め記憶してある黒眼118aの各点のずれに基づき、図11(a)に示す画像を、図11(b)に示す状態に補正する。
そして、CPU202は、補正後の画像を、左側基準状態データとしてフラッシュROM206に記憶する。本実施形態において左側基準状態データは、HMD100において実現される動作、具体的には、フラッシュROM206に記憶されているコンテンツデータの再生開始に関連付けられる(詳細は後述する「コンテンツ提示処理」参照)。
S206を実行後、CPU202は、S200同様、図10(c)に示すようなキャリブレーション用の注視点Pを中心に表わした画像を生成し、これを示す画像光120aが出射されるよう、所定の制御を実行する。なお、S206で実行される処理は、上記S200と同様であり、その説明を省略する。
そして、CPU202は、注視点Pの位置をS202とは逆の右へ所定距離移動した画像(図10(d)参照)を生成し、これが提示されるようにS206(S200)と同様の制御を実行する(S210)。利用者は、画像提示部310から出射され、ハーフミラー116を反射した画像光120bに基づき、注視点Pを視認し認識する。なお、図10(d)に示す白丸は、後述の右側視線入力位置Rを説明するために描画したものであり、実際に生成される画像には含まれない。
CPU202は、注視点Pが右へ移動した画像を生成等し、注視点Pの位置が、移動の最終位置である右側視線入力位置Rであるか否かを判断する(S212)。CPU202は、左側視線入力位置Lの場合と同様の手法により、右側視線入力位置Rを判断する。判断の結果、注視点Pの位置が右側視線入力位置Rでない場合(S212:No)、CPU202は、処理をS210に戻し、注視点Pを順次右へ移動させた画像を生成し、生成された画像が順次提示されるように制御する。利用者は、順次提示される画像に基づき右へ移動する注視点Pを視認し続ける。
これに対し、判断の結果、注視点Pの位置が右側視線入力位置Rである場合(S212:Yes)、CPU202は、右側視線入力位置Rにある注視点Pを視認している左眼118、すなわち、視線方向が右側視線入力位置Rにある左眼118の画像を取得し、S206に関連して説明した補正処理を実行する。そして、CPU202は、補正処理によって得られた右側基準状態データをフラッシュROM206に記憶する(S214)。S214を実行後、CPU202は処理を図8のS108に戻す。
本実施形態において右側基準状態データは、HMD100において実現される動作、具体的には、フラッシュROM206に記憶されているコンテンツデータの再生停止に関連付けられる(詳細は後述する「コンテンツ提示処理」参照)。なお、S214で実行される処理は、上述のS206と同様であり、その説明を省略する。
(コンテンツ提示処理)
図12は、コンテンツ提示処理の処理フローを示す図である。このコンテンツ提示のための処理は、CPU202がプログラムROM204に記憶されているコンテンツ提示用プログラムを読み出すとともに、取得した各種データに基づき、このプログラムをRAM208上で実行することで行われる。コンテンツ提示処理は、メイン処理のS110で開始、実行される。
この処理を開始したCPU202は、左眼118の視線方向が左側であるか否かを判断する(S300)。ここで、CPU202は、CCDカメラ300が撮像し、CCDカメラ用VRAM2104に記憶された左眼118の状態を示す撮像画像と、左側基準状態データによって示される画像とを用いたパターンマッチングによって、S300の判断を行う。なお、左側基準状態データは、図9のキャリブレーションのS206でフラッシュROM206に記憶される。
S300の判断の結果、視線方向が左側である場合、換言すれば、パターンマッチングの結果、両画像の間に同一性があると判断された場合(S300:Yes)、CPU202は、フラッシュROM206に記憶されたコンテンツデータの再生を開始する(S302)。具体的には、CPU202は、コンテンツデータをレンダリングし、レンダリングによって生成された画像を画像提示部用VRAM2124に記憶する。そして、CPU202は、画像提示部用VRAM2124に記憶に記憶された画像を示す画像光120aが画像提示部310から出射されるよう、画像提示部接続コントローラ2122に対して所定の指令を与える。一方、S300の判断の結果、視線方向が左側でない場合、換言すれば、パターンマッチングの結果、両画像の間に同一性がないと判断された場合(S300:No)、CPU202は処理をS304に移行する。
S304でCPU202は、左眼118の視線方向が右側であるか否かを判断する。ここで、CPU202は、S304の判断をS300と同様の手法で行う。すなわち、CCDカメラ用VRAM2104に記憶された左眼118の状態を示す撮像画像と、右側基準状態データによって示される画像とを用いたパターンマッチングを実行する。なお、右側基準状態データは、図9のキャリブレーションのS214でフラッシュROM206に記憶される。
S304の判断の結果、視線方向が右側である場合(S304:Yes)、CPU202は、S302で開始した再生を停止し(S306)、処理を図8のS112に戻す。一方、視線方向が右側でない場合(S304:No)、CPU202は、S306を実行することなく、処理を図8のS112に戻す。
(本実施形態に基づく有利な効果)
本実施形態のHMD100は、最初に注視点Pを中心に表わした画像を生成し、これを利用者に提示するとともに、その後、最終の視線入力位置L,Rまで注視点Pを所定の方向に順次移動して、キャリブレーションを実行する構成を採用した。これによれば、利用者は、最終の視線入力位置L,Rまで、順次移動する注視点Pを視認し続けることができる。その結果、視線方向が所定の視線入力位置にある利用者の左眼118をCCDカメラ300で撮像し、撮像された画像に基づく基準状態データをフラッシュROM206に記憶することができる。
なお、最初から視線入力位置L,Rに注視点Pが表示された画像を、利用者に提示した場合、例えば、利用者は注視点Pに気付かず、その結果、利用者が注視点Pを視認しないといった状況も想定し得る。この場合、視線方向が視線入力位置にある利用者の左眼118をCCDカメラ300で撮像できず、その結果、フラッシュROM206に基準状態データを記憶することができない。
(変形例)
(1)上記では、左眼118を対象とした単眼型のHMD100を例に説明した。しかし、両眼に画像を視認可能に提示するHMDに本実施形態の構成を採用することもできる。この場合、右眼用の画像提示装置と左眼用の画像提示装置とが各眼の前方及び各側頭部側に移動可能な構成を採用する。そして、各眼についてキャリブレーションを実行する。その上で、左右両眼を撮像した各画像(2個のCCDカメラによって各々撮像)がともに各側基準状態データに一致する場合、HMDの動作(例えば、コンテンツデータの再生開始)が制御される。
なお、両眼型のHMDであっても、例えば、左眼118の状態のみを対象としてキャリブレーションを実行し、左眼118のみに基づきHMDの動作を制御する構成とすることもできる。また、両眼の組合せに基づいた構成とすることもできる。
(2)上記では、左右の視線方向を例に説明した。しかし、左右に基づく構成の他、例えば、上又は下に基づく構成とすることもできる。また、視線方向に対応づけられるHMD100の動作を、再生開始及び停止以外の動作とすることもできる。
(3)上記では、画像提示装置114にハーフミラー116を取り付け、画像提示装置114を移動させることで、ハーフミラー116が移動するHMD100を例に説明した。しかし、これ以外の構成を採用することもできる。例えば、ハーフミラー116を単独で移動させる構成とすることもできる。この場合、ハーフミラー116が独立して、例えば、図5(a)及び図6(a)に示す各位置に移動し、配置される。なお、ハーフミラー116に替え、回折格子又はホログラムを採用したHMDでは、回折格子又はホログラムを第1位置と第2位置との間を移動し、各位置に配置する。そして、上述した各動作と同様の動作が実行される。また、ハーフミラー116などの反射手段を採用しないHMDの場合、画像提示装置(画像提示部)が、図5(a)及び図6に示すハーフミラー116が配置された位置に配置され、上述した各動作と同様の動作が実行される。
(4)上記では、図12に示すコンテンツ提示処理のS300及びS304の判断をパターンマッチングによって実行する構成を例に説明した。しかし、これ以外の構成を採用することもできる。例えば、CCDカメラ300によって撮像された画像に表わされた白眼及び黒眼の比率と、基準状態データによって示される画像に表わされた白眼及び黒眼の比率とを比較し、S300及びS304の判断を行う構成とすることもできる。
(5)上記では、CCDカメラ300によって撮像された左眼118の画像を補正し、補正後の状態を示す基準状態データを記憶する構成を例に説明した(図9に示すキャリブレーションのS206及びS214参照)。しかし、これ以外の構成を採用することもできる。例えば、撮像された左眼118の画像をフラッシュROM206に記憶し、図12に示すコンテンツ提示処理のS300及びS304の実行の都度、S206等で実行した補正と同じ補正を実行する構成とすることもできる。
(6)上記では、図9に示すキャリブレーションのS206及びS214で基準状態データをフラッシュROM206に記憶する構成を例に説明した。しかし、これ以外の構成を採用することもできる。例えば、図7に示すメイン処理で、基準状態データをフラッシュROM206に記憶する構成とすることもできる。この場合、図9のS204及びS212の判断が肯定された場合(S204,S212:Yes)、CCDカメラ300によって撮像された画像は、例えば、CCDカメラ用VRAM2104にそのまま記憶される。