(57)【特許請求の範囲】
【請求項１】
1つまたは複数のコンピューティングデバイスを使用して、トレーニング画像のセットおよび前記トレーニング画像内の1つまたは複数の事業店舗位置を識別するデータを使用してディープニューラルネットワークをトレーニングするステップであって、前記ディープニューラルネットワークが、各トレーニング画像上に第1の複数のバウンディングボックスを出力する、ステップと、
前記1つまたは複数のコンピューティングデバイスを使用して、第1の画像を受信するステップと、
前記1つまたは複数のコンピューティングデバイスおよび前記ディープニューラルネットワークを使用して、前記第1の画像を評価するステップと、
前記1つまたは複数のコンピューティングデバイスおよび前記ディープニューラルネットワークを使用して、前記第1の画像内の2つ以上の事業店舗位置を識別する第2の複数のバウンディングボックスを生成するステップと
を備える、方法。
【請求項２】
前記1つまたは複数のコンピューティングデバイスおよび前記ディープニューラルネットワークを使用して、前記識別された事業店舗位置の各々において事業情報を検出するステップと、
前記1つまたは複数のコンピューティングデバイスを使用して、前記第2の複数のバウンディングボックス内の各バウンディングボックスからの情報を、前記バウンディングボックスによって識別される前記事業店舗位置において検出された事業情報に追加することによって、前記事業情報のデータベースを更新するステップと、
前記1つまたは複数のコンピューティングデバイスを使用して、事業情報を求めるユーザからの要求を受信するステップと、
前記1つまたは複数のコンピューティングデバイスを使用して、前記更新されたデータベースから前記要求された事業情報を取り出すステップと
をさらに備える、請求項1に記載の方法。
【請求項３】
前記第2の複数のバウンディングボックスが、2つの別個の事業店舗位置を識別する、前記第1の画像内に並べて配置された2つのバウンディングボックスを含む、請求項1に記載の方法。
【請求項４】
前記ディープニューラルネットワークをトレーニングするステップが、
所与のトレーニング画像の一部に粗いスライディングウィンドウを適用するステップと、
前記所与のトレーニング画像の前記一部の位置に基づいて1つまたは複数のバウンディングボックスを除去するステップと
をさらに備える、請求項1に記載の方法。
【請求項５】
前記第2の複数のバウンディングボックスを生成するステップが、
前記第1の画像の一部に粗いスライディングウィンドウを適用するステップと、
前記第1の画像の前記一部の位置に基づいて1つまたは複数のバウンディングボックスを除去するステップと
をさらに備える、請求項1に記載の方法。
【請求項６】
前記ディープニューラルネットワークをトレーニングするステップが、
前記バウンディングボックスが事業店舗の画像を含む可能性を表す、バウンディングボックスごとの信頼スコアを決定するステップと、
設定されたしきい値未満の信頼スコアを有するバウンディングボックスに対応するバウンディングボックスを除去するステップと
をさらに備える、請求項1に記載の方法。
【請求項７】
前記第2の複数のバウンディングボックスを生成するステップが、
前記バウンディングボックスが事業店舗の画像を含む可能性を表す、バウンディングボックスごとの信頼スコアを決定するステップと、
設定されたしきい値未満の信頼スコアを有するバウンディングボックスに対応するバウンディングボックス位置を除去するステップと
をさらに備える、請求項1に記載の方法。
【請求項８】
前記ディープニューラルネットワークをトレーニングするステップが、事後分類を使用するステップをさらに備え、
前記第2の複数のバウンディングボックスを生成するステップが、事後分類を使用するステップをさらに備える、
請求項1に記載の方法。
【請求項９】
前記第2の複数のバウンディングボックスを生成するステップが、
所与のバウンディングボックスが事業店舗を含む確率を計算するステップと、
前記計算された確率に基づいて、前記第2の複数のバウンディングボックスをランク付けするステップと、
前記ランク付けに基づいて、1つまたは複数のバウンディングボックスを除去するステップと
をさらに備える、請求項1に記載の方法。
【請求項１０】
前記第2の複数のバウンディングボックスを生成するステップが、前記識別された事業店舗位置の見通しを妨げる前記第2の複数のバウンディングボックス内のオブジェクトを除去するステップをさらに備える、請求項1に記載の方法。
【請求項１１】
前記トレーニング画像および前記第1の画像がパノラマである、請求項1に記載の方法。
【請求項１２】
ディープニューラルネットワークと、
1つまたは複数のコンピューティングデバイスであって、
トレーニング画像のセットおよび前記トレーニング画像内の1つまたは複数の事業店舗位置を識別するデータを使用して前記ディープニューラルネットワークをトレーニングすることであって、前記ディープニューラルネットワークが、各トレーニング画像上に第1の複数のバウンディングボックスを出力する、トレーニングすることと、
前記ディープニューラルネットワークにおいて第1の画像を受信することと、
前記ディープニューラルネットワークを使用して、前記第1の画像を評価することと、
前記ディープニューラルネットワークを使用して、前記第1の画像内の事業店舗位置を識別する第2の複数のバウンディングボックスを生成することと
を行うように構成される1つまたは複数のコンピューティングデバイスと
を備える、システム。
【請求項１３】
前記1つまたは複数のコンピューティングデバイスが、
所与のトレーニング画像の一部に粗いスライディングウィンドウを適用することと、
前記所与のトレーニング画像の前記一部の位置に基づいて1つまたは複数のバウンディングボックスを除去することと
によって、前記ディープニューラルネットワークをトレーニングする
ようにさらに構成される、請求項12に記載のシステム。
【請求項１４】
前記1つまたは複数のコンピューティングデバイスが、
前記第1の画像の一部に粗いスライディングウィンドウを適用することと、
前記第1の画像の前記一部の位置に基づいて1つまたは複数のバウンディングボックスを除去することと
によって、前記第2の複数のバウンディングボックスを生成する
ようにさらに構成される、請求項12に記載のシステム。
【請求項１５】
前記1つまたは複数のコンピューティングデバイスが、
前記バウンディングボックスが事業店舗の画像を含む可能性を表す、バウンディングボックスごとの信頼スコアを決定することと、
設定されたしきい値未満の信頼スコアを有するバウンディングボックスに対応するバウンディングボックスを除去することと
によって、前記ディープニューラルネットワークをトレーニングする
ようにさらに構成される、請求項12に記載のシステム。
【請求項１６】
前記1つまたは複数のコンピューティングデバイスが、
前記バウンディングボックスが事業店舗の画像を含む可能性を表す、バウンディングボックスごとの信頼スコアを決定することと、
設定されたしきい値未満の信頼スコアを有するバウンディングボックスに対応するバウンディングボックス位置を除去することと
によって、前記第2の複数のバウンディングボックスを生成する
ようにさらに構成される、請求項12に記載のシステム。
【請求項１７】
前記1つまたは複数のコンピューティングデバイスが、
事後分類を使用することによって前記ディープニューラルネットワークをトレーニングすることと、
事後分類を使用することによって前記第2の複数のバウンディングボックスを生成することと
を行うようにさらに構成される、請求項12に記載のシステム。
【請求項１８】
前記1つまたは複数のコンピューティングデバイスが、
所与のバウンディングボックスが事業店舗を含む確率を計算することと、
前記計算された確率に基づいて、前記第2の複数のバウンディングボックスをランク付けすることと、
前記ランク付けに基づいて、1つまたは複数のバウンディングボックスを除去することと
によって、前記第2の複数のバウンディングボックスを生成する
ようにさらに構成される、請求項12に記載のシステム。
【請求項１９】
前記1つまたは複数のコンピューティングデバイスが、前記識別された事業店舗位置の見通しを妨げる前記第2の複数のバウンディングボックス内のオブジェクトを除去することによって、前記第2の複数のバウンディングボックスを生成するようにさらに構成される、請求項12に記載のシステム。
【請求項２０】
プログラムのコンピュータ可読命令が記憶された非一時的有形コンピュータ可読記憶媒体であって、前記命令が、1つまたは複数のコンピューティングデバイスによって実行されると、前記1つまたは複数のコンピューティングデバイスに方法を実行させ、前記方法が、
トレーニング画像のセットおよび前記トレーニング画像内の1つまたは複数の事業店舗位置を識別するデータを使用してディープニューラルネットワークをトレーニングするステップであって、前記ディープニューラルネットワークが、各トレーニング画像上に第1の複数のバウンディングボックスを出力する、ステップと、
前記ディープニューラルネットワークにおいて第1の画像を受信するステップと、
前記ディープニューラルネットワークを使用して、前記第1の画像を評価するステップと、
前記ディープニューラルネットワークを使用して、前記第1の画像内の事業店舗位置を識別する第2の複数のバウンディングボックスを生成するステップと
を備える、非一時的有形コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2015年8月7日に出願された米国特許出願第14/821,128号の継続出願であり、その開示は参照により本明細書に組み込まれる。
【背景技術】
【０００２】
今日インターネット上で入手可能な地理位置に基づいたストリートレベルの多数の写真は、正確な地図を作成することに役立つ、人工構造物を検出および監視するためのユニークな機会を提供する。そのような構造物の例には、レストラン、衣料品店、ガソリンスタンド、薬局、コインランドリーなどのローカル事業が含まれ得る。人気のある検索エンジンのローカルな関連クエリを通じてそのような事業を検索することに消費者の高い関心がある。そのようなローカル事業が存在するかどうかを世界規模で正確に特定することは、簡単な仕事ではない。
【発明の概要】
【課題を解決するための手段】
【０００３】
本開示の態様は、方法を提供する。本方法は、1つまたは複数のコンピューティングデバイスを使用して、トレーニング画像のセットおよびトレーニング画像内の1つまたは複数の事業店舗位置を識別するデータを使用してディープニューラルネットワークをトレーニングするステップであって、ディープニューラルネットワークが、各トレーニング画像上に第1の複数のバウンディングボックスを出力する、ステップと、1つまたは複数のコンピューティングデバイスを使用して、第1の画像を受信するステップと、1つまたは複数のコンピューティングデバイスおよびディープニューラルネットワークを使用して、第1の画像を評価するステップと、1つまたは複数のコンピューティングデバイスおよびディープニューラルネットワークを使用して、第1の画像内の事業店舗位置を識別する第2の複数のバウンディングボックスを生成するステップとを含む。
【０００４】
一例では、本方法はまた、1つまたは複数のコンピューティングデバイスおよびディープニューラルネットワークを使用して、識別された事業店舗位置の各々において事業情報を検出するステップと、1つまたは複数のコンピューティングデバイスを使用して、第2の複数のバウンディングボックス内の各バウンディングボックスからの情報を、バウンディングボックスによって識別される事業店舗位置において検出された事業情報に追加することによって、事業情報のデータベースを更新するステップとを含む。この例では、本方法はまた、1つまたは複数のコンピューティングデバイスを使用して、事業情報を求めるユーザからの要求を受信するステップと、1つまたは複数のコンピューティングデバイスを使用して、更新されたデータベースから要求された事業情報を取り出すステップとを含む。
【０００５】
別の例では、第2の複数のバウンディングボックスは、2つの別個の事業店舗位置を識別する第1の画像内に並べて配置された2つのバウンディングボックスを含む。一例では、ディープニューラルネットワークをトレーニングするステップは、所与のトレーニング画像の一部に粗いスライディングウィンドウを適用するステップと、所与のトレーニング画像の一部の位置に基づいて1つまたは複数のバウンディングボックスを除去するステップとをさらに含む。別の例では、第2の複数のバウンディングボックスを生成するステップはまた、第1の画像の一部に粗いスライディングウィンドウを適用するステップと、所与のトレーニング画像の一部の位置に基づいて1つまたは複数のバウンディングボックスを除去するステップとを含む。
【０００６】
さらに別の例では、ディープニューラルネットワークをトレーニングするステップはまた、バウンディングボックスが事業店舗の画像を含む可能性を表す、バウンディングボックスごとの信頼スコアを決定するステップと、設定されたしきい値未満の信頼スコアを有するバウンディングボックスに対応するバウンディングボックスを除去するステップとを含む。さらなる例では、第2の複数のバウンディングボックスを生成するステップはまた、バウンディングボックスが事業店舗の画像を含む可能性を表す、バウンディングボックスごとの信頼スコアを決定するステップと、設定されたしきい値未満の信頼スコアを有するバウンディングボックスに対応するバウンディングボックス位置を除去するステップとを含む。別の例では、ディープニューラルネットワークをトレーニングするステップはまた、事後分類(post-classification)を使用するステップを含み、第2の複数のバウンディングボックスを生成するステップは、事後分類を使用するステップをさらに備える。
【０００７】
さらなる例では、第2の複数のバウンディングボックスを生成するステップはまた、所与のバウンディングボックスが事業店舗を含む確率を計算するステップと、計算された確率に基づいて、第2の複数のバウンディングボックスをランク付けするステップと、ランク付けに基づいて、1つまたは複数のバウンディングボックスを除去するステップとを含む。さらに別の例では、第2の複数のバウンディングボックスを生成するステップはまた、識別された事業店舗位置の見通しを妨げる第2の複数のバウンディングボックス内のオブジェクトを除去するステップを含む。別の例では、トレーニング画像および第1の画像はパノラマである。
【０００８】
本開示の別の態様は、システムを提供する。本システムは、ディープニューラルネットワークおよび1つまたは複数のコンピューティングデバイスを含む。1つまたは複数のコンピューティングデバイスは、トレーニング画像のセットおよびトレーニング画像内の1つまたは複数の事業店舗位置を識別するデータを使用してディープニューラルネットワークをトレーニングすることであって、ディープニューラルネットワークが、各トレーニング画像上に第1の複数のバウンディングボックスを出力する、トレーニングすることと、ディープニューラルネットワークにおいて第1の画像を受信することと、ディープニューラルネットワークを使用して、第1の画像を評価することと、ディープニューラルネットワークを使用して、第1の画像内の事業店舗位置を識別する第2の複数のバウンディングボックスを生成することとを行うように構成される。
【０００９】
一例では、1つまたは複数のコンピューティングデバイスはまた、所与のトレーニング画像の一部に粗いスライディングウィンドウを適用することによってディープニューラルネットワークをトレーニングすることと、所与のトレーニング画像の一部の位置に基づいて1つまたは複数のバウンディングボックスを除去することとを行うように構成される。別の例では、1つまたは複数のコンピューティングデバイスはまた、第1の画像の一部に粗いスライディングウィンドウを適用することと、所与のトレーニング画像の一部の位置に基づいて1つまたは複数のバウンディングボックスを除去することとによって、第2の複数のバウンディングボックスを生成するように構成される。
【００１０】
さらに別の例では、1つまたは複数のコンピューティングデバイスはまた、バウンディングボックスが事業店舗の画像を含む可能性を表す、バウンディングボックスごとの信頼スコアを決定することと、設定されたしきい値未満の信頼スコアを有するバウンディングボックスに対応するバウンディングボックスを除去することとによって、ディープニューラルネットワークをトレーニングするように構成される。さらなる例では、1つまたは複数のコンピューティングデバイスはまた、バウンディングボックスが事業店舗の画像を含む可能性を表す、バウンディングボックスごとの信頼スコアを決定することと、設定されたしきい値未満の信頼スコアを有するバウンディングボックスに対応するバウンディングボックス位置を除去することとによって、第2の複数のバウンディングボックスを生成するように構成される。別の例では、1つまたは複数のコンピューティングデバイスはまた、事後分類を使用することによってディープニューラルネットワークをトレーニングすることと、事後分類を使用することによって第2の複数のバウンディングボックスを生成することとを行うように構成されるように構成される。
【００１１】
さらなる例では、1つまたは複数のコンピューティングデバイスはまた、所与のバウンディングボックスが事業店舗を含む確率を計算することと、計算された確率に基づいて、第2の複数のバウンディングボックスをランク付けすることと、ランク付けに基づいて、1つまたは複数のバウンディングボックスを除去することとを行うことによって、第2の複数のバウンディングボックスを生成するように構成される。さらに別の例では、1つまたは複数のコンピューティングデバイスはまた、識別された事業店舗位置の見通しを妨げる第2の複数のバウンディングボックス内のオブジェクトを除去することによって、第2の複数のバウンディングボックスを生成するように構成される。
【００１２】
本開示のさらなる態様は、プログラムのコンピュータ可読命令が記憶された非一時的有形コンピュータ可読記憶媒体を提供する。本命令は、1つまたは複数のコンピューティングデバイスによって実行されると、1つまたは複数のコンピューティングデバイスに方法を実行させる。本方法は、トレーニング画像のセットおよびトレーニング画像内の1つまたは複数の事業店舗位置を識別するデータを使用してディープニューラルネットワークをトレーニングするステップであって、ディープニューラルネットワークが、各トレーニング画像上に第1の複数のバウンディングボックスを出力する、ステップと、ディープニューラルネットワークにおいて第1の画像を受信するステップと、ディープニューラルネットワークを使用して、第1の画像を評価するステップと、ディープニューラルネットワークを使用して、第1の画像内の事業店舗位置を識別する第2の複数のバウンディングボックスを生成するステップとを含む。
【図面の簡単な説明】
【００１３】
【図１】本開示の態様による例示的なシステムの機能図である。
【図２】図1の例示的なシステムの絵図である。
【図３】本開示の態様による例示的な図である。
【図４】本開示の態様による別の例示的な図である。
【図５】本開示の態様による例示的な入力および出力を示す図である。
【図６】本開示の態様による例示的な流れ図である。
【発明を実施するための形態】
【００１４】
概要
本技術は、画像内の異なる事業店舗を識別するバウンディングボックスを自動的に生成することに関する。言い換えれば、単一の畳み込みネットワーク評価を使用して、複数のバウンディングボックスをそれらの信頼スコアとともに直接予測することができる。畳み込みニューラルネットワークおよび事後分類におけるディープラーニングを使用することによって、他の方法よりも高い精度と速度でパノラマ画像内の店舗を識別することができる。事業店舗の正確な検出とセグメント化は、後処理時に特定の事業に関する情報を抽出する機会を提供する。たとえば、識別される事業に関する情報を提供するためにテキストおよび画像が抽出されてもよく、場合によっては、それは事業の位置をより正確に決定するために使用されてもよい。
【００１５】
ストリートレベルの写真から任意の事業店舗を抽出することは難しい問題である。複雑さは、事業カテゴリおよび地域間の店舗の外観の高度なクラス内変動性、店舗の物理的規模の本質的な曖昧さ、都市部において互いに隣接している事業、ならびに世界中に店舗が出現するというスケールそのものに由来する。これらの要因によって、これは人間のアノテータにとっても曖昧な作業になる。ノイズ、被写体ぶれ、遮蔽、照明変化、鏡面反射、遠近感、地理位置特定エラーなどの画像取得要因が、この問題の複雑さにさらに寄与する。おそらく世界中に数億の企業が存在し、何十億というストリートレベルの画像が存在する可能性がある。この問題の規模と企業が入れ替わる率を考慮すると、手作業によるアノテーションは法外な作業であり、持続可能な解決策ではない。自動化された手法には、世界中の企業を合理的な時間枠で検出するための実行時効率が非常に求められる。
【００１６】
事業店舗を検出することは、画像から利用可能な事業リスティングを抽出するために、複数のステップからなるプロセスの中でまず最も重要なステップである。店舗を正確に検出することによって、店舗の地理位置特定、テキストのOCR、事業名および他の属性の抽出、カテゴリ分類などの、さらなる下流処理が可能になる。
【００１７】
画像内の事業店舗を検出するために、畳み込みニューラルネットワークが使用されてもよい。畳み込みネットワークは、結合されたパラメータを有するノードのセットを含むニューラルネットワークである。利用可能なトレーニングデータのサイズおよび計算能力の可用性の増加を、区分的線形ユニットおよびドロップアウトトレーニングなどのアルゴリズム進歩と組み合わせることによって、多くのコンピュータビジョンタスクの大幅な改善がもたらされる。多くのタスクのために今日利用できるような巨大なデータセットでは、過学習(overfitting)は問題ではなく、ネットワークのサイズの増加によって、テストの精度が向上する。コンピューティングリソースの最適な使用が制限要因になる。この目的のために、ディープニューラルネットワークの分散されたスケーラブルな実装形態が使用されてもよい。
【００１８】
従来、オブジェクト検出は、画像内の関心のあるオブジェクトを徹底的に検索することによって行われる。そのような手法は、その位置におけるオブジェクトの存在に対応する確率マップを生成する。次いで、非最大抑制または平均シフトベースの手法のいずれかによるこの確率マップの後処理により、離散的な検出結果を生成する。徹底的な検索の計算上の複雑さに対抗するために、いくつかの提案を生成するために画像セグメンテーション技法を使用する選択的検索は、検索するパラメータの数を大幅に削減する場合がある。
【００１９】
本明細書で開示される技術は、最終的な検出スコアを割り当てるためにディープニューラルネットワークを使用し、ピクセルから離散バウンディングボックスまでの完全に学習された手法を採用する。エンドツーエンドで学習された手法は、多数の提案と信頼を同時に予測するために、単一のネットワークを使用して提案生成と後処理を統合するという利点がある。この手法の信頼出力だけに依存することによって高品質の結果を生成してもよいが、最も信頼性の高い提案に対して特別な専用事後分類器ネットワークを実行することによって精度をさらに押し上げてもよい。この追加分の事後分類段階を用いても、この技術は前世代よりも数桁も高速になり得る。
【００２０】
ディープニューラルネットワークをトレーニングするために、トレーニング画像のセットおよび1つまたは複数の事業店舗位置を識別するデータが使用されてもよい。トレーニング画像を使用することによって、ディープニューラルネットワークは、第1の複数のバウンディングボックスを各自の信頼スコアとともに出力してもよい。各バウンディングボックスの信頼スコアは、バウンディングボックスが事業店舗の画像を含む可能性を表してもよい。各バウンディングボックスは、事業店舗位置とマッチングされてもよい。トレーニングにおいて、マルチクロップ評価(multi-crop evaluation)とも呼ばれる粗いスライディングウィンドウを使用してトレーニング画像が評価されてもよい。ディープニューラルネットワークをさらにトレーニングするために、マルチクロップ評価の結果を改良するために事後分類が適用されてもよい。事後分類は、所与のバウンディングボックスが事業店舗を含む確率を計算することを含んでもよい。
【００２１】
トレーニングされたディープニューラルネットワークは、評価されるべき画像を受信してもよい。画像の特徴は、マルチクロップ評価および事後分類を使用して識別および評価されてもよい。評価に基づいて、ディープニューラルネットワークは、可能な事業店舗位置を識別する第2の複数のバウンディングボックスを生成してもよく、各バウンディングボックスは、1つの事業店舗のみの画像を含んでもよい。
【００２２】
例示的なシステム
図1および図2は、上述した特徴が実装されることが可能な例示的なシステム100を含む。これは、本開示の範囲、または本明細書に記載された特徴の有用性を限定するものとみなされるべきではない。この例では、システム100は、1つまたは複数のコンピューティングデバイス110、120、130、および140ならびにストレージシステム150を含むことができる。コンピューティングデバイス110の各々は、1つまたは複数のプロセッサ112、メモリ114、および典型的には汎用コンピューティングデバイスに存在する他の構成要素を含むことができる。コンピューティングデバイス110のメモリ114は、1つまたは複数のプロセッサ112によって実行可能な命令116を含む、1つまたは複数のプロセッサ112によってアクセス可能な情報を記憶することができる。
【００２３】
メモリ114はまた、プロセッサによって取り出され、操作され、または記憶され得るデータ118を含むことができる。データは画像を含んでもよい。画像は、パノラマ画像でもよく、視野が180度よりも大きい、たとえば最大で360度の画像でもよい。さらに、パノラマ画像は、球形またはほぼ球形であってもよい。画像は、各画像内の各事業店舗の位置に関する情報に関連付けられた様々な事業店舗を表してもよい。この情報は、単一の事業店舗を表すピクセルの範囲を特定することができ、たとえば、いくつかの画像は、各事業店舗がある画像上に位置するバウンディングボックスを含んでもよい。これらの画像のいくつかは、トレーニング画像として識別されてもよい。事業店舗の位置に関する情報に関連付けられていない他の画像もまた、メモリに記憶されてもよい。データはまた、各事業店舗の地理位置特定を含んでもよい。メモリは、ハードドライブ、メモリカード、ROM、RAM、DVD、CD-ROM、書込み可能メモリ、および読出し専用メモリなどの、プロセッサによってアクセス可能な情報を記憶することができる任意の非一時的なタイプのものであり得る。
【００２４】
命令116は、1つまたは複数のプロセッサによって、機械コードなどの直接実行される、またはスクリプトなどの間接的に実行される命令の任意のセットであり得る。これに関して、「命令」、「アプリケーション」、「ステップ」、および「プログラム」という用語は、本明細書では交換可能に使用され得る。命令は、プロセッサによる直接処理のためのオブジェクトコード形式で、あるいは要求に応じて解釈されるか、または事前にコンパイルされた、スクリプトまたは独立したソースコードモジュールの集合を含む任意の他のコンピューティングデバイス言語で記憶されてもよい。命令は、コンピューティングデバイス110などの1つまたは複数のコンピューティングデバイスにディープニューラルネットワークとして動作させる命令を含んでもよい。命令の機能、方法、およびルーチンについては、以下でより詳細に説明する。
【００２５】
データ118は、命令116に従って、1つまたは複数のプロセッサ112によって取り出され、記憶され、または変更され得る。たとえば、本明細書に記載される主題は、任意の特定のデータ構造によって制限されないが、データは、コンピュータレジスタに、多くの異なるフィールドおよびレコード、またはXML文書を有するテーブルとしてリレーショナルデータベースに記憶され得る。データはまた、これに限定されないが、バイナリ値、ASCII、またはユニコードなどの、任意のコンピューティングデバイスで読取り可能なフォーマットでフォーマットされ得る。さらに、データは、数字、記述テキスト、専用コード、ポインタ、他のネットワーク位置などの他のメモリに記憶されたデータへの参照、または関連データを計算するための機能によって使用される情報などの関連情報を識別するために十分な任意の情報を備えることができる。
【００２６】
1つまたは複数のプロセッサ112は、市販のCPUなどの任意の従来のプロセッサであり得る。あるいは、プロセッサは、特定用途向け集積回路("ASIC")または他のハードウェアベースのプロセッサなどの専用コンポーネントであり得る。必須ではないが、コンピューティングデバイス110の1つまたは複数は、ビデオの復号、ビデオフレームと画像とのマッチング、ビデオの変形、変形されたビデオの符号化などの、特定のコンピューティングプロセスをより速くまたはより効率的に実行するための特化したハードウェアコンポーネントを含んでもよい。
【００２７】
図1は、コンピューティングデバイス110のプロセッサ、メモリ、および他の要素を同じブロック内にあるものとして機能的に示すが、プロセッサ、コンピュータ、コンピューティングデバイス、またはメモリは、実際には、同一の物理的な筐体内に収容されてもされなくてもよい、複数のプロセッサ、コンピュータ、コンピューティングデバイス、またはメモリを備えることができる。たとえば、メモリは、コンピューティングデバイス110の筐体とは異なる筐体に配置されたハードドライブでもよく、他の記憶媒体でもよい。したがって、プロセッサ、コンピュータ、コンピューティングデバイス、またはメモリへの参照は、並行して動作しても動作しなくてもよいプロセッサ、コンピュータ、コンピューティングデバイス、またはメモリの集合への参照を含むと理解される。たとえば、コンピューティングデバイス110は、負荷分散サーバファームとして動作するサーバコンピューティングデバイスを含んでもよい。さらに、以下で説明されるいくつかの機能は、単一のプロセッサを有する単一のコンピューティングデバイス上で行われるように示されているが、本明細書に記載される主題の様々な態様は、たとえばネットワーク160を介して情報を通信する、複数のコンピューティングデバイスによって実装され得る。
【００２８】
コンピューティングデバイス110の各々は、ネットワーク160の異なるノードにあってよく、ネットワーク160の他のノードと直接的かつ間接的に通信することができる。図1〜図2にはいくつかのコンピューティングデバイスしか示されていないが、典型的なシステムは多数の接続されたコンピューティングデバイスを含むことができ、異なるコンピューティングデバイスのそれぞれはネットワーク160の異なるノードにあることが理解されるべきである。ネットワーク160は、モデルの複数の層を使用するディープニューラルネットワークであってもよく、下位層の出力は、より高いレベルの層の出力を構築するために使用される。本明細書で説明するネットワーク160および介在ノードは、ネットワークがインターネット、ワールドワイドウェブ、特定のイントラネット、ワイドエリアネットワーク、またはローカルネットワークの一部となり得るように、様々なプロトコルおよびシステムを使用して相互接続することができる。ネットワークは、イーサネット(登録商標)、WiFi、およびHTTPなどの標準通信プロトコル、1つまたは複数の企業に独占的であるプロトコル、ならびに前述の様々な組合せを利用することができる。上述のように情報が送信または受信されるときにある種の利点が取得されるが、本明細書に記載される主題の他の態様は、情報の任意の特定の送信方法に限定されない。
【００２９】
一例として、コンピューティングデバイス110の各々は、ネットワークを介してストレージシステム150ならびにコンピューティングデバイス120、130、および140と通信することができるウェブサーバを含んでもよい。たとえば、サーバコンピューティングデバイス110の1つまたは複数は、コンピューティングデバイス120、130、または140のディスプレイ122、132、または142などのディスプレイ上でユーザ220、230、または240などのユーザに情報を送信および提示するために、ネットワーク160を使用してもよい。これに関して、コンピューティングデバイス120、130、および140はクライアントコンピューティングデバイスとみなされてもよく、本明細書に記載された機能のすべてまたは一部を実行してもよい。
【００３０】
クライアントコンピューティングデバイスの各々は、上述の1つまたは複数のプロセッサ、メモリ、および命令を備えるサーバコンピューティングデバイス110と同様に構成されてもよい。各クライアントコンピューティングデバイス120、130、または140は、ユーザ220、230、240による使用を意図したパーソナルコンピューティングデバイスであってもよく、中央処理装置(CPU)、データおよび命令を記憶するメモリ(たとえば、RAMおよび内部ハードドライブ)、ディスプレイ122、132、または142などのディスプレイ(たとえば、スクリーン、タッチスクリーン、プロジェクタ、テレビ、または情報を表示するように動作可能な他のデバイスを有するモニタ)、およびユーザ入力デバイス124(たとえば、マウス、キーボード、タッチスクリーン、またはマイクロフォン)などのパーソナルコンピューティングデバイスに関連して通常使用されるすべての構成要素を有する。クライアントコンピューティングデバイスはまた、静止画像をキャプチャするため、またはビデオストリームを録画するためのカメラ126、スピーカ、ネットワークインタフェースデバイス、およびこれらの要素を互いに接続するために使用されるすべての構成要素を含んでもよい。
【００３１】
クライアントコンピューティングデバイス120、130、および140はそれぞれ、フルサイズのパーソナルコンピューティングデバイスを備えてもよいが、それらは、代わりにインターネットなどのネットワークを介してサーバとデータをワイヤレスに交換できるモバイルコンピューティングデバイスを備えてもよい。ほんの一例として、クライアントコンピューティングデバイス120は、モバイル電話でもよく、インターネットを介して情報を取得することができるワイヤレス対応のPDA、タブレットPC、またはネットブックなどのデバイスでもよい。別の例では、クライアントコンピューティングデバイス130は、ヘッドマウントコンピューティングシステムであってもよい。一例として、ユーザは、小型のキーボード、キーパッド、マイクロフォンを使用して、カメラによる視覚信号を使用して、またはタッチスクリーンを使用して情報を入力してもよい。
【００３２】
メモリ114と同様に、ストレージシステム150は、ハードドライブ、メモリカード、ROM、RAM、DVD、CD-ROM、書込み可能メモリ、および読出し専用メモリなどのサーバコンピューティングデバイス110によってアクセス可能な情報を記憶することができる、任意のタイプのコンピュータ化されたストレージであり得る。さらに、ストレージシステム150は、データが同じまたは異なる地理的位置に物理的に配置されてもよい複数の異なるストレージデバイスに記憶される分散ストレージシステムを含んでもよい。ストレージシステム150は、図1に示されるようにネットワーク160を介してコンピューティングデバイスに接続されてもよく、および/またはコンピューティングデバイス110〜140(図示せず)のいずれかのメモリに直接接続されてもよく、それに組み込まれてもよい。
【００３３】
ストレージシステム150はまた、画像を記憶してもよい。これらの画像は、とりわけ1つまたは複数の事業店舗を表すパノラマ画像、または、視野が180度よりも大きい、たとえば最大で360度の画像などの様々なタイプの画像を含んでもよい。いくつかの例では、所与の画像は、その所与の画像内の各事業店舗の位置を識別する店舗情報と関連付けられてもよい。たとえば、所与の画像の店舗情報は、所与の画像内の1つまたは複数の事業店舗の形状に対応する1つまたは複数の店舗および/または画像座標に対応する、所与の画像内の画素の範囲を含んでもよい。一例として、店舗情報は、画像内の各事業店舗位置に対応するバウンディングボックスによって表されてもよい。以下に説明するように、画像のうちの少なくともいくつかはトレーニング画像として識別されてもよい。ストレージシステム150はまた、いくつかの事業店舗の地理位置情報、または地理的位置に関する情報を含んでもよい。
【００３４】
例示的な方法
図3に示されるように、ディープニューラルネットワーク310は、トレーニング画像320のセットを使用することによってトレーニングされてもよい。これらのトレーニング画像320は、トレーニング画像のセット内の1つまたは複数の事業店舗位置を識別する店舗情報330に関連付けられるストレージシステム150の画像を含んでもよい。上述したように、店舗情報は、関連付けられた画像内に位置する1つまたは複数の事業店舗を表す画像の画素の範囲であってもよい。
【００３５】
トレーニング画像内の事業店舗の位置のための事業店舗位置データを使用してトレーニング画像を評価するために、ディープニューラルネットワーク310が使用されてもよい。ディープニューラルネットワークを使用する画像に、マルチクロップ評価とも呼ばれる粗いスライディングウィンドウが適用されてもよい。各ウィンドウの位置は、画像の「クロップ」と見なされてもよい。高密度スライディングウィンドウ手法と比較して、粗いスライディングウィンドウの手法は、スライディングウィンドウの数を数桁減少させる。たとえば、粗いスライディングウィンドウは、高密度スライディングウィンドウが使用する可能性が高い30万個のウィンドウの代わりに、360度の全パノラマ画像について100個のウィンドウを評価してもよい。単一のクロップ評価もうまくいくかもしれないが、高解像度のパノラマ画像では、単一のパノラマ画像の低解像度バージョンからより小さい店舗を確実に検出することはできない。したがって、粗いスライディングウィンドウを使用することによって、実際に店舗の検出品質を高めることができる。
【００３６】
ディープニューラルネットワーク310のトレーニング中に、画像上に重ね合わされた第1の複数のバウンディングボックス340が識別されてもよい。バウンディングボックスは、画像内の画像の一部を識別する画像上の長方形であってもよい。バウンディングボックスはまた、任意の他の多角形または形状であってもよい。各バウンディングボックスの形状およびサイズは、各事業店舗位置の形状に依存してもよい。
【００３７】
各バウンディングボックス340は、各画像に関連付けられたデータに基づいて、事業店舗位置とマッチングされてもよい。画像内で互いに直接隣接する事業店舗位置が別々のバウンディングボックスによって定義されるように、1つの事業店舗位置のみが単一のバウンディングボックスに囲まれてもよい。マッチングは、事業店舗位置と所与のバウンディングボックスとの間のエッジ重みがボックスの重なりの量に関連する、最大の重み付けマッチングを含んでもよい。たとえば、エッジ重みは、交差点のサイズを所与のバウンディングボックスと事業店舗位置との和集合のサイズで割ったものとして定義されるジャカード類似度係数であってもよい。
【００３８】
ディープニューラルネットワークによって評価されるトレーニング画像のセットについて、第1の複数のバウンディングボックスの各バウンディングボックスの座標を決定するために、ディープニューラルネットワークが使用されてもよい。座標は、事業店舗位置に対応する画像座標などの画像座標であってもよい。画像座標は、画像自体に対する座標系を使用してバウンディングボックスの位置を定義してもよく、または緯度/経度座標または任意の他の地理位置特定座標であってもよい。
【００３９】
信頼スコア350は、バウンディングボックス340ごとに計算されてもよい。第1の複数のバウンディングボックスの各バウンディングボックスの信頼スコア350は、バウンディングボックスが事業店舗の画像を含む可能性を表してもよい。
【００４０】
トレーニング画像を評価するとき、バウンディングボックスは特定の状況下では除去されてもよい。たとえば、設定されたしきい値未満の信頼スコアを有するバウンディングボックスが除去されてもよい。さらに、画像のクロップのエッジのうちの1つに隣接するバウンディングボックスは、クロップのエッジも画像のエッジでない限り、除去されてもよい。こうすることで、オブジェクトを完全には含まないバウンディングボックスを除去することができ、事業店舗の検出がより正確になる。さらに、任意の所与のクロップからの所与の距離よりも大きい任意のバウンディングボックスも同様に除去されてもよい。
【００４１】
ディープニューラルネットワーク310はまた、事後分類によってトレーニングされてもよい。事後分類の準備時に、ディープニューラルネットワークの受容野にアフィン変換が適用されてもよい。事後分類では、結果を絞り込むために、複数のクロップ評価から特定された第1の複数のバウンディングボックスがさらに分類される。言い換えれば、各バウンディングボックスが事業店舗位置を含む信頼度を高めるために、別の分類器が結果に適用される。たとえば、第2の信頼スコアがバウンディングボックスごとに計算されてもよい。所与のバウンディングボックスが事業店舗を含む確率は、計算された信頼スコアに基づいて計算されてもよい。この確率は、ディープニューラルネットワークにおける各バウンディングボックスの信頼スコアの積と、事後分類における各バウンディングボックスの信頼スコアとを合計することによって計算されてもよい。あるいは、確率は、ディープニューラルネットワークにおける信頼スコアと、所定のバウンディングボックスに対する事後分類とを乗算することによって計算されてもよい。
【００４２】
確率は、設定されたしきい値よりも低い確率に関連付けられたバウンディングボックスを除去することによって、第1の複数のバウンディングボックスをフィルタリングするために使用されてもよい。また、この確率は、バウンディングボックスをランク付けするために使用されてもよい。第1の複数のバウンディングボックスは、ランク付けに基づいてフィルタリングされてもよい。たとえば、設定された数より下にランク付けされたバウンディングボックスは、除去されてもよい。
【００４３】
トレーニングされている間に、ディープニューラルネットワークは、それぞれの信頼スコア350を有するトレーニング画像上に第1の複数のバウンディングボックス340を出力してもよい。バウンディングボックスごとに決定された座標および事後分類によって計算された確率が、ネットワークの出力に含まれてもよい。この情報は、後の使用のためにストレージシステム150に記憶されてもよい。
【００４４】
トレーニングされた後、ディープニューラルネットワーク310は、図4に示されるように、1つまたは複数の画像420を評価してもよい。トレーニング画像320と同様に、画像420もストレージシステム150に記憶されてもよい。しかしながら、トレーニング画像とは異なり、画像420は、画像内の事業店舗位置を識別するデータと関連付けられていなくてもよい。画像420は、パノラマ画像でもよく、視野が180度よりも大きい、たとえば最大で360度の画像でもよい。さらに、パノラマ画像は、球形またはほぼ球形であってもよい。パノラマにおける検出は、結果として視野がより小さい画像が生じ得るリコールの損失を回避する。ディープニューラルネットワーク310を使用することによって、画像420は、画像の特徴を識別するために評価されてもよい。トレーニングに関して上述したように、評価は、マルチクロップ評価および事後分類を含んでもよい。
【００４５】
評価に基づいて、ディープニューラルネットワーク310は、図4に示されるように、画像内の可能な事業店舗位置を識別する第2の複数のバウンディングボックス440を生成してもよい。各バウンディングボックス440は、1つの事業店舗のみの画像を含んでもよい。したがって、隣接する事業店舗の行は、行内の各事業店舗を囲む複数のバウンディングボックスによってセグメント化されてもよい。さらに、各バウンディングボックス440は、各バウンディングボックスが事業店舗の画像を含む可能性を表す信頼スコア450と関連付けられてもよい。
【００４６】
図5に示されるように、画像510は、ディープニューラルネットワーク310によって評価されてもよい。その結果、ディープニューラルネットワーク310は、522、524、526、および528を含む複数のバウンディングボックスを識別してもよく、それぞれが個々の事業店舗の画像を含む。画像524、526、および528は、隣接する事業店舗を個々の店舗として識別する。
【００４７】
いくつかの例では、第2の複数のバウンディングボックス440は、設定されたしきい値未満の信頼スコアを有するバウンディングボックスを除去することによってフィルタリングされてもよい。追加的または代替的に、同じまたは類似の地理位置(または、言い換えれば、同じ事業店舗)に関連付けられた複数の画像にあるバウンディングボックスがマージされてもよい。これらのバウンディングボックスをマージすることは、偽陽性であるオブジェクトを除去することを含んでもよい。偽陽性の例は、事業店舗の前に一時的に停車している車両である。次いで、フィルタリングされたバウンディングボックスは、評価された画像と関連付けられ、後の使用のためにストレージシステム150に記憶されてもよい。
【００４８】
各バウンディングボックス440内の事業情報が検出されてもよい。光学的文字認識などの情報抽出の既知の方法が使用されてもよい。検出された事業情報は、名前、単語、ロゴ、商品、または特定のバウンディングボックス内で視認できるその他のアイテムを含んでもよい。次いで、その事業情報が事業情報のデータベースに追加されてもよい。データベースは、後の使用のためにストレージシステム150に記憶されてもよい。
【００４９】
ユーザ220、230、240は、コンピューティングデバイス120、130、140を使用して事業情報を要求してもよい。ユーザ要求に応答して、事業情報は、ストレージシステム150内のデータベースからコンピューティングデバイス110によって取り出され、コンピューティングデバイス120、130、140に送信されてもよい。
【００５０】
図6は、ディープニューラルネットワーク310において実行されてもよい、上述した態様のうちのいくつかによる例示的な流れ図600である。しかしながら、説明された特徴は、異なる構成を有する様々なシステムのいずれによって実装されてもよい。さらに、本方法に含まれる動作は、記載された正確な順序で実行される必要はない。むしろ、様々な動作が異なる順序でまたは同時に処理されてもよく、動作が追加または省略されてもよい。
【００５１】
ブロック610において、トレーニング画像のセットおよびトレーニング画像内の1つまたは複数の事業店舗位置を識別するデータを使用して、ディープニューラルネットワークがトレーニングされてもよい。ブロック620において、ディープニューラルネットワークにおいて第1の画像が受信されてもよい。第1の画像は、ブロック630においてディープニューラルネットワークによって評価されてもよい。ブロック640において、第1の画像内の事業店舗位置を識別する2つ以上のバウンディングボックスのセットが生成されてもよい。
【００５２】
上述の機能を使用すると、他の方法を使用しては達成できない速度および精度で、画像の大きいデータベース内の店舗を識別することができる。具体的には、この機能によって、さらなる分析および/または処理を必要とするヒートマップや確率マップなどの中間出力を使用することなしに、バウンディングボックスが分析の直接出力となることができる。さらに、この機能によって、隣接する事業店舗が、1つの店舗として識別される代わりに適切にセグメント化されるようになる。店舗の画像の周りにバウンディングボックスを生成するために選択的検索を使用することと比較して、上述の方法を使用するための計算コストははるかに低く、速度ははるかに速い。上述の方法を使用することは、ヒートマップを有意義なバウンディングボックスに変換するために広範な後処理を必要とし、ラベルノイズの影響を受けやすい、トレーニングされたヒートマップ手法を使用することよりも、効率が良い場合がある。ディープ畳み込みニューラルネットワークをトレーニングし、使用する、記載された方法は、正確な結果を生成しながら作り出すために相当の労力を要するであろうものを自動化する。バウンディングボックスが生成された後、利用可能な事業リスティング、より正確な店舗の地理位置、および画像内で利用可能なより多くの情報を自動的に抽出するために、画像が使用されてもよい。
【００５３】
本明細書における発明は、特定の実施形態を参照して説明されたが、これらの実施形態は、本発明の原理および用途の単なる例示であることを理解されたい。したがって、例示的な実施形態に対して多くの変更が行われてもよく、添付の特許請求の範囲によって定義される本発明の趣旨および範囲から逸脱することなしに他の構成が考案されてもよいことを理解されたい。
【符号の説明】
【００５４】
100  システム
110  コンピューティングデバイス、サーバコンピューティングデバイス
112  プロセッサ
114  メモリ
116  命令
118  データ
120  コンピューティングデバイス、クライアントコンピューティングデバイス
122  ディスプレイ
124  ユーザ入力デバイス
126  カメラ
130  コンピューティングデバイス、クライアントコンピューティングデバイス
132  ディスプレイ
140  コンピューティングデバイス
142  ディスプレイ
150  ストレージシステム
160  ネットワーク
220  ユーザ
230  ユーザ
240  ユーザ
310  ディープニューラルネットワーク
320  トレーニング画像
330  事業店舗位置、データ
340  バウンディングボックス
350  信頼スコア
420  画像
440  バウンディングボックス
450  信頼スコア
510  画像
522  バウンディングボックス
524  バウンディングボックス
526  バウンディングボックス
528  バウンディングボックス
600  流れ図
【図１】
0006397144.tif 000002
【図２】
0006397144.tif 000003
【図３】
0006397144.tif 000004
【図４】
0006397144.tif 000005
【図５】
0006397144.tif 000006
【図６】
0006397144.tif 000007