概要
概して、本開示のシステムおよび方法は、新しいパノラマ像が同じ地理的ロケーションに対応する既存のパノラマ像にはない特徴および/または対象物を含むように、地理的ロケーションに対する新しいパノラマ像を生成する。生成されたパノラマ像は、ユーザ指定状態を反映することができ、かつ/またはロケーションに対する変更を反映する最新パノラマ画像であり得る。たとえば、ロケーションに対して利用可能な既存のパノラマ像は、昼間の間の、夏の間のロケーションを示し得る。ユーザは、夜に、冬の間に出現するロケーションとして、そのロケーションを示すパノラマ像を要求することがある。システムは、要求された日および季節に対するロケーションを示すパノラマ像を生成し、生成されたパノラマ像を表示のためにクライアントデバイスに送信し得る。別の例として、システムは、ロケーションに対する非パノラマ画像を受信し、ロケーションの外観が既存のパノラマ画像に対して変更されたと決定し得る。非パノラマ画像は、たとえば、通りの新しい店頭を含んでよい。ユーザがロケーションを示すパノラマ像を要求する場合、システムは、新しい店頭を含むロケーションの最新パノラマ像を生成し得る。重要なことには、最新パノラマ像は、上述のすでに取り込まれた画像に基づいて生成され、カメラ、具体的には(複数のカメラを必要とし得る)パノラマカメラなど、画像取り込み手段を使用して何らかの新しい像が取り込まれることを必要としない。
実装形態に応じて、システムは、既存のパノラマ像と、既存のパノラマ像内に存在しない特徴または対象物を示す「ソース」パノラマまたは非パノラマ画像とに基づいて、新しいパノラマ像を生成し得る。ソース画像は、既存のパノラマ像と同じ地理的ロケーションの少なくとも一部分、または異なる地理的ロケーションを示し得る。システムは、機械学習モデルを使用してパノラマ像を生成し得る。いくつかの実装形態では、システムは、敵対的生成ネットワークを利用してパノラマ像を生成し、生成されたパノラマ像の品質(すなわち、生成されたパノラマ像が人間によって実物と認知されるかまたは生成物と認知されるか)を評価し得る。このようにして、敵対的生成ネットワーク(GAN)は、地理的エリアを示すパノラマ像を生成および評価する特定の技術適用例において使用される。言い換えれば、開示するGANは、地理的エリアを示すパノラマ像を生成および評価するための技術的目的を果たす。
ユーザは、生成されるパノラマ像が何の状態を含むべきかを指定し得る。たとえば、ユーザ指定状態は、天候状態(たとえば、雪、雨、霧、曇り、晴天、など)、時刻または日光(daylight)量(たとえば、日の出、昼間、日の入り、夜、など)、季節(たとえば、夏、春、秋、冬、など)、混雑レベル(たとえば、混雑している、歩行者なし、など)、自然災害(たとえば、洪水、火災後、地震後、など)、最新ビューなどを含み得る。本開示の技法を使用して、システムは、地理的ロケーションにおける実際の状態および/または変更を示す新しいパノラマ像を取り込む必要なしに、地理的ロケーションに対する何らかのユーザ指定状態および/または変更を示すパノラマ像を生成し得る。このようにして、異なる状態または特徴を示すそのような画像が、それらの状態または特徴を示す画像が実際に取り込まれることを必要とせずに、容易に取得されるため、様々なタイプの像に対するアクセス性が改善される。ユーザからの要求に応答して、そのような画像を生成することも可能である(以下でより詳細に説明する)。これらの実施形態では、画像は、要求に応答して記憶され取り出されるのではなく、ユーザの要求に応答して、単に生成され得る。このようにして、ユーザによってアクセス可能な様々な画像は対応する記憶量を占有しないため(これらは、要求されると、一時的にリアルタイムで作成されるため)、記憶空間の使用を改善する技術的効果が達成される。ユーザがその画像をもはや必要としないとき、その画像は一時的記憶装置から除去され、それにより、異なる状態の下の地理的エリアを示す画像に関する無縁データ量を記憶する必要を回避し得る。
例示的なハードウェア構成要素およびソフトウェア構成要素
まず図1を参照すると、例示的なパノラマ像生成システム100は、ネットワーク120を介してパノラマ像生成サーバ130(本明細書で、「サーバ130」とも呼ばれる)に結合されたクライアントコンピューティングデバイス102(本明細書で、「クライアントデバイス」とも呼ばれる)を含む。ネットワーク120は、概して、1つまたは複数のワイヤードおよび/またはワイヤレス通信リンクを含んでよく、たとえば、インターネットなどの広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、セルラー電話ネットワーク、または別の好適なタイプのネットワークを含んでよい。
クライアントデバイス102は、たとえば、スマートフォンまたはタブレットコンピュータなどのポータブルデバイスであってよい。クライアントデバイス102は、ラップトップコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、スマートグラスなどのウェアラブルデバイス、または他の好適なコンピューティングデバイスであってもよい。クライアントデバイス102は、メモリ106、1つまたは複数のプロセッサ(CPU)104、全地球測位システム(GPS)モジュール112または別の好適な測位モジュール、ネットワークインターフェース114、ユーザインターフェース116、および入出力(I/O)インターフェース118を含んでよい。クライアントデバイス102は、グラフィックス処理ユニット(GPU)など、図1に示されていない構成要素を含んでもよい。
ネットワークインターフェース114は、セルラーネットワーク、WiFiネットワーク、または、ネットワーク120など、任意の他の好適なネットワークを介した通信を可能にするための、ハードウェア、ソフトウェア、および/またはファームウェアなど、1つまたは複数の通信インターフェースを含んでよい。ユーザインターフェース116は、パノラマ像などの情報をユーザに提供するように構成され得る。I/Oインターフェース118は、様々なI/O構成要素(たとえば、ポート、容量性または抵抗性のタッチセンシティブ入力パネル、キー、ボタン、ライト、LED)を含んでよい。たとえば、I/Oインターフェース118は、タッチスクリーンであってよい。
メモリ106は、非一時的メモリであってよく、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、フラッシュメモリ、他のタイプの永続メモリなど、1つまたは複数の好適なメモリモジュールを含んでよい。メモリ106は、クライアントデバイス102の1つまたは複数のプロセッサ104および/または特殊処理ユニット上で実行可能な機械可読命令を記憶し得る。メモリ106はまた、任意の好適なモバイルまたは汎用OSであってよい、オペレーティングシステム(OS)110を記憶する。加えて、メモリは、パノラマ像アプリケーション108を含めて、ネットワーク120を介してデータを通信する1つまたは複数のアプリケーションを記憶し得る。データを通信することは、データを送信すること、データを受信すること、または両方を含み得る。OS110は、アプリケーションがクライアントデバイス102のGPSモジュール112または他の構成要素からの情報にアクセスすることを可能にするアプリケーションプログラミングインターフェース(API)機能を含んでよい。たとえば、パノラマ像アプリケーション108は、クライアントデバイス102の現在の地理的ロケーションを取り出すためにOS110 APIを起動させる命令を含んでよい。
実装形態に応じて、パノラマ像アプリケーション108は、地理的ロケーションのパノラマ像を表示すること、パノラマ像を通してナビゲートすることによって地理的ロケーションを探索するためのユーザ制御を提供すること、(現実のまたは生成された)パノラマ像が利用可能である地理的ロケーションを示す対話型デジタルマップを表示すること、生成されたパノラマ画像を要求および受信すること、ユーザ指定状態を反映するパノラマ像を要求するためのユーザ制御を提供すること、様々なジオロケーションコンテンツを提供することなどが可能である。図1はスタンドアロンアプリケーションとしてパノラマ像アプリケーション108を示すが、パノラマ像アプリケーション108の機能は、クライアントデバイス102上で実行するウェブブラウザを介してアクセス可能なオンラインサービスの形で、クライアントデバイス102上で実行する別のソフトウェアアプリケーションのためのプラグインまたは拡張として、などで提供されてもよい。パノラマ像アプリケーション108は、概して、異なるそれぞれのオペレーティングシステムに対して異なるバージョンで提供され得る。たとえば、クライアントデバイス102のメーカーは、Android(登録商標)プラットフォーム用のパノラマ像アプリケーション108、iOS(登録商標)プラットフォーム用の別のソフトウェア開発キット(SDK)などを含むSDKを提供し得る。
サーバ130は、パノラマ像に対する要求を受信し、パノラマ像を生成し、生成されたパノラマ像をクライアントデバイス102に送信するように構成され得る。サーバ130は、1つまたは複数のプロセッサ132およびメモリ134を含む。メモリ134は、有形の非一時的メモリであってよく、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、フラッシュメモリ、他のタイプの永続メモリなどを含めて、任意のタイプの好適なメモリモジュールを含んでよい。メモリ134は、パノラマ像に対する要求を処理し、パノラマ像を生成し得る、パノラマ像生成モジュール136を構成するプロセッサ132上で実行可能な命令を記憶する。いくつかの実装形態では、パノラマ像生成モジュール136は、そのような像に対してクライアントデバイス102からの要求を受信する前に、パノラマ像を生成し、後の取り出しのために、生成された像をキャッシュし得る。
パノラマ像生成モジュール136は、パノラマ像を生成するように動作可能な機械学習モデルをトレーニングし記憶し得る。いくつかの実装形態では、機械学習モデルは、図6Aから図6Bを参照しながらより詳細に論じるような、2つのニューラルネットワーク、すなわち、生成器ネットワークおよび弁別器ネットワークを含む敵対的生成ネットワーク(GAN)である。
サーバ130は、機械学習モデルのためのトレーニングデータとして使用され得る、地球空間的情報、既存のパノラマ画像、および非パノラマ画像を記憶するデータベース140、142、および144に通信可能に結合され得る。パノラマ像データベース140は、360度パノラマであってよいパノラマ画像を含む。パノラマ画像は、360度撮像機器を使用して、サーバ130に関連付けられたエンティティによって取り込まれ得る。パノラマ像アプリケーション108は、直接またはサーバ130を介してのいずれかで、データベース140から既存のパノラマ画像を要求し得る。より具体的には、パノラマ像データベース140は、パノラマ画像が経路または道路に沿って移動する人物または車両の観点から取り込まれる仮想環境を形成するために一緒にスティッチされたパノラマ画像で構成される沿道像を含み得る。たとえば、一連のそのようなパノラマ画像は、ユーザが一連のパノラマ画像を通してナビゲートして経路または道路に沿って移動する体験を仮想的に再生することができるように、一緒にスティッチされ得る。
パノラマ像アプリケーション108は、沿道モードで動作するように構成され得る。沿道モードは、ユーザがパノラマ像によって形成された仮想環境をナビゲートすることを可能にする。たとえば、パノラマ像アプリケーション108は、沿道画像が取り込まれた経路または道路に沿った移動をユーザが仮想的に体験するように、ユーザが沿道像によって形成された仮想環境を通してナビゲートすることを可能にする。
ユーザ生成コンテンツ(UGC)データベース142は、非パノラマ画像であってもパノラマ画像であってもよい画像を含む。パノラマ画像は、360度パノラマである。UGCデータベース142内の画像は、画像が取り込まれた時間およびロケーションで(たとえば、メタデータで)タグ付けされるクラウドソーシングされた画像を含む。これらの画像は、ユーザスマートデバイスなど、多種多様なソースから提供されることが可能である。このようにして、新しいパノラマ像は、そのような広く利用可能なIGC像を使用して生成可能であり、パノラマカメラを必要とせずに、新しいパノラマ像を作成することを容易にする。
マップデータベース144は、通りおよび道路情報、地形的データ、衛星像、公共交通経路に関する情報、ビジネスまたは他の関心点(POI)に関する情報、様々なモードの交通のための指示などのナビゲーションデータなどを記憶する概略的衛星データを含み得る。サーバ130がデータベース140および142から受信する画像は、画像が取り込まれた時間および/またはロケーションを示すメタデータを含んでよい。サーバ130は、(たとえば、特定のロケーションに関する情報を求めるサーバ130からマップデータベース144への要求に応答して)マップデータベース144から情報を受信し、この情報をクライアントデバイス102に送信し得る。パノラマ像アプリケーション108は、この情報を使用して、パノラマ像が利用可能な地理的ロケーションを示す対話型デジタルマップを表示し得る。一例として、沿道モードで動作するパノラマ像アプリケーション108は、ロケーションに対する沿道像、および沿道像が取り込まれたロケーションおよび視点を示すマップを表示することも可能である。パノラマ像アプリケーション108と対話することによって、ユーザは、マップによって示されるロケーションに対する沿道像を通してナビゲートし得る。
概して、サーバ130は、任意の数の好適なデータベース、ウェブサービスなどから地理的ロケーションに関する情報を受信し得る。たとえば、サーバ130は、様々な地理的エリアにおける現在のまたは平均的な天候データを含む天候データベース(図示せず)、様々な地理的エリアにおいて生じる現在のまたは一般的な自然災害を含む自然災害データベース(図示せず)、および/または道路、経路、またはエリア上の現在のまたは平均的な車両および/または歩行者を含む交通データベースに結合され得る。
本開示の例はパノラマ像を生成するサーバ130を主に参照するが、クライアントデバイス102は、生成されたパノラマ像をサーバ130から要求する代わりに、パノラマ像を生成し得る。パノラマ像アプリケーション108は、たとえば、パノラマ像生成モジュール136を含んでよい。クライアントデバイス102がサーバ130の機能を提供することができるように、クライアントデバイス102は、サーバ130を参照しながらデータベース140、142、144に通信可能に結合され得る。
パノラマ像を生成するための例示的な技法
図2は、既存のパノラマ画像と既存のパノラマ画像にはない物理的対象物を含む非パノラマ画像とに基づいて、本開示の技法を使用して生成され得る例示的なパノラマ画像を示す。図2の例示的なシナリオでは、ユーザは、本明細書で「ロケーションA」と呼ばれる、所与のロケーションを示すパノラマ像を探索するために、クライアントデバイス102を使用してパノラマ像アプリケーション108と対話し得る。ロケーションAに対するパノラマ像に対するクライアントデバイス102からの要求の受信に応答して、サーバ130は、パノラマ画像202を含むパノラマ像をパノラマ像データベース140から取り出し、パノラマ像をクライアントデバイス102に提供し得る。パノラマ画像202は、したがって、ロケーションAの既存のパノラマ画像である。パノラマ画像202は、画像と対話するユーザが画像を回転させて、ロケーションAにおける風景を360度見ることができるように、360度画像であり得る。パノラマ画像202は、ロケーションAに位置するビジネスに対する標識204を含む。図2は単一のパノラマ画像202を示すが、サーバ130は、ロケーションAおよび隣接するロケーションにおける沿道像に対応する一連のパノラマ画像をパノラマ像データベース140から取り出すことができる。サーバ130は、ユーザが様々な状態の下のロケーションAを仮想的に探索することができるように、新しい対象物および/または雪、雨などの特徴を示すために、ロケーションAに対する新しい沿道像を生成し得る。
より具体的には、パノラマ画像202をクライアントデバイス102に提供する前またはその後、サーバ130は、パノラマ画像202がロケーションAにおける現在の状態を反映していない可能性があると決定し得る。サーバ130は、ユーザがクライアントデバイスからの要求を提出する時間、ユーザが要求の中で明示的に指定する時間(たとえば、「午後6時の沿道像を見せてください」)、パノラマ画像202が取り込まれた時間などに基づいて、この決定を行い得る。追加または代替として、サーバ130は、パノラマ画像202の内容に基づいて、パノラマ画像202が古いと決定し得る。具体的には、サーバ130は、パノラマ画像202に対する要求が行われたとき近くで取り込まれた(たとえば、画像のロケーションタグに基づく)ロケーションAを示す画像をUGCデータベース142から取り出し得る。たとえば、パノラマ画像202のタグは、ユーザ要求のおよそ1年前の取り込み時間を指定することがあり、ロケーションAを示す、取り出された画像のタグは、ユーザ要求のおよそ2週間前として取り込み時間を指定することがある。サーバ130は、ロケーションAを示す、取り出された画像の内容をパノラマ画像202と比較し、取り出された画像がパノラマ画像202内に含まれていない物理的対象物を示すかどうかを決定し得る。示している場合、サーバ130は、パノラマ画像202は古いと決定し、ロケーションAにおける最新状態を反映する新しいパノラマ像を生成するために利用するための画像として、取り出された画像を識別し得る。
図2の例示的なシナリオでは、サーバ130は、UGCデータベース142から画像206を取り出す。画像206はまた、ロケーションAにおける像(または、ロケーションAにおける像のうちの少なくともいくつか)を示すが、パノラマ画像202よりも後の取り込み時間を有する。この特定の例では、画像206は、標識204によって示されたビジネスに明らかに取って代わったビジネス用の新しい標識208を含む。図2の例では、取り出された画像206は非パノラマ画像である。しかしながら、いくつかの実装形態では、取り出された画像206はパノラマ画像であり得る。さらに、この例では、新しい標識208は、画像206内に存在する対象物であるが、パノラマ画像202にはなく、他のシナリオでは、いくつかの対象物は、パノラマ画像202内に存在し得るが、より新しい画像206にはない(たとえば、自治体は、パノラマ画像202が取り込まれた後、ロケーションAにおける交通標識を除去することがあり、より新しい画像206はこの変更を反映し得る)。またさらに、画像206内の対象物は同じロケーションにおけるパノラマ画像202内の別の対象物に取って代わる必要がなく、概して、画像内のどこかに出現し得る。概して、前に撮られたパノラマ画像202内に示される対象物は、取って代わられることがあるかまたは取り出された画像206にはないことがあり、かつ/または取り出された画像206内に示される対象物はパノラマ画像202にはないことがあることを当業者は諒解されよう。いずれの場合も、取り出された画像206は、パノラマ画像202内に示されていない特徴(たとえば、新しい対象物、および/もしくは取って代わられた対象物、ならびに/または除去された対象物)を示す。
いくつかの実装形態では、サーバ130はパノラマ画像202をクライアントデバイス102に提供し、パノラマ像アプリケーション108はパノラマ画像202をユーザに表示する。パノラマ像アプリケーション108はまた、サーバ130から受信された情報に基づいて、ロケーションAを示す既存のパノラマ像が古いことをユーザに示し、生成された最新パノラマ画像を受信することをユーザが望むかどうかをユーザに尋ねることができる。ユーザからの確認の受信に応答して、パノラマ像アプリケーション108は最新パノラマ像をサーバ130から要求し得る。ユーザはまた、パノラマ像アプリケーション10を介して、パノラマ像アプリケーション108によって催促されていない最新パノラマ像を要求することもできる。ユーザ対話要素に関する追加の詳細については、図4Aから図4Bを参照しながら以下で論じる。
いくつかの実装形態では、サーバ130は、パノラマ画像202をクライアントデバイス102に提供しなくてよい。代わりに、サーバ130は、パノラマ画像202が取り込まれた時間に基づいて、かつ/またはロケーションAのUGC画像の内容に基づいて、パノラマ画像202が古いと自動的に識別し、最新パノラマ像を生成し、生成されたパノラマ像をクライアントデバイス102に提供し得る。
さらに、様々な実装形態では、サーバ130は、クライアントデバイス102を介して、必ずしもユーザが要求するパノラマ像ではない、第三者からのロケーションの既存のパノラマ像を更新するための要求を受信し得る。たとえば、ロケーションAにおける新しいビジネスの代表者は、画像206をUGCデータベース142に提出し、ロケーションAの既存のパノラマ像が新しいビジネスの新しい標識208を反映するように更新されるべきであることをサーバ130に示し得る。
上記の議論はサーバ130がUGCデータベース142から画像206を取り出すことに言及するが、いくつかの実装形態では、サーバ130は、パノラマ画像データベース140から画像206を取り出すことができる。
いずれの場合も、サーバ130は、パノラマ画像202および画像206に基づいて、新しいパノラマ画像212を生成するためにパノラマ画像202に対する変換210を実行し得る。生成されたパノラマ画像212は、ロケーションAを示すが、画像206からの新しい標識208を含む。この例では、ロケーションAを示す画像206は非パノラマ画像であるが、他のシナリオでは、画像206はパノラマ画像であってよく、変換210は、非パノラマ画像ではなく、パノラマ画像に基づいて、パノラマ画像202を生成されたパノラマ画像212に変換することを含み得る。
変換210は、パノラマ画像202および画像206が、同じ地理的ロケーションを示すか、または同じ地理的ロケーションの少なくとも一部分、図2に示すロケーションAを示すかを決定することを含み得る。サーバ130は、画像202および206のメタデータ内に含まれたロケーションデータに基づいて、または2つの画像内の特徴を識別して比較するための好適な画像処理技法を使用して、この決定を行い得る。
パノラマ画像202および画像206が同じ地理的ロケーションを示す場合、サーバ130は、パノラマ画像202と画像206を比較して、画像202、206が異なる内容を示すかどうかを決定し得る。具体的には、サーバ130は、画像202、206を比較して、画像が異なる物理的対象物を示すかどうか、かつ/または画像206が画像202にはない物理的対象物を示すかどうかを決定し得る。たとえば、サーバ130は、画像202、206が空間内の同じ位置において異なる物理的対象物を示すかどうかを決定し得る。パノラマ画像202内で、標識204は窓の上に通りに面して建物の上部付近に位置する。サーバ130は、画像206に示されるように、空間内のこの位置を特定し、異なる物理的対象物がその位置に位置特定されるかどうかを決定し得る。画像206内で、新しい標識208は標識204と同じ(または少なくとも同様の)位置に特定され、標識204は画像206内に存在しない。この比較に基づいて、サーバ130は、標識204がロケーションAにおいて新しい標識208に取って代わられたと決定し得る。画像202、206を比較するために、サーバ130は、画像202、206内の対象物(たとえば、知られている対象物分類内の対象物)の存在およびロケーションを検出するために、たとえば、機械学習モデルまたはヒューリスティックアルゴリズムを適用する。
パノラマ画像202および画像206が(図2に示す例とは異なり)異なる地理的ロケーションを示す場合、サーバ130は、抽出しパノラマ画像202内に挿入するための画像206内の物理的対象物を依然として識別し得る。たとえば、第三者または別のユーザは、画像206がパノラマ画像202内で反映されるべき物理的対象物を含むことを示し、パノラマ像アプリケーション108を介して画像206をサーバ130に提出し得る。たとえば、ビジネスの所有者は、ビジネスの異なるロケーションの画像206を提出し、同様の標識が現在ロケーションAに位置し、ロケーションAのパノラマ像内に反映されるべきであることを示し得る。別の例として、機械学習モデルは、交通標識、交通信号、郵便箱、または他の反復する対象物を識別し得る。サーバ130は、この場合、ロケーション(たとえば、GPS座標)および対象物(たとえば、「停止標識」)の記述子を参照するとともに、パノラマ画像202を使用して、対象物の画像をデータベースから選択し、その画像を参照されたロケーションに挿入して、新しいパノラマ画像212を生成することができる。このようにして、最新像は、地理的ロケーションに実際に存在するが、そのエリアの元のパノラマ画像内に示されていない交通標識または信号を含み得る。このようにして、開示する技法は、地理的エリアのより正確な記述を提供する。
サーバ130は、画像206内に含まれるが、パノラマ画像202にはない、物理的対象物を抽出し、パノラマ画像202内に挿入するためにこれらの物理的対象物を準備し得る。この準備は、抽出された物理的対象物をパノラマ画像202に対応する投影(projection)にマッピングすることと、抽出された物理的対象物をパノラマ画像202のスケールにスケーリングすることと、物理的対象物をパノラマ画像202内で位置合わせすることとを含み得る。物理的対象物のマッピング、スケーリング、および位置合わせとして説明されるが。いくつかの実装形態では、これらの準備ステップのうちのいくつかまたはすべては、最初に画像206に対して実行されてよく、物理的対象物は、パノラマ画像202内に挿入される前に、画像206の準備されたバージョンなどから抽出されてよい。以下でより詳細に説明するマッピング、スケーリング、および位置合わせの特定技法は、正確な最新パノラマ像を作り出すのに役立つ。具体的には、これらの技法は、これらの特徴が正しいロケーション内に出現すること、またこれらの特徴が正確な外観を有することを保証することによって、画像206内に存在する特徴がパノラマ像内に正確に含まれることを保証するために使用される。言い換えれば、これらの技法は、生成されたパノラマ画像が地理的エリアを正確に示すことを保証するために使用され得る。これは、生成されたパノラマ像を改善するのに役立ち、地理的エリアを正確に示すパノラマ像を生成する技術的効果を提供する。
画像206が非パノラマ画像である場合、変換210は、抽出された物理的対象物をパノラマ画像202に対応する投影にマッピングすることを含む。マッピングプロセスは、物理的対象物または取り出された画像206のパノラマ画像202の空間への数学的変換を指す。サーバ130は、パノラマ画像202の投影タイプを識別し得る。たとえば、投影タイプは、球面投影、正距円筒投影、立方投影、または円筒投影であってよい。サーバ130は、投影タイプを示し得る、画像性質または画像のメタデータを分析することによって、投影タイプを識別し得る。投影タイプに基づいて、サーバ130は、抽出された物理的対象物を投影タイプの座標系にマッピングし得る。座標系は、座標系の座標がパノラマ画像202内の位置にマッピングするように、パノラマ画像202の投影タイプに対応する(たとえば、2次元スクリーン上に表示するための)2次元表面上に定義された投影座標系である。
画像206が、パノラマ画像であるが、パノラマ画像202とは異なる投影タイプのものである場合、変換210は、上記で論じたように、抽出された物理的対象物をパノラマ画像202に対応する投影にマッピングすることを含み得る。画像206がパノラマ画像202と同じ投影タイプのパノラマ画像である場合、変換210は、異なる投影タイプへのマッピングを含まなくてよい。
変換210は、抽出された物理的対象物をパノラマ画像202のスケールにスケーリングすることを含み得る。たとえば、画像206がパノラマ画像202の観点よりも建物に近い観点から取り込まれる場合、抽出された物理的対象物のサイズは、パノラマ画像202内に挿入される前にスケールダウンされ得る。スケーリング係数は、たとえば、パノラマ画像202と画像206の両方の中に出現する対象物の相対的なサイズに基づいて識別され得る。スケーリング係数はまた、図6A~図6Bを参照しながらより詳細に論じる、機械学習モデルによって決定されるように、現実的な画像を作り出すスケーリング係数に基づいて識別されてもよい。
抽出された物理的対象物および/または画像206は、抽出された物理的対象物がパノラマ画像202内の好適なロケーションに配置されるように、パノラマ画像202内で位置合わせてされてもよい。図2が示す例では、新しい標識208は、標識204が前に配置された場所に配置されるように、パノラマ画像202内で位置合わせされる。画像206および/または画像206から抽出された物理的対象物をパノラマ画像202内でどのように位置合わせするかは、画像206とパノラマ画像202の比較、および両方の画像206、202内に出現する対象物の相対的位置に基づいてもよい。
スケーリングされ、パノラマ画像に位置合わせされた、抽出された物理的対象物をパノラマ画像にマージすることは、追加の処理を必要とし得る。いくつかのシナリオでは、サーバ140は、新しい標識208に取って代わられた標識204など、パノラマ画像202から他の対象物を除去することが必要な場合がある。サーバ130は、その場合、抽出された物理的対象物をパノラマ画像202に挿入し得る。いくつかのシナリオでは、サーバ130は、パノラマ画像202の一部分を覆うオーバーレイとして、抽出された物理的対象物をパノラマ画像202内に挿入し得る。加えて、サーバ130は、新しいパノラマ画像212の真実味を高めるために、パノラマ画像202にさらなる変更を行い得る。言い換えれば、サーバ130は、新しいパノラマ画像が(パノラマ画像202と別の画像206の組合せではなく)パノラマカメラを使用して取り込まれているかのように、新しいパノラマ画像をより現実的に見せるために、パノラマ画像202にさらなる変更を行うことができる。たとえば、サーバ130は、新しいパノラマ画像212内で対象物をより現実的に見せるために、抽出された物理的対象物のエッジをブレンドし得る。サーバ130は、新しいパノラマ画像212を生成するとき、新しい物理的対象物に陰を加え、既存の陰を除去または修正することが必要な場合がある。上述のように、上記の技法は、生じる生成画像をより正確にするために使用され得、これは、生成画像が地理的エリアを正確に示すことを意味する。
サーバ130は、図6A~図6Bを参照しながら論じるように、機械学習モデルを使用して、変換210のステップのうちのいくつかまたはすべてを実装し得る。機械学習モデルは、たとえば、物理的対象物を画像から抽出し、抽出された物理的対象物をパノラマ画像の座標系にマッピングし、新しいパノラマ画像を生成するために、抽出された、マッピングされた物理的対象物をマージするようにトレーニングされ得る。このようにして、機械学習モデルは、既存の像と物理的対象物を示す他の画像とに基づいて、新しいパノラマ像を生成する技術目的に具体的に適応される。実装形態に応じて、複数の機械学習モデルがこれらの機能を実行し得る。たとえば、第1の機械学習モデルは物理的対象物を画像から抽出し得、第2の機械学習モデルは、第1の機械学習モデルからの出力を使用して、新しいパノラマ画像を生成し得る。
加えて、パノラマ画像212を生成した後、サーバ130は、(たとえば、パノラマ画像212と同じようにおよび/またはパノラマ画像212に基づいて)ロケーションA、またはロケーションAに近いロケーションを示す追加のパノラマ画像を生成し、これらの画像を一緒に連結または「スティッチして」対話型沿道像を形成し得る。より具体的には、サーバ130は、ユーザがそこからパノラマ画像が取り込まれた経路または道路に沿って移動していたかのように、ユーザがナビゲートし得る仮想環境を提供するために、沿道像を生成し得る。
さらに、上述のように、いくつかの実装形態では、サーバ130ではなく、クライアントデバイス102が変換210を実行し得る。たとえば、クライアントデバイス102は、サーバ130からパノラマ画像202を受信し、パノラマ像アプリケーション108によって受信されたユーザからの要求に応答して、パノラマ画像212を生成し得る。
図3を参照すると、本開示の技法はまた、既存のパノラマ画像と既存のパノラマ画像と同じ地理的ロケーションに必ずしも対応するとは限らない1つまたは複数の他の画像とに基づいて、パノラマ像を生成することを含み得る。言い換えれば、1つまたは複数の他の画像は、パノラマ画像内に示される地理的ロケーションのうちの任意の部分を示さないことがある。生成されたパノラマ像は、1つまたは複数の他の画像内に示されるが、既存のパノラマ画像にはない特徴を含み得る。図3の例示的なシナリオでは、ユーザは、本明細書で「ロケーションB」と呼ばれる所与のロケーションを示すパノラマ像を探索するために、クライアントデバイス102を使用してパノラマ像アプリケーション108と対話し得る。ロケーションBに対するパノラマ像に対するクライアントデバイス102からの要求の受信に応答して、サーバ130は、パノラマ画像302を含むパノラマ像をパノラマ像データベース140から取り出し、パノラマ像をクライアントデバイス102に提供し得る。パノラマ画像302は、ロケーションBの既存のパノラマ画像である。パノラマ画像302は、画像と対話しているユーザがロケーションBを360度見るために画像を回転させることができるように、360度画像である。図3は単一のパノラマ画像302を示すが、サーバ130は、ロケーションBの沿道像に対応する一連のパノラマ画像をパノラマ像データベース140から取り出し得る。サーバ130は、ユーザがロケーションBを仮想的に探索することができるように、ロケーションBの新しい沿道像に対応する新しい像を生成し得る。
サーバ130がパノラマ画像302をクライアントデバイスに提供した後、パノラマ像アプリケーション108は、パノラマ画像302をユーザに表示し得る。パノラマ像アプリケーション108は、異なる特徴を備えたロケーションBを示す(たとえば、異なる状態の下のロケーションBを示す)生成されたパノラマ画像を受信することをユーザが望むかどうかをユーザに尋ね、所与の特徴を選択するためのオプションをユーザに提供し得る。ユーザからの選択の受信に応答して、パノラマ像アプリケーション108は、要求された特徴を含む新しいパノラマ像をサーバ130から要求し得る。いくつかの実装形態では、サーバ130は、特定のユーザ要求を受信する前にパノラマ画像が生成されるように、異なる状態の下のパノラマ画像を事前に生成し、生成されたパノラマ画像を記憶し得る。他の実装形態では、生成されたパノラマ画像は、ユーザ要求に応答して生成され得る。このようにして、生成画像はメモリ内に永続的に記憶されなくてよく、生成されたパノラマ画像がユーザによって要求される持続時間にわたって一時的に記憶されてよく、これにより、記憶空間をより良好に使用させる。
サーバ130は、パノラマ画像302とパノラマ画像302にはない特徴を含む他の画像とに基づいて新しいパノラマ画像312を生成するために、パノラマ画像302に対する変換310を実行し得る。特徴は、特徴内に示された物理的対象物または画像の特性をより一般的に含み得る。たとえば、特徴は、天候状態(たとえば、雨、雪、霧、凍結、曇り、晴れ)、日光状態(たとえば、日の出、昼間、日の入り、夜)、季節(たとえば、冬、春、夏、秋)を含めて、環境状態のパターンまたは視覚的発現(manifestations)を含み得る。加えて、特徴は、混雑レベル(たとえば、画像内に人がいない、少人数、または高い混雑レベル)、自然災害および/または自然災害からの被害(たとえば、洪水、地震被害、竜巻、ハリケーン)など、他の過渡状態のパターンまたは視覚的発現を含み得る。図4Bを参照しながら論じるように、変換310が何の特徴に関連するかは、ユーザ指定状態に左右され得る(たとえば、ユーザは、ロケーションBの雪のパノラマ画像を要求し得る)。
変換310は、パノラマ画像302および画像306に基づいて、新しいパノラマ画像312を生成することを含む。画像306は、パノラマ画像302にはない特徴を含む。図3に示す例では、画像306は、雪に覆われた環境を示す。画像306は非パノラマ画像であるが、画像306はパノラマ画像であってよい。サーバ130は、パノラマ像データベース140から、またはUGCデータベース142から画像306を取り出し得る。加えて、図3には1つの画像306のみが示されているが、変換310は、画像306と同様の特徴を備えた複数の画像に基づいてよい。さらに、画像306はパノラマ画像302とは異なるロケーションを示すが、いくつかの実装形態では、画像306は、同じ地理的ロケーションにおける雪の状態を示し得る。
概して、変換310に含まれるステップは、画像306がパノラマであるかまたは非パノラマであるか、画像がパノラマ画像302と同じ地理的ロケーションを示すかまたは異なる地理的ロケーションを示すか、また何の特徴が新しいパノラマ画像312内に反映されることになるかに左右される。図3の例では、変換310は、雪に覆われているとき、同じ地理的ロケーション、ロケーションB、を示すパノラマ画像302を変換することを含む。
パノラマ画像302および画像306が同じ地理的ロケーション(または、同じ地理的ロケーションの少なくとも一部分)を示す場合、サーバ130は、パノラマ画像302と画像306を比較して、パノラマ画像302および画像306の何の特徴が異なるかを決定し得る。この比較に基づいて、サーバ130は、パノラマ画像302にはない特徴に対応する画像306内のパターンを識別し得る。
図3に示すように、パノラマ画像302および画像306は異なる地理的ロケーションを示し得る。画像306は、画像内に示された特徴で標示または注釈付けされてよい。サーバ130は、それらの特徴の視覚的発現および/またはパターンを画像306から抽出し、パノラマ画像302内に挿入するためまたはその上にオーバーレイするために、抽出された特徴を準備し得る。
一例として、サーバ130は、天候状態を示す1つまたは複数のパターンなど、天候特徴が画像306内に含まれるかどうかを識別し得る。画像306は、雪を示すパターンを含む。サーバ130は、図6A~図6Bを参照しながら論じるように、異なる天候状態を示すパターンを識別するようにトレーニングされた機械学習モデルを使用し得る。
別の例として、サーバ130は、日光量を示す1つまたは複数の光(light)状態(たとえば、日の出、昼間、日の入り、夜など)などの天候特徴が画像306内に含まれるかどうかを識別し得る。サーバ130は、図6A~図6Bを参照しながら説明するように、異なる明暗(lighting)状態を示すパターンを識別するようにトレーニングされた機械学習モデルを使用し得る。
サーバ130は、パノラマ画像302にはない特徴を画像306から抽出し、パノラマ画像302内に挿入するためにそれらの特徴を準備し得る。準備は、物理的対象物に関して上記で論じた準備と同様であってよい。したがって、準備は、抽出された特徴をパノラマ画像302に対応する投影にマッピングすること、抽出された特徴をパノラマ画像302のスケールにスケーリングすること、およびそれらの特徴をパノラマ画像302内の適切な(たとえば、弁別器ネットワークによって決定され得る、挿入される特徴がどの程度現実的に見えるかによって決定されるほど「適切な」)ロケーションに位置合わせすることを含み得る。マッピングプロセスは、物理的対象物または取り出された画像のパノラマ画像302の空間への数学的変換を実行することを指す。
変換210と同様に、抽出された特徴がどのようにマッピングされるかは、画像306が非パノラマ画像であるか、パノラマ画像302と同じ投影タイプのパノラマ画像であるか、またはパノラマ画像302とは異なる投影タイプのパノラマ画像であるかに左右される。画像306が非パノラマ画像である場合(図3の事例同様)、変換310は、抽出された特徴をパノラマ画像302に対応する投影にマッピングすることを含む。画像306がパノラマ画像302とは異なる投影タイプの画像であるシナリオでは、変換310は、抽出された特徴をパノラマ画像302に対応する投影にマッピングすることを含み得る。画像306がパノラマ画像302と同じ投影タイプの画像であるシナリオでは、変換310は、異なる投影タイプにマッピングすることを含まなくてよい。
変換310はまた、特徴をパノラマ画像302のスケールにスケーリングすることと、抽出された特徴がパノラマ画像302内で好適なロケーションに位置するように、抽出された特徴をパノラマ画像302内で位置合わせすることとを含み得る。図3が示す例では、抽出された雪の特徴がパノラマ画像302内で雪の適切なロケーションに配置される。抽出された特徴をどのように位置合わせするかは、画像306とパノラマ画像302の比較に基づいてよい。機械学習モデルは、生じるいずれの生成されたパノラマ像も現実的に見えるように、様々な特徴に対して、それらの特徴の適切なロケーションを識別するようにトレーニングされ得る。
スケーリングされ、位置合わせされた、抽出された特徴をパノラマ画像にマージすることは、追加の処理を必要とし得る。いくつかのシナリオでは、他の特徴がパノラマ画像302から除去されることが必要な場合があるか、または変更されることが必要な場合がある。変換310が抽出された明暗状態をパノラマ画像302内に挿入することを含む例では、パノラマ画像302内の既存の明暗状態が抽出された明暗状態に変換される。いくつかのシナリオでは、抽出された特徴が、パノラマ画像302の一部分を覆うオーバーレイとして、パノラマ画像302内に挿入され得る。たとえば、画像306から抽出された雪のパターンがパノラマ画像302の部分にオーバーレイされ得る。変換310をパノラマ画像302に適用することは、ロケーションBが雪に覆われることを示す、新しいパノラマ画像312を生成する。
サーバ130は、機械学習モデルを使用して、変換310のステップのうちのいくつかまたはすべてを実行し得る。たとえば、サーバ130は、図6A~図6Bを参照しながら論じるような生成機械学習モデルなど、機械学習モデルを使用して、天候状態または光状態に対応するパターンなどの特徴を識別し、そのような特徴を抽出し、それらの特徴をパノラマ像にマージし得る。このようにして、機械学習モデルは、異なる環境状態を正確に反映する現実的かつ正確なパノラマ像を生成する技術的目的に具体的に適応される。
さらに、パノラマ像の変換は、変換210と変換310の結合を含み得る。たとえば、パノラマ画像202は、変換210のステップを使用した画像206からの物理的対象物と変換310のステップを使用した天候状態の両方を含めるように変換され得る。
加えて、パノラマ画像312が生成された後、ロケーションB、またはロケーションBに近いロケーションを示す、追加のパノラマ画像が(たとえば、パノラマ画像312と同じ方法で、かつ/またはパノラマ画像312に基づいて)生成され、一緒にスティッチされて沿道像を形成し得る。沿道像は、ユーザがそこからパノラマ画像が取り込まれた経路または道路に沿って移動していたかのように、ユーザがナビゲートし得る仮想環境を形成する。
変換210に関して上記で述べたように、いくつかの実装形態では、サーバ130ではなく、クライアントデバイス102が変換310を実行し得る。たとえば、クライアントデバイス102は、パノラマ画像302をサーバ130から受信し、パノラマ像アプリケーション108によって受信されるユーザからの要求に応答して、パノラマ画像312を生成し得る。
図4Aは、既存のパノラマ画像と既存のパノラマ画像が古いという通知とを表示する例示的なユーザインターフェース400を示す。ユーザインターフェース400は、クライアントデバイス102の(たとえば、ユーザインターフェース116の)ディスプレイ402を介して表示され得る。ユーザインターフェース400は、パノラマ像アプリケーション108のユーザインターフェースであってよい。ユーザからの要求に応答して、パノラマ像アプリケーション108は、ロケーションに対して利用可能なパノラマ像を表示し得る。図4Aに示す例では、パノラマ像アプリケーション108は、ユーザがパノラマ像によって形成された仮想環境を通してナビゲートすることを可能にする沿道モードで動作する。ロケーションに対して利用可能なパノラマ像は、パノラマ画像202を含む。
パノラマ画像202に加えて、ユーザインターフェース400は、ユーザ選択可能オプションおよびロケーションに関する情報を含んでよい。ユーザインターフェース要素404は、ユーザが仮想的に位置特定されるロケーションの指示と、ロケーションのマップにナビゲートするためのオプションまたはロケーションのより古い沿道像を見るためのオプションなど、ユーザ選択可能オプションとを含む。ユーザインターフェース要素406は、ロケーションのマップを含んでよく、マップ内にアイコン408を含んでよい。アイコン408は、ユーザがどこに位置特定されるか、およびユーザが見ている視点(すなわち、沿道像がどこで取り込まれたか、仮想環境内でユーザが見ている方向)を示す。さらに、ユーザインターフェース要素410は、ズームレベルを選択するためのオプション、ビューを回転させるためのオプション、またはそのロケーションまたはそのロケーションの近くで利用可能な追加の像を見るオプションを含む。
図2を参照しながら論じたように、パノラマ像アプリケーション108は、(たとえば、パノラマ画像202のタイムスタンプに基づいて、ロケーションにおいて取り込まれ、かつUGCデータベース142において記憶される、パノラマ画像202内に存在しない対象物を示す画像に基づいて、画像、またはロケーションの外観が変更されたことを示す画像ロケーションに対するフラグに基づいて、など)利用可能なパノラマ画像202が古い可能性があると決定し得る。パノラマ像アプリケーション108は、パノラマ画像が古いことを示す通知412を表示し得る。通知412はまた、新しいパノラマ画像が生成されることをユーザが望むかどうかを尋ねることもできる。ユーザは、そのロケーションに対して生成されるパノラマ像を生成または要求することをパノラマ像アプリケーション108に示すための通知412を選択し得る。応答して、パノラマ像アプリケーション108は、新しいパノラマ画像212を生成するための要求を生成するか、またはその要求をサーバ130に送ることができる。新しいパノラマ画像212は、図2を参照しながら論じたように、変換210を介して生成され得る。生成後、新しいパノラマ画像は、ユーザが見るために、パノラマ像アプリケーションによって一時的に記憶されてよく、後で、もはや必要とされなくなると削除されてよい。このようにして、生成画像は要求時にのみ生成され、永続的に記憶されないため、記憶空間が節約される。
さらに、場合によっては、パノラマ像アプリケーション108は、最初に通知412および/またはパノラマ画像202を提示せずに、新しいパノラマ画像212を自動的に生成し、ユーザに提示し得る。パノラマ像アプリケーション108は、たとえば、新しいパノラマ画像212の品質が高い(たとえば、新しいパノラマ画像212が、弁別器ネットワークによって測定されるように現実的である)場合、またはそのロケーションに関してUGCデータベース142内に多数の画像が存在する場合、この実装形態を選定し得る。パノラマ像アプリケーション108は、表示される画像が生成されたという通知をユーザに表示し得、戻って非合成パノラマ画像202を見るためのユーザ選択可能オプションを表示し得る。
図4Bを参照すると、ユーザインターフェース420は、生成されたパノラマ画像212を表示する。ユーザインターフェース420は、ユーザインターフェース400と同様であってよいが、新しいパノラマ画像212を含む。クライアントデバイス102は、新しいパノラマ画像212を取り出した後、ユーザインターフェース420を表示し得る。ユーザインターフェース420は、パノラマ画像212が生成画像であることを示す通知416を含んでよい。ユーザが仮想沿道環境内をナビゲートする場合、パノラマ像アプリケーション108は、生成されたパノラマ像を引き続き表示することができ、通知416を引き続き表示することができる。ロケーションに対する新しい生成されたパノラマ像は、ユーザがナビゲートするにつれて生成されてよく、またはユーザの仮想ロケーションの前方のまたはその近くのロケーションに対してプリキャッシュされてよい。生成画像の品質(たとえば、図6A~図6Bを参照しながら論じるように、画像品質規格によって測定されるような、または弁別器によって評価されたような、品質)が低減する場合、パノラマ像アプリケーション108は、生成されたパノラマ画像の表示を停止し、パノラマ像データベース140から利用可能なパノラマ画像の表示に戻ることができる。そのような場合、パノラマ像アプリケーション108は、生成画像の品質が低減され、もはや利用可能でないことを説明する通知をユーザに表示し得る。このようにして、ユーザには、潜在的に不正確な可能性がある(すなわち、所与の地理的エリアを正確に示さない)画像ではなく、高品質画像が常に提供される。
図5Aは、地理的ロケーションを示す既存のパノラマ画像と異なる環境状態の下の地理的ロケーションを示す新しいパノラマ画像にアクセスするためのユーザ選択可能オプションとを示す例示的なユーザインターフェース500を示す。ユーザインターフェース500は、クライアントデバイス102の(たとえば、ユーザインターフェース116の)ディスプレイ502を介して表示され得る。ユーザインターフェース500は、概して、ユーザインターフェース400と同様であるが、パノラマ画像302およびツール512を示す。ユーザインターフェース500はまた、それぞれ、ユーザインターフェース要素404、406、408、および410と同様であってよい、ユーザインターフェース要素504、506、508、および510を含む。パノラマ画像202とは異なるロケーションを示すパノラマ画像302は、夏の間および/または雪が存在しないときのロケーションを示す。
ツール512は、パノラマ画像302を異なる状態の下のロケーションを示すパノラマ像に変換するためのユーザ選択可能オプションを含む。たとえば、ツール512は、異なる明暗状態(たとえば、日の出、昼、日の入り、夜)および/または天候状態(たとえば、雨、雪、霧)などのオプションを含んでよい。ユーザがツール512を使用して何の状態を選定するかに応じて、パノラマ像アプリケーション108は、(たとえば、変換310を介して)その状態の下のロケーションを示す新しいパノラマ画像を生成すること、または生成するための要求をサーバ130に送ることができる。実装形態および/またはシナリオに応じて、パノラマ像アプリケーション108は、ユーザが異なる状態の下のロケーションをやはり示す最新像を要求することを可能にするためのツール512と通知412の組合せを表示し得る。加えて、ユーザは、ツール512の複数の状態を選択し得る。さらに、パノラマ像アプリケーション108は、ロケーションに応じて、ツール512内に異なるオプションを表示し得る。たとえば、パノラマ像アプリケーション108は、(たとえば、マップデータベース144からの情報に基づいて)そのロケーションにおいて頻繁に雪が降ると決定し、ツール512内に「雪」を含めることができる。別の例として、パノラマ像アプリケーション108は、(たとえば、マップデータベース144からの情報に基づいて)訪問者が一日の特定の時間にそのロケーションに旅行するかまたはそのロケーションの写真を撮ると決定し、それらの時間をツール512内に示唆(たとえば、日の入り)として含めることができる。さらなる例として、パノラマ像アプリケーション108は、(たとえば、マップデータベース144からの情報に基づいて)そのロケーションが厳しい天候を含めて、いくつかの特定の天候パターンによって頻繁に影響を受けると決定し、これらの状態の下で出現する可能性が高い、ロケーションの生成されたパノラマ画像を見る示唆を含めることができる。
図5Bに示す例では、ユーザはツール512からオプション「雪」を選択する。応答して、クライアントデバイス102は、ユーザインターフェース520内に示されるように、新しいパノラマ画像312を取り出して表示する。新しいパノラマ画像312は、雪に覆われて見えることになるロケーションを示す。ツール514は、ツール512と同様であるが、ユーザが「雪」のオプションを選択したことを示す。さらに、ユーザインターフェース520は、通知416と同様であってよい通知516を含み、パノラマ画像312が生成されることを示す。図4Bを参照しながら説明したように、ユーザが仮想沿道環境内をナビゲートする場合、パノラマ像アプリケーション108は、選択された状態の下で生成されたパノラマ像を引き続き表示することができ、通知516を引き続き表示し得る。新しい生成されたパノラマ像は、ユーザがナビゲートするにつれて生成され得るか、またはユーザの仮想ロケーションの前にまたはその近くでそのロケーションに対してプリキャッシュされ得る。さらに、パノラマ像アプリケーション108は、生成されたパノラマ像の品質を監視し、品質が低下した場合、生成されたパノラマ像の表示を停止し得る。
上述のように、変換210、変換310、および変換210と310の組合せなどの変換は、機械学習モデルを利用して実行され得る。敵対的生成ネットワークは、物理的対象物および/または特徴を含むパノラマ像を生成するようにトレーニングされ、また利用されることが可能である機械学習モデルの一例である。図6A~図6Bは、それぞれ、機械学習モデルをトレーニングすること、およびパノラマ像を生成するようにトレーニングされた機械学習モデルを適用することを示す。図6A~図6B内のブロックのうちのいくつかは、データ構造またはデータ構造を記憶するメモリ、レジスタ、または状態変数(たとえば、ブロック606a~n、608a~n、622、626、628)を表し、他のブロックは、ハードウェアおよび/またはソフトウェア構成要素(たとえば、ブロック610、612、616)を表し、他のブロックは、出力データ(たとえば、ブロック614a~n、634、636)を表す。入力信号は、対応する信号名で標示された矢印によって表される。
概して、上述のように、パノラマ像データベース140は、360度のパノラマおよび沿道像など、パノラマ像を記憶する。ユーザがパノラマ像データベース140内に記憶された既存のパノラマ像内に反映されない所与の状態(たとえば、最新環境状態)下の地理的ロケーションを示すパノラマ像を要求するとき、パノラマ像生成モジュール136は、その所与の状態の下の地理的ロケーションを示す新しいパノラマ像を生成し得る。
図6Aは、サーバ130が、パノラマ像を生成するように図1のパノラマ像生成モジュール136をどのようにトレーニングし得るかを概略的に示す。パノラマ像生成モジュール136は、生成機械学習モデル手法に基づいて新しいパノラマ像を生成するための(GANであってよい)生成機械学習エンジン610を含んでよい。広く定義される生成機械学習モデル手法は、生成エンジンが入力データの新しい例を生成し得るように、入力データのセット内の規則性および/またはパターンを学習するようにエンジンをトレーニングすることを必要とする。より多くの入力エンジンに対して生成エンジンがトレーニングされるにつれて、エンジンの生成された新しい例は、入力データに対する類似性を増大させ得る。したがって、生成機械学習モデル手法の目標は、元の入力データと同様の入力データの新しい例の生成を可能にすることである。本開示は主にGANを参照しながらパノラマ像を生成することについて説明するが、生成機械学習エンジン610は、他のタイプの機械学習モデルを含んでよい。さらに、上述のように、異なる機械学習モデルがパノラマ像生成シーケンスの異なるステップを実行し得る。
パノラマ像を生成するために、生成機械学習エンジン610は、様々なソースからトレーニングデータを受信する。トレーニングデータは、パノラマ像データベース140から取り出される第1の地理的エリアに関するパノラマ画像の第1のセット606aを含む。パノラマ画像の第1のセット606aは、パノラマ画像および沿道像を含み得る。たとえば、パノラマ画像の第1のセット606aは、特定の経路の観点から取り込まれた第1の地理的ロケーションの沿道画像であってよい。パノラマ画像の第1のセット606aのパノラマ画像は、異なる状態の下の第1の地理的エリアを示し得る。たとえば、パノラマ画像は、様々な天候状態の下の、様々な明暗状態の下の、異なる季節の、地理的エリアに対する変更の前後の(たとえば、前の時点の、後の時点の、自然災害前の、自然災害後の)、および/または様々な状態の組合せの下での第1の地理的エリアを示し得る。加えて、トレーニングデータは、UGCデータベース142から取り出された第1の地理的エリアに対する画像の第1のセット608aを含む。画像の第1のセット608aからの画像は、パノラマ画像および/または非パノラマ画像であってよい。
トレーニングデータはまた、パノラマ画像の第1のセット606aと同様であってよいが、第2の地理的エリアに関する、パノラマ像データベース140から取り出された第2の地理的エリアに関するパノラマ画像の第2のセット606bを含む。加えて、トレーニングデータは、画像の第1のセット608aと同様であってよいが、第2の地理的エリアに関する、UGCデータベースから取り出された第2の地理的エリアに関する画像の第2のセット608bを含み得る。同様に、トレーニングデータは、第nの地理的エリアに関する画像の第nのセット608nを備えた、第nの地理的エリアに関するパノラマ画像の第nのセット606nを含む。パノラマ画像のセット606a~606nは、パノラマ像データベース140からのそれぞれの地理的エリアに関する利用可能なパノラマ画像を表し得る。
トレーニングデータを取り出すとすぐ、生成機械学習エンジン610は、トレーニングデータを利用して、生成器612および弁別器616をトレーニングし得る。たとえば、生成機械学習エンジン610は、パノラマ画像のセット606a~606nおよび画像のセット608a~608nを生成器612に通過させて、生成されたパノラマ像のセット614a~614nを作成し得る。生成されたパノラマ像の各セット614a~614nは、任意の数の生成されたパノラマ画像を含んでよい。生成器612は、生成されたパノラマ画像を一緒にスティッチして沿道像を作成し得る。
生成器612は、次いで、生成されたパノラマ像614a~614nを弁別器616に渡すことができる。弁別器616はまた、トレーニングパノラマ画像606a~606nを受信し得る。データの両方のセット(たとえば、606a~606nおよび614a~614n)を使用して、弁別器616は、どの画像がパノラマ画像のセット606a~606nの画像でないかの決定を試みることができ。言い換えれば、弁別器616は、生成されたパノラマ像614a~614nのどの画像が「実物」、すなわち、1つまたは複数のカメラによって取り込まれた写真であるか、または「偽物」、すなわち、生成画像であるかを分類する。
たとえば、弁別器616は、パノラマ画像の第1のセット606a内に含まれた各画像および生成されたパノラマ画像の第1のセット614a内に含まれた各画像を分析し得る。弁別器616は、道路配置、ランドマーク配置、または地理的ロケーションを示す画像の他の内容など、一貫した画像の特性を決定し得る。内容に加えて、特性は、サイズ、アスペクト比、投影タイプなどの画像パラメータを含んでよい。いくつかの実装形態では、弁別器616はまた、画像608a~608nを使用して、地理的ロケーションを示す画像の一貫した特性など、一貫した特性を決定し得る。そのような実装形態では、画像の第1のセット608aが非パノラマ画像を含む場合、弁別器616は、画像の第1のセット608aと、パノラマ画像の第1のセット606aと、生成されたパノラマ画像の第1のセット614aとの間のいくつかの画像パラメータが、たとえば、異なることを予測することになる。
弁別器616が(たとえば、特定の画像が一貫した特性から逸脱する特性を含むため)特定の画像が実際の画像でないと決定する場合、弁別器616は、生成画像としてその特定の画像にフラグ付けし得る。その場合、弁別器616は、フラグ付けされた画像を生成器612に戻し得る、かつ/または別の形で生成されたパノラマ画像のセット614a~614nからの画像が、パノラマ画像606a~606nなど、実際の画像に十分類似しないことを生成器612に示し得る(たとえば、出力は入力画像が「実物」であるかまたは「生成物」であるかを示し得る)。生成器612は、フラグ付けされた画像を分析して、フラグ付けされた画像をもたらした、そのフラグ付けされた画像の特性を決定し得る。弁別器616の分類は、したがって、生成器612に対するさらなるトレーニングデータとして役立つ。したがって、生成機械学習プロセスの後の反復において、生成器612は、パノラマ像生成プロセスを改変して、弁別器616からの同様のフラグ付け結果を回避し得る。このようにして、生成機械学習エンジン610は、パノラマ画像606a~606nにより密に対応するパノラマ像を漸進的に生成し得る。言い換えれば、これは、地理的エリアを正確に示す正確なパノラマ画像が生成されることを可能にする。
サーバ130は、地理的ロケーションの第1のパノラマ画像から異なる特徴を備えた地理的ロケーションを示す地理的ロケーションの第2のパノラマ画像への変換を学習するように生成機械学習エンジン610をトレーニングし得る。そのような特徴は、天候状態または光状態など、異なる状態、または異なる物理的対象物を含む。具体的には、生成機械学習エンジン610は、変換210、変換310、および変換210と310の組合せを実行するようにトレーニングされ得る。
たとえば、サーバ130は、地理的ロケーションの「最新」画像を作成するために、後の時間に取り込まれた地理的ロケーションの画像からの物理的対象物をより前の時間に取り込まれたパノラマ画像内に挿入するように生成器616をトレーニングし得る。生成器616は、物理的対象物を1つまたは複数の画像から抽出すること、抽出された物理的対象物をソースパノラマ画像の投影タイプの座標系にマッピングすること、新しいパノラマ画像を生成するために、抽出された物理的対象物をソースパノラマ画像内にマージすることを含めて、変換210に関して上記で論じたステップを実行するようにトレーニングされ得る。抽出された物理的対象物をマージするために、生成器616は、異なる画像のサイズに関するスケーリング係数、および物理的対象物をどのように既存のパノラマ画像に位置合わせするかを識別するようにトレーニングされ得る。生成器616はまた、現実的に見えるように、物理的対象物を既存のパノラマ画像内にブレンドするようにトレーニングされ得る。
さらに、サーバ130は、画像からの特徴をパノラマ画像内に挿入するように生成器616をトレーニングし得る。特徴は、天候状態、明暗状態、または利用可能なパノラマ像または沿道像内に反映され得ない他の過渡状態に関連付けられ得る。生成器616は、1つまたは複数の画像から特徴を識別すること、抽出された特徴をソースパノラマ画像の投影タイプの座標系へのマッピングすること、および新しいパノラマ画像を生成するために、抽出された特徴をソースパノラマ画像内にマージすることを含めて、変換310に関して上記で論じたステップを実行するようにトレーニングされ得る。生成器616が異なる特徴をどのように識別するかは、特徴によって異なり得る。たとえば、生成器616は、異なる天候状態に関連する1つまたは複数のパターン、異なる日光量に関連する1つまたは複数の明暗状態、異なる季節を示す1つまたは複数のパターンなどを識別し得る。生成器616はまた、ユーザによってナビゲートされ得る、生成されたパノラマ像に基づいて、沿道像を生成するようにトレーニングされ得る。生成器616は、生成されたパノラマ画像を一緒にスティッチすることによって、沿道像を生成するようにトレーニングされ得る。
トレーニングされた生成機械学習エンジン610は、特定の地理的ロケーションに対する特定の状態を反映するパノラマ像を生成するために使用され得る。例示のために、図6Bの例示的なシナリオで示すように、生成機械学習エンジン610は、新しいパノラマ像を生成するための要求622を示すデータを受信し得る。要求622は、生成されたパノラマ像内に反映されるべき、要求される状態を示してよく、生成されたパノラマ像内に示されるべき地理的ロケーションを示してよい。要求される状態は、テキスト(たとえば、「積雪」)または画像(たとえば、積雪状態の下のロケーションの画像)として表現されてよい。加えて、要求622は、パノラマ像が(たとえば、特定の通りまたは経路から)要求される視点または観点を示してよい。要求622内のデータは、パノラマ像アプリケーション108と対話しているユーザによって示されてよく、新しいパノラマ像は、リアルタイムで生成され得るか、またはユーザのために生成およびキャッシュされ得る。他の実装形態では、要求622は、特定のユーザに関連付けられ得ないが、1つまたは複数の地理的ロケーションの異なる状態を反映するパノラマ像に対するバッチジョブに対する要求に関連付けられ得る。
たとえば、要求622が特定のユーザに関連付けられる実装形態では、ユーザは、パノラマ像アプリケーション108と対話していることがある。パノラマ像アプリケーション108は、サーバ130からロケーションに対するパノラマ像を要求することができ、サーバ130は、クライアントデバイス102上に表示するために、図6Bの文脈でソースパノラマ画像626と呼ばれる、地理的ロケーションに対して利用可能なパノラマ画像を提供し得る。応答して、ユーザは、より最近の時間における地理的ロケーションを反映するか、または異なる状態を反映する、最新パノラマ画像を要求し得る。いくつかの実施形態では、サーバ130および/またはパノラマ像アプリケーション108は、(たとえば、ソースパノラマ画像626のタイムスタンプをパノラマ像に対するユーザ要求の時間と比較することによって、またはソースパノラマ画像626をUGCデータベース642から最近取り込まれた画像と比較することによって)ソースパノラマ画像626が古いと自動的に決定し、生成されたパノラマ像を自動的に要求し得る。パノラマ像アプリケーション108は、更新されたパノラマ像を受信することをユーザが望むかどうかをユーザに尋ねることができる。同様に、いくつかの実施形態では、サーバ130および/またはパノラマ像アプリケーション108は、ソースパノラマ画像626が一定の状態を示すと自動的に決定し、異なる状態を反映する、生成されたパノラマ像を自動的に要求し得る。パノラマ像アプリケーション108は、異なる状態の下の地理的ロケーションのパノラマ像を受信することをユーザが望むかどうかをユーザに尋ねることができる。
いずれの場合も、エンジン610は、地理的ロケーションのソースパノラマ画像626をパノラマ像データベース140から取り出す。ソースパノラマ画像626は、一緒にスティッチされた複数のパノラマ画像からなる沿道画像であってよい。対応して、任意の生成されたパノラマ画像も沿道画像であってよい。加えて、エンジン610はまた、UGCデータベース142から、または要求622内に含まれた状態を示す異なる地理的ロケーションから、地理的ロケーションに対して利用可能なUGC画像(パノラマおよび/または非パノラマ)である1つまたは複数のソースUGC画像628を取り出す。いくつかのシナリオでは、ソースUGC画像628が利用不可能なことがある(たとえば、地理的ロケーションに対してUGC画像が存在しないことがある)。エンジン610が要求622とソースパノラマ画像626およびソースUGC画像628の両方を受信すると、エンジン610は、パノラマ像生成プロセスに進むことができる。
エンジン610は、要求622とソースパノラマ画像626およびソースUGC画像628(利用可能な場合)の両方を最初に生成器612に渡すことができる。生成器612は、次いで、ソースUGC画像628と併せてソースパノラマ画像626と要求622内に含まれた状態とを分析して、新しいパノラマ像634を生成し得る。生成されたパノラマ像634は、1つまたは複数のパノラマ画像であってよく、一緒にスティッチされたパノラマ画像を表す沿道像であってよい。図2の例を参照すると、生成器612は、画像206内に示された物理的対象物を含むパノラマ画像を有さないにもかかわらず、既存のパノラマ画像202(たとえば、ソースパノラマ画像626)と、より最近の画像206(たとえば、ソースUGC画像628)とに基づいて、最新パノラマ画像212を生成し得る。図3の例を参照すると、生成器612は、既存のパノラマ画像302(たとえば、ソースパノラマ画像626)に基づいて、パノラマ画像312を生成し得る。そのような例では、要求622内に含まれた状態に対して、ロケーションの画像が利用可能でないことがあるが、生成器612は、それらの状態を示す他のロケーションからの画像を使用してトレーニングされた後で、パノラマ画像312を依然として生成し得る。
生成器612は、ソースパノラマ画像626とともに、生成されたパノラマ像634を弁別器616に渡すことができる。生成器612はまた、(たとえば、パノラマ画像606a~606nからの)他のトレーニングパノラマ画像606を弁別器616に渡すこともできる。弁別器は、次いで、受信されたどの画像がソースパノラマ画像626またはトレーニングパノラマ画像606でないかの決定を試みることができる。生成されたパノラマ像634が地理的ロケーションに対するパノラマ画像が有すると弁別器616が期待するものを超えて逸脱する特性を含むと弁別器616が決定する場合、弁別器616は、上記で説明したように、生成されたパノラマ像634にフラグ付けし得る。しかしながら、弁別器616が生成されたパノラマ像634にフラグ付けしないならば、エンジン610は、生成されたパノラマ画像は表示のためにユーザに送信されるべき(または、後でユーザに送信するために記憶されるべき)であると決定し得る。したがって、エンジン610は、「通過する」生成されたパノラマ像634を生成されたパノラマ像636と指定し、表示のために画像をクライアントデバイス102に送信し得る(または、クライアントデバイス上に後で表示するために、生成されたパノラマ像636をパノラマ像データベース140または別の同様のデータベース内に記憶し得る)。このようにして、GANは、パノラマ画像を生成し、地理的エリアを十分正確に示す、生成されたパノラマ画像のみがユーザに提供されるように、生成画像の精度を決定するように具体的に適応される。言い換えれば、GANは、十分正確なパノラマ画像を生成してユーザに提供する技術的目的のために特別に適応される。いくつかの実装形態では、生成機械学習エンジン610は、生成されたパノラマ像を「通過する」生成されたパノラマ像636として指定する前に、生成されたパノラマ像634を弁別器616に渡さなくてよい。したがって、生成機械学習エンジン610は、生成器612が展開された後、弁別器616を使用して生成器612をトレーニングし得るが、画像は、ユーザに表示される前に弁別器616を通過しなくてよい。
図7は、図1のコンピューティングデバイス内で実装され得る、パノラマ像を生成するための例示的な方法700の流れ図である。サーバ130がパノラマ像生成モジュール136を実装するシナリオでは、方法700はサーバ130によって実行され得る。クライアントデバイス102がパノラマ像生成モジュール136を実装するシナリオでは、方法700はクライアントデバイス102によって実行され得る。いくつかの実装形態では、方法700は、地理的エリアのパノラマ像に対するユーザ要求(たとえば、クライアントデバイス102において実装されるパノラマ像アプリケーション108を介して行われた要求)に応答して開始し得る。他の実装形態では、方法700は、パノラマ像が後のユーザ要求に応答して取り出すために利用可能であるように、地理的ロケーションまたは領域に対する新しいパノラマ像を生成しキャッシュするための処理ジョブの部分であってよい。
ブロック702において、コンピューティングデバイスは、地理的エリアを示す第1のパノラマ像(たとえば、パノラマ画像202)を取得する。コンピューティングデバイスは、第1のパノラマ像をパノラマ像データベース140から取り出し得る。さらに、第1のパノラマ像は、一緒にスティッチされ得るか、または一緒にスティッチされて沿道像を形成することが可能な、複数のパノラマ画像を含み得る。
ブロック704において、コンピューティングデバイスは、第1のパノラマ像にはない1つまたは複数の物理的対象物を示す画像を取得する。画像は、コンピューティングデバイスがパノラマ像データベース140から取り出すパノラマ画像、またはコンピューティングデバイスがUGCデータベース142から取り出すパノラマ画像または非パノラマ画像であってよい。コンピューティングデバイスは、第1のパノラマ像と画像を比較して、画像がパノラマ像にはない物理的対象物を含むかどうかを決定し得る。画像は、第1のパノラマ像と同じ地理的エリアを示してよく(または、同じ地理的エリアの少なくとも一部分を示してよく)または異なる地理的エリアを示してもよい。いくつかの実装形態では、ブロック704は、第1のパノラマ像にはない1つまたは複数の物理的対象物を示す複数の画像を取得するステップを含み得る。
ブロック706において、コンピューティングデバイスは、第1のパノラマ像を、1つまたは複数の物理的対象物を示し、かつ第1のパノラマ像の少なくとも一部分を含む、第2のパノラマ像に変換する(たとえば、変換210)。
第2のパノラマ像は、第1のパノラマ像からの地理的エリアを示し得るが、1つまたは複数の物理的対象物を含む。たとえば、ブロック704において取得される画像は、第1のパノラマ像よりも最近の地理的エリアを示し得る。物理的対象物は、第1のパノラマ像が取り込まれてから、地理的エリアに追加されたか、または地理的エリアにおける他の物理的対象物に取って代わった可能性がある。したがって、第2のパノラマ像は、画像が取り込まれた時間における地理的エリアを示す。画像および第1のパノラマ像が同じまたは同様の地理的エリアを示す場合、第1のパノラマ像にはない物理的対象物は、それらの画像を比較することによって識別され得る。画像および第1のパノラマ像が異なる地理的ロケーションを示す場合、第1のパノラマ像を変換するステップは、所定のオブジェクトを識別するようにトレーニングされた機械学習モデル(たとえば、生成機械学習エンジン610)を適用するステップと、所定のオブジェクトが、その画像内にあり、第1のパノラマ像内に存在しないことを識別するステップと、所定のオブジェクトを第1のパノラマ像にマージするステップとを含み得る。
第1のパノラマ画像を第2のパノラマ像に変換するステップは、物理的対象物を画像から抽出するステップを含み得る。この変換はまた、画像または抽出された物理的対象物に対して数学的変換を実行して、画像または抽出された物理的対象物を第1のパノラマ画像の空間にマッピングするステップを含み得る。画像が非パノラマである場合、数学的変換は、第1のパノラマ像の投影タイプを識別するステップと、1つまたは複数の物理的対象物を投影タイプの座標系にマッピングするステップとを含み得る。マッピングされた1つまたは複数の物理的対象物は、次いで、第2のパノラマ像を生成するために、第1のパノラマ像にマージされ得る。物理的対象物をマージするステップは、物理的対象物を第1のパノラマ像内に挿入またはオーバーレイするステップを含んでよく、第1のパノラマ像を処理して、(たとえば、既存の物理的対象物を除去すること、影を調整することなどによって)物理的対象物を第1のパノラマ像にブレンドするステップをさらに含んでよい。
第1のパノラマ像を変換するステップは、(たとえば、第2のパノラマ像を生成するために、物理的対象物を画像から抽出し、物理的対象物を第1のパノラマ像にマージするために)上記で説明した変換の1つまたは複数のステップを実行するために、生成器ネットワークおよび随意に弁別器ネットワーク(たとえば、弁別器616)を含むGAN(たとえば、生成機械学習エンジン610)の生成器ネットワーク(たとえば、生成器612)を適用するステップを含み得る。第1のパノラマ像を変換するステップはまた、第2のパノラマ像を実物または生成物として分類するために、弁別器ネットワークを第2のパノラマ像に適用するステップを含み得る。弁別器ネットワークが第2のパノラマ像を生成物と分類する場合、方法700は、1つまたは複数の物理的対象物を示すパノラマ像を示す第3のパノラマ像を生成するために、生成器ネットワークを第1のパノラマ像および画像に適用するステップを含み得る。第3のパノラマ像は弁別器に渡されてよい。
さらに、第1のパノラマ像を変換するステップは、物理的対象物(たとえば、変換310の要素)に加えて、他の特徴を挿入するステップを含んでよい。たとえば、生成器ネットワークは、第1のパノラマ像にはない天候状態を示す1つまたは複数のパターンを第1のパノラマ像に挿入するために第1のパノラマ像に適用され得る。生成器ネットワークは、複数のトレーニングパノラマ画像および複数のトレーニング画像(たとえば、画像606a~606n、608a~608n)を使用して、天候状態を示す1つまたは複数のパターンを識別するようにトレーニングされ得る。別の例として、日光量を示す1つまたは複数の明暗状態を第1のパノラマ像内に挿入するために、生成器ネットワークが第1のパノラマ像に適用されてよく、ここで、日光量は、第1のパノラマ像内に示されるものとは異なる。生成器ネットワークは、複数のトレーニングパノラマ画像および複数のトレーニング画像(たとえば、画像606a~606n、608a~608n)を使用して、1つまたは複数の明暗状態を識別するようにトレーニングされ得る。
第1のパノラマ像を第2のパノラマ像に変換するステップは、複数のパノラマ画像を生成するステップと、パノラマ画像を一緒にスティッチして沿道像を形成するステップとを含み得る。生成器ネットワークは、そのようなスティッチングを実行するようにトレーニングされ得る。
クライアントデバイス102において生成されない場合、第2のパノラマ像は、クライアントデバイス102に送信され得る。クライアントデバイス102は、次いで、第2のパノラマ像をユーザに表示し得る。
図8は、図1のコンピューティングデバイス内で実装され得る、パノラマ像を生成するための別の例示的な方法の流れ図である。方法700と同様に、サーバ130がパノラマ像生成モジュール136を実装するシナリオでは、方法800は、サーバ130によって実行され得る。クライアントデバイス102がパノラマ像生成モジュール136を実装するシナリオでは、方法800は、クライアントデバイス102によって実行され得る。いくつかの実装形態では、方法800は、地理的エリアのパノラマ像に対するユーザ要求(たとえば、クライアントデバイス102において実装されるパノラマ像アプリケーション108を介して行われた要求)に応答して開始し得る。他の実装形態では、方法800は、パノラマ像が後のユーザ要求に応答して取り出すために利用可能であるように、地理的ロケーションまたは領域に対する新しいパノラマ像を生成およびキャッシュするための処理ジョブの一部であり得る。
ブロック802において、コンピューティングデバイスは第1のパノラマ像(たとえば、パノラマ画像302)を取得する。コンピューティングデバイスは、第1のパノラマ像をパノラマ像データベース140から取り出し得る。さらに、第1のパノラマ像は、一緒にスティッチされること、または一緒にスティッチされて沿道像を形成することが可能な、複数の画像を含んでよい。
ブロック804において、コンピューティングデバイスは、第1のパノラマ像にはない1つまたは複数の特徴を示す非パノラマ画像を取得する。非パノラマ画像は、UGCデータベース142から取り出されてよい。コンピューティングデバイスは、第1のパノラマ像と画像を比較して、画像がパノラマ像にはない特徴を含むかどうかを決定し得る。画像は、第1のパノラマ像と同じ地理的エリア(もしくは、同じ地理的エリアの少なくとも一部分)または異なる地理的エリアを示し得る。いくつかの実装形態では、ブロック804は、第1のパノラマ像にはない特徴を示す複数の画像を取得するステップを含み得る。コンピューティングデバイスは、ユーザ要求(たとえば、要求622)内に示された状態に基づいて、いくつかの特徴を含む非パノラマ画像(または、画像)を取り出すことができる。
ブロック806において、コンピューティングデバイスは、1つまたは複数の特徴を第2のパノラマ像内に示すために、非パノラマ画像を第1のパノラマ像に適用する。非パノラマ画像を第1のパノラマ像に適用することは、ブロック706を参照しながら論じたステップと同様のステップを含み得る。たとえば、非パノラマ画像を第1のパノラマ像に適用するステップは、1つまたは複数の特徴を抽出するステップと、第1のパノラマ像の投影タイプを識別するステップと、1つまたは複数の特徴を投影タイプの座標系にマッピングするステップと、第2のパノラマ像を生成するために、マッピングされた特徴を第1のパノラマ像にマージするステップとを含み得る。特徴が物理的対象物を含む場合、特徴をマージするステップは、マッピングされた物理的対象物を第1のパノラマ像内に挿入するステップを含み得る。特徴が環境状態の発現を含む場合、特徴をマージするステップは、マッピングされた発現を第1のパノラマ像上にオーバーレイするステップを含み得る。ブロック706を参照しながら論じたように、非パノラマ画像の第1のパノラマ像への適用は、GANを使用して実行され得る。
第1のパノラマ像を第2のパノラマ像に変換するステップは、複数のパノラマ画像を生成するステップと、パノラマ画像を一緒にスティッチして沿道像を形成するステップとを含み得る。生成器ネットワークは、そのようなスティッチングを実行するようにトレーニングされ得る。
クライアントデバイス102において生成されない場合、第2のパノラマ像は、クライアントデバイス102に送信され得る。クライアントデバイス102は、次いで、第2のパノラマ像をユーザに表示し得る。
限定ではなく、例として、本明細書の開示は、以下の態様を企図する。
1.パノラマ像を作成するための方法であって、1つまたは複数のプロセッサによって、地理的エリアを示す第1のパノラマ像を取得するステップと、1つまたは複数のプロセッサによって、第1のパノラマ像にはない1つまたは複数の物理的対象物を示す画像を取得するステップと、1つまたは複数のプロセッサによって、第1のパノラマ像を、1つまたは複数の物理的対象物を示し、かつ第1のパノラマ像の少なくとも一部分を含む、第2のパノラマ像に変換するステップとを含む、方法。
2.第1のパノラマ像を変換するステップが、1つまたは複数の物理的対象物を画像から抽出し、第2のパノラマ像を生成するために、1つまたは複数の物理的対象物を第1のパノラマ像にマージするために、生成器ネットワークと弁別器ネットワークとを含む敵対的生成ネットワーク(GAN)の生成器ネットワークを第1のパノラマ像および画像に適用するステップを含む、態様1に記載の方法。
3.第1のパノラマ像を変換するステップが、第2のパノラマ像を実物または生成物として分類するために、弁別器ネットワークを第2のパノラマ像に適用するステップと、弁別器ネットワークが第2のパノラマ像を生成物として分類する場合、1つまたは複数の物理的対象物を示す第3のパノラマ像を生成するために、生成器ネットワークを第1のパノラマ像および画像に適用するステップとを含む、態様2に記載の方法。
4.複数のパノラマ画像と複数の画像とを使用して、物理的対象物を複数の画像から抽出し、物理的対象物を複数のパノラマ画像にマージするように生成器ネットワークをトレーニングするステップと、複数のパノラマ画像と生成器ネットワークによって生成された複数の生成されたパノラマ画像とを使用して、複数の生成されたパノラマ画像を生成物または実物として分類するように弁別器ネットワークをトレーニングするステップとをさらに含み、生成器ネットワークをトレーニングするステップが、弁別器ネットワークからの分類を使用して、生成器ネットワークをトレーニングするステップをさらに含む、態様2または3に記載の方法。
5.第1のパノラマ像を変換するステップが、天候状態を示す1つまたは複数のパターンを第1のパノラマ像内に挿入するために、生成器ネットワークを第1のパノラマ像に適用するステップであって、1つまたは複数のパターンが第1のパノラマ像にはない、ステップをさらに含む、態様2に記載の方法。
6.複数のパノラマ画像と複数の画像とを使用して、天候状態を示す1つまたは複数のパターンを識別し、1つまたは複数のパターンを複数のパノラマ画像内に挿入するように生成器ネットワークをトレーニングするステップをさらに含む、態様5に記載の方法。
7.第1のパノラマ像を変換するステップが、第1の日光量を示す1つまたは複数の光状態を第1のパノラマ像内に挿入するために、生成器ネットワークを第1のパノラマ像に適用するステップであって、第1の日光量が、第1のパノラマ像内で示される第2の日光量とは異なる、ステップを含む、態様2に記載の方法。
8.複数のパノラマ画像と複数の画像とを使用して、1つまたは複数の光状態を識別し、1つまたは複数の光状態を複数のパノラマ画像内に挿入するように生成器ネットワークをトレーニングするステップをさらに含む、態様7に記載の方法。
9.画像が非パノラマ画像であり、第1のパノラマ像を変換するステップが、1つまたは複数の物理的対象物を非パノラマ画像から抽出するステップと、第1のパノラマ像の投影タイプを識別するステップと、1つまたは複数の物理的対象物を投影タイプの座標系にマッピングするステップと、第2のパノラマ像を生成するために、マッピングされた1つまたは複数の物理的対象物を第1のパノラマ像にマージするステップとを含む、態様1から8のいずれか1つに記載の方法。
10.画像が地理的エリアを示し、第1のパノラマ像を変換するステップが、第1のパノラマ像にはない1つまたは複数の物理的対象物を識別するために、第1のパノラマ像と画像を比較するステップを含む、態様1から9のいずれか1つに記載の方法。
11.地理的エリアが第1の地理的エリアであり、画像が第2の地理的エリアを示し、第1のパノラマ像を変換するステップが、複数の所定のオブジェクトを識別するようにトレーニングされた機械学習モデルを画像に適用するステップと、機械学習モデルの適用に基づいて、画像が第1のパノラマ像内に存在しない複数の所定のオブジェクトの所定のオブジェクトを含むことを識別するステップと、所定のオブジェクトを第1のパノラマ像にマージするステップとを含む、態様1から9のいずれか1つに記載の方法。
12.画像が、第1のパノラマ像が取り込まれた第1の時間の後である第2の時間に取り込まれ、第1のパノラマ像を変換するステップが、第1のパノラマ像を第2の時間における地理的エリアを示す第2のパノラマ像に変換するステップを含む、態様1から11のいずれか1つに記載の方法。
13.パノラマ像を作成するための方法であって、1つまたは複数のプロセッサによって、第1のパノラマ像を取得するステップと、1つまたは複数のプロセッサによって、1つまたは複数の特徴を示す非パノラマ画像を取得するステップと、1つまたは複数のプロセッサによって、1つまたは複数の特徴を第2のパノラマ像内に示すために、非パノラマ画像を第1のパノラマ像に適用するステップとを含む、方法。
14.非パノラマ画像を第1のパノラマ像に適用するステップが、1つまたは複数の特徴を非パノラマ画像から抽出するステップと、第1のパノラマ像の投影タイプを識別するステップと、1つまたは複数の特徴を投影タイプの座標系にマッピングするステップと、第2のパノラマ像を生成するために、1つまたは複数のマッピングされた特徴を第1のパノラマ像にマージするステップとを含む、態様13に記載の方法。
15.1つまたは複数の特徴が物理的対象物を含み、1つまたは複数のマッピングされた特徴をマージするステップが、マッピングされた物理的対象物を第1のパノラマ像内に挿入するステップを含む、態様14に記載の方法。
16.1つまたは複数の特徴が環境状態の発現を含み、1つまたは複数のマッピングされた特徴をマージするステップが、マッピングされた発現を第1のパノラマ像上にオーバーレイするステップを含む、態様14または15に記載の方法。
17.非パノラマ画像を第1のパノラマ像に適用するステップが、1つまたは複数の特徴を非パノラマ画像から抽出し、第1のパノラマ像の投影タイプを識別し、1つまたは複数の特徴を投影タイプの座標系にマッピングし、第2のパノラマ像を作成するために、1つまたは複数のマッピングされた特徴を第1のパノラマ像にマージするために、生成器ネットワークと弁別器ネットワークとを含む敵対的生成ネットワーク(GAN)の生成器ネットワークを使用して、非パノラマ画像を第1のパノラマ像に適用するステップを含む、態様13から16のいずれか1つに記載の方法。
18.第2のパノラマ像を実物または生成物として分類するために、弁別器ネットワークを第2のパノラマ像に適用するステップと、弁別器ネットワークが第2のパノラマ像を生成物として分類する場合、第3のパノラマ像を生成するために、生成器ネットワークを使用して、非パノラマ画像を第1のパノラマ像に適用するステップとをさらに含む、態様17に記載の方法。
19.複数のパノラマ画像と複数の非パノラマ画像とを使用して、非パノラマ画像をパノラマ画像に適用するように生成器ネットワークをトレーニングするステップと、複数のパノラマ画像と生成器ネットワークによって生成された複数の生成されたパノラマ画像とを使用して、複数の生成されたパノラマ画像を生成物または実物として分類するように弁別器ネットワークをトレーニングするステップとをさらに含み、生成器ネットワークをトレーニングするステップが、弁別器ネットワークからの分類を使用して、生成器ネットワークをトレーニングするステップをさらに含む、態様17または18に記載の方法。
20.第1のパノラマ像が地理的ロケーションを示し、非パノラマ画像が地理的ロケーションを示し、非パノラマ画像を第1のパノラマ像に適用するステップが、第1のパノラマ像にはない1つまたは複数の特徴を識別するために、第1のパノラマ像と非パノラマ画像を比較するステップを含む、態様13から19のいずれか1つに記載の方法。
21.パノラマ像を作成するためのコンピューティングデバイスであって、態様1から20のうちのいずれか1つによる方法を実装するように構成された1つまたは複数のプロセッサを含む、コンピューティングデバイス。
22.命令を搬送するコンピュータ可読媒体であって、命令が、1つまたは複数のプロセッサによって実行されると、態様1から20のいずれか1つによる方法を1つまたは複数のプロセッサに実行させる、コンピュータ可読媒体。
追加考慮事項
以下の追加考慮事項が前述の議論に適用される。本明細書を通して、複数のインスタンスが単一のインスタンスとして説明された構成要素、動作、または構造を実装し得る。1つまたは複数の方法の個々の動作は別個の動作として示され、説明されているが、個々の動作のうちの1つまたは複数は、同時に実行されてよく、動作が示された順序で実行されることは必要とされない。例示的な構成において別個の構成要素として提示される構造および機能は、組み合わされた構造または構成要素として実装され得る。同様に、単一の構成要素として提示される構造および機能は、別個の構成要素として実装され得る。これらのおよび他の変形態、修正、追加、および改善は、本開示の主題の範囲内に入る。
加えて、いくつかの実施形態は、論理またはいくつかの構成要素、モジュール、または機構を含むとして本明細書で説明された。モジュールは、ソフトウェアモジュール(たとえば、機械可読媒体上に記憶されたコード)またはハードウェアモジュールのいずれかを構成し得る。ハードウェアモジュールは、いくつかの動作を実行することが可能な有形ユニットであり、一定の方法で構成または配置され得る。例示的な実施形態では、1つまたは複数のコンピュータシステム(たとえば、スタンドアロン、クライアントもしくはサーバコンピュータシステム)またはコンピュータシステムの1つまたは複数のハードウェアモジュール(たとえば、プロセッサまたはプロセッサのグループ)は、本明細書で説明したいくつかの動作を実行するように動作するハードウェアモジュールとしてソフトウェア(たとえば、アプリケーションまたはアプリケーション部分)によって構成され得る。
様々な実施形態では、ハードウェアモジュールは、機械的にまたは電子的に実装され得る。たとえば、ハードウェアモジュールは、いくつかの動作を実行するように(たとえば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)など、専用プロセッサとして)永続的に構成された専用回路または論理を備え得る。ハードウェアモジュールはまた、いくつかの動作を実行するためにソフトウェアによって一時的に構成された(たとえば、汎用プロセッサまたは他のプログラマブルプロセッサ内に包含されるような)プログラマブル論理または回路を備え得る。ハードウェアモジュールを機械的に実装する決定、専用および永続的に構成された回路内で実装する決定、または一時的に構成された(たとえば、ソフトウェアによって構成された)回路内で実装する決定は、コストおよび時間を考慮することによって行われることを諒解されよう。
したがって、ハードウェアという用語は、有形エンティティ、したがって、一定の方法で動作するように、または本明細書で説明したいくつかの動作を実行するように、物理的に構築された、永続的に構成された(たとえば、ハードワイヤード)、または一時的に構成された(たとえば、プログラムされた)エンティティを包含するものと理解すべきである。ハードウェアモジュールが一時的に構成される(たとえば、プログラムされる)実施形態を考慮すると、ハードウェアモジュールは各々、任意のある時間に構成またはインスタンス化されなくてよい。たとえば、ハードウェアモジュールがソフトウェアを使用して構成された汎用プロセッサを含む場合、汎用プロセッサは、異なる時間にそれぞれの異なるハードウェアモジュールとして構成され得る。ソフトウェアは、したがって、たとえば、ある時間に特定のハードウェアモジュール構成し、異なる時間に異なるハードウェアモジュールを構成するようにプロセッサを構成し得る。
ハードウェアモジュールおよびソフトウェアモジュールは、ハードウェアおよび/またはソフトウェアモジュールに情報を提供し、そこから情報を受信し得る。したがって、説明したハードウェアモジュールは、通信可能に結合されるものと見なされ得る。複数のそのようなハードウェアまたはソフトウェアモジュールが同時に存在する場合、通信は、ハードウェアモジュールまたはソフトウェアモジュールを接続する(たとえば、適切な回路またはバスを介した)信号送信を通して達成され得る。複数のハードウェアモジュールまたはソフトウェアモジュールが異なる時間に構成またはインスタンス化される実施形態では、そのようなハードウェアモジュールまたはソフトウェアモジュール間の通信は、たとえば、複数のハードウェアモジュールまたはソフトウェアモジュールがアクセスを有するメモリ構造内の情報の記憶および取出しを通して達成され得る。たとえば、1つのハードウェアモジュールまたはソフトウェアモジュールが動作を実行し、そのモジュールが通信可能に結合されたメモリデバイス内にその動作の出力を記憶し得る。さらなるハードウェアモジュールまたはソフトウェアモジュールは、次いで、後で、メモリデバイスにアクセスして、記憶された出力を取り出し、処理することができる。ハードウェアモジュールおよびソフトウェアモジュールはまた、入力デバイスまたは出力デバイスとの通信を開始することもでき、リソース(たとえば、情報の収集物)に対して動作し得る。
本明細書で説明した例示的な方法の様々な動作は、関連する動作を実行するように(たとえば、ソフトウェアによって)一時的に構成されたまたは永続的に構成された、1つまたは複数のプロセッサによって少なくとも部分的に実行され得る。一時的に構成されるにせよ永続的に構成されるにせよ、そのようなプロセッサは、1つまたは複数の動作または機能を実行するように動作するプロセッサ実装モジュールを構成し得る。本明細書で参照するモジュールは、いくつかの例示的な実施形態では、プロセッサ実装モジュールを含み得る。
同様に、本明細書で説明した方法またはルーチンは、少なくとも部分的にプロセッサ実装されてよい。たとえば、方法の動作のうちの少なくともいくつかは、1つまたは複数のプロセッサまたはプロセッサ実装ハードウェアモジュールによって実行され得る。動作のうちのいくつかの実行は、単一の機械内に常駐するのみでなく、いくつかの機械にわたって展開される、1つまたは複数のプロセッサ間に分散されてよい。いくつかの例示的な実施形態では、1つまたは複数のプロセッサは、(たとえば、ホーム環境、オフィス環境の中で、またはサーバファームとして)単一のロケーション内に位置特定されてよく、他の実施形態では、プロセッサはいくつかのロケーションにわたって分散されてよい。
1つまたは複数のプロセッサはまた、「クラウドコンピューティング」環境内でまたはSaaSとして、関連する動作の実行をサポートするように動作し得る。たとえば、上記で示したように、動作のうちの少なくともいくつかは、(プロセッサを含む機械の一例として)コンピュータのグループによって実行され得、これらの動作は、ネットワーク(たとえば、インターネット)を介して、または1つまたは複数の適切なインターフェース(たとえば、API)を介して、アクセスされる。
動作のうちのいくつかの実行は、単一の機械内に常駐するのみではなく、いくつかの機械にわたって展開される、1つまたは複数のプロセッサ間に分散されてよい。いくつかの例示的な実施形態では、1つまたは複数のプロセッサまたはプロセッサ実装モジュールは、(たとえば、ホーム環境、オフィス環境の中で、またはサーバファームとして)単一の地理的ロケーション内に位置特定されてよい。他の例示的な実施形態では、1つまたは複数のプロセッサまたはプロセッサ実装モジュールは、いくつかの地理的ロケーションにわたって分散されてよい。
本明細書のいくつかの部分は、機械メモリ(たとえば、コンピュータメモリ)内のビットまたは2値デジタル信号として記憶されたデータに対する動作のアルゴリズムまたはシンボル表現として提示される。これらのアルゴリズムまたはシンボル表現は、自らの作業の内容を他の当業者に伝えるためにデータ処理分野の当業者によって使用される技法の例である。本明細書で使用する「アルゴリズム」または「ルーチン」は、所望の結果をもたらす動作または同様の処理の自己矛盾のないシーケンスである。この文脈で、アルゴリズム、ルーチン、および動作は、物理量の物理的操作を必要とする。そうであるとは限らないが、典型的には、そのような量は、機械によって記憶されること、アクセスされること、転送されること、結合されること、比較されること、または別の形で操作されることが可能な電気信号、磁気信号、または光信号の形をとってよい。主に一般的な利用のために、「データ」、「コンテンツ」、「ビット」、「値」、「要素」、「シンボル」、「特性」、「条件」、「数」、「数値」などの語を使用して、そのような信号を参照することが時々好都合である。しかしながら、これらの語は、単なる好都合な標示であり、適切な物理量に関連付けられる。
別段に明記されていない限り、「処理」、「算出」、「計算」、「決定」、「提示」、「表示」などの語を使用する本明細書の議論は、1つまたは複数のメモリ(たとえば、揮発性メモリ、不揮発性メモリ、またはそれらの組合せ)、レジスタ、または情報を受信、記憶、送信、または表示する他の機械構成要素内の物理(たとえば、電子、磁気、または光)量として表されるデータを操作または変換する機械(たとえば、コンピュータ)のアクションまたはプロセスを指す。
本明細書で使用する「一実施形態」または「ある実施形態」の言及は、その実施形態に関して説明した特定の要素、特徴、構造、または特性が、少なくとも一実施形態の中に含まれることを意味する。本明細書の様々な場所での「一実施形態では」の出現は、必ずしも同じ実施形態を指すとは限らない。
いくつかの実施形態は、その派生物とともに「結合される」および「接続される」という表現を使用して説明されることがある。たとえば、いくつかの実施形態は、2つ以上の要素が物理的または電気的に直接接触することを示すために「結合される」という用語を使用して説明されることがある。しかしながら、「結合される」という用語は、2つ以上の要素が、互いと直接接触しないが、依然として互いと協働または対話することをやはり意味し得る。実施形態はこの文脈で限定されない。
本明細書で使用する「備える(comprises)」、「備える(comprising)」、「含む(includes)」、「含む(including)」、「有する(has)」、「有する(having)」、またはその任意の他の変形態は非排他的包含を網羅することを意図する。たとえば、要素のリストを含む、プロセス、方法、物品、または装置は、必ずしもそれらの要素に限定されるとは限らず、明示的に列挙されない、またはそのようなプロセス、方法、物品、または装置に固有でない他の要素を含み得る。さらに、それに反して明記されない限り、「または(or)」は、排他的論理ではなく、包含的論理和を指す。たとえば、条件AまたはBは、以下のうちのいずれかの1つによって満たされる:Aは真であり(すなわち存在し)Bは偽である(すなわち存在しない)、Aは偽であり(すなわち存在せず)、Bは真である(すなわち存在する)、およびAとBは両方とも真である(すなわち存在する)。
加えて、「a」または「an」の使用は、本明細書の実施形態の要素および構成要素を説明するために採用される。これは、単に便宜上であり、説明の一般的意味を与えるためである。本明細書は、1つまたは少なくとも1つを含むものと読むべきであり、別様に意味することが明らかでない限り、単数は複数をやはり含む。
本開示を読めば、本開示で開示する原理を通じてパノラマ像を生成するためのさらに追加の代替構造および機能設計を当業者は諒解されよう。したがって、特定の実施形態および適用例が示され説明されてきたが、開示した実施形態は、本明細書で開示した正確な構造および構成要素に限定されないことを理解されたい。当業者に明らかになる様々な修正、変更、および改変が、添付の特許請求の範囲で定義される趣旨および範囲から逸脱せずに、本明細書で開示した方法および装置の配置、動作、および詳細に行われてよい。