(57)【特許請求の範囲】
【請求項１】
画像クラスタを編成するとともにナビゲートするための方法であって、
キャプチャ画像のセットに、1つまたは複数の処理デバイスによって、アクセスするステップと、
前記キャプチャ画像のセット内の画像が所定のパターンを満たすか否かを、前記1つまたは複数の処理デバイスによって、検出するステップと、
前記検出された所定のパターンに従って、前記キャプチャ画像のセット内の前記画像を1つまたは複数のクラスタに、前記1つまたは複数の処理デバイスによって、グループ化するステップと、
第1のキャプチャ画像に対して所定の近さの範囲にある隣接するキャプチャ画像のセットを、第1のクラスタ内の前記画像から、前記1つまたは複数の処理デバイスによって、決定するステップと、
隣接するキャプチャ画像の前記セットから前記第1のキャプチャ画像の1つまたは複数の隣接する画像を、前記1つまたは複数の処理デバイスによって、割り当てるステップと、
キャプチャ画像の前記1つまたは複数のクラスタのうちの前記第1のクラスタを表示する要求を、前記1つまたは複数の処理デバイスによって、受信するステップと、
前記要求に応答して、表示するための前記第1のクラスタからの第1のキャプチャ画像を、前記1つまたは複数の処理デバイスによって、選択するステップと、
表示のために、前記第1のクラスタからの前記第1のキャプチャ画像を提供するステップと、
前記1つまたは複数の隣接する画像を、クリックまたはドラッグイベントに応答して前記1つまたは複数の処理デバイスによって、提供するステップと
を含むことを特徴とする方法。
【請求項２】
前記所定のパターンは、パノラマパターン、軌道パターン、並進パターンのうちの1つであることを特徴とする請求項1に記載の方法。
【請求項３】
画像クラスタを編成するとともにナビゲートするための方法であって、
キャプチャ画像のセットに、1つまたは複数の処理デバイスによって、アクセスするステップと、
前記キャプチャ画像のセット内の画像が所定のパターンを満たすか否かを、前記1つまたは複数の処理デバイスによって、検出するステップと、
前記検出された所定のパターンに従って、前記キャプチャ画像のセット内の前記画像を1つまたは複数のクラスタに、前記1つまたは複数の処理デバイスによって、グループ化するステップであって、前記所定のパターンがパノラマパターンであり、前記キャプチャ画像のセット内の画像が所定のパターンを満たすか否かを検出するステップは、
キャプチャ画像の前記セットにおけるそれぞれの可能なパノラマサークルを、前記1つまたは複数の処理デバイスによって、識別するステップであって、それぞれの可能なパノラマ中心が、キャプチャ画像の前記セット内のサブセットに関連付けられるとともに、キャプチャ画像の前記サブセットに対する視野角を有する、ステップと、
(i)キャプチャ画像の前記サブセットの数が所定の数より少ない、および(ii)前記視野角が所定の角度より小さい、いずれかの前記可能なパノラマサークルを削除するステップとを含む、ステップと、
表示のために、前記所定のパターンを満たす前記1つまたは複数のクラスタからの第1の画像を、前記1つまたは複数の処理デバイスによって、提供するステップと
を含むことを特徴とする方法。
【請求項４】
それぞれの可能なパノラマサークルを識別するステップは、
前記キャプチャ画像の1つの座標の周りに初期のパノラマサークルを設定するステップと、
前記初期のパノラマサークル内のキャプチャ画像からの座標を平均することによって、前記初期のパノラマサークルの中心の座標を修正するステップと、
しきい値数の修正が発生したか、または前記パノラマサークルの中心の座標が単一点に収束するまで、前記修正するステップを繰り返すステップと、
前記修正されたパノラマサークルの中心の座標の周りに最終パノラマサークルを設定するステップと
を含むことを特徴とする請求項3に記載の方法。
【請求項５】
画像クラスタを編成するとともにナビゲートするための方法であって、
キャプチャ画像のセットに、1つまたは複数の処理デバイスによって、アクセスするステップと、
前記キャプチャ画像のセット内の画像が所定のパターンを満たすか否かを、前記1つまたは複数の処理デバイスによって、検出するステップと、
前記検出された所定のパターンに従って、前記キャプチャ画像のセット内の前記画像を1つまたは複数のクラスタに、前記1つまたは複数の処理デバイスによって、グループ化するステップであって、前記所定のパターンが軌道パターンであり、前記キャプチャ画像のセット内の画像が所定のパターンを満たすか否かを検出するステップは、
キャプチャ画像の前記セット内の各画像に対して、前記画像がキャプチャされたロケーションから発せられる光線と、前記キャプチャ画像が撮影されたときにカメラの中心が指していた方向とを、前記1つまたは複数の処理デバイスによって、識別するステップと、
各光線間の交点を、前記1つまたは複数の処理デバイスによって、計算するステップと、
前記交点の密度に基づいて軌道中心を、前記1つまたは複数の処理デバイスによって、決定するステップとを含む、ステップと、
表示のために、前記所定のパターンを満たす前記1つまたは複数のクラスタからの第1の画像を、前記1つまたは複数の処理デバイスによって、提供するステップと
を含むことを特徴とする方法。
【請求項６】
前記方法は、
識別された軌道中心のそれぞれに対して、
前記軌道中心を含まない画像をフィルタリングするステップと、
残りの画像が軌道中心の周りに滑らかな転換を有するグループに、残りの画像を分割するステップと、
少なくとも所定の数の画像を含まず、範囲のしきい値角度を満たさないグループを取り除くステップと
をさらに含むことを特徴とする請求項5に記載の方法。
【請求項７】
画像クラスタを編成するとともにナビゲートするための方法であって、
キャプチャ画像のセットに、1つまたは複数の処理デバイスによって、アクセスするステップと、
前記キャプチャ画像のセット内の画像が所定のパターンを満たすか否かを、前記1つまたは複数の処理デバイスによって、検出するステップと、
前記検出された所定のパターンに従って、前記キャプチャ画像のセット内の前記画像を1つまたは複数のクラスタに、前記1つまたは複数の処理デバイスによって、グループ化するステップであって、前記所定のパターンが並進パターンであり、前記キャプチャ画像のセット内の画像が所定のパターンを満たすか否かを検出するステップは、
キャプチャ画像の前記セットにおける各画像に対して、候補画像の隣接する初期のセットを、前記1つまたは複数の処理デバイスによって、識別するステップと、
各画像に対して、前記画像に最も近い位置にあり、前記画像の視野角の角度しきい値の範囲内にある候補画像の前記初期のセット内の前記候補画像を、前記1つまたは複数の処理デバイスによって、用意するステップとを含む、ステップと、
表示のために、前記所定のパターンを満たす前記1つまたは複数のクラスタからの第1の画像を、前記1つまたは複数の処理デバイスによって、提供するステップと
を含むことを特徴とする方法。
【請求項８】
パノラマパターンに対して、隣接するキャプチャ画像の前記セットから前記第1のキャプチャ画像の前記1つまたは複数の隣接する画像を割り当てるステップは、最低のドラッグターゲットコストを有する1つまたは複数の隣接する画像を決定するステップを含み、前記ドラッグターゲットコストは、
ドラッグベクトル方向を決定し、
前記ドラッグベクトル方向の向きである前記1つまたは複数の隣接する画像のグループを用意し、
前記第1のキャプチャ画像と1つまたは複数の隣接する画像の前記グループ内の前記1つまたは複数の隣接する画像のそれぞれとの間のオーバーラップの量を、前記1つまたは複数の処理デバイスによって、識別し、
最も多いオーバーラップを有する隣接する画像を選択する
ことによって計算されることを特徴とする請求項1に記載の方法。
【請求項９】
軌道パターンおよび並進パターンに対して、隣接するキャプチャ画像の前記セットから前記第1のキャプチャ画像の1つまたは複数の隣接する画像を割り当てるステップは、所定のターゲット距離に最も近いターゲット距離を有する1つまたは複数の隣接する画像を決定するステップを含み、隣接する前記画像のセット内の各キャプチャ画像に対するターゲット距離は、
前記画像がキャプチャされたロケーションから発し、カメラが指していた方向の光線を、前記1つまたは複数の処理デバイスによって、識別し、
第1のキャプチャ角度と隣接する画像の前記セット内の各キャプチャ画像との間の角度差を、前記1つまたは複数の処理デバイスによって、決定し、
前記角度差に基づいて第1のキャプチャ画像の左および右に、隣接する画像の前記セット内の各キャプチャ画像を、前記1つまたは複数の処理デバイスによって、グループ化し、
ターゲット距離を、前記1つまたは複数の処理デバイスによって、決定する
ことによって求められることを特徴とする請求項1に記載の方法。
【請求項１０】
画像クラスタを編成するとともにナビゲートするためのシステムであって、
1つまたは複数のコンピューティングデバイスと、
前記1つまたは複数のコンピューティングデバイスによって実行可能な命令を格納するメモリとを具備し、前記命令は、
キャプチャ画像のセットに、1つまたは複数のコンピューティングデバイスによって、アクセスするステップと、
前記キャプチャ画像のセット内の画像が所定のパターンを満たすか否かを、前記1つまたは複数のコンピューティングデバイスによって、検出するステップと、
前記検出された所定のパターンに従って、前記キャプチャ画像のセット内の前記画像を1つまたは複数のクラスタに、前記1つまたは複数のコンピューティングデバイスによって、グループ化するステップと、
第1のキャプチャ画像に対して所定の近さの範囲にある隣接するキャプチャ画像のセットを、第1のクラスタ内の前記画像から、前記1つまたは複数の処理デバイスによって、決定するステップと、
隣接するキャプチャ画像の前記セットから前記第1のキャプチャ画像の1つまたは複数の隣接する画像を、前記1つまたは複数の処理デバイスによって、割り当てるステップと、
キャプチャ画像の前記1つまたは複数のクラスタのうちの前記第1のクラスタを表示する要求を、前記1つまたは複数のコンピューティングデバイスによって、受信するステップと、
前記要求に応答して、表示するための前記第1のクラスタからの第1のキャプチャ画像を、前記1つまたは複数のコンピューティングデバイスによって、選択するステップと、
表示のために、前記第1のクラスタからの前記第1のキャプチャ画像を提供するステップと、
前記1つまたは複数の隣接する画像を、クリックまたはドラッグイベントに応答して前記1つまたは複数の処理デバイスによって、提供するステップと
を含むことを特徴とするシステム。
【請求項１１】
前記所定のパターンは、パノラマパターン、軌道パターン、並進パターンのうちの1つであることを特徴とする請求項10に記載のシステム。
【請求項１２】
画像クラスタを編成するとともにナビゲートするためのシステムであって、
1つまたは複数のコンピューティングデバイスと、
前記1つまたは複数のコンピューティングデバイスによって実行可能な命令を格納するメモリとを具備し、前記命令は、
キャプチャ画像のセットに、1つまたは複数のコンピューティングデバイスによって、アクセスするステップと、
前記キャプチャ画像のセット内の画像が所定のパターンを満たすか否かを、前記1つまたは複数のコンピューティングデバイスによって、検出するステップと、
前記検出された所定のパターンに従って、前記キャプチャ画像のセット内の前記画像を1つまたは複数のクラスタに、前記1つまたは複数のコンピューティングデバイスによって、グループ化するステップであって、前記所定のパターンがパノラマパターンであるとき、前記キャプチャ画像のセット内の画像が所定のパターンを満たすか否かを検出するステップは、
キャプチャ画像の前記セットにおけるそれぞれの可能なパノラマサークルを、前記1つまたは複数の処理デバイスによって、識別するステップであって、それぞれの可能なパノラマ中心が、キャプチャ画像の前記セット内のサブセットに関連付けられるとともに、キャプチャ画像の前記サブセットに対する視野角を有する、ステップと、
(i)キャプチャ画像の前記サブセットの数が所定の数より少ない、および(ii)前記視野角が所定の角度より小さい、いずれかの前記可能なパノラマサークルを削除するステップとを含む、ステップと、
表示のために、前記所定のパターンを満たす前記1つまたは複数のクラスタからの第1の画像を、前記1つまたは複数の処理デバイスによって、提供するステップと
を含むことを特徴とするシステム。
【請求項１３】
それぞれの可能なパノラマサークルを識別するステップは、
前記キャプチャ画像の1つの座標の周りに初期のパノラマサークルを設定するステップと、
前記初期のパノラマサークル内のキャプチャ画像からの座標を平均することによって、前記初期のパノラマサークルの中心の座標を修正するステップと、
しきい値数の修正が発生したか、または前記パノラマサークルの中心の座標が単一点に収束するまで、前記修正するステップを繰り返すステップと、
前記修正されたパノラマサークルの中心の座標の周りに最終パノラマサークルを設定するステップと
を含むことを特徴とする請求項12に記載のシステム。
【請求項１４】
画像クラスタを編成するとともにナビゲートするためのシステムであって、
1つまたは複数のコンピューティングデバイスと、
前記1つまたは複数のコンピューティングデバイスによって実行可能な命令を格納するメモリとを具備し、前記命令は、
キャプチャ画像のセットに、1つまたは複数のコンピューティングデバイスによって、アクセスするステップと、
前記キャプチャ画像のセット内の画像が所定のパターンを満たすか否かを、前記1つまたは複数のコンピューティングデバイスによって、検出するステップと、
前記検出された所定のパターンに従って、前記キャプチャ画像のセット内の前記画像を1つまたは複数のクラスタに、前記1つまたは複数のコンピューティングデバイスによって、グループ化するステップであって、前記所定のパターンが軌道パターンであるとき、前記キャプチャ画像のセット内の画像が所定のパターンを満たすか否かを検出するステップは、
キャプチャ画像の前記セット内の各画像に対して、前記画像がキャプチャされたロケーションから発せられる光線と、前記キャプチャ画像が撮影されたときにカメラの中心が指していた方向とを、前記1つまたは複数の処理デバイスによって、識別するステップと、
各光線間の交点を、前記1つまたは複数の処理デバイスによって、計算するステップと、
前記交点の密度に基づいて軌道中心を、前記1つまたは複数の処理デバイスによって、決定するステップとを含む、ステップと、
表示のために、前記所定のパターンを満たす前記1つまたは複数のクラスタからの第1の画像を、前記1つまたは複数の処理デバイスによって、提供するステップと
を含むことを特徴とするシステム。
【請求項１５】
前記システムは、
識別された軌道中心のそれぞれに対して、
前記軌道中心を含まない画像をフィルタリングするステップと、
残りの画像が軌道中心の周りに滑らかな転換を有するグループに、残りの画像を分割するステップと、
少なくとも所定の数の画像を含まず、範囲のしきい値角度を満たさないグループを取り除くステップと
をさらに含むことを特徴とする請求項14に記載のシステム。
【請求項１６】
画像クラスタを編成するとともにナビゲートするためのシステムであって、
1つまたは複数のコンピューティングデバイスと、
前記1つまたは複数のコンピューティングデバイスによって実行可能な命令を格納するメモリとを具備し、前記命令は、
キャプチャ画像のセットに、1つまたは複数のコンピューティングデバイスによって、アクセスするステップと、
前記キャプチャ画像のセット内の画像が所定のパターンを満たすか否かを、前記1つまたは複数のコンピューティングデバイスによって、検出するステップと、
前記検出された所定のパターンに従って、前記キャプチャ画像のセット内の前記画像を1つまたは複数のクラスタに、前記1つまたは複数のコンピューティングデバイスによって、グループ化するステップであって、前記所定のパターンが並進パターンであるとき、前記キャプチャ画像のセット内の画像が所定のパターンを満たすか否かを検出するステップは、
キャプチャ画像の前記セットにおける各画像に対して、候補画像の隣接する初期のセットを、前記1つまたは複数の処理デバイスによって、識別するステップと、
各画像に対して、前記画像に最も近い位置にあり、前記画像の視野角の角度しきい値の範囲内にある候補画像の前記初期のセット内の前記候補画像を、前記1つまたは複数の処理デバイスによって、用意するステップとを含む、ステップと、
表示のために、前記所定のパターンを満たす前記1つまたは複数のクラスタからの第1の画像を、前記1つまたは複数の処理デバイスによって、提供するステップと
を含むことを特徴とするシステム。
【請求項１７】
画像クラスタを編成するとともにナビゲートするためのシステムであって、
1つまたは複数のコンピューティングデバイスと、
前記1つまたは複数のコンピューティングデバイスによって実行可能な命令を格納するメモリとを具備し、前記命令は、
キャプチャ画像のセットに、1つまたは複数のコンピューティングデバイスによって、アクセスするステップと、
前記キャプチャ画像のセット内の画像が所定のパターンを満たすか否かを、前記1つまたは複数のコンピューティングデバイスによって、検出するステップと、
前記検出された所定のパターンに従って、前記キャプチャ画像のセット内の前記画像を1つまたは複数のクラスタに、前記1つまたは複数のコンピューティングデバイスによって、グループ化するステップと、
キャプチャ画像の前記1つまたは複数のクラスタのうちの第1のクラスタを表示する要求を、前記1つまたは複数のコンピューティングデバイスによって、受信するステップと、
前記要求に応答して、表示するための前記第1のクラスタからの第1のキャプチャ画像を、前記1つまたは複数のコンピューティングデバイスによって、選択するステップと、
表示のために、前記第1のクラスタからの前記第1のキャプチャ画像を提供するステップと、
前記第1のキャプチャ画像に対して所定の近さの範囲にある隣接するキャプチャ画像のセットを、前記第1のクラスタ内の前記画像から、前記1つまたは複数の処理デバイスによって、決定するステップと、
隣接するキャプチャ画像の前記セットから前記第1のキャプチャ画像の1つまたは複数の隣接する画像を、前記1つまたは複数の処理デバイスによって、割り当てるステップと、
前記1つまたは複数の隣接する画像を、クリックまたはドラッグイベントに応答して前記1つまたは複数の処理デバイスによって、提供するステップと
を含むことを特徴とするシステム。
【請求項１８】
前記所定のパターンは、パノラマパターン、軌道パターン、並進パターンのうちの1つであることを特徴とする請求項17に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラスタベースのフォトナビゲーションに関する。
【背景技術】
【０００２】
複数のユーザによってキャプチャされた様々なシーンの画像を編成し、ナビゲートする多くの方法が使用されている。いくつかの例では、複数のユーザによってキャプチャされた同じシーンの画像をグループにまとめることができる。そのようなグループは、キャプチャされたシーンに関連して多くの角度および距離から撮られた様々な数のキャプチャ画像を含むことがある。ユーザは、画像がキャプチャされた場所に関係なく、単一のグループ内の画像を見ることがある。したがって、画像を編成およびナビゲートする現在の方法は、直感的でなく、ユーザに不快感を与え得る予測不可能な画像表示をもたらす。
【発明の概要】
【課題を解決するための手段】
【０００３】
本開示の範囲内の実施形態は、一般に画像を提示することに関する。一態様は、デバイス上で画像クラスタを編成し、ナビゲートするための方法を含む。キャプチャ画像のセットは、1つまたは複数の処理デバイスによってアクセスされ得る。次いで、1つまたは複数の処理デバイスは、キャプチャ画像のセット内の画像が所定のパターンを満たすか否かを検出し、検出された所定のパターンに従って、キャプチャ画像のセット内の画像を1つまたは複数のクラスタにグループ化し、キャプチャ画像の1つまたは複数のクラスタのうちの第1のクラスタを表示する要求を受信し、要求に応答して、表示するための第1のクラスタからの第1のキャプチャ画像を選択し得る。第1のクラスタからの第1のキャプチャ画像が表示のために提供され得る。
【０００４】
一態様は、画像クラスタを編成およびナビゲートするためのシステムを提供する。システムは、1つまたは複数のコンピューティングデバイスと、1つまたは複数のコンピューティングデバイスによって実行可能な命令を格納するメモリとを含む。命令は、キャプチャ画像のセットに、1つまたは複数のコンピューティングデバイスによって、アクセスするステップと、キャプチャ画像のセット内の画像が所定のパターンを満たすか否かを、1つまたは複数のコンピューティングデバイスによって、検出するステップと、検出された所定のパターンに従って、キャプチャ画像のセット内の画像を1つまたは複数のクラスタに、1つまたは複数のコンピューティングデバイスによって、グループ化するステップと、キャプチャ画像の1つまたは複数のクラスタのうちの第1のクラスタを表示する要求を、1つまたは複数のコンピューティングデバイスによって、受信するステップと、要求に応答して、表示するための第1のクラスタからの第1のキャプチャ画像を、1つまたは複数のコンピューティングデバイスによって、選択するステップと、表示のために、第1のクラスタからの第1のキャプチャ画像を提供するステップとを含む。
【０００５】
一態様は、画像クラスタを編成およびナビゲートするためのシステムを提供する。システムは、1つまたは複数のコンピューティングデバイスと、1つまたは複数のコンピューティングデバイスによって実行可能な命令を格納するメモリとを含む。命令は、キャプチャ画像のセットに、1つまたは複数のコンピューティングデバイスによって、アクセスするステップと、キャプチャ画像のセット内の画像が所定のパターンを満たすか否かを、1つまたは複数のコンピューティングデバイスによって、検出するステップと、検出された所定のパターンに従って、キャプチャ画像のセット内の画像を1つまたは複数のクラスタに、1つまたは複数のコンピューティングデバイスによって、グループ化するステップと、キャプチャ画像の1つまたは複数のクラスタのうちの第1のクラスタを表示する要求を、1つまたは複数のコンピューティングデバイスによって、受信するステップと、要求に応答して、表示するための第1のクラスタからの第1のキャプチャ画像を、1つまたは複数のコンピューティングデバイスによって、選択するステップと、表示のために、第1のクラスタからの第1のキャプチャ画像を提供するステップと、第1のキャプチャ画像に対して所定の近さの範囲にある隣接するキャプチャ画像のセットを、第1のクラスタ内の画像から、1つまたは複数の処理デバイスによって、決定するステップと、隣接するキャプチャ画像のセットから第1のキャプチャ画像の1つまたは複数の隣接する画像を、1つまたは複数の処理デバイスによって、割り当てるステップと、1つまたは複数の隣接する画像を、クリックまたはドラッグイベントに応答して1つまたは複数の処理デバイスによって、提供するステップとを含む。
【図面の簡単な説明】
【０００６】
【図１】本開示の態様による例示的なシステムの機能図である。
【図２】図1の例示的なシステムの絵画図である。
【図３】本開示の態様によるパノラマパターンで画像をキャプチャするコンピューティングデバイスの例である。
【図４】本開示の態様よる並進パターンで画像をキャプチャするコンピューティングデバイスの例である。
【図５】本開示の態様による軌道パターンで画像をキャプチャするコンピューティングデバイスの例である。
【図６Ａ】本開示の態様によるパノラマパターンクラスタのセットの例である。
【図６Ｂ】本開示の態様による視野角しきい値の例である。
【図７Ａ】本開示の態様によるキャプチャされた並進画像の初期候補セットの例である。
【図７Ｂ】本開示の態様による角度しきい値の例である。
【図８】本開示の態様による軌道パターンクラスタの例である。
【図９】本開示の態様によるクラスタ内をナビゲートするコンピューティングデバイスの例である。
【図１０】本開示の態様による視野角の例である。
【図１１】本開示の態様によるクラスタ間をナビゲートするコンピューティングデバイスの例である。
【図１２】本開示の態様による流れ図である。
【発明を実施するための形態】
【０００７】
この技術は、画像がキャプチャされたときに表示される共通パターンに基づいてクラスタに編成された画像をナビゲートすることに関する。例えば、複数のユーザによってキャプチャされた様々なシーンの画像は、1つまたは複数のコンピューティングデバイスによって分析され、同じシーンに対応するとともに、まとめたときに、少なくとも1つの共通パターンを満たす、クラスタにキャプチャ画像を編成することができる。次いで、ユーザはクラスタを選択することができ、それに応答して、選択されたクラスタ内のキャプチャ画像が、1つまたは複数のコンピューティングデバイスの1つに表示され得る。ユーザがクラスタ内のキャプチャ画像にわたってパンすると、ディスプレイはクラスタ内の画像に割り当てられた共通パターンに従って別のキャプチャ画像に切り替えることができる。さらに、ユーザは見ている異なるクラスタ間で切り替えることができる。したがって、ユーザは、複数のユーザが概して表示されているシーンをキャプチャする方法を模倣し得る滑らかなナビゲーション体験を提供される。
【０００８】
1人または複数のユーザのキャプチャ画像をパターンにまとめることもできる。例えば、所与のシーンのキャプチャ画像は、1つまたは複数のコンピューティングデバイスによって、キャプチャ画像がまとめられるときに満たすパターンのタイプに基づいて、クラスタにグループ化され得る。これに関して、1人または複数のユーザからのキャプチャ画像のグループは、パノラマパターンクラスタ、並進パターンクラスタ、および軌道パターンクラスタのうちの1つまたは複数に配置されてもよい。
【０００９】
パノラマパターンクラスタを決定するために、カメラが第1のキャプチャ画像をキャプチャした座標を表すパノラマ中心が決定され得る。更新されたパノラマ中心は、第1のパノラマサークル内の追加の各キャプチャ画像を用いて、第1のパノラマ中心の座標を繰り返し平均することによって見出され得る。最終パノラマサークルは、できるだけ第1のパノラマサークル内にあったキャプチャ画像の多くを含むように計算され得る。追加の最終パノラマサークルは、決定された最終パノラマサークルの中に入っていないキャプチャ画像に対して上記プロセスを繰り返し実行することによって見出すことができる。
【００１０】
並進パターンクラスタを決定するために、しきい値角度内の最も近い隣接する画像の縮小候補セットが、各キャプチャ画像に対して計算され、関連付けられ得る。縮小候補セットは、関連付けられたキャプチャ画像の角度しきい値内にあるキャプチャ画像の潜在的な並進パターンクラスタを生成するように拡張されてもよい。並進パターンクラスタは、しきい値基準を満たす潜在的な並進パターンのクラスタを保持することにより決定され得る。これに関して、しきい値数未満のキャプチャ画像を含む潜在的な並進パターンクラスタは、無視されてもよい。少なくともしきい値数のキャプチャ画像を含む潜在的な並進パターンクラスタは、並進パターンクラスタとすることができる。
【００１１】
軌道パターンクラスタを決定するために、1つまたは複数の軌道オブジェクト中心に向けられ、軌道オブジェクト中心の周りに滑らかな転換を提供するキャプチャ画像を発見または識別することができる。例えば、キャプチャ画像を比較して、オーバーラップする画像データを有するキャプチャ画像のグループを決定することができる。オーバーラップする画像データを含むキャプチャ画像のグループは、隣接する画像とみなされる。軌道オブジェクト中心は、各キャプチャ画像を、画像がキャプチャされたロケーションから発する光線として、およびキャプチャ画像がキャプチャされたときにカメラの中心が指す方向にあるとみなすことによって決定される。次に、隣接する画像の光線の間の交点を見つけることができる。次いで、クラスタリングアルゴリズムは、十分なレベルの交点を有する領域を決定することによって、軌道オブジェクト中心を見出すことができる。
【００１２】
各軌道オブジェクト中心について、軌道オブジェクト中心に位置するシーンの一部に関連付けられた画像データを含むキャプチャ画像は、その軌道オブジェクト中心に関連付けられてもよい。少なくともしきい値数のキャプチャ画像を含むキャプチャ画像のグループは、画像の各グループ内のキャプチャ画像によってカバーされる視野角がしきい値角度値より大きい視野角を含むか否かを判定するために解析されてもよい。これらのしきい値を満たす画像のすべてのグループは、軌道パターンクラスタと見され得る。
【００１３】
決定されたクラスタ内の1つまたは複数のキャプチャ画像は、コンピューティングデバイスのディスプレイ上で見ることができる。これに関して、ユーザは、異なるクラスタ間または単一クラスタ内でナビゲートすることができる。例えば、現在表示されていないクラスタを表すクリックターゲットをディスプレイ上に提供して、ユーザがクラスタ間で切り替えることができるようにする。さらに、現在表示されているクラスタ内の隣接する画像を表すドラッグターゲットをユーザに提供して、ユーザが現在表示されているクラスタ内をナビゲートできるようにすることができる。
【００１４】
クリックターゲットは、現在選択されているクラスタに基づいて決定できる。例えば、ユーザは、見るための初期クラスタを選択することができる。初期クラスタ内のキャプチャ画像は、コンピューティングデバイス上に表示されてもよい。初期クラスタの外にある、現在表示されているキャプチャ画像への1つまたは複数の隣接するキャプチャ画像は、1つまたは複数のクリックターゲットとして割り当てられ得る。ドラッグターゲットを使用してパノラマパターンクラスタ内でナビゲーションを提供するために、現在のクラスタ内で、現在表示されているキャプチャ画像に最も近い各キャプチャ画像についてドラッグターゲットコストが計算され得る。各ドラッグベクトル方向について、最も低いドラッグターゲットコストを有する画像は、そのドラッグベクトル方向に沿ってドラッグターゲットにされてもよい。したがって、ユーザがドラッグベクトル方向に沿ってディスプレイをパンすると、ドラッグターゲットコストが最も低いドラッグターゲットがコンピューティングデバイス上に表示される。
【００１５】
軌道および並進パターンクラスタ内をナビゲートするために、現在表示されているキャプチャ画像の左右に隣接するキャプチャ画像を見出したり、識別したりすることができる。隣接する画像の視野角は、現在表示されている画像の視野角と比較され、画像が現在表示されている画像の左または右に位置するか否かを判定することができる。ターゲットドラッグ距離に最も近い、左または右のいずれかに隣接する画像を、それぞれ、左ドラッグターゲットおよび右ドラッグターゲットにすることができる。したがって、ユーザがディスプレイを左または右にパンすると、それぞれ左または右のドラッグターゲットがコンピューティングデバイス上に表示され得る。
【００１６】
本明細書に記載された特徴は、ユーザが通常シーンをそれらがそこにいるかのように見る方法を模倣する滑らかなナビゲーション体験を可能にすることができる。そうすることによって、ユーザは、シーンの自然なビューを提供する予測可能なナビゲーション体験を経験することができる。さらに、シーンのキャプチャ画像の大小の両方のグループをナビゲートすると、ナビゲーション体験は一貫している。
【００１７】
システム例図1および図2は、上述した特徴を実装することができる例示的なシステム100を含む。本明細書に記載された特徴の開示または有用性の範囲を限定するものと見なされるべきではない。この例では、システム100は、コンピューティングデバイス110、120、130、および140ならびにストレージシステム150を含むことができる。各コンピューティングデバイス110は、1つまたは複数のプロセッサ112、メモリ114、および汎用コンピューティングデバイスに通常存在する他の構成要素を含むことができる。各コンピューティングデバイス110、120、130、および140のメモリ114は、1つまたは複数のプロセッサ112によって実行可能な命令116を含む、1つまたは複数のプロセッサ112によってアクセス可能な情報を格納することができる。
【００１８】
メモリはまた、プロセッサによって取り出され、操作され、または格納され得るデータ118を含み得る。メモリは、ハードドライブ、メモリカード、ROM、RAM、DVD、CD-ROM、書き込み可能なメモリおよび読み出し専用メモリなど、プロセッサによってアクセス可能な情報を記憶することができる任意の非一時的なタイプのメモリであってもよい。
【００１９】
命令116は、機械コードなどの直接的に、またはスクリプトなどの間接的に、1つまたは複数のプロセッサによって実行される命令の任意のセットであってもよい。これに関して、「命令」、「アプリケーション」、「ステップ」および「プログラム」という用語は、本明細書では交換可能に使用することができる。命令は、プロセッサによる直接処理のためのオブジェクトコード形式で、または必要に応じて解釈されるかまたは事前にコンパイルされた独立したソースコードモジュールのスクリプトまたはコレクションを含む任意の他のコンピューティングデバイス言語で格納されてもよい。命令の機能、方法およびルーチンについては、以下でより詳細に説明する。
【００２０】
データ118は、命令116に従って1つまたは複数のプロセッサ112によって取り出され、格納され、または変更されてもよい。例えば、本明細書に記載される主題は、特定のデータ構造によって限定されないが、データは、コンピュータ・レジスタ、多くの異なるフィールドおよびレコードテーブルとしてのリレーショナル・データベース、またはXML文書に格納され得る。データは、限定でなく、バイナリ値、ASCIIまたはユニコードなどのコンピューティングデバイス読み取り可能なフォーマットでフォーマットされ得る。さらに、データは、数字、記述テキスト、専有コード、ポインタ、他のネットワークロケーションなどの他のメモリに格納されたデータへのリファレンス、または関連データを計算するための関数によって使用される情報などの関連情報を識別するのに十分な任意の情報を含むことができる。
【００２１】
1つまたは複数のプロセッサ112は、市販のCPUなどの任意の従来のプロセッサであってもよい。あるいは、プロセッサは、特定用途向け集積回路(ASIC)または他のハードウェアベースのプロセッサなどの専用構成要素であってもよい。必ずしも必要ではないが、コンピューティングデバイス110の1つまたは複数は、ビデオのデコード、ビデオフレームの画像とのマッチング、ビデオの歪み、歪んだビデオのエンコードなどの特定のコンピューティングプロセスを、より速くまたはより効率的に実行するための専用ハードウェア構成要素を含むことができる。
【００２２】
図1は、プロセッサ112、メモリ114、およびコンピューティングデバイス110の他の要素を同じブロック内に機能的に示しているが、プロセッサ、コンピュータ、コンピューティングデバイス、またはメモリは、同じ物理的ハウジング内に格納されていてもいなくてもよい、複数のプロセッサ、コンピュータ、コンピューティングデバイス、またはメモリを実質的に含んでもよい。例えば、メモリは、コンピューティングデバイス110のハウジングとは異なるハウジングに位置するハードドライブまたは他の記憶媒体であってもよい。したがって、プロセッサ、コンピュータ、コンピューティングデバイス、またはメモリへの参照は、並列に動作しても動作しなくてもよいプロセッサ、コンピュータ、コンピューティングデバイス、またはメモリのコレクションに対する参照を含むと理解される。例えば、コンピューティングデバイス110は、負荷分散サーバファーム、分散システムなどとして動作するサーバコンピューティングデバイスを含むことができる。さらに、以下に説明されるいくつかの機能は、単一のプロセッサを有する単一のコンピューティングデバイス上で行われるように示されているが、本明細書に記載される主題の様々な態様は、複数のコンピューティングデバイスが、例えば、ネットワーク160を介して情報を通信することによって実装されてもよい。
【００２３】
コンピューティングデバイス110の各々は、ネットワーク160の異なるノードであり、ネットワーク160の他のノードと直接的かつ間接的に通信することができる。図1および2にはいくつかのコンピューティングデバイスしか示されていないが、典型的なシステムは多数の接続されたコンピューティングデバイスを含み、各異なるコンピューティングデバイスはネットワーク160の異なるノードであることを理解されたい。本明細書で説明されるネットワーク160および介在ノードは、ネットワークがインターネット、ワールドワイドウェブ、特定のイントラネット、ワイドエリアネットワーク、またはローカルネットワークの一部であり得るように、様々なプロトコルおよびシステムを使用して相互接続され得る。ネットワークは、イーサネット(登録商標)、WiFiおよびHTTPなどの標準的な通信プロトコル、1つまたは複数の企業に独占的なプロトコル、およびそれらの様々な組み合わせを利用することができる。上記のように情報が送信または受信されるときにある種の利点が得られるが、本明細書に記載される主題の他の態様は、情報の特定の送信方法に限定されない。
【００２４】
一例として、コンピューティングデバイス110の各々は、ネットワークを介してストレージシステム150およびコンピューティングデバイス120、130、および140と通信することができるウェブサーバを含むことができる。例えば、1つまたは複数のサーバコンピューティングデバイス110は、ネットワーク160を使用して、コンピューティングデバイス120、130、または140のディスプレイ122、132、または142などのディスプレイ上で、ユーザ220、230、または240などのユーザに情報を送信および提示することができる。これに関して、コンピューティングデバイス120、130、および140は、クライアントコンピューティングデバイスと見なすことができ、本明細書に記載された特徴のすべてまたは一部を実行することができる。
【００２５】
クライアントコンピューティングデバイス120、130、および140の各々は、上述の1つまたは複数のプロセッサ、メモリ、および命令を用いて、サーバコンピューティングデバイス110と同様に構成されてもよい。各クライアントコンピューティングデバイス120、130または140は、ユーザ220、230、240によって使用されるように意図されたパーソナルコンピューティングデバイスであってもよく、中央演算処理装置(CPU)、データおよび命令を記憶するメモリ(例えば、RAMおよび内部ハードドライブ)、ディスプレイ122、132または142などのディスプレイ(例えば、スクリーン、タッチスクリーン、プロジェクタ、テレビなどを有するモニタ 情報を表示するように動作可能な他のデバイス)、およびユーザ入力デバイス124(例えば、マウス、キーボード、タッチスクリーンまたはマイクロホン)を含む。クライアントコンピューティングデバイスはまた、ビデオストリームを記録するおよび/または画像をキャプチャするためのカメラ、スピーカ、ネットワークインターフェースデバイス、およびこれらの要素を互いに接続するために使用される構成要素のすべてを含むことができる。
【００２６】
クライアントコンピューティングデバイス120、130および140はそれぞれ、フルサイズのパーソナルコンピューティングデバイスを備えることができるが、代わりに、インターネットなどのネットワークを介してサーバとワイヤレスでデータを交換できるモバイルコンピューティングデバイスを備えてもよい。一例として、クライアントコンピューティングデバイス120は、携帯電話、またはインターネットを介して情報を取得することができるワイヤレス対応PDA、タブレットPC、またはネットブックなどのデバイスであってもよい。別の例では、クライアントコンピューティングデバイス130は、ヘッドマウントコンピューティングシステムであってもよい。ユーザは、例えば、小型キーボード、キーパッド、マイクロホンを使用して、カメラによる視覚信号を使用して、またはタッチスクリーンを使用して情報を入力することによって、クライアントコンピューティングデバイスと対話することができる。
【００２７】
メモリ114と同様に、ストレージシステム150は、ハードドライブ、メモリカード、ROM、RAM、DVD、CD-ROM、書込み可能メモリ、および読取り専用メモリなどのサーバコンピューティングデバイス110によってアクセス可能な情報を格納することができる任意のタイプのコンピュータ化されたストレージであってもよい。さらに、ストレージシステム150は、同じまたは異なる地理的ロケーションに物理的に位置し得る複数の異なるストレージデバイスにデータが格納される分散ストレージシステムを含むことができる。ストレージシステム150は、図1に示すようにネットワーク160を介してコンピューティングデバイスに接続され得、および/またはコンピューティングデバイス110、120、130、および140(図示せず)のいずれかに直接接続され得る。
【００２８】
方法の例本開示の様々な態様による動作を以下に説明する。以下の動作は、以下で説明する正確な順序で実行される必要はないことを理解されたい。むしろ、様々なステップは、逆の順序で、または同時に、または全く処理されなくてもよい。
【００２９】
複数のユーザによってキャプチャされた様々なシーンの画像は、1つまたは複数のコンピューティングデバイスによって分析され、同じシーンに対応するとともに、まとめられると、少なくとも1つの共通パターンを満たす、クラスタにキャプチャ画像を編成することができる。画像は、3つの共通パターンのうちの1つに従ってユーザによってキャプチャされてもよい。ユーザは、パノラマパターン、並進パターン、または軌道パターンを実行することによって、カメラを用いてシーンの画像をキャプチャすることができる。例えば、ユーザは、単一の地点に立って、カメラを回し、それによりパノラマパターンを実行している間に、シーンの複数の画像をキャプチャしてもよい。クライアントコンピューティングデバイス120を使用するユーザ220などのユーザは、シーンの画像をキャプチャするときに、コンピューティングデバイスをアーク動作で動かすことができる。図3は、カメラを備えたクライアントコンピューティングデバイス120をパンすることによってシーン302をキャプチャするユーザの一例を示す。これに関して、コンピューティングデバイス120は、シーン302に相対的に、カメラを備えたクライアントコンピューティングデバイス120の視野を回転させるために、軸301の周りを回転され得る。コンピューティングデバイス120が異なる視野311〜314を通って回転するにつれて、シーン302の異なる部分がキャプチャされ得る。ユーザはまた、線形方向に動き、それにより並進パターンを実行している間に、シーンの複数の画像を取得することができる。図4は、シーン402をキャプチャするときに、ユーザ220などのユーザが、軸401に沿った直線運動でコンピューティングデバイス120をどのように動かすかについての例を示す。これに関して、コンピューティングデバイス120は、カメラに装備されたクライアントコンピューティングデバイス120の視野をシーン402に向かって切り替えるために、軸401に沿って移動させることができる。コンピューティングデバイス120が軸401に沿って移動するにつれて、異なる視野411〜414がキャプチャされてもよい。
【００３０】
さらに、ユーザは、シーンの周りを円方向に移動し、それにより軌道パターンを実行している間に、シーンの複数の画像をキャプチャすることができる。図5は、ユーザ220などのユーザが、シーン521の周りに円方向にコンピューティングデバイス120を移動させる方法の例を示す。これに関して、ユーザ220は、シーン521の周りの523から533までの経路に沿ってコンピューティングデバイス120を移動させることができる。コンピューティングデバイス120が経路に沿って移動するにつれて、異なる視野511〜521がキャプチャされてもよい。
【００３１】
1人または複数のユーザのキャプチャ画像をパターンにまとめることもできる。例えば、所与のシーンのキャプチャ画像は、1つまたは複数のコンピューティングデバイスによって、キャプチャ画像がまとめられるときに満たすパターンのタイプに基づいてクラスタにグループ化され得る。これに関して、1人または複数のユーザのキャプチャ画像のグループは、パノラマパターンクラスタ、並進パターンクラスタ、および/または軌道パターンクラスタに配置されてもよい。キャプチャ画像をグループ化する際には、写真のグループが小さい範囲の高さ内で撮影される可能性があるので、高さ寸法(高度)を省略することができる。したがって、キャプチャ画像のグループ化は、横方向および縦方向の平面を表す2次元平面に基づくことができる。
【００３２】
パノラマパターンクラスタを決定するために、カメラが第1のキャプチャ画像をキャプチャした座標を表す第1のパノラマ中心が決定される。これに関して、図6Aに示すように、約3メートル（あるいはそれより大きいまたは小さい）の設定半径を有する第1のパノラマ中心の周りの円形距離を計算することによって、第1のパノラマ中心の周りに第1のパノラマサークルが見出され得る。この例では、第1のキャプチャ画像611がキャプチャされた(X1、Y1)に第1のパノラマ中心Aが見出される。更新されたパノラマ中心は、第1のパノラマサークル605内の各追加のキャプチャ画像613および615を用いて、第1のパノラマ中心Aの座標を繰り返し平均することによって見出され得る。第1のパノラマサークル605は、(X1、Y1)のキャプチャ点Aと(X2、Y2)のキャプチャ点Cとでキャプチャされた画像を含む。繰り返しは、更新されたパノラマ中心の座標が収束するまで、または繰り返しの設定しきい値が実行されるまで、例えば30回(あるいはそれより多いまたは少ない)の反復まで、実行されてもよい。
【００３３】
次いで、できるだけ第1のパノラマサークル内にあった多くのキャプチャ画像を含むように、更新されたパノラマ中心の座標の周りに最終パノラマサークルが見出され得る。図6Aに示す例では、最終パノラマサークル607は、キャプチャ点Aでキャプチャされた画像611および615と、キャプチャ点Cでキャプチャされた画像613とを含むように決定され得る。追加の最終パノラマサークル609は、(X3、Y3)の点Bでキャプチャされたような、決定された最終パノラマサークル内に収まらないキャプチャ画像に対して上記プロセスを繰り返し実行することによって見出され得る。このプロセスは、すべてのキャプチャ画像が最終パノラマサークルの範囲内に入るまで実行される。いくつかの場合、最終パノラマサークルは、単一のキャプチャ画像のみを含むことができる。
【００３４】
パノラマパターンクラスタは、特定のしきい値基準を満たす最終パノラマサークルを保持することによって決定されてもよい。これに関して、8つ(あるいはそれより多いまたは少ない)などの、しきい値数未満のキャプチャ画像を含む最終パノラマサークルは無視されてもよい。さらに、図6Bに示すように、少なくともしきい値数のキャプチャ画像を含むいくつかの最終パノラマサークルが分析され得、視野角、視野の全角度が、しきい値角度値より大きい視野角を含む各最終パノラマサークル内のキャプチャ画像によってカバーされるか否かを判定する。図6Bの例では、2つの最終パノラマサークル607および609内でそれぞれキャプチャされた画像間の視野角X2およびX1は、それらがしきい値角度値を満たすか否かを見るように決定されてもよい。上記の基準の少なくとも1つまたは両方を満たす最終パノラマサークルのすべてを、パノラマパターンクラスタと見なすことができる。
【００３５】
並進パターンクラスタを決定するために、互いの設定された角度しきい値内にあるキャプチャ画像が決定され得る。例えば、第1のキャプチャ画像では、図7Aに示すように、シーンに対して水平軸に沿って第1のキャプチャ画像の左および右に最も近い隣接するキャプチャ画像の初期候補セットが決定され得る。図7Aの例では、第1のキャプチャ画像Aと初期候補セット内のキャプチャ画像、ここでは画像B〜Eとについて、画像がキャプチャされたときのカメラの中心が指した方向が判定され得る。図7Bに示すように、第1のキャプチャ画像から例えば約36度(あるいはそれより大きいまたは小さい)のしきい値角度よりも大きい角度にある方向を有する初期候補セット内の各キャプチャ画像は廃棄されてもよく、その結果、残りの画像は概ね同じ角度からキャプチャされた画像になる。これに関して、第1のキャプチャ画像Aは90度の角度X1であり、画像Cは45度の角度X2であってもよい。したがって、画像Cは、その差が設定された角度しきい値よりも大きいので、初期候補セットから破棄され得る。次いで、初期候補セットは、第1のキャプチャ画像に最も近い初期候補セットのキャプチャ画像のうちの6つ(あるいはそれより多いまたは少ない)などの所定の数を含む縮小候補セットに縮小されてもよい。縮小候補セットは、各キャプチャ画像について計算され、関連付けられ得る。
【００３６】
縮小候補セットは、潜在的な並進パターンクラスタを作成するために拡張され得る。例えば、第1のキャプチャ画像から開始して、第1のキャプチャ画像に関連付けられた縮小候補セット内の各キャプチャ画像が解析され得る。設定された角度しきい値内にあり、シーンに対して水平軸に沿って第1のキャプチャ画像の左側に位置するキャプチャ画像は、潜在的な並進パターンクラスタにまとめられてもよい。第1のキャプチャ画像に関連付けられた縮小候補セット内のすべてのキャプチャ画像が、設定された角度しきい値を満たすか、またはその範囲内にある場合、第1のキャプチャ画像のすぐ左側にあるキャプチャ画像に関連付けられた隣接候補セット内のキャプチャ画像も解析され得る。角度しきい値を満たす隣接候補セットの各キャプチャ画像は、潜在的な並進クラスタに配置されてもよい。例えば、現在解析されているキャプチャ画像のすぐ左側にあるキャプチャ画像に関連付けられた隣接候補セットが、現在解析されている画像に最も近い画像から開始して繰り返し分析され、キャプチャ画像が角度しきい値を満たすか否か、現在分析されている画像の角度しきい値の範囲内であるか否かを判定する。これは、隣接候補セット内のキャプチャ画像のうちの1つが、現在分析されている画像の角度しきい値を満たさないか、またはその範囲内でなくなるまで続いてもよい。現在分析されている画像の角度しきい値を満たす解析されたすべてのキャプチャ画像は、潜在的な並進パターンクラスタに含まれ得る。次いで、同じプロセスが実行され、第1のキャプチャ画像の右側の画像を見出すことができる。
【００３７】
並進パターンクラスタは、追加のしきい値基準を満たす潜在的な並進パターンクラスタを保持することによって決定することができる。これに関して、8つ(あるいはそれより多いまたは少ない)などの、しきい値数未満のキャプチャ画像を含む潜在的な並進パターンクラスタは、無視されてもよい。少なくともしきい値数のキャプチャ画像を含む潜在的な並進パターンクラスタは、並進パターンクラスタとみなすことができる。
【００３８】
軌道パターンクラスタを決定するために、1つまたは複数の軌道オブジェクト中心に向けられ、軌道オブジェクト中心の周りの滑らかな転換を提供するキャプチャ画像が見出される。例えば、キャプチャ画像が比較され、オーバーラップしている画像データを有するキャプチャ画像のグループを決定することができる。オーバーラップしている画像データは、特徴検出アルゴリズムおよびSfM(structure from motion)アルゴリズムなどのコンピュータビジョンアルゴリズムを使用して見出すことができる。これに関して、各キャプチャ画像の特徴点が決定されてもよい。次に、各キャプチャ画像の特徴点をSfMアルゴリズムを用いて比較して、点のいずれかが共通であるか、すなわちそれらがオーバーラップする画像データを含むか否かを判定することができる。オーバーラップしている画像データを含むキャプチャ画像のグループは、隣接する画像とみなされる。
【００３９】
図8に示すように、軌道オブジェクト中心は、各キャプチャ画像を、画像がキャプチャされたロケーションから発する光線として、およびキャプチャ画像がキャプチャされたときにカメラの中心が指す方向にあるとみなすことによって決定されてもよい。この例では、隣接する画像A〜Eの光線の間の交点が見出される。クラスタリングアルゴリズムは、十分なレベルの交点を有する領域を決定することによって軌道オブジェクト中心803を見出すために使用され得る。一例では、交差する光線が密集した領域に対する中心点を決定するK平均クラスタリングアルゴリズムを使用して、軌道オブジェクト中心の座標を決定することができる。
【００４０】
軌道パターンクラスタは、キャプチャ画像を軌道オブジェクト中心に関連付けることによって決定されてもよい。例えば、図8に示すように、各軌道オブジェクト中心について、軌道オブジェクト中心803に位置するシーン801の一部に関連付けられた画像データを含むキャプチャ画像が、その軌道オブジェクト中心に関連付けられ得る。それぞれの軌道オブジェクト中心803に関連付けられたキャプチャ画像A、B、C、およびDは、次いで、一緒にグループ化されてもよい。一例では、それぞれの軌道オブジェクト中心に関連付けられたキャプチャ画像は、不連続集合データ構造を使用して、滑らかな転換を有するキャプチャ画像をマージすることによって一緒にグループ化され得る。滑らかな転換は、関連付けられた軌道オブジェクト中心に対する2つのキャプチャ画像の第1と第2の間の距離を見出すことによって決定され得る。2つのキャプチャ画像間の距離の差が、軌道中心により近いキャプチャ画像の軌道中心までの距離の約半分から四分の三以下である場合、2つのキャプチャ画像は、滑らかな転換を有するとみなされ得る。これに関して、キャプチャ画像の複数のグループは、軌道オブジェクト中心に関連付けられてもよい。
【００４１】
軌道パターンクラスタは、特定のしきい値基準を満たすキャプチャ画像のグループを保持することによって決定することができる。これに関して、8つ(あるいはそれより多いまたは少ない)などの、しきい値数未満のキャプチャ画像を含むキャプチャ画像のグループは、無視されてもよい。少なくともしきい値数のキャプチャ画像を含むキャプチャ画像のグループは、解析されて、各画像グループ内のキャプチャ画像によってカバーされる視野角がしきい値より大きい視野角を含むか否かを判定することができる。上記のしきい値基準の少なくとも1つまたは両方を満たす画像のすべてのグループは、軌道パターンクラスタと見なすことができる。
【００４２】
決定されたクラスタ内の1つまたは複数のキャプチャ画像は、コンピューティングデバイスのディスプレイ上で見ることができる。これに関して、ユーザは、異なるクラスタ間または単一クラスタ内でナビゲートすることができる。例えば、現在表示されていないクラスタを表すクリックターゲットをディスプレイ上に提供して、ユーザがクラスタ間で切り替えることができるようにする。クリックターゲットは、マウスポイントを使用してターゲットをクリックするか、タッチ感応画面をタップすることによって、アクティブにすることができる。さらに、現在表示されているクラスタ内の隣接する画像を表すドラッグターゲットをユーザに提供して、ユーザが現在表示されているクラスタ内をナビゲートできるようにすることができる。ドラッグターゲットは、マウスポイントを使用してターゲット上をドラッグするか、タッチ感応画面をタップすることによって、アクティブにできる。
【００４３】
クリックターゲットは、現在選択されているクラスタに基づいて決定できる。例えば、ユーザは、見るための初期クラスタを選択することができる。初期クラスタ内のキャプチャ画像は、コンピューティングデバイス上に表示されてもよい。図11に示すように、初期クラスタの外の、現在表示されているキャプチャ画像への1つまたは複数の隣接するキャプチャ画像が、1つまたは複数のクリックターゲットとして割り当てることができる。これに関して、隣接する画像が、現在表示されているキャプチャ画像1120よりもシーンに近いロケーションからキャプチャされた場合、1つまたは複数の隣接するキャプチャ画像をクリックターゲット1130として割り当てることができる。1つまたは複数の隣接するキャプチャ画像がシーンにより近いロケーションからキャプチャされた場合、現在表示されているキャプチャ画像1120に最も近い1つまたは複数の隣接するキャプチャ画像内のキャプチャ画像をクリック対象1130とすることができる。したがって、ユーザ1110がクリックターゲット1130を選択すると、コンピューティングデバイス120のディスプレイ122は、現在表示されているキャプチャ画像1120を、そのクリックターゲットに関連付けられた、割り当てられた最も近いキャプチャ画像に切り替える。新しいクリックターゲットは、ユーザがクラスタおよび/または表示されたキャプチャ画像を切り替えるたびに決定されてもよい。
【００４４】
ドラッグターゲットを使用してパノラマパターンクラスタ内でナビゲーションを提供するために、現在のクラスタ内で、現在表示されているキャプチャ画像に最も近い各キャプチャ画像についてドラッグターゲットコストを計算することができる。これに関して、ドラッグターゲットコストは、様々なコスト条件を含むことができる。これらのコスト条件は、現在表示されているキャプチャ画像と、現在表示されているキャプチャ画像に最も近いキャプチャ画像との間の画素の並進及び回転「流れ」の流れ場に関連する。オーバーラップコストのようなフローに基づかない他のコスト条件も使用することができる。一例では、ターゲット画像は、可能な限り基準画像とオーバーラップするべきである。したがって、オーバーラップコストは、2つのコスト値を含むことができる。すなわち、(1)基準画像のどれだけがターゲット画像と重なるか、および(2)ターゲット画像のどれだけが基準画像と重なるかである。オーバーラップが増加すると、オーバーラップコストが減少することがある。したがって、このコスト値は反転した値であってもよい。キャプチャされた各画像について、各キャプチャ画像のドラッグターゲットコストを作成するためにコストを複合することができる。
【００４５】
一例では、図9に示すように、各ドラッグベクトル方向について、最小のドラッグターゲットコストを有する画像を、そのドラッグベクトル方向に沿ったドラッグターゲットとすることができる。したがって、ユーザ910がドラッグベクトル方向930に沿ってコンピューティングデバイス120のディスプレイ122をパンするとき、現在表示されているキャプチャ画像920は、ドラッグターゲットコストが最も低いドラッグターゲットに切り替えることができる。
【００４６】
軌道および並進パターンクラスタ内をナビゲートするために、現在表示されているキャプチャ画像の左右に隣接するキャプチャ画像が見出される。例えば、現在表示されているクラスタの中心点を決定することができる。図10に戻って、現在表示されているキャプチャ画像Aの視野角X1および1つまたは複数の隣接するキャプチャ画像BおよびCの視野角は、各画像から中心点までの視野角を計算することによって見出すことができる。現在表示されている画像Aの視野角X1から例えば約30度大きく外れた視野角の画像は、破棄されてもよい。隣接する画像BおよびCの視野角X2およびX3は、現在表示されている画像Aの視野角X1と比較され、画像が現在表示されている画像の左または右に位置するか否かを判定することができる。
【００４７】
軌道および並進パターンクラスタ内の隣接する画像は、現在表示されている画像に対して左または右のドラッグターゲットのいずれかとすることができる。これに関して、ターゲットドラッグ距離に最も近い隣接する画像は、左または右ドラッグターゲットとすることができる。ターゲットドラッグ距離は、約0度と30度(あるいはそれより大きいまたは小さい)との間であってもよい。それぞれの隣接する画像と現在表示されている画像との間の視野角差として計算されたターゲットドラッグ距離に最も近い、左または右のいずれかに隣接する画像は、それぞれ、左および右のドラッグターゲットとすることができる。したがって、ユーザがディスプレイを左または右にパンすると、それぞれ左または右のドラッグターゲットがコンピューティングデバイス上に表示され得る。
【００４８】
図12の流れ図1200は、クライアントコンピューティングデバイス120、130、または140などの、1つまたは複数のコンピューティングデバイスによって実行され得る、上述の態様のいくつかの例示的な流れ図である。本明細書で論じるステップは単なる例に過ぎないことが理解されよう。ステップは異なる順序で行われてもよく、ステップが追加されてもよく、ステップが省略されてもよい。この例では、ブロック1202において、キャプチャ画像のセットにアクセスされ得る。次いで、1つまたは複数のコンピューティングデバイスは、ブロック1204に示されるように、キャプチャ画像のセット内の画像が所定のパターンを満たすか否かを検出することができる。ブロック1206に示すように、検出されたパターンに基づいて、画像は1つまたは複数のクラスタにグループ化されてもよい。ブロック1208に示すように、1つまたは複数のクラスタの第1のクラスタを表示する要求が受信される。ブロック1210に示すように、第1のキャプチャ画像が表示のために選択されてもよい。次に、ブロック1212に示すように、選択された第1のキャプチャ画像が表示のために提供される。
【００４９】
本明細書における技術は、特定の実施形態を参照して記載されているが、これらの実施形態は、本技術の原理および適用の単なる例示であることを理解されたい。したがって、例示的な実施形態に対して多くの変更を行うことができ、添付の特許請求の範囲によって規定される本技術の精神および範囲から逸脱することなく他の構成を考案することができることを理解されたい。
【符号の説明】
【００５０】
100  システム
110,120,130,140  コンピューティングデバイス
112  プロセッサ
114  メモリ
116  命令
118  データ
122  ディスプレイ
124  ユーザ入力デバイス
150  ストレージシステム
160  ネットワーク
【図１】
0006505242.tif 000002
【図２】
0006505242.tif 000003
【図３】
0006505242.tif 000004
【図４】
0006505242.tif 000005
【図５】
0006505242.tif 000006
【図６Ａ】
0006505242.tif 000007
【図６Ｂ】
0006505242.tif 000008
【図７Ａ】
0006505242.tif 000009
【図７Ｂ】
0006505242.tif 000010
【図８】
0006505242.tif 000011
【図９】
0006505242.tif 000012
【図１０】
0006505242.tif 000013
【図１１】
0006505242.tif 000014
【図１２】
0006505242.tif 000015