(57)【要約】【課題】複数のユーザが、PCやサーバに蓄えられた情報を参照しながら、同期的なコミュニケーション (打ち合わせ、立ち話など)をいつでもどこでも行うことができ、その際、各ユーザが自分の意思に基づいて、参照された情報を操作することができるような協調作業空間を生成する。【解決手段】図示のＨＭＤは、実在する空間に、生成した仮想空間に係る画像を重畳させて表示する装着型表示装置である。近隣にある他のＨＭＤを検出するＨＭＤ検知部２０６、検知した他のＨＭＤに対し、仮想空間の情報を送受信する通信制御部２０５を備える。また、実在空間に存在する平面を検出する平面検出手段、送受信した仮想空間の情報に基づいて生成した画像を変形させる変形処理手段として機能する3-D演算部２０３、実在空間の平面上に変形させた画像を重畳させて表示する制御を行う表示制御部２０４を備える。【選択図】図８
2010217719.tif 000002
【特許請求の範囲】
【請求項１】
実在する空間に、生成した仮想空間に係る画像を重畳させて表示する装着型表示装置であって、
所定の範囲内にある他の装着型表示装置を検出する他装置検知手段と、
検知した他の装着型表示装置に対し、前記仮想空間の情報を送受信する通信手段と、
前記実在する空間に存在する平面を検出する平面検出手段と、
送受信した前記仮想空間の情報に基づいて生成した前記仮想空間に係る画像を変形させる変形処理手段と、
前記平面検出手段が検出した平面上に、前記変形処理手段が変形させた前記画像を重畳させて表示する表示手段と、
を有することを特徴とする、装着型表示装置。
【請求項２】
装置の装着者によるポインティング位置を検出するポインティング検出手段を有することを特徴とする、請求項１記載の装着型表示装置。
【請求項３】
前記ポインティング検出手段は、前記平面検出手段が検出した前記平面と、検出した前記ポインティング位置との関係に基づいて、前記装着者による前記仮想空間の情報操作のためのアクションを検出することを特徴とする、請求項２記載の装着型表示装置。
【請求項４】
実在する空間に、生成した仮想空間に係る画像を重畳させて表示する装着型表示装置の制御方法であって、
所定の範囲内にある他の装着型表示装置を検出する他装置検知工程と、
検知した他の装着型表示装置に対し、前記仮想空間の情報を送受信する通信工程と、
前記実在する空間に存在する平面を検出する平面検出工程と、
送受信した前記仮想空間の情報に基づいて生成した前記仮想空間に係る画像を変形させる変形処理工程と、
前記平面検出工程にて検出した平面上に、前記変形処理工程にて変形させた前記画像を重畳させて表示させる表示制御工程と、
を含むことを特徴とする、装着型表示装置の制御方法。
【請求項５】
装着型表示装置を、
所定の範囲内にある他の装着型表示装置を検出する他装置検知手段と、
検知した他の装着型表示装置に対し、仮想空間の情報を送受信する通信手段と、
実在する空間に存在する平面を検出する平面検出手段と、
送受信した前記仮想空間の情報に基づいて生成した前記仮想空間に係る画像を変形させる変形処理手段と、
前記平面検出手段が検出した平面上に、前記変形処理手段が変形させた前記画像を重畳させて表示する表示手段として機能させることを特徴とする、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装着型表示装置、その制御方法及びプログラムに関し、特に、物理環境側に特別な電子機器を設置したり埋め込んだりしなくても、人と人とがいつでもどこでも密な同期コミュニケーションをとれるようにするための空間を生成する技術に関するものである。
【背景技術】
【０００２】
近年、PC (Personal Computer)、PDA (Personal Digital Assistant)、携帯電話端末などの情報通信機器、並びにメーリングリスト、電子掲示板、Wikiなどの情報伝達・共有のためのメディアが、ワークプレース環境において広く利用されるようになった。また、有線・無線LAN (Local Area Network)、携帯電話網などの通信基盤は、オフィス環境のみならず、屋内外を問わず至るところに整備されるようになった。その結果、情報通信機器を利用した遠隔地との情報共有やコミュニケーションが、時間的・空間的制約を克服する手段として急速に利用されるようになった。
【０００３】
このような「非同期コミュニケーション」を実現するツールの利用が盛んになっている状況にもかかわらず、複数人が同じ場所に集まり、互いに対面しながら対話や協調作業を行う「同期コミュニケーション」は、様々なビジネスの場面で依然と重要視されている。例えば、アイディア発想や高度な意思決定を要する会議において、各参加者の意見の主張・交換を通じて、目的を達成することが通例となっている。また、情報洪水やデジタルデバイド等の問題から、電子掲示板に掲示された情報を見落とす人が出るのは避けられないため、確実に再確認や周知徹底をするために、人を一箇所に集めることも頻繁に行われている。
【０００４】
業務の内容が高度化・専門化している昨今においては、その目的を達成するためには、PCデスクトップやWebサイトなどの仮想空間に蓄えられた情報を参照しながら密度の濃い同期コミュニケーションをとることが不可欠となってきている。このような状況から、同期コミュニケーションにおける理解の浸透・共有のために、複数人での情報の共有・参照を支援するためのツールが多数提案されている。ここでは、それらのツールの概要と問題点を、以下列挙する。
【０００５】
１．情報を表示するための大画面ディスプレイ・プロジェクタ
会議室のように、主に複数の人が集まって議論を交わすための場所で利用されている。しかし、ロビー、廊下、休憩室などのオフィス内のあらゆる場所で利用できる訳ではない。また、このような大型の表示装置をオフィス内のあらゆる場所に設置するのは、膨大なコストを要すること、建造物の所有権の関係で、利用者がこのような装置を自由に設置する権限を持てない場合があることなどから、現実的ではない。
【０００６】
２．ノートPC・携帯電話・HHD (Hand-Held Display)・HHP (Hand-Held Projector)
上記のような大型の表示装置が利用できない公共の場所で、特に個人的な情報アクセスを行うには有効である。しかし、画面が小さい、情報のハンドリングが困難、HHPの場合は装置の把持のために少なくとも片手を要するなどのユーザインターフェース上の制約があるため、複数人でコミュニケーションをとるのには不向きである。
【０００７】
また、上記の2つの従来技術は、共にセキュリティの問題を抱えている。廊下や喫茶店のような公共の場所において、上記のような装置を用いて、限られた関係者にのみ公開可能な情報を表示することは、機密性の観点から好ましくない。
【０００８】
以上で述べた問題点を克服できる従来技術として、以下のように拡張現実感 (Augmented Reality、以下ARと略す)を用いた技術が挙げられる。
【０００９】
１．オブジェクト検証方法及び拡張現実感ディスプレイシステム (米ゼロックス コーポレーション)
特許文献１には、現実世界に存在する紙やパネルの上に、仮想情報 (アプリケーション画面)をフィットするように重畳表示することにより構成された拡張現実感ディスプレイシステムについて記載がある。アプリケーション画面を表示する領域は、カメラ付きHMDで捉えた映像から検出された紙面の4隅により決定される。また、アプリケーション画面は、4隅の画像座標から算出された紙面の向きに応じて変形され、HMD (Head Mounted Display)に上乗せされる。また、アプリケーション画面が仮想表示された紙面上で指押しを行う、紙面を動かすなどの操作により、当該アプリケーションに対してコマンドを発行することも示唆されている。
【００１０】
２．Studierstube (グラッツ工科大、ウィーン工科大)
Studierstubeは、2次元のデスクトップUIと同等の強力な3次元ユーザインターフェース環境を追究するという包括的なプロジェクトであり、デスクトップ環境における生産性向上のほか、協調作業の効率向上の両方をも支援することを目的としている。このプロジェクトにおいて、拡張現実感 (Augmented Reality、以下ARと略す)を協調作業向けユーザインターフェースに応用した、PIP (Personal Interactive Panel)という研究成果が既に発表されている（非特許文献１）。
【００１１】
また、非特許文献２に記載の技術も開示されている。
このシステムでは、空間上に位置と姿勢を追跡可能なペンとパネルを、同じく位置と姿勢を追跡可能な透過型HMD (Head Mounted Display)で眺めると、3次元コンテンツが透過型HMDの画面上に表示される。各ユーザが装着している透過型HMDには、各ユーザの視点位置・姿勢に応じた見え方になるよう、当該3次元コンテンツがレンダリング表示されるようになっている。また、透過型HMDを装着することにより、パネル上にはスライダコントローラ、ボタンなどのUI (User Interface)部品がレンダリング表示されているように見える。各ユーザは、各自が保持するパネル上に重畳表示されたUI部品をペンで操作することにより、3次元コンテンツの拡大・縮小や回転などを行うことができる。ここで、透過型HMD、パネル、ペンの位置・姿勢を追跡するために、作業環境側に磁気検出型のモーショントラッカを設置する。
【００１２】
しかし、以上の従来技術は、その構成・動作において、以下に述べるような問題点を抱えている。
【００１３】
１．オブジェクト検証方法及び拡張現実感ディスプレイシステム (米ゼロックス コーポレーション)
個人作業の支援を目的としており、他人とのコミュニケーションを支援するものではない。
【００１４】
２．Studierstube (グラッツ工科大、ウィーン工科大)
まず、環境側にモーショントラッカを設置する必要があるため、このシステムを使用できるのは特殊な環境下に限定される。また、複数のユーザがパネルを用いて、同時に共有コンテンツの操作 (拡大縮小等)を行ったときの不具合 (操作結果の矛盾など)が生じる可能性がある。この不具合を解決策として、複雑な同時実行制御などの自動処理機構が挙げられるが、複数のユーザの意図を完全に汲み取った機構を実現するのは非常に困難である。また、操作権限を1人のユーザに限定するなどの手動操作も解決策として考えられるが、操作権限の切り替えの度に面倒な操作が必要となり、作業効率を低下させる。
【発明の概要】
【発明が解決しようとする課題】
【００１５】
そこで本発明は、上記実情に鑑みて、複数人のユーザが、PCやサーバに蓄えられた情報を参照しながら、同期的なコミュニケーション (打ち合わせ、立ち話など)をいつでもどこでも行うことができ、その際、各ユーザが自分の意思に基づいて、参照された情報を操作することができるような協調作業空間を生成することを可能にする装着型表示装置、その制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記目的を達成するために下記の構成を備える装着型表示装置、その制御方法及びプログラムを提供する。
【００１７】
本発明に係る装着型表示装置は、実在する空間に、生成した仮想空間に係る画像を重畳させて表示する装着型表示装置であって、所定の範囲内にある他の装着型表示装置を検出する他装置検知手段と、検知した他の装着型表示装置に対し、前記仮想空間の情報を送受信する通信手段と、前記実在する空間に存在する平面を検出する平面検出手段と、送受信した前記仮想空間の情報に基づいて生成した前記仮想空間に係る画像を変形させる変形処理手段と、前記平面検出手段が検出した平面上に、前記変形処理手段が変形させた前記画像を重畳させて表示する表示手段と、を有することを特徴とする。
【００１８】
本発明に係る装着型表示装置の制御方法は、実在する空間に、生成した仮想空間に係る画像を重畳させて表示する装着型表示装置の制御方法であって、所定の範囲内にある他の装着型表示装置を検出する他装置検知工程と、検知した他の装着型表示装置に対し、前記仮想空間の情報を送受信する通信工程と、前記実在する空間に存在する平面を検出する平面検出工程と、送受信した前記仮想空間の情報に基づいて生成した前記仮想空間に係る画像を変形させる変形処理工程と、前記平面検出工程にて検出した平面上に、前記変形処理工程にて変形させた前記画像を重畳させて表示させる表示制御工程と、を含むことを特徴とする。
【００１９】
本発明に係るプログラムは、装着型表示装置を、所定の範囲内にある他の装着型表示装置を検出する他装置検知手段と、検知した他の装着型表示装置に対し、仮想空間の情報を送受信する通信手段と、実在する空間に存在する平面を検出する平面検出手段と、送受信した前記仮想空間の情報に基づいて生成した前記仮想空間に係る画像を変形させる変形処理手段と、前記平面検出手段が検出した平面上に、前記変形処理手段が変形させた前記画像を重畳させて表示する表示手段として機能させることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、複数のユーザが、PCやサーバに蓄えられた情報を参照しながら、同期的なコミュニケーション (打ち合わせ、立ち話など)をいつでもどこでも行うことができ、その際、各ユーザが自分の意思に基づいて、参照された情報を操作することができるような協調作業空間を生成することが可能になる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施形態の適用例を説明するための図である。
【図２】本発明の第１の実施形態に係る装着型表示装置のハードウェア及びソフトウェア構成を示すブロック図である。
【図３】本発明の第１の実施形態に係る装着型表示装置の表示部の構成を説明するための概念図である。
【図４】本発明の第１の実施形態に係る装着型表示装置の入力インターフェースの構成を説明するための概念図である。
【図５】本発明の第１の実施形態に係る装着型表示装置のカメラの構成を説明するための概念図（その１）である。
【図６】本発明の第１の実施形態に係る装着型表示装置のカメラの構成を説明するための概念図で（その２）ある。
【図７】本発明の第１の実施形態に係る装着型表示装置のカメラの内部及び外部パラメータのデータ構造を説明するための図である。
【図８】本発明の第１の実施形態に係る装着型表示装置の機能構成を示すブロック図である。
【図９】本発明の第１の実施形態に係る装着型表示装置の基本動作を示すシーケンス図である。
【図１０】本発明の第１の実施形態において各々の装着型表示装置へ仮想画面を表示させる動作を説明するための概念図（その１）である。
【図１１】本発明の第１の実施形態において各々の装着型表示装置へ仮想画面を表示させる動作を説明するための概念図（その２）である。
【図１２】本発明の第１の実施形態の仮想画面の重畳表示処理の流れを示すフローチャート（ＨＭＤ１側）である。
【図１３】本発明の第１の実施形態の映像処理部２０２が格納する特徴点の画像座標のデータ構造を説明するための概念図である。
【図１４】本発明の第１の実施形態の変形パラメータの算出処理の流れを示すフローチャートである。
【図１５】本発明の第１の実施形態の３−Ｄ演算部が格納する特徴点群の３次元座標の計算結果のデータ構造を説明するための概念図である。
【図１６】本発明の第１の実施形態の３−Ｄ演算部が格納する位置・姿勢の計算結果並びに平面パラメータの計算結果のデータ構造を説明するための概念図である。
【図１７】本発明の第１の実施形態における仮想画面の表示領域の決定方法を説明するための概念図である。
【図１８】本発明の第１の実施形態のフラッシュメモリに格納されるＬＣＤの画素数及び仮想カメラの内部パラメータの一例を示す図である。
【図１９】本発明の第１の実施形態の仮想画面の重畳表示処理の流れを示すフローチャート（ＨＭＤ２側）である。
【図２０】本発明の第１の実施形態のユーザ操作検出動作を説明するための概念図である。
【図２１】本発明の第２の実施形態のユーザ２の視野に入る光景の一例を示す図である。
【図２２】本発明の第２の実施形態の仮想画面の重畳表示処理の流れを示すフローチャート（ＨＭＤ２側）である。
【図２３】本発明の第２の実施形態のＨＭＤ２における仮想画面の表示領域の決定方法を説明するための概念図である。
【発明を実施するための形態】
【００２２】
以下、本発明を実施するための形態について図面を参照しながら説明する。なお、本実施形態は、具体的に次のような利用シナリオ（適用例）を想定しているが、本発明を限定するものではない。
【００２３】
（利用シーン）
本発明が想定している利用場所は、壁、天井、床、道路、また机、椅子、板などの人工物のように、何の変哲も無い平面が存在する実空間である。実空間における平面側には、人やHMDを検知するためのセンサ類は一切取り付けられていない。以下で、具体的な利用シーンの一例を説明する。
【００２４】
図1(a)のように、Aさん (図の左側の女性)が普段あまり顔を合わせない知り合いであるBさん (図の右側の男性が)と廊下でバッタリ会ったという状況を考える。2人は現在全く別の部署に配属されているが、以前一緒に仕事をする機会があり、今でもお互いの仕事の状況や専門分野を知っているような間柄にある。このとき、Aさんが仕事である課題を抱えており、Bさんがその課題解決のための専門知識を持っているとする。AさんはBさんと会ったことをチャンスと思い、その課題について相談しようとするものの、あまりに内容が細か過ぎて、その場の立ち話で課題の内容を伝えることは不可能であると気付いていた。Aさんは、Bさんを自席に連れて行き、資料をBさんに見せながら課題の内容を説明しようと考えたが、BさんがAさんの席まで移動する時間の余裕はなさそうであった。また、後でBさんに課題の内容をメールする旨だけ伝えて、この場は終わりにすることも考えたが、自席に戻った頃には他の業務に忙殺されてしまい、Bさんにメールを送るどころではなってしまうのではと心配になった。そこで2人は、携帯していたHMDを装着することにより、廊下の壁上に重ね合わせて表示された「仮想的なPC画面(以下、仮想画面)」を共有しながら、その場でその課題について話し合うことにした。Aさんは、仮想画面に映されたアプリケーション画面を操作して、現在抱えている課題を説明するための資料にアクセスした。Bさんは、仮想画面において表示された資料の内容、及びAさんがその資料のどこをポインティングしているのかを参照することにより、その場で課題の内容を理解すると共に、的確なアドバイスをAさんに与えることができる。
【００２５】
図1(b)は、本発明が効果を発揮する別の利用シナリオを示す図である。複数名のマネージャ (図では2人だが)が、極秘である次の経営戦略について急遽打ち合わせることになったという状況を考える。このとき、全ての会議室は予約されており空きがなかったため、社内のオープンスペースに並んでいる机を1つ占拠し、そこでノートPCを用いて文書を開きながら議論を進めようと考えた。しかし、その文書は一般の社員に公開できない機密性の高いものであったため、ノートPCを用いることは断念した。そこで、彼らは携帯していたHMDを装着することにより、オープンスペースに設置されている机を仮想画面として活用し、その上で文書を開くことにした。この仮想画面は、HMDを装着していない者には一切見えないため、機密性を確保した状態で意思決定を迅速に進めることができる。
【００２６】
（実施の形態1）
本実施の形態における装着型表示装置の一例であるHMDのハードウェア構成、ソフトウェア構成、及び動作について、順に説明する。
【００２７】
（ハードウェア構成）
本実施の形態における装着型表示装置の一例として説明するHMDのハードウェア構成を、図2に示す。以下、図2における各構成の目的・動作について説明する。
【００２８】
HMDは、CPU108、GPU109、フラッシュメモリ111、DRAM110、無線LANアダプタ105、LCD104、赤外センサ106、入力インターフェース107、第1カメラ101/第2カメラ102等を有する構成である。
【００２９】
CPU108 (Central Processing Unit)は、フラッシュメモリに格納された各種プログラム113の処理及び制御、並びに各種演算を行う。
【００３０】
GPU109 (Graphics Processing Unit)は、後述するLCD104に表示する画面情報を生成する処理、並びに第1カメラ101及び第2カメラ102により取得された映像信号に対して、各種画像処理を行う。
【００３１】
フラッシュメモリ111は、OS112 (Operating System)や、後述する動作のために必要とされる各種プログラム113の記憶領域として利用される。また、取得されたデータを記録するための領域としても使用される。なお、本実施の形態では、Microsoft Windows CE（登録商標）をOS112として使用する。
【００３２】
DRAM110 (Dynamic Random Access Memory)は、フラッシュメモリ111に格納されたOS112及び各種プログラム113の動作に必要なCPU108の作業領域として利用される。
【００３３】
無線LANアダプタ105は、他のHMDとのデータ通信、イントラネットやインターネット等へのデータアクセスに使用される。
【００３４】
LCD104 (Liquid Crystal Display)は、装着者に、画像、テキスト文書などの画面情報を表示するためのディスプレイとして使用される。ここで、本実施の形態におけるHMDの表示部分の構成を、図3に示す。図3に示すように、LCD104に表示された仮想世界からの画面情報をハーフミラー1041により屈折させ、ハーフミラー1041を透過した現実世界の光景の適切な位置に重畳させる方式である。
【００３５】
赤外センサ106は、赤外線を発信・受信するためのセンサである。近隣にある他のHMDの検知、及びIPアドレスの交換に使用される。
【００３６】
入力インターフェース107 (以下、入力I/F107とする)は、装着者により、図4に記載の移動ボタン1073、決定ボタン1074、開始/終了ボタン1072、電源ボタン1071を介してなされる操作を受け付けて、CPU108に伝えるインタフェース機構である。移動ボタン1073は画面上に表示されているカーソルを上下左右に移動させるために使用される。決定ボタン1074はコマンドの発行等の決定指示をCPU108に伝えるために使用される。開始/終了ボタン1072は他のHMDとの通信による協調作業空間生成の開始/終了を制御するために使用される。電源ボタン1071は装着型表示装置の電源103をON/OFFするために使用される。
【００３７】
第1カメラ101/第2カメラ102は、HMDにおいて装着者の両眼の略上部に設置される小型カメラであり、装着者から見て前方の現実世界の光景を撮影するのに使用される。取得された映像信号は、A/D変換器を介してデジタル化され、DRAM110に格納される。
【００３８】
ここで、図5に基づき、第1カメラ101及び第2カメラ102の光学系であるカメラ座標系 (xyz座標系)と、画像座標系 (uv座標系)との関係を説明する。図5において、各々のカメラは、z軸を光軸とする中心射影モデル (perspective projection model) で記述される。すなわち、カメラ座標系から見て(X, Y, Z)という座標にある空間上の点Aは、点Aとカメラ座標系の光学中心oとを結んだ直線と画面との交点である点Bに結像される。この点Bの画像座標は、カメラ座標系の光軸と画面との交点の画像座標 (u0, v0)、及びカメラ座標系の焦点距離fをu軸、v軸方向の画素換算値に変換した (fu, fv)という値により決定される。(u0, v0)及び(fu, fv)は、カメラの内部パラメータと呼ばれている。
【００３９】
一方、図6は基準座標系から見た、第1カメラ101及び第2カメラ102の位置関係を表す図である。図6において、基準座標系は、双方のカメラの光学中心oを結ぶ線 (ベースライン)上の中間点に原点Oを、ベースラインと一致する向きにX軸を持つ座標系である。また、ベクトルt1は、基準座標系から見た第1カメラ101の光学中心の位置を、回転行列R1は、基準座標系から見た第1カメラ101のカメラ座標系の姿勢を表す。t2及びR2についても同様である。これらのベクトルt及び回転行列Rは、カメラの外部パラメータと呼ばれている。
【００４０】
上記で説明した内部パラメータ及び外部パラメータは、カメラキャリブレーションと呼ばれる公知技術 (例えば、非特許文献３)により、求めることが可能である。本実施の形態では、第1カメラ101及び第2カメラ102の内部パラメータ及び外部パラメータは、製造段階の校正作業により既知であり、図7に示すようにYAML (YAML Ain't Markup Language)形式のファイルとして、フラッシュメモリ111に記録されているものとする。また、図7に示すように、回転行列Rの代わりに四元数 (quaternion)を用いて、基準座標系から見た各々のカメラのカメラ座標系の姿勢を、q0〜q3という4つの定数で記述する。
【００４１】
（ソフトウェア構成）
本実施の形態の装着型表示装置の一例として説明するHMDのソフトウェア構成を、図8に示す。図示した各機能部は、図2に示したハードウェア、又は、当該ハードウェア及びこれを利用して所定の情報処理を実現するソフトウェアプログラムの協働によって実現する手段である。以下、図8における各機能部の目的及び動作について説明する。
【００４２】
図8において、HMDは、メイン制御部201、入力I/F制御部207、HMD検知部206、通信制御部205、表示制御部204、映像処理部202、3-D演算部203を有する。
【００４３】
メイン制御部201は、本実施の形態に記載のHMDの動作全体に係る制御を行う。
【００４４】
入力I/F制御部207は、入力I/F107の操作によって発生したイベントをメイン制御部201に伝える制御を行う。
【００４５】
HMD検知部206は、協調作業空間が生成されていないときに、開始/終了ボタン1072が押されたことをメイン制御部201から通知されると、赤外センサ106に対して赤外線を発信するよう指示する。また、赤外センサ106が他のHMDから発信された赤外線を受信したとき、HMDのデバイスIDとIPアドレスを発信元の他のHMDに対して送信する。
【００４６】
通信制御部205は、他のHMDとの接続及びデータ交換、TCP/IP等のプロトコルによるインターネットやイントラネットへのアクセスを実行するよう、無線LANアダプタ105を制御する。
【００４７】
表示制御部204は、LCD104に表示する画面や文字の生成処理、3-D演算部203の処理結果に応じた画面変形処理など、LCD104表示全般に関わる処理を制御する。
【００４８】
映像処理部202は、第1/第2カメラ102による取得された映像に対し、特徴抽出、対応点追跡などの画像処理を高速に行うよう、GPU109を制御する。
【００４９】
3-D演算部203は、当該HMDの映像処理部202の処理結果、必要に応じて通信制御部205が取得した他のHMDの映像処理部202の処理結果を用いて、第1/第2カメラ102が捉えた映像の3次元計算 (奥行き復元など)、及び当該HMDの位置・姿勢パラメータを算出する。
【００５０】
（HMDの動作）
次に、本実施の形態におけるHMDにおいて実現される、図8に示した各機能部の各種動作の例について図面を参照しながら説明する。
【００５１】
（HMDの基本動作）
ここでは簡単のためユーザ数を2人とし、2人のユーザがHMD 1、HMD 2をそれぞれ装着したときの協調作業空間システムの動作を、図9のシーケンス図に基づいて説明する。図9は、HMD１の開始/終了ボタンの押下に係る処理の一例を示すシーケンス図である。図9はHMD１が正常に動作した場合のみを示したものであり、例外やエラー発生時の動作については、下記の説明中に記載することとする。また、各HMDは、作業空間生成状態、待機状態という2つの状態を持つが、図9のシーケンス図に記載の動作が開始される直前は、各HMDは待機状態であると仮定する。
【００５２】
まず、メイン制御部201が起動する（ステップＳ９０１）。HMD 1の入力I/F制御部207は、HMD 1の開始/終了ボタン1072を押下されたのを検知すると、その旨をメイン制御部201に通知する。通知を受けたメイン制御部201は起動され、HMD 1の状態が現在待機状態であることに基づいて、HMD検出部206に対して近隣にある他のHMDの探索を開始するよう命令する。
【００５３】
続いて、ステップＳ９０１の動作の直後にメイン制御部201は、HMD 1に予めインストールされているVNC (Virtual Network Computing)サーバを起動する（ステップＳ９０２）。
【００５４】
続いて、HMD 1のHMD検出部は、自分の近隣にある待機状態のHMDを探索するために、赤外センサ106から赤外信号を発信する（ステップＳ９０３）と共に、他のHMDからの赤外信号の返信待ちループに入る。この赤外信号には、HMD 1のSSID (Service Set ID)とIPアドレスとが含まれる。ここで、例えばHMD1を装着するユーザ1の傍にHMD2を装着するユーザ2がいた場合、HMD 2のHMD検出部は、赤外センサ106を介して、HMD2のSSID及びIPアドレスが含まれた赤外信号を返信する（ステップＳ９０４）。これにより、HMD 1は当該SSIDとIPアドレスを持つHMD 2を検知することができる。
【００５５】
一方、HMD 1の近隣に他のHMDが存在しない場合、HMD 1の赤外センサ106に返信される赤外信号は存在しない。このときHMD 1は、赤外信号の発信後一定時間が経過した場合に、返信待ちループを終了し、図9のステップＳ９０３以降の処理を全て中止する。
【００５６】
続いて、HMD 1の通信制御部205は無線LANアダプタ105を介して、HMD 2から受信したIPアドレスに対して、接続開始のための制御パケットを送信する（ステップＳ９０５）。これに対し、HMD 2の通信制御部205は無線LANアダプタ105を介して、接続の許可する旨のパケットをHMD 1に返信する（ステップＳ９０６）。これにより、無線LANによる接続が確立される。このとき、双方のHMDの通信制御部205は、それぞれのメイン制御部201に対して、通信が確立した旨を通知する。双方のHMDのメイン制御部201は、通信が確立した旨の通知に基づいて、HMDの状態を待機状態から作業空間生成状態に変更する。
【００５７】
一方、HMD 1の通信制御部205がHMD 2から接続拒否を示すパケットを受信する、又は制御パケット送信後一定時間経過してもHMD 2からの返信が無い場合には、図9のステップＳ９０６以降の処理を全て中止する。
【００５８】
続いて、HMD 1及びHMD 2とも、LCD104上に仮想画面を表示し続けるループに入る（ステップＳ９０７）。この動作の詳細については後述する。またこの動作は、ユーザ1がHMD 1の開始/終了ボタン1072を押下するまで継続される。
【００５９】
続いて、HMD 1の入力I/F制御部207は、ユーザ1がHMD 1の開始/終了ボタン1072を押下したのを検知すると、その旨をメイン制御部201に通知する（ステップＳ９０８）。メイン制御部201は、そのときHMD 1が作業空間生成状態にあったことに基づいて、映像処理部202に対して第1カメラ101及び第2カメラ102による映像取得を、表示制御部204に対して仮想画面の重畳表示を、また通信制御部205に対して近隣にあるHMDとの通信を、それぞれ終了するよう命令する。
【００６０】
続いて、上記の終了の命令を受けて、HMD 1の映像処理部202は、第1カメラ101及び第2カメラ102による映像取得を終了する。
同様にして、HMD 1の表示制御部204は、仮想画面の重畳表示を終了する。
同様にして、HMD 1の通信制御部205は、無線LANアダプタ105を介して、HMD 2から受信したIPアドレスに対して、接続終了のための制御パケットを送信する（ステップＳ９０９）。これに対し、HMD 2の通信制御部205は無線LANアダプタ105を介して、接続終了を許可する旨のパケットをHMD 1に返信する（ステップＳ９１０）。これにより、無線LANによる接続が切断され、HMD 2のLCD104上における仮想画面の表示も中止される。
このとき、双方のHMDの通信制御部205は、それぞれのメイン制御部201に対して、通信が切断された旨を通知する。双方のHMDのメイン制御部201は、通信が中断された旨の通知に基づいて、HMDの状態を作業空間生成状態から待機状態に変更する。
【００６１】
（仮想画面の重畳表示の動作）
図9のシーケンス図のステップＳ９０７における、各HMDの仮想画面の重畳表示の動作について、詳細に説明する。
【００６２】
まず、図10乃至図11に基づいて仮想画面の表示形態の一例について説明する。図10乃至図11は、それぞれHMD 1、HMD 2を装着している2人のユーザが、現実空間の壁上に重畳して表示された仮想画面を参照しているときの仮想画面の表示形態の一例を示す。図10(a)は、2人のユーザが現実空間の壁に対してやや斜めに向いた状態で、仮想画面の特定箇所を互いに参照している様子を表す図である。また図10(b)は、図10(a)に示すHMD 1を装着したユーザ1の視野に入る光景を表した図である。図10(b)に示すように、HMD 1には、ユーザ1の壁に対する向きに応じて、本来矩形である仮想画面が遠近法の原理により歪んだ形で表示される。
【００６３】
図10(b)に示すように、HMD 1のLCD104には、現実空間の壁に対して正面から画面が投射されたかのような仮想画面の像が形成・重畳して表示される。この動作の一例を、図11を用いて説明する。HMD 2との協調作業空間が生成されたとき (初期状態)のHMD 1の仮想画面を図11(a)とする。図11(a)に示す初期状態から、ユーザ1が向きを変えずに壁から遠ざかると、HMD 1の仮想画面は図11(b)のように縮小されて表示される。また、図11(a)に示す初期状態からユーザ1が向きを変えずに左に移動すると、HMD 1の仮想画面は図11(c)のように、左端が切れた形で表示される。同様に、図11(a)に示す初期状態からユーザ1が向きを変えずに右に移動すると、HMD 1の仮想画面は図11(d)のように、右端が切れた形で表示される。このように、HMD 1の仮想画面は、ユーザ1の移動や向きの変化に伴って、随時表示形態が変化する。このように、ユーザ1は、壁上の模様やユーザ1自身の手などの現実世界の物体と、プロジェクタから正面投射されたかのような仮想画面とが融合されたかのような光景を目にすることになる。
【００６４】
これに対し、ユーザ2が装着しているHMD 2に形成される仮想画面は、図10(c)のように、双方のユーザの位置・向きに関わらず、一定の大きさ (フルスクリーン)で矩形表示される。また、HMD 2の仮想画面においては、ユーザ1が指し示す仮想画面上の位置に、指カーソルが表示される。
以上を実現するための動作を、図12乃至図20を用いて、以下詳細に説明する。
【００６５】
（HMD1における仮想画面の重畳表示のための動作）
図12のフローチャートに基づき、HMD 1における仮想画面の重畳表示のための動作を説明する。
【００６６】
まず、映像フレームの取得を行う（ステップＳ１２０１）。図9のシーケンス図のステップＳ９０５により、HMD 2との無線LAN接続が確立すると、HMD1のメイン制御部201は映像処理部202に対して、映像フレームの取得の開始を命令する。これに対して映像処理部202は、第1カメラ101及び第2カメラ102による撮影を開始し、各々のカメラにより取得された映像フレームをDRAM110に格納する。
【００６７】
続いてステップＳ１２０２へ移って、映像処理部202はGPU109を用いて、ステップＳ１２０１で取得された第1カメラ101の映像フレーム (以下、現フレームと呼ぶ)と、その1回前に取得された第1カメラ101の映像フレーム (以下、前フレームと呼ぶ)との間で、映像中の対象物の追跡を行う。追跡は具体的にいうと、例えば、CV (Computer Vision)の研究で一般的に使用されているKLTトラッカ (Kanade-Lucas-Tomasi Tracker)を利用して、対象物に相当する前フレームにおける特徴点群が現フレームにおいてどの画像座標に位置するかを求めることによって実現する。ただし、映像フレーム取得が初回である場合など、前フレームの特徴点群が存在しない場合、対象物の追跡は実行されない。
【００６８】
次に、映像処理部202はGPU109を用いて、現フレームにおける新たな特徴点群を抽出する。特徴点の抽出はヘシアン行列などの既存の方法を用いることによって実現できる。ここでは、既に存在する現フレームの特徴点と座標が同一でない特徴点のみを新たに追加する。
【００６９】
次に、映像処理部202はGPU109を用いて、第1カメラ101の現フレームの特徴点群が、第2カメラ102の現フレームにおいてどの画像座標に位置するかを求める、対応付けの処理を行う。ここで、本実施の形態では図7で示したように、双方のカメラの内部パラメータ及び外部パラメータが既知であるため、エピポーラ拘束 (epipolar constraint)を用いて、第1カメラ101の現フレームにおける特徴点に対応する第2カメラ102の現フレーム上の点の座標を、線上探索により高速に求めることができる。
【００７０】
最後に映像処理部202は、以上で得られた第1カメラ101及び第2カメラ102の現フレーム上の特徴点群の画像座標を、DRAM110に格納する。そのデータ構造を、図13に示す。図13に示すように、第1カメラ101と第2カメラ102それぞれに対する、現フレームを含めて過去30フレーム分の特徴点群の座標データを格納するためのポインタ配列を示すptr_cam1、ptr_cam2、当該ポインタ配列の現在の要素番号を示す変数cur_pos (値域は0〜29)をデータ構造として持つ。更に、ptr_cam1、ptr_cam2の各要素は、属性u、vを持つ固定長配列を指し示すようになっている。例えば、cur_posの値が1のとき、映像処理部202は、第1カメラ101の現フレームの特徴点群をptr_cam1[1]が指す固定長配列の属性(u, v)に、第2カメラ102の現フレームの特徴点群をptr_cam2[1]が指す固定長配列の属性(u, v)に、それぞれ格納する。
【００７１】
続いてステップＳ１２０３へ移って、第1カメラ101及び第2カメラ102の現フレームの特徴点群が求まると、3-D演算部203はCPU108を用いて、仮想画面をHMD 1に変形して表示するために必要なパラメータを算出する。以下で、係るパラメータを算出するための動作を、図14のフローチャートに基づいて説明する。
【００７２】
まず、特徴点群及びカメラの３次元座標を計算する（ステップＳ１４０１）。3-D演算部203は、ステレオカメラによる三角測量の原理に基づき、第1カメラ101と第2カメラ102の現フレームに共通に存在する特徴点群を用いて、基準座標系を基準にした3次元座標(x, y, z)を計算する。
【００７３】
また、3-D演算部203は、第1カメラ101及び第2カメラ102の前フレーム及び現フレームの計4枚の映像フレームを用いて、前フレームの基準座標系を基準としたHMD 1の位置・姿勢を算出する。具体的には、3-D演算部203は、図13に示すポインタ配列ptr_cam1及びptr_cam2のcur_pos-1 (ただし、cur_posが0の場合は29)及びcur_pos番目の要素が指し示す特徴点の画像座標を読み出して、公知技術である移動ステレオ (motion stereo)法に基づいて、前フレーム取得時点と現フレーム取得時点の間の基準座標系の位置・姿勢の変化を算出する。
【００７４】
以上の計算が終わると、3-D演算部203は、特徴点群の3次元座標の計算結果をDRAM110に格納する。そのデータ構造を、図15に示す。図13と同様に、現フレームを含めて過去30フレーム分の特徴点群の3次元座標データを格納するためのポインタ配列ptr_3dをデータ構造として持つ。更に、ptr_3dの各要素は、属性(x, y, z, plane)を持つ固定長配列を指し示すようになっている。ここで、現在の要素番号を示す変数cur_posは、図13に記載したものと共通である。また、属性(x, y, z)属性は、図6の基準座標系から見た特徴点群の3次元座標を表す。また、属性planeは、当該特徴点が仮想画面が重畳表示される壁などの現実世界の平面上に、あるか否かを示すフラグであり、平面上にあるときは1が、ないときは0が設定される。この時点で3-D演算部203は、ptr_3d[cur_pos]に対して、計算結果である3次元座標(x, y, z)を属性(x, y, z)に、さらに、値1を属性planeに格納する。
【００７５】
続いてステップＳ１４０２に移って、以上で算出された3次元座標(x, y, z)を用いて、仮想画面の重畳表示に用いる現実世界の平面のパラメータを計算する。ここで、平面のパラメータは、基準座標系を基準にした平面方程式
ax + by + c = d    (a^2 + b^2 + c^2 = 1、c > 0)
の係数a乃至dで表される。
【００７６】
双方のカメラで撮影された映像フレーム中には、ユーザ自身の腕など、仮想画面の重畳表示に用いる平面以外の物体が映り込むこともあり、これらが特徴点として抽出されてしまうこともある。このような場合を想定して、3-D演算部203は、公知技術であるRANSACなどのロバスト推定を用いて、まず各特徴点が平面上にあるか否かを判定する。そして3-D演算部203は、平面上にないと判定された特徴点に関しては、図15のptr_3d[cur_pos]の属性planeの値を0に設定する。このようにすることで、仮想画面の重畳表示に用いる平面とユーザ自身の腕などの物体とを区別することができる。
【００７７】
次に3-D演算部203は、属性planeの値が1である3次元座標(x, y, z)のみを用いて、上記平面パラメータ(a, b, c, d)を最小自乗法により算出する。
【００７８】
以上の計算が終わると、3-D演算部203は、ステップＳ１４０１で得られたHMD 1の位置・姿勢の計算結果、並びに平面パラメータ(a, b, c, d)の計算結果をDRAM110に格納する。そのデータ構造を、図16(a)に示す。図のように、現フレームを含めて過去30フレーム分のHMD 1の位置・姿勢及び平面パラメータを格納するための固定長配列ary_locationをデータ構造として持つ。ここで、現在の要素番号を示す変数cur_posは、図13に記載したものと共通である。3-D演算部203はary_location[cur_pos]に対して、前フレーム取得時点を基準にしたHMD 1の位置を属性(tx, ty, tz)に、前フレーム取得時点を基準にしたHMD 1の姿勢を属性(q0, q1, q2, q3)に、また現フレームの基準座標系を基準にした平面パラメータを属性(a, b, c, d)に、それぞれ格納する。
【００７９】
続いてステップＳ１４０３に移って、仮想画面の表示領域を決定する。3-D演算部203は、以上で求められた平面パラメータ(a, b, c, d)に基づいて、現実世界の平面上に、あたかも矩形の仮想画面が貼り付いているかのようなグラフィックス画面を生成するために必要なパラメータを算出する。具体的には、図17のように、壁に仮想的に貼り付いている長方形を、基準座標系のXY軸と平行な画面を持つ「仮想カメラ」で撮影したときの仮想グラフィックスを生成するために必要なパラメータを算出する。
【００８０】
初期状態、すなわちユーザが開始/終了ボタン1072を押した後に最初に現フレームが取得されたとき、3-D演算部203はCPU108を用いて、仮想画面をLCD104上でほぼ全面に表示するための表示領域の初期化を行う。
【００８１】
まず3-D演算部203は、図17のように、基準座標系の原点Oと仮想カメラの画面中心(u0, v0)を通る直線が、現実空間の壁と交差する3次元座標(X0, Y0, Z0)を求める。ここで、LCD104の画素数及び仮想カメラの内部パラメータは、図18のように、YAML形式でフラッシュメモリ111に保管されている。3-D演算部203は、このファイルをフラッシュメモリ111から読み出し、仮想カメラの内部パラメータと平面パラメータ(a, b, c, d)を用いて、３次元座標(X0, Y0, Z0)の値を算出する。
【００８２】
次に3-D演算部203は、算出された３次元座標(X0, Y0, Z0)を中心に、LCD104と同じ縦横比 (4:3)を持つ「仮想長方形」を壁上に仮想的に貼り付ける。その後、この長方形を３次元座標(X0, Y0, Z0)を中心にして縦横比を保持したまま拡大縮小させ、2次元射影変換に基づいて、仮想カメラにおける長方形の形状 (通常は歪んだ四角形)を求める。
【００８３】
ここで、2次元射影変換による変換前の2次元座標(x, y)と変換後の2次元座標(x', y')との間には以下の関係が成立する。
【００８４】
【数１】
2010217719.tif 000003
【００８５】
この9つの要素h1〜h9を持つ3×3の行列は、2次元射影変換行列と呼ばれる。上式において、「≡」という記号は、両辺がスケール倍を除いて等しいという意味である。すなわち、行列の要素h1〜h9に同じ定数を掛け合わせて得られた行列も、元の行列と同じ射影変換を表す。本実施の形態では、これまでに算出された平面パラメータ(a, b, c, d)及び仮想カメラの内部パラメータにより、両者の間で成立する2次元射影変換行列を容易に算出することができる。
【００８６】
最後に3-D演算部203は、仮想長方形の像 (歪んだ四角形)がほぼ内接したときに、仮想カメラに投影される長方形の4隅の画像座標をDRAM110に格納する。そのデータ構造を、図16(b)に示す。図16(b)に示すように、現フレームを含めて過去30フレーム分の仮想画面の4隅の画像座標を格納するための固定長配列ary_screenをデータ構造として持つ。ここで、現在の要素番号を示す変数cur_posは、図13に記載したものと共通である。3-D演算部203はary_screen[cur_pos]に対して、仮想画面の左上の画像座標を属性(u_lu, v_lu)に、右上の画像座標を属性(u_ru, v_ru)に、仮想画面の左下の画像座標を属性(u_ld, v_ld)に、右下の画像座標を属性(u_rd, v_rd)に、それぞれ格納する。すなわち、仮想長方形が仮想カメラ上でほぼ内接したときの領域が、仮想画面の初期表示領域となる。
【００８７】
3-D演算部203はCPU108を用いて、前フレーム取得時点での仮想画面の表示領域に基づき、以下の動作を行うことにより、現フレーム取得時点でのLCD104上の仮想画面の表示領域を決定する。
【００８８】
まず、固定長配列ary_location[cur_pos]を参照し、前フレーム取得時点を基準にしたHMD 1の位置・姿勢及び平面パラメータ(a, b, c, d)を取得する。
【００８９】
次に、HMD 1の位置・姿勢及び平面パラメータ(a, b, c, d)と、仮想カメラの内部パラメータとに基づき、前フレーム取得時点における仮想カメラと現フレーム取得時点における仮想カメラとの間に成立する2次元射影変換行列を算出する。
【００９０】
最後に、固定長配列ary_screen[cur_pos-1] (ただし、cur_posの値が0の場合は29)を参照し、前フレーム取得時点での仮想画面の表示領域を取得する。そして、前フレーム取得時点での仮想画面の表示領域 (4隅の画像座標)に、以上で算出された2次元射影変換行列を左から掛け合わせることにより、現フレーム取得時点でのLCD104上の仮想画面の4隅の画像座標を算出する。このとき3-D演算部203は、初期状態の場合と同様に、算出された4隅の画像座標を図16(b)の固定長配列ary_screen[cur_pos]に格納する。
【００９１】
続いて図12のステップＳ１２０４へ移って、以上で求められた変形パラメータに基づき、表示制御部204はGPU109を用いて、仮想画面をHMD 1のLCD104上にレンダリングする。具体的には、本来縦横比4:3を持つ画面を、ステップＳ１４０３で決定された仮想画面の表示領域に、座標変換して表示する処理を行う。この座標変換は、2次元射影変換行列により行われる。
【００９２】
ここで、図16(b)に格納される4隅の画像座標は、負の値となったり、LCD104の縦横の画像座標の最大値を越えることがある。この場合、図11(c)や(d)のように、LCD104の画像座標の値域に収まる範囲の仮想画面のみを表示する。
【００９３】
最後にメイン制御部201は、図13のcur_posの値を1つインクリメントする。ただし、cur_posの値が29の場合は、cur_posの値を0に戻すようにする。すなわち、ptr_cam1、ptr_cam2、ptr_3d、ary_location、ary_screenは、リングバッファとして使用される。
【００９４】
以上の処理を、HMD 1の開始/終了ボタン1072が押下されるまで繰り返す（図12）。
【００９５】
（HMD2における仮想画面の重畳表示のための動作）
図19のフローチャートに基づき、HMD1との無線LAN接続が確立したときのHMD 2における仮想画面の重畳表示のための動作を説明する。
【００９６】
まず、HMD1の画面取得・表示をする（ステップＳ１９０１）。図9のシーケンス図のステップＳ９０５により、HMD 1との無線LAN接続が確立すると、メイン制御部201は、呼び出し先VNCサーバをHMD 1に設定した状態で、予めHMD 2にインストールされているVNCクライアントプログラムを起動すると共に、表示制御部204に対して、VNCクライアントプログラムが取得したHMD 1の画面情報をLCD104に表示するよう指示する。これにより、HMD 1のOS112により表示されているアプリケーション画面を、HMD 2のLCD104上で表示させることができる。このとき、図10(c)で示したように、HMD 2のLCD104上には、ユーザの指差し位置を示す指カーソルが表示されている。
【００９７】
（ユーザ1の指差しによるポインティング及びコマンドの発行の動作）
ここで、HMD 1において、ユーザ1の仮想画面上の指差しによるポインティング位置の検出と、壁と指との接触状態の識別を行う方法を、図20に基づき説明する。ここで、映像処理によりユーザの指先位置を簡単に検出できるようにするために、ユーザ1は、図20(a)のように、QRコード（登録商標）付きのリングを指先に嵌めているとする。
【００９８】
まず映像処理部202は、図20(b)のように、第1カメラ101及び第2カメラ102におけるユーザの指先像の画像座標P1、P2を求める。次に3-D演算部203は、三角測量の原理に基づき、各カメラの内部パラメータ及び外部パラメータを用いて、基準座標系を基準にした指先位置の3次元座標を算出する。次に、3-D演算部203は、指先位置の3次元座標と仮想カメラの内部パラメータに基づき、仮想カメラの画面における指先位置の画像座標Pを算出する。この段階で、ユーザ1がLCD104に表示されている仮想画面上において、どこを指し示していたのかが分かる。最後に3-D演算部203は、平面パラメータ(a, b, c, d)と指先位置の3次元座標とを用いて、指先位置と壁との間の距離を算出する。この距離が閾値未満であれば、指先と壁とが接触している状態 (接触状態)と判定し、また閾値以上であれば指先は壁から浮遊している状態 (浮遊状態)と判定する。
【００９９】
接触状態の場合、メイン制御部201は、ユーザ1の指先が仮想画面に表示されているボタン等のインターフェース上にある場合には、ユーザ1がそのボタンを押下したものとみなし、ボタンの機能に応じた処理を実行する。一方、表示制御部204は、接触状態または浮遊状態の場合、仮想画面の画像座標Pの位置に、指カーソルを表示する。
【０１００】
（実施の形態２）
実施の形態1においては、仮想画面上の表示物に対してポインティング及び操作を行うことができるのは、ユーザ1のみである。しかし、協調作業の状況によっては、その他のユーザも同様に、表示物に対する指差しや操作ができるようにすることが望ましい。本実施の形態は、係る動作を実現するためのものである。
【０１０１】
（構成）
本実施の形態における装着型表示装置の一例として説明するHMDのハードウェア構成及びソフトウェア構成は、実施の形態1と同様に、図2乃至図8に示されるような構成である。
【０１０２】
（動作）
HMDの基本的な動作について説明する。基本的には、実施の形態1と同様に、図9のシーケンス図に示される動作を行う。ただし、以下説明するように、「仮想画面の重畳表示」において、HMD 2についても映像フレームの取得や変形パラメータの計算等の処理を行う点が実施の形態1と異なる点である。また、HMD 2のメイン制御部201は、図9のステップＳ９０５で無線LAN接続が確立した直後に、呼び出し先VNCサーバをHMD 1に設定した状態で、予めインストールされているVNCクライアントプログラムを起動するものとする。
【０１０３】
以下で、図9のシーケンス図のステップＳ９０７における、各々のHMDへの仮想画面表示の動作について、詳細に説明する。
【０１０４】
実施の形態1と同様に、それぞれHMD 1、HMD 2を装着している2人のユーザが、図10(a)に示すように、壁に対してやや斜めに向いた状態で、仮想画面の特定箇所を互いに参照している状況を想定する。このとき、ユーザ1の視野に入る光景は、実施の形態1と同様に、図10(b)で表される。一方、ユーザ2の視野に入る光景は実施の形態1とは異なり、図21に示すように、ユーザ2の壁に対する向きに応じて、本来矩形である仮想画面が遠近法の原理により歪んだ形で表示される。
【０１０５】
以上を実現するHMD 2における動作を、図22のフローチャートに基づき、以下詳細に説明する。なお、HMD 1における動作は、実施の形態1と同様なので、説明を省略する。
【０１０６】
（HMD2における仮想画面の重畳表示のための動作）
まず、HMD2は映像フレームを取得する（ステップＳ２２０１）。係る動作は、実施の形態1のHMD 1における動作と同じなので、説明を省略する。
【０１０７】
続いてステップＳ２２０２に移って、特徴追跡する。係る動作は、実施の形態1のHMD 1における動作と同じなので、説明を省略する。
続いてステップＳ２２０３に移って、実施の形態1のHMD 1における動作と同様に、図14のフローチャートに示される変形パラメータの算出に係る動作を行う。この時点で、HMD 2に関しても、図13、図15、図16に示されるデータが得られる。
【０１０８】
続いてステップＳ２２０４へ移って、HMD2の通信制御部205は無線LANアダプタ105を介して、HMD 1の第1カメラ101の最新の映像フレームを取得する。
【０１０９】
続いてステップＳ２２０５へ移って、HMD2の映像処理部202は、HMD 1の第1カメラ101の映像フレームと、HMD 2の第1カメラ101の映像フレームとの間で対応付けを行う。ここで、対応付けには、元の映像フレームを縮小したフレームを用いて大まかなフレームの変位を求め、その後段階的に元の映像フレームの大きさに近づけていき、探索範囲を絞って細かな対応付けを行うという、ピラミッド画像法 (公知技術)を用いることによって実現する。
【０１１０】
続いてステップＳ２２０６へ移って、通信制御部205は、VNCクライアントプログラムを用いて、HMD 1の最新の仮想画面データを取得する。
【０１１１】
続いてステップＳ２２０７へ移って、画面の変形及び表示に係る動作を実行する。以下で、図23に基づいて、HMD2の画面の変形及び表示に係る動作を説明する。
まず通信制御部205は無線LANアダプタ105を介して、HMD 1の第1カメラ101の内部・外部パラメータ (図7)、HMD 1の仮想カメラの内部パラメータ (図18)、最新の平面パラメータ(a, b, c, d)及び最新の仮想画面の4隅の画像座標 (図16(b))を取得する。
【０１１２】
次に3-D演算部203はCPU108を用いて、前述の移動ステレオ法に基づき、ステップＳ２２０５で得られた2枚のフレーム間の特徴点群の対応関係と2つのHMDの第1カメラ101の内部パラメータとを用いて、HMD 1の基準座標系から見たHMD 2の基準座標系の位置t12及び姿勢R12を算出する。
【０１１３】
次に3-D演算部203はCPU108を用いて、t12、R12、HMD 1及びHMD 2の第1カメラ101の外部パラメータ、HMD 1及びHMD 2の仮想カメラの内部パラメータ、平面パラメータ(a, b, c, d)を用いて、両者の仮想画面の間で成立する2次元射影変換行列算出する。
【０１１４】
次に3-D演算部203は、上記2次元射影変換行列とHMD 1の仮想画面の4隅の画像座標を用いて、HMD 2における仮想画面の表示領域を算出する。
【０１１５】
最後に表示制御部204はGPU109を用いて、HMD 1の最新の仮想画面データをHMD 2のLCD104上にレンダリングする。具体的には、本来縦横比4:3を持つHMD 1の仮想画面を、以上で算出された表示領域に座標変換して表示する処理を行う。
【０１１６】
以上の処理を、HMD 1の開始/終了ボタン1072が押下されるまで繰り返す（図22）。
【０１１７】
（実施の形態３）
以上の実施の形態においては、装着型表示装置の一例としてHMDの構成・動作について説明したが、本実施の形態は、上記実施の形態に記載した動作を実行するためのプログラムである。図2の構成を持つ装着型表示装置をインターネットや社内LANに接続し、所定のサーバより上記実施の形態1または2の動作を実行するプログラムをダウンロードし、フラッシュメモリ111に保存する。例えば装着型表示装置の起動時に、OS112が当該プログラムをDRAM110上に常駐させることにより、上記実施の形態1または2の動作を、HMDに実行させる。
【０１１８】
以上説明したように、本実施の形態に係る装着型表示装置により、情報通信機器が設置されていない場所においても、必要な情報を参照・操作しながら、密な対面型コミュニケーションを実現することができる。また、所定のユーザが指し示す画面上の位置情報や操作情報を他のユーザも確認できるため、通常の大画面ディスプレイを目の前にしたときと同様の協調作業を実現することができる。
【０１１９】
また、上記実施の形態においては、各HMDを装着したユーザの位置・姿勢に応じて、共通の仮想画面を変形させて表示することにより、全てのユーザの間で指差し位置を共有することができる。また、各ユーザは、壁などの平面に指先を接触させることにより、細かいボタン操作を行わずに、簡単に表示されている情報を操作することができる。このとき、ボタン操作のタイミングは、各ユーザのジェスチャで制御できるため、プログラム側で同時実行制御、排他制御などの複雑な機構を用いる必要が無い。
【０１２０】
また、上記実施の形態においては、建物など現実世界の環境側に大規模な情報通信機器を新規に設置する必要がないため、係るコストや消費電力を低減することができる。
【０１２１】
（その他の実施形態）
なお、上記実施の形態では、2人のユーザが持つHMDの間で接続を確立すると説明したが、3人以上のユーザがHMDを装着することにより協調作業を行う場合にももちろん適用可能である。
【０１２２】
なお、上記実施の形態では、赤外センサ106を用いて近隣にあるHMDの検知を行うと説明したが、これ以外の手段を用いることも可能である。例えば、bluetooth（登録商標）のように、より検知範囲が広くかつ障害物による遮蔽の影響を受けにくい手段を用いるようにしても構わない。このとき、共に作業を行わない遠隔のユーザが持つHMDも検知されてしまう可能性があるが、その場合は画面上に検知されたHMDを一覧表示し、ユーザが協調作業空間生成の対象となるHMDを選択できるようにするとよい。
【０１２３】
なお、上記実施の形態では、各HMDは第1カメラ101、第2カメラ102の2つのカメラを有していると説明したが、カメラは1以上の任意の個数であっても構わない。例えば、HMDに内部パラメータが既知であるカメラが1個だけ備えられている場合、SFM (Structure From Motion)と呼ばれる公知技術を用いて、移動するカメラの映像に基づいて、当該カメラの位置・姿勢及び被写体の平面の向きを算出することができる。上記実施の形態で説明したような、内部パラメータ及び外部パラメータが既知であるステレオカメラによる方法に比較すると処理が複雑になるが、このような処理を高速かつ安定に行う方法が、既に公開されている (例えば、非特許文献４)。
【０１２４】
その他、表示デバイス、通信デバイス、入力デバイスなどのハードウェア、並びに特徴抽出、3-D計算等のアルゴリズム及びユーザインターフェース等のソフトウェアには、上記実施の形態で説明した以外の様々な種類のものを使用可能である。
【０１２５】
以上で示される実施の形態に基づき本発明の説明を行ってきたが、上記実施の形態にあげたその他の要素との組み合わせなど、ここで示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨を損なわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【０１２６】
１，２    HMD（装着型表示装置）
１０１    第１カメラ
１０２    第２カメラ
１０４    LCD
１０４１    ハーフミラー
１０６    赤外センサ
１０７    入力インターフェース
１１０    無線LANアダプタ
２０１    メイン制御部
２０２    映像処理部
２０３    3-D演算部
２０４    表示制御部
２０５    映像処理部
２０６    HMD検知部
２０７    入力I/F制御部
【先行技術文献】
【特許文献】
【０１２７】
【特許文献１】特開２００１−１４２６０４号公報
【非特許文献】
【０１２８】
【非特許文献１】Anton Fuhrmann et al.: "Collaborative Visualization in Augmented Reality", IEEE Computer Graphics and Applications, vol. 18, pp. 54-59, 1998
【非特許文献２】Zsolt Szalavari and Michael Gervautz: "The Personal Interaction Panel - A Two-Handed Interface for Augmented Reality", Proceedings of EUROGRAPHICS '97, pp. 335-346, 1997
【非特許文献３】J. Weng, P. Cohen, M. Herniou: "Camera Calibration with Distortion Models and Accuracy Evaluation", IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol.14, No.10, pp.965-980 (1992)
【非特許文献４】杉本茂樹, 奥富正敏: "ステレオ画像を用いた高速な平面パラメータ推定法", 情報処理学会論文誌：コンピュータビジョンとイメージメディア, Vol.48, No.SIG1(CVIM17), pp.24-34, February, 2007
【図１】
2010217719.tif 000004
【図２】
2010217719.tif 000005
【図３】
2010217719.tif 000006
【図４】
2010217719.tif 000007
【図５】
2010217719.tif 000008
【図６】
2010217719.tif 000009
【図７】
2010217719.tif 000010
【図８】
2010217719.tif 000011
【図９】
2010217719.tif 000012
【図１０】
2010217719.tif 000013
【図１１】
2010217719.tif 000014
【図１２】
2010217719.tif 000015
【図１３】
2010217719.tif 000016
【図１４】
2010217719.tif 000017
【図１５】
2010217719.tif 000018
【図１６】
2010217719.tif 000019
【図１７】
2010217719.tif 000020
【図１８】
2010217719.tif 000021
【図１９】
2010217719.tif 000022
【図２０】
2010217719.tif 000023
【図２１】
2010217719.tif 000024
【図２２】
2010217719.tif 000025
【図２３】
2010217719.tif 000026