IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マジック リープ, インコーポレイテッドの特許一覧

特許7657828階層正規化がかけられる画像記述子ネットワーク
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-28
(45)【発行日】2025-04-07
(54)【発明の名称】階層正規化がかけられる画像記述子ネットワーク
(51)【国際特許分類】
   G06V 10/771 20220101AFI20250331BHJP
   G06F 16/56 20190101ALI20250331BHJP
【FI】
G06V10/771
G06F16/56
【請求項の数】 20
(21)【出願番号】P 2022566064
(86)(22)【出願日】2021-04-27
(65)【公表番号】
(43)【公表日】2023-06-08
(86)【国際出願番号】 US2021029496
(87)【国際公開番号】W WO2021222325
(87)【国際公開日】2021-11-04
【審査請求日】2024-04-24
(31)【優先権主張番号】63/019,211
(32)【優先日】2020-05-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】514108838
【氏名又は名称】マジック リープ, インコーポレイテッド
【氏名又は名称原語表記】Magic Leap,Inc.
【住所又は居所原語表記】7500 W SUNRISE BLVD,PLANTATION,FL 33322 USA
(74)【代理人】
【識別番号】100104824
【弁理士】
【氏名又は名称】穐場 仁
(74)【代理人】
【識別番号】100121463
【弁理士】
【氏名又は名称】矢口 哲也
(74)【代理人】
【識別番号】100137969
【弁理士】
【氏名又は名称】岡部 憲昭
(72)【発明者】
【氏名】サトウ, コウイチ
【審査官】岡本 俊威
(56)【参考文献】
【文献】国際公開第2015/118887(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06V 10/70-10/771
G06F 16/50-16/56
(57)【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
第1の画像を受信することと、
前記第1の画像を記述子ネットワークに入力として提供することと、
前記記述子ネットワークを使用して、前記第1の画像に基づいて、第1の画像記述子を生成することであって、前記第1の画像記述子は、
要素の第1のセットの第1のサブセットを備える第1の主ベクトルと、
前記要素の第1のセットの第2のサブセットを備える第1の副ベクトルであって、前記要素の第1のセットの第2のサブセットは、前記要素の第1のセットの第1のサブセットより多くの要素を含む、第1の副ベクトルと
の間に分散される要素の第1のセットを含む、ことと、
前記第1の主ベクトルを主正規化量に正規化することと、
前記第1の副ベクトルを副正規化量に正規化することであって、前記副正規化量は、前記主正規化量未満である、ことと
によって、階層正規化を前記第1の画像記述子にかけることと
を含む、コンピュータ実装方法。
【請求項2】
第2の画像を受信することと、
前記第2の画像を前記記述子ネットワークに入力として提供することと、
前記記述子ネットワークを使用して、前記第2の画像に基づいて、第2の画像記述子を生成することであって、前記第2の画像記述子は、
要素の第2のセットの第1のサブセットを備える第2の主ベクトルと、
前記要素の第2のセットの第2のサブセットを備える第2の副ベクトルであって、前記要素の第2のセットの第2のサブセットは、前記要素の第2のセットの第1のサブセットより多くの要素を含む、第2の副ベクトルと
の間に分散される要素の第2のセットを含む、ことと、
前記第2の主ベクトルを前記主正規化量に正規化することと、
前記第2の副ベクトルを前記副正規化量に正規化することと
によって、前記階層正規化を前記第2の画像記述子にかけることと
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記第1の主ベクトルおよび前記第2の主ベクトルに基づいて、前記第1の画像と前記第2の画像との間の主距離を算出することと、
前記主距離が上限閾値を上回るかどうかを決定することと
によって、前記第1の画像が前記第2の画像にマッチングするかどうかを決定すること
をさらに含む、請求項2に記載のコンピュータ実装方法。
【請求項4】
前記第1の画像が前記第2の画像にマッチングするかどうかを決定することはさらに、
前記主距離が前記上限閾値を上回ることを決定することと、
前記第1の画像が前記第2の画像にマッチングしないことを決定することと
を含む、請求項3に記載のコンピュータ実装方法。
【請求項5】
前記第1の画像が前記第2の画像にマッチングするかどうかを決定することはさらに、
前記主距離が前記上限閾値を上回らないことを決定することと、
前記主距離が下限閾値を上回るかどうかを決定することと
を含む、請求項3に記載のコンピュータ実装方法。
【請求項6】
前記第1の主ベクトルおよび前記第2の主ベクトルに基づいて、前記第1の画像と前記第2の画像との間の主距離を算出することは、
前記要素の第1のセットの第1のサブセットと前記要素の第2のセットの第1のサブセットとの間の差異の2乗の和を算出すること
を含む、請求項3に記載のコンピュータ実装方法。
【請求項7】
前記第1の画像が前記第2の画像にマッチングするかどうかを決定することはさらに、
前記主距離が前記下限閾値を上回ることを決定することと、
前記第1の副ベクトルおよび前記第2の副ベクトルに基づいて、前記第1の画像と前記第2の画像との間の副距離を算出することと、
前記主距離および前記副距離の和が前記上限閾値を上回るかどうかを決定することと
を含む、請求項5に記載のコンピュータ実装方法。
【請求項8】
前記第1の画像が前記第2の画像にマッチングするかどうかを決定することはさらに、
前記主距離および前記副距離の和が前記上限閾値を上回ることを決定することと、
前記第1の画像が前記第2の画像にマッチングしないことを決定することと
を含む、請求項7に記載のコンピュータ実装方法。
【請求項9】
前記第1の画像が前記第2の画像にマッチングするかどうかを決定することはさらに、
前記主距離および前記副距離の和が前記上限閾値を上回らないことを決定することと、
前記第1の画像が前記第2の画像にマッチングすることを決定することと
を含む、請求項7に記載のコンピュータ実装方法。
【請求項10】
前記第1の副ベクトルおよび前記第2の副ベクトルに基づいて、前記第1の画像と前記第2の画像との間の副距離を算出することは、
前記要素の第1のセットの第2のサブセットと前記要素の第2のセットの第2のサブセットとの間の差異の2乗の和を算出すること
を含む、請求項7に記載のコンピュータ実装方法。
【請求項11】
前記主正規化量は、1-αに等しく、
前記副正規化量は、αに等しく、αは、0.5未満である、
請求項1に記載のコンピュータ実装方法。
【請求項12】
前記記述子ネットワークは、訓練プロセスを通して修正可能である加重のセットを有するニューラルネットワークである、請求項1に記載のコンピュータ実装方法。
【請求項13】
システムであって、
1つまたはそれを上回るプロセッサと、
コンピュータ可読媒体であって、前記コンピュータ可読媒体は、命令を記憶しており、前記命令は、前記1つまたはそれを上回るプロセッサによって実行されると、前記1つまたはそれを上回るプロセッサに、
第1の画像を受信することと、
前記第1の画像を記述子ネットワークに入力として提供することと、
前記記述子ネットワークを使用して、前記第1の画像に基づいて、第1の画像記述子を生成することであって、前記第1の画像記述子は、
要素の第1のセットの第1のサブセットを備える第1の主ベクトルと、
前記要素の第1のセットの第2のサブセットを備える第1の副ベクトルであって、前記要素の第1のセットの第2のサブセットは、前記要素の第1のセットの第1のサブセットより多くの要素を含む、第1の副ベクトルと
の間に分散される要素の第1のセットを含む、ことと、
前記第1の主ベクトルを主正規化量に正規化することと、
前記第1の副ベクトルを副正規化量に正規化することであって、前記副正規化量は、前記主正規化量未満である、ことと
によって、階層正規化を前記第1の画像記述子にかけることと
を含む動作を実施させる、コンピュータ可読媒体と
を備える、システム。
【請求項14】
前記動作はさらに、
第2の画像を受信することと、
前記第2の画像を前記記述子ネットワークに入力として提供することと、
前記記述子ネットワークを使用して、前記第2の画像に基づいて、第2の画像記述子を生成することであって、前記第2の画像記述子は、
要素の第2のセットの第1のサブセットを備える第2の主ベクトルと、
前記要素の第2のセットの第2のサブセットを備える第2の副ベクトルであって、前記要素の第2のセットの第2のサブセットは、前記要素の第2のセットの第1のサブセットより多くの要素を含む、第2の副ベクトルと
の間に分散される要素の第2のセットを含む、ことと、
前記第2の主ベクトルを前記主正規化量に正規化することと、
前記第2の副ベクトルを前記副正規化量に正規化することと
によって、前記階層正規化を前記第2の画像記述子にかけることと
を含む、請求項13に記載のシステム。
【請求項15】
前記動作はさらに、
前記第1の主ベクトルおよび前記第2の主ベクトルに基づいて、前記第1の画像と前記第2の画像との間の主距離を算出することと、
前記主距離が上限閾値を上回るかどうかを決定することと
によって、前記第1の画像が前記第2の画像にマッチングするかどうかを決定すること
を含む、請求項14に記載のシステム。
【請求項16】
前記第1の画像が前記第2の画像にマッチングするかどうかを決定することはさらに、
前記主距離が前記上限閾値を上回ることを決定することと、
前記第1の画像が前記第2の画像にマッチングしないことを決定することと
を含む、請求項15に記載のシステム。
【請求項17】
前記第1の画像が前記第2の画像にマッチングするかどうかを決定することはさらに、
前記主距離が前記上限閾値を上回らないことを決定することと、
前記主距離が下限閾値を上回るかどうかを決定することと
を含む、請求項15に記載のシステム。
【請求項18】
非一過性機械可読媒体であって、前記非一過性機械可読媒体は、命令を備え、前記命令は、1つまたはそれを上回るプロセッサによって実行されると、前記1つまたはそれを上回るプロセッサに、
第1の画像を受信することと、
前記第1の画像を記述子ネットワークに入力として提供することと、
前記記述子ネットワークを使用して、前記第1の画像に基づいて、第1の画像記述子を生成することであって、前記第1の画像記述子は、
要素の第1のセットの第1のサブセットを備える第1の主ベクトルと、
前記要素の第1のセットの第2のサブセットを備える第1の副ベクトルであって、前記要素の第1のセットの第2のサブセットは、前記要素の第1のセットの第1のサブセットより多くの要素を含む、第1の副ベクトルと
の間に分散される要素の第1のセットを含む、ことと、
前記第1の主ベクトルを主正規化量に正規化することと、
前記第1の副ベクトルを副正規化量に正規化することであって、前記副正規化量は、前記主正規化量未満である、ことと
によって、階層正規化を前記第1の画像記述子にかけることと
を含む動作を実施させる、非一過性機械可読媒体。
【請求項19】
前記動作はさらに、
第2の画像を受信することと、
前記第2の画像を前記記述子ネットワークに入力として提供することと、
前記記述子ネットワークを使用して、前記第2の画像に基づいて、第2の画像記述子を生成することであって、前記第2の画像記述子は、
要素の第2のセットの第1のサブセットを備える第2の主ベクトルと、
前記要素の第2のセットの第2のサブセットを備える第2の副ベクトルであって、前記要素の第2のセットの第2のサブセットは、前記要素の第2のセットの第1のサブセットより多くの要素を含む、第2の副ベクトルと
の間に分散される要素の第2のセットを含む、ことと、
前記第2の主ベクトルを前記主正規化量に正規化することと、
前記第2の副ベクトルを前記副正規化量に正規化することと
によって、前記階層正規化を前記第2の画像記述子にかけることと
を含む、請求項18に記載の非一過性機械可読媒体。
【請求項20】
前記動作はさらに、
前記第1の主ベクトルおよび前記第2の主ベクトルに基づいて、前記第1の画像と前記第2の画像との間の主距離を算出することと、
前記主距離が上限閾値を上回るかどうかを決定することと
によって、前記第1の画像が前記第2の画像にマッチングするかどうかを決定すること
を含む、請求項19に記載の非一過性機械可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、その全内容が、あらゆる目的のために、参照することによって本明細書に組み込まれる、2020年5月1日に出願され、「IMAGE DESCRIPTOR NETWORK WITH IMPOSED HIERARCHICAL NORMALIZATION」と題された、米国仮特許出願第63/019,211号の優先権の利益を主張する。
【背景技術】
【0002】
画像処理では、「画像記述子」とも称される、画像の記述子は、可能性の中でもとりわけ、その色、形状、テクスチャ、運動を含む、画像の視覚的特徴の記述である。画像記述子およびそれらを生産するアルゴリズムは、コンピュータビジョンにおいて、いくつかの用途を有する。例えば、画像記述子は、例えば、画像毎に画像記述子を生成し、2つの記述子間の距離または差異を算出することによって、2つの画像間の類似性を決定するためのロバストな手段を提供する。
【発明の概要】
【課題を解決するための手段】
【0003】
本開示は、概して、画像の画像記述子を生成するための技法に関する。より具体的には、本開示の実施形態は、記述子ネットワークを訓練および使用して、主および副ベクトルを有する、画像記述子を正確に生成するための技法を提供する。
【0004】
本発明の種々の実施形態の説明が、実施例の一覧として、下記に提供される。下記に使用されるように、一連の実施例への任意の言及は、それらの実施例のそれぞれへの離接的な言及として理解されるものである(例えば、「実施例1-4」は、「実施例1、2、3、または4」として理解されるものである)。
【0005】
実施例1は、第1の画像を受信するステップと、第1の画像を記述子ネットワークに入力として提供するステップと、記述子ネットワークを使用して、第1の画像に基づいて、第1の画像記述子を生成するステップであって、第1の画像記述子は、要素の第1のセットの第1のサブセットを備える、第1の主ベクトルと、要素の第1のセットの第2のサブセットを備える、第1の副ベクトルであって、要素の第1のセットの第2のサブセットは、要素の第1のセットの第1のサブセットより多くの要素を含む、第1の副ベクトルとの間に分散される、要素の第1のセットを含む、ステップと、第1の主ベクトルを主正規化量に正規化するステップと、第1の副ベクトルを副正規化量に正規化するステップであって、副正規化量は、主正規化量未満である、ステップとによって、階層正規化を第1の画像記述子にかけるステップとを含む、コンピュータ実装方法である。
【0006】
実施例2は、第2の画像を受信するステップと、第2の画像を記述子ネットワークに入力として提供するステップと、記述子ネットワークを使用して、第2の画像に基づいて、第2の画像記述子を生成するステップであって、第2の画像記述子は、要素の第2のセットの第1のサブセットを備える、第2の主ベクトルと、要素の第2のセットの第2のサブセットを備える、第2の副ベクトルであって、要素の第2のセットの第2のサブセットは、要素の第2のセットの第1のサブセットより多くの要素を含む、第2の副ベクトルとの間に分散される、要素の第2のセットを含む、ステップと、第2の主ベクトルを主正規化量に正規化するステップと、第2の副ベクトルを副正規化量に正規化するステップとによって、階層正規化を第2の画像記述子にかけるステップとをさらに含む、実施例1に記載のコンピュータ実装方法である。
【0007】
実施例3は、第1の主ベクトルおよび第2の主ベクトルに基づいて、第1の画像と第2の画像との間の主距離を算出するステップと、主距離が上限閾値を上回るかどうかを決定するステップとによって、第1の画像が第2の画像にマッチングするかどうかを決定するステップをさらに含む、実施例2に記載のコンピュータ実装方法である。
【0008】
実施例4は、第1の画像が第2の画像にマッチングするかどうかを決定するステップはさらに、主距離が上限閾値を上回ることを決定するステップと、第1の画像が第2の画像にマッチングしないことを決定するステップとを含む、実施例3に記載のコンピュータ実装方法である。
【0009】
実施例5は、第1の画像が第2の画像にマッチングするかどうかを決定するステップはさらに、主距離が上限閾値を上回らないことを決定するステップと、主距離が下限閾値を上回るかどうかを決定するステップとを含む、実施例3に記載のコンピュータ実装方法である。
【0010】
実施例6は、第1の主ベクトルおよび第2の主ベクトルに基づいて、第1の画像と第2の画像との間の主距離を算出するステップは、要素の第1のセットの第1のサブセットと要素の第2のセットの第1のサブセットとの間の差異の2乗の和を算出するステップを含む、実施例3に記載のコンピュータ実装方法である。
【0011】
実施例7は、第1の画像が第2の画像にマッチングするかどうかを決定するステップがさらに、主距離が下限閾値を上回ることを決定するステップと、第1の副ベクトルおよび第2の副ベクトルに基づいて、第1の画像と第2の画像との間の副距離を算出するステップと、主距離および副距離の和が上限閾値を上回るかどうかを決定するステップとを含む、実施例5に記載のコンピュータ実装方法である。
【0012】
実施例8は、第1の画像が第2の画像にマッチングするかどうかを決定するステップがさらに、主距離および副距離の和が上限閾値を上回ることを決定するステップと、第1の画像が第2の画像にマッチングしないことを決定するステップとを含む、実施例7に記載のコンピュータ実装方法である。
【0013】
実施例9は、第1の画像が第2の画像にマッチングするかどうかを決定するステップがさらに、主距離および副距離の和が上限閾値を上回らないことを決定するステップと、第1の画像が第2の画像にマッチングすることを決定するステップとを含む、実施例7に記載のコンピュータ実装方法である。
【0014】
実施例10は、第1の副ベクトルおよび第2の副ベクトルに基づいて、第1の画像と第2の画像との間の副距離を算出するステップが、要素の第1のセットの第2のサブセットと要素の第2のセットの第2のサブセットとの間の差異の2乗の和を算出するステップを含む、実施例7に記載のコンピュータ実装方法である。
【0015】
実施例11は、主正規化量が、1-αに等しく、副正規化量が、αに等しく、αが、0.5未満である、実施例1-10に記載のコンピュータ実装方法である。
【0016】
実施例12は、αが、1/8、1/16、または1/32に等しい、実施例11に記載のコンピュータ実装方法である。
【0017】
実施例13は、記述子ネットワークが、訓練プロセスを通して修正可能である、加重のセットを有する、ニューラルネットワークである、実施例1-12に記載のコンピュータ実装方法である。
【0018】
実施例14は、記述子ネットワークを訓練する方法であって、画像対のセットを受信するステップと、画像対のセットの画像対毎に、画像対からの第1の訓練画像を記述子ネットワークに入力として提供するステップと、記述子ネットワークを使用して、第1の訓練画像に基づいて、第1の画像記述子を生成するステップであって、第1の画像記述子は、要素の第1のセットの第1のサブセットを備える、第1の主ベクトルと、要素の第1のセットの第2のサブセットを備える、第1の副ベクトルであって、要素の第1のセットの第2のサブセットは、要素の第1のセットの第1のサブセットより多くの要素を含む、第1の副ベクトルとの間に分散される、要素の第1のセットを含む、ステップと、第1の主ベクトルを主正規化量に正規化するステップと、第1の副ベクトルを副正規化量に正規化するステップであって、副正規化量は、主正規化量未満である、ステップとによって、階層正規化を第1の画像記述子にかけるステップと、画像対からの第2の訓練画像を記述子ネットワークに入力として提供するステップと、記述子ネットワークを使用して、第2の画像に基づいて、第2の訓練画像記述子を生成するステップであって、第2の画像記述子は、要素の第2のセットの第1のサブセットを備える、第2の主ベクトルと、要素の第2のセットの第2のサブセットを備える、第2の副ベクトルであって、要素の第2のセットの第2のサブセットは、要素の第2のセットの第1のサブセットより多くの要素を含む、第2の副ベクトルとの間に分散される、要素の第2のセットを含む、ステップと、第2の主ベクトルを主正規化量に正規化するステップと、第2の副ベクトルを副正規化量に正規化するステップとによって、階層正規化を第2の画像記述子にかけるステップと、第1の主ベクトルおよび第2の主ベクトルに基づいて、第1の訓練画像と第2の訓練画像との間の主距離を算出するステップと、第1の副ベクトルおよび第2の副ベクトルに基づいて、第1の訓練画像と第2の訓練画像との間の副距離を算出するステップと、主距離および副距離に基づいて、記述子ネットワークを修正するステップとを含む、方法である。
【0019】
実施例15は、システムであって、1つまたはそれを上回るプロセッサと、1つまたはそれを上回るプロセッサによって実行されると、1つまたはそれを上回るプロセッサに、実施例1-14のいずれかに記載の方法を実施させる、命令を備える、コンピュータ可読媒体とを備える、システムである。
【0020】
実施例16は、1つまたはそれを上回るプロセッサによって実行されると、1つまたはそれを上回るプロセッサに、実施例1-14のいずれかに記載の方法を実施させる、命令を備える、非一過性機械可読媒体である。
【図面の簡単な説明】
【0021】
本開示のさらなる理解を提供するために含まれる、付随の図面は、本明細書に組み込まれ、その一部を成し、本開示の実施形態を図示し、詳細な説明とともに、本開示の原理を解説する役割を果たす。本開示の基本的な理解およびこれが実践され得る種々の方法に関して必要であり得るよりも詳細に、本開示の構造的詳細を示す試みは、行われない。
【0022】
図1A図1Aは、記述子ネットワークを含む、例示的システムを図示する。
【0023】
図1B図1Bは、記述子ネットワークを含む、例示的システムを図示する。
【0024】
図2図2は、記述子ネットワークを含む、例示的システムを図示する。
【0025】
図3A図3Aは、記述子ネットワークを訓練するための例示的システムを図示する。
【0026】
図3B図3Bは、記述子ネットワークを訓練するための例示的システムを図示する。
【0027】
図4図4は、記述子ネットワークを使用する方法を図示する。
【0028】
図5図5は、記述子ネットワークを訓練する方法を図示する。
【0029】
図6図6は、階層正規化の実施例を図示する。
【0030】
図7図7は、2つの画像がマッチングするかどうかを決定するための方法を示す、例示的フローチャートを図示する。
【0031】
図8図8は、図7に図示される例示的フローチャートのグラフ表現を図示する。
【0032】
図9図9は、2つの画像がマッチングするかどうかを決定するための方法を示す、例示的フローチャートを図示する。
【0033】
図10図10は、図9に図示される例示的フローチャートのグラフ表現を図示する。
【0034】
図11図11は、画像のセットから基準画像に最も近い画像を見出すための方法を示す、例示的フローチャートを図示する。
【0035】
図12図12は、図11に図示される例示的フローチャートのグラフ表現を図示する。
【0036】
図13図13は、画像のセットから基準画像に最も近い画像を見出すための方法を示す、例示的フローチャートを図示する。
【0037】
図14図14は、図13に図示される例示的フローチャートのグラフ表現を図示する。
【0038】
図15図15は、主距離を使用してフィルタリング除去され得る、領域を示す、付加的グラフ表現を図示する。
【0039】
図16図16は、主距離を使用してフィルタリング除去され得る、領域を示す、付加的グラフ表現を図示する。
【0040】
図17図17は、記述子ネットワークの実験結果を示す、グラフを図示する。
【0041】
図18図18は、記述子ネットワークの実験結果を示す、グラフを図示する。
【0042】
図19図19は、記述子ネットワークの実験結果を示す、グラフを図示する。
【0043】
図20図20は、記述子ネットワークの実験結果を示す、グラフを図示する。
【0044】
図21図21は、複数の主ベクトルを有する、例示的画像記述子を図示する。
【0045】
図22図22は、簡略化されたコンピュータシステムを図示する。
【発明を実施するための形態】
【0046】
具体的実施形態の詳細な説明
本開示のさらなる理解を提供するために含まれる、付随の図面は、本明細書に組み込まれ、その一部を成し、本開示の実施形態を図示し、詳細な説明とともに、本開示の原理を解説する役割を果たす。本開示の基本的な理解およびこれが実践され得る種々の方法に関して必要であり得るよりも詳細に、本開示の構造的詳細を示す試みは、行われない。
【0047】
図1Aは、本開示のいくつかの実施形態による、画像102に基づいて画像記述子110Aを生成するための記述子ネットワーク100Aを含む、例示的システムを図示する。記述子ネットワーク100Aは、特定のアーキテクチャと、関連付けられる加重のセットとを有する、畳み込みニューラルネットワーク等のニューラルネットワークであってもよい。画像102が、入力として提供されるが、記述子ネットワーク100Aは、N個の要素116Aを有する、画像記述子110Aを生成するように構成されてもよい。要素116Aはそれぞれ、画像102内の視覚的特徴を示し得る。
【0048】
図1Bは、生成された画像記述子110Bが、主ベクトル112と、副ベクトル114とを含むことを除き、記述子ネットワーク100Aに類似する、記述子ネットワーク100Bを含む、例示的システムを図示する。いくつかの実施形態では、主ベクトル112は、第1の要素のサブセット116B(要素116B-1から要素116B-M)を含んでもよく、副ベクトル114は、第2の要素のサブセット116B(要素116B-M+1から要素116B-M+N)を含んでもよい。したがって、第1のサブセットは、M個の要素を含んでもよく、第2のサブセットは、N個の要素を含んでもよい。
【0049】
いくつかの実施形態では、主ベクトル112および副ベクトル114は、階層正規化を画像記述子110Bにかけることによって取得される。これは、主ベクトル112を主正規化量に、および副ベクトル114を副正規化量に正規化するステップを含んでもよく、主正規化量は、副正規化量を上回る。階層正規化をかけることと併せて、主ベクトル112(M)のサイズが副ベクトル114(N)のサイズ未満となるように設定することによって、画像記述子110Bは、本明細書に説明されるように、種々のタスクにおける性能を有意に改良するように使用されることができる。
【0050】
図2は、本開示のいくつかの実施形態による、記述子ネットワーク200を含む、例示的システムを図示する。図示される実施例では、記述子ネットワーク200は、それぞれ、画像202および203に基づいて生成された画像記述子210と211との間の距離を決定することによって、画像202と203との間の類似性を決定するために使用される。記述子ネットワーク200は、画像記述子210および211がそれぞれ、主ベクトルおよび副ベクトルを含むように、記述子ネットワーク100Bに類似し得る。種々の実施形態では、画像202および203は、順次、記述子ネットワーク200への入力として提供されてもよい(例えば、画像202は、第1の時間に提供されてもよく、画像203は、第1の時間後、第2の時間に提供されてもよい)、または、同時に、記述子ネットワーク200の2つの異なるインスタンスに提供されてもよい(例えば、記述子ネットワーク200と関連付けられる、モデルアーキテクチャおよび加重を実装するための命令が、2つの別個のプロセッサまたはプロセッサコア上にロードされてもよい)。
【0051】
画像記述子210と211との間の総距離Dtotalが、画像記述子間の主距離Dmajor(画像記述子210および211の主ベクトルのみに基づいて算出される、総距離Dtotalの部分)と、画像記述子間の副距離Dminor(画像記述子210および211の副ベクトルのみに基づいて算出される、総距離Dtotalの部分)の和として算出されてもよい。図示される実施例では、ユークリッド距離が、画像記述子210の主ベクトル(x、x、…、x)および画像記述子211の主ベクトル(x’、x’、…、x’)の要素に基づく主距離と、画像記述子210の副ベクトル(xM+1、xM+2、…、xM+N)および画像記述子211の副ベクトル(x’M+1、x’M+2、…、x’M+N)の要素に基づく副距離とを計算するために使用される。余弦距離等の他の距離メトリックも、主距離および副距離を計算するために使用されてもよい。
【0052】
図3Aは、本開示のいくつかの実施形態による、記述子ネットワーク300Aを訓練するための例示的システムを図示する。記述子ネットワーク300Aは、記述子ネットワーク100Aに類似し得る。複数の訓練反復の単一訓練反復の間、記述子ネットワーク300Aは、訓練画像302および303を提供されてもよい。いくつかの実施形態では、訓練画像302および303は、類似または異なる画像であることが既知であってもよい。例えば、訓練画像303は、訓練画像302の若干修正されたバージョンであってもよい。訓練画像302および303が、入力として提供される(例えば、順次)とき、記述子ネットワーク300Aは、それぞれ、画像記述子310Aおよび311Aを生成するように構成されてもよい。総距離Dtotalは、次いで、画像記述子310Aおよび311Aに基づいて算出されてもよい。
【0053】
総距離Dtotalは、例えば、記述子ネットワーク300Aの加重を修正することによって、記述子ネットワーク300Aを訓練するために使用されてもよい。いくつかの実施形態では、記述子ネットワーク300Aの加重は、総距離Dtotalを所望の値に向かって増加または減少させるように修正されてもよい。例えば、訓練画像302および303が、類似画像であることが既知である場合、記述子ネットワーク300Aの加重は、総距離Dtotalをゼロに向かって減少させるように修正されてもよい。別の実施例として、訓練画像302および303が、異なる画像であることが既知である場合、記述子ネットワーク300Aの加重は、総距離Dtotalを1に向かって増加させるように修正されてもよい。いくつかの実施形態では、記述子ネットワーク300Aの加重は、加重修正器318Aを使用して修正されてもよく、これは、例えば、逆伝搬技法を採用して、加重を調節してもよい。
【0054】
図3Bは、本開示のいくつかの実施形態による、記述子ネットワーク300Bを訓練するための例示的システムを図示する。記述子ネットワーク300Bは、記述子ネットワーク100Bに類似し得る。図3Aに説明されるものと同様に、複数の訓練反復の単一訓練反復の間、記述子ネットワーク300Bは、訓練画像302および303を提供されてもよい。訓練画像302および303が、入力として提供される(例えば、順次)と、記述子ネットワーク300Bは、それぞれ、主ベクトルおよび副ベクトルを有する、画像記述子310Bおよび311Bを生成してもよい。総距離Dtotalが、次いで、画像記述子310Bおよび311Bに基づいて算出されてもよい。
【0055】
図3Aに説明されるものと同様に、総距離Dtotalは、例えば、記述子ネットワーク300Bの加重を修正することによって、記述子ネットワーク300Bを訓練するために使用されてもよい。いくつかの実施形態では、記述子ネットワーク300Bの加重は、総距離Dtotalを所望の値に向かって増加または減少させるように修正されてもよい。例えば、訓練画像302および303が、類似画像であることが既知である場合、記述子ネットワーク300Bの加重は、総距離Dtotalをゼロに向かって減少させるように修正されてもよい。別の実施例として、訓練画像302および303が、異なる画像であることが既知である場合、記述子ネットワーク300Bの加重は、総距離Dtotalを1に向かって増加させるように修正されてもよい。いくつかの実施形態では、記述子ネットワーク300Bの加重は、加重修正器318Bを使用して修正されてもよく、これは、例えば、逆伝搬技法を採用して、加重を調節してもよい。
【0056】
図4は、本開示のいくつかの実施形態による、記述子ネットワーク(例えば、記述子ネットワーク100A、100B、200、300A、300B)を使用する方法400を図示する。方法400の1つまたはそれを上回るステップは、方法400の実施の間、省略されてもよく、方法400のステップは、示される順序で実施される必要はない。方法400の1つまたはそれを上回るステップは、1つまたはそれを上回るプロセッサによって実施されてもよい。方法400は、プログラムが、1つまたはそれを上回るコンピュータによって実行されると、1つまたはそれを上回るコンピュータに、方法400のステップを行わせる、命令を備える、コンピュータ可読媒体またはコンピュータプログラム製品として実装されてもよい。そのようなコンピュータプログラム製品は、有線または無線ネットワークを経由して、コンピュータプログラム製品を搬送するデータキャリア信号内で伝送されることができる。
【0057】
ステップ402では、第1の画像(例えば、画像102、202、203、302、303)が、受信される。第1の画像は、可能性の中でもとりわけ、グレースケール画像、マルチチャネル画像(例えば、RGB画像)であってもよい。第1の画像は、オリジナル画像またはオリジナル画像の一部であってもよい。
【0058】
ステップ404では、第1の画像が、記述子ネットワークに提供される。
【0059】
ステップ406では、記述子ネットワークが、第1の画像に基づいて、第1の画像記述子(例えば、画像記述子110A、110B、210、211、310A、311A、310B、311B)を生成する。第1の画像記述子は、要素の第1のセットを含んでもよい。第1の画像記述子は、要素の第1のセットの第1のサブセットを含む、第1の主ベクトル(例えば、主ベクトル112)と、要素の第1のセットの第2のサブセットを含む、第1の副ベクトル(例えば、副ベクトル114)とを含んでもよい。いくつかの実施形態では、要素の第1のセットの第2のサブセットは、要素の第1のセットの第1のサブセットより多くの要素を含む(例えば、N>M)。
【0060】
ステップ408では、階層正規化が、第1の画像記述子にかけられる。いくつかの実施形態では、階層正規化を第1の画像記述子にかけるステップは、第1の画像記述子の第1の主ベクトルを主正規化量に正規化するステップと、第1の画像記述子の第1の副ベクトルを副正規化量に正規化するステップとを含んでもよい。
【0061】
ステップ410では、第2の画像(例えば、画像102、202、203、302、303)が、受信される。第2の画像は、可能性の中でもとりわけ、グレースケール画像、マルチチャネル画像(例えば、RGB画像)であってもよい。第2の画像は、オリジナル画像またはオリジナル画像の一部であってもよい。
【0062】
ステップ412では、第2の画像が、記述子ネットワークに提供される。
【0063】
ステップ414では、記述子ネットワークが、第2の画像に基づいて、第2の画像記述子を生成する(例えば、画像記述子110A、110B、210、211、310A、311A、310B、311B)。第2の画像記述子は、要素の第2のセットを含んでもよい。第2の画像記述子は、要素の第2のセットの第1のサブセットを含む、第2の主ベクトル(例えば、主ベクトル112)と、要素の第2のセットの第2のサブセットを含む、第2の副ベクトル(例えば、副ベクトル114)とを含んでもよい。いくつかの実施形態では、要素の第2のセットの第2のサブセットは、要素の第2のセットの第1のサブセットより多くの要素を含む(例えば、N>M)。
【0064】
ステップ416では、階層正規化が、第2の画像記述子にかけられる。いくつかの実施形態では、階層正規化を第2の画像記述子にかけるステップは、第2の画像記述子の第2の主ベクトルを主正規化量に正規化するステップと、第2の画像記述子の第2の副ベクトルを副正規化量に正規化するステップとを含んでもよい。
【0065】
ステップ418では、第1の画像記述子および第2の画像記述子に基づいて、第1の画像が第2の画像にマッチングするかどうかが決定される。いくつかの実施形態では、ステップ418は、ステップ420-426のうちの1つまたはそれを上回るものを含む。
【0066】
ステップ420では、第1の画像と第2の画像との間の主距離が、第1の主ベクトルおよび第2の主ベクトルに基づいて算出される。いくつかの実施形態では、主距離を算出するステップは、第1の主ベクトルと第2の主ベクトルとの間のユークリッド距離および/または余弦距離を算出するステップを含む。いくつかの実施形態では、主距離を算出するステップは、要素の第1のセットの第1のサブセットと要素の第2のセットの第1のサブセットとの間の差異の2乗の和を算出するステップを含む。
【0067】
ステップ422では、主距離に基づいて、第1の画像が第2の画像にマッチングするかどうかが決定される。いくつかの実施形態では、第1の画像が第2の画像にマッチングすることを決定するステップは、主距離が上限閾値を上回ることを決定するステップを含む。いくつかの実施形態では、第1の画像が第2の画像にマッチングしないことを決定するステップは、主距離が下限閾値未満であることを決定するステップを含む。
【0068】
いくつかの実施形態では、ステップ422において、画像がマッチングするかどうかに関する任意の決定が、行われる場合、方法400は、終了する。いくつかの実施形態では、主距離のみに基づいて、第1の画像が第2の画像にマッチングするかどうかを決定することが不可能であり得る(例えば、主距離が、上限閾値と下限閾値との間にある)。そのような実施形態では、方法400は、ステップ424に進み、副距離が、算出される。
【0069】
ステップ424では、第1の画像と第2の画像との間の副距離が、第1の副ベクトルおよび第2の副ベクトルに基づいて算出される。いくつかの実施形態では、副距離を算出するステップは、第1の副ベクトルと第2の副ベクトルとの間のユークリッド距離および/または余弦距離を算出するステップを含む。いくつかの実施形態では、副距離を算出するステップは、要素の第1のセットの第2のサブセットと要素の第2のセットの第2のサブセットとの間の差異の2乗の和を算出するステップを含む。
【0070】
ステップ426では、主距離および副距離に基づいて、第1の画像が第2の画像にマッチングするかどうかが決定される。いくつかの実施形態では、主距離および副距離の和(または総距離)が、算出される。いくつかの実施形態では、第1の画像が第2の画像にマッチングすることを決定するステップは、主距離および副距離の和が上限閾値を上回ることを決定するステップを含む。いくつかの実施形態では、第1の画像が第2の画像にマッチングしないことを決定するステップは、主距離および副距離の和が上限閾値未満であることを決定するステップを含む。
【0071】
図5は、本開示のいくつかの実施形態による、記述子ネットワーク(例えば、記述子ネットワーク100A、100B、200、300A、300B)を訓練する方法500を図示する。方法500の1つまたはそれを上回るステップは、方法500の実施の間、省略されてもよく、方法500のステップは、示される順序で実施される必要はない。方法500の1つまたはそれを上回るステップは、1つまたはそれを上回るプロセッサによって実施されてもよい。方法500は、プログラムが、1つまたはそれを上回るコンピュータによって実行されると、1つまたはそれを上回るコンピュータに、方法500のステップを行わせる、命令を備える、コンピュータ可読媒体またはコンピュータプログラム製品として実装されてもよい。そのようなコンピュータプログラム製品は、有線または無線ネットワークを経由して、コンピュータプログラム製品を搬送するデータキャリア信号内で伝送されることができる。
【0072】
ステップ502では、画像対のセット(例えば、画像202、203、302、303)が、受信される。種々の実施形態では、画像対のセットは、可能性の中でもとりわけ、訓練データセットのサイズに応じて、10画像対、1,000画像対、1,000,000画像対を含んでもよい。画像対のセットの各画像対内の各画像は、可能性の中でもとりわけ、グレースケール画像、マルチチャネル画像(例えば、RGB画像)であってもよい。各画像は、オリジナル画像またはオリジナル画像の一部であってもよい。
【0073】
いくつかの実施形態では、ステップ504-520は、画像対のセットの画像対毎に実施される。ステップ504では、画像対からの第1の訓練画像が、記述子ネットワークに提供される。
【0074】
ステップ506では、記述子ネットワークが、第1の訓練画像に基づいて、第1の画像記述子(例えば、画像記述子110A、110B、210、211、310A、311A、310B、311B)を生成する。第1の画像記述子は、要素の第1のセットを含んでもよい。第1の画像記述子は、要素の第1のセットの第1のサブセットを含む、第1の主ベクトル(例えば、主ベクトル112)と、要素の第1のセットの第2のサブセットを含む、第1の副ベクトル(例えば、副ベクトル114)とを含んでもよい。いくつかの実施形態では、要素の第1のセットの第2のサブセットは、要素の第1のセットの第1のサブセットより多くの要素を含む(例えば、N>M)。
【0075】
ステップ508では、階層正規化が、第1の画像記述子にかけられる。いくつかの実施形態では、階層正規化を第1の画像記述子にかけるステップは、第1の画像記述子の第1の主ベクトルを主正規化量に正規化するステップと、第1の画像記述子の第1の副ベクトルを副正規化量に正規化するステップとを含んでもよい。
【0076】
ステップ510では、画像対からの第2の訓練画像が、記述子ネットワークに提供される。
【0077】
ステップ512では、記述子ネットワークが、第2の訓練画像に基づいて、第2の画像記述子(例えば、画像記述子110A、110B、210、211、310A、311A、310B、311B)を生成する。第2の画像記述子は、要素の第2のセットを含んでもよい。第2の画像記述子は、要素の第2のセットの第1のサブセットを含む、第2の主ベクトル(例えば、主ベクトル112)と、要素の第2のセットの第2のサブセットを含む、第2の副ベクトル(例えば、副ベクトル114)とを含んでもよい。いくつかの実施形態では、要素の第2のセットの第2のサブセットは、要素の第2のセットの第1のサブセットより多くの要素を含む(例えば、N>M)。
【0078】
ステップ514では、階層正規化が、第2の画像記述子にかけられる。いくつかの実施形態では、階層正規化を第2の画像記述子にかけるステップは、第2の画像記述子の第2の主ベクトルを主正規化量に正規化するステップと、第2の画像記述子の第2の副ベクトルを副正規化量に正規化するステップとを含んでもよい。
【0079】
ステップ516では、第1の画像と第2の画像との間の主距離が、ステップ420と同様に、第1の主ベクトルおよび第2の主ベクトルに基づいて算出される。いくつかの実施形態では、主距離に基づいて、第1の訓練画像が第2の訓練画像にマッチングするかどうかが決定される。
【0080】
ステップ518では、第1の画像と第2の画像との間の副距離が、ステップ424と同様に、第1の副ベクトルおよび第2の副ベクトルに基づいて算出される。いくつかの実施形態では、副距離に基づいて、第1の訓練画像が第2の訓練画像にマッチングするかどうかが決定される。
【0081】
ステップ520では、記述子ネットワークが、主距離および/または副距離に基づいて修正される。いくつかの実施形態では、記述子ネットワークの加重が、同一画像対が記述子ネットワークに入力として提供されるとき、主距離および/または副距離(例えば、距離の和)を増加または減少させるように修正される。記述子ネットワークの加重は、逆伝搬技法を実施し、記述子ネットワークの加重を調節し得る、加重修正器(例えば、加重修正器318A、318B)によって修正されてもよい。
【0082】
いくつかの実施形態では、記述子ネットワークは、最初に、主ベクトルを訓練し、続いて、副ベクトルを訓練することによって、順次、訓練されてもよい。例えば、主ベクトルの要素を算出することに寄与する、記述子ネットワークの加重が、副ベクトルの要素を無視しながら、画像対のセットを使用して訓練されてもよい。いったん訓練されると、主ベクトルの要素を算出することに寄与する、記述子ネットワークの加重は、固定されてもよい。その後、副ベクトルの要素を算出することに寄与する、記述子ネットワークの加重が、同一画像対のセットまたは異なる画像対のセットを使用して、訓練されてもよい。いくつかの実施形態では、主ベクトルの要素は、副ベクトルの要素を訓練する間、無視されてもよい。いくつかの実施形態では、主ベクトルおよび副ベクトルは両方とも、副ベクトルの要素を算出することに寄与する、記述子ネットワークの加重を訓練する間、考慮されてもよい。いくつかの実施形態では、主ベクトルおよび副ベクトルの要素を算出することに寄与する、記述子ネットワークの加重が、同時に訓練されてもよい。
【0083】
図6は、本開示のいくつかの実施形態による、階層正規化の実施例を図示する。要素の全てを1の値に正規化する代わりに、要素は、主ベクトルおよび副ベクトルに分割され、主ベクトル内の要素は全て、1-αの値に正規化され、副ベクトル内の要素は全て、αの値に正規化される。図示される実施例では、αは、1/16に等しい。したがって、主ベクトルは、15/16に正規化され、副ベクトルは、1/16に正規化される。図示される実施例では、主ベクトルは、8個の要素を含み、副ベクトルは、24個の要素を含む。
【0084】
図7は、本開示のいくつかの実施形態による、2つの画像がマッチングするかどうかを決定する方法を示す、例示的フローチャートを図示する。図示される実施例では、ユークリッド距離が、主距離および副距離を算出するために使用される。ステップ702では、主距離が、算出される。ステップ704では、主距離が上限閾値を上回るかどうかが決定される。主距離が、上限閾値を上回る場合、画像がマッチングしないと決定される。そうでなければ、本方法は、ステップ706に進む。ステップ706では、主距離が下限閾値未満である(上限閾値-4αに等しい)かどうかが決定される。主距離が、下限閾値未満である場合、画像がマッチングすると決定される。そうでなければ、本方法は、ステップ708に進む。
【0085】
ステップ708では、副距離が、算出される。ステップ710では、主距離および副距離の和が上限閾値未満であるかどうかが決定される。主距離および副距離の和が、上限閾値未満である場合、画像がマッチングすると決定される。そうでなければ(例えば、主距離および副距離の和が上限閾値を上回る場合)、画像がマッチングしないと決定される。
【0086】
図8は、本開示のいくつかの実施形態による、図7に図示される例示的フローチャートのグラフ表現を図示する。図8に示されるように、マッチングは、主距離が上限閾値を上回るとき、または主距離が下限閾値未満であるとき、主距離のみに基づいて決定されることができる。そうでなければ、マッチングは、主距離および副距離の両方に基づいて決定される。
【0087】
図9は、本開示のいくつかの実施形態による、2つの画像がマッチングするかどうかを決定する方法を示す、例示的フローチャートを図示する。図示される実施例では、余弦距離が、主距離および副距離を算出するために使用される。ステップ902では、主距離が、2つの画像の主ベクトル間の内積を算出することによって算出される。ステップ904では、主距離が下限閾値未満であるかどうかが決定される。主距離が、下限閾値未満である場合、画像がマッチングしないと決定される。そうでなければ、本方法は、ステップ906に進む。ステップ906では、主距離が上限閾値を上回る(下限閾値+2αに等しい)かどうかが決定される。主距離が、上限閾値を上回る場合、画像がマッチングすると決定される。そうでなければ、本方法は、ステップ908に進む。
【0088】
ステップ908では、副距離が、2つの画像の副ベクトル間の内積を算出することによって算出される。ステップ910では、主距離および副距離の和が中央閾値を上回る(上限閾値と下限閾値との間の平均に等しい)かどうかが決定される。主距離および副距離の和が、中央閾値を上回る場合、画像がマッチングすると決定される。そうでなければ(例えば、主距離および副距離の和が、中央閾値未満である場合)、画像がマッチングしないと決定される。
【0089】
図10は、本開示のいくつかの実施形態による、図9に図示される例示的フローチャートのグラフ表現を図示する。図10に示されるように、マッチングは、主距離が上限閾値を上回るとき、または主距離が下限閾値未満であるとき、主距離のみに基づいて決定されることができる。そうでなければ、マッチングは、主距離および副距離の両方に基づいて決定される。
【0090】
図11は、本開示のいくつかの実施形態による、画像のセットから基準画像に最も近い画像を見出すための方法を示す、例示的フローチャートを図示する。図示される実施例では、ユークリッド距離が、主距離および副距離を算出するために使用される。画像記述子の主ベクトルが、画像のセットおよび基準画像のために生成された後、ステップ1102では、主距離が、主ベクトルを使用して、画像のセットのそれぞれと基準画像との間で算出される。ステップ1104では、最小主距離が、識別される。ステップ1106では、最小距離+4α未満の主距離を有する、全ての画像が、選択される。
【0091】
ステップ1108では、画像記述子の副ベクトルが、選択された画像および基準画像のために生成された後、副距離が、副ベクトルを使用して、選択された画像のそれぞれと基準画像との間で算出される。ステップ1110では、最も近い画像は、主距離および副距離の和である、最小総距離を識別することによって選択される。
【0092】
図12は、本開示のいくつかの実施形態による、図11に図示される例示的フローチャートのグラフ表現を図示する。図12に示されるように、小領域のみが、主距離が、閾値を上回る主距離を有する、画像をフィルタリング除去するために使用されるとき、副距離を使用して検索される必要がある。
【0093】
図13は、本開示のいくつかの実施形態による、画像のセットから基準画像に最も近い画像を見出すための方法を示す、例示的フローチャートを図示する。図示される実施例では、余弦距離が、主距離および副距離を算出するために使用される。画像記述子の主ベクトルが、画像のセットおよび基準画像のために生成された後、ステップ1302では、主距離が、内積を算出することによって、主ベクトルを使用して、画像のセットのそれぞれと基準画像との間で算出される。ステップ1304では、最大主距離が、識別される。ステップ1306では、最大距離-αを上回る主距離を有する、全ての画像が、選択される。
【0094】
ステップ1308では、画像記述子の副ベクトルが、選択された画像および基準画像のために生成された後、副距離が、内積を算出することによって、副ベクトルを使用して、選択された画像のそれぞれと基準画像との間で算出される。ステップ1310では、最も近い画像が、主距離および副距離の和である、最大総距離を識別することによって選択される。
【0095】
図14は、本開示のいくつかの実施形態による、図13に図示される例示的フローチャートのグラフ表現を図示する。図14に示されるように、小領域のみが、主距離が、閾値を下回る主距離を有する、画像をフィルタリング除去するために使用されるとき、副距離を使用して検索される必要がある。
【0096】
図15は、本開示のいくつかの実施形態による、主距離を使用してフィルタリング除去され得る、領域を示す、付加的グラフ表現を図示する。図示される実施例では、ユークリッド距離が、主距離および副距離を算出するために使用される。
【0097】
図16は、本開示のいくつかの実施形態による、主距離を使用してフィルタリング除去され得る、領域を示す、付加的グラフ表現を図示する。図示される実施例では、余弦距離が、主距離および副距離を算出するために使用される。
【0098】
図17は、本開示のいくつかの実施形態による、説明される記述子ネットワークの実験結果を示す、グラフを図示する。図示されるグラフは、再現率の関数として精度を示す。
【0099】
図18は、本開示のいくつかの実施形態による、説明される記述子ネットワークの実験結果を示す、グラフを図示する。図示されるグラフは、誤検出率の関数として、正検出率を示す。微調整が、300個の基準時点にわたって均一に訓練し、次いで、30個の基準時点にわたって非均一に微調整訓練することによって実施される。
【0100】
図19は、本開示のいくつかの実施形態による、説明される記述子ネットワークの実験結果を示す、グラフを図示する。図示されるグラフは、再現率の関数として精度を示す。
【0101】
図20は、本開示のいくつかの実施形態による、説明される記述子ネットワークの実験結果を示す、グラフを図示する。図示されるグラフは、誤検出率の関数として、正検出率を示す。
【0102】
図21は、本開示のいくつかの実施形態による、複数の主ベクトルを有する、例示的画像記述子2100を図示する。記述子ネットワークは、概して、主ベクトルおよび副ベクトルを有する、画像記述子を生成するように本明細書に説明されるが、本開示の実施形態はさらに、複数の主ベクトルを有する、画像記述子を生成するように構成される、記述子ネットワークを含む。図示される実施例では、画像記述子2100は、第1の主ベクトルと、第2の主ベクトルと、第3の主ベクトルと、副ベクトルとを含む。いくつかの実施形態では、第1の主ベクトルは、第2の主ベクトルより少ない要素を含んでもよく、これは、第3の主ベクトルより少ない要素を含んでもよく、これは、副ベクトルより少ない要素を含んでもよい。
【0103】
画像記述子2100を生成するとき、階層正規化が、以下のようにかけられることができる。すなわち、第1の主ベクトルが、第1の主正規化量に正規化されることができ、第2の主ベクトルが、第2の主正規化量に正規化されることができ、第2の主正規化量は、第1の主正規化量未満であって、第3の主ベクトルは、第3の主正規化量に正規化されることができ、第3の主正規化量は、第2の主正規化量未満であって、副ベクトルは、副正規化量に正規化されることができ、副正規化量は、第3の主正規化量未満である。
【0104】
図22は、本開示のいくつかの実施形態による、種々のハードウェア要素を備える、例示的コンピュータシステム2200を図示する。コンピュータシステム2200は、本明細書に説明されるデバイスの中に組み込まれる、またはそれと統合されてもよく、および/または種々の実施形態によって提供される方法のステップのいくつかまたは全てを実施するように構成されてもよい。例えば、種々の実施形態では、コンピュータシステム2200は、方法400または500を実施するように構成されてもよい。図22は、種々のコンポーネントの一般化された例証のみを提供することを意図し、その任意または全てのものが、必要に応じて、利用されてもよいことに留意されたい。図22は、したがって、広義には、個々のシステム要素が、比較的に分離またはより比較的に統合された様式で実装され得る方法を図示する。
【0105】
図示される実施例では、コンピュータシステム2200は、通信媒体2202と、1つまたはそれを上回るプロセッサ2204と、1つまたはそれを上回る入力デバイス2206と、1つまたはそれを上回る出力デバイス2208と、通信サブシステム2210と、1つまたはそれを上回るメモリデバイス2212とを含む。コンピュータシステム2200は、種々のハードウェア実装および内蔵システム技術を使用して実装されてもよい。例えば、コンピュータシステム2200の1つまたはそれを上回る要素は、可能性の中でもとりわけ、XILINX(登録商標)、INTEL(登録商標)、またはLATTICE SEMICONDUCTOR(登録商標)によって市販のもの等のフィールドプログラマブルゲートアレイ(FPGA)、システムオンチップ(SoC)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、マイクロコントローラ、および/またはSoCFPGA等のハイブリッドデバイスとして実装されてもよい。
【0106】
コンピュータシステム2200の種々のハードウェア要素は、通信媒体2202を介して結合されてもよい。通信媒体2202は、明確性の目的のために、単一接続として図示されるが、通信媒体2202は、ハードウェア要素間でデータを転送するための種々の数およびタイプの通信媒体を含んでもよいことを理解されたい。例えば、通信媒体2202は、可能性の中でもとりわけ、1つまたはそれを上回るワイヤ(例えば、印刷回路基板(PCB)または集積回路(IC)上の伝導性トレース、経路、または導線、マイクロストリップ、ストリップライン、同軸ケーブル)、1つまたはそれを上回る光学導波管(例えば、光ファイバ、ストリップ導波管)、および/または1つまたはそれを上回る無線接続またはリンク(例えば、赤外線無線通信、無線通信、マイクロ波無線通信)を含んでもよい。
【0107】
いくつかの実施形態では、通信媒体2202は、コンピュータシステム2200のハードウェア要素の1つまたはそれを上回るピンを接続する、バスを含んでもよい。例えば、通信媒体2202は、システムバスと称される、プロセッサ2204とメインメモリ2214を接続する、バスと、拡張バスと称される、メインメモリ2214と入力デバイス2206または出力デバイス2208を接続する、バスとを含んでもよい。システムバスは、アドレスバス、データバス、および制御バスを含む、いくつかの要素から成ってもよい。アドレスバスは、データバスが、メモリアドレスに含有されるデータにアクセスし、プロセッサ2204に返すために、メモリアドレスを、プロセッサ2204から、メインメモリ2214と関連付けられる、アドレスバス回路網に搬送してもよい。制御バスは、プロセッサ2204からのコマンドを搬送し、メインメモリ2214からのステータス信号を返してもよい。各バスは、複数の情報ビットを搬送するための複数のワイヤを含んでもよく、各バスは、データのシリアルまたはパラレル伝送をサポートしてもよい。
【0108】
プロセッサ2204は、1つまたはそれを上回る中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、ニューラルネットワークプロセッサまたはアクセラレータ、デジタル信号プロセッサ(DSP)、および/または同等物を含んでもよい。CPUは、マイクロプロセッサの形態をとってもよく、これは、金属酸化物半導体電界効果トランジスタ(MOSFET)構造の単一ICチップ上に加工される。プロセッサ2204は、1つまたはそれを上回るマルチコアプロセッサを含んでもよく、その中で各コアは、他のコアと同時に、プログラム命令を読み取り、実行してもよい。
【0109】
入力デバイス2206は、マウス、キーボード、マイクロホン等の種々のユーザ入力デバイス、および画像捕捉デバイス、圧力センサ(例えば、気圧計、触覚センサ)、温度センサ(例えば、温度計、熱電対、サーミスタ)、移動センサ(例えば、加速度計、ジャイロスコープ、傾斜センサ)、光センサ(例えば、光ダイオード、光検出器、電荷結合素子)、および/または同等物等の種々のセンサ入力デバイスのうちの1つまたはそれを上回るものを含んでもよい。入力デバイス2206はまた、リムーバブル記憶デバイスまたは他のリムーバブル媒体を読み取り、および/または受信するためのデバイスを含んでもよい。そのようなリムーバブル媒体は、光学ディスク(例えば、Blu-ray(登録商標)ディスク、DVD、CD)、メモリカード(例えば、コンパクトなフラッシュカード、セキュアデジタル(SD)カード、メモリスティック)、フロッピー(登録商標)ディスク、ユニバーサルシリアルバス(USB)フラッシュドライブ、外部ハードディスクドライブ(HDD)またはソリッドステートドライブ(SSD)、および/または同等物を含んでもよい。
【0110】
出力デバイス2208は、限定ではないが、ディスプレイデバイス、スピーカ、プリンタ、および/または同等物等、情報を人間可読形態に変換する、種々のデバイスのうちの1つまたはそれを上回るものを含んでもよい。出力デバイス2208はまた、入力デバイス2206を参照して説明されるもの等のリムーバブル記憶デバイスまたは他のリムーバブル媒体に書き込むためのデバイスを含んでもよい。出力デバイス2208はまた、1つまたはそれを上回るコンポーネントの物理的移動を引き起こすための種々のアクチュエータを含んでもよい。そのようなアクチュエータは、油圧、空気圧、電気であってもよく、コンピュータシステム2200によって制御信号を提供されてもよい。
【0111】
通信サブシステム2210は、コンピュータネットワーク等を経由して、コンピュータシステム2200を、コンピュータシステム2200の外部に位置する、システムまたはデバイスに接続するためのハードウェアコンポーネントを含んでもよい。種々の実施形態では、通信サブシステム2210は、可能性の中でもとりわけ、1つまたはそれを上回る入/出力ポート(例えば、ユニバーサル非同期送受信機(UART))、光学通信デバイス(例えば、光学モデム)、赤外線通信デバイス、無線通信デバイス(例えば、無線ネットワークインターフェースコントローラ、Bluetooth(登録商標) デバイス、IEEE802.11デバイス、Wi-Fiデバイス、Wi-Maxデバイス、セルラーデバイス)に結合される、有線通信デバイスを含んでもよい。
【0112】
メモリデバイス2212は、コンピュータシステム2200の種々のデータ記憶デバイスを含んでもよい。例えば、メモリデバイス2212は、プロセッサレジスタおよびキャッシュ(例えば、L0、L1、L2)等のより高速の応答時間およびより低い容量のメモリから、ランダムアクセスメモリ等の中応答時間および中容量のメモリ、ソリッドステートドライブおよびハードドライブディスク等のより低速の応答時間およびより低い容量のメモリまで、種々の応答時間および容量を伴う、種々のタイプのコンピュータメモリを含んでもよい。プロセッサ2204およびメモリデバイス2212は、別個の要素として図示されるが、プロセッサ2204は、単一プロセッサによって利用される、または複数のプロセッサ間で共有され得る、プロセッサレジスタおよびキャッシュ等の可変レベルのプロセッサ上メモリを含んでもよいことを理解されたい。
【0113】
メモリデバイス2212は、メインメモリ2214を含んでもよく、これは、通信媒体2202のメモリバスを介して、直接、プロセッサ2204によってアクセス可能であってもよい。例えば、プロセッサ2204は、メインメモリ2214内に記憶される命令を持続的に読み取り、実行してもよい。したがって、種々のソフトウェア要素が、メインメモリ2214の中にロードされ、図22に図示されるように、プロセッサ2204によって読み取られ、実行されてもよい。典型的には、メインメモリ2214は、揮発性メモリであって、これは、電力がオフにされると、全てのデータを喪失し、故に、記憶されたデータを保存するために電力を必要とする。メインメモリ2214はさらに、読取値メモリデバイス2212内に記憶される他のソフトウェアをメインメモリ2214の中に読み出すために使用される、ソフトウェア(例えば、BIOS等のファームウェア)を含有する、不揮発性メモリのごく一部を含んでもよい。いくつかの実施形態では、メインメモリ2214の揮発性メモリは、動的RAM(DRAM)等のランダムアクセスメモリ(RAM)として実装され、メインメモリ2214の不揮発性メモリは、フラッシュメモリ、消去可能プログラマブル読取専用メモリ(EPROM)、または電気的消去可能プログラマブル読取専用メモリ(EEPROM)等の読取専用メモリ(ROM)として実装される。
【0114】
コンピュータシステム2200は、現在メインメモリ2214内に位置するように示される、ソフトウェア要素を含んでもよく、これは、本開示の種々の実施形態によって提供されるコンピュータプログラムを含み得る、1つまたはそれを上回るアプリケーションプログラム等、オペレーティングシステム、デバイスドライバ、ファームウェア、コンパイラ、および/または他のコードを含んでもよい。単に、一例として、上記に議論される任意の方法に関して説明される1つまたはそれを上回るステップが、コンピュータシステム2200によって実行可能な命令2216として実装され得る。一実施例では、そのような命令2216は、通信サブシステム2210を使用して(例えば、命令2216を搬送する無線または有線信号を介して)、コンピュータシステム2200によって受信され、通信媒体2202によってメモリデバイス2212に搬送され、メモリデバイス2212内に記憶され、メインメモリ2214の中に読み込まれ、プロセッサ2204によって実行され、説明される方法の1つまたはそれを上回るステップを実施してもよい。別の実施例では、命令2216は、入力デバイス2206を使用して(例えば、リムーバブル媒体のための読取機を介して)、コンピュータシステム2200によって受信され、通信媒体2202によってメモリデバイス2212に搬送され、メモリデバイス2212内に記憶される、メインメモリ2214の中に読み込まれ、プロセッサ2204によって実行され、説明される方法の1つまたはそれを上回るステップを実施してもよい。
【0115】
本開示のいくつかの実施形態では、命令2216は、コンピュータ可読記憶媒体、または単に、コンピュータ可読媒体上に記憶される。そのようなコンピュータ可読媒体は、非一過性であってもよく、したがって、非一過性コンピュータ可読媒体と称され得る。ある場合には、非一過性コンピュータ可読媒体は、コンピュータシステム2200内に組み込まれてもよい。例えば、非一過性コンピュータ可読媒体は、図22に示されるように、メモリデバイス2212のうちの1つであってもよく、命令2216は、メモリデバイス2212内に記憶される。ある場合には、非一過性コンピュータ可読媒体は、コンピュータシステム2200と別個であってもよい。一実施例では、非一過性コンピュータ可読媒体は、図22に示されるように、入力デバイス2206を参照して説明されるもの等の入力デバイス2206に提供される、リムーバブル媒体であってもよく、命令2216は、入力デバイス2206に提供される。別の実施例では、非一過性コンピュータ可読媒体は、図22に示されるように、通信サブシステム2210を使用して、命令2216を搬送するデータ信号をコンピュータシステム2200に無線で伝送し得る、携帯電話等の遠隔電子デバイスのコンポーネントであってもよく、命令2216は、通信サブシステム2210に提供される。
【0116】
命令2216は、コンピュータシステム2200によって読み取られ、および/または実行されるための任意の好適な形態をとってもよい。例えば、命令2216は、ソースコード(Java(登録商標)、C、C++、C#、Python等の人間可読プログラミング言語で書き込まれる)、オブジェクトコード、アセンブリ言語、機械コード、マイクロコード、実行可能コード、および/または同等物であってもよい。一実施例では、命令2216は、ソースコードの形態において、コンピュータシステム2200に提供され、コンパイラが、命令2216をソースコードから機械コードに変換するために使用され、これは、次いで、プロセッサ2204による実行のために、メインメモリ2214の中に読み込まれてもよい。別の実施例として、命令2216は、直ちに、プロセッサ2204による実行のためにメインメモリ2214の中に読み込まれ得る、機械コードを伴う、実行可能ファイルの形態において、コンピュータシステム2200に提供される。種々の実施例では、命令2216は、可能性の中でもとりわけ、より広いソフトウェア展開のために、暗号化または暗号化解除された形態において、圧縮または解凍された形態において、インストールパッケージまたは初期化として、コンピュータシステム2200に提供されてもよい。
【0117】
本開示の一側面では、システム(例えば、コンピュータシステム2200)が、本開示の種々の実施形態による、方法を実施するために提供される。例えば、いくつかの実施形態は、非一過性コンピュータ可読媒体(例えば、メモリデバイス2212またはメインメモリ2214)に通信可能に結合される、1つまたはそれを上回るプロセッサ(例えば、プロセッサ2204)を備える、システムを含んでもよい。非一過性コンピュータ可読媒体は、1つまたはそれを上回るプロセッサによって実行されると、1つまたはそれを上回るプロセッサに、種々の実施形態に説明される方法を実施させる、その中に記憶される、命令(例えば、命令2216)を有してもよい。
【0118】
本開示の別の側面では、命令(例えば、命令2216)を含む、コンピュータプログラム製品が、本開示の種々の実施形態による、方法実施するために提供される。コンピュータプログラム製品は、非一過性コンピュータ可読媒体(例えば、メモリデバイス2212またはメインメモリ2214)内に有形に具現化されてもよい。命令は、1つまたはそれを上回るプロセッサ(例えば、プロセッサ2204)に、種々の実施形態に説明される方法を実施させるように構成されてもよい。
【0119】
本開示の別の側面では、非一過性コンピュータ可読媒体(例えば、メモリデバイス2212またはメインメモリ2214)が、提供される。非一過性コンピュータ可読媒体は1つまたはそれを上回るプロセッサ(例えば、プロセッサ2204)によって実行されると、1つまたはそれを上回るプロセッサに、種々の実施形態に説明される方法を実施させる、その中に記憶される、命令(例えば、命令2216)を有してもよい。
【0120】
上記に議論される方法、システム、およびデバイスは、実施例である。種々の構成は、必要に応じて、種々のプロシージャまたはコンポーネントを省略、代用、または追加してもよい。例えば、代替構成では、本方法は、説明されるものと異なる順序で実施されてもよく、および/または種々の段階は、追加される、省略される、および/または組み合わせられてもよい。また、ある構成に関して説明される特徴は、種々の他の構成において組み合わせられてもよい。構成の異なる側面および要素は、類似様式で組み合わせられてもよい。また、技術は、進歩するものであって、したがって、要素の多くは、実施例であって、本開示の範囲または請求項を限定するものではない。
【0121】
具体的詳細が、実装を含む、例示的構成の完全な理解を提供するために説明に与えられる。しかしながら、構成は、これらの具体的詳細を伴わずに実践されてもよい。例えば、周知の回路、プロセス、アルゴリズム、構造、および技法は、構成を曖昧にすることを回避するために、不必要な詳細を伴わずに示されている。本説明は、例示的構成のみを提供し、請求項の範囲、可用性、または構成を限定するものではない。むしろ、構成の前述の説明は、当業者に説明される技法を実装するための有効な説明を提供するであろう。種々の変更が、本開示の精神または範囲から逸脱することなく、要素の機能および配列に行われてもよい。
【0122】
いくつかの例示的構成が説明されたが、種々の修正、代替構造、および均等物が、本開示の精神から逸脱することなく、使用されてもよい。例えば、前述の要素は、より大きいシステムのコンポーネントであってもよく、他のルールが、本技術の用途に優先する、または別様にそれを修正してもよい。また、いくつかのステップは、前述の要素が検討される前、間、または後に行われてもよい。故に、前述の説明は、請求項の範囲を束縛するものではない。
【0123】
本明細書および添付の請求項で使用されるように、単数形「a」、「an」、および「the」は、文脈によって明確に別様に示されない限り、複数参照を含む。したがって、例えば、「ユーザ」の言及は、1人またはそれを上回るそのようなユーザの言及を含み、「プロセッサ」の言及は、1つまたはそれを上回るプロセッサおよび当業者に公知のその均等物等の言及を含む。
【0124】
また、単語「comprise(~を備える)」、「comprising(~を備える)」、「contains(~を含有する)」、「containing(~を含有する)」、「include(~を含む)」、「including(~を含む)」、および「includes(~を含む)」は、本明細書および以下の請求項で使用されるとき、述べられた特徴、整数、コンポーネント、またはステップの存在を規定するために意図されるが、それらは、1つまたはそれを上回る他の特徴、整数、コンポーネント、ステップ、行為、または群の存在または追加を除外するものではない。
【0125】
また、本明細書に説明される実施例および実施形態は、例証目的のみのためのものであって、それに照らして、種々の修正または変更が、当業者に示唆され、本願の精神および権限および添付の請求項の範囲内に含まれることを理解されたい。
図1A
図1B
図2
図3A
図3B
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22