(57)【要約】      （修正有）【課題】美的に関連した検索結果を返すための改善されたアプローチを提供する。【解決手段】審美的検索システムは、学習セットの画像群（例えば、デザイナが作成した画像群）を用いて、それらの画像内のアイテムを特徴として検出する検出エンジンを学習させる。分類エンジンは、特徴を解析して、それらの特徴に関する分類インデックスを生成するように構成される。ユーザはアイテムを選択することができ、そのアイテムに対応した特徴に関する分類インデックスが取得される。その分類インデックスを用いて結果画像群を特定し、それらの結果画像を、ユーザアクションデータおよびスタイルなどの他のパラメータに従ってランク付けして、返すことができる。【選択図】図２
2018081692.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
複数のアイテムを表示する一組の画像を特定すること、
前記複数のアイテムに関する特徴データであって、前記一組の画像に表示されている複数のアイテムの形状属性を指定する特徴データを生成すること、
前記特徴データを用いて、前記複数のアイテムに関する複数の分類インデックスを生成すること、
アイテムの選択を受け取ること、
前記アイテムの分類インデックスに最も近い分類インデックスを有する複数のアイテムを表示している一組の画像のうちの一部分を決定すること、
前記一組の画像のうちの一部分の画像とのユーザインタラクションを記述するユーザアクションデータに従って、前記一組の画像のうちの一部分をランク付けした検索結果を生成すること、
前記検索結果をディスプレイ装置に表示させること、を備える方法。
【請求項２】
前記複数のアイテムに関する初期特徴データセットを生成すること、
特徴の視覚的類似性に基づいて、前記初期特徴データセット内の特徴をマージすることにより、視覚的識別可能データセットを生成すること、
第１の人工ニューラルネットワークを、前記視覚的識別可能データセットで学習させることにより、検出モデルを構築すること、をさらに備え、
前記視覚的識別可能データセットで学習させた検出モデルを用いて、前記特徴データを生成する、請求項１に記載の方法。
【請求項３】
前記初期特徴データセットを用いて、第２の人工ニューラルネットワークを学習させることにより、分類モデルを構築することをさらに備え、
前記分類モデルを用いて、前記複数の分類インデックスを生成する、請求項２に記載の方法。
【請求項４】
前記一組の画像のうちの一部分を、降順でランク付けし、
前記ユーザインタラクションは、
ユーザが前記一組の画像のうちの１つの画像をクリックすること、ユーザが前記一組の画像のうちの１つの画像を閲覧すること、ユーザが前記一組の画像のうちの１つの画像を保存すること、のうちの１つ以上を含む、請求項１に記載の方法。
【請求項５】
前記一組の画像の属性を指定するグルーピングパラメータの選択を受け取ることをさらに備え、
前記検索結果の中の各画像は、前記グルーピングパラメータで指定された属性と同じ属性値を有する、請求項１に記載の方法。
【請求項６】
前記属性は、スタイル、デザイナ、カラー、地理的位置のうちの１つ以上を含む、請求項５に記載の方法。
【請求項７】
前記グルーピングパラメータは、ユーザによってユーザインタフェースを介して指定される、請求項５に記載の方法。
【請求項８】
前記アイテムは、ディスプレイ装置を介して、前記一組の画像のうちの画像の１つから選択される、請求項１に記載の方法。
【請求項９】
システムであって、
マシンの１つ以上のプロセッサと、
命令を格納するメモリと、を備え、前記命令は、前記１つ以上のプロセッサで実行されると、
複数のアイテムを表示する一組の画像を特定すること、
前記複数のアイテムに関する特徴データであって、前記一組の画像に表示されている複数のアイテムの形状属性を指定する特徴データを生成すること、
前記特徴データを用いて、前記複数のアイテムに関する複数の分類インデックスを生成すること、
アイテムの選択を受け取ること、
前記アイテムの分類インデックスに最も近い分類インデックスを有する複数のアイテムを表示している一組の画像のうちの一部分を決定すること、
前記一組の画像のうちの一部分の画像とのユーザインタラクションを記述するユーザアクションデータに従って、前記一組の画像の一部分をランク付けした検索結果を生成すること、
前記検索結果をディスプレイ装置に表示させること、を含むオペレーションを前記マシンに実行させる、システム。
【請求項１０】
前記オペレーションは、
前記複数のアイテムに関する初期特徴データセットを生成すること、
特徴の視覚的類似性に基づいて、前記初期特徴データセット内の特徴をマージすることにより、視覚的識別可能データセットを生成すること、
第１の人工ニューラルネットワークを、前記視覚的識別可能データセットで学習させることにより、検出モデルを構築すること、をさらに含み、
前記視覚的識別可能データセットで学習させた前記検出モデルを用いて、前記特徴データを生成する、請求項９に記載のシステム。
【請求項１１】
前記オペレーションは、
前記初期特徴データセットを用いて、第２の人工ニューラルネットワークを学習させることにより、分類モデルを構築することをさらに含み、
前記分類モデルを用いて、前記複数の分類インデックスを生成する、請求項１０に記載のシステム。
【請求項１２】
前記一組の画像のうちの一部分を、降順でランク付けし、
前記ユーザインタラクションは、
ユーザが前記一組の画像のうちの１つの画像をクリックすること、ユーザが前記一組の画像のうちの１つの画像を閲覧すること、ユーザが前記一組の画像のうちの１つの画像を保存すること、のうちの１つ以上を含む、請求項９に記載のシステム。
【請求項１３】
前記オペレーションは、
前記一組の画像の属性を指定するグルーピングパラメータの選択を受け取ることをさらに含み、
前記検索結果の各画像は、前記グルーピングパラメータで指定された前記属性と同じ属性値を有する、請求項９に記載のシステム。
【請求項１４】
前記属性は、スタイル、デザイナ、カラー、地理的位置のうちの１つ以上を含む、請求項１３に記載のシステム。
【請求項１５】
前記グルーピングパラメータは、ユーザによってユーザインタフェースを介して指定される、請求項１３に記載のシステム。
【請求項１６】
前記アイテムは、ディスプレイ装置を介して、前記一組の画像のうちの画像の１つから選択される、請求項９に記載のシステム。
【請求項１７】
命令を具体化するマシン可読記憶媒体であって、前記命令は、マシンで実行されることで、
複数のアイテムを表示する一組の画像を特定すること、
前記複数のアイテムに関する特徴データであって、前記一組の画像に表示されている複数のアイテムの形状属性を指定する特徴データを生成すること、
前記特徴データを用いて、前記複数のアイテムに関する複数の分類インデックスを生成すること、
アイテムの選択を受け取ること、
前記アイテムの分類インデックスに最も近い分類インデックスを有する複数のアイテムを表示している一組の画像のうちの一部分を決定すること、
前記一組の画像のうちの一部分の画像とのユーザインタラクションを記述するユーザアクションデータに従って、前記一組の画像のうちの一部分をランク付けした検索結果を生成すること、
前記検索結果をディスプレイ装置に表示させること、を含むオペレーションを前記マシンに実行させる、マシン可読記憶媒体。
【請求項１８】
前記オペレーションは、
前記複数のアイテムに関する初期特徴データセットを生成すること、
特徴の視覚的類似性に基づいて、前記初期特徴データセット内の特徴をマージすることにより、視覚的識別可能データセットを生成すること、
第１の人工ニューラルネットワークを、前記視覚的識別可能データセットで学習させることにより、検出モデルを構築すること、をさらに含み、
前記視覚的識別可能データセットで学習させた前記検出モデルを用いて、前記特徴データを生成する、請求項１７に記載のマシン可読記憶媒体。
【請求項１９】
前記オペレーションは、
前記初期特徴データセットを用いて、第２の人工ニューラルネットワークを学習させることにより、分類モデルを構築することをさらに含み、
前記分類モデルを用いて、前記複数の分類インデックスを生成する、請求項１８に記載のマシン可読記憶媒体。
【請求項２０】
前記一組の画像のうちの一部分を、降順でランク付けし、
前記ユーザインタラクションは、ユーザが前記一組の画像のうちの１つの画像をクリックすること、ユーザが前記一組の画像のうちの１つの画像を閲覧すること、ユーザが前記一組の画像のうちの１つの画像を保存すること、のうちの１つ以上を含む、請求項１７に記載のマシン可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の実施形態は、広くは、検索エンジンに関し、限定するものではないが、特に審美的検索エンジンに関するものである。
【背景技術】
【０００２】
近年、ユーザは、自身が関心のあるアイテム（例えば、ソファ、枕、シンク、テーブル、衣料品）を見つけるために、画像ベースの検索サイトを利用することがますます多くなっている。しかしながら、アイテムの画像は、ユーザにとって、現実的に（例えば、ショールームで）アイテムを試験することができないので、代用として不十分である。このように、ユーザは、提示された画像および説明データのみに基づいて決断を下すことを余儀なくされる。また、服飾デザイナまたはインテリアデザイナのような一部のユーザは、まとまりで審美的に機能するアイテム群のアレンジを作成しようとする。例えば、服飾デザイナは、スタイリッシュな装いを作り出すために、靴、ズボン、シャツ、時計、帽子を選択することがあり、あるいはインテリアデザイナは、リビングルームのデザインを作り出すために、ソファ、チェア、テーブル、花瓶、フロアランプを選択することがある。画像のみを用いて、個々のアイテムを評価することは難しいが、画像を用いて、審美的に好ましいアイテム群のアレンジを作成することは、それらのアイテムを並べるとどのように見えるのかをユーザが試験することができないため、はるかに複雑である。
【図面の簡単な説明】
【０００３】
【図１】いくつかの例示的な実施形態による審美的検索システムを実現するためのネットワーク化システムを示すブロック図である。
【図２】いくつかの例示的な実施形態による審美的検索システム内に設けられる例示的な内部コンポーネントを示すブロック図である。
【図３Ａ】いくつかの例示的な実施形態により、特徴検出および特徴分類を実施するためのフロー図を示している。
【図３Ｂ】いくつかの例示的な実施形態により、特徴検出および特徴分類を実施するためのフロー図を示している。
【図３Ｃ】いくつかの例示的な実施形態により、特徴検出および特徴分類を実施するためのフロー図を示している。
【図４】いくつかの例示的な実施形態により、グルーピングパラメータを用いた結果を返すためのフロー図を示している。
【図５】いくつかの例示的な実施形態により、ユーザアクションデータを用いた結果を返す方法のフロー図を示している。
【図６】いくつかの例示的な実施形態により、美的パラメータを用いた結果を返す方法のフロー図を示している。
【図７】いくつかの例示的な実施形態により、ユーザ指定のパラメータを用いた結果を返す方法のフロー図を示している。
【図８Ａ】いくつかの例示的な実施形態により、審美的検索システムを用いて類似アイテム検索結果を返すための、例示的なユーザインタフェースを示している。
【図８Ｂ】いくつかの例示的な実施形態により、審美的検索システムを用いて類似アイテム検索結果を返すための、例示的なユーザインタフェースを示している。
【図８Ｃ】いくつかの例示的な実施形態により、審美的検索システムを用いて類似アイテム検索結果を返すための、例示的なユーザインタフェースを示している。
【図８Ｄ】いくつかの例示的な実施形態により、審美的検索システムを用いて類似アイテム検索結果を返すための、例示的なユーザインタフェースを示している。
【図９Ａ】いくつかの例示的な実施形態により、補足アイテム検索結果を返すためのフロー図を示している。
【図９Ｂ】いくつかの例示的な実施形態により、補足アイテム検索結果を返すためのフロー図を示している。
【図１０Ａ】いくつかの例示的な実施形態により、審美的検索システムを用いて補足アイテム検索結果を返すための例示的なユーザインタフェースを示している。
【図１０Ｂ】いくつかの例示的な実施形態により、審美的検索システムを用いて補足アイテム検索結果を返すための例示的なユーザインタフェースを示している。
【図１１】いくつかの例示的な実施形態により、審美的検索システムを用いて類似アイテム検索結果および補足アイテム検索結果を実現するためのプログラム制御フロー図を示している。
【図１２】コンピュータシステムの形態のマシンの概略図を示しており、このコンピュータシステム内で、例示的な一実施形態により、本明細書で論じる方法のいずれか１つ以上をマシンに実施させるための命令セットを実行することができる。
【発明を実施するための形態】
【０００４】
添付の図面の種々の態様は、本開示の例示的な実施形態を示すものにすぎず、その範囲を限定するものとみなされるべきではない。
以下の説明では、本開示の例示的な実施形態を具現化するシステム、方法、技術、命令シーケンス、およびコンピュータプログラムプロダクトについて記載する。以下の説明では、発明の主題の種々の実施形態についての理解を与えるため、説明を目的として、様々な具体的詳細が記載される。しかしながら、これら特定の詳細を伴うことなく、発明の主題の実施形態を実施できることは、当業者には明らかであろう。一般に、周知の命令インスタンス、プロトコル、構造、および技術については、必ずしも詳細に示していない。
【０００５】
種々の例示的な実施形態において、審美的検索システム（aesthetic search system）は、アイテム群のアレンジを表示する画像の解析に基づいて、検索結果を生成することができる。それらの画像は、デザイナ（例えば、デザインの専門知識を有する者）が作成したデザイナ写真（例えば、インテリアデザイン画像、服飾ファッション画像）であり得る。いくつかの例示的な実施形態では、表現されているアイテム群に関する特徴データを特定するために、デザイナ写真において特徴検出を実施する。次に、それらのアイテムを特徴データで分類することで、各アイテムについて分類インデックスを生成する。あるアイテムをユーザ（例えば、非デザイナ）が選択したら、分類インデックスを用いて類似の画像を見つけ出すことによって、そのユーザのための検索結果を生成することができる。具体的には、例えば、類似の分類インデックスを有するアイテムを表示している画像群を特定して、検索結果として返すことができる。検索結果の精度および適合性を向上させるために、それらの類似の画像を、スタイルなどの選択された美的パラメータによってランク付けすることができ、さらに、ユーザアクションデータ（例えば、画像ブックマーク）を用いてランク付けすることができる。このようにして、ユーザは、高度にキュレートされた（curated）デザイナ画像から生成された関連アイテムの結果を閲覧することができる。
【０００６】
図１を参照すると、上位のクライアント・サーバベースのネットワークアーキテクチャ１００の例示的な実施形態を示している。ネットワークベースのマーケットプレイスシステムまたは決済システムの例示的な形態において、ネットワーク化システム１０２は、サーバ側の機能を、ネットワーク１０４（例えば、インタネットまたはワイドエリアネットワーク（ＷＡＮ））を介して１つ以上のクライアントデバイス１１０に提供する。いくつかの実現形態では、ユーザ（例えば、ユーザ１０６）は、クライアントデバイス１１０を用いてネットワーク化システム１０２とインタラクションする。図１は、クライアントデバイス１１０上で実行される、例えば、ウェブクライアント１１２（例えば、ブラウザ）、クライアントアプリケーション１１４、およびプログラマチッククライアント１１６を示している。クライアントデバイス１１０は、ウェブクライアント１１２、クライアントアプリケーション１１４、およびプログラマチッククライアント１１６を、単独で、併用で、または任意の適切な組み合わせで、備える。なお、図１では、１つのクライアントデバイス１１０を示しているが、他の実現形態では、ネットワークアーキテクチャ１００は、複数のクライアントデバイスを含む。
【０００７】
種々の実現形態において、クライアントデバイス１１０は、ディスプレイと、ネットワーク１０４を介したネットワーク化システム１０２へのアクセスを提供する通信機能と、を少なくとも有するコンピューティングデバイスを含む。クライアントデバイス１１０として、リモートデバイス、ワークステーション、コンピュータ、汎用コンピュータ、インタネットアプライアンス、ハンドヘルドデバイス、ワイヤレスデバイス、ポータブルデバイス、ウェアラブルコンピュータ、セルラフォンまたはモバイルフォン、パーソナルデジタルアシスタント（ＰＤＡ）、スマートフォン、タブレット、ウルトラブック、ネットブック、ラップトップ、デスクトップ、マルチプロセッサシステム、マイクロプロセッサベースの家電システムまたはプログラマブル家電システム、ゲーム機、セットトップボックス、ネットワークパーソナルコンピュータ（ＰＣ）、ミニコンピュータなどが含まれるが、ただし、これらに限定されない。例示的な実施形態では、クライアントデバイス１１０は、タッチスクリーン、加速度計、ジャイロスコープ、生体センサ、カメラ、マイクロフォン、グローバルポジショニングシステム（ＧＰＳ）装置などの１つ以上を備える。
【０００８】
クライアントデバイス１１０は、有線接続または無線接続を介してネットワーク１０４と通信する。例えば、ネットワーク１０４の１つ以上の部分として、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク（ＶＰＮ）、ローカルエリアネットワーク（ＬＡＮ）、無線ＬＡＮ（ＷＬＡＮ）、ＷＡＮ、無線ＷＡＮ、（ＷＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、インタネットの一部、公衆交換電話網（ＰＳＴＮ）の一部、セルラ電話ネットワーク、ワイヤレスネットワーク、ワイヤレスフィディリティ（ＷＩ−ＦＩ（登録商標））ネットワーク、ワールドワイド・インタオペラビリティ・フォー・マイクロウェーブ・アクセス（ＷｉＭａｘ）ネットワーク、他のタイプのネットワーク、またはそれらの任意の適切な組み合わせが含まれる。
【０００９】
いくつかの例示的な実施形態では、クライアントデバイス１１０は、限定するものではないが、ウェブブラウザ、服飾デザインアプリ、およびインテリアデザインアプリのような、クライアントアプリケーション１１４（「アプリ」とも呼ばれる）の１つ以上を備える。いくつかの実現形態において、クライアントアプリケーション１１４は、ユーザ（例えば、ユーザ１０６）に情報を提示し、ネットワーク化システム１０２と通信するように機能する各種コンポーネントを含む。
【００１０】
ウェブクライアント１１２は、ウェブサーバ１２２によってサポートされるウェブインタフェースを介して、ネットワーク化システム１０２の各種システムにアクセスする。同様に、プログラマチッククライアント１１６およびクライアントアプリケーション１１４は、アプリケーションプログラミングインタフェース（ＡＰＩ）サーバ１２０によって提供されるプログラマチックインタフェースを介して、ネットワーク化システム１０２により提供される各種サービスおよび機能にアクセスする。プログラマチッククライアント１１６は、例えば、クライアントアプリケーション１１４への統合用の開発者アプリケーションまたはモジュールであり得る。
【００１１】
ユーザ（例えば、ユーザ１０６）として、人間、マシン、またはクライアントデバイス１１０とインタラクションする他の手段が含まれる。いくつかの例示的な実施形態では、ユーザは、ネットワークアーキテクチャ１００の一部ではなく、クライアントデバイス１１０または他の手段を介してネットワークアーキテクチャ１００とインタラクションする。例えば、ユーザは、クライアントデバイス１１０に入力（例えば、タッチスクリーン入力または英数字入力）を供給し、その入力は、ネットワーク１０４を介してネットワーク化システム１０２に伝達される。本例では、ネットワーク化システム１０２は、ユーザから入力を受信したことに応じて、ユーザに提示されるべき情報を、ネットワーク１０４を介してクライアントデバイス１１０に伝達する。このようにして、ユーザは、クライアントデバイス１１０を用いて、ネットワーク化システム１０２とインタラクションすることができる。
【００１２】
ＡＰＩサーバ１２０およびウェブサーバ１２２は、１つ以上のアプリケーションサーバ１４０への個々のプログラマチックなウェブインタフェースに結合されているとともに、それを提供する。アプリケーションサーバ１４０は、審美的検索システム１５０をホストすることができる。そして、このアプリケーションサーバ１４０は、１つ以上の情報格納リポジトリまたはデータベース１２６へのアクセスを容易とする１つ以上のデータベースサーバ１２４に結合されるものとして図示されている。例示的な実施形態では、データベース１２６は、審美的検索システム１５０で掲載される情報（例えば、デザイナ写真、アイテム群のアレンジ画像、個々のアイテム画像、特徴データ、分類データ）を保存するストレージデバイスである。
【００１３】
さらに、第三者サーバ１３０上で実行される第三者アプリケーション１３２を、ＡＰＩサーバ１２０によって提供されるプログラマチックインタフェースを介したネットワーク化システム１０２へのプログラマチックアクセスを有するものとして図示している。例えば、第三者アプリケーション１３２は、ネットワーク化システム１０２から取得した情報を利用して、第三者がホストするウェブサイト上で１つ以上の特長または機能をサポートする。第三者ウェブサイトは、例えば、ネットワーク化システム１０２の関連アプリケーションによってサポートされる決済機能を提供する。
【００１４】
いくつかの実現形態において、審美的検索システム１５０は、アイテムのユーザ選択を受け取って検索結果を返すための機能を提供する。審美的検索システム１５０について、以下の図２に関連してさらに解説する。
【００１５】
また、図１に示すネットワークアーキテクチャ１００は、クライアント・サーバアーキテクチャを採用しているが、当然のことながら、本発明の主題は、そのようなアーキテクチャに限定されることなく、例えば、分散型またはピアツーピア型のアーキテクチャシステムにおいても同様に応用を見いだすことができる。アプリケーションサーバ１４０の各種システム（例えば、審美的検索システム１５０）は、必ずしもネットワーク機能を有していないスタンドアロン・ソフトウェアプログラムとして実装することもできる。
【００１６】
図２は、いくつかの実施形態による審美的検索システム１５０を示している。図示のように、審美的検索システム１５０は、インタフェースエンジン２１０と、検出エンジン２１５と、分類エンジン２２０と、リスティングエンジン（listing engine）２３０と、ユーザアクションエンジン２４０と、類似検索エンジン２５０と、補足検索エンジン２６０と、データベースエンジン２６５と、を備える。インタフェースエンジン２１０は、ユーザのクライアントデバイス１１０を介したユーザ１０６とのやりとりのために、ウェブサーバ１２２とインタフェースするように構成される。例えば、ユーザ１０６が、クライアントデバイス１１０において表示されたユーザインタフェース要素を選択すると、インタフェースエンジン２１０は、そのユーザ選択を、審美的検索システム１５０への入力として受け取る。インタフェースエンジン２１０は、さらに、いくつかの例示的な実施形態により審美的検索をプログラムで実行するために、ＡＰＩサーバ１２０を介して第三者アプリケーション（例えば、第三者アプリケーション１３２）とインタフェースするように構成される。分類エンジン２２０は、一組の画像を受け取り、それらの画像の各々の範囲内の特徴を分類するように構成される。リスティングエンジン２３０は、例えばクライアントデバイス１１０において表示するための、表示用リストを作成するように構成される。ユーザアクションエンジン２４０は、審美的検索システム１５０に関するユーザアクションデータセットを管理するように構成される。例えば、ユーザアクションエンジン２４０は、どのウェブページが最も多く閲覧されたのか、どのアイテムが最も多く閲覧されたのか、またはどのアイテムが最も多くユーザコレクションに保存されたのか、を特定することができる。類似検索エンジン２５０は、類似するものとして分類エンジン２２０によって分類されたアイテム群を特定するように構成される。特定されたアイテム群は、リストでユーザ１０６に表示するためにリスティングエンジン２３０に伝送される。補足検索エンジン２６０は、選択されたアイテムに対して補足的なアイテムを特定するように構成される。補足アイテムとは、所与のアイテムと同じクラスのものではないが、通常、その所与のアイテムに補足的なものとして、所与のアイテムとセットにされるアイテム群である。例えば、オレンジとオレンジピーラは、異なるクラスのアイテムであるが、互いに合わせて機能するように設計されているので、互いに対して補足的であり、通常は合わせて購入されるか、または通常は１回のブラウジングセッションにおいてウェブサイトで閲覧される。データベースエンジン２６５は、データベースサーバ１２４を介してデータベース１２６からデータを取り出すことを担う。
【００１７】
図３Ａは、いくつかの例示的な実施形態により、画像群に記録されているアイテム群を分類する方法３００を示している。オペレーション３０５で、インタフェースエンジン２１０は、画像のセットを受け取る。オペレーション３１０および３１５で、検出エンジン２１５は、画像データセット（例えば、オペレーション３０５で受け取った画像セット）の中の各画像の特徴を検出するために、複数の特徴検出ループを実行する。特徴検出は、所与の画像における特徴に、関心領域（ROI : Region Of Interest）を示すバウンダリ（boundary）を用いてラベル付けすることを伴う。例えば、ある画像は、ランプ、ソファ、デスクの画像を含んでいることがあり、これらはすべて写真の特徴であると考えられる。いくつかの実施形態において、画像セットの画像群を（例えば、クライアントデバイス１１０で）閲覧しているユーザは、ある特徴の上にＵＩ要素であるバウンダリをドラッグすることによって、その特徴に手動でタグ付けすることが可能である。例えば、リビングルームの画像を閲覧しているユーザは、画像の中のソファの上に矩形バウンダリをドラッグする場合があり、これにより、ＲＯＩとして矩形バウンダリにタグ付けする。ユーザは、さらに、タグ付けされたＲＯＩを記述するフィールドへの記入が可能である。例えば、ユーザがソファの上に矩形バウンダリをドラッグした後に、ユーザは、そのＲＯＩに関するメタデータとして格納されるための「ソファ」を、分類フィールドに入力することが可能である。
【００１８】
いくつかの例示的な実施形態では、特徴検出機械学習手法（例えば、Ｓｏｂｅｌエッジフィルタ、ブロブ検出）によって、特徴検出をプログラムで実行する。図３に示すように、特徴検出は、オペレーション３１０とオペレーション３１５の間のループの一部として実行することができ、このとき、オペレーション３１０で、処理用の次のデータアイテムを特定し、オペレーション３１５で、そのデータアイテムを処理する。
【００１９】
例えば、オペレーション３１０で、検出エンジン２１５は、受信画像セットのうちの第１の画像をメモリにロードする。オペレーション３１５で、検出エンジン２１５は、メモリにロードされた画像において特徴検出を実行する。例えば、オペレーション３１５では、検出エンジン２１５は、特徴を識別して、それらの特徴にＲＯＩとしてラベル付けする。その画像に関して識別されたＲＯＩは、その写真と共にメタデータとして保存することができる。本プロセスは、ループのオペレーション３１０に戻り、そこで、検出エンジン２１５は、画像データセットの中の次の画像をメモリにロードし、オペレーション３１５で、写真において特徴検出を実行し、再度、ＲＯＩデータを写真と共にメタデータとして保存する。このようにして、検出エンジン２１５は、画像セットの中のすべての画像の特徴検出を終えるまで、オペレーション３１０と３１５の間でループすることができる。
【００２０】
いくつかの例示的な実施形態では、特徴の分類を、オペレーション３２０とオペレーション３２５の間のループ（例えば、ｆｏｒループ、ｗｈｉｌｅループ）の一部として実行し、このとき、オペレーション３２０で、処理用の次のデータアイテムを特定し、オペレーション３２５で、そのデータアイテムを処理する。例えば、オペレーション３２０で、分類エンジン２２０は、画像データセットの中の第１の画像を特定する。オペレーション３２５で、分類エンジン２２０は、分類手法を用いて、写真の中の特徴をそれぞれ分類する。いくつかの実施形態では、分類手法は、写真と共に保存されているＲＯＩメタデータを用いて、特徴を識別するように構成される。ディープラーニング手法では、所与の特徴をあるタイプのアイテムとして分類する精度が段々と高まっていくように、ニューラルネットワークを用いて学習する。具体的には、ある特徴を分類するごとに、その特徴をあるタイプのアイテムとしてカテゴライズするために用いることが可能なベクトルを生成する。アイテムの例として、ソファ、チェア、ランプ、植物、または所与の写真に記録された他のオブジェクトのような、現実世界のアイテムが含まれる。ベクトルは、そのアイテムに関する分類インデックス（例えば、アレイであって、アレイの各位置は、あるディメンション（dimension）に対応する）としての役目を果たし、これにより、特徴の大きな複数のセットを機械解析可能な方法でカテゴライズすることが可能となる。分類からの出力は、所与の特徴を「ソファ」として決定的に分類するものでなくてよく、所与の特徴がソファである可能性を出力するものであってよい。
【００２１】
オペレーション３２５で、メモリにロードされた画像における各特徴について分類インデックスを生成した後に、分類エンジン２２０は、オペレーション３２０で、次の画像をメモリにロードして、新たにロードされた写真における特徴について分類を実行する。分類エンジン２２０は、セットのすべての画像におけるすべての特徴について分類インデックス（例えば、ディープラーニングによって生成されるベクトル）の生成を終えるまで、オペレーション３２０と３２５の間でループする。いくつかの実施形態において、オペレーション３３０で、それらの分類インデックスを、分類インデックスデータセットとして、データベース１２６に保存する。分類インデックスデータセットのエントリ（例えば、行（row））は、アイテムまたは製品の識別子（例えば、タイトル、シリアル、ＳＫＵ）と、それに対応する分類インデックスと、そのアイテムが表示されている画像のリストと、を含む。特徴の検出および分類の後に続いて、審美的検索システム１５０は、図４を参照してさらに詳細に説明する結果生成プロセス（例えば、オペレーション４０５）に進んでよい。
【００２２】
図３Ａは、特徴の検出と分類を、２つの順次ループプロセス（例えば、特徴検出のための第１のループと、特徴分類のための第２のループ）として表示しているが、同じ結果を得るために、図３Ａのオペレーションを異なる態様で順序付けることが可能であることは理解されるであろう。例えば、写真をロードして、次に特徴検出を実行し、次に特徴分類を実行し、続いて次の写真をロードする、というように続く、入れ子ループ（nested loop）を実現することができる。
【００２３】
いくつかの例示的な実施形態では、検出エンジン２１５は、画像特徴として表示されたアイテム群（例えば、特徴）を検出するように構成される。画像特徴は、表示されたアイテムの形状、エッジ、点、または他の表示属性を記述する情報の集まりである。分類エンジン２２０は、ディープラーニング型人工ニューラルネットワークを適用することで、アイテム群を、それらの検出された特徴に基づいてプログラム的に分類するように構成することができる。人工ニューラルネットワークは、学習データセットで学習させることが可能であり、これにより、出力データを正確に生成するようにニューラルネットワークをチューニングする。人工ニューラルネットワークを学習させることで、新たに受け取った特徴を識別するとともに、それらの特徴を受け取ったときに分類するために使用されるモデルを構築する。具体的には、図３Ｂおよび３Ｃを参照して以下でさらに詳細に解説するように、検出エンジン２１５を画像群で学習させることで、検出モデルを構築し、同じく分類エンジン２２０を画像群で学習させることで、分類モデルを構築する。
【００２４】
図３Ｂは、いくつかの例示的な実施形態により、画像群の中の特徴をより正確に検出するために、検出エンジン２１５を画像群で学習させるための方法３５０を示している。上述のように、ＲＯＩは、特徴に外接するバウンダリボックスとして実現することができる。しかしながら、バウンダリボックス内のアイテムは、類似の形状または特性（例えば、カラー）を有している場合があり、その結果、ノイズの多い特徴検出となる可能性がある。例えば、花瓶と吊りランプは、どちらも球形に似ている場合があり、従って、両方とも、所与のＲＯＩ内で２次元的に円形ものとして記述することができる。ところが、花瓶と吊りランプは、異なる状況で使用される明らかに異なるアイテムである。表示されているアイテムの周りの要素によって、さらなる特徴検出エラーが生じる可能性がある。例えば、タイル壁の前にチェアが表示されている場合に、検出エンジン２１５は、それらのタイルのタイル境目をチェアの脚の一部と誤って特定する場合がある。
【００２５】
これらの問題に対処するために、オペレーション３５３で、検出エンジン２１５は、画像群を入力として受け取って、バウンダリボックスで囲まれた領域（例えば、ＲＯＩ）において初期特徴検出を実行する。オペレーション３５５において、分類エンジン２２０は、オペレーション３５３で検出された特徴を分類することで、マージ用の候補の初期特徴データセットを生成する。オペレーション３６０で、分類エンジン２２０は、円形ランプと円形花瓶のような視覚的に類似した特徴をマージすることで、自己視覚的識別可能カテゴリデータセット（SVDC : Self Visually Distinguishable Categories dataset）を生成する。オペレーション３６５で、検出エンジン２１５をＳＶＤＣで学習させることで、検出モデルを構築する。
【００２６】
検出エンジン２１５をＳＶＤＣに基づく検出モデルで学習させた後に、図３Ａで解説したようにオペレーションは進行する。例えば、図３Ｂに示すように、オペレーション３１０で、検出エンジン２１５は、処理用のアイテムを特定し、オペレーション３１５で、検出エンジン２１５は、そのアイテムに処理を適用する。円形特徴が吊りランプであった場合には、それは一般的にランプの頂部から天井に延びるコードを有し、検出エンジン２１５は、より容易に、その特徴の一部としてコードの画素を含めることになる。
【００２７】
いくつかの例示的な実施形態では、特徴をより正確に分類するために、図３Ｃに方法３７０で示すように、分類エンジン２２０を学習させることで、分類モデルを構築する。具体的には、いくつかの例示的な実施形態により、オペレーション３７５で、アイテム画像群（例えば、背景のないアイテムの画像群）を、学習データとして分類エンジン２２０に入力する。オペレーション３８０において、それらのアイテム画像で分類エンジン２２０を学習させて、分類モデルを構築する。分類モデルを構築した後に、本方法は、図３Ａを参照して上述したように、オペレーション３２０および３２５に戻る。
【００２８】
図４は、いくつかの例示的な実施形態により、類似性に基づくリストを作成するための方法４００を示している。オペレーション４１０で、インタフェースエンジン２１０は、クライアントデバイス１１０で表示された画像内の特徴の選択を受け取る。上述のように、各特徴は、表示されているアイテム（例えば、ソファ）に対応しており、これは分類インデックスを有する。オペレーション４１５で、類似検索エンジン２５０は、分類データセットにアクセスして、選択されたアイテム（例えば、選択された特徴に対応するアイテム）の分類インデックスに最も近い分類インデックス群を特定し、さらに、最も近いマッチングアイテムを表示している画像群を特定する。最も近いマッチングアイテム（matching item）を表示している画像群は、画像群のマッチングした部分として指定される。オペレーション４２０で、類似検索エンジン２５０は、グルーピングパラメータを特定する。グルーピングパラメータは、それらの画像をさらに限定するために用いることができる属性を指定する。例えば、グルーピングパラメータは、同じインテリアデザイナからの画像のみを結果に含めるべきであることを指定する場合がある。グルーピングパラメータについてのさらなる詳細は、以下で図５〜７を参照して解説する。
【００２９】
オペレーション４２５で、類似検索エンジン２５０は、最も近いマッチングアイテム（例えば、最も近いマッチング分類インデックス）を画像が有するかどうかに基づいて、さらには画像がグルーピングパラメータを満足するかどうかに基づいて、リスト表示する検索結果に含めるべき画像群を決定する。オペレーション４３０において、リスティングエンジン２３０は、オペレーション４２５で決定された検索結果を用いてリストを作成する。オペレーション４３５で、リスティングエンジン２３０は、作成したリストをクライアントデバイス１１０で表示するために送信する。
【００３０】
図５は、ユーザアクションデータに基づいて、類似性に基づく検索結果を生成する方法５００のフロー図である。いくつかの例示的な実施形態では、ユーザ（例えば、ユーザ１０６）は、アプリケーションサーバ１４０上でユーザプロファイルを作成することが可能である。ユーザプロファイルは、後で閲覧するための画像群からなる画像ギャラリを維持する機能を有して構成される。ユーザアクションデータは、ユーザがアプリケーションサーバ１４０上の画像を閲覧して回ることによって生成されるインタラクションデータである。ユーザアクションデータの例として、リンク（例えば、画像リンク）のクリック、ページ閲覧、ブックマーク、お気に入りとしてリンクを登録（例えば、ソーシャルメディアプラットフォームでの「いいね」）、および画像保存（例えば、ユーザによる自身のギャラリまたはプロファイルへの画像の保存の発生）が含まれる。図５の方法５００は、最も近いとランク付けされたアイテムを含む人気画像結果を返すためのプログラム的アプローチを示している。図５の方法５００は、（オペレーション５２０および５２５における）グルーピングパラメータがユーザアクションデータとして規定されること以外は、図４の方法４００と同様である。
【００３１】
オペレーション５１０で、インタフェースエンジン２１０は、クライアントデバイス１１０で表示された画像内の特徴の選択を受け取る。オペレーション５１５で、分類エンジン２２０は、選択された特徴に関する分類インデックスを特定して、その選択された分類インデックスに最も近い分類インデックス群を特定し、それらの最も近いマッチング分類インデックスを有するアイテムを含む画像群を特定する。オペレーション５２０で、ユーザアクションエンジン２４０は、それらの画像の各々についてのユーザアクションデータ（例えば、クリック、保存）を特定して、ユーザインタラクションが最多（例えば、クリックが最多、ギャラリへの保存が最多）である画像に基づいて、それらの画像をランク付けする。オペレーション５２５で、類似検索エンジン２５０は、ユーザアクションデータに基づいて、さらには画像が最も近いマッチングアイテム（例えば、最も近いマッチング分類インデックス）を有するかどうかに基づいて、結果画像として返すための画像群を決定する。例えば、いくつかの例示的な実施形態では、類似検索エンジン２５０は、受け取った特徴（例えば、オペレーション５１０で選択された特徴）に最も類似した特徴を有する画像群を、それらの最も近いマッチング分類インデックスに基づいて、最初に決定することができる。最も近いマッチング特徴を有するそれらの画像から、類似検索エンジン２５０は、さらに、上位マッチングセット（例えば、最も類似した特徴を有する上位１０件の画像）を選択することができる。類似検索エンジン２５０は、上位マッチングセットのうちでユーザのお気に入りでもあるものを特定するために、ユーザアクションデータランキングにアクセスすることができる。例えば、上位１０件のマッチング画像のうち、８番目の画像は、８番目に近いマッチング特徴しか有していないかもしれないが、ユーザアクションデータによれば、ユーザの画像ギャラリに最も多く保存された画像である場合がある。このため、類似検索エンジン２５０は、ユーザアクションデータランキングに従って、（例えば、８番目に近いマッチング画像は、ユーザ間で最も人気があるので第１位として、多い順、降順で）上位１０件のマッチング画像を並べ替えることができる。さらに、いくつかの例示的な実施形態では、類似検索エンジン２５０は、上位１０件の画像からユーザアクションデータに従って（例えば、多い順で）並べ替えた画像を、上位４件に減らすことができる。最も近いマッチング特徴を有するとともにユーザアクションデータに従って再ランク付けされたそれら４件の画像を、（オペレーション５２５で）結果画像群として返す。
【００３２】
続いて、オペレーション５３０で、リスティングエンジン２３０は、結果画像群を含む表示用リストを作成する。オペレーション５３５で、リスティングエンジン２３０は、作成したリストを表示用のクライアントデバイスに送信する。
【００３３】
図６は、美的グルーピングパラメータ（aesthetic grouping parameter）に基づいて、類似性に基づく検索結果を生成する方法６００のフロー図である。上述のように、特徴検出および特徴分類のために受け取られる画像群は、美的アレンジの画像群であり得る。例えば、インテリアデザイナは、個々に選択された家具群、特定の壁および床スタイル、特定の照明をアレンジして、審美的に好ましい結果を得ることがあり、それは写真に収められる。このような審美性は、画像を閲覧するユーザにとって重要である。従来、所与の画像の美的スタイルで、自宅用のアイテムを探そうとしているユーザは、写真に記録された美的デザインアレンジの美的スタイルにマッチングするアイテムを見つけようとして、アイテムを次々と取捨選択することを余儀なくされる。画像を取捨選択するプロセスは、時間を要するとともに、ユーザにとって不便である。さらに、ユーザは、自分の目の前に物理的に存在するのではなくインターネットを介して閲覧可能な画像に簡略化されたアイテムの選択における自身の判断に自信を持てないことがある。また、デザイン経験がほとんどないユーザは、自身の美的能力に満足していないか、または自信がない場合があり、このため、オンラインで画像を閲覧することは諦めて、代わりにショールームを訪れるなどすることがある。美的アレンジを収めた画像の各々は、その美的アレンジの美的スタイルを記述するメタデータを有することができる。例えば、物が少ないホワイトキッチンの画像は、これに「ミニマリスト」とラベル付けするスタイルパラメータを有することができ、またはフレスコ画が描かれたロビーの画像は、これに「地中海」とラベル付けするスタイルパラメータを有することができる。図６は、選択されたアイテム（例えば、あるアイテムに対応する選択された特徴）の美的スタイルにマッチングする画像結果を返すための方法６００を示している。
【００３４】
オペレーション６１０で、インタフェースエンジン２１０は、クライアントデバイス１１０で表示された画像内の特徴の選択を受け取る。オペレーション６１５で、分類エンジン２２０は、選択された特徴に関する分類インデックスを特定して、その選択された分類インデックスに最も近い分類インデックスを有するアイテム群を特定し、最も近いマッチング分類インデックスを有するアイテムを含む画像群を特定する。オペレーション６２０で、類似検索エンジン２５０は、最も近いマッチングアイテムを有する画像群に共通の美的パラメータを特定する。例えば、オペレーション６２０において、類似検索エンジン２５０は、最も多い共通の美的パラメータ（例えば、写真のスタイルを記述するパラメータ）は「ミニマリスト」であると特定することがある。オペレーション６２５で、類似検索エンジン２５０は、上述のように、どの画像が最も近いマッチングアイテムを有するかに基づいて、さらには、どの画像が最も多い共通のスタイルを有するか（例えば、どの結果画像が最も多い共通の美的パラメータを有するか）に基づいて、結果画像群を決定する。最も近いマッチングアイテムを有するとともに最も多い共通の美的パラメータ（例えば、スタイル）の画像群を、結果画像として類似検索エンジン２５０によって返すことができる。いくつかの例示的な実施形態では、それらの画像は、図５で説明したようなユーザの人気度に従って、さらに減らされる。すなわち、最も近いマッチングアイテムを有するとともに最も多い共通のスタイルの画像群から、ユーザの人気度に従って（例えば、ユーザアクションデータ、閲覧回数、およびギャラリへの保存、に従って）、上位５件を結果画像として返す。
【００３５】
さらに、いくつかの例示的な実施形態では、最も多い共通のスタイルを用いる代わりに、特徴（例えば、オペレーション６１０で受け取った特徴）が選択された画像のスタイルを用いて、上記アプローチと同様に美的パラメータを設定する。例えば、オペレーション６１０で、ユーザは、ミニマリスト・スタイルを有する画像においてランプを選択する。オペレーション６２０で、同じ美的パラメータ「ミニマリスト」を有する画像のみを、結果として返すことができる。オペレーション６３０で、リスティングエンジン２３０は、それらの結果画像を用いて、表示用リストを作成する。オペレーション６３５で、リスティングエンジン２３０は、そのリストを、クライアントデバイス１１０で表示するためにユーザ１０６に送信する。
【００３６】
図７は、外部グルーピングパラメータ（external grouping parameter）に基づいて、類似性に基づく検索結果を生成する方法７００のフロー図を示している。外部グルーピングパラメータとは、郵便番号（例えば、地元で入手できるアイテム、地元建築業者によって建築可能なアイテム、もしくは他の地理的位置依存パラメータ、に関する結果のみを返す）またはデザイナ集（例えば、特定のデザイナからの画像のコレクション）のような外部因子に基づいて画像を記述するグルーピングパラメータである。例えば、ユーザは、あるアイテムを選択して、ある特定の有名デザイナにマッチングする検索結果のみが返されることを希望する場合がある。
【００３７】
オペレーション７１０で、インタフェースエンジン２１０は、ある画像内の特徴の選択を受け取る（例えば、ユーザ１０６は、ある画像を閲覧しており、その写真の中のランプを選択する）。オペレーション７１５で、分類エンジン２２０は、選択された特徴に関する分類インデックスを特定して、その選択された分類インデックスに最も近い分類インデックスを有するアイテム群を特定し、最も近いマッチング分類インデックスを有するアイテムを含む画像群を特定する。オペレーション７２０で、類似検索エンジン２５０は、最も近いマッチングアイテムを有する画像群から、さらに、指定された外部グルーピングパラメータにマッチングする画像を特定する。例えば、ユーザは、オペレーション７１０で、キッチンキャビネットを選択するとともに、地元建築業者によって建築可能なキャビネットを収めた画像のみが返されるように郵便番号グルーピングパラメータを指定している場合がある。さらなる例として、外部グルーピングパラメータは、ある特定のデザイナからの画像のみが返されるべきであることを指定するデザイナパラメータである場合がある。
【００３８】
オペレーション７２５で、類似検索エンジン２５０は、どの画像が最も近いマッチングアイテムを有するかに基づいて、さらには、どの画像が１つ以上の指定された外部パラメータにマッチングするかに基づいて、結果画像群を決定する。また、上述のように、類似検索エンジン２５０は、返される画像を、ユーザアクションデータに基づいて、例えばどの画像がユーザ間で最も人気があるのかに基づいて、さらに限定またはソートすることがある。オペレーション７３０で、リスティングエンジン２３０は、それらの結果画像を用いて、表示用リストを作成する。オペレーション７３５で、リスティングエンジン２３０は、そのリストを、クライアントデバイス１１０で表示するためにユーザ１０６に送信する。
【００３９】
図８Ａは、いくつかの例示的な実施形態により、審美的検索システム１５０によって生成されるユーザインタフェース８０５（例えば、ディスプレイ装置のユーザインタフェース）を表示するクライアントデバイス８００の一例を示している。図示の例では、ユーザインタフェース８０５は、統合審美的検索システム１５０による審美的検索機能を有するウェブサイトからのウェブページとして構成されている。図示のように、スツール、花瓶、ランプなどのアイテムを含むキッチンの美的アレンジを示すデザイナ画像８１０が表示される。これらのスツール、花瓶、ランプは、デザイナ画像８１０の特徴に相当するアイテム（例えば、物理的アイテム）の例である。デザイナ画像８１０は、デザイナ写真の個別例であり、いくつかの例示的な実施形態において、アプリケーションサーバ１４０は、様々なデザイナからの何百万ものデザイナ画像を管理するとともに１つ以上のデザイナ画像にそれぞれ表示され得るアイテム（例えば、ランプ、スツール、ソファ）をインベントリとしてさらに管理するウェブプラットフォームの一部であることは理解されるであろう。
【００４０】
ユーザインタフェース８０５は、さらに画像メタデータ８１５を含み、これは、例えば、デザイナ画像８１０のタイトル例である「モダンキッチン」を含んでいる。画像メタデータ８１５は、さらに、部屋属性である「キッチン」と、スタイル属性である「ミニマリズム」と、デザイナ属性である「ＬｅｏＦｉｏｄｏｒｉ」（例えば、デザイナ画像８１０の中のアイテム群の美的選択およびアレンジを担当するデザイナの例）と、カラーモチーフ属性である「白」と、を含む。画像メタデータ８１５のデータアイテムまたは属性はいずれも、図３Ａ〜７を参照して上述するとともに以下の図面を参照してさらに詳細に解説する方法において、グルーピングパラメータとして機能し得る。
【００４１】
ユーザインタフェース８０５は、さらに、１つ以上のユーザインタフェース要素を有するパラメータメニュー８２０を含む。それらのユーザインタフェース要素には、あくまでも例として、ユーザによる情報の入力、およびフィルタまたはさらなるグルーピングパラメータの指定を可能とする、テキスト入力フィールド、ドロップダウンメニュー、チェックボックスなどが含まれる。例えば、パラメータメニュー８２０は、図７を参照して解説したようなグルーピングパラメータとして使用することができる郵便番号をユーザ１０６が入力するためのテキストフィールドを含むことができる。
【００４２】
図８Ｂは、基本となる特徴を囲むバウンダリとして、関心領域８２５Ａ〜Ｅの例を示している。例えば、関心領域８２５Ａと８２５Ｂは両方とも、ランプについてバウンダリを設定しており、関心領域８２５Ｃは、花瓶の特徴についてバウンダリを設定しており、関心領域８２５Ｄと８２５Ｅは、基本となるスツールの特徴についてバウンダリを設定している。上述のように、関心領域８２５Ａ〜Ｅは、機械学習によるか、または（例えば、特徴の上でＲＯＩをドラッグする）ユーザタグによって、検出することが可能である。関心領域８２５Ａ〜Ｅは、上述のように、特徴を分類して分類インデックスを生成するために使用されることがある。
【００４３】
図８Ｃは、基本となるアイテムについて、さらなるオプションでの検索を指示するために、ユーザが画像の一部を選択する例を示している。例えば、図８Ｃに示すように、ユーザ１０６は、クライアントデバイス８００のタッチスクリーンを用いて、関心領域８２５Ａにおけるランプを選択したかもしれない。クライアントデバイス８００は、関心領域８２５Ａ、対応する数値、またはアイテムの選択を、審美的検索システム１５０に送信する。審美的検索システム１５０は、画像の選択された部分に関する分類インデックス（例えば、関心領域８２５Ａにおけるランプアイテムの分類インデックス）を特定する。さらに、審美的検索システム１５０は、続いて、分類インデックスデータセット内で、関心領域８２５Ａのランプの分類インデックスに最も近くマッチングするアイテム群を特定する。次に、審美的検索システム１５０は、それらの最も近くマッチングしたアイテムが表示されている画像群を特定する。画面スペースが限られているという理由で、またはユーザの注意をそらさないために、図４〜７を参照して上述したグルーピングパラメータアプローチを用いて、マッチングアイテムを有する画像の小さな部分（例えば、結果画像群）を決定する。図８Ｄは、説明例を示している。
【００４４】
図８Ｄでは、審美的検索システム１５０は、選択されたランプアイテムの分類インデックス（例えば、関心領域８２５Ａのランプアイテムの分類インデックス）に近い分類インデックスを有するものとして、６つのランプを特定すると仮定する。この例を続けると、審美的検索システム１５０は、それら６つのランプが、４２７件のデザイナ画像に表示されていることを特定する。続いて、審美的検索システム１５０は、（例えば、図５のユーザアクション・オペレーションによって）４２７件の画像から、ユーザらがそれぞれ自身の画像ギャラリに最も多く保存した画像を特定する。次に、リスティングエンジン２３０は、上位４件の画像を結果画像８３５Ａ〜Ｄとして含めてリスト８３０を生成し、そのリスト８３０をクライアントデバイス８００において表示する。いくつかの実施形態では、画像群を特定した後に、それらの画像自体ではなく、それらの画像に表示されているアイテム群が、結果画像８３５Ａ〜Ｄとして表示される。
【００４５】
ユーザ１０６は、結果画像８３５Ａ〜Ｄのうちの１つを選択すると、いくつかの例示的な実施形態により、選択された画像に関する詳細と、写真に表示されたアイテムを購入するためのオプションのレジモジュールと共に、選択された写真を表示するウェブページに誘導される。よって、ユーザは、このようにして、関連する検索結果をより効率的に閲覧して回るために、画像の中の特徴に反映されたデザイナの専門知識を活用することが可能である。
【００４６】
いくつかの例示的な実施形態では、審美的検索システム１５０は、画像内のアイテムの選択を受け取って、その選択されたアイテムに補足的なアイテム群を特定するとともに、さらに、それらの補足アイテムを示す結果をユーザに返すことができる。補足アイテムとは、互いにカテゴリが異なるが、互いに連携して機能するように構成されたアイテムであり、一般に、合わせて閲覧もしくは合わせて購入されるか、または互いに協調して機能する。デザイン業界において、アイテムを補足的なものとして関連付けることは、特に、例えばそれらのアイテムが互いに似ていない場合に、難題となる可能性がある。例えば、白をカラーモチーフとして、例えば、白いチェア、白いテーブル、白いシンクを備えるミニマリストの部屋は、それでも、金色のような美的に派手な対比色で、ギザギザの縁を有する奇妙な形の吊りランプを備えることがある。白をカラーモチーフとするアイテムと、金色のアイテムは、互いに似ていないものの、スタイルの専門知識があるデザイナは、それらをデザイナ画像において相互に近接させて配置することがよくあるので、それらは互いに補足的である。通常、補足アイテムの特定は、ユーザトランザクションデータの履歴解析に基づいて行われる。しかしながら、それらのデザイナアイテムが高価である場合、または、それらのデザイナアイテムが合わせて配置されているスタイルが極めて新しい場合には、履歴解析を実行するための十分な履歴データがない場合がある。その場合、デザイナが作成した画像のモチーフにアイテムをマッチングさせようとして、数百または数千にものぼるアイテムを取捨選択することが、ユーザ自身の判断に委ねられる。図９Ａ〜１１は、正確なプログラム的方法で、明白ではない補足アイテム（例えば、白いチェアと金色のランプ）を効率的に探し出すためのアプローチを示している。
【００４７】
方法９００を示す図９Ａを参照して、審美的検索システム１５０が学習済み検出モデルおよび学習済み分類モデルを有するように、図３Ａのオペレーション３３０の後にオペレーション９１０〜９３０を実行してよい。オペレーション９１０で、インタフェースエンジン２１０は、特徴の選択（例えば、基本となる特徴に外接するＲＯＩの選択）を受け取る。オペレーション９１５で、補足検索エンジン２６０は、（例えば、データベースエンジン２６５を介して、特徴をアイテムに関連付ける特徴データにアクセスして）選択された特徴に対応するアイテムを特定する。オペレーション９２０で、補足検索エンジン２６０は、そのアイテムのクラスを特定するために、（例えば、データベースエンジン２６５を介して）データベース１２６内のアイテムデータにアクセスする。アイテムクラスは、カラー（例えば、白いランプ、白いチェア）、タイプ（例えば、チェア、シンク、枕）、またはアイテムを記述する他の属性であり得る。いくつかの例示的な実施形態では、所与のアイテムを記述するために２つ以上のアイテムクラスが用いられ、例えば、金色のランプは、金色が第１のクラスのカラーであり、ランプが第２のクラスのアイテムタイプである。オペレーション９２５で、補足検索エンジン２６０は、選択されたアイテムと一緒に最も多く表示されているアイテム群を特定し、このとき、一緒に表示されることは、共起（co-occurrence）であると考えられる。具体的には、オペレーション９２５で、補足検索エンジン２６０は、選択されたアイテムと最も多く共起しているクラス外アイテム群を特定し、このとき、クラス外とは、選択されたアイテムのクラスパラメータとは異なるクラスパラメータを有するアイテムを指す。例えば、カラーとアイテムタイプが検討対象の関連クラスであると仮定して、選択されたアイテムが白いランプであって、それと最も多く共起している２つのアイテムが白い花瓶と金色の花瓶である場合に、金色は、選択されたアイテムの白のカラークラス外であるため、オペレーション９２５では、白い花瓶ではなく、金色の花瓶が選択されることになる。
【００４８】
オペレーション９３０で、リスティングエンジン２３０は、選択されたアイテムと最も多く共起しているクラス外アイテム群を表示するように構成されたリストを作成する。オペレーション９３５で、リスティングエンジン２３０は、作成したリストを、クライアントデバイス１１０の表示画面でユーザ１０６に表示するために送信する。
【００４９】
図９Ｂは、ユーザ提供画像に対して補足アイテムを選択する方法９５０のフロー図を示している。ユーザ提供画像とは、ユーザによって審美的検索システム１５０にアップロードされるか、またはその他の方法で提供される画像である。ユーザが画像の特徴を選択することによってアイテムを選択する図９Ａのアプローチとは異なり、図９Ｂのアプローチでは、特徴の解析および分類を受けていない製品の画像から、補足アイテムを見つけることについて記載する。例えば、ユーザ１０６は、自身のリビングルームにおけるチェアの写真画像を審美的検索システム１５０にアップロードすることがある。
【００５０】
オペレーション９５５で、インタフェースエンジン２１０は、ユーザ１０６からクライアントデバイス１１０を介して画像を受け取る。オペレーション９６０で、検出エンジン２１５は、図３Ａおよび３Ｂを参照して上述したように、ユーザ画像において、ＳＶＤＣに基づく特徴検出を実行する。オペレーション９６５で、分類エンジン２２０は、検出エンジン２１５から特徴データを受け取って、図３Ａおよび３Ｃを参照して上述したように、ユーザ画像内のアイテムについて分類を実行することで、分類インデックスを生成する。オペレーション９７０で、補足検索エンジン２６０は、ユーザ提供画像における画像の分類インデックスに最も近い分類インデックスを有する既知のアイテム群（例えば、インベントリアイテム群）を特定する。いくつかの例示的な実施形態では、既知のアイテム群とは、分類モデルを構築するために使用されるアイテム群、または既存の分類インデックスを有するアイテム群である。ユーザ提供画像に表示されているアイテムについて分類インデックスを生成したら、続いて、本プロセスは、いくつかの例示的な実施形態により、オペレーション９２０に進み、そこで、そのアイテムのクラス（例えば、カラー、タイプ）を特定して、クラス外アイテム群を決定するとともに、それらを用いてユーザに補足アイテム結果を提供することができる。いくつかの例示的な実施形態では、類似検索エンジン２５０を用いて、上述のように、類似のコンテキストを有する画像群（例えば、類似の分類インデックスを有するアイテムを表示している画像群）を特定する。
【００５１】
図１０Ａおよび１０Ｂは、図９Ａで説明した補足アイテム検索を実行するために使用される例示的なユーザインタフェース８０５を示している。図１０Ａを参照して、ユーザ１０６は、パラメータメニュー８２０から補足検索オプションを選択する。さらに、ユーザ１０６は、吊りランプアイテムを囲む関心領域８２５Ａを選択する。この選択に応じて、補足検索エンジン２６０は、関心領域８２５Ａと類似の分類インデックスを有するアイテム群を特定する。リスティングエンジン２３０は、図１０Ｂに示すように、補足アイテム１０００Ａ〜Ｄを表示するリスト１０２０を作成する。具体的には、補足アイテム１０００Ａは、選択されたランプのクラス外の花瓶（例えば、この花瓶は、異なるアイテムタイプクラスであるが、同じカラークラスであるかもしれない）についての結果であり、補足アイテム１０００Ｂは、選択されたランプのクラス外のチェア（例えば、このチェアは、異なるアイテムタイプクラスである）についての結果であり、補足アイテム１０００Ｃは、選択されたランプのクラス外のシンク（例えば、このシンクは、異なるアイテムタイプクラスである）についての結果であり、補足アイテム１０００Ｄは、選択されたランプのクラス外のランプ（例えば、補足アイテム１０００Ｄのランプは、同じアイテムクラスであるが、選択されたランプとは異なるカラーであるかもしれない）についての結果である。
【００５２】
図１１は、いくつかの例示的な実施形態による、以下で解説するコード例に対応する例示的なフロー図１１００を示している。フロー図１１００の各ブロックは、以下のコードにおける位置に対応する括弧内番号でラベル付けされている。例えば、［１］では、画像（例えば、デザイナ画像）が入力されて、変数として保存される。
::::::::::CODE::::::::: 
//Aesthetic Search
aesthetic_search.c
//[1] Import ImageSet
images = imagedataset
//[2] Train Detection Model
trainDetector(imagedataset){
// [3] Feature Detection Loop
for (i:=0;i<10;i++){
detectFeatures(image of imagedataset){
apply detection model for image of imagedataset;
featureDataset.append(detected features);  
};
};  //end of FOR [Feature Detection Loop]
//return featureDataset including data describing detected features 
return featureDataset;     
//feature detection model trained
};
//[4] Train Classification Model
trainClassifier(featureDataset){
//[5] Classification Loop
for (i:=0;i<10;i++){
classifyFeatures(feature of featureDataset){
apply classification model to feature to create classification_index; 
classificationDataset.append(classification_index);
};          
};  //end of FOR [Classification Loop]
//return classificationDataset including classification index for each feature; 
return featureDataset; 
//feature detection model trained
};
//Receive user_selection from UI
//[6] Perform type of search based on user selection of type of search
retrieve_listing_images(user_selection){
// [7] Complementary Search Selected?
if (TRUE){
//Perform Sim. Search
similar_search(user_selection, grouping parameter){
//identify classification idex for user_selection
//find items having nearest classification indices
//find images having the items with nearest indices 
//eliminate images not matching grouping parameter 
//rank images according to gallery saves 
//assign top five gallery saved images as listing images; 
return listing_images;
};       
}
else
//[8] Perform Complementary Search if selected
comp_search(user_selection, grouping parameter){
//identify classification index for user_selection
//determine class of item 
//find items having nearest classification indices
//find images having the items with nearest indices and dissimilar class 
//determine top four images  
//assign top five gallery saved images as listing_images
return listing_images;
};
};  //end of IF [Comp. Select?]
};
//[9] Generate Listing
generateListing(listing_images){
//use listing_images to create user interface listing 
return listing;
};
//[10] Transmit Listing
void transmit(listing){
//transmit listing to user 
};
本明細書において、いくつかの実施形態は、ロジック、またはいくつかのコンポーネント、モジュール、もしくは機構を含むものとして記載されている。モジュールは、ソフトウェアモジュール（例えば、マシン可読媒体上に具現化されるコード）またはハードウェアモジュールのいずれかを構成し得る。「ハードウェアモジュール」は、いくつかのオペレーションを実行することが可能な有形ユニットであり、何らかの物理的な形で構成または配置することが可能である。いくつかの例示的な実施形態では、１つ以上のコンピュータシステム（例えば、スタンドアロンコンピュータシステム、クライアントコンピュータシステム、もしくはサーバコンピュータシステム）、またはコンピュータシステムの１つ以上のハードウェアモジュール（例えば、プロセッサもしくはプロセッサ群）を、本明細書に記載のいくつかのオペレーションを実行するように動作するハードウェアモジュールとして、ソフトウェア（例えば、アプリケーションもしくはアプリケーション部分）によって構成設定することができる。
【００５３】
いくつかの実施形態において、ハードウェアモジュールは、機械的に、電子的に、またはそれらの任意の適切な組み合わせで実装することができる。例えば、ハードウェアモジュールは、いくつかのオペレーションを実行するように永続的に構成された専用回路またはロジックを含み得る。例えば、ハードウェアモジュールは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または特定用途向け集積回路（ＡＳＩＣ）のような専用プロセッサとすることができる。また、ハードウェアモジュールは、いくつかのオペレーションを実行するようにソフトウェアによって一時的に構成されたプログラマブルロジックまたは回路を含んでもよい。例えば、ハードウェアモジュールは、汎用プロセッサまたは他のプログラマブルプロセッサによって実行されるソフトウェアを含み得る。ハードウェアモジュールは、そのようなソフトウェアによって構成されると、構成された機能を実行するように独自に調整された特有のマシン（またはマシンの特有のコンポーネント）となり、もはや汎用プロセッサではなくなる。なお、ハードウェアモジュールを機械的に実装するか、永続的に構成された専用回路で実装するか、または一時的に構成された（例えば、ソフトウェアで構成設定された）回路で実装するかの判断は、コストおよび時間を考慮した決定によって可能であることは理解されるであろう。
【００５４】
よって、「ハードウェアモジュール」という表現は、何らかの形で動作するように、または本明細書に記載のいくつかのオペレーションを実行するように、物理的に構成されているか、永続的に構成（例えば、ハードワイヤード）されているか、または一時的に構成（例えば、プログラム）されている有形エンティティを包含するものと理解されるべきである。本明細書で使用する場合の「ハードウェア実装モジュール」とは、ハードウェアモジュールを指す。ハードウェアモジュールが一時的に構成（例えば、プログラム）される実施形態を考えた場合、それらのハードウェアモジュールの各々は、いずれか１つの時間インスタンスで構成またはインスタンス化される必要はない。例えば、あるハードウェアモジュールが、専用プロセッサとなるようにソフトウェアによって構成される汎用プロセッサを含む場合、その汎用プロセッサは、その時々でそれぞれ（例えば、異なるハードウェアモジュールを構成する）異なる専用プロセッサとして構成されてよい。このように、ソフトウェアによって、ある特定のプロセッサまたはプロセッサ群を、例えば、ある１つの時間インスタンスでは、ある特定のハードウェアモジュールとなり、異なる時間インスタンスでは異なるハードウェアモジュールとなるように、構成設定する。
【００５５】
ハードウェアモジュールは、他のハードウェアモジュールに情報を提供し、他のハードウェアモジュールから情報を受け取ることができる。よって、説明されたハードウェアモジュールは、通信可能に結合されていると考えることができる。複数のハードウェアモジュールが同時に存在する場合には、それらのハードウェアモジュールの２つ以上の間で、（例えば、適切な回路およびバスを介した）信号伝送によって通信を実現することができる。複数のハードウェアモジュールが異なる時間に構成またはインスタンス化される実施形態では、そのようなハードウェアモジュール間の通信は、例えば、それら複数のハードウェアモジュールがアクセスできるメモリ構造での情報の保存および取得によって実現することができる。例えば、ある１つのハードウェアモジュールは、あるオペレーションを実行して、そのオペレーションの出力を、通信可能に結合されたメモリデバイスに保存することができる。そして、別のハードウェアモジュールが後ほど、そのメモリデバイスにアクセスして、保存されている出力を取得して処理することができる。また、ハードウェアモジュールは、入力装置または出力装置との通信を開始することも可能であり、リソース（例えば、情報の集まり）上で動作することが可能である。
【００５６】
本明細書に記載の例示的な方法の各種オペレーションは、関連オペレーションを実行するように（例えば、ソフトウェアによって）一時的に構成または永続的に構成された１つ以上のプロセッサによって、少なくとも部分的に実行することができる。一時的に構成されるか、または永続的に構成されるかに関わりなく、そのようなプロセッサは、本明細書に記載の１つ以上のオペレーションまたは機能を実行するように動作するプロセッサ実装モジュールを構成する。本明細書で使用する場合の「プロセッサ実装モジュール」とは、１つ以上のプロセッサを用いて実装されるハードウェアモジュールを指す。
【００５７】
同様に、本明細書に記載の方法は、ハードウェアの一例である特定のプロセッサまたはプロセッサ群を用いて、少なくとも部分的にプロセッサ実装が可能である。例えば、ある方法のオペレーションの少なくとも一部は、１つ以上のプロセッサまたはプロセッサ実装モジュールによって実行することができる。さらに、その１つ以上のプロセッサは、「クラウドコンピューティング」環境における関連オペレーションの実行、または「サービス型ソフトウェア」（SaaS : Software as a Service）としての関連オペレーションの実行をサポートするように動作することもできる。例えば、オペレーションの少なくとも一部は、それらのオペレーションがネットワーク（例えば、インタネット）および１つ以上の適切なインタフェース（例えば、ＡＰＩ）を介してアクセス可能な（プロセッサ群を含むマシンの例としての）コンピュータ群によって実行することができる。
【００５８】
それらのオペレーションのうちのいくつかの実行を、そのプロセッサ群の間に分散させてよく、それらを単一のマシン内に常駐させるだけではなく、いくつかのマシン間にデプロイする（deployed）。いくつかの例示的な実施形態では、それらのプロセッサまたはプロセッサ実装モジュールを、１つの地理的場所（例えば、家庭環境内、オフィス環境内、またはサーバファーム内）に配置することができる。他の例示的な実施形態では、それらのプロセッサまたはプロセッサ実装モジュールを、いくつかの地理的場所に分散させる。
【００５９】
図１２は、いくつかの例示的な実施形態により、マシン可読媒体（例えば、マシン可読記憶媒体）から命令を読み出して、本明細書で解説された方法のいずれか１つ以上を実行することが可能なマシン１２００の構成要素を示すブロック図である。具体的には、図１２は、例示的なコンピュータシステムの形態でマシン１２００の概略図を示しており、この中で、本明細書で解説された方法のいずれか１つ以上をマシン１２００に実施させるための命令１２１６（例えば、ソフトウェア、プログラム、アプリケーション、アプレット、アプリ、もしくは他の実行可能コード）を、実行することができる。例えば、命令１２１６によって、図３Ａ〜７、９Ａ、９Ｂ、１１のフロー図をマシン１２００に実行させることができる。追加的または代替的に、命令１２１６によって、図２のインタフェースエンジン２１０、検出エンジン２１５、分類エンジン２２０、リスティングエンジン２３０、ユーザアクションエンジン２４０、類似検索エンジン２５０、補足検索エンジン２６０、およびデータベースエンジン２６５などを実装することができる。未プログラムの汎用マシンを、命令１２１６によって、記載および図示された機能を記載の形態で実行するようにプログラムされた特定のマシンに変換する。代替的な実施形態では、マシン１２００は、スタンドアロン装置として動作するか、もしくは他のマシンに結合（例えば、ネットワーク接続）されることができる。ネットワーク・デプロイメントでは、マシン１２００は、サーバ・クライアントネットワーク環境におけるサーバマシンもしくはクライアントマシンとして、またはピアツーピア（もしくは、分散）ネットワーク環境におけるピアマシンとして、動作することができる。マシン１２００として、限定するものではないが、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ（ＰＣ）、タブレットコンピュータ、ラップトップコンピュータ、ネットブック、セットトップボックス（ＳＴＢ）、パーソナルデジタルアシスタント（ＰＤＡ）、エンタテイメントメディアシステム、セルラ電話機、スマートフォン、モバイルデバイス、ウェアラブルデバイス（例えば、スマートウォッチ）、スマートホーム機器（例えば、スマートアプライアンス）、その他のスマートデバイス、ウェブアプライアンス、ネットワークルータ、ネットワークスイッチ、ネットワークブリッジ、または命令１２１６を順次もしくは他の様式で実行することが可能な任意のマシンを含むことができ、それらの命令は、そのマシン１２００で実行されるべきアクションを規定するものである。また、マシン１２００は１つしか図示されていないが、「マシン（machine）」という用語は、本明細書で解説された方法のいずれか１つ以上を実行するための命令１２１６を、個々にもしくは連携して実行するマシン群１２００も含むものと解釈されるべきである。
【００６０】
マシン１２００は、プロセッサ群１２１０と、メモリ／ストレージ１２３０と、Ｉ／Ｏコンポーネント群１２５０と、を備えることができ、これらは、バス１２０２を介するなどして相互に通信するように構成することができる。例示的な実施形態では、プロセッサ群１２１０（例えば、中央処理装置（ＣＰＵ）、縮小命令セットコンピューティング（RISC : Reduced Instruction Set Computing）プロセッサ、複雑命令セットコンピューティング（CISC : Complex Instruction Set Computing）プロセッサ、グラフィックス処理装置（ＧＰＵ）、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、無線周波数集積回路（ＲＦＩＣ）、他のプロセッサ、もしくはその任意の適切な組み合わせ）は、例えば、命令１２１６を実行し得るプロセッサ１２１２およびプロセッサ１２１４を含むことができる。「プロセッサ」という用語は、同時に命令を実行することが可能な２つ以上の独立なプロセッサ（「コア」と呼ばれることもある）を有し得るマルチコアプロセッサを含むものとする。なお、図１２は、複数のプロセッサ１２１０を示しているが、マシン１２００は、シングルコアを有する単一のプロセッサ、複数のコアを有する単一のプロセッサ（例えば、マルチコアプロセッサ）、シングルコアを有する複数のプロセッサ、複数のコアを有する複数のプロセッサ、またはその任意の組み合わせ、を備えることができる。
【００６１】
メモリ／ストレージ１２３０は、メインメモリまたは他のメモリストレージのようなメモリ１２３２と、ストレージユニット１２３６と、を含むことができ、これらは両方とも、バス１２０２を介するなどしてプロセッサ群１２１０がアクセス可能である。ストレージユニット１２３６およびメモリ１２３２は、本明細書に記載の方法または機能のいずれか１つ以上を具現化する命令１２１６を格納する。また、命令１２１６は、その全体または一部を、マシン１２００によるその実行中に、メモリ１２３２内、ストレージユニット１２３６内、プロセッサ群１２１０の少なくとも１つのプロセッサ内（例えば、そのプロセッサのキャッシュメモリ内）、またはその任意の適切な組み合わせに、常駐させることもできる。よって、メモリ１２３２、ストレージユニット１２３６、およびプロセッサ群１２１０のメモリは、マシン可読媒体の例である。
【００６２】
本明細書で使用する場合の「マシン可読媒体」という用語は、命令およびデータを一時的または永続的に記憶することが可能なデバイスを意味し、限定するものではないが、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、バッファメモリ、フラッシュメモリ、光媒体、磁気媒体、キャッシュメモリ、他のタイプのストレージ（例えば、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ））、またはその任意の適切な組み合わせを含むことができる。「マシン可読媒体」という用語は、命令１２１６を記憶することが可能な単一の媒体もしくは複数の媒体（例えば、集中型もしくは分散型データベース、または関連付けられたキャッシュもしくはサーバ）を含むものと解釈されるべきである。また、「マシン可読媒体」という用語は、マシン（例えば、マシン１２００）で実行するための命令（例えば、命令１２１６）を記憶することが可能な任意の媒体もしくは複数の媒体の組み合わせを含むものと解釈されるべきであり、それらの命令は、そのマシンの１つ以上のプロセッサ（例えば、プロセッサ群１２１０）で実行されることで、本明細書に記載の方法のいずれか１つ以上をマシンに実行させるものである。従って、「マシン可読媒体」とは、単一のストレージ装置もしくはデバイスを意味するとともに、複数のストレージ装置もしくはデバイスを含む「クラウドベース」のストレージシステムまたはストレージネットワークをも意味する。「マシン可読媒体」という用語は、信号そのものは除外する。
【００６３】
Ｉ／Ｏコンポーネント群１２５０は、入力を受け取り、出力を提供し、出力を生成し、情報を送信し、情報を交換し、測定値を取得するなどのための多様なコンポーネントを含むことができる。特定のマシンに含まれる具体的なＩ／Ｏコンポーネント群１２５０は、マシンのタイプに依存する。例えば、携帯電話機のようなポータブルマシンは、タッチ入力装置または他のそのような入力機構を備える可能性が高いが、ヘッドレスサーバマシンは、そのようなタッチ入力装置を備えない可能性が高い。なお、Ｉ／Ｏコンポーネント群１２５０は、図１２に示していない他の多くのコンポーネントを含み得ることは理解されるであろう。Ｉ／Ｏコンポーネント群１２５０は、単に以下での説明を簡単にするために、機能によってグループ分けされるが、このグループ分けは、限定するものでは決してない。いくつかの例示的な実施形態では、Ｉ／Ｏコンポーネント群１２５０は、出力コンポーネント１２５２と入力コンポーネント１２５４を含むことができる。出力コンポーネント１２５２は、視覚コンポーネント（例えば、プラズマディスプレイパネル（ＰＤＰ）、発光ダイオード（ＬＥＤ）ディスプレイ、液晶ディスプレイ（ＬＣＤ）、プロジェクタ、もしくはブラウン管（ＣＲＴ）のようなディスプレイ）、音響コンポーネント（例えば、スピーカ）、触覚コンポーネント（例えば、振動モータ、抵抗機構）、その他の信号発生器などを含み得る。入力コンポーネント１２５４は、英数字入力コンポーネント（例えば、キーボード、英数字入力を受け取るように構成されたタッチスクリーン、光学キーボード、もしくは他の英数字入力コンポーネント）、ポイント式入力コンポーネント（例えば、マウス、タッチパッド、トラックボール、ジョイスティック、モーションセンサ、もしくは他のポインティング機器）、触覚入力コンポーネント（例えば、物理的ボタン、タッチまたはタッチジェスチャの位置および力を供給するタッチスクリーン、もしくは他の触覚入力コンポーネント）、音響入力コンポーネント（例えば、マイクロフォン）などを含み得る。
【００６４】
さらなる例示的な実施形態では、Ｉ／Ｏコンポーネント群１２５０は、多様な他のコンポーネントの中でも特に、バイオメトリックコンポーネント１２５６、モーションコンポーネント１２５８、環境コンポーネント１２６０、または位置コンポーネント１２６２を含み得る。例えば、バイオメトリックコンポーネント１２５６は、表情（expressions）（例えば、手の表情、顔の表情、声の表情、身ぶり、もしくは目の動き）を検出するためのコンポーネント、生体信号（例えば、血圧、心拍数、体温、発汗、もしくは脳波）を測定するためのコンポーネント、個人を識別するためのコンポーネント（例えば、音声識別、網膜識別、顔識別、指紋識別、もしくは脳波による識別）などを含むことができる。モーションコンポーネント１２５８は、加速度センサコンポーネント（例えば、加速度計）、重力センサコンポーネント、回転センサコンポーネント（例えば、ジャイロスコープ）などを含むことができる。環境コンポーネント１２６０は、例えば、照度センサコンポーネント（例えば、光度計）、温度センサコンポーネント（例えば、周囲温度を検出する１つ以上の温度計）、湿度センサコンポーネント、圧力センサコンポーネント（例えば、気圧計）、音響センサコンポーネント（例えば、背景ノイズを検出する１つ以上のマイクロフォン）、近接センサコンポーネント（例えば、近くの物体を検出する赤外線センサ）、ガスセンサコンポーネント（例えば、機械嗅覚検出センサ、安全のために有害ガスの濃度を検出するガス検出センサ、もしくは大気中の汚染物質を測定するガス検出センサ）、または周囲の物理的環境に対応した指標、測定値、もしくは信号を提供し得る他のコンポーネントを含むことができる。位置コンポーネント１２６２は、位置センサコンポーネント（例えば、グローバルポジショニングシステム（ＧＰＳ）受信機コンポーネント）、高度センサコンポーネント（例えば、高度計、もしくは高度を導出できる気圧を検出する気圧計）、方位センサコンポーネント（例えば、磁力計）などを含むことができる。
【００６５】
通信は、多様な技術を用いて実現することができる。Ｉ／Ｏコンポーネント群１２５０は、マシン１２００をネットワーク１２８０またはデバイス１２７０に、それぞれカップリング１２８２およびカップリング１２７２によって結合するように機能する通信コンポーネント群１２６４を含み得る。例えば、通信コンポーネント群１２６４は、ネットワークインタフェースコンポーネント、またはネットワーク１２８０にインタフェースする他の適切なデバイスを含む。さらなる例では、通信コンポーネント群１２６４は、有線通信コンポーネント、無線通信コンポーネント、セルラ通信コンポーネント、近距離無線通信（NFC : Near Field Communication）コンポーネント、ＢＬＵＥＴＯＯＴＨ（登録商標）コンポーネント（例えば、ＢＬＵＥＴＯＯＴＨ（登録商標）ＬｏｗＥｎｅｒｇｙ）、ＷＩ−ＦＩ（登録商標）コンポーネント、およびその他のモダリティで通信を提供する他の通信コンポーネントを含む。デバイス１２７０は、他のマシン、または多様な周辺機器（例えば、ユニバーサルシリアルバス（ＵＳＢ）によって結合される周辺機器）のいずれかであり得る。
【００６６】
さらに、通信コンポーネント群１２６４は、識別子を検出することができるか、または識別子を検出するように機能するコンポーネントを含むことができる。例えば、通信コンポーネント群１２６４は、無線識別（ＲＦＩＤ）タグ読取りコンポーネント、ＮＦＣスマートタグ検出コンポーネント、光学読取りコンポーネント（例えば、統一商品コード（UPC : Universal Product Code）バーコードのような一次元バーコード、クイックレスポンス（ＱＲ）コード、Ａｚｔｅｃコード、データマトリックス、データグリフ、マキシコード、ＰＤＦ４１７、ウルトラコード、ユニフォームコマーシャルコード省スペースシンボル（ＵＣＣ  ＲＳＳ）２Ｄバーコードのような多次元バーコード、および他の光学コードを検出するための光学センサ）、音響検出コンポーネント（例えば、タグ付き音響信号を識別するためのマイクロフォン）、またはそれらの任意の適切な組み合わせを含むことができる。さらに、インタネットプロトコル（ＩＰ）ジオロケーションによる位置、ＷＩ−ＦＩ（登録商標）信号の三角測量による位置、特定の位置を示し得るＢＬＵＥＴＯＯＴＨ（登録商標）またはＮＦＣビーコン信号の検出による位置など、通信コンポーネント群１２６４によって各種情報を導出することができる。
【００６７】
いくつかの例示的な実施形態では、ネットワーク１２８０の１つ以上の部分は、アドホックネットワーク、イントラネット、エクストラネット、ＶＰＮ（Virtual Private Network）、ＬＡＮ、ＷＬＡＮ、ＷＡＮ、ＷＷＡＮ、ＭＡＮ（Metropolitan Area Network）、インタネット、インタネットの一部、ＰＳＴＮの一部、単純従来型電話サービス（POTS : Plain Old Telephone Service）ネットワーク、セルラ電話ネットワーク、ワイヤレスネットワーク、ＷＩ−ＦＩ（登録商標）ネットワーク、他のタイプのネットワーク、または２つ以上のそのようなネットワークの組み合わせ、とすることができる。例えば、ネットワーク１２８０またはネットワーク１２８０の一部は、ワイヤレスもしくはセルラネットワークを含むことがあり、カップリング１２８２は、符号分割多重アクセス（ＣＤＭＡ）接続、グローバル・システム・フォー・モバイル・コミュニケーションズ（ＧＳＭ）接続、または他タイプのセルラもしくはワイヤレスカップリングであってよい。本例では、カップリング１２８２によって、シングルキャリア無線伝送技術（１ｘＲＴＴ）、エボリューションデータオプティマイズド（ＥＶＤＯ）技術、汎用パケット無線サービス（GPRS : General Packet Radio Service）技術、ＧＳＭエボリューション用エンハンストデータレート（EDGE : Enhanced Data Rates for GSM Evolution）技術、さらに、３Ｇ、第４世代ワイヤレス（４Ｇ）ネットワーク、ユニバーサル移動体通信システム（UMTS : Universal Mobile Telecommunications System）、高速パケットアクセス（ＨＳＰＡ）、ワールドワイド・インタオペラビリティ・フォー・マイクロウェーブ・アクセス（ＷｉＭａｘ）、ロングタームエボリューション（ＬＴＥ）規格、様々な標準化団体によって規定された他の規格を含む第３世代パートナシッププロジェクト（３ＧＰＰ）、その他の長距離プロトコル、または他のデータ転送技術のような、多様なタイプのデータ転送技術のいずれかを実現することができる。
【００６８】
命令１２１６は、ネットワークインタフェース装置（例えば、通信コンポーネント群１２６４に含まれるネットワークインタフェースコンポーネント）を介して、いくつかの周知の転送プロトコルのいずれか１つ（例えば、ハイパーテキスト転送プロトコル（ＨＴＴＰ））を用いて、伝送媒体を用いたネットワーク１２８０上で送信または受信することができる。同様に、命令１２１６は、デバイス１２７０へのカップリング１２７２（例えば、ピアツーピアカップリング）によって、伝送媒体を用いて送信または受信することができる。「伝送媒体」という用語は、マシン１２００で実行するための命令１２１６を格納、符号化、または伝送することが可能な任意の無形媒体、ならびにそのようなソフトウェアの伝達を容易とするデジタルもしくはアナログ通信信号または他の無形媒体を含むものと解釈されるべきである。
【００６９】
本明細書全体を通して、単一のインスタンスとして記載されているコンポーネント、オペレーション、または構造は、複数のインスタンスで実現してよい。１つ以上の方法の個々のオペレーションを別々のオペレーションとして図示および記載しているが、それらの個々のオペレーションの１つ以上を同時に実行してよく、それらのオペレーションを図示の順序で実行する必要はない。例示的な構成において別々のコンポーネントとして提示した構造および機能は、併合した構造またはコンポーネントとして実現してよい。同様に、単一のコンポーネントとして提示した構造および機能は、別々のコンポーネントとして実現してよい。これらおよび他の変形、変更、追加、および改良は、本明細書における主題の範囲内に含まれる。
【００７０】
本発明の主題の概要について、具体的な例示的実施形態を参照して説明したが、これらの実施形態に対して、本開示の実施形態のより広い範囲から逸脱することなく、種々の変形および変更を実施してよい。本発明の主題のかかる実施形態を、本明細書では、単に便宜上「発明」という用語で総称または個称することがあるが、複数の発明概念を実際に開示している場合に、本出願の範囲をいずれか１つの開示または発明概念に自ら限定するものではない。
【００７１】
本明細書で例示している実施形態は、開示した教示を当業者が実施することを可能とするのに十分に詳細に記載している。本開示の範囲から逸脱することなく、他の実施形態を用いてよく、さらには、それらから導出することで、構造的および論理的置換ならびに変更を実施してよい。従って、詳細な説明は、限定的な意味で解釈されるべきではなく、種々の実施形態の範囲は、添付の請求項と、かかる請求項によって権利が与えられる均等物の全範囲によってのみ規定される。
【００７２】
本明細書で使用する場合の「または」という用語は、包含的または排他的な意味のいずれかで解釈され得る。さらに、単一のインスタンスとして本明細書で記載しているリソース、オペレーション、または構造のために、複数のインスタンスを提供してよい。また、様々なリソース、オペレーション、モジュール、エンジン、およびデータストアの間の境界は、ある程度任意であり、具体的なオペレーションは、特定の例示的な構成の文脈で示している。機能の他の割り振りは、想定されるとともに、本開示の種々の実施形態の範囲内に含まれ得る。一般に、例示的な構成において別々のリソースとして提示している構造および機能は、併合した構造またはリソースとして実現してよい。同様に、単一のリソースとして提示している構造および機能は、別々のリソースとして実現してよい。これらおよび他の変形、変更、追加、および改良は、添付の請求項で表される本開示の実施形態の範囲内に含まれる。従って、明細書および図面は、限定的な意味のものではなく、例示的なものとみなされるべきである。
【図１】
2018081692.tif 000003
【図２】
2018081692.tif 000004
【図３Ａ】
2018081692.tif 000005
【図３Ｂ】
2018081692.tif 000006
【図３Ｃ】
2018081692.tif 000007
【図４】
2018081692.tif 000008
【図５】
2018081692.tif 000009
【図６】
2018081692.tif 000010
【図７】
2018081692.tif 000011
【図８Ａ】
2018081692.tif 000012
【図８Ｂ】
2018081692.tif 000013
【図８Ｃ】
2018081692.tif 000014
【図８Ｄ】
2018081692.tif 000015
【図９Ａ】
2018081692.tif 000016
【図９Ｂ】
2018081692.tif 000017
【図１０Ａ】
2018081692.tif 000018
【図１０Ｂ】
2018081692.tif 000019
【図１１】
2018081692.tif 000020
【図１２】
2018081692.tif 000021
【外国語明細書】
2018081692000001.pdf