図1は本実施の形態を適用できる情報処理システムの構成例を示す。この例で情報処理システム8は、対象物を撮影する撮像装置12、撮影した画像に基づき情報処理を行う情報処理装置10、情報処理の結果として得られた画像を表示する平板型ディスプレイ16およびユーザが装着するHMD18、ユーザが操作する入力装置14を含む。
情報処理装置10と、撮像装置12、入力装置14、平板型ディスプレイ16、HMD18とは、ケーブルで接続されても、Bluetooth(登録商標)など既知の無線通信技術により接続されてもよい。また情報処理装置10が実施する情報処理によっては、撮像装置12、平板型ディスプレイ16、入力装置14はなくてもよい。またこれらの装置の外観形状は図示するものに限らない。
撮像装置12は、ユーザなどの対象物を所定のフレームレートで撮影するカメラと、その出力信号にデモザイク処理など一般的な処理を施すことにより撮影画像の出力データを生成し、情報処理装置10に送出する機構とを有する。カメラはCCD(Charge Coupled Device)センサやCMOS(Complementary Metal Oxide Semiconductor)センサなど、一般的なデジタルカメラ、デジタルビデオカメラで利用されている可視光センサを備える。撮像装置12が備えるカメラは1つのみでもよいし、図示するように2つのカメラを既知の間隔で左右に配置したいわゆるステレオカメラでもよい。
あるいは、赤外線などの参照光を対象物に照射しその反射光を測定する装置と単眼のカメラとの組み合わせにより撮像装置12を構成してもよい。ステレオカメラや反射光の測定機構を導入した場合、3次元の実空間における被写体の位置を求めることができ、情報処理や表示画像をより多様化させることができる。ステレオカメラが左右の視点から撮影したステレオ画像を用いて、三角測量の原理により被写体のカメラからの距離を特定する手法や、反射光の測定によりTOF(Time of Flight)やパターン照射の方式で被写体のカメラからの距離を特定する手法はいずれも広く知られている。
情報処理装置10は、HMD18や平板型ディスプレイ16に表示させる画像のデータを出力する。当該画像のデータは、映画や撮影された動画など元から完成形としてデータ保存されたものでもよいし、情報処理装置10内部でリアルタイムに描画したものでもよい。後者の場合、情報処理装置10は例えば、撮像装置12から所定のフレームレートで取得した撮影画像に対し一般的な顔検出や追跡処理を施すことにより、被写体であるユーザの動作を反映させたキャラクタが登場するゲームを進捗させたり、ユーザの動きをコマンド入力に変換して情報処理を行ったりする。
このとき情報処理装置10は、HMD18や入力装置14に設けたマーカーや加速度センサを利用して各ユーザの動きを取得したり、入力装置14に対するユーザの操作情報を取得したりして、情報処理や表示画像に反映させてもよい。例えば撮影画像におけるHMD18のマーカーの像を追跡することにより、ユーザの頭部の位置や動きを特定する。そして、その動きに対応してHMD18に表示させる仮想世界に対する視点を変化させることにより、ユーザは自分の視点に対応した仮想世界を見ることができ、臨場感や没入感を得ることができる。情報処理装置10はそのような画像データに加え、環境音や会話などの音声データも出力してよい。
HMD18は、ユーザが頭に装着することによりその眼前に位置する有機ELパネルなどの表示パネルに画像を表示する表示装置である。本実施の形態におけるHMD18は、左右の視点から見た状態の視差画像を、表示画面を2分割してなる左右の領域にそれぞれ表示させることにより画像を立体視させる。HMD18はさらに、所定の色で発光する素子またはその集合からなる発光マーカー、ユーザの耳に対応する位置に音声を出力するスピーカーやイヤホン、装着した使用者の頭部の傾きを検出する加速度センサなどを装備していてもよい。
平板型ディスプレイ16は、一般的な2次元の画像を出力するディスプレイおよび音声を出力するスピーカーを有するテレビでよく、具体的には液晶テレビ、有機ELテレビ、プラズマテレビ、PCディスプレイ等のいずれでもよい。あるいはタブレット端末や携帯端末のディスプレイおよびスピーカーであってもよい。入力装置14は、ユーザが操作することにより、処理の開始、終了、機能の選択、各種コマンド入力などの要求を受け付け、情報処理装置10に電気信号として供給する。
入力装置14は、ゲームコントローラ、キーボード、マウス、ジョイスティック、平板型ディスプレイ16の表示画面上に設けたタッチパッドなど、一般的な入力装置のいずれか、またはそれらの組み合わせによって実現してよい。入力装置14はさらに、所定の色で発光する素子またはその集合からなる発光マーカーを備えていてもよい。この場合、情報処理装置10がマーカーの動きを、撮影画像を用いて追跡することにより、入力装置14の動き自体をユーザ操作とすることができる。なお入力装置14を、把持部を有する発光マーカーのみで構成してもよい。
図2はHMD18の外観形状の例を示している。この例においてHMD18は、出力機構部102および装着機構部104で構成される。装着機構部104は、ユーザが被ることにより頭部を一周し装置の固定を実現する装着バンド106を含む。装着バンド106は各ユーザの頭囲に合わせて長さの調節が可能な素材または構造とする。例えばゴムなどの弾性体としてもよいし、バックルや歯車などを利用してもよい。
出力機構部102は、HMD18をユーザが装着した状態において左右の目を覆うような形状の筐体108を含み、内部には装着時に目に正対するように表示パネルを備える。表示パネルは液晶パネルや有機ELパネルなどで実現する。筐体108内部にはさらに、HMD18装着時に表示パネルとユーザの目との間に位置し、ユーザの視野角を拡大する一対のレンズを備える。HMD18はさらに、装着時にユーザの耳に対応する位置にスピーカーやイヤホンを備えてよい。
筐体108の外面には、発光マーカー110a、110b、110c、110dが備えられる。発光マーカーの数や配置は特に限定されないが、図示した例では出力機構部102の筐体前面の4隅に設けている。さらに、装着バンド106後方の両側面にも設けてもよい。なお発光マーカー110c、110dは出力機構部102の下側にあり、図2の視点からは本来は見えないため、外周を点線で表している。
図3は情報処理装置10の内部回路構成を示している。情報処理装置10は、CPU(Central Processing Unit)22、GPU(Graphics Processing Unit)24、メインメモリ26を含む。これらの各部は、バス30を介して相互に接続されている。バス30にはさらに入出力インターフェース28が接続されている。入出力インターフェース28には、USBやIEEE1394などの周辺機器インターフェースや、有線又は無線LANのネットワークインターフェースからなる通信部32、ハードディスクドライブや不揮発性メモリなどの記憶部34、外部装置へデータを出力する出力部36、外部装置からデータを入力する入力部38、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部40が接続される。
CPU22は、記憶部34に記憶されているオペレーティングシステムを実行することにより情報処理装置10の全体を制御する。CPU22はまた、リムーバブル記録媒体から読み出されてメインメモリ26にロードされた、あるいは通信部32を介してダウンロードされた各種プログラムを実行する。GPU24は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、CPU22からの描画命令に従って描画処理を行い、出力部36からHMD18等へデータを出力する。メインメモリ26はRAM(Random Access Memory)により構成され、処理に必要なプログラムやデータを記憶する。
図4はHMD18と平板型ディスプレイ16に表示する画像を説明するための図である。同図左側の画像(a)は、HMD18に表示される画像、右側の画像(b)は平板型ディスプレイ16に表示される一般的な画像である。同図ではわかりやすさのために格子状の図柄を表示対象としているが、実際には仮想世界やゲーム画像など情報処理の内容によって表示される画像も様々となる。HMD18用の画像(a)は、画像を立体視させるため、表示パネルに対応する画像平面を2分割してなる左右の領域に、左目用画像と右目用画像からなる一対の視差画像をそれぞれ配置した構成を有する。
本実施の形態のHMD18は上述のように、表示パネルの前にユーザの視野を広げるためのレンズを設けた構造とする。この場合、表示パネルに表示された画像には、レンズによって、中心から離れた画素ほど大きい変位で引き延ばされるいわゆる「糸巻き型」の歪みが発生する。変位量は色によっても異なるため色収差も生じる。したがって、当該歪みと色収差を考慮して逆方向に歪めておく歪み補正を行い、画像(a)のような「樽型」の画像を表示させる。これにより、レンズを介して見たときに画像(b)のような本来の画像が立体的に見えるようになる。
レンズ用の歪み補正については一般的な手法を適用することができる。情報処理装置10は、HMD用の表示画像として画像(a)のような画像データを生成し、HMD18に出力する。ここで画像(a)のうち樽型に歪めた画像の領域の周辺領域は、レンズを介して見たときにはユーザからは見えない不可視領域となる。本実施の形態では当該不可視領域に所定の情報を図形などで表すことにより、HMD18での表示処理に反映させる。なお、平板型ディスプレイ16に同様の画像を表示させる態様においては、情報処理装置10は画像(b)のような画像データを平板型ディスプレイ16に出力すればよい。
図5は情報処理装置10とHMD18の機能ブロックの構成を示している。図5に示す各機能ブロックは、ハードウェア的には、CPU、GPU、各種メモリ、マイクロプロセッサなどで実現でき、ソフトウェア的には、記録媒体などからメモリにロードした、データ入力機能、データ保持機能、画像処理機能、通信機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
情報処理装置10は、撮像装置12および入力装置14からの入力データを取得する入力データ取得部72、ゲームなど実行するアプリケーションに応じた情報処理を行う情報処理部74、ゲーム画像やその音声など情報処理の結果として出力すべきデータを生成する出力データ生成部78、HMD18と通信を確立する通信部76、出力データの生成に必要な基礎データを格納するデータ記憶部80を含む。
入力データ取得部72は、撮像装置12が撮影した画像を所定のフレームレートで順次取得する。また、入力装置14を介したユーザ操作の内容を示す情報を取得する。ここでユーザ操作とは、実行するアプリケーションの選択、処理の開始/終了、コマンド入力など、一般的な情報処理でなされるものでよい。そして入力データ取得部72は、取得した情報を情報処理部74に供給する。
入力データ取得部72はさらに、HMD18内部の加速度センサが計測した結果を通信部76から取得し、情報処理部74に供給してもよい。入力データ取得部72はまた、入力装置14から取得したユーザからの処理開始/終了要求に従い、撮像装置12における撮影の開始/終了を制御したり、情報処理部74における処理の結果に応じて、撮像装置12から取得するデータの種類を制御したりしてもよい。ただし入力データ取得部72が取得するデータは、情報処理部74が実行する情報処理の内容によって異なってよい。
情報処理部74は、ユーザが指定したゲームなどの情報処理を実施する。この情報処理には、撮影画像から対象物の像を検出しそれを追跡する処理などを含んでよい。例えば頭部や手などユーザの体の一部を、輪郭線を利用して追跡したり、特定の模様や形状を有する対象物をパターンマッチングにより追跡したりしてもよい。これらの追跡処理には一般的な画像処理技術を適用できる。さらに各HMD18から送信された加速度センサによる計測値などの情報を統合することにより、ユーザの頭部の位置や姿勢を詳細に特定してもよい。情報処理部74は、そのようにして得たユーザの動きや位置を入力値としたり、入力装置14を介したユーザ操作を入力値としたりして、ゲームを進捗させたり対応する処理を実施したりする。ただし情報処理の内容はこれらに限定されない。
出力データ生成部78は、情報処理部74からの要求に従い、情報処理の結果として出力すべき画像や音声のデータを生成する。例えば上述のように、ユーザの頭部の位置や姿勢に対応する視点から見た仮想世界を、左右の視差画像として描画したうえ、レンズを考慮した歪み補正を施して左右に配置した画像のデータを生成する。この画像をHMD18において所定のフレームレートで左右の目の前に表示させ、仮想世界での音声をさらに出力したりすれば、ユーザはあたかも仮想世界に入り込んだような感覚を得られる。
ここで出力データ生成部78は、上述した画像の不可視領域またはその一部を所定の色で塗りつぶしたり、当該領域に所定の図形を表したりすることで情報を埋め込む。例えば、生成した画像データが適正なものであることを示す図形を表示したり色で表したりする。このようにすることで、情報処理装置10がHMD18用に作成した適正な画像データか否かを、HMD18が簡易な確認処理で判別できるようにする。あるいはコンテンツのシーン変化などに応じて、HMD18内部の表示パネルやスピーカーの出力調整を指示する情報を埋め込んでもよい。
情報処理部74や出力データ生成部78における処理に必要な基礎的なデータはデータ記憶部80に格納しておく。このデータには、画像データに埋め込むべき情報とそれを不可視領域に表すための色や図形との対応情報も含まれる。通信部76は、HDMI(登録商標)(High-Definition Multimedia Interface)やUSB(Universal Serial Bus)など所定のプロトコルによりHMD18と通信を確立し、出力データ生成部78が生成した画像や音声の出力データを送信する。
HMD18は、情報処理装置10から送信された出力データを取得する通信部82、出力データに含まれる画像のうち不可視領域に表された色や図形を確認する不可視領域確認部84、および、出力データの画像や音声を表示パネルやスピーカーから出力する出力部86を含む。通信部82は所定のプロトコルにより情報処理装置10と通信を確立し、所定のレートで情報処理装置10から送信される出力データを取得する。通信部82はさらに、HMD18内部の加速度センサによる計測値などを適宜、情報処理装置10に送信してもよい。
不可視領域確認部84は、通信部82が取得した出力データのうち、画像の不可視領域に表される色や図形を確認し、埋め込まれた情報を解釈する。そのため不可視領域確認部84は、当該色や図形と、それが表す情報とを対応づけたデータを内部のメモリに保持している。そして不可視領域に表された図形等に基づき当該データを参照することにより、出力が適正である場合に限り出力データを出力部86へ供給する。また、表示パネルやスピーカーの出力調整が指示されているのであれば、出力部86に調整を要求する。
出力部86は表示パネルやスピーカーと、それらの出力状態を制御する機構などで実現し、不可視領域確認部84から供給された出力データを用いて画像を表示したり音声を出力したりする。不可視領域確認部84から出力調整の要求があった場合は、出力部86はそれに従い調整を行う。画像表示、音声出力、出力状態の制御の具体的な処理手順については一般的な技術を適用できるためここでは説明を省略する。
図6は不可視領域に情報を埋め込んだHMD用画像の例を示している。画像190において、「L」、「R」と表記された楕円は、図4の画像(a)のようにレンズを考慮して樽型に歪めた左右の視差画像の領域を示している。したがってその周囲の領域が不可視領域となる。そして同図の例では、左目用の画像を含む左半分の領域の四隅、および右目用の画像を含む右半分の領域の四隅に、矩形の図形192a〜192hで情報を表している。
例えば図形192a〜192hの色で情報を表す場合、赤、緑、青の3要素を0または最大階調で表すことにより、全ての図形を同じ色としても8パターンの情報を表すことができる。このように画素値に大きな差を持たせることにより、情報処理装置10の出力データ生成部78で画像が生成されてから不可視領域確認部84において不可視領域を確認するまでに介在する各種処理により色空間が微妙に変化しても、埋め込まれた情報を誤認識しないようにできる。図形192a〜192hの色を全て同じとせず、位置と色の組み合わせで情報を表すようにすると、さらに情報量を増やすことができる。
図形192a〜192hの塗り潰し色で情報を表現するのみならず、内部の模様や、図形192a〜192h自体の形状にバリエーションを持たせることにより、さらに情報量を増やしてもよい。ただしこの場合も、不可視領域を確認するまでに介在する処理の影響で図形に多少の歪みが生じても誤認識がないよう、模様や形状に大きく差をつけることが望ましい。例えば縦線と横線、あるいは縦縞と横縞などで差を出すことが考えられる。また、画像中の位置によって異なる種類の情報を埋め込むようにしてもよい。
なお図示したように不可視領域の一部を利用するのみならず、不可視領域全体の色で情報を表してもよい。また図示した領域以外でも、不可視またはユーザに視認されにくい領域であれば同様に情報を埋め込んでよい。例えば表示パネルの中央付近の領域194は、ユーザの両眼間の直前に位置するため不可視となりやすい。この領域を利用して色や図形で情報を表しても、ユーザに意識させることなくHMD18の表示態様を同様の処理で制御できる。なお図では領域194を円形としたがそれに限る主旨ではない。
図7は不可視領域に表す図形とそれが示す情報との対応を表すデータの構造例を示している。埋め込み情報設定テーブル200は、位置欄202a、図形欄202b、情報欄204cを含む。位置欄202aには、情報処理装置10から出力される画像の不可視領域のうち、情報を示す図形の表示位置を設定する。同図の例では、図6の画像190のうち図形192a〜192hが表されている8つの位置があらかじめ設定されており、そのいずれかを(横方向の番号,縦方向の番号)という座標で表している。
図形欄202bには、色、模様、形といった図形の属性を設定し、情報欄204cには、位置欄202aに設定された位置に図形欄202bで設定された図形が表されていたときにそれが示す情報を設定している。例えば図示する埋め込み情報設定テーブル200の2行目に設定されているように、(0,0)および(3,0)の位置に「赤の矩形」が表されていたら、その画像は適正なものであることを示している。一方、3行目に設定されているように、その位置にそれ以外の図形が表されていたり図形自体が表されていなければ、当該画像は不適正なものであるため表示しないようにする。
情報処理装置10が、自らが描画した画像に対し出力前にそのような図形を付加することで、当該画像データを受信したHMD18は、それが適正なものであることを容易に判別できる。一旦生成された画像に後から何らかの加工が施されていたり、素性が明らかでない装置で作成されたりした画像は、左右の画像間の視差が適切でないなどの理由で、それを見続けることにより体調不良となったり視覚障害が発生したりする可能性がある。
上記のようにHMD18への出力の直前で安全を保障し、HMD18では安全が担保されている場合に限り表示することにより、そのような危険性を排除できる。一旦保存された動画データであっても、正規のものには所定の図形を付加することで、同様に危険性を排除できる。また左半分と右半分の不可視領域に、互いに異なる所定の色を表すことにより、左目用画像と右目用画像が何らかの理由で逆に配置されている場合にそれを検出し、表示しないようにしてもよい。
また、埋め込み情報設定テーブル200の4行目に設定されているように、(1,0)および(2,0)の位置に「緑の縦縞」が表されている場合、表示パネルの輝度を減少させる指示を示している。一方、5行目に設定されているように、その位置に「緑の横縞」が表されている場合、表示パネルの輝度を増加させる指示を示している。例えば描画する仮想世界の明るさが大きく変化するようなときには、輝度を調整した方がよい場合がある。そこで情報処理装置10は描画するシーンなどによって適切な輝度を決定し、必要に応じて該当する位置に図形を表すことでHMD18に輝度を調整させる。コントラストや色味などの画質を調整してもよい。表示パネルの調整のみならず、スピーカーの音量や音のバランスを調整するようにしてもよい。
このようにすることで、ユーザの手間をかけずに常に最適な状態で画像を表示させたり音声を出力したりすることができるとともに、強い光の明滅など刺激の大きいシーンの表現を当該シーン開始直前のタイミングで緩和方向に調整でき、視覚効果による予想外の体調不良などが発生しにくい。そのような緩和処理を行うか否かを、ユーザが事前に設定できるようにしてもよい。なお図示した設定のフォーマットや設定の内容は一例であり、様々な変形が考えられる。例えば画像が適正であることを示す図形をより複雑なものとすることにより、容易に模倣できないようにしてもよい。あるいは縞模様の色や太さにバリエーションを持たせることにより、輝度を変化させる割合を具体的に指定してもよい。
埋め込み情報設定テーブル200は、情報処理装置10のデータ記憶部80に格納し、情報処理部74からの要求に従い出力データ生成部78が参照することで、具体的な図形を出力画像に付加する。またHMD18の不可視領域確認部84の内部メモリに格納し、図形に基づきそれが示す情報を特定する。情報処理装置10は、全フレームの画像に情報を埋め込んでもよいし、所定の間隔で定期的に埋め込んでもよい。いずれにしろ必要な図形を継続して表すようにすることで、一時的に検出に失敗したり誤認識したりしても即時の修正が可能となる。
またこのようにすることで、上述したシーンごとの調整のように、状況が時間変化する場合にも対応できる。なお、同じ位置に同じ図形が所定時間、継続して検出されたことを確認してから最終的な判定を行うようにして、情報の特定精度を上げてもよい。さらに、そのような時間軸上での図形の連続性を活用し、同じ位置における図形の色の変化のパターンや各色の継続時間などによって情報を表してもよい。
次にこれまで述べた構成によって実現される情報処理システム8の動作について説明する。図8は、情報処理装置10およびHMD18がデータ出力を行う処理手順を示すフローチャートである。このフローチャートは、ユーザが入力装置14などを介してゲームなどを指定し処理の開始を要求することにより開始される。まず情報処理装置10は、指定されたゲームなどの処理を行い、出力画像の生成を開始する(S10)。そして図7で示したような埋め込み情報設定テーブル200の設定内容に従い、必要な図形を不可視領域の設定された位置に描画する(S12)。なお上述のとおり、設定内容によっては不可視領域の塗り潰しなどでもよい。
このようにして生成した画像のデータを適宜音声のデータと組み合わせるなどして、出力データとしてHMD18に送信する(S14)。情報処理装置10では、処理を終了させる必要がない間は、所定のフレームレートで出力用の画像の生成および送信処理を同様に継続する(S16のN、S10〜S14)。一方、HMD18では、情報処理装置10から送信された出力データを受信する(S18)。すると不可視領域確認部84は、不可視領域の図形の有無や図形の属性を確認する(S20)。
それを内部メモリに保持する埋め込み情報設定テーブル200と照合し、適正なデータであることが示され(S22のY)、輝度等、出力を調整する必要がある場合は(S24のY)、出力調整を行ったうえで出力する(S26、S28)。適正なデータであることが示され(S22のY)、輝度等、出力を調整する必要がない場合は(S24のN)、そのまま出力する(S28)。適正なデータでない場合は、当該出力データの出力を行わない(S22のN)。
なおこの場合、表示や音声によりユーザに警告したり、情報処理装置10にその旨を通知したりしてもよい。あるいは、表示色を全体的に薄くするなどして暫定的に出力するようにしてもよい。HMD18は、処理終了の必要がない間は、情報処理装置10から送信されるフレームごとの出力データに対しS18〜S28の処理を繰り返す(S30のN)。これにより各HMD18にはゲーム画面などの動画像や音声が常に適切な状態で表示される。情報処理装置10は、ユーザが終了要求を入力したりゲームが終了したりして処理を終了させる必要が生じたら全ての処理を終える(S16のY)。HMD18も、情報処理装置10からの通知などによって処理を終了させる必要が生じたら全ての処理を終える(S30のY)。
以上述べた本実施の形態によれば、レンズによる歪みを考慮して補正したHMD用の画像のうち、ユーザから見えない不可視領域に色、図形、模様などを表すことで情報を埋め込む。例えば画像が適正であることを示す図形を表すことにより、HMD側で確認のうえ出力の是非を決定する。これにより不正な加工などに起因し視差が不適切であったり、左右の画像が逆になっていたりする不適切な画像を見続けることによる体調不良や視覚障害などを防止できる。また輝度やコントラストなど物理的な調整に係る情報を埋め込むことにより、シーンの変化などに応じて自動で調整がなされ、常時快適な出力環境を提供できるとともに、視聴覚的な過度の刺激に起因した体調不良なども防止できる。
不可視領域に情報を埋め込むことにより、HMDにおける表示画像には見かけ上の影響はなく、また送信されるデータサイズも変化しない。さらに、単純な図形や色の違いで判別可能なシンプルな情報を通達するため、埋め込まれた情報の検出やそれに対応した処理のための高度な情報処理モジュールを必要としない。結果として、HMDが重くなったりサイズが大きくなったりしてユーザに煩わしさを感じさせることなく、必要な処理を確実に実施させることができる。
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。