(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022109527
(43)【公開日】2022-07-28
(54)【発明の名称】情報処理システム及び情報処理方法
(51)【国際特許分類】
G06F 16/587 20190101AFI20220721BHJP
G06F 16/583 20190101ALI20220721BHJP
【FI】
G06F16/587
G06F16/583
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2021004902
(22)【出願日】2021-01-15
(71)【出願人】
【識別番号】521023539
【氏名又は名称】Cellid株式会社
(74)【代理人】
【識別番号】100166006
【弁理士】
【氏名又は名称】泉 通博
(74)【代理人】
【識別番号】100154070
【弁理士】
【氏名又は名称】久恒 京範
(74)【代理人】
【識別番号】100153280
【弁理士】
【氏名又は名称】寺川 賢祐
(72)【発明者】
【氏名】白神 賢
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA02
5B175FB02
(57)【要約】
【課題】空間内の位置及び向きに関連付けられた登録特徴点群データを容易に更新できるようにする。
【解決手段】情報処理方法は、情報端末1が、情報端末1が属する空間の少なくとも一部の領域を撮像することにより撮像画像データを生成するステップと、情報端末1が生成した撮像画像データに含まれる被写体の複数の特徴点群により構成される特徴点群データを、情報端末1から情報処理装置2に送信するステップと、情報処理装置2が、情報端末1から受信した特徴点群データが最新の特徴点群データであると判定した場合に、特徴点群データを空間内の位置に関連付けて記憶装置4に記憶させるステップと、を有する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
情報端末と、前記情報端末と通信可能な情報処理装置と、記憶装置と、を備え、
前記情報端末は、
前記情報端末が属する空間の少なくとも一部の領域を撮像することにより撮像画像データを生成する撮像部と、
前記撮像画像データに含まれる被写体の複数の特徴点群により構成される特徴点群データを前記情報処理装置に送信する端末送信処理部と、
を有し、
前記情報処理装置は、
前記情報端末から前記特徴点群データを受信する端末データ受信部と、
前記情報端末から受信した前記特徴点群データを前記空間内の位置に関連付けて前記記憶装置に記憶させる空間データ管理部と、
を有し、
前記空間データ管理部は、前記情報端末から受信した前記特徴点群データが最新の特徴点群データであると判定した場合に、前記情報端末から受信した前記特徴点群データを登録特徴点群データとして前記記憶装置に記憶させる、
情報処理システム。
【請求項2】
前記端末データ受信部は、前記情報端末の位置及び向きを示す位置データをさらに取得し、
前記空間データ管理部は、前記位置データが示す位置及び向きに関連付けられた前記特徴点群データが前記記憶装置に記憶されていない場合に、前記情報端末から受信した前記特徴点群データを前記登録特徴点群データとして前記記憶装置に記憶させる、
請求項1に記載の情報処理システム。
【請求項3】
前記空間データ管理部は、同じ位置及び向きを示す前記位置データを送信した複数の前記情報端末から複数の前記特徴点群データを前記端末データ受信部が受信した場合、データ量が多い前記特徴点群データを前記登録特徴点群データとして前記記憶装置に記憶させる、
請求項2に記載の情報処理システム。
【請求項4】
前記空間データ管理部は、前記位置データが示す位置及び向きに対応する前記登録特徴点群データが前記記憶装置に記憶されている場合、記憶されている前記登録特徴点群データのデータ量よりも前記情報端末から受信した前記特徴点群データのデータ量の方が大きいことを条件として、前記情報端末から受信した前記特徴点群データを前記登録特徴点群データとして前記記憶装置に記憶させる、
請求項2又は3に記載の情報処理システム。
【請求項5】
前記空間データ管理部は、前記情報端末から受信した前記特徴点群データに、予め登録された形状の被写体を示すデータが含まれていることを条件として、前記特徴点群データを前記記憶装置に記憶させる、
請求項1から4のいずれか一項に記載の情報処理システム。
【請求項6】
前記情報端末は、前記記憶装置に記憶されている複数の前記登録特徴点群データを記憶する端末記憶部をさらに有し、
前記端末送信処理部は、前記端末記憶部に記憶された前記複数の登録特徴点群データの中に前記特徴点群データとの差分が閾値以下の登録特徴点群データがない場合に、前記特徴点群データを前記情報処理装置に送信する、
請求項1から5のいずれか一項に記載の情報処理システム。
【請求項7】
情報端末が、前記情報端末が属する空間の少なくとも一部の領域を撮像することにより撮像画像データを生成するステップと、
前記情報端末が生成した前記撮像画像データに含まれる被写体の複数の特徴点群により構成される特徴点群データを、前記情報端末から情報処理装置に送信するステップと、
前記情報処理装置が、前記情報端末から受信した前記特徴点群データが最新の特徴点群データであると判定した場合に、前記特徴点群データを前記空間内の位置に関連付けて記憶装置に記憶させるステップと、
を有する情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、拡張現実画像を表示するための情報処理システム及び情報処理方法に関する。
【背景技術】
【0002】
従来、情報端末が被写体を撮像して生成した撮像画像に含まれる被写体の特徴点に基づいて、情報端末に提供する拡張現実画像を特定し、撮像画像に拡張現実画像を重ね合わせて表示部に表示させるシステムが知られている(例えば、特許文献1を参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
情報端末が被写体の複数の特徴点を特定することにより作成した特徴点群データに基づいて情報端末の位置を特定するためには、作成した特徴点群データを、予め空間内の位置及び向きに関連付けられた多数の登録特徴点群データと比較する必要がある。しかしながら、空間内に新しい建物が建設されたり樹木が成長したりすると、過去に作成された登録特徴点群データが、空間内の最新の被写体の状態に対応しないようになってしまう。その結果、情報端末の位置を特定することができないという問題があった。
【0005】
そこで、本発明はこれらの点に鑑みてなされたものであり、空間内の位置及び向きに関連付けられた登録特徴点群データを容易に更新できるようにすることを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1の態様の情報処理システムは、情報端末と、前記情報端末と通信可能な情報処理装置と、記憶装置と、を備え、前記情報端末は、前記情報端末が属する空間の少なくとも一部の領域を撮像することにより撮像画像データを生成する撮像部と、前記撮像画像データに含まれる被写体の複数の特徴点群により構成される特徴点群データを前記情報処理装置に送信する端末送信処理部と、を有し、前記情報処理装置は、前記情報端末から前記特徴点群データを受信する端末データ受信部と、前記情報端末から受信した前記特徴点群データを前記空間内の位置に関連付けて前記記憶装置に記憶させる空間データ管理部と、を有し、前記空間データ管理部は、前記情報端末から受信した前記特徴点群データが最新の特徴点群データであると判定した場合に、前記情報端末から受信した前記特徴点群データを登録特徴点群データとして前記記憶装置に記憶させる。
【0007】
前記端末データ受信部は、前記情報端末の位置及び向きを示す位置データをさらに取得し、前記空間データ管理部は、前記位置データが示す位置及び向きに関連付けられた前記特徴点群データが前記記憶装置に記憶されていない場合に、前記情報端末から受信した前記特徴点群データを前記登録特徴点群データとして前記記憶装置に記憶させてもよい。
【0008】
前記空間データ管理部は、同じ位置及び向きを示す前記位置データを送信した複数の前記情報端末から複数の前記特徴点群データを前記端末データ受信部が受信した場合、データ量が多い前記特徴点群データを前記登録特徴点群データとして前記記憶装置に記憶させてもよい。
【0009】
前記空間データ管理部は、前記位置データが示す位置及び向きに対応する前記登録特徴点群データが前記記憶装置に記憶されている場合、記憶されている前記登録特徴点群データのデータ量よりも前記情報端末から受信した前記特徴点群データのデータ量の方が大きいことを条件として、前記情報端末から受信した前記特徴点群データを前記登録特徴点群データとして前記記憶装置に記憶させてもよい。
【0010】
前記空間データ管理部は、前記情報端末から受信した前記特徴点群データに、予め登録された形状の被写体を示すデータが含まれていることを条件として、前記特徴点群データを前記記憶装置に記憶させてもよい。
【0011】
前記情報端末は、前記記憶装置に記憶されている複数の前記登録特徴点群データを記憶する端末記憶部をさらに有し、前記端末送信処理部は、前記端末記憶部に記憶された前記複数の登録特徴点群データの中に前記特徴点群データとの差分が閾値以下の登録特徴点群データがない場合に、前記特徴点群データを前記情報処理装置に送信してもよい。
【0012】
本発明の第2の態様の情報処理方法は、情報端末が、前記情報端末が属する空間の少なくとも一部の領域を撮像することにより撮像画像データを生成するステップと、前記情報端末が生成した前記撮像画像データに含まれる被写体の複数の特徴点群により構成される特徴点群データを、前記情報端末から情報処理装置に送信するステップと、前記情報処理装置が、前記情報端末から受信した前記特徴点群データが最新の特徴点群データであると判定した場合に、前記特徴点群データを前記空間内の位置に関連付けて記憶装置に記憶させるステップと、を有する。
【発明の効果】
【0013】
本発明によれば、空間内の位置及び向きに関連付けられた登録特徴点群データを容易に更新できるようになるという効果を奏する。
【図面の簡単な説明】
【0014】
【
図2】情報処理システムの基本動作を説明するための図である。
【
図3】複数の情報端末に表示される画面について説明するための図である。
【
図4】第1空間内の被写体に対応する特徴点群データを示す図である。
【
図5】情報端末が属する空間に対応する空間データを情報端末が取得する処理の概要を示す図である。
【
図6】空間データを更新する処理の概要を示す図である。
【
図9】コンピュータ群が有するコンピュータの構成を示す図である。
【
図10】同じ空間に属する複数の情報端末が空間データを取得するまでの流れを示すシーケンス図である。
【
図11】異なる空間に属する複数の情報端末が空間データを取得するまでの流れを示すシーケンス図である。
【
図12】同じ空間に属する複数の情報端末がAR画像を表示する処理の流れを示すシーケンス図である。
【
図13】情報端末が特徴点群データを空間データとして登録する処理の流れを示すシーケンス図である。
【発明を実施するための形態】
【0015】
[情報処理システムSの概要]
(システム構成)
図1は、情報処理システムSの概要を示す図である。情報処理システムSは、複数の情報端末1に拡張現実画像(以下、「AR画像」という。)を表示させるためのシステムである。情報処理システムSは、複数の情報端末1と、情報処理装置2と、コンピュータ群3と、記憶装置4と、を備える。
【0016】
情報端末1は、撮像機能を有する端末であり、例えばスマートフォン、タブレット又は眼鏡型端末である。情報端末1を使用するユーザは任意の場所に移動することができる。
図1においては、複数の情報端末1a(1a-1~1a-m,mは自然数)が第1空間に存在し、複数の情報端末1b(1b-1~1b-n、nは自然数)が第2空間に存在する状態を示している。第1空間及び第2空間は、例えば、壁で仕切られた一つの室内、建物内の一つの階、一つの建物又は一つの町内のように、同じ空間にいるユーザの情報端末1に対して同一のAR画像を表示させるように設定された領域に対応する。同一の座標系の空間内で同一のAR画像を表示する複数の情報端末1は、当該空間に属する情報端末群を構成する。
【0017】
情報処理装置2は、情報端末1に各種のデータを提供するサーバである。情報処理装置2は、例えば、情報端末1が自身の位置及び向きを特定するために使用される空間データ、及び情報端末1に表示させるAR画像データを提供する。空間データは、空間内の複数の位置において空間内を見た場合に見える一以上の被写体の特徴を示す特徴点群から構成される、予め作成された複数の登録特徴点群データを含む。空間データにおいては、複数の登録特徴点群データに、空間内を視認した位置及び向きを示す座標データが関連付けられている。また、登録特徴点群データに含まれる複数の特徴点に、色を示す画素値(R値、G値、B値)及び空間における位置を示す座標が関連付けられていてもよい。
【0018】
コンピュータ群3は、情報端末1の属する空間を特定するためのマッチング処理を実行する。コンピュータ群3は、情報端末1が撮影して生成した撮像画像データ、又は撮像画像データに含まれている被写体の特徴点を示す特徴点群データを取得し、取得した撮像画像データ又は特徴点群データを、複数の空間それぞれに対応する複数の登録特徴点群データにより構成される複数の空間データとマッチング処理することにより、情報端末1が属する空間を特定する。特徴点群データに含まれる複数の特徴点には、色を示す画素値(R値、G値、B値)が関連付けられていてもよい。
【0019】
コンピュータ群3は、情報端末1が属する空間に対応する複数の登録特徴点群データを含む空間データを選択し、選択した空間データを情報端末1に提供する。詳細については後述するが、コンピュータ群3は、複数の空間それぞれに対応する空間データを記憶しているコンピュータ30を複数有しており、短時間で情報端末1が属する空間を特定するために、複数のコンピュータ30が並列にマッチング処理を実行する。
【0020】
記憶装置4は、さまざまな空間に対応する空間データを記憶している装置である。記憶装置4は、例えば全世界の多数の空間に対応する空間データを記憶しており、複数の空間データのうち、コンピュータ群3が有する複数のコンピュータ30それぞれに対応する空間データをそれぞれのコンピュータ30に提供する。
【0021】
(基本動作)
図2は、情報処理システムSの基本動作を説明するための図である。
図2においては、第1空間に存在する情報端末1a-1を使用するユーザU1の操作に応じて、同じ第1空間に存在する情報端末1a-1のユーザU1及び情報端末1a-2のユーザU2が視認している空間の画像に重ね合わせて同一のAR画像が表示されるという動作の流れを示している。情報端末1a-1と情報端末1a-2とは、第1空間における異なる位置において異なる向きを向いているので、それぞれが表示中の画面における異なる位置に、同一のAR画像が異なる向きに表示される。
【0022】
ユーザU1及びユーザU2が視認している空間の画像は、例えば、ユーザU1及びユーザU2がいる空間を情報端末1が撮影することにより生成された撮像画像である。情報端末1が眼鏡型端末である場合、ユーザU1及びユーザU2が視認している空間の画像は、眼鏡型端末が有する透明なレンズを介してユーザU1及びユーザU2の目に入射する光によりユーザU1及びユーザU2の目に映る画像であってもよい。以下の説明においては、主に、ユーザU1及びユーザU2が視認している空間の画像が撮像画像である場合を例にして説明するが、ユーザU1及びユーザU2が視認している空間の画像が、レンズを介してユーザU1及びユーザU2の目に映る画像である場合においても、以下の構成及び処理は適用される。
【0023】
情報端末1は、ユーザUが存在する空間内の複数の位置においてユーザUが視認可能な被写体の特徴点群の位置を示す空間データを情報処理装置2から取得し、少なくともユーザUが所定の空間にいる間に、所定の空間に対応する空間データを記憶している。特徴点群は、被写体の形状の特徴を示す複数の点の集合体であり、空間内を撮影することにより生成された撮像画像データに含まれる被写体の輪郭線上の複数の点により構成されている。空間データにおいては、緯度、経度、高度及び方位により定められる三次元空間内の位置と向きとの組み合わせと、特徴点群データとが関連付けられている。
【0024】
図3は、複数の情報端末1に表示される画面について説明するための図である。
図3(a)は、情報端末1a-1及び情報端末1a-2が撮影している空間を上方から表した図である。
図2(a)における左右方向がX方向であり、上下方向がY方向であり、奥行き方向がZ方向である。
【0025】
図3においては、情報端末1a-1を使用するユーザU1及び情報端末1a-2を使用するユーザU2が、
図3(a)に示す位置にいることが想定されている。
図3における被写体T1~T4は、情報端末1a-1と情報端末1a-2が属する第1空間に存在する被写体である。
図3における画像A(人)、画像B(鳥)及び画像C(矢)は、情報端末1a-1と情報端末1a-2に表示されるAR画像である。
【0026】
図3(b)は、情報端末1a-1に表示される画面の一例を示している。
図3(b)は、ユーザU1が、画像A(人)から画像B(鳥)に向けて画像C(矢)を放つ操作をユーザU1の手Hにより行った状態を示している。
図3(c)は、
図3(b)に示す操作が情報端末1a-1において行われた場合に情報端末1a-2に表示される画像を示している。
図3(c)においては、
図3(b)と異なる位置における異なる向きに画像Cが表示されている。情報端末1a-1及び情報端末1a-2がこのような画像を表示することで、ユーザU1とユーザU2は、それぞれが使用する情報端末1の画面において、同じ空間の異なる位置で見える被写体に重ねて、同一のAR画像を異なる向きから見ることができる。
【0027】
以下、
図2を参照しながら、情報端末1a-1及び情報端末1a-2が
図3に示した画像を表示する処理の流れについて説明する。情報端末1は、AR画像を表示する機能を有するゲーム又は観光ガイド等のアプリケーションソフトウェアを実行することにより、内蔵するカメラにより生成された撮像画像データに基づいて特徴点群データを作成する。
【0028】
図4は、
図3に示した第1空間内の被写体T1~T4に対応する特徴点群データを示す図である。
図4(a)は、情報端末1a-1が、撮影した被写体T1~T4の特徴点群データを示しており、
図4(b)は、情報端末1a-2が、撮影した被写体T1~T4の特徴点群データを示している。このように、情報端末1が撮影する位置及び向きによって、特徴点群データに含まれる複数の特徴点の位置が異なる。
【0029】
情報端末1は、作成した特徴点群データと、予め記憶された空間データに含まれている複数の登録特徴点群データとを比較し、複数の登録特徴点群データのうち作成した特徴点群データに最も類似する登録特徴点群データを特定する。情報端末1は、特定した登録特徴点群データに対応する位置及び向きを特定することにより、情報端末1の位置及び向きを特定する。
【0030】
情報端末1a-1は、AR画像を表示するトリガとなるユーザの操作を受け付けた場合、
図2に示すように、操作の内容を示す操作データと、特定した位置及び向きを示す位置座標データとを情報処理装置2に通知する。情報端末1a-1は、当該位置及び向きに対応するAR画像を情報処理装置2から取得し、例えば
図3(b)に示すように、取得したAR画像を表示する。
【0031】
情報処理装置2は、複数の空間に対応する複数のメモリデータベースを有しており、情報端末1a-1から通知された位置座標データが、情報端末1a-1が属する空間に対応するメモリデータベースに書き込まれたことに応じて、同じ空間に属する他の情報端末1である情報端末1a-2に対して、AR画像と、当該AR画像を表示する位置と移動させる向きとを示す表示座標データと、を送信する。情報端末1a-2は、例えば
図3(c)に示すように、受信した表示座標データが示す位置及び向きに対応するAR画像を表示する。
【0032】
本実施の形態のように、AR画像を表示するシステムにおいては、高速なレスポンスが求められるので、データベースは、メインメモリ上に構築されており、ディスクストレージ機構に記憶されたデータベースに比べて高速にアクセスが可能なインメモリデータベースであることが望ましい。以下の説明においては、データベースがインメモリデータベースである場合を例示する。
【0033】
(空間データの提供)
図5は、情報端末1が属する空間に対応する空間データを情報端末1が取得する処理の概要を示す図である。情報端末1は、所定のアプリケーションソフトウェアを起動したり、ユーザUが所定のサイトにログインしたり、情報端末1が所定の位置に移動したりしたことをトリガとして、空間データを取得する。
【0034】
情報端末1は、例えば所定のアプリケーションソフトウェアが起動されたことを検出すると、内蔵するカメラが撮影して生成された撮像画像データに基づいて特徴点群データを作成する。情報端末1は、アプリケーションソフトウェアが起動されたことを示す起動情報と、作成した特徴点群データとを情報処理装置2に送信する。情報処理装置2は、起動情報を受信したことに応じて、受信した特徴点群データをコンピュータ群3に送信する。
【0035】
コンピュータ群3は、受信した特徴点群データを複数のコンピュータ30に入力し、複数のコンピュータ30においてマッチング処理を実行する。複数のコンピュータ30のうち、受信した特徴点群データが示す特徴点群のパターンが、自身が記憶している空間データが示す登録特徴点群のパターンと一致していることを検出したコンピュータ30は、一致したことを情報処理装置2に通知し、自身が記憶している空間データを情報処理装置2に送信する。情報処理装置2は、受信した空間データを情報端末1に送信する。
【0036】
情報端末1は、GPS受信機で検出した概略の位置を示す概略位置データを起動情報とともに情報処理装置2に送信してもよい。この場合、情報処理装置2は、受信した概略位置データが示す位置を含む空間に対応するコンピュータ30に特徴点群データを送信することで、マッチング処理を実行するコンピュータ30の数を削減することができるので、コンピュータ群3の負荷が低減する。
【0037】
(空間データの更新)
空間内の建物、物品、植物等の物体は、時間の経過に伴って変化する。したがって、記憶装置4が記憶している空間データが、最新の空間の状態に対応しているとは限らない。また、空間データが作成されていない空間も存在し得る。しかしながら、空間の状態が変化するたびに空間データを収集するのは容易ではない。そこで、情報処理システムSは、大量の情報端末1が作成した特徴点群データを用いて、空間データを最新の状態に更新する。
【0038】
図6は、空間データを更新する処理の概要を示す図である。情報端末1は、情報処理装置2を介して取得した空間データに含まれる複数の登録特徴点群データの中に、自身が作成した特徴点群データと一致する登録特徴点群データが含まれていない場合に、空間データに誤りがある、又は情報端末1が属する空間の空間データが存在しないと判定する。この場合、情報端末1は、自身が作成した特徴点群データ、及び自身の位置を示す位置データとともに、登録特徴点群データを更新することを要求する更新リクエストを情報処理装置2に送信する。位置データは、例えば、緯度、経度、高度及び方位を示すデータである。
【0039】
位置データはできるだけ高精度であることが望ましい。そこで、情報端末1は、例えば、直前に空間データに含まれる登録特徴点群データと自身が作成した特徴点群データとが一致していた位置からの移動距離及び移動方向に基づいて、更新リクエストとともに送信する特徴点群データに対応する位置を算出する。情報端末1は、直前に空間データに含まれる登録特徴点群データと自身が作成した特徴点群データとが一致していた位置からの距離が所定の閾値以内であることを条件にして更新リクエストを送信してもよい。所定の閾値は、空間データが示す位置の精度、又は情報端末1が移動距離及び移動方向を特定できる精度の少なくともいずれかに基づいて決定される。
【0040】
情報処理装置2は、更新リクエストを受信すると、受信した特徴点群データと位置データを記憶装置4に送信する。情報処理装置2は、複数の情報端末1から同一の位置及び向きに対応する特徴点群データを受信した場合、より精度が高いと考えられる特徴点群データを送信する。より精度が高いと考えられる特徴点群データは、特徴点群データに含まれる特徴点の数がより多い特徴点群データ、又は位置を特定するために使用されるセンサの精度がより高い情報端末1から送信された特徴点群データ等である。
【0041】
記憶装置4は、情報端末1から特徴点群データ及び位置データを受信すると、受信した位置データが示す位置及び向き(すなわち、緯度、経度、高度及び方位)に関連付けて特徴点群データを空間データに含まれる登録特徴点群データとして記憶する。記憶装置4がこのようにして空間データに含まれる登録特徴点群データを更新することにより、情報端末1は、最新の空間に対応する空間データを用いて自身の位置及び向きを特定することができ、適切な位置にAR画像を表示することができる。
【0042】
[各部の構成]
(情報端末の構成)
図7は、情報端末1の構成を示す図である。情報端末1は、通信部11と、操作部12と、位置検出部13と、撮像部14と、表示部15と、記憶部16と、制御部17と、を有する。制御部17は、送信処理部171と、受信処理部172と、操作受付部173と、概略位置特定部174と、画像処理部175と、詳細位置特定部176と、表示処理部177と、空間データ取得部178と、を有する。
【0043】
通信部11は、通信ネットワークに接続するための通信インターフェースを有する。通信部11は、携帯無線通信ネットワーク又はWi-Fi(登録商標)等の無線通信ネットワークを介して、情報処理装置2との間で各種のデータを送受信する。通信部11は、送信処理部171から入力されたデータを送信し、通信ネットワークを介して受信したデータを受信処理部172に入力する。
【0044】
操作部12は、情報端末1のユーザUの操作を検出するためのデバイスを有する。操作部12は、例えばタッチパネル、トラックボール又はマウスを有する。操作部12がタッチパネルである場合、操作部12は表示部15に重ねて設けられている。操作部12は、操作が行われた位置又は操作量の少なくともいずれかを示す操作データを操作受付部173に通知する。
【0045】
位置検出部13は、情報端末1の概略の位置を検出するためのデバイスを有する。位置検出部13は、例えばGPS(Global Positioning System)受信機を有しており、GPS衛星から受信した電波に基づいて検出した緯度・経度を示す位置データを概略位置特定部174に通知する。位置検出部13は、高度計、方位計又はジャイロセンサの少なくともいずれかを有しており、情報端末1の高度及び情報端末1が向いている方位を位置データとして概略位置特定部174に通知してもよい。
【0046】
撮像部14は、情報端末1の周囲の被写体を撮影して撮像画像データを生成するデバイスであり、例えばカメラである。撮像部14は、情報端末1が属する空間の少なくとも一部の領域を撮像することにより撮像画像データを生成する。撮像部14は、所定の時間間隔(フレームレート)で連続的に撮像画像データを生成してもよい。また、撮像部14は、複数の撮像素子を有しており、被写体までの距離を示す距離データを生成するステレオカメラであってもよい。この場合、特徴点群データには、情報端末1から特徴点それぞれに対応する被写体までの距離を示す情報が含まれていてもよい。
【0047】
表示部15は、各種の情報を表示するためのデバイスであり、例えばディスプレイである。表示部15は、例えば情報端末1のユーザUが操作をするための画面を表示したり、撮像部14が生成した撮像画像データに基づく画像を表示したりする。また、表示部15は、ユーザUが視認した空間の画像(例えば撮像画像)に重ねて情報処理装置2から提供されるAR画像を表示する。
【0048】
記憶部16は、ROM(Read Only Memory)及びRAM(Random Access Memory)等の記憶媒体を有する端末記憶部である。記憶部16は、制御部17が実行するプログラムを記憶する。また、記憶部16は、撮像画像データ及びAR画像データ等のように、表示部15が表示する画像データを一時的に記憶する。記憶部16は、空間内の複数の位置及び向きから空間を撮像して作成された複数の画像に含まれる被写体の特徴点群を示す複数の特徴点群データを、空間内の位置及び向きに関連付けて記憶する。
【0049】
制御部17は、例えばCPU(Central Processing Unit)を有している。制御部17は、記憶部16に記憶されたプログラムを実行することにより、送信処理部171、受信処理部172、操作受付部173、概略位置特定部174、画像処理部175、詳細位置特定部176、表示処理部177及び空間データ取得部178として機能する。
【0050】
送信処理部171は、通信部11を介して、各種のデータを情報処理装置2又は他の外部装置に送信する。送信処理部171は、例えば、操作受付部173から受けた操作データを情報処理装置2に送信する。操作データには、操作の内容を示す操作内容データと、操作の位置(すなわちAR画像を表示する位置)を示す表示座標データと、AR画像を表示させる向きを示す表示向きデータと、が含まれている。操作データには、AR画像を動かす速度に対応する、ユーザUの操作速度を示す速度データがさらに含まれていてもよい。
【0051】
表示部15にAR画像を表示するための操作をユーザUが行った場合、送信処理部171は、操作内容データとともに、AR画像を表示部15に表示させる際の空間内の座標を示す表示座標データ、表示向きデータ及び速度データを情報処理装置2に送信する。また、送信処理部171は、概略位置特定部174から受けた概略位置データを情報処理装置2に送信する。
【0052】
送信処理部171は、情報処理装置2が有するインメモリデータベースと非同期でリアルタイムにデータを送受信するために、インメモリデータベースにアクセスするためのPub/Subメッセージを使用して操作データを送信してもよい。
【0053】
また、送信処理部171は、撮像画像データに含まれる被写体の複数の特徴点により構成される特徴点群データを画像処理部175から取得し、取得した特徴点群データを情報処理装置2に送信する。送信処理部171は、画像処理部175から受けた撮像画像データを、特徴点群データに代えて又は特徴点群データとともに情報処理装置2に送信してもよい。送信処理部171は、例えば、情報処理装置2が記憶している複数のインメモリデータベースのうち、概略位置特定部174が特定した概略位置が属する空間に対応するインメモリデータベースにPubメッセージを送信することにより、特徴点群データを書き込む。
【0054】
また、送信処理部171は、記憶部16に記憶された複数の登録特徴点群データの中に特徴点群データとの差分が閾値以下の登録特徴点群データがない場合に、登録特徴点群データを更新するための更新リクエストとともに、画像処理部175から取得した特徴点群データを情報処理装置2に送信する。
【0055】
受信処理部172は、通信部11を介して、各種のデータを情報処理装置2又は他の外部装置から受信する。受信処理部172は、例えば同じ空間に属する他の情報端末1が情報処理装置2に送信した表示座標データを受信する。
【0056】
情報端末1a-1を使用するユーザU1がAR画像を表示させる操作を行ったことに応じて情報端末1a-1が表示座標データを情報処理装置2に送信した場合、情報端末1a-2の受信処理部172は、後述する情報処理装置2が有する座標送信部232が送信した表示座標データを受信する。受信処理部172は、受信した表示座標データを詳細位置特定部176に入力する。また、受信処理部172は、情報端末1が属する空間に対応する空間データを情報処理装置2から受信する。受信処理部172は、受信した空間データを空間データ取得部178に入力する。
【0057】
操作受付部173は、操作部12から通知された操作データに基づいて、ユーザUが行った操作の内容を特定する。操作受付部173は、受け付けた操作に基づいて、表示するAR画像の種別を示す操作内容データを作成する。操作受付部173は、作成した操作内容データを送信処理部171に入力することにより、情報処理装置2に操作の内容を通知する。操作受付部173は、例えば、AR画像を空間の画像(例えば撮像画像)に重ねて表示部15に表示させるための操作を受け付けたことに応じて、AR画像を表示部15に表示させる際の空間内の座標を示す表示座標データを作成する。
【0058】
操作受付部173は、詳細位置特定部176が特定した詳細位置を示す詳細位置データを取得し、取得した詳細位置データが示す情報端末1の位置及び向きと、操作部12においてユーザUが操作した位置とに基づいて表示座標データを作成してもよい。すなわち、操作受付部173は、詳細位置特定部176が特定した位置及び向きと、操作受付部173が受け付けた操作の位置との関係に基づいて、表示座標データを作成してもよい。
【0059】
図3(b)に示した例の場合、操作受付部173は、手Hが操作部12に触れた位置のX座標及びZ座標を含む表示座標データを作成する。操作受付部173は、手Hの位置が移動した場合、所定の時間間隔で表示座標データを作成する。操作受付部173は、複数の時刻に作成した表示座標データに基づいて手Hが移動する速度を示す速度データを含む表示座標データを作成してもよい。撮像部14が距離データを生成することができるステレオカメラである場合のように、
図3(b)において手Hが触れた位置の被写体のY座標が既知である場合、操作受付部173は、Y座標を含む表示座標データを作成してもよい。操作受付部173は、作成した表示座標データを送信処理部171に入力する。
【0060】
操作受付部173は、詳細位置特定部176が特定した情報端末1の位置及び向きと、操作受付部173が受け付けた操作の位置との関係に基づいて、AR画像を表示部15に表示させる際のAR画像の向きを示す表示向きデータを作成してもよい。操作受付部173は、表示向きデータを送信処理部171に入力する。
【0061】
概略位置特定部174は、受信する電波に基づいて情報端末1の概略位置を示す概略位置データを生成する。概略位置特定部174は、位置検出部13から入力された位置データに基づいて、情報端末1の概略位置を特定する。概略位置データは、GPSの精度に対応する精度で位置を示すデータであり、例えば誤差が10m以上の位置データである。
【0062】
概略位置特定部174は、特定した位置データを送信処理部171に入力することにより、情報端末1の概略の位置を情報処理装置2に通知する。概略位置特定部174は、定期的に概略位置データを情報処理装置2に通知してもよく、ユーザUが所定の操作を行った場合、又は登録特徴点群データを取得する必要が生じた場合に、概略位置データを情報処理装置2に通知してもよい。
【0063】
画像処理部175は、撮像画像データに含まれる被写体の複数の特徴点により構成される特徴点群データを作成する。具体的には、画像処理部175は、まず、撮像画像データにおいて隣接する画素との画素値の変化量が閾値以上である画素を特定することにより、被写体の輪郭線及び被写体の凹凸部の輪郭線を特定する。画像処理部175は、特定した輪郭線上の複数の特徴点から構成される特徴点群データを作成する。
【0064】
図4に示した例のように、画像処理部175は、輪郭線の方向が変化する点を特徴点として特定することにより特徴点群データを作成してもよい。画像処理部175は、撮像部14から新たな撮像画像データが入力されるたびに特徴点群データを作成する。画像処理部175は、作成した特徴点群データを詳細位置特定部176に入力する。画像処理部175は、空間データを情報処理装置2から取得する必要がある場合(すなわち情報端末1が属する空間を特定する必要がある場合)に、特徴点群データを送信処理部171に入力する。
【0065】
また、画像処理部175は、詳細位置特定部176が、情報処理装置2から取得した登録特徴点群データに基づいて情報端末1の位置及び向きを特定することができないという通知を受けた場合、作成した特徴点群データを記憶装置4に登録するべく、特徴点群データを送信処理部171に入力し、登録特徴点群データの更新をするための更新リクエストを情報処理装置2に送信するよう送信処理部171に指示する。
【0066】
詳細位置特定部176は、情報処理装置2から受信した複数の登録特徴点群データのうち、画像処理部175から入力された特徴点群データに最も類似する登録特徴点群データに対応する位置及び向きを特定する。詳細位置特定部176は、記憶部16に記憶された複数の登録特徴点群データのうち、撮像画像データに含まれる被写体の特徴点群を示す特徴点群データに最も類似する登録特徴点群データに対応する位置及び向きを特定する。
【0067】
具体的には、詳細位置特定部176は、まず、画像処理部175から入力された特徴点群データと、情報処理装置2から取得して記憶部16に記憶された空間データに含まれる複数の登録特徴点群データとを比較する。詳細位置特定部176は、画像処理部175から入力された特徴点群データと、空間データに含まれる複数の登録特徴点群データそれぞれとの間の相関値を算出し、算出した相関値が最大になる登録特徴点群データを特定する。
【0068】
詳細位置特定部176は、特定した登録特徴点群データに関連付けられている座標データ(例えば緯度、経度、高度、方位を示すデータ)に基づいて、情報端末1の位置及び向きを特定する。詳細位置特定部176は、このようにして、例えば概略位置特定部174よりも高い精度で情報端末1の位置及び向きを特定することができる。詳細位置特定部176は、例えば1mmの精度で情報端末1の位置及び向きを特定する。詳細位置特定部176は、特定した位置及び向きを示す詳細位置データを受信処理部172及び表示処理部177に通知する。
【0069】
表示処理部177は、各種の情報又は画像を表示部15に表示させる。表示処理部177は、例えば、情報端末1が属する空間を撮像部14が撮像して生成された撮像画像データに基づく撮像画像を表示部15に表示させる。また、表示処理部177は、表示座標データに基づいて、AR画像を表示させる位置及び向きを決定する。表示処理部177は、表示座標データが示す空間内の座標に対応する表示部15における位置に、ユーザUが視認している空間の画像(例えば情報端末1が属する空間を撮像部14が撮像して生成された撮像画像データに基づく撮像画像)に重ねて、AR画像を表示させる。
【0070】
表示処理部177は、ユーザUがAR画像を表示する操作を行った場合、詳細位置特定部176から入力された詳細位置データと、操作受付部173から通知された操作位置データとに基づいて、AR画像を表示させる位置及び向きを示す表示座標データを作成する。表示処理部177は、情報端末1と同じ空間に属する他の情報端末1のユーザUがAR画像を表示する操作を行った場合、当該操作に対応するAR画像を表示するために用いる表示座標データを情報処理装置2から取得する。
【0071】
図2に示したように、第1空間に情報端末1a-1及び情報端末1a-2が存在する場合、情報端末1a-1の表示処理部177は、操作受付部173から通知された表示座標データに基づく位置及び向きにAR画像を表示させる。一方、情報端末1a-2の表示処理部177は、情報処理装置2から通知された表示座標データに基づく位置及び向きにAR画像を表示させる。このように情報端末1a-1及び情報端末1a-2それぞれの表示処理部177が動作することで、情報端末1a-1を使用するユーザU1及び情報端末1a-2を使用するユーザU2は、情報端末1の位置及び向きに応じて異なる位置に、それぞれ異なる向きのAR画像を同時に見ることができる。
【0072】
空間データ取得部178は、通信部11及び受信処理部172を介して、登録特徴点群データを含む空間データを情報処理装置2から取得する。空間データ取得部178は、複数の登録特徴点群データを情報処理装置から取得するための操作(例えば、所定のアプリケーションソフトウェアの起動操作、所定のサイトへのログインの操作)を操作受付部173が受け付けたことに応じて、情報端末1が属する空間に対応する複数の登録特徴点群データを含む空間データを情報処理装置から取得し、取得した空間データを16に記憶させる。
【0073】
空間データ取得部178は、取得した複数の登録特徴点群データを詳細位置特定部176に通知する。空間データ取得部178は、例えば、取得した複数の登録特徴点群データを記憶部16に記憶させることにより、記憶部16を介して、複数の登録特徴点群データを詳細位置特定部176に通知する。
【0074】
(情報処理装置2の構成)
図8は、情報処理装置2の構成を示す図である。情報処理装置2は、通信部21と、記憶部22と、制御部23と、を有する。制御部23は、座標受信部231と、座標送信部232と、端末データ受信部233と、特徴点群送信部234と、情報受信部235と、空間データ送信部236と、空間データ管理部237と、台数管理部238と、を有する。
【0075】
通信部21は、通信ネットワークに接続するための通信インターフェースを有する。通信部21は、情報端末1、コンピュータ群3及び記憶装置4との間で各種のデータを送受信する。
【0076】
記憶部22は、ROM、RAM及びSSD(Solid State Drive)を有する装置記憶部である。記憶部22は、制御部23が実行するプログラムを記憶している。また、記憶部22は、複数の空間に対応する複数のインメモリデータベースとして、第1空間用データベース221と第2空間用データベース222を記憶している。記憶部22は、例えば、複数の空間(例えば第1空間及び第2空間)それぞれに対応する表示座標データ又は特徴点群データを記憶する複数のインメモリデータベース(例えば第1空間用データベース221及び第2空間用データベース222)を記憶している。
【0077】
インメモリデータベースは、上述のとおり、メインメモリ上に構築されたデータベースであり、ディスクストレージ機構に記憶されたデータベースに比べて高速にアクセスが可能なデータベースである。
図8においては、記憶部22は、第1空間用データベース221と第2空間用データベース222を例示しているが、記憶部22は、より多くの空間に対応するデータベースを記憶している。
【0078】
記憶部22は、同一の座標系の空間に属する第1情報端末及び第2情報端末を、同一の空間内でAR画像を表示する複数の情報端末1として記憶する。第1情報端末は、ユーザUがAR画像を表示させるための操作を行った情報端末1であり、
図2に示した例における情報端末1a-1である。第2情報端末は第1情報端末と同じ空間に属する他の情報端末1であり、
図2に示した例における情報端末1a-2である。記憶部22は、複数の空間それぞれに関連付けて、空間に含まれる複数の情報端末1を識別するための複数の端末識別情報を記憶する。
【0079】
具体的には、記憶部22が記憶しているインメモリデータベースにおいては、複数の情報端末1それぞれを識別するための端末識別情報に関連付けて、それぞれの情報端末1が属する空間を識別するための空間識別情報が登録されている。また、インメモリデータベースにおいては、空間識別情報に関連付けて、当該空間識別情報に対応する空間に属する情報端末1に表示させるAR画像を識別するためのAR画像識別情報と、当該AR画像を表示させる位置及び向きを示す表示座標データとが登録されている。
【0080】
複数のインメモリデータベースは、それぞれに対応する空間に属する情報端末1から受信した特徴点群データをコンピュータ群3に受け渡すために、特徴点群データを記憶してもよい。第1空間に対応する第1空間用データベース221は、第1空間に属する一以上の情報端末1から特徴点群データを受信すると、特徴点群データが第1空間に対応する登録特徴点群データと一致するか否かを解析するコンピュータ30に対して、受信した特徴点群データを転送する。インメモリデータベースは、制御部23を介することなく、情報端末1又はコンピュータ群3から送信されたPub/Subメッセージに基づいて、情報端末1とコンピュータ群3との間で特徴点群データを中継してもよい。
【0081】
制御部23は、例えばCPUを有する。制御部23は、記憶部22に記憶されたプログラムを実行することにより、座標受信部231、座標送信部232、端末データ受信部233、特徴点群送信部234、情報受信部235、空間データ送信部236、空間データ管理部237及び台数管理部238として機能する。
【0082】
座標受信部231は、情報端末1を使用するユーザUの操作に応じて情報端末1が送信した操作内容データ及び表示座標データを受信し、受信した操作内容データ及び表示座標データをインメモリデータベースに登録する。座標受信部231は、表示座標データを送信した情報端末1が含まれる空間に対応するインメモリデータベースに表示座標データを登録する。座標受信部231は、例えば第1空間に属する情報端末1a-1から表示座標データを受信した場合、第1空間用データベース221に表示座標データを記憶させる。
【0083】
座標送信部232は、座標受信部231によってインメモリデータベースに表示座標データが登録されたことに応じて、複数の情報端末1のうちの第1情報端末と異なる第2情報端末に表示座標データを送信する。座標送信部232は、第2情報端末が含まれる空間に対応するインメモリデータベースに登録された表示座標データを第2情報端末に送信する。
【0084】
座標送信部232は、記憶部22を参照することにより、表示座標データを送信した第1情報端末の第1端末識別情報に対応する空間に関連付けられた第2端末識別情報を有する第2情報端末に表示座標データを送信する。座標送信部232は、第1情報端末が送信した表示向きデータがインメモリデータベースに登録されたことに応じて、第2情報端末に表示向きデータを送信してもよい。これにより、同じ空間に属する複数の情報端末1が、AR画像を表示させる位置及び表示向きを共有することになる。
【0085】
また、座標送信部232は、インメモリデータベースに、第1情報端末から受信された操作内容データが登録されたことに応じて、当該操作内容データに対応する第2AR画像に対応するデータ、又は第2AR画像を識別するためのデータを第2情報端末に送信する。第2AR画像は、第1AR画像と同一の対象を示し、かつ向き又は大きさが異なる、第1AR画像に対応する画像である。これにより、同じ空間に属する複数の情報端末1が同一のAR画像を共有することになる。
【0086】
座標送信部232は、第1空間用データベース221に記憶された表示座標データ及びAR画像を情報端末1a-2に送信する。座標送信部232が既にAR画像を情報処理装置2に送信している場合、座標送信部232は、AR画像を送信する代わりに、既に送信した複数のAR画像のうち情報端末1a-2に表示させるAR画像を識別するためのAR画像識別情報を送信してもよい。
【0087】
端末データ受信部233は、通信部21を介して、情報端末1から特徴点群データを受信する。また、端末データ受信部233は、特徴点群データを送信した情報端末1から、情報端末1の概略位置を示す概略位置データを受信する。端末データ受信部233は、受信した特徴点群データ及び概略位置データを特徴点群送信部234に通知する。端末データ受信部233は、特徴点群データ及び概略位置データを記憶部22に記憶させ、記憶部22を介して、特徴点群データ及び概略位置データを特徴点群送信部234に通知してもよい。
【0088】
特徴点群送信部234は、情報端末1から受信した特徴点群データをコンピュータ群3に送信する。特徴点群送信部234は、例えば、
図5に示したように、情報端末1が起動情報とともに送信した特徴点群データを端末データ受信部233が受信した場合に、空間データを要求するメッセージとともに、特徴点群データをコンピュータ群3に送信する。
【0089】
特徴点群送信部234は、端末データ受信部233から概略位置データを取得した場合、コンピュータ群3に含まれる複数のコンピュータ30から概略位置データが示す概略位置を含む空間に対応する一以上のコンピュータ30を選択し、選択した一以上のコンピュータ30に特徴点群データを送信してもよい。すなわち、特徴点群送信部234は、情報端末1が特徴点群データとともに送信した概略位置データが示す概略位置が属するデータに対応する空間に関連付けられたコンピュータ30に特徴点群データを送信してもよい。
【0090】
特徴点群送信部234は、複数の空間それぞれに対応するインメモリデータベースを介して、特徴点群データを情報端末1とコンピュータ群3との間で中継してもよい。特徴点群送信部234は、複数のインメモリデータベースのうち特徴点群データが書き込まれたインメモリデータベースに対応する空間に関連付けられたコンピュータ30に特徴点群データを送信する。
【0091】
情報受信部235は、特徴点群送信部234が特徴点群データを送信した一以上のコンピュータ30のうち、送信した特徴点群データに対応する情報端末1が属する空間を特定したコンピュータ30から、情報端末1が属する空間を特定したことを示す所定の情報を受信する。具体的には、情報受信部235は、特徴点群データを送信した一以上のコンピュータ30のうち、1台のコンピュータ30から、当該コンピュータ30が記憶している複数の登録特徴点群データのいずれかと、特徴点群送信部234が送信した特徴点群データとの相関値が閾値以上であることを示す所定の情報を受信する。すなわち、情報受信部235は、当該コンピュータ30から、特徴点群送信部234が送信した特徴点群データが、当該コンピュータ30がマッチング処理を担当している空間に含まれる被写体の登録特徴点群データと同等であるということを示す所定の情報を受信する。
【0092】
情報受信部235は、所定の情報とともに、当該コンピュータ30がマッチング処理を担当している空間に対応する複数の登録特徴点群データを含む空間データを取得してもよい。情報受信部235は、特徴点群送信部234がコンピュータ群3に送信した特徴点群データを作成した情報端末1の端末識別情報とともに、取得した空間データを空間データ送信部236に入力する。また、情報受信部235は、当該コンピュータ30がマッチング処理を担当している空間を識別するための空間識別情報を取得し、特徴点群送信部234がコンピュータ群3に送信した特徴点群データを作成した情報端末1の端末識別情報に関連付けて空間識別情報を記憶部22に記憶させてもよい。
【0093】
空間データ送信部236は、所定の情報を送信したコンピュータ30に対応する空間データが含む複数の登録特徴点群データを情報端末1に送信する。空間データ送信部236は、情報受信部235から取得した端末識別情報に対応する情報端末1に対して、複数の登録特徴点群データを送信する。
【0094】
空間データ管理部237は、コンピュータ群3又は記憶装置4が記憶している空間データを最新の状態に維持するための管理を行う。空間データ管理部237は、例えば、情報端末1から受信した特徴点群データを空間内の位置に関連付けて記憶装置4に記憶させることにより、空間データを最新の状態に維持する。
【0095】
空間データ管理部237は、情報端末1から受信した特徴点群データが最新の特徴点群データであると判定した場合に、情報端末1から受信した特徴点群データを登録特徴点群データとして記憶装置4に記憶させる。空間データ管理部237は、例えば複数の情報端末1から、登録特徴点群データを更新することを要求する更新リクエストとともに特徴点群データを受信した場合に、例えば特徴点群データに含まれているタイムスタンプを参照することにより、より後の時点で生成された撮像画像データに基づく特徴点群データが最新の特徴点群データであると判定する。
【0096】
空間データ管理部237は、同じ位置及び向きを示す詳細位置データを送信した複数の情報端末1から複数の特徴点群データを装置受信処理部が受信した場合、データ量がより多い特徴点群データを登録特徴点群データとして記憶装置4に記憶させてもよい。データ量は、例えば特徴点群データに含まれる点群の数である。点群の数が多いほど、空間に属する被写体のより細かい特徴が特徴点群データに表れていると考えられるので、空間データ管理部237がこのような特徴点群データを登録することで、登録特徴点群データを用いて情報端末1が位置及び向きを特定する際の精度が向上する。
【0097】
空間データ管理部237は、特徴点群データとともに情報端末1が送信した詳細位置データが示す位置及び向きに関連付けられた特徴点群データが記憶装置4に記憶されていない場合に、情報端末1から受信した特徴点群データを登録特徴点群データとして記憶装置4に記憶させてもよい。記憶部22は、記憶装置4が記憶している複数の登録特徴点群データそれぞれに対応する緯度、経度、高度及び方位を記憶しており、空間データ管理部237は、詳細位置データが示す緯度、経度、高度及び方位が記憶部22に記憶されていない場合に、特徴点群データを記憶装置4に記憶させる。
【0098】
空間データ管理部237は、位置データが示す位置及び向きに対応する登録特徴点群データが記憶装置4に記憶されている場合、記憶されている登録特徴点群データのデータ量よりも情報端末1から受信した特徴点群データのデータ量の方が大きいことを条件として、情報端末1から受信した特徴点群データを登録特徴点群データとして記憶装置4に記憶させてもよい。
【0099】
記憶部22は、記憶装置4が記憶している複数の登録特徴点群データそれぞれのデータ量を緯度、経度、高度及び方位とともに記憶しており、空間データ管理部237は、情報端末1から送信された特徴点群データのデータ量と、情報端末1から送信された詳細位置データが示す位置及び向きに関連付けて記憶部22に記憶された登録特徴点群データのデータ量とを比較する。空間データ管理部237は、比較した結果、情報端末1から受信した特徴点群データのデータ量の方が大きい場合に、情報端末1から受信した特徴点群データを記憶装置4に記憶させる。空間データ管理部237がこのように動作することで、登録特徴点群データを更新することにより、登録特徴点群データが劣化することを防げる。
【0100】
空間データ管理部237は、情報端末1から受信した特徴点群データに、予め登録された形状の被写体を示すデータが含まれていることを条件として、特徴点群データを記憶装置4に記憶させてもよい。予め登録された形状の被写体は、例えば、新たに建設された建物である。空間データ管理部237がこのように動作することで、登録特徴点群データが存在しないことが予めわかっている場合に、速やかに登録特徴点群データを登録することができる。
【0101】
台数管理部238は、予め設定された条件に基づいて、情報端末1が属する空間を特定するためのマッチング処理を実行する複数のコンピュータ30の台数を決定する。台数管理部238は、例えば、記憶装置4に記憶された登録特徴点群データの量に基づいて複数のコンピュータ30の台数を変更する。特徴点群送信部234は、台数管理部238が決定した台数のコンピュータ30に、複数の情報端末1から受信した特徴点群データを送信する。台数管理部238がこのように動作することで、時間の経過に伴って登録特徴点群データの量が増加した場合であっても、マッチング処理に要する時間が増加することを抑制できる。
【0102】
台数管理部238は、特徴点群送信部234が特徴点群データを複数のコンピュータ30に送信してから、情報端末1が属する空間を特定したことを示す所定の情報を取得するまでに要する時間(すなわち、マッチング処理に要する時間)に基づいて複数のコンピュータ30の台数を変更してもよい。特徴点群送信部234が特徴点群データを複数のコンピュータ30に送信してから、所定の情報を取得するまでに要する時間が長い場合には、コンピュータ30の数が不足していると考えられる。そこで、台数管理部238は、当該時間が閾値以上になった場合に、マッチング処理を実行させるコンピュータ30の数を増加させることで、マッチング処理に要する時間が長くなり過ぎることを抑制する。
【0103】
ところで、情報処理装置2が特徴点群データを受信する情報端末1の数が増えた場合、端末データ受信部233が受信する特徴点群データの量が増加する。特徴点群データの量が増えると、マッチング処理に要する時間が長くなる。そこで、台数管理部238は、端末データ受信部233が受信する特徴点群データの量に基づいて複数のコンピュータ30の台数を変更してもよい。台数管理部238は、特徴点群データを送信する情報端末1の数に基づいて複数のコンピュータの台数を変更してもよい。
【0104】
台数管理部238は、所定の時間内に端末データ受信部233が受信する特徴点群データの量が閾値以上になった場合、又は所定の時間内に特徴点群データを受信する情報端末1の数が増えた場合に、マッチング処理を実行させるコンピュータ30の数を増加させることで、マッチング処理に要する時間が長くなり過ぎることを抑制する。台数管理部238は、端末データ受信部233が特徴点群データを受信する情報端末1の数が閾値以上になった場合にマッチング処理を実行させるコンピュータ30の数を増加させてもよい。
【0105】
情報端末1が移動している場合には、情報端末1が異なる空間に移動し、情報端末1が属する空間を特定するためのマッチング処理の頻度が増加することが想定される。そこで、台数管理部238は、端末データ受信部233が情報端末1から受信した概略位置データが、情報端末1が移動していることを示しているか否かに基づいて複数のコンピュータ30の台数を変更してもよい。
【0106】
台数管理部238は、移動している情報端末1の数が所定数以上であることを特定した場合に、マッチング処理を実行させるコンピュータ30の数を増加させることで、マッチング処理に要する時間が長くなり過ぎることを抑制する。逆に、台数管理部238は、移動している情報端末1の数が所定数未満であることを特定した場合に、マッチング処理を実行させるコンピュータ30の数を減少させることで、コンピュータ30の使用コストを下げることができる。
【0107】
台数管理部238は、複数の時刻に送信された複数の概略位置データに基づいて情報端末1の移動速度を特定し、特定した移動速度が閾値以上の情報端末1の数が所定数以上である場合に、コンピュータ30の数を増加させてもよい。台数管理部238がこのように動作することで、空間が切り替わる蓋然性が高い情報端末1の数に基づいてコンピュータ30の数を変更することができるので、マッチング処理を実行させるコンピュータ30の数を、より適切な数にすることができる。
【0108】
(コンピュータ群3の構成)
図9は、コンピュータ群3が有するコンピュータ30の構成を示す図である。通信部31は、通信部31と、記憶部32と、制御部33と、を有する。制御部33は、特徴点群取得部331と、登録データ取得部332と、データ解析部333と、を有する。
【0109】
通信部31は、通信ネットワークに接続するための通信インターフェースを有する。通信部31は、情報処理装置2及び記憶装置4との間で各種のデータを送受信する。
【0110】
記憶部32は、ROM、RAM及びSSDを有する。記憶部32は、制御部33が実行するプログラムを記憶している。
【0111】
制御部33は、例えばCPUを有する。制御部33は、記憶部32に記憶されたプログラムを実行することにより、特徴点群取得部331、登録データ取得部332及びデータ解析部333として機能する。
【0112】
特徴点群取得部331は、情報処理装置2から特徴点群データを取得する。特徴点群取得部331は、取得した特徴点群データをデータ解析部333に入力する。
【0113】
登録データ取得部332は、複数の空間に対応する登録特徴点群データを記憶した記憶装置4から、コンピュータ30に割り当てられた空間に対応する複数の登録特徴点群データを読み出すことにより、複数の登録特徴点群データを取得する。登録データ取得部332は、取得した複数の登録特徴点群データをデータ解析部333に入力する。登録データ取得部332は、取得した複数の登録特徴点群データを記憶部32に記憶させてもよい。
【0114】
なお、コンピュータ30に割り当てられた空間に対応する空間識別情報は、例えば記憶部32に記憶されており、登録データ取得部332は、空間識別情報に関連付けて記憶装置4に記憶されている複数の登録特徴点群データを記憶装置4から取得する。
【0115】
データ解析部333は、特徴点群取得部331が取得した特徴点群データと、各コンピュータ30に割り当てられた空間に対応する、登録データ取得部332が取得した複数の登録特徴点群データのいずれかとの差分が閾値以下である場合に所定の情報を情報処理装置2に送信する。所定の情報は、上述したように、登録データ取得部332が受信した特徴点群データが、当該コンピュータ30がマッチング処理を担当している空間に含まれる被写体の特徴点群により構成されているということを示す情報である。
【0116】
[情報処理システムSにおける処理の流れ]
(空間データを取得する処理)
図10は、同じ空間に属する複数の情報端末1が空間データを取得するまでの流れを示すシーケンス図である。
図10に示すシーケンス図は、情報端末1が空間データを取得する必要が生じた時点から開始している。空間データを取得する必要が生じた時点は、例えばユーザUが情報端末1において所定のアプリケーションソフトウェアを起動したり、所定のサイトにログインしたり、前回空間データを取得した地点から所定の距離以上移動したり、前回空間データを取得した時点から所定の時間以上が経過したりした時点である。
【0117】
図10における第1情報端末及び第2情報端末は、同じ第1空間に属しており、例えば
図1に示した情報端末1a-1及び情報端末1a-2である。第1情報端末は、第1情報端末の位置を示す第1概略位置データと、撮像画像データに基づいて生成した第1特徴点群データを情報処理装置2に送信する。情報処理装置2は、受信した第1概略位置データが示す概略位置を含む第1空間の登録特徴点群データを用いてマッチング処理を実行する第1コンピュータに第1特徴点群データを送信する。ここで、情報処理装置2は、複数の第1コンピュータに第1特徴点群データを送信してもよい。
【0118】
第1コンピュータは、複数の登録特徴点群データのうちのいずれかに第1特徴点群データが一致すると判定した場合、第1情報端末が、一致した登録特徴データに対応する第1空間にいると判定し、第1空間に対応する複数の登録特徴点群データを含む第1空間データを情報処理装置2に送信する。情報処理装置2は、受信した第1空間データを第1情報端末に送信する。その後、第1情報端末は、自身が生成した特徴点群データを、受信した複数の登録特徴点群データと比較することにより、自身の詳細位置を特定する。
【0119】
第2情報端末も第1情報端末と同様に動作し、第2情報端末の位置を示す第2概略位置データと、撮像画像データに基づいて生成した第2特徴点群データを情報処理装置2に送信する。第2情報端末も第1情報端末と同じ第1空間に属するので、情報処理装置2は、第2特徴点群データを第1コンピュータに送信し、第1コンピュータから第1空間データを受信する。情報処理装置2は、第1空間データを第2情報端末に送信し、第2情報端末は、自身が生成した特徴点群データを、受信した第1空間データに含まれる複数の登録特徴点群データと比較することにより、自身の詳細位置を特定する。
【0120】
図11は、異なる空間に属する複数の情報端末1が空間データを取得するまでの流れを示すシーケンス図である。
図11における第1情報端末及び第3情報端末は、異なる空間に属しており、例えば
図1に示した情報端末1a-1及び情報端末1b-1である。第1情報端末の動作は、
図10に示した動作と同じである。
【0121】
第3情報端末は、第3情報端末の位置を示す第3概略位置データと、撮像画像データに基づいて生成した第3特徴点群データを情報処理装置2に送信する。第3情報端末は第1情報端末と異なる第2空間に属するので、情報処理装置2は、第3概略位置データに対応する第2空間を担当する第2コンピュータに第3特徴点群データを送信し、第3コンピュータから第2空間データを受信する。情報処理装置2は、第2空間データを第2情報端末に送信し、第2情報端末は、自身が生成した特徴点群データを、受信した第2空間データに含まれる複数の登録特徴点群データと比較することにより、自身の詳細位置を特定する。
【0122】
(AR画像を表示する処理)
図12は、同じ空間に属する複数の情報端末1がAR画像を表示する処理の流れを示すシーケンス図である。
図12に示すシーケンス図は、第1情報端末を使用するユーザU1が、AR画像を表示する操作を行った時点から開始している。第1情報端末は、ユーザU1が行った操作の内容を特定するとともに(S11)、操作が行われた位置を示す操作位置座標を特定する(S12)。第1情報端末は、操作の内容を示す操作内容データと操作位置を示す座標データとを情報処理装置2に送信する。
【0123】
情報処理装置2は、受信した操作内容データに基づいて、第1情報端末に表示させるAR画像データを選択し、選択したAR画像データを第1情報端末に送信する。なお、第1情報端末がAR画像データを記憶している場合、情報処理装置2は、AR画像データを第1情報端末に送信しなくてもよい。
【0124】
情報処理装置2は、第1情報端末と同じ空間に属する第2情報端末に対して、第1情報端末から受信した座標データに対応する表示座標データを送信する。また、情報処理装置2は、第1情報端末に送信したAR画像データを第2情報端末にも送信する。第1情報端末及び第2情報端末は、受信したAR画像データに基づくAR画像を、表示座標データに対応する位置及び向きに表示する(S13、S14)。第1情報端末及び第2情報端末がこのように動作することで、同じ空間に属する複数の情報端末1が、それぞれの位置及び向きに応じた位置及び向きで同じAR画像を表示することができる。
【0125】
(空間データの登録)
図13は、情報端末1が特徴点群データを空間データとして登録する処理の流れを示すシーケンス図である。
図13に示すシーケンス図は、第1情報端末が、自身が作成した特徴点群データと登録特徴点群データとを比較する時点から開始している。
【0126】
第1情報端末が、自身が作成した第1特徴点群データと一致する登録特徴点群データを含む空間データがないと判定した場合(S21においてYES)、空間データを更新する必要があると判定し(S22)、更新リクエストとともに第1特徴点群データを情報処理装置2に送信する。同様に、第2情報端末が、自身が作成した第2特徴点群データと一致する登録特徴点群データを含む空間データがないと判定した場合(S23においてYES)、空間データを更新するための更新リクエストとともに第2特徴点群データを情報処理装置2に送信する。
【0127】
情報処理装置2は、同一の位置及び向きに対応する第1特徴点群データ及び第2特徴点群データを受信した場合、上述した所定の条件のいずれかに基づいて、どちらの特徴点群データを登録すべきかを判定し、一方の特徴点群データを選択する(S24)。情報処理装置2は選択した特徴点群データを記憶装置4に送信し、記憶装置4は、受信した特徴点群データを空間データとして登録する(S25)。
【0128】
[変形例]
以上の説明においては、情報処理装置2が情報端末1とコンピュータ群3との間で特徴点群データ及び登録特徴点群データを中継したが、コンピュータ群3が情報処理装置2の機能を有していてもよい。
【0129】
また、以上の説明においては、情報端末1が表示座標データを情報処理装置2に送信したことに応じて情報処理装置2がAR画像を情報端末1に提供する場合を例示したが、情報端末1が予め複数のAR画像を記憶していてもよい。この場合、情報端末1は、情報処理装置2からの指示に基づいて、記憶している複数のAR画像から表示するAR画像を選択し、受信した表示座標データに基づく位置及び向きに、選択したAR画像を表示する。
【0130】
また、以上の説明においては、情報処理装置2がインメモリデータベースを有しており、インメモリデータベースを介して各種の表示座標データ及び特徴点群データをやり取りする場合を例示したが、情報処理装置2がインメモリデータベースを有しておらず、複数の情報端末1が、他の記憶媒体を介してこれらのデータをやり取りしてもよい。
【0131】
[情報処理システムSによる効果]
本実施形態に係る情報処理装置2は、第1情報端末が送信した表示座標データを受信し、受信した前記表示座標データをインメモリデータベースに登録し、インメモリデータベースに表示座標データが登録されたことに応じて、第1情報端末と同じ空間に属する第2情報端末に表示座標データを送信する。情報処理装置2がインメモリデータベースを介して複数の情報端末1との間で表示座標データを送受信することにより、情報端末1にAR画像を表示させるまでに要する時間を短縮することができる。
【0132】
また、コンピュータ群3は、情報端末1が生成した撮像画像データに基づく特徴点群データを取得し、それぞれが異なる空間を担当する複数のコンピュータ30が、複数の登録特徴点群データと取得した特徴点群データとを比較することにより、情報端末1が属する空間を特定する。そして、コンピュータ群3は、特定した空間に対応する複数の登録特徴点群データを情報端末1に提供する。コンピュータ群3がこのように動作することで、情報端末1は、自身が作成した特徴点群データと比較する対象となる複数の登録特徴点群データを、自身が属する空間に対応する複数の登録特徴点群データに限定することができるので、短時間で自身の正確な位置及び向きを特定することができる。
【0133】
また、情報処理装置2は、予め設定された条件に基づいて、情報端末1が生成した特徴点群データとのマッチング処理を実行するコンピュータ30の台数を変更する。情報処理装置2がこのように動作することで、情報端末1の台数が増減したり、情報端末1が送信する特徴点群データの量が増減したりしても、情報端末1に適切な登録特徴点群データを送信するまでに要する時間を一定の範囲内に維持することができる。
【0134】
また、情報端末1は、自身が生成した特徴点群データに対応する登録特徴点群データがない場合に、自身が生成した特徴点群データを記憶装置4に登録することができる。大量の情報端末1が生成した特徴点群データを記憶装置4に登録することで、記憶装置4が記憶する登録特徴点群データを最新の状態に維持することができる。さらに、情報処理装置2は、複数の情報端末1から同じ位置及び向きに対応する特徴点群データの更新リクエストを受信した場合、より信頼度が高い特徴点群データを記憶装置4に登録する。情報処理装置2がこのように動作することで、記憶装置4に記憶された登録特徴点群データの信頼性が向上する。
【0135】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の全部又は一部は、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を併せ持つ。
【符号の説明】
【0136】
1 情報端末
2 情報処理装置
3 コンピュータ群
4 記憶装置
11 通信部
12 操作部
13 位置検出部
14 撮像部
15 表示部
16 記憶部
17 制御部
21 通信部
22 記憶部
23 制御部
30 コンピュータ
31 通信部
32 記憶部
33 制御部
171 送信処理部
172 受信処理部
173 操作受付部
174 概略位置特定部
175 画像処理部
176 詳細位置特定部
177 表示処理部
178 空間データ取得部
221 第1空間用データベース
222 第2空間用データベース
231 座標受信部
232 座標送信部
233 端末データ受信部
234 特徴点群送信部
235 情報受信部
236 空間データ送信部
237 空間データ管理部
238 台数管理部
331 特徴点群取得部
332 登録データ取得部
333 データ解析部