(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0003】
画像の注釈の作成を促進する新しい方法およびシステムが必要である。
【課題を解決するための手段】
【0004】
本発明は、画像に注釈をつけることに関する。一実施形態では、本発明は、ユーザが、2次元画像を見ながら、3次元オブジェクトに対応する注釈を作成できるようにする。一実施形態では、これは、選択オブジェクト(例えば、境界ボックス等)を、複数の2次元画像から作成された3次元モデル上に投影することによって、達成される。選択オブジェクトは、3次元モデルの一部分に対応する第1の画像を見ながら、ユーザによって入力される。3次元モデル上への投影に対応する位置が決定され、第1の画像を見ながらユーザによって入力されたコンテンツが、位置と関連付けられる。コンテンツは、注釈を形成するように、位置情報と共に記憶される。注釈は、位置に対応する他の画像と共に、回収し、表示することができる。
【0005】
本発明のさらなる実施形態、特徴、および利点、ならびに本発明の種々の実施形態の構造および動作は、添付の図面を参照して、以下により詳細に記載される。
本願明細書は、例えば、以下の項目も提供する。
(項目1)
注釈を作成し、表示するための方法であって、
(1)選択オブジェクトを3次元モデル上に投影することであって、該選択オブジェクトは、該3次元モデルの一部分に対応する第1の画像を見ながら、ユーザによって入力される、ことと、
(2)該3次元モデル上への該投影に対応する位置を決定することと、
(3)該位置を、該第1の画像を見ながら該ユーザによって入力されたコンテンツと関連付けることと、
(4)注釈を形成するように、該位置と共に該コンテンツを記憶することと、
(5)該位置に対応する第2の画像と共に、該注釈を表示することと
を含む、方法。
(項目2)
前記第1の画像は、地上レベルから撮影されたパノラマ画像である、項目1に記載の方法。
(項目3)
(5)は、前記注釈をパノラマ画像と共に表示することを含む、項目1に記載の方法。
(項目4)
(5)は、前記注釈を地図と共に表示することを含む、項目1に記載の方法。
(項目5)
(6)複数の2次元画像から前記3次元モデルを作成することをさらに含む、項目1に記載の方法。
(項目6)
(6)は、
(a)第3の画像の第1の複数の特徴と、第4の画像の第2の複数の特徴とを識別することと、
(b)複数対の特徴を決定することであって、各対の特徴は、該第1の複数の特徴からの第1の特徴と、該第1の特徴と類似する、該第2の複数の特徴からの第2の特徴とを含む、ことと、
(c)該複数対の特徴に対応する複数の点を決定することと、
(d)該複数の点に基づき、外観平面を決定することと
を含む、項目5に記載の方法。
(項目7)
(a)は、高速化ロバスト特徴(Speeded Up Robust Features:SURF)アルゴリズムを使用することを含む、項目6に記載の方法。
(項目8)
(b)は、
(i)前記第1の複数の特徴のスピルツリーを決定することと、
(ii)前記第2の画像内の各特徴の近似の最も近傍のものおよび近似の2番目に近傍のものについて、該スピルツリーを検索することと、
(iii)該近似の最も近傍のものおよび該近似の2番目に近傍のものの特徴類似比率を、閾値と比較することと
を含む、項目6に記載の方法。
(項目9)
前記閾値は、0.5から0.95である、項目8に記載の方法。
(項目10)
(c)は、
(i)前記複数対の特徴の各対の特徴について、前記第3の画像の第1のカメラ視点から、該対からの前記第1の特徴を通って延在する第1の射線と、前記第4の画像の第2のカメラ視点から、該対からの前記第2の特徴を通って延在する第2の射線とを決定する、ことと、
(ii)該複数対の特徴の各対の特徴について、該第1の射線および該第2の射線の交点に対応する点を決定することと
を含む、項目6に記載の方法。
(項目11)
注釈を作成し、表示するためのシステムであって、
注釈ジェネレータを含むサーバであって、
該注釈ジェネレータは、
第1の画像を見ながらユーザによって入力される選択オブジェクトを、複数の2次元画像に対応する3次元モデル上に投影することと、
該3次元モデル上への該投影に対応する位置を決定することと、
該位置を、該ユーザによって入力されたコンテンツと関連付けることと
によって第1の注釈を作成する、
サーバと、
該注釈ジェネレータによって作成された注釈を記憶する、該サーバに連結される注釈データベースと
を備え、該サーバは、該注釈データベースから該第1の注釈を回収し、表示するために、該第1の注釈をブラウザに転送する、
システム。
(項目12)
前記第1の画像は、地上レベルから撮影されたパノラマ画像である、項目11に記載のシステム。
(項目13)
前記サーバは、第2の画像と共に表示するために、前記第1の注釈を前記ブラウザに転送する、項目11に記載のシステム。
(項目14)
前記サーバは、地図と共に表示するために、前記第1の注釈を前記ブラウザに転送する、項目11に記載のシステム。
(項目15)
注釈を作成し、表示するためのシステムであって、
第1の画像を見ながら、ユーザが選択オブジェクトおよび注釈のコンテンツを入力できるようにする、注釈エディタと、
注釈ジェネレータであって、
該選択オブジェクトを、複数の2次元画像に対応する3次元モデル上に投影することと、
該3次元モデル上への該投影に対応する位置を決定することと、
該位置を該コンテンツと関連付けることと
によって第1の注釈を作成する、
注釈ジェネレータと、
第2の画像と共に該第1の注釈を表示する、注釈ビューアと
を備える、システム。
(項目16)
第3の画像の第1の複数の特徴と、第4の画像の第2の複数の特徴とを識別する、特徴エクストラクタと、
複数対の特徴を決定する特徴マッチャであって、各対の特徴は、該第1の複数の特徴からの第1の特徴と、該第2の複数の特徴からの第2の特徴とを含み、該第1の特徴は、該第2の特徴と類似する、特徴マッチャと、
該複数対の特徴に対応する複数の点を決定する、点カリキュレータと、
該複数の点に基づき、前記3次元モデルを作成する、表面エスティメータと
をさらに備える、項目16に記載のシステム。
(項目17)
前記特徴エクストラクタは、高速化ロバスト特徴アルゴリズムを使用する、項目16に記載のシステム。
(項目18)
前記特徴マッチャは、前記第1の複数の特徴のスピルツリーを決定し、前記第4の画像内の各特徴の近似の最も近傍のものおよび近似の2番目に近傍のものについて、該スピルツリーを検索し、該近似の最も近傍のものおよび該近似の2番目に近傍のものの特徴類似比率が、閾値を下回るかどうかを決定する、項目16に記載のシステム。
(項目19)
前記特徴類似比率の前記閾値は、0.5から0.95である、項目18に記載のシステム。
(項目20)
前記点カリキュレータは、前記複数対の特徴の各対の特徴について、前記第3の画像の第1のカメラ視点から、該対からの前記第1の特徴を通って延在する第1の射線と、前記第4の画像の第2のカメラ視点から、該対からの前記第2の特徴を通って延在する第2の射線と、該第1の射線および該第2の射線の交点に対応する、3次元空間内の点とを決定する、項目16に記載のシステム。
(項目21)
注釈を作成し、表示するための装置であって、
選択オブジェクトを3次元モデル上に投影するための手段であって、該選択オブジェクトは、該3次元モデルの一部分に対応する第1の画像を見ながら、ユーザによって入力される、手段と、
該3次元モデル上への該投影に対応する位置を決定するための手段と、
該位置を、該第1の画像を見ながら該ユーザによって入力されたコンテンツと関連付けるための手段と、
注釈を形成するように、該位置と共に該コンテンツを記憶するための手段と、
該位置に対応する第2の画像と共に該注釈を表示するための手段と
を備える、装置。
【発明を実施するための形態】
【0007】
要素が最初に現れる図面は、典型的に、対応する参照番号の最左の数字によって示される。図中、同様の参照番号は、同一または機能的に同一の要素を示し得る。
【0008】
本発明は、画像に注釈をつけることに関する。以下の本発明の詳細な説明では、「一実施形態(one embodiment)」、「一実施形態(an embodiment)」、「一例示的な実施形態(an example embodiment)」等への言及は、記載される実施形態が、特定の特徴、構造、または特性を含み得るが、すべての実施形態が、特定の特徴、構造、または特性を含むわけではないことを示す。さらに、そのような句は、必ずしも同一の実施形態を参照するわけではない。さらに、一実施形態に関連して、特定の特徴、構造、または特性が記載される時は、明示的に記載されているか否かに関わらず、他の実施形態に関連して、そのような特徴、構造、または特性を達成するように、当業者の知識内で提示される。
【0009】
一実施形態では、本明細書に記載されるように、本発明は、ユーザが、2次元画像を見ながら、3次元オブジェクトに対応する注釈を作成できるようにする。一実施形態では、これは、選択オブジェクトを、複数の2次元画像から作成された3次元モデル上に投影することによって達成される。選択オブジェクトは、3次元モデルの一部分に対応する第1の画像を見ながら、ユーザによって入力される。3次元モデル上への投影に対応する位置が決定され、第1の画像を見ながらユーザによって入力されたコンテンツが、位置と関連付けられる。コンテンツは、注釈を形成するように、位置情報と共に記憶される。注釈は、位置に対応する他の画像と共に、回収し、表示することができる。
【0010】
図1は、本発明の一実施形態による、注釈を作成するための一実施例100を図示する、略図である。実施例100は、3次元空間内に、木112および建物110を含む。また、実施例100は、異なる観察点から木112および建物110を撮影した、画像102ならびに画像104も含む。画像102および画像104のそれぞれは、2次元画像である。一実施形態では、画像102および画像104は、街路上の異なる点から撮影された、写真画像であり得る。
【0011】
実施例100に示されるように、ユーザは、画像102を見ながら、選択オブジェクト122(例えば、境界ボックス)およびテキスト106を入力し得る。選択オブジェクト122は、建物110を示す画像102の一部分を含む。以下により詳細に記載されるように、本発明の実施形態は、選択オブジェクト122に対応する位置を決定する。示される実施例では、選択オブジェクト122について決定される位置は、建物110に対応する位置である。テキスト106は、本発明に従って注釈を形成するように、選択オブジェクト122について決定される位置(例えば、建物110の位置)と共に記憶される。記憶された注釈は、例えば、別の画像(例えば、画像104)または地図と共に、回収され、表示され得る。
図1では、位置108において画像104の最上部に表示された、注釈が示されている。
【0012】
図2Aおよび
図2Bは、本発明による、注釈を作成し、表示することを、より詳細に図示する、略図である。
図2Aは、本発明の一実施形態による、作成された注釈の位置を決定するために、画像102を使用することを図示する、略図である。
図2Bは、注釈が作成された後に、それを表示することを図示する、略図である。
【0013】
図2Aを参照すると、注釈の位置を決定するために、画像102を使用することを明示する、一実施例200が図示される。実施例100(
図1を参照)にあるように、実施例200は、木112および建物110を含む。また、実施例200は、木112および建物110を撮影した画像102も含む。
【0014】
図2に図示されるように、選択オブジェクト122は、2次元画像102の一部分を選択するために、ユーザによって入力される。示される実施例では、選択オブジェクト122は、建物110を示す画像102の一部分を囲む、長方形または境界ボックスである。しかしながら、選択オブジェクト122は、画像102の一部分を選択する、いずれかの形状であり得る。他の実施例では、選択オブジェクト122は、例えば、円、投げ縄、または点であり得る。
【0015】
カメラ視点202から、選択オブジェクト122が3次元モデル206上に投影される。選択オブジェクト122の3次元モデル206上への投影204は、注釈の位置または位置情報を決定するために使用される。一実施形態では、3次元モデル206は、外観平面および街路平面を含み得る。どのように3次元モデル206が生成されるかの一実施例は、以下により詳細に記載される。
【0016】
図2Aに示される実施例では、カメラ視点202は、画像102を撮影するために使用される、カメラの焦点であり得る。カメラは、焦点距離208を有し得る。射線210等の射線は、カメラ視点202および選択オブジェクト122を使用して決定される。一実施形態では、各射線は、3次元モデル206と交わるように、焦点202から選択オブジェクト122の点を通って延在する。3次元モデル206との交点は、注釈の位置を決定するために使用される。実施形態では、決定される位置は、例えば、選択オブジェクト122の中心に対応する位置、または選択オブジェクト122上の点に対応する位置であり得る。
【0017】
一実施形態では、注釈の決定される位置は、選択オブジェクト122の3次元モデル206上への投影204に対応する、3次元空間内のジオメトリである。ジオメトリは、例えば、1組の座標または三角形メッシュによって、定義され得る。本明細書に記載されるように、位置は、注釈を形成するように、テキスト106または他のコンテンツと関連付けられ得る。この注釈は、回収し、他の画像または地図と共に表示するために、例えば、データベースに記憶され得る。
【0018】
図2Bは、実施例200で作成された注釈を、例えば、画像104等の別の画像上に表示することの一実施例250を描写する、略図である。画像104は、建物110および木112を示す画像である。画像104の観察点は、実施例200で決定された位置を含み、そのため、画像104は、位置に対応すると言うことができる。結果として、実施例200で作成された注釈のコンテンツは、画像104上の位置108に表示される。実施形態では、注釈のテキストは、注釈に関連付けられる位置情報に対応する画像104の一部分を指す、情報バルーン内に表示され得る。一実施形態では、位置に対応する画像104の一部分は、縁取りまたはハイライトされ得る。一実施形態では、実施例200で作成された注釈は、地図上に表示され得る。これらの実施例は、厳密に一例であり、本発明を制限することは意図されない。
【0019】
図3は、本発明の一実施形態による、注釈を作成し、表示するための方法300を明示する、フローチャートである。方法300は、ステップ302で開始する。
【0020】
ステップ302で、ユーザは、注釈を作成するための境界ボックス(例えば、選択オブジェクト)を選択する。境界ボックスは、地上レベルから撮影された画像の一部分を選択するために使用され得る。一実施形態では、ユーザは、例えば、マウス等の入力デバイスを用いて、画像に境界ボックスの周辺を描写することによって、境界ボックスを選択し得る。
【0021】
ステップ304で、境界ボックス(選択オブジェクト)は、3次元モデル上に投影される。一実施形態では、投影は、カメラ視点からの射線を、境界ボックスを通して3次元モデルに延在させ、射線および3次元モデルの交点を決定することによって、実施され得る。この一実施例は、
図2Aを参照して上述されている。
【0022】
ステップ306で、ステップ304で実施された投影に対応する位置が、ユーザによって入力されたコンテンツ(例えば、注釈)と共に記憶される。一実施例として、ステップ306で、注釈は、データベースに記憶され得る。実施形態では、ユーザによって入力されるコンテンツは、テキスト、HTML、XML、画像、動画、または他のマルチメディアコンテンツを含み得る。
【0023】
ステップ308で、ステップ306で記憶された注釈が、ステップ304の投影の位置に対応する第2の画像と共に、またはその上に表示される。一実施例として、第2の画像は、地上レベルのパノラマ画像であり得る。一実施形態では、注釈は、地図と共に、またはその上に表示され得る。
【0024】
図4は、本発明の一実施形態による、画像データから3次元モデルを作成するための方法400を明示する、フローチャートである。方法400は、ステップ402で開始する。
【0025】
ステップ402で、画像の特徴が識別される。一実施形態では、特徴は、後の比較のために、画像から抽出される。これは、
図5A〜
図5Bを参照して、以下により詳細に記載される。一実施形態では、使用される画像は、移動経路に沿った、互いに対する近隣位置から撮影された、地上レベルのパノラマ画像である。
【0026】
ステップ404で、近傍画像内の特徴が一致される。一実施形態では、特徴を一致させることは、スピルツリーを構築することを含み得る。これは、
図5Cを参照して、以下により詳細に記載される。
【0027】
ステップ406で、例えば、3次元空間内の点として、特徴の位置が計算される。一実施形態では、点は、ステップ404で決定された複数対の一致する特徴を使用して、ステレオ三角測量を計算することによって、決定される。どのように3次元空間内の点を計算するかは、
図6〜
図7を参照して、以下により詳細に記載される。ステップ406の結果は、点の群である。
【0028】
ステップ408で、ステップ406で計算された点の群に基づき、外観平面が推定される。一実施形態では、ステップ408は、適応的最適化アルゴリズムまたは最良適合アルゴリズムを使用することを含み得る。一実施形態では、ステップ408は、例えば、
図9を参照して以下に記載されるように、街路と整列される平面を走査することを含む。
【0029】
ステップ410で、街路の位置に基づき、街路平面が推定される。これらの街路平面は、ステップ408で推定された外観平面と共に、複数の2次元画像に示されるオブジェクトに対応する3次元モデルを形成するために使用される。
【0030】
図5A〜
図5Cは、方法400に従って、画像内の特徴をどのように識別し、一致させるかの一実施例を図示する。
【0031】
図5Aは、画像502および画像504を描写する。画像502および画像504は、例えば、異なる観察点からの同一の建物および木の2つの写真を表す。一実施形態では、画像502および画像504は、地上レベルのパノラマ画像の部分であり得る。2つの画像502および504は、近隣位置ではあるが、異なる観察点から撮影され得る。
【0032】
一実施形態では、画像502および504は、8つのカメラのロゼットが取り付けられた、移動する車両から撮影され得る。8つのカメラは、異なる観察点から8つの画像を同時に撮影する。8つの画像は、パノラマを形成するために、続いて、共に合わせられ得る。画像502は、車両に対して垂直に向けられた8つのカメラのロゼットの第1のカメラからの、合わせられていない画像であり得る。画像504は、後の時点中に撮影された、第1のカメラに隣接する第2のカメラからの、合わせられていない画像であり得る。
【0033】
図5Bは、方法400のステップ404に従って識別/抽出された、代表的な特徴を有する、画像502および画像504を図示する。画像502は、代表的な特徴506、508、および512を含む。画像504は、代表的な特徴510、514、および516を含む。6つの代表的な特徴のみが示されるが、実際には、各画像に、数千の識別および抽出される特徴が存在し得る。
【0034】
一実施形態では、特徴を抽出するステップは、関心点検出および特徴記述を含み得る。関心点検出は、条件に従って画像内の点を検出し、好ましくは、輝度および観察点の変化等の画像変化下で、再現可能である。各関心点の近辺は、特徴である。各特徴は、特徴ディスクリプタによって表現される。特徴ディスクリプタは、好ましくは、示差的である。
【0035】
一実施例では、近傍画像から特徴を抽出するために、高速化ロバスト特徴(Speeded Up Robust Features:SURF)アルゴリズムが使用される。SURFアルゴリズムは、例えば、Herbert Bay, Tinne Tuytelaars, Luc Van Gool, “SURF: Speeded Up Robust Features”, Proceedings of the Ninth European Conference on Computer Vision, May 2006に記載される。SURFアルゴリズムは、関心点検出および特徴記述スキームを含む。SURFアルゴリズムでは、各特徴ディスクリプタは、ベクトルを含む。一実装では、ベクトルは、128次元であり得る。画像が、地上レベルから撮影されたパノラマである、一実施例では、SURFアルゴリズムは、各画像中に、4千〜5千の特徴を抽出し、結果として、1〜2メガバイトのサイズの特徴ディスクリプタファイルをもたらし得る。
【0036】
図5Cは、一致される、抽出された特徴を図示する。
図5Cは、一致520および一致522を描写する。一致520は、特徴512および特徴514を含む。一致522は、特徴506および特徴516を含む。
図5Cに示されるように、画像502内のすべての特徴が、画像504内に一致する特徴を有するわけではなく、逆もまた同様である。例えば、画像502内の特徴508は、木の一部分を示す特徴508が、画像504では隠れているため、画像504内に一致する特徴を有さない。別の実施例では、画像504内の特徴510は、例えば、特徴識別の不正確さのため、画像502内に一致を有さない。特徴識別は、可能な限り正確であるべきである。しかしながら、照明、配向、および他の因子の変化により、ある程度の不正確さが生じ得る。この理由のため、この不正確さを補正する、特徴一致スキームが必要とされる。一例示的な特徴一致スキームが、以下に記載される。
【0037】
一実施形態では、特徴512等の各特徴は、特徴ディスクリプタによって表現される。各特徴ディスクリプタは、128次元ベクトルを含む。第1の特徴と第2の特徴との間の類似性は、第1の特徴ディスクリプタのベクトルと第2の特徴ディスクリプタのベクトルとの間のユークリッド距離を探すことによって、決定され得る。
【0038】
第2の画像内の特徴の中での第1の画像内の特徴の一致は、例えば、次のように決定され得る。第1に、第2の画像内の特徴の中から、第1の画像内の特徴の最も近傍のもの(例えば、128次元空間内)が決定される。第2に、第2の画像内の特徴の中から、第1の画像内の特徴の2番目に近傍のもの(例えば、128次元空間内)が決定される。第3に、第1の画像内の特徴と第2の画像内の最も近傍のものの特徴との間の第1の距離が決定され、第1の画像内の特徴と第2の画像内の2番目に近傍のものの特徴との間の第2の距離が決定される。第4に、第1の距離を第2の距離で除算することによって、特徴類似比率が計算される。特徴類似比率が、特定の閾値未満の場合、第1の画像内の特徴内の特徴と第2の画像内のその最も近傍のものとの間に、一致が存在する。
【0039】
特徴類似比率が低すぎる場合、十分な一致が決定されない。特徴類似比率が高すぎる場合、あまりに多くの偽一致が存在する。一実施形態では、特徴類似比率は、0.5から0.95であり得る。
【0040】
一実施形態では、最も近傍のものおよび2番目に近傍のものは、第2の画像内の特徴のスピルツリーを構築することによって、決定され得る。スピルツリーは、最も近傍のものを綿密に近似し、プロセッサ資源を効率的に使用する。比較されている画像が、地上レベルから撮影されたパノラマ画像である、一実施例では、各対の画像に、数百の複数対の一致された特徴が存在し得る。各対の一致された特徴について、例えば、ステレオ三角測量を使用して、3次元空間内の点を決定することができる。
【0041】
図6および
図7は、3次元ステレオ三角測量を使用して、一致された特徴に基づき、3次元空間内の点を決定する、一実施例を図示する。一実施形態では、この技術は、例えば、方法400のステップ406を実施するために使用される。1対の一致された特徴に対応する3次元空間内の点を決定するために、1対の一致された特徴について、射線が構築され、射線の交点に基づき、点が決定される。これは、以下により詳細に記載される。
【0042】
図6は、どのように射線が形成されるかを図示する、一実施例600を示す。
図6に示されるように、射線606は、画像608のカメラ視点602からの射線を、画像608の特徴604を通して投影することによって、または延在させることによって、形成することができる。実施例600では、カメラ視点602は、画像608を撮影するために使用される、カメラの焦点に対応する。画像608とカメラ視点602との間の距離は、焦点距離610と等しい。
【0043】
一致する特徴のそれぞれについて射線が形成された後、3次元空間内の点が決定され得る。
図7は、どのように点が決定されるかを描写する、一実施例700を図示する。
【0044】
実施例700では、2つのカメラロゼット702および704が示される。一実施形態では、これらの2つのカメラロゼットは、同一であり得る(例えば、異なる位置および異なる時点で画像を撮影するために、同一のカメラロゼットを使用することができる)。各カメラロゼット702および704は、一致された特徴を有する画像を含む。実施例700では、カメラロゼット702は、カメラロゼット704の特徴708と一致される、特徴706を含む。
図7に示されるように、第1の射線710は、カメラロゼット702のカメラ視点からの射線710を、特徴706を通して延在させることによって形成される。同様に、第2の射線712は、カメラロゼット704のカメラ視点からの射線712を、特徴708を通して延在させることによって形成される。射線710および射線712の交点は、3次元点714である。実施形態では、例えば、特徴識別および一致の不正確さのため、射線710および712は、点714で実際に交わらない場合がある。射線710および712が実際に交わらない場合、射線が最も近接する線分を決定することができる。これらの状況では、使用される3次元点714は、線分の中点であり得る。
【0045】
上述される実施形態では、3次元点の群を決定するために、各対の一致された特徴について、実施例600および700によって図示されるステップが繰り返される。
【0046】
図8Aは、建物806および木808を含む、3次元空間の一実施例800を示す。また、実施例800は、街路810も含む。一実施形態では、建物806および木808の写真画像は、街路810に沿って移動する車両から撮影され得る。第1の写真画像は、場所802から撮影され得、一方、第2の写真画像は、場所804から撮影され得る。
【0047】
本明細書に記載されるように、本発明の一実施形態に従って、第1および第2の画像から特徴が抽出される。一致する特徴が識別され、各対の一致する特徴について、例えば、ステレオ三角測量を使用して、3次元点が決定される。これは、
図8Bに図示されるもの等の3次元点の群をもたらす。
図8Bは、3次元点852の群が描写される、一実施例850を図示する。
【0048】
図9A〜
図9Cは、3次元空間内の複数の点に基づき、どのように外観表面を決定するかの一実施例を図示する。本実施例は、例示にすぎず、例えば、方法400のステップ408を実施するために使用することができる。他の実施形態では、表面は、例えば、最小二乗アルゴリズムもしくは適応的最適化アルゴリズム等の最良適合アルゴリズムまたは回帰分析アルゴリズムを使用して、決定され得る。適応的最適化アルゴリズムの例には、山登りアルゴリズム、確率的山登りアルゴリズム、エースター(A−star)アルゴリズム、および遺伝的アルゴリズムが挙げられるが、これらに限定されない。
【0049】
図9Aは、街路908および3次元点910の群を描写する。外観平面902は、街路908に対して平行に走っている。動作中、外観平面902は、街路908から軸上で外向きに平行移動させられる。外向きに移動する各場所で、外観平面902の特定範囲内の点の数の値が求められる。
図9Aでは、範囲は、点線912および914によって示される。
図9Aに示されるように、ゼロ個の点が、点線912と点線914との間に位置する。
【0050】
図9Bは、街路908から軸上で外向きに平行移動させられた、外観平面904を示す。
図9Bでは、外観平面904は、
図9Aに示される外観平面902より大きな距離だけ、街路908から外向きに移動されている。結果として、3つの点が、外観平面904からの範囲内にある。
【0051】
一実施形態では、外観平面の場所(例えば、指定数の近点を有する場所)が見つからない場合、外観平面の角度は、街路に対して変化され得る。したがって、
図9Cは、街路908に対して非平行角度を有する、外観平面906を示す。
図9Cに示されるように、外観平面906に近接する、5つの点が存在する。
【0052】
本明細書に記載されるように、また、本発明による3次元モデルは、1つ以上の街路平面(例えば、街路に対して平行な平面)を含み得る。一実施形態では、街路平面は、街路の既知の場所(例えば、ある人が、画像を撮影するために使用されたカメラに対する街路の場所を知り得る)に基づき、計算され得る。
【0053】
図10は、本発明の一実施形態による、注釈を作成し、表示するためのシステム1000を示す。
図10に示されるように、システム1000は、クライアント1002を含む。クライアント1002は、例えば、ネットワーク1034を通じて、1つ以上のサーバ1024と通信する。クライアント1002は、汎用コンピュータであり得る。代替として、クライアント1002は、例えば、携帯電話機等の専用コンピューティングデバイスであり得る。同様に、サーバ1024は、データをクライアント1002に供給することができる、いずれかのコンピューティングデバイスを使用して、実装することができる。
【0054】
サーバ1024は、ウェブサーバを含み得る。ウェブサーバは、HTTP応答によって、ハイパーテキスト転送プロトコル(HTTP)要求に応答する、ソフトウェアコンポーネントである。説明に役立つ実例として、ウェブサーバは、制限なく、アパッチ(Apache)HTTPサーバ、アパッチトムキャット(Apache Tomcat)、マイクロソフトインターネット情報サーバ、ジェイボス(JBoss)アプリケーションサーバ、ウェブロジック(WebLogic)アプリケーションサーバ、またはサンジャバ(Sun Java(登録商標))システムウェブサーバであり得る。ウェブサーバは、ハイパーテキストマークアップ言語(HTML)、拡張可能マークアップ言語(XML)、文書、動画、画像、マルチメディア機能、またはこれらのいずれかの組み合わせ等のコンテンツを供給し得る。本例は、厳密に例示であり、本発明を制限しない。
【0055】
サーバ1024は、以下に記載されるように、地図タイル1014、プログラム1016、設定情報1018、および/またはパノラマタイル1020を供給し得る。
【0056】
ネットワーク1034は、データ通信を伝えることができる、いずれかのネットワークまたはネットワークの組み合わせであってもよく、本明細書において、コンピュータネットワークと称される場合がある。ネットワーク1034には、ローカルエリアネットワーク、中規模ネットワーク、および/またはインターネット等の広域ネットワークを挙げることができるが、これらに限定されない。ネットワーク1034は、ワールドワイドウェブプロトコルおよび/またはサービスを含むが、これらに限定されない、プロトコルならびに技術を支援することができる。特定のアプリケーションおよび環境によって、システム1000のコンポーネント間に、中間ウェブサーバ、ゲートウェイ、または他のサーバが提供され得る。
【0057】
サーバ1024は、パノラマデータベース1028、モデルデータベース1030、および注釈データベース1032に連結される。パノラマデータベース1028は、画像を記憶する。一実施形態では、画像は、地上レベルから撮影された写真画像であり得る。同一の位置から撮影された写真画像は、パノラマを形成するために、共に合わせられ得る。モデルデータベース1030は、パノラマデータベース1028内の画像に対応する3次元モデルを記憶する。注釈データベース1032は、ユーザによって生成される注釈を記憶する。
【0058】
パノラマデータベース1028、モデルデータベース1030、および注釈データベース1032のそれぞれは、関係データベース管理システム上に実装され得る。関係データベースの例には、Oracle、Microsoft SQLサーバ、およびMySQLが挙げられる。これらの例は、例示であり、本発明を制限しない。
【0059】
サーバ1024は、注釈ジェネレータ1026を含み得る。注釈ジェネレータ1026は、選択オブジェクト(例えば、境界ボックス)を、モデルデータベース1030内の3次元モデル上に投影する。選択オブジェクトは、画像を見ながら、ユーザによってコンテンツと共に入力され得る。選択オブジェクトおよびコンテンツは、注釈データ1022として、サーバ1024によって受信され得る。注釈ジェネレータ1026は、モデルデータベース1030内の3次元モデル上への投影に対応する位置を決定する。位置は、3次元空間内のジオメトリである。ジオメトリは、例えば、1組の座標または三角形メッシュによって定義され得る。
【0060】
位置が決定されると、注釈ジェネレータ1026は、位置を、ユーザによって入力されたコンテンツと関連付ける。次いで、注釈ジェネレータ1026は、注釈として、位置およびコンテンツを注釈データベース1032に記憶し得る。
【0061】
一実施形態では、クライアント1002は、マッピングサービス1006およびパノラマビューア1008を備えてもよい。マッピングサービス1006およびパノラマビューア1008のそれぞれは、独立型アプリケーションであってもよく、または、ブラウザ1004内で実行され得る。実施形態では、ブラウザ1004は、モジラのファイヤーフォックス(Mozilla Firefox)またはマイクロソフトのインターネットエクスプローラ(Microsoft Internet Explorer)であり得る。パノラマビューア1008は、例えば、ブラウザ1004内のスクリプトとして、ブラウザ1004内のプラグインとして、またはAdobe(Macromedia)Flashプラグイン等のブラウザプラグイン内で実行するプログラムとして、実行することができる。
【0062】
マッピングサービス1006は、ビューポートとして、地図タイルのグリッドに地図の視覚表示を表示する。マッピングシステム1006は、マークアップおよびスクリプト記述要素の組み合わせを使用して、例えば、HTMLおよびJava(登録商標)スクリプトを使用して、実装される。ビューポートが移動される時、要求される地図タイルがまだローカルキャッシュメモリにないと仮定すると、マッピングサービス1006は、サーバ1024から追加の地図タイル1014を要求する。特に、地図タイル1014を供給するサーバは、パノラマタイル1020、設定情報1018、または本明細書に関連する他のデータを供給するサーバと同一のサーバまたは異なるサーバであり得る。
【0063】
一実施形態では、マッピングサービス1006は、ブラウザ1004に、サーバ1024からのパノラマビューア1008のためのプログラム1016のダウンロードを開始し、プログラム1016を走らせるのに必要ないかなるプラグインのインスタンスも作成するように、要求することができる。プログラム1016は、実行可能なコンテンツのFlashファイル、またはいくつかの他の形態であり得る。パノラマビューア1008は、プログラム1016に従って実行し、動作する。
【0064】
パノラマビューア1008は、サーバ1024から設定情報1018を要求する。設定情報は、パノラマ内の他のパノラマへのリンクに関する情報を含む、読み込まれるパノラマに関するメタ情報を含む。一実施形態では、設定情報は、拡張可能マークアップ言語(Extensible Markup Language:XML)等の形態で提供される。パノラマビューア1008は、例えば、パノラマ画像の形態、またはパノラマ画像タイルの形態のパノラマのビジュアルアセット1020を回収する。別の実施形態では、ビジュアルアセットは、関連ファイルフォーマットの設定情報を含む。パノラマビューア1008は、設定情報1018およびビジュアルアセット1020から生成されたものとして、クライアント画面上へのパノラマの視覚表示、および追加のユーザインターフェース要素を提供する。パノラマの視覚表示を操作するために、ユーザが入力デバイスと対話する時、パノラマビューア1008は、必要に応じて、視覚表示を更新し、追加の設定情報およびビジュアルアセットのダウンロードを開始する。
【0065】
パノラマビューア1008は、注釈ビューア1010および注釈エディタ1012を含み得る。注釈エディタ1012は、ユーザが選択オブジェクトおよび注釈のコンテンツを入力できるようにする。一実施例として、ユーザは、マウス等の入力デバイスを使用して、境界ボックスを入力し得る。ユーザは、パノラマビューア1008によって表示されるパノラマ画像の一部分を選択するために、入力デバイスを使用し得る。ユーザが入力し得るコンテンツには、テキスト、HTML、XML、画像、動画、または他のマルチメディアコンテンツが挙げられ得る。
【0066】
ユーザが選択オブジェクト(例えば、境界ボックス)およびコンテンツを入力すると、注釈エディタ1012は、その情報を、注釈データ1022としてサーバ1000に伝送する。一実施例として、注釈データ1022は、HTTPパラメータとして、(ハイパーテキスト転送プロトコル)HTTP要求にパッケージされ得る。代替として、注釈データ1022は、XMLにエンコードされ得る。
【0067】
注釈ビューア1010は、ユーザに注釈を表示する。一実施形態では、パノラマに近い位置を有する各注釈が、パノラマビューア1008内に表示され得る。その実施形態では、設定情報1018は、各注釈のコンテンツおよび各注釈のパノラマ内の位置を含み得る。説明に役立つ実施例では、注釈ビューア1010は、注釈の位置を含むパノラマの範囲を縁取りし得、情報バルーン内に、注釈のコンテンツを表示し得る。
【0068】
ブラウザ1004、マッピングサービス1006、パノラマビューア1008、注釈ビューア1010、および注釈エディタ1012のそれぞれは、ハードウェア、ソフトウェア、ファームウェア、またはこれらのいずれかの組み合わせに実装され得る。
【0069】
図11は、システム1000のための一例示的なブラウザインターフェース1100を示す。例示的なブラウザインターフェース1100は、厳密に例示であり、他のインターフェースが使用され得る。ブラウザインターフェース1100は、ブラウザ1004によって表示され得る(
図10参照)。ブラウザインターフェース1100は、地図インターフェース1104およびパノラマビューポート1102を含む。地図インターフェース1104は、マッピングサービス1006によって表示され得、パノラマビューポート1102は、パノラマビューア1008によって表示され得る。
【0070】
パノラマビューポート1102は、ユーザによって作成された注釈を示す。パノラマビューポート1102は、選択オブジェクト(例えば、境界ボックス)1106と、テキストフィールド1112と、提出ボタン1110とを含む。本実施例では、注釈を入力するために、ユーザは、選択オブジェクト1106によって示されるように、パノラマ画像の一部分を選択し得る。ユーザは、テキストフィールド1112にテキストを入力し得る。いったんユーザが選択オブジェクト1106を作成し、テキストフィールド1112にコンテンツを入力すると、ユーザは、提出ボタン1102を選択し得る。提出ボタン1102を選択することによって、選択オブジェクト1106の位置およびテキストフィールド1112内のコンテンツが、注釈データ1022としてサーバ1024に送信される(
図10参照)。次いで、サーバ1024は、注釈の位置を決定し、注釈を記憶する。この場合も同様に、本実施例は、例示でしかなく、本発明を制限することは意味されない。当業者に明らかであるように、他のインターフェースが使用され得る。
【0071】
また、パノラマビューポート1102は、ユーザによって以前に記憶された注釈も表示する。パノラマビューポート1102は、縁取り1114を含む。縁取り1114は、任意選択であり、パノラマ内の注釈の位置を示す。また、パノラマビューポート1102は、注釈のテキストを表示する、情報バルーン1108も含む。一実施形態では、注釈のテキストおよびパノラマ内の注釈の位置は、設定情報1018の一部である(
図10参照)。
【0072】
図12は、本発明の一実施形態による、画像データから3次元モデルを作成するためのシステム1200を示す。システム1200は、それぞれが、処理パイプラインサーバ1224に連結される、パノラマデータベース1028およびモデルデータベース1030を含む。処理パイプラインサーバ1224は、いずれかのコンピューティングデバイスであり得る。例示的なコンピューティングデバイスには、コンピュータ、ワークステーション、分散コンピューティングシステム、内蔵システム、独立型電子デバイス、ネットワーク接続されたデバイス、携帯デバイス、ラックサーバ、テレビ、または他の種類のコンピューティングシステムが挙げられるが、これらに限定されない。
【0073】
処理パイプラインサーバ1224は、特徴エクストラクタ1216と、特徴マッチャ1218と、点カリキュレータ1220と、表面エスティメータ1222とを含む。特徴エクストラクタ1216、特徴マッチャ1218、点カリキュレータ1220、および表面エスティメータ1222のそれぞれは、ハードウェア、ソフトウェア、ファームウェア、またはこれらのいずれかの組み合わせに実装され得る。
【0074】
特徴エクストラクタ1216は、パノラマデータベース1028から画像1202を選択する。一実施形態では、画像1202は、合わせられていない地上レベルのパノラマ画像である、2つの画像を含み得る。2つの画像は、互いに対して近隣位置ではあるが、異なる観察点から撮影され得る。一実施形態では、画像は、8つのカメラのロゼットが取り付けられた、移動する車両から撮影される。8つのカメラは、異なる観察点から8つの画像を同時に撮影する。8つの画像は、パノラマを形成するために、続いて、共に合わせられ得る。第1の画像は、8つのカメラのロゼット内の第1のカメラからの、合わせられていない画像であり得る。第2の画像は、後の時点中に撮影された、第1のカメラに隣接する第2のカメラからの、合わせられていない画像であり得る。
【0075】
特徴エクストラクタ1216は、画像1202から特徴を抽出する。一実施形態では、特徴エクストラクタ1216は、例えば、関心点検出および特徴記述等、2つ以上の機能を実施し得る。関心点検出は、条件に従って画像内の点を検出し、好ましくは、輝度および観察点の変化等の画像変化下で、再現可能である。次いで、各関心点の近辺が特徴として記述される。これらの特徴は、特徴ディスクリプタによって表現される。特徴ディスクリプタは、好ましくは、示差的である。
【0076】
一実施例では、画像から特徴を抽出するために、高速化ロバスト特徴(Speeded Up Robust Features:SURF)アルゴリズムが使用され得る。SURFアルゴリズムは、関心点検出および特徴記述スキームを含む。SURFアルゴリズムでは、各特徴ディスクリプタは、ベクトルを含む。一実施では、ベクトルは、128次元であり得る。画像が、地上レベルから撮影されたパノラマである、一実施例では、SURFアルゴリズムは、各画像中に、4千〜5千の特徴を抽出し、結果として、1〜2メガバイトのサイズの特徴ディスクリプタファイル1204をもたらし得る。
【0077】
特徴マッチャ1218は、2つの画像内の特徴を一致させるために、各特徴ディスクリプタファイル1204を使用する。一実施例では、各特徴は、特徴ディスクリプタファイル1204内の特徴ディスクリプタによって表現される。各特徴ディスクリプタは、128次元のベクトルを含む。第1の特徴と第2の特徴との間の類似性は、第1の特徴のベクトルと第2の特徴のベクトルとの間のユークリッド距離を探すことによって、決定され得る。
【0078】
第2の画像内の特徴の中での第1の画像内の特徴の一致は、次のように決定され得る。第1に、特徴マッチャ1218は、第2の画像内の特徴の中から決定される、第1の画像内の特徴の最も近傍のもの(例えば、128次元空間内)を決定する。第2に、特徴マッチャ1218は、第2の画像内の特徴の中から決定される、第1の画像内の特徴の2番目に近傍のものを決定する。第3に、特徴マッチャ1218は、第1の画像内の特徴と第2の画像内の最も近傍のものの特徴との間の第1の距離を決定し、特徴マッチャ1218は、第1の画像内の特徴と第2の画像内の2番目に近傍のものの特徴との間の第2の距離を決定する。第4に、特徴マッチャ1218は、第1の距離を第2の距離で除算することによって、特徴類似比率を計算する。特徴類似比率が特定の閾値未満の場合、第1の画像内の特徴と第2の画像内のその最も近傍のものとの間に、一致が存在する。
【0079】
特徴マッチャ1218は、例えば、スピルツリーを構築することによって、最も近傍のものおよび2番目に近傍のものを決定し得る。
【0080】
特徴類似比率が低すぎる場合、特徴マッチャ1218は、十分な一致を決定しない場合がある。特徴類似比率が高すぎる場合、特徴マッチャ1218は、あまりに多くの偽一致を決定する場合がある。一実施形態では、特徴類似比率は、0.5から0.95であり得る。画像が、地上レベルから撮影されたパノラマである、実施例では、数百の一致された特徴が存在し得る。一致された特徴は、一致された特徴1206として、点カリキュレータ1220に送信される。
【0081】
点カリキュレータ1220は、各対の一致された特徴1206の3次元空間内の点を決定する。3次元空間内の点を決定するために、各特徴について射線が形成または決定され、点は、特徴の射線の交点に基づき、決定される。一実施形態では、射線が交わらない場合、点は、2つの射線を接続する最短線分の中点に基づき、決定される。点カリキュレータ1220の出力は、3次元点1208(例えば、各対の一致された特徴について1点)の群である。
【0082】
表面エスティメータ1222は、点1208の群に基づき、外観平面を決定する。表面エスティメータ1222は、例えば、最小二乗アルゴリズムもしくは適応的最適化アルゴリズム等の最良適合アルゴリズムまたは回帰分析アルゴリズムを使用することによって、外観平面を決定し得る。適応的最適化アルゴリズムの例には、山登りアルゴリズム、確率的山登りアルゴリズム、エースター(A−star)アルゴリズム、および遺伝的アルゴリズムが挙げられるが、これらに限定されない。代替として、表面エスティメータ1222は、
図9A〜
図9Cを参照して上述されているように、平面の最適場所を決定するために、平面を軸に沿って平行移動させることによって、外観表面を決定し得る。
【0083】
また、表面エスティメータ1222は、より多くの外観平面、またはより多くの街路平面を決定し得る。街路平面および外観平面は、共に、表面平面1210を形成する。表面エスティメータ1222は、モデルデータベース1030に表面平面1210を記憶する。
【0084】
「発明の概要」および「要約」ではなく、「発明を実施するための形態」が、請求項を解釈するために使用されることが意図されることが理解される。「発明の概要」および「要約」は、発明者によって熟考される、すべてではないが、1つ以上の本発明の実施形態を説明し得、したがって、これらは、決して、本発明および添付の請求項を制限することは意図されない。
【0085】
特定された機能の実装およびそれらの関係を図示する、機能性構築要素を用いて、本発明を上記で説明した。これらの機能性構築要素の境界は、説明の便宜のために、本明細書において、適宜定義されてきた。具体的な機能およびそれらの関係が、適切に実施される限り、代替の境界を定義することができる。さらに、本発明は、本明細書において、特定の用途の説明に役立つ実施形態を参照して記載されるが、本発明は、それに制限されないことを理解されたい。本明細書に提供される教示が入手可能な当業者は、追加の修正、用途、およびこれらの範囲内の実施形態、ならびに本発明が大いに有用であり得る追加の分野を認識するであろう。
【0086】
具体的な実施形態の前述の説明は、本発明の要領を完全に明らかにするため、他の人は、当該技術分野の技術内の知識を適用することによって、本発明の一般概念から逸脱することなく、そのような具体的な実施形態を、過度の実験を行うことなく、種々の用途に容易に修正および/または適応できるであろう。したがって、そのような適応および修正は、本明細書に提示される教示および指導に基づき、開示される実施形態の同等物の意味および範囲内であることが意図される。本明細書の専門語または専門用語は、本明細書の専門用語または専門語が、教示および指導に照らして、当業者によって解釈されるように、制限のためではなく、説明のためのものであることが理解される。
【0087】
本発明の幅および範囲は、いかなる上述の例示的な実施形態によっても制限されるべきではなく、以下の請求項およびそれらの同等物に従ってのみ定義されるべきである。