表示システム、表示処理装置、表示方法、および表示プログラム
【課題】撮影画像に仮想世界を表わす画像情報を重ね、実座標でリンクさせて表示した仮想現実において、ポイントしやすくオブジェクトを表示することができる表示システムを提供する。
【解決手段】表示システムにおいては、仮想オブジェクトごとに、仮想オブジェクトの画像、撮影空間に対して設定された3次元座標系で設定された表示位置、および選択によって実行する処理が規定されている。カメラでの撮影画像に対して3次元座標系が設定され、規定された位置に仮想オブジェクトの画像を表示させるための表示画像が生成される。表示画像においてユーザの位置の指定を受付けると、その位置を該3次元座標系における位置として検出し、その位置と仮想オブジェクトの表示位置との間の距離がしきい値よりも小さい場合、該仮想オブジェクト以外の仮想オブジェクトのサイズを小さくする。
【解決手段】表示システムにおいては、仮想オブジェクトごとに、仮想オブジェクトの画像、撮影空間に対して設定された3次元座標系で設定された表示位置、および選択によって実行する処理が規定されている。カメラでの撮影画像に対して3次元座標系が設定され、規定された位置に仮想オブジェクトの画像を表示させるための表示画像が生成される。表示画像においてユーザの位置の指定を受付けると、その位置を該3次元座標系における位置として検出し、その位置と仮想オブジェクトの表示位置との間の距離がしきい値よりも小さい場合、該仮想オブジェクト以外の仮想オブジェクトのサイズを小さくする。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は表示システム、表示処理装置、表示方法、および表示プログラムに関し、特に、撮影画像に選択可能なオブジェクトを表示するための表示システム、表示処理装置、表示方法、および表示プログラムに関する。
【背景技術】
【0002】
撮影画像に仮想世界を表わす画像情報を重ねて表示し、表示上、仮想現実を表示させる技術が提案されている。仮想現実の表示では、実世界を表わす撮影画像と仮想世界を表わす画像情報とがレイヤ構成になっており、実空間と仮想空間とが、実座標でリンクしている。
【0003】
仮想現実を用いたシステムではこのような表示構成であることから、仮想空間上にあるオブジェクトの位置を特定する際に3次元空間の奥行き感が把握し難く、オブジェクトの位置が特定し難いという問題があった。
【0004】
この問題に対して、ユーザの指示領域とオブジェクトとの距離に応じて、指示領域またはオブジェクトの少なくとも一方の色を変化させるようにしている例がある。具体例として、特開平5−342322号公報(以下、特許文献1)は、3次元空間で、指示領域座標とオブジェクトに関連付けられた座標との距離に基づいて、段階的にポインタまたはオブジェクトの色を変更する技術を開示している。
【0005】
他の例として、特開2002−109568号公報(以下、特許文献2)は、仮想空間上にオブジェクトが複数存在する場合に、目的とするオブジェクトを把握しやすくするため目印となるオブジェクト以外のオブジェクトを不可視にする技術を開示している。また、特開2003−337959号公報(以下、特許文献3)は、オブジェクトの表示形態を、視点からオブジェクまでの距離に基づいて変化させる技術を開示している。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平5−342322号公報
【特許文献2】特開2002−109568号公報
【特許文献3】特開2003−337959号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、これら特許文献に開示されているような技術では、3次元空間の奥行き感が把握し難く、3次元表示を視認しながらの選択がし難いという問題があった。特に、
複数のオブジェクトが近接して多数存在している場合にはそれぞれの奥行き感が把握し難いと、その中から特定のオブジェクトを選択して指定することが難しいという問題があった。
【0008】
本発明はこのような問題に鑑みてなされたものであって、撮影画像に仮想世界を表わす画像情報を重ね、実座標でリンクさせて表示した仮想現実において、ポイントしやすくオブジェクトを表示することができる表示システム、表示処理装置、表示方法、および表示プログラムを提供することを目的としている。
【課題を解決するための手段】
【0009】
上記目的を達成するために、本発明のある局面に従うと、表示システムは仮想オブジェクトの画像を表示するための表示システムであって、カメラと、ディスプレイと、表示処理装置とを備える。表示処理装置は、仮想オブジェクトに関する情報として、当該仮想オブジェクトを3次元で表示させるための画像情報と、撮影された空間に対して設定された3次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するための取得手段と、カメラによる撮影画像に対して3次元の座標系を設定し、仮想オブジェクトに対して規定された表示位置に仮想オブジェクトの画像を表示させるための表示画像を生成し、ディスプレイで表示させる処理を実行するための処理手段と、ユーザによって指定された3次元の座標系における位置を検出するための検出手段とを含む。処理手段は、撮影画像における仮想オブジェクトについて規定された表示位置と指定された位置との関係に基づいて仮想オブジェクトのうちの1つの仮想オブジェクトを仮想対象オブジェクトと特定し、仮想オブジェクトのうちの仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、仮想対象外オブジェクトの画像を変化させる処理を実行する。
【0010】
好ましくは、上記変化させる処理は、仮想対象外オブジェクトの画像を縮小する処理、仮想対象外オブジェクトの画像の形状を変化させる処理、仮想対象外オブジェクトの画像の色彩を変化させる処理、仮想対象外オブジェクトの画像の透明度を変化させる処理、および仮想対象外オブジェクトの画像の表示位置を変化させる処理のうちの少なくとも1つである。
【0011】
好ましくは、処理手段は、撮影画像における仮想オブジェクトについて規定された表示位置と指定された位置との間の距離が、予め規定されている第1の基準距離よりも小さい仮想オブジェクトを仮想対象オブジェクトと特定する。
【0012】
より好ましくは、処理手段は、仮想対象外オブジェクトの画像を、指定された位置と仮想対象オブジェクトとの間の距離に応じて縮小する。
【0013】
好ましくは、処理手段は、ユーザによって指定される位置の変化量に基づいて指定される位置が向かう方向に表示位置が該当している仮想オブジェクトを仮想対象オブジェクトと特定する。
【0014】
より好ましくは、処理手段は、仮想対象外オブジェクトの表示位置を、指定された位置と仮想対象オブジェクトとの間の距離に応じて、仮想対象オブジェクトから遠くなる方向に変化させる。
【0015】
好ましくは、処理手段は、カメラの位置と仮想オブジェクトとの位置関係に基づいて、仮想対象オブジェクトに重なって表示される仮想対象外オブジェクトの画像の変化を、重なって表示されない仮想対象外オブジェクトの画像の変化よりも大きく変化させる。
【0016】
より好ましくは、処理手段は、カメラの位置の変化が検出されると、変化前のカメラの位置に応じて仮想対象オブジェクトに重なって表示されると特定された仮想対象外オブジェクトの画像の変化を、カメラの位置の移動後も維持する。
【0017】
好ましくは、処理手段は、撮影画像における仮想オブジェクトについて規定された表示位置と指定された位置との間の距離が、第1の基準距離よりも大きい第2の基準距離よりも小さい仮想オブジェクトであって、仮想対象オブジェクトと特定された仮想オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトと特定する。
【0018】
好ましくは、ディスプレイは、表示面と逆側の面からの光を透過し、表示処理手段で生成された表示画像を、表示面に透過性を有して表示する。
【0019】
本発明の他の局面に従うと、表示処理装置は仮想オブジェクトの画像をディスプレイに表示させるための表示処理装置であって、撮影画像の入力を受付けるための入力手段と、仮想オブジェクトに関する情報として、当該仮想オブジェクトを3次元で表示させるための画像情報と、撮影された空間に対して設定された3次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するための取得手段と、撮影画像に対して3次元の座標系を設定し、仮想オブジェクトに対して規定された表示位置に仮想オブジェクトの画像を表示させるための表示画像を生成し、ディスプレイで表示させる処理を実行するための処理手段と、ユーザによって指定された3次元の座標系における位置を検出するための検出手段とを含む。処理手段は、撮影画像における仮想オブジェクトについて規定された表示位置と指定された位置との関係に基づいて仮想オブジェクトのうちの1つの仮想オブジェクトを仮想対象オブジェクトと特定し、仮想オブジェクトのうちの仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、仮想対象外オブジェクトの画像を変化させる処理を実行する。
【0020】
本発明のさらに他の局面に従うと、表示方法は仮想オブジェクトの画像をディスプレイに表示させる方法であって、カメラから撮影画像の入力を受付けるステップと、撮影画像に対して3次元の座標系を設定するステップと、ユーザによって指定された3次元の座標系における位置を検出するステップと、仮想オブジェクトに関する情報として、当該仮想オブジェクトを3次元で表示させるための画像情報と、撮影された空間に対して設定された3次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するステップと、撮影画像における仮想オブジェクトについて規定された表示位置と指定された位置との関係に基づいて仮想オブジェクトのうちの1つの仮想オブジェクトを仮想対象オブジェクトと特定し、仮想オブジェクトのうちの仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、仮想対象外オブジェクトの画像を変化させるステップとを備える。
【0021】
本発明のさらに他の局面に従うと、表示プログラムは表示処理装置に仮想オブジェクトの画像をディスプレイに表示させる処理を実行させるためのプログラムであって、カメラから撮影画像の入力を受付けるステップと、撮影画像に対して3次元の座標系を設定するステップと、ユーザによって指定された3次元の座標系における位置を検出するステップと、仮想オブジェクトに関する情報として、当該仮想オブジェクトを3次元で表示させるための画像情報と、撮影された空間に対して設定された3次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するステップと、撮影画像における仮想オブジェクトについて規定された表示位置と指定された位置との関係に基づいて仮想オブジェクトのうちの1つの仮想オブジェクトを仮想対象オブジェクトと特定し、仮想オブジェクトのうちの仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、仮想対象外オブジェクトの画像を変化させるステップとを表示処理装置に実行させる。
【発明の効果】
【0022】
この発明によると、撮影画像に仮想世界を表わす画像情報を重ね、実座標でリンクさせて表示された仮想現実において、表示される選択肢としてのオブジェクトを、より直感的に、より簡易に選択することが可能となる。
【図面の簡単な説明】
【0023】
【図1】本実施の形態にかかる表示システムの構成の具体例を示す図である。
【図2】本実施の形態にかかる表示システムの構成の他の具体例を示す図である。
【図3】表示システムに含まれるディスプレイの装置構成の具体例を示すブロック図である。
【図4】ポインティングデバイスである場合の、表示システムに含まれるポインタの装置構成の具体例を示すブロック図である。
【図5】本実施の形態にかかる表示システムの用いられ方の一例を説明する図である。
【図6】本実施の形態にかかる表示システムの用いられ方の一例を説明する図である。
【図7】表示システムに含まれる処理装置の機能構成の具体例を示すブロック図である。
【図8】基本の表示動作の具体例を示すフローチャートである。
【図9】マーカとして記憶されている画像の具体例を示す図である。
【図10】撮影画像中のマーカの検出例と、その検出結果に基づく仮想オブジェクトの表示例とを示す図である。
【図11】表示システムでの表示の一例を示す図である。
【図12】記憶される仮想オブジェクトの座標値の具体例を示す図である。
【図13】仮想オブジェクト−ポインタ間距離を計算する動作の具体例を示すフローチャートである。
【図14】ポインタ位置と仮想オブジェクトの位置との間の距離を用いた表示処理の第1の例を説明する図である。
【図15】第1の例にかかる表示処理のための動作の具体例を示すフローチャートである。
【図16】表示処理の第1の例の、変形例を説明する図である。
【図17】表示処理の第1の例の、変形例を説明する図である。
【図18】表示処理の第1の例の、変形例を説明する図である。
【図19】表示処理の第1の例の、変形例を説明する図である。
【図20】ポインタ位置と仮想オブジェクトの位置との間の距離を用いた表示処理の第2の例を説明する図である。
【図21】第2の例にかかる表示処理のための動作の具体例を示すフローチャートである。
【図22】表示処理の第2の例の、変形例を説明する図である。
【図23】表示処理の第2の例の、変形例を説明する図である。
【図24】表示処理の第2の例の、変形例を説明する図である。
【発明を実施するための形態】
【0024】
以下に、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。
【0025】
<システム構成>
図1は、本実施の形態にかかる表示システムの構成の具体例を示す図である。
【0026】
図1を参照して、本実施の形態にかかる表示システムは、処理装置100と、ポインタ200と、カメラ300と、ウェアラブルディスプレイであるディスプレイ400と、サーバ500と、オブジェクト設定機器としての携帯端末600とを含む。
【0027】
処理装置100は、カメラ300、ディスプレイ400、およびサーバ500とそれぞれ電気的に接続されている。この接続は、LAN(Local Area Network)などの特定のネットワークを介した接続であってもよいし、インターネットなどの公衆回線を介した接続であってもよい。また、無線、有線のいずれであってもよい。
【0028】
処理装置100およびサーバ500は、一般的なパーソナルコンピュータ(PC)などで構成されてもよい。
【0029】
携帯端末600は、携帯電話機や携帯型のPCなどで構成されてもよいし、通常の、一般的なPCで構成されてもよい。
【0030】
カメラ300は、処理装置100と電気的に接続可能であって、撮影画像を処理装置100に送信する機能を有するものであれば、どのようなものであってもよい。
【0031】
ディスプレイ400はカメラ300と一体となったウェアラブルディスプレイである。ディスプレイ400は透過性を有した表示部としてのディスプレイ401(図3参照)を備え、処理装置100と電気的に接続されて、処理装置100から送信された画像データを、表示部としてのディスプレイ401に対して透過性を有して表示する機能を有する。
【0032】
ポインタ200は所定の形状または模様を有する。該形状または模様は処理装置100に予め登録されており、マーカとして用いられる。すなわち、処理装置100は、カメラ300によって撮影された画像中に存在するマーカとしてのポインタ200の位置を画像処理によって特定する。なお、図1の例では、ポインタ200はユーザの指先に装着される筒状のものであり、処理装置100には予め該筒状の形状またはその表面に施された模様が記憶されているものとする。しかしながら、ポインタ200はユーザの身体の一部に装着されるものには限定されず、たとえば、予め記憶された形状または模様を有した指示棒のようなものであってもよい。さらには、ポインタ200が用いられず、直接ユーザの指先などの指示に用いる身体の一部の形状またはその表面に施された模様が予めマーカとして処理装置100に記憶されており、カメラ300によって撮影された画像中に存在する該マーカの位置が処理装置100での画像処理によって特定されるものであってもよい。
【0033】
なお、ポインタ200の他の例として、処理装置100と電気的に接続可能であり、位置センサ、加速度センサ、傾きセンサなどのセンサを搭載し、該ポインタ200を用いて位置を指定するユーザ操作を受付けて位置などを検出し、処理装置100に対して送信する機能を有するポインティングデバイスであってもよい。
【0034】
さらにポインタ200の他の例として、処理装置100と電気的に接続可能であり、音声入力を受付けるマイクであってもよい。ユーザは、該マイクを用いて指定する位置をたとえば座標などで指示することができる。この場合、処理装置100は音声解析機能を備え、マイクからの音声信号を解析して指定された位置を特定する。
【0035】
処理装置100は、カメラ300から受信した画像を元に処理を行なう。そして、その処理結果をディスプレイ400に表示させるための処理を行なう。
【0036】
携帯端末600は、少なくともユーザからの入力操作を受付けるための操作部とサーバ500と通信するための通信部とを備える。操作部での操作によって後述する仮想オブジェクトに関する情報の入力を受付け、その情報をサーバ500に対して送信する。サーバ500は、入力された仮想オブジェクトの情報を記憶し、処理装置100からの要求に応じてその情報を処理装置100に提供する。
【0037】
本実施の形態にかかる表示システムが図1に示される構成である場合、ユーザがウェアラブルディスプレイであるディスプレイ400に透過性を有して表示される画像が投影された、ディスプレイ400の表示部としてのディスプレイ401(図3参照)を透過して見える風景を見ながら、指先に装着したポインタ200を使ってポイントする。
【0038】
なお、図1に示された表示システムには、カメラ300からディスプレイ400で表示するため、およびポインタ200の位置を特定するための撮影画像が処理装置100に入力されるものとしている。しかしながら、ポインタ200の位置を特定するための撮影画像を得るためのカメラがカメラ300と別に備えられてもよい。
【0039】
<システム構成の他の例>
なお、以降の説明において、本実施の形態にかかる表示システムは図1に示された構成であって、ユーザは、ウェアラブルディスプレイであるディスプレイ400に透過性を有して表示された画像が投影された風景をディスプレイ401を介して見ながら、その風景に対して指先に装着したポインタ200を使ってポイントするものとする。しかしながら、他の例として、ディスプレイ400がウェアラブルディスプレイではなく、たとえば図2に示されるように、カメラ300およびポインタ200と電気的に接続されたPCで構成されるものであってもよい。カメラ300とPCとの接続がインターネットを介したものである場合、カメラ300として、たとえばWEBカメラが挙げられる。PCで構成されたディスプレイ400には、カメラ300からの撮影画像と処理装置100からの画像とが合成されて表示される。この場合、ユーザはその表示を見ながら、指先に装着したポインタ200を使ってポイントすることができる。
【0040】
<装置構成>
処理装置100、サーバ500、および携帯端末600は上述のように一般的なPCや携帯電話機などで構成されてもよいので、その装置構成は特定の構成に限定されない。すなわち、処理装置100、サーバ500、および携帯端末600は、少なくとも、全体を制御するためのCPU(Central Processing Unit)、CPUで実行するプログラムや仮想現実を表示するために必要な画像情報などを記憶するためのROM(Read Only Memory)やRAM(Random Access Memory)などのメモリ、および他の装置と電気的に接続してデータのやり取りを行なうための通信インタフェース(I/F)を含む。また、携帯端末600は、上述のように、ユーザからの操作入力を受付ける操作部をさらに含む。
【0041】
カメラ300は、カメラ部と、撮影画像やプログラムを記憶するためのメモリと、撮影画像を処理装置100に送信する処理を実行するためのCPUと、当該カメラ300の位置を検知するためのセンサと、処理装置100と電気的に接続して撮影画像を送信するための通信I/Fとを含む。
【0042】
図3は、ディスプレイ400の装置構成の具体例を示すブロック図である。図3を参照して、ディスプレイ400は、表示部としての、透過性を有したディスプレイ401と、表示画像をディスプレイ401に表示する処理を実行するためのCPU402と、処理装置100と電気的に接続して表示画像を受信するための通信I/F403とを含む。
【0043】
CPU402は通信I/F403によって受信されるネットワーク上のデータ(パケット)のうちの、処理装置100から送信される表示用のデータを取得する。
【0044】
図4は、ポインティングデバイスである場合の、ポインタ200の装置構成の具体例を示すブロック図である。図4を参照して、ポインタ200は、一例として、位置検出センサ201、加速度センサ202、方向性検知センサ(傾きセンサ)203などのセンサと、これらセンサで位置情報等を検出する処理を実行するためのCPU204と、処理装置100と電気的に接続して検出結果を送信するための通信I/F205とを含む。さらに、図示しない、センサでの検出結果やプログラムを記憶するためのメモリが含まれていてもよい。
【0045】
<動作概要>
本実施の形態にかかる表示システムは、コンピュータグラフィックスなどによって予め生成された仮想物体(仮想オブジェクト)を表わす画像を、現実世界を表わす撮影画像に対して携帯端末600で設定された表示位置に応じて、ディスプレイ400に透過性を有して表示する。これにより、ウェアラブルディスプレイであるディスプレイ400を装着したユーザには、仮想オブジェクトがディスプレイ400を介して視認できる現実世界に浮かんでいるように見える。このとき、実際に浮かんでいるように仮想オブジェクトをディスプレイ400に表示させるため、携帯端末600で仮想オブジェクトの表示位置に対して奥行きを設定し、設定された奥行きに応じて3次元で仮想オブジェクトを表示する。これにより、仮想オブジェクトは、ディスプレイ400を介して視認できる実空間のある奥行きの位置に浮かんでいるように表示される。
【0046】
「仮想オブジェクト」とは、現実世界を表わす撮影画像内のコンテンツに関連付けられた選択肢である3次元の画像を指す。仮想オブジェクトごとに、当該仮想オブジェクトを表示させるための画像情報と、撮影画像で表わされた撮影空間に対して設定された3次元の座標系における表示位置(以下、仮想オブジェクト座標とも称する)と、選択されることによって実行される動作とが規定されている。この仮想オブジェクトに関する情報は携帯端末600によって設定され、サーバ500に記憶されている。
【0047】
処理装置100は、カメラ300から入力された撮影画像にその撮影空間に対して設定されている3次元座標系を設定した上で、同じ3次元座標系で表示位置、奥行きが設定されている仮想オブジェクトの表示位置を特定する。そして、その位置に表示させるように該仮想オブジェクトの画像を処理し、処理された表示画像をディスプレイ400に対して送信する。
【0048】
処理装置100は、撮影画像に対して画像処理を実行することによってポインタ200で指定された位置を特定し、その位置を、撮影空間に対して設定されている3次元座標系における位置に変換する。そして、指定された位置に応じた仮想オブジェクトに対して規定された動作を実行する。または、該動作を実行させるために図示しない必要な装置に対して制御信号を出力する。
【0049】
この表示システムの用いられ方の一例として、図5に示されるような用いられ方が挙げられる。図5は、ウェアラブルディスプレイであるディスプレイ400を介して視認される室内である実空間に、仮想現実である画像情報を投影するように当該画像情報をディスプレイ400に透過性を有して表示させた、表示システムでの表示の一例を示している。図5において、3次元の球体が仮想オブジェクトを表わしている。
【0050】
図5の表示は、ウェアラブルディスプレイであるディスプレイ400を装着したユーザが机に向かっているユーザの右後ろに立って室内に向いたときに、ディスプレイ400に透過性を有して表示された仮想オブジェクトが投影されて当該ユーザに視認される風景を表わした表示である。
【0051】
図5の例において、仮想オブジェクトで表わされた選択肢は、実空間である室内のコンテンツとしてカレンダやユーザの左上の位置の実座標と関連付けられている。そのため、仮想オブジェクトは、予め規定された表示位置に基づいて、図5の例では、カレンダやユーザの左上の位置の近傍など、選択肢が関連付けられたコンテンツの近傍に3次元の仮想オブジェクトが表示されている。
【0052】
その表示を視認しながらウェアラブルディスプレイを装着したユーザがポインタ200を装着した指先等をディスプレイ400に表示される仮想オブジェクトの位置にすると、該ユーザは、該仮想オブジェクトに対して規定された動作として、関連付けされているデータが表示され閲覧できたり、リモコンの様に対応した機器を操作できたりする。一例として、図5のカレンダの近傍に表示されている仮想オブジェクトにポインタ200で触れると、予め登録されているユーザのスケジュール情報が表示される。また、他の例として、ユーザの左上の仮想オブジェクトに触れると、予めその位置と対応付けられている空気調和機に対して制御信号が出力され、空調温度が変更される。
【0053】
この表示システムの用いられ方の他の例として、図6に示されるような用いられ方が挙げられる。図6は、ウェアラブルディスプレイであるディスプレイ400を介して視認される工場内である実空間に、仮想現実である画像情報を投影するように当該画像情報をディスプレイ400に透過性を有して表示させた、表示システムでの表示の一例を示している。図6においても、3次元の球体が仮想オブジェクトを表わしている。
【0054】
図6の表示は、ウェアラブルディスプレイであるディスプレイ400を装着したユーザが机に向かっている2人のユーザのさらに右側に立って室内から工場に向いたときに、ディスプレイ400に透過性を有して表示された仮想オブジェクトが投影されて当該ユーザに視認される風景を表わした表示である。
【0055】
図6の例において、仮想オブジェクトで表わされた選択肢は、実空間である工場内のコンテンツとしての機器などの実座標と関連付けられている。そのため、仮想オブジェクトは、予め規定された表示位置に基づいて、図6の例では、工場内の各機器の近傍など、選択肢が関連付けられたコンテンツの近傍に3次元の仮想オブジェクトが表示されている。
【0056】
その表示を視認しながらウェアラブルディスプレイを装着したユーザがポインタ200を装着した指先等をディスプレイ400に表示される仮想オブジェクトの位置にすると、該仮想オブジェクトに対して規定された動作の一例として、関連付けされている工場内の各機器から発信されている情報(進捗管理、エラー情報、取扱方法)にアクセスできる。より好ましくは、表示システムにおいて、エラーの緊急度やアクセスできるデータの種類に応じて、予め設定された対応関係に基づいて仮想オブジェクトの色や形を変更させてもよい。これにより、エラーの緊急度やアクセスできるデータの種類などをユーザに分かりやすく報知することができる。
【0057】
より好ましくは、仮想オブジェクトに関する情報はユーザごと、またはユーザの所属するグループ(部署等)に対応付けられてもよい。このようにすることで、予め当該表示システムにログインすることによって、ユーザまたはユーザの所属するグループに付与された権限により該ユーザまたはグループに応じた(操作可能または許可された)仮想オブジェクトが表示される。
【0058】
図5や図6に表わされたように、表示システムでの表示では、2次元の表示装置であるディスプレイ400に仮想オブジェクトが3次元表示されるものである。そのため、仮想オブジェクトの奥行き感が視認し難いと、ユーザがそのうちの所望する仮想オブジェクトを指定し難くなる。特に、ディスプレイ400にて、異なる奥行きが設定された複数の仮想オブジェクトが近接して表示されると、それぞれの奥行き感が視認されないと、2次元平面の表示画面では仮想オブジェクトの表示が重なり、ユーザがそのうちの所望する仮想オブジェクトを指定し難くなる。
【0059】
そこで、本実施の形態にかかる表示システムは、仮想オブジェクトに規定された表示位置(3次元座標)とポインタ200で指定された位置(3次元座標)との間の距離に応じた表示処理を実行することで、このような場合であっても、ユーザが所望する仮想オブジェクトを指定しやすいように表示する。
【0060】
具体的に、処理装置100は、仮想オブジェクトの表示位置とポインタ200での指定位置との間の関係に基づいて、ポインタ200でのポインタ位置から所定の範囲内にある仮想オブジェクトは指定される可能性のある仮想オブジェクトと特定し、その範囲内にない仮想オブジェクトは指定される可能性の低い仮想オブジェクトと特定する。この、指定される可能性の低い仮想オブジェクトは、以降の説明において「仮想対象外オブジェクト」と称する。
【0061】
処理装置100は、仮想対象外オブジェクトの表示態様をそうでない仮想オブジェクトの表示態様と異ならせることで、ユーザに指定する可能性の高い仮想オブジェクトの指定をしやすく表示する。
【0062】
<機能構成>
図7は、本実施の形態にかかる表示システムが上の動作概要で説明された動作を行なうための、処理装置100の機能構成の具体例を示すブロック図である。図7は、主に、図示しないCPUがメモリに記憶されるプログラムを読み出して実行することで、CPUが画像処理統括部として機能する場合の機能構成の具体例を示している。図7に示された機能は、主にCPU上に構成されるものである。しかしながら、その一部がハードウェア構成で実現されてもよい。
【0063】
図7を参照して、画像処理統括部として機能する処理装置100のCPUは、カメラ300からの撮影画像の入力を受付けるためのカメラ画像入力部101Aと、ポインタ200からの入力信号を受付けるためのポインタデータ入力部101Bと、サーバ500から提供される仮想オブジェクト情報の入力を受付けるための仮想オブジェクト情報入力部101Cと、これら入力された情報に基づいてポインタ200でのポイント位置および仮想オブジェクトの表示領域などの検出を行なうためのポインタオブジェクト抽出部102と、入力された撮影画像に対して画像認識処理を行なうことで、抽出されたポインタ200でのポイント位置および仮想オブジェクトの表示領域などの撮影画像上の位置(座標)を特定するための画像認識処理部103と、ポインタ200の形状を記憶しておくためのポインタ形状記憶部104と、必要に応じて記憶されているポインタ200の形状を用いて撮影画像上にポインタ200を表示させる表示データを生成するためのポインタ表示データ生成部105と、画像認識処理部103での処理結果に基づいて、ポインタ200での表示位置(以下、ポインタ位置とも称する)と仮想オブジェクトの表示位置との距離を算出するための仮想オブジェクト−ポインタ間距離判定部106と、仮想対象外オブジェクトについて表示位置との距離を算出するための仮想対象外オブジェクト−ポインタ間距離判定部107と、仮想対象外オブジェクトについてオブジェクトごとに表示位置を記憶するための仮想対象外オブジェクト座標記憶部108と、後述する処理を行なって仮想対象外オブジェクトを表示させる表示データを生成するための仮想対象外オブジェクト表示データ生成部109と、表示させる仮想対象外オブジェクトの形状を記憶するための仮想対象外オブジェクト形状記憶部110と、生成された表示データをディスプレイ400に透過性を有して表示させるための表示画像を生成するための表示処理部111とを含む。
【0064】
さらに図7を参照して、ポインタオブジェクト抽出部102は、ポインタ抽出部1021と、仮想オブジェクト抽出部1022と仮想対象外オブジェクト抽出部1023とを含む。
【0065】
ポインタ抽出部1021は、ポインタ200で指示された位置を撮影画像から抽出するための機能である。具体的には、入力された撮影画像からポインタ形状記憶部104に記憶されているポインタ200の形状を抽出する。
【0066】
仮想オブジェクト抽出部1022および仮想対象外オブジェクト抽出部1023は、それぞれ、撮影画像において仮想オブジェクトおよび仮想対象外オブジェクトが表示される領域を抽出するための機能である。
【0067】
具体的には、サーバ500に予め仮想オブジェクトに規定されている情報として該仮想オブジェクトの3次元座標系での表示位置が記憶されており、仮想オブジェクト抽出部1022は、その情報に基づいて処理対象の仮想オブジェクトの表示位置を含む領域を表示領域として抽出する。また、仮想対象外オブジェクト座標記憶部108に予め仮想対象外オブジェクトに規定されている情報として該仮想対象外オブジェクトの3次元座標系での表示位置が記憶されており、仮想対象外オブジェクト抽出部1023は、記憶された情報に基づいて処理対象の仮想対象外オブジェクトの表示位置を含む領域を表示領域として抽出する。
【0068】
さらに図7を参照して、画像認識処理部103は、ポインタ座標検出部1031と、仮想オブジェクト表示領域検出部1032と仮想対象外オブジェクト表示領域検出部1033とを含む。
【0069】
ポインタ座標検出部1031は、ポインタオブジェクト抽出部102で抽出されたポインタ200で指示された位置を撮影画像上で特定するための機能である。具体的には、ポインタオブジェクト抽出部102で抽出されたポインタ200で指示された位置の、撮影画像上における位置や奥行きを特定する。そして、該撮影画像に設定された3次元座標系においてその3次元の位置を表わす座標(以下、ポインタ座標とも称する)に換算する。
【0070】
ポインタ200が上述のポインティングデバイスである場合には、処理装置100は、この機能に替えてポインティングデバイスであるポインタ200から検出結果の入力を受付けて、その検出結果に基づいて撮影画像上の位置を特定する機能を有する。
【0071】
仮想オブジェクト表示領域検出部1032および仮想対象外オブジェクト表示領域検出部1033は、それぞれ、ポインタオブジェクト抽出部102で抽出された仮想オブジェクトの表示領域および仮想対象外オブジェクトの表示領域の、撮影画像に設定された3次元座標系における領域を表示領域として検出する。
【0072】
また、仮想オブジェクト表示領域検出部1032および仮想対象外オブジェクト表示領域検出部1033は、後述する表示処理によって仮想オブジェクトまたは仮想対象外オブジェクトについて予め規定されている表示位置が変化した場合に、変化後の表示位置を特定する。
【0073】
仮想オブジェクト−ポインタ間距離判定部106および仮想対象外オブジェクト−ポインタ間距離判定部107は、それぞれ、3次元座標系で表わされたポインタ座標および仮想オブジェクト座標とからその間の距離を求める。
【0074】
さらに、仮想オブジェクト−ポインタ間距離判定部106は、予め基準距離を記憶しておき、算出された距離が該基準距離よりも大きい場合、すなわち、仮想オブジェクトの表示位置として規定された位置から所定範囲よりも遠い位置が指定された場合に、該仮想オブジェクトが指定される可能性の低い仮想オブジェクトである仮想対象外オブジェクトと判定し、その結果を仮想対象外オブジェクト表示データ生成部109に入力する。同様に、仮想対象外オブジェクト−ポインタ間距離判定部107も、算出された距離が上記基準距離よりも大きい場合、引き続き対象の仮想オブジェクトが指定される可能性の低い仮想対象外オブジェクトと判定し、その結果を仮想対象外オブジェクト表示データ生成部109に入力する。
【0075】
仮想対象外オブジェクト表示データ生成部109はかかる判定結果に応じて当該仮想オブジェクトを対象外オブジェクトとして表示するための表示データを生成する。この処理については、以降の各実施の形態において具体的に説明する。
【0076】
<基本の表示動作フロー>
本実施の形態にかかる表示システムにおいて、ユーザから見える現実世界を表わす撮影画像にコンピュータグラフィックス等によって描かれた仮想物体(仮想オブジェクト)を表わす画像情報を重畳して表示させる動作について説明する。ここでは、具体例として、拡張現実感の研究のためにワシントン大学HIT研究室で開発されたソフトウェアライブラリとしてのプログラムを用いて実現される動作について説明する。用いられるプログラムはこのプログラムに限定されない。
【0077】
図8は、基本の表示動作の具体例を示すフローチャートである。図8のフローチャートに示される動作は、処理装置100の図示しないCPUがメモリに記憶されている上述のようなプログラムを読み出して実行することによって実現される。
【0078】
図8を参照して、まず、処理が開始するとステップS101で画像処理統括部として機能するCPUは、初期化処理を実行する。ここでの初期化処理の一つとして、図示しないメモリに記憶されている撮影画像に対して設定した座標系を初期化する処理が含まれる。
【0079】
ステップS103でCPUは、カメラ300からの撮影画像の入力を受付けて、撮影画像を取得する。CPUは、撮影画像(1フレーム)が入力されるごとに当該撮影画像に基づいて仮想オブジェクトの表示位置を特定してその表示位置に応じた処理を当該仮想オブジェクトの画像データに対して施し、ディスプレイ400に表示画像を送信する動作を繰り返す。これにより、カメラ300の移動に伴って連続的に入力される撮影画像に応じて、連続的に3次元の仮想オブジェクトが透過性を有してディスプレイ400に表示されるようになる。
【0080】
ステップS105でCPUは、入力された撮影画像を図示しない描画用のメモリに描画し、ステップS107でそのメモリに展開された画像の中から座標系の基準となる位置を特定するコンテンツを表わす撮影画像に含まれる画像を、マーカとして検出する。CPUは、予め基準とする状態でのマーカとする画像、および、そのマーカと撮影空間に設定される3次元座標系における座標との関係を記憶している。
【0081】
一例として、CPUはマーカの画像として図9の画像を記憶しているものとする。そして、一例として、撮影空間のこのマーカの画像に表わされた板状のコンテンツのある位置を、3次元座標系の原点とし、このコンテンツに対して3方向に、x軸、y軸、z軸を設定する、との3次元座標系との対応関係を記憶しているものとする。
【0082】
この場合、ステップS107でCPUは、メモリに展開した撮影画像から図9の画像を検索する。そして、その画像またはその画像に近似した画像を検出すると、撮影画像内にマーカが存在すると認識し、ステップS109でCPUは、その信頼度を比較する。ステップS109での処理の一例として、CPUは、予め記憶されているマーカの画像と検出された画像とを比較し、その相関度合いが基準として設定されているものを満たしているか否かで信頼度を比較する。
【0083】
その後、ステップS111でCPUは、撮影画像から検出されたマーカの画像の位置や、検出されたマーカの画像と記憶している画像との比較に基づいて、この撮影画像を撮影した時のカメラ300の位置や方向を計算する。そして、ステップS113で、計算されたカメラ300の位置や方向に基づいて、撮影画像に対して、予めマーカとした画像の位置を原点とし、マーカとした画像の傾きに応じてx軸、y軸、z軸を設定する。
【0084】
さらに、記憶されている仮想オブジェクトの情報に基づいて、表示位置として3次元座標で記憶されているそれぞれの仮想オブジェクト座標を撮影画像に設定された3次元座標系において特定し、撮影画像の奥行きや傾きに応じて仮想対象外オブジェクトの画像を変換(変形)した上で、特定された位置に透過性を有して表示させる。これにより、仮想オブジェクトが、規定された表示位置に、その撮影位置、撮影方向に応じた形状で3次元に表示される。
【0085】
たとえば、図9の画像がマーカの画像として記憶されているところ、撮影画像中に図10(A)の画像がマーカとして検出された場合、カメラ300の撮影位置がマーカで表わされたコンテンツの正面よりも向かって右側上方、撮影方向が該コンテンツを見下ろす角度と、カメラ300の位置や方向が計算される。CPUは、予め該マーカとの関係で規定されている3次元の座標系を撮影位置、撮影方向に基づいて撮影画像に対して設定する。
【0086】
さらに、仮想オブジェクトに関する情報において、図9の画像に示されたマーカとするコンテンツのある原点を表示位置とする仮想オブジェクトがあり、その仮想オブジェクトの形状が立方体である場合、CPUは、その仮想オブジェクトの形状をカメラ300から該コンテンツまでの距離や方向などに基づいて変形して、規定された表示位置に透過性を有して描画する。これにより、図10(B)に示されるように、原点とするマーカの画像の近傍にマーカで表わされたコンテンツと同じ位置、方向から見たように変形された形状の3次元の仮想オブジェクトが、透過性を有して表示される。
【0087】
ステップS115でCPUは、以上の処理で得られた仮想オブジェクトの画像データを、ディスプレイ400に表示のための制御信号と共に送信する。ディスプレイ400では仮想オブジェクトの画像データを表示させる処理が実行される。これにより、図10(B)に示されたように、ウェアラブルディスプレイであるディスプレイ400を介して視認される実空間に仮想オブジェクトが浮かんだ状態で視認されることになる。
【0088】
CPUは、表示の終了を要求する信号が入力されるまで、カメラ300から撮影画像が入力されるたびに以上の処理を繰り返す。そして、表示の終了を要求する信号の入力を受付けると(ステップS117でYES)、一連の動作を終了する。
【0089】
<仮想オブジェクト−ポインタ間距離の算出フロー>
画像処理統括部として機能する処理装置100のCPUは、上述のように、仮想オブジェクトの表示された3次元座標系上の位置と、ディスプレイ400の表示画面上でポインタ200で指定された位置を該3次元座標系に換算した位置との間の距離に応じた表示処理を実行する。そこで、仮想オブジェクト−ポインタ間距離判定部106での距離の計算方法について説明する。この算出方法は、仮想対象外オブジェクト−ポインタ間距離判定部107での距離の計算方法とも同じである。
【0090】
図11は、表示システムでの表示の一例を示す図である。図11は、ウェアラブルディスプレイであるディスプレイ400を装着したユーザによって視認される風景を表わしたものであり、当該ディスプレイ400に透過性を有して表示された画像が、当該ディスプレイ400を介して見える景色に投影されたものである。以降の例において、表示の例は、同様に、ウェアラブルディスプレイであるディスプレイ400を装着したユーザによって視認される風景を表わしたものを指す。
【0091】
図11を参照して、仮想オブジェクトAと仮想オブジェクトBとが実空間に投影されてるようにディスプレイ400に表示されているものとする。この場合、サーバ500は、それぞれの仮想オブジェクトの表示位置を示す3次元座標系の座標値を記憶している。一例として、図12に示されるように、仮想オブジェクトごとに設定された表示位置を示す3次元座標値をテーブル形式で記憶している。
【0092】
CPUは、さらに、撮影画像が入力されるたびにポインタ200の撮影画像における位置を検出し、その位置を該撮影画像に設定された3次元座標系上での位置に換算して3次元座標系のポインタ座標を取得する。
【0093】
図13は、仮想オブジェクト−ポインタ間距離を計算する動作の具体例を示すフローチャートである。
【0094】
図13を参照して、画像処理統括部として機能する処理装置100のCPUは、ステップS201で記憶されている3次元座標系上でのポインタ座標の値と各仮想オブジェクトの座標値とを参照し、ステップS203で一例として、それぞれの座標値の差の二乗の和の平方根を算出してユークリッド距離を求めることで、ポインタ位置と各仮想オブジェクトの表示位置との間のそれぞれの、撮影画像に設定された3次元座標系における距離を計算する。
【0095】
以下、計算されたポインタ位置と仮想オブジェクトの表示位置との関係に基づいた表示処理の例について説明する。
【0096】
<表示処理例1>
図14は、ポインタ位置と仮想オブジェクトの位置との関係に基づいた表示処理の第1の例を説明する図である。図14を参照して、第1の例では、画像処理統括部として機能する処理装置100のCPUは、ポインタ位置から予め規定された第1の範囲内に仮想オブジェクト(以下、仮想対象オブジェクトとも称する)の表示位置が含まれる場合に、上記仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、その仮想対象オブジェクトの表示位置とポインタ位置との間の距離に応じて、仮想対象外オブジェクトの選択可能な範囲を仮想対象オブジェクトの選択可能な範囲よりも遠くなるように、予め当該仮想対象外オブジェクトに対して設定されている画像情報を変換する。
【0097】
ここで、仮想オブジェクトの画像情報は特定の点を中心とする球形であるものとし、その球が2次元のディスプレイ400上で3次元表示された球形の範囲内が当該仮想オブジェクトの選択可能な範囲であると規定する。
【0098】
仮想対象外オブジェクトの選択可能な範囲を仮想対象オブジェクトの選択可能な範囲よりも遠くするような変形として、具体的に、仮想対象外オブジェクトのサイズの縮小が該当する。すなわち、図14(A)に示されるように、指先に装着されたポインタ200の位置と表示されている1つの仮想オブジェクトとの間の距離が所定の距離となった場合に、図14(B)に示されるように、その仮想オブジェクトを仮想対象オブジェクトとし、それ以外の仮想オブジェクトを仮想対象外オブジェクトとして、該仮想対象外オブジェクトの表示される形状を小さくするように変形する。
【0099】
この表示処理を行なうため、仮想オブジェクト−ポインタ間距離判定部106は上記第1の範囲を規定する基準距離を記憶しておく。そして、仮想オブジェクト−ポインタ間距離判定部106は上記基準距離と比較することで、仮想対象オブジェクトを特定する。
【0100】
また、仮想対象外オブジェクト表示データ生成部109は、予め、ポインタ200の位置と仮想対象オブジェクトとの間の距離Dの範囲ごとに、仮想対象外オブジェクトの変形の度合いを記憶しておく。一例として、ポインタ200の位置と仮想対象オブジェクトとの間の距離Dが小さくなるほど仮想対象外オブジェクトの表示倍率が小さくなるような関係が記憶されている。そして、その対応関係に基づいて、仮想対象外オブジェクトに対して規定されている表示用のデータを更新することで、表示データを生成する。
【0101】
図15は、第1の表示処理のための動作の具体例を示すフローチャートである。図15を参照して、ステップS301で画像処理統括部として機能する処理装置100のCPUは、ポインタ位置と仮想オブジェクトの表示位置との間の距離Dを算出する。ステップS301の動作の詳細は図13で説明されたものである。
【0102】
算出された距離Dが上記第1の範囲を規定する基準距離であるしきい値Dtよりも小なる場合(ステップS303でYES)、つまり、ポインタ位置から上記第1の範囲内に処理対象の仮想オブジェクトの表示位置がある場合、ステップS305でCPUは、上記第1の範囲外の仮想オブジェクトを仮想対象外オブジェクトとして抽出し、ステップS307でCPUは、ステップS301で算出された仮想対象オブジェクトとの距離Dに基づいて、ステップS305で抽出された仮想対象外オブジェクトについて上述の記憶している対応関係より表示倍率を決定して、縮小する。
【0103】
この画像を透過性を有してディスプレイ400に表示し、ディスプレイ400を介して視認される実空間に投影させることにより、図14に示されたような表示が実現される。これにより、ポインタ位置から所定範囲内にある仮想オブジェクトが指定される可能性の高い仮想対象オブジェクトとされ、それ以外の仮想オブジェクトが仮想対象外オブジェクトとしてそのサイズが小さく表示される。そのため、ポインタ200を装着したユーザは、複数の表示される仮想オブジェクトのポインタ200からの距離を視覚的に把握しやすくなり、ポインタ200に最も近い仮想オブジェクトが指定しやすくなる。
【0104】
<変形例1>
図14の例では、仮想対象外オブジェクトの選択可能な範囲を仮想対象オブジェクトの選択可能な範囲よりも遠くするような変形として、仮想対象外オブジェクトの形状を予め規定された倍率で縮小するものとしているが、他の処理でもよい。他の例として、たとえば図16に示されるように、仮想対象外オブジェクトの形状を縦長に伸びる形状に変形したり、伸張化したり、不規則な変化を起こしたりするようにしてもよい。
【0105】
または、他の例として、たとえば図17に示されるように、仮想対象外オブジェクトを透明にしたり、色彩を変化させてもよい。さらに仮想外オブジェクトの他の変化としては、たとえば、有彩色から無彩色へ変化させたり、3次元表示から2次元表示に変化させたりすることが挙げられる。なお、この場合、仮想対象外オブジェクトの表示画像の透明の部分、無彩色となった部分については、選択不可能な範囲であるものとする。すなわち、当該部分をポインタ200で指定されても、その仮想対象外オブジェクトが選択されたものとはしないように処理する。
【0106】
<変形例2>
以上の説明では、ポインタ位置から予め規定された範囲内に仮想オブジェクトの表示位置があれば、当該仮想オブジェクト以外の仮想オブジェクトの形状を小さくするものとしているが、好ましくは、ポインタ位置から予め規定された第1の範囲内に仮想オブジェクト(仮想対象オブジェクト)の表示位置があり、かつ、ポインタ位置から第1の範囲よりも広い第2の範囲内に複数の仮想オブジェクト(仮想対象外)の表示位置がある場合に、当該仮想対象外オブジェクトの形状を小さくするようにしてもよい。これは、以降の表示処理例でも同様である。
【0107】
このようにすることで、ポインタ位置から第2の範囲内に複数の仮想オブジェクトが表示され、ユーザが指定しようとする仮想オブジェクトが重なりあって指定し難い状態であっても、その範囲内のよりポインタ位置に近い仮想オブジェクト、すなわち、ユーザが指定する可能性の高い仮想オブジェクト以外の仮想オブジェクトが仮想対象外オブジェクトとして小さくなる(または変形する)ので、ポインタ200を装着したユーザは仮想対象オブジェクトを指定しやすくなる。
【0108】
<変形例3>
上の例では、ポインタ位置から第1の範囲内にある仮想オブジェクトを仮想対象オブジェクトとし、それ以外の仮想オブジェクトをすべて仮想対象外オブジェクトとしてそのサイズを縮小するなどの変形を行なうものとしている。より好ましい他の例として、第1の範囲よりも広い第2の範囲に表示位置のある仮想オブジェクトのみを仮想対象外オブジェクトとして上記変形を行なうようにしてもよい。
【0109】
この場合、仮想対象外オブジェクト−ポインタ間距離判定部107は上記第2の範囲を規定する基準距離を記憶しておく。そして、仮想対象外オブジェクト−ポインタ間距離判定部107は、上記基準距離と比較することで、仮想対象外オブジェクトを特定する。上記ステップS305でCPUは、上記第1の範囲外の仮想オブジェクトであって、上記第2の範囲を規定する基準距離である仮想オブジェクトを仮想対象外オブジェクトとして抽出する。
【0110】
このようにすることで、変形させる仮想オブジェクトの数を抑えることができ、CPUでの処理を容易にすることができる。
【0111】
<変形例4>
上の例では、ポインタ位置と仮想対象オブジェクトの表示位置との間の距離Dに応じた、仮想対象外オブジェクトを変形させる表示倍率が記憶されているものとしている。その他の変形の例であっても同様である。しかしながら、他の例として、変形対象の仮想対象外オブジェクトとポインタ位置との距離に応じた変形の割合が記憶されており、その割合に応じて仮想対象外オブジェクトを変形させてもよい。一例として、ポインタ位置と仮想対象外オブジェクトの表示位置との間の距離に応じて、その距離が長くなるほど縮小するような表示倍率が記憶されているとすると、ポインタ位置から遠くなる仮想対象外オブジェクトほどその形状が小さくなる。そのため、ポインタ200を装着したユーザは仮想対象外オブジェクトそれぞれのポインタ200からの距離をより視覚的に把握しやすくなる。
【0112】
<変形例5>
仮想対象外オブジェクトの変形の他の例として、さらに、カメラ300での撮影具合に基づいて変形の度合いを異ならせる例が挙げられる。具体的に、ディスプレイ400に透過性を有して表示することによって2次元のディスプレイ400上で仮想対象オブジェクトに重なって透過される仮想対象外オブジェクトについて、そうでない仮想対象外オブジェクトよりも変形の度合いが大きくなるように仮想対象外オブジェクトを変形させることが挙げられる。
【0113】
図18および図19は、変形例5にかかる表示の具体例を示す図である。図18に示される例は、仮想オブジェクトのうちの1つから所定範囲内にポインタ200が位置する場合に(図18(A))、当該仮想オブジェクトが仮想対象オブジェクトとされ、それ以外の仮想オブジェクトが仮想対象外オブジェクトと特定された上で、さらに、仮想対象外オブジェクトのうち、仮想対象オブジェクトと2次元のディスプレイ400上に重なって投影されるものが、そうでない仮想対象外オブジェクトよりもより小さくなるよう縮小される(図18(B))。また、図19に示される例は、仮想オブジェクトのうちの1つから所定範囲内にポインタ200が位置する場合に(図19(A))、当該仮想オブジェクトが仮想対象オブジェクトとされ、それ以外の仮想オブジェクトが仮想対象外オブジェクトと特定された上で、さらに、仮想対象外オブジェクトのうち、仮想対象オブジェクトと2次元のディスプレイ400上に重なって投影されるものが、そうでない仮想対象外オブジェクトよりもより透明度が高くなるように色彩が変更される(図19(B))。
【0114】
この場合、上記ステップS305でCPUは、仮想対象外オブジェクトのそれぞれについて、仮想対象オブジェクトに重なって投影されるか否かを判断する処理をさらに行なう。この処理として、たとえば、CPUはそれぞれの仮想オブジェクトの表示位置および形状の情報に基づいて、カメラ300からの撮影方向を法線とする平面にそれぞれの仮想オブジェクトの画像を投影し、その平面上においてこれらが重なっているか否かを判断する。その判断としては、たとえば、上記平面に投影された仮想対象オブジェクトの半径と仮想対象外オブジェクトの半径との和と上記平面上でのこれらの中心間距離とを比較する。その結果、半径の和が中心間距離よりも大なる場合に、CPUはカメラ300からの撮影画像に基づく位置に表示することで該仮想対象外オブジェクトが仮想対象オブジェクトに重なって投影されると判断し、そうでない場合に重なって投影されないと判断する。そして、変形対象の仮想対象外オブジェクトのうち、重なって投影されると判断されたものについては、その変形において、記憶されている変形の度合いを所定割合で増加させて適用する。
【0115】
なお、この場合、カメラ300の位置が変化したことが検出された場合、所定の間、この変形の度合いが維持されるようにしてもよい。
【0116】
このような処理が行なわれることで、2次元のディスプレイ400において仮想対象外オブジェクトが仮想対象オブジェクトと重なって表示される場合であっても、ポインタ200を装着したユーザは仮想対象外オブジェクトのポインタ200からの距離をより視覚的に把握しやすくなる。
【0117】
<表示処理例2>
図20は、ポインタ位置と仮想オブジェクトの位置との関係に基づいた表示処理の第2の例を説明する図である。図20を参照して、第2の例では、画像処理統括部として機能する処理装置100のCPUは、ポインタ位置が仮想オブジェクトの表示位置に近づいた場合に、その仮想オブジェクトを仮想対象オブジェクトとし、上記仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、その仮想対象オブジェクトの表示位置とポインタ位置との間の距離に応じて、仮想対象外オブジェクトを仮想対象オブジェクトから遠ざかるように表示位置を移動させる。すなわち、図20(A)に示されるように、指先に装着されたポインタ200が表示されている1つの仮想オブジェクトの表示位置に近づいていると検出された場合に、図20(B)に示されるように、その仮想オブジェクトを仮想対象オブジェクトとし、仮想対象オブジェクトから所定範囲内にある仮想対象外オブジェクトの表示位置を仮想対象オブジェクトから離すように移動させる。
【0118】
この表示処理を行なうため、仮想オブジェクト−ポインタ間距離判定部106は算出された仮想オブジェクトとポインタ位置との間の距離を一時的に記憶するための図示しないメモリを含む。また、処理対象の仮想オブジェクトを判定するためのしきい値としての基準距離を記憶しておく。そして、仮想オブジェクト−ポインタ間距離判定部106は上記基準距離と比較することで、仮想対象オブジェクトを特定する。
【0119】
また、仮想対象外オブジェクト表示データ生成部109は、予め、ポインタ200の位置と仮想対象オブジェクトとの間の距離Dの範囲ごとに、処理対象とする仮想対象外オブジェクトの移動距離を記憶しておく。一例として、ポインタ200の位置と仮想対象オブジェクトとの間の距離Dが小さくなるほど仮想対象外オブジェクトの移動距離が大きくなるような関係が記憶されている。そして、その対応関係に基づいて、仮想対象外オブジェクトに対して規定されている表示位置を更新することで、表示データを生成する。
【0120】
図21は、第2の表示処理のための動作の具体例を示すフローチャートである。図21を参照して、ステップS401で画像処理統括部として機能する処理装置100のCPUは、ポインタ位置と仮想オブジェクトの表示位置との間の距離Dを算出する。ステップS401の動作の詳細は図13で説明されたものである。
【0121】
また、ステップS403でCPUは、ポインタ位置から所定範囲内に表示位置のある仮想オブジェクトを処理対象の仮想オブジェクトとして抽出する。そして、ステップS405でCPUは、抽出した処理対象の仮想オブジェクトの中から、仮想対象オブジェクトを特定する。ステップS405での処理の一例として、CPUは、1つの仮想オブジェクトについて、直前の処理によって算出されたポインタ位置と仮想オブジェクトの表示位置との間の距離Dと上記ステップS401で算出された距離Dとを比較し、その差分がしきい値よりも大きく、かつ、ポインタ位置から当該仮想オブジェクトの表示位置へ向かう方向が上記直前の処理のときの方向と同じまたは略同じである場合に、当該仮想オブジェクトを仮想対象オブジェクトと特定する。すなわち、同じ仮想オブジェクトに向けて所定の速度でポインタ200の位置が所定量以上に進んでいる場合に、当該仮想オブジェクトに向けてポインタ200が移動していると判断し、その仮想オブジェクトを仮想対象オブジェクトとする。
【0122】
CPUは、ステップS403で抽出された処理対象とする仮想オブジェクトのうち、このような方法で特定された仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトと特定し、ステップS407でこれら仮想対象外オブジェクトを仮想対象オブジェクトから離す処理を実行する。具体的には、上記ステップS401で算出されたポインタ位置と仮想対象オブジェクトの表示位置との距離Dに基づいて、処理対象とする仮想対象外オブジェクトについて上述の記憶している対応関係より移動距離を決定して、それぞれの仮想対象外オブジェクトに規定されている表示位置を該移動距離を考慮して更新する。
【0123】
なお、ここでの移動は、特定の方向、距離への移動に限定されない。たとえば図20に表わされたように、上方に所定距離移動させるようにしてもよいし、図22に示されているように、下方に所定距離移動させる(落とす)ようにしてもよい。また、他の例として、当該仮想対象外オブジェクトの中心と仮想対象オブジェクトの中心とを結ぶ直線の方向であって、仮想対象オブジェクトから遠い方向に所定距離移動させるようにしてもよい。
【0124】
この画像を透過性を有してディスプレイ400に表示し、ディスプレイ400を介して視認される実空間に投影させることにより、図20や図22に示されたような表示が実現される。これにより、ポインタ200が向かっている仮想オブジェクトが指定される可能性の高い仮想対象オブジェクトとされ、その仮想対象オブジェクトから所定範囲内にある仮想対象外オブジェクトが仮想対象オブジェクトから離れて表示される。そのため、ポインタ200を装着したユーザは、複数の表示される仮想オブジェクトのポインタ200からの距離を視覚的に把握しやすくなり、ポインタ200が向かう仮想オブジェクトが指定しやすくなる。
【0125】
<変形例1>
なお、第2の表示例においても、第1の表示例と同様に、上記変形例4、5と同様の変形例があってもよい。すなわち、上記変形例4のように、仮想対象外オブジェクトの表示位置とポインタ位置との間の距離に応じた距離で、当該仮想対象外オブジェクトを移動させるようにしてもよい。また、上記変形例5のように、2次元のディスプレイ400上で仮想対象オブジェクトと重なって表示される仮想対象外オブジェクトについて、そうでない仮想対象外オブジェクトよりも移動量を大きくしてもよい。
【0126】
具体例として、図23に示されるように、仮想対象外オブジェクトを仮想対象オブジェクトから離すように上方に所定距離移動させる際に、2次元のディスプレイ400上で仮想オブジェクトに重なって投影される仮想対象外オブジェクト(図23(A)の例では手前から2番目、および4番目の仮想オブジェクト)については、重なっていない仮想対象外オブジェクト(図23(A)の例では一番手前、および一番奥の仮想オブジェクト)よりも移動量を大きく移動させてもよい。また、他の例として、図24に示されるように、仮想対象外オブジェクトを仮想対象オブジェクトから離すように下方に所定距離移動させ、さらに、2次元のディスプレイ400上で仮想オブジェクトに重なって投影される仮想対象外オブジェクト(図24(A)の例では手前から2番目、および4番目の仮想オブジェクト)については、重なっていない仮想対象外オブジェクト(図24(A)の例では一番手前、および一番奥の仮想オブジェクト)よりも透明度が高くなるように色彩を変化させてもよい。
【0127】
なお、この場合の、重なって投影されるか否かを判定する処理は、一例として、上述の処理と同様の処理を採用することができる。また、重なって投影されるか否かの判定は、第2の処理例に従って移動させた後の仮想対象外オブジェクトの表示位置に基づいて行なわれてもよい。
【0128】
このような処理が行なわれることにより、仮想対象オブジェクトから所定範囲内にある仮想対象外オブジェクトが仮想対象オブジェクトから離れて表示されると共に、2次元のディスプレイ400において仮想対象外オブジェクトが仮想対象オブジェクトに重なって投影される場合であっても、ポインタ200を装着したユーザは仮想対象外オブジェクトのポインタ200からの距離をより視覚的に把握しやすくなる。そのため、ポインタ200が向かう仮想オブジェクトがより指定しやすくなる。
【0129】
さらに、第1の表示例と第2の表示例とが組み合わされてもよい。
またさらに、上述の表示処理を、処理装置100に実行させるためのプログラムを提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、CD−ROM(Compact Disk-Read Only Memory)、ROM(Read Only Memory)、RAM(Random Access Memory)およびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【0130】
なお、本発明にかかるプログラムは、コンピュータのオペレーティングシステム(OS)の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずOSと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
【0131】
また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
【0132】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【0133】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0134】
100 処理装置、101A カメラ画像入力部、101B ポインタデータ入力部、101C 仮想オブジェクト情報入力部、102 ポインタオブジェクト抽出部、103 画像認識処理部、104 ポインタ形状記憶部、105 ポインタ表示データ生成部、106 仮想オブジェクト−ポインタ間距離判定部、107 仮想対象外オブジェクト−ポインタ間距離判定部、108 仮想対象外オブジェクト座標記憶部、109 仮想対象外オブジェクト表示データ生成部、110 仮想対象外オブジェクト形状記憶部、111 表示処理部、200 ポインタ、201 位置検出センサ、202 加速度センサ、203 方向性検知センサ、204 CPU、205 通信I/F、300 カメラ、400,401 ディスプレイ、402 CPU、403 通信I/F、500 サーバ、600 携帯端末、1021 ポインタ抽出部、1022 仮想オブジェクト抽出部、1023 仮想対象外オブジェクト抽出部、1031 ポインタ座標検出部、1032 仮想オブジェクト表示領域検出部、1033 仮想対象外オブジェクト表示領域検出部。
【技術分野】
【0001】
この発明は表示システム、表示処理装置、表示方法、および表示プログラムに関し、特に、撮影画像に選択可能なオブジェクトを表示するための表示システム、表示処理装置、表示方法、および表示プログラムに関する。
【背景技術】
【0002】
撮影画像に仮想世界を表わす画像情報を重ねて表示し、表示上、仮想現実を表示させる技術が提案されている。仮想現実の表示では、実世界を表わす撮影画像と仮想世界を表わす画像情報とがレイヤ構成になっており、実空間と仮想空間とが、実座標でリンクしている。
【0003】
仮想現実を用いたシステムではこのような表示構成であることから、仮想空間上にあるオブジェクトの位置を特定する際に3次元空間の奥行き感が把握し難く、オブジェクトの位置が特定し難いという問題があった。
【0004】
この問題に対して、ユーザの指示領域とオブジェクトとの距離に応じて、指示領域またはオブジェクトの少なくとも一方の色を変化させるようにしている例がある。具体例として、特開平5−342322号公報(以下、特許文献1)は、3次元空間で、指示領域座標とオブジェクトに関連付けられた座標との距離に基づいて、段階的にポインタまたはオブジェクトの色を変更する技術を開示している。
【0005】
他の例として、特開2002−109568号公報(以下、特許文献2)は、仮想空間上にオブジェクトが複数存在する場合に、目的とするオブジェクトを把握しやすくするため目印となるオブジェクト以外のオブジェクトを不可視にする技術を開示している。また、特開2003−337959号公報(以下、特許文献3)は、オブジェクトの表示形態を、視点からオブジェクまでの距離に基づいて変化させる技術を開示している。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平5−342322号公報
【特許文献2】特開2002−109568号公報
【特許文献3】特開2003−337959号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、これら特許文献に開示されているような技術では、3次元空間の奥行き感が把握し難く、3次元表示を視認しながらの選択がし難いという問題があった。特に、
複数のオブジェクトが近接して多数存在している場合にはそれぞれの奥行き感が把握し難いと、その中から特定のオブジェクトを選択して指定することが難しいという問題があった。
【0008】
本発明はこのような問題に鑑みてなされたものであって、撮影画像に仮想世界を表わす画像情報を重ね、実座標でリンクさせて表示した仮想現実において、ポイントしやすくオブジェクトを表示することができる表示システム、表示処理装置、表示方法、および表示プログラムを提供することを目的としている。
【課題を解決するための手段】
【0009】
上記目的を達成するために、本発明のある局面に従うと、表示システムは仮想オブジェクトの画像を表示するための表示システムであって、カメラと、ディスプレイと、表示処理装置とを備える。表示処理装置は、仮想オブジェクトに関する情報として、当該仮想オブジェクトを3次元で表示させるための画像情報と、撮影された空間に対して設定された3次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するための取得手段と、カメラによる撮影画像に対して3次元の座標系を設定し、仮想オブジェクトに対して規定された表示位置に仮想オブジェクトの画像を表示させるための表示画像を生成し、ディスプレイで表示させる処理を実行するための処理手段と、ユーザによって指定された3次元の座標系における位置を検出するための検出手段とを含む。処理手段は、撮影画像における仮想オブジェクトについて規定された表示位置と指定された位置との関係に基づいて仮想オブジェクトのうちの1つの仮想オブジェクトを仮想対象オブジェクトと特定し、仮想オブジェクトのうちの仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、仮想対象外オブジェクトの画像を変化させる処理を実行する。
【0010】
好ましくは、上記変化させる処理は、仮想対象外オブジェクトの画像を縮小する処理、仮想対象外オブジェクトの画像の形状を変化させる処理、仮想対象外オブジェクトの画像の色彩を変化させる処理、仮想対象外オブジェクトの画像の透明度を変化させる処理、および仮想対象外オブジェクトの画像の表示位置を変化させる処理のうちの少なくとも1つである。
【0011】
好ましくは、処理手段は、撮影画像における仮想オブジェクトについて規定された表示位置と指定された位置との間の距離が、予め規定されている第1の基準距離よりも小さい仮想オブジェクトを仮想対象オブジェクトと特定する。
【0012】
より好ましくは、処理手段は、仮想対象外オブジェクトの画像を、指定された位置と仮想対象オブジェクトとの間の距離に応じて縮小する。
【0013】
好ましくは、処理手段は、ユーザによって指定される位置の変化量に基づいて指定される位置が向かう方向に表示位置が該当している仮想オブジェクトを仮想対象オブジェクトと特定する。
【0014】
より好ましくは、処理手段は、仮想対象外オブジェクトの表示位置を、指定された位置と仮想対象オブジェクトとの間の距離に応じて、仮想対象オブジェクトから遠くなる方向に変化させる。
【0015】
好ましくは、処理手段は、カメラの位置と仮想オブジェクトとの位置関係に基づいて、仮想対象オブジェクトに重なって表示される仮想対象外オブジェクトの画像の変化を、重なって表示されない仮想対象外オブジェクトの画像の変化よりも大きく変化させる。
【0016】
より好ましくは、処理手段は、カメラの位置の変化が検出されると、変化前のカメラの位置に応じて仮想対象オブジェクトに重なって表示されると特定された仮想対象外オブジェクトの画像の変化を、カメラの位置の移動後も維持する。
【0017】
好ましくは、処理手段は、撮影画像における仮想オブジェクトについて規定された表示位置と指定された位置との間の距離が、第1の基準距離よりも大きい第2の基準距離よりも小さい仮想オブジェクトであって、仮想対象オブジェクトと特定された仮想オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトと特定する。
【0018】
好ましくは、ディスプレイは、表示面と逆側の面からの光を透過し、表示処理手段で生成された表示画像を、表示面に透過性を有して表示する。
【0019】
本発明の他の局面に従うと、表示処理装置は仮想オブジェクトの画像をディスプレイに表示させるための表示処理装置であって、撮影画像の入力を受付けるための入力手段と、仮想オブジェクトに関する情報として、当該仮想オブジェクトを3次元で表示させるための画像情報と、撮影された空間に対して設定された3次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するための取得手段と、撮影画像に対して3次元の座標系を設定し、仮想オブジェクトに対して規定された表示位置に仮想オブジェクトの画像を表示させるための表示画像を生成し、ディスプレイで表示させる処理を実行するための処理手段と、ユーザによって指定された3次元の座標系における位置を検出するための検出手段とを含む。処理手段は、撮影画像における仮想オブジェクトについて規定された表示位置と指定された位置との関係に基づいて仮想オブジェクトのうちの1つの仮想オブジェクトを仮想対象オブジェクトと特定し、仮想オブジェクトのうちの仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、仮想対象外オブジェクトの画像を変化させる処理を実行する。
【0020】
本発明のさらに他の局面に従うと、表示方法は仮想オブジェクトの画像をディスプレイに表示させる方法であって、カメラから撮影画像の入力を受付けるステップと、撮影画像に対して3次元の座標系を設定するステップと、ユーザによって指定された3次元の座標系における位置を検出するステップと、仮想オブジェクトに関する情報として、当該仮想オブジェクトを3次元で表示させるための画像情報と、撮影された空間に対して設定された3次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するステップと、撮影画像における仮想オブジェクトについて規定された表示位置と指定された位置との関係に基づいて仮想オブジェクトのうちの1つの仮想オブジェクトを仮想対象オブジェクトと特定し、仮想オブジェクトのうちの仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、仮想対象外オブジェクトの画像を変化させるステップとを備える。
【0021】
本発明のさらに他の局面に従うと、表示プログラムは表示処理装置に仮想オブジェクトの画像をディスプレイに表示させる処理を実行させるためのプログラムであって、カメラから撮影画像の入力を受付けるステップと、撮影画像に対して3次元の座標系を設定するステップと、ユーザによって指定された3次元の座標系における位置を検出するステップと、仮想オブジェクトに関する情報として、当該仮想オブジェクトを3次元で表示させるための画像情報と、撮影された空間に対して設定された3次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するステップと、撮影画像における仮想オブジェクトについて規定された表示位置と指定された位置との関係に基づいて仮想オブジェクトのうちの1つの仮想オブジェクトを仮想対象オブジェクトと特定し、仮想オブジェクトのうちの仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、仮想対象外オブジェクトの画像を変化させるステップとを表示処理装置に実行させる。
【発明の効果】
【0022】
この発明によると、撮影画像に仮想世界を表わす画像情報を重ね、実座標でリンクさせて表示された仮想現実において、表示される選択肢としてのオブジェクトを、より直感的に、より簡易に選択することが可能となる。
【図面の簡単な説明】
【0023】
【図1】本実施の形態にかかる表示システムの構成の具体例を示す図である。
【図2】本実施の形態にかかる表示システムの構成の他の具体例を示す図である。
【図3】表示システムに含まれるディスプレイの装置構成の具体例を示すブロック図である。
【図4】ポインティングデバイスである場合の、表示システムに含まれるポインタの装置構成の具体例を示すブロック図である。
【図5】本実施の形態にかかる表示システムの用いられ方の一例を説明する図である。
【図6】本実施の形態にかかる表示システムの用いられ方の一例を説明する図である。
【図7】表示システムに含まれる処理装置の機能構成の具体例を示すブロック図である。
【図8】基本の表示動作の具体例を示すフローチャートである。
【図9】マーカとして記憶されている画像の具体例を示す図である。
【図10】撮影画像中のマーカの検出例と、その検出結果に基づく仮想オブジェクトの表示例とを示す図である。
【図11】表示システムでの表示の一例を示す図である。
【図12】記憶される仮想オブジェクトの座標値の具体例を示す図である。
【図13】仮想オブジェクト−ポインタ間距離を計算する動作の具体例を示すフローチャートである。
【図14】ポインタ位置と仮想オブジェクトの位置との間の距離を用いた表示処理の第1の例を説明する図である。
【図15】第1の例にかかる表示処理のための動作の具体例を示すフローチャートである。
【図16】表示処理の第1の例の、変形例を説明する図である。
【図17】表示処理の第1の例の、変形例を説明する図である。
【図18】表示処理の第1の例の、変形例を説明する図である。
【図19】表示処理の第1の例の、変形例を説明する図である。
【図20】ポインタ位置と仮想オブジェクトの位置との間の距離を用いた表示処理の第2の例を説明する図である。
【図21】第2の例にかかる表示処理のための動作の具体例を示すフローチャートである。
【図22】表示処理の第2の例の、変形例を説明する図である。
【図23】表示処理の第2の例の、変形例を説明する図である。
【図24】表示処理の第2の例の、変形例を説明する図である。
【発明を実施するための形態】
【0024】
以下に、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。
【0025】
<システム構成>
図1は、本実施の形態にかかる表示システムの構成の具体例を示す図である。
【0026】
図1を参照して、本実施の形態にかかる表示システムは、処理装置100と、ポインタ200と、カメラ300と、ウェアラブルディスプレイであるディスプレイ400と、サーバ500と、オブジェクト設定機器としての携帯端末600とを含む。
【0027】
処理装置100は、カメラ300、ディスプレイ400、およびサーバ500とそれぞれ電気的に接続されている。この接続は、LAN(Local Area Network)などの特定のネットワークを介した接続であってもよいし、インターネットなどの公衆回線を介した接続であってもよい。また、無線、有線のいずれであってもよい。
【0028】
処理装置100およびサーバ500は、一般的なパーソナルコンピュータ(PC)などで構成されてもよい。
【0029】
携帯端末600は、携帯電話機や携帯型のPCなどで構成されてもよいし、通常の、一般的なPCで構成されてもよい。
【0030】
カメラ300は、処理装置100と電気的に接続可能であって、撮影画像を処理装置100に送信する機能を有するものであれば、どのようなものであってもよい。
【0031】
ディスプレイ400はカメラ300と一体となったウェアラブルディスプレイである。ディスプレイ400は透過性を有した表示部としてのディスプレイ401(図3参照)を備え、処理装置100と電気的に接続されて、処理装置100から送信された画像データを、表示部としてのディスプレイ401に対して透過性を有して表示する機能を有する。
【0032】
ポインタ200は所定の形状または模様を有する。該形状または模様は処理装置100に予め登録されており、マーカとして用いられる。すなわち、処理装置100は、カメラ300によって撮影された画像中に存在するマーカとしてのポインタ200の位置を画像処理によって特定する。なお、図1の例では、ポインタ200はユーザの指先に装着される筒状のものであり、処理装置100には予め該筒状の形状またはその表面に施された模様が記憶されているものとする。しかしながら、ポインタ200はユーザの身体の一部に装着されるものには限定されず、たとえば、予め記憶された形状または模様を有した指示棒のようなものであってもよい。さらには、ポインタ200が用いられず、直接ユーザの指先などの指示に用いる身体の一部の形状またはその表面に施された模様が予めマーカとして処理装置100に記憶されており、カメラ300によって撮影された画像中に存在する該マーカの位置が処理装置100での画像処理によって特定されるものであってもよい。
【0033】
なお、ポインタ200の他の例として、処理装置100と電気的に接続可能であり、位置センサ、加速度センサ、傾きセンサなどのセンサを搭載し、該ポインタ200を用いて位置を指定するユーザ操作を受付けて位置などを検出し、処理装置100に対して送信する機能を有するポインティングデバイスであってもよい。
【0034】
さらにポインタ200の他の例として、処理装置100と電気的に接続可能であり、音声入力を受付けるマイクであってもよい。ユーザは、該マイクを用いて指定する位置をたとえば座標などで指示することができる。この場合、処理装置100は音声解析機能を備え、マイクからの音声信号を解析して指定された位置を特定する。
【0035】
処理装置100は、カメラ300から受信した画像を元に処理を行なう。そして、その処理結果をディスプレイ400に表示させるための処理を行なう。
【0036】
携帯端末600は、少なくともユーザからの入力操作を受付けるための操作部とサーバ500と通信するための通信部とを備える。操作部での操作によって後述する仮想オブジェクトに関する情報の入力を受付け、その情報をサーバ500に対して送信する。サーバ500は、入力された仮想オブジェクトの情報を記憶し、処理装置100からの要求に応じてその情報を処理装置100に提供する。
【0037】
本実施の形態にかかる表示システムが図1に示される構成である場合、ユーザがウェアラブルディスプレイであるディスプレイ400に透過性を有して表示される画像が投影された、ディスプレイ400の表示部としてのディスプレイ401(図3参照)を透過して見える風景を見ながら、指先に装着したポインタ200を使ってポイントする。
【0038】
なお、図1に示された表示システムには、カメラ300からディスプレイ400で表示するため、およびポインタ200の位置を特定するための撮影画像が処理装置100に入力されるものとしている。しかしながら、ポインタ200の位置を特定するための撮影画像を得るためのカメラがカメラ300と別に備えられてもよい。
【0039】
<システム構成の他の例>
なお、以降の説明において、本実施の形態にかかる表示システムは図1に示された構成であって、ユーザは、ウェアラブルディスプレイであるディスプレイ400に透過性を有して表示された画像が投影された風景をディスプレイ401を介して見ながら、その風景に対して指先に装着したポインタ200を使ってポイントするものとする。しかしながら、他の例として、ディスプレイ400がウェアラブルディスプレイではなく、たとえば図2に示されるように、カメラ300およびポインタ200と電気的に接続されたPCで構成されるものであってもよい。カメラ300とPCとの接続がインターネットを介したものである場合、カメラ300として、たとえばWEBカメラが挙げられる。PCで構成されたディスプレイ400には、カメラ300からの撮影画像と処理装置100からの画像とが合成されて表示される。この場合、ユーザはその表示を見ながら、指先に装着したポインタ200を使ってポイントすることができる。
【0040】
<装置構成>
処理装置100、サーバ500、および携帯端末600は上述のように一般的なPCや携帯電話機などで構成されてもよいので、その装置構成は特定の構成に限定されない。すなわち、処理装置100、サーバ500、および携帯端末600は、少なくとも、全体を制御するためのCPU(Central Processing Unit)、CPUで実行するプログラムや仮想現実を表示するために必要な画像情報などを記憶するためのROM(Read Only Memory)やRAM(Random Access Memory)などのメモリ、および他の装置と電気的に接続してデータのやり取りを行なうための通信インタフェース(I/F)を含む。また、携帯端末600は、上述のように、ユーザからの操作入力を受付ける操作部をさらに含む。
【0041】
カメラ300は、カメラ部と、撮影画像やプログラムを記憶するためのメモリと、撮影画像を処理装置100に送信する処理を実行するためのCPUと、当該カメラ300の位置を検知するためのセンサと、処理装置100と電気的に接続して撮影画像を送信するための通信I/Fとを含む。
【0042】
図3は、ディスプレイ400の装置構成の具体例を示すブロック図である。図3を参照して、ディスプレイ400は、表示部としての、透過性を有したディスプレイ401と、表示画像をディスプレイ401に表示する処理を実行するためのCPU402と、処理装置100と電気的に接続して表示画像を受信するための通信I/F403とを含む。
【0043】
CPU402は通信I/F403によって受信されるネットワーク上のデータ(パケット)のうちの、処理装置100から送信される表示用のデータを取得する。
【0044】
図4は、ポインティングデバイスである場合の、ポインタ200の装置構成の具体例を示すブロック図である。図4を参照して、ポインタ200は、一例として、位置検出センサ201、加速度センサ202、方向性検知センサ(傾きセンサ)203などのセンサと、これらセンサで位置情報等を検出する処理を実行するためのCPU204と、処理装置100と電気的に接続して検出結果を送信するための通信I/F205とを含む。さらに、図示しない、センサでの検出結果やプログラムを記憶するためのメモリが含まれていてもよい。
【0045】
<動作概要>
本実施の形態にかかる表示システムは、コンピュータグラフィックスなどによって予め生成された仮想物体(仮想オブジェクト)を表わす画像を、現実世界を表わす撮影画像に対して携帯端末600で設定された表示位置に応じて、ディスプレイ400に透過性を有して表示する。これにより、ウェアラブルディスプレイであるディスプレイ400を装着したユーザには、仮想オブジェクトがディスプレイ400を介して視認できる現実世界に浮かんでいるように見える。このとき、実際に浮かんでいるように仮想オブジェクトをディスプレイ400に表示させるため、携帯端末600で仮想オブジェクトの表示位置に対して奥行きを設定し、設定された奥行きに応じて3次元で仮想オブジェクトを表示する。これにより、仮想オブジェクトは、ディスプレイ400を介して視認できる実空間のある奥行きの位置に浮かんでいるように表示される。
【0046】
「仮想オブジェクト」とは、現実世界を表わす撮影画像内のコンテンツに関連付けられた選択肢である3次元の画像を指す。仮想オブジェクトごとに、当該仮想オブジェクトを表示させるための画像情報と、撮影画像で表わされた撮影空間に対して設定された3次元の座標系における表示位置(以下、仮想オブジェクト座標とも称する)と、選択されることによって実行される動作とが規定されている。この仮想オブジェクトに関する情報は携帯端末600によって設定され、サーバ500に記憶されている。
【0047】
処理装置100は、カメラ300から入力された撮影画像にその撮影空間に対して設定されている3次元座標系を設定した上で、同じ3次元座標系で表示位置、奥行きが設定されている仮想オブジェクトの表示位置を特定する。そして、その位置に表示させるように該仮想オブジェクトの画像を処理し、処理された表示画像をディスプレイ400に対して送信する。
【0048】
処理装置100は、撮影画像に対して画像処理を実行することによってポインタ200で指定された位置を特定し、その位置を、撮影空間に対して設定されている3次元座標系における位置に変換する。そして、指定された位置に応じた仮想オブジェクトに対して規定された動作を実行する。または、該動作を実行させるために図示しない必要な装置に対して制御信号を出力する。
【0049】
この表示システムの用いられ方の一例として、図5に示されるような用いられ方が挙げられる。図5は、ウェアラブルディスプレイであるディスプレイ400を介して視認される室内である実空間に、仮想現実である画像情報を投影するように当該画像情報をディスプレイ400に透過性を有して表示させた、表示システムでの表示の一例を示している。図5において、3次元の球体が仮想オブジェクトを表わしている。
【0050】
図5の表示は、ウェアラブルディスプレイであるディスプレイ400を装着したユーザが机に向かっているユーザの右後ろに立って室内に向いたときに、ディスプレイ400に透過性を有して表示された仮想オブジェクトが投影されて当該ユーザに視認される風景を表わした表示である。
【0051】
図5の例において、仮想オブジェクトで表わされた選択肢は、実空間である室内のコンテンツとしてカレンダやユーザの左上の位置の実座標と関連付けられている。そのため、仮想オブジェクトは、予め規定された表示位置に基づいて、図5の例では、カレンダやユーザの左上の位置の近傍など、選択肢が関連付けられたコンテンツの近傍に3次元の仮想オブジェクトが表示されている。
【0052】
その表示を視認しながらウェアラブルディスプレイを装着したユーザがポインタ200を装着した指先等をディスプレイ400に表示される仮想オブジェクトの位置にすると、該ユーザは、該仮想オブジェクトに対して規定された動作として、関連付けされているデータが表示され閲覧できたり、リモコンの様に対応した機器を操作できたりする。一例として、図5のカレンダの近傍に表示されている仮想オブジェクトにポインタ200で触れると、予め登録されているユーザのスケジュール情報が表示される。また、他の例として、ユーザの左上の仮想オブジェクトに触れると、予めその位置と対応付けられている空気調和機に対して制御信号が出力され、空調温度が変更される。
【0053】
この表示システムの用いられ方の他の例として、図6に示されるような用いられ方が挙げられる。図6は、ウェアラブルディスプレイであるディスプレイ400を介して視認される工場内である実空間に、仮想現実である画像情報を投影するように当該画像情報をディスプレイ400に透過性を有して表示させた、表示システムでの表示の一例を示している。図6においても、3次元の球体が仮想オブジェクトを表わしている。
【0054】
図6の表示は、ウェアラブルディスプレイであるディスプレイ400を装着したユーザが机に向かっている2人のユーザのさらに右側に立って室内から工場に向いたときに、ディスプレイ400に透過性を有して表示された仮想オブジェクトが投影されて当該ユーザに視認される風景を表わした表示である。
【0055】
図6の例において、仮想オブジェクトで表わされた選択肢は、実空間である工場内のコンテンツとしての機器などの実座標と関連付けられている。そのため、仮想オブジェクトは、予め規定された表示位置に基づいて、図6の例では、工場内の各機器の近傍など、選択肢が関連付けられたコンテンツの近傍に3次元の仮想オブジェクトが表示されている。
【0056】
その表示を視認しながらウェアラブルディスプレイを装着したユーザがポインタ200を装着した指先等をディスプレイ400に表示される仮想オブジェクトの位置にすると、該仮想オブジェクトに対して規定された動作の一例として、関連付けされている工場内の各機器から発信されている情報(進捗管理、エラー情報、取扱方法)にアクセスできる。より好ましくは、表示システムにおいて、エラーの緊急度やアクセスできるデータの種類に応じて、予め設定された対応関係に基づいて仮想オブジェクトの色や形を変更させてもよい。これにより、エラーの緊急度やアクセスできるデータの種類などをユーザに分かりやすく報知することができる。
【0057】
より好ましくは、仮想オブジェクトに関する情報はユーザごと、またはユーザの所属するグループ(部署等)に対応付けられてもよい。このようにすることで、予め当該表示システムにログインすることによって、ユーザまたはユーザの所属するグループに付与された権限により該ユーザまたはグループに応じた(操作可能または許可された)仮想オブジェクトが表示される。
【0058】
図5や図6に表わされたように、表示システムでの表示では、2次元の表示装置であるディスプレイ400に仮想オブジェクトが3次元表示されるものである。そのため、仮想オブジェクトの奥行き感が視認し難いと、ユーザがそのうちの所望する仮想オブジェクトを指定し難くなる。特に、ディスプレイ400にて、異なる奥行きが設定された複数の仮想オブジェクトが近接して表示されると、それぞれの奥行き感が視認されないと、2次元平面の表示画面では仮想オブジェクトの表示が重なり、ユーザがそのうちの所望する仮想オブジェクトを指定し難くなる。
【0059】
そこで、本実施の形態にかかる表示システムは、仮想オブジェクトに規定された表示位置(3次元座標)とポインタ200で指定された位置(3次元座標)との間の距離に応じた表示処理を実行することで、このような場合であっても、ユーザが所望する仮想オブジェクトを指定しやすいように表示する。
【0060】
具体的に、処理装置100は、仮想オブジェクトの表示位置とポインタ200での指定位置との間の関係に基づいて、ポインタ200でのポインタ位置から所定の範囲内にある仮想オブジェクトは指定される可能性のある仮想オブジェクトと特定し、その範囲内にない仮想オブジェクトは指定される可能性の低い仮想オブジェクトと特定する。この、指定される可能性の低い仮想オブジェクトは、以降の説明において「仮想対象外オブジェクト」と称する。
【0061】
処理装置100は、仮想対象外オブジェクトの表示態様をそうでない仮想オブジェクトの表示態様と異ならせることで、ユーザに指定する可能性の高い仮想オブジェクトの指定をしやすく表示する。
【0062】
<機能構成>
図7は、本実施の形態にかかる表示システムが上の動作概要で説明された動作を行なうための、処理装置100の機能構成の具体例を示すブロック図である。図7は、主に、図示しないCPUがメモリに記憶されるプログラムを読み出して実行することで、CPUが画像処理統括部として機能する場合の機能構成の具体例を示している。図7に示された機能は、主にCPU上に構成されるものである。しかしながら、その一部がハードウェア構成で実現されてもよい。
【0063】
図7を参照して、画像処理統括部として機能する処理装置100のCPUは、カメラ300からの撮影画像の入力を受付けるためのカメラ画像入力部101Aと、ポインタ200からの入力信号を受付けるためのポインタデータ入力部101Bと、サーバ500から提供される仮想オブジェクト情報の入力を受付けるための仮想オブジェクト情報入力部101Cと、これら入力された情報に基づいてポインタ200でのポイント位置および仮想オブジェクトの表示領域などの検出を行なうためのポインタオブジェクト抽出部102と、入力された撮影画像に対して画像認識処理を行なうことで、抽出されたポインタ200でのポイント位置および仮想オブジェクトの表示領域などの撮影画像上の位置(座標)を特定するための画像認識処理部103と、ポインタ200の形状を記憶しておくためのポインタ形状記憶部104と、必要に応じて記憶されているポインタ200の形状を用いて撮影画像上にポインタ200を表示させる表示データを生成するためのポインタ表示データ生成部105と、画像認識処理部103での処理結果に基づいて、ポインタ200での表示位置(以下、ポインタ位置とも称する)と仮想オブジェクトの表示位置との距離を算出するための仮想オブジェクト−ポインタ間距離判定部106と、仮想対象外オブジェクトについて表示位置との距離を算出するための仮想対象外オブジェクト−ポインタ間距離判定部107と、仮想対象外オブジェクトについてオブジェクトごとに表示位置を記憶するための仮想対象外オブジェクト座標記憶部108と、後述する処理を行なって仮想対象外オブジェクトを表示させる表示データを生成するための仮想対象外オブジェクト表示データ生成部109と、表示させる仮想対象外オブジェクトの形状を記憶するための仮想対象外オブジェクト形状記憶部110と、生成された表示データをディスプレイ400に透過性を有して表示させるための表示画像を生成するための表示処理部111とを含む。
【0064】
さらに図7を参照して、ポインタオブジェクト抽出部102は、ポインタ抽出部1021と、仮想オブジェクト抽出部1022と仮想対象外オブジェクト抽出部1023とを含む。
【0065】
ポインタ抽出部1021は、ポインタ200で指示された位置を撮影画像から抽出するための機能である。具体的には、入力された撮影画像からポインタ形状記憶部104に記憶されているポインタ200の形状を抽出する。
【0066】
仮想オブジェクト抽出部1022および仮想対象外オブジェクト抽出部1023は、それぞれ、撮影画像において仮想オブジェクトおよび仮想対象外オブジェクトが表示される領域を抽出するための機能である。
【0067】
具体的には、サーバ500に予め仮想オブジェクトに規定されている情報として該仮想オブジェクトの3次元座標系での表示位置が記憶されており、仮想オブジェクト抽出部1022は、その情報に基づいて処理対象の仮想オブジェクトの表示位置を含む領域を表示領域として抽出する。また、仮想対象外オブジェクト座標記憶部108に予め仮想対象外オブジェクトに規定されている情報として該仮想対象外オブジェクトの3次元座標系での表示位置が記憶されており、仮想対象外オブジェクト抽出部1023は、記憶された情報に基づいて処理対象の仮想対象外オブジェクトの表示位置を含む領域を表示領域として抽出する。
【0068】
さらに図7を参照して、画像認識処理部103は、ポインタ座標検出部1031と、仮想オブジェクト表示領域検出部1032と仮想対象外オブジェクト表示領域検出部1033とを含む。
【0069】
ポインタ座標検出部1031は、ポインタオブジェクト抽出部102で抽出されたポインタ200で指示された位置を撮影画像上で特定するための機能である。具体的には、ポインタオブジェクト抽出部102で抽出されたポインタ200で指示された位置の、撮影画像上における位置や奥行きを特定する。そして、該撮影画像に設定された3次元座標系においてその3次元の位置を表わす座標(以下、ポインタ座標とも称する)に換算する。
【0070】
ポインタ200が上述のポインティングデバイスである場合には、処理装置100は、この機能に替えてポインティングデバイスであるポインタ200から検出結果の入力を受付けて、その検出結果に基づいて撮影画像上の位置を特定する機能を有する。
【0071】
仮想オブジェクト表示領域検出部1032および仮想対象外オブジェクト表示領域検出部1033は、それぞれ、ポインタオブジェクト抽出部102で抽出された仮想オブジェクトの表示領域および仮想対象外オブジェクトの表示領域の、撮影画像に設定された3次元座標系における領域を表示領域として検出する。
【0072】
また、仮想オブジェクト表示領域検出部1032および仮想対象外オブジェクト表示領域検出部1033は、後述する表示処理によって仮想オブジェクトまたは仮想対象外オブジェクトについて予め規定されている表示位置が変化した場合に、変化後の表示位置を特定する。
【0073】
仮想オブジェクト−ポインタ間距離判定部106および仮想対象外オブジェクト−ポインタ間距離判定部107は、それぞれ、3次元座標系で表わされたポインタ座標および仮想オブジェクト座標とからその間の距離を求める。
【0074】
さらに、仮想オブジェクト−ポインタ間距離判定部106は、予め基準距離を記憶しておき、算出された距離が該基準距離よりも大きい場合、すなわち、仮想オブジェクトの表示位置として規定された位置から所定範囲よりも遠い位置が指定された場合に、該仮想オブジェクトが指定される可能性の低い仮想オブジェクトである仮想対象外オブジェクトと判定し、その結果を仮想対象外オブジェクト表示データ生成部109に入力する。同様に、仮想対象外オブジェクト−ポインタ間距離判定部107も、算出された距離が上記基準距離よりも大きい場合、引き続き対象の仮想オブジェクトが指定される可能性の低い仮想対象外オブジェクトと判定し、その結果を仮想対象外オブジェクト表示データ生成部109に入力する。
【0075】
仮想対象外オブジェクト表示データ生成部109はかかる判定結果に応じて当該仮想オブジェクトを対象外オブジェクトとして表示するための表示データを生成する。この処理については、以降の各実施の形態において具体的に説明する。
【0076】
<基本の表示動作フロー>
本実施の形態にかかる表示システムにおいて、ユーザから見える現実世界を表わす撮影画像にコンピュータグラフィックス等によって描かれた仮想物体(仮想オブジェクト)を表わす画像情報を重畳して表示させる動作について説明する。ここでは、具体例として、拡張現実感の研究のためにワシントン大学HIT研究室で開発されたソフトウェアライブラリとしてのプログラムを用いて実現される動作について説明する。用いられるプログラムはこのプログラムに限定されない。
【0077】
図8は、基本の表示動作の具体例を示すフローチャートである。図8のフローチャートに示される動作は、処理装置100の図示しないCPUがメモリに記憶されている上述のようなプログラムを読み出して実行することによって実現される。
【0078】
図8を参照して、まず、処理が開始するとステップS101で画像処理統括部として機能するCPUは、初期化処理を実行する。ここでの初期化処理の一つとして、図示しないメモリに記憶されている撮影画像に対して設定した座標系を初期化する処理が含まれる。
【0079】
ステップS103でCPUは、カメラ300からの撮影画像の入力を受付けて、撮影画像を取得する。CPUは、撮影画像(1フレーム)が入力されるごとに当該撮影画像に基づいて仮想オブジェクトの表示位置を特定してその表示位置に応じた処理を当該仮想オブジェクトの画像データに対して施し、ディスプレイ400に表示画像を送信する動作を繰り返す。これにより、カメラ300の移動に伴って連続的に入力される撮影画像に応じて、連続的に3次元の仮想オブジェクトが透過性を有してディスプレイ400に表示されるようになる。
【0080】
ステップS105でCPUは、入力された撮影画像を図示しない描画用のメモリに描画し、ステップS107でそのメモリに展開された画像の中から座標系の基準となる位置を特定するコンテンツを表わす撮影画像に含まれる画像を、マーカとして検出する。CPUは、予め基準とする状態でのマーカとする画像、および、そのマーカと撮影空間に設定される3次元座標系における座標との関係を記憶している。
【0081】
一例として、CPUはマーカの画像として図9の画像を記憶しているものとする。そして、一例として、撮影空間のこのマーカの画像に表わされた板状のコンテンツのある位置を、3次元座標系の原点とし、このコンテンツに対して3方向に、x軸、y軸、z軸を設定する、との3次元座標系との対応関係を記憶しているものとする。
【0082】
この場合、ステップS107でCPUは、メモリに展開した撮影画像から図9の画像を検索する。そして、その画像またはその画像に近似した画像を検出すると、撮影画像内にマーカが存在すると認識し、ステップS109でCPUは、その信頼度を比較する。ステップS109での処理の一例として、CPUは、予め記憶されているマーカの画像と検出された画像とを比較し、その相関度合いが基準として設定されているものを満たしているか否かで信頼度を比較する。
【0083】
その後、ステップS111でCPUは、撮影画像から検出されたマーカの画像の位置や、検出されたマーカの画像と記憶している画像との比較に基づいて、この撮影画像を撮影した時のカメラ300の位置や方向を計算する。そして、ステップS113で、計算されたカメラ300の位置や方向に基づいて、撮影画像に対して、予めマーカとした画像の位置を原点とし、マーカとした画像の傾きに応じてx軸、y軸、z軸を設定する。
【0084】
さらに、記憶されている仮想オブジェクトの情報に基づいて、表示位置として3次元座標で記憶されているそれぞれの仮想オブジェクト座標を撮影画像に設定された3次元座標系において特定し、撮影画像の奥行きや傾きに応じて仮想対象外オブジェクトの画像を変換(変形)した上で、特定された位置に透過性を有して表示させる。これにより、仮想オブジェクトが、規定された表示位置に、その撮影位置、撮影方向に応じた形状で3次元に表示される。
【0085】
たとえば、図9の画像がマーカの画像として記憶されているところ、撮影画像中に図10(A)の画像がマーカとして検出された場合、カメラ300の撮影位置がマーカで表わされたコンテンツの正面よりも向かって右側上方、撮影方向が該コンテンツを見下ろす角度と、カメラ300の位置や方向が計算される。CPUは、予め該マーカとの関係で規定されている3次元の座標系を撮影位置、撮影方向に基づいて撮影画像に対して設定する。
【0086】
さらに、仮想オブジェクトに関する情報において、図9の画像に示されたマーカとするコンテンツのある原点を表示位置とする仮想オブジェクトがあり、その仮想オブジェクトの形状が立方体である場合、CPUは、その仮想オブジェクトの形状をカメラ300から該コンテンツまでの距離や方向などに基づいて変形して、規定された表示位置に透過性を有して描画する。これにより、図10(B)に示されるように、原点とするマーカの画像の近傍にマーカで表わされたコンテンツと同じ位置、方向から見たように変形された形状の3次元の仮想オブジェクトが、透過性を有して表示される。
【0087】
ステップS115でCPUは、以上の処理で得られた仮想オブジェクトの画像データを、ディスプレイ400に表示のための制御信号と共に送信する。ディスプレイ400では仮想オブジェクトの画像データを表示させる処理が実行される。これにより、図10(B)に示されたように、ウェアラブルディスプレイであるディスプレイ400を介して視認される実空間に仮想オブジェクトが浮かんだ状態で視認されることになる。
【0088】
CPUは、表示の終了を要求する信号が入力されるまで、カメラ300から撮影画像が入力されるたびに以上の処理を繰り返す。そして、表示の終了を要求する信号の入力を受付けると(ステップS117でYES)、一連の動作を終了する。
【0089】
<仮想オブジェクト−ポインタ間距離の算出フロー>
画像処理統括部として機能する処理装置100のCPUは、上述のように、仮想オブジェクトの表示された3次元座標系上の位置と、ディスプレイ400の表示画面上でポインタ200で指定された位置を該3次元座標系に換算した位置との間の距離に応じた表示処理を実行する。そこで、仮想オブジェクト−ポインタ間距離判定部106での距離の計算方法について説明する。この算出方法は、仮想対象外オブジェクト−ポインタ間距離判定部107での距離の計算方法とも同じである。
【0090】
図11は、表示システムでの表示の一例を示す図である。図11は、ウェアラブルディスプレイであるディスプレイ400を装着したユーザによって視認される風景を表わしたものであり、当該ディスプレイ400に透過性を有して表示された画像が、当該ディスプレイ400を介して見える景色に投影されたものである。以降の例において、表示の例は、同様に、ウェアラブルディスプレイであるディスプレイ400を装着したユーザによって視認される風景を表わしたものを指す。
【0091】
図11を参照して、仮想オブジェクトAと仮想オブジェクトBとが実空間に投影されてるようにディスプレイ400に表示されているものとする。この場合、サーバ500は、それぞれの仮想オブジェクトの表示位置を示す3次元座標系の座標値を記憶している。一例として、図12に示されるように、仮想オブジェクトごとに設定された表示位置を示す3次元座標値をテーブル形式で記憶している。
【0092】
CPUは、さらに、撮影画像が入力されるたびにポインタ200の撮影画像における位置を検出し、その位置を該撮影画像に設定された3次元座標系上での位置に換算して3次元座標系のポインタ座標を取得する。
【0093】
図13は、仮想オブジェクト−ポインタ間距離を計算する動作の具体例を示すフローチャートである。
【0094】
図13を参照して、画像処理統括部として機能する処理装置100のCPUは、ステップS201で記憶されている3次元座標系上でのポインタ座標の値と各仮想オブジェクトの座標値とを参照し、ステップS203で一例として、それぞれの座標値の差の二乗の和の平方根を算出してユークリッド距離を求めることで、ポインタ位置と各仮想オブジェクトの表示位置との間のそれぞれの、撮影画像に設定された3次元座標系における距離を計算する。
【0095】
以下、計算されたポインタ位置と仮想オブジェクトの表示位置との関係に基づいた表示処理の例について説明する。
【0096】
<表示処理例1>
図14は、ポインタ位置と仮想オブジェクトの位置との関係に基づいた表示処理の第1の例を説明する図である。図14を参照して、第1の例では、画像処理統括部として機能する処理装置100のCPUは、ポインタ位置から予め規定された第1の範囲内に仮想オブジェクト(以下、仮想対象オブジェクトとも称する)の表示位置が含まれる場合に、上記仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、その仮想対象オブジェクトの表示位置とポインタ位置との間の距離に応じて、仮想対象外オブジェクトの選択可能な範囲を仮想対象オブジェクトの選択可能な範囲よりも遠くなるように、予め当該仮想対象外オブジェクトに対して設定されている画像情報を変換する。
【0097】
ここで、仮想オブジェクトの画像情報は特定の点を中心とする球形であるものとし、その球が2次元のディスプレイ400上で3次元表示された球形の範囲内が当該仮想オブジェクトの選択可能な範囲であると規定する。
【0098】
仮想対象外オブジェクトの選択可能な範囲を仮想対象オブジェクトの選択可能な範囲よりも遠くするような変形として、具体的に、仮想対象外オブジェクトのサイズの縮小が該当する。すなわち、図14(A)に示されるように、指先に装着されたポインタ200の位置と表示されている1つの仮想オブジェクトとの間の距離が所定の距離となった場合に、図14(B)に示されるように、その仮想オブジェクトを仮想対象オブジェクトとし、それ以外の仮想オブジェクトを仮想対象外オブジェクトとして、該仮想対象外オブジェクトの表示される形状を小さくするように変形する。
【0099】
この表示処理を行なうため、仮想オブジェクト−ポインタ間距離判定部106は上記第1の範囲を規定する基準距離を記憶しておく。そして、仮想オブジェクト−ポインタ間距離判定部106は上記基準距離と比較することで、仮想対象オブジェクトを特定する。
【0100】
また、仮想対象外オブジェクト表示データ生成部109は、予め、ポインタ200の位置と仮想対象オブジェクトとの間の距離Dの範囲ごとに、仮想対象外オブジェクトの変形の度合いを記憶しておく。一例として、ポインタ200の位置と仮想対象オブジェクトとの間の距離Dが小さくなるほど仮想対象外オブジェクトの表示倍率が小さくなるような関係が記憶されている。そして、その対応関係に基づいて、仮想対象外オブジェクトに対して規定されている表示用のデータを更新することで、表示データを生成する。
【0101】
図15は、第1の表示処理のための動作の具体例を示すフローチャートである。図15を参照して、ステップS301で画像処理統括部として機能する処理装置100のCPUは、ポインタ位置と仮想オブジェクトの表示位置との間の距離Dを算出する。ステップS301の動作の詳細は図13で説明されたものである。
【0102】
算出された距離Dが上記第1の範囲を規定する基準距離であるしきい値Dtよりも小なる場合(ステップS303でYES)、つまり、ポインタ位置から上記第1の範囲内に処理対象の仮想オブジェクトの表示位置がある場合、ステップS305でCPUは、上記第1の範囲外の仮想オブジェクトを仮想対象外オブジェクトとして抽出し、ステップS307でCPUは、ステップS301で算出された仮想対象オブジェクトとの距離Dに基づいて、ステップS305で抽出された仮想対象外オブジェクトについて上述の記憶している対応関係より表示倍率を決定して、縮小する。
【0103】
この画像を透過性を有してディスプレイ400に表示し、ディスプレイ400を介して視認される実空間に投影させることにより、図14に示されたような表示が実現される。これにより、ポインタ位置から所定範囲内にある仮想オブジェクトが指定される可能性の高い仮想対象オブジェクトとされ、それ以外の仮想オブジェクトが仮想対象外オブジェクトとしてそのサイズが小さく表示される。そのため、ポインタ200を装着したユーザは、複数の表示される仮想オブジェクトのポインタ200からの距離を視覚的に把握しやすくなり、ポインタ200に最も近い仮想オブジェクトが指定しやすくなる。
【0104】
<変形例1>
図14の例では、仮想対象外オブジェクトの選択可能な範囲を仮想対象オブジェクトの選択可能な範囲よりも遠くするような変形として、仮想対象外オブジェクトの形状を予め規定された倍率で縮小するものとしているが、他の処理でもよい。他の例として、たとえば図16に示されるように、仮想対象外オブジェクトの形状を縦長に伸びる形状に変形したり、伸張化したり、不規則な変化を起こしたりするようにしてもよい。
【0105】
または、他の例として、たとえば図17に示されるように、仮想対象外オブジェクトを透明にしたり、色彩を変化させてもよい。さらに仮想外オブジェクトの他の変化としては、たとえば、有彩色から無彩色へ変化させたり、3次元表示から2次元表示に変化させたりすることが挙げられる。なお、この場合、仮想対象外オブジェクトの表示画像の透明の部分、無彩色となった部分については、選択不可能な範囲であるものとする。すなわち、当該部分をポインタ200で指定されても、その仮想対象外オブジェクトが選択されたものとはしないように処理する。
【0106】
<変形例2>
以上の説明では、ポインタ位置から予め規定された範囲内に仮想オブジェクトの表示位置があれば、当該仮想オブジェクト以外の仮想オブジェクトの形状を小さくするものとしているが、好ましくは、ポインタ位置から予め規定された第1の範囲内に仮想オブジェクト(仮想対象オブジェクト)の表示位置があり、かつ、ポインタ位置から第1の範囲よりも広い第2の範囲内に複数の仮想オブジェクト(仮想対象外)の表示位置がある場合に、当該仮想対象外オブジェクトの形状を小さくするようにしてもよい。これは、以降の表示処理例でも同様である。
【0107】
このようにすることで、ポインタ位置から第2の範囲内に複数の仮想オブジェクトが表示され、ユーザが指定しようとする仮想オブジェクトが重なりあって指定し難い状態であっても、その範囲内のよりポインタ位置に近い仮想オブジェクト、すなわち、ユーザが指定する可能性の高い仮想オブジェクト以外の仮想オブジェクトが仮想対象外オブジェクトとして小さくなる(または変形する)ので、ポインタ200を装着したユーザは仮想対象オブジェクトを指定しやすくなる。
【0108】
<変形例3>
上の例では、ポインタ位置から第1の範囲内にある仮想オブジェクトを仮想対象オブジェクトとし、それ以外の仮想オブジェクトをすべて仮想対象外オブジェクトとしてそのサイズを縮小するなどの変形を行なうものとしている。より好ましい他の例として、第1の範囲よりも広い第2の範囲に表示位置のある仮想オブジェクトのみを仮想対象外オブジェクトとして上記変形を行なうようにしてもよい。
【0109】
この場合、仮想対象外オブジェクト−ポインタ間距離判定部107は上記第2の範囲を規定する基準距離を記憶しておく。そして、仮想対象外オブジェクト−ポインタ間距離判定部107は、上記基準距離と比較することで、仮想対象外オブジェクトを特定する。上記ステップS305でCPUは、上記第1の範囲外の仮想オブジェクトであって、上記第2の範囲を規定する基準距離である仮想オブジェクトを仮想対象外オブジェクトとして抽出する。
【0110】
このようにすることで、変形させる仮想オブジェクトの数を抑えることができ、CPUでの処理を容易にすることができる。
【0111】
<変形例4>
上の例では、ポインタ位置と仮想対象オブジェクトの表示位置との間の距離Dに応じた、仮想対象外オブジェクトを変形させる表示倍率が記憶されているものとしている。その他の変形の例であっても同様である。しかしながら、他の例として、変形対象の仮想対象外オブジェクトとポインタ位置との距離に応じた変形の割合が記憶されており、その割合に応じて仮想対象外オブジェクトを変形させてもよい。一例として、ポインタ位置と仮想対象外オブジェクトの表示位置との間の距離に応じて、その距離が長くなるほど縮小するような表示倍率が記憶されているとすると、ポインタ位置から遠くなる仮想対象外オブジェクトほどその形状が小さくなる。そのため、ポインタ200を装着したユーザは仮想対象外オブジェクトそれぞれのポインタ200からの距離をより視覚的に把握しやすくなる。
【0112】
<変形例5>
仮想対象外オブジェクトの変形の他の例として、さらに、カメラ300での撮影具合に基づいて変形の度合いを異ならせる例が挙げられる。具体的に、ディスプレイ400に透過性を有して表示することによって2次元のディスプレイ400上で仮想対象オブジェクトに重なって透過される仮想対象外オブジェクトについて、そうでない仮想対象外オブジェクトよりも変形の度合いが大きくなるように仮想対象外オブジェクトを変形させることが挙げられる。
【0113】
図18および図19は、変形例5にかかる表示の具体例を示す図である。図18に示される例は、仮想オブジェクトのうちの1つから所定範囲内にポインタ200が位置する場合に(図18(A))、当該仮想オブジェクトが仮想対象オブジェクトとされ、それ以外の仮想オブジェクトが仮想対象外オブジェクトと特定された上で、さらに、仮想対象外オブジェクトのうち、仮想対象オブジェクトと2次元のディスプレイ400上に重なって投影されるものが、そうでない仮想対象外オブジェクトよりもより小さくなるよう縮小される(図18(B))。また、図19に示される例は、仮想オブジェクトのうちの1つから所定範囲内にポインタ200が位置する場合に(図19(A))、当該仮想オブジェクトが仮想対象オブジェクトとされ、それ以外の仮想オブジェクトが仮想対象外オブジェクトと特定された上で、さらに、仮想対象外オブジェクトのうち、仮想対象オブジェクトと2次元のディスプレイ400上に重なって投影されるものが、そうでない仮想対象外オブジェクトよりもより透明度が高くなるように色彩が変更される(図19(B))。
【0114】
この場合、上記ステップS305でCPUは、仮想対象外オブジェクトのそれぞれについて、仮想対象オブジェクトに重なって投影されるか否かを判断する処理をさらに行なう。この処理として、たとえば、CPUはそれぞれの仮想オブジェクトの表示位置および形状の情報に基づいて、カメラ300からの撮影方向を法線とする平面にそれぞれの仮想オブジェクトの画像を投影し、その平面上においてこれらが重なっているか否かを判断する。その判断としては、たとえば、上記平面に投影された仮想対象オブジェクトの半径と仮想対象外オブジェクトの半径との和と上記平面上でのこれらの中心間距離とを比較する。その結果、半径の和が中心間距離よりも大なる場合に、CPUはカメラ300からの撮影画像に基づく位置に表示することで該仮想対象外オブジェクトが仮想対象オブジェクトに重なって投影されると判断し、そうでない場合に重なって投影されないと判断する。そして、変形対象の仮想対象外オブジェクトのうち、重なって投影されると判断されたものについては、その変形において、記憶されている変形の度合いを所定割合で増加させて適用する。
【0115】
なお、この場合、カメラ300の位置が変化したことが検出された場合、所定の間、この変形の度合いが維持されるようにしてもよい。
【0116】
このような処理が行なわれることで、2次元のディスプレイ400において仮想対象外オブジェクトが仮想対象オブジェクトと重なって表示される場合であっても、ポインタ200を装着したユーザは仮想対象外オブジェクトのポインタ200からの距離をより視覚的に把握しやすくなる。
【0117】
<表示処理例2>
図20は、ポインタ位置と仮想オブジェクトの位置との関係に基づいた表示処理の第2の例を説明する図である。図20を参照して、第2の例では、画像処理統括部として機能する処理装置100のCPUは、ポインタ位置が仮想オブジェクトの表示位置に近づいた場合に、その仮想オブジェクトを仮想対象オブジェクトとし、上記仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、その仮想対象オブジェクトの表示位置とポインタ位置との間の距離に応じて、仮想対象外オブジェクトを仮想対象オブジェクトから遠ざかるように表示位置を移動させる。すなわち、図20(A)に示されるように、指先に装着されたポインタ200が表示されている1つの仮想オブジェクトの表示位置に近づいていると検出された場合に、図20(B)に示されるように、その仮想オブジェクトを仮想対象オブジェクトとし、仮想対象オブジェクトから所定範囲内にある仮想対象外オブジェクトの表示位置を仮想対象オブジェクトから離すように移動させる。
【0118】
この表示処理を行なうため、仮想オブジェクト−ポインタ間距離判定部106は算出された仮想オブジェクトとポインタ位置との間の距離を一時的に記憶するための図示しないメモリを含む。また、処理対象の仮想オブジェクトを判定するためのしきい値としての基準距離を記憶しておく。そして、仮想オブジェクト−ポインタ間距離判定部106は上記基準距離と比較することで、仮想対象オブジェクトを特定する。
【0119】
また、仮想対象外オブジェクト表示データ生成部109は、予め、ポインタ200の位置と仮想対象オブジェクトとの間の距離Dの範囲ごとに、処理対象とする仮想対象外オブジェクトの移動距離を記憶しておく。一例として、ポインタ200の位置と仮想対象オブジェクトとの間の距離Dが小さくなるほど仮想対象外オブジェクトの移動距離が大きくなるような関係が記憶されている。そして、その対応関係に基づいて、仮想対象外オブジェクトに対して規定されている表示位置を更新することで、表示データを生成する。
【0120】
図21は、第2の表示処理のための動作の具体例を示すフローチャートである。図21を参照して、ステップS401で画像処理統括部として機能する処理装置100のCPUは、ポインタ位置と仮想オブジェクトの表示位置との間の距離Dを算出する。ステップS401の動作の詳細は図13で説明されたものである。
【0121】
また、ステップS403でCPUは、ポインタ位置から所定範囲内に表示位置のある仮想オブジェクトを処理対象の仮想オブジェクトとして抽出する。そして、ステップS405でCPUは、抽出した処理対象の仮想オブジェクトの中から、仮想対象オブジェクトを特定する。ステップS405での処理の一例として、CPUは、1つの仮想オブジェクトについて、直前の処理によって算出されたポインタ位置と仮想オブジェクトの表示位置との間の距離Dと上記ステップS401で算出された距離Dとを比較し、その差分がしきい値よりも大きく、かつ、ポインタ位置から当該仮想オブジェクトの表示位置へ向かう方向が上記直前の処理のときの方向と同じまたは略同じである場合に、当該仮想オブジェクトを仮想対象オブジェクトと特定する。すなわち、同じ仮想オブジェクトに向けて所定の速度でポインタ200の位置が所定量以上に進んでいる場合に、当該仮想オブジェクトに向けてポインタ200が移動していると判断し、その仮想オブジェクトを仮想対象オブジェクトとする。
【0122】
CPUは、ステップS403で抽出された処理対象とする仮想オブジェクトのうち、このような方法で特定された仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトと特定し、ステップS407でこれら仮想対象外オブジェクトを仮想対象オブジェクトから離す処理を実行する。具体的には、上記ステップS401で算出されたポインタ位置と仮想対象オブジェクトの表示位置との距離Dに基づいて、処理対象とする仮想対象外オブジェクトについて上述の記憶している対応関係より移動距離を決定して、それぞれの仮想対象外オブジェクトに規定されている表示位置を該移動距離を考慮して更新する。
【0123】
なお、ここでの移動は、特定の方向、距離への移動に限定されない。たとえば図20に表わされたように、上方に所定距離移動させるようにしてもよいし、図22に示されているように、下方に所定距離移動させる(落とす)ようにしてもよい。また、他の例として、当該仮想対象外オブジェクトの中心と仮想対象オブジェクトの中心とを結ぶ直線の方向であって、仮想対象オブジェクトから遠い方向に所定距離移動させるようにしてもよい。
【0124】
この画像を透過性を有してディスプレイ400に表示し、ディスプレイ400を介して視認される実空間に投影させることにより、図20や図22に示されたような表示が実現される。これにより、ポインタ200が向かっている仮想オブジェクトが指定される可能性の高い仮想対象オブジェクトとされ、その仮想対象オブジェクトから所定範囲内にある仮想対象外オブジェクトが仮想対象オブジェクトから離れて表示される。そのため、ポインタ200を装着したユーザは、複数の表示される仮想オブジェクトのポインタ200からの距離を視覚的に把握しやすくなり、ポインタ200が向かう仮想オブジェクトが指定しやすくなる。
【0125】
<変形例1>
なお、第2の表示例においても、第1の表示例と同様に、上記変形例4、5と同様の変形例があってもよい。すなわち、上記変形例4のように、仮想対象外オブジェクトの表示位置とポインタ位置との間の距離に応じた距離で、当該仮想対象外オブジェクトを移動させるようにしてもよい。また、上記変形例5のように、2次元のディスプレイ400上で仮想対象オブジェクトと重なって表示される仮想対象外オブジェクトについて、そうでない仮想対象外オブジェクトよりも移動量を大きくしてもよい。
【0126】
具体例として、図23に示されるように、仮想対象外オブジェクトを仮想対象オブジェクトから離すように上方に所定距離移動させる際に、2次元のディスプレイ400上で仮想オブジェクトに重なって投影される仮想対象外オブジェクト(図23(A)の例では手前から2番目、および4番目の仮想オブジェクト)については、重なっていない仮想対象外オブジェクト(図23(A)の例では一番手前、および一番奥の仮想オブジェクト)よりも移動量を大きく移動させてもよい。また、他の例として、図24に示されるように、仮想対象外オブジェクトを仮想対象オブジェクトから離すように下方に所定距離移動させ、さらに、2次元のディスプレイ400上で仮想オブジェクトに重なって投影される仮想対象外オブジェクト(図24(A)の例では手前から2番目、および4番目の仮想オブジェクト)については、重なっていない仮想対象外オブジェクト(図24(A)の例では一番手前、および一番奥の仮想オブジェクト)よりも透明度が高くなるように色彩を変化させてもよい。
【0127】
なお、この場合の、重なって投影されるか否かを判定する処理は、一例として、上述の処理と同様の処理を採用することができる。また、重なって投影されるか否かの判定は、第2の処理例に従って移動させた後の仮想対象外オブジェクトの表示位置に基づいて行なわれてもよい。
【0128】
このような処理が行なわれることにより、仮想対象オブジェクトから所定範囲内にある仮想対象外オブジェクトが仮想対象オブジェクトから離れて表示されると共に、2次元のディスプレイ400において仮想対象外オブジェクトが仮想対象オブジェクトに重なって投影される場合であっても、ポインタ200を装着したユーザは仮想対象外オブジェクトのポインタ200からの距離をより視覚的に把握しやすくなる。そのため、ポインタ200が向かう仮想オブジェクトがより指定しやすくなる。
【0129】
さらに、第1の表示例と第2の表示例とが組み合わされてもよい。
またさらに、上述の表示処理を、処理装置100に実行させるためのプログラムを提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、CD−ROM(Compact Disk-Read Only Memory)、ROM(Read Only Memory)、RAM(Random Access Memory)およびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【0130】
なお、本発明にかかるプログラムは、コンピュータのオペレーティングシステム(OS)の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずOSと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
【0131】
また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
【0132】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【0133】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0134】
100 処理装置、101A カメラ画像入力部、101B ポインタデータ入力部、101C 仮想オブジェクト情報入力部、102 ポインタオブジェクト抽出部、103 画像認識処理部、104 ポインタ形状記憶部、105 ポインタ表示データ生成部、106 仮想オブジェクト−ポインタ間距離判定部、107 仮想対象外オブジェクト−ポインタ間距離判定部、108 仮想対象外オブジェクト座標記憶部、109 仮想対象外オブジェクト表示データ生成部、110 仮想対象外オブジェクト形状記憶部、111 表示処理部、200 ポインタ、201 位置検出センサ、202 加速度センサ、203 方向性検知センサ、204 CPU、205 通信I/F、300 カメラ、400,401 ディスプレイ、402 CPU、403 通信I/F、500 サーバ、600 携帯端末、1021 ポインタ抽出部、1022 仮想オブジェクト抽出部、1023 仮想対象外オブジェクト抽出部、1031 ポインタ座標検出部、1032 仮想オブジェクト表示領域検出部、1033 仮想対象外オブジェクト表示領域検出部。
【特許請求の範囲】
【請求項1】
仮想オブジェクトの画像を表示するための表示システムであって、
カメラと、
ディスプレイと、
表示処理装置とを備え、
前記表示処理装置は、
前記仮想オブジェクトに関する情報として、当該仮想オブジェクトを3次元で表示させるための画像情報と、撮影された空間に対して設定された3次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するための取得手段と、
前記カメラによる撮影画像に対して前記3次元の座標系を設定し、前記仮想オブジェクトに対して規定された前記表示位置に前記仮想オブジェクトの画像を表示させるための表示画像を生成し、前記ディスプレイで表示させる処理を実行するための処理手段と、
ユーザによって指定された前記3次元の座標系における位置を検出するための検出手段とを含み、
前記処理手段は、前記撮影画像における仮想オブジェクトについて規定された前記表示位置と前記指定された位置との関係に基づいて前記仮想オブジェクトのうちの1つの仮想オブジェクトを仮想対象オブジェクトと特定し、前記仮想オブジェクトのうちの前記仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、前記仮想対象外オブジェクトの画像を変化させる処理を実行する、表示システム。
【請求項2】
前記変化させる処理は、前記仮想対象外オブジェクトの画像を縮小する処理、前記仮想対象外オブジェクトの画像の形状を変化させる処理、前記仮想対象外オブジェクトの画像の色彩を変化させる処理、前記仮想対象外オブジェクトの画像の透明度を変化させる処理、および前記仮想対象外オブジェクトの画像の表示位置を変化させる処理のうちの少なくとも1つである、請求項1に記載の表示システム。
【請求項3】
前記処理手段は、前記撮影画像における仮想オブジェクトについて規定された前記表示位置と前記指定された位置との間の距離が、予め規定されている第1の基準距離よりも小さい仮想オブジェクトを前記仮想対象オブジェクトと特定する、請求項1または2に記載の表示システム。
【請求項4】
前記処理手段は、前記仮想対象外オブジェクトの画像を、前記指定された位置と前記仮想対象オブジェクトとの間の距離に応じて縮小する、請求項3に記載の表示システム。
【請求項5】
前記処理手段は、前記ユーザによって指定される位置の変化量に基づいて前記指定される位置が向かう方向に表示位置が該当している仮想オブジェクトを前記仮想対象オブジェクトと特定する、請求項1または2に記載の表示システム。
【請求項6】
前記処理手段は、前記仮想対象外オブジェクトの表示位置を、前記指定された位置と前記仮想対象オブジェクトとの間の距離に応じて、前記仮想対象オブジェクトから遠くなる方向に変化させる、請求項5に記載の表示システム。
【請求項7】
前記処理手段は、前記カメラの位置と前記仮想オブジェクトとの位置関係に基づいて、前記仮想対象オブジェクトに重なって表示される前記仮想対象外オブジェクトの画像の変化を、重なって表示されない前記仮想対象外オブジェクトの画像の変化よりも大きく変化させる、請求項1〜6のいずれかに記載の表示システム。
【請求項8】
前記処理手段は、前記カメラの位置の変化が検出されると、前記変化前の前記カメラの位置に応じて前記仮想対象オブジェクトに重なって表示されると特定された前記仮想対象外オブジェクトの画像の変化を、前記カメラの位置の移動後も維持する、請求項7に記載の表示システム。
【請求項9】
前記処理手段は、前記撮影画像における仮想オブジェクトについて規定された前記表示位置と前記指定された位置との間の距離が、前記第1の基準距離よりも大きい第2の基準距離よりも小さい仮想オブジェクトであって、前記仮想対象オブジェクトと特定された仮想オブジェクト以外の仮想オブジェクトを前記仮想対象外オブジェクトと特定する、請求項1〜8のいずれかに記載の表示システム。
【請求項10】
前記ディスプレイは、表示面と逆側の面からの光を透過し、前記表示処理手段で生成された前記表示画像を、前記表示面に透過性を有して表示する、請求項1〜9のいずれかに記載の表示システム。
【請求項11】
仮想オブジェクトの画像をディスプレイに表示させるための表示処理装置であって、
前記撮影画像の入力を受付けるための入力手段と、
前記仮想オブジェクトに関する情報として、当該仮想オブジェクトを3次元で表示させるための画像情報と、撮影された空間に対して設定された3次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するための取得手段と、
前記撮影画像に対して前記3次元の座標系を設定し、前記仮想オブジェクトに対して規定された前記表示位置に前記仮想オブジェクトの画像を表示させるための表示画像を生成し、前記ディスプレイで表示させる処理を実行するための処理手段と、
ユーザによって指定された前記3次元の座標系における位置を検出するための検出手段とを含み、
前記処理手段は、前記撮影画像における仮想オブジェクトについて規定された前記表示位置と前記指定された位置との関係に基づいて前記仮想オブジェクトのうちの1つの仮想オブジェクトを仮想対象オブジェクトと特定し、前記仮想オブジェクトのうちの前記仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、前記仮想対象外オブジェクトの画像を変化させる処理を実行する、表示処理装置。
【請求項12】
表示処理装置において、仮想オブジェクトの画像をディスプレイに表示させる方法であって、
カメラから撮影画像の入力を受付けるステップと、
前記撮影画像に対して前記3次元の座標系を設定するステップと、
ユーザによって指定された前記3次元の座標系における位置を検出するステップと、
前記仮想オブジェクトに関する情報として、当該仮想オブジェクトを3次元で表示させるための画像情報と、撮影された空間に対して設定された3次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するステップと、
前記撮影画像における仮想オブジェクトについて規定された前記表示位置と前記指定された位置との関係に基づいて前記仮想オブジェクトのうちの1つの仮想オブジェクトを仮想対象オブジェクトと特定し、前記仮想オブジェクトのうちの前記仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、前記仮想対象外オブジェクトの画像を変化させるステップとを備える、表示方法。
【請求項13】
表示処理装置に、仮想オブジェクトの画像をディスプレイに表示させる処理を実行させるためのプログラムであって、
カメラから撮影画像の入力を受付けるステップと、
前記撮影画像に対して前記3次元の座標系を設定するステップと、
ユーザによって指定された前記3次元の座標系における位置を検出するステップと、
前記仮想オブジェクトに関する情報として、当該仮想オブジェクトを3次元で表示させるための画像情報と、撮影された空間に対して設定された3次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するステップと、
前記撮影画像における仮想オブジェクトについて規定された前記表示位置と前記指定された位置との関係に基づいて前記仮想オブジェクトのうちの1つの仮想オブジェクトを仮想対象オブジェクトと特定し、前記仮想オブジェクトのうちの前記仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、前記仮想対象外オブジェクトの画像を変化させるステップとを前記表示処理装置に実行させる、表示プログラム。
【請求項1】
仮想オブジェクトの画像を表示するための表示システムであって、
カメラと、
ディスプレイと、
表示処理装置とを備え、
前記表示処理装置は、
前記仮想オブジェクトに関する情報として、当該仮想オブジェクトを3次元で表示させるための画像情報と、撮影された空間に対して設定された3次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するための取得手段と、
前記カメラによる撮影画像に対して前記3次元の座標系を設定し、前記仮想オブジェクトに対して規定された前記表示位置に前記仮想オブジェクトの画像を表示させるための表示画像を生成し、前記ディスプレイで表示させる処理を実行するための処理手段と、
ユーザによって指定された前記3次元の座標系における位置を検出するための検出手段とを含み、
前記処理手段は、前記撮影画像における仮想オブジェクトについて規定された前記表示位置と前記指定された位置との関係に基づいて前記仮想オブジェクトのうちの1つの仮想オブジェクトを仮想対象オブジェクトと特定し、前記仮想オブジェクトのうちの前記仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、前記仮想対象外オブジェクトの画像を変化させる処理を実行する、表示システム。
【請求項2】
前記変化させる処理は、前記仮想対象外オブジェクトの画像を縮小する処理、前記仮想対象外オブジェクトの画像の形状を変化させる処理、前記仮想対象外オブジェクトの画像の色彩を変化させる処理、前記仮想対象外オブジェクトの画像の透明度を変化させる処理、および前記仮想対象外オブジェクトの画像の表示位置を変化させる処理のうちの少なくとも1つである、請求項1に記載の表示システム。
【請求項3】
前記処理手段は、前記撮影画像における仮想オブジェクトについて規定された前記表示位置と前記指定された位置との間の距離が、予め規定されている第1の基準距離よりも小さい仮想オブジェクトを前記仮想対象オブジェクトと特定する、請求項1または2に記載の表示システム。
【請求項4】
前記処理手段は、前記仮想対象外オブジェクトの画像を、前記指定された位置と前記仮想対象オブジェクトとの間の距離に応じて縮小する、請求項3に記載の表示システム。
【請求項5】
前記処理手段は、前記ユーザによって指定される位置の変化量に基づいて前記指定される位置が向かう方向に表示位置が該当している仮想オブジェクトを前記仮想対象オブジェクトと特定する、請求項1または2に記載の表示システム。
【請求項6】
前記処理手段は、前記仮想対象外オブジェクトの表示位置を、前記指定された位置と前記仮想対象オブジェクトとの間の距離に応じて、前記仮想対象オブジェクトから遠くなる方向に変化させる、請求項5に記載の表示システム。
【請求項7】
前記処理手段は、前記カメラの位置と前記仮想オブジェクトとの位置関係に基づいて、前記仮想対象オブジェクトに重なって表示される前記仮想対象外オブジェクトの画像の変化を、重なって表示されない前記仮想対象外オブジェクトの画像の変化よりも大きく変化させる、請求項1〜6のいずれかに記載の表示システム。
【請求項8】
前記処理手段は、前記カメラの位置の変化が検出されると、前記変化前の前記カメラの位置に応じて前記仮想対象オブジェクトに重なって表示されると特定された前記仮想対象外オブジェクトの画像の変化を、前記カメラの位置の移動後も維持する、請求項7に記載の表示システム。
【請求項9】
前記処理手段は、前記撮影画像における仮想オブジェクトについて規定された前記表示位置と前記指定された位置との間の距離が、前記第1の基準距離よりも大きい第2の基準距離よりも小さい仮想オブジェクトであって、前記仮想対象オブジェクトと特定された仮想オブジェクト以外の仮想オブジェクトを前記仮想対象外オブジェクトと特定する、請求項1〜8のいずれかに記載の表示システム。
【請求項10】
前記ディスプレイは、表示面と逆側の面からの光を透過し、前記表示処理手段で生成された前記表示画像を、前記表示面に透過性を有して表示する、請求項1〜9のいずれかに記載の表示システム。
【請求項11】
仮想オブジェクトの画像をディスプレイに表示させるための表示処理装置であって、
前記撮影画像の入力を受付けるための入力手段と、
前記仮想オブジェクトに関する情報として、当該仮想オブジェクトを3次元で表示させるための画像情報と、撮影された空間に対して設定された3次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するための取得手段と、
前記撮影画像に対して前記3次元の座標系を設定し、前記仮想オブジェクトに対して規定された前記表示位置に前記仮想オブジェクトの画像を表示させるための表示画像を生成し、前記ディスプレイで表示させる処理を実行するための処理手段と、
ユーザによって指定された前記3次元の座標系における位置を検出するための検出手段とを含み、
前記処理手段は、前記撮影画像における仮想オブジェクトについて規定された前記表示位置と前記指定された位置との関係に基づいて前記仮想オブジェクトのうちの1つの仮想オブジェクトを仮想対象オブジェクトと特定し、前記仮想オブジェクトのうちの前記仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、前記仮想対象外オブジェクトの画像を変化させる処理を実行する、表示処理装置。
【請求項12】
表示処理装置において、仮想オブジェクトの画像をディスプレイに表示させる方法であって、
カメラから撮影画像の入力を受付けるステップと、
前記撮影画像に対して前記3次元の座標系を設定するステップと、
ユーザによって指定された前記3次元の座標系における位置を検出するステップと、
前記仮想オブジェクトに関する情報として、当該仮想オブジェクトを3次元で表示させるための画像情報と、撮影された空間に対して設定された3次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するステップと、
前記撮影画像における仮想オブジェクトについて規定された前記表示位置と前記指定された位置との関係に基づいて前記仮想オブジェクトのうちの1つの仮想オブジェクトを仮想対象オブジェクトと特定し、前記仮想オブジェクトのうちの前記仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、前記仮想対象外オブジェクトの画像を変化させるステップとを備える、表示方法。
【請求項13】
表示処理装置に、仮想オブジェクトの画像をディスプレイに表示させる処理を実行させるためのプログラムであって、
カメラから撮影画像の入力を受付けるステップと、
前記撮影画像に対して前記3次元の座標系を設定するステップと、
ユーザによって指定された前記3次元の座標系における位置を検出するステップと、
前記仮想オブジェクトに関する情報として、当該仮想オブジェクトを3次元で表示させるための画像情報と、撮影された空間に対して設定された3次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するステップと、
前記撮影画像における仮想オブジェクトについて規定された前記表示位置と前記指定された位置との関係に基づいて前記仮想オブジェクトのうちの1つの仮想オブジェクトを仮想対象オブジェクトと特定し、前記仮想オブジェクトのうちの前記仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、前記仮想対象外オブジェクトの画像を変化させるステップとを前記表示処理装置に実行させる、表示プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【公開番号】特開2012−155678(P2012−155678A)
【公開日】平成24年8月16日(2012.8.16)
【国際特許分類】
【出願番号】特願2011−16807(P2011−16807)
【出願日】平成23年1月28日(2011.1.28)
【出願人】(000001270)コニカミノルタホールディングス株式会社 (4,463)
【Fターム(参考)】
【公開日】平成24年8月16日(2012.8.16)
【国際特許分類】
【出願日】平成23年1月28日(2011.1.28)
【出願人】(000001270)コニカミノルタホールディングス株式会社 (4,463)
【Fターム(参考)】
[ Back to top ]