JP2014203175A - 情報処理装置、情報処理方法及びプログラム。 - Google Patents
情報処理装置、情報処理方法及びプログラム。 Download PDFInfo
- Publication number
- JP2014203175A JP2014203175A JP2013077210A JP2013077210A JP2014203175A JP 2014203175 A JP2014203175 A JP 2014203175A JP 2013077210 A JP2013077210 A JP 2013077210A JP 2013077210 A JP2013077210 A JP 2013077210A JP 2014203175 A JP2014203175 A JP 2014203175A
- Authority
- JP
- Japan
- Prior art keywords
- display
- user
- shared
- information processing
- display mode
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
Abstract
【課題】拡張現実技術において、表示されるARオブジェクトの種類に応じて、ARオブジェクトの表示態様を決定する。【解決手段】現実空間の画像にARオブジェクトを重畳して表示する複数の表示装置に、前記ARオブジェクトを表示させる情報処理装置であって、前記ARオブジェクトの種類に応じて、前記ARオブジェクトの表示態様を決定する表示態様決定手段と、前記決定された表示態様に従って前記ARオブジェクトを前記複数の表示装置に表示させる制御手段と、を有することを特徴とする。【選択図】図7
Description
本発明は、拡張現実表示システムにおけるオブジェクトの表示を制御する技術に関する。
近年、拡張現実(AR:Augumented Reality)技術を用いたサービスが開発・提供されている。拡張現実は主にカメラ等で撮影された現実空間の画像に対して、平面や立体のオブジェクトを重畳表示するものである。オブジェクトを提示するデバイスとしては、携帯端末や、HMD(Head-mounted Display)等が利用される。このような拡張現実技術を利用したサービスとして、GPSによるユーザの位置情報に基づいてユーザの周囲の環境情報をオブジェクトで表示するものなどがある。これらのサービスでは、GPS(Global Positioning System)システムに代表されるGNSS (Global Navigation Satellite System)で得られる位置情報を利用し、カメラで撮影している撮像画像に施設情報が重畳して表示される。これにより、複数ユーザであたかも同じ物体を見ているかのように、オブジェクトを観察することができる(特許文献1を参照)。
そのため、複数のユーザが参加する会話中や打合せ中において、オブジェクトを観察しながら話し合いをすることが出来る。以下では、複数のユーザが同じオブジェクトを観察可能な状態を「オブジェクトの共有」と呼ぶこととする。この場合において、共有するオブジェクトの種類は、平面オブジェクトと立体オブジェクトに大別できる。平面オブジェクトは、写真や文書編集ソフトで作成された文書ファイルといった平面的に表示されるオブジェクトである。そして、文書や写真は、平面オブジェクトの片面にのみ表示されることになる。立体オブジェクトは、CAD等で作成された3次元モデルといった立体的に表示されるオブジェクトである。
拡張現実技術において、オブジェクトを表示させたいユーザは、自身を含むオブジェクトを共有するユーザ(以下、「共有ユーザ」と呼ぶ。)の位置関係を考慮しながら、適切な位置にオブジェクトを配置しなければならない。また、表示させたいオブジェクトが、平面オブジェクトか立体オブジェクトかによっても、その適切な位置は異なってくる。よって、オブジェクトを表示させたいユーザが、共有ユーザの全員に見えやすい適切な位置を即座に見出すことは簡単ではない。
本発明に係る情報処理装置は、現実空間の画像にARオブジェクトを重畳して表示する複数の表示装置に、前記ARオブジェクトを表示させる情報処理装置であって、前記ARオブジェクトの種類に応じて、前記ARオブジェクトの表示態様を決定する表示態様決定手段と、前記決定された表示態様に従って前記ARオブジェクトを前記複数の表示装置に表示させる制御手段と、を有することを特徴とする。
本発明によれば、現実空間の画像内に重畳表示されるオブジェクトを、全ユーザに見えやすい適切な位置に配置することができる。
以下、本発明を実施するための形態について図面を用いて説明する。
<システム構成>
図1は、本実施例に係る拡張現実システムの構成例を示す図である。本実施例の拡張現実表示システムは、ユーザ100、画像表示装置200、情報処理装置(処理サーバ)300、ワイヤレスアクセスポイント400、ネットワーク500で構成される。画像表示装置200とワイヤレスアクセスポイント400は無線通信を行い、画像表示装置200はワイヤレスアクセスポイント400を介して有線のネットワーク500と接続されている。処理サーバ300とワイヤレスアクセスポイント400は有線のネットワーク500を介して接続されている。画像表示装置200としては、図示されたHMD(Head Mount Display)の他、タブレット端末等でもよい。
図1は、本実施例に係る拡張現実システムの構成例を示す図である。本実施例の拡張現実表示システムは、ユーザ100、画像表示装置200、情報処理装置(処理サーバ)300、ワイヤレスアクセスポイント400、ネットワーク500で構成される。画像表示装置200とワイヤレスアクセスポイント400は無線通信を行い、画像表示装置200はワイヤレスアクセスポイント400を介して有線のネットワーク500と接続されている。処理サーバ300とワイヤレスアクセスポイント400は有線のネットワーク500を介して接続されている。画像表示装置200としては、図示されたHMD(Head Mount Display)の他、タブレット端末等でもよい。
<画像表示装置のハードウェアブロック図>
図2は、画像表示装置200のハードウェア構成の一例を示すブロック図である。
図2は、画像表示装置200のハードウェア構成の一例を示すブロック図である。
画像表示装置200は、ディスプレイ201、カメラ202、センサ203、CPU204、操作部205、HDD206、バッテリ207、フラッシュメモリ208、メインメモリ209、グラフィックコントローラ210、ネットワークI/F212を備える。そして、各要素が、システムバス211で接続されている。
フラッシュメモリ208には、ブートローダプログラム及び表示装置制御プログラムが格納されている。メインメモリ209は各種データの処理やプログラムの実行時に使用する揮発性メモリであり、高速アクセスが可能である。HDD206やフラッシュメモリ208に格納されているデータやプログラムのうち必要なものがメインメモリ209に読み出され使用される。画像表示装置200の電源投入時には、CPU204がフラッシュメモリ208からブートローダプログラムを読み出して実行し、フラッシュメモリ208に格納されている表示装置制御プログラムを取り出して、メインメモリ209に格納する。そして、CPU204がメインメモリ209に格納されている表示装置制御プログラムを実行し、画像表示装置200の備える各機能を実行する。
ディスプレイ201は文字や画像などの情報を表示する表示部であり、液晶パネルや有機ELパネル等で構成される。グラフィックコントローラ210はディスプレイ201への表示を制御する。
カメラ202は、レンズ、CCD、撮像素子(例えばCMOS)などの周知の部品から成り、撮像画像をデジタルデータに変換する。
バッテリ207は、画像表示装置200全体に電力を供給する。
ネットワークインタフェース212は、ネットワーク500に接続している機器間との情報のやり取りを行う。
センサ203は、画像表示装置200の向きを特定するために使われ、加速度センサ、地磁気センサから構成される。
操作部205は、画像表示装置200としてのHMDを装着するユーザが該装置を操作するために用いる。操作部205は、ボタンやタッチパネルなどの周知のUI部品から成り、ユーザは操作部205を使って、ディスプレイ201に映し出される項目の選択操作、文字入力、決定操作などを行うことができる。ディスプレイ201上の項目を選択する際は、ユーザの指し示す位置を表すカーソルを操作することによって、ユーザは意図する項目を選択することができる。
<処理サーバのハードウェアブロック図>
図3は、処理サーバ300のハードウェア構成の一例を示すブロック図である。
図3は、処理サーバ300のハードウェア構成の一例を示すブロック図である。
処理サーバ300は、ディスプレイ301、キーボード302、マウス303、LANポート304、CPU305、グラフィックコントローラ306、メモリコントローラ307、I/Oコントロ−ラ309、HDD310を備える。そして、各要素が、内部バス311で接続されている。内部バス311は、メモリコントローラ307、I/Oコントローラ309間で情報の伝達が出来るよう、電気信号を送受信する。
メモリコントローラ307は、メインメモリ308に対するメモリアクセス全般を統括する。
I/Oコントローラ309は、HDD310、LANポート304、キーボード302、マウス303、及び内部バス311を介して接続している各処理部との情報の送受信を行う。ユーザは、キーボード302又はマウス303を操作することで処理サーバ300への情報入力が可能である。
LANポート304は、I/Oコントローラ309と、ネットワーク500やワイヤレスアクセスポイント400を介して接続されている他の機器との情報の送受信を行う。
HDD310にはブートローダプログラム及び処理サーバ制御プログラムが格納されている。メインメモリ308は各種データの処理やプログラムの実行時に使用する揮発性メモリであり、高速アクセスが可能である。HDD310に格納されているデータやプログラムのうち必要なものがメインメモリ308に読み出され使用される。処理サーバ300の電源投入時には、CPU305がHDD310からブートローダプログラムを読み出して実行し、HDD310に格納されている処理サーバ制御プログラムを取り出して、メインメモリ308に格納する。そして、CPU305がメインメモリ308に格納されている処理サーバ制御プログラムを実行し、処理サーバの有する各機能を実行する。
ディスプレイ301は、文字や画像などの情報を表示する表示部であり、液晶パネル等で構成される。グラフィックコントローラ306は、ディスプレイ0301への表示を制御する。
<ユーザデータベースの構成>
図4は、処理サーバ300が、ユーザデータベースとして管理するデータテーブルの一例を示す図である。このようなデータテーブルがHDD310に格納され管理される。図4に示すデータテーブルは、1行を1レコードとして、「ユーザID」、「名前」、「位置」、「向き」の4つの属性情報を管理する。
図4は、処理サーバ300が、ユーザデータベースとして管理するデータテーブルの一例を示す図である。このようなデータテーブルがHDD310に格納され管理される。図4に示すデータテーブルは、1行を1レコードとして、「ユーザID」、「名前」、「位置」、「向き」の4つの属性情報を管理する。
「ユーザID」は、ユーザを他のユーザと区別して一意に特定するために用いられるものであり、例えば、ユーザの社員番号などが、予め画像表示装置200に対して設定される。なお、設定されるユーザIDは、HDD310に格納され、必要に応じてメインメモリ209に読み出される。
「名前」は、各ユーザIDに対応するユーザの名称であり、例えば、ユーザIDが“0001”で名前が“A”となっている場合は、ユーザIDが1001として管理されている個人情報はユーザAのものであることを示す。
「位置」は、各ユーザの位置を特定するために用いられるものであり、(X,Y,Z)の3次元座標で表される。図4のデータテーブルにおいて、ユーザAは3次元座標上で(X1,Y1,Z1)にいることを表している。ユーザの位置情報は例えばGPSを用いて取得することができ、取得された位置情報を用いてデータベースが随時更新される。
「向き」は、各ユーザが向いている方向を特定するために用いられるものであり、0度から360度未満の範囲の角度θで表現される。図4のデータテーブルにおいて、ユーザAはθ1度の方向を向いていることを表している。ユーザの向きは、画像表示装置200のセンサから取得される加速度や地磁気の情報から算出でき、算出した結果を用いてデータベースが更新される。
<ARオブジェクトデータベースの構成>
図5は、処理サーバ300が、オブジェクトのデータベースとして管理するデータテーブルの一例を示すである。このようなデータテーブルがHDD0310に格納され管理される。図5に示すデータテーブルは、1行を1レコードとして、「オブジェクトID」、「ファイル名」、「種類」、「大きさ」の4つの属性情報を管理する。なお、本明細書においては、拡張現実技術において現実空間の画像に重畳表示されるオブジェクトを「ARオブジェクト」と呼ぶこととする。
図5は、処理サーバ300が、オブジェクトのデータベースとして管理するデータテーブルの一例を示すである。このようなデータテーブルがHDD0310に格納され管理される。図5に示すデータテーブルは、1行を1レコードとして、「オブジェクトID」、「ファイル名」、「種類」、「大きさ」の4つの属性情報を管理する。なお、本明細書においては、拡張現実技術において現実空間の画像に重畳表示されるオブジェクトを「ARオブジェクト」と呼ぶこととする。
「オブジェクトID」は、ARオブジェクトを、他のARオブジェクトと区別して一意に特定するために用いられるものであり、予め一意になるように各ARオブジェクトに対して任意のID(図5の例では0001〜0004)が割り当てられる。
「ファイル名」は、各オブジェクトIDに対応するARオブジェクトの名称であり、例えば、オブジェクトIDが“0001”で名前が“AAA”となっている場合は、オブジェクトIDが0001として管理されているARオブジェクトのファイル名はAAAであることを示す。
「種類」は、ARオブジェクトの種類を表すものであり、本実施例では、平面オブジェクトと立体オブジェクトの2種類がある。
「大きさ」は、3次元座標系におけるARオブジェクトの面積を表し、平面オブジェクトの場合には垂直方向における面積に相当するが、立体オブジェクトの場合には垂直方向における面積と水平方向における面積の2種類がある。平面オブジェクトの場合の面積は、当該平面オブジェクトを射影した時の高さ(縦)と幅(横)を乗算したもので表される。例えば、オブジェクトIDが“0001”のである平面オブジェクトの大きさ(垂直方向の面積)は、縦1.5m×横1.0mの1.5m2で表される。立体オブジェクトの場合の大きさは、まず垂直方向については、当該立体オブジェクトを射影した時の横から見たときの当該立体オブジェクトに外接する矩形の面積(高さ×幅)である。そして水平方向については、当該立体オブジェクトを射影した時の上から見たときの当該立体オブジェクトに外接する矩形の面積で表される。例えば、オブジェクトIDが0003である立体オブジェクトの垂直方向の面積は、縦0.6m×横1.0mの0.6m2であり、水平方向の面積は、縦0.8m×横1.0mの0.8m2である。
<共有データベースの構成>
図6は、処理サーバ300が、共有データベースとして管理するデータテーブルの一例である。このようなデータテーブルがHDD0310に格納され管理される。図6に示すデータテーブルは、1行を1レコードとして、「共有ID」、「共有オブジェクトID」、「共有ユーザID」、「表示位置」、「変倍率」、「向き」、「表示者ID」の7つの属性情報を管理する。
図6は、処理サーバ300が、共有データベースとして管理するデータテーブルの一例である。このようなデータテーブルがHDD0310に格納され管理される。図6に示すデータテーブルは、1行を1レコードとして、「共有ID」、「共有オブジェクトID」、「共有ユーザID」、「表示位置」、「変倍率」、「向き」、「表示者ID」の7つの属性情報を管理する。
「共有ID」は、共有データベースにおけるレコードを別のレコードと区別して一意に特定するために用いられるものであり、一意になるように各レコードに対して任意のIDが割り当てられる。図6の例では001及び002が割り当てられており、それぞれ後述の図10のケース(ARオブジェクトが平面オブジェクト)と図11のケース(ARオブジェクトが立体オブジェクト)に対応している。
「共有オブジェクトID」は、複数のユーザによって共有されるARオブジェクト(以下、「共有オブジェクト」と呼ぶ。)を特定するためのものであり、上述のARオブジェクトデータベースにおける「オブジェクトID」に対応する(図5を参照)。
「共有ユーザID」は、ARオブジェクトを共有するユーザを特定するためのものであり、上述のユーザデータベースにおける「ユーザID」が対応する。図6において、共有IDが001のレコードは、ユーザIDが1001、1002、1003であるユーザ同士で共有オブジェクトIDが0002のARオブジェクトを観察していることがわかる。
「表示位置」は、共有オブジェクトが表示される現実空間における位置を特定するための情報であり、(X,Y,Z)の3次元座標で表される。
「変倍率」は、表示される共有オブジェクトが、ARオブジェクトデータベースに登録された大きさに対して、どの程度拡大或いは縮小して表示するのかを示す倍率αを表している。
「向き」は、水平な平面(X−Y平面)上における、表示される共有オブジェクトが向いている方向を表す情報であり、0度から360度未満の角度θで表現される。
「表示者ID」は、共有オブジェクトを表示させたユーザを特定するための情報であり、上述のユーザデータベースにおける「ユーザID」に対応する(図4を参照)。例えば、共有IDが001のレコードの場合、IDが0002の共有オブジェクトの表示位置は(XA,YA,ZA)であり、その変倍率はαA倍、向きはθA度に設定されており、この共有オブジェクトを表示させたのはユーザIDが1002のユーザであることが分かる。
図7は、本実施例に係る拡張現実システムにおいて、複数のユーザ間で共通のARオブジェクトを表示させる処理の流れを示すフローチャートである。なお、この一連の処理は、以下に示す手順を記述したコンピュータ実行可能なプログラムを、処理サーバ300内のHDD310からメインメモリ308上に読み込んだ後に、CPU305によって該プログラムを実行することによって実施される。
ステップ701において、CPU305は、共有ユーザを設定する。具体的には、現実空間の画像内にARオブジェクトを表示させるユーザ(表示者)が、当該ARオブジェクトを共有する他のユーザを設定する。この共有ユーザの設定は、画像表示装置200のディスプレイ201にポップアップ画面(不図示)を表示し、操作部205を介したユーザ操作などによって行われる。例えば、ポップアップ画面中にユーザ名やユーザIDの一覧を表示し、この一覧表示の中から表示者によって選択されたユーザが共有ユーザとして設定される。なお、共有ユーザの選択では、複数のユーザを一度に選択できてもよい。
ステップ702において、CPU305は、ステップ701で共有ユーザとして設定された他のユーザの情報(ユーザIDなど)を取得し、前述の共有データベース(図6参照)に登録する。すなわち、取得したユーザ情報(ここではユーザID)が、共有データベースの共有ユーザID列に、表示者のユーザ情報と共に登録される。
ステップ703において、CPU305は、表示者が別のユーザと共有するために選択したARオブジェクト(共有オブジェクト)の情報を取得する。ここで、表示者は、上述した共有ユーザの設定と同様、画像表示装置200のディスプレイ201に表示されるポップアップ画面(不図示)を介して共有オブジェクトの設定を行う。すなわち、共有オブジェクトの設定は、ポップアップ画面内に表示されたARオブジェクトのファイル名やオブジェクトIDの一覧表示などの中から、操作部205を介したユーザの選択によってなされる。この際、ポップアップ画面に一覧表示されるファイル名やオブジェクトIDは、ARオブジェクトデータベース(図5参照)に登録されているファイル名やオブジェクトIDである。
ステップ704において、CPU305は、ステップ703で取得した共有オブジェクトの情報を共有データベースに登録する。すなわち、取得した共有オブジェクト情報(ここではオブジェクトID)が、共有データベースの共有オブジェクトID列に登録される。
ステップ705において、CPU305は、ステップ703で共有オブジェクトの選択を行ったユーザの情報を共有データベースに登録する。本実施例では、共有オブジェクトの選択を行ったユーザ(表示者)のユーザIDが、共有データベースの表示者ID列に登録される。
ステップ706において、CPU305は、共有オブジェクトの表示態様を決定する処理を行う。共有オブジェクト表示態様決定処理の詳細については、後述する。
ステップ707において、CPU305は、共有オブジェクトを描画する処理(画像表示装置200のディスプレイ201上にARオブジェクトを表示させる処理)を行う。ARオブジェクトがどのようにしてディスプレイ201に表示されるかについては、後述する。なお、本実施例の場合、後述する実施例3とは異なり、平面オブジェクトはその表側の面が常に地面と垂直となるように表示されるものとする。
ステップ708において、CPU305は、共有ユーザによるARオブジェクトの共有が終了したかどうかを判定する。この判定は、例えば画像表示装置200のディスプレイ201に表示されるメニュー項目の選択に基づいて判定する。具体的には、メニュー項目内の「共有中のARオブジェクトを消去する」といった項目がユーザによって選択されたことが検知されれば、ARオブジェクトの共有が終了したと判定する。共有ユーザによるARオブジェクトの共有が終了したと判定された場合、本処理を終了する。一方、共有ユーザによるARオブジェクトの共有が終了していないと判定された場合は、ステップ707に戻る。
<共有オブジェクト表示態様決定処理>
図8は、本実施例に係る共有オブジェクト表示態様決定処理の流れを示すフローチャートである。
図8は、本実施例に係る共有オブジェクト表示態様決定処理の流れを示すフローチャートである。
ステップ801において、CPU305は、共有オブジェクトの種類を判定する。共有オブジェクトの種類は、共有データベースの「共有オブジェクトID」を参照し、そのオブジェクトIDに対応する種類を、ARオブジェクトデータベースの「種類」列の情報を参照することで判定される。共有オブジェクトの種類が平面オブジェクトであると判定された場合はステップ802へ進み、立体オブジェクトであると判定された場合はステップ805へ進む。
<平面オブジェクトの場合>
ステップ802において、CPU305は、ARオブジェクトを共有するユーザの広がりを導出する処理(以下、「共有ユーザ広がり導出処理」と呼ぶ。)を実行する。ここで、広がりとは、ARオブジェクトを表示させるユーザの向きに垂直な方向における、ARオブジェクトを共有するユーザ間の距離の最大値である。図9は、共有ユーザ広がり導出処理の詳細を示すフローチャートである。
ステップ802において、CPU305は、ARオブジェクトを共有するユーザの広がりを導出する処理(以下、「共有ユーザ広がり導出処理」と呼ぶ。)を実行する。ここで、広がりとは、ARオブジェクトを表示させるユーザの向きに垂直な方向における、ARオブジェクトを共有するユーザ間の距離の最大値である。図9は、共有ユーザ広がり導出処理の詳細を示すフローチャートである。
ステップ901において、CPU305は、同一のARオブジェクトを共有する各ユーザの位置情報を、ARオブジェクトを表示する表示装置の位置情報として取得する。具体的には、ユーザデータベースの位置属性を参照して、各ユーザのユーザIDに対応する3次元座標を取得する。
ステップ902において、CPU305は、ARオブジェクトを表示させるユーザ(表示者)の向きの情報を取得する。具体的には、ユーザデータベースの向き属性を参照して、表示者であるユーザのユーザIDに対応する角度を取得する。図10は、3人のユーザ(ユーザA〜C)によって平面のARオブジェクトを共有している状況を俯瞰した図である。図10において、ユーザBはARオブジェクトを表示させるユーザ(表示者)であり、その位置及び向きが(X12,Y12,Z12,θ12)=(5.0,2.5,1.8,30°)によって特定されている。この場合において、X12及びY12は原点(0,0)を基準とした場合のユーザBの水平面上の位置を示し、Z12はユーザBの高さ(身長)を示し、θ12はユーザBが向いている方向とX軸とのなす角度を示している。同様に、ユーザA、ユーザC、共有オブジェクトとしてのARオブジェクト(平面)のそれぞれについて、その位置及び向きが表されている。図10において、ARオブジェクトを表示させるユーザはユーザBであるため、本ステップでは、ユーザBの向きを示す角度θ12が取得されることになる。以下、この図10で示される場合を例に、ARオブジェクト(平面)の表示位置がどのように決定されるのかを説明することとする。
ステップ903において、CPU305は、ステップ902で取得した角度で特定されるARオブジェクトを表示させるユーザの向きに垂直な方向における、ARオブジェクトを共有するユーザ間の距離の最大値を算出する。図10では、ユーザAからユーザCまでの距離が、求めるユーザの広がりとなる。ユーザの広がりは、以下の式(1)で求められる。
上記式(1)において、XL及びYLはARオブジェクトに正対したときに最も左端に位置するユーザの座標、XR及びYRはARオブジェクトに正対したときに最も右端に位置するユーザの座標、θdispは表示者であるユーザの向きを示す角度である。
図10の(a)の場合、表示者であるユーザBの向きを示す角度は30°、最も左端にいるユーザCの位置を示す座標(X,Y)は(4.0,1.5)、最も右端にいるユーザAの位置を示す座標(X,Y)は(4.5,4.0)であるので、L=2.41(m)となる。同様に、図10の(b)の場合、表示者であるユーザAの向きを示す角度は350°、最も左端にいるユーザCの位置を示す座標(X,Y)は(4.0,1.5)、最も右端にいるユーザAの位置を示す座標(X,Y)は(4.5,4.0)であるので、L=2.36(m)となる。
以上のようにして、共有ユーザの広がりが導出される。
図8のフローチャートの説明に戻る。
ステップ803において、CPU305は、ARオブジェクトが共有ユーザの外側に表示されるように、ステップ802で求めた共有ユーザの広がりに基づいて、その表示位置を決定する。これにより、求められた共有ユーザの広がりの両端に位置するユーザがARオブジェクトを適切に観察することができる。
具体的には、ARオブジェクトを表示させるユーザの位置から当該ユーザが向いている方向へLだけ離した位置を、ARオブジェクトの水平方向における表示位置として決定し、設定する。この場合のARオブジェクトの表示位置(X2D,Y2D)は、以下の式(2)から求められる。
上記式(2)において、Lは上記式(1)で求められるユーザの広がりであり、Xdisp及びYdispは表示者であるユーザの座標、θdispは表示者であるユーザの向きを示す角度である。例えば、図10の(a)に示されたユーザBの向きを示す角度(30°)とその位置を示す座標(5.0,2.5)、および上記式(1)で得られた共有ユーザの広がりL=2.41mを上記式(2)に当てはめるとする。この場合、ARオブジェクトの表示位置(Xplane,Yplane)=(0.82,3.7)となる。すなわち、図10の(a)の場合におけるARオブジェクトは、原点からX方向に0.82m、Y方向に3.7mの位置に配置されることがわかる。
ステップ804において、CPU305は、ステップ802で求めた共有ユーザの広がりに基づいて、ARオブジェクトを表示する際の変倍率を決定する。上述のとおりARオブジェクトは、共有ユーザの外側のある程度離れた位置に表示されることから、それに応じた変倍率を設定する。図10の場合におけるARオブジェクトの変倍率αは、以下の式(3)で求められる。ここで、式(3)が2条件の式として表されているのは、表示するARオブジェクトを縮小して表示すると視認性が低下することから、拡大のみ考慮しているためである。
上記式(3)において、Lは上記式(1)で求められるユーザの広がりであり、kは定数である。例えば、定数kの値を1.0として、上記式(1)で求めた共有ユーザの広がりL=2.41mを上記式(3)に当てはめると、α=2.41となる。すなわち、図10の(a)の場合においてARオブジェクトは、元のオブジェクトの大きさの2.41倍の大きさで表示されることになる。なお、本実施例では上述のような理由から拡大のみを考慮しているが、ARオブジェクトの元データのサイズ等によっては縮小されることもあり得ることはいうまでもない。
ステップ805において、CPU305は、ARオブジェクトを表示する際の高さ(垂直方向における表示位置)を決定する。この場合のARオブジェクトの表示高は、例えば仮想オブジェクトを表示させるユーザの高さ(身長)に設定される。したがって、図10の(a)の場合、ARオブジェクトの高さZ2Dは、ユーザBの高さ(身長)であるZ12=1.8mに設定されることになる。この他、例えば、すべての共有ユーザの高さの平均値を求め、得られた平均値をARオブジェクトの高さに設定する等しても良い。
ステップ806において、CPU305は、ARオブジェクトを表示する際の向きを表示者の向きに基づいて決定する。例えば、ARオブジェクトの正面がARオブジェクトを表示させるユーザと正対するように、ARオブジェクトの向きが設定される。ARオブジェクトの向きθ2Dは、以下の式(4)で求められる。
上記式(4)において、θdispは表示者であるユーザの向きを示す角度である。例えば、図10に示されたユーザBの向きを示す角度=30°を上記式(4)に当てはめると、θ2D=210度なる。すなわち、図10の(a)の場合におけるARオブジェクトの表示角度θ2Dは210度となることが分かる。
以上のようにして、共有オブジェクトが平面オブジェクトの場合には、その表示位置、変倍率、及び向きが決定される。
<立体オブジェクトの場合>
ステップ807において、CPU305は、共有ユーザを構成する各ユーザ(表示者を含む)の位置情報を取得する。具体的には、ユーザデータベースの位置属性を参照して、各ユーザのユーザIDに対応する3次元座標を取得する。図11は、3人のユーザ(ユーザA〜C)によって立体のARオブジェクトを共有している状況を俯瞰した図である。図11において、ユーザBはARオブジェクトを表示するユーザであり、その位置及び向きが(X22,Y22,Z22,θ22)=(5.0,1.5,1.8,45°)によって表されている。この場合において、X22及びY22は原点(0,0)を基準とした場合のユーザBの平面上の位置を示し、Z22はユーザBの高さ(身長)を示し、θ22はX軸とユーザBが向いている方向とのなす角度を示している。同様に、ユーザA、ユーザC、共有オブジェクトとしてのARオブジェクト(立体)のそれぞれについて、その位置及び向きが表されている。図11において、ARオブジェクトを表示させるユーザはユーザBである。以下、この図11で示す場合を例に、ARオブジェクト(立体)の表示位置がどのように決定されるのかを説明することとする。
ステップ807において、CPU305は、共有ユーザを構成する各ユーザ(表示者を含む)の位置情報を取得する。具体的には、ユーザデータベースの位置属性を参照して、各ユーザのユーザIDに対応する3次元座標を取得する。図11は、3人のユーザ(ユーザA〜C)によって立体のARオブジェクトを共有している状況を俯瞰した図である。図11において、ユーザBはARオブジェクトを表示するユーザであり、その位置及び向きが(X22,Y22,Z22,θ22)=(5.0,1.5,1.8,45°)によって表されている。この場合において、X22及びY22は原点(0,0)を基準とした場合のユーザBの平面上の位置を示し、Z22はユーザBの高さ(身長)を示し、θ22はX軸とユーザBが向いている方向とのなす角度を示している。同様に、ユーザA、ユーザC、共有オブジェクトとしてのARオブジェクト(立体)のそれぞれについて、その位置及び向きが表されている。図11において、ARオブジェクトを表示させるユーザはユーザBである。以下、この図11で示す場合を例に、ARオブジェクト(立体)の表示位置がどのように決定されるのかを説明することとする。
ステップ808において、CPU305は、ARオブジェクトが共有ユーザの内側に表示されるように(共有ユーザの全員でARオブジェクトを取り囲むように)、ステップ807で求めた共有ユーザの位置情報に基づいて、その表示位置を決定する。これにより、共有ユーザの全員がARオブジェクトを適切に観察することができる。具体的には、共有ユーザの各位置を頂点として構成される多角形の重心を求め、求められた多角形の重心の位置を、ARオブジェクトの表示位置として決定する。ここで、共有ユーザの各位置を頂点として構成される多角形とは、共有ユーザ間を直線で結び、交差する線を除いた残りの直線によってできた図形である。図11において、多角形の重心の位置(X3D,Y3D)は、以下の式(5)によって求められる。
上記式(5)において、nは共有ユーザを構成するユーザの人数を示し、共有データベースの「共有ユーザID」に登録されているユーザIDの数と等しい。例えば、図11に示されたユーザAの位置を示す座標(X,Y)=(3.0,5.0)、ユーザBの位置を示す座標(X,Y)=(5.0,1.5)およびユーザCの位置を示す座標(X,Y)=(2.0,2.0)を上記式(5)に当てはめるとする。この場合、多角形の重心位置(X3D,Y3D)=(3.3,3.8)となる。すなわち、図11の場合におけるARオブジェクトは、原点からX方向に3.3m、Y方向に3.8mの位置に配置されることがわかる。
ステップ809において、CPU305は、ARオブジェクトを表示する際の高さを決定する。この場合のARオブジェクトの表示高は、共有ユーザ全員に見えやすいよう例えばARオブジェクトを表示させるユーザの高さ(身長)の二分の一に設定される。したがって、図11の場合、ARオブジェクトの高さZBは、ユーザBの高さ(身長)であるZ22の半分の高さに設定されることになる。この他、例えば、すべての共有ユーザの高さの平均値を求め、得られた平均値の二分の一をARオブジェクトの高さに設定するなどしても良い。
ステップ810において、CPU305は、ARオブジェクトを表示する際の向きを表示者の向きに基づいて決定する。例えば、表示者以外のユーザに対して基準となる面(正面)が向くよう、ARオブジェクトの基準面とは逆の面(背面)がARオブジェクトを表示させるユーザと正対するように、ARオブジェクトの向きが設定される。図11において、ARオブジェクトの向きθ3Dは、以下の式(6)で求められる。
例えば、図11に示された表示者であるユーザBの向きを示す角度=45°を上記式(6)に当てはめると、θB=225度なる。すなわち、図11の場合におけるARオブジェクトの表示角度θ3Dは225度となることが分かる。
以上のようにして、共有オブジェクトが立体オブジェクトの場合には、その表示位置及び向きが決定される。なお、本実施例においては、立体オブジェクトについては、表示する際の変倍率を決定する処理を設けていない。これは、変倍処理に伴って立体オブジェクトの造形に狂いが生じてしまう可能性を考慮したためであるが、平面オブジェクトと同様に変倍処理を行ってもよいことは言うまでもない。
そして、ステップ811において、CPU305は、決定された表示位置等の情報に従って、共有データベースの内容を更新する。
以上が、共有オブジェクト表示態様決定処理の内容である。
本実施例においては、ARオブジェクトはディスプレイ201に表示される。そのため、ディスプレイ201上でのARオブジェクトの表示位置を決定する必要がある。次に、ディスプレイ201上でのARオブジェクトの表示位置がどのように決定されるかについて説明する。
図12及び図13は、ディスプレイ201を通して観察されるARオブジェクトの表示位置を導出する方法を説明するための図である。図12においてγは、観測者の装着する画像表示装置200の法線1201に対するARオブジェクトの位置する方向の角度を示している。まず、この角度γが、以下の式(7)によって求められる。
上記式(7)において、Xo及びYoは観察者の位置を示す座標、Xt及びYtはARオブジェクトの位置を示す座標であり、θは観察者が向いている方向とX軸とのなす角度である。観察者の情報は、前述のユーザデータベースを参照して取得される。
次に、求めた角度γの傾き方向を示す線と、画像表示装置200のディスプレイ201との交点を求める。この交点が、ディスプレイ201上でのARオブジェクトの表示位置となる。図13において、観測者の目の法線1301は、図12における画像表示装置の法線1201と等しい。この場合において、角度γの傾き方向を示す線1302と、画像表示装置200のディスプレイ201との交点が、ディスプレイ201上でのARオブジェクトの表示位置Pとなる。この表示位置Pは、観測者から見た被観測者が画像表示装置200のディスプレイ201越しに視認される位置であり、ARオブジェクトがディスプレイ201上に表示されるARオブジェクトの表示位置である。この表示位置Pは、式(8)によって求められる。
上記式(8)において、Dは観測者の目からディスプレイ201までの距離であって、画像表示装置200に固有の値であり、γは上記式(7)で求められる値である。
このようにして得られた表示位置Pに従って、ARオブジェクトがディスプレイ201上に表示される。図14の(a)はディスプレイ201に平面オブジェクトを表示した場合の一例であり、同(b)はディスプレイ201に立体オブジェクトを表示した場合の一例を示す図である。これにより、ユーザは、画像表示装置200のディスプレイ201を介して、例えば図14の(a)及び(b)に示すような形で、現実空間の撮像画像に重畳表示されたARオブジェクトを観察することが出来る。
以上のとおり、本実施例によれば、共有されるARオブジェクトの種類が平面オブジェクトであるか立体オブジェクトであるかに応じてその表示位置等が決定される。そのため、、例えばARオブジェクトをそもそも観察できないユーザが生じるといった問題や立体オブジェクトの場合においてその裏側を観察するためにユーザが移動しなければならないといった問題が生じることがない。すなわち、本実施例に係る発明によれば、共有ユーザの全員が見えやすい適切な位置にARオブジェクトを配置することができる。
実施例1では、ARオブジェクトの表示者であるユーザが共有するARオブジェクトを選択した時点でその表示位置等を決定して、現実空間を撮像した画像内にARオブジェクトを重畳表示する場合について説明した。次に、既に共有オブジェクトとして表示されているARオブジェクトの表示位置等を更新する場合について説明する。なお、実施例1とはシステム構成を含めその大部分が共通するため、ここでは差異点を中心に説明することとする。
図15は、本実施例に係る拡張現実表示システムにおいて、複数のユーザ間で共通のARオブジェクトを表示させた後、その表示位置等を更新する処理の流れを示すフローチャートである。なお、この一連の処理は、以下に示す手順を記述したコンピュータ実行可能なプログラムを、処理サーバ300内のHDD310からメインメモリ308上に読み込んだ後に、CPU305によって該プログラムを実行することによって実施される。
ステップ1501〜ステップ1507までの各処理は、実施例1における図7のフローチャートのステップ701〜ステップ707に対応するため、ここでは説明を省略する。
ステップ1508において、CPU305は、共有ユーザの一人によって、表示中のARオブジェクトに対する表示更新要求がなされたどうかを判定する。ユーザの表示更新要求は、例えば画像表示装置200のディスプレイ201上に表示の更新を行うためのポップアップ画面をユーザが操作部205を使って表示させ(図16を参照)、「決定」ボタン1601を選択する等の方法で行う。表示更新要求があったと判定された場合は、ステップ1509に進む。一方、表示更新要求がなされていないと判定された場合はステップ1511に進む。
ステップ1509において、CPU305は、共有ユーザの構成に変化(新たに共有ユーザとなるユーザが追加、或いは共有ユーザからのユーザの離脱)があるかどうかを判定する。この判定は、例えば新たなユーザの追加の場合であれば、新たにARオブジェクトの共有に参加したいユーザの申し込み要求を受けて、共有ユーザの1人(或いは全員)がそれに対し許可したかどうかといった方法によりなされる。ユーザの離脱の場合も同様である。共有ユーザの構成に変化があると判定されればステップ1510に進む。一方、共有ユーザの構成に変化がないと判定されればステップ1506に戻り、改めて共有オブジェクト表示態様決定処理が実行され、位置を移動したユーザがいれば、移動後の位置に基づいて共有オブジェクトの表示位置等の決定がなされる。
ステップ1510において、CPU305は、現時点での共有ユーザの情報を取得し、共有ユーザデータベースの更新、すなわち、「共有ユーザID」の項目に新たに共有ユーザに加わるユーザのユーザIDを追加したり、共有ユーザから離脱するユーザのユーザIDを削除したりする処理を行う。共有ユーザデータベースの更新が終われば、ステップ1506に戻り、更新後の共有ユーザデータベースに従った共有オブジェクト表示態様決定処理が実行される。
ステップ1511において、CPU305は、共有ユーザによるARオブジェクトの共有が終了したかどうかを判定し、共有が終了したと判定された場合は本処理を終了し、共有が終了していないと判定された場合は、ステップ1508に戻る。
本実施例によれば、例えば共有ユーザの一人が位置を移動した場合や新しいユーザが参加した場合など、共有ユーザの位置関係やその構成が変化した場合でも、その時点における最適なARオブジェクトの表示位置等を決定することができる。
実施例1では、表示させるARオブジェクトの種類に応じてその表示位置等を自動で決定していた。次に、ユーザに対して水平方向における表示位置の候補を提示し選択させる場合について、実施例3として説明する。なお、実施例1と共通する点については説明を簡略化ないしは省略し、ここでは差異点を中心に説明することとする。
図17は、本実施例に係る拡張現実表示システムにおいて、複数のユーザ間で共通のARオブジェクトを表示させる処理の流れを示すフローチャートである。なお、この一連の処理は、以下に示す手順を記述したコンピュータ実行可能なプログラムを、処理サーバ300内のHDD310からメインメモリ308上に読み込んだ後に、CPU305によって該プログラムを実行することによって実施される。
ステップ1701〜ステップ1705までの各処理は、実施例1における図7のフローチャートのステップ701〜ステップ705に対応するため、ここでは説明を省略する。
ステップ1706において、CPU305は、ARオブジェクトの表示位置の候補を決定する。図18は、ARオブジェクトの水平方向における表示位置の候補を決定する表示位置候補決定処理の詳細を示すフローチャートである。
ステップ1801において、CPU305は、共有ユーザを構成する各ユーザの位置情報を取得する(実施例1における図8のフローチャートのステップ807を参照)。
ステップ1802において、CPU305は、取得した各ユーザの位置を頂点とする多角形の面積を求める。多角形の面積は、以下の式(9)から求められる。
上記式(9)において、nは共有ユーザを構成するユーザの数である。図19は、本ステップで多角形の面積を求める様子を説明する図である。図19のように共有ユーザA〜Cが位置している場合、各ユーザの位置を頂点とする三角形の面積Sは、上記式(9)から1.38(m2)となる。
ステップ1803において、CPU305は、ARオブジェクトの面積を取得する。具体的には、ARオブジェクトデータベースの「大きさ」属性を参照して、共有オブジェクトとして選択されたARオブジェクトのオブジェクトIDに対応する面積が取得される。この場合において、選択されたARオブジェクトが立体オブジェクトの場合は、垂直方向ではなく、水平方向における面積が取得される。この場合に必要なのは、共有ユーザによって囲むようにARオブジェクトをその内側に配置することが可能かどうかを判定するための情報だからである。例えば、前述のオブジェクトIDが0002の平面オブジェクトが選択された場合には1.5m2、オブジェクトIDが0003の立体オブジェクトが選択された場合には0.8m2、といったように(図5参照)、ARオブジェクトの面積が取得されることになる。
ステップ1804において、CPU305は、ステップ1801で求めた多角形の面積とステップ1802で取得した共有オブジェクトの面積とを比較し、いずれの面積が大きいかを判定する。共有オブジェクトの面積が多角形の面積より小さい場合、ステップ1805に進む。一方、共有オブジェクトの面積が多角形の面積より大きい場合には、ステップ1806に進む。上述のようにステップ1802で導出された多角形の面積が1.38m2のとき、オブジェクトIDが0002の平面オブジェクトについてはその面積が1.5m2なのでステップ1806に進み、オブジェクトIDが0003の立体オブジェクトについてはその面積が0.8m2なのでステップ1805に進むことになる。
ステップ1805において、CPU305は、共有オブジェクトとして選択されたARオブジェクトを、共有ユーザの内側と外側のいずれにも配置可能と決定して、本処理を終える。
ステップ1806において、CPU305は、共有オブジェクトして選択されたARオブジェクトを、共有ユーザの外側にのみ配置可能と決定して、本処理を終える。
以上のようにして、共有オブジェクトの水平方向における表示位置の候補が決定される。
図17のフローチャートの説明に戻る。
ステップ1707において、CPU305は、ステップ1707で決定された共有オブの表示位置の候補をユーザに提示し、ユーザによる選択を受け付ける。例えば、画像表示装置200のディスプレイ201上に表示位置候補を示したポップアップ画面を表示し、当該ポップアップ画面で示された表示位置の候補から希望する表示位置をユーザに選択させる。図20の(a)及び(b)は、ポップアップ画面の一例を示す図である。図20の(a)はARオブジェクトを共有ユーザの内側と外側の両方に配置可能と決定された場合におけるポップアップ画面、同(b)はARオブジェクトを共有ユーザの外側にのみ配置可能と決定された場合におけるポップアップ画面である。図20の(a)では、表示位置の候補として「内側に表示」と「外側に表示」の2つが示されており、ユーザはいずれかについて「決定」ボタンを押下することで共有オブジェクトの表示位置を決定する。図20の(b)では、表示位置の候補が外側のみであることが示され、ユーザは外側で問題なければ「OK」ボタンを押下して共有オブジェクトの表示位置を決定し、問題があれば「戻る」ボタンを押下し、各ユーザの位置を変更する等の対応をすることになる。
ステップ1708において、CPU305は、共有オブジェクトの表示位置を決定する処理を行う。実施例1における共有オブジェクト表示態様決定処理との違いは、ステップ1707で受け付けたユーザの選択によって処理を切替えている点である。以下、詳しく説明する。
図21は、本実施例に係る共有オブジェクト表示態様決定処理の流れを示すフローチャートである。以下では、実施例1における図8のフローチャートとの差分となる箇所を中心に説明する。
ステップ2101において、CPU305は、共有オブジェクトの種類を判定し、平面オブジェクトであると判定された場合はステップ2102へ進み、立体オブジェクトであると判定された場合はステップ2112へ進む。判定の方法については、実施例1のステップ801で述べたとおりである。
ステップ2102において、CPU305は、共有オブジェクトとしての平面オブジェクトをユーザの内側に配置するかどうかを、前述したユーザの選択結果に従って判定する。すなわち、前述のステップ1707で、共有オブジェクトの表示位置として、内側に表示することが選択されたのか、外側に表示することが選択されたのかを判定する。外側に表示することが選択されていた場合には、ステップ2103に進む。一方、内側に表示することが選択されていた場合には、ステップ2108に進む。ステップ2103以降の各処理(S2103〜S2107)は前述のステップ802〜ステップ806に対応し、ステップ2108以降の各処理(S2108〜S2111)は前述のステップ807〜ステップ810に対応している。ただし、表示対象が平面オブジェクトであることから、共有ユーザの内側(中央)に配置される場合には、ARオブジェクトの表面が上向きとなるよう地面と水平に表示する必要がある。そのため、ステップ2106におけるARオブジェクトの高さを決定する処理においては、共有ユーザの全員がその内容を確認できるよう、表示者の高さ(身長)の例えば二分の一の高さに設定されるといった点で、実施例1とは異なることになる。
ステップ2112において、CPU305は、共有オブジェクトとしての立体オブジェクトをユーザの内側に配置するかどうかを、前述したユーザの選択結果に従って判定する。すなわち、前述のステップ1707で、共有オブジェクトの表示位置として、内側に表示することが選択されたのか、外側に表示することが選択されたのかを判定する。外側に表示することが選択されていた場合には、ステップ2113に進む。一方、内側に表示することが選択されていた場合には、ステップ2118に進む。ステップ2113以降の各処理(S2113〜S2117)は前述のステップ802〜ステップ806に対応し、ステップ2118以降の各処理はステップ807〜ステップ810に対応している。
そして、ステップ2122において、CPU305は、決定されたARオブジェクトの表示位置等の情報に従って、共有データベースの内容を更新する。
以上が、本実施例に係る共有オブジェクト表示態様決定処理の内容である。
図17のフローチャートの説明に戻る。
ステップ1709及びステップ1710の各処理は、実施例1における図7のフローチャートのステップ707及びステップ708に対応するため、ここでは説明を省略する。
本実施例によれば、共有されるARオブジェクトの表示する位置を、表示者であるユーザの意思に掛からしめることができる。
本実施例によれば、共有されるARオブジェクトの表示する位置を、表示者であるユーザの意思に掛からしめることができる。
実施例1〜3では、表示者を含めた共有ユーザの全員にとって見やすい位置にARオブジェクトを配置することを前提としていた。次に、ARオブジェクトの表示者が他のユーザに対して発表を行うときなど、表示者自身のARオブジェクトの見え方を考慮する必要のない場合について、実施例4として説明する。なお、他の実施例と共通する点については説明を簡略化ないしは省略し、ここでは差異点を中心に説明することとする。
図22は、本実施例に係る拡張現実表示システムにおいて、複数のユーザ間で共通のARオブジェクトを表示させる処理の流れを示すフローチャートである。なお、この一連の処理は、以下に示す手順を記述したコンピュータ実行可能なプログラムを、処理サーバ300内のHDD310からメインメモリ308上に読み込んだ後に、CPU305によって該プログラムを実行することによって実施される。
ステップ2201〜ステップ2205までの各処理は、実施例1における図7のフローチャートのステップ701〜ステップ705に対応するため、ここでは説明を省略する。
ステップ2206において、CPU305は、表示モードを判定する。表示モードには、共有モードと発表モードの2種類がある。「共有モード」は、先の実施例で述べた、共有ユーザの全員にとって見えやすい位置にARオブジェクトを表示するモードであり、「ARオブジェクトの表示者を含めた全ユーザでARオブジェクトを観察したい場合に適したモードである。一方、「発表モード」は、ARオブジェクトを表示させるユーザ以外の共有ユーザにとって見えやすい位置にARオブジェクトを表示するモードであり、表示者が発表者となってARオブジェクトを用いたプレゼンテーションを行うのに適したモードである。表示モードの選択は、例えば、ディスプレイ201上に表示される選択用ポップアップ画面(不図示)において、「共有モード」と「発表モード」のいずれをユーザが選択したかによって、この表示モードの判定を行う。判定の結果、共有モードが選択されていた場合にはステップ2207に進み、発表モードが選択されていた場合にはステップ2208に進む。
ステップ2207において、CPU305は、ARオブジェクトの表示者を含めた全ユーザの位置を考慮してARオブジェクトを配置するための、共有オブジェクト表示決定処理を行う。この処理は、実施例1における図7のフローチャートのステップ706と同様であるため、ここでは説明を省略する。
ステップ2208〜ステップ2212の各処理において、CPU305は、ARオブジェクトの表示者の位置を考慮して、ARオブジェクトの表示位置等を決定する。
まず、ステップ2208において、CPU305は、ARオブジェクトの表示者の位置情報を取得する。
次に、ステップ2209において、CPU305は、取得した表示者の位置情報に基づき、例えばARオブジェクトの表示位置を表示者の右横或いは左横といった表示者を基準とした所定の位置に決定する。図23は、発表モード時におけるARオブジェクトの表示位置の一例を示す図である。図23の場合において、ARオブジェクトの表示位置(XP,YP)は、以下の式(10)で求められる。
上記式(10)において、Xdisp及びYdispは表示者であるユーザの座標、θdispは表示者であるユーザの向きを示す角度、dは表示者とARオブジェクト間の距離である。なお、表示者とARオブジェクト間の距離dは、例えば1mなど所定の値を予め決定しておけばよい。
次に、ステップ2210において、ARオブジェクトを表示する際の高さを決定する。この場合のARオブジェクトの表示高は、例えば発表者であるARオブジェクトの表示者の高さ(身長)に設定される。したがって、図23の場合、ARオブジェクトの高さZPは、ユーザBの高さ(身長)であるZ32に設定されることになる。この他、例えば、観察者となる他のユーザA及びCの高さ(Z31とZ33)の平均値を求め、得られた平均値をARオブジェクトの高さに設定する等しても良い。
そして、ステップ2211において、CPU305は、ARオブジェクトを表示する際の向きを決定する。ここでは、ARオブジェクトの表面(正面)がARオブジェクトの表示者の向きと同じなるように、ARオブジェクトの向きが設定される。図23の場合、ARオブジェクトの向きθPは、発表者であるARオブジェクトの表示者の向きθ32と同じ方向に設定される。
ステップ2212において、CPU305は、決定されたARオブジェクトの表示位置等の情報に従って、共有データベースの内容を更新する。
ステップ2211及びステップ2212の各処理は、実施例1における図7のフローチャートのステップ707及びステップ708に対応するため、ここでは説明を省略する。
本実施例によれば、ユーザが選択した表示モードに応じて、ARオブジェクトの表示位置が決定される。「発表モード」が選択された場合には、ARオブジェクトの表示者の隣にARオブジェクトの表示位置が設定されるので、プレゼンテーション等を行うユーザは、ARオブジェクトを使った発表がし易くなる。
Claims (13)
- 現実空間の画像にARオブジェクトを重畳して表示する複数の表示装置に、前記ARオブジェクトを表示させる情報処理装置であって、
前記ARオブジェクトの種類に応じて、前記ARオブジェクトの表示態様を決定する表示態様決定手段と、
前記決定された表示態様に従って前記ARオブジェクトを前記複数の表示装置に表示させる制御手段と、
を有することを特徴とする情報処理装置。 - 前記表示態様には、前記ARオブジェクトの水平方向の表示位置、垂直方向の表示位置、変倍率、向きのいずれかを含むことを特徴とする請求項1に記載の情報処理装置。
- 前記表示態様決定手段は、前記ARオブジェクトの種類が平面オブジェクトである場合、前記複数の表示装置のそれぞれに対応する各ユーザの位置と、前記ARオブジェクトを表示させるユーザの向きを取得して、前記ARオブジェクトを共有するユーザの広がりを導出し、導出された広がりに基づいて、前記ARオブジェクトの水平方向の表示位置又は変倍率を決定することを特徴とする請求項2に記載の情報処理装置。
- 前記表示態様決定手段は、前記ARオブジェクトの種類が立体オブジェクトである場合、前記ARオブジェクトを共有するユーザの位置を頂点とする多角形の重心を、前記ARオブジェクトの水平方向の表示位置として決定することを特徴とする請求項2に記載の情報処理装置。
- 前記表示態様決定手段は、当該ARオブジェクトを表示させるユーザの高さ又は当該ARオブジェクトを共有するすべてのユーザの高さに基づいて、前記ARオブジェクトの垂直方向の表示位置を決定することを特徴とする請求項2乃至4のいずれか1項に記載の情報処理装置。
- 前記表示態様決定手段は、当該ARオブジェクトを表示させるユーザの向きに基づいて、前記ARオブジェクトの向きを決定することを特徴とする請求項2乃至4のいずれか1項に記載の情報処理装置。
- 前記表示態様決定手段は、前記ARオブジェクトを共有するユーザの位置又は人数の変化に応じて、前記表示態様を更新することを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
- 前記ARオブジェクトを共有するユーザの位置に基づいて、前記ARオブジェクトの水平方向における表示位置の候補を決定する表示位置候補決定手段をさらに備え、
前記表示態様決定手段は、前記決定された表示位置の候補のうちユーザが選択した表示位置に基づいて、前記ARオブジェクトの表示態様を決定する
ことを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。 - 前記表示位置候補決定手段は、前記ARオブジェクトを共有するユーザの位置を頂点とする多角形の面積と当該ARオブジェクトの面積とを比較することにより、前記ARオブジェクトの水平方向における表示位置の候補を決定することを特徴とする請求項8に記載の情報処理装置。
- 前記ARオブジェクトを表示する際の表示モードを判定する手段をさらに備え、
前記表示モードには、前記ARオブジェクトを共有するユーザの全員にとって見えやすい位置に当該ARオブジェクトを表示する共有モードと、前記ARオブジェクトを表示させるユーザ以外の共有ユーザにとって見えやすい位置に当該ARオブジェクトを表示する発表モードとを含み、
前記表示態様決定手段は、前記表示モードが前記発表モードである場合、前記ARオブジェクトの水平方向における表示位置を、前記ARオブジェクトを表示させるユーザを基準とした所定の位置に決定する
ことを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。 - 請求項1〜10のいずれか1項に記載の情報処理装置と、前記複数の表示装置とを有する拡張現実表示システム。
- 現実空間の画像にARオブジェクトを重畳して表示する複数の表示装置に、前記ARオブジェクトを表示させる情報処理方法であって、
前記ARオブジェクトの種類に応じて、前記ARオブジェクトの表示態様を決定する表示態様決定ステップと、
前記決定された表示態様に従って前記ARオブジェクトを前記複数の表示装置に表示させる制御ステップと、
を含むことを特徴とする情報処理方法。 - コンピュータを、請求項1乃至10のいずれか1項に記載の情報処理装置として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013077210A JP2014203175A (ja) | 2013-04-02 | 2013-04-02 | 情報処理装置、情報処理方法及びプログラム。 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013077210A JP2014203175A (ja) | 2013-04-02 | 2013-04-02 | 情報処理装置、情報処理方法及びプログラム。 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014203175A true JP2014203175A (ja) | 2014-10-27 |
Family
ID=52353586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013077210A Pending JP2014203175A (ja) | 2013-04-02 | 2013-04-02 | 情報処理装置、情報処理方法及びプログラム。 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014203175A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017084100A (ja) * | 2015-10-28 | 2017-05-18 | キヤノン株式会社 | 情報通信端末、共有管理装置、情報共有方法、コンピュータプログラム |
JP2018097437A (ja) * | 2016-12-08 | 2018-06-21 | 株式会社テレパシージャパン | ウェアラブル情報表示端末及びこれを備えるシステム |
CN109952599A (zh) * | 2016-11-21 | 2019-06-28 | 索尼公司 | 信息处理设备、信息处理方法和程序 |
EP3547083A1 (en) | 2018-03-30 | 2019-10-02 | Kabushiki Kaisha Square Enix (also trading as Square Enix Co., Ltd.) | Information processing program, information processing method, and information processing system |
WO2020255758A1 (ja) * | 2019-06-19 | 2020-12-24 | ソニー株式会社 | 情報処理装置および情報処理方法、並びにプログラム |
US11238658B2 (en) | 2019-04-19 | 2022-02-01 | Kabushiki Kaisha Square Enix | AR space image projecting system, AR space image projecting method, and user terminal |
-
2013
- 2013-04-02 JP JP2013077210A patent/JP2014203175A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017084100A (ja) * | 2015-10-28 | 2017-05-18 | キヤノン株式会社 | 情報通信端末、共有管理装置、情報共有方法、コンピュータプログラム |
CN109952599A (zh) * | 2016-11-21 | 2019-06-28 | 索尼公司 | 信息处理设备、信息处理方法和程序 |
JP2018097437A (ja) * | 2016-12-08 | 2018-06-21 | 株式会社テレパシージャパン | ウェアラブル情報表示端末及びこれを備えるシステム |
EP3547083A1 (en) | 2018-03-30 | 2019-10-02 | Kabushiki Kaisha Square Enix (also trading as Square Enix Co., Ltd.) | Information processing program, information processing method, and information processing system |
US10825252B2 (en) | 2018-03-30 | 2020-11-03 | Kabushiki Kaisha Square Enix | Information processing program, method, and system for sharing virtual process for real object in real world using augmented reality |
US11328490B2 (en) | 2018-03-30 | 2022-05-10 | Kabushiki Kaisha Square Enix | Information processing program, method, and system for sharing virtual process for real object arranged in a real world using augmented reality |
US11238658B2 (en) | 2019-04-19 | 2022-02-01 | Kabushiki Kaisha Square Enix | AR space image projecting system, AR space image projecting method, and user terminal |
WO2020255758A1 (ja) * | 2019-06-19 | 2020-12-24 | ソニー株式会社 | 情報処理装置および情報処理方法、並びにプログラム |
US11914760B2 (en) | 2019-06-19 | 2024-02-27 | Sony Group Corporation | Information processing device and information processing method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2020202551B2 (en) | Method for representing points of interest in a view of a real environment on a mobile device and mobile device therefor | |
JP5776201B2 (ja) | 情報処理装置、情報共有方法、プログラム及び端末装置 | |
US10095458B2 (en) | Information processing apparatus, information processing method, non-transitory computer-readable storage medium, and system | |
US9525964B2 (en) | Methods, apparatuses, and computer-readable storage media for providing interactive navigational assistance using movable guidance markers | |
US20220283632A1 (en) | Iinformation processing apparatus, image generation method, and computer program | |
US9268410B2 (en) | Image processing device, image processing method, and program | |
US20160292922A1 (en) | Display control device, display control method, and recording medium | |
US20160291687A1 (en) | Display control device, display control method, and recording medium | |
JP2014203175A (ja) | 情報処理装置、情報処理方法及びプログラム。 | |
CN113301506B (zh) | 信息共享方法、装置、电子设备及介质 | |
CN112667179B (zh) | 一种基于混合现实的远程同步协作系统 | |
KR101687309B1 (ko) | Hmd가 구비된 단말의 정보 제공 서비스 방법 및 장치 | |
JP2015087909A (ja) | 情報処理システム、情報処理装置、情報処理サーバ、情報処理方法、及びプログラム | |
KR102260193B1 (ko) | 3차원 공간에 대한 보안기능을 제공하는 증강현실 원격 통신방법 및 시스템 | |
JP2017108356A (ja) | 画像管理システム、画像管理方法、プログラム | |
US11295536B2 (en) | Information processing apparatus and non-transitory computer readable medium | |
JP7226836B2 (ja) | 表示制御装置、プレゼンテーションシステム、表示制御方法、及びプログラム | |
JP7082698B1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP2015072607A (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP7086242B1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP7417827B2 (ja) | 画像編集方法、画像表示方法、画像編集システム、及び画像編集プログラム | |
JP2016224809A (ja) | 情報処理装置、情報処理方法 | |
CN117555419A (zh) | 控制方法、装置、头戴显示设备及介质 |