本文書は、画像またはビデオセグメント内のオブジェクトを識別することができる画像処理システムについて説明している。一実施形態では、システムは、オブジェクトを含む画像の領域を識別することにより動作する。一実施形態では、各領域について、オブジェクトの属性が判定され、属性に基づいて、システムはオブジェクトを識別するか、または類似のオブジェクトを識別することができる。いくつかの実施形態では、システムは、ビデオセグメント内の複数の画像フレームを通じてオブジェクトを追跡するためにトラックレットを使用し、オブジェクト検出において複数の画像フレームが使用されることを可能にし、それによりオブジェクト検出の精度が向上する。
一実施形態では、システムは、検出された各オブジェクトのカテゴリを判定する。一例では、階層検出器は、カテゴリのツリーを出力として予測する。このアプローチは、様々なオブジェクトカテゴリ間の視覚的な類似性を学習し、カテゴリのツリーを予測する。結果として得られるフレームワークにより、新規オブジェクトに対する検出器の汎化能力が大幅に向上する。いくつかの例では、システムは、新しいラベル付きデータを取得したり、ネットワークを再トレーニングしたりする必要なしに、新規カテゴリの追加を検出できる。
本明細書で説明される様々な実施形態は、ディープラーニングベースのオブジェクト検出フレームワーク、および様々なオブジェクトカテゴリ間に存在する相関を明示的にモデル化する類似オブジェクト検索フレームワークを利用する。一実施形態では、オブジェクト検出フレームワークは、単一のカテゴリの代わりに出力として階層ツリーを予測する。例えば、「Tシャツ」オブジェクトの場合、検出器は、
を予測する。上位レベルのカテゴリ「トップインナーウェア」は、[‘ブラウス_シャツ(blouses_shirts)’,‘Tシャツ(tees)’,‘タンクトップ_キャミソール(tank_camis)’,‘チュニック(tunics)’,‘セーター(sweater)’]を含む。階層ツリーは、オブジェクトカテゴリ間の相関を使用しないオブジェクト検出器のエラーを分析することにより推定される。したがって、本明細書に記載の技術は以下を含む。
1.オブジェクトドメインの階層検出フレームワーク
2.検出誤差の直接分析に少なくとも部分的に基づいて、階層/セマンティックツリーを推定する方法
3.推定された階層ツリーを使用して、新規カテゴリオブジェクトの追加と検索の実行を実証すること
一実施形態では、システムは、視覚データを使用して関連オブジェクトのバウンディングボックスおよび対応するカテゴリを計算することにより、画像内の関心領域を決定する。いくつかの例では、カテゴリ予測は、合計K個のオブジェクトカテゴリのうち1つだけが各バウンディングボックスに関連付けられていると想定している。1-of-K分類は、各オブジェクトカテゴリを他のオブジェクトカテゴリから可能な限り遠ざけることを奨励する「ソフトマックス」層によって実現され得る。しかしながら、いくつかの例では、このプロセスは、オブジェクトカテゴリに存在する相関情報の活用に失敗する場合がある。例えば、「ジーンズ」は「コート」に比べて「ズボン」に近い。一実施形態では、この相関の活用は、最初に「下半身」を予測し、階層ツリー予測を介して「ジーンズ」、「ズボン」、および「レギンス」のセットである「下半身」カテゴリから1つの要素を選択することによって達成される。いくつかの実施形態では、システムは、特定のカテゴリに属するオブジェクトの他のオブジェクトからの分離を改善し、画像内のオブジェクトの位置の識別を改善する。
一実施形態では、階層予測フレームワークは、オブジェクト検出器と統合される。いくつかの実施形態では、ジェネリック検出器は、入力画像Iを取り、バウンディングボックスbbのリストおよびバウンディングボックスの各々についての対応するカテゴリcを生成する微分可能な(例えば、任意のディープラーニングベースの検出器)マッピング
とすることができる。階層検出器は、各バウンディングボックスについてのルートカテゴリからリーフカテゴリF(C)へのパス/フローを生成する新しい微分可能なマッピング
を学習する。一実施形態では、微分可能なマッピングは、勾配ベースの最適化を介してグラウンドトゥルースデータからこれらのパラメータの値を推定するために、そのパラメータに関して微分され得る数学関数である。例示的な実装形態では、ジェネリック検出器から階層検出器への移行に2つのステップが含まれる。一実施形態では、第1のステップは、以下で説明するように、ジェネリック検出器をトレーニングし、カテゴリ階層ツリーを推定することである。カテゴリ階層に基づいて、ディープラーニングフレームワークは、階層カテゴリを予測するように設計された損失関数で再トレーニングされる。
カテゴリツリーを推定するために、一実施形態では、様々なカテゴリ間の視覚的類似性を推定する。本明細書で開示および示唆される技術は、オブジェクト検出器の視覚的に類似したカテゴリを編成することにより、従来技術を改善する。以前の多くの作業は、カテゴリレベルの情報の代わりに、属性レベルのアノテーションを使用してアノテーションタグ階層を生成することに焦点を合わせてきた。しかしながら、このような作業は、視点、オブジェクトパーツの位置、回転、オブジェクト固有属性などの情報で各カテゴリに注釈(アノテーション)を付けるために、人間の多大な労力を必要とする。いくつかの例では、検出を改善するために、各オブジェクトカテゴリに対して属性ベース(視点、回転、パーツ位置など)の階層的クラスタリングを生成する。対照的に、本明細書で開示されるいくつかの実施形態は、カテゴリレベル情報を使用し、オブジェクトカテゴリに対して単一の階層ツリーのみを生成する。
本開示の例示的な実装形態は、最初にカテゴリ間の距離を考慮せずにトレーニングされたジェネリック検出器の誤差を評価し、続いて様々なカテゴリ間の視覚類似性により生成されるクロス誤差(cross-error)を分析することにより、カテゴリ階層を推定する。一実施形態では、Faster-RCNNベースの検出器がトレーニングされ、検出器誤差が評価される。例えば、ジェネリック検出器(現在のケースではFaster-RCNN検出器)によって生成された偽陽性が検出され得、視覚的に類似したカテゴリに起因する一部またはすべての誤差が計算される。これらの誤差は、例えば、他のオブジェクトカテゴリとの0.1から0.5の間のintersection-over-union(「IOU」)比を有するバウンディングボックスで偽陽性を測定することによって計算され得る。この方法では、「靴」や「ブーツ」などの視覚的に類似したクラスが、頻繁に相互に誤分類され、より高いクロスカテゴリ偽陽性エラーを生成する。
多くの従来技術は、カテゴリ固有の情報とは別に属性レベルの情報を使用して、新規オブジェクトカテゴリの検出を実行することに焦点を合わせてきた。いくつかの例では、属性レベルの情報を使用して、新規カテゴリからオブジェクトを検出する。例えば、新しいオブジェクトカテゴリ「馬」は、「足」、「哺乳類」、および「動物」カテゴリの組み合わせとして認識される。属性ベースの認識は、オブジェクトカテゴリの各々について、属性固有の分類子および属性レベルのアノテーションを学習することを必要とする。比較すると、本開示のいくつかの実施形態は、属性アノテーションも属性固有の分類子も必要としない。新しい各カテゴリについて、予想されるルートレベルのカテゴリが割り当てられ、その後、そのカテゴリについて最高の信頼スコアを有するバウンディングボックスが推定され得る。
本明細書に開示される様々な実施形態に従って動作するシステムは、カテゴリ固有の非最大抑制(non-maximal suppression)を実行して、各リーフノードカテゴリのバウンディングボックスを選択し、ここで、バウンディングボックスは固有のものであり得る。下位レベルのすべてのカテゴリについて、そのようなシステムは、すべての子ノードからのバウンディングボックスを考慮することにより、出力を抑制し得る。いくつかの実施形態では、このことは、より固有のカテゴリからのバウンディングボックスが検出され得るときはいつでも、偽の(spurious)低レベルのカテゴリボックスを減らすのに役立つ。
様々な実施形態において、クライアントコンピュータシステム上のユーザインタフェースは、製品情報をユーザに提示する。いくつかの例では、クライアントコンピュータシステムは、デスクトップコンピュータシステム、ノートブックコンピュータシステム、タブレットデバイス、携帯電話、シンクライアント端末、キオスク、またはPOSデバイスである。一例では、クライアントコンピュータシステムは、ウェブブラウザを実行するパーソナルコンピュータデバイスであり、ユーザインタフェースは、販売者によって運営されるウェブサーバからウェブブラウザに提供される。ウェブブラウザは、ユーザインタフェースをパーソナルコンピュータデバイスのディスプレイ上にレンダリングし、ユーザは、仮想キーボードまたはタッチスクリーンを介してディスプレイと対話する。別の例では、パーソナルコンピュータデバイスは、ウェブブラウザを実行するパーソナルコンピュータシステムであり、ユーザは、キーボードおよびマウスを使用してユーザインタフェースと対話する。クライアントコンピュータシステムと販売者が運営するウェブサーバとの間で交換される情報は、コンピュータネットワークを介して交換され得る。いくつかの実施形態では、情報は暗号化され、セキュアソケット層(「SSL」)またはトランスポート層セキュリティ(「TLS」)接続を介して送信される。
様々な例において、重要な考慮事項は、ユーザが、所望の外見または「外観(look)」を生成するために、提供された製品を他の製品とどのように組み合わせるかを決定できるかどうかである。例えば、ユーザは、提供された製品が、ユーザが既に所有している他の製品または衣料品と「よく合う」かどうかを判定することを望み得る。他の例では、ユーザは、提供された製品と一緒に着用するために購入することが可能な他の製品を識別することを望み得る。状況によっては、望ましい外観を実現するために製品がどのように使用または着用されるかが、個々の製品の魅力よりも決定的であり得る。したがって、様々な外観を生成するために、提供された製品と共に使用され得る関連アイテムをユーザが簡単に識別することを可能にするシステムおよびユーザインタフェースを生成することが望ましい。
一実施形態では、システムは、小売業者のウェブサイトのウェブコードに追加され得るソフトウェア開発キット(「SDK」)を提供する。SDKは、小売業者のウェブサイトに機能を追加して、希望する外観を生成する販売用に提供される製品に関連するアイテムをユーザが識別できるようにする。追加された機能は、提供された製品に関連するスタイルの推奨を提供することによって、提供された製品をどのように着用するかに関する情報を提供することにより、ユーザが安心できるようにする。
一実施形態では、SDKは、ブランドのソーシャルメディアコンテンツおよびルックブック写真を、販売者のウェブサイト上の対応する製品ページに視覚的にマッチさせる。SDKは、著名人および一般の人々が販売されている製品をどのように着用しているかをユーザが見ることを可能にするユーザインタフェースを提供する。また、システムは、推奨された外観で人々が着用しているアイテムに類似した製品を識別し、ユーザが外観全体を比較できるようにする。
一実施形態では、ビジュアル検索機能は、販売者のウェブサイトコードにJavaScript(登録商標)へのリンクを追加することにより、販売者のウェブサイトに追加される。SDKは、元のウェブサイトのトップ上のレイヤとして機能し、一般に、SDKは、販売者のウェブサイトの動作に干渉しない。
一実施形態では、ユーザは、クライアントコンピュータシステム上で実行されるウェブブラウザを使用して販売者のウェブサイトにアクセスする。ウェブブラウザは、SDKへの参照を含む販売者のウェブサイトからコードをロードする。ウェブブラウザは、参照によって識別される実行可能コードをロードし、ウェブブラウザ内でそれを実行する。いくつかの例では、実行可能コードは、コンピュータシステム上でホストされるJavaScriptプラグインである。
一実施形態では、SDKによってユーザのウェブブラウザにダウンロードされた実行可能コードが実行されて、ウェブブラウザが、本明細書に記載のユーザインタフェースをユーザに対し表示するようにする。一実施形態では、実行可能コードは、ウェブブラウザがオンラインサービスにコンタクトするようにもする。オンラインサービスは、外観のデータベースを保持し、各外観は、共に着用すると関連する外観を形成する製品のリストを含む。一実施形態では、各外観は、製品のセットに関連して格納されている。別の実施形態では、製品のセット内の各製品は、特性のセットとして特徴付けられている。例えば、特定の外観は、シャツ、ズボン、および帽子を含み得る。シャツ、ズボン、および帽子は、購入可能な特定の製品として識別され得る。代替的に、各製品は、特性のセットとして説明され得る。例えば、帽子は、ショート、ブラウン、ツイードと記述され、シャツは、白、長袖、Vネック、綿ニットと記述され得る。
一実施形態では、オンラインサービスは、SKU、製品識別子、特性のセット、または画像の形式で特定の衣料品を提供され、オンラインサービスは、特定の衣料品を含む1つまたは複数の外観を識別する。いくつかの実施形態では、オンラインサービスは、類似の衣料品を含む1つまたは複数の外観を識別する。オンラインサービスは、外観を画像の形式で返し、外観に関連付けられている個々の製品に関する情報を返す。オンラインサービスは、各製品が画像のどこで着用されているかを示すバウンディングボックス情報をも含み得る。
図1は、一実施形態における、ユーザに製品の推奨を提示するシステム100の説明のための例を示す。一実施形態では、システム100は、ウェブサイトをホストするウェブサーバ102を含む。様々な例において、ウェブサーバ102は、コンピュータサーバ、サーバクラスタ、仮想コンピュータシステム、コンピュータランタイム、またはウェブホスティングサービスであってよい。ウェブサイトは、ハイパーテキストマークアップ言語(「HTML」)ファイル、スクリプトファイル、マルチメディアファイル、拡張可能マークアップ言語(「XML」)ファイル、およびウェブサーバ102にアクセス可能なコンピュータ読み取り可能媒体に格納された他のファイルのセットである。実行可能命令は、ウェブサーバ102のメモリに格納されている。実行可能命令は、ウェブサーバ102のプロセッサによって実行される結果として、ウェブサーバ102に、ハイパーテキストトランスポートプロトコル(「HHTP」)またはセキュアハイパーテキストトランスポートプロトコル(「HTTPS」)に従ってネットワークインタフェースを介してウェブサイトのコンテンツを提供させる。一実施形態では、ウェブサーバ102は、インターネットに接続されたネットワークインタフェースを含む。
クライアントコンピュータシステム104は、コンピュータネットワークを介してウェブブラウザを使用してウェブサーバ102と通信する。一実施形態では、クライアントコンピュータシステム104は、パーソナルコンピュータシステム、ラップトップコンピュータシステム、タブレットコンピュータシステム、携帯電話、またはプロセッサと、メモリと、ウェブサーバ102と通信するためのインタフェースとを含むハンドヘルドデバイスであってよい。一実施形態では、インタフェースは、イーサネット(登録商標)インタフェース、Wi-Fiインタフェース、セルラーインタフェース、Bluetooth(登録商標)インタフェース、光ファイバインタフェース、またはウェブサーバ102との直接的または間接的な通信を可能にする衛星インタフェースであってよい。クライアントコンピュータシステム104を使用して、ユーザ106は、販売用の製品ならびにウェブサーバ102により提示される外観を探索することができる。様々な例において、ウェブサーバ102は、ウェブサーバ102によって保持されている情報を通じて確立された製品リンクに基づいて、様々な製品をユーザ106に推奨する。
一実施形態では、ウェブサーバ102は、スタイル画像のデータベース108、製品情報のデータベース110、および外観情報のデータベース112を保持する。様々な例において、スタイル画像は、著名人、モデル、または特定の外観を示す人物の画像またはビデオを含み得る。製品情報のデータベース110は、製品が購入され得る場所、関連するデザイナーまたはソース、およびファブリックのタイプ、色、テクスチャ、コスト、およびサイズなどの製品の様々な属性に関する情報を含み得る。外観情報のデータベース112は、共に着用すると、所望の外見を作り出す品物のセットを説明する情報を含む。いくつかの例では、外観情報のデータベース112は、特定の外観を得るために共に着用され得る衣料品を識別するために、または既に購入された製品と組み合わされ得る追加の製品を提案するために、ウェブサーバ102によって使用され得る。一実施形態では、推奨は、ネットワークを介してウェブサーバ102からクライアントコンピュータシステム104に、追加製品のセットを記述する情報を送信することにより行われ得る。
図2は、外観に関連する情報を格納するためのデータレコード200の説明のための例を示す。データ構造は、コンピュータプログラムが特定のデータ構造および個々のデータ構造の様々なフィールドをナビゲートおよび検索できるように、個々のデータフィールド間の書式設定、配置、およびリンクを指定するデータの編成である。データレコードは、特定のデータ構造に従って格納されたデータのユニットである。データレコード200は、半導体メモリまたはコンピュータシステムにアクセス可能なディスクに格納され得る。一実施形態では、外観レコード202は、外観ソースデータフィールド204および品物セット206を含む。外観ソースデータフィールド204は、ユニフォームリソースロケーター(「URL」)、画像識別子、ビデオセグメント識別子、ウェブサイトアドレス、ファイル名、または外観レコード202を生成するために使用される画像、ビデオセグメント、またはルックブックを識別するメモリポインタを含み得る。例えば、外観レコードは、著名人の画像に基づいて生成され、画像のソースは、外観ソースデータフィールド204において識別され得る。別の例では、外観レコードは、衣料品メーカーによって提供されるルックブックのエントリから生成されてもよく、外観ソースデータフィールド204は、ルックブックを識別してもよい。
品物セット206は、リンクされたリスト、配列、ハッシュテーブル、または品物レコードのセットを保持する他のコンテナ構造である。品物セット206の各品物レコードは、外観に含まれる品物を記述する。品物は、スカート、シャツ、靴、ブラウス、帽子、宝飾品、ハンドバッグ、時計、またはウェアラブルアイテムなどの衣料品であり得る。図2に示される例では、品物セット206は、第1の品物208と第2の品物220とを含む。様々な例では、他の数の品物が、品物セット206に存在してもよい。第1の品物208は、品物ポジションフィールド210および品物属性のセット212を含む。品物ポジションフィールド210は、品物が着用されるポジションを記述する。例えば、品物は、トップ、ボトム、帽子、手袋、靴として着用され、またはハンドバッグとして携帯され得る。品物属性のセット212は、品物の特性を記述し、一例では、テクスチャフィールド214、色フィールド216、およびパターンフィールド218を含む。テクスチャフィールド214は、ファブリックタイプ、テクスチャ、半透明のレベル、または厚さを指定し得る。色フィールド216は、品物の名前付き色、色相、色強度、彩度、透明度、反射率、または光学特性を示し得る。パターンフィールド218は、ファブリックパターン、織り、プリントデザイン、または品物上に存在するイメージを記述し得る。第2の品物220は、品物ポジションフィールド222および品物属性セット224を含む第1の品物208と同様のデータフィールドを含む。
図3は、一実施形態における、画像に関連する情報を格納するためのデータレコード300の説明のための例を示す。画像レコード302は、画像プロパティのセット304と、品物セット306を記述する情報とを含む。画像レコード302は、デジタル画像またはビデオセグメントのコンテンツを記述するために生成され得る。例えば、画像レコード302がデジタル画像を記述する場合、画像プロパティのセット304は、画像ファイルを識別する画像ソース308を含む。画像レコード302がビデオセグメントを記述する場合、画像ソース308は、ビデオファイルのセグメントを識別する。画像対象フィールド310は、画像の対象を記述する情報を含む。例えば、対象は、モデル、俳優、または著名人であり得る。
一実施形態では、品物セット306は、画像内で見出された品物のセットに対応する1つまたは複数の品物レコードを含む。品物レコードは、配列、リンクされたリスト、ハッシュテーブル、リレーショナルデータベース、または他のデータ構造として格納され得る。品物レコード312は、品物ポジション314および品物属性のセット316を含む。品物ポジション314は、画像の対象に対する品物の位置を記述する。例えば、品物ポジションは、品物が帽子、ズボン、靴、ブラウス、ドレス、時計、またはハンドバッグであることを示し得る。品物属性のセット316は、本願の他の箇所(例えば、図2)に記載されているように、品物に関連するテクスチャ、色、パターン、または他の情報を含み得る。
図4は、一実施形態における、製品に関連する情報を格納するためのデータレコード400の説明のための例を示す。製品は、画像にキャプチャされた品物または販売可能な品物である。例えば、品物は、大きな白いTシャツとして記述され、その品物に一致する特定の製品は、小売業者XYZによって販売されているABC Corporationの綿の大きなTシャツである場合がある。一実施形態では、製品レコード402は、製品ポジションフィールド404、製品属性のセット406、および入手可能性情報のセット408を含む。製品属性のセット406は、製品(帽子、ズボン、シャツ、ドレス、靴、またはハンドバッグなど)が(頭、脚、胴体、全身、足、または手の上において)どのように着用されるかを示す。製品属性のセット406は、製品の属性を記述する様々なサブフィールドを含む。一例では、製品属性のセット406は、テクスチャフィールド410、色フィールド412、およびパターンフィールド414を含む。一実施形態では、製品属性は、品物の属性の一部またはすべてを含み得る。いくつかの例では、製品属性は、品物の属性のスーパーセットまたはサブセットを含み得る。例えば、製品属性は、ファブリックの混紡、ファブリック処理、洗濯の指示、原産国などの、画像から直接観察できない特性を含み得る。
一実施形態では、入手可能性情報のセット408は、製品がユーザによってどのように取得され得るかを説明する情報を含む。一実施形態では、入手可能性情報のセット408は、ベンダーフィールド416、数量フィールド418、価格フィールド420、およびURLフィールド422を含む。ベンダーフィールド416は、販売のために製品を提供しているベンダーを識別する。ベンダーフィールド416は、ベンダー名、ベンダー識別子、またはベンダーウェブサイトアドレスを含み得る。数量フィールド418は、販売可能な製品の数量、サイズ別に分類された製品の数量(例えば、小、中、および大の数)、および製品の取り寄せ注文が可能かどうかを含む製品の入手可能性を記述する情報を含み得る。価格フィールド420は、製品の価格を示し、数量割引情報、小売価格、および卸売価格を含み得る。URLフィールド422は、製品が購入され得るウェブサイトのURLを含み得る。
図5は、一実施形態における、画像レコードと外観レコードとの間の関連付け500の説明のための例を示す。レコード間の関連付けは、ポインタ、リンクされたレコードの各々を参照するリンクレコードを使用して、または関連付けられたレコード間で一致するデータ値を確立することによって確立され得る。図5は、画像において検出された品物のセットと、外観を構成する品物のセットとの間の関連付けを示す。一実施形態では、システムには、URL、ファイル名、画像ファイル、またはビデオセグメントの形式で画像が提供される。システムは、画像を処理して、対象が着用している品物のセットを識別する。例えば、著名人の写真がシステムに送信されて、著名人が着用している品物のセットを識別することができる。画像の対象が着用している品物が識別されると、関連する外観レコードが生成され得る。
一実施形態では、画像レコード502は、画像プロパティのセット506と、品物セット508を記述する情報とを含む。画像レコード502は、デジタル画像またはビデオセグメントのコンテンツを記述するために生成され得る。例えば、画像レコード502がデジタル画像を記述する場合、画像プロパティのセット506は、画像ファイルを識別する画像ソースフィールドを含む。画像レコード502がビデオセグメントを記述する場合、画像プロパティ506は、ビデオファイルのセグメントを識別する。画像対象フィールドは、画像の対象を記述する情報を含み得る。例えば、対象は、モデル、俳優、または著名人であり得る。
一実施形態では、品物セット508は、画像内で見出された品物のセットに対応する1つまたは複数の品物レコードを含む。品物レコードは、配列、リンクされたリスト、ハッシュテーブル、リレーショナルデータベース、または他のデータ構造として格納され得る。品物レコード510は、品物ポジション512および品物属性のセット514を含む。品物ポジション512は、画像の対象に対する品物の位置を記述する。例えば、品物ポジション(頭、足、胴体など)は、品物が帽子、ズボン、靴、ブラウス、ドレス、時計、またはハンドバッグであることを示唆し得る。品物属性のセット514は、本願の他の箇所(例えば、図2)に記載されているように、品物に関連するテクスチャ、色、パターン、または他の情報を含み得る。
一実施形態では、外観レコード504は、外観ソースデータフィールド516および品物セット518を含む。外観ソースデータフィールド516は、ユニフォームリソースロケーター(「URL」)、画像識別子、ビデオセグメント識別子、ウェブサイトアドレス、ファイル名、または外観レコード504を生成するために使用される画像、ビデオセグメント、またはルックブックを識別するメモリポインタを含み得る。例えば、外観レコードは、著名人の画像に基づいて生成され、画像のソースは、外観ソースデータフィールド516において識別され得る。別の例では、外観レコードは、衣料品メーカーによって提供されるルックブックのエントリから生成されてもよく、外観ソースデータフィールド516は、ルックブックを識別してもよい。
品物セット518は、リンクされたリスト、配列、ハッシュテーブル、または品物レコードのセットを保持する他のコンテナ構造である。品物セット518の各品物レコードは、外観に含まれる品物を記述する。品物は、スカート、シャツ、靴、ブラウス、帽子、宝飾品、ハンドバッグ、時計、またはウェアラブルアイテムなどの衣料品であり得る。図5に示される例では、品物セット518は、品物520を含む。様々な例では、他の数の品物が、品物セット518に存在してもよい。品物レコード510は、品物ポジションフィールド522および品物属性のセット524を含む。品物ポジションフィールド522は、品物が着用されるポジションを記述する。例えば、品物は、トップ、ボトム、帽子、手袋、靴として着用され、またはハンドバッグとして携帯され得る。品物属性のセット524は、品物の特性を記述し、例えば、テクスチャフィールド、色フィールド、およびパターンフィールドを含み得る。
様々な実施形態において、外観レコード504は、品物セット518内の品物に一致する特定の製品を識別することにより、ユーザに推奨を行うために、システムにより使用され得る。品物セット518内の品物に一致する特定の製品を識別することにより、システムは、共に着用したときに画像にキャプチャされたものと類似の外観を達成するそれらの製品をユーザが識別することを助ける。
図6は、一実施形態における、コンピュータシステムによって実行された結果として、画像に基づいて外観レコードを生成するプロセス600の説明のための例を示す。プロセスは、ブロック602で始まり、コンピュータシステムが対象の画像を取得する。様々な例において、画像は、ファイル名、ファイル識別子、ストリーム識別子、または画像データのブロックを取得することにより取得され得る。さらなる例では、画像は、ビデオストリームの一部として、またはビデオストリーム内の複数のフレームの合成として取得され得る。例えば、画像は、ビデオファイルおよびビデオファイル内のポジションを識別する情報として特定され得る。
一実施形態では、ブロック604において、コンピュータシステムは、画像内の対象が着用している品物のセットを識別する。いくつかの実施形態では、コンピュータシステムは、特定の対象を特定の著名人またはモデルとして識別する。いくつかの実施形態では、コンピュータシステムは、男性、女性、若者、または幼児などの対象の特性を識別する。いくつかの例では、コンピュータシステムは、画像に存在する複数の対象を識別する。一実施形態では、対象の少なくとも1人について、コンピュータシステムは、対象が着用している品物のセットを識別する。本願の他の箇所で説明されているように、品物は、対象が着用する衣料品、アクセサリー、宝飾品、ハンドバッグ、またはアイテムであり得る。コンピュータシステムは、各品物が対象によって着用されるポジションまたは方法を識別する。一実施形態では、コンピュータシステムは、品物を帽子、ズボン、ドレス、トップ、時計、ハンドバッグ、ネックレス、ブレスレット、イヤリング、ピン、ブローチ、サッシュ、またはベルトとして識別する。
一実施形態では、ブロック606において、コンピュータシステムは、対象が着用している各品物についての1つまたは複数の属性を識別する。属性は、現在の文書の他の箇所で識別された属性のように識別され得る。様々な実施形態において、コンピュータシステムは、品物のテクスチャ、色、素材、または仕上げを識別する。追加の実施形態では、コンピュータシステムは、品物のサイズを識別する。品物のサイズは、少なくとも部分的に対象のアイデンティティに基づいて判定され得る。
ブロック608において、コンピュータシステムは、画像内の特定の対象が着用しているアイテムに従って外観のレコードを生成する。いくつかの実施形態では、コンピュータシステムは、画像内で識別された各対象が着用している品物に基づいて外観レコードを生成する。外観レコードは、画像を識別するソース情報と、上記で識別された品物情報とを含む。外観レコードは、図2に示されるレコード構造に従って構築され得る。
図7は、一実施形態における、外観レコードと製品レコードのセットとの間の関連付け700の説明のための例を示す。一実施形態では、外観レコードは、システムにより使用されて、共に着用すると、外観レコードに関連する全体的な外見または「外観」を再現できる製品を識別することができる。一実施形態では、外観レコード702は、外観ソースデータフィールド710および品物セット712を含む。外観ソースデータフィールド710は、ユニフォームリソースロケーター(「URL」)、画像識別子、ビデオセグメント識別子、ウェブサイトアドレス、ファイル名、または外観レコード702を生成するために使用される画像、ビデオセグメント、またはルックブックを識別するメモリポインタを含み得る。例えば、外観レコードは、衣料品メーカーによって提供されるルックブックのエントリから生成されてもよく、外観ソースデータフィールド710は、ルックブックのソースを識別してもよい。
品物セット712は、リンクされたリスト、配列、ハッシュテーブル、または品物レコードのセットを保持する他のコンテナ構造である。品物セット712の各品物レコードは、外観に含まれる品物を記述する。品物は、スカート、シャツ、靴、ブラウス、帽子、宝飾品、ハンドバッグ、時計、またはウェアラブルアイテムなどの衣料品であり得る。図7に示される例では、品物セット712は、第1の品物714、第2の品物720、および第3の品物726を含む。様々な例では、他の数の品物が、品物セット712に存在してもよい。各品物は、品物ポジションと品物属性とを説明する情報を含む。示されている例では、第1の品物714は、品物ポジションフィールド716および品物属性のセット718を含む。第2の品物720は、品物ポジションフィールド722および品物属性のセット724を含む。第3の品物726は、品物ポジションフィールド728および品物属性のセット730を含む。品物ポジションフィールドは、関連する品物が着用されているポジションを記述する。品物属性は、本文書の他の箇所で説明されているように、各品物の様々な態様を記述する。
一実施形態では、コンピュータシステムは、外観レコード702内の様々な品物に一致する製品を識別する。図7に示される例では、コンピュータシステムは、第1の品物714に一致する第1の製品レコード704、第2の品物720に一致する第2の製品レコード706、および第3の品物726に一致する第3の製品レコード708を識別する。いくつかの例では、コンピュータシステムは、外観レコード702内の特定の品物に一致する複数の製品を識別し得る。本文書の他の箇所で説明されているように、各製品レコードは、関連する製品ポジション732、738、744、製品属性734、740、746、および製品入手可能性736、742、748を含む。一実施形態では、品物ポジションが製品ポジションと一致し、閾値割合の製品属性が関連する品物の属性と一致する場合、製品は品物と一致する。いくつかの例では、すべての製品属性が、すべての品物属性と一致する。別の例では、色やスタイルなどの選択された属性が一致して、製品および品物を一致させる。さらに別の例では、類似性の程度が、製品と品物との間で決定され、類似性の程度が閾値を超えるときに一致が判定される。外観における品物のセットに一致する製品のセットを識別することにより、システムは、共に着用したときに類似の外観を生成する製品をユーザに推奨できる。いくつかの例では、システムは、製品レコード内の情報を使用して、特定の製品が購入され得るウェブサイトまたは販売者にユーザを誘導する。
図8は、一実施形態における、コンピュータシステムによって実行された結果として、所望の外観を得るために製品のセットを識別するプロセス800の説明のための例を示す。一実施形態では、プロセスはブロック802で始まり、コンピュータシステムは、ユーザが望む外観を識別する。外観は、外観が生成される画像を選択することにより、外観が既に生成または取得された外観レコードを選択することにより、または外観レコードが生成され得る画像またはビデオセグメントを供給することにより、識別され得る。
ブロック804において、コンピュータシステムは、選択された外観に存在する品物の属性を識別する。様々な例では、外観は、複数の品物を含むことができ、各品物は、上記のような属性のセットを有する。ブロック806において、システムは、製品データベースを検索して、選択された外観内の品物と一致する属性を有する製品を識別する。いくつかの実施形態では、製品データベースは、所与の製造業者からの製品または特定の販売者ウェブサイトから入手可能な製品に検索を制限するために指定される。いくつかの実装形態では、一致する製品は、外観内の品物の属性のすべてを有している。別の実装形態では、一致する製品は、外観内の品物の属性のうちの閾値割合を有している。
ブロック808において、コンピュータシステムは、識別された製品をユーザに提示する。製品は、本文書に示され説明されているようなグラフィカルユーザインタフェース要素を有するウェブページの形式で提示され得る。いくつかの例では、ユーザは、類似の外観に誘導されて、追加の製品を識別し得る。
図9は、一実施形態における、ユーザが所有する製品と、ある外観を得るためにユーザの製品と共に着用され得る関連製品との間の関連付け900の説明のための例を示す。一実施形態では、第1の製品レコード902は、外観レコード904を識別するために使用され、外観レコード904は、第2の製品レコード906を識別するために使用される。第1の製品レコード902は、ユーザによって選択された製品を表す情報を保持する。いくつかの例では、製品は、ウェブサイトのカート内の製品である。別の例では、製品は、ユーザが以前に購入した製品である。さらに別の例では、製品は、ユーザが現在所有している製品である。第1の製品レコードは、製品ポジションフィールド908、製品属性のセット910、および製品入手可能性情報912を含む。製品ポジションフィールド908および製品属性のセット910は、第1の製品レコード902のポジションの属性に一致する品物の存在に基づいて外観レコード904を識別するために使用される。いくつかの実装形態では、複数の外観レコードが、一致する品物の存在に基づいて識別され得る。
一実施形態では、外観レコード904は、外観ソースフィールド914および品物のセット916を含む。図9に示される例では、品物916のセットは、第1の品物917、第2の品物921、および第3の品物925を含む。第1の品物917は、品物ポジションフィールド918および品物属性のセット920を含む。第2の品物921は、品物ポジションフィールド922および品物属性のセット924を含む。第3の品物925は、品物ポジションフィールド926および品物属性のセット928を含む。
図9で説明される例では、コンピュータシステムは、第1の製品レコード902の属性が第3の品物925の品物属性928と一致することを識別する。一致する品物の存在の結果として、コンピュータシステムは、品物のセット916内の他の品物を調べ、品物のセット916内の各品物の属性に一致する製品を検索する。図9に示される例では、コンピュータシステムは、製品ポジションフィールド930、製品属性のセット932、および製品入手可能性情報のセット934を有する第2の製品レコード906を識別し、製品属性932および製品ポジションフィールド930が第1の品物917の対応する品物ポジションフィールド918および品物属性920と一致することを判定する。一実施形態において、コンピュータシステムは、外観レコード904によって表される外観を得るために、第2の製品レコード906によって表される製品を、第1の製品レコード902に関連する製品と共に着用できるものとして推奨する。
図10は、コンピュータシステムによって実行された結果として、特定の外観を得るために、示された製品と共に着用され得る製品を識別するプロセス1000の説明のための例を示す。一実施形態では、プロセスはブロック1002で始まり、コンピュータシステムは、ユーザが所有している製品を識別する。いくつかの例では、コンピュータシステムは、ユーザの購入履歴を検索し、ユーザが以前に購入した製品としてその製品を識別する。別の実装形態では、製品は、ウェブサイトの電子ショッピングカート内の製品であり得る。ブロック1004において、コンピュータシステムは、ユーザが着用した際の製品の色、テクスチャ、パターン、およびポジションなどの識別された製品の属性を判定する。いくつかの実装形態では、属性は、製品の画像に基づいて判定される。他の実装形態では、製品は、製造業者または小売業者によって提供される製品データベースから検索される。
一実施形態では、ブロック1006において、コンピュータシステムは、識別された製品に一致する製品を含む外観を識別する。いくつかの実装形態では、コンピュータシステムは、識別された製品と十分な数の一致する属性を有する外観レコードのデータベースから外観レコードを識別する。別の実装形態では、コンピュータシステムは、一致する製品を含む外観レコードを識別する。ブロック1008において、コンピュータシステムは、識別された外観レコードを検索し、それらの外観レコード内の追加の品物を識別する。識別された外観レコードの追加の各品物について、コンピュータシステムは、それらの品物の属性を識別し、ブロック1010において、それらの品物の一致する属性の十分なセットを含む製品データベースからの製品を識別する。このようにして、いくつかの例では、システムは、識別された製品と共に着用された場合に、「よく合う」、またはリンク外観レコードに関連付けられた「外観」を生成する製品を識別する。
ブロック1012において、システムは、識別された製品をユーザへの推奨として提示する。いくつかの実装形態では、推奨は、品物がどのように共に着用されてリンクした外観を生成し得るかをユーザが視覚化できるように、外観と共に提示され得る。
図11は、一実施形態における、選択された衣料品と組み合わせて着用された場合に特定の外観を達成する追加の品物のセットを、指定された衣料品に少なくとも部分的に基づいて識別するプロセスの説明のための例を示す。ウェブサイトを閲覧している間、ユーザは、図11に示されるようにシャツなどの特定の製品を識別する。特定の製品に関連する外観を閲覧するために、ユーザは、SDKに信号を送って関連する外観を見つけさせるアイコン、ボタン、または他のUI要素をクリックすることが可能である。製品を識別する情報は、ユーザのウェブブラウザからオンラインサービスに送信される。いくつかの実施形態では、情報は、製品の画像である。他の実施形態では、情報は、SKU、製品識別子、または製品特性のリストである。
オンラインサービスは、識別情報を受信し、識別情報を使用して、1つまたは複数の関連する外観を識別する。いくつかの実施形態では、関連する外観は、識別された製品を含む外観として識別される。別の実施形態では、関連する外観は、識別された製品に類似する製品を含む外観として識別される。オンラインサービスは、外観情報をウェブブラウザに返す。外観情報は、外観の画像、外観に関連付けられた製品のリスト、および外観の画像内の関連する各製品を識別するバウンディングボックスを含む。
外観を識別する情報を受信すると、ブラウザ上で実行される実行可能コードは、外観を表示し、外観に関連付けられた製品を強調表示する。いくつかの例では、外観に関連付けられている各製品は、バウンディングボックスで囲まれている。バウンディングボックスを選択することによって、関連する製品の画像がユーザに提示される。いくつかの例では、関連する製品についての追加情報がユーザに提示され、関連する製品を購入するオプションも提示され得る。いくつかの実施形態では、ユーザインタフェースは、ユーザが選択された製品に類似した製品を探索することを可能にする。このようにして、ユーザは、外観に関連付けられた一致する製品、および類似の外観を実現するために使用され得る類似の製品を提供されることが可能である。
様々な実施形態において、システムは、外観内の各製品の識別された特性のセットに少なくとも部分的に基づいて、カタログの指定されたセットから、特定の外観内に存在する製品を識別しようと試みる。システムが製品特性の特定のセットに一致する製品を見つけることができない場合、システムは、カタログのセットから最も類似した製品を識別しようと試みる。システムは、識別された製品の製品画像をユーザに提示する。ユーザが製品画像を選択すると、システムは、利用可能なカタログから1つまたは複数の類似製品を識別し、類似製品は、選択された製品との類似性の順にユーザに提示される。いくつかの実施形態において、製品情報の利用可能なソースは、SDKをホストするユーザによって選択されたカタログの特定のセットに制限され得る。いくつかの例では、結果は、優先カタログの類似製品が検索結果の上位に提示されるように並べ替えられ得る。
一実施形態では、システムは、所望の外観または全体的な外見を生成するために、他の衣料品と組み合わせて着用され得る衣料品を識別するように適合され得る。一実施形態では、ユーザは、シャツ、ドレス、ズボン、靴、時計、ハンドバッグ、宝飾品、またはアクセサリーなどの衣料品を選択する。様々な実施形態において、品物は、ウェブページ、デジタル画像、またはビデオストリームから選択され得る。一実施形態では、システムは、選択された品物を含む1つまたは複数の外観、または選択された品物に類似する品物を含む1つまたは複数の外観を識別する。外観は、共に着用すると、特定の全体的な外見を生成する品物のコレクションである。外観は、ユーザの好み、インフルエンサーによって割り当てられたスコア、人気度、スタイルタグ、著名人アイデンティティ、または他の尺度に従ってランク付けされ得る。いくつかの例では、ユーザインタフェースは、ユーザが複数の外観をナビゲートして、所望の全体的な外見を識別することを可能にする。いくつかの例では、システムは、ユーザが外観を選択することを可能にし、それに応答して、ユーザインタフェースは、共に着用された際に選択された外観を生み出す関連する衣料品を提示する。いくつかの実施形態では、ユーザインタフェースは、選択された外観を生成するために組み合わされ得る類似の衣料品を識別する。
図12は、一実施形態における、ラップトップコンピュータおよびモバイルデバイス上に表示されるユーザインタフェース製品検索システムの説明のための例を示す。様々な実施形態において、SDKは、小売業者のウェブサイト、ソーシャルメディアのウェブサイト、およびブラウザ拡張に適用され得る。SDKを実装するプラットフォームは、モバイルデバイスまたはデスクトップデバイスからアクセスされ得る。
図13は、一実施形態における、ウェブサイト上に製品検索ユーザインタフェースをインストールする実行可能命令の説明のための例を示す。一例では、SDKは、表示されているコード行を販売者のウェブサイト上のウェブページに追加することによりインストールされる。SDKは、販売者のウェブサイト自体を含む様々なロケーションから、またはサードパーティから提供され得る。SDKは、サードパーティのウェブプラットフォームを含む様々なウェブサイトから提供され得る。
ウェブサイトの所有者は、自身のウェブサイトコード内でカスケーディングスタイルシート(「CSS」)を使用して設計を完全にカスタマイズすることができる。
図14は、一実施形態における、ポップアップダイアログを使用して類似の製品を識別するためのユーザインタフェースの説明のための例を示す。図14に示される例では、左側のパネルのアイコンをクリックすると、製品および類似の製品を示すポップアップダイアログが表示される。アイコンをクリックすると、アプリケーションプログラミングインタフェースへの呼び出しが生成され、製品の識別(identity)がオンラインサービスに伝達される。いくつかの実施形態では、製品の識別は、画像の形式で伝達される。他の実施形態では、製品の識別は、製品識別子、または製品特性のリストの形式で伝達される。オンラインサービスは、類似製品を識別し、類似製品の画像を含む類似製品を記述する情報は、ブラウザで実行されているSDKに返される。SDKは、製品および類似製品を示す中央のダイアログを表示する。いくつかの実施形態では、識別された製品を示すバウンディングボックスが表示される。返された製品を左にスワイプすることにより、SDKは、類似製品のシーケンスを提示する。上下にスクロールすることにより、ユーザは、類似したアイテムの異なるカテゴリを見ることができる。例えば、上下にスクロールすることにより、ユーザは、類似のトップスまたは靴を見ることができる。図14に示される例では、バウンディングボックスは、各類似製品の下のカラーバーに一致する色を有する。
図15は、一実施形態における、類似の製品を識別するためのユーザインタフェースの説明のための例を示す。一実施形態では、ユーザが製品を選択すると、製品を識別する情報が、オンラインサービスに送信される。オンラインサービスは、画像を処理し、1つまたは複数の製品を識別し、その各々は、色付きのバウンディングボックスで囲まれる。画像およびバウンディングボックスを識別する情報がクライアントに返される。
ユーザがバウンディングボックスをクリックすると、他のバウンディングボックスはミュートされて、バウンディングボックスの選択を示す。選択された製品(選択されたバウンディングボックスに関連付けられている)に一致する製品は、ポップアップダイアログの下部で強調表示される。
いくつかの例では、図15の右半分のダイアログに示されるように、右を指す矢印が表示される。製品画像をスワイプすることにより、SDKは製品を識別する情報を受信し、オンラインサービスは、製品に関連付けられている外観を識別する。ユーザが類似製品ポップアップで製品を選択すると、ユーザは、クリックされている製品の製品ページに導かれる。
図16は、一実施形態における、選択された衣料品に基づいて外観を識別するためのユーザインタフェースの説明のための例を示す。一例では、ユーザは、検索画像をスワイプするか、画像の端にある矢印をクリックして、表示されているアイテムに関連付けられた外観をSDKに提供させる信号を生成する。いくつかの実施形態において、SDKは、著名人の写真に基づいた外観を生成する。他の実施形態では、SDKは、インスタグラムページに基づいた外観を生成する。別の実施形態では、SDKは、小売業者またはブランドのスタイルブックまたはインスタグラムフィードから外観を識別する。いくつかの実装形態では、システムは、特定の製品についての外観のコレクションであるルックブックを生成する。
特定の外観を閲覧する際、外観画像の端にある矢印は、ユーザが(左をクリックするか、または右にスワイプすることにより)製品ページに戻るか、または(右をクリックするか、または左にスワイプすることにより)先に移動して追加の外観を閲覧することを可能にする。いくつかの例では、元の製品写真のサムネイルが、外観の下に表示され、製品の写真をクリックすると製品ページに戻るようにナビゲートされる。いくつかの例では、類似製品ポップアップは、現在の写真で検出されたものと類似のアイテムを表示する。
図17は、一実施形態における、ユーザが複数の外観から1つの外観を選択することを可能にするユーザインタフェースの説明のための例を示す。例えば、図17に示されたユーザインタフェースを使用して、ユーザは、写真を右にスワイプして、様々な外観から選択することが可能である。右矢印をクリックするか、または左にスワイプすると次の外観に進み、左矢印をクリックするか、または右にスワイプすると前の外観に進む。いくつかの実装形態では、外観のシーケンスが、オンラインサービスからブラウザに送信され、クライアントソフトウェア内に格納された外観の間で選択が行われる。他の実装形態では、左または右にスワイプすると、サーバに次の外観または前の外観が要求され、サーバは、要求に応じて次または前のブロックに関する情報を提供する。
様々な実装形態において、ユーザインタフェースは、ユーザが現在の外観に関連する製品を閲覧する方法を提供する。図17に示される例では、ユーザは、現在の外観画像から検出され、かつ一致する類似の製品を見るために上にスクロールする。
一実施形態では、外観を識別するために使用される製品のサムネイルが、外観画像の左上隅に示されている。サムネイルを選択することにより、ユーザは、製品の製品スクリーンに戻る。
図18は、一実施形態における、ユーザが1つの外観内から特定の衣料品を選択することを可能にするユーザインタフェースの説明のための例を示す。一例では、ユーザは、外観写真から個々の製品を選択することができる。外観写真の個々の製品は、バウンディングボックスにより強調表示される。バウンディングボックスを選択することにより、製品を識別する情報が、オンラインサービスに送信され、オンラインサービスは、製品に関連する外観のセットを識別する。
製品のバウンディングボックスを選択すると、前の製品に関連するサムネイルが削除され、右向き矢印が表示される。矢印をクリックするかスワイプすることにより、製品を識別する情報が、オンラインサービスに送信され、オンラインサービスは、選択された製品についての外観セット(ルックブック)を返す。このようにして、スタイルの推奨が、外観に存在する特定の製品について取得され得る。
図19は、一実施形態における、外観および関連する衣料品をナビゲートするためのデスクトップユーザインタフェースの説明のための例を示す。図19に示される例では、ブラウザウィンドウは、特定の外観についてのユーザインタフェースを表示する。外観の画像は、ページの左側に表示され、バウンディングボックスは、画像で識別された各製品の周囲に配置される。特定のバウンディングボックスを選択することにより、ユーザは、ページの左側に類似製品のセットを表示され得る。
様々な例において、アプリケーションダイアログおよびポップアップウィンドウは、ブラウザウィンドウに応じてサイズ変更される。検索された画像は左側に表示され、結果は右側に表示される。ユーザは、マウスを使用して上下にスクロールし、結果を調べることができる。
ユーザは、バウンディングボックスをクリックして、そのアイテムのルックブックの閲覧を開始することができる。
図20は、一実施形態における、モバイルデバイス上に実装された外観をナビゲートするためのユーザインタフェースの説明のための例を示す。図20は、システムを実装するモバイルデバイスを示している。モバイルデバイスは、携帯電話、タブレットコンピュータ、ハンドヘルドデバイス、または他のモバイルデバイスであり得る。一実施形態では、モバイルデバイスはカメラを含む。ユーザはカメラで写真を撮ることができ、結果の画像は、モバイルデバイスのスクリーン上に表示される。画像が製品または外観を識別するために使用され得ることを示すアイコンが、画像の右下隅に表示される。アイコンをクリックすることにより、オンラインサービスにアップロードされた画像が、画像内の1つまたは複数の製品を識別する。サービスは、画像内の特定の製品および製品の特性を識別する。一実施形態では、オンラインサービスは、アプリケーションが画像内の各製品の周りにバウンディングボックスを作成することを可能にする情報をモバイルデバイスに返す。
バウンディングボックスが画像に追加されると、ユーザは、バウンディングボックスを選択して追加情報を要求し得る。一実施形態では、選択情報は、オンラインサービスに返され、オンラインサービスは、製品および任意選択で類似の製品を識別する情報を提供する。製品および類似の製品の画像は、オンラインサービスからモバイルデバイスに伝達され、そこでディスプレイスクリーンに表示される。ユーザは、複数の類似製品を閲覧するか、または特定の製品を選択して、その特定の製品を使用する追加の外観を調べることができる。
いくつかの例では、ユーザは、小売業者のウェブサイト上の画像から、ソーシャルメディアサイトから、または写真共有サイトもしくはサービスから開始し得る。
図21は、一実施形態における、ウェブブラウザ上に実装された外観をナビゲートするためのユーザインタフェースの説明のための例を示す。一実施形態では、SDKは、ブラウザを実行するパーソナルコンピュータシステム上で実行される。図21に示される実施形態は、ブラウザを実行するパーソナルコンピュータ、ラップトップコンピュータ、またはタブレットコンピュータを使用して実装され得る。
図22は、一実施形態における、ジェネリックオブジェクト検出器および階層検出器の説明のための例を示す。階層検出器は、各バウンディングボックスに対して単一のカテゴリを出力するジェネリック検出器と比較して、カテゴリツリーを出力として予測する。一実施形態では、画像およびビデオからの衣料品の検出は、視覚的なファッションの理解のための道を開く。衣服の検出により、類似の衣服アイテムの検索、ファッション写真の整理、人工知能を活用したショッピングアシスタント、大きなカタログの自動ラベリングが可能になる。ディープラーニングベースの衣服検出器のトレーニングには、事前定義されたカテゴリ(ドレス、ズボンなど)と、各カテゴリについての大量の注釈付き画像データとが必要である。しかしながら、ファッションは進化し、新しいカテゴリが市場に絶えず導入されている。例えば、ジーンズおよびレギンスの組み合わせであるジェギンス(jeggings)の場合を考えてみる。ジェギンスカテゴリを扱うようにネットワークを再トレーニングすることは、ジェギンスクラスに固有の注釈付きデータを追加すること、続いてディープネットワークの重みを再学習することを含み得る。本稿では、新しいラベル付きデータを取得したり、ネットワークを再トレーニングしたりする必要なしに、新規カテゴリ検出を処理できる新しい方法を提案する。我々のアプローチは、様々な衣類カテゴリ間の視覚的な類似性を学習し、カテゴリのツリーを予測する。結果として得られるフレームワークにより、新規衣料品カテゴリに対する検出器の汎化能力が大幅に向上する。
一実施形態では、画像およびビデオからのオブジェクト検出は、重要なコンピュータビジョン研究問題である。画像およびビデオからのオブジェクト検出は、類似オブジェクト検索、オブジェクト追跡、自動運転車のための衝突回避を含む、多数のコンピュータビジョンタスクへの道を開く、特定のカテゴリについて関連する関心領域の選択を可能にする。オブジェクト検出性能は、イメージングノイズ(モーションブラー、照明の変動)、スケール、オブジェクトオクルージョン、セルフオクルージョン、および背景または他のオブジェクトとの外見の類似性を含む複数の課題の影響を受け得る。いくつかの実施形態において、オブジェクト検出の焦点は、特定のカテゴリに属するオブジェクトの他のオブジェクトからの分離、および画像内のオブジェクトの位置の特定を改善することである。いくつかの例では、画像からオブジェクトの場所およびそれらに対応するカテゴリに直接進むと、複数のカテゴリ間の相関が失われる。いくつかの例では、類似クラス間の分類エラーを理由として、結果として得られる方法は、多数の偽陽性を有し得る。さらに、いくつかの例では、新規オブジェクトカテゴリの追加には、オブジェクト検出器の再トレーニングが必要であり得る。
本明細書で説明される技術は、ディープラーニングベースのオブジェクト検出および様々なオブジェクトカテゴリ間に存在する相関を明示的にモデル化する類似オブジェクト検索フレームワークに関する。一実施形態では、オブジェクト検出フレームワークは、単一のカテゴリの代わりに出力として階層ツリーを予測する。例えば、「Tシャツ」オブジェクトの場合、検出器は、
を予測する。上位レベルのカテゴリ「トップインナーウェア」は、[‘ブラウス_シャツ(blouses_shirts)’,‘Tシャツ(tees)’,‘タンクトップ_キャミソール(tank_camis)’,‘チュニック(tunics)’,‘セーター(sweater)’]を含む。階層ツリーは、オブジェクトカテゴリ間の相関を使用しないオブジェクト検出器のエラーを分析することにより推定される。したがって、本明細書に記載の技術は以下を含む。
4.衣料品ドメインの階層検出フレームワーク
5.検出誤差の直接分析に少なくとも部分的に基づいて、階層/セマンティックツリーを推定する方法
6.推定された階層ツリーを使用して、新規カテゴリオブジェクトの追加と検索の実行を実証すること
一実施形態では、オブジェクト検出は、視覚データを使用して、関連するすべてのオブジェクトについてのバウンディングボックスおよび対応するカテゴリを計算する。カテゴリ予測は、合計K個のオブジェクトカテゴリのうち1つだけが各バウンディングボックスに関連付けられていると想定することがよくある。1-of-K分類は、各オブジェクトカテゴリを他のすべてのオブジェクトカテゴリから可能な限り遠ざけることを奨励する「ソフトマックス」層によってしばしば実現される。しかしながら、このプロセスは、オブジェクトカテゴリに存在する相関情報を活用できない。例えば、「ジーンズ」は「コート」に比べて「ズボン」に近い。一実施形態では、この相関の活用は、最初に「下半身」を予測し、階層ツリー予測を介して「ジーンズ」、「ズボン」、および「レギンス」のセットである「下半身」カテゴリから1つの要素を選択することによって達成される。
一実施形態では、階層予測フレームワークは、オブジェクト検出器と統合される。図22は、一実施形態によるジェネリックオブジェクト検出器と、オブジェクト検出器との間の変化を示す。いくつかの実施形態では、ジェネリック検出器は、入力画像Iを取り、バウンディングボックスbbのリストおよびバウンディングボックスの各々についての対応するカテゴリcを生成する微分可能な(例えば、任意のディープラーニングベースの検出器)マッピング
とすることができる。階層検出器は、各バウンディングボックスについてのルートカテゴリからリーフカテゴリF(C)へのパス/フローを生成する新しい微分可能なマッピング
を学習する。一実施形態では、微分可能なマッピングは、勾配ベースの最適化を介してグラウンドトゥルースデータからこれらのパラメータの値を推定するために、そのパラメータに関して微分され得る数学関数である。
図23は、一実施形態における、様々なレベルのノードを表すカテゴリツリーの説明のための例を示す。例示的な実装形態では、ジェネリック検出器から階層検出器への移行に2つのステップが含まれる。一実施形態では、第1のステップは、以下で説明するように、ジェネリック検出器をトレーニングし、カテゴリ階層ツリーを推定することである。カテゴリ階層に基づいて、ディープラーニングフレームワークは、以下に詳述するように、階層カテゴリを予測するように設計された損失関数で再トレーニングされる。
説明のための例として、本開示の残りの部分では、「ソフトマックス」関数を使用して、最も高い確率でカテゴリを選択することによりカテゴリcを予測する。しかしながら、「ソフトマックス」関数の代わりに、または「ソフトマックス」関数に加えて使用できる他の関数を当業者が認識するだろうことに留意されたい。使用できる他の関数は、範囲が正の任意の関数を含むが、これらに限定されない。他の例は、モジュラス関数(|x|)と二乗関数(x^2)である。これらの値から確率値に移るために、各カテゴリについての関数値をすべてのカテゴリの合計で除算し得る。ジェネリック検出器が各カテゴリの確率スコアを予測しない場合、一実施形態では、「ソフトマックス」関数(または他の関数)を使用して生スコアを相対確率測度に変換する。
一実施形態では、有向グラフが、ツリーから生成される。ツリーの基礎をなす有向グラフは、カテゴリのルートノードからリーフノードへのツリー/パスを予測するために使用される。Tが、ノードとしてのすべてのカテゴリと、親ノードから子ノードへの有向エッジとしての階層関係とで構成されるツリー全体を表すとする。用語/フレーズn、s(n)、p(n)、F(n)は、それぞれ、ノード、ノードの兄弟セット、ノードの親、およびルートノードからリーフノードへのパスを示す。図23に示されるようなダミーの有向グラフを考える。この例では、「レベル0」に属するすべてのノードは、親を持たないため、ルートノードとして示される。兄弟s(n)は、同じレベルにあり、共通の親を持つすべてのノードを示す。例えば、s(1)=1,2,3であり、s(6)=4,5,6である。ルートからリーフノードへのパスは、「レベル0」ノードからリーフノードへの途中にあるすべてのノードを含む。例えば、F(9)=1,6,9であり、F(2)=2である。
任意のノードの推定確率(またはバウンディングボックスについてのカテゴリ確率)は、P(I)で表される。基礎となるグラフを使用すると、この確率は、ルートノードからリーフノードへのパス上の一連の条件付き確率によっても表され得る。
ここで、qはパスに沿ったノードの総数であり、条件付き確率計算におけるすべてのノードは、ルートからリーフノードへのパスに属し、
である。一実施形態では、「ソフトマックス」層を使用して、各ノードの確率を推定する。ノードは、単一のベクトルで表され、最後の完全に接続された(fully-connected:FC)レイヤにノードの全てについてスコアを予測させる。カテゴリツリーの基礎構造を使用して、各レベルのノードについての確率を取得する。例えば、ゼロレベルのノードの場合、確率は次のように計算できる。
ここで、「ソフトマックス」は、兄弟ノードに関してのみ計算される。これにより、兄弟間の競争(1-of-K分類)のみが促進される。一実施形態では、カテゴリ推定器は、最初に、「上半身」、「下半身」、「履物」などの主要なカテゴリを分離しようとし、続いてこれらのカテゴリの各々についてより細かいカテゴリを推定するなどする。
ジェネリック検出器を階層検出器に適合させるために、式1の予測分布とグラウンドトゥルースアノテーションとの間のクロスエントロピーが使用される。
ここで、xは、すべてのカテゴリを表すベクトルの個々の要素であり、P(I)およびq(I)は、それぞれ、画像Iについてのカテゴリ確率およびアノテーションベクトルを示す。これらのベクトルは両方とも次元Tであり、この例では、カテゴリの総数でもある。ジェネリック検出器は、アノテーションベクトルにおいて単一のアクティブな要素(単一のカテゴリ)だけを有するが、いくつかの実装形態では、ルートノードからリーフノードまでのすべてのラベルを考慮するために複数のアクティベーションを有し得る。
一実施形態では、逆方向伝播ステップは、階層カテゴリを予測できるディープニューラルネットワークのパラメータを学習するように修正されている。兄弟レベル「ソフト-マックス」、およびその基礎をなすグラフ構造の使用により、各カテゴリの乗数が導かれる。図23のグラフを検討し、入力画像がカテゴリ9を有すると仮定する。カテゴリ9の存在は、リーフからルートへのパスに沿ったカテゴリの存在も示す(6,1)。一実施形態では、式3で表される損失は、少なくとも3つの異なるアクティブラベル(1,6,9)を有する。この画像の損失は、次のように記述できる。
式4は、逆伝播を実行してネットワークの重みを学習するために、ノードのすべてについての乗数が使用され得ることを示している。上記の例は、一般化することができ、アルゴリズム1における各ノードについての乗数を推定するアルゴリズムが示される。直感的に、いくつかの実装形態では、損失関数は、階層情報の表現につながるリーフノードへの様々なパスの表現を確実にするために、ディープニューラルネットワークを必要とする。一例では、カテゴリツリーTおよび画像Iについてのグラウンドトゥルースアノテーションq(x|I)が与えられると、リーフノードが推定され、次いで、すべてのノードに対する乗数としてリーフノードからのレベル距離が割り当てられる。乗数は、アノテーションにおけるリーフノードよりも高いレベルのすべてのノードについてゼロである。
カテゴリツリーTを推定するために、一実施形態では、様々なカテゴリ間の視覚的類似性を推定する。本明細書で開示および示唆される技術は、オブジェクト検出器の視覚的に類似したカテゴリを編成することにより、従来技術を改善する。以前の多くの作業は、カテゴリレベルの情報の代わりに、属性レベルのアノテーションを使用してアノテーションタグ階層を生成することに焦点を合わせてきた。しかしながら、このような作業は、視点、オブジェクトパーツの位置、回転、オブジェクト固有属性などの情報で各カテゴリに注釈(アノテーション)を付けるために、人間の多大な労力を必要とする。いくつかの例では、検出を改善するために、各オブジェクトカテゴリに対して属性ベース(視点、回転、パーツ位置など)の階層的クラスタリングを生成する。対照的に、本明細書で開示されるいくつかの実施形態は、カテゴリレベル情報を使用し、すべてのオブジェクトカテゴリに対して単一の階層ツリーのみを生成する。
本開示の例示的な実装形態は、最初にカテゴリ間の距離を考慮せずにトレーニングされたジェネリック検出器の誤差を評価し、続いて様々なカテゴリ間の視覚類似性により生成されるクロス誤差(cross-error)を分析することにより、カテゴリ階層を推定する。一実施形態では、Faster-RCNNベースの検出器がトレーニングされ、検出器誤差が評価される。例えば、ジェネリック検出器(現在のケースではFaster-RCNN検出器)によって生成された偽陽性が検出され得、視覚的に類似したカテゴリに起因する一部またはすべての誤差が計算される。これらの誤差は、例えば、他のオブジェクトカテゴリとの0.1から0.5の間のintersection-over-union(「IOU」)比を有するバウンディングボックスですべての偽陽性を測定することによって計算され得る。この方法では、「靴」や「ブーツ」などの視覚的に類似したクラスが、頻繁に相互に誤分類され、より高いクロスカテゴリ偽陽性エラーを生成する。
一実施形態では、クロスカテゴリ偽陽性行列D(サイズ(D)=J×(J+1))が計算され、ここで、Jはデータセット内のカテゴリの総数を示す。この例では、第2の次元は、背景のみと交差する偽陽性を考慮して、第1の次元よりも大きい。行列Dの対角要素は、この例においては、ローカライズが不十分なために生じる偽陽性を反映しており、現在の分析では無視されるが、いくつかの実装形態では使用され得る。例示的アルゴリズム2は、カテゴリツリーの取得に使用されるプロセスを記述している。行列Dおよび事前定義された閾値τを使用して、相互に類似するカテゴリのセットを推定する。これにより、カテゴリの異なるグループが生じる。1より大きい要素を有するT内のすべてのセットには、新しいカテゴリ名が与えられ、そのセットのすべての要素は新しく定義されたカテゴリの子として割り当てられる。上記のプロセスは、カテゴリについての2レベルツリーを簡単に生成する。
いくつかの技術は、カテゴリ固有の情報とは別に属性レベルの情報を使用して、新規オブジェクトカテゴリの検出を実行することに焦点を合わせている。いくつかの例では、属性レベルの情報を使用して、新規カテゴリからオブジェクトを検出する。例えば、新しいオブジェクトカテゴリ「馬」は、「足」、「哺乳類」、および「動物」カテゴリの組み合わせとして認識される。属性ベースの認識は、オブジェクトカテゴリの各々について、属性固有の分類子および属性レベルのアノテーションを学習することを必要とする。比較すると、本開示のいくつかの実施形態は、属性アノテーションも属性固有の分類子も必要としない。新しい各カテゴリについて、予想されるルートレベルのカテゴリが割り当てられ、その後、そのカテゴリについて最高の信頼スコアを有するバウンディングボックスが推定され得る。
本明細書に開示される様々な実施形態に従って動作するシステムは、カテゴリ固有の非最大抑制(non-maximal suppression)を実行して、各リーフノードカテゴリのバウンディングボックスを選択し、ここで、バウンディングボックスは固有のものであり得る。下位レベルのすべてのカテゴリについて、そのようなシステムは、すべての子ノードからのバウンディングボックスを考慮することにより、出力を抑制し得る。いくつかの実施形態では、このことは、より固有のカテゴリからのバウンディングボックスが検出され得るときはいつでも、偽の(spurious)低レベルのカテゴリボックスを減らすのに役立つ。
様々な実装形態において、検出器は、類似オブジェクトマッチングのための2つの目的、関心領域検出およびカテゴリ識別に役立つ。一実施形態では、関心領域検出は、関連するオブジェクトのみを含むように画像を切り取るのに役立つために使用される。一方、カテゴリ識別は、一実施形態では、検索される衣料品画像の数を絞り込むために使用される。例えば、検出器が「ドレス」オブジェクトを検出した場合、検索は、「ドレス」衣料品データベース内に限定されることが可能である。新規カテゴリの場合、ルートレベルのノードカテゴリしかないため、ルートレベルのノードの子の画像間で類似の衣料品アイテムの検索が実行され得る。
本発明の定式化を試験するために、「www.modcloth.com」および「www.renttherunway.com」などの様々なファッション関連ウェブサイトから97,321個の画像の大規模データセットが収集された。すべての画像について、43の異なるカテゴリにわたり、合計404,891個のバウンディングボックスを生じさせた、すべてのファッション関連アイテムについての人間のアノテーションが取得された。26個の有効なカテゴリをもたらすオブジェクト検出器のトレーニングのための400個未満のバウンディングボックスを有するすべてのカテゴリは無視されたが、異なるパラメータが使用され得る。データセットの統計を表1に示す。データセットは、トレーニングおよびテストセット80-20に分割された。すべての検出器は、トレーニングデータを使用してトレーニングされただけであり、それらの性能は、同じテストセットを使用して評価された。
これらの例では、オープンソースのディープラーニングフレームワークCAFFEが使用され得る。学習のために、50,000回の反復毎に半分に減少する基本学習率として0.001を有する確率的勾配降下を用い、モメンタム0.9および重み減衰として0.0005を用いた。両方の検出器について、すべて同じハイパーパラメータを使用し、200,000回の反復の間、検出器をトレーニングする。
一実施形態では、異なるカテゴリの平均適合率(average precision)が判定され、その結果が、平均適合率の平均(mean average precision)を使用してカテゴリ全体で要約される。平均適合率は、各オブジェクトカテゴリの適合率-再現率(recall)曲線下の面積を測定する。一例では、0.5パスカル比が、真陽性に対する閾値として使用される。我々のデータセットのベースラインジェネリック検出器は、クロス誤差行列Cを計算するようにトレーニングされている。
図24は、一実施形態における、正規化された誤差行列の説明のための例を示す。図24は、様々なカテゴリ間の偽陽性誤差を有するクロス分類マトリックスを示している。図24から、「靴」および「ブーツ」のような視覚的に類似したカテゴリは、しばしば相互に誤分類されていることが明らかである。例示的アルゴリズム2を使用して、検出器誤差行列Cに基づいてツリーTを推定した。我々のアルゴリズムは、複数の要素を含む7個のグループを発見する。このようにして生成されたすべてのグループの詳細およびそれらの名前を表2に示す。
表3は、ジェネリック検出器と提案されている階層検出器との間のmAP比較を示している。この例では、ジェネリック検出器は、新しく生成されたグループを生成しなかったため、それらの子の性能を平均することにより、新しいカテゴリについてのAP結果を生成する。「ドレス」または「ジャンプスーツ」の検出は「全身」の衣料品カテゴリの存在も示すため、これは合理的である。我々の結果は、少なくともこのコンテキストで使用されたデータでは、階層検出器がジェネリック検出器よりも約4%だけmAPを改善することを示す。
元のクラスでは、ジェネリック検出器および階層検出器の両方のmAPは同じであり、カテゴリの数が増加したにもかかわらず、基礎となるネットワークの劣化がないことを示している。特に、階層検出器の性能の向上は、視覚情報をより高いレベルでキャプチャする能力のためである。
図25は、一実施形態における、ジェネリック検出器からの欠落した検出を修正することが可能な階層検出器の一例を示す。階層検出器は、あいまいな例についてジェネリック検出器からの欠落した検出を修正することができる。例えば、「コート」または「ジャケット」によって隠された「トップインナーウェア」のタイプを明確に識別することは困難である。しかし、階層検出器は、階層的情報表現のため、下に隠されている衣料品が「トップインナーウェア」のインスタンスであることを検出することができる。図25は、階層検出器によって識別されたあいまいなインスタンスのいくつかの例を示している。さらに、階層検出器は、あるカテゴリを他のすべてのカテゴリから分離する代わりに、兄弟カテゴリ間でのみ分離するため、階層検出器は、兄弟間の競合を促進する。
図26は、一実施形態において、ジェネリック検出器とは対照的に、階層検出器が兄弟出力をどのように抑制するかの説明のための例を示す。一実施形態では、ジェネリック検出器は、階層検出器によって抑制される2つの兄弟カテゴリについての2つの異なるバウンディングボックスを予測する。検出出力の階層的な性質は、様々なスケールで情報を表すことを可能とする。例えば、「トップインナーウェア」カテゴリは、すべての子カテゴリ間の共通性をキャプチャする。我々のフレームワークのこの態様を使用して、検出器がトレーニング中に見たことがない新規カテゴリで検出を実行する。各新規カテゴリについて、ルートレベルのカテゴリを割り当て、すべての子およびルートレベルカテゴリについての最大信頼検出を計算する。それらが新規カテゴリであるためにジェネリック検出器が失敗する小さなテストセットを収集する。このセットの結果を表4に示す。
本明細書に記載および示唆される技術は、検出器に対し階層カテゴリを予測するための新規フレームワークを提供する。一実施形態では、カテゴリ間の階層は、視覚的な類似性のみに基づいている。階層検出器の例示的な実装形態は、様々なスケールで情報をキャプチャする能力を示し、我々の検出器がトレーニングされていない新規カテゴリに検出器を汎化する。
図27は、本明細書で説明される様々な実施形態に関連して使用され得るグラフィカルユーザインタフェースの説明のための例を示す。グラフィカルユーザインタフェースは、ウェブブラウザ、モバイルまたは他のデバイス上のアプリケーションを介して、または他の方法でアクセス可能なウェブページなど、様々な方法で提供され得る。図27の左は、コンピュータシステム(単一のデバイスまたは複数のデバイスを含む分散コンピュータシステムであり得る)のサーバにアップロードされたか、そうでなければアクセス可能にされた画像の例である。上記の技術を使用して、画像内の衣料品オブジェクトを検出し得る。この例では、検出された各オブジェクトを囲むボックスにより示されているように、7つのオブジェクト(サングラス、タンクトップ、ブラウス、ハンドバッグ、左の靴、右の靴、およびショートパンツ)がある。さらに、この例では、タンクトップとブラウスの視覚的な類似性により、両方のオプションがインタフェースの右側に与えられ、ユーザにより多くの選択肢とより多くの結果を提供するが、いくつかの実施形態では、どちらか一方が選択されて、選択されなかったカテゴリに関連する結果なしに個々の結果が提供され得る。
グラフィカルユーザインタフェースは、例えば、ユーザが分析されるべき画像をアップロードまたは特定して(例えば、URLを介して)、画像内にどの衣料品オブジェクトが現れるかを検出し、画像内で検出された衣料品オブジェクトを選択し、類似オブジェクトの検索を実行することを可能にするサービスの一部として使用され得る。説明のための例では、選択された衣料品オブジェクトを使用して、1つまたは複数のデータベースに対して(例えば、ウェブサービスプラットフォームへのインタフェースを介して)実行され得る検索クエリのための検索用語を決定し得る。一例として、ショートパンツの検出は、用語「ショートパンツ」を含む検索クエリをもたらし得る。画像に関するその他の情報を使用して、検索クエリの用語や他のパラメータを決定し得る。例えば、画像を分析して、ショートパンツが主に女性向けにデザインされたものであるか、または男性向けにデザインされたものであるかを判定し得る。これは、上述の技術を使用してショートパンツ自体を分析することによって、および/または画像内で検出されたショートパンツに関連している女性の顔の存在を検出することによって実行され得る。検出されたオブジェクトの色および他の属性を使用して、検索クエリについてのパラメータを決定することもできる。
図27は、一実施形態における、本明細書に記載の技術の利用を可能にするグラフィカルユーザインタフェースの説明のための例を示す。いくつかの例では、検索クエリについてのパラメータが自動的に生成され、ユーザインタフェースの変更を提供する。上記の例では、ユーザインタフェースは、白のショートパンツを検出したことを示し、ユーザは、「白」パラメータを選択解除して、検索結果を制限するために、および/または検索結果のフィルタリングに使用されうる異なる色を選択するために、その色が使用されるべきでないことを示すことが可能であり得る。
図27の例示的なグラフィカルユーザインタフェースでは、検出された各オブジェクトには、そのオブジェクトに対して送信されたクエリの検索結果の行が提供される。この方法で、ユーザは、どのオブジェクトに関心があるかを選択し、適用可能な検索結果を閲覧できる。前述のように、いくつかの実装形態では、ユーザは、ユーザが関心を持つオブジェクトを選択でき、その結果、どの検索結果がユーザインタフェースに表示されるかを選択できる。例えば、一実施形態では、ユーザが図27に示されるすユーザインタフェースを提示された場合、ユーザは、画像内のショートパンツオブジェクトを選択することができ(例えば、マウスクリックやタッチスクリーンタッチで)、検出されたショートパンツに少なくとも部分的に基づいて生成されたクエリの検索結果が、ユーザインタフェースに現れる(ユーザインタフェースに表示されている他のオブジェクトの結果をおそらく置換する)。
図27は説明の目的で使用されているが、多数の変形が本開示の範囲内にあると考えられる。さらに、衣料品および衣料品のカテゴリは、例示の目的で使用されたが、当業者は、本明細書に記載の技術の、アイテムを階層的に分類できる他のコンテキストへの適用可能性を認識するだろう。そのようなコンテキストの例は、センシングモダリティのうちの1つが視覚であり、出力が階層的なセマンティック構造を有するドメインを含む。いくつかの例は、画像から食品を検出し、画像から特定の種類の動物種を検出し(犬の品種は情報を共有し、猫の品種も情報を共有する)、葉の画像から植物種を識別する。
図28は、図27のグラフィカルユーザインタフェースの別の例であり、ここで、衣料品の視認可能な各アイテムは、一意に決定される(すなわち、衣料品のオブジェクトは2つのカテゴリとして識別されない)。図28のインタフェースは、図27と同様に動作し得る。
スケール、照明、カメラポーズ、ぼかし、オクルージョン、および他の視覚的ディストラクタのために、ビジュアル検索または様々な画像内の製品をマッチングするプロセスは困難である。いくつかの例では、2ステップマッチングプロセスを使用し、最初に画像内の高レベルカテゴリ(例:ドレス)を検出し、続いて同じ高レベルカテゴリ内の画像に検出器出力を一致させる。2ステップマッチングプロセスは、画像を多数の可能性のある製品(様々な種類のドレス)に分類する必要性を回避し、画像内の関心領域の識別に役立ち、マッチングプロセスのための検索スペースを減らす。一実施形態では、コンピュータシステムは、高レベルカテゴリ検出後の画像間マッチング/検索のために新規のディープニューラルネットワークを利用する。このネットワークは、ディープニューラルネットワークの様々な初期層からの特徴をプーリングし、ネットワークが同じ高レベルカテゴリの異なる製品間の微妙な違いに焦点を当てて表現できるようにする。一実施形態において、本明細書に記載の技術を利用して構築されたフレームワークは、ドメイン変化を説明するために学習プロセスを適合させるトリプレット学習フレームワークを提案することにより、ドメインバリエーションを処理する。提案されたフレームワークは、DeepFashionなどの大規模なオープンソースデータセットの検索精度を2倍にする一方で、画像あたりに用いられるアノテーションは著しく少なくなる。
一実施形態の説明のための例として、ニューヨークの通りを歩いていて、購入したい関心を引く服装に気づいたとする。本明細書で説明された方法は、単純に写真を撮って、次いでオンラインサービスから正確な/類似した服を購入することを可能にする。この問題は、street-to-shop画像マッチングと呼ばれ得る。Street-to-shop画像マッチングは、クエリ画像およびデータベースからの画像の両方が類似した画像特性を有する、一般的な画像検索とは異なる。Street-to-shopマッチング問題では、ストリート画像(現実的な画像ソースからの画像)は、複数の製品、様々な照明条件、モーションブラー、および他のイメージングノイズを含む複雑な背景を有する。対照的に、典型的なオンライン小売業者のカタログを構成するショップ画像は、通常、きれいな背景および完璧な照明条件で単一の製品を表示する。
図29は、一実施形態における、バウンディングボックスがオーバーレイされたトリプレットの説明のための例を示す。一実施形態では、コンピュータシステムは、正確な製品検索のために、ストリート画像とショップ画像との間のドメインの違いに特に対処するフレームワークを利用する。このフレームワークは、いくつかの実装形態では、3つの画像のトリプレットを使用する(ストリート画像、実際のショップ製品、異なるショップ製品)。これらのトリプレットに基づいて、ディープニューラルネットワークの重みが、機械学習プロセスを通じて学習され、ディープニューラルネットワークに、ストリート画像を実際のショップ製品に近く、異なるショップ製品から遠くなるように促進するようにさせる。図29は、トリプレットの典型的な例を示し、これは、単一のネットワークをトレーニングして、類似のストリート製品とショップ製品とを相互に近いものとなるようにし、異なるプロダクトを相互に分離するために使用される。
本明細書で説明されるそのような技術は、street-to-shopドメインの違いを無視する、または各ドメインを別個のネットワークで処理するなどの、他の技術に勝る技術的利点を提供する。例えば、ドメインの違いを無視しても目下の問題をモデル化することはできず、ストリートおよびショップに対し別個のドメインを使用することは、フレームワーク全体のパラメータ数を2倍にし、したがって、トレーニングに必要なデータが大幅に増える。一実施形態では、コンピュータシステムは、トリプレットを形成し、アンカーとしてストリート画像を選択し、トリプレット学習フレームワーク内でポジティブおよびネガティブ画像としてショップ画像を使用することにより、両方のドメインについて単一のネットワークを使用する。
一実施形態では、トリプレットベースの学習フレームワークの基礎となるネットワークは、様々な衣料品の細かな差異を表すことができる特徴の計算を含む。一実施形態では、コンピュータシステムは、畳み込みニューラルネットワーク(「CNN」)を、基礎となる学習/機能表現f(θ)(後で簡単に表現できるようにパラメータθを省略する)として使用するが、これは、CNNが、様々なコンピュータビジョンタスクに対し最先端の性能をもたらしたからである。CNNは、ネットワークの深さに沿った、画像からの次第に抽象的な情報も表す。正確な/類似の衣料品検索問題に対処するために、2つのほぼ同じドレスの異なる襟などの微妙な違いが対処される。正確な衣料品の検索の複雑さに対処するために、本開示によるシステムは、複数のスケールからの情報を結合する新規ネットワークMarkableNetを使用する。
一実施形態では、新規ネットワークは、ファッション検索問題のための単一モデル(MarkableNet)の複数の畳み込み層からの情報を要約し、モデルは、様々なパブリックファッションデータセット上で最先端の検索性能を達成する。
本開示の技術は、各ドメインに対し異なるネットワークを学習することを回避するトリプレットを設計することにより、ドメインの違いを処理する新規な方法を使用する。一実施形態では、MarkableNetは、ネットワークの異なる層からの情報を組み合わせる。このようなトレーニングは、オンラインで実行され得る。いくつかの実施形態では、本開示の技術は、我々のファッション検出器を使用して画像内の関連する(衣料品)関心領域のみを事前抽出することにより、領域提案プーリングを回避し、これは、本明細書に記載されるような動作を実行するようにプログラムされたコンピュータシステムとして実装され得る。
メトリックラーニングは、類似のオブジェクトがより近く、類似しないオブジェクトが互いに遠く離れている埋め込み空間を学習することを目的とする。検索問題のコンテキストでは、これは特に、多くの場合トリプレット形式を使用するランキングベースのメトリックラーニングを指す。トリプレットは、(χ,χ+,χ-)を指し、アンカーオブジェクトχは、ネガティブオブジェクトχ-よりもポジティブオブジェクトχ+により類似している。メトリックラーニングは、f(χ,χ+)>f(χ,χ-)などのマッピングfを学習することを目的としている。これを実現するために、様々なアプローチが提案されている。
一実施形態において、対比損失(contrastive loss)(ペアワイズ対比損失)は、サンプルのペアに定義される。これは、クラス内ペア間の距離を小さくすることを推奨し、クラス間ペアの距離がマージンよりも大きいことを必要とする。しかしながら、対比損失は、絶対距離にのみ焦点を当てているが、ランキング問題では、相対距離は絶対距離よりも重要である。距離を計算する方法は、限定されるものではないが、ユークリッド距離(例えば、ベクトルの個々の成分間の距離の2乗の合計)を含み、ここで、ディープニューラルネットワークは、画像をベクトルに変換するために使用することができ、次いでベクトルが、入力画像の表現として使用される。
トリプレット損失(Triplet loss):サンプルのトリプレットで定義されるトリプレット損失は、アンカーサンプルおよびネガティブサンプルを遠ざけつつ、アンカーサンプルおよびポジティブサンプルを引き寄せようとし、アンカー-ポジティブ距離とアンカー-ネガティブ距離との差がマージンより大きくなるようにする。
実際には、最高の性能を達成するために、トリプレットトレーニングは、ネットワークが学習を続けることができるように、各バッチに十分な有効トリプレットを必要とする。いくつかの実施形態では、有効なトリプレットを事前計算する代わりに、オンライン方式で各バッチに対するトリプレットを生成することでメモリ消費が削減され、各バッチでより多くのトリプレットが使用可能になり、モデルの性能が向上する。
単一のトリプレットを超える:トリプレットのサンプリングスペースが大きいため、トリプレットトレーニングの収束率は通常遅い。様々な例では、損失関数の多くのバリエーションを使用して、単一のトリプレットを超える情報を組み込み得る。いくつかの例は、各アンカー-ポジティブペアが、マージン違反によって重み付けされたバッチ内のすべてのネガティブサンプルと比較されるリフト構造埋め込み(Lifted Structure Embedding)を使用する。グラウンドトゥルースクラスタリング割り当てと、各バッチの計算された埋め込みに基づく最適化されたクラスタリング割り当てとの間のマージンを促進するクラスタ損失関数が定義される。いくつかの例では、Nペア損失は、バッチにおけるペアワイズ距離間でのソフトマックスクロスエントロピー損失を強制する。Nペア損失の複数のポジティブへの拡張は、NCA損失である。各バッチ内の情報の活用とは別に、マグネット損失およびプロキシを使用するメトリックラーニングの両方は、各バッチのトレーニング中に埋め込み空間全体のグローバル情報を利用しようとする。
表5:ファッションデータセットの比較。クロス:ストリート画像およびショップ画像の両方を有する製品(の画像);すべて:製品および画像の合計;人間:バウンディングボックスアノテーションが人間により注釈付けされた場合。Markableiiは、Markableiからの人間により注釈付けされたバウンディングボックスと、Markable内部ファッション検出器によって検出されたバウンディングボックスとを含む。
様々な実施形態において本明細書に記載された方法と組み合わせて使用され得るこれらの方法はすべて、単一のトリプレットを介した学習と比較して埋め込み空間を形成する一貫した方法を提供するので、グローバル情報を活用する精神を共有する。経験的に、我々は、単一のトリプレットを使用したトレーニングよりも優れたモデルを生成するグローバル情報メソッドを見出した。
いくつかの例では、ファッション認識が実装される。ランドマークや剛体の認識と比較して、ファッション分野での認識は、ほとんどのファッションアイテムの変形可能な性質のために挑戦的な問題である。以前の研究では、属性予測およびランドマーク予測から衣料品の検索に至るまで、様々なコンピュータビジョンの問題を調査した。本研究では、ストリートからショップまでのクロスドメイン画像検索の問題に焦点を当てる。本明細書で説明する技術およびその変形は、オブジェクトが変形可能な性質を有し得るような他のドメインに適用可能であることに留意されたい。例は、オブジェクトの画像が、描写されているオブジェクトに関する十分な情報を提示する画像対画像マッチングタスクが使用されるドメイン/コンテキストを含むが、これに限定されない。例は、自動車の画像(例えば、自動車の画像をオンライン自動車販売店の画像と比較することによる)、道路標識の画像と道路標識のストック写真の照合、家の画像と同じ家の他の画像の照合、オンライン小売業者のカタログに対する家具/室内装飾品の照合などを含む。
一般に、最後の層からのセマンティック特徴のみを使用しても、最高の検索性能は得られない。中間レベルの特徴および低レベルの特徴も、検索プロセス、特にファッションアイテム間の差異が微妙なファッション検索で重要な役割を果たす。システムは、様々な層からのセマンティック情報を要約する単一のネットワークを学習することにより、この特徴の組み合わせを得る。
表5に示されるWhere2BuyItおよびDeepFashionはファッション認識に関するオープンソースデータセットである。Where2BuyItは、約204k個の製品を含むが、ストリート画像を有するのは10k個の製品のみであり、すべてのショップ画像が、バウンディングボックスアノテーションを有するわけではない。DeepFashionは、両方のドメインからの画像を有する34k個の製品を含む。しかしながら、その画像解像度は、Where2BuyItと比較して低く、バウンディングボックスアノテーションは不正確である。
MarkableiおよびMarkableiiは、Markableの内部データセットである。そのようなデータセットは、様々な実施形態に従って様々な方法で取得され得る。例えば、いくつかの実施形態では、ウェブスクレーパーは、ウェブサイトをスクレイプして画像およびそのような画像に関するメタデータを取得するようにプログラムされている。別の例として、データセットは、デジタルカメラで画像を生成し、コンピューティングデバイスを使用してその画像に関するメタデータを人間が入力することにより、取得され得る。一般に、入力データを取得する任意の方法は、本開示の範囲内であると考えられる。厳密なデータクリーニングおよび人間のアノテーションパイプラインにより、コンピュータシステムは、高解像度(例えば、閾値を超える解像度および/または他の画像よりも比較的高い解像度)の画像を選択し、正確なバウンディングボックスおよびペア情報を保証する。Markableiの場合、ほとんどの製品は、2つのストリート画像および2つのショップ画像を有し、一実施形態では、すべての画像が、人間により注釈付けられたバウンディングボックスを有するが、Markableiiのほとんどの製品は、さらに多くのストリート画像および2~5個のショップ画像を有し、これらの追加の画像上のバウンディングボックスは、Markableのファッション検出器を使用して検出されている。全体的に、Where2BuyItおよびDeepFashionと比較して、Markableデータセットは、よくキューレトされているため、クロスドメインファッション検索のトレーニングおよびテストに適している。
本明細書に記載の学習技術を採用するコンピュータシステムは、エンドツーエンドでトレーニングされるクロスドメイン検索のために単一のネットワークを使用する。検索に最適なネットワークを設計するために、i)層全体の特徴表現、ii)層からの特徴重み付け、iii)複数の層からの特徴の組み合わせが考慮される。
表6:様々な特徴表現についてのDeepFashionデータセットのトップ20再現率。L2:特徴のl2正規化;PCAd:PCAの次元dへの次元削減;SP/MP:各特徴マップについてのSUM/MAXプーリング;||:特徴の連結;Hcolor:色ヒストグラム;conv4/conv5:conv4_3/conv5_3特徴など;■◆●:DeepFashionデータセットのトレーニング/検証/テストスプリット。FashionNetでは、モデルは、■でトレーニングされ、◆●でテストされる。
図30および図31は、一実施形態における、画像内のファッションアイテムの粗い表現および細かい表現の両方をキャプチャするネットワーク設計の説明のための例を示す。一実施形態では、コンピュータシステムは、事前にトレーニングされたVGG-16ニューラルネットワークを使用して、DeepFashionデータセット上のstreet-to-shop衣料品検索問題をテストする。測定(表6)から、検索問題について適切な特徴表現を形成する方法に関する洞察を引き出すことができ、すなわち、(i)conv層からの中間レベル特徴は、fc層からのセマンティック特徴より優れており、(ii)連結前の特徴のL2正規化が役立ち、(iii)SumプーリングはMaxプーリングよりも性能が優れており、(iv)(conv4層の前の)下位レベル特徴の連結による改善は、これらの洞察では取るに足らないものであり、図30及び図31に示されるようなMarkableNetが得られる。一実施形態では、このネットワーク設計は、画像内のファッションアイテムの粗い表現および細かい表現の両方を明確にキャプチャし、street-to-shop検索問題における大幅な性能向上をもたらす。
MarkableNetはVGG-16構造に基づいているが、一実施形態では、conv5_3層の後のすべての全結合層が除去される。SUMプーリングは、オリジナルの2×2プーリング操作の前に、conv4_3およびconv5_3の各特徴マップに適用され、2つの512d特徴を提供する。経験的に、いくつかの実装形態では、上記の特徴を直接連結すると、ネットワークのトレーニング中に不安定性を生じた。一実施形態では、これは、連結の前にL2正規化を追加することにより対処される。しかしながら、それは、性能を大幅に向上させることなく、再スケーリングによってこの問題を単に回避するようにみえる。L2正規化の代わりに、連結の前にバッチ正規化層を使用する実施形態は、特徴スケール問題を解決する。連結された1024d特徴に続いて、2つの全結合層が追加されるため、ネットワークは、様々な層から生じる様々な特徴のスケールおよびバリエーションを処理するのに十分なキャパシティを有し得る。バッチ正規化は、両方の全結合層の後にも適用され、ドロップアウト層は使用されない。MarkableNetからの埋め込みは、他のほとんどの検索方法よりもメモリ使用量が大幅に低い128d特徴である。
図32は、一実施形態において、オンラインでトリプレットを生成するためにバッチがどのように形成されるかの説明のための例を示す。図32において、naおよびnpは、製品ごとのストリート画像の数およびショップ画像の数である。各バッチについて、k個の製品が選択され、各製品について、本明細書に記載の技術を実行するコンピュータシステムによってna個のストリート画像およびnp個のショップ画像がランダムに選択される。ストリートドメインからショップドメインへの検索のためのモデルを学習するために、クロスドメイントリプレットが使用され、ここで、アンカーは、ストリートドメインからであり、ポジティブおよびネガティブは、ショップドメインからである。より具体的には、各製品について、そのna個のストリート画像のうちの1つが、アンカーとして選択され、そのnp個のショップ画像のうちの1つが、ポジティブとして選択され、バッチ内の他の製品の1つのショップ画像が、ネガティブとして選択される。このようにして、ネットワークを介して固有の画像を一度だけ転送しながら、大量のトリプレットを生成できる。トリプレット損失は次のように定義される。
ここで、τはクロスドメイントリプレットのセット、χ
iはストリートドメインからのものであり、χ
i
+およびχ
i
-はショップドメインからのものであり、Dは距離、[・]
+はヒンジ損失である。一実施形態では、L2は、実験におけるメトリックとして使用されるが、他の適切なメトリックも使用され得る。
トリプレット損失以外に、損失関数が定義される。例えば、一実施形態では、製品ごとに1つのショップ画像を選択し、Nペア損失を使用することにより、nペアのタプルが構築される。Nペア損失は、NCA損失の特別な場合であるため、一実施形態ではNCA損失が使用され、NCA損失は次のように定義される。
ここで、iはストリートドメインからのものであり、これに対応する製品のすべてのショップ画像がC
iを構成し、Cはバッチ内のすべての製品からのショップ画像のセットである。
性能を改善するために、以前の研究は、ネガティブマイニングを使用することを提案している。ネガティブマイニング方法では、セミハードネガティブマイニングおよびランダムハードネガティブマイニングが評価される。このようなマイニング方法は、トレーニングの安定性の点で有効なすべてのトリプレットを使用するのと同様に機能しない。代わりに、トレーニングの後期段階で、一実施形態では、ネットワークに細かい機微を学習させることを目的とするハードネガティブ製品マイニングステップが使用される。ハードネガティブ製品マイニングは、任意のメトリックに使用され得る。図33でマイニングステップを説明する。
各クエリストリート画像χiについて、セットgiが形成され、これは、クエリ製品としておよそΔ-1個の類似製品を含む。より具体的には、各クエリは、データベースからのすべてのショップ画像までの距離を含む応答を生成する。セットgiを形成するために、距離を昇順でランク付けする。ランク付けされたショップ画像を考慮すると、一実施形態では、最初の正確な製品のポジションが、マイニングウィンドウサイズよりも大きい場合、マイニングウィンドウは、左側に完全に存在する(例えば図33のχi)。最初の正確な製品ポジションがΔ未満の場合、マイニングウィンドウは、合計Δ-1個の類似ショップ画像を見つけるために右側に拡張される(例えば、図33のχi+1)。giは、マイニングウィンドウ内の固有の製品で構成される。マイニングウィンドウ内で重複する製品の場合、giは、Δ個未満の製品を含む。
バッチを形成するために、クエリ画像およびそのマイニングウィンドウの製品ショップ画像がプリセット画像として使用される。giにおける製品の画像は、各製品がバッチにおいてna個のストリート画像およびnp個のショップ画像を有するように、ランダムにサンプリングされる。いくつかの実装形態では、バッチサイズが固定されているため、ランダムにサンプリングされた製品を追加する必要もある。図33は、na=2、np=2、Δ=4、およびバッチサイズを32に設定したハードネガティブ製品マイニングステップを示す。
一実施形態では、144のバッチサイズが使用される。システムは、異なる値のnaおよびnpを使用してテストされる(図32参照)。経験的な結果は、naおよびnpに大きな値を使用する場合、トレーニングがゆっくり収束し、安定性が低下することを示している。実際には、na=2およびnp=2は、ネットワークに製品間バリエーションを学習させることと、同時に製品内バリエーションを処理することとの間のバランスが取れているため、一般に適切な設定である。ハードネガティブ製品マイニングに関しては、グループサイズΔ=6を使用した(図33参照)。
一実施形態では、様々なstreet-to-shopデータセット上の異なるネットワーク構造および損失関数は、我々のネットワークおよびクロスドメインバッチスキームの有効性を実証する。次の命名法が使用される。
VggEmbおよびMarkableNetの両方のトレーニングのために、conv4_1層まで勾配が逆伝播される。マージンは、トリプレット損失について0.3に設定される。トップk再現率(top-k recall)メトリックは、性能の測定に使用され、真陽性は、正確な製品が最初のk個の検索結果内にある場合である。
図33は、一実施形態における、ハードネガティブ製品マイニングステップの説明のための例を示す。円はストリート画像、星はショップ画像である。色は、異なる製品を区別するために使用される。χiは、i番目のクエリストリート画像、Δは、マイニングウィンドウサイズ、giは、χiについてマイニングされた類似製品のセットである。バッチを形成するために、i)giにおける対応する製品の画像(塗りつぶされていない円および星)をサンプリングし、ii)マイニングウィンドウにおいて製品が重複している場合に、ランダムにサンプリングされた製品を追加し、これにより、バッチ画像は、図33のように構成される。
一実施形態では、データセットの微調整は、トレーニング用に80%の製品、テスト用に20%の製品を使用して達成される。表7からわかるように、MarkableNet構造M2-M5からのすべての埋め込みは、VggEmb構造M1からの埋め込みと比較して、はるかに高い再現率を達成できる。大きなデータセットMarkableiiでのトレーニングは、Markableiでのトレーニングと比較して検索性能も向上する。さらに、ハードネガティブ製品マイニングは、再現率の増加に常に役立ち、改善はより大きなデータセットでより顕著である。より良い特徴表現、より大きなデータセット、およびネガティブ製品マイニングによるこれらの改善はすべて、「アクセサリー」カテゴリなどの困難なケースを考慮した場合、より明らかである。
システムの性能を評価するために、一実施形態では、MarkableNetは、DeepFashionおよびWhere2BuyItおよび/または他のパブリックデータセットでテストされた。表6に示されるようなDeepFashionデータセットにおいて、MarkableNetは、18.8%の既存のシステム性能と比較して、トップ20再現率において約40%の相対的増加を達成した。したがって、本明細書で説明される技術は、street-to-shopマッチングについて関連する特徴を抽出するための技術的改善を備える。クリーンデータセットの寄与の更なる評価は、事前にトレーニングされたモデルとしてM2(表7参照)を使用することにより行うことが可能である。微調整後、モデルは他のソリューションと比較して約78%の相対的改善を達成した。Where2BuyItデータセットのトップ20検索再現率が表8に示される。Markableの内部データセットを使用するトレーニングおよび使用しないトレーニングの両方の場合に対し、MarkableNetは、ほとんどのカテゴリで最高の再現率を実現できる。
一実施形態では、t-SNEアルゴリズムは、次元削減に使用され、Jonker-Volgenantアルゴリズムは、グリッドアラインメントに使用されて、Markableiのサブセット上の埋め込みベクトルを視覚化する。ドレスショップ画像は、色、テクスチャ、スタイルなどのファクタに基づいてグループ化され得る。類似のパターンが、異なるカテゴリからの製品についても観察され得る。いくつかの例では、モデルM5は、ストリートドメインからのバリエーションのほとんどを処理でき、製品ごとにストリート画像およびショップ画像をクラスタ化する。例えば、ドレスカテゴリについて、製品内距離および製品間距離は、十分に分離されている。したがって、学習プロセスは、製品内埋め込みをプルし、製品間埋め込みをプッシュすることである。全体として、これらの視覚化は、MarkableNetからの埋め込みを使用した特徴表現がファッション検索に適していることを示す。
生成において、クエリ画像が与えられると、一実施形態では、Markable内部ファッション検出器が、クエリ画像内のすべてのファッションアイテムを検出および分類するために使用され、次いで、カテゴリ内検索が、検出器からのバウンディングボックスおよびカテゴリを用いて検出されたアイテムのすべてに対し実施される。トップ10および欠落している場合の両方について、検索された製品のほとんどは、1つまたは複数の側面においてクエリアイテムに類似していることがわかる。また、結果は、大きなポーズの変形、長い髪によるオクルージョン、およびバウンディングボックスにキャプチャされた肌の量が可変であることにより発生するいくつかの失敗例を示す。
表7:様々な実験についてのMarkableデータセットのトップk再現率。M1:VggEmb-tri、M2:MarkableNet-tri、M3:MarkableNet-hnm-tri、M4:MarkableNet-nca、M5:MarkableNet-hnm-nca。M1、M2、M3は、Markableiデータセットでトレーニングされ、M4、M5は、Markableiiデータセットでトレーニングされる。「すべてのカテゴリ」は、合計35のサブカテゴリを含み、「衣料品」は、17のサブカテゴリを含み、「アクセサリー」は、18のサブカテゴリを含む。
表8:Where2BuyItデータセットのトップ20再現率。VisNetおよびM
5は、外部データでトレーニングされている。
この研究では、ファッション検索の問題に対して良好な特徴表現を構築する可能性が探求される。VGG-16モデルの複数の畳み込み層からプーリングされた要約特徴を使用するMarkableNetは、この問題に対する新規なソリューションである。2つのデータセットが、MarkableNetのためのトレーニング材料として構築されている。広範な実験の結果は、MarkableNetが、より良い特徴記述子、および、より大きく、より高品質のデータセットの両方から改善された性能を提供することを示す。メトリックラーニングにおける損失関数の選択によってもたらされるモデル性能の実質的な違いは見つからないが、NCA損失を使用する場合、収束速度は、はるかに速くなる。ハードネガティブ製品マイニングは、モデル性能をさらに向上させるための信頼できるツールとして使用され得る。
本開示の範囲内であると考えられる変形は、ResNetおよび特徴ピラミッドネットワークなどのより良いモデルからのより良い特徴表現を使用する変形を含む。関心領域のプーリングおよびインスタンスレベルのセグメンテーションの様々な方法は、人間レベルのファッション認識性能を実現する方法における役割を果たすために使用され得る。
一実施形態では、ディープラーニングは、画像分類、オブジェクト検出、およびセグメンテーションなどの多くの問題に適用可能である。これらの開発は、ユーザエクスペリエンスを向上させるインテリジェントで強力な消費者向け製品の構築に採用されている。改善された視覚的理解のアプリケーションの1つは、ビジュアル検索である。ビジュアル検索の範囲は、クエリおよびデータベースの両方が画像データで構成される画像に適用され得る。例えば、ビデオを使用して、画像のデータベースに対してクエリを実行し得る。本明細書で説明されるシステムおよび方法は、画像およびビデオに存在する製品を検出することができる。いくつかの実装形態では、個々の製品は、製品の画像およびビデオのデータベースを使用して識別される。
いくつかの例では、システムは、売り手が衣料製品のビデオまたは画像を電子カタログにアップロードすることを可能にする。電子カタログは、システムにアクセス可能なコンピュータ読み取り可能媒体に格納されているデータベース、データストア、アレイ、または他のデータ構造であり得る。売り手は、コンピュータネットワークを介して、物理メディア上に、またはシステムに接続されたカメラまたはビデオキャプチャデバイスを用いて、ビデオまたは画像をカタログにアップロードし得る。一実装形態では、売り手は、ウェブブラウザを実行するクライアントコンピュータシステムを使用して画像をアップロードし、システムは、アップロードされた画像を受け入れるウェブサーバを提供する。
消費者は、自由形式の画像またはビデオにクエリ要求を提供することにより、そのカタログに対して検索することができる。クエリ要求は、ウェブブラウザを介して、またはクライアントデバイスで実行されているクライアントソフトウェアを使用して、クライアントコンピュータシステムからアップロードされ得る。一実装形態では、クライアントソフトウェアは、モバイルデバイス、タブレットコンピュータシステム、携帯電話、またはカメラを含むその他のアプライアンスで実行されるアプリケーションである。消費者は、クライアントデバイスで画像をキャプチャし、クライアントソフトウェアを使用して、画像をサービスにアップロードする。一実装形態では、クライアントデバイスは、携帯電話であり、クライアントは、携帯電話で画像をキャプチャし、セルラーネットワークを介してそれをサービスにアップロードする。
図34は、一実施形態における、画像およびビデオ製品検索の説明のための例を示す。いくつかの実施形態では、ファッション認識技術およびアプリケーションは、単一の画像からの認識に基づいている。例えば、入力画像が与えられると、システムは、画像内のファッションアイテムを認識し、図34に示されるように、オンライン小売業者から入手可能な類似のファッションアイテムを識別する。より多くの消費者がビデオキャプチャデバイスにアクセスするようになるにつれ、ビデオサンプルに少なくとも部分的に基づいた製品の認識がより重要になってきている。いくつかの実装形態では、画像ベースのファッション認識の成功は、ニューラルネットワークによって学習された表現の品質に依存する。
画像ベースの検索システムは、クエリ画像内のファッションアイテムを検出する検出器と、検出された各アイテムに対する埋め込み空間における特徴表現を抽出する抽出器とを含む。埋め込み空間についての特定の距離メトリックを使用して、各アイテムの特徴表現が、埋め込み空間における特徴表現に近い特徴を有する一致および類似製品を検索するために使用される。検出器および特徴抽出器は、ポーズや照明の変動、画像に存在する軽度のオクルージョンなどのバリエーションに耐性がある。しかしながら、多くの実世界のビデオサンプルは、ビデオドメインにおけるより大きな画像バリエーションの存在のために、システムに課題を提起する。結果として、ビデオ画像の処理への従来の画像ベースの検索プロセスの適用は失敗する可能性があり、本システムは、実世界のビデオサンプルにしばしば存在する画質バリエーションに耐性のある検索システムを提供する。一般に、画像ベースの検索技術をビデオに適用すると、偽陽性および低品質のバウンディングボックス予測が生成される傾向があり、どちらも抽出器への入力を汚染し、最終的な検索のために悪い特徴表現を生成する。
本明細書で説明される様々な実施形態では、ビデオ製品検索システムは、ユーザビデオ内の各アイテムについての識別特徴表現情報を検出、追跡、および抽出できるニューラルネットワークをトレーニングする。このアプローチにはいくつかの課題がある。第一に、ある製品を着用しているユーザによりアップロードされたビデオ、および小売業者のウェブサイトからの製品のオンライン画像の、大量のトレーニングデータを収集するのは困難であり得る。別の方法として、ある製品を着用している人のユーザによりアップロードされた画像を収集することは、より簡単であり得る。第二に、製品の小売業者からの画像が比較的少ない(2~4個)場合、データベースについて製品特徴を抽出し、モデルをトレーニングすることは困難であり得る。いくつかの実装形態では、ビデオ製品検索システムは、画像ベースの検出と特徴抽出パイプラインとを統合して、画像およびビデオ製品検索の両方を可能にする。
ビデオは、同じ製品を示す複数の画像フレームを含み得る。ビデオ製品検索システムは、複数のフレームからの製品の表現を単一の高品質表現に統合することにより、これを利用する。ダウンストリーム検索プロセスの速度は、製品のよりコンパクトな表現により向上し、検索結果は、統合された表現が単一の画像から導出された表現よりも包括的であるため、改善される。いくつかの実施形態では、検索するデータベース内の特徴がより少なくなり、その結果、検索プロセスがより高速になる。ビデオストリーム内の個々の画像は、品質の点で変化し得る。例えば、特定のビデオストリームでは、一部の検出の品質が低い可能性があり、特徴統合のために抽出器に渡すのに適していない。そのため、いくつかの例では、ビデオ製品検索システムは、利用可能な画像をフィルタリングして、統合に使用すべき適切な検出のみを選択する。いくつかのビデオフレームでは、複数のアイテムが存在する場合があり、関連付けメカニズムを使用して、特徴統合の前にビデオフレームにわたり各アイテムのトラックレットを形成する。ビデオ製品検索システムは、i)ビデオ製品検索結果の改善につながる特徴統合を検出、追跡、生成し、ii)画像ベースの検索システムに統合し、iii)追跡モデルなどのビデオベースのモデルのさらなる改善を統合できる。一実施形態では、トラックレットは、個々のビデオフレームのシーケンス内の時空間的関心領域を識別することにより、ビデオセグメント内の形状および/または関節運動をキャプチャする記述子である。いくつかの例では、トラックレットは、ビデオフレームのシーケンス内のオブジェクトまたはオブジェクト部分の(潜在的に移動する)ロケーションを記述する。いくつかの例では、トラックレットは、フレーム内のオブジェクトの方向および速度を記述する領域の動きベクトルを含む。
様々な実施形態において、ビデオベースのクエリの処理は、様々な技術を使用してアプローチすることができる。一例では、ビデオフレームは、シーケンシャルデータまたは画像セットとして扱われる。それらがシーケンシャルデータとして扱われる場合、リカレントニューラルネットワークを使用して、ビデオフレーム間の時間依存性をモデル化し得る。しかしながら、推論時間中、出力は、入力フレームに対して順不変でない場合がある。ビデオフレームが画像セットとして扱われる場合、予測は決定論的であり得る。データベース製品は、画像セットの形式であるため、単一の画像セットベースのモデルが、クエリおよび検索ドメインの両方に適用され得る。メトリックラーニングが、あるドメインから別のドメインへのマッピングを学習するために使用され得る。顔認証、人物再同定(person re-identification)、製品の検索などのタスクは、メトリックラーニングを使用し得るが、分類では一般的に使用しない。各顔/人物/製品のトラックレットが使用され得る。トラックレットが使用される場合、入力が偽陽性によって汚染されるケースは除外される。追跡モデルまたは関連付けメカニズムのいずれかを使用して、トラックレットを形成し得る。
異なる技術では上記の様相が異なり得るが、一般に、多くの技術は、複数の特徴を組み合わせて単一のより包括的な特徴を生成する。統合は、単純な時間プーリングまたはセットプーリングの形式であり得る。プーリングオプションの中で、多くの場合、平均プーリングは、時間ディメンションに沿った最大または最小プーリングよりも優れている場合がある。統合の高度な方法は、時間的注意メカニズム(temporal attention mechanism)に依存する。ソフト注意メカニズムは、各ビデオフレームの各特徴に統合重みを与え、統合重みは、現在のフレームの画質を示す品質スコアの形式であり得る。いくつかの実装形態では、強化学習を使用するマルコフ決定過程(「MDP」)としてモデル化された、統合に適したフレームのサブセットを選択するために、ハード注意メカニズムを使用する。ESTのいくつかの例では、統合は、特徴レベルで実行されるが、統合は、スコアまたはメトリックレベルでも起こり得る。いくつかの例では、ツリー状構造を使用してクエリ特徴のセットとデータベース特徴との間の距離を測定する類似性ネットワークを学習する。しかしながら、これらのメトリックレベルの統合方法は、特徴レベルの統合と比較した場合、より低い性能を有し、計算量が多くなり得る。
ビデオ製品検索システムは、以下の見通し、i)検索結果は入力ビデオフレームに関して順不変であるため、ビデオフレームは画像セットとして扱われること、ii)品質認識特徴の統合は、品質認識モジュールを使用して実行されること、iii)トラックレットは、関連付けアルゴリズムを使用して生成され、トラックレットを形成すること、を考慮に入れる。
図35は、一実施形態における、ビデオまたは画像から1つまたは複数の製品を識別するビデオ製品検索システムの説明のための例を示す。一実施形態では、ビデオ製品検索システムは、メモリおよび1つまたは複数のプロセッサを含むコンピュータシステムとして実装される。メモリは、1つまたは複数のプロセッサにより実行されると、コンピュータシステムにシステムを実装する動作を実行させる実行可能命令を格納している。様々な実施形態において、実行可能命令は、実行可能命令の特定の部分を機能的コンポーネント、モジュール、またはインタフェースにグループ化することにより記述され得る。そのようなグループ化は、実行可能命令の可読性、理解、保守性の改善を含む様々な目的のために行われ得る。いくつかの例では、実行可能命令は、コンピュータシステム全体の性能を向上させる方法でグループ化および配置され得る。本書では、特定の動作の性能は、特定のモジュールまたはコンポーネントによって実行されるものとして説明され得る。当業者はこの慣行を知っており、一般に、動作は、特定のモジュールまたはコンポーネントに関連する命令を実行した結果として、システムの1つまたは複数のプロセッサによって実行されることを理解している。一実施形態では、システムに関連する可能命令は、検出、抽出、関連付け、および統合モジュールを含む。
一実施形態では、検出モジュールおよび抽出モジュールは、画像ベースのモデルである。抽出モデルは、特徴抽出器として機能し、入力アイテム画像品質チェッカーとしても機能し得る。抽出モジュールは、検出器によって予測された各バウンディングボックス内のパッチについて、そのパッチの特徴表現が検索タスクにどの程度良好であるかを判断できる。バウンディングボックスの回帰が適切でない場合、品質は低いと判断される。いくつかの例では、回帰のレベルは、管理者によって設定され、システムのメモリに格納された閾値によって決定され得る。バウンディングボックスは正確であるが、パッチコンテンツが検索に適していない場合(例えば、オクルージョンまたはモーションブラーに起因する)、品質も低くなる。品質スコアの閾値は、関連モジュールに送られてトラックレットを形成する前に、明らかな不良検出を削除するために用いられる。しかしながら、いくつかの例では、検出された偽陽性アイテムのうちのいくつかは、高パッチ品質を有するため、品質の閾値化は、検出から偽陽性をフィルタ除外できない可能性がある。したがって、このような状況では、偽陽性は、関連付けモジュールで削除される。さらに、各トラックレットの選択されたパッチ、および対応する品質スコアが、統合モジュールに渡され、トラックレットに対応するアイテムについての統合された特徴を取得する。品質スコアは、トラックレット特徴を統合するための重みとして使用され得る。次いで、統合された特徴が使用されて、検索のためにデータベースを照会する。製品画像は通常、クリーンな背景の制御された環境でキャプチャされた高品質の画像である。したがって、製品ドメインの統合モジュールは、平均統合技術であり得る。
図36は、一実施形態における、品質ヘッドブランチトレーニングの説明のための例を示す図である。一実施形態では、ビデオ製品検索システムは、抽出モデルからの中レベルの畳み込み特徴を使用して品質予測ヘッドブランチをトレーニングすることにより品質スコアを生成する。トレーニングデータに対し、ビデオ製品検索システムは、データ拡張アプローチを採用し、グラウンドトゥルースに対するintersection over
union比、不鮮明さの推定としてのラプラシアンの分散などの、特定の経験的メトリックに基づく品質スコアで各拡張ボックスにラベル付けする。ビデオ製品検索システムは、畳み込み特徴から品質スコアへのリグレッサーとして品質ヘッドをトレーニングするか、または抽出器をエンドツーエンドでトレーニングし得る。この場合、品質スコアを使用して最終特徴を統合し、統合された特徴から学習されたメトリックを使用して、品質スコアを暗黙的に学習し得る。
一実施形態では、関連付けモジュールは、ビデオフレームにわたって検出されたアイテムのセットに対しどのアイテムが同じ製品に属するかを判定する。
を、フレームt内のクラスcのn個の検出されたアイテムのセットであるとする。また、
を、これらのn個の検出されたアイテムの対応する特徴表現であるとする。長さl
kのトラックレット
は、同じ製品として認識された異なるビデオフレームにわたり検出されたアイテムのコレクションである。各トラックレットは、対応する追跡対象製品を表すランニング平均された特徴を有する。ビデオ製品検索システムは、特定の距離メトリック(例えば、ユークリッド距離)の下でのf
t
c間の距離およびトラックレットの特徴に基づく方法を使用して、時刻tにおける衣料品を時刻t-τにおける利用可能なトラックレットに関連付ける。以下の方法に例を示す。この方法を使用すると、ビデオ製品検索システムは、複数のビデオフレームにわたってアイテムを追跡できる。
ファッションアイテムがビデオフレームにわたって追跡されると、ビデオ製品検索システムは、その特定のアイテムの特徴を統合する。これは様々な方法で実現され得るが、その1つは、品質スコアを使用して加重平均を計算することである。
をクラスcの衣料品アイテムiについての特徴および品質スコアのセットであるとする。そのアイテムの統合された特徴は、次のように計算され得る。
ここでの統合は、関連付けプロセスにおけるランニング平均とは異なるが、原則として両方のプロセスが同じ統合モジュールを使用し得ることに留意されたい。いくつかの実装形態では、統合モジュールを関連付けモジュールと組み合わせることは、最近の特徴に追加の重みを配置することにより、関連付けの困難性を緩和し得る。
ビデオベースの処理モジュールは、ビデオ製品検索システムフレームワークに統合され得る。追跡は、検出モジュールに統合されて、関連付けモジュールの負担を軽減するか、または関連付けモジュールを置き換えることが可能である。注意マスク(attention mask)は、品質スコアで生成することもでき、いくつかの実施形態では、注意マスクを使用して検索を支援し得る。ビデオフレームがシーケンシャルデータとして扱われる場合、統合モジュールのリカレントユニットは、トラックレット内の特徴をシーケンシャルに受け入れることができ、これにより、追跡された製品に関する統合モジュールの知識を調整し、中間の隠された状態に埋め込まれた品質認識を備えた統合された特徴を生成する。
ビデオ製品検索システムは、エンドツーエンドのビデオ製品検索のための既存の画像ベースの製品検索システムを改善するために使用され得る。様々な例で、ビデオ製品検索システムは、品質スコアのフィルタリングおよび関連付けを介して画像ベースの検出の偽陽性を除去することによりこれを実現する。さらに、いくつかの例では、品質を意識した特徴の統合により、製品検索の包括的な表現が提供され、システムのスケーラビリティが向上する。
一実施形態では、コンピュータシステムは、画像およびビデオ情報を使用して衣料品の特性および属性を分析する。様々な例で、システムは、人間レベルの理解を達成できる。システムは、オブジェクト検出を使用して、ドレスなどのオブジェクトの位置特定および分類を実現する。いくつかの例では、システムは、単なる分類を超えた分析を実行して、各衣料品の強化されたプロファイルを生成する。例えば、ドレスの場合、システムは、色、パターン、素材、袖のタイプ、襟のタイプ、および他の属性を判定し得る。システムは、特定の属性を画像内の特定の対象に関連付けることにより、特定の画像の属性を識別するだけではない。そうすることにより、システムは、画像内に存在するオブジェクトの位置を特定し、画像に含まれる製品に固有の情報を表すことができる。様々な実装形態において、システムは、存在する製品を位置特定および分類し、各製品に対応する特定の中間レベルの属性を見つけるエンドツーエンドの検出器および属性ネットワークを提供する。
図37は、一実施形態における、製品属性を含む製品ウェブページの説明のための例を示す。多くの例で、デザイナーおよび小売業者は、販売されているアイテムを説明する属性を追加する。例えば、図37において、小売業者は、潜在的な買い手に役立ち得る属性(例えば、上部ヘムライン、素材、色など)の説明を含める。このプロセスは手動で実行され得る。本明細書で説明される様々な実施形態において、コンピュータビジョンシステムは、問題の製品の画像またはビデオフレームを使用して製品属性を判定するタスクを自動化する。
いくつかの実施形態では、コンピュータビジョンシステムは、コンピュータビジョンタスクの改善された性能を提供するディープラーニングベースのシステムを使用する。様々な例において、ディープネットワークアーキテクチャのサブセットは、オブジェクト検出タスクで極めて良好に動作する。このようなアーキテクチャは、画像および/またはビデオフレーム内のオブジェクトインスタンスを識別するために構築されている。
図38は、一実施形態における、検出および属性ネットワークからの出力の説明のための例を示す。説明されるコンピュータビジョンシステムは、画像およびビデオコンテンツ内の衣料品オブジェクトを識別するシステムを使用し、これらの検出を使用して、ユーザに衣料品/アパレル属性のリストを提供する。これは、2つの主要なモジュール、すなわち、1)ファッションアイテムを検出するモジュール、2)検出された各アイテムについての製品属性のリストを生成するモジュールで構成されるディープラーニングアーキテクチャを構築することにより実現され得る。このシステムの出力の例が、図38に示されており、すべての衣料品アイテムが検出され、それぞれの属性がリストされている。
小売業者は、以下を含むがこれらに限定されない様々なアプリケーションにコンピュータビジョンシステムを使用することができる。
●ビジュアルSEO-オンライン小売業者の在庫にある各衣料品アイテムの情報を自動的に充実させる。
●分類/分類法の改善-オンライン小売業者の在庫全体を解析し、色、パターン、素材、さらにはドレスカテゴリなどに沿って分類する。
●属性ベースの検索-自動的に追加される中間レベルの属性を使用してオンライン小売業者の在庫を検索する。
●ファッショントレンド分析-属性を利用して、クライアントのサイトおよびソーシャルメディアプラットフォームのファッショントレンドを分析する。これらの洞察は、消費者の理解を深めることで販売を改善するために使用され得る。
本文書は、コンピュータビジョンシステムについて説明している。コンピュータビジョンシステムは、画像およびビデオコンテンツから製品を位置特定、検出、および抽出し、それらのアイテムに関連する属性を生成できるエンドツーエンドシステムを提供する。いくつかの実施形態では、コンピュータビジョンシステムは、画像またはビデオコンテンツから抽出された製品クエリでの検索結果の関連性を改善するために、ビジュアル検索を備えた属性抽出システムと統合される。
ディープラーニングベースのオブジェクト検出方法は、いくつかのカテゴリに分類され得る。1つのアプローチは、入力画像が最初にオブジェクト提案ネットワークを通過し、次に分類ヘッドを通過する2ステップの方法である。別のアプローチは、バウンディングボックスが直接配置され、1つのステップで予測される1ステップの方法である。
様々な実施形態において、本明細書で説明されるコンピュータビジョンシステムは、2段階の方法を使用する。コンピュータビジョンシステムは、領域提案ネットワークを使用して、候補バウンディングボックスを配置し、それらを分類に使用し得る。いくつかの実装形態では、衣料品アイテムは、それらに関連する固有の属性を有する。例えば、Tシャツは、袖の長さ、ヘムライン、クロージャタイプなどの固有の属性を有し、靴は、ヒールタイプ、ヒールの長さ、つま先タイプなどの属性を有し得る。一実施形態では、属性ネットワークは、属性を予測する前に高レベルの衣料品カテゴリを検出する。別の実施形態では、コンピュータビジョンシステムは、ネットワークを2つの部分、すなわち、高レベルの衣料品カテゴリ検出器および属性分類器に分割する。
本文書では、コンピュータビジョンシステムが説明されている。一実施形態では、コンピュータビジョンシステムは、メモリおよび1つまたは複数のプロセッサを含むコンピュータシステムとして実装される。メモリは、1つまたは複数のプロセッサにより実行されると、コンピュータシステムにシステムを実装する動作を実行させる実行可能命令を格納している。様々な実施形態において、実行可能命令は、実行可能命令の特定の部分を機能的コンポーネント、モジュール、またはインタフェースにグループ化することにより記述され得る。そのようなグループ化は、実行可能命令の可読性、理解、保守性の改善を含む様々な目的のために行われ得る。いくつかの例では、実行可能命令は、コンピュータシステム全体の性能を向上させる方法でグループ化および配置され得る。本書では、特定の動作の性能は、特定のモジュールまたはコンポーネントによって実行されるものとして説明され得る。当業者はこの慣行を知っており、一般に、動作は、特定のモジュールまたはコンポーネントに関連する命令を実行した結果として、システムによって実行されることを理解している。一実施形態では、システムに関連する可能命令は、検出器、および属性コンポーネントを含む。
いくつかの実装形態では、ディープラーニングニューラルネットワークは、計算コストが高い可能性があり、そのため、スライディングウィンドウアプローチを使用して、いくつかの状況でオブジェクトの位置を特定し、それらのカテゴリを予測することが実用的ではない。この問題に対処するために、コンピュータビジョンシステムのある実施形態は、領域提案ネットワークを使用して、オブジェクトが存在する可能性が高い場所に候補バウンディングボックスを出力する。畳み込みニューラルネットワークを使用して、これらの候補バウンディングボックスから識別特徴を抽出する。これらの抽出された特徴は、カテゴリ分類のための分類器に送られる。
一実施形態では、検出器は、属性ネットワークに、1)高レベルの衣料品カテゴリ、および2)入力画像内の位置に関する事前情報を提供する。属性ネットは、検出器によって提供される最終バウンディングボックス内の畳み込み特徴をさらに抽出し、高レベルの衣料品カテゴリのトップにある属性を予測する。例えば、検出器がドレスを予測する場合、属性ネットワークは、ドレスに関連する属性(ドレスの種類、袖の長さ、上部ヘムラインなど)を予測する。
一実施形態では、セクション2.1および2.2で説明される機能は、2つの別個の畳み込みニューラルネットワーク(「CNN」)アーキテクチャとして実装され得る。これらのCNNは、1)衣料品アイテムを位置特定および分類し、2)属性を予測する。いくつかの実装形態では、トレーニングおよび推論に別個のネットワークを使用するのが面倒な場合がある。したがって、いくつかの実装形態では、コンピュータビジョンシステムは、検出ネットワークおよび属性ネットワークを組み合わせて、エンドツーエンドの方法でトレーニングされ得る単一のネットワークを生成する。
初期ネットワーク層は、タスクに依存せず、エッジ、形状などのような低レベルの特徴を抽出し得る。属性ネットワークは、検出ネットワークの初期層の特徴を共有でき、これらの低レベルの特徴を利用して、属性検出のためのタスク固有の高レベル特徴を計算することができる。計算を共有することにより、このエンドツーエンドアーキテクチャは、2つの別個の畳み込みネットワークを利用する実装形態に関連する計算負荷のほとんどを軽減する。
図39は、一実施形態における、検出および属性ネットワークの概略の説明のための例を示す。画像は、畳み込みニューラルネットワークを介して処理されて、特徴ボリュームが抽出される。次に、特徴ボリュームは、1つまたは複数の関心領域を定義する領域提案ネットワークを通過する。領域はさらに、分類ヘッドおよびバウンディングボックス回帰ヘッドに渡され、ボックスで囲まれた衣料品アイテムのカテゴリを予測し、最終的なバウンディングボックス座標を予測する。属性ネットワークも、検出器によって抽出された特徴マップのトップに付加される。属性ネットワークは、分類および回帰ヘッドと同じ領域を入力として取るが、衣料品アイテムの属性を生成する。
クラス不均衡は、機械学習で生じ得る問題である。クラス不均衡は、いくつかのクラスに大きく偏っているクラス分布から生じる。例えば、不正検出は、ごく少数のトランザクションが不正として分類される例である。このようなクラス不均衡で分類器をトレーニングすると、分類器は、支配的なクラス(例えば、不正検出の場合の非不正サンプル)にバイアスされる可能性がある。
ファッションデータセットは、属性クラスに関する類似の問題に直面している。一般的に着用されるスタイルは、よりエキゾチックなスタイルよりも支配的である。例えば、クルーネックやクラシックな襟のような上着スタイルは、非伝統的な襟タイプよりもファッションデータセットではるかに豊富であり、ソリッドパターンタイプは、水玉よりも豊富である可能性がある。このようなデータセットで属性検出器を単純にトレーニングすると、バイアスされた分類器が生成され得る。この問題を解決するために、コンピュータビジョンシステムは、λk=1/Nkにより属性損失に重みを割り当て、ここで、Nkは、トレーニングデータのk番目の属性の頻度である。したがって、より頻度の低い属性は、より高い頻度の属性よりも大きな重みが与えられる。この重み付け手順は、それに応じて勾配を変調し、その結果、バイアスされていない分類器をもたらす。
上記の方法は、コンピュータビジョンシステムによって使用されるエンドツーエンドのトレーニング方法の例を示しており、ここで、pj
*はj番目のROIのグラウンドトゥルースクラス確率であり、bi
*はj番目のROIのbbox回帰ターゲット座標であり、a*j
kは、j番目のROIのk番目の属性である。λkは、k番目の属性についての損失に割り当てられた重みである。
図40は、様々な実施形態が実装され得る環境を示す。図40は、本開示の少なくとも1つの実施形態を実施するために使用され得る例示的なコンピューティングデバイス4000の例示的な簡略化されたブロック図である。様々な実施形態では、コンピューティングデバイス4000を使用して、本明細書で例示し上記で説明したシステムのうちの任意のものを実装し得る。例えば、コンピューティングデバイス4000は、データサーバ、ウェブサーバ、ポータブルコンピューティングデバイス、パーソナルコンピュータ、または任意の電子コンピューティングデバイスとして使用するために構成され得る。図40に示されるように、コンピューティングデバイス4000は、バスサブシステム4004を介して複数の周辺サブシステムと通信し、動作可能に結合されるように構成され得る1つまたは複数のプロセッサ4002を含み得る。プロセッサ4002は、本開示の実施形態における監視されるモデルのランダムフォレストにおける決定木のトラバースのために利用され得る(例えば、様々な検索用語の逆文書頻度を評価させるなど)。これらの周辺サブシステムは、メモリサブシステム4008およびファイルストレージサブシステム4010、1つまたは複数のユーザインタフェース入力デバイス4012、1つまたは複数のユーザインタフェース出力デバイス4014、およびネットワークインタフェースサブシステム4016を含むストレージサブシステム4006を含み得る。そのようなストレージサブシステム4006は、本開示に記載されたトランザクションに関連する詳細、本開示に記載された履歴記録のデータベース、および本開示の監視されるモデルの決定ルールの格納などの情報の一時的または長期格納のために使用され得る。
バスサブシステム4004は、コンピューティングデバイス4000の様々なコンポーネントおよびサブシステムが意図したように互いに通信できるようにするためのメカニズムを提供し得る。バスサブシステム4004は単一のバスとして概略的に示されているが、バスサブシステムの代替実施形態は、複数のバスを利用する。ネットワークインタフェースサブシステム4016は、他のコンピューティングデバイスおよびネットワークへのインタフェースを提供し得る。ネットワークインタフェースサブシステム4016は、コンピューティングデバイス4000からの他のシステムからデータを受信し、他のシステムにデータを送信するためのインタフェースとして機能し得る。例えば、ネットワークインタフェースサブシステム4016は、データ技術者がデバイスを無線ネットワークに接続することを可能にして、データ技術者がユーザデータセンターなどの遠隔地にいる間にデータを送受信できるようにし得る。バスサブシステム4004は、詳細、検索語などのデータを本開示の監視されたモデルに通信するために利用されてもよく、監視されたモデルの出力を、ネットワークインタフェースサブシステム4016を介して1つまたは複数のプロセッサ4002に、および販売者および/または債権者に通信するために利用されてもよい。
ユーザインタフェース入力デバイス4012は、キーボード、統合されたマウス、トラックボール、タッチパッド、またはグラフィックタブレットなどのポインティングデバイス、スキャナ、バーコードスキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム、マイク、他のタイプの入力デバイスなどのオーディオ入力デバイスなどの1つまたは複数のユーザ入力デバイスを含み得る。一般に、「入力デバイス」という用語の使用は、コンピューティングデバイス4000に情報を入力するためのすべての利用可能なタイプのデバイスおよびメカニズムを含むことを意図している。1つまたは複数のユーザインタフェース出力デバイス4014は、ディスプレイサブシステム、プリンタ、または音声出力デバイスなどの非視覚的ディスプレイを含み得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、発光ダイオード(LED)ディスプレイ、またはプロジェクションまたは他のディスプレイデバイスであり得る。一般に、「出力デバイス」という用語の使用は、コンピューティングデバイス4000から情報を出力するためのすべての利用可能なタイプのデバイスおよびメカニズムを含むことを意図している。1つまたは複数の出力デバイス4014を使用して、例えば、ユーザインタフェースを提示し、本明細書に記載のプロセスおよびその変形を実行するアプリケーションとのユーザ対話を容易にすることができ、そのような対話は適切であり得る。
記憶サブシステム4006は、本開示の少なくとも1つの実施形態の機能を提供し得る基本的なプログラミングおよびデータ構築を格納するためのコンピュータ可読記憶媒体を提供し得る。1つまたは複数のプロセッサによって実行される結果として、本開示の1つまたは複数の実施形態の機能を提供し得るアプリケーション(プログラム、コードモジュール、命令)は、ストレージサブシステム4006に格納され得る。これらのアプリケーションモジュールまたは命令は、1つまたは複数のプロセッサ4002によって実行され得る。ストレージサブシステム4006は、本開示に従って使用されるデータを格納するためのリポジトリをさらに提供し得る。ストレージサブシステム4006は、メモリサブシステム4008およびファイル/ディスクストレージサブシステム4010を備え得る。
メモリサブシステム4008は、プログラム実行中の命令およびデータの格納のためのメインランダムアクセスメモリ(RAM)4018と、固定命令が格納され得る読み取り専用メモリ(ROM)4020とを含む複数のメモリを含み得る。ファイルストレージサブシステム4010は、プログラムおよびデータファイルのための非一時的な永続的(不揮発性)ストレージを提供することができ、ハードディスクドライブ、関連するリムーバブルメディアを有するフロッピー(登録商標)ディスクドライブ、コンパクトディスク読み取り専用メモリ(CD-ROM)ドライブ、光学ドライブ、リムーバブルメディアカートリッジ、および他のストレージ媒体を含み得る。
コンピューティングデバイス4000は、少なくとも1つのローカルクロック4024を含み得る。ローカルクロック4024は、特定の開始日から発生したティックの数を表すカウンタであってよく、コンピューティングデバイス4000内に一体的に配置され得る。ローカルクロック4024は、特定のクロックパルスでコンピューティングデバイス4000およびそこに含まれるすべてのサブシステムのプロセッサでのデータ転送を同期するために使用でき、コンピューティングデバイス4000とデータセンター内の他のシステムとの間の同期動作を調整するために使用され得る。一実施形態では、ローカルクロック4024は、原子時計である。別の実施形態では、ローカルクロックは、プログラム可能なインターバルタイマーである。
コンピューティングデバイス4000は、ポータブルコンピュータデバイス、タブレットコンピュータ、ワークステーション、または以下で説明する他のデバイスを含む様々なタイプのものであり得る。さらに、コンピューティングデバイス4000は、1つまたは複数のポート(例えば、USB、ヘッドフォンジャック、ライトニングコネクタなど)を介してコンピューティングデバイス4000に接続され得る別のデバイスを含み得る。コンピューティングデバイス4000に接続され得るデバイスは、光ファイバコネクタを受け入れるように構成された複数のポートを含み得る。したがって、このデバイスは、処理のためにデバイスをコンピューティングデバイス4000に接続するポートを介して送信され得る電気信号に光信号を変換するように構成され得る。コンピュータおよびネットワークの絶えず変化する性質のために、図40に示されたコンピューティングデバイス4000の説明は、装置の好ましい実施形態を説明する目的のための特定の例としてのみ意図されている。図40に示されるシステムからのより多くのまたはより少ないコンポーネントを有する他の多くの構成が可能である。
図41は、様々な実施形態による態様を実装するための例示的な環境4100の態様を示す。クライアント/サーバ環境が説明の目的で示されているが、他の実装形態では他の環境が使用され得る。この環境は、クライアントコンピュータシステム4102を含む。クライアントコンピュータシステムは、コンピュータネットワーク4104を介して情報を送受信できるデスクトップコンピュータ、ラップトップコンピュータ、コンピューティングアプライアンス、またはモバイルデバイスであり得る。クライアントコンピュータシステムの他の例は、携帯電話、タブレットコンピュータ、ウェアラブルデバイス、携帯情報端末(「PDA」)、組み込み制御システム、およびスマートアプライアンスを含む。コンピュータネットワーク4104は、有線ネットワークであっても無線ネットワークであってもよい。有線ネットワークは、イーサネット(10baseT、100baseT、またはギガビット)、AppleTalk、トークンリング、ファイバチャネル、USB、RS-232、または電力線ネットワークなどの有線ネットワーク、または802.11Wi-Fi、Bluetooth、または赤外線通信ベースのネットワークなどのワイヤレスネットワークを含み得る。様々な通信プロトコルが、コンピュータネットワーク4104上で使用され得る。通信プロトコルは、TCP/IP、IPX、またはDLCを含み得る。様々な中間プロトコルが、HTTP、HTTPセキュア(「HTTPS」)、シンプルネットワーク管理プロトコル(「SNMP」)、シンプルメール転送プロトコル(「SMTP」)などのこれらのプロトコルのトップで動作し得る。コンピュータネットワーク4104は、インターネット、内部ホームネットワーク、またはビジネスイントラネットを含むサブネットワークの組み合わせを含み得る。
この環境は、サーバコンピュータシステム4106を含む。サーバコンピュータシステム4106は、クライアントコンピュータシステム4102を含むコンピュータネットワーク4104に接続された様々なコンピュータシステムからリクエストを受信する。サーバコンピュータシステム4106は、サーバコンピュータシステム、サーバクラスタに配置された複数のサーバコンピュータシステム、またはコンピュータネットワーク4104を介して要求を受信し応答を送信することができる仮想コンピュータシステムであり得る。いくつかの環境では、パーソナルコンピュータシステム、ハンドヘルドデバイス、または携帯電話が、サーバコンピュータシステム4106の機能を実行し得る。複数のアドレス指定可能なデバイスを使用して要求を処理する場合、ロードバランサーまたはファイアウォールなどの他の調整エンティティが、クライアントコンピュータシステム4102とサーバコンピュータシステム4106との間に配置され得る。ロードバランサーは、サーバデバイスの集合に代わってリクエストを受信し、サーバデバイスの集合全体にリクエストをルーティングし得る。
サーバコンピュータシステム4106は、2つ以上のサービスインタフェースをエクスポートすることにより複数のサービスを実施し得る。例えば、複数のサービスが、対応する数のプロセスとしてサーバコンピュータシステム4106上に実装され得る。各プロセスは、異なるネットワークアドレスおよび/またはネットワークポートにバインドされ得る。特定のネットワーククライアントは、対応するネットワークアドレスおよびポートに要求を送信することにより、特定のサービスにアクセスし得る。
サーバコンピュータシステム4106は、データストア4108に接続されている。データストアという用語は、ディスクドライブ、半導体RAM、ROM、フラッシュメモリ、光ディスク、CD-ROM、EEPROMなどのコンピュータ可読情報を格納および検索できるデバイスを指し得る。いくつかの実装形態では、EEPROMメモリなどの追記型(write-once/read-many)メモリを使用してデータストアを生成し得る。いくつかの実装形態では、データベースを使用して情報を格納し得る。いくつかの例では、データベースは、SQL Server、Oracle、Access、または他のリレーショナルデータベースエンジンなどの商用アプリケーションを使用して生成され得る。特定のキー値を使用して情報に迅速かつ効率的にアクセスできるようにするテーブルおよびキーが定義されている。テーブルは、データへの迅速かつ効率的なアクセスのためにリンクされ得る。リレーショナルデータベースエンジンは、標準のクエリ言語(「SQL」)を使用して、格納されたデータに対する操作を可能にする。データベース内に格納されている情報を作成、変更、削除、または合成するSQLコマンドまたはスクリプトが送信され得る。当業者は、いくつかのシステムでは、いくつかのデータベース機能が、1つのアプリケーションに統合され得ることを理解するであろう。ハッシュテーブル、順序付きリスト、スタック、およびキューは、多くのアプリケーションにおいて類似の機能を実行するために実装および配置され得る。「データストア」という用語は、データの格納、アクセス、および検索が可能な任意のデバイスまたはデバイスの組み合わせを指し、これは、任意の標準、分散、仮想、またはクラスタ環境におけるデータサーバ、データベース、データストレージデバイス、データストレージメディアの任意の組み合わせおよび任意の数を含み得る。本明細書で使用する「データベース」という用語は、商用データベースエンジン、および順序付けられインデックス付けられたデータ構造、ハッシュテーブル、配列、リンクされたリスト、キー値ペア構造などを使用したデータベース機能のカスタム実装形態の両方を指す。
サーバコンピュータシステム4106は、データストア4108に保持されている情報へのアクセスを制限するアクセスおよび認証制御を提供し得る。認証システムは、サーバコンピュータシステム4106に要求を送信する個人またはエンティティの識別を検証することにより、サーバコンピュータシステムへのアクセスを制御する。認証は、ユーザ名およびパスワード、デジタル署名、生体認証値などの認証情報を検証することにより実現される。いくつかの実装形態では、認証は、承認されたユーザのみが知っているユーザ名およびパスワードの送信を通じて行われる。別の実装形態では、認証は、クライアントコンピュータシステム4102の制御下にあることが知られている暗号化キーを使用したデジタル署名の提出の結果として生じる。暗号化キーは、デジタル証明書に関連付けられた秘密暗号化キーであり得る。サーバコンピュータシステム4106に提出されたリクエストは、承認制御の対象となり得る。承認制御は、リクエスターまたは要求元デバイスの識別に少なくとも部分的に基づき得る。いくつかの実装形態では、承認制御は、サービスリクエストに時間ベースまたはデータレート調整制限を課し得る。
データストア4108に格納され、サーバコンピュータシステム4106によって提供されるコンテンツは、ドキュメント、テキスト、グラフィックス、音楽またはオーディオ、ビデオコンテンツ、実行可能コンテンツ、実行可能スクリプト、またはコンピュータアプリケーションで使用するバイナリデータを含み得る。例えば、ウェブサーバが提供するコンテンツは、ハイパーテキストマークアップ言語(「HTML」)、拡張マークアップ言語(「XML」)、JavaScript、カスケードスタイルシート(「CSS」)、JavaScript Object Notation(JSON)、および/または別の適切な形式であり得る。コンテンツは、サーバコンピュータシステム4106からクライアントコンピュータシステム4102に平文または暗号化された形式で提供され得る。
本明細書および図面は、限定的な意味ではなく例示的な意味で適切に考慮されるべきである。しかしながら、特許請求の範囲に記載された本発明の範囲から逸脱することなく、様々な修正および変更を行うことができることは明らかであろう。同様に、他の変形も本開示の範囲内である。したがって、開示された技術は様々な修正および代替の構成の影響を受けやすいが、その特定の例示の実施形態が図面に示され、上記で詳細に説明されてきた。しかしながら、開示された特定の形態に本発明を限定する意図はなく、反対に、添付のクレームで定義されるような本発明の範囲内にあるすべての修正、代替構造、および均等物をカバーする意図があることを理解されたい。
開示された実施形態を説明するコンテキストにおいて(特に以下の特許請求の範囲において)用語「1つの(a,an)」および「前記(the)」および類似の指示の使用は、特に示されない限り、またはコンテキストによって明らかに矛盾しない限り、単数および複数の両方をカバーするものと解釈されるべきである。「備える」、「有する」、「含む」、および「包含する」という用語は、特に断りのない限り、開放型の用語(すなわち、「含むが、これに限定されない」という意味)であると解釈されるべきものである。「接続された」という用語は、変更されておらず、物理的な接続を指す場合、何かが介在している場合でも、部分的または全体的に含まれている、取り付けられている、または結合されていると解釈されるべきものである。本開示における値の範囲の列挙は、特に明記しない限り、範囲内に入る各個別の値を個別に参照する簡略化された方法としての役割を果たすことを単に意図しており、各個別の値は、あたかも個別に列挙されているかのように明細書に組み込まれる。用語「セット」(例えば、「アイテムのセット」)または「サブセット」の使用は、特に明記しない限り、またはコンテキストにより矛盾しない限り、1つまたは複数のメンバーを含む空でない集合として解釈されるべきものである。さらに、特に明記しない限り、またはコンテキストにより矛盾しない限り、対応するセットの「サブセット」という用語は、対応するセットの適切なサブセットを必ずしも示すものではなく、サブセットおよび対応するセットが等しくてもよい。
「A、B、およびCのうちの少なくとも1つ」、または「A、B、およびCの少なくとも1つ」という形のフレーズなどの連結的言語は、特に明記しない限り、またはコンテキストにより明らかに矛盾しない限り、そうでなければ、アイテム、用語などは、AまたはBまたはC、またはAおよびBおよびCのセットの空でないサブセットのいずれかであり得ることを提示するために一般に用いられるようなコンテキストで理解される。たとえば、3つのメンバーを有するセットの説明例では、接続句「A、B、Cのうちの少なくとも1つ」および「A、B、Cの少なくとも1つ」は、{A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C}のセットのいずれかを指す。したがって、そのような連結的言語は、一般に、ある実施形態が、Aの少なくとも1つ、Bの少なくとも1つ、およびCの少なくとも1つがそれぞれ存在することを必要とすることを意味することを意図していない。
説明されたプロセスの動作は、特に明記しない限り、またはコンテキストにより明らかに矛盾しない限り、任意の適切な順序で実行され得る。説明されているプロセス(またはそのバリエーションおよび/または組み合わせ)は、実行可能命令で構成された1つまたは複数のコンピュータシステムの制御下で実行され、ハードウェアまたはそれらの組み合わせにより、1つまたは複数のプロセッサ上で集合的に実行されるコード(例えば、実行可能命令、1つまたは複数のコンピュータプログラム、または1つまたは複数のアプリケーション)として実装され得る。コードは、例えば、1つまたは複数のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形式で、コンピュータ可読記憶媒体に格納され得る。コンピュータ可読記憶媒体は、非一時的であり得る。
提供された任意のおよびすべての例、または例示的な言葉(例えば、「などの」)の使用は、単に本発明の実施形態をより良く説明することを意図しており、特に請求されない限り、本発明の範囲を限定するものではない。明細書中のいかなる文言も、クレームされていない要素が本発明の実施に不可欠であることを示すと解釈されるべきではない。
本発明を実施するために発明者に知られている最良の形態を含む、本開示の実施形態が説明されている。これらの実施形態のバリエーションは、前述の説明を読めば、当業者に明らかになり得る。発明者は、当業者がそのようなバリエーションを適切に使用することを期待し、発明者は、本開示の実施形態が具体的に記載された以外の方法で実施されることを意図する。したがって、本開示の範囲は、適用される法で許可されるように、本明細書に添付された特許請求の範囲に記載された主題のすべての修正および均等物を含む。さらに、そのすべての可能なバリエーションにおける上記要素の任意の組み合わせは、特に明記しない限り、またはコンテキストにより明らかに矛盾しない限り、本開示の範囲に含まれる。
刊行物、特許出願、および特許を含む、引用されたすべての参考文献は、各参考文献が参照により援用されるように個々にかつ具体的に示され、その全体が記載されているかのように、参照により本明細書に援用される。
上記の実施形態は本発明を限定するのではなく例示するものであり、当業者は、添付の特許請求の範囲によって定義される本発明の範囲から逸脱することなく多くの代替実施形態を設計できることに留意されたい。特許請求の範囲において、括弧内に置かれた参照符号は、特許請求の範囲を限定するものとして解釈されてはならない。「備えている」、「備える」などの言葉は、任意の請求項または明細書全体に記載されているもの以外の要素またはステップの存在を排除するものではない。本明細書において、「備える」は、「含む、または~からなる」を意味し、「備えている」は「含んできる、または~からなる」を意味する。要素の単数形の参照は、そのような要素の複数形の参照を排除するものではなく、その逆も同様である。本発明は、いくつかの別個の要素を含むハードウェアによって、および適切にプログラムされたコンピュータによって実装され得る。いくつかの手段を列挙するデバイスクレームでは、これらの手段のいくつかは、ハードウェアの1つの同一のアイテムによって具現化され得る。相互に異なる従属クレームに特定の手段が記載されているという単なる事実は、これらの手段の組合せを有利に用いることができないことを示すものではない。
データ暗号化は、対称および/または非対称暗号プリミティブの様々な形態を使用して達成され得る。対称キーアルゴリズムは、ブロック暗号、ストリーム暗号、デジタル署名スキームを含む、データの暗号操作を実行するための様々なスキームを含み得る。例示的な対称キーアルゴリズムは、高度暗号化標準(AES)、データ暗号化標準(DES)、Triple DES(3DES)、Serpent、Twofish、blowfish、CAST5、RC4、国際データ暗号化アルゴリズム(IDEA)を含む。対称キーアルゴリズムは、一方向性関数の出力を生成するために使用されるものを含むことができ、ハッシュベースのメッセージ認証コード(HMAC)、一般にメッセージ認証コード(MAC)、PBKDF2およびBcryptを利用するアルゴリズムを含み得る。非対称キーアルゴリズムは、データの暗号化操作を実行するための様々なスキームも含み得る。例示的アルゴリズムは、Diffie-Hellman鍵交換プロトコル、デジタル署名標準(DSS)、デジタル署名アルゴリズム、ElGamalアルゴリズム、様々な楕円曲線アルゴリズム、パスワード認証鍵合意技術、pallier暗号システム、RSA暗号化アルゴリズム(PKCS#1)、Cramer-Shoup暗号システム、YAK認証済み鍵合意プロトコル、NTRUEncrypt暗号システム、McEliece暗号システムなどを利用するものを含む。楕円曲線アルゴリズムは、楕円曲線Diffie-Hellman(ECDH)鍵合意スキーム、楕円曲線統合暗号化スキーム(ECIES)、楕円曲線デジタル署名アルゴリズム(ECDSA)、ECMQV鍵合意スキーム、およびECQV暗黙的証明書スキームを含む。他のアルゴリズムおよびアルゴリズムの組み合わせも本開示の範囲内にあると見なされ、上記は網羅的なリストであることを意図するものではない。
本明細書で使用される例は、コメント要求(Request for Comments:RFC)4250、RFC4251、RFC4252、RFC4253、RFC4254、RFC4255、RFC4256、RFC4335、RFC4344、RFC4345、RFC4419、RFC4432、RFC4462、RFC4716、RFC4819、RFC5647、RFC5656、RFC6187、RFC6239、RFC6594、およびRFC6668のうちの1つまたは複数に準拠して実行されることが可能であり、これらは参照により組み込まれることに留意されたい。
一般に、本開示の実施形態は、コメント要求(RFC)2246、RFC2595、RFC2712、RFC2817、RFC2818、RFC3207、RFC3268、RFC3546、RFC3749、RFC3943、RFC4132、RFC4162、RFC4217、RFC4279、RFC4347、RFC4366、RFC4492、RFC4680、RFC4681、RFC4785、RFC5054、RFC5077、RFC5081、RFC5238、RFC5246、RFC5288、RFC5289、RFC5746、RFC5764、RFC5878、RFC5932、RFC6083、RFC6066、RFC6091、RFC6176、RFC6209、RFC6347、RFC6367、RFC6460、RFC6655、RFC7027、およびRFC7366で定義されているようなSSLまたはTLSプロトコルなどの様々なプロトコル、およびそれに対する拡張を使用し、これらは参照により本明細書に組み込まれ、暗号化された通信セッションを確立することができる。開放型システム間相互接続(OSI)モデルのアプリケーション層の下に実装される他のプロトコルも、本明細書で説明される技術を利用するために使用および/または適合され得る。本明細書で説明される技術は、リアルタイムメッセージングプロトコル(RTMP)、ポイントツーポイントトンネリングプロトコル(PPTP)、レイヤ2トンネリングプロトコル、様々な仮想プライベートネットワーク(VPN)プロトコル、インターネットプロトコルセキュリティ(例えば、RFC1825~1829、RFC2401、RFC2412、RFC4301、RFC4309、およびRFC4303で定義されるような)、および他のプロトコル(ハンドシェイクを含むセキュアな通信のためのプロトコルのような他のプロトコルに適応可能であることに留意されたい。
上記および以下の説明では、様々な技術が記載されている。説明の目的のために、特定の構成および詳細は、技術を実装する可能な方法の完全な理解を提供するために記載されている。しかしながら、以下で説明する技術は、特定の詳細なしに異なる構成で実行され得ることも明らかである。さらに、説明されている技術を不明瞭にすることを避けるために、よく知られている特徴は、省略または単純化され得る。
したがって、本明細書および図面は、限定的な意味ではなく例示的な意味で考慮されるべきである。しかしながら、特許請求の範囲に記載された本発明のより広い技術思想および範囲から逸脱することなく、様々な修正および変更を行うことができることは明らかであろう。
本開示の実施形態は、以下の項目を考慮して説明され得る。
1.コンピュータ実装方法であって、
画像を取得すること、
前記画像内の関心領域のセットを決定することであって、前記領域のセットは、オブジェクトのセットを含む、前記決定すること、
オブジェクトカテゴリの階層ツリーに基づいて、前記オブジェクトのセット内の各オブジェクトの潜在的なカテゴリのセットを決定すること、
前記オブジェクトのセット内の各オブジェクトの潜在的なカテゴリのセットから、前記オブジェクトのセット内の各オブジェクトのカテゴリを識別すること、
前記オブジェクトのセット内の少なくとも1つのオブジェクトが、ユーザによって識別されたアイテムと一致すると判定すること、
前記オブジェクトのセットに一致するアイテムのセットを識別すること、
前記ユーザに対し前記アイテムのセットを識別すること
を含む、コンピュータ実装方法。
2.前記アイテムがオブジェクトと一致すると判定することは、少なくとも、
前記オブジェクトの属性のセットを判定すること、
前記アイテムの属性が前記属性のセットと一致すると判定すること
によって達成される、項目1に記載のコンピュータ実装方法。
3.前記属性のセットは、畳み込みニューラルネットワークを使用して判定され、前記属性のセット内のより低い頻度の属性は、より高い頻度の属性よりも大きな重みを与えられている、項目2に記載のコンピュータ実装方法。
4.前記アイテムは、衣料品、宝飾品、バッグ、または眼鏡のセットである、項目1乃至3のいずれかに記載のコンピュータ実装方法。
5.前記アイテムは、前記ユーザが前記アイテムの画像を提供することにより、前記ユーザによって識別されたものであり、前記コンピュータ実装方法は、前記画像から前記アイテムを識別することをさらに含む、項目1乃至4のいずれかに記載のコンピュータ実装方法。
6.前記アイテムのセットは、前記オブジェクトのセットの属性と一致する属性を有するアイテムを識別することにより識別されたものである、項目1乃至5のいずれかに記載のコンピュータ実装方法。
7.コンピュータシステムであって、
プロセッサと、
命令を格納しているメモリと
を備え、前記命令は、前記プロセッサによって実行されると、前記コンピュータシステムに、
ディスプレイ上に画像のセットを提示することであって、前記画像のセット内の各画像は、オブジェクトのセットの表現を示す、前記提示すること、
前記画像のセットのうちの特定の画像の選択を示す情報を取得すること、オブジェクトカテゴリの階層ツリーに基づいて、前記特定の画像における前記オブジェクトのセット内の各オブジェクトの潜在的なカテゴリのセットを決定すること、
前記特定の画像における前記オブジェクトのセット内の各オブジェクトの潜在的なカテゴリのセットから、カテゴリを識別すること、
前記オブジェクトのセット内の各オブジェクトのカテゴリに少なくとも部分的に基づいて、前記特定の画像において前記オブジェクトのセット内の各オブジェクトの属性のセットを識別すること、
前記属性のセットに基づいて、前記特定の画像において前記オブジェクトのセット内の少なくとも1つのオブジェクトに一致する1つまたは複数のアイテムを識別すること、
前記ディスプレイに1つまたは複数のアイテムを提示すること
を行わせる、コンピュータシステム。
8.前記命令は、さらに前記コンピュータシステムに、
特定のアイテムを識別する指示をユーザから取得すること、前記特定のアイテムに一致する品物の表現を含む外観画像を識別することにより、前記画像のセットを決定することを行わせる、項目7記載のコンピュータシステム。
9.前記コンピュータシステムは、カメラを含む携帯電話であり、前記画像のセットは、前記カメラを使用して前記コンピュータシステムによって取得された画像を含む、項目7または8に記載のコンピュータシステム。
10.命令は、さらに前記コンピュータシステムに、前記画像のセットの各画像の外観レコードを取得させ、
各外観レコードは、該外観レコードについての関連するオブジェクトのセットと、前記関連するオブジェクトのセット内の各品物の属性のセットとを記述する、項目7乃至9のいずれかに記載のコンピュータシステム。
11.前記命令は、さらに前記コンピュータシステムに、
前記画像のセットのうちの1つの画像をディスプレイ上に提示すること、
ユーザが前記ディスプレイをスワイプすることに応答して、前記ディスプレイ上に前記画像のセットのうちの異なる画像を提示すること
を行わせる、項目7乃至10のいずれかに記載のコンピュータシステム。
12.前記属性のセットは、色、テクスチャ、およびパターンを含む、項目7乃至11のいずれかに記載のコンピュータシステム。
13.前記命令は、さらに前記コンピュータシステムに、
画像フレームを含むビデオセグメントを取得すること、
トラックレットを使用して、複数の画像フレームにわたって品物を識別すること、
前記トラックレットを使用して前記品物の属性を識別すること
を行わせる、項目7乃至12のいずれかに記載のコンピュータシステム。
14.前記命令は、さらに前記コンピュータシステムに、品物に一致するアイテムを、少なくとも、
前記品物のアイテムカテゴリを判定すること、
前記品物の属性と一致する属性を有するアイテムの前記アイテムカテゴリにおいてアイテムを検索すること
によって、識別させる、項目7乃至13のいずれかに記載のコンピュータシステム。
15.前記画像のセットは、少なくとも、
特定の人物を識別する情報を取得すること、
前記特定の人物の画像を前記画像のセットに追加すること
によって決定されたものである、項目7乃至14のいずれかに記載のコンピュータシステム。
16.命令を格納している非一時的コンピュータ可読記憶媒体であって、前記命令は、コンピューティングシステムのプロセッサによって実行された結果として、前記コンピューティングシステムに、
画像を識別するリクエストを受信すること、
前記画像において表されるオブジェクトを識別すること、
オブジェクトカテゴリの階層ツリーに基づいて、前記画像内の前記オブジェクトの潜在的なカテゴリのセットを決定すること、
前記画像内の前記オブジェクトの潜在的なカテゴリのセットからカテゴリを識別すること、
前記オブジェクトのカテゴリに少なくとも部分的に基づいて、前記画像内のオブジェクトの特性のセットを識別すること、
前記特性のセットに少なくとも部分的に基づいて、オブジェクトのデータベースから1つまたは複数の類似のオブジェクトを識別すること
を行わせる、非一時的コンピュータ可読記憶媒体。
17.前記命令は、クライアントコンピュータシステムで実行されているブラウザのメモリにダウンロードされるスクリプトを含む、項目16に記載の非一時的コンピュータ可読記憶媒体。
18.前記オブジェクトは、少なくとも、
品物を含む前記画像の領域を識別すること、
前記品物のカテゴリを判定すること、
前記品物のカテゴリが前記オブジェクトのカテゴリと一致すると判定すること、
前記品物の閾値数の属性が前記オブジェクトの属性と一致すると判定すること
によって識別される、項目16または17に記載の非一時的コンピュータ可読記憶媒体。
19.前記コンピューティングシステムの前記プロセッサによって実行された結果として、前記コンピューティングシステムに、ウェブブラウザ上において、ディスプレイを介して前記1つまたは複数の類似のオブジェクトをユーザに対し提示させる命令をさらに含む、項目16乃至18のいずれかに記載の非一時的コンピュータ可読記憶媒体。
20.前記コンピューティングシステムの前記プロセッサによって実行された結果として、前記コンピューティングシステムに、前記ユーザが前記1つまたは複数の類似のオブジェクトのうちの少なくとも1つを購入することを可能にする選択可能なリンクを提供させる命令をさらに含む、項目19に記載の非一時的コンピュータ可読記憶媒体。
他のバリエーションは、本開示の技術思想の範囲内である。したがって、開示された技術は様々な修正および代替の構成の影響を受けやすいが、その特定の例示の実施形態が図面に示され、上記で詳細に説明されてきた。しかしながら、開示された特定の形態に本発明を限定する意図はなく、反対に、添付のクレームで定義されるような本発明の技術思想および範囲内にあるすべての修正、代替構造、および均等物をカバーする意図があることを理解されたい。
開示された実施形態を説明するコンテキストにおいて(特に以下の特許請求の範囲において)用語「1つの(a,an)」および「前記(the)」および類似の指示の使用は、特に本明細書に示されない限り、またはコンテキストによって明らかに矛盾しない限り、単数および複数の両方をカバーするものと解釈されるべきである。「備える」、「有する」、「含む」、および「包含する」という用語は、特に断りのない限り、開放型の用語(すなわち、「含むが、これに限定されない」という意味)であると解釈されるべきものである。「接続された」という用語は、変更されておらず、物理的な接続を指す場合、何かが介在している場合でも、部分的または全体的に含まれている、取り付けられている、または結合されていると解釈されるべきものである。本明細書における値の範囲の列挙は、特に本明細書に明記しない限り、範囲内に入る各個別の値を個別に参照する簡略化された方法としての役割を果たすことを単に意図しており、各個別の値は、あたかも本明細書に個別に列挙されているかのように明細書に組み込まれる。用語「セット」(例えば、「アイテムのセット」)または「サブセット」の使用は、特に明記しない限り、またはコンテキストにより矛盾しない限り、1つまたは複数のメンバーを含む空でない集合として解釈されるべきものである。さらに、特に明記しない限り、またはコンテキストにより矛盾しない限り、対応するセットの「サブセット」という用語は、対応するセットの適切なサブセットを必ずしも示すものではなく、サブセットおよび対応するセットが等しくてもよい。
「A、B、およびCのうちの少なくとも1つ」、または「A、B、およびCの少なくとも1つ」という形のフレーズなどの連結的言語は、特に明記しない限り、またはコンテキストにより明らかに矛盾しない限り、そうでなければ、アイテム、用語などは、AまたはBまたはC、またはAおよびBおよびCのセットの空でないサブセットのいずれかであり得ることを提示するために一般に用いられるようなコンテキストで理解される。たとえば、3つのメンバーを有するセットの説明例では、接続句「A、B、Cのうちの少なくとも1つ」および「A、B、Cの少なくとも1つ」は、{A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C}のセットのいずれかを指す。したがって、そのような連結的言語は、一般に、ある実施形態が、Aの少なくとも1つ、Bの少なくとも1つ、およびCの少なくとも1つがそれぞれ存在することを必要とすることを意味することを意図していない。
本明細書に説明されたプロセスの動作は、特に本明細書に明記しない限り、またはコンテキストにより明らかに矛盾しない限り、任意の適切な順序で実行され得る。本明細書で説明されているプロセス(またはそのバリエーションおよび/または組み合わせ)は、実行可能命令で構成された1つまたは複数のコンピュータシステムの制御下で実行され、ハードウェアまたはそれらの組み合わせにより、1つまたは複数のプロセッサ上で集合的に実行されるコード(例えば、実行可能命令、1つまたは複数のコンピュータプログラム、または1つまたは複数のアプリケーション)として実装され得る。コードは、例えば、1つまたは複数のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形式で、コンピュータ可読記憶媒体に格納され得る。コンピュータ可読記憶媒体は、非一時的であり得る。いくつかの実施形態では、コードは、コンピュータシステムの1つまたは複数のプロセッサによって実行されると(すなわち、実行の結果として)、コンピュータシステムに、本明細書で説明される動作を実行させる実行可能命令が格納された1つまたは複数の非一時的コンピュータ可読記憶媒体のセットに格納される。非一時的コンピュータ可読記憶媒体のセットは、複数の非一時的コンピュータ可読記憶媒体を含むことができ、複数の非一時的コンピュータ可読記憶媒体の1つまたは複数の個々の非一時的記憶媒体は、すべてのコードを欠く場合がある一方、複数の非一時的コンピュータ可読記憶媒体は、集合的にすべてのコードを格納する。さらに、いくつかの例では、実行可能命令は、異なるプロセッサによって異なる命令が実行されるように実行される。説明のための例として、非一時的コンピュータ可読記憶媒体は、命令を格納し得る。メインCPUは、命令のうちの一部を実行し、グラフィックスプロセッサユニットは、命令のうちの他のものを実行し得る。一般的に、コンピュータシステムの異なるコンポーネントは、別個のプロセッサを有し、異なるプロセッサは、命令の異なるサブセットを実行し得る。
したがって、いくつかの例では、コンピュータシステムは、本明細書で説明するプロセスの動作を単独でまたは集合的に実行する1つまたは複数のサービスを実装するように構成されている。そのようなコンピュータシステムは、例えば、動作の実行を可能にする適切なハードウェアおよび/またはソフトウェアで構成され得る。さらに、本開示の様々な実施形態を実施するコンピュータシステムは、いくつかの例では、単一のデバイスであってもよく、他の例では、分散コンピュータシステムが本明細書に記載された動作を実行するように、かつ単一のデバイスがすべての動作を実行しないように、異なる動作をする複数のデバイスを含む分散コンピュータシステムであってもよい。
本明細書で提供された任意のおよびすべての例、または例示的な言葉(例えば、「などの」)の使用は、単に本発明の実施形態をより良く説明することを意図しており、特に請求されない限り、本発明の範囲を限定するものではない。明細書中のいかなる文言も、クレームされていない要素が本発明の実施に不可欠であることを示すと解釈されるべきではない。
本発明を実施するために発明者に知られている最良の形態を含む、本開示の実施形態が、本明細書で説明されている。これらの実施形態のバリエーションは、前述の説明を読めば、当業者に明らかになり得る。発明者は、当業者がそのようなバリエーションを適切に使用することを期待し、発明者は、本開示の実施形態が本明細書で具体的に記載された以外の方法で実施されることを意図する。したがって、本開示の範囲は、適用される法で許可されるように、本明細書に添付された特許請求の範囲に記載された主題のすべての修正および均等物を含む。さらに、そのすべての可能なバリエーションにおける上記要素の任意の組み合わせは、特に本明細書で明記しない限り、またはコンテキストにより明らかに矛盾しない限り、本開示の範囲に含まれる。
刊行物、特許出願、および特許を含む、本明細書で引用されたすべての参考文献は、各参考文献が参照により援用されるように個々にかつ具体的に示され、その全体が本明細書に記載されているかのように、参照により本明細書に援用される。