(57)【特許請求の範囲】
【請求項１】
データ処理装置によって実行される方法であって、
画像トレーニングセット中の各画像内の特定タイプのオブジェクトの出現を検出するステップであって、前記画像トレーニングセット中の画像が、第1の時間期間内に捕捉された画像である、抽出するステップと、
前記画像トレーニングセット中の前記画像から、検出されたオブジェクトの1回の出現をそれぞれが描いているサブ画像を抽出するステップと、
画像埋め込み関数を反復的にトレーニングするステップであって、前記画像埋め込み関数が、入力画像に作用して、出力として前記入力画像の特徴表現を生じさせる、1組のパラメータ重みを含み、前記トレーニングの各反復が、
前記抽出されたサブ画像から、第1のタイプの複数の画像ペアおよび第2のタイプの複数の画像ペアを選択するステップであって、各画像ペアが、第1のサブ画像と第2のサブ画像との組合せであり、
前記第1のタイプのそれぞれの画像ペアが、前記特定タイプのオブジェクトの同一インスタンスを描いた第1のサブ画像および第2のサブ画像を含み、
前記第2のタイプのそれぞれの画像ペアが、前記特定タイプのオブジェクトの異なるインスタンスを描いた第1のサブ画像および第2のサブ画像を含み、かつ
前記第1のタイプのそれぞれの画像ペアについて、前記画像ペアの少なくとも前記第1のサブ画像および前記第2のサブ画像が、第2の時間期間内に捕捉された画像から抽出されたものであり、
前記第2の時間期間が、前記第1の時間期間よりも短く、かつ前記第1の時間期間のサブセットである、
選択するステップ、
選択された各画像ペアを入力として前記画像埋め込み関数に与えるとともに、対応する出力を生成するステップ、
前記画像埋め込み関数の性能指標を決定するステップ、
前記画像埋め込み関数の前記パラメータ重みを、前記性能指標に基づいて調整するステップ、および
前記トレーニングの別の反復を、停止事象が生じるまで実施するステップを含む、反復的にトレーニングするステップと
を含む、
方法。
【請求項２】
前記第1のタイプの画像ペアおよび前記第2のタイプの画像ペアを選択するステップが、
画像トリプレットを選択するステップであって、各画像トリプレットが、第1のサブ画像と、第2のサブ画像と、第3のサブ画像との組合せであり、
前記第1のサブ画像および前記第2のサブ画像を含む画像ペアが、前記第1のタイプの画像ペアであり、
前記第1のサブ画像および前記第3のサブ画像を含む画像ペアが、前記第2のタイプの画像ペアである、
選択するステップを含む、
請求項1に記載の方法。
【請求項３】
画像トリプレットを入力として前記画像埋め込み関数に与えるとともに、対応する出力を生成するステップが、
前記画像埋め込み関数によって、前記画像トリプレット中の前記第1のサブ画像の第1の特徴表現、前記画像トリプレット中の前記第2のサブ画像の第2の特徴表現、および前記画像トリプレット中の前記第3のサブ画像の第3の特徴表現を生成するステップを含む、
請求項2に記載の方法。
【請求項４】
前記画像埋め込みの前記性能指標を決定するステップが、
選択された各画像トリプレットについて、
前記第1の特徴表現および前記第2の特徴表現に基づいて、前記第1の特徴表現と前記第2の特徴表現の類似性を測定する第1の類似性指標を決定するステップと、
前記第1の特徴表現および前記第3の特徴表現に基づいて、前記第1の特徴表現と前記第3の特徴表現の類似性を測定する第2の類似性指標を決定するステップとを含む、
請求項3に記載の方法。
【請求項５】
前記画像埋め込み関数が、出力特徴表現として入力画像のユークリッド空間への写像を生成し、
選択された各画像トリプレットについて、
前記第1の類似性指標を決定する前記ステップが、前記第1の特徴表現と前記第2の特徴表現との間の第1のユークリッド距離を決定するステップを含み、
前記第2の類似性指標を決定する前記ステップが、前記第1の特徴表現と前記第3の特徴表現との間の第2のユークリッド距離を決定するステップを含む、
請求項4に記載の方法。
【請求項６】
前記画像埋め込み関数の性能指標の決定が、選択された各画像トリプレットについての前記第1のユークリッド距離および前記第2のユークリッド距離に基づく、
請求項5に記載の方法。
【請求項７】
選択された各画像トリプレットについての前記第1のユークリッド距離および前記第2のユークリッド距離に基づいて前記性能指標を決定するステップが、
選択された各画像トリプレットについての前記第1のユークリッド距離と前記第2のユークリッド距離との差に基づくヒンジ損失を決定するステップを含む、
請求項6に記載の方法。
【請求項８】
前記性能指標を決定するステップが、
前記選択された画像トリプレットについての前記ヒンジ損失を合計するステップを含む、
請求項7に記載の方法。
【請求項９】
前記画像埋め込み関数が畳み込みニューラルネットワークを含む、
請求項1から8のいずれか一項に記載の方法。
【請求項１０】
前記オブジェクトが人体全身である、
請求項1から9のいずれか一項に記載の方法。
【請求項１１】
前記トレーニングされたニューラルネットワークによって生成された特徴表現が、クラスタ化アルゴリズムを使用してグループに割り当てられる、
請求項1から10のいずれか一項に記載の方法。
【請求項１２】
抽出された各サブ画像にキーポイントがアノテーションされ、
前記画像埋め込み関数の出力が、前記入力画像の前記特徴表現、および前記入力画像の予測されたキーポイントアノテーションを含み、
前記画像埋め込み関数の前記性能指標を決定するステップが、
前記予測されたキーポイントアノテーションと前記キーポイントアノテーションとの間の類似性を決定するステップを含む、
請求項1から11のいずれか一項に記載の方法。
【請求項１３】
前記画像トレーニングセット中の前記画像からサブ画像を抽出するステップが、
各サブ画像にキーポイントをアノテーションするステップと、
特定のサブ画像を基準サブ画像として選択するステップと、
各サブ画像を、そのキーポイントを前記基準サブ画像の前記キーポイントと位置整合させるように変換するステップとを含む、
請求項1から12のいずれか一項に記載の方法。
【請求項１４】
抽出された各サブ画像にキーポイントがアノテーションされ、
前記画像埋め込み関数の入力が、入力画像、および前記入力画像のアノテーションされたキーポイントを含み、
選択された各画像ペアを入力として前記画像埋め込み関数に与えることが、
選択された各画像ペア中の各サブ画像の前記アノテーションされたキーポイントを入力として前記画像埋め込み関数に与えることを含む、
請求項1から13のいずれか一項に記載の方法。
【請求項１５】
前記第1のタイプの画像ペアについて、前記第1のサブ画像および前記第2のサブ画像が、特定の事象中に捕捉された画像から抽出および選択される、
請求項1から14のいずれか一項に記載の方法。
【請求項１６】
前記第1のタイプの画像ペアについて、前記第1のサブ画像および前記第2のサブ画像が、前記第2の時間期間内に捕捉された画像から抽出および選択される、
請求項1から15のいずれか一項に記載の方法。
【請求項１７】
1つまたは複数のコンピューティングデバイスと、
前記1つまたは複数のコンピューティングデバイスに結合された1つまたは複数のコンピュータ可読記憶媒体と
を備えたシステムであって、前記1つまたは複数のコンピュータ可読記憶媒体が、前記1つまたは複数のコンピューティングデバイスに以下の動作を実行させるための命令を記憶し、前記動作が、
画像トレーニングセット中の各画像内の特定タイプのオブジェクトの出現を検出することであって、前記画像トレーニングセット中の前記画像が、第1の時間期間内に捕捉された画像である、検出することと、
前記画像トレーニングセット中の前記画像から、検出されたオブジェクトの1回の出現をそれぞれが描いているサブ画像を抽出することと、
画像埋め込み関数を反復的にトレーニングすることであって、前記画像埋め込み関数が、入力画像に作用して、出力として前記入力画像の特徴表現を生じさせる、1組のパラメータ重みを含み、前記トレーニングの各反復が、
前記抽出されたサブ画像から、第1のタイプの複数の画像ペアおよび第2のタイプの複数の画像ペアを選択することであって、各画像ペアが、第1のサブ画像と第2のサブ画像との組合せであり、
前記第1のタイプのそれぞれの画像ペアが、前記特定タイプのオブジェクトの同一インスタンスを描いた第1のサブ画像および第2のサブ画像を含み、
前記第2のタイプのそれぞれの画像ペアが、前記特定タイプのオブジェクトの異なるインスタンスを描いた第1のサブ画像および第2のサブ画像を含み、かつ
前記第1のタイプのそれぞれの画像ペアについて、前記画像ペアの少なくとも前記第1のサブ画像および前記第2のサブ画像が、第2の時間期間内に捕捉された画像から抽出されたものであり、
前記第2の時間期間が、前記第1の時間期間よりも短く、かつ前記第1の時間期間のサブセットである、
選択すること、
選択された各画像ペアを入力として前記画像埋め込み関数に与えるとともに、対応する出力を生成すること、
前記画像埋め込み関数の性能指標を決定すること、
前記画像埋め込み関数の前記パラメータ重みを、前記性能指標に基づいて調整すること、および
前記トレーニングの別の反復を、停止事象が生じるまで実施すること
を含む、反復的にトレーニングすることと
を含む、
システム。
【請求項１８】
コンピュータプログラムを記憶しているコンピュータ可読記憶媒体であって、前記コンピュータプログラムが、データ処理装置に以下の動作を実行させるための命令を含み、前記動作が、
画像トレーニングセット中の各画像内の特定タイプのオブジェクトの出現を検出することであって、前記画像トレーニングセット中の前記画像が、第1の時間期間内に捕捉された画像である、検出することと、
前記画像トレーニングセット中の前記画像から、検出されたオブジェクトの1回の出現をそれぞれが描いているサブ画像を抽出することと、
画像埋め込み関数を反復的にトレーニングすることであって、前記画像埋め込み関数が、入力画像に作用して、出力として前記入力画像の特徴表現を生じさせる、1組のパラメータ重みを含み、前記トレーニングの各反復が、
前記抽出されたサブ画像から複数の第1のタイプの画像ペアおよび第2のタイプの複数の画像ペアを選択することであって、各画像ペアが、第1のサブ画像と第2のサブ画像との組合せであり、
前記第1のタイプのそれぞれの画像ペアが、前記特定タイプのオブジェクトの同一インスタンスを描いた第1のサブ画像および第2のサブ画像を含み、
前記第2のタイプのそれぞれの画像ペアが、前記特定タイプのオブジェクトの異なるインスタンスを描いた第1のサブ画像および第2のサブ画像を含み、かつ
前記第1のタイプのそれぞれの画像ペアについて、前記画像ペアの少なくとも前記第1のサブ画像および前記第2のサブ画像が、第2の時間期間内に捕捉された画像から抽出されたものであり、
前記第2の時間期間が、前記第1の時間期間よりも短く、かつ前記第1の時間期間のサブセットである、
選択すること、
選択された各画像ペアを入力として前記画像埋め込み関数に与えるとともに、対応する出力を生成すること、
前記画像埋め込み関数の性能指標を決定すること、
前記画像埋め込み関数の前記パラメータ重みを、前記性能指標に基づいて調整すること、および
前記トレーニングの別の反復を、停止事象が生じるまで実施することを含む、
反復的にトレーニングすることと
を含む、
コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、画像処理に関する。
【背景技術】
【０００２】
格納された画像の手動での組織化および検索取得(retrieval)は、困難な場合がある。例えば、画像を手動で閲覧しグループ化することは、格納されている画像の量と複雑さのため、時間がかかる場合がある。
【０００３】
画像組織化のための自動化された方法では、画像を、画像間で特定された類似性に基づいてグループ化することができる。これらの方法のいくつかでは、画像間の類似性を特定する際に使用するモデル関数の最適化を行っている。多様なモデル関数およびトレーニング方法を使用することができる。例えば、写真を検索取得するために、顔認識処理が使用されてよく、その場合、検出される「オブジェクト」は顔である。これにより、人物の写真を検出された顔の類似性に基づいてグループ化する、人物検索機能が可能になる。しかし、この手法は、小さすぎる顔、他のオブジェクトによって遮られた顔、または顔認識処理によって対処することのできない角度の顔など、顔が認識できない人物画像には機能しない。
【発明の概要】
【課題を解決するための手段】
【０００４】
本明細書は、画像処理に関する技術について、詳細には、指定の時間期間(duration of time)内に捕捉された特定タイプのオブジェクトの同一インスタンスを描いた画像については類似の特徴表現を生成し、特定タイプのオブジェクトの異なるインスタンスを描いた画像については非類似の特徴表現を生成する画像埋め込み関数のトレーニングについて説明する。
【０００５】
一般に、本明細書において説明する本主題の一革新的態様は、画像埋め込み関数をトレーニングするための方法として具現化することができる。方法は、画像トレーニングセット中の各画像内の特定タイプのオブジェクトの出現を検出することであって、画像トレーニングセット中の画像が、第1の時間期間内に捕捉された画像である、検出することと、画像トレーニングセット中の画像から、検出されたオブジェクトの1回の出現をそれぞれが描いているサブ画像を抽出することと、画像埋め込み関数を反復的にトレーニングすることであって、画像埋め込み関数が、入力画像に作用して、出力として入力画像の特徴表現を生じさせる、1組のパラメータ重みを含み、トレーニングの各反復が、抽出されたサブ画像から、第1のタイプの画像ペアおよび第2のタイプの画像ペアを選択することであって、各画像ペアが、第1のサブ画像と第2のサブ画像との組合せであり、第1のタイプの画像ペアが、特定タイプのオブジェクトの同一インスタンスを描いた第1のサブ画像および第2のサブ画像を含み、第2のタイプの画像ペアが、特定タイプのオブジェクトの異なるインスタンスを描いた第1のサブ画像および第2のサブ画像を含み、かつ第1のタイプの画像ペアについて、画像ペアの少なくとも第1のサブ画像および第2のサブ画像が、第1の時間期間よりも短い第2の時間期間内に捕捉された画像から抽出されたものである、選択すること、選択された各画像ペアを入力として画像埋め込み関数に与え、対応する出力を生成すること、画像埋め込み関数の性能指標(performance measure)を決定すること、画像埋め込み関数のパラメータ重みを、性能指標に基づいて調整すること、およびトレーニングの別の反復を、停止事象が生じるまで実施することを含む、反復的にトレーニングすることとを含む。
【０００６】
いくつかの実装形態では、第1のタイプの画像ペアおよび第2のタイプの画像ペアを選択することが、画像トリプレットを選択することであって、各画像トリプレットが、第1のサブ画像と、第2のサブ画像と、第3のサブ画像との組合せであり、第1のサブ画像および第2のサブ画像を含む画像ペアが、第1のタイプの画像ペアであり、第1のサブ画像および第3のサブ画像を含む画像ペアが、第2のタイプの画像ペアである、選択することを含む。
【０００７】
いくつかの実装形態では、画像トリプレットを入力として画像埋め込み関数に与え、対応する出力を生成することが、画像埋め込み関数によって、画像トリプレット中の第1の画像の第1の特徴表現、画像トリプレット中の第2の画像の第2の特徴表現、および画像トリプレット中の第3の画像の第3の特徴表現を生成することを含む。
【０００８】
いくつかの実装形態では、画像埋め込みの性能指標を決定することが、選択された各画像トリプレットについて、第1の特徴表現および第2の特徴表現に基づいて、第1の特徴表現と第2の特徴表現の類似性を測定する第1の類似性指標を決定することと、第1の特徴表現および第3の特徴表現に基づいて、第1の特徴表現と第3の特徴表現の類似性を測定する第2の類似性指標を決定することとを含む。
【０００９】
いくつかの実装形態では、画像埋め込み関数が、出力特徴表現として入力画像のユークリッド空間への写像を生成し、選択された各画像トリプレットについて、第1の類似性指標を決定することが、第1の特徴表現と第2の特徴表現との間の第1のユークリッド距離を決定することを含み、第2の類似性指標を決定することが、第1の特徴表現と第3の特徴表現との間の第2のユークリッド距離を決定することを含む。
【００１０】
いくつかの実装形態では、画像埋め込み関数の性能指標を決定することが、選択された各画像トリプレットについての第1のユークリッド距離および第2のユークリッド距離に基づいている。
【００１１】
いくつかの実装形態では、選択された各画像トリプレットについての第1のユークリッド距離および第2のユークリッド距離に基づいて性能指標を決定することが、選択された各画像トリプレットについての第1のユークリッド距離と第2のユークリッド距離との差に基づくヒンジ損失を決定することを含む。
【００１２】
いくつかの実装形態では、性能指標を決定することが、選択された画像トリプレットについてのヒンジ損失を合計することを含む。
【００１３】
いくつかの実装形態では、画像埋め込み関数が畳み込みニューラルネットワークを含む。
【００１４】
いくつかの実装形態では、オブジェクトが人体全身である。
【００１５】
いくつかの実装形態では、トレーニングされたニューラルネットワークによって生成された特徴表現が、クラスタ化アルゴリズムを使用してグループに割り当てられる。
【００１６】
いくつかの実装形態では、抽出された各サブ画像にキーポイントがアノテーションされ、画像埋め込み関数の出力が、入力画像の特徴表現、および入力画像の予測されたキーポイントアノテーションを含み、画像埋め込み関数の性能指標を決定することが、予測されたキーポイントアノテーションとキーポイントアノテーションとの間の類似性を決定することを含む。
【００１７】
いくつかの実装形態では、画像トレーニングセット中の画像からサブ画像を抽出することが、各サブ画像にキーポイントをアノテーションすることと、特定のサブ画像を基準画像として選択することと、各サブ画像を、そのキーポイントを基準サブ画像のキーポイントと位置整合させるように変換することとをさらに含む。
【００１８】
いくつかの実装形態では、抽出された各サブ画像にキーポイントがアノテーションされ、画像埋め込み関数の入力が、入力画像、および入力画像のアノテーションされたキーポイントを含み、選択された各画像ペアを入力として画像埋め込み関数に与えることが、選択された各画像ペア中の各サブ画像のアノテーションされたキーポイントを入力として画像埋め込み関数に与えることをさらに含む。
【００１９】
いくつかの実装形態では、第1のタイプの画像ペアについて、第1のサブ画像および第2のサブ画像が、それらの抽出元である、特定の事象中に捕捉された画像に基づいて選択される。
【００２０】
いくつかの実装形態では、第1のタイプの画像ペアについて、第1のサブ画像および第2のサブ画像が、それらの抽出元である、第2の時間期間内に捕捉された画像に基づいて選択される。
【００２１】
いくつかの実装形態では、方法は、1つまたは複数の入力画像を受領することと、受領された入力画像のうちの1つ、一部、または全部について、(それぞれの)入力画像から1つまたは複数のサブ画像を抽出することと、(それぞれの)入力画像を、(それぞれの)入力画像から抽出されたサブ画像、および画像埋め込み関数を使用して分類することとをさらに含む。
【００２２】
いくつかの実装形態では、方法は、入力画像を分類した結果に基づいて実体を制御することをさらに含む。例えば、入力画像が、自律車両上の1つまたは複数のカメラによって得られる場合、入力画像を分類した結果は、例えば、車両に接近する人物が(例えば、たとえその人物の顔が不明瞭だとしても)その車両の所有者であることを表すことができる。車両に接近する人物がその車両の所有者であるとの決定に応答して、車両は、そのドアをロック解除してもよく、(例えばその人物の注意を車両の位置に向けさせるために)その警笛を鳴らしてもよい。
【００２３】
本明細書において説明する本主題の別の革新的態様は、データ処理装置によって実施される画像分類のコンピュータで実行される方法であって、画像トレーニングセット中の各画像内の特定タイプのオブジェクトの出現を検出することであって、画像トレーニングセット中の画像が、第1の時間期間内に捕捉された画像である、検出することと、画像トレーニングセット中の画像から、検出されたオブジェクトの1回の出現をそれぞれが描いているサブ画像を抽出することと、画像埋め込み関数を反復的にトレーニングすることであって、画像埋め込み関数が、入力画像に作用して、出力として入力画像の特徴表現を生じさせる、1組のパラメータ重みを含み、トレーニングの各反復が、抽出されたサブ画像から、第1のタイプの画像ペアおよび第2のタイプの画像ペアを選択することであって、各画像ペアが、第1のサブ画像と第2のサブ画像との組合せであり、第1のタイプの画像ペアが、特定タイプのオブジェクトの同一インスタンスを描いた第1のサブ画像および第2のサブ画像を含み、第2のタイプの画像ペアが、特定タイプのオブジェクトの異なるインスタンスを描いた第1のサブ画像および第2のサブ画像を含み、かつ第1のタイプの画像ペアについて、画像ペアの少なくとも第1のサブ画像および第2のサブ画像が、第1の時間期間よりも短い第2の時間期間内に捕捉された画像から抽出されたものである、選択すること、選択された各画像ペアを入力として画像埋め込み関数に与え、対応する出力を生成すること、画像埋め込み関数の性能指標を決定すること、画像埋め込み関数のパラメータ重みを、性能指標に基づいて調整すること、トレーニングの別の反復を、停止事象が生じるまで実施することを含む、反復的にトレーニングすることと、1つまたは複数の入力画像を受領することと、受領された入力画像のうちの1つ、一部、または全部について、(それぞれの)入力画像から1つまたは複数のサブ画像を抽出することと、(それぞれの)入力画像を、(それぞれの)入力画像から抽出されたサブ画像および画像埋め込み関数を使用して分類することとを含む方法として具現化することができる。
【００２４】
本明細書において説明する本主題の別の革新的態様は、1つまたは複数の入力画像を受領するための入力部と、(それぞれの)入力画像から1つまたは複数のサブ画像を抽出するためのオブジェクト抽出部と、(それぞれの)入力画像を、(それぞれの)入力画像から抽出されたサブ画像、および本開示の任意の態様または実装形態による方法によって生成された画像埋め込み関数を使用して分類するための分類部とを含む画像分類システムとして具現化することができる。
【００２５】
本明細書において説明する本主題の別の革新的態様は、先の態様の画像分類システムの出力に基づいて実体を制御するための制御システムとして具現化することができる。
【００２６】
他の態様は、1つまたは複数のコンピューティングデバイスと、1つまたは複数のコンピュータデバイスに結合され、1つまたは複数のコンピューティングデバイスによって実行されると、本開示の任意の態様または実装形態による方法を含む動作を1つまたは複数のコンピューティングデバイスに実施させる命令がその上に格納された、1つまたは複数のコンピュータ可読媒体とを含むシステム、ならびにコンピュータプログラムが符号化されたコンピュータ記憶媒体であって、データ処理装置によって実行されると、本開示の任意の態様または実装形態による方法を含む動作をデータ処理装置に実施させる命令をプログラムが含む、コンピュータ記憶媒体を含む。
【００２７】
本態様の他の実施形態は、対応するシステム、装置、およびコンピュータ記憶デバイス上に符号化された、方法のアクションを実施するように構成されたコンピュータプログラムを含む。
【００２８】
本明細書において説明する本主題の特定の実施形態は、次の利点のうちの1つまたは複数を実現するように実装することができる。下で説明するシステムおよび方法は、指定の時間期間内に捕捉された特定タイプのオブジェクトの同一インスタンスを描いた画像については類似の特徴表現を生成し、特定タイプのオブジェクトの異なるインスタンスを描いた画像については非類似の特徴表現を生成する画像埋め込み関数をトレーニングする。画像埋め込み関数に、指定の時間期間内のみに捕捉された特定タイプのオブジェクトの同一インスタンスを描いた画像については類似の特徴表現を生成するように要求することによって、画像埋め込み関数を、顔認識処理をしない人物認識の文脈に利用することができる。これは、一部には、指定の期間中の人物の外観はおそらくは変化しない、例えば、人物が同一の衣服、同一の宝飾品類などを身に着けているためである。これは、部分的にまたは全体が不明瞭な場合のある顔の画像の処理にとって特に有利であり、したがって、画像認識処理の技術分野における改善点である。
【００２９】
加えて、この画像埋め込み関数は、単純化モデルによって実装することができ、この画像埋め込み関数をトレーニングするプロセスは、画像埋め込み関数が画像の捕捉時相互間の時間期間に関わらず特定タイプのオブジェクトの同一インスタンスを描いた画像については類似の特徴表現を生成するように要求される場合よりも、時間のかからない、かつ計算量の少ないものになり得る。これらの利点も、画像処理の技術分野における改善点である。
【００３０】
この画像埋め込み関数は、入力画像の特徴表現を生成することに加えて、入力画像内のキーポイントの位置を予測するようにトレーニングすることもできる。これにより、画像埋め込み関数によって生成される特徴表現の質が、キーポイントを使用しない埋め込み関数に比べて高まる。
【００３１】
トレーニング中に所与の画像を入力として画像埋め込み関数に与える前に、所与の画像のキーポイントを基準画像のキーポイントと位置整合させるように変換が利用されてよい。そのような変換により、画像埋め込み関数を単純化モデルによって実装することが可能になり、画像埋め込み関数をトレーニングするプロセスが、キーポイントのそのような変換をせずにモデルがトレーニングされる場合よりも、時間のかからない、かつ計算量の少ないものになる。
【００３２】
本明細書において説明する本主題の1つまたは複数の実施形態の詳細については、添付の図面および下の説明中に記載されている。本主題の他の特徴、態様、および利点が、説明、図面、および特許請求の範囲から明らかとなろう。
【図面の簡単な説明】
【００３３】
【図１Ａ】画像埋め込み関数を画像トリプレットトレーニングデータに基づいて学習させるためのネットワークアーキテクチャのブロック図である。
【図１Ｂ】画像埋め込み関数を画像ペアトレーニングデータに基づいて学習させるためのネットワークアーキテクチャのブロック図である。
【図２Ａ】画像埋め込み関数を画像トリプレットトレーニングデータに基づいて学習させるための一例示的プロセスの流れ図である。
【図２Ｂ】画像埋め込み関数を画像ペアトレーニングデータに基づいて学習させるための一例示的プロセスの流れ図である。
【図３】可能な画像トリプレットを生成するための一例示的プロセスの流れ図である。
【図４】画像埋め込み関数の性能指標を決定するための一例示的プロセスの流れ図である。
【図５】画像内の検出されたオブジェクトの出現に基づいて画像にグループを割り当てるためのネットワークアーキテクチャのブロック図である。
【図６】画像内の検出されたオブジェクトの出現に基づいて画像にグループを割り当てるための一例示的プロセスの流れ図である。
【発明を実施するための形態】
【００３４】
さまざまな図面中の同様の参照番号および名称は、同様の要素を表す。
【００３５】
画像埋め込み関数をトレーニングするために、システムは、画像トレーニングセット中の各画像内の特定タイプのオブジェクトの出現を検出する。画像トレーニングセット中の画像は、第1の時間期間内に捕捉された画像であり、各画像は、特定タイプの1つまたは複数のオブジェクトを描いていてよい。多くのオブジェクトタイプがあり、各オブジェクトタイプは、類似の視覚的特性を有するオブジェクトの分類とみなすことができる。例えば、オブジェクトタイプは、それぞれに類似の視覚的特性をそれぞれが有するような、人物、またはランドマーク、または車であってよい。
【００３６】
オブジェクトが検出されると、システムは、画像トレーニングセット中の画像からサブ画像を抽出する。各サブ画像は、検出されたオブジェクトの1回の出現を描いている。例えば、「人物」オブジェクトタイプの2回の出現を描いた画像の場合、検出された人物オブジェクトをそれぞれが描いている2つのサブ画像を、その画像から抽出することができる。
【００３７】
システムは次いで、画像埋め込み関数を、下でより詳細に説明する画像ペアまたは画像トリプレットに対して反復的にトレーニングする。画像埋め込み関数は、入力画像に作用して、出力として入力画像の特徴表現を生じさせる、1組のパラメータ重みを含む。トレーニングの各反復は、画像トリプレットを選択すること、および選択された各画像トリプレットを入力として画像埋め込み関数に与え、対応する出力を生成することを含む。画像埋め込み関数の性能指標が決定され、画像埋め込み関数のパラメータ重みが、性能指標に基づいて調整される。その後、別の反復が、停止事象が生じるまで実施される。
【００３８】
抽出されたサブ画像から画像トリプレットを選択するために、システムは、第1の画像から抽出された第1のサブ画像と、第2の画像から抽出された第2のサブ画像と、第3の画像から抽出された第3のサブ画像との組合せを選択する。第1および第2のサブ画像は、特定タイプのオブジェクトの同一インスタンスを描いている。例えば、第1および第2のサブ画像は、第1の時間期間未満である第2の時間期間内に撮影された画像からの、異なる2つの時間における特定人物を描いたものであってよい。第3のサブ画像は、第1および第2のサブ画像内に描かれたオブジェクトの同一インスタンスとは異なる、特定タイプのオブジェクトのインスタンスを描いている。例えば、第3のサブ画像は、第1および第2のサブ画像内に描かれたのとは異なる人物であってよい。第3のサブ画像は、第1の期間中の任意の時間に撮影された画像からのものであってよい。
【００３９】
これらの特徴およびさらなる特徴について、下でより詳細に説明する。
【００４０】
図1Aは、画像埋め込み関数f(.)を画像トリプレットトレーニングデータに基づいて学習させるためのシステム100のブロック図である。システム100は、1つまたは複数のネットワークコンピュータのデータ処理装置システム内に実装することができる。
【００４１】
システム100は、画像埋め込み関数を、3つの画像110、112、114からなる画像トリプレットに対して反復的にトレーニングする。画像110、112、および114は、第1の時間期間T1 124中に捕捉されたトレーニング画像102からオブジェクト検出部104によって検出された、特定タイプのオブジェクトの出現を描いたもの106である。画像埋め込み関数は、入力画像に作用して、出力として画像の特徴表現を生じさせる、1組のパラメータ重みWに基づいている。画像埋め込み関数を定義するデータが、モデルデータ128内に格納されている。
【００４２】
各画像トリプレットは、第1の画像110と、第2の画像112と、第3の画像114との組合せである。画像トリプレットの第1の画像110、第2の画像112、および第3の画像114は、典型的には、他の画像から抽出されたサブ画像であるが、それらは、どのようにオブジェクトが画像内に描かれているかに応じて、画像全体であってもよい。しかし、本説明の残りの部分では、トリプレットは、ほとんどの場合はより大きな画像から抽出されるので、「サブ画像」のことを指す。
【００４３】
第1のサブ画像110は、「アンカー」画像Aとみなすことができ、第2のサブ画像112は、「ポジティブ」画像Pとみなすことができ、一方第3のサブ画像114は、「ネガティブ」画像Nとみなすことができる。トリプレットは、第1および第2のサブ画像が、特定タイプのオブジェクトの同一インスタンスを描いたものとして特定され、第3のサブ画像が、第1および第2の画像内に描かれたオブジェクトの同一インスタンスとは異なる、特定タイプの異なるオブジェクトを描いたものとして特定されるように、選択される。さらに、第1および第2の検出されたオブジェクトそれぞれの検出元となったサブ画像は、第1の時間期間T1の適切なサブセットである第2の時間期間T2 126内に捕捉されたものである。例えば、第1の時間期間が30日期間である場合、第2の時間期間は、6時間期間であってよい。
【００４４】
下で説明するように、システム100はトリプレットを使用して、画像埋め込み関数をトレーニングすることができ、画像埋め込み関数は、トレーニングされると、指定の時間期間(T2)内に捕捉された特定タイプのオブジェクトの同一インスタンスの類似の特徴表現、および特定タイプのオブジェクトの異なるインスタンスの非類似の特徴表現を生成することができる。本説明では、特徴表現は、例えば、画像埋め込み関数によって出力される1組または複数組の特徴重みとすることができる。
【００４５】
いくつかの実装形態では、トリプレットを選択する代わりに、画像ペアを選択することができる。図1Bは、画像埋め込み関数f(.)を画像ペアトレーニングデータに基づいて学習させるための、システム130のブロック図である。システム130は、1つまたは複数のネットワークコンピュータのデータ処理装置システム内に実装することができる。
【００４６】
システム130は、画像埋め込み関数f(.)を画像ペアトレーニングデータに基づいて学習させ、そのコンポーネントは、システム100と同様に定められる。システム130は、画像埋め込み関数を、2つのサブ画像140および142からなる画像ペアに対して反復的にトレーニングする。画像ペアは、2つのサブ画像が、特定タイプのオブジェクトの同一インスタンスを描いており、かつ第2の時間期間T2内に捕捉された画像から抽出されたものである、第1のタイプのものであってもよく、画像ペアは、2つのサブ画像が特定タイプのオブジェクトの異なるインスタンスを描いている、第2のタイプのものであってもよい。
【００４７】
下で説明するように、またシステム100と同様に、システム130は画像ペアを使用して、画像埋め込み関数をトレーニングし、画像埋め込み関数は、トレーニングされると、指定の時間期間(T2)内に捕捉された特定タイプのオブジェクトの同一インスタンスの類似の特徴表現、および特定タイプのオブジェクトの異なるインスタンスの非類似の特徴表現を生成することができる。
【００４８】
システム100の動作について、画像埋め込み関数を画像トリプレットトレーニングデータに基づいて学習させるための一例示的プロセス200の流れ図である図2Aを参照して説明する。プロセス200は、1つまたは複数のネットワークコンピュータのデータ処理装置システム内に実装することができ、このデータ処理装置は、別段明記しない限り、下で説明するステップを実施する。
【００４９】
プロセス200について、その類似性を距離計量に基づいて決定することのできる表現を生成する、特定の画像埋め込み関数の文脈の中で説明する。さらに、画像埋め込み関数f(.)の一例示的実装形態は、画像をユークリッド空間内の点に写像する。しかし、他の画像表現を生成する他の画像埋め込み関数を使用することもできる。したがって、プロセス200によって反復的にトレーニングすることのできるどんな適切な調整可能な関数も使用することができ、すなわち、画像埋め込み関数は、下で説明する特定の例示的関数である必要はない。
【００５０】
プロセス200が、特定タイプのオブジェクトの出現を検出する(202)。例えば、特定タイプのオブジェクトの出現は、画像トレーニングセット102中の画像内で検出される。画像トレーニングセット中の画像は、第1の時間期間T1 124中に捕捉された画像である。特定タイプのオブジェクトの出現を検出することは、自動化された方法によって実施することができる。画像トレーニングセット中の一部の画像は、特定タイプのオブジェクトの出現を含んでいない場合がある。
【００５１】
プロセス200が、検出されたオブジェクトの1回の出現をそれぞれが含むサブ画像を抽出する(204)。例えば、サブ画像は、画像トレーニングセット中の画像から抽出され、ここで各サブ画像は、画像トレーニングセットからの画像の内部の連続した領域である。各サブ画像は、検出されたオブジェクトの1回の出現を描いている。
【００５２】
画像トレーニングセット中の1つの画像から、複数のサブ画像が抽出されてよい。それらのサブ画像は重なり合っていてよく、具体的には、あるオブジェクトの同一出現が、画像トレーニングセット中の同一画像から抽出された複数のサブ画像によって描かれていてよい。サブ画像は、トレーニングセット中の画像内の矩形バウンディングボックス(または任意の幾何学的に定義されたバウンディングボックス)の内部として定義されてよい。バウンディングボックスの位置は、それらの頂点のデカルト座標によってパラメータ化することができる。サブ画像が検出されると、反復プロセスが開始する。
【００５３】
いくつかの実装形態では、抽出された各サブ画像に、所与のキーポイントがアノテーションされてよい。所与のキーポイントは、手動でアノテーションされてもよく、自動化された方法によってアノテーションされてもよく、また画像内の座標の順序付きリストを含みてよく、その場合、各座標はキーポイントの位置を表している。例えば、人間オブジェクトタイプの文脈では、キーポイントは、身体ポイントおよび骨格ポイント、例えば肘部、頭部、胴部、脚部などを描いたポイントであってよい。画像トレーニングセット中の一部の画像には、キーポイントのうちの適切なサブセットがアノテーションされてよい。例えば、人間オブジェクトタイプの文脈では、脚部からのキーポイントは、ウエストから上の人間を描いたサブ画像にはアノテーションすることができない。これらの実装形態では、抽出されたサブ画像が基準サブ画像として選択されてよく、抽出された他の各サブ画像が、それらのそれぞれのキーポイントを基準サブ画像のキーポイントと位置整合させるように変換されてよい。変換には、移動や回転などの一次変換と、制御ポイントのグリッドの変位によってパラメータ化される変換などの非一次変換の両方が関与してよい。変換は、変換されるサブ画像のキーポイントと基準サブ画像のキーポイントとの間の類似性指標を最大にすることによって算出されてよい。
【００５４】
プロセス200が、画像トリプレットを選択する(206)。トリプレット選択層108が、検出されたオブジェクトを含むサブ画像106から画像トリプレットを選択する。画像トリプレットを選択する一例示的方途について、次に本発明者らが移る図3のプロセス300を参照して説明する。
【００５５】
プロセス300が、可能な画像トリプレットを、次によって選択する。第1の検出されたオブジェクトを含む第1のサブ画像110を選択する(302)、また第2の検出されたオブジェクトを含む第2のサブ画像112を選択する、ここで、第2のサブ画像および第1のサブ画像は、特定タイプのオブジェクトの同一インスタンスを描いており、第2の時間期間T2内に捕捉された画像から抽出されたものである(304)。例えば、同一インスタンスは、第2の期間中の同一または異なる時間に撮影された、特定人物の2つの画像であってよい。いくつかの実装形態では、第1および第2のサブ画像が、それらの抽出元である、特定の事象、例えば誕生会中に捕捉された画像に基づいて選択される。プロセス300が次いで、第1および第2のサブ画像内に描かれたオブジェクトの同一インスタンスとは異なる、特定タイプの第3の検出されたオブジェクトを含む第3のサブ画像114を選択する(306)。
【００５６】
所与の反復において、可能な全ての画像トリプレットのうちの適切なサブセットが選択されてよい。任意の所与の反復において、画像埋め込み関数のトレーニングを加速させるために、画像トリプレット中の第1および第2のサブ画像の特徴表現が可能な限り非類似であり、画像トリプレット中の第1および第3のサブ画像の特徴表現が可能な限り類似している、「ハード」画像トリプレットが、好ましくは選択されてよい。
【００５７】
ステップ206は、第1の反復ステップとして描かれているが、いくつかの実装形態では、ステップ206は1度実施されてよく、ステップ208が第1の反復ステップであってよいことに留意されたい。
【００５８】
図2Aに戻ると、プロセス200が、選択された各画像トリプレットの第1、第2、および第3のサブ画像の各々を入力として画像埋め込み関数に与える(208)。例えば、図1Aに示すように、トリプレット選択層108が、画像トリプレットの第1のサブ画像110、第2のサブ画像112、および第3のサブ画像114を、画像埋め込み関数f(.)に与えて、インスタンスf(.)116、f(.)118、およびf(.)120を生成する。各インスタンスは、同一埋め込み関数f(.)を使用しているが、画像トリプレット中の画像のうちの1つだけを入力として受領する。
【００５９】
プロセス200が、画像埋め込み関数によって、各画像トリプレット中の画像の各々の視覚的特徴の表現を生成する(210)。例えば、図1Aに示すように、表現f(A)、f(P)、およびf(N)が生成される。いくつかの実装形態では、埋め込み関数が、出力特徴表現として画像のユークリッド空間への写像を生成する。しかし、他の表現を生成する他の関数を使用することができる。
【００６０】
プロセス200が、画像埋め込み関数の性能指標を、画像トリプレットのそれぞれの特徴表現の類似性指標に基づいて決定する(212)。性能指標を決定する一例示的方途について、次に本発明者らが移る図4のプロセス400を参照して説明する。
【００６１】
各トリプレットについて、プロセス400が、画像トリプレット中の第1の画像の第1の特徴表現とその画像トリプレット中の第2の画像の第2の特徴表現の類似性を測定する第1の類似性指標を決定する(402)。同様に、各画像トリプレットについて、プロセス400が、画像トリプレット中の第1の画像の第1の特徴表現とその画像トリプレット中の第3の画像の第3の特徴表現の類似性を測定する第2の類似性指標を決定する(404)。
【００６２】
プロセス400が次いで、画像埋め込み関数の性能指標を、画像トリプレットの第1および第2の類似性指標に基づいて決定する(406)。埋め込み関数が画像をユークリッド空間に写像する場合、モデル性能指標層122は、類似性指標としてユークリッド距離、例えば、
【００６３】
【数１】
0006905079.tif 000002
【００６４】
を使用してよい。
【００６５】
したがって、距離Dが小さいほど、特徴表現f(A)と特徴表現f(P)との(またはf(A)とf(N)との)間の類似性が高い。反対に、距離Dが大きいほど、特徴表現f(A)と特徴表現f(P)との(またはf(A)とf(N)との)間の類似性が低い。
【００６６】
繰り返して言うが、他の計量法を使用して、特徴表現間の類似性を測定することができる。使用される類似性測定法は、画像埋め込み関数f(.)が生成する表現に応じて決まってよい。
【００６７】
類似性指標がユークリッド距離である場合、モデル性能指標層122は、画像トリプレットについての第1および第2の類似性指標を、アンカー画像の特徴表現とポジティブ画像の特徴表現との間の第1のユークリッド距離、およびアンカー画像の特徴表現とネガティブ画像の特徴表現との間の第2のユークリッド距離に基づいて、決定することができる。このタイプの画像埋め込み関数が使用されるとき、システム100は、
【００６８】
【数２】
0006905079.tif 000003
【００６９】
と表すことのできる、第1の類似性指標が第2の類似性指標よりも小さくなる画像トリプレットについての特徴表現を生成する画像埋め込み関数f(.)を学習させようと試みる。
【００７０】
上式で、αは、ポジティブとネガティブのペア間に強いられる指定のマージンであり、Γは、選択された画像トリプレットのセットである。
【００７１】
性能指標には、画像トリプレットについての第1のユークリッド距離と第2のユークリッド距離との差に基づくヒンジ損失を決定すること、例えば、
【００７２】
【数３】
0006905079.tif 000004
【００７３】
が関与してよい。
【００７４】
性能指標には、選択された各画像トリプレットについてのヒンジ損失項を合計すること、例えば、
【００７５】
【数４】
0006905079.tif 000005
【００７６】
が関与してよい。
【００７７】
いくつかの実装形態では、抽出された各サブ画像に、所与のキーポイントがアノテーションされてよく、画像埋め込み関数が、画像トリプレットおよびキーポイントアノテーションに対して反復的にトレーニングされてよい。いくつかの実装形態では、画像埋め込み関数の出力が、入力画像の特徴表現、および入力画像の予測されたキーポイントアノテーションを含む。これらの実装形態では、性能指標は、画像埋め込み関数によって予測されたキーポイントアノテーションと所与のキーポイントアノテーションとの間の類似性指標を含んでよい。他のいくつかのの実装形態では、画像埋め込み関数の入力が、入力画像、および入力画像のアノテーションされたキーポイントを含む。
【００７８】
画像埋め込み関数f(.)の出力に応じた他のタイプの性能指標を使用することもできる。
【００７９】
図2Aに戻ると、プロセス200が、画像埋め込み関数のパラメータ重みを、性能指標に基づいて調整する(214)。例えば、画像埋め込み関数のパラメータ重みは、画像埋め込み関数の性能指標に基づいて調整される。パラメータ重みは、画像埋め込み関数の性能を性能指標に従って改善するように調整されてよい。調整には、ネットワークパラメータに関して損失関数の勾配を算出すること、およびネットワークパラメータをこの勾配に基づいて調整することが関与してよい。勾配に基づくパラメータ重み更新の積極性は、スカラー「学習率」変数に応じて決まってよい。学習率は、反復相互間で変化してよい。
【００８０】
プロセス200が、停止事象が生じたかどうかを判定する(216)。停止事象は、トレーニングプロセスにさらなるトレーニング反復の実施をストップさせる事象である。例えば、トレーニング反復の最大数に達したこと、性能指標が指定のしきい値を達成したこと、および反復相互間の性能指標の変化が指定のしきい値を達成したことが、停止事象となり得る。停止事象は、トレーニングプロセスの任意の反復に含めるために選択されたのではない画像トリプレットに基づいて評価された、画像埋め込み関数の第2の性能指標に基づいてよい。停止事象が生じたと判定された場合、トレーニングが終了する。
【００８１】
停止事象が生じていないと判定された場合、プロセス200は、ステップ206(または実装形態に応じてステップ208)に戻り、繰り返してよい。そうでない場合、トレーニングが終了する(218)。
【００８２】
上で説明したように、図2Bの例など、他の実装形態では、画像ペアが使用される。この例示的実装形態の動作について、画像埋め込み関数を画像ペアトレーニングデータに基づいて学習させるための一例示的プロセス220の流れ図である図2Bを参照して説明する。プロセス220は、1つまたは複数のネットワークコンピュータのデータ処理装置システム内に実装することができ、このデータ処理装置は、別段明記しない限り、下で説明するステップを実施する。
【００８３】
プロセス220は、画像埋め込み関数が、画像トリプレットトレーニングデータの代わりに画像ペアトレーニングデータに基づいて学習することを除き、プロセス200に類似している。したがって、ステップ222、224、226、および228のみについて下で説明する。他のステップは、図2Aにおいて説明した通りである。
【００８４】
プロセス200が、第1のタイプおよび第2のタイプの画像ペアを選択し(ステップ222)、各画像ペアについて、第1および第2の画像を画像埋め込み関数に与え(ステップ224)、各画像ペアについて、画像埋め込み関数によって、画像の各々についての特徴表現を生成し(ステップ226)、画像埋め込み関数の性能指標を、画像ペアのそれぞれの特徴表現の類似性指標に基づいて決定し(ステップ228)、その他については、プロセス200と同様に進む。
【００８５】
トレーニングされたモデルは次いで、存続し、画像処理システム内に実装されてよい。トレーニングされた画像埋め込み関数の1つのそのような応用例について、図5を参照して説明する。図5は、画像セット502からの画像を、例えばトレーニングされた画像埋め込み関数を使用して画像をグループに分類すること(または写真を「グループ化すること」)によって分類するためのシステム500のブロック図である。システム500は、1つまたは複数のネットワークコンピュータのデータ処理装置システム内に実装することができる。
【００８６】
システム500は、画像セットからの画像を、画像内の特定タイプのオブジェクトの出現に基づいてグループ化し、またはその他の形で分類する。モデルデータ128は、特定タイプのオブジェクトの表現を生成するようにプロセス200によってトレーニングされた画像埋め込み関数506に対応する。オブジェクト検出部104が、画像セット中の画像から特定タイプのオブジェクトを検出し、検出されたオブジェクトの出現を描いたサブ画像504が抽出される。上で説明したようにトレーニングされた画像埋め込み関数506が、特定タイプの検出されたオブジェクトを描いたサブ画像の特徴表現を生成し、クラスタ化アルゴリズム508が、これらの特徴表現をグループに割り当てる。上述したように、入力画像セットを分類した結果は、例えば、実体を制御する制御システムへの入力として使用されてよい。
【００８７】
システム500の動作について、画像セットからの画像を画像内の特定タイプのオブジェクトの出現に基づいてグループ化するための一例示的プロセス600の流れ図である図6を参照して説明する。プロセス600は、1つまたは複数のネットワークコンピュータのデータ処理装置システム内に実装することができ、このデータ処理装置は、別途明記しない限り、下で説明するステップを実施する。
【００８８】
プロセス600が、画像セット中の画像内の特定タイプのオブジェクトの出現を検出し、それらの画像から、特定タイプのオブジェクトの1回の出現をそれぞれが描いているサブ画像を抽出する(602)。このステップは、上で説明したステップ202および204に類似していてよい。
【００８９】
プロセス600が、特徴表現を生成するトレーニングされた画像埋め込み関数506に各サブ画像を入力することによって、各サブ画像についての特徴表現を生成する(604)。トレーニングされた画像埋め込み関数506は、上で説明したようにトレーニングされている。
【００９０】
プロセス600が、抽出されたサブ画像の生成された特徴表現をクラスタ化することによって、生成された特徴表現を検出されたオブジェクトのグループに割り当てる(606)。例えば、画像埋め込み関数がユークリッド空間に写像する実装形態では、クラスタ化アルゴリズムがk平均アルゴリズムまたは期待値最大化(EM)アルゴリズムであってよい。
【００９１】
プロセス600が、画像セット中の画像を画像グループに割り当てる(608)。割り当ては、検出されたオブジェクトのグループに基づいてよく、その際、第1の画像から抽出された第1のサブ画像および第2の画像から抽出された第2のサブ画像が、検出されたオブジェクトの同一グループに割り当てられる場合、画像セットからの第1の画像および画像セットからの第2の画像は、同一画像グループに割り当てられる。画像セット中の1つの画像が、複数の画像グループに割り当てられる場合があることに留意されたい。例えば、第1の画像がオブジェクトインスタンスAを示し、第2の画像がオブジェクトインスタンスBを示し、第3の画像が、オブジェクトインスタンスAとBの両方を示し、ここで、オブジェクトインスタンスAがオブジェクトインスタンスBとは異なるなら、第1の画像と第2の画像は、別々の画像グループに割り当てられ、第3の画像は、その別々の画像グループの両方に割り当てられることになる。
【００９２】
一実装形態では、オブジェクトの特定タイプが人体全身であり、システム500が、人物の写真をグループ化するために利用され、その際、同一人物を描いた写真が同一グループに割り当てられる。人物の写真を、検出された顔の類似性に基づいてグループ化するための方法では、顔が認識できない場合に写真を首尾よくグループ化することが困難である。顔は、小さいこと、遮られていること、または背景内にあること、を含む理由のため、認識できない場合がある。しかし、各画像内で検出された全身を描いたサブ画像の特徴表現が、検出されたオブジェクトの同一グループに割り当てられる場合に、2つの画像が同一画像グループに割り当てられるという、検出された全身の類似性に基づいた人物の写真のグループ化は、これらの課題に対してよりロバストである。
【００９３】
いくつかの実装形態では、図1Aまたは図1Bのシステムを使用して、画像埋め込み関数f(.)を実装した人工ニューラルネットワーク構造をトレーニングすることができる。この人工ニューラルネットワークは、画像Iの埋め込み:f(I)∈Rd、ただしdは特徴埋め込みの次元である、を算出する。
【００９４】
上で説明したように、性能指標層122が埋め込み関数の性能を評価する。ニューラルネットワークを使用して埋め込み関数を生成する場合、性能指標層122は、勾配をネットワークのより下位層に逆伝搬して、より下位層が、損失を最小限に抑えるようにそれらのパラメータを調整することができるようにする。
【００９５】
ニューラルネットワークは、複数のニューロンからそれぞれがなり、各ニューロンが複数の入力を受領するように構成され、各ニューロンに活性化関数が備わった、複数の積み重なった層を含みてよい。これらの層は、畳み込み層、プーリング層、局所正規化層、および全結合層を含んでよい。活性化関数は、シグモイド、tanh、正規化線形、leaky正規化線形、またはmaxoutであってよい。
【００９６】
畳み込み層は、入力を受領し、それを1組の学習済みカーネルと畳み込み積分して、特徴マップを生じさせる。カーネルは、埋め込みに関連する、エッジなどの局所画像特徴を検出するように、適応的に学習してよい。
【００９７】
最大プーリング層は、画素周囲の局所近傍にわたって最大プーリングを実施する。最大プーリングは、プーリングされたブロックの最大値を選択するものである。平均プーリング層は、画素周囲の局所近傍にわたって平均プーリングを実施する。平均プーリングは、プーリングされたブロックの平均値を算出するものである。プーリング層は、特徴マップを、わずかな移動に対してロバストにすることができる。
【００９８】
正規化層は、畳み込みニューラルネットワークの出力を正規化スケールに正規化する。いくつかの実装形態では、正規化層は、局所近傍周囲の特徴マップを、単位ノルムおよびゼロ平均を有するように正規化する。これにより、照明およびコントラストの差に対してロバストな特徴マップがもたらされる。
【００９９】
ニューラルネットワークは、1つまたは複数のパラメータ重み正則化ストラテジを実装してよい。性能指標は、ニューラルネットワークのパラメータ重みのノルムを算出する正則化項を含む損失関数であってよい。ニューラルネットワークは、ニューロン共適応を防ぐためにニューロンをランダムに削除するものである、ドロップアウトを実装してよい。
【０１００】
本明細書において説明した本主題および動作の実施形態は、デジタル電子回路として、またはコンピュータソフトウェア、コンピュータファームウェア、もしくは本明細書において開示した構造およびそれらの構造的等価物を含むコンピュータハードウェアとして、またはそれらのうちの1つもしくは複数の組合せとして、実装することができる。本明細書において説明した本主題の実施形態は、データ処理装置によって実行できるように、またはデータ処理装置の動作を制御するためにコンピュータ記憶媒体上に符号化された、1つまたは複数のコンピュータプログラム、すなわちコンピュータプログラム命令の1つまたは複数のモジュールとして、実装することができる。
【０１０１】
コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せとすることができ、またはその中に含めることができる。さらに、コンピュータ記憶媒体は、伝搬信号ではないが、人工的に生成された伝搬信号内に符号化されたコンピュータプログラム命令の供給元または供給先とすることができる。
【０１０２】
本明細書において説明した動作は、データ処理装置によって、1つまたは複数のコンピュータ可読記憶デバイス上に格納された、または他の供給元から受領されたデータに対して実施される動作として、実装することができる。
【０１０３】
「データ処理装置」という用語は、例としてプログラマブルプロセッサ、コンピュータ、システムオンチップ、または前述したもののうちの複数のもの、もしくは前述したものの組合せを含む、データを処理するためのあらゆる種類の装置、デバイス、およびマシンを包含する。装置は、専用論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置は、ハードウェアに加えて、当該のコンピュータプログラムのための実行環境を作り出すコード、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォーム実行時環境、仮想マシン、またはそれらのうちの1つもしくは複数の組合せを構成するコードも含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティング、およびグリッドコンピューティングのインフラストラクチャなど、さまざまな異なるコンピューティングモデルインフラストラクチャを実現することができる。
【０１０４】
(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)コンピュータプログラムは、コンパイル型言語またはインタープリタ型言語、宣言型言語または手続き型言語を含む、任意の形態のプログラミング言語で記述することができ、またそれは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境において使用するのに適した他のユニットとして、を含む、任意の形態でデプロイすることができる。コンピュータプログラムは、その必要はないが、ファイルシステム内のファイルに対応してよい。プログラムは、他のプログラムもしくはデータを保持するファイルの一部分(例えば、マークアップ言語ドキュメント内に格納された1つもしくは複数のスクリプト)内に、当該のプログラムに専用の単一ファイル内に、または複数の連係されたファイル(例えば、コードの1つもしくは複数のモジュール、サブプログラム、もしくは一部分を格納するファイル)内に、格納することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置するかもしくは複数のサイトにわたって分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように、デプロイすることができる。
【０１０５】
本明細書において説明したプロセスおよび論理フローは、アクションを実施するための1つまたは複数のコンピュータプログラムを、入力データに作用し出力を生成することにより実行する、1つまたは複数のプログラマブルプロセッサによって実施することができる。コンピュータプログラムの実行に適したプロセッサとしては、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータのいずれか1つまたは複数のプロセッサがある。一般に、プロセッサは、読出し専用メモリまたはランダムアクセスメモリまたはその両方から、命令およびデータを受領する。コンピュータの必須要素は、命令に従ってアクションを実施するためのプロセッサ、ならびに命令およびデータを格納するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを格納するための1つまたは複数の大容量記憶デバイス、例えば磁気ディスク、光磁気ディスク、または光ディスクを含むか、またはそこからデータを受領するか、もしくはそこにデータを転送するか、もしくはその両方を行うように、動作可能に結合される。しかし、コンピュータは、そのようなデバイスを有している必要はない。
【０１０６】
本明細書において説明した本主題の実施形態は、例えばデータサーバとしてのバックエンドコンポーネントを含むか、またはミドルウェアコンポーネント、例えばアプリケーションサーバを含むか、またはフロントエンドコンポーネント、例えば、本明細書において説明した本主題の実装形態とそれを通じてユーザが対話することのできるグラフィカルユーザインターフェースもしくはウェブブラウザを有するユーザコンピュータを含むか、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含む、コンピューティングシステム内に実装することができる。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信、例えば通信ネットワークによって、相互接続することができる。
【０１０７】
コンピューティングシステムは、ユーザおよびサーバを含むことができる。ユーザとサーバは一般に、互いに遠隔にあり、典型的には、通信ネットワークを通じて対話する。ユーザとサーバの関係は、コンピュータプログラムがそれぞれのコンピュータ上でランし、互いにユーザ-サーバ関係を有することによって生じる。
【０１０８】
本明細書は、実装形態の多くの具体的詳細を含んでいるが、これらは、特許請求され得るものの範囲に対する限定と解釈すべきではない。本明細書において別々の実施形態の文脈の中で説明される、いくつかの特徴は、単一の実施形態において組み合わせて実装することもできる。反対に、単一の実施形態の文脈の中で説明されるさまざまな特徴を、複数の実施形態において別々に、または任意の適切な部分組合せで実装することもできる。さらに、特徴については上で、ある特定の組合せで作用するものと説明されていることがあり、そういうものとして最初に特許請求されていることすらあるが、特許請求された組合せからの1つまたは複数の特徴を、場合によっては、その組合せから削除することができ、特許請求された組合せが、部分組合せまたは部分組合せの変形を対象としていてよい。
【０１０９】
同様に、動作は図面中に特定の順序で描かれているが、これは、望ましい結果を達成するために、そのような動作が図示の特定の順序で、もしくは順番に実施されること、または示された全ての動作が実施されることを要求するものと理解すべきではない。ある特定の状況下では、マルチタスキングおよび並列処理が、有利となる場合がある。さらに、上で説明した実施形態におけるさまざまなシステムコンポーネントの分離は、全ての実施形態においてそのような分離を要求するものと理解すべきではなく、説明したプログラムコンポーネントおよびシステムは一般に、単一のソフトウェア製品に一緒に統合するか、または複数のソフトウェア製品にパッケージ化できる、ということを理解されたい。
【０１１０】
かくして、本主題の特定の実施形態について説明してきた。他の実施形態が、添付の特許請求の範囲に記載の範囲内に含まれる。場合によっては、特許請求の範囲内に記載されたアクションを、異なる順序で実施し、それでもなお、望ましい結果を達成することができる。加えて、添付の図中に描かれたプロセスは、望ましい結果を達成するために、図示の特定の順序、または順番を必ずしも要求するとは限らない。いくつかの実装形態では、マルチタスキングおよび並列処理が、有利となる場合がある。
【符号の説明】
【０１１１】
100  システム
102  トレーニング画像、画像トレーニングセット
104  オブジェクト検出部
106  特定タイプのオブジェクトの出現を描いたもの、検出されたオブジェクトを含むサブ画像
108  トリプレット選択層
110  第1の画像、第1のサブ画像
112  第2の画像、第2のサブ画像
114  第3の画像、第3のサブ画像
122  モデル性能指標層
124  第1の時間期間T1
126  第1の時間期間T1の適切なサブセットである第2の時間期間T2
128  モデルデータ
130  システム
140  サブ画像
142  サブ画像
200  一例示的プロセス
220  一例示的プロセス
300  プロセス
400  プロセス
500  システム
502  画像セット
504  検出されたオブジェクトの出現を描いたサブ画像
506  画像埋め込み関数
508  クラスタ化アルゴリズム
600  一例示的プロセス
【図１Ａ】
0006905079.tif 000006
【図１Ｂ】
0006905079.tif 000007
【図２Ａ】
0006905079.tif 000008
【図２Ｂ】
0006905079.tif 000009
【図３】
0006905079.tif 000010
【図４】
0006905079.tif 000011
【図５】
0006905079.tif 000012
【図６】
0006905079.tif 000013