(57)【特許請求の範囲】
【請求項１】
実空間を撮影した入力画像を取得する入力画像取得部と；
操作開始を表す第１のユーザ入力が検出された場合に、前記入力画像に映る操作子であって、仮想オブジェクトの操作のために用いられる当該操作子についての認識の結果に応じて算出される画面上の表示位置に前記仮想オブジェクトを表示させる表示制御部と；
前記第１のユーザ入力が検出された場合に、前記仮想オブジェクトと共通する仮想オブジェクトを表示するために前記操作子についての画像認識を並行して実行する他の装置へ操作開始を通知するための第１の通知信号を送信する通信部と；
を備える画像処理装置。
【請求項２】
前記第１の通知信号は、前記仮想オブジェクトを識別するための識別データ又は前記表示位置を表す位置データを含む、請求項１に記載の画像処理装置。
【請求項３】
前記通信部は、操作終了を表す第２のユーザ入力が検出された場合に、前記他の装置へ操作終了を通知するための第２の通知信号を送信する、請求項１又は請求項２に記載の画像処理装置。
【請求項４】
前記第２の通知信号は、前記表示位置を表す位置データを含む、請求項３に記載の画像処理装置。
【請求項５】
前記表示制御部は、前記通信部により他の装置から前記第１の通知信号が受信された場合にも、前記入力画像に映る前記操作子を用いて操作される前記仮想オブジェクトを前記画面に表示させる、請求項１〜４のいずれか１項に記載の画像処理装置。
【請求項６】
前記通信部により受信された前記第１の通知信号が自装置が表示すべき仮想オブジェクトに関連しない場合には、前記操作子の認識は行われない、請求項５に記載の画像処理装置。
【請求項７】
前記通信部は、前記第１のユーザ入力が検出された後、前記操作子の認識の結果において前記操作子が前記仮想オブジェクトに接したと判定された場合に、前記他の装置へ前記第１の通知信号を送信する、請求項１に記載の画像処理装置。
【請求項８】
前記通信部は、前記第１の通知信号を、共通する仮想オブジェクトを表示する一群の装置を管理する情報処理装置を介して送信する、請求項１に記載の画像処理装置。
【請求項９】
前記第１の通知信号は、前記仮想オブジェクトを識別するための識別データ又は前記表示位置を表す位置データを含み、前記他の装置へ前記情報処理装置を介して転送される、請求項８に記載の画像処理装置。
【請求項１０】
前記画像処理装置は、
前記操作子を表す操作子画像を記憶している記憶部と、
前記記憶部に記憶されている前記操作子画像を用いて、前記入力画像に映る前記操作子を認識する画像認識部と、
をさらに備える、請求項１〜９のいずれか１項に記載の画像処理装置。
【請求項１１】
画像処理装置における画像処理方法であって：
実空間を撮影した入力画像を取得するステップと；
操作開始を表す第１のユーザ入力を検出するステップと；
前記画像処理装置が操作しようとする仮想オブジェクトと共通する仮想オブジェクトを表示する他の装置へ操作開始を通知するための第１の通知信号を送信するステップと；
前記入力画像に映る操作子であって、前記仮想オブジェクトの操作のために用いられる当該操作子についての認識の結果に応じて算出される画面上の表示位置に前記仮想オブジェクトを表示させるステップと；
を含み、
前記他の装置は、前記共通する仮想オブジェクトを表示するために前記操作子についての画像認識を並行して実行する装置である、
画像処理方法。
【請求項１２】
画像処理装置を制御するコンピュータを：
実空間を撮影した入力画像を取得する入力画像取得部と；
操作開始を表す第１のユーザ入力が検出された場合に、前記入力画像に映る操作子であって、仮想オブジェクトの操作のために用いられる当該操作子についての認識の結果に応じて算出される画面上の表示位置に前記仮想オブジェクトを表示させる表示制御部と；
前記第１のユーザ入力が検出された場合に、前記仮想オブジェクトと共通する仮想オブジェクトを表示するために前記操作子についての画像認識を並行して実行する他の装置へ操作開始を通知するための第１の通知信号を送信する通信部と；
として機能させるための、プログラム。
【請求項１３】
２つ以上の画像処理装置を含む画像処理システムであって、
各画像処理装置は：
実空間を撮影した入力画像を取得する入力画像取得部と；
操作開始を表す第１のユーザ入力が検出された場合に、前記入力画像に映る操作子であって、仮想オブジェクトの操作のために用いられる当該操作子についての認識の結果に応じて算出される画面上の表示位置に前記仮想オブジェクトを表示させる表示制御部と；
前記第１のユーザ入力が検出された場合に、前記仮想オブジェクトと共通する仮想オブジェクトを表示するために前記操作子についての画像認識を並行して実行する他の装置へ操作開始を通知するための第１の通知信号を送信する通信部と；
をそれぞれ備え、
前記操作子は、前記通信部により他の装置から前記第１の通知信号が受信された場合にも、前記入力画像内で認識される、
画像処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、プログラム及び画像処理システムに関する。
【背景技術】
【０００２】
従来、実世界と仮想世界とがミックスされた環境をユーザに提供するための、ＭＲ（複合現実感：Mixed  Reality）と呼ばれる技術の開発が進められている。例えば、実空間を撮影して得られる画像に仮想的なオブジェクトの画像又は追加的な情報を重畳した上でユーザに呈示するＡＲ（拡張現実感：Augmented  Reality）は、ＭＲの一形態と言える。ＭＲにおいては、多くの場合、ユーザが仮想世界又は仮想的なオブジェクトとインタラクションするためのインタフェースの一部が、実世界に配置される。例えば、下記特許文献１に記載されたＭＲシステムは、複数のユーザが実世界の物体であるコントロールボックスを操作することにより仮想的なパックを打ち合うエアホッケーゲームを提供するものである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２４７６０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に記載されたシステムのように、複数のユーザが１つの仮想オブジェクトを共有する場合、装置間の通信の時間差又は処理の遅延等により、実世界の状態と仮想オブジェクトの状態との間に不整合が生じ得る。例えば、上記特許文献１に記載されたＭＲシステムでは、マスタとなるＭＲゲーム装置が、ユーザのヘッドマウントディスプレイ（ＨＭＤ：Head  Mounted  Display）において撮像された入力画像を取得し、所定の処理をした後に、出力画像を各ユーザのＨＭＤに配信している。この場合、入力画像の取得及び出力画像の配信に時間を要するため、ユーザの手の状態とＨＭＤに表示される出力画像の状態とが一致せず、ユーザに違和感を与える結果となり易い。また、ユーザにより装着されるシースルーディスプレイに仮想オブジェクトを投影するような手法を用いる場合には、ユーザに視認される実世界の状態と、通信の遅延等を経て投影される仮想オブジェクトとが、ディスプレイ上でずれてしまう問題があった。
【０００５】
そこで、本発明は、複合現実感の提供に際して実世界の状態と仮想オブジェクトの状態との間の不整合を抑制することのできる、新規かつ改良された画像処理装置、画像処理方法、プログラム及び画像処理システムを提供しようとするものである。
【課題を解決するための手段】
【０００６】
ある実施形態によれば、実空間を撮影した入力画像を取得する入力画像取得部と、操作開始を表す第１のユーザ入力が検出された場合に、上記入力画像に映る操作子であって、仮想オブジェクトの操作のために用いられる当該操作子についての認識の結果に応じて算出される画面上の表示位置に上記仮想オブジェクトを表示させる表示制御部と、上記第１のユーザ入力が検出された場合に、上記仮想オブジェクトと共通する仮想オブジェクトを表示する他の装置へ操作開始を通知するための第１の通知信号を送信する通信部と、を備える画像処理装置が提供される。
【０００７】
かかる構成によれば、操作開始を表す第１のユーザ入力が検出された場合に、実空間を撮影した入力画像に映る操作子が認識され、認識の結果に応じて仮想オブジェクトの表示が制御されると共に、操作者側の画像処理装置から観察者側の画像処理装置へ操作開始を通知するための第１の通知信号が送信される。
【０００８】
また、上記第１の通知信号は、上記仮想オブジェクトを識別するための識別データ又は上記表示位置を表す位置データを含んでもよい。
【０００９】
また、上記通信部は、操作終了を表す第２のユーザ入力が検出された場合に、上記他の装置へ操作終了を通知するための第２の通知信号を送信してもよい。
【００１０】
また、上記第２の通知信号は、上記表示位置を表す位置データを含んでもよい。
【００１１】
また、上記表示制御部は、上記通信部により他の装置から上記第１の通知信号が受信された場合にも、上記入力画像に映る上記操作子を用いて操作される上記仮想オブジェクトを上記画面に表示させてもよい。
【００１２】
また、上記通信部により受信された上記第１の通知信号が自装置が表示すべき仮想オブジェクトに関連しない場合には、上記操作子の認識は行われなくてもよい。
【００１３】
また、上記通信部は、上記第１のユーザ入力が検出された後、上記操作子の認識の結果において上記操作子が上記仮想オブジェクトに接したと判定された場合に、上記他の装置へ上記第１の通知信号を送信してもよい。
【００１４】
また、上記通信部は、上記第１の通知信号を、共通する仮想オブジェクトを表示する一群の装置を管理する情報処理装置へ送信してもよい。
【００１５】
また、上記第１の通知信号は、上記仮想オブジェクトを識別するための識別データ又は上記表示位置を表す位置データを含み、上記仮想オブジェクトと共通する仮想オブジェクトを表示する他の装置へ上記情報処理装置を介して転送されてもよい。
【００１６】
また、上記画像処理装置は、上記操作子を表す操作子画像を記憶している記憶部と、上記記憶部に記憶されている上記操作子画像を用いて、上記入力画像に映る上記操作子を認識する画像認識部と、をさらに備えてもよい。
【００１７】
また、別の実施形態によれば、画像処理装置における画像処理方法であって、実空間を撮影した入力画像を取得するステップと、操作開始を表す第１のユーザ入力を検出するステップと、上記画像処理装置が操作しようとする仮想オブジェクトと共通する仮想オブジェクトを表示する他の装置へ操作開始を通知するための第１の通知信号を送信するステップと、上記入力画像に映る操作子であって、上記仮想オブジェクトの操作のために用いられる当該操作子についての認識の結果に応じて算出される画面上の表示位置に上記仮想オブジェクトを表示させるステップと、を含む画像処理方法が提供される。
【００１８】
また、別の実施形態によれば、画像処理装置を制御するコンピュータを、実空間を撮影した入力画像を取得する入力画像取得部と、操作開始を表す第１のユーザ入力が検出された場合に、上記入力画像に映る操作子であって、仮想オブジェクトの操作のために用いられる当該操作子についての認識の結果に応じて算出される画面上の表示位置に上記仮想オブジェクトを表示させる表示制御部と、上記第１のユーザ入力が検出された場合に、上記仮想オブジェクトと共通する仮想オブジェクトを表示する他の装置へ操作開始を通知するための第１の通知信号を送信する通信部と、として機能させるための、プログラムが提供される。
【００１９】
また、別の実施形態によれば、２つ以上の画像処理装置を含む画像処理システムであって、各画像処理装置は、実空間を撮影した入力画像を取得する入力画像取得部と、操作開始を表す第１のユーザ入力が検出された場合に、上記入力画像に映る操作子であって、仮想オブジェクトの操作のために用いられる当該操作子についての認識の結果に応じて算出される画面上の表示位置に上記仮想オブジェクトを表示させる表示制御部と、上記第１のユーザ入力が検出された場合に、上記仮想オブジェクトと共通する仮想オブジェクトを表示する他の装置へ操作開始を通知するための第１の通知信号を送信する通信部と、をそれぞれ備え、上記操作子は、上記通信部により他の装置から上記第１の通知信号が受信された場合にも、上記入力画像内で認識される、画像処理システムが提供される。
【発明の効果】
【００２０】
以上説明したように、本発明に係る画像処理装置、画像処理方法、プログラム及び画像処理システムによれば、複合現実感の提供に際して実世界の状態と仮想オブジェクトの状態との間の不整合を抑制することができる。
【図面の簡単な説明】
【００２１】
【図１】一実施形態に係る画像処理システムの概要を説明するための模式図である。
【図２】本発明の関連技術における画像処理について説明するための説明図である。
【図３Ａ】実世界の状態と仮想オブジェクトの状態との間の不整合について説明するための第１の説明図である。
【図３Ｂ】実世界の状態と仮想オブジェクトの状態との間の不整合について説明するための第２の説明図である。
【図４】一実施形態に係る画像処理装置の構成の一例を示すブロック図である。
【図５Ａ】一実施形態に係る操作子の一例を示す模式図である。
【図５Ｂ】一実施形態に係る操作子の他の例を示す模式図である。
【図６】オブジェクトデータの一例について説明するための説明図である。
【図７】一実施形態に係る仮想オブジェクトの表示位置算出処理の流れの一例を示すフローチャートである。
【図８Ａ】一実施形態に係る操作開始信号について説明するための説明図である。
【図８Ｂ】一実施形態に係る操作終了信号について説明するための説明図である。
【図８Ｃ】一実施形態に係る自己位置通知信号について説明するための説明図である。
【図９】一実施形態に係る操作者側の画像処理の流れの一例を示すフローチャートである。
【図１０】一実施形態に係る観測者側の画像処理の流れの一例を示すフローチャートである。
【図１１】一実施形態に係る管理サーバの構成の一例を示すブロック図である。
【図１２】一実施形態に係る信号転送処理の流れの一例を示すフローチャートである。
【図１３】一変形例に係る画像処理システムについて説明するための模式図である。
【発明を実施するための形態】
【００２２】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付すことにより重複説明を省略する。
【００２３】
また、以下の順序にしたがって当該「発明を実施するための形態」を説明する。
１．システムの概要
１−１．システムの全体像
１−２．関連技術の課題
２．画像処理装置の説明
２−１．装置の構成例
２−２．処理の流れ
３．管理サーバの説明
３−１．装置の構成例
３−２．処理の流れ
４．変形例
５．まとめ
【００２４】
＜１．システムの概要＞
［１−１．システムの全体像］
図１は、本発明の一実施形態に係る画像処理システムの概要を説明するための模式図である。図１を参照すると、画像処理装置１００ａ及び１００ｂ、並びに管理サーバ２００を含む画像処理システムが示されている。画像処理装置１００ａは、ユーザＵａが使用する装置である。画像処理装置１００ａは、有線又は無線による通信接続を介して、管理サーバ２００と通信することができる。画像処理装置１００ｂは、ユーザＵｂが使用する装置である。画像処理装置１００ｂもまた、有線又は無線による通信接続を介して、管理サーバ２００と通信することができる。
【００２５】
画像処理装置１００ａは、例えば、ユーザＵａの頭部に装着されるカメラ１０２ａ及びＨＭＤ１０４ａと接続される。カメラ１０２ａは、ユーザＵａの視線方向を向いて実世界Ｒ１を撮像し、一連の入力画像を画像処理装置１００ａへ出力する。ＨＭＤ１０４ａは、画像処理装置１００ａから入力される画像をユーザＵａに表示する。ＨＭＤ１０４ａにより表示される画像とは、例えば、ユーザＵａの視界に仮想オブジェクトＶ１を含む画像である。
【００２６】
同様に、画像処理装置１００ｂは、例えば、ユーザＵｂの頭部に装着されるカメラ１０２ｂ及びＨＭＤ１０４ｂと接続される。カメラ１０２ｂは、ユーザＵｂの視線方向を向いて実世界Ｒ１を撮像し、一連の入力画像を画像処理装置１００ｂへ出力する。ＨＭＤ１０４ｂは、画像処理装置１００ｂから入力される画像をユーザＵｂに表示する。本実施形態において、画像処理装置１００ａ及び１００ｂは、仮想オブジェクトＶ１を共有する。即ち、ＨＭＤ１０４ｂにより表示される画像においても、ユーザＵｂの視界に仮想オブジェクトＶ１が含まれ得る。
【００２７】
なお、本明細書において、画像処理装置１００ａ及び１００ｂを互いに区別する必要がない場合には、符号の末尾のアルファベットを省略することにより、画像処理装置１００ａ及び１００ｂを画像処理装置１００と総称する。また、カメラ１０２ａ及び１０２ｂ（カメラ１０２）、ＨＭＤ１０４ａ及び１０４ｂ（ＨＭＤ１０４）、並びにその他の要素についても同様とする。また、本実施形態に係る画像処理システムに参加可能な画像処理装置１００の数は、図１の例に限定されず、３つ以上であってもよい。即ち、例えば、第３のユーザが使用する第３の画像処理装置１００が、画像処理システムにさらに含まれてもよい。
【００２８】
管理サーバ２００は、システムに参加する画像処理装置１００に関する情報を管理するための情報処理装置である。例えば、管理サーバ２００は、定期的に（又は変化が生じた都度）各画像処理装置１００からカメラ１０２の位置及び姿勢を受信し、受信したデータをデータベースに保持する。そして、管理サーバ２００は、１つの画像処理装置１００から仮想オブジェクトＶ１の操作に関する信号を受信すると、仮想オブジェクトＶ１を共有する他の画像処理装置１００へ当該信号を転送する。
【００２９】
［１−２．関連技術の課題］
次に、図２、図３Ａ及び図３Ｂを用いて、図１に示したような画像処理システムにおける本発明に関連する技術の課題を説明する。図２は、関連技術における典型的な画像処理について説明するための説明図である。図３Ａ及び図３Ｂは、図２を用いて説明する画像処理において生じ得る実世界の状態と仮想オブジェクトの状態との間の不整合について説明するための説明図である。
【００３０】
図２を参照すると、関連技術における典型的な画像処理の流れが、数字付きのボックスを用いて示されている。各ボックスに付された数字は、処理の順序を表す。即ち、関連技術において、次のような順序で画像処理が行われる：
（１）操作子を認識
（２）オブジェクト位置を決定
（３）オブジェクトＩＤ、位置を報告
（４）オブジェクトＩＤ、位置を配信
（５）仮想オブジェクトを移動
【００３１】
（１）操作子を認識
まず、いずれかの画像処理装置１００（図２の例では画像処理装置１００ａ）において、入力画像に映る操作子が認識される。操作子とは、仮想オブジェクトの操作のために用いられる実世界の物体である。操作子は、ユーザの手など人体の一部であってもよく、人体以外の所定の物体であってもよい。
【００３２】
（２）オブジェクト位置を決定
次に、操作子の位置（又は動き）と仮想オブジェクトの位置との関係から、仮想オブジェクトの新たな位置が決定される。例えば、操作子が仮想オブジェクトに接している状態で操作子が移動した場合には、操作子の動きに合わせて仮想オブジェクトの位置が更新され得る。
【００３３】
（３）オブジェクトＩＤ、位置を報告
次に、仮想オブジェクトの新たな位置とオブジェクトＩＤ（識別子：Identifier）とが、管理サーバ２００へ報告される。
【００３４】
（４）オブジェクトＩＤ、位置を配信
次に、管理サーバ２００により、同じ仮想オブジェクトを共有する他の画像処理装置１００（図２の例では画像処理装置１００ｂ）へ、仮想オブジェクトの新たな位置とオブジェクトＩＤとが配信される。
【００３５】
（５）仮想オブジェクトを移動
そして、同じ仮想オブジェクトを共有する他の画像処理装置１００において、ＨＭＤ１０４の画面上の仮想オブジェクトが移動される。
【００３６】
なお、図２の例では、処理（１）及び（２）を画像処理装置１００ａが行っているが、画像処理装置１００ａの代わりに管理サーバ２００が、画像処理装置１００ａから入力画像を受信した上で、処理（１）及び（２）を行ってもよい。また、管理サーバ２００を配置することなく、画像処理装置１００ａから画像処理装置１００ｂへ、仮想オブジェクトの新たな位置とオブジェクトＩＤとが直接送信される場合もある。
【００３７】
このような画像処理の流れを想定すると、画像処理装置１００ｂが仮想オブジェクトを移動させた時点において、装置間の通信の時間差及び処理の遅延を含む時間が既に経過している。その結果、例えば、カメラ１０２ｂにより撮像される画像内に仮想オブジェクトＶ１を重畳すると、ＨＭＤ１０４ｂにより表示される画像において、操作子の状態と仮想オブジェクトＶ１の状態との間に不整合が生じる。
【００３８】
図３Ａ及び図３Ｂは、上述した問題点をより具体的に示している。このうち、図３Ａは、ＨＭＤ１０４ａにより仮想オブジェクトＶ１の操作者であるユーザＵａに向けて表示される、ある時間間隔Ｔを挟んだ２つのフレームの画像の例を示している。一方、図３Ｂは、ＨＭＤ１０４ｂにより仮想オブジェクトＶ１の観察者であるユーザＵｂに向けて表示される、時間間隔Ｔを挟んだ２つのフレームの画像の例を示している。なお、ここでは、一例として、ユーザの手が操作子である。
【００３９】
図３Ａを参照すると、時刻ｔ＝０において、操作子Ｈ１が仮想オブジェクトＶ１ａに接している。その後、時刻ｔ＝Ｔにおいて、操作子Ｈ１の動きに応じて、仮想オブジェクトＶ１ａが左方向に移動している。時刻ｔ＝Ｔにおいても、操作子Ｈ１は、仮想オブジェクトＶ１ａに接している。
【００４０】
図３Ｂを参照すると、図３Ａと同様、時刻ｔ＝０において、操作子Ｈ１が仮想オブジェクトＶ１ｂに接している。なお、仮想オブジェクトＶ１ａと仮想オブジェクトＶ１ｂとは、同じオブジェクトＩＤを有する共通のオブジェクトである。但し、オブジェクトを表示するＨＭＤが異なるため、ここでは便宜的に符号を使い分けている。その後、時刻ｔ＝Ｔにおいて、操作子Ｈ１の動きに応じて、仮想オブジェクトＶ１ｂが左方向に移動している。しかし、装置間の通信の時間差及び処理の遅延の影響から、時刻ｔ＝Ｔにおいて画像処理装置１００ｂに通知されているのは、数フレーム前の仮想オブジェクトの位置である。そのため、時刻ｔ＝ＴにおいてＨＭＤ１０４ｂにより表示される仮想オブジェクトＶ１ｂの位置は、時刻ｔ＝ＴにおいてＨＭＤ１０４ａにより表示される仮想オブジェクトＶ１ａの位置との間にズレｄを有する。しかし、時刻ｔ＝Ｔにおいて、カメラ１０２ｂにより撮像される操作子Ｈ１の実世界における位置は、カメラ１０２ａにより撮像される操作子Ｈ１の位置と等しい。その結果、ＨＭＤ１０４ｂにより表示される画像において、操作子Ｈ１の位置と仮想オブジェクトＶ１ｂとが整合しない。図３Ｂの例では、操作子Ｈ１が、仮想オブジェクトＶ１ｂに接する代わりに突き刺さった状態となっている。
【００４１】
なお、このような不整合は、各ＨＭＤ１０４がシースルーディスプレイであって、仮想オブジェクトの画像のみが各ＨＭＤ１０４のスクリーンに投影される場合にも同様に（又はより強く）生じ得る。
【００４２】
上述した実世界の状態と仮想オブジェクトの状態との間の不整合を抑制するためには、装置間の通信の時間差及び処理の遅延の影響を可能な限り低減することが求められる。そこで、次節より、複合現実感の提供に際して装置間の通信の時間差及び処理の遅延の影響を低減するための、本実施形態に係る画像処理装置１００及び管理サーバ２００の具体的な構成について説明する。
【００４３】
＜２．画像処理装置の説明＞
［２−１．装置の構成例］
図４は、本実施形態に係る画像処理装置１００の構成の一例を示すブロック図である。図４を参照すると、画像処理装置１００は、入力画像取得部１１０、自己位置検出部１２０、記憶部１３０、画像認識部１４０、演算部１５０、表示制御部１６０、及び通信部１７０を備える。
【００４４】
（入力画像取得部）
入力画像取得部１１０は、カメラ１０２により実空間を撮影した入力画像を取得する。そして、入力画像取得部１１０は、取得した入力画像を、自己位置検出部１２０、画像認識部１４０及び表示制御部１６０へ出力する。
【００４５】
（自己位置検出部）
自己位置検出部１２０は、実世界におけるカメラ１０２の位置及び姿勢を検出する。カメラ１０２の位置は、例えば、実世界の絶対座標系における３次元位置により表される。カメラ１０２の姿勢は、例えば、回転行列に対応する四元数又はオイラー角などにより表される。自己位置検出部１２０は、例えば、Andrew  J.Davisonによる“Real-Time  Simultaneous  Localization  and  Mapping  with  a  Single  Camera”（Proceedings  of  the  9th  IEEE  International  Conference  on  Computer  Vision  Volume  2,  2003,  pp.1403-1410）に記載されているＳＬＡＭ技術の原理に従って、入力画像取得部１１０から入力される入力画像を用いてカメラ１０２の位置及び姿勢を検出してもよい。その代わりに、カメラ１０２が位置センサ（例えば、光位置センサ）及び姿勢センサ（例えば、ジャイロセンサ）を有する場合には、自己位置検出部１２０は、カメラ１０２において各センサにより検出された位置及び姿勢を取得してもよい。自己位置検出部１２０は、例えば、上述したいずれかの手法により検出したカメラ１０２の位置及び姿勢を、画像認識部１４０及び通信部１７０へ出力する。
【００４６】
（記憶部）
記憶部１３０は、ハードディスク又は半導体メモリなどの記憶媒体を用いて、操作子画像、及びオブジェクトデータを予め記憶している。操作子画像とは、出力画像に表示される仮想オブジェクトの操作のために用いられる操作子を表す画像である。一方、オブジェクトデータとは、複合現実感においてＨＭＤ１０４により表示される仮想オブジェクトに関するデータである。
【００４７】
図５Ａ及び図５Ｂは、本実施形態に係る操作子の一例をそれぞれ示す模式図である。図５Ａの例では、操作子Ｍ１ａは、ユーザの手である。この場合、記憶部１３０は、ユーザの手を映した画像を操作子画像として予め記憶する。記憶部１３０は、例えば、異なる複数の方向からユーザの手を映した一群の画像を操作子画像として記憶してもよい。
【００４８】
図５Ｂの例では、操作子Ｍ１ｂは、ユーザの指に装着される立方体状のマーカである。マーカの各面の中央部には空洞が開けられており、ユーザは、その空洞に指を挿入してマーカを動かすことができる。この場合、記憶部１３０は、マーカを映した画像を操作子画像として予め記憶する。その代わりに、例えば、マーカと当該マーカに挿入された指とを含む全体を操作子とし、それらを映した画像が操作子画像として記憶されてもよい。
【００４９】
なお、操作子は、図５Ａ及び図５Ｂの例に限定されず、例えば、ユーザの足又はユーザに把持される棒状の物体など、実世界に存在する人体の一部又は任意の物体であってよい。記憶部１３０は、画像認識部１４０からの要求に応じて、かかる操作子画像を画像認識部１４０へ出力する。
【００５０】
図６は、記憶部１３０により記憶されるオブジェクトデータの一例について説明するための説明図である。図６を参照すると、オブジェクトデータは、オブジェクトＩＤ、形状及び位置の３つのデータ項目を有する。このうち、「オブジェクトＩＤ」は、仮想オブジェクトを一意に特定するための識別子である。図６の例では、それぞれオブジェクトＩＤ＝Ｖ１、Ｖ２である２つの仮想オブジェクトについてのオブジェクトデータが示されている。「形状」は、仮想オブジェクトの形状を表すデータである。仮想オブジェクトの形状は、例えば、ポリゴンによって表現され得る。「位置」は、仮想オブジェクトの最新の位置を表す３次元座標データである。仮想オブジェクトの位置は、操作子を用いたユーザによる操作に応じて更新される。記憶部１３０は、演算部１５０からの要求に応じて、かかるオブジェクトデータを演算部１５０へ出力する。
【００５１】
（画像認識部）
画像認識部１４０は、操作開始を表す第１のユーザ入力が検出された場合に、入力画像取得部１１０から入力される入力画像に映る操作子であって、仮想オブジェクトの操作のために用いられる当該操作子を認識する。画像認識部１４０は、例えば、記憶部１３０に記憶されている操作子画像を用いて、入力画像に映る操作子を認識することができる。より具体的には、例えば、画像認識部１４０は、公知のパターンマッチングの手法を用いて、入力画像内の部分画像と操作子画像とを照合する。そして、画像認識部１４０は、入力画像内の操作子画像の検出位置と検出された大きさとに基づいて、実世界における操作子の３次元位置を認識する。ここで認識される操作子の３次元位置は、その時点のカメラ１０２の位置及び姿勢に対する相対的な位置である。さらに、画像認識部１４０は、自己位置検出部１２０から入力されるカメラ１０２の位置及び姿勢を用いて、操作子の相対的な３次元位置を実世界の絶対座標系における３次元位置に変換する。そして、画像認識部１４０は、変換後の操作子の位置を、演算部１５０へ出力する。画像認識部１４０は、こうした画像認識処理を、操作開始を表す第１のユーザ入力が検出された後、操作終了を表す第２のユーザ入力が検出されるまで、一連の入力画像の各フレームについて繰り返す。そして、画像認識部１４０は、操作終了を表す第２のユーザ入力が検出された場合には、画像認識処理を終了する。なお、画像認識部１４０は、例えば、操作子画像の代わりに操作子の形状を表す形状データを用いて、入力画像に映る操作子を認識してもよい。
【００５２】
操作開始を表す第１のユーザ入力及び操作終了を表す第２のユーザ入力は、それぞれ、例えば、画像処理装置１００に設けられる所定のボタンの押下、入力画像内のユーザの所定のジェスチャ、又はユーザによる音声入力などであってよい。
【００５３】
また、画像認識部１４０は、後に説明する操作開始信号が通信部１７０により受信された場合にも、上述した画像認識処理を実行する。この場合の画像認識処理は、後に説明する操作終了信号が通信部１７０により受信されるまで、一連の入力画像の各フレームについて繰り返される。なお、本明細書では、第１のユーザ入力の検出から第２のユーザ入力の検出までの間の処理を操作者側の処理、操作開始信号の受信から操作終了信号の受信までの処理を観察者側の処理という。
【００５４】
（演算部）
演算部１５０は、上記操作開始を表す第１のユーザ入力が検出された場合に、画像認識部１４０による操作子の認識の結果に応じて、仮想オブジェクトを表示すべきＨＭＤ１０４の画面上の位置を算出する。そして、演算部１５０は、算出した仮想オブジェクトの表示位置を表示制御部１６０へ出力すると共に、記憶部１３０により記憶されている仮想オブジェクトの位置データを更新する。演算部１５０は、操作子の認識の結果に応じた仮想オブジェクトの表示位置算出処理を、操作開始を表す第１のユーザ入力が検出された後、操作終了を表す第２のユーザ入力が検出されるまで、一連の入力画像の各フレームについて繰り返す。
【００５５】
図７は、本実施形態に係る演算部１５０による仮想オブジェクトの表示位置算出処理の具体的な流れの一例を示すフローチャートである。図７を参照すると、演算部１５０は、まず、記憶部１３０から、各仮想オブジェクトのオブジェクトデータを取得する（ステップＳ１０２）。ここで取得されるオブジェクトデータには、各仮想オブジェクトの最新の位置と形状とが含まれる。次に、演算部１５０は、画像認識部１４０により認識された操作子の位置を取得する（ステップＳ１０４）。次に、演算部１５０は、各仮想オブジェクトの最新の位置及び形状、並びに操作子の位置に基づいて、操作子が仮想オブジェクトに接しているか否かを判定する（ステップＳ１０６）。ここで、操作子が仮想オブジェクトに接していない場合には、その後の処理はスキップされる。次に、操作子が仮想オブジェクトに接している場合には、演算部１５０は、操作子の位置に基づいて、仮想オブジェクトの新たな位置を算出する（ステップＳ１０８）。例えば、操作子が仮想オブジェクトに接している状態で操作子がＸ方向に距離Ｄだけ移動すると、それに応じて、仮想オブジェクトの位置もＸ方向に距離Ｄだけ移動する。次に、演算部１５０は、自己位置検出部１２０により検出されたカメラ１０２の位置及び姿勢に基づいて、仮想オブジェクトの新たな位置を実世界の３次元位置からＨＭＤ１０４の画面上の２次元位置に変換する（ステップＳ１１０）。例えば、３次元位置から画面上の２次元位置への座標の変換は、ピンホールモデルに従った次式を用いて行われ得る。
【００５６】
【数１】
0005499762.tif 000002
【００５７】
式（１）において、ｐは仮想オブジェクトの３次元位置ベクトル、ｘはカメラ１０２の３次元位置ベクトル、Ｒはカメラ１０２の姿勢に対応する回転行列、Ａはカメラ内部パラメータ、λは正規化のためのパラメータである。また、ｐ´は仮想オブジェクトの画面上の２次元位置を表す。ここで、カメラ内部パラメータＡは、カメラ１０２の特性に応じて、予め次式のように与えられる。
【００５８】
【数２】
0005499762.tif 000003
【００５９】
ここで、ｆは焦点距離、θは画像軸の直交性（理想値は９０°）、ｋｕは撮像面の縦軸のスケール（実世界の絶対座標系から撮像面の座標系へのスケール変化率）、ｋｖは撮像面の横軸のスケール、（ｕｏ，ｖｏ）は撮像面の中心位置である。
【００６０】
なお、仮想オブジェクトがポリゴンにより表現される場合には、演算部１５０は、カメラ１０２の位置及び姿勢に基づいて、ポリゴンの各頂点についてＨＭＤ１０４の画面上の２次元位置を算出する。
【００６１】
また、演算部１５０は、観察者側の処理として、後に説明する操作開始信号が通信部１７０により受信された場合にも、上述した仮想オブジェクトの表示位置算出処理を実行する。この場合の表示位置算出処理は、後に説明する操作終了信号が通信部１７０により受信されるまで、一連の入力画像の各フレームについて繰り返される。さらに、演算部１５０は、通信部１７０が操作終了信号を受信すると、操作終了信号に含まれる仮想オブジェクトの位置データを用いて、表示制御部１６０が表示している（及び記憶部１３０が記憶している）仮想オブジェクトの位置を補正する。これは、操作者側と観察者側とにおいて仮想オブジェクトの表示位置算出処理を並行して行った場合に残る仮想オブジェクトの位置の小さなズレを解消するための処理である。
【００６２】
また、演算部１５０は、仮想オブジェクトが操作されていない間にも、記憶部１３０に記憶されている仮想オブジェクトの位置データ、並びに自己位置検出部１２０により検出されるカメラ１０２の位置及び姿勢に基づいて、仮想オブジェクトの画面上の表示位置を算出する。そして、演算部１５０は、算出した仮想オブジェクトの表示位置を、表示制御部１６０へ出力する。
【００６３】
（表示制御部）
表示制御部１６０は、演算部１５０により算出されるＨＭＤ１０４の画面上の表示位置に、仮想オブジェクトを表示させる。例えば、表示制御部１６０は、入力画像取得部１１０から入力される入力画像に仮想オブジェクトを表すポリゴンを重畳することにより出力画像を生成し、当該出力画像をＨＭＤ１０４へ出力してもよい。より具体的には、表示制御部１６０は、例えば、演算部１５０により算出される仮想オブジェクトのポリゴンの各頂点の座標に基づいて、当該ポリゴンを出力画像内に描画することができる。その結果、ＨＭＤ１０４によりユーザに向けて表示される出力画像において、操作子の動きに追随して仮想オブジェクトが移動し、拡張現実感がユーザに提供される。なお、表示制御部１６０は、例えば、ＨＭＤ１０４がシースルーディスプレイである場合には、演算部１５０により算出される仮想オブジェクトのポリゴンの各頂点の座標に基づいて、当該ポリゴンをＨＭＤ１０４のスクリーン上に投影してもよい。
【００６４】
（通信部）
通信部１７０は、上述した操作開始を表す第１のユーザ入力が検出された場合に、共通する仮想オブジェクトを表示する他の画像処理装置１００へ操作開始を通知するための第１の通知信号を送信する。本明細書では、第１の通知信号を操作開始信号という。また、通信部１７０は、上述した操作終了を表す第２のユーザ入力が検出された場合に、共通する仮想オブジェクトを表示する他の画像処理装置１００へ操作終了を通知するための第２の通知信号を送信する。本明細書では、第２の通知信号を操作終了信号という。本実施形態では、操作開始信号及び操作終了信号は、管理サーバ２００を介して他の画像処理装置１００へ送信される。
【００６５】
図８Ａは、本実施形態に係る操作開始信号について説明するための説明図である。図８Ａを参照すると、操作開始信号Ｓ１は、信号種別、送信元、オブジェクトＩＤ及びオブジェクト位置という４つのフィールドを有する。「信号種別」は、当該信号が操作開始信号であることを示すためのフィールドである。「送信元」は、当該信号の送信元の画像処理装置１００を特定するためのフィールドである。「オブジェクトＩＤ」は、どの仮想オブジェクトが操作されようとしているかを特定するためのフィールドである。「オブジェクトＩＤ」に複数の仮想オブジェクトのオブジェクトＩＤが列挙されてもよい。「オブジェクト位置」は、任意に設けられるフィールドであって、操作開始時点での仮想オブジェクトの位置を表す３次元座標データを含む。これら「オブジェクトＩＤ」又は「オブジェクト位置」は、管理サーバ２００が操作開始信号の転送先とすべき画像処理装置１００を判別するために用いられ得る。
【００６６】
図８Ｂは、本実施形態に係る操作終了信号について説明するための説明図である。図８Ｂを参照すると、操作終了信号Ｓ２は、信号種別、送信元、オブジェクトＩＤ及びオブジェクト位置という４つのフィールドを有する。「信号種別」は、当該信号が操作終了信号であることを示すためのフィールドである。「送信元」は、当該信号の送信元の画像処理装置１００を特定するためのフィールドである。「オブジェクトＩＤ」は、どの仮想オブジェクトについての操作が終了されようとしているかを特定するためのフィールドである。「オブジェクトＩＤ」に複数の仮想オブジェクトのオブジェクトＩＤが列挙されてもよい。「オブジェクト位置」は、操作終了時点での仮想オブジェクトの位置を表す３次元座標データを含む。これら「オブジェクトＩＤ」又は「オブジェクト位置」は、管理サーバ２００が操作終了信号の転送先とすべき画像処理装置１００を判別するために用いられ得る。さらに、操作終了信号Ｓ２の「オブジェクト位置」は、操作終了信号を受信した画像処理装置１００が仮想オブジェクトの操作終了時点における位置を補正するために使用され得る。
【００６７】
また、通信部１７０は、自己位置検出部１２０により検出されるカメラ１０２の位置及び姿勢を管理サーバ２００へ通知するための第３の通知信号を、管理サーバ２００へ定期的に（又は変化が生じた都度）送信する。本明細書では、第３の通知信号を自己位置通知信号という。
【００６８】
図８Ｃは、本実施形態に係る自己位置通知信号について説明するための説明図である。図８Ｃを参照すると、自己位置通知信号Ｓ３は、信号種別、送信元、及び位置・姿勢という３つのフィールドを有する。「信号種別」は、当該信号が自己位置通知信号であることを示すためのフィールドである。「送信元」は、当該信号の送信元の画像処理装置１００を特定するためのフィールドである。「位置・姿勢」は、例えば、カメラ１０２の絶対座標系における３次元位置と回転行列に対応する四元数とを含む。各画像処理装置１００から定期的に送信されるこのような自己位置通知信号Ｓ３に基づいて、後に説明する管理サーバ２００は、各画像処理装置１００がどのような視界を有しているかを知ることができる。
【００６９】
［２−２．処理の流れ］
（操作者側の処理）
図９は、本実施形態に係る画像処理装置１００による操作者側の画像処理の流れの一例を示すフローチャートである。
【００７０】
図９を参照すると、まず、画像認識部１４０及び演算部１５０において、第１のユーザ入力の検出の有無が監視される（ステップＳ１２２）。第１のユーザ入力が検出されると、ステップＳ１２４以降の操作者側の画像処理が開始される。操作者側の画像処理において、まず、通信部１７０により、操作開始信号Ｓ１が管理サーバ２００へ送信される（ステップＳ１２４）。次に、画像認識部１４０により、記憶部１３０において記憶されている操作子画像を用いて入力画像中の操作子が認識され、操作子の位置が演算部１５０へ出力される（ステップＳ１２６）。次に、演算部１５０により、図７を用いて説明した仮想オブジェクトの表示位置算出処理が行われる（ステップＳ１２８）。そして、表示制御部１６０によりＨＭＤ１０４の画面上に表示されている仮想オブジェクトが、操作子の位置に応じて移動される（ステップＳ１３０）。次に、画像認識部１４０及び演算部１５０において、第２のユーザ入力の検出の有無が判定される（ステップＳ１３２）。ここで、第２のユーザ入力が検出されない場合には、処理はステップＳ１２６へ戻り、入力画像の次のフレームについてステップＳ１２６からステップＳ１３０までが繰り返される。一方、第２のユーザ入力が検出された場合には、通信部１７０により、操作終了信号Ｓ２が管理サーバ２００へ送信される（ステップＳ１３４）。そして、操作者側の画像処理は終了する。
【００７１】
なお、通信部１７０は、第１のユーザ入力が検出された後、画像認識部１４０による操作子の認識の結果において操作子が仮想オブジェクトに接したと判定されるまで待ってから（即ち、図７のステップＳ１０６の判定結果がＹｅｓとなってから）操作開始信号を管理サーバ２００へ送信してもよい。この場合には、図９の流れと異なり、観察者側での画像処理が、操作子による実質的な仮想オブジェクトの操作の開始まで行われないこととなる。それにより、仮想オブジェクトの画面上での移動の開始が遅れる可能性がある一方、第１のユーザ入力から実質的な仮想オブジェクトの操作の開始までの間の観察者側の処理コストが低減される。
【００７２】
（観察者側の処理）
図１０は、本実施形態に係る画像処理装置１００による観察者側の画像処理の流れの一例を示すフローチャートである。
【００７３】
図１０を参照すると、まず、通信部１７０において、操作開始信号の受信の有無が監視される（ステップＳ１５２）。操作開始信号が受信されると、ステップＳ１５４以降の観察者側の画像処理が開始される。観察者側の画像処理において、まず、画像認識部１４０により、記憶部１３０において記憶されている操作子画像を用いて入力画像中の操作子が認識され、操作子の位置が演算部１５０へ出力される（ステップＳ１５４）。次に、演算部１５０により、図７を用いて説明した仮想オブジェクトの表示位置算出処理が行われる（ステップＳ１５６）。そして、表示制御部１６０によりＨＭＤ１０４の画面上に表示されている仮想オブジェクトが、操作子の位置に応じて移動される（ステップＳ１５８）。次に、通信部１７０において、操作終了信号の受信の有無が判定される（ステップＳ１６０）。ここで、操作終了信号が受信されない場合には、処理はステップＳ１５４へ戻り、入力画像の次のフレームについてステップＳ１５４からステップＳ１５８までが繰り返される。一方、操作終了信号が受信された場合には、演算部１５０により、仮想オブジェクトの位置が補正される（ステップＳ１６２）。そして、観察者側の画像処理は終了する。
【００７４】
＜３．管理サーバの説明＞
［３−１．装置の構成例］
図１１は、本実施形態に係る管理サーバ２００の構成の一例を示すブロック図である。図１２を参照すると、管理サーバ２００は、通信部２１０、記憶部２２０及びユーザ管理部２３０を備える。
【００７５】
（通信部）
通信部２１０は、有線又は無線による通信接続を介して、各画像処理装置１００の通信部１７０との間で信号を送受信する。管理サーバ２００の通信部２１０と各画像処理装置１００の通信部１７０との間で送受信される信号には、上述した操作開始信号、操作終了信号及び自己位置通知信号が含まれる。
【００７６】
（記憶部）
記憶部２２０は、ハードディスク又は半導体メモリなどの記憶媒体を用いて、共通する仮想オブジェクトを表示する一群の画像処理装置１００を管理するデータベースを保持する。記憶部２２０により保持されるデータベースには、例えば、自己位置通知信号を用いて定期的に収集される各画像処理装置１００のカメラ１０２の位置及び姿勢に関するデータが含まれる。また、記憶部２２０により保持されるデータベースには、例えば、各画像処理装置１００により表示され得る仮想オブジェクトのオブジェクトＩＤが含まれてもよい。
【００７７】
（ユーザ管理部）
ユーザ管理部２３０は、通信部２１０により自己位置通知信号が受信されると、当該自己位置通知信号の送信元の画像処理装置１００について記憶部２２０が保持する位置及び姿勢に関するデータを更新する。また、通信部２１０により操作開始信号又は操作終了信号が受信されると、ユーザ管理部２３０は、当該信号の送信元と共通する仮想オブジェクトを表示している他の画像処理装置１００へ、操作開始信号又は操作終了信号を転送させる。ユーザ管理部２３０は、例えば、操作開始信号又は操作終了信号に含まれるオブジェクトＩＤと記憶部２２０のデータベースにおいて関連付けられている画像処理装置１００を、各信号の転送先の装置として決定してもよい。その代わりに、ユーザ管理部２３０は、例えば、操作開始信号又は操作終了信号に示されている仮想オブジェクトの位置がカメラ１０２の視界に含まれると判定される画像処理装置１００を、各信号の転送先の装置として決定してもよい。
【００７８】
［３−２．処理の流れ］
図１２は、本実施形態に係る管理サーバ２００による信号転送処理の流れの一例を示すフローチャートである。
【００７９】
図１２を参照すると、まず、通信部２１０において、操作開始信号又は操作終了信号の受信の有無が監視される（ステップＳ２０２）。ここで、操作開始信号又は操作終了信号が受信された場合には、処理はステップＳ２０４へ進む。次に、ユーザ管理部２３０は、記憶部２２０から、各画像処理装置１００の状態を取得する（ステップＳ２０４）。ここで取得される各画像処理装置１００の状態には、例えば、各画像処理装置１００が表示している仮想オブジェクトのオブジェクトＩＤ、又は各画像処理装置１００のカメラ１０２の位置及び姿勢が含まれ得る。次に、ユーザ管理部２３０は、仮想オブジェクトを共有する他の画像処理装置１００（操作開始信号又は操作終了信号の送信元以外の装置）が存在するか否かを判定する（ステップＳ２０６）。ここで、仮想オブジェクトを共有する他の画像処理装置１００が存在しない場合には、ステップＳ２０８はスキップされる。一方、仮想オブジェクトを共有する他の画像処理装置１００が存在する場合には、通信部２１０は、当該他の画像処理装置１００へ、操作開始信号又は操作終了信号を転送する（ステップＳ２０８）。そして、管理サーバ２００による信号転送処理は終了する。
【００８０】
＜４．変形例＞
図１３は、本実施形態の一変形例に係る画像処理システムについて説明するための模式図である。図１３を参照すると、画像処理装置３００ａ、３００ｂ及び３００ｃを含む画像処理システムが示されている。画像処理装置３００ａ、３００ｂ及び３００ｃは、それぞれ、ユーザＵａ、Ｕｂ及びＵｃが使用する装置である。これら装置は、有線又は無線による通信接続を介して相互に通信することができる。
【００８１】
画像処理装置３００ａ、３００ｂ及び３００ｃは、典型的には、図４を用いて説明した画像処理装置１００と同等の構成を有する。但し、画像処理装置３００ａ、３００ｂ及び３００ｃの通信部１７０は、管理サーバ２００を介することなく、操作開始信号及び操作終了信号を直接送受信する。そして、例えば、通信部１７０により操作開始信号が受信されると、当該信号の送信元と共通する仮想オブジェクトを自装置が表示しようとしている場合にのみ、画像認識部１４０による操作子の認識が行われる。この場合の操作子の認識の要否の判定は、例えば、操作開始信号に含まれる仮想オブジェクトのオブジェクトＩＤ又は位置データに基づいて行われる。
【００８２】
例えば、図１３の例において、画像処理装置３００ａと３００ｂとは、仮想オブジェクトＶ１を共有している。即ち、画像処理装置３００ａのＨＭＤ１０４ａ及び画像処理装置３００ｂのＨＭＤ１０４ｂは、共に仮想オブジェクトＶ１を表示し得る。一方、画像処理装置３００ｃは、仮想オブジェクトＶ１を共有しない。その代わりに、画像処理装置３００ｃのＨＭＤ１０４ｃは、異なる仮想オブジェクトＶ２を表示し得る。このような例において、ユーザＵａが仮想オブジェクトＶ１の操作者であり、例えばユーザＵａが画像処理装置３００ａのボタン１０６ａを押下することにより仮想オブジェクトＶ１の操作を開始したものとする。そうすると、画像処理装置３００ａは、第１のユーザ入力を検出し、操作開始信号Ｓ１を画像処理装置３００ｂ及び画像処理装置３００ｃへ送信する。かかる操作開始信号Ｓ１には、例えば、仮想オブジェクトＶ１のオブジェクトＩＤ又は位置データが含まれる。画像処理装置３００ｂは、操作開始信号Ｓ１を受信すると、当該信号に含まれるオブジェクトＩＤ又は位置データに基づいて、自装置が表示しようとしている仮想オブジェクトＶ１について操作が開始されることを認識する。その結果、画像処理装置３００ｂにおいても、画像認識による操作子（例えばユーザＵａの手又はマーカ）の追跡が開始される。一方、画像処理装置３００ｃは、操作開始信号Ｓ１に含まれるオブジェクトＩＤ又は位置データに基づいて、当該信号が自装置が表示しようとしている仮想オブジェクトとは関連しないことを認識する。その結果、画像処理装置３００ｃは、画像処理装置３００ａから受信した操作開始信号Ｓ１を無視する。
【００８３】
＜５．まとめ＞
ここまで、図１〜図１３を用いて、本発明の一実施形態及びその変形例について説明した。本実施形態によれば、操作開始を表す第１のユーザ入力が検出された場合に、操作者側の画像処理装置において、実空間を撮影した入力画像に映る操作子が認識され、認識の結果に応じて仮想オブジェクトの表示が制御される。また、操作者側の画像処理装置から観察者側の画像処理装置へ操作開始信号が送信される。それにより、観察者側の画像処理装置も、実空間を撮影した入力画像に映る操作子を認識し、認識の結果に応じて仮想オブジェクトの表示を制御することができる。従って、操作者側と観察者側とで並行して画像認識による操作子の追跡が行われるため、追跡結果の伝送による遅延が生じることがない。また、操作開始信号に仮想オブジェクトを識別するためのオブジェクトＩＤ又は仮想オブジェクトの位置データを含めることにより、仮想オブジェクトを共有しない画像処理装置においては、不必要な画像認識処理の実行を避けることができる。また、操作終了を表す第２のユーザ入力が検出された場合には、操作者側の画像処理装置から観察者側の画像処理装置へ操作終了信号が送信される。それにより、仮想オブジェクトの操作が行われていない間、いずれの画像処理装置も画像認識処理を実行しなくてよい。このように、本実施形態によれば、操作者側と観察者側とで並行して画像認識による操作子の追跡が行われることに加えて、画像認識処理が稼動するタイミングが装置間で交換される信号に基づいて制御されるため、複合現実感の提供に際して、処理の負荷を効果的に低減しながら、実世界の状態と仮想オブジェクトの状態との間の不整合を抑制することができる。
【００８４】
また、本実施形態によれば、操作者側の画像処理装置から観察者側の画像処理装置へ送信される操作終了信号は、操作終了時点での仮想オブジェクトの位置を表す位置データを含む。それにより、操作者側の画像処理装置による操作子の追跡結果と観察者側の画像処理装置による操作子の追跡結果との間に一時的に誤差が生じた場合にも、観察者側の画像処理装置において仮想オブジェクトの位置を補正することができる。
【００８５】
また、操作者側の画像処理装置は、第１のユーザ入力が検出された後、操作子が仮想オブジェクトに接したと判定されるまで待った後に、上記操作開始信号を送信してもよい。その場合には、観察者側における画像認識処理の負荷をさらに低減することができる。
【００８６】
また、画像処理装置間の操作開始信号及び操作終了信号の送受信は、一群の画像処理装置を管理する管理サーバを経由して行われてもよい。その場合には、共通する仮想オブジェクトを表示する画像処理装置に対してのみ管理サーバが信号を転送することにより、不要なトラフィックを排除すると共に、観察者側における画像認識処理の負荷をさらに低減することができる。
【００８７】
なお、本明細書において説明した画像処理装置１００及び３００、並びに管理サーバ２００による一連の処理は、典型的には、ソフトウェアを用いて実現される。一連の処理を実現するソフトウェアを構成するプログラムは、例えば、各装置の内部又は外部に設けられる記憶媒体に予め格納される。そして、各プログラムは、例えば、実行時にＲＡＭ（Random  Access  Memory）に読み込まれ、ＣＰＵ（Central  Processing  Unit）などのプロセッサにより実行される。
【００８８】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【００８９】
１００，３００    画像処理装置
１０２            カメラ
１０４            ＨＭＤ（表示装置）
１１０            入力画像取得部
１３０            記憶部
１４０            画像認識部
１５０            演算部
１６０            表示制御部
１７０            通信部
２００            管理サーバ（情報処理装置）
Ｓ１              操作開始信号（第１の通知信号）
Ｓ２              操作終了信号（第２の通知信号）
【図１】
0005499762.tif 000004
【図２】
0005499762.tif 000005
【図３Ａ】
0005499762.tif 000006
【図３Ｂ】
0005499762.tif 000007
【図４】
0005499762.tif 000008
【図５Ａ】
0005499762.tif 000009
【図５Ｂ】
0005499762.tif 000010
【図６】
0005499762.tif 000011
【図７】
0005499762.tif 000012
【図８Ａ】
0005499762.tif 000013
【図８Ｂ】
0005499762.tif 000014
【図８Ｃ】
0005499762.tif 000015
【図９】
0005499762.tif 000016
【図１０】
0005499762.tif 000017
【図１１】
0005499762.tif 000018
【図１２】
0005499762.tif 000019
【図１３】
0005499762.tif 000020