(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-03-07
(54)【発明の名称】ディープラーニングを利用した屋内位置測位方法
(51)【国際特許分類】
G06T 7/70 20170101AFI20230228BHJP
G06V 10/82 20220101ALI20230228BHJP
H04N 23/60 20230101ALI20230228BHJP
H04N 23/698 20230101ALI20230228BHJP
【FI】
G06T7/70 A
G06V10/82
H04N5/232 290
H04N5/232 380
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021550081
(86)(22)【出願日】2021-02-22
(85)【翻訳文提出日】2021-08-26
(86)【国際出願番号】 KR2021002213
(87)【国際公開番号】W WO2022092451
(87)【国際公開日】2022-05-05
(31)【優先権主張番号】10-2020-0139152
(32)【優先日】2020-10-26
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2020-0139176
(32)【優先日】2020-10-26
(33)【優先権主張国・地域又は機関】KR
(81)【指定国・地域】
(71)【出願人】
【識別番号】519263110
【氏名又は名称】3アイ インコーポレイテッド
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】キム、ケン
(72)【発明者】
【氏名】チュン、チ ウク
(72)【発明者】
【氏名】フダイバーガノフ、ファルハド
【テーマコード(参考)】
5C122
5L096
【Fターム(参考)】
5C122DA13
5C122EA06
5C122EA68
5C122FA03
5C122FA04
5C122FA06
5C122FH04
5C122FH11
5C122GC14
5C122HA48
5C122HA88
5C122HB01
5C122HB05
5C122HB06
5L096AA09
5L096EA39
5L096FA02
5L096FA22
5L096FA69
5L096HA11
5L096JA03
5L096JA11
5L096KA04
(57)【要約】
本発明は、ディープラーニングを利用した屋内位置測位方法に関する技術である。屋内位置測位方法は、複数のパノラマ画像を含む3Dツアーを呼び出す段階、前記ユーザー端末に備えられたカメラで撮影した第1パースペクティブ画像を受信する段階、前記第1パースペクティブ画像と、前記3Dツアーに含まれている前記複数のパノラマ画像のそれぞれに対するグローバルフィーチャーを算出する段階、算出された前記グローバルフィーチャーを利用して、前記第1パースペクティブ画像と最も類似したパノラマ画像を選定する段階、前記選定されたパノラマ画像及び前記第1パースペクティブ画像に含まれている特徴点を利用して、前記3Dツアー上で、前記カメラの位置に対応する屋内位置を計算する段階、及び前記計算された屋内位置を前記ユーザー端末に提供する段階を含む。
【特許請求の範囲】
【請求項1】
ユーザー端末と連携して動作する3Dツアー提供サーバーで実行される屋内位置測位方法において、
複数のパノラマ画像を含む3Dツアーを呼び出す段階、
前記ユーザー端末に備えられたカメラで撮影した第1パースペクティブ画像を受信する段階、
前記第1パースペクティブ画像と、前記3Dツアーに含まれている前記複数のパノラマ画像のそれぞれに対するグローバルフィーチャーを算出する段階、
算出された前記グローバルフィーチャーを利用して、前記第1パースペクティブ画像と最も類似したパノラマ画像を選定する段階、
前記選定されたパノラマ画像及び前記第1パースペクティブ画像に含まれている特徴点を利用して、前記3Dツアー上で、前記カメラの位置に対応する屋内位置を計算する段階、及び
前記計算された屋内位置を前記ユーザー端末に提供する段階を含む、
屋内位置測位方法。
【請求項2】
前記グローバルフィーチャーを算出する段階は、
前記3Dツアーに含まれる特定のパノラマ画像を複数の第2パースペクティブ画像に変換する(a)段階と、
前記変換された第2パースペクティブ画像に対するそれぞれのグローバルフィーチャー及び前記パノラマ画像に対するグローバルフィーチャーを算出する(b)段階を含む、
請求項1に記載の屋内位置測位方法。
【請求項3】
前記(a)段階は、
特徴パノラマ画像を球面座標系(spherical coordinate)に投影させて複数個の区域に区分し、
前記区分された各区域に対応する画像を、2次元画像である前記第2パースペクティブ画像に変換するが、
前記複数の第2パースペクティブ画像は、相互間で一部オーバーラップされる領域を含む、
請求項2に記載の屋内位置測位方法。
【請求項4】
前記(b)段階は、
同じ場所を撮影した画像に対して同じグローバルフィーチャーが出力されるように事前に学習されたディープラーニングモジュールを利用して、前記グローバルフィーチャーを算出するが、
前記ディープラーニングモジュールは、
一つ以上のニューラルネットワークモジュールと、
前記ニューラルネットワークモジュールから出力された値の類似度を算出する類似度判断モジュールと、
算出された前記類似度に対して加重値を適用し、これをもとに結果値を出力する加重値モジュールと、
前記加重値モジュールで互いに異なる時点で出力された結果値の間の差分値を導出し、導出された前記差分値を、前記ニューラルネットワークモジュールにフィードバックとして提供するフィードバックモジュールを含む、
請求項2に記載の屋内位置測位方法。
【請求項5】
前記ニューラルネットワークモジュールは、
前記フィードバックモジュールから受信したフィードバック値をもとに、前記ニューラルネットワークモジュールに含まれているニューラルネットワークに適用される加重値を調節する、
請求項4に記載の屋内位置測位方法。
【請求項6】
前記類似度判断モジュールは、
前記パノラマ画像に対する第1グローバルフィーチャー、前記第2パースペクティブ画像に対する第2グローバルフィーチャー、比較群画像に対する第3グローバルフィーチャー、及び前記パノラマ画像に対する基準値に対応される第4グローバルフィーチャーを受信し、
前記第1グローバルフィーチャー乃至前記第4グローバルフィーチャー間の類似度を、コサイン距離(cosine distance)関数を利用して算出する
請求項4に記載の屋内位置測位方法。
【請求項7】
前記第1パースペクティブ画像と、前記複数のパノラマ画像に対する分類情報(class)、位置情報(position)、キャプション(caption)、及びセグメンテーション(segmentation)を導出する段階を含むが、
前記最も類似したパノラマ画像を算出する段階は、
導出された前記グローバルフィーチャー、前記分類情報、前記位置情報、前記キャプション、及び前記セグメンテーションをもとに、前記パノラマ画像と前記第1パースペクティブ画像との間の各パラメータに対する類似度を計算する(c1)段階と、
前記各パラメータに対する類似度をもとに順位を算出し、前記順位が最も高いパノラマ画像を選定する(d)段階を含む、
請求項1に記載の屋内位置測位方法。
【請求項8】
前記最も類似したパノラマ画像を算出する段階は、
前記パノラマ画像をもとに生成された第2パースペクティブ画像と、前記ユーザー端末から受信した第1パースペクティブ画像と間の類似度を計算し、あらかじめ定められた基準値以上に類似した前記第2パースペクティブ画像の画像数を各パノラマ画像別にカウントして、前記カウントされた数値をもとに、各パノラマ画像の加重値を決定する(c2)段階をさらに含む、
請求項7に記載の屋内位置測位方法。
【請求項9】
前記(d)段階は、
導出された前記グローバルフィーチャー、前記分類情報、前記位置情報、前記キャプション、及び前記セグメンテーションに対する前記パノラマ画像と前記第1パースペクティブ画像との間の類似度と、前記パノラマ画像に対する加重値を利用して、前記第1パースペクティブ画像と類似度が最も高いパノラマ画像を選定することを含む、
請求項8に記載の屋内位置測位方法。
【請求項10】
前記屋内位置を計算する段階は、
前記算出されたパノラマ画像に対するローカルフィーチャーを算出する段階と、
パースペクティブ画像に対するローカルフィーチャーを算出する段階と、
前記算出されたローカルフィーチャーをもとに3Dツアー上のカメラの位置に該当する屋内位置を計算する段階を含む、
請求項1に記載の屋内位置測位方法。
【請求項11】
ユーザー端末と連携して動作する3Dツアー提供サーバーで実行される屋内位置測位方法において、
複数のパノラマ画像を含む3Dツアーを呼び出す段階、
前記ユーザー端末に備えられたカメラで撮影したパースペクティブ画像を受信する段階、
前記複数のパノラマ画像と前記パースペクティブ画像に対するグローバルフィーチャーを算出する段階、
前記算出されたグローバルフィーチャーを利用して、前記パースペクティブ画像と最も類似したパノラマ画像を選定する段階、
前記選定されたパノラマ画像及び前記パースペクティブ画像に対するローカルフィーチャーを算出する段階、
前記算出されたローカルフィーチャーをもとに、3Dツアー上の前記カメラの位置に対応する屋内位置を計算する段階、及び
前記計算された屋内位置をユーザーに提供する段階を含む、
屋内位置測位方法。
【請求項12】
前記ローカルフィーチャーを算出する段階で、
前記パノラマ画像に対する第1パッチを生成する過程は、前記パースペクティブ画像に対する第2パッチを生成する過程と互いに異なる構成となる、
請求項11に記載の屋内位置測位方法。
【請求項13】
前記ローカルフィーチャーを算出する段階は、
前記パノラマ画像を互いに異なる大きさの複数の層に変換する(a)段階と、
変換された前記複数の層でキーポイント(KP)を抽出し、抽出された前記キーポイントに対応する第1パッチを生成する(b)段階と、
前記第1パッチに対する第1ローカルフィーチャーを導出する(c)段階を含む、
請求項11に記載の屋内位置測位方法。
【請求項14】
前記(a)段階で、
前記複数の層は、
前記パノラマ画像と同じ大きさの第1層と、
前記第1層をあらかじめ決められた割合で変換させた第2層と、
前記第2層を前記あらかじめ決められた割合で変換させた第3層を含む、
請求項13に記載の屋内位置測位方法。
【請求項15】
前記(b)段階は、
前記パノラマ画像の前記複数の層にそれぞれに対するキーポイントの位置情報を抽出する段階と、
前記パノラマ画像を球面座標系(spherical coordinate)に投影させ、前記位置情報に対応する領域のパッチを抽出する段階と、
前記抽出されたパッチを2次元画像である前記第1パッチに変換する段階を含む、
請求項13に記載の屋内位置測位方法。
【請求項16】
前記(c)段階で、
前記第1ローカルフィーチャーは、あらかじめ決められた大きさのベクトル値であり、
前記第1パッチに対する第1軸の座標、前記第1軸と交差する第2軸の座標、及びスケールを含む座標情報を出力することをさらに含む、
請求項14に記載の屋内位置測位方法。
【請求項17】
前記ローカルフィーチャーを算出する段階は、
前記パースペクティブ画像を互いに異なる大きさの複数の層に変換する(a)段階と、
変換された前記複数の層でキーポイント(KP)を抽出し、抽出された前記キーポイントに対応する第2パッチを生成する(b)段階と、
前記第2パッチに対する第2ローカルフィーチャーを導出する(c)段階を含む、
請求項11に記載の屋内位置測位方法。
【請求項18】
前記ローカルフィーチャーを算出する段階は、
同じ場所を撮影した画像に対して、同じローカルフィーチャーが出力されるように事前に学習されたディープラーニングモジュールを利用して、前記ローカルフィーチャーを算出するが、
前記ディープラーニングモジュールは、
一つ以上のニューラルネットワークモジュールと、前記ニューラルネットワークモジュールに加重値を適用し、これをもとに結果値を出力する加重値モジュールを含むディスクリプタ抽出器と、
前記ディスクリプタ抽出器から互いに異なる時点で出力された結果値の間の差分値を導出し、導出された前記差分値を前記ディスクリプタ抽出器にフィードバックとして提供するマルチパッチロス算出器を含む、
請求項11に記載の屋内位置測位方法。
【請求項19】
前記マルチパッチロス算出器は、
前記パノラマ画像に対する第1パッチの第1ローカルフィーチャーと、前記パースペクティブ画像に対する第2パッチの第2ローカルフィーチャーを受信し、
前記第1ローカルフィーチャー及び第2ローカルフィーチャー間の類似度を、コサイン距離(cosine distance)関数を利用して算出することを含む、
請求項18に記載の屋内位置測位方法。
【請求項20】
前記屋内位置を計算する段階は、
第1ローカルフィーチャー及び第2ローカルフィーチャーをもとに、前記パースペクティブ画像を提供したユーザーの屋内位置を算出するが、
前記第1ローカルフィーチャー及び第2ローカルフィーチャーの位置に基づいて、エピポーラ幾何(Epipolar Geometry)アルゴリズムを介した相対的な位置関係を判断したり、画像の接続のための変換行列を利用する方法を介して相対的な位置関係を判断することにより、前記屋内位置を算出することを含む、
請求項11に記載の屋内位置測位方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ディープラーニングを利用した屋内位置測位方法に関するものである。具体的に、本発明は、ユーザーが撮影した画像をもとに、3Dツアー内で屋内の位置測位をする方法に関するもので、屋内位置測位の正確度を向上させるために、ディープラーニング技術を利用する。
【背景技術】
【0002】
3D空間を記録するための最良の方法は、空間を全方位360度方面から撮影して、360度の画像形態で保存し、それぞれの位置に対する360度の画像を連結して3Dツアーの形態に作成する方法である。
【0003】
360度の画像を得るために、一般的に360度カメラを使用する。360度カメラは、一つ又は二つ以上の広角レンズを利用して周辺の背景情報を画像で生成することができる装置である。360度カメラは、水平及び上下360度を全方向撮影して、360度の写真や映像を作る。360度カメラで撮影された写真や映像は、サーバーとユーザー端末など、さまざまな場所に送受信することができる。
【0004】
また、「3Dツアー」は、複数の地点でそれぞれ360度で撮影して保存された画像(例えば、パノラマ画像)の組み合わせで構成することができる。このとき、「3Dツアー」は、それぞれの画像が撮影された位置情報を含むことができ、それぞれの位置情報は平面図上にマッピングされ、ユーザーに提供することができる。
【0005】
このように生成された3Dツアーは、仮想現実(Virtual Reality; VR)または拡張現実(Augmented Reality; AR)の形態でユーザーに提供することができる。このとき、3Dツアーは、ユーザーの動きに応じて一緒に移動するように同期化することができる。また、ユーザーの動きに応じた3Dツアーの屋内ナビゲーション機能を提供することが可能である。
【0006】
これらの屋内ナビゲーション機能を実装するためには、既存の3Dツアーとユーザーの現在位置に対するマッチング作業が優先されるべきだが、この過程で3Dツアーとユーザーが提供した画像の特徴点(feature)を抽出する作業が先行されるべきである。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の目的は、3Dツアーに含まれるパノラマ画像(panorama image)とユーザーが提供したパースペクティブ画像(perspective image)との間の正確かつ迅速なマッチングのために、ディープラーニングを介して抽出されたグローバルフィーチャー(Global feature)を利用して、屋内位置を測位する方法を提供するものである。
【0008】
また、本発明の目的は、複数のパラメータを用いたランキングシステム(Ranking System)をもとに、ユーザーが提供したパースペクティブ画像と最も類似度が高いパノラマ画像を選定することにより、屋内位置を測位する方法を提供するものである。
【0009】
本発明の目的は、以上で言及した目的に制限されず、言及されていない本発明の他の目的及び利点は、下記の説明によって理解することができ、本発明の実施例によってさらに明確に理解されるだろう。また、本発明の目的と利点は、特許請求の範囲に示した手段及びその組み合わせによって実現できることを容易に知ることができるだろう。
【課題を解決するための手段】
【0010】
前記の技術的課題を達成するための本発明の実施形態に係るディープラーニングを利用した屋内位置測位方法は、複数のパノラマ画像を含む3Dツアーを呼び出す段階、前記ユーザー端末に備えられたカメラで撮影した第1パースペクティブ画像を受信する段階、前記第1パースペクティブ画像と、前記3Dツアーに含まれている前記複数のパノラマ画像のそれぞれに対するグローバルフィーチャーを算出する段階、算出された前記グローバルフィーチャーを利用して、前記第1パースペクティブ画像と最も類似したパノラマ画像を選定する段階、前記選定されたパノラマ画像及び前記第1パースペクティブ画像に含まれている特徴点を利用して、前記3Dツアー上で、前記カメラの位置に対応する屋内位置を計算する段階、及び前記計算された屋内位置を前記ユーザー端末に提供する段階を含む。
【0011】
また、前記グローバルフィーチャーを算出する段階は、前記3Dツアーに含まれる特定のパノラマ画像を複数の第2パースペクティブ画像に変換する(a)段階と、前記変換された第2パースペクティブ画像に対するそれぞれのグローバルフィーチャー及び前記パノラマ画像に対するグローバルフィーチャーを算出する(b)段階を含むことができる。
【0012】
また、前記(a)段階は、前記特徴パノラマ画像を球面座標系(spherical coordinate)に投影させて複数個の区域に区分し、前記区分された各区域に対応する画像を、2次元画像である前記第2パースペクティブ画像に変換するが、前記複数の第2パースペクティブ画像は、相互間で一部オーバーラップされる領域を含むことができる。
【0013】
また、前記(b)段階は、同じ場所を撮影した画像に対して同じグローバルフィーチャーが出力されるように事前に学習されたディープラーニングモジュールを利用して、前記グローバルフィーチャーを算出するが、前記ディープラーニングモジュールは、一つ以上のニューラルネットワークモジュールと、前記ニューラルネットワークモジュールから出力された値の類似度を算出する類似度判断モジュールと、算出された前記類似度に対して加重値を適用し、これをもとに結果値を出力する加重値モジュールと、前記加重値モジュールで互いに異なる時点で出力された結果値の間の差分値を導出し、導出された前記差分値を、前記ニューラルネットワークモジュールにフィードバックとして提供するフィードバックモジュールを含むことができる。
【0014】
また、前記ニューラルネットワークモジュールは、前記フィードバックモジュールから受信したフィードバック値をもとに、前記ニューラルネットワークモジュールに含まれているニューラルネットワークに適用される加重値を調節することができる。
【0015】
また、前記類似度判断モジュールは、前記パノラマ画像に対する第1グローバルフィーチャー、前記第2パースペクティブ画像に対する第2グローバルフィーチャー、比較群画像に対する第3グローバルフィーチャー、及び前記パノラマ画像に対する基準値に対応される第4グローバルフィーチャーを受信し、前記第1乃至第4グローバルフィーチャー間の類似度を、コサイン距離(cosine distance)関数を利用して算出することができる。
【0016】
また、前記第1パースペクティブ画像と、前記複数のパノラマ画像に対する分類情報(class)、位置情報(position)、キャプション(caption)、及びセグメンテーション(segmentation)を導出する段階を含むが、前記最も類似したパノラマ画像を算出する段階は、導出された前記グローバルフィーチャー、前記分類情報、前記位置情報、前記キャプション、及び前記セグメンテーションをもとに、前記パノラマ画像と前記第1パースペクティブ画像との間の各パラメータに対する類似度を計算する(c1)段階と、前記各パラメータに対する類似度をもとに順位を算出し、前記順位が最も高いパノラマ画像を選定する(d)段階を含むことができる。
【0017】
また、前記最も類似したパノラマ画像を算出する段階は、前記パノラマ画像をもとに生成された第2パースペクティブ画像と、前記ユーザー端末から受信した第1パースペクティブ画像と間の類似度を計算し、あらかじめ定められた基準値以上に類似した前記第2パースペクティブ画像の画像数を各パノラマ画像別にカウントして、前記カウントされた数値をもとに、各パノラマ画像の加重値を決定する(c2)段階をさらに含むことができる。
【0018】
また、前記(d)段階は、導出された前記グローバルフィーチャー、前記分類情報、前記位置情報、前記キャプション、及び前記セグメンテーションに対する前記パノラマ画像と前記第1パースペクティブ画像との間の類似度と、前記パノラマ画像に対する加重値を利用して、前記第1パースペクティブ画像と類似度が最も高いパノラマ画像を選定することを含むことができる。
【0019】
また、前記屋内位置を計算する段階は、前記算出されたパノラマ画像に対するローカルフィーチャーを算出する段階と、前記パースペクティブ画像に対するローカルフィーチャーを算出する段階と、前記算出されたローカルフィーチャーをもとに3Dツアー上のカメラの位置に該当する屋内位置を計算する段階を含むことができる。
【発明の効果】
【0020】
本発明に係るディープラーニングを利用した屋内位置測位方法は、3Dツアーに含まれている複数のパノラマ画像のうち、ユーザーが提供したパースペクティブ画像と最もマッチング率が高いパノラマ画像を迅速に抽出し、抽出されたパノラマ画像とパースペクティブ画像との間の位置関係を把握して、ユーザー端末の位置を正確に算出することにより、ユーザーが位置する屋内位置測位に対する正確度とマッチング速度を向上させることができる。
【0021】
本発明の効果は、前述した効果に限定されず、本発明の当業者は、本発明の構成から本発明の様々な効果を簡単に導出することができる。
【図面の簡単な説明】
【0022】
【
図1】本発明の実施形態に係る3Dツアー提供システムを示す概略図である。
【
図2】
図1の3Dツアー提供システムで行われる屋内位置測位方法を説明するための流れ図である。
【
図3】
図2のS130段階及びS140段階を行うハイブリッド画像検索モジュールを説明するためのブロック図である。
【
図4】
図3の変換モジュールに対するそれぞれの動作を説明するためのブロック図である。
【
図5】
図3の変換モジュールに対するそれぞれの動作を説明するためのブロック図である。
【
図6】
図3の変換モジュールに対するそれぞれの動作を説明するためのブロック図である。
【
図7】
図3の変換モジュールに対するそれぞれの動作を説明するためのブロック図である。
【
図8】
図3の変換モジュールに対するそれぞれの動作を説明するためのブロック図である。
【
図9】
図2のS150段階及びS160段階を行うローカルフィーチャー抽出モジュールを説明するためのブロック図である。
【
図10】
図2のS150段階及びS160段階を行うローカルフィーチャー抽出モジュールを説明するためのブロック図である。
【
図11】本発明の屋内位置測位方法の例示を説明するための図面である。
【
図12】本発明の実施形態に係る3Dツアー提供サーバーの構成を概略的に説明するための図面である。
【
図13】本発明の実施形態に係る屋内位置測位方法のためにニューラルネットワークのフィーチャーを利用する概念を説明するための図面である。
【
図14】本発明の実施形態に係るニューラルネットワークフィーチャーを利用する場合の利点を説明するための図面である。
【
図15】本発明の実施形態に係るニューラルネットワークフィーチャーを利用する場合の利点を説明するための図面である。
【
図16】本発明の実施形態に係るニューラルネットワークフィーチャーに対応するフィーチャー位置を説明するための図面である。
【
図17】本発明の実施形態に係る屋内位置測位方法で画像をマッピングするための方法を説明するための流れ図である。
【発明を実施するための形態】
【0023】
本発明の利点及び特徴、そしてそれらを達成する方法は、添付される図面と共に詳細に後述されている実施例を参照すると明確になるだろう。しかし、本発明は、以下で開示される実施例に限定されるものではなく、互いに異なる多様な形態で実装されるものであり、単に本実施例は、本発明の開示が完全になるようにし、本発明が属する技術分野で通常の知識を持つ者に発明の範疇を完全に知らせるために提供されるものであり、本発明は、請求項の範疇によって定義されるだけである。明細書全体にわたって同一参照符号は同一構成要素を指す。
【0024】
本明細書で使用される用語は、実施例を説明するためのものであり、本発明を制限するものではない。本明細書において、単数形は、文言で特に言及しない限り、複数形も含む。明細書で使用される「含む(comprises)」および/または「含んでいる(comprising)」は、言及された構成要素、段階、動作、および/または素子は、一つ以上の他の構成要素、段階、動作、および/または素子の存在または追加を排除しない。
【0025】
他の定義がない場合、本明細書で使用されるすべての用語(技術及び科学的用語を含む)は、本発明が属する技術分野における通常の知識を有する者に共通に理解される意味で使用することができるだろう。また、一般的に使用される辞書に定義されている用語は、明白に特別に定義されていない限り、理想的にまたは過度に解釈されることはない。
【0026】
本発明において「3Dツアー」は、複数の地点でそれぞれ360度で撮影して保存された画像(例えば、パノラマ画像)の組み合わせで構成することができる。このとき、「3Dツアー」は、複数の画像が撮影されたそれぞれの位置情報及び方向情報を含むことができる。
【0027】
ここで、それぞれの位置情報は、平面図上にマッピングされ、ユーザーに提供することができる。また、3Dツアーの撮影時、360度カメラを移動しながら導出された位置情報及び方向情報は、ユーザーの移動経路を算出するのに利用され、導出された移動経路は、ユーザー端末上に表示されることがある。
【0028】
また、本発明において、ディープラーニング(Deep Learning)は、物やデータをクラスタリングしたり分類したりするのに使われる技術である。すなわち、ディープラーニングは、大量のデータをコンピュータに入力して、似たようなもの同士に分類する技術である。このとき、データをどのように分類するかをめぐり、すでに多くの機械学習アルゴリズムが登場した。ディープラーニングは、人工ニューラルネットワークの限界を克服するために提案された機械学習方法である。
【0029】
より詳細に説明すると、マシンラーニング(Machine Learning)の一種であるディープラーニング(Deep Learning)技術は、データに基づいて多段階で深いレベルまで学習するものである。
【0030】
ディープラーニング(Deep learning)は、段階を上げるほど複数のデータから核心的なデータを抽出するマシンラーニング(Machine Learning)アルゴリズムの集合を示すことができる。
【0031】
ディープラーニング構造は、人工ニューラルネットワーク(ANN)を含むことができ、例えば、ディップランニングの人工ニューラルネットワーク構造は、CNN(Convolutional Neural Network;コンボリューショナルニューラルネットワーク)、RNN(Recurrent Neural Network;リカレントニューラルネットワーク)、DBN(Deep Belief Network;ディープビリーフネットワーク)などのディープニューラルネットワーク(DNN)で構成することができる。ただし、本発明がこれに限定されるものではなく、様々なディープラーニングの人工ニューラルネットワーク構造を本発明に採用することができるのは、通常の技術者にとって自明である。
【0032】
以下では、図面を参照して、本発明の実施形態に係るディープラーニングを利用した屋内位置測位方法について詳細に説明する。
【0033】
図1は、本発明のいくつかの実施形態に係る3Dツアー提供システムを示す概略図である。ここで、3Dツアー提供システムは、本発明のいくつかの実施形態に係る屋内位置測位方法を実施する実行主体であることを前提に説明する。
【0034】
図1を参照すると、本発明の実施形態に係る3Dツアー提供システムは、3Dツアー提供サーバー(1100)、ユーザー端末(1200)、及び360度カメラ(1300)を含む。
【0035】
3Dツアー提供サーバー(1100)とユーザー端末(1200)は、クライアンドサーバーシステムに実装することができる。 3Dツアー提供サーバー(1100)は、有線または無線ネットワークを介してユーザー端末(1200)とデータを送受信することができる。
【0036】
このとき、3Dツアー提供サーバー(1100)は、ユーザーが選択した3Dツアーの特定地点に対応するパノラマ画像を選択して、ユーザー端末(1200)に提供することができる。選定されたパノラマ画像は、3D形式に変換され、ユーザー端末(1200)の画面に表示することができる。また、3Dツアー提供サーバー(1100)は、ユーザーが提供した特定の画像に対応する地点の位置情報を算出して、ユーザー端末(1200)に提供し、ユーザー端末(1200)に表示される3Dツアー上に表示することができる。
【0037】
360度カメラ(1300)は、特定地点に対する360度の画像(例えば、パノラマ画像)を生成して、3Dツアー提供サーバー(1100)に伝送することができる。 3Dツアー提供サーバー(1100)は、360度カメラ(1300)から受信した複数の360度の画像をもとに3Dツアーを生成して、ユーザー端末(1200)に提供することができる。
【0038】
このとき、360度カメラ(1300)は、ユーザー端末(1200)を介して3Dツアー提供サーバー(1100)とデータを送受信することができる。また、他の実施例では、360度カメラ(1300)は、ネットワークを介して3Dツアー提供サーバー(1100)と直接的にデータを送受信することができる。
【0039】
図面上には1つのユーザー端末(1200)及び360度カメラ(1300)だけを図示したが、本発明がこれに限定されるものではなく、3Dツアー提供サーバー(1100)は、複数のユーザー端末(1200)及び360度カメラ(1300 )に連動して動作することができる。
【0040】
3Dツアー提供サーバー(1100)は、複数の3Dツアーを保存及び管理することができる。また、3Dツアー提供サーバー(1100)は、ユーザー端末(1200)に備えられたカメラで撮影した画像をもとに、ユーザーの正確な位置を計算して、ユーザー端末(1200)に提供することができる。このとき、3Dツアー提供サーバー(1100)は、ユーザー端末(1200)のGPSを介して受信した位置情報を利用せず、ユーザー端末(1200)から受信した撮影画像(以下、パースペクティブ画像(perspective image))のフィーチャー(feature;例えば、グローバルフィーチャーまたはローカルフィーチャー)と、3Dツアーに含まれている複数のパノラマ画像のフィーチャー(feature;例えば、グローバルフィーチャーまたはローカルフィーチャー)を比較することにより、ユーザー端末(1200)の正確な位置を計算することができる。
【0041】
また、3Dツアー提供サーバー(1100)は、3Dツアーに含まれているパノラマ画像と、ユーザー端末(1200)が提供したパースペクティブ画像との間の正確かつ迅速なマッチングのためにディープラーニング技術を利用することができる。
【0042】
すなわち、3Dツアー提供サーバー(1100)は、GPS情報を利用せずに、3Dツアーとユーザーから受信した撮影画像を利用して、屋内でも正確なユーザーの位置を推定するローカライゼーション(localization)の動作を実行することができる。このとき、3Dツアー提供サーバー(1100)は、ローカライゼーション動作の正確度と速度を上げるために、ディープラーニングを利用して、グローバルフィーチャー(Global feature)とローカルフィーチャー(Local feature)を抽出する前処理過程を行う。これらの前処理過程に対する詳細な内容は、以下で記述するようにする。
【0043】
まず、以下では本発明の実施形態に係る3D比較ツアーシステム(1100)で実行される屋内位置測位方法の全体ロジックについて概略的に説明する。
【0044】
図2は、
図1の3Dツアー提供システムで実行される屋内位置測位方法を説明するための流れ図である。以下では、説明の便宜のために3Dツアー提供サーバー(1100)を実行主体にして説明する。
【0045】
図2を参照すると、3Dツアー提供サーバー(1100)(以下、サーバー)は、3Dツアーを呼び出す(S110)。それぞれの3Dツアーには固有のツアーID(tour ID)が付与され、ユーザー端末(1200)を介して選択された3Dツアーに該当するツアーIDを受信する場合、サーバー(1100)は、データベースに既に保存されている3Dツアーを呼び出す。
【0046】
続いて、サーバー(1100)は、ユーザーが特定地点で撮影した画像(以下、パースペクティブ画像(perspective image))をユーザー端末(1200)から受信する(S120)。ここで、パースペクティブ画像は、ユーザー端末(1200)に備えられたカメラで撮影した2D画像(または、一つのカメラレンズで撮影された断片的画像)を意味する。
【0047】
続いて、サーバー(1100)は、受信したツアーIDに該当する3Dツアーに含まれている複数のパノラマ画像(panorama image)に対するそれぞれのグローバルフィーチャー(Global feature)を算出する(S130)。また、サーバー(1100)は、ユーザーが提供したパースペクティブ画像に対するグローバルフィーチャーを算出する。
【0048】
このとき、サーバー(1100)は、事前に学習されたディープラーニングモジュールを利用して、それぞれのパノラマ画像に対するグローバルフィーチャーを算出する。ここで、グローバルフィーチャーはベクトル形式を有し、ディープラーニングモジュールは、一つの画像に対する一つのグローバルフィーチャーを出力する。
【0049】
ここで、ディープラーニングモジュールは、同じ場所に対するパノラマ画像とパースペクティブ画像に対し、同じグローバルフィーチャー(Unified Global Feature)を出力するようにトレーニングすることができる。
【0050】
続いて、サーバー(1100)は、算出されたパノラマ画像のグローバルフィーチャーとパースペクティブ画像のグローバルフィーチャーの類似度を計算し、パースペクティブ画像に最も近いグローバルフィーチャーを持つパノラマ画像を選定する(S140)。すなわち、ユーザーが提供したパースペクティブ画像と最も類似して関連性の高いパノラマ画像を選定する。
【0051】
そのため、サーバー(1100)は、ハイブリッド画像検索モジュール(hybrid image retrieval module)を利用することができる。具体的には、ハイブリッド画像検索モジュールは、ベクトル形式の各グローバルフィーチャーとの演算(例えば、コサイン距離(cosine distance))を介して、各画像間の類似度を計算することができる。このとき、サーバー(1100)は、グローバルフィーチャーだけではなく、各画像に対するオブジェクト(object)、画像キャプション(image caption)、セグメンテーション(segmentation)に関するデータに対する類似度も追加で計算することができる。
【0052】
続いて、ハイブリッド画像検索モジュールは、算出された各画像間の類似度をもとに、ヒストグラム(histogram)を利用して、各パノラマ画像に対する加重値を計算することができる。このとき、ハイブリッド画像検索モジュールは、特定のパノラマ画像から生成されたパースペクティブ画像と、ユーザーから受信したパースペクティブ画像間の類似画像の数をカウントすることができる。これをもとに、ハイブリッド画像検索モジュールは、類似画像の数が多いパノラマ画像に高い加重値を付与することができる。
【0053】
続いて、ハイブリッド画像検索モジュールは、各パラメータに対する類似度と加重値をもとに、それぞれのパノラマ画像のランキングを算出し、これをもとに、ユーザーが提供したパースペクティブ画像と最も類似したパノラマ画像を選別することができる。ハイブリッド画像検索モジュールに対する構造および動作方法は、以下で詳細に説明する。
【0054】
続いて、サーバー(1100)は、選定されたパノラマ画像に対するローカルフィーチャー(Local feature)を算出する(S150)。
【0055】
このとき、ローカルフィーチャーは、画像から抽出されたそれぞれのキーポイント(Keypoint:KP)を中心に導出されたパッチ(Patch)に対するベクトル値及び位置情報(例えば、x座標、y座標、及びスケールを含む場所情報)を含み、一つの画像から複数のローカルフィーチャーを抽出することができる。このとき、ローカルフィーチャーに対するベクトル値は、事前に学習されたディープラーニングモジュールによって導出されるが、ディープラーニングモジュールは、同じキーポイント(KP)に対して同じローカルフィーチャー(Unified Local Feature)が出力するようにトレーニングすることができる。
【0056】
同様に、サーバー(1100)は、ユーザーから受信したパースペクティブ画像に対するローカルフィーチャーを算出する(S160)。このとき、サーバー(1100)は、同一の事前に学習されたディープラーニングモジュールを利用して、ローカルフィーチャーを算出する。
【0057】
続いて、サーバー(1100)は、算出されたローカルフィーチャーを利用して、ユーザーのパースペクティブ画像を撮影したカメラの位置に対応する屋内位置を計算する(S170)。
【0058】
続いて、サーバー(1100)は、計算された屋内位置をユーザー端末(1200)に提供する(S180)。
【0059】
これにより、サーバー(1100)は、ユーザーが提供したパースペクティブ画像に対する正確な位置をディープラーニングモジュールを利用して導出することができる。また、GPS情報を利用せずに、画像間の比較を介してユーザーの正確な位置を導出することができるので、屋内でもユーザーの正確な位置に対する情報提供が可能である。また、事前に学習されたディープラーニングを利用して導出されたグローバルフィーチャーおよび/またはローカルフィーチャーを利用することにより、従来の方法よりも迅速かつ正確にユーザーの屋内位置を導出して、これに対応する3Dツアーの情報をユーザー端末(1200)に提供することができる。
【0060】
さらに、本発明の他の実施例において、本発明の前述したグローバルフィーチャーを算出する方法及びローカルフィーチャーを算出する方法のいずれかは、ハンドクラフトフィーチャーポイントを利用する方法、又は既に公開された従来のフィーチャー抽出方法が代替されて利用されることがある。
【0061】
以下では、前述したS130段階及びS140段階を実行するハイブリッド画像検索モジュールについて、具体的に調べてみる。
【0062】
図3は、
図2のS130段階及びS140段階を実行するハイブリッド画像検索モジュールを説明するためのブロック図である。
図4乃至
図8は、
図3の変換モジュールに対するそれぞれの動作を説明するためのブロック図である。
【0063】
図3を参照すると、本発明の実施形態に係るハイブリッド画像検索モジュールは、パノラマフィルタモジュール(110)(Panorama filter module)、データベース(120)(Database)、変換モジュール(200)(transformation module)、ヒストグラムモジュール(310)(histogram module)、ランキングモジュール(320)(ranking module)を含む。
【0064】
まず、パノラマフィルタモジュール(110)は、一つのパノラマ画像を複数のパースペクティブ画像に変換する。ここで、パノラマ画像は、一つの地点を基準に360度を全方位で撮影して一つの画像に合成した3D画像を意味し、複数のレンズを利用して撮影された画像を併合して生成することができる。サーバー(1100)は、パノラマ画像を利用して、仮想の3D空間を実現することができる。一方、パースペクティブ画像は一つのレンズで撮影した2D画像に該当する。
【0065】
したがって、パノラマフィルタモジュール(110)は、パノラマ画像を球面座標系(spherical coordinate)に投影させた後、これを複数個の区域に区分することができる。例えば、パノラマフィルタモジュール(110)は、一つのパノラマ画像を球面座標系に投影させた後、18個の区域に区分することができる。
【0066】
続いて、パノラマフィルタモジュール(110)は、区分された各区域に対応するパノラマ画像(すなわち、3D画像)の一部をパースペクティブ画像(すなわち、2D画像)の形態に変換する。例えば、一つのパノラマ画像が18個の区域に区分された場合、パノラマフィルタモジュール(110)は、区分された各区域を18個のパースペクティブ画像に生成することができる。このとき、それぞれのパースペクティブ画像は、相互間で一部のオーバーラップされる領域を含むことができる。
【0067】
変換モジュール(200)は、グローバルディスクリプタモジュール(210)(Global descriptor module;以下、第1モジュール)、屋内オブジェクト検出モジュール(220)(Indoor Object Detection module;以下、第2モジュール)、画像キャプション生成モジュール(230)(Image Caption generation module;以下、第3モジュール)、セグメンテーションモジュール(240)(Segmentation module;以下、第4モジュール)を含む。
【0068】
まず、
図4を参照すると、第1モジュール(210)は、入力された画像に対するグローバルフィーチャーをベクトルの形態で出力する。例えば、第1モジュール(210)から出力されるグローバルフィーチャーは、{1 X 2048}のベクトル形式を持つことができ、128 bitになることができる。
【0069】
このとき、第1モジュール(210)は、ニューラルネットワークを含むディープラーニングモジュールを含むことができ、同じ場所を撮影した画像に対して同じグローバルフィーチャーが出力されるように学習することができる。たとえば、サーバー(1100)が同じ場所に対するパノラマ画像とパースペクティブ画像を第1モジュール(210)に入力した場合、第1モジュール(210)は、同一又は類似度が高いグローバルフィーチャーを出力することができる。
【0070】
具体的には、
図5を参照すると、第1モジュール(210)は、互いに異なる画像が入力される複数のニューラルネットワークモジュール(211)、各ニューラルネットワークモジュールから出力された値の類似度を算出する類似度判断モジュール(213) (distance calculator)、算出された各類似度に対する加重値を調節する加重値モジュール(215)(weight calculator)、及び結果値の誤差に対するフィードバックを提供するフィードバックモジュール(217)(feedback module)を含む。
【0071】
第1モジュール(210)は、基本的に三重項損失(triplet loss)の機械学習アルゴリズムを利用する。したがって、ニューラルネットワークモジュール(211)には、互いに異なる3つのニューラルネットワークサブモジュール(211a、211b、211c)が含まれており、それぞれのサブモジュール(211a、211b、211c)には、互いに異なる画像が入力される。
【0072】
例えば、第1サブモジュール(211a)には、パノラマ画像(I1)が入力され、第2サブモジュール(211b)には、パノラマ画像(I1)と同じ対象を含むパースペクティブ画像(I2)が入力され、第3サブモジュール(211c)には、I1、I2と非類似の比較群画像(I3)(Negative Image)が入力される。
【0073】
このとき、それぞれのサブモジュール(211a、211b、211c)の間にはニューラルネットワークの加重値が共有されることがある。
【0074】
それぞれのサブモジュール(211a、211b、211c)から出力された出力値(Av、Pv、Nv)は、ベクトル値を持つことができ、それぞれのベクトル値は、前述したグローバルフィーチャーと同じ形式をとることができる。
【0075】
続いて、それぞれのサブモジュール(211a、211b、211c)から出力された出力値(Av、Pv、Nv)は、類似度判断モジュール(213)に入力される。また、類似度判断モジュール(213)には、入力されたパノラマ画像(I1)に対する基準値(Ground Truth; GT)が入力される。
【0076】
類似度判断モジュール(213)は、入力された出力値(Av、Pv、Nv)及び基準値(GT)を利用して、各値の間の類似度を計算する。例えば、類似度判断モジュール(213)は、コサイン距離(Cosine distance)関数を利用して、入力された値の類似度を算出することができる。
【0077】
このとき、類似度判断モジュール(213)は、パノラマ画像に対する第1結果値(Av)とパースペクティブ画像に対する第2結果値(Pv)との間の第1類似度、第1結果値(Av)と比較群画像に対する第3結果値(Nv)との間の第2類似度、第2結果値(Pv)と第3結果値(Nv)との間の第3類似度、第1結果値(Av)と基準値(GT)との間の第4類似度、第2結果値(Pv)と基準値(GT)との間の第5類似度を導出して、加重値モジュール(215)に伝達することができる。また、図面に図示されてはいないが、類似度判断モジュール(213)は、第3結果値(Nv)と基準値(GT)との間の第6類似度を追加的に導出し、加重値モジュール(215)に伝達することができる。
【0078】
続いて、加重値モジュール(215)は、受信した類似度にあらかじめ設定された加重値を適用して、第1時点の結果値(T(t))を出力することができる。例えば、加重値モジュール(215)は、第1乃至第3類似度には0.6の加重値を適用し、第4及び第5類似度には0.4の加重値を適用することにより、第1時点の結果値(T(t))を導出することができる。
【0079】
続いて、加重値モジュール(215)で出力された結果値(T(t))は、フィードバックモジュール(217)に提供することができ、フィードバックモジュール(217)は、加重値モジュール(215)から第1時点に受信した第1結果値(T(t))と第2時点に受信した第2結果値(T(t-1))との間の差分値を導出し、導出された値をフィードバック値としてニューラルネットワークモジュール(211)に提供することができる。
【0080】
ニューラルネットワークモジュール(211)は、受信したフィードバック値を利用して各ニューラルネットワークサブモジュール(211a、211b、211c)に対する加重値を調整することができる。
【0081】
また、前述した第1モジュール(210)は、学習モードと実行モードに分けて動作することができる。
【0082】
学習モードにおいて、第1モジュール(210)はあらかじめ設定された学習データセットを介して、各画像の類似度判断の正確性を高めるように学習することができる。第1モジュール(210)は、データセットを利用した十分な学習を介して、同じ対象を含むパノラマ画像とパースペクティブ画像に対して同一または類似度が高いグローバルフィーチャーを出力することができる。
【0083】
実行モードにおいて、第1モジュール(210)は、一つの画像だけを入力することができ、これにより、第1モジュール(210)は、学習されたニューラルネットワークを利用して入力された画像に対するグローバルフィーチャーを出力することができる。
【0084】
再び
図3を参照すると、データセットによって学習されたディープラーニングモジュールを含む第1モジュール(210)は、パノラマ画像及びパノラマ画像で導出されたパースペクティブ画像がそれぞれ入力され、入力されたそれぞれの画像に対するグローバルフィーチャー(GF Vector)を出力することができる。出力されたグローバルフィーチャーはベクトル値を持ち、データベース(120)に各画像のID別に保存することができる。
【0085】
一方、
図3を参照すると、第2モジュール(220)は、画像に含まれている物体(object)を検出し、検出された物体がどのような物体であるかを分類(classification)して、その物体がどこに位置するかをバウンディングボックス(bounding box)を利用して位置情報(position information)を出力することができる。
【0086】
このとき、第2モジュール(220)は、事前に学習されたディープラーニングモジュールを利用して、画像に含まれている物体を検出し、検出された物体を分類し、検出された物体の位置情報を抽出することができる。
【0087】
例えば、
図6を参照すると、画像に猫一匹が含まれている場合、第2モジュール(220)は、その猫が含まれるバウンディングボックスを設定し、そのバウンディングボックスに含まれている物体が猫と判断して分類し、分類情報(class)とバウンディングボックスの位置情報(position)を出力することができる。これらの動作は、複数の物体が含まれている場合でも同じく動作し、第2モジュール(220)は、複数の物体それぞれに対する分類情報(class)と位置情報(position)を出力することができる。出力された情報は、データベース(120)に伝達され、対応する画像のIDに帰属され、保存することができる。
【0088】
再び
図3を参照すると、第3モジュール(230)は、画像に含まれている物体に対する説明をテキスト(text)の形態で出力する。同様に、第3モジュール(230)も事前に学習されたディープラーニングモジュールを利用して、画像に含まれている物体を検出し、当該物体に対応するテキストをキャプション(caption)に出力することができる。このとき、キャプション(caption)は、単語またはその単語を含む文章で構成することができる。
【0089】
例えば、
図6を参照すると、画像に猫、犬、アヒルが含まれている場合、第3モジュール(230)は、各物体を検出し、これに対する説明を単語の形態で出力することができる。
図7を参照すると、第3モジュール(230)は、画像に対する物体と各物体に対する動作の形態を検出し、これに対する説明を文章の形態で出力することができる。第3モジュール(230)から出力された情報は、データベース(120)に伝達され、対応する画像のIDに帰属され、保存することができる。
【0090】
再び
図3を参照すると、第4モジュール(240)は、画像の領域を分割するセグメンテーション(segmentation)の動作を実行し、各分割された領域をアルゴリズムを利用して再び合わせるオブジェクトセグメンテーション(object segmentation)の動作を実行することができる。続いて、第4モジュール(240)は、同じ分類(class)の物体(object)を同じ領域に分割する。このとき、第4モジュール(240)は、同じクラスの物体を同じ領域に区分したり、互いに異なる色で区別して互いに異なる領域に区分したりした後、境界を表示するバウンダリセグメンテーション(boundary segmentation)又はセマンティックインスタンスセグメンテーション(semantic instance segmentation)の動作を実行することができる。
【0091】
例えば、
図6を参照すると、第4モジュール(240)は、インスタンスセグメンテーション(instance segmentation)を介して各動物の境界線を区分し、これに対する領域を分離して出力することができる。第4モジュール(240)から出力された情報は、データベース(120)に伝達され、対応する画像のIDに帰属され、保存することができる。
【0092】
このとき、第2モジュール(220)、第3モジュール(230)、第4モジュール(240)は、具体的な動作方法で、従来の公開されたアルゴリズムを利用し、そのアルゴリズムに対する情報はすでに公開されているので、ここでは詳細な説明は省略する。
【0093】
続いて、ヒストグラムモジュール(310)は、パノラマ画像をもとに生成されたそれぞれのパースペクティブ画像とユーザーから受信した画像(すなわち、パースペクティブ画像)との間の類似度を計算し、各パノラマ画像に対してあらかじめ定められた基準値以上に類似したパースペクティブ画像の数をカウントする。
【0094】
例えば、
図8を参照すると、ヒストグラムモジュール(310)は、第1乃至第4のパノラマ画像(Pa1、Pa2 Pa3、Pa4)から生成されたパースペクティブ画像とユーザーから受信した画像に類似した画像の数をカウントして、グラフで表示することができる。
【0095】
ヒストグラムモジュール(310)は、それぞれのパノラマ画像のID別に類似したパースペクティブ画像の数字を出力することができ、算出された結果をもとに算定された各パノラマ画像の加重値は、ランキングモジュール(320)に伝達することができる。
【0096】
追加的に、ヒストグラムモジュール(310)で、各画像間の類似度を判断する方法は、多様に前述したパラメータの一部を利用したり、従来の画像類似度を判断したりする様々な方法を利用することができる。
【0097】
続いて、ランキングモジュール(320)は、データベース(120)に保存された各パノラマ画像に対するグローバルフィーチャー(GF Vector)、分類情報(class)、位置情報(position)、キャプション(caption)、セグメンテーション(Segmentation)を参照して、ユーザーから受信した画像との類似度を計算することができる。
【0098】
このとき、ランキングモジュール(320)は、ヒストグラムモジュール(310)から受信した各パノラマ画像に対する加重値も一緒に考慮して類似度を計算することができる。
【0099】
ランキングモジュール(320)は、パノラマ画像から導出された各パラメータに対する類似度と、ヒストグラムモジュール(310)から受信した加重値を利用して類似度を算出し、これをもとに、ユーザーが提供した画像と類似度が最も高いパノラマ画像を選定することができる。
【0100】
これにより、ランキングモジュール(320)は、選定されたパノラマ画像に対応するIDを出力することができる。
【0101】
続いて、本発明の屋内位置測位方法は、ランキングモジュール(320)から出力されたIDに対応するパノラマ画像と、ユーザーが提供したパースペクティブ画像との相対的な位置関係を計算するために、各画像のローカルフィーチャーを抽出して利用する。このとき、本発明のサーバー(1100)は、ディープラーニング技術を利用して、ローカルフィーチャーを抽出することができる。
【0102】
追加的に、本発明の他の実施形態に係るハイブリッド画像検索モジュールにおいて、ヒストグラムモジュール(310)またはランキングモジュール(320)は省略されて実施されることがある。
【0103】
以下では、選定されたパノラマ画像とユーザーが提供した画像からローカルフィーチャーを抽出するローカルフィーチャー抽出モジュール(Local feature Extraction Module)について詳細に説明する。
【0104】
図9は、
図2のS150段階及びS160段階を実行するモジュールを説明するためのブロック図である。
【0105】
図9を参照すると、本発明の実施形態に係るローカルフィーチャー抽出モジュール(Local Feature Extraction Module)は、キーポイント推定器(410)(Keypoint Estimator)、プロジェクション変換器(420)(Projection Transformator)、ディスクリプタ抽出器(430)(Descripter Extractor)、マルチパッチロス算出器(440)(Multi Patch loss Calculator)を含む。
【0106】
具体的に、キーポイント推定器(410)は、画像に含まれているキーポイント(KP;以下特徴点)を抽出する。このとき、キーポイント推定器(410)は、互いに異なるレベルの画像からそれぞれ特徴点(KP)を抽出して利用することができる。
【0107】
たとえば、キーポイント推定器(410)は、互いに異なる大きさに変換させた3つの層から特徴点(KP)を抽出することができ、第2層は、第1層の1/4の大きさであり、第3層は、第2層の1/4の大きさに設定することができる。また、それぞれの層では、互いに異なる数字の特徴点(KP)を抽出することができる。
【0108】
続いて、キーポイント推定器(410)は、抽出された各特徴点(KP)に対し、各特徴点(KP)を基準に、あらかじめ決められた大きさのパッチ(Patch)を生成することができる。たとえば、パッチ(Patch)は特徴点(KP)を中心に、32X32ピクセルで構成された画像であることができ、前述した各層別に(例えば、それぞれの第1乃至第3層)形成することができる。
【0109】
キーポイント推定器(410)で生成された各特徴点(KP)に対するパッチ(Patch)は、ディスクリプタ抽出器(430)に伝達することができる。また、抽出された各特徴点(KP)に対する位置情報(position)は、プロジェクション変換器(420)に伝達することができる。
【0110】
プロジェクション変換器(420)は、受信した特徴点(KP)に対する位置情報をもとに入力されたパノラマ画像に対するパッチを形成することができる。ただし、パノラマ画像の場合、球面座標系(spherical coordinate)で構成されるので、プロジェクション変換器(420)は、受信した特徴点(KP)に対応する領域を設定したあと、座標系変換を介してパースペクティブ画像に対応する形態でパッチ(Patch)を変換する。
【0111】
すなわち、プロジェクション変換器(420)は、特徴点(KP)に対応する位置の領域をパノラマ画像上で特定して、特定された領域をパースペクティブ画像と比較可能な形態に変換することにより、パッチ(Patch)を生成する。
【0112】
同様に、プロジェクション変換器(420)で生成された各特徴点(KP)に対するパッチ(Patch)は、ディスクリプタ抽出器(430)に伝達することができる。
【0113】
ディスクリプタ抽出器(430)は、各パッチ(Patch)ごとにローカルフィーチャーに対応する値を演算して出力することができる。このとき、ローカルフィーチャーはベクトル値(LF Vector;例えば、128桁のベクトル値)を含むことができ、座標情報([n]x3;例えば、x座標、y座標、スケール(scale))を含むことができる。
【0114】
このとき、ディスクリプタ抽出器(430)は、ニューラルネットワークを含むディープラーニングアルゴリズムで実装することができ、同じ対象に対するパッチ(Patch)について、同一または類似したローカルフィーチャーが出力されるよう学習することができる。
【0115】
ディスクリプタ抽出器(430)から出力される各パッチ(Patch)のローカルフィーチャーは、マルチパッチロス算出器(440)に提供される。
【0116】
マルチパッチロス算出器(440)は、ディスクリプタ抽出器(430)に含まれるニューラルネットワークモジュールを学習させるフィードバック値を提供することができる。すなわち、マルチパッチロス算出器(440)は、ディスクリプタ抽出器(430)から互いに異なる時点で出力された結果値の間の差分値を導出し、導出された前記差分値をディスクリプタ抽出器(430)にフィードバックとして提供することができる。
【0117】
例えば、互いに同一対象を含むパノラマ画像とパースペクティブ画像に対してパッチ(Patch)を抽出し、当該パッチ(Patch)に対応するローカルフィーチャーが入力されたとき、マルチパッチロス算出器(440)は、ローカルフィーチャーとの間の差分値をフィードバックとしてディスクリプタ抽出器(430)に提供することができる。
【0118】
ディスクリプタ抽出器(430)は、指定されたフィードバック値を利用してニューラルネットワークの加重値を変換させることができる。このとき、ディスクリプタ抽出器(430)は、ニューラルネットワークに加重値を適用し、これをもとに、結果値を出力する加重値モジュールをさらに含むことができる。これにより、ディスクリプタ抽出器(430)は、同じ対象を表すパッチ(Patch)に対して同じローカルフィーチャーを出力するように学習することができる。
【0119】
一方、ローカルフィーチャー抽出モジュールにパノラマ画像が入力される場合、パノラマ画像は、プロジェクション変換器(420)を介してパッチ(Patch)を生成することができる。一方、ローカルフィーチャー抽出モジュールにパースペクティブ画像が入力される場合、パースペクティブ画像はプロジェクション変換器(420)を経由せずに、キーポイント推定器(410)でパッチ(Patch)を生成することができる。
【0120】
ローカルフィーチャー抽出モジュールは、学習モードと実行モードに分けて動作することができる。
【0121】
学習モードにおいて、ローカルフィーチャー抽出モジュールは、あらかじめ設定された学習データセットを介して、各画像の類似度判断の正確度を高めるように学習することができる。
【0122】
学習モードにおいて、ディスクリプタ抽出器(430)は、プロジェクション変換器(420)から受信した第1パッチ(1st Patch)と、キーポイント推定器(410)から受信した第2パッチ(2nd Patch)に対するそれぞれの第1及び第2のローカルフィーチャーを生成して、マルチパッチロス算出器(440)に伝達する。マルチパッチロス算出器(440)は、第1パッチと第2パッチに対する第1及び第2のローカルフィーチャーの類似度を算出して、フィードバック値(Feedback value)を算出し、算出されたフィードバック値をディスクリプタ抽出器(430)に提供することができる。
【0123】
これにより、ローカルフィーチャー抽出モジュールは、同じ対象を示すパッチ(Patch)に対して同じローカルフィーチャーが出力されるように学習することができる。
【0124】
一方、実行モードにおいて、ローカルフィーチャー抽出モジュールにパノラマ画像が入力される場合、パノラマ画像はプロジェクション変換器(420)を介して第1パッチが生成され、ディスクリプタ抽出器(430)は、生成された第1パッチに対する第1ローカルフィーチャーを出力することができる。
【0125】
また、ローカルフィーチャー抽出モジュールにパースペクティブ画像が入力される場合、パースペクティブ画像はプロジェクション変換器(420)を経由せずに、キーポイント推定器(410)で第2パッチ(Patch)が生成され、ディスクリプタ抽出器(430)は、生成された第2パッチに対する第2ローカルフィーチャーを出力することができる。
【0126】
すなわち、本発明のローカルフィーチャー抽出モジュールにおいて、パノラマ画像に対する第1パッチの第1ローカルフィーチャーを生成する過程は、パースペクティブ画像に対する第2パッチの第2ローカルフィーチャーを生成する過程と互いに異なる構成になることができる。
【0127】
追加的に、
図10のディスクリプタ抽出器(430)及びマルチパッチロス算出器(440)の組み合わせはディープラーニングモジュールに含まれることがあり、前記ディープラーニングモジュールは、前述した
図5の第1モジュール(210)と実質的に類似した構造を持つことができる。また、本技術に対する通常の技術者は、前述した説明をもとに、ディスクリプタ抽出器(430)の構造を容易に導出することができるので、ここで重複説明は省略する。
【0128】
ディスクリプタ対象抽出器(430)に含まれるニューラルネットワークモジュールは、 人工ニューラルネットワーク(ANN)を含むことができる。例えば、ディープラーニングの構造は、CNN(Convolutional Neural Network;コンボリューショナルニューラルネットワーク)、RNN(Recurrent Neural Network;リカレントニューラルネットワーク)、DBN(Deep Belief Network;ディープビリーフネットワーク)、GNN(Graphic Neural Networks;グラフニューラルネットワーク) などのディープニューラルネットワーク(DNN)で構成することができる。また、ディープラーニングモジュールは、三重項損失(Triplet loss)のようなモデルが適用されるのはもちろんのことである。ただし、これは一つの例示に過ぎず、本発明が前記実施例に限定されるものではないため、ここでこれに対する詳細な説明は省略する。
【0129】
続いて、サーバ(1100)は、先に選定されたパノラマ画像と、ユーザーが提供したパースペクティブ画像との間のマッピングを行うことができる。このとき、選定されたパノラマ画像とユーザーが提供したパースペクティブ画像はマッピング画像になることができる。
【0130】
続いて、サーバ(1100)は、マッピングされたパノラマ画像及びパースペクティブ画像に対する位置関係を算出することができる。
【0131】
ここで、マッピング画像は、互いに最も近い位相関係を持つ画像を意味することができる。最も近い位相関係は、距離が近いだけでなく、空間的にも直接的に互いに移動が可能でなければならない場合であり、これらの例は、共通の空間が最も多く含まれている画像であることができる。
【0132】
また、マッピングを行うということは、二つの画像間の整合を意味することもあるが、本明細書では、二つの画像の位相、すなわち相対的な位置関係を把握する場合を中心に説明する。
【0133】
図11は、本発明の屋内位置測位方法の例示を説明するための図面である。
図12は、本発明の実施形態に係る3Dツアー提供サーバーの構成を概略的に説明するための図面である。
図13は、本発明の実施形態に係る屋内位置測位方法のために、ニューラルネットワークのフィーチャーを利用する概念を説明するための図面である。
図14及び
図15は、本発明の実施形態に係るニューラルネットワークフィーチャーを利用する場合の利点を説明するための図面である。
【0134】
3Dツアー提供システムは、複数個(例えば、5個)の画像を入力することができる。その後、3Dツアー提供システムは、複数個の画像のうち、互いにマッピングできる画像、すなわちマッピング画像がどのようなものなのかを把握し、把握したマッピング画像のマッピングを行うことができる。
【0135】
例えば、本発明の実施例において、画像は互いに異なる位置で撮影された全方位画像(360画像)であることができる。そしてマッピング画像は、互いに共通の空間を最も多く共有している画像フェアであることができる。
【0136】
例えば、
図11に示すように、位置a、b、c、d、eで撮影された画像のそれぞれが、画像1、画像2、画像3、画像4、及び画像5であることができる。
【0137】
このような場合、画像1と画像2と画像3は、共通の撮影された映像内に共通の空間が相当多く含まれているが、相対的に画像1と画像2に、より多くの共通空間が含まれている可能性がある。したがって、画像1のマッピング画像は画像2であることができる。
【0138】
そうすると、画像2に対してマッピング画像を検索しなければならず、このとき、すでにマッピング画像が確定された画像1は除外される。すると、画像2のマッピング画像は、画像3になることができる。
【0139】
このような方式で、画像3のマッピング画像は画像4になることができ、画像4のマッピング画像は画像5になることができる。
【0140】
そうすると、3Dツアー提供システムは、画像1を基準にマッピング画像である画像2に対するマッピングを行うことができる。すなわち、画像2の画像1に対する位相、画像2の画像1に対する相対的な位置を把握することができる。そして画像3の画像2に対する位相、画像4の画像3に対する位相、及び画像5の画像4に対する位相を順次的に把握することにより、全体の画像間の位相関係が特定されることが可能になる。
【0141】
結局、従来は全方位画像が複数存在し、それぞれの全方位画像の正確な位置を知ることができない場合には、複数の画像の位置関係を把握するために、相当の時間と資源が必要になる。
【0142】
例えば、従来の方式によれば、すべての画像別に所定のフィーチャーポイント(例えば、前述したキーポイント(KP))を抽出し、抽出されたフィーチャーポイントを利用して、すべての画像のペア別に共通のフィーチャーポイントがどれだけ存在するかを把握しなければならない。そして共通のフィーチャーポイントが最も多い画像のペアが、互いにマッピング画像として把握されることがあり、共通のフィーチャーポイントの位置によってマッピング、すなわち相対的な位置関係が決定されることがある。もし整合が必要な場合には、共通のフィーチャーポイントを最小限のエラーで重ね合わせるための変換行列が決定され、これらの変換行列によるいずれかの画像の変換を介して、二つの画像は連結(整合)されることがある。
【0143】
しかし、このような従来の方式で使われるフィーチャーポイントは、フィーチャーポイントの抽出にも相当な時間と演算量が必要となる。また、マッピング画像を把握するために、すべての画像のペア別にフィーチャーポイントを比較する演算を実行しなければならないが、画像のフィーチャーポイントの数が多いほど、このような演算は、相当な時間がかかるという問題点がある。
【0144】
しかし、前述したように、本発明の技術的思想によれば、迅速かつ正確に自動的にこれらの複数の画像の中からマッピング画像を検索し、検索されたマッピング画像に対するマッピングを行うことができる。
【0145】
これらの問題点を解決するために、本発明の技術的思想による3Dツアー提供システムは、ニューラルネットワークフィーチャーを利用することができる。
【0146】
本明細書で定義されるニューラルネットワークフィーチャーは、所定の目的を達成するために学習されたニューラルネットワークの所定の層のフィーチャーマップ(feature map)で選択された全部または一部のフィーチャーを意味することができる。
【0147】
これらのフィーチャーは、特定の目的を達成するために、学習されたニューラルネットワーク(例えば、コンボリューショナルニューラルネットワーク(CNN))で利用され、特定の目的を達成するようにニューラルネットワークが学習されると、学習されたニューラルネットワークによって導出される情報であることができる。
【0148】
例えば、
図13に示すようなニューラルネットワーク(20)が存在することができ、ニューラルネットワークは、コンボリューショナルニューラルネットワーク(CNN)であることができる。
【0149】
このような場合、複数の層(21、22、23、24)がニューラルネットワーク(20)に含まれることがあり、入力層(21)と出力層(24)と複数の隠れ層(22、23)が存在することができる。出力層(24)は、以前の層と完全連結(fully connected)された層であることができ、本発明の技術的思想による3Dツアー提供システムは、出力層(24)またはプーリーコネクテッド層以前の任意のフィーチャーマップが含まれる層(例えば、23)でニューラルネットワークフィーチャー(f1、f2、f3)を選択することができる。
【0150】
3Dツアー提供システムが利用するニューラルネットワークフィーチャー(f1、f2、f3)は、当該層のフィーチャーマップに含まれるすべてのフィーチャーであることもあり、この中で、一部の選択されたフィーチャーであることもある。
【0151】
3Dツアー提供システムは、これらのフィーチャーを従来のハンドクラフトフィーチャーポイント、例えば、SIFT(Scale-Invariant Feature Transform)、SURF(Speeded Up Robust Features)、またはORB(Oriented FAST and Rotated BRIEF)の代わりに利用してマッピング画像を把握したり、マッピング画像間のマッピングを行ったりするのに利用することができる。すなわち、従来のハンドクラフトフィーチャーの代わりにコンボリューショナルニューラルネットワークで使われるフィーチャーを利用することができる。
【0152】
一般的に、画像のフィーチャーは、スケール(scale)またはオリエンテーション(orientation)に関係なく同じ特性を持つのが好ましいが、コンボリューショナルニューラルネットワークで出力層(23)以前の層は、複数の非線形的コンボリューション関数および/またはプーリング関数などを介して、これらの特徴を持つようになる。さらに、従来のハンドクラフトフィーチャーは、画像での角などのように、人が定義した特徴的な位置でのみ抽出され、通常は、エッジが存在する所(例えば、エッジが折れる位置など)でのみ抽出された特徴がある。
【0153】
しかし、ニューラルネットワークフィーチャーは、これらの位置ではなく、画像のフラット(flat)な領域でも発見できるように、ニューラルネットワーク(20)が学習できる長所がある。また、ハンドクラフトフィーチャーは、画像の歪みや画像の品質によってフィーチャーポイントが検出されなければならないにもかかわらず、検出されない場合がたびたび発生する。それに比べ、ニューラルネットワークフィーチャーは、これらの画像の歪みに強い特性があって、フィーチャー抽出においても正確度の向上が存在することができる。
【0154】
ニューラルネットワーク(20)は、それ自体がフィーチャー抽出器(1130)(feature extracter)であることができる。例えば、出力層(24)またはプーリーコネクテッド直前層(23)でフィーチャーが選択される場合、出力層(24)は直前層(23)の選択されたフィーチャー(f1、f2、f3)自体を出力するように設計されることもあり、このような場合はニューラルネットワーク(20)自体がフィーチャー抽出器(1130)として動作することができる。
【0155】
また、ニューラルネットワーク(20)は、別個の固有の目的(例えば、分類(classification)、物体検出(Object Detection)など)を達成するために学習されたものであることができる。このような場合にも、所定の層で常に一貫したフィーチャーを選択し、ニューラルネットワークフィーチャーとして利用することができる。例えば、
図13の場合には、出力層(24)を除いた残りの層の結合がフィーチャー抽出器(1130)として動作することができる。
【0156】
本発明の一実施例によれば、ニューラルネットワーク(20)は、いずれかの画像を重ねる領域が存在するように分割した後、分割した画像のそれぞれの重なる共通領域で、それぞれ抽出される互いに対応するポイントがマッチングされるように、最適の変換関係(例えば、エラーが最小になる)を導出できるように学習されたニューラルネットワークであることができる。
【0157】
例えば、
図14に示すように、所定の画像(6)の全部または一部は、重なる共通領域(6-3)が存在するように分割することができる。そして、分割された画像(6-1と6-2)のそれぞれから互いに対応するポイント(例えば、P11乃至P14、P21乃至P24)を所定の数ほど抽出することができる。
【0158】
そうすると、第1分割画像(6-1)から抽出されたポイント(P11乃至P14)が第2分割画像(6-2)から抽出されたポイント(P21乃至P24)を最小エラーで変換できるように(例えば、変換行列のパラメータを決定)学習されるニューラルネットワークをニューラルネットワーク(20)で実装することができる。
【0159】
このとき、ポイント(例えば、P11乃至P14、P21乃至P24)は、任意に選択されるポイントであることもでき、それぞれの画像の共通領域で所定の方式で抽出されたフィーチャーポイントであることもできる。
【0160】
いずれの場合も、所定の目的を達成するためによく学習されたニューラルネットワーク(20)の全部又は一部が、画像からフィーチャーを選択して抽出するフィーチャー抽出器(
図12の1130)として利用されることがある。
【0161】
そして、これらのフィーチャー抽出器(1130)を利用して、3Dツアー提供システムに入力された互いに異なる画像のそれぞれに含まれる共通領域では、同じフィーチャーを抽出することができる。したがって、ある一つの画像で同じフィーチャー(互いに対応するフィーチャー)が最も多く存在する画像がマッピング画像と判断することができる。
【0162】
一方、本発明の技術的思想によると、ニューラルネットワークフィーチャーはベクトルで表現されるので、特定画像のマッピング画像を検索するために、従来のように画像のペアごとにフィーチャーを比較するのではなく、高速演算が可能なベクトルサーチエンジン(
図12の1150)を利用することで、より迅速な位置関係の判断が可能である。
【0163】
大容量のベクトルを高速にサーチする技術が最近広く公開されたことがある。
【0164】
ベクトルサーチエンジン(1150)は、入力されたベクトル(またはベクトルセット)と最も近い(近距離の)ベクトルを高速に探すために構築されるエンジンであることができる。すべてのベクトルは、データベース上にインデックス化されて保存され、ベクトルサーチエンジン(1150)は、入力されたベクトル(またはベクトルセット)と最も近いベクトル(またはベクトルセット)を出力できるように設計することができる。
【0165】
これらのベクトルサーチエンジン(1150)は、例えば、Faiss(Facebook(登録商標) AI Similarity Search)などのような知られたベクトルサーチ手法を利用して構築することができる。これらのベクトルサーチエンジン(1150)は、GPUベースに実行される場合、大容量の高速演算が可能な効果がある。
【0166】
本発明の技術的思想に基づくベクトルサーチエンジン(1150)は、対象の画像(例えば、画像1)で抽出されたフィーチャーのセットが入力されて、それに対する応答として最も類似した(近距離)ベクトル又はベクトルの集合を出力することができる。そして、このようなベクトル又はベクトルの集合のソースがどんな画像であるかを判断することで、高速で対象の画像のマッピング画像が決定されることがある。
【0167】
例えば、第1画像から抽出されたフィーチャーのすべてをベクトルサーチエンジン(1150)に入力することができる。ベクトルサーチエンジン(1150)は、ベクトルデータベースで入力されたフィーチャーのそれぞれと、最も距離が短いベクトル又は最も距離が短いベクトルとの距離を出力することができる。これらのタスクは、画像別に実行することができる。
【0168】
例えば、5つの画像が存在し、それぞれの画像別に10個のフィーチャーが抽出された場合を想定すると、ベクトルデータベースには、50個のベクトルがインデックス化されて保存される。そして、それぞれのソース画像に対する情報を一緒に保存することができる。
【0169】
すると、べクトルサーチエンジン(1150)は、第1画像から抽出された10個のベクトルを入力することができる。そしてベクトルサーチエンジン(1150)は、10個のベクトルのそれぞれと第2画像から抽出されたベクトルの中で距離が最も短いベクトル10個、またはこれらの距離の合計を出力することができる。このような方式で、第3画像から抽出されたベクトル、第4画像から抽出されたベクトル、第5の画像から抽出されたベクトルに対して実行すると、入力されたベクトルセットと最も近いフィーチャーセットを含む画像が高速で検索される。そして検出された画像を第1画像のマッピング画像として決定することができる。
【0170】
実施例によっては、ベクトルサーチエンジン(1150)は、第1画像から出力された10個のベクトルのそれぞれについて、第1画像から抽出された10個のベクトルを除いた残りのベクトル(40個)の全体に対して距離が最も短いベクトル順に出力することができる。例えば、10個のベクトルのリストが出力されると、3Dツアー提供システムは、これらのベクトルのリストを分析して、マッピング画像を出力することができる。
【0171】
ベクトルサーチエンジン(1150)が出力する結果又は方式は多様である。しかし、いずれの場合も、本発明の技術的思想によれば、入力された画像のそれぞれからフィーチャーを抽出し、これらのフィーチャーをベクトルサーチが可能になるように構築されたデータベースに入力することができ、ベクトルサーチエンジン(1150)は、入力されたベクトルまたはベクトルセットが入力されると、最も類似した(距離が短い)ベクトルまたはベクトルセットを出力する機能を行うことができる。これらの機能により、マッピング画像を高速に検索することができる。
【0172】
実施例によっては、対象の画像、すなわち、マッピング画像を探そうとする画像(例えば、第1画像)のすべてのフィーチャーが入力されず、一部のフィーチャーがベクトルサーチエンジン(1150)に入力されることもある。例えば、画像の中、あらかじめ定義された領域に対応するフィーチャーだけが位置関係を把握するためにベクトルサーチエンジン(1150)に入力されることもある。
【0173】
あらかじめ定義された領域は、通常、画像の中央部分ではなく、左右上下の角に隣接した領域になることができるので、画像の外郭側の領域を任意に設定し、設定された領域に対応する位置のフィーチャーが選択的にベクトルサーチのための入力として利用されることもある。もちろんベクトルデータベースも、これらの外郭領域に対応するフィーチャーだけが入力されることもあり、全体のフィーチャーが入力されることもある。
【0174】
また、本発明の技術的思想に基づくニューラルネットワークフィーチャーは、それ自体では抽出された画像での位置が特定されない。したがってニューラルネットワークフィーチャーに対応する元画像での位置(ポイント)が特定されてこそ、マッピングを実行することができる。したがって、ニューラルネットワークフィーチャーに対応する元画像上の位置を特定する技術的思想が求められるが、これについては
図16を参照して、後述するようにする。
【0175】
上述したような技術的思想を実装するための3Dツアー提供サーバー(1100)は、
図12に示すような機能的または論理的構成で定義することができる。
【0176】
図12を参照すると、本発明の技術的思想に基づくサーバー(1100)は、制御モジュール(1110)、インターフェースモジュール(1120)、フィーチャー抽出器(1130)を含む。サーバー(1100)は、マッピングモジュール(1140)および/またはベクトルサーチエンジン(1150)をさらに含むこともできる。
【0177】
サーバー(1100)は、本発明の技術的思想を実装するために必要なハードウェアリソース(resource)および/またはソフトウェアを備えた論理的な構成を意味することができ、必ずしも一つの物理的な構成要素を意味するか、一つの装置を意味するものではない。すなわち、サーバー(1100)は、本発明の技術的思想を実装するために備えられるハードウェアおよび/またはソフトウェアの論理的な結合を意味することができ、必要な場合には、互いに離隔した装置に設置され、それぞれの機能を行うことにより、本発明の技術的思想を実現するための論理的な構成の集合として実装することもできる。
【0178】
また、サーバー(1100)は、本発明の技術的思想を実現するためのそれぞれの機能又は役割ごとに別途に実現される構成の集合を意味することもできる。例えば、制御モジュール(1110)、インターフェースモジュール(1120)、フィーチャー抽出器(1130)、マッピングモジュール(1140)、および/またはベクトルサーチエンジン(1150)のそれぞれは、互いに異なる物理的装置に位置することもあり、同じ物理的装置に位置することもある。
【0179】
また、実施例によっては、制御モジュール(1110)、インターフェースモジュール(1120)、フィーチャー抽出器(1130)、マッピングモジュール(1140)、および/またはベクトルサーチエンジン(1150)のそれぞれを構成するソフトウェアおよび/またはハードウェアの結合も互いに異なる物理的装置に位置し、互いに異なる物理的装置に位置する構成が互いに有機的に結合され、それぞれのモジュールを実装することもできる。
【0180】
また、本明細書においてモジュールとは、本発明の技術的思想を実行するためのハードウェア及びハードウェアを駆動するためのソフトウェアの機能的、構造的結合を意味することができる。例えば、モジュールは、所定のコードと所定のコードが実行されるためのハードウェアリソース(resource)の論理的な単位を意味することができ、必ずしも物理的に連結されたコードを意味したり、一種類のハードウェアを意味したりするものではないのは、本発明の技術分野の平均の専門家には容易に推論することができる。
【0181】
制御モジュール(1110)は、本発明の技術的思想を実現するためにサーバー(1100)に含まれている他の構成(例えば、インターフェースモジュール(1120)、フィーチャー抽出器(1130)、マッピングモジュール(1140)、および/またはベクトルサーチエンジン(1150)など)を制御することができる。
【0182】
インターフェースモジュール(1120)は、外部から複数の画像を入力することができる。複数の画像は、互いに異なる位置で撮影された映像であることができる。一例によれば、複数の画像は、屋内で撮影された3Dツアーに含まれている複数のパノラマ画像(すなわち、360映像)であることができる。また、インターフェースモジュール(1120)は、ユーザーが直接撮影したパースペクティブ画像を受信することができる。
【0183】
複数の画像の中には、共通の空間を異なる位置で撮影したものが存在することができ、共通の空間、すなわち、共通領域を含む2の画像は、マッピング可能な関係にあると定義することができる。その中で最も多い共通領域を含む画像をマッピング画像として定義することができ、これは対応するフィーチャーが最も多い画像として定義することもできる。
【0184】
インターフェースモジュール(1120)を介して入力された複数の画像のそれぞれから、フィーチャー抽出器(1130)は、本発明の技術的思想に基づいて定義されるフィーチャー、すなわち、ニューラルネットワークフィーチャーを抽出することができる。ここでニューラルネットワークフィーチャーは、前述したグローバルフィーチャーおよび/またはローカルフィーチャーを含む概念として理解することができる。以下では、説明の便宜のために、前述したグローバルフィーチャーまたはローカルフィーチャーをニューラルネットワークフィーチャーに置換して説明する。
【0185】
ニューラルネットワークフィーチャーは、所定のニューラルネットワーク(例えば、CNN)で出力層の以前に特定される画像のフィーチャーであり得ることは、前述した通りである。
【0186】
フィーチャー抽出器(1130)は、
図5を参照して前述したハイブリッド画像検索モジュールのグローバルディスクリプタモジュール(210)に対応することができる。また、フィーチャー抽出器(1130)は、
図9及び
図10を参照して説明したディスクリプタ抽出器(430)に対応することができる。
【0187】
また、フィーチャー抽出器(1130)は、
図13に示すようなニューラルネットワーク(20)その自体であることができ、入力層(21)からニューラルネットワークで出力層(24)以前の所定の層(例えば、23)までの構成を意味することもできる。層(23)によって定義されるフィーチャーマップに含まれているフィーチャーの全部または一部がニューラルネットワークフィーチャーであることができる。
【0188】
ニューラルネットワーク(20)は、ニューラルネットワークフィーチャーを抽出するための目的以外の別個の目的(例えば、分類、ディテクチンなど)のために学習された可能性があるが、前述したように、二つの画像を最小のエラーで整合するために設計されたニューラルネットワークであるか、またはニューラルネットワークフィーチャーを抽出する目的で、学習されるものであることもできる。例えば、後者の場合は、ユーザーが任意に設定した位置および/または画像の特徴をよく表現することができるハンドクラフトフィーチャーポイントを出力できるように学習されることもあり、このような場合は、ニューラルネットワーク(20)自体がフィーチャー抽出器(1130)になることができる。
【0189】
ユーザーが任意に設定した位置は、所定のオブジェクト(例えば、壁、ドアなど)でユーザーが設定した位置(例えば、当該オブジェクトの中央位置)に設定することができる。また、これらのユーザー設定位置は、従来のハンドクラフトフィーチャーポイントとは異なり、フラットな領域、すなわち、エッジまたは角が存在しないフラット(flat)な画像領域に設定することができる。このような場合、従来のハンドクラフトフィーチャーポイントではフィーチャーポイントとして抽出されないフラットな画像領域内でもフィーチャーが定義されることがあり、これを活用する場合、もっと正確度のあるマッピング画像の判断及びマッピングが実行されることもある。
【0190】
図15に示すように、フィーチャー抽出器(1130)は、あらかじめ定められたオブジェクト(例えば、壁、ドア、テーブル)内の任意の位置がフィーチャーポイント(fp1、fp2、fp3)で特定されるように学習することができる。
【0191】
また、
図15に示すように、任意の位置は、オブジェクト別にあらかじめ決められた位置(例えば、壁の中心、テーブルの中心、ドアの中心など)のように一般的にフラットな画像領域内に設定することができる。
【0192】
もちろんフィーチャー抽出器(1130)は、従来のエッジまたは角が折れた部分などのように、ハンドクラフトフィーチャーポイントに対応するフィーチャーを抽出できるように学習することもできる。
【0193】
例えば、ユーザは、多数の画像にオブジェクト別にハンドクラフトフィーチャーポイント、ユーザーが設定したフラットな領域の設定位置などをアノテーションし、これを学習データとして利用してニューラルネットワーク(20)を学習させることもできる。このような場合、それぞれのフィーチャーポイント(fp1、p2、fp3)に対応するフィーチャーを抽出することがあり、フィーチャーポイント自体が出力されることもある。
【0194】
いずれの場合もニューラルネットワークフィーチャーを利用する場合には、
図14に示すように、従来のハンドクラフトフィーチャーとしては、抽出されない位置がフィーチャーに活用することができるので、より画像の特性を定義したり、画像をマッピングしたりするのに有利な効果がある。
【0195】
一方、ニューラルネットワークフィーチャーは、ニューラルネットワーク(20)が望む目的を出力するために、複数のコンボリューションおよび/またはプーリングを介して決定される画像の特徴的な情報ではあるが、このようなニューラルネットワークフィーチャー自体が、該当する元画像での特定の位置を示すものではないかもしれない。
【0196】
したがってニューラルネットワークフィーチャーが抽出された場合でも、ニューラルネットワークフィーチャーに対応する元画像上の位置、すなわち、フィーチャーの位置が特定される必要がある。これらのフィーチャーの位置が特定されてこそ、画像のマッピングが行われるからである。
【0197】
このように、ニューラルネットワークフィーチャーのフィーチャー位置を特定するための技術的思想は、
図16を参照して説明する。
【0198】
図16は、本発明の実施例によるニューラルネットワークフィーチャーに対応するフィーチャー位置を説明するための図面である。
【0199】
図16に示すように、所定の層からニューラルネットワークフィーチャー(f)を抽出することができる。このような場合、ニューラルネットワークフィーチャー(f)は、以前、所定の層(L-Layer)では所定の対応領域(Sl)と対応され、このような対応領域(Sl)に含まれているピクセル情報が、あらかじめ定義されたコンボリューション及びプーリング関数によって、ニューラルネットワークフィーチャー(f)にマッピングされることがある。
【0200】
このとき、L-層でのニューラルネットワークフィーチャー(f)の対応領域(Sl)内の所定の位置(例えば、中央または特定の頂点など)をニューラルネットワークフィーチャー(f)のL-層での対応位置(Psl)として定義することができる。
【0201】
すると、同様の方法で、L-層での対応位置(PSl)に対応する元画像上での対応領域(So)を元画像とL-層の間のコンボリューション及びポーリング関係によって特定することができ、対応領域(So)内の所定の位置(例えば、中央)をニューラルネットワークフィーチャー(f)の元画像上での対応位置、すなわち、フィーチャー位置に特定することができる。
【0202】
このような方式でニューラルネットワークフィーチャー別にフィーチャーの位置が決定されると、それぞれのフィーチャーの位置が画像のマッピングのためのフィーチャーポイントになることができる。
【0203】
すると、マッピングモジュール(1140)は、マッピング画像間の互いに対応されるフィーチャーの位置を利用して、画像のマッピングを行うことができる。
【0204】
二つの画像間の画像マッピングは、二つの画像間の相対的な位置関係を特定するマッピングの場合には、二つの画像のそれぞれで互いに対応するポイントを利用して実行することができる。このとき、互いに対応するポイントは、二つの画像のそれぞれから抽出されたニューラルネットワークフィーチャーのフィーチャーポイントであることができ、互いに対応するフィーチャーポイントはベクトルサーチエンジン(1150)を介して容易に検索することができる。
【0205】
このとき、ベクトルサーチエンジン(1150)は、
図3を参照して、前述したハイブリッド画像検索モジュールを含むことができる。たとえば、ベクトルサーチエンジン(1150)は、3Dツアーに含まれている複数のパノラマ画像と、ユーザから受信したパースペクティブ画像のそれぞれに対するグローバルフィーチャーを算出する。続いて、ベクトルサーチエンジン(1150)は、算出されたグローバルフィーチャーを利用して、パースペクティブ画像と最も類似したパノラマ画像を選定することができる。
【0206】
続いて、フィーチャー抽出器(1130)は、選定されたパノラマ画像のローカルフィーチャーと、ユーザーから受信したパースペクティブ画像のそれぞれのローカルフィーチャーを算出する。このとき、選定されたパノラマ画像とパースペクティブ画像はマッピング対象の画像になることができる。
【0207】
続いて、マッピングモジュール(1140)は、マッピング対象の画像の相対的な位置関係を算出する。
【0208】
互いに対応するポイント(空間上で同じ位置を示す)がそれぞれ異なる画像に存在する場合、これらの二つの画像の相対的な位置関係を特定するための技術的思想は、公知の通りである。
【0209】
例えば、エピポーラ幾何(Epipolar Geometry)を利用して、相対的な位置関係を判断できるということは、本発明の技術分野の通常の専門家において容易に推論することができる。他にも様々な方法が可能である。
【0210】
他の実施例によれば、二つの画像、すなわち、マッピング画像間のマッピングが二つの画像を整合する場合には、二つの画像を整合するための変換行列を特定することが、マッピングを行うことであるかもしれない。
【0211】
これらの変換行列を特定するためには、互いに対応するフィーチャーの3つのペアを抽出し、抽出された3つのペアが変換できるように変換行列が定義されることは広く知られている。そして、これらのフィーチャーの3つのペアは、すべてのフィーチャーが最も小さなエラーに変換されるように検索することができ、 RANSAC(Random sample consensus;ランダムサンプルコンセンサス)などのアルゴリズムが利用できるのはもちろんである。
【0212】
図17は、本発明の実施形態に係る屋内位置測位方法で画像をマッピングする方法を説明するための流れ図である。
【0213】
図17を参照すると、本発明の技術的思想に基づくサーバー(1100)は、互いにマッピング画像と判断された第1画像(例えば、選定されたパノラマ画像)と第2画像(例えば、ユーザーが提供したパースペクティブ画像)をマッピングするために、第1画像から抽出されたフィーチャーに対応するフィーチャーの位置を特定することができる(S210)。そのため、サーバー(1100)は、
図16に示すような方法を利用することができる。
【0214】
続いて、サーバ(1100)は、第2画像から抽出されたフィーチャーに対応するフィーチャーの位置を特定することができる(S220)。
【0215】
続いて、サーバ(1100)は、それぞれの画像のフィーチャーの位置に基づいて、エピポーラ幾何(Epipolar Geometry)アルゴリズムを介した相対的な位置関係を判断したり、画像の連結のための変換行列を所定の方式(例えば、RANSACアルゴリズム)を介して決定したりすることができる(S230)。
【0216】
これにより、サーバー(1100)は、選定されたパノラマ画像とユーザーから受信したパースペクティブの画像との間の位置関係を算出することができる。
【0217】
したがって、サーバー(1100)は、パースペクティブ画像を撮影したユーザー端末(1200)の屋内位置を計算することができる。計算されたユーザー端末(1200)の屋内位置は、ユーザー端末(1200)に伝送することができ、屋内ナビゲーション機能を提供する上で、正確な3Dツアーをユーザー端末(1200)に提供することができる。
【0218】
本発明の実施形態に係る屋内位置測位方法は、コンピュータで読み取り可能な記録媒体にコンピュータが読み取り可能なコードとして実装することが可能である。コンピュータが読み取り可能な記録媒体は、コンピュータシステムによって読み取れるデータが保存されているすべての種類の記録装置を含む。コンピュータが読み取り可能な記録媒体の例としては、ROM、RAM、CD-ROM、磁気テープ、ハードディスク、フロッピー(登録商標)ディスク、光データ保存装置などがある。また、コンピュータが読み取り可能な記録媒体は、ネットワークに接続されたコンピュータシステムに分散されて、分散方式でコンピュータが読み取り可能なコードが保存され、実行される。そして、本発明を実装するための機能的な(functional)プログラム、コード、及びコードセグメントは、本発明が属する技術分野のプログラマーによって容易に推論することができる。
【0219】
以上のように、本発明は、たとえ限定された実施例と図面によって説明されたが、本発明は、前記の実施例に限定されるものではなく、これは、本発明が属する分野において通常の知識を有する者であれば、このような記載から多様な修正及び変形が可能である。したがって、本発明の思想は、下記の特許請求の範囲によってのみ把握されるべきであり、異議均等または等価的変形のいずれも本発明の思想の範疇に属するといえる。
【国際調査報告】