(57)【要約】      （修正有）【課題】３Ｄマップを作成するためのコンピュータ実装の方法を提供する。【解決手段】複数のビデオと複数のビデオ関連データ単位とを取得することであって、複数のビデオ関連データ単位のそれぞれは、対応するビデオが撮られた場所で受信される電波信号の特徴を示す、ことと、複数のビデオにそれぞれ基づいて、複数の３Ｄモデルを再構築することと、複数の３Ｄモデルから一対の３Ｄモデルを、対応する一対のビデオ関連データ単位の類似度に基づいて選択することと、一対の３Ｄモデルをマージして３Ｄマップを取得することとを含む。【選択図】図６
2017111209.tif 000002
【特許請求の範囲】
【請求項１】
３Ｄマップを作成するためのコンピュータ実装の方法であって、
複数のビデオと複数のビデオ関連データ単位とを取得することであって、前記複数のビデオ関連データ単位のそれぞれは、対応するビデオが撮られた場所で受信される電波信号の特徴を示す、ことと、
前記複数のビデオにそれぞれ基づいて、複数の３Ｄモデルを再構築することと、
前記複数の３Ｄモデルから一対の３Ｄモデルを、対応する一対のビデオ関連データ単位の類似度に基づいて選択することと、
前記一対の３Ｄモデルをマージして３Ｄマップを取得することと
を含む、方法。
【請求項２】
第１のビデオ関連データ単位と第２のビデオ関連データ単位との類似度を、前記第１のビデオ関連データ単位により示される観測された電波信号のセットと前記第２のビデオ関連データ単位により示される観測された電波信号のセットとの類似の程度を表す共起情報を用いて、計算することを更に含む、請求項１の方法。
【請求項３】
第１のビデオ関連データ単位と第２のビデオ関連データ単位との類似度を、前記第１のビデオ関連データ単位により示される電波信号の強度と前記第２のビデオ関連データ単位により示される電波信号の強度との非類似の程度を表す非類似情報を用いて、計算することを更に含む、請求項１の方法。
【請求項４】
前記一対の３Ｄモデルを選択することは、前記複数の３Ｄモデルから第１の対の３Ｄモデルと続けて第２の対の３Ｄモデルとを選択することを含み、
前記一対の３Ｄモデルをマージすることは、前記第２の対の３Ｄモデルの選択に応じてそれぞれ前記第１の対の３Ｄモデルと前記第２の対の３Ｄモデルとをマージすることを含む、請求項１の方法。
【請求項５】
複数の画像と複数の画像関連データ単位とを含む３Ｄマップを記憶することであって、前記複数の画像関連データ単位のそれぞれは、対応する画像が撮られた場所で受信される電波信号の特徴を示す、ことと、
入力画像と入力データ単位とを取得することであって、前記入力データ単位は、前記入力画像が撮られた特定の場所で受信される電波信号の特徴を示す、ことと、
前記入力データ単位と、前記３Ｄマップに含まれる前記複数の画像関連データ単位の少なくとも１つの画像関連データ単位との類似度に基づいて、前記３Ｄマップに含まれる前記複数の画像から少なくとも１つの画像を選択することと、
前記入力画像を前記少なくとも１つの画像と比較することと、
比較することの結果に基づいて、前記特定の場所を推定することと
を更に含む、請求項１の方法。
【請求項６】
３Ｄマップを作成するための装置であって、
プロセッサと、
前記プロセッサに結合されたメモリと
を含み、
前記メモリは、
複数のビデオと複数のビデオ関連データ単位とを取得することであって、前記複数のビデオ関連データ単位のそれぞれは、対応するビデオが撮られた場所で受信される電波信号の特徴を示す、ことと、
前記複数のビデオにそれぞれ基づいて、複数の３Ｄモデルを再構築することと、
前記複数の３Ｄモデルから一対の３Ｄモデルを、対応する一対のビデオ関連データ単位の類似度に基づいて選択することと、
前記一対の３Ｄモデルをマージして３Ｄマップを取得することと
を前記プロセッサにさせるために前記プロセッサにより実行可能なプログラム命令を含む、装置。
【請求項７】
３Ｄマップを作成するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、コンピュータ可読記憶媒体で実現されるプログラム命令を有する当該コンピュータ可読記憶媒体を含み、前記プログラム命令は、
複数のビデオと複数のビデオ関連データ単位とを取得することであって、前記複数のビデオ関連データ単位のそれぞれは、対応するビデオが撮られた場所で受信される電波信号の特徴を示す、ことと、
前記複数のビデオにそれぞれ基づいて、複数の３Ｄモデルを再構築することと、
前記複数の３Ｄモデルから一対の３Ｄモデルを、対応する一対のビデオ関連データ単位の類似度に基づいて選択することと、
前記一対の３Ｄモデルをマージして３Ｄマップを取得することと
をコンピュータにさせるために前記コンピュータにより実行可能である、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３Ｄマップの作成に関する。
【背景技術】
【０００２】
近年、３Ｄマップの作成に関しては、様々な技術が知られている。
【発明の概要】
【課題を解決するための手段】
【０００３】
本発明の実施の形態によれば、３Ｄマップを作成するためのコンピュータ実装の方法が提供される。方法は、複数のビデオと複数のビデオ関連データ単位とを取得することを含む。複数のビデオ関連データ単位のそれぞれは、対応するビデオが撮られた場所で受信される電波信号の特徴を示す。更に、方法は、複数のビデオにそれぞれ基づいて、複数の３Ｄモデルを再構築することを含む。更に、方法は、複数の３Ｄモデルから一対の３Ｄモデルを、対応する一対のビデオ関連データ単位の類似度に基づいて選択することを含む。更にまた、方法は、一対の３Ｄモデルをマージして３Ｄマップを取得することを含む。
【０００４】
本発明の別の実施の形態によれば、３Ｄマップを作成するための装置が提供される。装置は、プロセッサと、プロセッサに結合されたメモリとを含む。メモリは、プログラム命令を含む。プログラム命令は、複数のビデオと複数のビデオ関連データ単位とを取得するためにプロセッサにより実行可能である。複数のビデオ関連データ単位のそれぞれは、対応するビデオが撮られた場所で受信される電波信号の特徴を示す。更に、プログラム命令は、複数のビデオにそれぞれ基づいて、複数の３Ｄモデルを再構築するためにプロセッサにより実行可能である。更に、プログラム命令は、複数の３Ｄモデルから一対の３Ｄモデルを、対応する一対のビデオ関連データ単位の類似度に基づいて選択するためにプロセッサにより実行可能である。更にまた、プログラム命令は、一対の３Ｄモデルをマージして３Ｄマップを取得するためにプロセッサにより実行可能である。
【０００５】
本発明の更に別の実施の形態によれば、３Ｄマップを作成するためのコンピュータプログラム製品が提供される。コンピュータプログラム製品は、コンピュータ可読記憶媒体で実現されるプログラム命令を有するコンピュータ可読記憶媒体を含む。プログラム命令は、複数のビデオと複数のビデオ関連データ単位とを取得するためにコンピュータにより実行可能である。複数のビデオ関連データ単位のそれぞれは、対応するビデオが撮られた場所で受信される電波信号の特徴を示す。更に、プログラム命令は、複数のビデオにそれぞれ基づいて、複数の３Ｄモデルを再構築するためにコンピュータにより実行可能である。更に、プログラム命令は、複数の３Ｄモデルから一対の３Ｄモデルを、対応する一対のビデオ関連データ単位の類似度に基づいて選択するためにコンピュータにより実行可能である。更にまた、プログラム命令は、一対の３Ｄモデルをマージして３Ｄマップを取得するためにコンピュータにより実行可能である。
【図面の簡単な説明】
【０００６】
【図１】本発明の実施の形態におけるコンピュータシステムのブロック図である。
【図２】本発明の実施の形態を実装可能なコンピュータのハードウェア構成例を示した図である。
【図３】本発明の実施の形態におけるビーコン信号ファイルの内容の例を示した図である。
【図４】本発明の実施の形態における３Ｄマップを作成する処理の概要の例を示した図である。
【図５】本発明の実施の形態におけるユーザの位置を特定する処理の概要の例を示した図である。
【図６】３Ｄマップ作成モジュールが３Ｄマップを作成する際に行われる動作の例を表すフローチャートである。
【図７】ユーザ位置特定モジュールがユーザの位置を特定する際に行われる動作の例を表すフローチャートである。
【発明を実施するための形態】
【０００７】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
【０００８】
尚、本発明は、以下の実施の形態に限定されるものではなく、その要旨の範囲内で種々変形して実施することができる。また、使用する図面は、本実施の形態を説明するために使用するものであり、実際の大きさを表すものではない。
【０００９】
図１を参照すると、本実施の形態が適用されるコンピュータシステム１のブロック図が示される。コンピュータシステム１は、大規模環境の３Ｄ（三次元）マップを作り、３Ｄマップを用いてその大規模環境でユーザの位置を特定するために使用され得る。大規模環境は、類似する外観を有する室内環境であり得る。大規模環境は、例えば、オフィスビル、ショッピングモール、病院等であり得る。位置特定の結果は、視覚障害者ナビゲーションシステム、自立型車椅子、自立型ロボット等のために用いられ得る。
【００１０】
図示するように、コンピュータシステム１は、大規模環境に設置されたビーコン送信機１０を含み得る。コンピュータシステム１は、更に、デジタルビデオカメラ２０と、携帯端末３０と、無線ネットワーク等のネットワーク５０を介して携帯端末３０に接続されたコンピュータ装置４０とを含み得る。
【００１１】
ビーコン送信機１０のそれぞれは、自機を識別可能なビーコン信号を送信し得る。ビーコン送信機１０の個数は５個には限らず、５個より多い又は５個より少ないビーコン送信機１０が大規模環境に設置されてもよい。ビーコン信号は電波信号の一例である。ビーコン信号の代わりに、Ｗｉ−Ｆｉ信号を電波信号として用いてもよい。
【００１２】
デジタルビデオカメラ２０は、大規模環境の３Ｄマップの作成者による操作に応じて、大規模環境のビデオを撮り得る。そのとき、デジタルビデオカメラ２０は、ビーコン送信機１０から受信されたビーコン信号の特徴を各々が含むファイルを作り得る。以下、そのようなファイルを「ビーコン信号ファイル」という。更に、デジタルビデオカメラ２０は、３Ｄマップの作成者により、図に白抜き矢印で示されるようにコンピュータ装置４０の近くまで持ち運ばれ、３Ｄマップの作成者による操作に応じて、例えばＵＳＢ（Universal Serial Bus）を介してコンピュータ装置４０にビデオ及びビーコン信号ファイルを提供し得る。
【００１３】
携帯端末３０は、自分の位置を知りたいユーザによる操作に応じて、大規模環境の写真を撮り得る。そのとき、携帯端末３０は、ビーコン送信機１０から受信されたビーコン信号の特徴を示すビーコン信号情報を取得し得る。更に、携帯端末３０は、ネットワーク５０を介してコンピュータ装置４０に写真及びビーコン信号情報を送信し得る。
【００１４】
コンピュータ装置４０は、デジタルビデオカメラ２０により提供されたビデオ及びビーコン信号ファイルに基づいて３Ｄマップを作り、携帯端末３０から受信された写真及びビーコン信号情報と３Ｄマップとに基づいてユーザの位置を特定し得る。具体的には、コンピュータ装置４０は、３Ｄマップを作成する処理を行う３Ｄマップ作成モジュール４１と、ユーザの位置を特定する処理を行うユーザ位置特定モジュール４２とを含み得る。
【００１５】
図２を参照すると、コンピュータ装置４０として使用可能なコンピュータ９０のハードウェア構成例が示される。図示するように、コンピュータ９０は、プロセッサの一例として機能するＣＰＵ（Central Processing Unit）９０ａと、Ｍ／Ｂ（マザーボード）チップセット９０ｃを介してＣＰＵ９０ａに接続され、メモリの一例として機能するメインメモリ９０ｂと、同じくＭ／Ｂチップセット９０ｃを介してＣＰＵ９０ａに接続された表示機構９０ｄとを備える。Ｍ／Ｂチップセット９０ｃには、ブリッジ回路９０ｅを介して、ネットワークインターフェイス９０ｆ、磁気ディスク装置９０ｇ、音声機構９０ｈ、及び、キーボード／マウス９０ｉも接続されている。
【００１６】
図２において、様々な構成要素は、バスを介して接続される。例えば、ＣＰＵ９０ａ及びＭ／Ｂチップセット９０ｃや、Ｍ／Ｂチップセット９０ｃ及びメインメモリ９０ｂは、それぞれ、ＣＰＵバスを介して接続される。また、Ｍ／Ｂチップセット９０ｃ及び表示機構９０ｄは、ＡＧＰ（Accelerated Graphics Port）を介して接続されてもよい。しかしながら、表示機構９０ｄがＰＣＩ Ｅｘｐｒｅｓｓ対応のビデオカードを含む場合、Ｍ／Ｂチップセット９０ｃ及びビデオカードは、ＰＣＩ Ｅｘｐｒｅｓｓ（ＰＣＩｅ）バスを介して接続される。また、ネットワークインターフェイス９０ｆがブリッジ回路９０ｅと接続する場合、接続のために、例えば、ＰＣＩ Ｅｘｐｒｅｓｓを用いてもよい。磁気ディスク装置９０ｇがブリッジ回路９０ｅと接続するために、シリアルＡＴＡ（AT Attachment）、パラレル転送のＡＴＡ、ＰＣＩ（Peripheral Components Interconnect）を用いてもよい。キーボード／マウス９０ｉがブリッジ回路９０ｅと接続するために、ＵＳＢ（Universal Serial Bus）を用いてもよい。
【００１７】
３Ｄマップの作成者は、デジタルビデオカメラ２０により、大規模環境における風景のビデオを、例えば歩きながら撮り得る。このようにビデオを撮るとき、デジタルビデオカメラ２０は、ビーコン送信機１０により発信されたビーコン信号を受信し得る。しかしながら、ビーコン信号の受信タイミングはこれには限らない。デジタルビデオカメラ２０がビーコン信号をビデオが撮られた場所で受信する限り、受信タイミングは如何なるタイミングでもよい。ビーコン信号のＲＳＳＩ（Received Signal Strength Indicator）（以下、「ビーコンＲＳＳＩ」という）は、デジタルビデオカメラ２０がビデオを撮る場所によって異なり得る。デジタルビデオカメラ２０は、ある場所で撮られたビデオに関連付けて、その場所におけるビーコン信号のＲＳＳＩの特徴を含むビーコン信号ファイルを、ビデオ関連データ単位の一例として保持し得る。
【００１８】
図３を参照すると、ビーコン信号ファイルの内容の例が示される。図において、ビーコン信号ファイルは、ビデオのビデオフレーム（以下、単に「フレーム」という）ごとにビーコン信号のＲＳＳＩを保持するものとする。また、図のビーコン送信機ＴＡ，ＴＢ，ＴＣ，ＴＤ，ＴＥはビーコン送信機１０として設置されているものとする。図は、例えば、フレームＦ１が撮られる場所でビーコン送信機ＴＡ，ＴＢ，ＴＣ，ＴＤ，ＴＥから受信されたビーコン信号がそれぞれＲＳＳＩ Ｓ１Ａ，Ｓ１Ｂ，Ｓ１Ｃ，Ｓ１Ｄ，Ｓ１Ｅを有することを示している。また、図は、フレームＦ２が撮られる場所でビーコン送信機ＴＡ，ＴＢ，ＴＣ，ＴＤ，ＴＥから受信されたビーコン信号がそれぞれＲＳＳＩ Ｓ２Ａ，Ｓ２Ｂ，Ｓ２Ｃ，Ｓ２Ｄ，Ｓ２Ｅを有することを示している。
【００１９】
さて、好適な実施の形態においてコンピュータ装置４０により行われる処理の概要を述べる。
【００２０】
図４を参照すると、３Ｄマップを作成する処理の概要の例が示される。
【００２１】
まず、複数のビデオと、複数のビデオに１つずつ対応する複数のビーコン信号ファイルとが、デジタルビデオカメラ２０により取得され得る。具体的には、ある場所でデジタルビデオカメラ２０によりビデオ６１ａが撮られると、ビーコン信号ファイル６２ａも取得され得る。更に、別の場所でデジタルビデオカメラ２０によりビデオ６１ｂが撮られると、ビーコン信号ファイル６２ｂも取得され得る。更にまた、更に別の場所でデジタルビデオカメラ２０によりビデオ６１ｃが撮られると、ビーコン信号ファイル６２ｃも取得され得る。ビデオの個数は３個には限らず、３個より多いビデオがデジタルビデオカメラ２０により撮られてもよい。同様に、３個より多いビーコン信号ファイルが取得されてもよい。
【００２２】
次に、各々が複数のビデオの対応する１つに基づく複数の３Ｄモデルが、ＳｆＭ（Structure from Motion）、ステレオカメラ等の既知の技術を用いて別々に再構築され得る。具体的には、３Ｄモデル６３ａが、矢印６４ａで示されるように、ビデオ６１ａに基づいて再構築され得る。更に、３Ｄモデル６３ｂが、矢印６４ｂで示されるように、ビデオ６１ｂに基づいて再構築され得る。更にまた、３Ｄモデル６３ｃが、矢印６４ｃで示されるように、ビデオ６１ｃに基づいて再構築され得る。他のビデオについても同じ処理が行われ得る。複数の３Ｄモデルのそれぞれは、３Ｄモデル座標のそれぞれに対して、３Ｄモデル座標と、画像群と、ビーコン信号情報群との対応を含み得る。３Ｄモデル座標は、３Ｄモデル空間内の撮影対象の位置の座標であり得る。画像群は、対応する３Ｄモデル座標を生成するのに用いられた画像の群であり、画像のそれぞれは、対応する３Ｄモデル座標を生成するのに用いられた画像特徴を含み得る。この説明において、「画像」は、当初はビデオに含まれるフレームであったが処理対象のデータとしてコンピュータ装置４０に記憶された画像を示す。ビーコン信号情報群は、対応する画像群に含まれる画像が撮られた場所で受信されたビーコン信号の特徴を各々が示す情報群であり得る。
【００２３】
続いて、複数の３Ｄモデルから、マージすべき３Ｄモデルの候補ペアが選択され得る。具体的には、３Ｄモデル６３ａ，６３ｂ，６３ｃ等から、３Ｄモデルの候補ペアが選択され得る。同じ場所で撮られたビデオのペアに基づく３Ｄモデルのペアを３Ｄモデルの候補ペアとして選択するためには、ビデオのペアごとのビーコン信号の特徴間の類似度が用いられ得る。ビデオのペアごとのビーコン信号の特徴間の類似度については後述する。図では、両矢印６５ａで示すように、ビーコン信号ファイル６２ａの特徴とビーコン信号ファイル６２ｂの特徴とが、互いに類似すると判定されている。これにより、Ｙ字型矢印６６ａで示すように、３Ｄモデル６３ａと３Ｄモデル６３ｂのペアが、３Ｄモデルの候補ペアとして選択され得る。更に、両矢印６５ｂで示すように、ビーコン信号ファイル６２ｂの特徴とビーコン信号ファイル６２ｃの特徴とが互いに類似すると判定されている。これにより、Ｙ字型矢印６６ｂで示すように、３Ｄモデル６３ｂと３Ｄモデル６３ｃのペアが、３Ｄモデルの候補ペアとして選択され得る。
【００２４】
その後、３Ｄモデルの選択された候補ペアが既知の技術を用いてマージされ得る。具体的には、３Ｄモデル６３ａと３Ｄモデル６３ｂのペアがマージされ、３Ｄモデル６３ｂと３Ｄモデル６３ｃのペアがマージされ得る。その後、既知の技術を用いてこのようにマージされた３Ｄモデルに基づいて３Ｄマップ６７が生成され得る。具体的には、３Ｄモデル６３ａと３Ｄモデル６３ｂのペアをマージすることにより第１のマージされた３Ｄモデルが得られ、３Ｄモデル６３ｂと３Ｄモデル６３ｃのペアをマージすることにより第２のマージされた３Ｄモデルが得られたとすると、第１のマージされた３Ｄモデルと第２のマージされた３Ｄモデルのペアがマージされる。３Ｄマップ６７は、大規模環境における実世界座標のそれぞれに対して、実世界座標と、画像群と、ビーコン信号情報群との対応を含み得る。実世界座標は、実世界空間内の撮影対象の位置の座標であり、３Ｄモデル空間内の撮影対象の位置から生成され得る。画像群は、対応する実世界座標を生成するのに用いられた画像の群であり、画像のそれぞれは、対応する実世界座標を生成するのに用いられた画像特徴を含み得る。画像関連データ単位の一例としてのビーコン信号情報群は、対応する画像群に含まれる画像が撮られた場所で受信されたビーコン信号の特徴を各々が示す情報群であり得る。
【００２５】
一方、図では、ビーコン信号ファイル６２ａの特徴とビーコン信号ファイル６２ｃの特徴とは、互いに非類似であると判定されている。これにより、３Ｄモデル６３ａと３Ｄモデル６３ｃのペアは、３Ｄモデルの候補ペアとして選択されないこととなり得る。
【００２６】
図５を参照すると、ユーザの位置を特定する処理の概要の例が示される。
【００２７】
図では、画像群７１ａとビーコン信号情報群７２ａと実世界座標７３ａとの対応が３Ｄマップの一部としてコンピュータ装置４０に記憶されている。更に、画像群７１ｂとビーコン信号情報群７２ｂと実世界座標７３ｂとの対応が３Ｄマップの一部としてコンピュータ装置４０に記憶されている。更にまた、画像群７１ｃとビーコン信号情報群７２ｃと実世界座標７３ｃとの対応が３Ｄマップの一部としてコンピュータ装置４０に記憶されている。画像群とビーコン信号情報群と実世界座標との対応の個数は３個には限らず、３個より多い対応がコンピュータ装置４０に記憶されてもよい。
【００２８】
まず、クエリ画像７１ｑとビーコン信号情報７２ｑとが、携帯端末３０から受信され得る。具体的には、ある場所で携帯端末３０によりクエリ画像７１ｑが撮られると、ビーコン信号情報７２ｑも携帯端末３０により取得され得る。これにより、クエリ画像７１ｑ及びビーコン信号情報７２ｑは、コンピュータ装置４０へ送信され、コンピュータ装置４０により受信され得る。
【００２９】
次に、複数の画像群に含まれる画像から、クエリ画像７１ｑと照合すべき１つ以上の画像が選択され得る。具体的には、画像群７１ａ，７１ｂ，７１ｃ等に含まれる画像から１つ以上の画像が選択され得る。クエリ画像７１ｑと同じ場所で撮られた画像をその１つ以上の画像の１つとして選択するためには、画像のペアごとのビーコン信号の特徴間の類似度が用いられる。画像のペアごとのビーコン信号の特徴間の類似度については後述する。図では、両矢印７４で示すように、ビーコン信号情報群７２ａの各情報の特徴とビーコン信号情報７２ｑの特徴とが、互いに類似すると判定されている。これにより、矢印７５で示すように、１つ以上の画像７６ａが、クエリ画像７１ｑと照合すべき１つ以上の画像として選択され得る。
【００３０】
続いて、クエリ画像７１ｑは、１つ以上の画像７６ａに含まれる各画像と照合される。これにより、１つ以上の画像７６ａから、よく使われる画像マッチングアルゴリズムによりクエリ画像７１ｑに最も類似すると判定された画像が選択され得る。選択された画像に基づいて、クエリ画像７１ｑを撮った携帯端末３０の位置及び回転角度が推定され得る。尚、３Ｄマップは、選択された画像に関連付けて、携帯端末３０の位置及び回転角度に関する情報を含むものとする。
【００３１】
一方、図では、ビーコン信号情報群７２ｂの何れの情報の特徴とビーコン信号情報７２ｑの特徴とも互いに非類似であり、ビーコン信号情報群７２ｃの何れの情報の特徴とビーコン信号情報７２ｑの特徴とも互いに非類似であると判定されている。これにより、画像群７１ｂ又は画像群７１ｃに含まれる何れの画像も、クエリ画像７１ｑと照合すべき１つ以上の画像として選択されないことになり、画像群７１ｂに含まれる画像及び画像群７１ｃに含まれる画像の何れの画像に基づいても、クエリ画像７１ｑを撮った携帯端末３０の位置及び回転角度は推定されないこととなり得る。
【００３２】
さて、ビーコン信号の特徴間の類似度について述べる。ビーコン信号の一例としてｉＢｅａｃｏｎ（登録商標）信号を用いて説明する。
【００３３】
まず、ｂ＾ｉ（ハット記号は、数式中ではｂの上に記すが、テキスト中ではｂの右に記す）は、ｉ番目のビーコン送信機１０（ｉ＝１，２，…，ｎ）から受信した生のビーコン信号の生のビーコンＲＳＳＩを表すものとする。生のビーコンＲＳＳＩｂ＾ｉは、次の式により、ビーコンＲＳＳＩｂｉを取得するために正規化され得る。
【数１】
2017111209.tif 000003
【００３４】
この式において、「Ｍｅｄ」は、「Ｍｅｄ」に続く集合の中央値を見つける関数である。
【００３５】
生のビーコンＲＳＳＩｂ＾ｉを正規化することは、ビーコンＲＳＳＩｂｉがＲＳＳＩ変動に対処することを可能にし得る。更に、ｉＢｅａｃｏｎ（登録商標）装置から取得された生のビーコンＲＳＳＩｂ＾ｉは−１００から０までの間の値をとるが、生のビーコンＲＳＳＩｂ＾ｉを正規化することは、ビーコンＲＳＳＩｂｉが０から１００までの値をとることを可能にし得る。
【００３６】
次に、ｂｘは、場所ｘで観測されたビーコンＲＳＳＩｂｘ１，ｂｘ２，…ｂｘｎを成分とするベクトルを表すものとし、ｂｙは、場所ｙで観測されたビーコンＲＳＳＩｂｙ１，ｂｙ２，…ｂｙｎを成分とするベクトルを表すものとする。
【００３７】
ｂｘとｂｙとの類似度は、２つの尺度を用いて評価され得る。
【００３８】
第１の尺度は、共起情報の一例としてのビーコン信号共起性（以下、単に「共起性」という）であり得る。ｂｘとｂｙについての共起性は、ｂｘにより示されるビーコン信号のうち観測されたビーコン信号を送信するビーコン送信機１０の集合と、ｂｙにより示されるビーコン信号のうち観測されたビーコン信号を送信するビーコン送信機１０の集合との類似の程度を表す指標であり得る。ｂｘとｂｙについての共起性は、次の式により算出され得る。
【数２】
2017111209.tif 000004
【００３９】
この式において、「ｍｉｎ（ｂｘｉ，ｂｙｉ）」は、ｂｘｉとｂｙｉの小さい方を見つける関数であり、「ｍａｘ（ｂｘｉ，ｂｙｉ）」は、ｂｘｉとｂｙｉの大きい方を見つける関数である。
【００４０】
第２の尺度は、非類似情報の一例としてのビーコン信号非類似性（以下、単に「非類似性」という）であり得る。ｂｘとｂｙの非類似性は、ｂｘにおける各ビーコンＲＳＳＩとｂｙにおける各ビーコンＲＳＳＩとの非類似の程度を表す指標であり得る。ｂｘとｂｙの非類似性は、次の式により算出され得る。
【数３】
2017111209.tif 000005
【００４１】
ビーコン信号の特徴間の類似度は、例えば、ｃ（ｂｘ，ｂｙ）が大きくなるほど又はｄ（ｂｘ，ｂｙ）が小さくなるほど大きな値を出力する関数により、算出され得る。
【００４２】
この類似度は、ｂｘ及びｂｙが画像ごとに用意されれば、図５のユーザの位置を特定する処理で用いられる「画像のペアごとのビーコン信号の特徴間の類似度」に相当し得る。
【００４３】
しかしながら、この類似度は、ビデオのペアごとのｃ（ｂｘ，ｂｙ）及びビデオのペアごとのｄ（ｂｘ，ｂｙ）が算出されなければ、図４の３Ｄマップを作成する処理で用いられる「ビデオのペアごとのビーコン信号の特徴間の類似度」には相当しないこととなり得る。具体的には、ビデオのペアごとのｃ（ｂｘ，ｂｙ）は、「ｍｉｎ（ｂｘｉ，ｂｙｉ）」を全てのフレームにわたってｂｘｉとｂｙｉの中で最も小さい値を求める関数と再定義し、「ｍａｘ（ｂｘｉ，ｂｙｉ）」を全てのフレームにわたってｂｘｉとｂｙｉの中で最も大きい値を求める関数と再定義することにより、算出され得る。更に、ビデオのペアごとのｄ（ｂｘ，ｂｙ）は、上記式によりフレームの全てのペアについてのｄ（ｂｘ，ｂｙ）を算出し、フレームの全てのペアについての算出されたｄ（ｂｘ，ｂｙ）を合計することにより、算出され得る。
【００４４】
図６を参照すると、３Ｄマップ作成モジュール４１が３Ｄマップを作成する際に行われる動作の例を表すフローチャートが示される。
【００４５】
図示するように、３Ｄマップ作成モジュール４１は、まず、複数のビデオと、複数のビデオに１つずつ対応する複数のビーコン信号ファイルとを取得し得る（ステップ４１１）。３Ｄマップ作成モジュール４１は、ステップ４１１で取得された複数のビデオにそれぞれ基づいて、複数の３Ｄモデルを再構築し得る（ステップ４１２）。３Ｄマップ作成モジュール４１は、ステップ４１１で取得された複数のビーコン信号ファイルの各ペア間の類似度を算出し得る（ステップ４１３）。
【００４６】
次に、３Ｄマップ作成モジュール４１は、ステップ４１３で算出された類似度に基づいて、複数のビデオの候補ペアを選択し得る（ステップ４１４）。候補ペアは、予め定められた閾値を超えた類似度を有するものであり得る。類似度は、複数のビデオの候補ペアに対応する複数のビーコン信号ファイルのペア間のものであり得る。従って、複数のビデオの候補ペアに対応する複数の３Ｄモデルのペアが特定される。
【００４７】
続けて、３Ｄマップ作成モジュール４１は、複数の３Ｄモデルのペアがマージできるかどうかを判定し得る（ステップ４１５）。複数のビデオの対応するペアが候補ペアとして選択されたとしても複数の３Ｄモデルのペアがマージできない場合があるので、この判定が行われる。複数の３Ｄモデルのペアが同じ場所で撮られた異なる方向の画像に対応する場合が、そのような場合に含まれ得る。複数の３Ｄモデルのペアがマージできれば、３Ｄマップ作成モジュール４１は、複数の３Ｄモデルのペアをマージし（ステップ４１６）、処理をステップ４１７へ進め得る。ステップ４１５で複数の３Ｄモデルのペアがマージできなければ、３Ｄマップ作成モジュール４１は、複数の３Ｄモデルのペアをマージせずに、処理をステップ４１７へ進め得る。
【００４８】
その後、３Ｄマップ作成モジュール４１は、ステップ４１４で複数のビデオの全ての候補ペアが選択されたかどうかを判定し得る（ステップ４１７）。複数のビデオの全ての候補ペアがまだ選択されていなければ、３Ｄマップ作成モジュール４１は、処理をステップ４１４へ戻し得る。ステップ４１７で複数のビデオの全ての候補ペアが選択されていれば、３Ｄマップ作成モジュール４１は、３Ｄモデル座標を実世界座標に変換することにより、３Ｄマップを生成し得る（ステップ４１８）。
【００４９】
図７を参照すると、ユーザ位置特定モジュール４２がユーザの位置を特定する際に行われる動作の例を表すフローチャートが示される。
【００５０】
図示するように、ユーザ位置特定モジュール４２は、まず、クエリ画像とビーコン信号情報とを携帯端末３０から受信し得る（ステップ４２１）。次に、ユーザ位置特定モジュール４２は、図６のステップ４１８で生成された３Ｄマップから、ビーコン信号情報群に含まれる１つ以上の類似ビーコン信号情報群に対応する１つ以上の画像を選択し得る（ステップ４２２）。１つ以上の類似ビーコン信号情報群は、ステップ４２１で受信されたビーコン信号情報に類似するものであり得る。続いて、ユーザ位置特定モジュール４２は、ステップ４２１で受信されたクエリ画像を、ステップ４２２で選択された１つ以上の画像のそれぞれと照合し得る（ステップ４２３）。最後に、ユーザ位置特定モジュール４２は、ステップ４２３でクエリ画像とマッチした画像に基づいて、携帯端末３０の場所及び回転角度を推定し得る（ステップ４２４）。
【００５１】
上記では、３Ｄマップ作成モジュール４１は、３Ｄモデルの候補ペアをそれが選択されるごとにマージするものとした。しかしながら、代替の実施の形態として、３Ｄマップ作成モジュール４１は、３Ｄモデルの候補ペアをそれが選択されるときに蓄積し得る。３Ｄモデルの全ての候補ペアが選択された後、３Ｄマップ作成モジュール４１は、３Ｄモデルの全ての候補ペアをマージし得る。即ち、この代替の実施の形態において、３Ｄマップ作成モジュール４１は、３Ｄモデルの第１のペアを選択するが、３Ｄモデルの第１のペアが選択されるときに３Ｄモデルの第１のペアをマージするのを控え得る。続いて、３Ｄマップ作成モジュール４１は、複数の３Ｄモデルから３Ｄモデルの第２のペアを選択し、３Ｄモデルの第２のペアが選択されるときに３Ｄモデルの第１のペアと３Ｄモデルの第２のペアとをマージし得る。
【００５２】
本発明は、システム、方法、及び／又はコンピュータプログラム製品であってよい。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるための、コンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体（又は媒体群）を含んでよい。
【００５３】
コンピュータ可読記憶媒体は、命令実行装置が使用するための命令を保持し格納することが可能な有形の装置である。コンピュータ可読記憶媒体は、例えば、これに限らないが、電子記憶装置、磁気記憶装置、光記憶装置、電磁気記憶装置、半導体記憶装置、又は前述の任意の適切な組み合せであってよい。コンピュータ可読記憶媒体の更に具体的な例の非包括的リストは、携帯型コンピュータディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭ又はフラッシュメモリ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、携帯型コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリスティック、フレキシブルディスク、パンチカード又は記録された命令を有する溝中の凹凸構造体等の機械的に符号化された装置、及び前述の任意の適切な組み合わせを含む。本明細書で用いるコンピュータ可読記憶媒体は、電波又は他の自由に伝搬する電磁気波、導波管又は他の伝送媒体を通して伝搬する電磁気波（例えば、光ファイバケーブルを介して通過する光パルス）、もしくはワイヤを通って送信される電気信号等の、本質的に一時的な信号であるとして解釈されるべきでない。
【００５４】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／プロセッシング装置に、或いは、例えば、インターネット、ローカルエリアネットワーク、広域ネットワーク及び／又は無線ネットワークを介して外部のコンピュータ又は外部の記憶装置にダウンロードすることができる。ネットワークは、銅の伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウエイコンピュータ、及び／又はエッジサーバを含み得る。各コンピューティング／プロセッシング装置中のネットワークアダプタカード又はネットワークインターフェイスは、ネットワークからコンピュータ可読プログラム命令を受信し、そのコンピュータ可読プログラム命令を、それぞれのコンピューティング／プロセッシング装置内のコンピュータ可読記憶媒体中に格納するため転送する。
【００５５】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データであってよく、あるいは、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のオブジェクト指向プログラミング言語、及び「Ｃ」プログラミング言語又は類似のプログラミング言語等の従来式手続き型プログラミング言語を含む１つ以上のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータで専ら実行してもよく、スタンドアロンソフトウェアパッケージとして一部をユーザのコンピュータで実行してもよく、一部をユーザのコンピュータで一部を遠隔コンピュータで実行してもよく、或いは遠隔のコンピュータ又はサーバで専ら実行してもよい。後者の場合は、ローカルエリアネットワーク（ＬＡＮ）又は広域ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続してよく、或いは（例えばインターネットサービスプロバイダを使いインターネットを介し）外部のコンピュータへの接続を行ってもよい。幾つかの実施の形態において、本発明の態様を実施するために、例えば、プログラム可能ロジック回路、フィールドプログラム可能ゲートアレイ（ＦＰＧＡ）又はプログラム可能ロジックアレイ（ＰＬＡ）を含む電子回路が、コンピュータ可読プログラム命令の状態情報を用いて電子回路を個別化することによって、コンピュータ可読プログラム命令を実行してよい。
【００５６】
本発明の態様は、本発明の実施の形態による方法、装置（システム）及びコンピュータプログラム製品のフローチャート図及び／又はブロック図を参照しながら、本明細書で説明されている。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図中のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装することが可能であることが理解されよう。
【００５７】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、特殊用途コンピュータ、又はマシンを形成する他のプログラム可能データ処理装置のプロセッサに供給し、そのコンピュータ又は他のプログラム可能データ処理装置のプロセッサを介して実行する命令が、フローチャート及び／又はブロック図のブロック又はブロック群中に特定されている機能群／動作群を実装するための手段を生成するようにしてもよい。また、これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、及び／又は他の装置に対し特定の仕方で機能するよう命令することが可能なコンピュータ可読記憶媒体に格納し、格納された命令を有するコンピュータ可読記憶媒体が、フローチャート及び／又はブロック図のブロック又はブロック群中に特定されている機能／動作の態様を実装する命令群を包含する製造品を含むようにしてもよい。
【００５８】
また、コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他の装置にロードし、そのコンピュータ上、他のプログラム可能装置上、又は他の装置上で一連の動作ステップを実行させて、コンピュータ実装のプロセスを作り出し、そのコンピュータ上、他のプログラム可能装置上、又は他の装置上で実行する命令が、フローチャート及び／又はブロック図のブロック又はブロック群中に特定されている機能群／動作群を実装するようにしてもよい。
【００５９】
図面のフローチャート及びブロック図は、本発明の様々な実施の形態による、システム、方法、及びコンピュータプログラム製品の可能な実装のアーキテクチャ、機能性、及び動作を示している。この点に関し、フローチャート又はブロック図中の各ブロックは、特定の論理機能（群）を実装するための１つ以上の実行可能命令を含む、モジュール、セグメント、又は命令の部分を表し得る。幾つかの代替の実装では、ブロック中に記載された機能が、図面に記載された順序から外れて行われ得る。例えば、連続して示された２つのブロックが、関与する機能性に応じ、実際にはほぼ同時に実行されることがあり、時にはこれらのブロックが逆の順序で実行されることもあり得る。また、ブロック図及び／又はフローチャート図の各ブロック、及びブロック図及び／又はフローチャート図のブロック群の組み合わせは、特定の機能又は動作を実施するもしくは特殊用途ハードウェアとコンピュータ命令との組み合わせを実行する特殊用途ハードウェアベースのシステムによって実装可能なことにも留意されよう。
【００６０】
本発明の様々な実施の形態の記述は、例示の目的で提示されたもので、網羅的であること、又は開示された実施の形態に限定されることは意図されていない。当業者には、開示された実施の形態の範囲及び趣旨から逸脱することのない多くの修改及び変形が明白であろう。本明細書で用いる用語は、本実施の形態の原理、実際的な応用又は市場で見られる技術に対する技術改善を最善に説明するために、もしくは、他の当業者が、本明細書で開示された実施の形態を理解できるようにするために選択されたものである。
【図１】
2017111209.tif 000006
【図２】
2017111209.tif 000007
【図３】
2017111209.tif 000008
【図４】
2017111209.tif 000009
【図５】
2017111209.tif 000010
【図６】
2017111209.tif 000011
【図７】
2017111209.tif 000012
【外国語明細書】
2017111209000001.pdf
2017111209000002.pdf
2017111209000003.pdf
2017111209000004.pdf