(57)【特許請求の範囲】
【請求項１】
イメージを提供する、コンピュータにインプリメントされる方法であって、
前記方法は、
１つ以上のコンピューティングデバイスによって、第１のイメージの第１のビューポート内のオブジェクトを識別するユーザ入力を受信することであって、前記第１のビューポートは、第１のコンテンツを有し、前記第１のイメージは、第１の位置でキャプチャされたものである、ことと、
前記１つ以上のコンピューティングデバイスによって、前記オブジェクトの位置を決定することと、
前記１つ以上のコンピューティングデバイスによって、前記決定された位置に基づいて第２のイメージを選択することと、
前記１つ以上のコンピューティングデバイスによって、前記決定された位置に基づいた前記第２のイメージの第２のビューポートを、前記第２のビューポートが前記第１のコンテンツを含むように、決定することであって、前記第２のイメージは、前記第１の位置とは異なる第２の位置でキャプチャされたものである、ことと、
前記１つ以上のコンピューティングデバイスによって、前記第２のビューポートを用いて、表示のために前記第２のイメージを提供することと
を含む、方法。
【請求項２】
前記決定された位置を決定することは、
前記オブジェクトに対応する３次元モデルの表面上に視線を投射することと、
前記３次元モデルの前記表面と前記視線との交点の位置を決定することと
を含む、請求項１に記載の方法。
【請求項３】
前記決定された位置を決定することは、
前記オブジェクトに対応する２次元モデルの表面上に視線を投射することと、
前記２次元モデルの前記表面と前記視線との交点の位置を決定することと
を含む、請求項１に記載の方法。
【請求項４】
前記第１のビューポートおよび前記第２のビューポートの各々は、同一のコンテンツを含む、請求項１に記載の方法。
【請求項５】
前記第１のビューポートおよび前記第２のビューポートは、前記第１のイメージおよび前記第２のイメージの異なる向きに対応する、請求項１に記載の方法。
【請求項６】
前記第２のイメージを選択することは、前記決定された位置に対して最も近い利用可能なイメージとして前記第２のイメージを識別することを含む、請求項１に記載の方法。
【請求項７】
前記第２のビューポートが表示される前に、表示のために変わり目のイメージを提供することをさらに含み、前記変わり目のイメージは、前記決定された位置へと向かうような向きでの表示のために提供される、請求項１に記載の方法。
【請求項８】
イメージを提供するシステムであって、
前記システムは、
複数のイメージを格納するメモリと、
１つ以上のコンピューティングデバイスと
を備え、
前記１つ以上のコンピューティングデバイスは、
前記複数のイメージのうちの第１のイメージの第１のビューポート内のオブジェクトを識別するユーザ入力を受信することであって、前記第１のビューポートは、第１のコンテンツを有し、前記第１のイメージは、第１の位置でキャプチャされたものである、ことと、
前記オブジェクトの位置を決定することと、
前記決定された位置に基づいて第２のイメージを選択することと、
前記決定された位置に基づいた前記第２のイメージの第２のビューポートを、前記第２のビューポートが前記第１のコンテンツを含むように、決定することであって、前記第２のイメージは、前記第１の位置とは異なる第２の位置でキャプチャされたものである、ことと、
前記第２のビューポートを用いて、表示のために前記第２のイメージを提供することと
を実行するように構成される、システム。
【請求項９】
３次元モデルを格納する第２のメモリをさらに備え、
前記１つ以上のコンピューティングデバイスは、
前記オブジェクトに対応する前記３次元モデルの表面上に視線を投射することと、
前記３次元モデルの前記表面と前記視線との交点の位置を決定することと
によって、前記決定された位置を決定するように構成される、請求項８に記載のシステム。
【請求項１０】
前記１つ以上のコンピューティングデバイスは、
前記オブジェクトに対応する２次元モデルの表面上に視線を投射することと、
前記２次元モデルの前記表面と前記視線との交点の位置を決定することと
によって、前記決定された位置を決定するように構成される、請求項８に記載のシステム。
【請求項１１】
前記第１のビューポートおよび前記第２のビューポートの各々は、同一のコンテンツを含む、請求項８に記載のシステム。
【請求項１２】
前記第１のビューポートおよび前記第２のビューポートは、前記第１のイメージおよび前記第２のイメージの異なる向きに対応する、請求項８に記載のシステム。
【請求項１３】
前記第２のイメージを選択することは、前記決定された位置に対して最も近い利用可能なイメージとして前記第２のイメージを識別することを含む、請求項８に記載のシステム。
【請求項１４】
前記１つ以上のコンピューティングデバイスは、前記第２のビューポートが表示される前に、表示のために変わり目のイメージを提供するようにさらに構成され、前記変わり目のイメージは、前記決定された位置へと向かうような向きでの表示のために提供される、請求項８に記載のシステム。
【請求項１５】
プログラムのコンピュータ読み取り可能な命令が格納された非一時的なコンピュータ読み取り可能な格納媒体であって、前記命令は、プロセッサにより実行されると、前記プロセッサに、イメージを提供する方法を実行させ、
前記方法は、
第１のイメージの第１のビューポート内のオブジェクトを識別するユーザ入力を受信することであって、前記第１のビューポートは、第１のコンテンツを有し、前記第１のイメージは、第１の位置でキャプチャされたものである、ことと、
前記オブジェクトの位置を決定することと、
前記決定された位置に基づいて第２のイメージを選択することと、
前記決定された位置に基づいた前記第２のイメージの第２のビューポートを、前記第２のビューポートが前記第１のコンテンツを含むように、決定することであって、前記第２のイメージは、前記第１の位置とは異なる第２の位置でキャプチャされたものである、ことと、
前記第２のビューポートを用いて、表示のために前記第２のイメージを提供することと
を含む、非一時的なコンピュータ読み取り可能な格納媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パノラマイメージ間でナビゲートすることに関する。
【背景技術】
【０００２】
マップ上の位置にジオコード化される（ｇｅｏ−ｃｏｄｅｄ）複数のパノラマイメージを含むコンピュータシステムが存在する。隣のパノラマイメージ間でナビゲートするために、ユーザはマップ上のボタンを選択し得、新たな隣のパノラマイメージは、ロードされ、表示され得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
この技術は利点を有するが、１つのイメージから次のイメージへジャンプすることは、ユーザの注意をそらすこと（ｄｉｓｔｒａｃｔｉｎｇ）であり得る。従って、新たなナビゲーションの方法およびシステムが必要とされる。
【課題を解決するための手段】
【０００４】
本発明は、パノラマイメージデータの中のナビゲーションを促進するためのイメージコンテンツを用いることに関する。第１の実施形態において、パノラマイメージデータの中でナビゲートするための、コンピュータにインプリメントされる方法は、（１）視線と仮想モデルとの交点を決定することであって、該視線は、イメージのカメラビューポートから延び、該仮想モデルは、複数の前面の平面を含む、ことと、（２）パノラマイメージを取り出すことと、（３）該パノラマイメージを該交点に向けることと、（４）向けられたパノラマイメージを表示することとを含む。
【０００５】
第２の実施形態において、注釈（ａｎｎｏｔａｔｉｏｎ）を生成および表示する方法は、（１）複数の２次元イメージから仮想モデルを生成することと、（２）視線と該仮想モデルとの交点を決定することであって、該視線は、第１のイメージのカメラビューポートから延びる、ことと、（３）パノラマイメージを取り出すことと、（４）該交点に対面するように該パノラマイメージを向けることと、（５）該パノラマイメージを表示することとを含む。
【０００６】
第３の実施形態において、システムが、仮想モデルに対応する注釈を生成および表示し、該仮想モデルは、複数の２次元イメージから生成される。該システムは、第１のイメージのカメラビューポートから延ばされる視線と仮想モデルとの交点を決定するナビゲーションコントローラであって、該ナビゲーションコントローラは、第３のパノラマイメージを取り出し、該交点に対面するように該第３のパノラマイメージを向ける、ナビゲーションコントローラを含む。該仮想モデルは、複数の前面の平面を含む。
【０００７】
本発明のさらなる実施形態、特徴および利点、ならびに本発明の様々な実施形態の構造および動作は、添付の図面への参照を用いて下記に詳述される。
例えば、本発明は以下の項目を提供する。
（項目１）
パノラマイメージデータの中でナビゲートする、コンピュータにインプリメントされる方法であって、
該方法は、
（１）視線と仮想モデルとの交点を決定することであって、該視線は、イメージのカメラビューポートから延び、該仮想モデルは、複数の前面の平面を含む、ことと、
（２）パノラマイメージを取り出すことと、
（３）該パノラマイメージを該交点に向けることと、
（４）向けられたパノラマイメージを表示することと
を含む、方法。
（項目２）
（２）は、ストリートの第１のレーンに対応する位置からのカメラ視点を有する前記パノラマイメージを取り出すことを含み、前記イメージは、該ストリートの第２のレーンに対応する位置を有する、項目１に記載の方法。
（項目３）
（２）は、ユーザに選択された位置を有する、カメラ視点を有する前記パノラマイメージを取り出すことを含む、項目１に記載の方法。
（項目４）
（２）は、前記交点についての選択された距離内で前記パノラマイメージを取り出すことを含む、項目１に記載の方法。
（項目５）
前記イメージは、ストリートレベルから撮影された写真のイメージを含み、前記パノラマイメージは、ストリートレベルから撮影された写真のイメージを含む、項目１に記載の方法。
（項目６）
注釈を生成および表示する方法であって、
該方法は、
（１）複数の２次元イメージから仮想モデルを生成することと、
（２）視線と該仮想モデルとの交点を決定することであって、該視線は、第１のイメージのカメラビューポートから延ばされ、該仮想モデルは、第２のイメージの中の特徴に対応する、ことと、
（３）パノラマイメージを取り出すことと、
（４）該交点に対面するように該パノラマイメージを向けることと、
（５）向けられたパノラマイメージを表示することと
を含む、方法。
（項目７）
（１）は、
（ａ）第１のイメージの第１の複数の特徴と第２のイメージの第２の複数の特徴とを識別することと、
（ｂ）特徴の複数の対を決定することであって、特徴の各対は、該第１の複数の特徴からの第１の特徴と、該第２の複数の特徴からの、該第１の特徴に一致する第２の特徴とを含む、ことと、
（ｃ）該特徴の複数の対に対応する複数のポイントを決定することと、
（ｄ）該複数のポイントに基づいて前面の平面を決定することと、
（ｅ）ストリートの位置に対応するストリート平面を決定することと、
（ｆ）該前面の平面および該ストリート平面に対応する仮想モデルを生成することと
を含む、項目６に記載の方法。
（項目８）
（ａ）は、高速化ロバスト特徴（ＳＵＲＦ）アルゴリズムを用いることを含む、項目７に記載の方法。
（項目９）
（ｂ）は、
（ｉ）前記第１の複数の特徴に対するスピルツリーを決定することと、
（ｉｉ）前記第２のイメージの中の各特徴のほぼ最も近い隣のものおよびほぼ２番目に近い隣のものに対する該スピルツリーを検索することと、
（ｉｉｉ）該ほぼ最も近い隣のものと該ほぼ２番目に近い隣のものとの特徴類似性比率を閾値と比較することと
を含む、項目８に記載の方法。
（項目１０）
（ｉｉｉ）は、前記ほぼ最も近い隣のものと前記ほぼ２番目に近い隣のものとの特徴類似性比率を０．５以上かつ０．９５以下の閾値と比較することを含む、項目９に記載の方法。
（項目１１）
（ｃ）は、
（ｉ）前記特徴の複数の対についての特徴の各対に対して、前記第１のイメージの第１のカメラ視点から該対からの前記第１の特徴を介して延びる第１の視線と、前記第２のイメージの第２のカメラ視点から該対からの前記第２の特徴を介して延びる第２の視線とを決定することと、
（ｉｉ）該特徴の複数の対についての特徴の各対に対して、該第１の視線および該第２の視線の交点に対応するポイントを決定することと
を含む、項目７に記載の方法。
（項目１２）
（ｄ）は、ベストフィットアルゴリズムまたは適用最適化アルゴリズムを用いることを含む、項目７に記載の方法。
（項目１３）
仮想モデルに対応する注釈を生成および表示するシステムであって、該仮想モデルは、複数の２次元イメージから生成され、該システムは、ナビゲーションコントローラを含むサーバーを含み、
該ナビゲーションコントローラは、イメージのカメラビューポートから延ばされる視線と仮想モデルとの交点を決定し、パノラマイメージを取り出し、該交点に対面するように該パノラマイメージを向け、該仮想モデルは、複数の前面の平面を含む、システム。
（項目１４）
前記ナビゲーションコントローラは、第２のレーンと異なる第１のレーンの中の、前記パノラマイメージのカメラビューポートの位置を決定するスイッチングレーンコントローラを含み、前記イメージのカメラビューポートの位置は、該第２のレーンの中に存在する、項目１３に記載のシステム。
（項目１５）
前記ナビゲーションコントローラは、ユーザ選択に対応する前記パノラマイメージのカメラビューポートの位置を決定するクリックアンドゴーコントローラを含む、項目１３に記載のシステム。
（項目１６）
前記ナビゲーションコントローラは、前記交点に対応する前記パノラマイメージのカメラビューポートの位置を決定するウォークアラウンドコントローラを含む、項目１５に記載のシステム。
（項目１７）
複数の２次元イメージから仮想モデルを生成するプロセッシングパイプラインサーバー
をさらに含む、項目１３に記載のシステム。
（項目１８）
前記プロセッシングパイプラインサーバーは、
第１のイメージの第１の複数の特徴と第２のイメージの第２の複数の特徴とを識別する特徴抽出器と、
特徴の複数の対を決定する特徴照合器であって、特徴の各対は、該第１の複数の特徴からの第１の特徴、および該第２の複数の特徴からの第２の特徴を含み、該第１の特徴は、該第２の特徴と一致する、特徴照合器と、
該特徴の複数の対に対応する複数のポイントを決定するポイント計算器と、
該複数のポイントに基づいて前記仮想モデルを生成する表面推定器と
を含む、項目１７に記載のシステム。
（項目１９）
前記特徴抽出器は、高速化ロバスト特徴（ＳＵＲＦ）アルゴリズムを用いる、項目１８に記載のシステム。
（項目２０）
前記特徴照合器は、前記第１の複数の特徴に対するスピルツリーを決定し、前記第２のイメージの中の各特徴のほぼ最も近い隣のものおよびほぼ２番目に近い隣のものに対する該スピルツリーを検索し、該ほぼ最も近い隣のものと該ほぼ２番目に近い隣のものとの特徴類似性比率が閾値未満であるかどうかを決定する、項目１８に記載のシステム。
（項目２１）
前記閾値は、０．５以上かつ０．９５以下である、項目２０に記載のシステム。
（項目２２）
前記特徴の複数の対における特徴の各対に対して、前記ポイント計算器は、前記第１のイメージの第１のカメラ視点から該対からの前記第１の特徴を介して延びる第１の視線と、該対からの前記第２の特徴の第２のカメラ視点から延びる第２の視線とを決定し、該第１の視線と該第２の視線との交点として該複数のポイントからポイントを決定する、項目１８に記載のシステム。
（項目２３）
パノラマイメージデータの中でナビゲートする、コンピュータにインプリメントされた方法であって、
該方法は、
視線と仮想モデルとの交点を決定する手段であって、該視線は、イメージのカメラビューポートから延び、該仮想モデルは、複数の前面の平面を含む、手段と、
パノラマイメージを取り出す手段と、
該パノラマイメージを該交点に向ける手段と、
向けられたパノラマイメージを表示する手段と
を含む、方法。
【図面の簡単な説明】
【０００８】
本明細書内に援用され、かつ、明細書の一部を形成する添付の図面は、本発明を示し、発明を実施するための形態とともに、本発明の原理を説明するため、かつ、当業者が本発明の実施および利用することを可能にするためにさらに供する。
【図１】図１は、本発明の一実施形態に従って、パノラマイメージデータの中のナビゲーションを促進するためにイメージコンテンツを用いることを示す概略図である。
【図２Ａ】図２Ａ〜Ｄは、さらなる詳細において、パノラマイメージデータの中のナビゲーションを促進する方法を説明する概略図である。
【図２Ｂ】図２Ａ〜Ｄは、さらなる詳細において、パノラマイメージデータの中のナビゲーションを促進する方法を説明する概略図である。
【図２Ｃ】図２Ａ〜Ｄは、さらなる詳細において、パノラマイメージデータの中のナビゲーションを促進する方法を説明する概略図である。
【図２Ｄ】図２Ａ〜Ｄは、さらなる詳細において、パノラマイメージデータの中のナビゲーションを促進する方法を説明する概略図である。
【図３】図３は、本発明の一実施形態に従って、パノラマイメージデータ内でナビゲートする方法を示すフローチャートである。
【図４】図４は、本発明の一実施形態に従って、イメージデータから仮想モデルを生成する方法を示すフローチャートである。
【図５Ａ】図５Ａ〜Ｃは、図４の方法に従って、一致する特徴を探し出すことを示す概略図である。
【図５Ｂ】図５Ａ〜Ｃは、図４の方法に従って、一致する特徴を探し出すことを示す概略図である。
【図５Ｃ】図５Ａ〜Ｃは、図４の方法に従って、一致する特徴を探し出すことを示す概略図である。
【図６】図６〜７は、図４における方法に従って、一致する特徴の対に基づくポイントを決定することを示す概略図である。
【図７】図６〜７は、図４における方法に従って、一致する特徴の対に基づくポイントを決定することを示す概略図である。
【図８】図８Ａ〜Ｂは、図４の方法に従って決定された複数のポイントを示す概略図である。
【図９】図９Ａ〜Ｃは、図４の方法に従って、複数のポイントに基づいて表面を決定することを示す概略図である。
【図１０】図１０は、本発明の一実施形態に従って、イメージデータ内をナビゲートするための仮想モデルを用いるシステムを示す概略図である。
【図１１】図１１は、本発明の一実施形態に従って、イメージデータから仮想モデルを生成するためのシステムを示す概略図である。
【０００９】
構成要素が最初に現れる図面は、対応する参照番号の中の最も左側の数字または最も左側の複数の数字によって典型的に示される。複数の図面において、同じ参照番号は、同一の構成要素または機能的に類似した構成要素を示し得る。
【発明を実施するための形態】
【００１０】
本発明は、パノラマイメージデータの中のナビゲーションを促進するためのイメージコンテンツを用いることに関する。次に続く本発明の発明を実施するための形態において、「一実施形態（ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ）」、「一実施形態（ａｎ  ｅｍｂｏｄｉｍｅｎｔ）」、「例示的実施形態」などへの言及は、述べられる実施形態が特定の特徴、構造または特性を含み得ることを示すが、必ずしも全ての実施形態が、特定の特徴、構造または特性を含まないことがあり得る。その上、そのような語句は、必ずしも同じ実施形態を参照しない。さらに、特定の特徴、構造または特性が、実施形態に関して述べられる場合、他の実施形態に関してそのような特徴、構造または特性をもたらすことは、明白に述べられるか否かに関わらず当業者の有する知識の範囲内で提示される。
【００１１】
本明細書内に述べられる通り、本発明の実施形態は、ユーザがイメージコンテンツを用いてパノラマイメージ間でナビゲートすることを可能にする。一実施形態において、モデルが、生成されてイメージコンテンツを表す。ユーザは、第１のパノラマイメージに含まれるオブジェクトを選択し得る。オブジェクトの位置は、モデル上へのユーザの選択の投射によって決定される。第２のパノラマは、その位置に従って選択および／または向けられる。この方法において、この発明の実施形態は、ユーザがイメージコンテンツを用いて第１のパノラマと第２のパノラマとの間でナビゲートすることを可能にする。
【００１２】
図１は、本発明の一実施形態に従って、パノラマイメージデータの中のナビゲーションを促進するためにイメージコンテンツを用いることを示す概略図１００である。概略図１００は、ビルディング１１４およびツリー１１６を示す。ビルディング１１４およびツリー１１６の位置は、仮想モデル１１２によって近似される。仮想モデル１１２は、下記に述べられる通り、ビルディング１１４およびツリー１１６の撮影されたイメージを用いて生成される３次元のモデルであり得る。ストリート１０２は、ビルディング１１４およびツリー１１６と並んで走る。
【００１３】
いくつかのアバター（即ち、車）１０４、１０６、１０８および１１０は、ストリート１０２上の位置に示される。各アバター１０４、１０６、１０８および１１０は、ストリート１０２上のアバターの位置にジオコード化された関連付けられたパノラマイメージを有する。パノラマイメージは、アバターを取り囲んで３６０度、コンテンツを含み得る。しかし、パノラマの一部のみが、例えばビューポートを介して、一度にユーザに表示され得る。概略図１００において、ユーザに表示されるパノラマの一部は、各アバターの向きによって示される。アバター１０４、１０６、１０８および１１０は、それぞれ向き１２４、１２６、１２２、１２０を有する。
【００１４】
アバター１０４は、ポイント１１８に対面する向き１２４を有する。アバター１０４のビューポートは、アバター１０４の位置にジオコード化されたパノラマの一部を表示する。ビューポートの中に表示されるパノラマの一部は、ポイント１１８を含む。本発明の実施形態は、仮想モデル１１２を用いて、アバター１０４の位置からアバター１０６、１０８および１１０の位置までをナビゲートする。
【００１５】
本発明の第１の実施形態（以下、スイッチングレーン実施形態という）において、ユーザは、レーン間でナビゲートし得る。スイッチングレーン実施形態は、ユーザがアバター１０４のパノラマからアバター１０６のパノラマまでをナビゲートすることを可能にする。アバター１０６のパノラマは、ストリート１０２の異なるレーンの中にあることを除いて、アバター１０４のパノラマに類似する位置にジオコード化される。アバター１０４およびアバター１０６が同じ向きを有する場合、パノラマは異なる位置にジオコード化されるため、それらの対応するビューポートは、異なるコンテンツを表示する。ビューポートにおいて表示されるコンテンツを変更することは、ユーザが方向を失うことであり得る。スイッチングレーン実施形態は、仮想モデル１１２上のポイント１１８に対面するようにアバター１０６を向ける。この方法において、アバター１０６のビューポートの中に表示されるパノラマの一部は、アバター１０４のビューポートの中に表示されるパノラマの一部と同じコンテンツを含む。この方法において、スイッチングレーン実施形態は、レーン間のスイッチングを、方向を失うことのより少ないものにする。
【００１６】
本発明の第２の実施形態（以下、ウォークアラウンド実施形態という）において、ユーザは、異なる観察点からオブジェクトを比較的容易に見得る。ユーザは、彼／彼女がオブジェクトを一巡している感覚を得られ得る。ウォークアラウンド実施形態は、ユーザがアバター１０４のパノラマからアバター１０８のパノラマまでをナビゲートすることを可能にする。アバター１０８の位置は、例えば、ユーザによって選択され得る。例えば、ユーザは、マップ上の位置を選択することか、またはキーボード上の矢印ボタンを押すことによってアバター１０８の位置を選択し得る。アバター１０４およびアバター１０６が同じ向きを有する場合、パノラマは異なる位置にジオコード化されるため、それらの対応するビューポートは、異なるコンテンツを表示し、アバター１０４のビューポートにおいて表示される対象（ｉｎｔｅｒｅｓｔ）のオブジェクトは、アバター１０６のビューポートにおいて表示されないことがある。ウォークアラウンド実施形態は、仮想モデル１１２上のポイント１１８に対面するようにアバター１０８を向ける。この方法において、アバター１０６のビューポートの中に表示されるパノラマの一部は、アバター１０４のビューポートの中に表示されるパノラマの一部と同じコンテンツを含む。結果として、ユーザは、異なる観察点からのオブジェクトを比較的容易に見得る。
【００１７】
一実施形態において、アバター１０４とアバター１０８との間でユーザに変わり目（ｔｒａｎｓｉｔｉｏｎ）が表示され得る。変わり目は、アバター１０４とアバター１０８との間のアバター位置に対する中間のパノラマを示し得る。中間のパノラマも、ポイント１１８に対面するように向けられ得る。
【００１８】
本発明の第３の実施形態（以下、クリックアンドゴー（ｃｌｉｃｋ−ａｎｄ−ｇｏ）実施形態という）において、ユーザは、第１のパノラマのオブジェクトの位置に従って、新たな位置において第２のパノラマイメージにナビゲートし得る。クリックアンドゴー実施形態は、ユーザがアバター１０４のパノラマからアバター１１０のパノラマまでをナビゲートすることを可能にする。アバター１１０の位置は、仮想モデル１１２上のポイント１１８に最も近い利用可能なパノラマの位置である。ポイント１１８は、第１のパノラマにおけるユーザによる選択に従って決定され得る。
【００１９】
複数の実施形態において、アバター１１０は、ポイント１１８に対面する向き１２０または異なる向き１２８を有し得る。向き１２８は、ストリート１０２の向きの向きであり得る。
【００２０】
仮想モデル１１２上のポイント１１８に従うアバター１１０を選択することによって、クリックアンドゴー実施形態は、仮想モデル１１２を用いて、パノラマイメージ間でナビゲートする。下記に述べられる通り、一実施形態において、仮想モデル１１２は、パノラマイメージのコンテンツを用いて生成される。
【００２１】
一実施例において、クリックアンドゴー実施形態は、ユーザがオブジェクトを比較的近くで見ることを可能にし得る。その実施例において、ユーザは、第１のパノラマの中のオブジェクトを選択し得、そのオブジェクトに近い第２のパノラマがロードされる。さらに、そのオブジェクトを含む第２のパノラマの一部は、ビューポートの中に表示され得る。この方法において、パノラマイメージ間でナビゲートするためのパノラマイメージのコンテンツを用いることは、満足するというユーザ体験を比較的多くもたらし、方向を失うというユーザ体験を比較的少なくもたらす。
【００２２】
一実施例において、パノラマビューアは、アバター１０４とアバター１０８との間の変わり目を表示し得る。変わり目は、アバター１０４とアバター１０８との間のアバター位置に対する中間のパノラマを表示し得る。中間のパノラマも、ポイント１１８に対面するように向けられ得る。
【００２３】
図２Ａ〜Ｄは、さらなる詳細において、パノラマイメージデータの中のナビゲーションを促進する方法を説明する概略図である。
【００２４】
図２Ａは、モデル上のポイント（例えば、図１におけるポイント１１８）がどのように生成され得るかを示す概略図２００である。概略図２００は、ビルディング２６２およびツリー２６４を示す。仮想モデル２０２は、ビルディング２６２およびツリー２６４を表す。モデル２０２は、下記に詳述される通り、イメージコンテンツを用いて生成され得る。概略図２００はまた、ビルディング２６２およびツリー２６４の撮影されたイメージ２６６を示す。イメージ２６６は、ビューポートを介してユーザに表示される、ストリートレベルから撮影されたパノラマイメージの一部であり得る。ポイント２６８は、イメージ２６６上に示される。一部の実施形態（例えば、スイッチングレーン実施形態およびウォークアラウンド実施形態）において、ポイント２６８は、イメージ２６６の中心であり得る。他の実施形態（例えば、クリックアンドゴー実施形態）において、ポイント２６８は、入力デバイス（例えば、マウス）を用いてユーザによって選択され得る。
【００２５】
視線２１２は、ポイント２６８を介してカメラ視点２１０から延ばされる。一実施例において、カメラ視点２１０は、写真のイメージ２６６を撮影するのに用いられるカメラの焦点であり得る。その実施例において、イメージ２６６とカメラ視点２１０との間の距離は、焦点距離２７０である。
【００２６】
ポイント２０４は、視線２１２と仮想モデル２０２との間の交点である。ポイント２０４は、図２Ｂ〜Ｄにおいて示される通り、ストリートレベルパノラマイメージ間でナビゲートするために用いられ得る。
【００２７】
図２Ｂは、スイッチングレーン実施形態の一実施例を示す概略図２２０である。視線２１２とモデル２０２上のポイント２０４とは、ストリート２０８上の位置２１４を有するイメージを用いて決定される。位置２１４に近い位置２０６から撮影されるパノラマイメージは、ストリート２０８の異なるレーンの中にあることを除いて、図２Ｂにおいてまた識別される。位置２０６を有するパノラマのイメージは、ポイント２０４に対面するように向けられる。
【００２８】
図２Ｃは、ウォークアラウンド実施形態の一実施例を示す概略図２３０である。視線２１２とモデル２０２上のポイント２０４とは、位置２１４から撮影されたイメージを用いて決定される。位置２３２を有するパノラマイメージが、例えば、ユーザによって選択され得る。位置２３２を有するパノラマイメージは、ポイント２０４に対面するように向けられる。
【００２９】
図２Ｄは、クリックアンドゴー実施形態の一実施例を示す概略図２５０である。視線２１２とモデル２０２上のポイント２０４とは、位置２１４を有するイメージを用いて決定される。位置２０４に近い位置２５２を有するパノラマイメージが選択される。一実施例において、図２Ｄに示される通り、ポイント２０４は、位置２５２からストリート２０８に垂直であり得る。別の実施例において、位置２５２は、ポイント２０４から仮想モデル２０２に垂直であり得る。位置２５２を有するパノラマイメージは、ポイント２０４に対面するように向けられるか、またはストリート２０８の方向に対面するように向けられるかし得る。
【００３０】
図３は、本発明の一実施形態に従って、パノラマイメージデータ内でナビゲートする方法３００を説明するフローチャートである。方法３００は、ステップ３０２において、第１のパノラマイメージを向けることから開始する。ステップ３０４において、図２Ａについての実施例に対して述べられる通り、視線が、第１のパノラマイメージの向きの方向において延ばされる。視線はまた、パノラマイメージ上のユーザに選択されたポイントに従って決定され得る。ステップ３０６において、視線と仮想モデルとの間で交点が決定される。仮想モデルは、イメージコンテンツを用いて決定され得る。
【００３１】
複数の実施形態において、その交点は、パノラマイメージ間でナビゲートするためのいくつかの方法において用いられ得る。例えば、スイッチングレーン実施形態またはウォークアラウンド実施形態において、第２のパノラマイメージは、ステップ３１０において選択され得る。スイッチングレーン実施形態において、第２のパノラマイメージは、異なるレーンにあることを除いて、第１のパノラマイメージと同様の位置を有する。ウォークアラウンド実施形態において、第２のパノラマイメージは、例えばユーザによって選択され得る。第２のパノラマイメージは、ステップ３１６において交点に対面するように向けられる。ステップ３１６の後に、方法３００は終了する。
【００３２】
クリックアンドゴー実施形態において、第２のパノラマイメージは、図２Ｄについて述べられる通り、ステップ３０８においてその交点の近く（例えば、選択されるか、または予め定義されるかする交点の距離内）に存在するように存在し得る。ステップ３１４において、第２のパノラマイメージはその交点に対面するように向けられるか、または第２のパノラマイメージは他の方向に向けられるかし得る。例えば、第２のパノラマイメージは、ストリートの方向に向けられ得る。ステップ３１４の後に、方法３００は終了する。
【００３３】
図４は、本発明の一実施形態に従って、イメージデータから仮想モデルを生成する方法４００を説明するフローチャートである。
【００３４】
方法４００は、ステップ４０２から開始する。ステップ４０２において、イメージの特徴が識別される。一実施形態において、その特徴は、後続の比較のためにイメージから抽出される。このことは、図５Ａ〜５Ｂについて下記にさらに詳述される。一実施形態において、用いられるイメージは、ストリートレベルパノラマイメージであり、ストリートレベルパノラマイメージは、走行のルートに沿って互いに近くの位置から撮影される。
【００３５】
ステップ４０４において、隣のイメージの中の特徴が照合される。一実施形態において、特徴を一致させることは、スピルツリー（ｓｐｉｌｌ  ｔｒｅｅ）を構成することを含み得る。このことは、図５Ｃについて下記にさらに詳述される。
【００３６】
ステップ４０６において、例えば３次元空間におけるポイントとして、特徴の位置が計算される。一実施形態において、ポイントは、ステップ４０４において決定されるような一致する特徴の対を用いて、立体の三角測量（ｓｔｅｒｅｏ  ｔｒｉａｎｇｕｌａｔｉｏｎｓ）を計算することによって決定される。３次元空間におけるポイントを計算する方法は、図６〜７について下記にさらに詳述される。ステップ４０６の結果は、一群のポイント（ａ  ｃｌｏｕｄ  ｏｆ  ｐｏｉｎｔｓ）である。
【００３７】
ステップ４０８において、前面の平面は、ステップ４０６において計算される一群のポイントに基づいて推定される。一実施形態において、ステップ４０８は、適用最適化アルゴリズム（ａｄａｐｔｉｖｅ  ｏｐｔｉｍｉｚａｔｉｏｎ  ａｌｇｏｒｉｔｈｍ）またはベストフィットアルゴリズム（ｂｅｓｔ  ｆｉｔ  ａｌｇｏｒｉｔｈｍ）を用いることを含み得る。一実施形態において、ステップ４０８は、平面を掃引すること（ｓｗｅｅｐｉｎｇ  ａ  ｐｌａｎｅ）（例えば、図９について下記に述べられる通り、その平面がストリートに整列されること）を含む。
【００３８】
ステップ４１０において、ストリート平面は、ストリートの位置に基づいて推定される。ステップ４０８において推定された前面の平面とともにこれらのストリート平面は、複数の２次元イメージの中に示されるオブジェクトに対応する仮想モデルを形成するために用いられる。
【００３９】
図５Ａ〜Ｃは、方法４００に従って、イメージにおける特徴を識別および一致させる方法の一実施例を示す。
【００４０】
図５Ａは、イメージ５０２およびイメージ５０４を図示する。イメージ５０２およびイメージ５０４は、例えば、異なる観察点からの同一のビルディングおよびツリーの２つの写真を表す。一実施形態において、イメージ５０２およびイメージ５０４は、ストリートレベルパノラマイメージの一部であり得る。２つのイメージ５０２および５０４は、異なる観察点を用いることを除いて、近くの位置から撮影され得る。
【００４１】
一実施形態において、イメージ５０２および５０４は、固定された８つのカメラのローゼット（ｒｏｓｅｔｔｅ）を有する移動車両から撮影され得る。８つのカメラは、異なる観察点から同時に８つのイメージを撮影する。８つのイメージは次いで、合成され（ｓｔｉｔｃｈｅｄ  ｔｏｇｅｔｈｅｒ）、パノラマを形成し得る。イメージ５０２は、車両に対して垂直に方向付けられた８つのカメラローゼットの中の第１のカメラからの合成されていないイメージ（ｕｎｓｔｉｔｃｈｅｄ  ｉｍａｇｅ）であり得る。イメージ５０４は、後の時点の間に撮影された、第１のカメラに隣接した第２のカメラからの合成されていないイメージであり得る。
【００４２】
図５Ｂは、方法４００のステップ４０４に従って、識別された／抽出された代表的な特徴を有するイメージ５０２およびイメージ５０４を示す。イメージ５０２は、代表的な特徴５０６、５０８および５１２を含む。イメージ５０４は、代表的な特徴５１０、５１４および５１６を含む。６つの代表的な特徴のみが示されているが、実際は、各イメージに対して識別され、かつ、抽出された数千の特徴が存在し得る。
【００４３】
一実施形態において、特徴を抽出するステップは、対象ポイント検出および特徴記述を含み得る。対象ポイント検出は、条件に従ってイメージの中のポイントを検出し、イメージバリエーション（例えば、輝度および観察点におけるバリエーション）のもとで好ましくは再現可能である。各対象ポイントの隣が特徴である。各特徴は、特徴記述によって表される。特徴記述は、好ましくは独特である。
【００４４】
一実施例において、高速化ロバスト特徴（Ｓｐｅｅｄｅｄ  Ｕｐ  Ｒｏｂｕｓｔ  Ｆｅａｔｕｒｅｓ）（ＳＵＲＦ）アルゴリズムは、隣のイメージから特徴を抽出するために用いられる。ＳＵＲＦアルゴリズムは、例えば、Ｈｅｒｂｅｒｔ  Ｂａｙ，  Ｔｉｎｎｅ  Ｔｕｙｔｅｌａａｒｓ，  Ｌｕｃ  Ｖａｎ  Ｇｏｏｌ，「ＳＵＲＦ：Ｓｐｅｅｄ  Ｕｐ  Ｒｏｂｕｓｔ  Ｆｅａｔｕｒｅｓ」，  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  Ｎｉｎｔｈ  Ｅｕｒｏｐｅａｎ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ，２００６年５月において述べられる。ＳＵＲＦアルゴリズムは、対象ポイント検出および特徴記述のスキームを含む。ＳＵＲＦアルゴリズムにおいて、各特徴記述はベクトルを含む。一実施形態において、ベクトルは１２８次元であり得る。一実施例において、イメージがストリートレベルから撮影されるパノラマである場合に、ＳＵＲＦアルゴリズムは、各イメージにおいて、４〜５千個の特徴を抽出し得、１〜２メガバイトのサイズの特徴記述子ファイルをもたらす。
【００４５】
図５Ｃは、照合される抽出された特徴を示す。図５Ｃは、一致５２０および一致５２２を図示する。一致５２０は、特徴５１２および特徴５１４を含む。一致５２２は、特徴５０６および特徴５１６を含む。図５Ｃにおいて表される通り、イメージ５０２の中の全ての特徴は、必ずしもイメージ５０４の中に一致する特徴を有さない。また、逆の場合も同様である。例えば、イメージ５０４の中で覆い隠されるツリーの一部を特徴５０８が示すため、イメージ５０２の中の特徴５０８は、イメージ５０４の中に一致する特徴を有さない。別の実施例において、イメージ５０４の中の特徴５１０は、例えば、特徴識別において不明瞭のため、イメージ５０２の中に一致を有さない。特徴識別は、可能な限り厳密であるべきである。しかし、照明、向きおよびその他の要因におけるバリエーションに起因して、一部の不明瞭は起こり得る。この理由のために、その不明瞭を補償する特徴照合スキームが必要とされる。一実施例の特徴照合スキームは、下記に述べられる。
【００４６】
一実施例において、各特徴（例えば特徴５１２）は、特徴記述子によって表される。各特徴記述子は、１２８次元ベクトルを含む。第１の特徴と第２の特徴との間の類似性は、第１の特徴記述子のベクトルと第２の特徴記述子のベクトルとの間のユークリッドの距離を探し出すことによって決定され得る。
【００４７】
第２のイメージの中の特徴の中での、第１のイメージの中の特徴に対する一致は、例えば次の通りに決定され得る。第１に、第１のイメージの中の特徴の（例えば、１２８次元空間における）最も近い隣のものが、第２のイメージの中の特徴の中から決定される。第２に、第１のイメージの中の特徴の（例えば、１２８次元空間における）２番目に近い隣のものが、第２のイメージの中の特徴の中から決定される。第３に、第１のイメージの中の特徴と第２のイメージの中の最も近い隣の特徴との間の第１の距離が決定され、第１のイメージの中の特徴と第２のイメージの中の２番目に近い隣の特徴との間の第２の距離が決定される。第４に、特徴類似性比率が、第１の距離を第２の距離で割ることによって計算される。特徴類似性比率が特定の閾値未満である場合、第１のイメージの中の特徴と第２のイメージの中のその特徴の最も近い隣のものとの間の一致が存在する。
【００４８】
特徴類似性比率が低すぎる場合、必ずしも十分な一致は決定されない。特徴類似性比率が高すぎる場合、多すぎる誤った一致が存在する。一実施形態において、特徴類似性比率は、０．５以上かつ０．９５以下であり得る。
【００４９】
一実施形態において、その最も近い隣のものとその２番目に近い隣のものとは、第２のイメージの中の特徴のスピルツリーを構成することによって決定され得る。スピルツリーは、最も近い隣のものを厳密に近似し、効率的にプロセッサリソースを用いる。一実施例において、比較されるイメージがストリートレベルから撮影されたイメージである場合に、イメージの各対に対して、数百の一致した特徴の対が存在し得る。一致した特徴の各対に対して、例えば立体の三角測量を用いて、３次元空間におけるポイントが決定され得る。
【００５０】
図６および７は、３次元の立体の三角測量を用いて、一致した特徴に基づいて３次元空間におけるポイントを決定する一実施例を示す。一実施形態において、例えば方法４００のステップ４０６をインプリメントするために、この技術が用いられる。一致した特徴の対に対応する３次元空間におけるポイントを決定するために、一致した特徴の対に対して視線が構成され、視線の交点に基づいてポイントが決定される。このことは、下記にさらに詳述される。
【００５１】
図６は、どのように視線が形成されるかを示す一実施例６００を示す。図６に示される通り、視線６０６は、イメージ６０８の特徴６０４を介して、イメージ６０８のカメラ視点６０２からの視線を投射することまたは延ばすことによって形成され得る。実施例６００において、カメラ視点６０２は、イメージ６０８を撮影するために用いられるカメラの焦点に対応する。イメージ６０８とカメラ視点６０２との間の距離は、焦点距離６１０と等しい。
【００５２】
一致する特徴の各々に対する視線が形成された後、３次元空間におけるポイントは決定され得る。図７は、どのようにポイントが決定されるかを図示する一実施例７００を示す。
【００５３】
実施例７００において、２つのカメラローゼット７０２および７０４が示される。一実施形態において、これらの２つのカメラローゼットは同じであり得る（例えば、同じカメラローゼットが、異なる位置および異なる時点においてイメージを撮影するのに用いられ得る）。各カメラローゼット７０２および７０４は、一致した特徴を有するイメージを含む。実施例７００において、カメラローゼット７０２は、カメラローゼット７０４の特徴７０８に一致した特徴７０６を含む。図７に示される通り、第１の視線７１０は、カメラローゼット７０２のカメラ視点から、特徴７０６を介して視線７１０を延ばすことによって形成される。同様に、第２の視線７１２は、カメラローゼット７０４のカメラ視点から、特徴７０８を介して視線７１２を延ばすことによって形成される。視線７１０および視線７１２の交点は、３次元ポイント７１４である。複数の実施形態において、例えば、特徴の識別および一致における不明瞭に起因して、視線７１０および７１２は、実際にポイント７１４で交わらないことがある。視線７１０および７１２が実際に交わらない場合、それらの視線が最も近づいた位置での線分が決定され得る。これらの状況において、用いられる３次元ポイント７１４は、その線分の中間点であり得る。
【００５４】
複数の実施形態において、上記に述べられる通り、実施例６００および７００によって示されるステップは、一群の３次元ポイントを決定するために、各対の一致した特徴に対して繰り返される。
【００５５】
図８Ａは、ビルディング８０６およびツリー８０８を含む３次元空間の一実施例８００を示す。実施例８００はまた、ストリート８１０を含む。一実施形態において、ビルディング８０６およびツリー８０８の写真のイメージは、ストリート８１０に沿って移動する車両から撮影され得る。第２の写真のイメージが位置８０４から撮影され得る一方、第１の写真のイメージは、位置８０２から撮影され得る。
【００５６】
本明細書内に述べられる通り、本発明の一実施形態に従って、特徴が第１および第２のイメージから抽出される。一致する特徴は識別され、一致する特徴の各対に対して、例えば立体の三角測量を用いて３次元ポイントが決定される。これは、一群の３次元ポイント（例えば、これらは図８Ｂにおいて示される）をもたらす。図８Ｂは、一群の３次元ポイント８５２が図示される一実施例８５０を示す。
【００５７】
図９Ａ〜Ｃは、３次元空間における複数のポイントに基づいて前面の表面を決定する方法の一実施例を示す。この実施例は、単に例示的であり、例えば、方法４００のステップ４０８をインプリメントするために用いられ得る。他の実施形態において、その表面は、例えば最小自乗アルゴリズムまたは適用最適化アルゴリズムのようなベストフィットアルゴリズムまたは回帰分析アルゴリズムを用いて決定され得る。適用最適化アルゴリズムの実施例は、限定されることなく、ヒルクライミングアルゴリズム（ｈｉｌｌ−ｃｌｉｍｂｉｎｇ  ａｌｇｏｒｉｔｈｍ）、確率的なヒルクライミングアルゴリズム（ｓｔｏｃｈａｓｔｉｃ  ｈｉｌｌ−ｃｌｉｍｂｉｎｇ  ａｌｇｏｒｉｔｈｍ）、Ａ−スターアルゴリズム（Ａ−ｓｔａｒ  ａｌｇｏｒｉｔｈｍ）および遺伝的アルゴリズムを含む。
【００５８】
図９Ａは、ストリート９０８および一群の３次元ポイント９１０を図示する。ストリート９０８に平行に走るのは、前面の平面９０２である。動作中において、前面の平面９０２は、ストリート９０８から外側の軸上に平行移動される。外側に移動する各位置において、前面の平面９０２の特定の範囲内のポイントの数が計測される。図９Ａにおいて、その範囲は、破線９１２および９１４によって示される。図９Ａにおいて示される通り、ゼロ個のポイントが破線９１２と９１４との間に位置する。
【００５９】
図９Ｂは、ストリート９０８から外側の軸上に平行移動させられた前面の平面９０４を示す。図９Ｂにおいて、前面の平面９０４は、図９Ａにおいて示される前面の平面９０２のそれよりも長い距離をストリート９０８から外側に移動させられる。結果として、３つのポイントが、前面の平面９０４からのその範囲内に存在する。
【００６０】
一実施形態において、前面の平面に対する位置（例えば、特定される数の近くのポイントを有する位置）が探し出されない場合、前面の平面の角度は、ストリートに対して変化され得る。従って、図９Ｃは、ストリート９０８に対して平行でない角度において存在する前面の平面９０６を示す。図９Ｃに示される通り、前面の平面９０６に近い５つのポイントが存在する。
【００６１】
本明細書内に述べられる通り、本発明に従った仮想モデルは、前面の平面から形成される。前面の平面は、イメージコンテンツに従って生成され得る。一実施形態において、モデルはまた、１つ以上のストリート平面（例えば、ストリートに平行な平面）を含み得る。一実施形態において、ストリート平面は、ストリートの既知の位置（例えば、イメージを撮影するために用いられるカメラに対するストリートの位置を知り得る）に基づいて計算され得る。仮想モデルは、２次元または３次元であり得る。
【００６２】
図１０は、本発明の一実施形態に従って、イメージデータ内をナビゲートするために３次元のモデルを用いるシステム１０００を示す。図１０に示される通り、システム１０００は、クライアント１００２を含む。クライアント１００２は、例えばネットワーク（単数または複数）１０４４を渡って、１つ以上のサーバー１０２４と通信する。クライアント１００２は、汎用コンピュータであり得る。あるいは、クライアント１００２は、例えば携帯電話のような特化されたコンピューティングデバイスであり得る。同様に、サーバー（単数または複数）１０２４は、クライアント１００２にデータを供給する能力のある任意のコンピューティングデバイスを用いてインプリメントされ得る。
【００６３】
サーバー１０２４は、ウェブサーバーを含み得る。ウェブサーバーは、ＨＴＴＰ応答を用いてハイパーテキスト転送プロトコル（ＨＴＴＰ）要求に応答するソフトウェアコンポーネントである。例示的な実施例の通り、ウェブサーバーは、限定なく、Ａｐａｃｈｅ  ＨＴＴＰ  Ｓｅｒｖｅｒ、Ａｐａｃｈｅ  Ｔｏｍｃａｔ、Ｍｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｒｖｅｒ、ＪＢｏｓｓ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｅｒ、ＷｅｂＬｏｇｉｃ  Ａｐｐｌｉｃａｔｉｏｎ  ＳｅｒｖｅｒまたはＳｕｎ  Ｊａｖａ（登録商標）  Ｓｙｓｔｅｍ  Ｗｅｂ  Ｓｅｒｖｅｒであり得る。ウェブサーバーは、コンテンツ（例えば、ハイパーテキストマークアップ言語（ＨＴＭＬ）、拡張可能なマークアップ言語（ＸＭＬ）、文書、ビデオ、イメージ、マルチメディアフィーチャー（ｍｕｌｔｉｍｅｄｉａ  ｆｅａｔｕｒｅｓ）、またはそれらの任意の組合せ）を供給し得る。この実施例は、厳密に例示的であり、本発明を限定しない。
【００６４】
サーバー１０２４は、下記に論述される通り、マップタイル１０１４、プログラム１０１６、構成情報１０１８および／またはパノラマタイル１０２０を供給し得る。
【００６５】
ネットワーク（単数または複数）１０４４は、データ通信を搬送し得る任意のネットワークか、または複数のネットワークの組合せかであり得、本明細書内でコンピュータネットワークと呼ばれ得る。ネットワーク（単数または複数）１０４４は、限定されることなく、ローカルエリアネットワーク、中域エリアネットワーク（ｍｅｄｉｕｍ  ａｒｅａ  ｎｅｔｗｏｒｋ）および／または広域ネットワーク（例えば、インターネット）を含み得る。ネットワーク（単数または複数）１０４４は、限定されることなく、ワールドワイドウェブのプロトコルおよび／またはサービスを含むプロトコルおよび技術をサポートし得る。介在のウェブサーバー、ゲートウェイまたは他のサーバーが、特定のアプリケーションまたは環境に依存するシステム１０００のコンポーネント間で提供され得る。
【００６６】
サーバー１０２４は、パノラマデータベース１０２８およびモデルデータベース１０３０に結合される。パノラマデータベース１０２８は、イメージを格納する。一実施例において、そのイメージは、ストリートレベルから撮影された写真のイメージであり得る。同じ位置から撮影された写真のイメージが合成され、パノラマを形成し得る。モデルデータベース１０３０は、パノラマデータベース１０２８におけるイメージに対応する３次元モデルを格納する。３次元モデルがどのように生成され得るかについての一実施例は、下記にさらに詳細に論述される。注釈データベース１０３２は、ユーザに生成された注釈を格納する。
【００６７】
パノラマデータベース１０２８、モデルデータベース１０３０および注釈データベース１０３２の各々は、リレーショナルデータベース管理システム上でインプリメントされ得る。リレーショナルデータベースの実施例は、Ｏｒａｃｌｅ、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬ  ＳｅｒｖｅｒおよびＭｙＳＱＬを含む。これらの実施例は、例示的であり、本発明を限定することは意図されない。
【００６８】
サーバー１０２４は、ナビゲーションコントローラ１０３２を含む。ナビゲーションコントローラ１０３２は、パノラマ間でナビゲーションを促進するために、イメージコンテンツから生成されるモデルデータベース１０３０におけるモデルを用いる。ナビゲーションコントローラ１０３２は、ナビゲーションデータ１０４２からの入力を受容する。ナビゲーションデータ１０４２は、現在の位置および向きについてのデータ、ならびに所望の次の位置についてのデータを含む。例えば、クリックアンドゴー実施形態において、ナビゲーションデータ１０４２は、ユーザが行きたい場所の第１のパノラマイメージ、および第１のパノラマイメージにおける位置を含み得る。ナビゲーションデータ１０４２は、例えば、ＨＴＴＰパラメータとしてエンコードされたデータを有するＨＴＴＰ要求であり得る。
【００６９】
ナビゲーションデータ１０４２に応答して、ナビゲーションコントローラ１０３２は、モデルデータベース１０３０におけるモデルに基づいて、パノラマデータベース１０２８における新たなパノラマを決定する。ナビゲーションコントローラ１０３２はまた、第２のパノラマを表示するための向きを決定する。ナビゲーションコントローラ１０３２は、構成情報１０１８における新たなパノラマおよび向きならびにパノラマタイル１０２０を出力する。
【００７０】
ナビゲーションコントローラ１０３２は、スイッチングレーンコントローラ１０３４、クリックアンドゴーコントローラ１０３６およびウォークアラウンドコントローラ１０３８を含み得る。本発明の一実施形態に従って、スイッチングレーンコントローラ１０３４、クリックアンドゴーコントローラ１０３６およびウォークアラウンドコントローラ１０３８の各々は、ナビゲーションデータ１０４２に応答する。
【００７１】
スイッチングレーンコントローラ１０３４は、本発明のスイッチングレーン実施形態に従って動作する。ナビゲーションデータ１０４２に応答して、スイッチングレーンコントローラ１０３４は、パノラマデータベース１０２８から第２のパノラマイメージを選択する。第２のパノラマイメージは、異なるレーンの中にあることを除いて、第１のパノラマイメージの位置に近い。一実施例において、第２のパノラマイメージは、パノラマデータベース１０２８の中の最も近いパノラマイメージであって、異なるレーンの中に存在するパノラマイメージであり得る。スイッチングレーンコントローラ１０３４は、ナビゲーションデータ１０４２における第１のパノラマの位置および向きに従って、モデルデータベース１０３０の中のモデルにおける位置を決定する。一実施形態において、位置を決定するために、スイッチングレーンコントローラ１０３４は、図２Ａについて述べられる通り、その位置からのその向きの方向における視線を延ばす。スイッチングレーンコントローラ１０３４は次いで、図２Ｂについて述べられる通り、第２のパノラマの向きを決定する。最後に、スイッチングレーンコントローラ１０３４は、パノラマタイル１０２０単位での第２のパノラマと、構成情報１０１８における第２のパノラマの向きとを返す。
【００７２】
クリックアンドゴーコントローラ１０３６は、本発明のクリックアンドゴー実施形態に従って動作する。ナビゲーションデータ１０４２に応答して、クリックアンドゴーコントローラ１０３６は、パノラマデータベース１０２８から第２のパノラマイメージを選択する。クリックアンドゴーコントローラ１０３６は、ナビゲーションデータ１０４２から第１のパノラマイメージの中の位置に基づいて、第２のパノラマイメージを選択する。第１のパノラマイメージの中の位置は、ユーザの入力（例えば、マウス）によって決定され得る。クリックアンドゴーコントローラ１０３６は、図２Ａについて述べられる通り、モデルデータベース１０４２の中のモデルにおける位置を決定するために、第１のパノラマイメージの中の位置を用いる。クリックアンドゴーコントローラ１０３６は次いで、モデルにおける位置に基づいて第２のパノラマイメージを選択する。第２のパノラマイメージは、図２Ｄについて述べられる通り、モデルにおける位置に近い。一実施例において、モデル上の位置がストリートに垂直になるように、第２のパノラマイメージは位置を有し得る。別の実施例において、第２のパノラマイメージは、仮想モデルに垂直である位置を有し得る。クリックアンドゴーコントローラ１０３６は次いで、第２のパノラマの向きを決定する。第２のパノラマは、モデルにおける位置に対面するように向けられ得るか、または第２のパノラマは、ストリートの方向において向けられ得る。最後に、クリックアンドゴーコントローラ１０３６は、パノラマタイル１０２０単位での第２のパノラマと、構成情報１０１８におけるその向きとを返す。
【００７３】
ウォークアラウンドコントローラ１０３８は、ナビゲーションデータ１０４２に応答して、パノラマデータベース１０２８から第２のパノラマイメージを選択する。第２のパノラマイメージは、例えば、ユーザによって入力されるナビゲーションデータ１０４２における位置に従って、選択され得る。ウォークアラウンドコントローラ１０３８は、ナビゲーションデータ１０４２における第１のパノラマの位置および向きに従って、モデルデータベース１０３０の中のモデルにおける位置を決定する。その位置を決定するために、ウォークアラウンドコントローラ１０３８は、図２Ａについて述べられる通り、その位置からのその向きの方向における視線を延ばす。ウォークアラウンドコントローラ１０３８は、上述された通り、第２のパノラマの向きを決定する。最後に、ウォークアラウンドコントローラ１０３８は、パノラマタイル１０２０単位での第２のパノラマと、構成情報１０１８における第２のパノラマの向きとを返す。
【００７４】
一実施形態において、クライアント１００２は、マッピングサービス１００６およびパノラマビューア１００８を含み得る。マッピングサービス１００６およびパノラマビューア１００８の各々は、スタンドアローンのアプリケーションであるか、またはブラウザ１００４内で実行されるかし得る。複数の実施形態において、ブラウザ１００４は、Ｍｏｚｉｌｌａ  ＦｉｒｅｆｏｘまたはＭｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒであり得る。パノラマビューア１００８は、ブラウザ１００４内でスクリプトとして（例えば、ブラウザ１００４内でプラグインとして）実行されるか、またはブラウザのプラグイン（例えば、Ａｄｏｂｅ（Ｍａｃｒｏｍｅｄｉａ）Ｆｌａｓｈプラグイン）内で実行するプログラムとして実行されるかし得る。
【００７５】
マッピングサービス１００６は、例えば、マップタイルのグリッドへのビューポートとして、マップのビジュアル表現を表示する。マッピングシステム１００６は、マークアップおよびスクリプティングの要素の組合せを用いて（例えば、ＨＴＭＬおよびＪａｖａ（登録商標）ｓｃｒｉｐｔを用いて）インプリメントされる。要求されたマップタイルがローカルキャッシュメモリの中にそれまでにキャッシュされていないことを想定して、ビューポートが移動させられるとき、マッピングサービス１００６は、サーバー（単数または複数）１０２４からのさらなるマップタイル１０１４を要求する。特に、マップタイル１０１４を供給するサーバー（単数または複数）は、パノラマタイル１０２０、構成情報１０１８、または本明細書内に含まれる他のデータを供給するサーバー（単数または複数）と同一または異なるサーバー（単数または複数）であり得る。
【００７６】
一実施形態において、マッピングサービス１００６は、そのブラウザ１００４がサーバー（単数または複数）１０２４からパノラマビューア１００８に対してプログラム１０１６をダウンロードするように進むことと、プログラム１０１６を起動するのに必要な任意のプラグインをそのブラウザ１００４がインスタンス化するように進むこととを要求し得る。プログラム１０１６は、フラッシュファイルか、または実行可能なコンテンツの一部の他の形態かであり得る。パノラマビューア１００８は、プログラム１０１６に従って実行および動作する。
【００７７】
パノラマビューア１００８は、サーバー（単数または複数）１０２４からの構成情報１０１８を要求する。構成情報は、ロードされるパノラマについてのメタ情報であって、他のパノラマへのパノラマ内のリンクについての情報を含むメタ情報を含む。一実施形態において、構成情報は、拡張可能なマークアップ言語（ＸＭＬ）のような形態で与えられる。パノラマビューア１００８は、例えば、パノラマイメージの形態で、またはパノラマイメージタイルの形態で、パノラマに対するビジュアルアセット（ｖｉｓｕａｌ  ａｓｓｅｔ）１０２０を取り出す。別の実施形態において、ビジュアルアセットは、関連のあるファイルフォーマットにおいて構成情報を含む。パノラマビューア１００８は、構成情報１０１８およびビジュアルアセット１０２０から生成されるような、パノラマおよびさらなるユーザインターフェース要素のビジュアル表現をクライアントディスプレイ上に提示する。ユーザがパノラマのビジュアル表現を操作するために入力デバイスを操作するとき、パノラマビューア１００８は、ビジュアル表現を更新し、必要に応じてさらなる構成情報およびビジュアルアセットをダウンロードするように進む。
【００７８】
ブラウザ１００４、マッピングサービス１００６およびパノラマビューア１００８の各々は、ハードウェア、ソフトウェア、ファームウェアまたはそれらの任意の組合せにおいてインプリメントされ得る。
【００７９】
図１１は、本発明の一実施形態に従って、イメージデータから仮想モデルを生成するシステム１１００を示す。システム１１００は、パノラマデータベース１０２８およびモデルデータベース１０３０を含み、パノラマデータベース１０２８およびモデルデータベース１０３０はそれぞれ、プロセッシングパイプラインサーバー（ｐｒｏｃｅｓｓｉｎｇ  ｐｉｐｅｌｉｎｅ  ｓｅｒｖｅｒ）１１２４に結合される。プロセッシングパイプラインサーバーは、任意のコンピューティングデバイスであり得る。コンピューティングデバイスの実施例は、限定されることなく、コンピュータ、ワークステーション、分散コンピューティングシステム、エンベデッドシステム、スタンドアローン電子デバイス、ネットワーク化されたデバイス、モバイルデバイス、ラックサーバー、テレビジョン、または他の種類のコンピューティングシステムを含む。
【００８０】
プロセッシングパイプラインサーバー１１２４は、特徴抽出器（ｆｅａｔｕｒｅ  ｅｘｔｒａｃｔｏｒ）１１１６、特徴照合器（ｆｅａｔｕｒｅ  ｍａｔｃｈｅｒ）１１１８、ポイント計算器（ｐｏｉｎｔ  ｃａｌｃｕｌａｔｏｒ）１１２０および表面推定器（ｓｕｒｆａｃｅ  ｅｓｔｉｍａｔｏｒ）１１２２を含む。特徴抽出器１１１６、特徴照合器１１１８、ポイント計算器１１２０および表面推定器１１２２の各々は、ハードウェア、ソフトウェア、ファームウェアまたはそれらの任意の組合せにおいてインプリメントされ得る。
【００８１】
特徴抽出器１１１６は、パノラマデータベース１０２８からイメージ１１０２を選択する。一実施形態において、イメージ１１０２は、ストリートレベルの合成されていないパノラマイメージである２つのイメージを含み得る。その２つのイメージは、異なる観察点から撮影され得ることを除いて、互いに近い位置から撮影され得る。一実施形態において、イメージは、固定された８つのカメラのローゼットを有する移動車両から撮影され得る。８つのカメラは、異なる観察点から同時に８つのイメージを撮影する。８つのイメージは次いで、合成され、パノラマを形成し得る。第１のイメージは、８つのカメラのローゼットにおける第１のカメラからの合成されていないイメージであり得る。第２のイメージは、後の時点の間に撮影された、第１のカメラに隣接した第２のカメラからの合成されていないイメージであり得る。
【００８２】
特徴抽出器１１１６は、イメージ１１０２から特徴を抽出する。一実施形態において、特徴抽出器１１１６は、例えば、対象ポイント検出および特徴記述のような２つ以上の機能を実行し得る。対象ポイント検出は、条件に従ってイメージの中のポイントを検出し、イメージバリエーション（例えば、輝度および観察点におけるバリエーション）のもとで好ましくは再現可能である。各対象ポイントの近隣が次いで、特徴として記述される。これらの特徴は、特徴記述によって表される。特徴記述は、好ましくは独特である。
【００８３】
一実施形態において、高速化ロバスト特徴（ＳＵＲＦ）アルゴリズムは、イメージから特徴を抽出するために用いられ得る。ＳＵＲＦアルゴリズムは、対象ポイント検出および特徴記述のスキームを含む。ＳＵＲＦアルゴリズムにおいて、各特徴記述はベクトルを含む。一実施形態において、ベクトルは１２８次元であり得る。一実施例において、イメージがストリートレベルから撮影されるパノラマである場合に、ＳＵＲＦアルゴリズムは、各イメージにおいて、４〜５千個の特徴を抽出し得、１〜２メガバイトのサイズの特徴記述子ファイル１１０４をもたらす。
【００８４】
特徴照合器１１１８は、各特徴記述子ファイル１１０４を用いて、２つのイメージにおける特徴を一致させる。一実施例において、各特徴は、特徴記述子ファイル１１０４における特徴記述子によって表される。各特徴記述子は、１２８次元ベクトルを含む。第１の特徴と第２の特徴との間の類似性は、第１の特徴のベクトルと第２の特徴のベクトルとの間のユークリッドの距離を探し出すことによって決定され得る。
【００８５】
第２のイメージの中の特徴の中での、第１のイメージの中の特徴に対する一致は、次の通りに決定され得る。第１に、特徴照合器１１１８は、第２のイメージの中の特徴の中から決定される、第１のイメージの中の特徴の（例えば、１１８次元空間における）最も近い隣のものを決定する。第２に、特徴照合器１１１８は、第２のイメージの中の特徴の中から決定される、第１のイメージの中の特徴の２番目に近い隣のものを決定する。第３に、特徴照合器１１１８は、第１のイメージの中の特徴と第２のイメージの中の最も近い隣の特徴との間の第１の距離を決定し、第１のイメージの中の特徴と第２のイメージの中の２番目に近い隣の特徴との間の第２の距離を決定する。第４に、特徴照合器１１１８は、第１の距離を第２の距離で割ることによって特徴類似性比率を計算する。特徴類似性比率が特定の閾値未満である場合、第１のイメージの中の特徴と第２のイメージの中のその特徴の最も近い隣のものとの間の一致が存在する。
【００８６】
特徴照合器１１１８は、例えばスピルツリーを構成することによって、その最も近い隣のものとその２番目に近い隣のものとを決定し得る。
【００８７】
特徴類似性比率が低すぎる場合、特徴照合器１１１８は、十分な一致を決定し得ない。特徴類似性比率が高すぎる場合、特徴照合器１１１８は、多すぎる誤った一致を決定し得る。一実施形態において、特徴類似性比率は、０．５以上かつ０．９５以下であり得る。実施例において、イメージがストリートレベルから撮影されたパノラマである場合に、数百の一致した特徴が存在し得る。その一致した特徴は、一致した特徴１１０６として、ポイント計算器１１２０に送られる。
【００８８】
ポイント計算器１１２０は、一致した特徴１１０６の各対に対して３次元空間におけるポイントを決定する。３次元空間におけるポイントを決定するために、視線は、各特徴に対して形成されるか、または決定され、そのポイントは、その特徴に対する視線の交点に基づいて決定される。一実施形態において、その視線が交わらない場合、そのポイントは、２つの光線を接続する最も短い線分の中間点に基づいて決定される。ポイント計算器１１２０の出力は、一群の３次元ポイント１１０８（例えば、一致した特徴の各対に対する１つのポイント）である。
【００８９】
表面推定器１１２２は、一群のポイント１１０８に基づいて前面の平面を決定する。表面推定器１１２２は、例えば最小自乗アルゴリズムまたは適用最適化アルゴリズムのようなベストフィットアルゴリズムまたは回帰分析アルゴリズムを用いることによって前面の表面を決定し得る。適用最適化アルゴリズムの実施例は、限定されることなく、ヒルクライミングアルゴリズム、確率的なヒルクライミングアルゴリズム、Ａ−スターアルゴリズムおよび遺伝的アルゴリズムを含む。あるいは、表面推定器１１２２は、図９Ａ〜Ｃについて上述される通り、軸に沿って平面の最良の位置を決定するために、平面を平行移動させることによって前面の表面を決定し得る。
【００９０】
表面推定器１１２２はまた、１つ以上の（ｍｏｒｅ  ｏｒ  ｍｏｒｅ）ストリート平面を決定し得る。ストリート平面および前面の平面はともに、表面の平面１１１０を形成する。表面推定器１１２２は、モデルデータベース１０３０において表面の平面１１１０を格納する。
【００９１】
発明を実施するための形態の節（課題を解決するための手段の節でなく、要約の節でもない）が特許請求の範囲を解釈するために用いられることが意図されていることは正しく理解されたい。課題を解決するための手段の節および要約の節は、発明者（１人または複数人）によって企図される通り、１つ以上だが全てではない本発明の例示的な実施形態を定め得、従って、いかなる方法においても、本発明および添付の特許請求の範囲を限定することは意図されていない。
【００９２】
本発明は、それらの特定される機能および関係のインプリメンテーションを示す機能的な構成単位の支援を用いて上述された。これらの機能的な構成単位の境界は、記述の便宜のために本明細書内に任意に定義された。それらの特定される機能および関係が適切に行われる限り、代替の境界は定義され得る。
【００９３】
特定の実施形態についての前述の解説は、本発明の全体的な本質を十分に明かすものであり、本発明は、（当業者の知識を応用することによって）特定の実施形態のような様々な用途に対して、必要以上の実験なしに、本発明の全体的な概念から逸脱することなく、難なく改良および／または適合され得る。それゆえ、そのような適合および改良は、本明細書で与えられる教示および示唆に基づいて、開示される実施形態の均等物の意味内および範囲内であることが意図される。本発明の詳述についての専門用語または表現法が、教示および示唆の観点において当業者によって解釈され得るように、本明細書での表現法または専門用語が解説の目的のためであって限定の目的のためではないことは、理解されるべきである。
【００９４】
本発明の広さおよび範囲は、上述された例示的な任意の実施形態によって限定されるべきではないが、続く特許請求の範囲およびそれらの均等物に従ってのみ定義されるべきである。
【図２Ｂ】
0005678131.tif 000002
【図２Ｃ】
0005678131.tif 000003
【図２Ｄ】
0005678131.tif 000004
【図３】
0005678131.tif 000005
【図４】
0005678131.tif 000006
【図５Ａ】
0005678131.tif 000007
【図５Ｂ】
0005678131.tif 000008
【図５Ｃ】
0005678131.tif 000009
【図１０】
0005678131.tif 000010
【図１１】
0005678131.tif 000011
【図１】
0005678131.tif 000012
【図２Ａ】
0005678131.tif 000013
【図６】
0005678131.tif 000014
【図７】
0005678131.tif 000015
【図８】
0005678131.tif 000016
【図９】
0005678131.tif 000017