(58)【調査した分野】(Int.Cl.,DB名)
前記視覚的特性は色に関連付けられ、前記要求された画像の視覚的特性を決定することは、前記第1の視覚的特性に関連付けられた色と、前記第2の視覚的特性に関連付けられた色とを前記第2の重み値に対する前記第1の重み値に比例してアルファ混合することによって色を決定することを備える、請求項1に記載のシステム。
第1の重み値を決定することは、第1の楕円の半径と、第2の楕円の対応する半径とに基づいて値を決定することを備え、前記第1の楕円は、前記平面と前記第1の有利な地点から前記選択された地点へ延びる線の周囲を中心とした円錐との交差によって定義され、前記第2の楕円は、前記平面と前記要求された有利な地点から前記選択された地点へ延びる線の周囲を中心とした円錐との交差によって定義される、請求項4に記載のシステム。
前記第1の重み値を決定することは、選択された角度で前記第2の楕円の前記半径の推定値に対する前記第1の楕円の前記半径の推定値に基づいて比を決定することをさらに備える、請求項6に記載のシステム。
前記視覚的特性は色に関連付けられ、前記要求された画像の視覚的特性を決定するステップは、前記第1の視覚的特性に関連付けられた色と、前記第2の視覚的特性に関連付けられた色とを前記第2の重み値に対する前記第1の重み値に比例してアルファ混合することによって色を決定するステップを備える、請求項8に記載の方法。
プログラムのコンピューティングデバイス可読命令が記憶された非一時的コンピューティングデバイス可読記憶媒体であって、前記命令は、1つまたは複数のコンピューティングデバイスによって実行された場合、前記1つまたは複数のコンピューティングデバイスに、請求項8〜12のいずれか一項に記載の方法を実行させる、非一時的コンピューティングデバイス可読記憶媒体。
【発明を実施するための形態】
【0008】
概観
本技術は、オブジェクトのイメージがキャプチャされた有利な地点とは異なる有利な地点からオブジェクトを表示することに関する。たとえば、2つ以上のパノラマ画像が、2つの異なる有利な地点からオブジェクトをキャプチャしてよく、ユーザは、2つのキャプチャ地点間の場所からオブジェクトの画像を要求してよい。本システムは、オブジェクトの対応する表面の視覚的に正確な表現であるフラグメントの尤度に比例する画像の対応するフラグメントをともに混合することによって、ユーザによって要求された画像を生成してよい。例として、ユーザによって要求された画像を生成する場合、本システムは、表示されるべきオブジェクトの表面の方位に対するキャプチャ場所およびユーザによって要求された地点の関係に基づく品質値を計算してよい。フラグメントが混合された場合、他のフラグメントよりも良好な品質値を有するフラグメントへ重みがより適用されてよい。
【0009】
例示として、
図2は、車の2つのソース画像がキャプチャされた2つの異なる有利な地点を図示する。この例では、車の正面がキャプチャされた角度は、第1のソース画像において比較的直角であり、第2のソース画像において比較的鋭角である。逆に、車の側面がキャプチャされた角度は、第1の画像において比較的鋭角であり、第2の画像において比較的直角である。図はまた、車を見るためにユーザによって選択された有利な地点を図示する。
【0010】
ユーザによって選択された有利な地点からオブジェクトを表示するために、システムは、各ソース画像においてキャプチャされた表面のすべての3次元(3D)モデルを生成してよい。たとえば、レーザ照準機は、デプスマップを準備するために使用されてよい。デプスマップは、頂点がオブジェクトの表面に沿った地点の場所に一致するポリゴンのメッシュを含むソースモデルを準備するために使用された。
【0011】
各ソース画像に関連付けられたソースモデルはまた、モデルに対するキャプチャ地点の場所を識別してもよく、システムは、ソース画像においてキャプチャされた視覚的情報をモデルへ投影するために、その場所を使用してよい。1つのソース画像に関連付けられた3Dモデルは、表面場所に関して別のソース画像に関連付けられた3Dモデルに実質的に同一であってよいが、モデルへ投影されたテクスチャの視覚的特性は、表面がキャプチャされた角度に依存して異なってよい。
【0012】
ユーザへ表示されるために、画像のピクセルの視覚的特性を決定する場合、システムは、表示された各ピクセルを通って延びる光線が、たとえばテクセルのような、モデルのテクスチャと交差する場所を識別するために、レイトレーシング、およびユーザによって要求された有利な地点の場所を使用してよい。システムは、表示されたピクセルの視覚的特性(たとえば、色相、飽和、および輝度)を決定するために、異なるソース画像からのテクセルをともに混合してよい。
【0013】
ソース画像のモデルからのテクセルがともに混合される場合、別のソース画像からのテクセルよりも、1つのソース画像からのテクセルへより大きな重みが適用されてよい。この重みが、表示されるべきオブジェクトの視覚的特性の正確な表現であるテクセルの尤度を反映する品質値に基づいてよい。
【0014】
少なくとも1つの態様では、品質値は、テクセルの解像度に対する表示されるピクセルの解像度に依存してよい。たとえば、表示された各ピクセルのために単一のテクセルが存在する場合に生じるように、最適な品質が定義されてよい。逆に、(表面のテクスチャが一直線にキャプチャされたがグレージング角度で見られる場合に生じてもよい)単一のピクセルに関連付けられた多くのテクセルが存在する、または(表面のテクスチャがグレージング角度でキャプチャされたが一直線に見られるのであれば生じてもよい)単一のテクセルに関連付けられた多くのピクセルが存在する場合に生じるように、低品質が定義されてよい。
【0015】
テクセルの品質値は、表示されるべき表面の方位に対するユーザによって定義されたキャプチャされた有利な地点の場所に基づいて計算されてよい。例示として、
図3は、2つの地点の場所、すなわち有利な地点と、ユーザへ表示されるべきモデルの表面における地点とを図示する。図はまた、円錐および平面の交差を表す楕円を図示する。平面は、有利な地点、たとえばテクセルを含むソースモデルポリゴンの頂点によって定義される平面、に対する表面の方位を反映する。円錐は、有利な地点から表面の地点へ延びる線(「有利/表面線」)を中心とされる。楕円が延長される範囲は、表面の方位と、有利な地点から表面が見られる角度とに関する。有利/表面線が、表面の方位に完全に直角ならば、楕円は円になるだろう。有利/表面線の立体角が、表面の方位に対してより鋭角になると、楕円は、より延長されるようになり、楕円の短軸に対する長軸の比が増加するであろう。
【0016】
テクセルの品質値は、キャプチャ地点に関連付けられた楕円(「テクセル楕円」)と、ユーザによって要求された有利な地点に関連付けられた楕円(「ピクセル楕円」)との間の差分に基づいて決定されてよい。
図4は、テクセル楕円およびピクセル楕円の例を提供する。品質値は、ピクセル楕円の半径と、テクセル楕円の半径との間の長さにおける最大差を生成する角度における、テクセル楕円の半径に対するピクセル楕円の半径の比から計算されてよい。
【0017】
各テクセルについて、品質値が計算されると、品質値は、混合中の重みとして適用されてよい。たとえば、3つのテクセルT
1、T
2、およびT
3を識別するために、3つのソース画像が使用されたのであれば、出力は、(w
1T
1+w
2T
2+w
3T
3)/(w
1+w
2+w
3)として計算されてよい。w
nは、テクセルの品質値に等しい。重みはまた、他の手法で適用されてよい。
【0018】
システムはまた、閉塞(occlusion)へ対処するために重み値を使用してよい。
図5に図示されるように、表示されるピクセルの特性を決定するために使用される光線が、ユーザによって要求された有利な地点における視点から妨害されるであろうソース画像においてキャプチャされたオブジェクトの表面を通じて延びてよい。システムは、表面に面している各背面のための重みがゼロに設定されるように、表面に面している正面と背面との両方をレンダリングしてよい。システムはまた、各ソース画像内のビューワに最も近い表面が表示のために選択されるように画像を生成してよい。これによってシステムは、デプスを計算することなく、両モデルからのテクスチャをともに混合することが可能となる。
【0019】
アーティファクトもまた、重み値を用いて対処されてよい。たとえば、
図6に図示されるように、デプスデータにおける不連続性は、表面におけるギャップがオブジェクトの表面として不正確にモデル化されるようにしてよい。そのような存在しない表面をモデルから除去するのではなく、システムは、存在しない表面のテクセルの品質値を決定してよい。光線の角度が存在しない表面の方位に比較的直角であれば、テクセルの品質値は、異なる有利な地点からキャプチャされた別の表面におけるテクセルの品質値と比較して非常に低くてよい。しかしながら、存在しない表面が見られる角度が存在しない表面の方位に対して比較的平行であれば、その表面におけるテクセルの品質値は比較的高くてよい。
【0020】
システムは、ユーザによって要求される有利な地点からユーザへオブジェクトを表示するために使用されてよい。その点に関して、
図7に図示されるように、ユーザは、ソースイメージがキャプチャされた有利な地点以外の有利な地点からオブジェクトを見ることが可能であってよい。
【0021】
例示的なシステム
図1は、本明細書で開示された態様が実施されてよい1つの可能なシステム100を例示する。この例では、システム100は、コンピューティングデバイス110および120を含んでよい。コンピューティングデバイス110は、1つまたは複数のプロセッサ112、メモリ114、および汎用コンピューティングデバイスに典型的に存在する他のコンポーネントを含んでよい。
図1は、単一のブロックとしても表されるデバイス110内の単一のブロックとしてプロセッサ112およびメモリ114の各々を機能的に表すが、本明細書で説明されたシステムおよび方法は、同じ物理的なハウジングに格納されてよい、または格納されなくてよい多数のプロセッサ、メモリ、およびデバイスを含んでよい。たとえば、単一のコンポーネント(たとえば、プロセッサ112)を含むとして以下に説明される様々な方法は、複数のコンポーネント(たとえば、負荷平準サーバファームにおける多数のプロセッサ)を含んでよい。同様に、異なるコンポーネント(たとえば、デバイス110およびデバイス120)を含むとして以下に説明される様々な方法は、単一のコンポーネントを含んでよい(たとえば、デバイス120が、以下に説明される決定を実行するのではなく、デバイス120は、処理のために関連するデータをデバイス110へ送信し、さらなる処理または表示のための決定の結果を受信してよい)。
【0022】
コンピューティングデバイス110のメモリ114は、プロセッサによって実行されてよい命令116を含む、プロセッサ112によってアクセス可能な情報を記憶してよい。メモリ114はまた、プロセッサ112によって検索、操作、または記憶されてよいデータ118を含んでよい。メモリ114は、非一時的なデータを記憶することができる媒体のように、適切なプロセッサによってアクセス可能な情報を記憶することができる任意のタイプのストレージであってよい。例として、メモリ114は、ハードディスクドライブ、ソリッドステートドライブ、メモリカード、RAM、DVD、書込可能なメモリ、または読取専用メモリであってよい。それに加えて、メモリは分散された記憶システムを含んでよく、データ150のようなデータは、同じまたは異なる地理的場所において物理的に配置されてよい複数の異なる記憶デバイスに記憶される。
【0023】
命令116は、プロセッサ112または他のコンピューティングデバイスによって実行されるべき命令の任意のセットであってよい。その点に関し、「命令」、「アプリケーション」、「ステップ」、および「プログラム」という用語は、本明細書において置換可能に使用されてよい。これらの命令は、プロセッサによる即時処理のためのオブジェクトコードフォーマットで、またはオンデマンドで翻訳される、または先行してコンパイルされる独立したソースコードモジュールのスクリプトまたは集合を含む別のコンピューティングデバイス言語で記憶されてよい。命令の機能、方法、およびルーチンは、以下により詳細に説明される。プロセッサ112は、市販のCPUのような任意の従来のプロセッサであってよい。あるいは、プロセッサは、ASICまたは他のハードウェアベースのプロセッサのような専用コンポーネントであってよい。
【0024】
データ118は、命令116に従ってコンピューティングデバイス110によって検索、記憶、または修正されてよい。たとえば、本明細書で説明された主題は、どの特定のデータ構造によっても限定されないが、データは、コンピュータレジスタに、多くの異なるフィールドおよびレコードまたはXMLドキュメントを有するテーブルとしてリレーショナルデータベースに記憶されてよい。データはまた、限定されないが、バイナリ値、ASCIIまたはUnicodeのような任意のコンピューティングデバイス読取可能なフォーマットでフォーマットされてよい。さらに、データは、数字、説明文、所有者コード、ポインタ、他のネットワーク場所におけるような他のメモリに記憶されたデータに対する参照、または関連データを計算するための関数によって使用される情報のような関連情報を識別するために十分な任意の情報を備えてよい。
【0025】
コンピューティングデバイス110は、ネットワーク160の1つのノードにおいて存在してよく、ネットワーク160の他のノードとダイレクトおよび非ダイレクトに通信することが可能であってよい。少数のコンピューティングデバイスしか
図1に図示されていないが、典型的なシステムは、多数の接続されたコンピューティングデバイスを含んでよく、異なる各コンピューティングデバイスは、ネットワーク160の異なるコードにある。本明細書で説明されるネットワーク160および介在するノードは、様々なプロトコルおよびシステムを使用して相互接続されてよく、これによってネットワークは、インターネット、ワールドワイドウェブ、特定のイントラネット、広域ネットワーク、またはローカルネットワークの一部であってよい。ネットワークは、イーサネット(登録商標)、Wi-FiおよびHTTP、1つまたは複数の会社へ専用であるプロトコル、および先述したものの様々な組合せのような標準的な通信プロトコルを利用してよい。例として、コンピューティングデバイス110は、ネットワーク160を経由してコンピューティングデバイス120と通信することが可能なウェブサーバであってよい。コンピューティングデバイス120は、クライアントコンピューティングデバイスであってよく、サーバ110は、ディスプレイ122を経由してデバイス120のユーザ135へ情報を伝送し提示するために、ネットワーク160を使用することによって情報を表示してよい。上述したように情報が伝送または受信された場合にある利点が取得されるが、本明細書で説明された主題の他の態様は、情報の伝送のいずれの特定の方式にも限定されない。
【0026】
コンピューティングデバイス120は、上記で説明されたようなプロセッサ、メモリ、および命令を備えたサーバ110に類似して構成されてよい。コンピューティングデバイス120は、ユーザによる使用のために意図されたパーソナルコンピューティングデバイスであってよく、中央処理装置(CPU)、データおよび命令を記憶するメモリ、ディスプレイ122(たとえば、スクリーンのあるモニター、タッチスクリーン、プロジェクタ、テレビ、または情報を表示するために動作可能な他のデバイス)のようなディスプレイ、ユーザ入力デバイス162(たとえば、マウス、キーボード、タッチスクリーン、マイクロホン等)、またカメラ163のように、パーソナルコンピューティングデバイスと接続して通常使用されるコンポーネントのすべてを有してよい。
【0027】
コンピューティングデバイス120はまた、インターネットのようなネットワークを介してサーバとワイヤレスにデータを交換することができるモバイルコンピューティングデバイスであってよい。単なる例として、デバイス120は、モバイル電話、もしくはワイヤレス対応PDA、タブレットPC、ウェアラブルコンピューティングデバイス、またはインターネットを経由して情報を取得することが可能なネットブックのようなデバイスであってよい。デバイスは、GoogleのAndroidオペレーティングシステム、Microsoft Windows、またはApple iOSのようなオペレーティングシステムで動作するように構成されてよい。その点に関し、本明細書で説明された動作中に実行される命令のいくつかは、オペレーティングシステムによって提供されてよい一方、他の命令は、デバイスにインストールされたアプリケーションによって提供されてよい。本明細書において説明されたシステムおよび方法に従うコンピューティングデバイスは、命令を処理し、人間へ/からデータを伝送することが可能な他のデバイス、および/またはローカル記憶能力を欠くネットワークコンピュータ、およびテレビのためのセットトップボックスを含む他のコンピュータを含んでよい。
【0028】
コンピューティングデバイス120は、デバイスの地理的場所および方位を決定するために、回路のようなコンポーネント130を含んでよい。たとえば、クライアントデバイス120は、デバイスの緯度、経度、および高度位置を決定するために、GPSレシーバ131を含んでよい。このコンポーネントはまた、クライアントデバイスがセル電話であれば、1つまたは複数のセル電話塔からセル電話のアンテナにおいて受信した信号のような、クライアントデバイス120において受信された他の信号に基づいて、デバイスの位置を決定するためのソフトウェアを備えてよい。それはまた、デバイスが向けられる方位を決定するために、磁気コンパス132、加速度計133、およびジャイロスコープ134を含んでよい。単なる例として、デバイスは、重力の方向、またはそれに垂直な面に対するピッチ、ヨー、またはロール(またはその変化)を決定してもよい。コンポーネント130はまた、デバイスとオブジェクトの表面との間の距離を決定するためにレーザ照準機または類似のデバイスを含んでよい。
【0029】
サーバ110は、その少なくとも一部がクライアントデバイスへ伝送されてよい地図関連情報を記憶してよい。地図情報は、どの特定のフォーマットにも限定されない。たとえば、地図データは、衛星または航空機によってキャプチャされた写真のような、地理的場所のビットマップ画像を含んでよい。
【0030】
サーバ110はまた、単なる例として平面写真、光球、または背景の動画のようなイメージを記憶してよい。このイメージは、後のアクセスのために、または特徴に関連する情報を探索する人へ、写真をアクセス可能にする目的のために、エンドユーザによってキャプチャされアップロードされてよい。カメラによってキャプチャされた画像データに加えて、イメージの個々のアイテムが、キャプチャの日付、キャプチャの日時、キャプチャの地理的方位(たとえば、カメラ角度または方向)および場所(たとえば、緯度、経度、および高度)のような追加のデータに関連付けられてよい。
【0031】
イメージの一部は、イメージ内に現れる特徴の地理的場所のモデルを含む追加情報に関連付けられてよい。たとえばモデルは、パノラマ画像においてキャプチャされたオブジェクトの表面の場所を識別してよい。表面の場所はたとえば、その場所が固定位置からの立体角および距離(たとえば、イメージがキャプチャされたポイントからの方位および距離)として定義される地点のコンステレーション、または頂点が緯度/経度/高度座標で表現される地理的に位置するポリゴンのように、異なる手法でメモリに記憶されてよい。システムおよび方法はさらに、その場所が、レーザ照準機を使用してダイレクトにキャプチャされた、または立体画法の三角測量を使用することによって画像から生成された地点のコンステレーションから地理的に位置されたポリゴンのモデルを生成することのように、1つの基準系から別の基準系へ場所を変換してよい。場所は、他の手法でも同様に表現されてよく、アプリケーションおよび必要とされる精度の性質に依存してよい。単なる例として、地理的場所は、道路住所、(道路地図のエッジに対するピクセル位置のような)地図のエッジに対するx-y座標、または地理的場所を識別することが可能な他の基準系(たとえば、サーベイ地図上のロットおよびブロック番号)によって識別されてよい。場所はまた範囲によって説明されてよく、たとえば地理的場所は、緯度/経度/高度座標の範囲、離散的な系列によって説明されてよい。
【0032】
例示的な方法
本発明の様々な態様に従う動作が説明されるであろう。以下の動作は、以下に説明される正確な順序で実行される必要はないことが理解されるべきである。むしろ、様々なステップは、異なる順序で、または同時に取り扱われることができる。
【0033】
地理的なオブジェクトは、多数の有利な地点からイメージによってキャプチャされてよい。例として、
図2は、それぞれ、2つの異なる場所210および220から2つの個別の画像215および225においてキャプチャされた車240を図示する。有利な地点210から車の正面によって一般に定義される平面202に対するカメラ角度211は、比較的直角であり、車の側面によって一般に定義される平面201に対するカメラ角度212は、比較的鋭角である。対照的に、有利な地点220から正面の平面202に対する視角221は、比較的鋭角であり、側面201に対する視角222は、比較的直角である。(参照番号201および202は、これら表面によって一般に定義される平面のみならず、車240の正面および側面を称するために、相互置換可能に使用される。)その点に関し、場所210および220からキャプチャされた画像は、異なる角度から車の異なる表面をキャプチャし、1つの表面は、比較的一直線にキャプチャされ、他の表面は、鋭い角度からキャプチャされる。
【0034】
イメージにおいてキャプチャされたオブジェクト表面の場所のモデルが、生成され、かつイメージに関連付けられてよい。例として、ソースイメージは、パノラマ画像を含んでよい。ソース画像がキャプチャされた時において、パノラマ画像の各ピクセルをキャプチャ場所からその視覚的特性がピクセルによって表される表面の一部への距離へ関連付けるために、レーザ照準機135または別のデプス決定技術が使用されてよい。そのような情報と、画像がキャプチャされた場所(たとえば、GPSレシーバ131によって提供された緯度/経度/高度情報)とに基づいて、システムは、その頂点がオブジェクトの表面に沿った地点の場所(たとえば、緯度/経度/高度)に一致するポリゴン(たとえば、三角形)のメッシュを含むソースモデルを生成してよい。
【0035】
ソース画像においてキャプチャされた視覚的特性は、そのソース画像に関連付けられたモデルを織り込むために使用されてよい。たとえば、イメージ215および216の各ピクセルはまた、たとえばカメラからピクセルに関連付けられた表面の一部へ延びる光線を定義するデータのようなカメラ角度に関連付けられてよい。カメラ角度データは、コンパス132によって提供される基本方向と、ジャイロスコープ134によって提供される方位データとのような、画像がキャプチャされた時に地理的コンポーネント130によって提供される情報に基づいてよい。光線との交差の地点におけるポリゴンの視覚的特性が、関連付けられたピクセルの視覚的特性と一致するように、画像215の各ピクセルの視覚的特性をモデル216のポリゴンへ投影するために、レイトレーシングが使用されてよい。
【0036】
ポリゴンの視覚的情報は、テクセルから構成されたテクスチャとして記憶されてよい。単なる例として、テクスチャのテクセルは、画像のピクセルが配置されてよい手法、たとえば1つまたは複数の視覚的特性を定義するグリッドまたは個々のユニットの他の集合と類似の方式で配置されてよい。以下の説明の一部は、説明の容易のために、色のようなピクセルまたはテクセルの単一の視覚的特性のみを称してよい。しかしながら、ピクセルおよびテクセルは、色相、飽和、および輝度を含む多くの異なる視覚的特性を定義するデータに関連付けられてよい。
【0037】
2つの異なるソースモデルが表面の場所の同一の表現を含んでいても、各モデルにおける表面の視覚的特性は、大きく異なってよい。たとえば、イメージ215は鋭い角度212で車240の側面201をキャプチャするので、車の側面の長さ全体はほんの少数の画像215においてのみ水平に表れてよい。その結果、ピクセル情報が車の側面を表すポリゴンへ投影された場合、単一のピクセルからの情報は、水平方向において、多くのテクセルを介して延びてよい。モデル216が有利な地点230から表示されたのであれば、車の側面は、結果として色の長い水平線を有するように見えてよい。しかしながら、モデル216が有利な地点210(テクスチャが投影された同じ場所)から表示されるのであれば、車240の側面201は少ないアーティファクト乃至アーティファクトなしで表示されてよい。
【0038】
システムは、未だに別の有利な地点から地理的オブジェクトを表示するために、多数の有利な地点からキャプチャされた視覚的情報を組み合わせてよい。たとえば、ユーザは、有利な地点230から車240の画像235を要求してよい。ユーザへ表示されるべき画像のピクセル(「表示されるピクセル」)の視覚的特性を決定する場合、システムは、表示された各ピクセルを有利な地点からおよびピクセルを含む画像面を介して延びる光線に関連付けてよい。システムは、各ピクセルの関連付けられた光線がモデルによって定義された表面と交差する地点およびテクセルを決定してよい。たとえば、画像235におけるピクセルの視覚的特性を決定する場合、システムは、ピクセルの光線がモデル216のポリゴンと交差するテクセル(T
1)と、ピクセルの光線が、モデル226のポリゴンと交差するテクセル(T
2)とを決定してよい。システムは、T
1の色とT
2の色とをアルファ混合することによってピクセルの色を決定してよい。
【0039】
交差したテクセルの視覚的特性がともに混合される場合、別のソース画像から導出されたテクセルよりも1つのソース画像から導出されたテクセルへより大きな重みが適用されてよい。この重みは、表示されるべきオブジェクトの視覚的特性の正確な表現であるテクセルの尤度に基づいてよい。
【0040】
少なくとも1つの態様では、品質値は、テクセルの解像度に対する表示されたピクセルの解像度に依存してよく、最適な品質は、表示された各ピクセルのために単一のテクセルが存在する場合に生じるように定義されてよい。逆に、低品質は、単一のピクセルに関連付けられた多くのテクセルが存在する場合、または単一のテクセルに関連付けられた多くのピクセルが存在する場合に生じるように定義されてよい。例として、第1のポリゴンが生成されてよい。第1のポリゴンへ投影される各ピクセルのために単一のテクセルが存在する。ピクセルが、比較的一直線な角度から第1のポリゴンへ投影されているのであれば、テクスチャは、一杯に詰め込まれた多くのテクセルを含んでよい。このポリゴンが一直線に表示されたのであれば、表示された各ピクセルのためにおおよそ1つのテクセルが存在してよく、したがってテクスチャは、比較的高い品質を有すると考慮されるであろう。しかしながら、ポリゴンが鋭角から表示されたのであれば、表示された各ピクセルのために多くのテクセルが存在してよく、テクスチャの比較的高い解像度に関わらず、テクスチャは、比較的低い品質を有すると考慮されるであろう。
【0041】
さらなる例として、第2のポリゴンが生成されてよい。第2のポリゴンへ投影される各ピクセルのためにも単一のテクセルが存在する。しかしながら、ピクセルが比較的鋭角から第2のポリゴンへ投影されたのであれば、テクスチャは、長く薄いテクセルを含んでよい。このポリゴンがその後、一直線に表示されるのであれば、表示された多くのピクセルは、それらの特性を単一のテクセルのみから導出するであろう。このケースでは、テクスチャは、比較的低品質を有すると考慮されるであろう。しかしながら、ポリゴンが比較的鋭角から表示されるのであれば、表示される各ピクセルのために1つのみのテクセルが存在してよい。このケースでは、テクスチャの比較的低い解像度にも関わらず、テクスチャは比較的高い品質を有すると考慮されるであろう。
【0042】
テクセルの品質値は、表示されるべき表面の方位に対するユーザによって定義されたキャプチャされた有利な地点の場所に基づいて計算されてもよい。例示として、
図3の地点320は、モデルの地理的に配置されたポリゴンが見られるであろう地理的場所であってよい。地点330は、表示されたピクセルに関連付けられたカメラ角度がポリゴンと交差する地点である。線"s"は、有利な地点320から交差地点330へ延びる。円錐350は、鋭い立体角("α")で地点320から外側へ延びる。αの尺度は、任意に選択されてよい。αの尺度はまた、テクスチャがキャプチャされた場所から見られるように、円錐がテクセルと類似した立体角を提供するように、たとえばテクスチャの解像度が高いほど、より小さな円錐となるように選択されてよい。楕円310は、円錐350と平面(図示せず)との交差を表す。平面、たとえば交差地点330を含むポリゴンの頂点によって定義される平面は、交差地点における表面の方位を反映する。
【0043】
楕円が延ばされる範囲は、表面の方位と有利な地点に関連する。たとえば、線"s"が、平面の方位に完全に直交している(それは、表面を一直線に見ることに関連付けられるであろう)のであれば、楕円310は、完全な円になるであろう。線"s"の立体角が平面の方位に対してより鋭角になると、楕円310はより延ばされるようになり、楕円の短軸("a")に対する長軸("b")の比は、"n"を面法線として増加するであろう。軸"a"および"b"は、式a=αs×nおよびb=(n・s/|s|)(a×n)から決定されてよい。
【0044】
テクセルの品質値は、キャプチャ場所から交差地点へ延びる円錐に関連付けられた楕円(「テクセル楕円」)と、ユーザによって選択された場所から交差地点へ延びる円錐に関連付けられた楕円(「ピクセル楕円」)との差分に基づいて決定されてよい。
図4では、テクセル楕円425がキャプチャ場所420に関連付けられ、ピクセル楕円435がユーザによって要求された有利な地点430に関連付けられる。交差地点450におけるテクセルの品質値は、特定の角度θにおけるテクセル楕円の半径に対するピクセル楕円の半径の比、たとえばquality(θ)=radius
t(θ)/radius
p(θ)から計算されてよい。1つの態様では、角度θは、最小比をもたらす角度または角度の推定値である。たとえば、品質値は、異なるθの値において計算されてよく、テクセルの品質値は、たとえばquality
min=quality(argmin
θ{quality(θ)})のように、計算された最低値に等しくてよい。最小は、両楕円を行列形式で表現し、かつテクセル楕円が単位円となるであろう座標系へピクセル楕円をマップするテクセル楕円の反転をピクセル楕円へ乗じることによって決定されてよい。この座標系内では、比は再マップされたピクセル楕円の半径に等しく、最小比は再マップされたピクセル楕円の短軸長に等しい。
【0045】
品質値は、テクセル楕円軸の各々をピクセル楕円軸の各々へ投影し、最長比を与えるピクセル楕円軸を選択することによって推定されてよい。例として、シェーダは、4つの可能な方向をサンプルし、最低品質値に関連付けられた角度を選択する式quality
min〜1/max((a
t・a
p)/(a
p・a
p),(b
t・a
p)/(a
p・a
p),(a
t・b
p)/(b
p・b
p),(b
t・b
p)/(b
p・b
p))に従って値を計算することによって最小品質値を概算してよい。他の方法も品質を計算するために使用されてよい。
【0046】
テクセルの品質が一旦計算されると、品質は、表示されるピクセルの色がテクセルの色にどの程度類似しているのかを決定するために使用されてよい。たとえば、3つのテクセルT
1、T
2、およびT
3を識別するために3つのソース画像が使用されるのであれば、各テクセルのための混合重みが、フラグメントシェーダにおいて各入力テクセルおよび出力(w
1T
1+w
2T
2+w
3T
3)/(w
1+w
2+w
3)について計算されてよく、w
nはテクセルの品質値に等しい。重みはまた、品質値を累乗へ上げることのように他の手法でも適用されてよい。たとえば、重みを大きな指数まで上げることによって、最大重みを有する表面が他の重みを支配してよい。したがって、より低い重みを有するテクセルのインパクトを低減することによってゴーストを低減する。
【0047】
システムはまた、
図5に例として図示されるように、閉塞へ対処するために重み値を使用してよい。表面502および503は、画像520において有利な地点Aからキャプチャされ、表面501および503は、画像530において有利な地点Bからキャプチャされた。モデル521および531はそれぞれ、各画像520および530のために生成されてよい。モデルが生成される場合、モデルは、テクスチャをポリゴンの特定の側面に関連付けてよい。たとえば、表面502は単一の三角形によってモデル521において表されてよく、1つの側面は有利な地点Aに面し、他の側面は有利な地点Aから離れている。画像データがモデルへ投影された場合、モデルは、テクスチャが有利な地点に面している三角形の側面上にあるかどうかを示してよい。
【0048】
要求された画像を生成する場合、その関連付けられたテクスチャが要求された有利な地点に面しているか離れているかを決定することによって、およびテクスチャが同じモデル内の他のテクスチャよりも有利な地点に近いかどうかを決定することによって、閉塞された表面が隠されてよい。たとえば、表示されたピクセルの色を有利な地点540から決定した場合、システムは、ピクセルの関連付けられた光線550が各表面と交差したポイントのすべて、すなわちポイント511〜513を決定してよい。システムはまた、各モデルについて、有利な地点に最も近い交差したテクセルと、交差したテクスチャのテクスチャが、有利な地点に面している(「正面向き」)ポリゴンの側面にあるか、または有利な地点から離れている(「背面向き」)ポリゴンの側面にあるかを決定してよい。したがって、システムは、T
511Bが、モデル531における最も近いテクセルであり、正面向きであると決定してよい("T
pppm"は、交差地点pppにおけるテクセルであり、有利な地点mに関連付けられたモデルに記憶されたテクセルを称する)。システムはまた、T
512Aが、モデル521における最も近いテクセルであり、かつ背面向きであることを決定してよい。T
512Aが背面向きであるので、システムはその重みをゼロへ自動的に設定してよい。その結果、光線550に関連付けられたピクセルの色は、(w
511BT
511B+w
512AT
512A)/(w
511B+w
512A)によって決定されてよく、w
511BはT
511Bについて決定された品質値であり、w
512Aはゼロに設定される。その結果、表示されたピクセルの色はT
511Bと同じになるであろう。
【0049】
あるいは、あるテクスチャを無視することでも、またはそれらの重みをゼロへ設定することでもなく、それらの相対的な重みが低減されてよい。たとえば、w
512Aをゼロへ設定することでも、T
513AおよびT
513Bをともに無視することでもなく、背面向きのテクセルおよび他のテクセルがまた、低減された重みで混合のために使用されてよい。
【0050】
デプスデータにおける不連続性によって引き起こされるアーティファクトを含むアーティファクトはまた、重み値を用いて対処されてよい。たとえば、
図6に図示されるように、モデル621は、場所620からキャプチャされた画像に関連付けられてよく、モデル631は、場所630からキャプチャされた画像に関連付けられてよい。表面601、602間のギャップ603は、モデル621において正確に表されてよい。しかしながら、キャプチャ時において検索されたデプスデータから生じた不正確さ、またはモデル631の生成中に生じた他のいくつかの誤差の結果、表面635がギャップ603を介して延びることをモデル631が不正確に示すことになってよい。モデル631が有利な地点640から見られたのであれば、無関係な表面635は、ギャップの1つのエッジから他のエッジへ延びたゴムシートの外観を有してよい。いくつかの態様では、システムは、モデル621をモデル631と比較することによって無関係なポリゴンをチェックし、かつ除去してよい。
【0051】
他の態様では、システムは、表示するための画像を生成する場合、無関係な表面を使用してよい。たとえば、ユーザは、有利な地点640から表面を表示する画像を要求してよい。光線641に関連付けられたピクセルの色に対するモデル621の寄与を決定する場合、システムは、第1の命令地点として表面601における地点Aを識別してよい。テクセルは、テクセルがキャプチャされた角度(場所620)に類似した角度において見られるため、システムはまた、地点Aにおけるテクセルが比較的高い品質値を有すると決定してよい。ピクセルの色に対するモデル631の寄与を決定する場合、システムは、第1の交差地点として無関係な表面635における地点Bを識別してよい。テクセルは、テクセルがキャプチャされた角度(場所630)に比較的直角である角度において見られるため、システムは、地点Bにおけるテクセルが比較的低い品質値を有すると決定してよい。その結果、ポイントAおよびBにおいてテクセルがともに混合される場合、比較的少ない重みが地点Bにおいてテクセルへ適用されるであろう。また、ピクセルの色は、表面601における地点Aの色にほとんど完全に基づくであろう。
【0052】
ある角度から、無関係な表面は、表示されるべき画像の視覚的特性に対する顕著な寄与を有してよい。たとえば、ユーザは、有利な地点650からの画像を要求してよい。これは、モデル631のキャプチャ場所630に比較的近い。光線641に関連付けられたピクセルの色へのモデル631の寄与を決定する場合、システムは、第1の交差地点として無関係な表面635における地点Cを識別してよく、さらに、モデル631の地点Cにおけるテクセルは、比較的高い品質値を有していることを決定してよい。同じピクセルの色に対するモデル621の寄与を決定する場合、表面602がモデルによって表されないのであれば、システムは交差地点を識別しなくてよい。あるいは、表面602がモデルによって表されるのであれば、交差地点から有利な地点650への角度は交差地点からキャプチャ場所620への角度に比較的直角であるため、モデル621における交差地点におけるテクセルの品質値は比較的低くてよい。いずれのケースであれ、結果として表示されたピクセルの色は無関係な表面のテクセルと実質的に同じでよい。これは、無関係な表面635を表示することは、何も表示しないこと(たとえば、表面の不在を示す色)よりも好適であってよいため、モデル621が表面602の表現を有していないのであれば、特に有利である。
【0053】
ユーザは、システムを使用し、かつモデルとインタラクトしてよい。単なる例として、
図1を参照して、ユーザ135は、多数の有利な地点から画像データおよびデプスデータをキャプチャするために、クライアントデバイス120のカメラ163および地理的コンポーネント130を使用してよい。ユーザ135は、画像およびデプスデータをサーバ110へアップロードしてよい。プロセッサ112は、ユーザによって提供されたデータに基づいて、各画像のテクスチャモデルを生成し、かつそのデータをメモリ114に記憶してよい。サーバ110は、その後、具体的な有利な地点からオブジェクトの画像に対する要求を受信してよい。たとえば、ユーザ135(または、クライアントデバイス121を使用する異なるユーザ)は、ユーザ入力162を用いて地理的場所を選択し、かつ要求をサーバ110へ送信することによって、具体的な地理的場所におけるパノラマ画像を要求してよい。要求を受信すると、サーバ110は、たとえば要求された地理的場所のしきい距離内のキャプチャ場所または表面場所を有するすべてまたは限定された数のモデルを選択することによって、要求された地理的場所に基づいて2つ以上のモデルを検索してよい。サーバはその後、ネットワーク160を経由してクライアントデバイス120へモデルを送信してよい。モデルを受信すると、クライアントデバイス120のプロセッサは、モデルに基づいてかつ有利な地点として要求された地理的場所を使用して、パノラマ画像を生成してよい。要求された地理的場所が高度を含んでいなかったのであれば、有利な地点の高度はモデルのキャプチャ場所の高度に基づいてよい。
【0054】
パノラマ画像はディスプレイ122上に表示されてよい。たとえば、
図2および
図7を参照して示すように、車240のモデル216および226がクライアントデバイスへ送信されたのであれば、車240の画像710は、有利な地点230に基づいて生成され、かつユーザへ表示されてよい。ユーザは、クライアントデバイスのユーザインターフェースを経由してコマンドを提供すること、たとえば画像をピックアップするためにボタンを押すことによって、キャプチャ場所とは異なる他の有利な地点を選択してよい。
【0055】
図8は、上記で説明された態様のいくつかに従うフローチャートである。ブロック801では、第1の有利な地点と第2の有利な地点とに対するオブジェクトの表面の方位と、第1の有利な地点からの表面の外観を表す第1の視覚的特性のセットと、第2の有利な地点からの表面の外観を表す第2の視覚的特性のセットとを含む、オブジェクトの表面のモデルがアクセスされる。ブロック802では、第1の有利な地点および第2の有利な地点とは異なる、要求された有利な地点からオブジェクトの画像に対する要求が受信される。ブロック803では、第1の視覚的特性が、第1の視覚的特性のセットから識別され、第2の視覚的特性が、第2の視覚的特性のセットから識別される。ブロック804では、要求された有利な地点および第1の有利な地点に対する表面の方位に基づいて、第1の視覚的特性のための第1の重み値が決定される。ブロック805では、要求された有利な地点および第2の有利な地点に対する表面の方位に基づいて、第2の視覚的特性のための第2の重み値が決定される。ブロック806では、第1および第2の視覚的特性と、第1および第2の重み値とに基づいて、要求された画像の視覚的特性が決定される。ブロック807では、要求された画像が表示のためにユーザへ提供される。
【0056】
特許請求の範囲によって定義されたような本発明から逸脱することなく、上記で議論された特徴のこれらおよび他のバリエーションおよび組合せを利用することができるので、実施形態の先述した説明は、特許請求の範囲によって定義されたような本発明の限定によってではなく、例示として採用されるべきである。本発明の例の提供(のみならず、「〜のような」、「たとえば」、「〜を含む」等のようにフレーズされた句)は、具体的な例に本発明を限定するものとして解釈されるべきではなく、むしろ、これら例は、多くの可能な態様のうちのいくつかのみを例示することが意図されていると理解されるであろう。