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

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

▶ ハウズ インコーポレイテッドの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-06
(45)【発行日】2022-04-14
(54)【発明の名称】審美的検索エンジン
(51)【国際特許分類】
   G06F 16/53 20190101AFI20220407BHJP
   G06F 16/55 20190101ALI20220407BHJP
【FI】
G06F16/53
G06F16/55
【請求項の数】 20
【外国語出願】
(21)【出願番号】P 2017219204
(22)【出願日】2017-11-14
(65)【公開番号】P2018081692
(43)【公開日】2018-05-24
【審査請求日】2020-09-25
(31)【優先権主張番号】15/351,978
(32)【優先日】2016-11-15
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】517398900
【氏名又は名称】ハウズ インコーポレイテッド
【氏名又は名称原語表記】HOUZZ,INC.
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】チェン ロンビン
(72)【発明者】
【氏名】カン レ
(72)【発明者】
【氏名】ヤオ レイ
(72)【発明者】
【氏名】マオ ジェンユー
【審査官】鹿野 博嗣
(56)【参考文献】
【文献】特開2012-133516(JP,A)
【文献】特開2013-037390(JP,A)
【文献】特開2010-286861(JP,A)
【文献】特開2011-210054(JP,A)
【文献】米国特許出願公開第2016/0267637(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/53
G06F 16/55
(57)【特許請求の範囲】
【請求項1】
方法であって、
ネットワーク・サイトの複数のデザイナユーザの複数のクライアントデバイスから複数の画像を受信することであって、各画像は、前記ネットワーク・サイトのデザイナユーザによってグループ分けされた前記画像内の複数のアイテムを表示し、前記複数のアイテムは、複数の物理的アイテムであり、前記画像は、前記デザイナユーザによってグループ分けされた複数の物理的アイテムの写真である、前記複数の画像を受信すること、
検出ニューラルネットワークを用いて、前記検出ニューラルネットワークの初期検出モデルを前記複数の画像に適用することにより、前記複数のアイテムに関する初期特徴データセットを生成すること、
分類ニューラルネットワークを用いて、前記分類ニューラルネットワークの分類モデルを前記初期特徴データセットに適用することにより、前記初期特徴データセット内の複数の初期特徴データアイテムに関する複数の分類を生成すること、
前記複数の画像の複数の部分領域を、前記分類ニューラルネットワークにより生成された複数の類似の分類を有する前記複数の部分領域に基づいて、視覚的識別可能データセットとして記憶すること、
前記検出ニューラルネットワークを、前記視覚的識別可能データセット内の前記複数の画像の複数の部分領域で学習させることにより、更新された検出モデルを生成すること、
前記検出ニューラルネットワークを用いて、前記更新された検出モデルを前記複数の画像に適用することにより、前記複数のアイテムに関する特徴データを生成することであって、前記特徴データは、前記複数の画像に表示されている複数のアイテムの形状属性を指定する、前記特徴データを生成すること、
前記分類ニューラルネットワークを用いて、前記分類モデルを前記特徴データに適用することにより、前記複数のアイテムに関する複数の分類インデックスを生成すること、
前記ネットワーク・サイトのデザイナではないユーザの別のクライアントデバイス上で、前記複数の画像のうちの特定の画像を表示するプレゼンテーションを発生させること、
前記デザイナではないユーザの前記別のクライアントデバイスから、前記複数の画像のうちの特定の画像内のアイテムの選択を受け取ること、
選択された前記アイテムの分類インデックスに最も近い分類インデックスを有する複数のアイテムを表示している前記複数の画像のうちの画像群を決定すること、
前記複数の画像のうちの画像群を、前記画像群のうちの複数の画像の前記ネットワーク・サイトの複数のユーザによるユーザブックマークを記述するユーザアクションデータに従って、ランク付けした検索結果を生成すること、
前記デザイナではないユーザの前記別のクライアントデバイスのディスプレイ装置に前記検索結果を表示させること、を備える方法。
【請求項2】
前記検出ニューラルネットワーク及び前記分類ニューラルネットワークは、別々の畳み込みニューラルネットワークである、請求項1に記載の方法。
【請求項3】
前記ネットワーク・サイトの複数のユーザの他のクライアントデバイスから、前記複数の画像のうちの1つまたは複数の画像のユーザブックマークを受信すること、
前記1つまたは複数の画像のユーザブックマークを記憶すること、をさらに備える請求項1に記載の方法。
【請求項4】
前記複数の画像のうちの画像群が、降順でランク付けされる、請求項1に記載の方法。
【請求項5】
前記別のクライアントデバイスから、前記複数の画像の属性を指定するグルーピングパラメータの選択を受け取ることをさらに備え、
前記検索結果の中の各画像は、前記グルーピングパラメータで指定された属性と同じ属性値を有する、請求項1に記載の方法。
【請求項6】
前記属性は、スタイル、デザイナ、カラー、地理的位置のうちの1つ以上を含む、請求項5に記載の方法。
【請求項7】
前記グルーピングパラメータは、前記デザイナではないユーザによってユーザインタフェースを介して指定される、請求項5に記載の方法。
【請求項8】
前記アイテムは、前記別のクライアントデバイスの前記ディスプレイ装置を介して、前記複数の画像のうちの特定の画像から選択される、請求項1に記載の方法。
【請求項9】
システムであって、
マシンの1つ以上のプロセッサと、
命令を格納するメモリと、を備え、前記命令は、前記1つ以上のプロセッサで実行されると、複数の処理を前記マシンに実行させ、
前記複数の処理は、
ネットワーク・サイトの複数のデザイナユーザの複数のクライアントデバイスから複数の画像を受信することであって、各画像は、前記ネットワーク・サイトのデザイナユーザによってグループ分けされた前記画像内の複数のアイテムを表示し、前記複数のアイテムは、複数の物理的アイテムであり、前記画像は、前記デザイナユーザによってグループ分けされた複数の物理的アイテムの写真である、前記複数の画像を受信すること、
検出ニューラルネットワークを用いて、前記検出ニューラルネットワークの初期検出モデルを前記複数の画像に適用することにより、前記複数のアイテムに関する初期特徴データセットを生成すること、
分類ニューラルネットワークを用いて、前記分類ニューラルネットワークの分類モデルを前記初期特徴データセットに適用することにより、前記初期特徴データセット内の複数の初期特徴データアイテムに関する複数の分類を生成すること、
前記複数の画像の複数の部分領域を、前記分類ニューラルネットワークにより生成された複数の類似の分類を有する前記複数の部分領域に基づいて、視覚的識別可能データセットとして記憶すること、
前記検出ニューラルネットワークを、前記視覚的識別可能データセット内の前記複数の画像の複数の部分領域で学習させることにより、更新された検出モデルを生成すること、
前記検出ニューラルネットワークを用いて、前記更新された検出モデルを前記複数の画像に適用することにより、前記複数のアイテムに関する特徴データを生成することであって、前記特徴データは、前記複数の画像に表示されている複数のアイテムの形状属性を指定する、前記特徴データを生成すること、
前記分類ニューラルネットワークを用いて、前記分類モデルを前記特徴データに適用することにより、前記複数のアイテムに関する複数の分類インデックスを生成すること、
前記ネットワーク・サイトのデザイナではないユーザの別のクライアントデバイス上で、前記複数の画像のうちの特定の画像を表示するプレゼンテーションを発生させること、
前記デザイナではないユーザの前記別のクライアントデバイスから、前記複数の画像のうちの特定の画像内のアイテムの選択を受け取ること、
選択された前記アイテムの分類インデックスに最も近い分類インデックスを有する複数のアイテムを表示している前記複数の画像のうちの画像群を決定すること、
前記複数の画像のうちの画像群を、前記画像群のうちの複数の画像の前記ネットワーク・サイトの複数のユーザによるユーザブックマークを記述するユーザアクションデータに従って、ランク付けした検索結果を生成すること、
前記デザイナではないユーザの前記別のクライアントデバイスのディスプレイ装置に前記検索結果を表示させること、を含む、システム。
【請求項10】
前記検出ニューラルネットワーク及び前記分類ニューラルネットワークは、別々の畳み込みニューラルネットワークである、請求項9に記載のシステム。
【請求項11】
前記複数の処理は、
前記ネットワーク・サイトの複数のユーザの他のクライアントデバイスから、前記複数の画像のうちの1つまたは複数の画像のユーザブックマークを受信すること、
前記1つまたは複数の画像のユーザブックマークを記憶すること、をさらに含む、請求項に記載のシステム。
【請求項12】
前記複数の画像のうちの画像群が、降順でランク付けされる、請求項9に記載のシステム。
【請求項13】
前記複数の処理は、
前記別のクライアントデバイスから、前記複数の画像の属性を指定するグルーピングパラメータの選択を受け取ることをさらに含み、
前記検索結果の各画像は、前記グルーピングパラメータで指定された前記属性と同じ属性値を有する、請求項9に記載のシステム。
【請求項14】
前記属性は、スタイル、デザイナ、カラー、地理的位置のうちの1つ以上を含む、請求項13に記載のシステム。
【請求項15】
前記グルーピングパラメータは、前記デザイナではないユーザによってユーザインタフェースを介して指定される、請求項13に記載のシステム。
【請求項16】
前記アイテムは、前記別のクライアントデバイスの前記ディスプレイ装置を介して、前記複数の画像のうちの特定の画像から選択される、請求項9に記載のシステム。
【請求項17】
命令を具体化するマシン可読記憶媒体であって、前記命令は、マシンで実行されることで、複数の処理を前記マシンに実行させ、
前記複数の処理は、
ネットワーク・サイトの複数のデザイナユーザの複数のクライアントデバイスから複数の画像を受信することであって、各画像は、前記ネットワーク・サイトのデザイナユーザによってグループ分けされた前記画像内の複数のアイテムを表示し、前記複数のアイテムは、複数の物理的アイテムであり、前記画像は、前記デザイナユーザによってグループ分けされた複数の物理的アイテムの写真である、前記複数の画像を受信すること、
検出ニューラルネットワークを用いて、前記検出ニューラルネットワークの初期検出モデルを前記複数の画像に適用することにより、前記複数のアイテムに関する初期特徴データセットを生成すること、
分類ニューラルネットワークを用いて、前記分類ニューラルネットワークの分類モデルを前記初期特徴データセットに適用することにより、前記初期特徴データセット内の複数の初期特徴データアイテムに関する複数の分類を生成すること、
前記複数の画像の複数の部分領域を、前記分類ニューラルネットワークにより生成された複数の類似の分類を有する前記複数の部分領域に基づいて、視覚的識別可能データセットとして記憶すること、
前記検出ニューラルネットワークを、前記視覚的識別可能データセット内の前記複数の画像の複数の部分領域で学習させることにより、更新された検出モデルを生成すること、
前記検出ニューラルネットワークを用いて、前記更新された検出モデルを前記複数の画像に適用することにより、前記複数のアイテムに関する特徴データを生成することであって、前記特徴データは、前記複数の画像に表示されている複数のアイテムの形状属性を指定する、前記特徴データを生成すること、
前記分類ニューラルネットワークを用いて、前記分類モデルを前記特徴データに適用することにより、前記複数のアイテムに関する複数の分類インデックスを生成すること、
前記ネットワーク・サイトのデザイナではないユーザの別のクライアントデバイス上で、前記複数の画像のうちの特定の画像を表示するプレゼンテーションを発生させること、
前記デザイナではないユーザの前記別のクライアントデバイスから、前記複数の画像のうちの特定の画像内のアイテムの選択を受け取ること、
選択された前記アイテムの分類インデックスに最も近い分類インデックスを有する複数のアイテムを表示している前記複数の画像のうちの画像群を決定すること、
前記複数の画像のうちの画像群を、前記画像群のうちの複数の画像の前記ネットワーク・サイトの複数のユーザによるユーザブックマークを記述するユーザアクションデータに従って、ランク付けした検索結果を生成すること、
前記デザイナではないユーザの前記別のクライアントデバイスのディスプレイ装置に前記検索結果を表示させること、を含む、マシン可読記憶媒体。
【請求項18】
前記検出ニューラルネットワーク及び前記分類ニューラルネットワークは、別々の畳み込みニューラルネットワークである、請求項17に記載のマシン可読記憶媒体。
【請求項19】
前記複数の処理は、
前記ネットワーク・サイトの複数のユーザの他のクライアントデバイスから、前記複数の画像のうちの1つまたは複数の画像のユーザブックマークを受信すること、
前記1つまたは複数の画像のユーザブックマークを記憶すること、をさらに含む、請求項17に記載のマシン可読記憶媒体。
【請求項20】
前記複数の画像のうちの画像群が、降順でランク付けされる、請求項17に記載のマシン可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の実施形態は、広くは、検索エンジンに関し、限定するものではないが、特に審美的検索エンジンに関するものである。
【背景技術】
【0002】
近年、ユーザは、自身が関心のあるアイテム(例えば、ソファ、枕、シンク、テーブル、衣料品)を見つけるために、画像ベースの検索サイトを利用することがますます多くなっている。しかしながら、アイテムの画像は、ユーザにとって、現実的に(例えば、ショールームで)アイテムを試験することができないので、代用として不十分である。このように、ユーザは、提示された画像および説明データのみに基づいて決断を下すことを余儀なくされる。また、服飾デザイナまたはインテリアデザイナのような一部のユーザは、まとまりで審美的に機能するアイテム群のアレンジを作成しようとする。例えば、服飾デザイナは、スタイリッシュな装いを作り出すために、靴、ズボン、シャツ、時計、帽子を選択することがあり、あるいはインテリアデザイナは、リビングルームのデザインを作り出すために、ソファ、チェア、テーブル、花瓶、フロアランプを選択することがある。画像のみを用いて、個々のアイテムを評価することは難しいが、画像を用いて、審美的に好ましいアイテム群のアレンジを作成することは、それらのアイテムを並べるとどのように見えるのかをユーザが試験することができないため、はるかに複雑である。
【図面の簡単な説明】
【0003】
図1】いくつかの例示的な実施形態による審美的検索システムを実現するためのネットワーク化システムを示すブロック図である。
図2】いくつかの例示的な実施形態による審美的検索システム内に設けられる例示的な内部コンポーネントを示すブロック図である。
図3A】いくつかの例示的な実施形態により、特徴検出および特徴分類を実施するためのフロー図を示している。
図3B】いくつかの例示的な実施形態により、特徴検出および特徴分類を実施するためのフロー図を示している。
図3C】いくつかの例示的な実施形態により、特徴検出および特徴分類を実施するためのフロー図を示している。
図4】いくつかの例示的な実施形態により、グルーピングパラメータを用いた結果を返すためのフロー図を示している。
図5】いくつかの例示的な実施形態により、ユーザアクションデータを用いた結果を返す方法のフロー図を示している。
図6】いくつかの例示的な実施形態により、美的パラメータを用いた結果を返す方法のフロー図を示している。
図7】いくつかの例示的な実施形態により、ユーザ指定のパラメータを用いた結果を返す方法のフロー図を示している。
図8A】いくつかの例示的な実施形態により、審美的検索システムを用いて類似アイテム検索結果を返すための、例示的なユーザインタフェースを示している。
図8B】いくつかの例示的な実施形態により、審美的検索システムを用いて類似アイテム検索結果を返すための、例示的なユーザインタフェースを示している。
図8C】いくつかの例示的な実施形態により、審美的検索システムを用いて類似アイテム検索結果を返すための、例示的なユーザインタフェースを示している。
図8D】いくつかの例示的な実施形態により、審美的検索システムを用いて類似アイテム検索結果を返すための、例示的なユーザインタフェースを示している。
図9A】いくつかの例示的な実施形態により、補足アイテム検索結果を返すためのフロー図を示している。
図9B】いくつかの例示的な実施形態により、補足アイテム検索結果を返すためのフロー図を示している。
図10A】いくつかの例示的な実施形態により、審美的検索システムを用いて補足アイテム検索結果を返すための例示的なユーザインタフェースを示している。
図10B】いくつかの例示的な実施形態により、審美的検索システムを用いて補足アイテム検索結果を返すための例示的なユーザインタフェースを示している。
図11】いくつかの例示的な実施形態により、審美的検索システムを用いて類似アイテム検索結果および補足アイテム検索結果を実現するためのプログラム制御フロー図を示している。
図12】コンピュータシステムの形態のマシンの概略図を示しており、このコンピュータシステム内で、例示的な一実施形態により、本明細書で論じる方法のいずれか1つ以上をマシンに実施させるための命令セットを実行することができる。
【発明を実施するための形態】
【0004】
添付の図面の種々の態様は、本開示の例示的な実施形態を示すものにすぎず、その範囲を限定するものとみなされるべきではない。
以下の説明では、本開示の例示的な実施形態を具現化するシステム、方法、技術、命令シーケンス、およびコンピュータプログラムプロダクトについて記載する。以下の説明では、発明の主題の種々の実施形態についての理解を与えるため、説明を目的として、様々な具体的詳細が記載される。しかしながら、これら特定の詳細を伴うことなく、発明の主題の実施形態を実施できることは、当業者には明らかであろう。一般に、周知の命令インスタンス、プロトコル、構造、および技術については、必ずしも詳細に示していない。
【0005】
種々の例示的な実施形態において、審美的検索システム(aesthetic search system)は、アイテム群のアレンジを表示する画像の解析に基づいて、検索結果を生成することができる。それらの画像は、デザイナ(例えば、デザインの専門知識を有する者)が作成したデザイナ写真(例えば、インテリアデザイン画像、服飾ファッション画像)であり得る。いくつかの例示的な実施形態では、表現されているアイテム群に関する特徴データを特定するために、デザイナ写真において特徴検出を実施する。次に、それらのアイテムを特徴データで分類することで、各アイテムについて分類インデックスを生成する。あるアイテムをユーザ(例えば、非デザイナ)が選択したら、分類インデックスを用いて類似の画像を見つけ出すことによって、そのユーザのための検索結果を生成することができる。具体的には、例えば、類似の分類インデックスを有するアイテムを表示している画像群を特定して、検索結果として返すことができる。検索結果の精度および適合性を向上させるために、それらの類似の画像を、スタイルなどの選択された美的パラメータによってランク付けすることができ、さらに、ユーザアクションデータ(例えば、画像ブックマーク)を用いてランク付けすることができる。このようにして、ユーザは、高度にキュレートされた(curated)デザイナ画像から生成された関連アイテムの結果を閲覧することができる。
【0006】
図1を参照すると、上位のクライアント・サーバベースのネットワークアーキテクチャ100の例示的な実施形態を示している。ネットワークベースのマーケットプレイスシステムまたは決済システムの例示的な形態において、ネットワーク化システム102は、サーバ側の機能を、ネットワーク104(例えば、インタネットまたはワイドエリアネットワーク(WAN))を介して1つ以上のクライアントデバイス110に提供する。いくつかの実現形態では、ユーザ(例えば、ユーザ106)は、クライアントデバイス110を用いてネットワーク化システム102とインタラクションする。図1は、クライアントデバイス110上で実行される、例えば、ウェブクライアント112(例えば、ブラウザ)、クライアントアプリケーション114、およびプログラマチッククライアント116を示している。クライアントデバイス110は、ウェブクライアント112、クライアントアプリケーション114、およびプログラマチッククライアント116を、単独で、併用で、または任意の適切な組み合わせで、備える。なお、図1では、1つのクライアントデバイス110を示しているが、他の実現形態では、ネットワークアーキテクチャ100は、複数のクライアントデバイスを含む。
【0007】
種々の実現形態において、クライアントデバイス110は、ディスプレイと、ネットワーク104を介したネットワーク化システム102へのアクセスを提供する通信機能と、を少なくとも有するコンピューティングデバイスを含む。クライアントデバイス110として、リモートデバイス、ワークステーション、コンピュータ、汎用コンピュータ、インタネットアプライアンス、ハンドヘルドデバイス、ワイヤレスデバイス、ポータブルデバイス、ウェアラブルコンピュータ、セルラフォンまたはモバイルフォン、パーソナルデジタルアシスタント(PDA)、スマートフォン、タブレット、ウルトラブック、ネットブック、ラップトップ、デスクトップ、マルチプロセッサシステム、マイクロプロセッサベースの家電システムまたはプログラマブル家電システム、ゲーム機、セットトップボックス、ネットワークパーソナルコンピュータ(PC)、ミニコンピュータなどが含まれるが、ただし、これらに限定されない。例示的な実施形態では、クライアントデバイス110は、タッチスクリーン、加速度計、ジャイロスコープ、生体センサ、カメラ、マイクロフォン、グローバルポジショニングシステム(GPS)装置などの1つ以上を備える。
【0008】
クライアントデバイス110は、有線接続または無線接続を介してネットワーク104と通信する。例えば、ネットワーク104の1つ以上の部分として、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、無線LAN(WLAN)、WAN、無線WAN、(WWAN)、メトロポリタンエリアネットワーク(MAN)、インタネットの一部、公衆交換電話網(PSTN)の一部、セルラ電話ネットワーク、ワイヤレスネットワーク、ワイヤレスフィディリティ(WI-FI(登録商標))ネットワーク、ワールドワイド・インタオペラビリティ・フォー・マイクロウェーブ・アクセス(WiMax)ネットワーク、他のタイプのネットワーク、またはそれらの任意の適切な組み合わせが含まれる。
【0009】
いくつかの例示的な実施形態では、クライアントデバイス110は、限定するものではないが、ウェブブラウザ、服飾デザインアプリ、およびインテリアデザインアプリのような、クライアントアプリケーション114(「アプリ」とも呼ばれる)の1つ以上を備える。いくつかの実現形態において、クライアントアプリケーション114は、ユーザ(例えば、ユーザ106)に情報を提示し、ネットワーク化システム102と通信するように機能する各種コンポーネントを含む。
【0010】
ウェブクライアント112は、ウェブサーバ122によってサポートされるウェブインタフェースを介して、ネットワーク化システム102の各種システムにアクセスする。同様に、プログラマチッククライアント116およびクライアントアプリケーション114は、アプリケーションプログラミングインタフェース(API)サーバ120によって提供されるプログラマチックインタフェースを介して、ネットワーク化システム102により提供される各種サービスおよび機能にアクセスする。プログラマチッククライアント116は、例えば、クライアントアプリケーション114への統合用の開発者アプリケーションまたはモジュールであり得る。
【0011】
ユーザ(例えば、ユーザ106)として、人間、マシン、またはクライアントデバイス110とインタラクションする他の手段が含まれる。いくつかの例示的な実施形態では、ユーザは、ネットワークアーキテクチャ100の一部ではなく、クライアントデバイス110または他の手段を介してネットワークアーキテクチャ100とインタラクションする。例えば、ユーザは、クライアントデバイス110に入力(例えば、タッチスクリーン入力または英数字入力)を供給し、その入力は、ネットワーク104を介してネットワーク化システム102に伝達される。本例では、ネットワーク化システム102は、ユーザから入力を受信したことに応じて、ユーザに提示されるべき情報を、ネットワーク104を介してクライアントデバイス110に伝達する。このようにして、ユーザは、クライアントデバイス110を用いて、ネットワーク化システム102とインタラクションすることができる。
【0012】
APIサーバ120およびウェブサーバ122は、1つ以上のアプリケーションサーバ140への個々のプログラマチックなウェブインタフェースに結合されているとともに、それを提供する。アプリケーションサーバ140は、審美的検索システム150をホストすることができる。そして、このアプリケーションサーバ140は、1つ以上の情報格納リポジトリまたはデータベース126へのアクセスを容易とする1つ以上のデータベースサーバ124に結合されるものとして図示されている。例示的な実施形態では、データベース126は、審美的検索システム150で掲載される情報(例えば、デザイナ写真、アイテム群のアレンジ画像、個々のアイテム画像、特徴データ、分類データ)を保存するストレージデバイスである。
【0013】
さらに、第三者サーバ130上で実行される第三者アプリケーション132を、APIサーバ120によって提供されるプログラマチックインタフェースを介したネットワーク化システム102へのプログラマチックアクセスを有するものとして図示している。例えば、第三者アプリケーション132は、ネットワーク化システム102から取得した情報を利用して、第三者がホストするウェブサイト上で1つ以上の特長または機能をサポートする。第三者ウェブサイトは、例えば、ネットワーク化システム102の関連アプリケーションによってサポートされる決済機能を提供する。
【0014】
いくつかの実現形態において、審美的検索システム150は、アイテムのユーザ選択を受け取って検索結果を返すための機能を提供する。審美的検索システム150について、以下の図2に関連してさらに解説する。
【0015】
また、図1に示すネットワークアーキテクチャ100は、クライアント・サーバアーキテクチャを採用しているが、当然のことながら、本発明の主題は、そのようなアーキテクチャに限定されることなく、例えば、分散型またはピアツーピア型のアーキテクチャシステムにおいても同様に応用を見いだすことができる。アプリケーションサーバ140の各種システム(例えば、審美的検索システム150)は、必ずしもネットワーク機能を有していないスタンドアロン・ソフトウェアプログラムとして実装することもできる。
【0016】
図2は、いくつかの実施形態による審美的検索システム150を示している。図示のように、審美的検索システム150は、インタフェースエンジン210と、検出エンジン215と、分類エンジン220と、リスティングエンジン(listing engine)230と、ユーザアクションエンジン240と、類似検索エンジン250と、補足検索エンジン260と、データベースエンジン265と、を備える。インタフェースエンジン210は、ユーザのクライアントデバイス110を介したユーザ106とのやりとりのために、ウェブサーバ122とインタフェースするように構成される。例えば、ユーザ106が、クライアントデバイス110において表示されたユーザインタフェース要素を選択すると、インタフェースエンジン210は、そのユーザ選択を、審美的検索システム150への入力として受け取る。インタフェースエンジン210は、さらに、いくつかの例示的な実施形態により審美的検索をプログラムで実行するために、APIサーバ120を介して第三者アプリケーション(例えば、第三者アプリケーション132)とインタフェースするように構成される。分類エンジン220は、一組の画像を受け取り、それらの画像の各々の範囲内の特徴を分類するように構成される。リスティングエンジン230は、例えばクライアントデバイス110において表示するための、表示用リストを作成するように構成される。ユーザアクションエンジン240は、審美的検索システム150に関するユーザアクションデータセットを管理するように構成される。例えば、ユーザアクションエンジン240は、どのウェブページが最も多く閲覧されたのか、どのアイテムが最も多く閲覧されたのか、またはどのアイテムが最も多くユーザコレクションに保存されたのか、を特定することができる。類似検索エンジン250は、類似するものとして分類エンジン220によって分類されたアイテム群を特定するように構成される。特定されたアイテム群は、リストでユーザ106に表示するためにリスティングエンジン230に伝送される。補足検索エンジン260は、選択されたアイテムに対して補足的なアイテムを特定するように構成される。補足アイテムとは、所与のアイテムと同じクラスのものではないが、通常、その所与のアイテムに補足的なものとして、所与のアイテムとセットにされるアイテム群である。例えば、オレンジとオレンジピーラは、異なるクラスのアイテムであるが、互いに合わせて機能するように設計されているので、互いに対して補足的であり、通常は合わせて購入されるか、または通常は1回のブラウジングセッションにおいてウェブサイトで閲覧される。データベースエンジン265は、データベースサーバ124を介してデータベース126からデータを取り出すことを担う。
【0017】
図3Aは、いくつかの例示的な実施形態により、画像群に記録されているアイテム群を分類する方法300を示している。オペレーション305で、インタフェースエンジン210は、画像のセットを受け取る。オペレーション310および315で、検出エンジン215は、画像データセット(例えば、オペレーション305で受け取った画像セット)の中の各画像の特徴を検出するために、複数の特徴検出ループを実行する。特徴検出は、所与の画像における特徴に、関心領域(ROI : Region Of Interest)を示すバウンダリ(boundary)を用いてラベル付けすることを伴う。例えば、ある画像は、ランプ、ソファ、デスクの画像を含んでいることがあり、これらはすべて写真の特徴であると考えられる。いくつかの実施形態において、画像セットの画像群を(例えば、クライアントデバイス110で)閲覧しているユーザは、ある特徴の上にUI要素であるバウンダリをドラッグすることによって、その特徴に手動でタグ付けすることが可能である。例えば、リビングルームの画像を閲覧しているユーザは、画像の中のソファの上に矩形バウンダリをドラッグする場合があり、これにより、ROIとして矩形バウンダリにタグ付けする。ユーザは、さらに、タグ付けされたROIを記述するフィールドへの記入が可能である。例えば、ユーザがソファの上に矩形バウンダリをドラッグした後に、ユーザは、そのROIに関するメタデータとして格納されるための「ソファ」を、分類フィールドに入力することが可能である。
【0018】
いくつかの例示的な実施形態では、特徴検出機械学習手法(例えば、Sobelエッジフィルタ、ブロブ検出)によって、特徴検出をプログラムで実行する。図3に示すように、特徴検出は、オペレーション310とオペレーション315の間のループの一部として実行することができ、このとき、オペレーション310で、処理用の次のデータアイテムを特定し、オペレーション315で、そのデータアイテムを処理する。
【0019】
例えば、オペレーション310で、検出エンジン215は、受信画像セットのうちの第1の画像をメモリにロードする。オペレーション315で、検出エンジン215は、メモリにロードされた画像において特徴検出を実行する。例えば、オペレーション315では、検出エンジン215は、特徴を識別して、それらの特徴にROIとしてラベル付けする。その画像に関して識別されたROIは、その写真と共にメタデータとして保存することができる。本プロセスは、ループのオペレーション310に戻り、そこで、検出エンジン215は、画像データセットの中の次の画像をメモリにロードし、オペレーション315で、写真において特徴検出を実行し、再度、ROIデータを写真と共にメタデータとして保存する。このようにして、検出エンジン215は、画像セットの中のすべての画像の特徴検出を終えるまで、オペレーション310と315の間でループすることができる。
【0020】
いくつかの例示的な実施形態では、特徴の分類を、オペレーション320とオペレーション325の間のループ(例えば、forループ、whileループ)の一部として実行し、このとき、オペレーション320で、処理用の次のデータアイテムを特定し、オペレーション325で、そのデータアイテムを処理する。例えば、オペレーション320で、分類エンジン220は、画像データセットの中の第1の画像を特定する。オペレーション325で、分類エンジン220は、分類手法を用いて、写真の中の特徴をそれぞれ分類する。いくつかの実施形態では、分類手法は、写真と共に保存されているROIメタデータを用いて、特徴を識別するように構成される。ディープラーニング手法では、所与の特徴をあるタイプのアイテムとして分類する精度が段々と高まっていくように、ニューラルネットワークを用いて学習する。具体的には、ある特徴を分類するごとに、その特徴をあるタイプのアイテムとしてカテゴライズするために用いることが可能なベクトルを生成する。アイテムの例として、ソファ、チェア、ランプ、植物、または所与の写真に記録された他のオブジェクトのような、現実世界のアイテムが含まれる。ベクトルは、そのアイテムに関する分類インデックス(例えば、アレイであって、アレイの各位置は、あるディメンション(dimension)に対応する)としての役目を果たし、これにより、特徴の大きな複数のセットを機械解析可能な方法でカテゴライズすることが可能となる。分類からの出力は、所与の特徴を「ソファ」として決定的に分類するものでなくてよく、所与の特徴がソファである可能性を出力するものであってよい。
【0021】
オペレーション325で、メモリにロードされた画像における各特徴について分類インデックスを生成した後に、分類エンジン220は、オペレーション320で、次の画像をメモリにロードして、新たにロードされた写真における特徴について分類を実行する。分類エンジン220は、セットのすべての画像におけるすべての特徴について分類インデックス(例えば、ディープラーニングによって生成されるベクトル)の生成を終えるまで、オペレーション320と325の間でループする。いくつかの実施形態において、オペレーション330で、それらの分類インデックスを、分類インデックスデータセットとして、データベース126に保存する。分類インデックスデータセットのエントリ(例えば、行(row))は、アイテムまたは製品の識別子(例えば、タイトル、シリアル、SKU)と、それに対応する分類インデックスと、そのアイテムが表示されている画像のリストと、を含む。特徴の検出および分類の後に続いて、審美的検索システム150は、図4を参照してさらに詳細に説明する結果生成プロセス(例えば、オペレーション405)に進んでよい。
【0022】
図3Aは、特徴の検出と分類を、2つの順次ループプロセス(例えば、特徴検出のための第1のループと、特徴分類のための第2のループ)として表示しているが、同じ結果を得るために、図3Aのオペレーションを異なる態様で順序付けることが可能であることは理解されるであろう。例えば、写真をロードして、次に特徴検出を実行し、次に特徴分類を実行し、続いて次の写真をロードする、というように続く、入れ子ループ(nested loop)を実現することができる。
【0023】
いくつかの例示的な実施形態では、検出エンジン215は、画像特徴として表示されたアイテム群(例えば、特徴)を検出するように構成される。画像特徴は、表示されたアイテムの形状、エッジ、点、または他の表示属性を記述する情報の集まりである。分類エンジン220は、ディープラーニング型人工ニューラルネットワークを適用することで、アイテム群を、それらの検出された特徴に基づいてプログラム的に分類するように構成することができる。人工ニューラルネットワークは、学習データセットで学習させることが可能であり、これにより、出力データを正確に生成するようにニューラルネットワークをチューニングする。人工ニューラルネットワークを学習させることで、新たに受け取った特徴を識別するとともに、それらの特徴を受け取ったときに分類するために使用されるモデルを構築する。具体的には、図3Bおよび3Cを参照して以下でさらに詳細に解説するように、検出エンジン215を画像群で学習させることで、検出モデルを構築し、同じく分類エンジン220を画像群で学習させることで、分類モデルを構築する。
【0024】
図3Bは、いくつかの例示的な実施形態により、画像群の中の特徴をより正確に検出するために、検出エンジン215を画像群で学習させるための方法350を示している。上述のように、ROIは、特徴に外接するバウンダリボックスとして実現することができる。しかしながら、バウンダリボックス内のアイテムは、類似の形状または特性(例えば、カラー)を有している場合があり、その結果、ノイズの多い特徴検出となる可能性がある。例えば、花瓶と吊りランプは、どちらも球形に似ている場合があり、従って、両方とも、所与のROI内で2次元的に円形ものとして記述することができる。ところが、花瓶と吊りランプは、異なる状況で使用される明らかに異なるアイテムである。表示されているアイテムの周りの要素によって、さらなる特徴検出エラーが生じる可能性がある。例えば、タイル壁の前にチェアが表示されている場合に、検出エンジン215は、それらのタイルのタイル境目をチェアの脚の一部と誤って特定する場合がある。
【0025】
これらの問題に対処するために、オペレーション353で、検出エンジン215は、画像群を入力として受け取って、バウンダリボックスで囲まれた領域(例えば、ROI)において初期特徴検出を実行する。オペレーション355において、分類エンジン220は、オペレーション353で検出された特徴を分類することで、マージ用の候補の初期特徴データセットを生成する。オペレーション360で、分類エンジン220は、円形ランプと円形花瓶のような視覚的に類似した特徴をマージすることで、自己視覚的識別可能カテゴリデータセット(SVDC : Self Visually Distinguishable Categories dataset)を生成する。オペレーション365で、検出エンジン215をSVDCで学習させることで、検出モデルを構築する。
【0026】
検出エンジン215をSVDCに基づく検出モデルで学習させた後に、図3Aで解説したようにオペレーションは進行する。例えば、図3Bに示すように、オペレーション310で、検出エンジン215は、処理用のアイテムを特定し、オペレーション315で、検出エンジン215は、そのアイテムに処理を適用する。円形特徴が吊りランプであった場合には、それは一般的にランプの頂部から天井に延びるコードを有し、検出エンジン215は、より容易に、その特徴の一部としてコードの画素を含めることになる。
【0027】
いくつかの例示的な実施形態では、特徴をより正確に分類するために、図3Cに方法370で示すように、分類エンジン220を学習させることで、分類モデルを構築する。具体的には、いくつかの例示的な実施形態により、オペレーション375で、アイテム画像群(例えば、背景のないアイテムの画像群)を、学習データとして分類エンジン220に入力する。オペレーション380において、それらのアイテム画像で分類エンジン220を学習させて、分類モデルを構築する。分類モデルを構築した後に、本方法は、図3Aを参照して上述したように、オペレーション320および325に戻る。
【0028】
図4は、いくつかの例示的な実施形態により、類似性に基づくリストを作成するための方法400を示している。オペレーション410で、インタフェースエンジン210は、クライアントデバイス110で表示された画像内の特徴の選択を受け取る。上述のように、各特徴は、表示されているアイテム(例えば、ソファ)に対応しており、これは分類インデックスを有する。オペレーション415で、類似検索エンジン250は、分類データセットにアクセスして、選択されたアイテム(例えば、選択された特徴に対応するアイテム)の分類インデックスに最も近い分類インデックス群を特定し、さらに、最も近いマッチングアイテムを表示している画像群を特定する。最も近いマッチングアイテム(matching item)を表示している画像群は、画像群のマッチングした部分として指定される。オペレーション420で、類似検索エンジン250は、グルーピングパラメータを特定する。グルーピングパラメータは、それらの画像をさらに限定するために用いることができる属性を指定する。例えば、グルーピングパラメータは、同じインテリアデザイナからの画像のみを結果に含めるべきであることを指定する場合がある。グルーピングパラメータについてのさらなる詳細は、以下で図5~7を参照して解説する。
【0029】
オペレーション425で、類似検索エンジン250は、最も近いマッチングアイテム(例えば、最も近いマッチング分類インデックス)を画像が有するかどうかに基づいて、さらには画像がグルーピングパラメータを満足するかどうかに基づいて、リスト表示する検索結果に含めるべき画像群を決定する。オペレーション430において、リスティングエンジン230は、オペレーション425で決定された検索結果を用いてリストを作成する。オペレーション435で、リスティングエンジン230は、作成したリストをクライアントデバイス110で表示するために送信する。
【0030】
図5は、ユーザアクションデータに基づいて、類似性に基づく検索結果を生成する方法500のフロー図である。いくつかの例示的な実施形態では、ユーザ(例えば、ユーザ106)は、アプリケーションサーバ140上でユーザプロファイルを作成することが可能である。ユーザプロファイルは、後で閲覧するための画像群からなる画像ギャラリを維持する機能を有して構成される。ユーザアクションデータは、ユーザがアプリケーションサーバ140上の画像を閲覧して回ることによって生成されるインタラクションデータである。ユーザアクションデータの例として、リンク(例えば、画像リンク)のクリック、ページ閲覧、ブックマーク、お気に入りとしてリンクを登録(例えば、ソーシャルメディアプラットフォームでの「いいね」)、および画像保存(例えば、ユーザによる自身のギャラリまたはプロファイルへの画像の保存の発生)が含まれる。図5の方法500は、最も近いとランク付けされたアイテムを含む人気画像結果を返すためのプログラム的アプローチを示している。図5の方法500は、(オペレーション520および525における)グルーピングパラメータがユーザアクションデータとして規定されること以外は、図4の方法400と同様である。
【0031】
オペレーション510で、インタフェースエンジン210は、クライアントデバイス110で表示された画像内の特徴の選択を受け取る。オペレーション515で、分類エンジン220は、選択された特徴に関する分類インデックスを特定して、その選択された分類インデックスに最も近い分類インデックス群を特定し、それらの最も近いマッチング分類インデックスを有するアイテムを含む画像群を特定する。オペレーション520で、ユーザアクションエンジン240は、それらの画像の各々についてのユーザアクションデータ(例えば、クリック、保存)を特定して、ユーザインタラクションが最多(例えば、クリックが最多、ギャラリへの保存が最多)である画像に基づいて、それらの画像をランク付けする。オペレーション525で、類似検索エンジン250は、ユーザアクションデータに基づいて、さらには画像が最も近いマッチングアイテム(例えば、最も近いマッチング分類インデックス)を有するかどうかに基づいて、結果画像として返すための画像群を決定する。例えば、いくつかの例示的な実施形態では、類似検索エンジン250は、受け取った特徴(例えば、オペレーション510で選択された特徴)に最も類似した特徴を有する画像群を、それらの最も近いマッチング分類インデックスに基づいて、最初に決定することができる。最も近いマッチング特徴を有するそれらの画像から、類似検索エンジン250は、さらに、上位マッチングセット(例えば、最も類似した特徴を有する上位10件の画像)を選択することができる。類似検索エンジン250は、上位マッチングセットのうちでユーザのお気に入りでもあるものを特定するために、ユーザアクションデータランキングにアクセスすることができる。例えば、上位10件のマッチング画像のうち、8番目の画像は、8番目に近いマッチング特徴しか有していないかもしれないが、ユーザアクションデータによれば、ユーザの画像ギャラリに最も多く保存された画像である場合がある。このため、類似検索エンジン250は、ユーザアクションデータランキングに従って、(例えば、8番目に近いマッチング画像は、ユーザ間で最も人気があるので第1位として、多い順、降順で)上位10件のマッチング画像を並べ替えることができる。さらに、いくつかの例示的な実施形態では、類似検索エンジン250は、上位10件の画像からユーザアクションデータに従って(例えば、多い順で)並べ替えた画像を、上位4件に減らすことができる。最も近いマッチング特徴を有するとともにユーザアクションデータに従って再ランク付けされたそれら4件の画像を、(オペレーション525で)結果画像群として返す。
【0032】
続いて、オペレーション530で、リスティングエンジン230は、結果画像群を含む表示用リストを作成する。オペレーション535で、リスティングエンジン230は、作成したリストを表示用のクライアントデバイスに送信する。
【0033】
図6は、美的グルーピングパラメータ(aesthetic grouping parameter)に基づいて、類似性に基づく検索結果を生成する方法600のフロー図である。上述のように、特徴検出および特徴分類のために受け取られる画像群は、美的アレンジの画像群であり得る。例えば、インテリアデザイナは、個々に選択された家具群、特定の壁および床スタイル、特定の照明をアレンジして、審美的に好ましい結果を得ることがあり、それは写真に収められる。このような審美性は、画像を閲覧するユーザにとって重要である。従来、所与の画像の美的スタイルで、自宅用のアイテムを探そうとしているユーザは、写真に記録された美的デザインアレンジの美的スタイルにマッチングするアイテムを見つけようとして、アイテムを次々と取捨選択することを余儀なくされる。画像を取捨選択するプロセスは、時間を要するとともに、ユーザにとって不便である。さらに、ユーザは、自分の目の前に物理的に存在するのではなくインターネットを介して閲覧可能な画像に簡略化されたアイテムの選択における自身の判断に自信を持てないことがある。また、デザイン経験がほとんどないユーザは、自身の美的能力に満足していないか、または自信がない場合があり、このため、オンラインで画像を閲覧することは諦めて、代わりにショールームを訪れるなどすることがある。美的アレンジを収めた画像の各々は、その美的アレンジの美的スタイルを記述するメタデータを有することができる。例えば、物が少ないホワイトキッチンの画像は、これに「ミニマリスト」とラベル付けするスタイルパラメータを有することができ、またはフレスコ画が描かれたロビーの画像は、これに「地中海」とラベル付けするスタイルパラメータを有することができる。図6は、選択されたアイテム(例えば、あるアイテムに対応する選択された特徴)の美的スタイルにマッチングする画像結果を返すための方法600を示している。
【0034】
オペレーション610で、インタフェースエンジン210は、クライアントデバイス110で表示された画像内の特徴の選択を受け取る。オペレーション615で、分類エンジン220は、選択された特徴に関する分類インデックスを特定して、その選択された分類インデックスに最も近い分類インデックスを有するアイテム群を特定し、最も近いマッチング分類インデックスを有するアイテムを含む画像群を特定する。オペレーション620で、類似検索エンジン250は、最も近いマッチングアイテムを有する画像群に共通の美的パラメータを特定する。例えば、オペレーション620において、類似検索エンジン250は、最も多い共通の美的パラメータ(例えば、写真のスタイルを記述するパラメータ)は「ミニマリスト」であると特定することがある。オペレーション625で、類似検索エンジン250は、上述のように、どの画像が最も近いマッチングアイテムを有するかに基づいて、さらには、どの画像が最も多い共通のスタイルを有するか(例えば、どの結果画像が最も多い共通の美的パラメータを有するか)に基づいて、結果画像群を決定する。最も近いマッチングアイテムを有するとともに最も多い共通の美的パラメータ(例えば、スタイル)の画像群を、結果画像として類似検索エンジン250によって返すことができる。いくつかの例示的な実施形態では、それらの画像は、図5で説明したようなユーザの人気度に従って、さらに減らされる。すなわち、最も近いマッチングアイテムを有するとともに最も多い共通のスタイルの画像群から、ユーザの人気度に従って(例えば、ユーザアクションデータ、閲覧回数、およびギャラリへの保存、に従って)、上位5件を結果画像として返す。
【0035】
さらに、いくつかの例示的な実施形態では、最も多い共通のスタイルを用いる代わりに、特徴(例えば、オペレーション610で受け取った特徴)が選択された画像のスタイルを用いて、上記アプローチと同様に美的パラメータを設定する。例えば、オペレーション610で、ユーザは、ミニマリスト・スタイルを有する画像においてランプを選択する。オペレーション620で、同じ美的パラメータ「ミニマリスト」を有する画像のみを、結果として返すことができる。オペレーション630で、リスティングエンジン230は、それらの結果画像を用いて、表示用リストを作成する。オペレーション635で、リスティングエンジン230は、そのリストを、クライアントデバイス110で表示するためにユーザ106に送信する。
【0036】
図7は、外部グルーピングパラメータ(external grouping parameter)に基づいて、類似性に基づく検索結果を生成する方法700のフロー図を示している。外部グルーピングパラメータとは、郵便番号(例えば、地元で入手できるアイテム、地元建築業者によって建築可能なアイテム、もしくは他の地理的位置依存パラメータ、に関する結果のみを返す)またはデザイナ集(例えば、特定のデザイナからの画像のコレクション)のような外部因子に基づいて画像を記述するグルーピングパラメータである。例えば、ユーザは、あるアイテムを選択して、ある特定の有名デザイナにマッチングする検索結果のみが返されることを希望する場合がある。
【0037】
オペレーション710で、インタフェースエンジン210は、ある画像内の特徴の選択を受け取る(例えば、ユーザ106は、ある画像を閲覧しており、その写真の中のランプを選択する)。オペレーション715で、分類エンジン220は、選択された特徴に関する分類インデックスを特定して、その選択された分類インデックスに最も近い分類インデックスを有するアイテム群を特定し、最も近いマッチング分類インデックスを有するアイテムを含む画像群を特定する。オペレーション720で、類似検索エンジン250は、最も近いマッチングアイテムを有する画像群から、さらに、指定された外部グルーピングパラメータにマッチングする画像を特定する。例えば、ユーザは、オペレーション710で、キッチンキャビネットを選択するとともに、地元建築業者によって建築可能なキャビネットを収めた画像のみが返されるように郵便番号グルーピングパラメータを指定している場合がある。さらなる例として、外部グルーピングパラメータは、ある特定のデザイナからの画像のみが返されるべきであることを指定するデザイナパラメータである場合がある。
【0038】
オペレーション725で、類似検索エンジン250は、どの画像が最も近いマッチングアイテムを有するかに基づいて、さらには、どの画像が1つ以上の指定された外部パラメータにマッチングするかに基づいて、結果画像群を決定する。また、上述のように、類似検索エンジン250は、返される画像を、ユーザアクションデータに基づいて、例えばどの画像がユーザ間で最も人気があるのかに基づいて、さらに限定またはソートすることがある。オペレーション730で、リスティングエンジン230は、それらの結果画像を用いて、表示用リストを作成する。オペレーション735で、リスティングエンジン230は、そのリストを、クライアントデバイス110で表示するためにユーザ106に送信する。
【0039】
図8Aは、いくつかの例示的な実施形態により、審美的検索システム150によって生成されるユーザインタフェース805(例えば、ディスプレイ装置のユーザインタフェース)を表示するクライアントデバイス800の一例を示している。図示の例では、ユーザインタフェース805は、統合審美的検索システム150による審美的検索機能を有するウェブサイトからのウェブページとして構成されている。図示のように、スツール、花瓶、ランプなどのアイテムを含むキッチンの美的アレンジを示すデザイナ画像810が表示される。これらのスツール、花瓶、ランプは、デザイナ画像810の特徴に相当するアイテム(例えば、物理的アイテム)の例である。デザイナ画像810は、デザイナ写真の個別例であり、いくつかの例示的な実施形態において、アプリケーションサーバ140は、様々なデザイナからの何百万ものデザイナ画像を管理するとともに1つ以上のデザイナ画像にそれぞれ表示され得るアイテム(例えば、ランプ、スツール、ソファ)をインベントリとしてさらに管理するウェブプラットフォームの一部であることは理解されるであろう。
【0040】
ユーザインタフェース805は、さらに画像メタデータ815を含み、これは、例えば、デザイナ画像810のタイトル例である「モダンキッチン」を含んでいる。画像メタデータ815は、さらに、部屋属性である「キッチン」と、スタイル属性である「ミニマリズム」と、デザイナ属性である「LeoFiodori」(例えば、デザイナ画像810の中のアイテム群の美的選択およびアレンジを担当するデザイナの例)と、カラーモチーフ属性である「白」と、を含む。画像メタデータ815のデータアイテムまたは属性はいずれも、図3A~7を参照して上述するとともに以下の図面を参照してさらに詳細に解説する方法において、グルーピングパラメータとして機能し得る。
【0041】
ユーザインタフェース805は、さらに、1つ以上のユーザインタフェース要素を有するパラメータメニュー820を含む。それらのユーザインタフェース要素には、あくまでも例として、ユーザによる情報の入力、およびフィルタまたはさらなるグルーピングパラメータの指定を可能とする、テキスト入力フィールド、ドロップダウンメニュー、チェックボックスなどが含まれる。例えば、パラメータメニュー820は、図7を参照して解説したようなグルーピングパラメータとして使用することができる郵便番号をユーザ106が入力するためのテキストフィールドを含むことができる。
【0042】
図8Bは、基本となる特徴を囲むバウンダリとして、関心領域825A~Eの例を示している。例えば、関心領域825Aと825Bは両方とも、ランプについてバウンダリを設定しており、関心領域825Cは、花瓶の特徴についてバウンダリを設定しており、関心領域825Dと825Eは、基本となるスツールの特徴についてバウンダリを設定している。上述のように、関心領域825A~Eは、機械学習によるか、または(例えば、特徴の上でROIをドラッグする)ユーザタグによって、検出することが可能である。関心領域825A~Eは、上述のように、特徴を分類して分類インデックスを生成するために使用されることがある。
【0043】
図8Cは、基本となるアイテムについて、さらなるオプションでの検索を指示するために、ユーザが画像の一部を選択する例を示している。例えば、図8Cに示すように、ユーザ106は、クライアントデバイス800のタッチスクリーンを用いて、関心領域825Aにおけるランプを選択したかもしれない。クライアントデバイス800は、関心領域825A、対応する数値、またはアイテムの選択を、審美的検索システム150に送信する。審美的検索システム150は、画像の選択された部分に関する分類インデックス(例えば、関心領域825Aにおけるランプアイテムの分類インデックス)を特定する。さらに、審美的検索システム150は、続いて、分類インデックスデータセット内で、関心領域825Aのランプの分類インデックスに最も近くマッチングするアイテム群を特定する。次に、審美的検索システム150は、それらの最も近くマッチングしたアイテムが表示されている画像群を特定する。画面スペースが限られているという理由で、またはユーザの注意をそらさないために、図4~7を参照して上述したグルーピングパラメータアプローチを用いて、マッチングアイテムを有する画像の小さな部分(例えば、結果画像群)を決定する。図8Dは、説明例を示している。
【0044】
図8Dでは、審美的検索システム150は、選択されたランプアイテムの分類インデックス(例えば、関心領域825Aのランプアイテムの分類インデックス)に近い分類インデックスを有するものとして、6つのランプを特定すると仮定する。この例を続けると、審美的検索システム150は、それら6つのランプが、427件のデザイナ画像に表示されていることを特定する。続いて、審美的検索システム150は、(例えば、図5のユーザアクション・オペレーションによって)427件の画像から、ユーザらがそれぞれ自身の画像ギャラリに最も多く保存した画像を特定する。次に、リスティングエンジン230は、上位4件の画像を結果画像835A~Dとして含めてリスト830を生成し、そのリスト830をクライアントデバイス800において表示する。いくつかの実施形態では、画像群を特定した後に、それらの画像自体ではなく、それらの画像に表示されているアイテム群が、結果画像835A~Dとして表示される。
【0045】
ユーザ106は、結果画像835A~Dのうちの1つを選択すると、いくつかの例示的な実施形態により、選択された画像に関する詳細と、写真に表示されたアイテムを購入するためのオプションのレジモジュールと共に、選択された写真を表示するウェブページに誘導される。よって、ユーザは、このようにして、関連する検索結果をより効率的に閲覧して回るために、画像の中の特徴に反映されたデザイナの専門知識を活用することが可能である。
【0046】
いくつかの例示的な実施形態では、審美的検索システム150は、画像内のアイテムの選択を受け取って、その選択されたアイテムに補足的なアイテム群を特定するとともに、さらに、それらの補足アイテムを示す結果をユーザに返すことができる。補足アイテムとは、互いにカテゴリが異なるが、互いに連携して機能するように構成されたアイテムであり、一般に、合わせて閲覧もしくは合わせて購入されるか、または互いに協調して機能する。デザイン業界において、アイテムを補足的なものとして関連付けることは、特に、例えばそれらのアイテムが互いに似ていない場合に、難題となる可能性がある。例えば、白をカラーモチーフとして、例えば、白いチェア、白いテーブル、白いシンクを備えるミニマリストの部屋は、それでも、金色のような美的に派手な対比色で、ギザギザの縁を有する奇妙な形の吊りランプを備えることがある。白をカラーモチーフとするアイテムと、金色のアイテムは、互いに似ていないものの、スタイルの専門知識があるデザイナは、それらをデザイナ画像において相互に近接させて配置することがよくあるので、それらは互いに補足的である。通常、補足アイテムの特定は、ユーザトランザクションデータの履歴解析に基づいて行われる。しかしながら、それらのデザイナアイテムが高価である場合、または、それらのデザイナアイテムが合わせて配置されているスタイルが極めて新しい場合には、履歴解析を実行するための十分な履歴データがない場合がある。その場合、デザイナが作成した画像のモチーフにアイテムをマッチングさせようとして、数百または数千にものぼるアイテムを取捨選択することが、ユーザ自身の判断に委ねられる。図9A~11は、正確なプログラム的方法で、明白ではない補足アイテム(例えば、白いチェアと金色のランプ)を効率的に探し出すためのアプローチを示している。
【0047】
方法900を示す図9Aを参照して、審美的検索システム150が学習済み検出モデルおよび学習済み分類モデルを有するように、図3Aのオペレーション330の後にオペレーション910~930を実行してよい。オペレーション910で、インタフェースエンジン210は、特徴の選択(例えば、基本となる特徴に外接するROIの選択)を受け取る。オペレーション915で、補足検索エンジン260は、(例えば、データベースエンジン265を介して、特徴をアイテムに関連付ける特徴データにアクセスして)選択された特徴に対応するアイテムを特定する。オペレーション920で、補足検索エンジン260は、そのアイテムのクラスを特定するために、(例えば、データベースエンジン265を介して)データベース126内のアイテムデータにアクセスする。アイテムクラスは、カラー(例えば、白いランプ、白いチェア)、タイプ(例えば、チェア、シンク、枕)、またはアイテムを記述する他の属性であり得る。いくつかの例示的な実施形態では、所与のアイテムを記述するために2つ以上のアイテムクラスが用いられ、例えば、金色のランプは、金色が第1のクラスのカラーであり、ランプが第2のクラスのアイテムタイプである。オペレーション925で、補足検索エンジン260は、選択されたアイテムと一緒に最も多く表示されているアイテム群を特定し、このとき、一緒に表示されることは、共起(co-occurrence)であると考えられる。具体的には、オペレーション925で、補足検索エンジン260は、選択されたアイテムと最も多く共起しているクラス外アイテム群を特定し、このとき、クラス外とは、選択されたアイテムのクラスパラメータとは異なるクラスパラメータを有するアイテムを指す。例えば、カラーとアイテムタイプが検討対象の関連クラスであると仮定して、選択されたアイテムが白いランプであって、それと最も多く共起している2つのアイテムが白い花瓶と金色の花瓶である場合に、金色は、選択されたアイテムの白のカラークラス外であるため、オペレーション925では、白い花瓶ではなく、金色の花瓶が選択されることになる。
【0048】
オペレーション930で、リスティングエンジン230は、選択されたアイテムと最も多く共起しているクラス外アイテム群を表示するように構成されたリストを作成する。オペレーション935で、リスティングエンジン230は、作成したリストを、クライアントデバイス110の表示画面でユーザ106に表示するために送信する。
【0049】
図9Bは、ユーザ提供画像に対して補足アイテムを選択する方法950のフロー図を示している。ユーザ提供画像とは、ユーザによって審美的検索システム150にアップロードされるか、またはその他の方法で提供される画像である。ユーザが画像の特徴を選択することによってアイテムを選択する図9Aのアプローチとは異なり、図9Bのアプローチでは、特徴の解析および分類を受けていない製品の画像から、補足アイテムを見つけることについて記載する。例えば、ユーザ106は、自身のリビングルームにおけるチェアの写真画像を審美的検索システム150にアップロードすることがある。
【0050】
オペレーション955で、インタフェースエンジン210は、ユーザ106からクライアントデバイス110を介して画像を受け取る。オペレーション960で、検出エンジン215は、図3Aおよび3Bを参照して上述したように、ユーザ画像において、SVDCに基づく特徴検出を実行する。オペレーション965で、分類エンジン220は、検出エンジン215から特徴データを受け取って、図3Aおよび3Cを参照して上述したように、ユーザ画像内のアイテムについて分類を実行することで、分類インデックスを生成する。オペレーション970で、補足検索エンジン260は、ユーザ提供画像における画像の分類インデックスに最も近い分類インデックスを有する既知のアイテム群(例えば、インベントリアイテム群)を特定する。いくつかの例示的な実施形態では、既知のアイテム群とは、分類モデルを構築するために使用されるアイテム群、または既存の分類インデックスを有するアイテム群である。ユーザ提供画像に表示されているアイテムについて分類インデックスを生成したら、続いて、本プロセスは、いくつかの例示的な実施形態により、オペレーション920に進み、そこで、そのアイテムのクラス(例えば、カラー、タイプ)を特定して、クラス外アイテム群を決定するとともに、それらを用いてユーザに補足アイテム結果を提供することができる。いくつかの例示的な実施形態では、類似検索エンジン250を用いて、上述のように、類似のコンテキストを有する画像群(例えば、類似の分類インデックスを有するアイテムを表示している画像群)を特定する。
【0051】
図10Aおよび10Bは、図9Aで説明した補足アイテム検索を実行するために使用される例示的なユーザインタフェース805を示している。図10Aを参照して、ユーザ106は、パラメータメニュー820から補足検索オプションを選択する。さらに、ユーザ106は、吊りランプアイテムを囲む関心領域825Aを選択する。この選択に応じて、補足検索エンジン260は、関心領域825Aと類似の分類インデックスを有するアイテム群を特定する。リスティングエンジン230は、図10Bに示すように、補足アイテム1000A~Dを表示するリスト1020を作成する。具体的には、補足アイテム1000Aは、選択されたランプのクラス外の花瓶(例えば、この花瓶は、異なるアイテムタイプクラスであるが、同じカラークラスであるかもしれない)についての結果であり、補足アイテム1000Bは、選択されたランプのクラス外のチェア(例えば、このチェアは、異なるアイテムタイプクラスである)についての結果であり、補足アイテム1000Cは、選択されたランプのクラス外のシンク(例えば、このシンクは、異なるアイテムタイプクラスである)についての結果であり、補足アイテム1000Dは、選択されたランプのクラス外のランプ(例えば、補足アイテム1000Dのランプは、同じアイテムクラスであるが、選択されたランプとは異なるカラーであるかもしれない)についての結果である。
【0052】
図11は、いくつかの例示的な実施形態による、以下で解説するコード例に対応する例示的なフロー図1100を示している。フロー図1100の各ブロックは、以下のコードにおける位置に対応する括弧内番号でラベル付けされている。例えば、[1]では、画像(例えば、デザイナ画像)が入力されて、変数として保存される。
::::::::::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
};
本明細書において、いくつかの実施形態は、ロジック、またはいくつかのコンポーネント、モジュール、もしくは機構を含むものとして記載されている。モジュールは、ソフトウェアモジュール(例えば、マシン可読媒体上に具現化されるコード)またはハードウェアモジュールのいずれかを構成し得る。「ハードウェアモジュール」は、いくつかのオペレーションを実行することが可能な有形ユニットであり、何らかの物理的な形で構成または配置することが可能である。いくつかの例示的な実施形態では、1つ以上のコンピュータシステム(例えば、スタンドアロンコンピュータシステム、クライアントコンピュータシステム、もしくはサーバコンピュータシステム)、またはコンピュータシステムの1つ以上のハードウェアモジュール(例えば、プロセッサもしくはプロセッサ群)を、本明細書に記載のいくつかのオペレーションを実行するように動作するハードウェアモジュールとして、ソフトウェア(例えば、アプリケーションもしくはアプリケーション部分)によって構成設定することができる。
【0053】
いくつかの実施形態において、ハードウェアモジュールは、機械的に、電子的に、またはそれらの任意の適切な組み合わせで実装することができる。例えば、ハードウェアモジュールは、いくつかのオペレーションを実行するように永続的に構成された専用回路またはロジックを含み得る。例えば、ハードウェアモジュールは、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)のような専用プロセッサとすることができる。また、ハードウェアモジュールは、いくつかのオペレーションを実行するようにソフトウェアによって一時的に構成されたプログラマブルロジックまたは回路を含んでもよい。例えば、ハードウェアモジュールは、汎用プロセッサまたは他のプログラマブルプロセッサによって実行されるソフトウェアを含み得る。ハードウェアモジュールは、そのようなソフトウェアによって構成されると、構成された機能を実行するように独自に調整された特有のマシン(またはマシンの特有のコンポーネント)となり、もはや汎用プロセッサではなくなる。なお、ハードウェアモジュールを機械的に実装するか、永続的に構成された専用回路で実装するか、または一時的に構成された(例えば、ソフトウェアで構成設定された)回路で実装するかの判断は、コストおよび時間を考慮した決定によって可能であることは理解されるであろう。
【0054】
よって、「ハードウェアモジュール」という表現は、何らかの形で動作するように、または本明細書に記載のいくつかのオペレーションを実行するように、物理的に構成されているか、永続的に構成(例えば、ハードワイヤード)されているか、または一時的に構成(例えば、プログラム)されている有形エンティティを包含するものと理解されるべきである。本明細書で使用する場合の「ハードウェア実装モジュール」とは、ハードウェアモジュールを指す。ハードウェアモジュールが一時的に構成(例えば、プログラム)される実施形態を考えた場合、それらのハードウェアモジュールの各々は、いずれか1つの時間インスタンスで構成またはインスタンス化される必要はない。例えば、あるハードウェアモジュールが、専用プロセッサとなるようにソフトウェアによって構成される汎用プロセッサを含む場合、その汎用プロセッサは、その時々でそれぞれ(例えば、異なるハードウェアモジュールを構成する)異なる専用プロセッサとして構成されてよい。このように、ソフトウェアによって、ある特定のプロセッサまたはプロセッサ群を、例えば、ある1つの時間インスタンスでは、ある特定のハードウェアモジュールとなり、異なる時間インスタンスでは異なるハードウェアモジュールとなるように、構成設定する。
【0055】
ハードウェアモジュールは、他のハードウェアモジュールに情報を提供し、他のハードウェアモジュールから情報を受け取ることができる。よって、説明されたハードウェアモジュールは、通信可能に結合されていると考えることができる。複数のハードウェアモジュールが同時に存在する場合には、それらのハードウェアモジュールの2つ以上の間で、(例えば、適切な回路およびバスを介した)信号伝送によって通信を実現することができる。複数のハードウェアモジュールが異なる時間に構成またはインスタンス化される実施形態では、そのようなハードウェアモジュール間の通信は、例えば、それら複数のハードウェアモジュールがアクセスできるメモリ構造での情報の保存および取得によって実現することができる。例えば、ある1つのハードウェアモジュールは、あるオペレーションを実行して、そのオペレーションの出力を、通信可能に結合されたメモリデバイスに保存することができる。そして、別のハードウェアモジュールが後ほど、そのメモリデバイスにアクセスして、保存されている出力を取得して処理することができる。また、ハードウェアモジュールは、入力装置または出力装置との通信を開始することも可能であり、リソース(例えば、情報の集まり)上で動作することが可能である。
【0056】
本明細書に記載の例示的な方法の各種オペレーションは、関連オペレーションを実行するように(例えば、ソフトウェアによって)一時的に構成または永続的に構成された1つ以上のプロセッサによって、少なくとも部分的に実行することができる。一時的に構成されるか、または永続的に構成されるかに関わりなく、そのようなプロセッサは、本明細書に記載の1つ以上のオペレーションまたは機能を実行するように動作するプロセッサ実装モジュールを構成する。本明細書で使用する場合の「プロセッサ実装モジュール」とは、1つ以上のプロセッサを用いて実装されるハードウェアモジュールを指す。
【0057】
同様に、本明細書に記載の方法は、ハードウェアの一例である特定のプロセッサまたはプロセッサ群を用いて、少なくとも部分的にプロセッサ実装が可能である。例えば、ある方法のオペレーションの少なくとも一部は、1つ以上のプロセッサまたはプロセッサ実装モジュールによって実行することができる。さらに、その1つ以上のプロセッサは、「クラウドコンピューティング」環境における関連オペレーションの実行、または「サービス型ソフトウェア」(SaaS : Software as a Service)としての関連オペレーションの実行をサポートするように動作することもできる。例えば、オペレーションの少なくとも一部は、それらのオペレーションがネットワーク(例えば、インタネット)および1つ以上の適切なインタフェース(例えば、API)を介してアクセス可能な(プロセッサ群を含むマシンの例としての)コンピュータ群によって実行することができる。
【0058】
それらのオペレーションのうちのいくつかの実行を、そのプロセッサ群の間に分散させてよく、それらを単一のマシン内に常駐させるだけではなく、いくつかのマシン間にデプロイする(deployed)。いくつかの例示的な実施形態では、それらのプロセッサまたはプロセッサ実装モジュールを、1つの地理的場所(例えば、家庭環境内、オフィス環境内、またはサーバファーム内)に配置することができる。他の例示的な実施形態では、それらのプロセッサまたはプロセッサ実装モジュールを、いくつかの地理的場所に分散させる。
【0059】
図12は、いくつかの例示的な実施形態により、マシン可読媒体(例えば、マシン可読記憶媒体)から命令を読み出して、本明細書で解説された方法のいずれか1つ以上を実行することが可能なマシン1200の構成要素を示すブロック図である。具体的には、図12は、例示的なコンピュータシステムの形態でマシン1200の概略図を示しており、この中で、本明細書で解説された方法のいずれか1つ以上をマシン1200に実施させるための命令1216(例えば、ソフトウェア、プログラム、アプリケーション、アプレット、アプリ、もしくは他の実行可能コード)を、実行することができる。例えば、命令1216によって、図3A~7、9A、9B、11のフロー図をマシン1200に実行させることができる。追加的または代替的に、命令1216によって、図2のインタフェースエンジン210、検出エンジン215、分類エンジン220、リスティングエンジン230、ユーザアクションエンジン240、類似検索エンジン250、補足検索エンジン260、およびデータベースエンジン265などを実装することができる。未プログラムの汎用マシンを、命令1216によって、記載および図示された機能を記載の形態で実行するようにプログラムされた特定のマシンに変換する。代替的な実施形態では、マシン1200は、スタンドアロン装置として動作するか、もしくは他のマシンに結合(例えば、ネットワーク接続)されることができる。ネットワーク・デプロイメントでは、マシン1200は、サーバ・クライアントネットワーク環境におけるサーバマシンもしくはクライアントマシンとして、またはピアツーピア(もしくは、分散)ネットワーク環境におけるピアマシンとして、動作することができる。マシン1200として、限定するものではないが、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC)、タブレットコンピュータ、ラップトップコンピュータ、ネットブック、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、エンタテイメントメディアシステム、セルラ電話機、スマートフォン、モバイルデバイス、ウェアラブルデバイス(例えば、スマートウォッチ)、スマートホーム機器(例えば、スマートアプライアンス)、その他のスマートデバイス、ウェブアプライアンス、ネットワークルータ、ネットワークスイッチ、ネットワークブリッジ、または命令1216を順次もしくは他の様式で実行することが可能な任意のマシンを含むことができ、それらの命令は、そのマシン1200で実行されるべきアクションを規定するものである。また、マシン1200は1つしか図示されていないが、「マシン(machine)」という用語は、本明細書で解説された方法のいずれか1つ以上を実行するための命令1216を、個々にもしくは連携して実行するマシン群1200も含むものと解釈されるべきである。
【0060】
マシン1200は、プロセッサ群1210と、メモリ/ストレージ1230と、I/Oコンポーネント群1250と、を備えることができ、これらは、バス1202を介するなどして相互に通信するように構成することができる。例示的な実施形態では、プロセッサ群1210(例えば、中央処理装置(CPU)、縮小命令セットコンピューティング(RISC : Reduced Instruction Set Computing)プロセッサ、複雑命令セットコンピューティング(CISC : Complex Instruction Set Computing)プロセッサ、グラフィックス処理装置(GPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、無線周波数集積回路(RFIC)、他のプロセッサ、もしくはその任意の適切な組み合わせ)は、例えば、命令1216を実行し得るプロセッサ1212およびプロセッサ1214を含むことができる。「プロセッサ」という用語は、同時に命令を実行することが可能な2つ以上の独立なプロセッサ(「コア」と呼ばれることもある)を有し得るマルチコアプロセッサを含むものとする。なお、図12は、複数のプロセッサ1210を示しているが、マシン1200は、シングルコアを有する単一のプロセッサ、複数のコアを有する単一のプロセッサ(例えば、マルチコアプロセッサ)、シングルコアを有する複数のプロセッサ、複数のコアを有する複数のプロセッサ、またはその任意の組み合わせ、を備えることができる。
【0061】
メモリ/ストレージ1230は、メインメモリまたは他のメモリストレージのようなメモリ1232と、ストレージユニット1236と、を含むことができ、これらは両方とも、バス1202を介するなどしてプロセッサ群1210がアクセス可能である。ストレージユニット1236およびメモリ1232は、本明細書に記載の方法または機能のいずれか1つ以上を具現化する命令1216を格納する。また、命令1216は、その全体または一部を、マシン1200によるその実行中に、メモリ1232内、ストレージユニット1236内、プロセッサ群1210の少なくとも1つのプロセッサ内(例えば、そのプロセッサのキャッシュメモリ内)、またはその任意の適切な組み合わせに、常駐させることもできる。よって、メモリ1232、ストレージユニット1236、およびプロセッサ群1210のメモリは、マシン可読媒体の例である。
【0062】
本明細書で使用する場合の「マシン可読媒体」という用語は、命令およびデータを一時的または永続的に記憶することが可能なデバイスを意味し、限定するものではないが、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、バッファメモリ、フラッシュメモリ、光媒体、磁気媒体、キャッシュメモリ、他のタイプのストレージ(例えば、電気的消去可能プログラマブルリードオンリメモリ(EEPROM))、またはその任意の適切な組み合わせを含むことができる。「マシン可読媒体」という用語は、命令1216を記憶することが可能な単一の媒体もしくは複数の媒体(例えば、集中型もしくは分散型データベース、または関連付けられたキャッシュもしくはサーバ)を含むものと解釈されるべきである。また、「マシン可読媒体」という用語は、マシン(例えば、マシン1200)で実行するための命令(例えば、命令1216)を記憶することが可能な任意の媒体もしくは複数の媒体の組み合わせを含むものと解釈されるべきであり、それらの命令は、そのマシンの1つ以上のプロセッサ(例えば、プロセッサ群1210)で実行されることで、本明細書に記載の方法のいずれか1つ以上をマシンに実行させるものである。従って、「マシン可読媒体」とは、単一のストレージ装置もしくはデバイスを意味するとともに、複数のストレージ装置もしくはデバイスを含む「クラウドベース」のストレージシステムまたはストレージネットワークをも意味する。「マシン可読媒体」という用語は、信号そのものは除外する。
【0063】
I/Oコンポーネント群1250は、入力を受け取り、出力を提供し、出力を生成し、情報を送信し、情報を交換し、測定値を取得するなどのための多様なコンポーネントを含むことができる。特定のマシンに含まれる具体的なI/Oコンポーネント群1250は、マシンのタイプに依存する。例えば、携帯電話機のようなポータブルマシンは、タッチ入力装置または他のそのような入力機構を備える可能性が高いが、ヘッドレスサーバマシンは、そのようなタッチ入力装置を備えない可能性が高い。なお、I/Oコンポーネント群1250は、図12に示していない他の多くのコンポーネントを含み得ることは理解されるであろう。I/Oコンポーネント群1250は、単に以下での説明を簡単にするために、機能によってグループ分けされるが、このグループ分けは、限定するものでは決してない。いくつかの例示的な実施形態では、I/Oコンポーネント群1250は、出力コンポーネント1252と入力コンポーネント1254を含むことができる。出力コンポーネント1252は、視覚コンポーネント(例えば、プラズマディスプレイパネル(PDP)、発光ダイオード(LED)ディスプレイ、液晶ディスプレイ(LCD)、プロジェクタ、もしくはブラウン管(CRT)のようなディスプレイ)、音響コンポーネント(例えば、スピーカ)、触覚コンポーネント(例えば、振動モータ、抵抗機構)、その他の信号発生器などを含み得る。入力コンポーネント1254は、英数字入力コンポーネント(例えば、キーボード、英数字入力を受け取るように構成されたタッチスクリーン、光学キーボード、もしくは他の英数字入力コンポーネント)、ポイント式入力コンポーネント(例えば、マウス、タッチパッド、トラックボール、ジョイスティック、モーションセンサ、もしくは他のポインティング機器)、触覚入力コンポーネント(例えば、物理的ボタン、タッチまたはタッチジェスチャの位置および力を供給するタッチスクリーン、もしくは他の触覚入力コンポーネント)、音響入力コンポーネント(例えば、マイクロフォン)などを含み得る。
【0064】
さらなる例示的な実施形態では、I/Oコンポーネント群1250は、多様な他のコンポーネントの中でも特に、バイオメトリックコンポーネント1256、モーションコンポーネント1258、環境コンポーネント1260、または位置コンポーネント1262を含み得る。例えば、バイオメトリックコンポーネント1256は、表情(expressions)(例えば、手の表情、顔の表情、声の表情、身ぶり、もしくは目の動き)を検出するためのコンポーネント、生体信号(例えば、血圧、心拍数、体温、発汗、もしくは脳波)を測定するためのコンポーネント、個人を識別するためのコンポーネント(例えば、音声識別、網膜識別、顔識別、指紋識別、もしくは脳波による識別)などを含むことができる。モーションコンポーネント1258は、加速度センサコンポーネント(例えば、加速度計)、重力センサコンポーネント、回転センサコンポーネント(例えば、ジャイロスコープ)などを含むことができる。環境コンポーネント1260は、例えば、照度センサコンポーネント(例えば、光度計)、温度センサコンポーネント(例えば、周囲温度を検出する1つ以上の温度計)、湿度センサコンポーネント、圧力センサコンポーネント(例えば、気圧計)、音響センサコンポーネント(例えば、背景ノイズを検出する1つ以上のマイクロフォン)、近接センサコンポーネント(例えば、近くの物体を検出する赤外線センサ)、ガスセンサコンポーネント(例えば、機械嗅覚検出センサ、安全のために有害ガスの濃度を検出するガス検出センサ、もしくは大気中の汚染物質を測定するガス検出センサ)、または周囲の物理的環境に対応した指標、測定値、もしくは信号を提供し得る他のコンポーネントを含むことができる。位置コンポーネント1262は、位置センサコンポーネント(例えば、グローバルポジショニングシステム(GPS)受信機コンポーネント)、高度センサコンポーネント(例えば、高度計、もしくは高度を導出できる気圧を検出する気圧計)、方位センサコンポーネント(例えば、磁力計)などを含むことができる。
【0065】
通信は、多様な技術を用いて実現することができる。I/Oコンポーネント群1250は、マシン1200をネットワーク1280またはデバイス1270に、それぞれカップリング1282およびカップリング1272によって結合するように機能する通信コンポーネント群1264を含み得る。例えば、通信コンポーネント群1264は、ネットワークインタフェースコンポーネント、またはネットワーク1280にインタフェースする他の適切なデバイスを含む。さらなる例では、通信コンポーネント群1264は、有線通信コンポーネント、無線通信コンポーネント、セルラ通信コンポーネント、近距離無線通信(NFC : Near Field Communication)コンポーネント、BLUETOOTH(登録商標)コンポーネント(例えば、BLUETOOTH(登録商標)LowEnergy)、WI-FI(登録商標)コンポーネント、およびその他のモダリティで通信を提供する他の通信コンポーネントを含む。デバイス1270は、他のマシン、または多様な周辺機器(例えば、ユニバーサルシリアルバス(USB)によって結合される周辺機器)のいずれかであり得る。
【0066】
さらに、通信コンポーネント群1264は、識別子を検出することができるか、または識別子を検出するように機能するコンポーネントを含むことができる。例えば、通信コンポーネント群1264は、無線識別(RFID)タグ読取りコンポーネント、NFCスマートタグ検出コンポーネント、光学読取りコンポーネント(例えば、統一商品コード(UPC : Universal Product Code)バーコードのような一次元バーコード、クイックレスポンス(QR)コード、Aztecコード、データマトリックス、データグリフ、マキシコード、PDF417、ウルトラコード、ユニフォームコマーシャルコード省スペースシンボル(UCC RSS)2Dバーコードのような多次元バーコード、および他の光学コードを検出するための光学センサ)、音響検出コンポーネント(例えば、タグ付き音響信号を識別するためのマイクロフォン)、またはそれらの任意の適切な組み合わせを含むことができる。さらに、インタネットプロトコル(IP)ジオロケーションによる位置、WI-FI(登録商標)信号の三角測量による位置、特定の位置を示し得るBLUETOOTH(登録商標)またはNFCビーコン信号の検出による位置など、通信コンポーネント群1264によって各種情報を導出することができる。
【0067】
いくつかの例示的な実施形態では、ネットワーク1280の1つ以上の部分は、アドホックネットワーク、イントラネット、エクストラネット、VPN(Virtual Private Network)、LAN、WLAN、WAN、WWAN、MAN(Metropolitan Area Network)、インタネット、インタネットの一部、PSTNの一部、単純従来型電話サービス(POTS : Plain Old Telephone Service)ネットワーク、セルラ電話ネットワーク、ワイヤレスネットワーク、WI-FI(登録商標)ネットワーク、他のタイプのネットワーク、または2つ以上のそのようなネットワークの組み合わせ、とすることができる。例えば、ネットワーク1280またはネットワーク1280の一部は、ワイヤレスもしくはセルラネットワークを含むことがあり、カップリング1282は、符号分割多重アクセス(CDMA)接続、グローバル・システム・フォー・モバイル・コミュニケーションズ(GSM)接続、または他タイプのセルラもしくはワイヤレスカップリングであってよい。本例では、カップリング1282によって、シングルキャリア無線伝送技術(1xRTT)、エボリューションデータオプティマイズド(EVDO)技術、汎用パケット無線サービス(GPRS : General Packet Radio Service)技術、GSMエボリューション用エンハンストデータレート(EDGE : Enhanced Data Rates for GSM Evolution)技術、さらに、3G、第4世代ワイヤレス(4G)ネットワーク、ユニバーサル移動体通信システム(UMTS : Universal Mobile Telecommunications System)、高速パケットアクセス(HSPA)、ワールドワイド・インタオペラビリティ・フォー・マイクロウェーブ・アクセス(WiMax)、ロングタームエボリューション(LTE)規格、様々な標準化団体によって規定された他の規格を含む第3世代パートナシッププロジェクト(3GPP)、その他の長距離プロトコル、または他のデータ転送技術のような、多様なタイプのデータ転送技術のいずれかを実現することができる。
【0068】
命令1216は、ネットワークインタフェース装置(例えば、通信コンポーネント群1264に含まれるネットワークインタフェースコンポーネント)を介して、いくつかの周知の転送プロトコルのいずれか1つ(例えば、ハイパーテキスト転送プロトコル(HTTP))を用いて、伝送媒体を用いたネットワーク1280上で送信または受信することができる。同様に、命令1216は、デバイス1270へのカップリング1272(例えば、ピアツーピアカップリング)によって、伝送媒体を用いて送信または受信することができる。「伝送媒体」という用語は、マシン1200で実行するための命令1216を格納、符号化、または伝送することが可能な任意の無形媒体、ならびにそのようなソフトウェアの伝達を容易とするデジタルもしくはアナログ通信信号または他の無形媒体を含むものと解釈されるべきである。
【0069】
本明細書全体を通して、単一のインスタンスとして記載されているコンポーネント、オペレーション、または構造は、複数のインスタンスで実現してよい。1つ以上の方法の個々のオペレーションを別々のオペレーションとして図示および記載しているが、それらの個々のオペレーションの1つ以上を同時に実行してよく、それらのオペレーションを図示の順序で実行する必要はない。例示的な構成において別々のコンポーネントとして提示した構造および機能は、併合した構造またはコンポーネントとして実現してよい。同様に、単一のコンポーネントとして提示した構造および機能は、別々のコンポーネントとして実現してよい。これらおよび他の変形、変更、追加、および改良は、本明細書における主題の範囲内に含まれる。
【0070】
本発明の主題の概要について、具体的な例示的実施形態を参照して説明したが、これらの実施形態に対して、本開示の実施形態のより広い範囲から逸脱することなく、種々の変形および変更を実施してよい。本発明の主題のかかる実施形態を、本明細書では、単に便宜上「発明」という用語で総称または個称することがあるが、複数の発明概念を実際に開示している場合に、本出願の範囲をいずれか1つの開示または発明概念に自ら限定するものではない。
【0071】
本明細書で例示している実施形態は、開示した教示を当業者が実施することを可能とするのに十分に詳細に記載している。本開示の範囲から逸脱することなく、他の実施形態を用いてよく、さらには、それらから導出することで、構造的および論理的置換ならびに変更を実施してよい。従って、詳細な説明は、限定的な意味で解釈されるべきではなく、種々の実施形態の範囲は、添付の請求項と、かかる請求項によって権利が与えられる均等物の全範囲によってのみ規定される。
【0072】
本明細書で使用する場合の「または」という用語は、包含的または排他的な意味のいずれかで解釈され得る。さらに、単一のインスタンスとして本明細書で記載しているリソース、オペレーション、または構造のために、複数のインスタンスを提供してよい。また、様々なリソース、オペレーション、モジュール、エンジン、およびデータストアの間の境界は、ある程度任意であり、具体的なオペレーションは、特定の例示的な構成の文脈で示している。機能の他の割り振りは、想定されるとともに、本開示の種々の実施形態の範囲内に含まれ得る。一般に、例示的な構成において別々のリソースとして提示している構造および機能は、併合した構造またはリソースとして実現してよい。同様に、単一のリソースとして提示している構造および機能は、別々のリソースとして実現してよい。これらおよび他の変形、変更、追加、および改良は、添付の請求項で表される本開示の実施形態の範囲内に含まれる。従って、明細書および図面は、限定的な意味のものではなく、例示的なものとみなされるべきである。
図1
図2
図3A
図3B
図3C
図4
図5
図6
図7
図8A
図8B
図8C
図8D
図9A
図9B
図10A
図10B
図11
図12